From 7344c761feb337551f974eb76e32ad48581200e8 Mon Sep 17 00:00:00 2001 From: Pax1601 Date: Sat, 14 Oct 2023 11:07:39 +0200 Subject: [PATCH 01/19] Small bugfixes --- client/package-lock.json | 5428 ++++-- client/plugins/databasemanager/copy.bat | 1 + client/plugins/databasemanager/index.js | 126 +- .../databases/units/aircraftdatabase.json | 11 +- .../units/default/aircraftdatabase.json | 15303 ++++++++-------- .../units/default/groundunitdatabase.json | 3662 +++- .../units/default/helicopterdatabase.json | 174 +- .../units/default/navyunitdatabase.json | 846 +- client/src/constants/constants.ts | 10 +- client/src/map/map.ts | 5 +- client/src/unit/unit.ts | 2 +- client/src/unit/unitsmanager.ts | 35 +- package.bat | 6 + 13 files changed, 15745 insertions(+), 9864 deletions(-) diff --git a/client/package-lock.json b/client/package-lock.json index d58af6a6..08753ba8 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -1,40 +1,97 @@ { "name": "DCSOlympus", "version": "v0.4.5-alpha", - "lockfileVersion": 1, + "lockfileVersion": 3, "requires": true, - "dependencies": { - "@ampproject/remapping": { + "packages": { + "": { + "name": "DCSOlympus", + "version": "v0.4.5-alpha", + "dependencies": { + "body-parser": "^1.20.2", + "cookie-parser": "~1.4.4", + "debug": "~2.6.9", + "ejs": "^3.1.8", + "express": "~4.16.1", + "express-basic-auth": "^1.2.1", + "leaflet-gesture-handling": "^1.2.2", + "morgan": "~1.9.1", + "save": "^2.9.0", + "srtm-elevation": "^2.1.2" + }, + "devDependencies": { + "@babel/preset-env": "^7.21.4", + "@tanem/svg-injector": "^10.1.55", + "@turf/turf": "^6.5.0", + "@types/formatcoords": "^1.1.0", + "@types/geojson": "^7946.0.10", + "@types/leaflet": "^1.9.0", + "@types/node": "^18.16.1", + "@types/sortablejs": "^1.15.0", + "@types/svg-injector": "^0.0.29", + "babelify": "^10.0.0", + "browserify": "^17.0.0", + "concurrently": "^7.6.0", + "cp": "^0.2.0", + "esmify": "^2.1.1", + "formatcoords": "^1.1.3", + "geodesy": "^1.1.2", + "leaflet": "^1.9.3", + "leaflet-control-mini-map": "^0.4.0", + "leaflet-path-drag": "*", + "leaflet.nauticscale": "^1.1.0", + "nodemon": "^2.0.20", + "requirejs": "^2.3.6", + "sortablejs": "^1.15.0", + "tsify": "^5.0.4", + "tslib": "latest", + "typedoc": "^0.24.8", + "typedoc-umlclass": "^0.7.1", + "typescript": "^4.9.4", + "usng.js": "^0.4.5", + "watchify": "^4.0.0" + } + }, + "node_modules/@ampproject/remapping": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", "dev": true, - "requires": { + "dependencies": { "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" } }, - "@babel/code-frame": { + "node_modules/@babel/code-frame": { "version": "7.21.4", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", "dev": true, - "requires": { + "dependencies": { "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/compat-data": { + "node_modules/@babel/compat-data": { "version": "7.21.4", "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.4.tgz", "integrity": "sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g==", - "dev": true + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, - "@babel/core": { + "node_modules/@babel/core": { "version": "7.21.4", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.4.tgz", "integrity": "sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA==", "dev": true, - "requires": { + "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.21.4", "@babel/generator": "^7.21.4", @@ -51,80 +108,108 @@ "json5": "^2.2.2", "semver": "^6.3.0" }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/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/@babel/core/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, "dependencies": { - "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 - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true } } }, - "@babel/generator": { + "node_modules/@babel/core/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==", + "dev": true + }, + "node_modules/@babel/generator": { "version": "7.21.4", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.4.tgz", "integrity": "sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA==", "dev": true, - "requires": { + "dependencies": { "@babel/types": "^7.21.4", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-annotate-as-pure": { + "node_modules/@babel/helper-annotate-as-pure": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", "dev": true, - "requires": { + "dependencies": { "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-builder-binary-assignment-operator-visitor": { + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-explode-assignable-expression": "^7.18.6", "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-compilation-targets": { + "node_modules/@babel/helper-compilation-targets": { "version": "7.21.4", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.4.tgz", "integrity": "sha512-Fa0tTuOXZ1iL8IeDFUWCzjZcn+sJGd9RZdH9esYVjEejGmzf+FFYQpMi/kZUk2kPy/q1H3/GPw7np8qar/stfg==", "dev": true, - "requires": { + "dependencies": { "@babel/compat-data": "^7.21.4", "@babel/helper-validator-option": "^7.21.0", "browserslist": "^4.21.3", "lru-cache": "^5.1.1", "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/helper-create-class-features-plugin": { + "node_modules/@babel/helper-create-class-features-plugin": { "version": "7.21.4", "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.4.tgz", "integrity": "sha512-46QrX2CQlaFRF4TkwfTt6nJD7IHq8539cCL7SDpqWSDeJKY1xylKKY5F/33mJhLZ3mFvKv2gGrVS6NkyF6qs+Q==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-function-name": "^7.21.0", @@ -133,24 +218,36 @@ "@babel/helper-replace-supers": "^7.20.7", "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", "@babel/helper-split-export-declaration": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/helper-create-regexp-features-plugin": { + "node_modules/@babel/helper-create-regexp-features-plugin": { "version": "7.21.4", "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.4.tgz", "integrity": "sha512-M00OuhU+0GyZ5iBBN9czjugzWrEq2vDpf/zCYHxxf93ul/Q5rv+a5h+/+0WnI1AebHNVtl5bFV0qsJoH23DbfA==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", "regexpu-core": "^5.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/helper-define-polyfill-provider": { + "node_modules/@babel/helper-define-polyfill-provider": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-compilation-targets": "^7.17.7", "@babel/helper-plugin-utils": "^7.16.7", "debug": "^4.1.1", @@ -158,82 +255,109 @@ "resolve": "^1.14.2", "semver": "^6.1.2" }, + "peerDependencies": { + "@babel/core": "^7.4.0-0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true } } }, - "@babel/helper-environment-visitor": { + "node_modules/@babel/helper-define-polyfill-provider/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==", + "dev": true + }, + "node_modules/@babel/helper-environment-visitor": { "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", - "dev": true + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, - "@babel/helper-explode-assignable-expression": { + "node_modules/@babel/helper-explode-assignable-expression": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", "dev": true, - "requires": { + "dependencies": { "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-function-name": { + "node_modules/@babel/helper-function-name": { "version": "7.21.0", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", "dev": true, - "requires": { + "dependencies": { "@babel/template": "^7.20.7", "@babel/types": "^7.21.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-hoist-variables": { + "node_modules/@babel/helper-hoist-variables": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", "dev": true, - "requires": { + "dependencies": { "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-member-expression-to-functions": { + "node_modules/@babel/helper-member-expression-to-functions": { "version": "7.21.0", "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz", "integrity": "sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==", "dev": true, - "requires": { + "dependencies": { "@babel/types": "^7.21.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-module-imports": { + "node_modules/@babel/helper-module-imports": { "version": "7.21.4", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz", "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==", "dev": true, - "requires": { + "dependencies": { "@babel/types": "^7.21.4" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-module-transforms": { + "node_modules/@babel/helper-module-transforms": { "version": "7.21.2", "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz", "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-module-imports": "^7.18.6", "@babel/helper-simple-access": "^7.20.2", @@ -242,544 +366,803 @@ "@babel/template": "^7.20.7", "@babel/traverse": "^7.21.2", "@babel/types": "^7.21.2" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-optimise-call-expression": { + "node_modules/@babel/helper-optimise-call-expression": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", "dev": true, - "requires": { + "dependencies": { "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-plugin-utils": { + "node_modules/@babel/helper-plugin-utils": { "version": "7.20.2", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, - "@babel/helper-remap-async-to-generator": { + "node_modules/@babel/helper-remap-async-to-generator": { "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-wrap-function": "^7.18.9", "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/helper-replace-supers": { + "node_modules/@babel/helper-replace-supers": { "version": "7.20.7", "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz", "integrity": "sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-member-expression-to-functions": "^7.20.7", "@babel/helper-optimise-call-expression": "^7.18.6", "@babel/template": "^7.20.7", "@babel/traverse": "^7.20.7", "@babel/types": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-simple-access": { + "node_modules/@babel/helper-simple-access": { "version": "7.20.2", "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", "dev": true, - "requires": { + "dependencies": { "@babel/types": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-skip-transparent-expression-wrappers": { + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { "version": "7.20.0", "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", "dev": true, - "requires": { + "dependencies": { "@babel/types": "^7.20.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-split-export-declaration": { + "node_modules/@babel/helper-split-export-declaration": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", "dev": true, - "requires": { + "dependencies": { "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-string-parser": { + "node_modules/@babel/helper-string-parser": { "version": "7.19.4", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", - "dev": true + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, - "@babel/helper-validator-identifier": { + "node_modules/@babel/helper-validator-identifier": { "version": "7.19.1", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", - "dev": true + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, - "@babel/helper-validator-option": { + "node_modules/@babel/helper-validator-option": { "version": "7.21.0", "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, - "@babel/helper-wrap-function": { + "node_modules/@babel/helper-wrap-function": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-function-name": "^7.19.0", "@babel/template": "^7.18.10", "@babel/traverse": "^7.20.5", "@babel/types": "^7.20.5" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helpers": { + "node_modules/@babel/helpers": { "version": "7.21.0", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz", "integrity": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==", "dev": true, - "requires": { + "dependencies": { "@babel/template": "^7.20.7", "@babel/traverse": "^7.21.0", "@babel/types": "^7.21.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/highlight": { + "node_modules/@babel/highlight": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-validator-identifier": "^7.18.6", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, - "dependencies": { - "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, - "requires": { - "color-convert": "^1.9.0" - } - }, - "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, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "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, - "requires": { - "color-name": "1.1.3" - } - }, - "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 - }, - "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 - }, - "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, - "requires": { - "has-flag": "^3.0.0" - } - } + "engines": { + "node": ">=6.9.0" } }, - "@babel/parser": { + "node_modules/@babel/highlight/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/@babel/highlight/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/@babel/highlight/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/@babel/highlight/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/@babel/highlight/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/@babel/highlight/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/@babel/parser": { "version": "7.21.4", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.4.tgz", "integrity": "sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==", - "dev": true + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } }, - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { "version": "7.18.6", "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.18.6.tgz", "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { "version": "7.20.7", "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz", "integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.20.2", "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", "@babel/plugin-proposal-optional-chaining": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" } }, - "@babel/plugin-proposal-async-generator-functions": { + "node_modules/@babel/plugin-proposal-async-generator-functions": { "version": "7.20.7", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead.", "dev": true, - "requires": { + "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-plugin-utils": "^7.20.2", "@babel/helper-remap-async-to-generator": "^7.18.9", "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-class-properties": { + "node_modules/@babel/plugin-proposal-class-properties": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.", "dev": true, - "requires": { + "dependencies": { "@babel/helper-create-class-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-class-static-block": { + "node_modules/@babel/plugin-proposal-class-static-block": { "version": "7.21.0", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz", "integrity": "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-static-block instead.", "dev": true, - "requires": { + "dependencies": { "@babel/helper-create-class-features-plugin": "^7.21.0", "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" } }, - "@babel/plugin-proposal-dynamic-import": { + "node_modules/@babel/plugin-proposal-dynamic-import": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-dynamic-import instead.", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-export-namespace-from": { + "node_modules/@babel/plugin-proposal-export-namespace-from": { "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-export-namespace-from instead.", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.9", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-json-strings": { + "node_modules/@babel/plugin-proposal-json-strings": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-json-strings instead.", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-logical-assignment-operators": { + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { "version": "7.20.7", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-logical-assignment-operators instead.", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-nullish-coalescing-operator": { + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-numeric-separator": { + "node_modules/@babel/plugin-proposal-numeric-separator": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-object-rest-spread": { + "node_modules/@babel/plugin-proposal-object-rest-spread": { "version": "7.20.7", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.", "dev": true, - "requires": { + "dependencies": { "@babel/compat-data": "^7.20.5", "@babel/helper-compilation-targets": "^7.20.7", "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-transform-parameters": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-optional-catch-binding": { + "node_modules/@babel/plugin-proposal-optional-catch-binding": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead.", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-optional-chaining": { + "node_modules/@babel/plugin-proposal-optional-chaining": { "version": "7.21.0", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.20.2", "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-private-methods": { + "node_modules/@babel/plugin-proposal-private-methods": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead.", "dev": true, - "requires": { + "dependencies": { "@babel/helper-create-class-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-private-property-in-object": { + "node_modules/@babel/plugin-proposal-private-property-in-object": { "version": "7.21.0", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz", "integrity": "sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead.", "dev": true, - "requires": { + "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-create-class-features-plugin": "^7.21.0", "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-unicode-property-regex": { + "node_modules/@babel/plugin-proposal-unicode-property-regex": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-unicode-property-regex instead.", "dev": true, - "requires": { + "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-async-generators": { + "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, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-class-properties": { + "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, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-class-static-block": { + "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, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-dynamic-import": { + "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, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-export-namespace-from": { + "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, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-import-assertions": { + "node_modules/@babel/plugin-syntax-import-assertions": { "version": "7.20.0", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-json-strings": { + "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, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-logical-assignment-operators": { + "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, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-nullish-coalescing-operator": { + "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, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-numeric-separator": { + "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, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-object-rest-spread": { + "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, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-optional-catch-binding": { + "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, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-optional-chaining": { + "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, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-private-property-in-object": { + "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, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-top-level-await": { + "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, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-arrow-functions": { + "node_modules/@babel/plugin-transform-arrow-functions": { "version": "7.20.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz", "integrity": "sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-async-to-generator": { + "node_modules/@babel/plugin-transform-async-to-generator": { "version": "7.20.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz", "integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-module-imports": "^7.18.6", "@babel/helper-plugin-utils": "^7.20.2", "@babel/helper-remap-async-to-generator": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-block-scoped-functions": { + "node_modules/@babel/plugin-transform-block-scoped-functions": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-block-scoping": { + "node_modules/@babel/plugin-transform-block-scoping": { "version": "7.21.0", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz", "integrity": "sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-classes": { + "node_modules/@babel/plugin-transform-classes": { "version": "7.21.0", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz", "integrity": "sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-compilation-targets": "^7.20.7", "@babel/helper-environment-visitor": "^7.18.9", @@ -789,274 +1172,442 @@ "@babel/helper-replace-supers": "^7.20.7", "@babel/helper-split-export-declaration": "^7.18.6", "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-computed-properties": { + "node_modules/@babel/plugin-transform-computed-properties": { "version": "7.20.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz", "integrity": "sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.20.2", "@babel/template": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-destructuring": { + "node_modules/@babel/plugin-transform-destructuring": { "version": "7.21.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz", "integrity": "sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-dotall-regex": { + "node_modules/@babel/plugin-transform-dotall-regex": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", "dev": true, - "requires": { + "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-0" } }, - "@babel/plugin-transform-duplicate-keys": { + "node_modules/@babel/plugin-transform-duplicate-keys": { "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-exponentiation-operator": { + "node_modules/@babel/plugin-transform-exponentiation-operator": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-for-of": { + "node_modules/@babel/plugin-transform-for-of": { "version": "7.21.0", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.0.tgz", "integrity": "sha512-LlUYlydgDkKpIY7mcBWvyPPmMcOphEyYA27Ef4xpbh1IiDNLr0kZsos2nf92vz3IccvJI25QUwp86Eo5s6HmBQ==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-function-name": { + "node_modules/@babel/plugin-transform-function-name": { "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-compilation-targets": "^7.18.9", "@babel/helper-function-name": "^7.18.9", "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-literals": { + "node_modules/@babel/plugin-transform-literals": { "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-member-expression-literals": { + "node_modules/@babel/plugin-transform-member-expression-literals": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-modules-amd": { + "node_modules/@babel/plugin-transform-modules-amd": { "version": "7.20.11", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz", "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-module-transforms": "^7.20.11", "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-modules-commonjs": { + "node_modules/@babel/plugin-transform-modules-commonjs": { "version": "7.21.2", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz", "integrity": "sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-module-transforms": "^7.21.2", "@babel/helper-plugin-utils": "^7.20.2", "@babel/helper-simple-access": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-modules-systemjs": { + "node_modules/@babel/plugin-transform-modules-systemjs": { "version": "7.20.11", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz", "integrity": "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-module-transforms": "^7.20.11", "@babel/helper-plugin-utils": "^7.20.2", "@babel/helper-validator-identifier": "^7.19.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-modules-umd": { + "node_modules/@babel/plugin-transform-modules-umd": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-module-transforms": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-named-capturing-groups-regex": { + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.20.5", "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/plugin-transform-new-target": { + "node_modules/@babel/plugin-transform-new-target": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-object-super": { + "node_modules/@babel/plugin-transform-object-super": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.6", "@babel/helper-replace-supers": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-parameters": { + "node_modules/@babel/plugin-transform-parameters": { "version": "7.21.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz", "integrity": "sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-property-literals": { + "node_modules/@babel/plugin-transform-property-literals": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-regenerator": { + "node_modules/@babel/plugin-transform-regenerator": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz", "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.20.2", "regenerator-transform": "^0.15.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-reserved-words": { + "node_modules/@babel/plugin-transform-reserved-words": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-shorthand-properties": { + "node_modules/@babel/plugin-transform-shorthand-properties": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-spread": { + "node_modules/@babel/plugin-transform-spread": { "version": "7.20.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz", "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.20.2", "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-sticky-regex": { + "node_modules/@babel/plugin-transform-sticky-regex": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-template-literals": { + "node_modules/@babel/plugin-transform-template-literals": { "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-typeof-symbol": { + "node_modules/@babel/plugin-transform-typeof-symbol": { "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-unicode-escapes": { + "node_modules/@babel/plugin-transform-unicode-escapes": { "version": "7.18.10", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-unicode-regex": { + "node_modules/@babel/plugin-transform-unicode-regex": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", "dev": true, - "requires": { + "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-0" } }, - "@babel/preset-env": { + "node_modules/@babel/preset-env": { "version": "7.21.4", "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.21.4.tgz", "integrity": "sha512-2W57zHs2yDLm6GD5ZpvNn71lZ0B/iypSdIeq25OurDKji6AdzV07qp4s3n1/x5BqtiGaTrPN3nerlSCaC5qNTw==", "dev": true, - "requires": { + "dependencies": { "@babel/compat-data": "^7.21.4", "@babel/helper-compilation-targets": "^7.21.4", "@babel/helper-plugin-utils": "^7.20.2", @@ -1132,53 +1683,68 @@ "babel-plugin-polyfill-regenerator": "^0.4.1", "core-js-compat": "^3.25.1", "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/preset-modules": { + "node_modules/@babel/preset-modules": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", "@babel/plugin-transform-dotall-regex": "^7.4.4", "@babel/types": "^7.4.4", "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/regjsgen": { + "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 }, - "@babel/runtime": { + "node_modules/@babel/runtime": { "version": "7.21.5", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.5.tgz", "integrity": "sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q==", "dev": true, - "requires": { + "dependencies": { "regenerator-runtime": "^0.13.11" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/template": { + "node_modules/@babel/template": { "version": "7.20.7", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", "dev": true, - "requires": { + "dependencies": { "@babel/code-frame": "^7.18.6", "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/traverse": { + "node_modules/@babel/traverse": { "version": "7.21.4", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.4.tgz", "integrity": "sha512-eyKrRHKdyZxqDm+fV1iqL9UAHMoIg0nDaGqfIOd8rKH17m5snv7Gn4qgjBoFfLz9APvjFU/ICT00NVCv1Epp8Q==", "dev": true, - "requires": { + "dependencies": { "@babel/code-frame": "^7.21.4", "@babel/generator": "^7.21.4", "@babel/helper-environment-visitor": "^7.18.9", @@ -1190,314 +1756,390 @@ "debug": "^4.1.0", "globals": "^11.1.0" }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true } } }, - "@babel/types": { + "node_modules/@babel/traverse/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==", + "dev": true + }, + "node_modules/@babel/types": { "version": "7.21.4", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.4.tgz", "integrity": "sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-string-parser": "^7.19.4", "@babel/helper-validator-identifier": "^7.19.1", "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@jridgewell/gen-mapping": { + "node_modules/@jridgewell/gen-mapping": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", "dev": true, - "requires": { + "dependencies": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" } }, - "@jridgewell/resolve-uri": { + "node_modules/@jridgewell/resolve-uri": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true + "dev": true, + "engines": { + "node": ">=6.0.0" + } }, - "@jridgewell/set-array": { + "node_modules/@jridgewell/set-array": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true + "dev": true, + "engines": { + "node": ">=6.0.0" + } }, - "@jridgewell/sourcemap-codec": { + "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.15", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", "dev": true }, - "@jridgewell/trace-mapping": { + "node_modules/@jridgewell/trace-mapping": { "version": "0.3.18", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", "dev": true, - "requires": { + "dependencies": { "@jridgewell/resolve-uri": "3.1.0", "@jridgewell/sourcemap-codec": "1.4.14" - }, - "dependencies": { - "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - } } }, - "@tanem/svg-injector": { + "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@tanem/svg-injector": { "version": "10.1.55", "resolved": "https://registry.npmjs.org/@tanem/svg-injector/-/svg-injector-10.1.55.tgz", "integrity": "sha512-xh8ejdvjDaH1eddZC0CdI45eeid4BIU2ppjNEhiTiWMYcLGT19KWjbES/ttDS4mq9gIAQfXx57g5zimEVohqYA==", "dev": true, - "requires": { + "dependencies": { "@babel/runtime": "^7.21.5", "content-type": "^1.0.5", "tslib": "^2.5.0" } }, - "@turf/along": { + "node_modules/@turf/along": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/along/-/along-6.5.0.tgz", "integrity": "sha512-LLyWQ0AARqJCmMcIEAXF4GEu8usmd4Kbz3qk1Oy5HoRNpZX47+i5exQtmIWKdqJ1MMhW26fCTXgpsEs5zgJ5gw==", "dev": true, - "requires": { + "dependencies": { "@turf/bearing": "^6.5.0", "@turf/destination": "^6.5.0", "@turf/distance": "^6.5.0", "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/angle": { + "node_modules/@turf/angle": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/angle/-/angle-6.5.0.tgz", "integrity": "sha512-4pXMbWhFofJJAOvTMCns6N4C8CMd5Ih4O2jSAG9b3dDHakj3O4yN1+Zbm+NUei+eVEZ9gFeVp9svE3aMDenIkw==", "dev": true, - "requires": { + "dependencies": { "@turf/bearing": "^6.5.0", "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0", "@turf/rhumb-bearing": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/area": { + "node_modules/@turf/area": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/area/-/area-6.5.0.tgz", "integrity": "sha512-xCZdiuojokLbQ+29qR6qoMD89hv+JAgWjLrwSEWL+3JV8IXKeNFl6XkEJz9HGkVpnXvQKJoRz4/liT+8ZZ5Jyg==", "dev": true, - "requires": { + "dependencies": { "@turf/helpers": "^6.5.0", "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/bbox": { + "node_modules/@turf/bbox": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/bbox/-/bbox-6.5.0.tgz", "integrity": "sha512-RBbLaao5hXTYyyg577iuMtDB8ehxMlUqHEJiMs8jT1GHkFhr6sYre3lmLsPeYEi/ZKj5TP5tt7fkzNdJ4GIVyw==", "dev": true, - "requires": { + "dependencies": { "@turf/helpers": "^6.5.0", "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/bbox-clip": { + "node_modules/@turf/bbox-clip": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/bbox-clip/-/bbox-clip-6.5.0.tgz", "integrity": "sha512-F6PaIRF8WMp8EmgU/Ke5B1Y6/pia14UAYB5TiBC668w5rVVjy5L8rTm/m2lEkkDMHlzoP9vNY4pxpNthE7rLcQ==", "dev": true, - "requires": { + "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/bbox-polygon": { + "node_modules/@turf/bbox-polygon": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/bbox-polygon/-/bbox-polygon-6.5.0.tgz", "integrity": "sha512-+/r0NyL1lOG3zKZmmf6L8ommU07HliP4dgYToMoTxqzsWzyLjaj/OzgQ8rBmv703WJX+aS6yCmLuIhYqyufyuw==", "dev": true, - "requires": { + "dependencies": { "@turf/helpers": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/bearing": { + "node_modules/@turf/bearing": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/bearing/-/bearing-6.5.0.tgz", "integrity": "sha512-dxINYhIEMzgDOztyMZc20I7ssYVNEpSv04VbMo5YPQsqa80KO3TFvbuCahMsCAW5z8Tncc8dwBlEFrmRjJG33A==", "dev": true, - "requires": { + "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/bezier-spline": { + "node_modules/@turf/bezier-spline": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/bezier-spline/-/bezier-spline-6.5.0.tgz", "integrity": "sha512-vokPaurTd4PF96rRgGVm6zYYC5r1u98ZsG+wZEv9y3kJTuJRX/O3xIY2QnTGTdbVmAJN1ouOsD0RoZYaVoXORQ==", "dev": true, - "requires": { + "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/boolean-clockwise": { + "node_modules/@turf/boolean-clockwise": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/boolean-clockwise/-/boolean-clockwise-6.5.0.tgz", "integrity": "sha512-45+C7LC5RMbRWrxh3Z0Eihsc8db1VGBO5d9BLTOAwU4jR6SgsunTfRWR16X7JUwIDYlCVEmnjcXJNi/kIU3VIw==", "dev": true, - "requires": { + "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/boolean-contains": { + "node_modules/@turf/boolean-contains": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/boolean-contains/-/boolean-contains-6.5.0.tgz", "integrity": "sha512-4m8cJpbw+YQcKVGi8y0cHhBUnYT+QRfx6wzM4GI1IdtYH3p4oh/DOBJKrepQyiDzFDaNIjxuWXBh0ai1zVwOQQ==", "dev": true, - "requires": { + "dependencies": { "@turf/bbox": "^6.5.0", "@turf/boolean-point-in-polygon": "^6.5.0", "@turf/boolean-point-on-line": "^6.5.0", "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/boolean-crosses": { + "node_modules/@turf/boolean-crosses": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/boolean-crosses/-/boolean-crosses-6.5.0.tgz", "integrity": "sha512-gvshbTPhAHporTlQwBJqyfW+2yV8q/mOTxG6PzRVl6ARsqNoqYQWkd4MLug7OmAqVyBzLK3201uAeBjxbGw0Ng==", "dev": true, - "requires": { + "dependencies": { "@turf/boolean-point-in-polygon": "^6.5.0", "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0", "@turf/line-intersect": "^6.5.0", "@turf/polygon-to-line": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/boolean-disjoint": { + "node_modules/@turf/boolean-disjoint": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/boolean-disjoint/-/boolean-disjoint-6.5.0.tgz", "integrity": "sha512-rZ2ozlrRLIAGo2bjQ/ZUu4oZ/+ZjGvLkN5CKXSKBcu6xFO6k2bgqeM8a1836tAW+Pqp/ZFsTA5fZHsJZvP2D5g==", "dev": true, - "requires": { + "dependencies": { "@turf/boolean-point-in-polygon": "^6.5.0", "@turf/helpers": "^6.5.0", "@turf/line-intersect": "^6.5.0", "@turf/meta": "^6.5.0", "@turf/polygon-to-line": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/boolean-equal": { + "node_modules/@turf/boolean-equal": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/boolean-equal/-/boolean-equal-6.5.0.tgz", "integrity": "sha512-cY0M3yoLC26mhAnjv1gyYNQjn7wxIXmL2hBmI/qs8g5uKuC2hRWi13ydufE3k4x0aNRjFGlg41fjoYLwaVF+9Q==", "dev": true, - "requires": { + "dependencies": { "@turf/clean-coords": "^6.5.0", "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0", "geojson-equality": "0.1.6" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/boolean-intersects": { + "node_modules/@turf/boolean-intersects": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/boolean-intersects/-/boolean-intersects-6.5.0.tgz", "integrity": "sha512-nIxkizjRdjKCYFQMnml6cjPsDOBCThrt+nkqtSEcxkKMhAQj5OO7o2CecioNTaX8EayqwMGVKcsz27oP4mKPTw==", "dev": true, - "requires": { + "dependencies": { "@turf/boolean-disjoint": "^6.5.0", "@turf/helpers": "^6.5.0", "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/boolean-overlap": { + "node_modules/@turf/boolean-overlap": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/boolean-overlap/-/boolean-overlap-6.5.0.tgz", "integrity": "sha512-8btMIdnbXVWUa1M7D4shyaSGxLRw6NjMcqKBcsTXcZdnaixl22k7ar7BvIzkaRYN3SFECk9VGXfLncNS3ckQUw==", "dev": true, - "requires": { + "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0", "@turf/line-intersect": "^6.5.0", "@turf/line-overlap": "^6.5.0", "@turf/meta": "^6.5.0", "geojson-equality": "0.1.6" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/boolean-parallel": { + "node_modules/@turf/boolean-parallel": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/boolean-parallel/-/boolean-parallel-6.5.0.tgz", "integrity": "sha512-aSHJsr1nq9e5TthZGZ9CZYeXklJyRgR5kCLm5X4urz7+MotMOp/LsGOsvKvK9NeUl9+8OUmfMn8EFTT8LkcvIQ==", "dev": true, - "requires": { + "dependencies": { "@turf/clean-coords": "^6.5.0", "@turf/helpers": "^6.5.0", "@turf/line-segment": "^6.5.0", "@turf/rhumb-bearing": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/boolean-point-in-polygon": { + "node_modules/@turf/boolean-point-in-polygon": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/boolean-point-in-polygon/-/boolean-point-in-polygon-6.5.0.tgz", "integrity": "sha512-DtSuVFB26SI+hj0SjrvXowGTUCHlgevPAIsukssW6BG5MlNSBQAo70wpICBNJL6RjukXg8d2eXaAWuD/CqL00A==", "dev": true, - "requires": { + "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/boolean-point-on-line": { + "node_modules/@turf/boolean-point-on-line": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/boolean-point-on-line/-/boolean-point-on-line-6.5.0.tgz", "integrity": "sha512-A1BbuQ0LceLHvq7F/P7w3QvfpmZqbmViIUPHdNLvZimFNLo4e6IQunmzbe+8aSStH9QRZm3VOflyvNeXvvpZEQ==", "dev": true, - "requires": { + "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/boolean-within": { + "node_modules/@turf/boolean-within": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/boolean-within/-/boolean-within-6.5.0.tgz", "integrity": "sha512-YQB3oU18Inx35C/LU930D36RAVe7LDXk1kWsQ8mLmuqYn9YdPsDQTMTkLJMhoQ8EbN7QTdy333xRQ4MYgToteQ==", "dev": true, - "requires": { + "dependencies": { "@turf/bbox": "^6.5.0", "@turf/boolean-point-in-polygon": "^6.5.0", "@turf/boolean-point-on-line": "^6.5.0", "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/buffer": { + "node_modules/@turf/buffer": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/buffer/-/buffer-6.5.0.tgz", "integrity": "sha512-qeX4N6+PPWbKqp1AVkBVWFerGjMYMUyencwfnkCesoznU6qvfugFHNAngNqIBVnJjZ5n8IFyOf+akcxnrt9sNg==", "dev": true, - "requires": { + "dependencies": { "@turf/bbox": "^6.5.0", "@turf/center": "^6.5.0", "@turf/helpers": "^6.5.0", @@ -1505,158 +2147,200 @@ "@turf/projection": "^6.5.0", "d3-geo": "1.7.1", "turf-jsts": "*" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/center": { + "node_modules/@turf/center": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/center/-/center-6.5.0.tgz", "integrity": "sha512-T8KtMTfSATWcAX088rEDKjyvQCBkUsLnK/Txb6/8WUXIeOZyHu42G7MkdkHRoHtwieLdduDdmPLFyTdG5/e7ZQ==", "dev": true, - "requires": { + "dependencies": { "@turf/bbox": "^6.5.0", "@turf/helpers": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/center-mean": { + "node_modules/@turf/center-mean": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/center-mean/-/center-mean-6.5.0.tgz", "integrity": "sha512-AAX6f4bVn12pTVrMUiB9KrnV94BgeBKpyg3YpfnEbBpkN/znfVhL8dG8IxMAxAoSZ61Zt9WLY34HfENveuOZ7Q==", "dev": true, - "requires": { + "dependencies": { "@turf/bbox": "^6.5.0", "@turf/helpers": "^6.5.0", "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/center-median": { + "node_modules/@turf/center-median": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/center-median/-/center-median-6.5.0.tgz", "integrity": "sha512-dT8Ndu5CiZkPrj15PBvslpuf01ky41DEYEPxS01LOxp5HOUHXp1oJxsPxvc+i/wK4BwccPNzU1vzJ0S4emd1KQ==", "dev": true, - "requires": { + "dependencies": { "@turf/center-mean": "^6.5.0", "@turf/centroid": "^6.5.0", "@turf/distance": "^6.5.0", "@turf/helpers": "^6.5.0", "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/center-of-mass": { + "node_modules/@turf/center-of-mass": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/center-of-mass/-/center-of-mass-6.5.0.tgz", "integrity": "sha512-EWrriU6LraOfPN7m1jZi+1NLTKNkuIsGLZc2+Y8zbGruvUW+QV7K0nhf7iZWutlxHXTBqEXHbKue/o79IumAsQ==", "dev": true, - "requires": { + "dependencies": { "@turf/centroid": "^6.5.0", "@turf/convex": "^6.5.0", "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0", "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/centroid": { + "node_modules/@turf/centroid": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/centroid/-/centroid-6.5.0.tgz", "integrity": "sha512-MwE1oq5E3isewPprEClbfU5pXljIK/GUOMbn22UM3IFPDJX0KeoyLNwghszkdmFp/qMGL/M13MMWvU+GNLXP/A==", "dev": true, - "requires": { + "dependencies": { "@turf/helpers": "^6.5.0", "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/circle": { + "node_modules/@turf/circle": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/circle/-/circle-6.5.0.tgz", "integrity": "sha512-oU1+Kq9DgRnoSbWFHKnnUdTmtcRUMmHoV9DjTXu9vOLNV5OWtAAh1VZ+mzsioGGzoDNT/V5igbFOkMfBQc0B6A==", "dev": true, - "requires": { + "dependencies": { "@turf/destination": "^6.5.0", "@turf/helpers": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/clean-coords": { + "node_modules/@turf/clean-coords": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/clean-coords/-/clean-coords-6.5.0.tgz", "integrity": "sha512-EMX7gyZz0WTH/ET7xV8MyrExywfm9qUi0/MY89yNffzGIEHuFfqwhcCqZ8O00rZIPZHUTxpmsxQSTfzJJA1CPw==", "dev": true, - "requires": { + "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/clone": { + "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==", "dev": true, - "requires": { + "dependencies": { "@turf/helpers": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/clusters": { + "node_modules/@turf/clusters": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/clusters/-/clusters-6.5.0.tgz", "integrity": "sha512-Y6gfnTJzQ1hdLfCsyd5zApNbfLIxYEpmDibHUqR5z03Lpe02pa78JtgrgUNt1seeO/aJ4TG1NLN8V5gOrHk04g==", "dev": true, - "requires": { + "dependencies": { "@turf/helpers": "^6.5.0", "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/clusters-dbscan": { + "node_modules/@turf/clusters-dbscan": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/clusters-dbscan/-/clusters-dbscan-6.5.0.tgz", "integrity": "sha512-SxZEE4kADU9DqLRiT53QZBBhu8EP9skviSyl+FGj08Y01xfICM/RR9ACUdM0aEQimhpu+ZpRVcUK+2jtiCGrYQ==", "dev": true, - "requires": { + "dependencies": { "@turf/clone": "^6.5.0", "@turf/distance": "^6.5.0", "@turf/helpers": "^6.5.0", "@turf/meta": "^6.5.0", "density-clustering": "1.3.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/clusters-kmeans": { + "node_modules/@turf/clusters-kmeans": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/clusters-kmeans/-/clusters-kmeans-6.5.0.tgz", "integrity": "sha512-DwacD5+YO8kwDPKaXwT9DV46tMBVNsbi1IzdajZu1JDSWoN7yc7N9Qt88oi+p30583O0UPVkAK+A10WAQv4mUw==", "dev": true, - "requires": { + "dependencies": { "@turf/clone": "^6.5.0", "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0", "@turf/meta": "^6.5.0", "skmeans": "0.9.7" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/collect": { + "node_modules/@turf/collect": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/collect/-/collect-6.5.0.tgz", "integrity": "sha512-4dN/T6LNnRg099m97BJeOcTA5fSI8cu87Ydgfibewd2KQwBexO69AnjEFqfPX3Wj+Zvisj1uAVIZbPmSSrZkjg==", "dev": true, - "requires": { + "dependencies": { "@turf/bbox": "^6.5.0", "@turf/boolean-point-in-polygon": "^6.5.0", "@turf/helpers": "^6.5.0", "rbush": "2.x" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/combine": { + "node_modules/@turf/combine": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/combine/-/combine-6.5.0.tgz", "integrity": "sha512-Q8EIC4OtAcHiJB3C4R+FpB4LANiT90t17uOd851qkM2/o6m39bfN5Mv0PWqMZIHWrrosZqRqoY9dJnzz/rJxYQ==", "dev": true, - "requires": { + "dependencies": { "@turf/helpers": "^6.5.0", "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/concave": { + "node_modules/@turf/concave": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/concave/-/concave-6.5.0.tgz", "integrity": "sha512-I/sUmUC8TC5h/E2vPwxVht+nRt+TnXIPRoztDFvS8/Y0+cBDple9inLSo9nnPXMXidrBlGXZ9vQx/BjZUJgsRQ==", "dev": true, - "requires": { + "dependencies": { "@turf/clone": "^6.5.0", "@turf/distance": "^6.5.0", "@turf/helpers": "^6.5.0", @@ -1665,162 +2349,207 @@ "@turf/tin": "^6.5.0", "topojson-client": "3.x", "topojson-server": "3.x" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/convex": { + "node_modules/@turf/convex": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/convex/-/convex-6.5.0.tgz", "integrity": "sha512-x7ZwC5z7PJB0SBwNh7JCeCNx7Iu+QSrH7fYgK0RhhNop13TqUlvHMirMLRgf2db1DqUetrAO2qHJeIuasquUWg==", "dev": true, - "requires": { + "dependencies": { "@turf/helpers": "^6.5.0", "@turf/meta": "^6.5.0", "concaveman": "*" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/destination": { + "node_modules/@turf/destination": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/destination/-/destination-6.5.0.tgz", "integrity": "sha512-4cnWQlNC8d1tItOz9B4pmJdWpXqS0vEvv65bI/Pj/genJnsL7evI0/Xw42RvEGROS481MPiU80xzvwxEvhQiMQ==", "dev": true, - "requires": { + "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/difference": { + "node_modules/@turf/difference": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.5.0.tgz", "integrity": "sha512-l8iR5uJqvI+5Fs6leNbhPY5t/a3vipUF/3AeVLpwPQcgmedNXyheYuy07PcMGH5Jdpi5gItOiTqwiU/bUH4b3A==", "dev": true, - "requires": { + "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0", "polygon-clipping": "^0.15.3" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/dissolve": { + "node_modules/@turf/dissolve": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/dissolve/-/dissolve-6.5.0.tgz", "integrity": "sha512-WBVbpm9zLTp0Bl9CE35NomTaOL1c4TQCtEoO43YaAhNEWJOOIhZMFJyr8mbvYruKl817KinT3x7aYjjCMjTAsQ==", "dev": true, - "requires": { + "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0", "@turf/meta": "^6.5.0", "polygon-clipping": "^0.15.3" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/distance": { + "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==", "dev": true, - "requires": { + "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/distance-weight": { + "node_modules/@turf/distance-weight": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/distance-weight/-/distance-weight-6.5.0.tgz", "integrity": "sha512-a8qBKkgVNvPKBfZfEJZnC3DV7dfIsC3UIdpRci/iap/wZLH41EmS90nM+BokAJflUHYy8PqE44wySGWHN1FXrQ==", "dev": true, - "requires": { + "dependencies": { "@turf/centroid": "^6.5.0", "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0", "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/ellipse": { + "node_modules/@turf/ellipse": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/ellipse/-/ellipse-6.5.0.tgz", "integrity": "sha512-kuXtwFviw/JqnyJXF1mrR/cb496zDTSbGKtSiolWMNImYzGGkbsAsFTjwJYgD7+4FixHjp0uQPzo70KDf3AIBw==", "dev": true, - "requires": { + "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0", "@turf/rhumb-destination": "^6.5.0", "@turf/transform-rotate": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/envelope": { + "node_modules/@turf/envelope": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/envelope/-/envelope-6.5.0.tgz", "integrity": "sha512-9Z+FnBWvOGOU4X+fMZxYFs1HjFlkKqsddLuMknRaqcJd6t+NIv5DWvPtDL8ATD2GEExYDiFLwMdckfr1yqJgHA==", "dev": true, - "requires": { + "dependencies": { "@turf/bbox": "^6.5.0", "@turf/bbox-polygon": "^6.5.0", "@turf/helpers": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/explode": { + "node_modules/@turf/explode": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/explode/-/explode-6.5.0.tgz", "integrity": "sha512-6cSvMrnHm2qAsace6pw9cDmK2buAlw8+tjeJVXMfMyY+w7ZUi1rprWMsY92J7s2Dar63Bv09n56/1V7+tcj52Q==", "dev": true, - "requires": { + "dependencies": { "@turf/helpers": "^6.5.0", "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/flatten": { + "node_modules/@turf/flatten": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/flatten/-/flatten-6.5.0.tgz", "integrity": "sha512-IBZVwoNLVNT6U/bcUUllubgElzpMsNoCw8tLqBw6dfYg9ObGmpEjf9BIYLr7a2Yn5ZR4l7YIj2T7kD5uJjZADQ==", "dev": true, - "requires": { + "dependencies": { "@turf/helpers": "^6.5.0", "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/flip": { + "node_modules/@turf/flip": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/flip/-/flip-6.5.0.tgz", "integrity": "sha512-oyikJFNjt2LmIXQqgOGLvt70RgE2lyzPMloYWM7OR5oIFGRiBvqVD2hA6MNw6JewIm30fWZ8DQJw1NHXJTJPbg==", "dev": true, - "requires": { + "dependencies": { "@turf/clone": "^6.5.0", "@turf/helpers": "^6.5.0", "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/great-circle": { + "node_modules/@turf/great-circle": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/great-circle/-/great-circle-6.5.0.tgz", "integrity": "sha512-7ovyi3HaKOXdFyN7yy1yOMa8IyOvV46RC1QOQTT+RYUN8ke10eyqExwBpL9RFUPvlpoTzoYbM/+lWPogQlFncg==", "dev": true, - "requires": { + "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/helpers": { + "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==", - "dev": true + "dev": true, + "funding": { + "url": "https://opencollective.com/turf" + } }, - "@turf/hex-grid": { + "node_modules/@turf/hex-grid": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/hex-grid/-/hex-grid-6.5.0.tgz", "integrity": "sha512-Ln3tc2tgZT8etDOldgc6e741Smg1CsMKAz1/Mlel+MEL5Ynv2mhx3m0q4J9IB1F3a4MNjDeVvm8drAaf9SF33g==", "dev": true, - "requires": { + "dependencies": { "@turf/distance": "^6.5.0", "@turf/helpers": "^6.5.0", "@turf/intersect": "^6.5.0", "@turf/invariant": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/interpolate": { + "node_modules/@turf/interpolate": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/interpolate/-/interpolate-6.5.0.tgz", "integrity": "sha512-LSH5fMeiGyuDZ4WrDJNgh81d2DnNDUVJtuFryJFup8PV8jbs46lQGfI3r1DJ2p1IlEJIz3pmAZYeTfMMoeeohw==", "dev": true, - "requires": { + "dependencies": { "@turf/bbox": "^6.5.0", "@turf/centroid": "^6.5.0", "@turf/clone": "^6.5.0", @@ -1832,34 +2561,43 @@ "@turf/point-grid": "^6.5.0", "@turf/square-grid": "^6.5.0", "@turf/triangle-grid": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/intersect": { + "node_modules/@turf/intersect": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.5.0.tgz", "integrity": "sha512-2legGJeKrfFkzntcd4GouPugoqPUjexPZnOvfez+3SfIMrHvulw8qV8u7pfVyn2Yqs53yoVCEjS5sEpvQ5YRQg==", "dev": true, - "requires": { + "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0", "polygon-clipping": "^0.15.3" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/invariant": { + "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==", "dev": true, - "requires": { + "dependencies": { "@turf/helpers": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/isobands": { + "node_modules/@turf/isobands": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/isobands/-/isobands-6.5.0.tgz", "integrity": "sha512-4h6sjBPhRwMVuFaVBv70YB7eGz+iw0bhPRnp+8JBdX1UPJSXhoi/ZF2rACemRUr0HkdVB/a1r9gC32vn5IAEkw==", "dev": true, - "requires": { + "dependencies": { "@turf/area": "^6.5.0", "@turf/bbox": "^6.5.0", "@turf/boolean-point-in-polygon": "^6.5.0", @@ -1868,94 +2606,118 @@ "@turf/invariant": "^6.5.0", "@turf/meta": "^6.5.0", "object-assign": "*" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/isolines": { + "node_modules/@turf/isolines": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/isolines/-/isolines-6.5.0.tgz", "integrity": "sha512-6ElhiLCopxWlv4tPoxiCzASWt/jMRvmp6mRYrpzOm3EUl75OhHKa/Pu6Y9nWtCMmVC/RcWtiiweUocbPLZLm0A==", "dev": true, - "requires": { + "dependencies": { "@turf/bbox": "^6.5.0", "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0", "@turf/meta": "^6.5.0", "object-assign": "*" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/kinks": { + "node_modules/@turf/kinks": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.5.0.tgz", "integrity": "sha512-ViCngdPt1eEL7hYUHR2eHR662GvCgTc35ZJFaNR6kRtr6D8plLaDju0FILeFFWSc+o8e3fwxZEJKmFj9IzPiIQ==", "dev": true, - "requires": { + "dependencies": { "@turf/helpers": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/length": { + "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==", "dev": true, - "requires": { + "dependencies": { "@turf/distance": "^6.5.0", "@turf/helpers": "^6.5.0", "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/line-arc": { + "node_modules/@turf/line-arc": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/line-arc/-/line-arc-6.5.0.tgz", "integrity": "sha512-I6c+V6mIyEwbtg9P9zSFF89T7QPe1DPTG3MJJ6Cm1MrAY0MdejwQKOpsvNl8LDU2ekHOlz2kHpPVR7VJsoMllA==", "dev": true, - "requires": { + "dependencies": { "@turf/circle": "^6.5.0", "@turf/destination": "^6.5.0", "@turf/helpers": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/line-chunk": { + "node_modules/@turf/line-chunk": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/line-chunk/-/line-chunk-6.5.0.tgz", "integrity": "sha512-i1FGE6YJaaYa+IJesTfyRRQZP31QouS+wh/pa6O3CC0q4T7LtHigyBSYjrbjSLfn2EVPYGlPCMFEqNWCOkC6zg==", "dev": true, - "requires": { + "dependencies": { "@turf/helpers": "^6.5.0", "@turf/length": "^6.5.0", "@turf/line-slice-along": "^6.5.0", "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/line-intersect": { + "node_modules/@turf/line-intersect": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/line-intersect/-/line-intersect-6.5.0.tgz", "integrity": "sha512-CS6R1tZvVQD390G9Ea4pmpM6mJGPWoL82jD46y0q1KSor9s6HupMIo1kY4Ny+AEYQl9jd21V3Scz20eldpbTVA==", "dev": true, - "requires": { + "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0", "@turf/line-segment": "^6.5.0", "@turf/meta": "^6.5.0", "geojson-rbush": "3.x" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/line-offset": { + "node_modules/@turf/line-offset": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/line-offset/-/line-offset-6.5.0.tgz", "integrity": "sha512-CEXZbKgyz8r72qRvPchK0dxqsq8IQBdH275FE6o4MrBkzMcoZsfSjghtXzKaz9vvro+HfIXal0sTk2mqV1lQTw==", "dev": true, - "requires": { + "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0", "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/line-overlap": { + "node_modules/@turf/line-overlap": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/line-overlap/-/line-overlap-6.5.0.tgz", "integrity": "sha512-xHOaWLd0hkaC/1OLcStCpfq55lPHpPNadZySDXYiYjEz5HXr1oKmtMYpn0wGizsLwrOixRdEp+j7bL8dPt4ojQ==", "dev": true, - "requires": { + "dependencies": { "@turf/boolean-point-on-line": "^6.5.0", "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0", @@ -1964,48 +2726,60 @@ "@turf/nearest-point-on-line": "^6.5.0", "deep-equal": "1.x", "geojson-rbush": "3.x" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/line-segment": { + "node_modules/@turf/line-segment": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/line-segment/-/line-segment-6.5.0.tgz", "integrity": "sha512-jI625Ho4jSuJESNq66Mmi290ZJ5pPZiQZruPVpmHkUw257Pew0alMmb6YrqYNnLUuiVVONxAAKXUVeeUGtycfw==", "dev": true, - "requires": { + "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0", "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/line-slice": { + "node_modules/@turf/line-slice": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/line-slice/-/line-slice-6.5.0.tgz", "integrity": "sha512-vDqJxve9tBHhOaVVFXqVjF5qDzGtKWviyjbyi2QnSnxyFAmLlLnBfMX8TLQCAf2GxHibB95RO5FBE6I2KVPRuw==", "dev": true, - "requires": { + "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0", "@turf/nearest-point-on-line": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/line-slice-along": { + "node_modules/@turf/line-slice-along": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/line-slice-along/-/line-slice-along-6.5.0.tgz", "integrity": "sha512-KHJRU6KpHrAj+BTgTNqby6VCTnDzG6a1sJx/I3hNvqMBLvWVA2IrkR9L9DtsQsVY63IBwVdQDqiwCuZLDQh4Ng==", "dev": true, - "requires": { + "dependencies": { "@turf/bearing": "^6.5.0", "@turf/destination": "^6.5.0", "@turf/distance": "^6.5.0", "@turf/helpers": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/line-split": { + "node_modules/@turf/line-split": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/line-split/-/line-split-6.5.0.tgz", "integrity": "sha512-/rwUMVr9OI2ccJjw7/6eTN53URtGThNSD5I0GgxyFXMtxWiloRJ9MTff8jBbtPWrRka/Sh2GkwucVRAEakx9Sw==", "dev": true, - "requires": { + "dependencies": { "@turf/bbox": "^6.5.0", "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0", @@ -2016,80 +2790,101 @@ "@turf/square": "^6.5.0", "@turf/truncate": "^6.5.0", "geojson-rbush": "3.x" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/line-to-polygon": { + "node_modules/@turf/line-to-polygon": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/line-to-polygon/-/line-to-polygon-6.5.0.tgz", "integrity": "sha512-qYBuRCJJL8Gx27OwCD1TMijM/9XjRgXH/m/TyuND4OXedBpIWlK5VbTIO2gJ8OCfznBBddpjiObLBrkuxTpN4Q==", "dev": true, - "requires": { + "dependencies": { "@turf/bbox": "^6.5.0", "@turf/clone": "^6.5.0", "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/mask": { + "node_modules/@turf/mask": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/mask/-/mask-6.5.0.tgz", "integrity": "sha512-RQha4aU8LpBrmrkH8CPaaoAfk0Egj5OuXtv6HuCQnHeGNOQt3TQVibTA3Sh4iduq4EPxnZfDjgsOeKtrCA19lg==", "dev": true, - "requires": { + "dependencies": { "@turf/helpers": "^6.5.0", "polygon-clipping": "^0.15.3" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/meta": { + "node_modules/@turf/meta": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/meta/-/meta-6.5.0.tgz", "integrity": "sha512-RrArvtsV0vdsCBegoBtOalgdSOfkBrTJ07VkpiCnq/491W67hnMWmDu7e6Ztw0C3WldRYTXkg3SumfdzZxLBHA==", "dev": true, - "requires": { + "dependencies": { "@turf/helpers": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/midpoint": { + "node_modules/@turf/midpoint": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/midpoint/-/midpoint-6.5.0.tgz", "integrity": "sha512-MyTzV44IwmVI6ec9fB2OgZ53JGNlgOpaYl9ArKoF49rXpL84F9rNATndbe0+MQIhdkw8IlzA6xVP4lZzfMNVCw==", "dev": true, - "requires": { + "dependencies": { "@turf/bearing": "^6.5.0", "@turf/destination": "^6.5.0", "@turf/distance": "^6.5.0", "@turf/helpers": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/moran-index": { + "node_modules/@turf/moran-index": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/moran-index/-/moran-index-6.5.0.tgz", "integrity": "sha512-ItsnhrU2XYtTtTudrM8so4afBCYWNaB0Mfy28NZwLjB5jWuAsvyV+YW+J88+neK/ougKMTawkmjQqodNJaBeLQ==", "dev": true, - "requires": { + "dependencies": { "@turf/distance-weight": "^6.5.0", "@turf/helpers": "^6.5.0", "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/nearest-point": { + "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==", "dev": true, - "requires": { + "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" } }, - "@turf/nearest-point-on-line": { + "node_modules/@turf/nearest-point-on-line": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/nearest-point-on-line/-/nearest-point-on-line-6.5.0.tgz", "integrity": "sha512-WthrvddddvmymnC+Vf7BrkHGbDOUu6Z3/6bFYUGv1kxw8tiZ6n83/VG6kHz4poHOfS0RaNflzXSkmCi64fLBlg==", "dev": true, - "requires": { + "dependencies": { "@turf/bearing": "^6.5.0", "@turf/destination": "^6.5.0", "@turf/distance": "^6.5.0", @@ -2097,62 +2892,77 @@ "@turf/invariant": "^6.5.0", "@turf/line-intersect": "^6.5.0", "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/nearest-point-to-line": { + "node_modules/@turf/nearest-point-to-line": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/nearest-point-to-line/-/nearest-point-to-line-6.5.0.tgz", "integrity": "sha512-PXV7cN0BVzUZdjj6oeb/ESnzXSfWmEMrsfZSDRgqyZ9ytdiIj/eRsnOXLR13LkTdXVOJYDBuf7xt1mLhM4p6+Q==", "dev": true, - "requires": { + "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0", "@turf/meta": "^6.5.0", "@turf/point-to-line-distance": "^6.5.0", "object-assign": "*" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/planepoint": { + "node_modules/@turf/planepoint": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/planepoint/-/planepoint-6.5.0.tgz", "integrity": "sha512-R3AahA6DUvtFbka1kcJHqZ7DMHmPXDEQpbU5WaglNn7NaCQg9HB0XM0ZfqWcd5u92YXV+Gg8QhC8x5XojfcM4Q==", "dev": true, - "requires": { + "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/point-grid": { + "node_modules/@turf/point-grid": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/point-grid/-/point-grid-6.5.0.tgz", "integrity": "sha512-Iq38lFokNNtQJnOj/RBKmyt6dlof0yhaHEDELaWHuECm1lIZLY3ZbVMwbs+nXkwTAHjKfS/OtMheUBkw+ee49w==", "dev": true, - "requires": { + "dependencies": { "@turf/boolean-within": "^6.5.0", "@turf/distance": "^6.5.0", "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/point-on-feature": { + "node_modules/@turf/point-on-feature": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/point-on-feature/-/point-on-feature-6.5.0.tgz", "integrity": "sha512-bDpuIlvugJhfcF/0awAQ+QI6Om1Y1FFYE8Y/YdxGRongivix850dTeXCo0mDylFdWFPGDo7Mmh9Vo4VxNwW/TA==", "dev": true, - "requires": { + "dependencies": { "@turf/boolean-point-in-polygon": "^6.5.0", "@turf/center": "^6.5.0", "@turf/explode": "^6.5.0", "@turf/helpers": "^6.5.0", "@turf/nearest-point": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/point-to-line-distance": { + "node_modules/@turf/point-to-line-distance": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/point-to-line-distance/-/point-to-line-distance-6.5.0.tgz", "integrity": "sha512-opHVQ4vjUhNBly1bob6RWy+F+hsZDH9SA0UW36pIRzfpu27qipU18xup0XXEePfY6+wvhF6yL/WgCO2IbrLqEA==", "dev": true, - "requires": { + "dependencies": { "@turf/bearing": "^6.5.0", "@turf/distance": "^6.5.0", "@turf/helpers": "^6.5.0", @@ -2161,168 +2971,213 @@ "@turf/projection": "^6.5.0", "@turf/rhumb-bearing": "^6.5.0", "@turf/rhumb-distance": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/points-within-polygon": { + "node_modules/@turf/points-within-polygon": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/points-within-polygon/-/points-within-polygon-6.5.0.tgz", "integrity": "sha512-YyuheKqjliDsBDt3Ho73QVZk1VXX1+zIA2gwWvuz8bR1HXOkcuwk/1J76HuFMOQI3WK78wyAi+xbkx268PkQzQ==", "dev": true, - "requires": { + "dependencies": { "@turf/boolean-point-in-polygon": "^6.5.0", "@turf/helpers": "^6.5.0", "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/polygon-smooth": { + "node_modules/@turf/polygon-smooth": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/polygon-smooth/-/polygon-smooth-6.5.0.tgz", "integrity": "sha512-LO/X/5hfh/Rk4EfkDBpLlVwt3i6IXdtQccDT9rMjXEP32tRgy0VMFmdkNaXoGlSSKf/1mGqLl4y4wHd86DqKbg==", "dev": true, - "requires": { + "dependencies": { "@turf/helpers": "^6.5.0", "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/polygon-tangents": { + "node_modules/@turf/polygon-tangents": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/polygon-tangents/-/polygon-tangents-6.5.0.tgz", "integrity": "sha512-sB4/IUqJMYRQH9jVBwqS/XDitkEfbyqRy+EH/cMRJURTg78eHunvJ708x5r6umXsbiUyQU4eqgPzEylWEQiunw==", "dev": true, - "requires": { + "dependencies": { "@turf/bbox": "^6.5.0", "@turf/boolean-within": "^6.5.0", "@turf/explode": "^6.5.0", "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0", "@turf/nearest-point": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/polygon-to-line": { + "node_modules/@turf/polygon-to-line": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/polygon-to-line/-/polygon-to-line-6.5.0.tgz", "integrity": "sha512-5p4n/ij97EIttAq+ewSnKt0ruvuM+LIDzuczSzuHTpq4oS7Oq8yqg5TQ4nzMVuK41r/tALCk7nAoBuw3Su4Gcw==", "dev": true, - "requires": { + "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/polygonize": { + "node_modules/@turf/polygonize": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/polygonize/-/polygonize-6.5.0.tgz", "integrity": "sha512-a/3GzHRaCyzg7tVYHo43QUChCspa99oK4yPqooVIwTC61npFzdrmnywMv0S+WZjHZwK37BrFJGFrZGf6ocmY5w==", "dev": true, - "requires": { + "dependencies": { "@turf/boolean-point-in-polygon": "^6.5.0", "@turf/envelope": "^6.5.0", "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0", "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/projection": { + "node_modules/@turf/projection": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/projection/-/projection-6.5.0.tgz", "integrity": "sha512-/Pgh9mDvQWWu8HRxqpM+tKz8OzgauV+DiOcr3FCjD6ubDnrrmMJlsf6fFJmggw93mtVPrZRL6yyi9aYCQBOIvg==", "dev": true, - "requires": { + "dependencies": { "@turf/clone": "^6.5.0", "@turf/helpers": "^6.5.0", "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/random": { + "node_modules/@turf/random": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/random/-/random-6.5.0.tgz", "integrity": "sha512-8Q25gQ/XbA7HJAe+eXp4UhcXM9aOOJFaxZ02+XSNwMvY8gtWSCBLVqRcW4OhqilgZ8PeuQDWgBxeo+BIqqFWFQ==", "dev": true, - "requires": { + "dependencies": { "@turf/helpers": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/rectangle-grid": { + "node_modules/@turf/rectangle-grid": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/rectangle-grid/-/rectangle-grid-6.5.0.tgz", "integrity": "sha512-yQZ/1vbW68O2KsSB3OZYK+72aWz/Adnf7m2CMKcC+aq6TwjxZjAvlbCOsNUnMAuldRUVN1ph6RXMG4e9KEvKvg==", "dev": true, - "requires": { + "dependencies": { "@turf/boolean-intersects": "^6.5.0", "@turf/distance": "^6.5.0", "@turf/helpers": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/rewind": { + "node_modules/@turf/rewind": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/rewind/-/rewind-6.5.0.tgz", "integrity": "sha512-IoUAMcHWotBWYwSYuYypw/LlqZmO+wcBpn8ysrBNbazkFNkLf3btSDZMkKJO/bvOzl55imr/Xj4fi3DdsLsbzQ==", "dev": true, - "requires": { + "dependencies": { "@turf/boolean-clockwise": "^6.5.0", "@turf/clone": "^6.5.0", "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0", "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/rhumb-bearing": { + "node_modules/@turf/rhumb-bearing": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/rhumb-bearing/-/rhumb-bearing-6.5.0.tgz", "integrity": "sha512-jMyqiMRK4hzREjQmnLXmkJ+VTNTx1ii8vuqRwJPcTlKbNWfjDz/5JqJlb5NaFDcdMpftWovkW5GevfnuzHnOYA==", "dev": true, - "requires": { + "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/rhumb-destination": { + "node_modules/@turf/rhumb-destination": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/rhumb-destination/-/rhumb-destination-6.5.0.tgz", "integrity": "sha512-RHNP1Oy+7xTTdRrTt375jOZeHceFbjwohPHlr9Hf68VdHHPMAWgAKqiX2YgSWDcvECVmiGaBKWus1Df+N7eE4Q==", "dev": true, - "requires": { + "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/rhumb-distance": { + "node_modules/@turf/rhumb-distance": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/rhumb-distance/-/rhumb-distance-6.5.0.tgz", "integrity": "sha512-oKp8KFE8E4huC2Z1a1KNcFwjVOqa99isxNOwfo4g3SUABQ6NezjKDDrnvC4yI5YZ3/huDjULLBvhed45xdCrzg==", "dev": true, - "requires": { + "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/sample": { + "node_modules/@turf/sample": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/sample/-/sample-6.5.0.tgz", "integrity": "sha512-kSdCwY7el15xQjnXYW520heKUrHwRvnzx8ka4eYxX9NFeOxaFITLW2G7UtXb6LJK8mmPXI8Aexv23F2ERqzGFg==", "dev": true, - "requires": { + "dependencies": { "@turf/helpers": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/sector": { + "node_modules/@turf/sector": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/sector/-/sector-6.5.0.tgz", "integrity": "sha512-cYUOkgCTWqa23SOJBqxoFAc/yGCUsPRdn/ovbRTn1zNTm/Spmk6hVB84LCKOgHqvSF25i0d2kWqpZDzLDdAPbw==", "dev": true, - "requires": { + "dependencies": { "@turf/circle": "^6.5.0", "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0", "@turf/line-arc": "^6.5.0", "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/shortest-path": { + "node_modules/@turf/shortest-path": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/shortest-path/-/shortest-path-6.5.0.tgz", "integrity": "sha512-4de5+G7+P4hgSoPwn+SO9QSi9HY5NEV/xRJ+cmoFVRwv2CDsuOPDheHKeuIAhKyeKDvPvPt04XYWbac4insJMg==", "dev": true, - "requires": { + "dependencies": { "@turf/bbox": "^6.5.0", "@turf/bbox-polygon": "^6.5.0", "@turf/boolean-point-in-polygon": "^6.5.0", @@ -2332,91 +3187,115 @@ "@turf/invariant": "^6.5.0", "@turf/meta": "^6.5.0", "@turf/transform-scale": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/simplify": { + "node_modules/@turf/simplify": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/simplify/-/simplify-6.5.0.tgz", "integrity": "sha512-USas3QqffPHUY184dwQdP8qsvcVH/PWBYdXY5am7YTBACaQOMAlf6AKJs9FT8jiO6fQpxfgxuEtwmox+pBtlOg==", "dev": true, - "requires": { + "dependencies": { "@turf/clean-coords": "^6.5.0", "@turf/clone": "^6.5.0", "@turf/helpers": "^6.5.0", "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/square": { + "node_modules/@turf/square": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/square/-/square-6.5.0.tgz", "integrity": "sha512-BM2UyWDmiuHCadVhHXKIx5CQQbNCpOxB6S/aCNOCLbhCeypKX5Q0Aosc5YcmCJgkwO5BERCC6Ee7NMbNB2vHmQ==", "dev": true, - "requires": { + "dependencies": { "@turf/distance": "^6.5.0", "@turf/helpers": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/square-grid": { + "node_modules/@turf/square-grid": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/square-grid/-/square-grid-6.5.0.tgz", "integrity": "sha512-mlR0ayUdA+L4c9h7p4k3pX6gPWHNGuZkt2c5II1TJRmhLkW2557d6b/Vjfd1z9OVaajb1HinIs1FMSAPXuuUrA==", "dev": true, - "requires": { + "dependencies": { "@turf/helpers": "^6.5.0", "@turf/rectangle-grid": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/standard-deviational-ellipse": { + "node_modules/@turf/standard-deviational-ellipse": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/standard-deviational-ellipse/-/standard-deviational-ellipse-6.5.0.tgz", "integrity": "sha512-02CAlz8POvGPFK2BKK8uHGUk/LXb0MK459JVjKxLC2yJYieOBTqEbjP0qaWhiBhGzIxSMaqe8WxZ0KvqdnstHA==", "dev": true, - "requires": { + "dependencies": { "@turf/center-mean": "^6.5.0", "@turf/ellipse": "^6.5.0", "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0", "@turf/meta": "^6.5.0", "@turf/points-within-polygon": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/tag": { + "node_modules/@turf/tag": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/tag/-/tag-6.5.0.tgz", "integrity": "sha512-XwlBvrOV38CQsrNfrxvBaAPBQgXMljeU0DV8ExOyGM7/hvuGHJw3y8kKnQ4lmEQcmcrycjDQhP7JqoRv8vFssg==", "dev": true, - "requires": { + "dependencies": { "@turf/boolean-point-in-polygon": "^6.5.0", "@turf/clone": "^6.5.0", "@turf/helpers": "^6.5.0", "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/tesselate": { + "node_modules/@turf/tesselate": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/tesselate/-/tesselate-6.5.0.tgz", "integrity": "sha512-M1HXuyZFCfEIIKkglh/r5L9H3c5QTEsnMBoZOFQiRnGPGmJWcaBissGb7mTFX2+DKE7FNWXh4TDnZlaLABB0dQ==", "dev": true, - "requires": { + "dependencies": { "@turf/helpers": "^6.5.0", "earcut": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/tin": { + "node_modules/@turf/tin": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/tin/-/tin-6.5.0.tgz", "integrity": "sha512-YLYikRzKisfwj7+F+Tmyy/LE3d2H7D4kajajIfc9mlik2+esG7IolsX/+oUz1biguDYsG0DUA8kVYXDkobukfg==", "dev": true, - "requires": { + "dependencies": { "@turf/helpers": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/transform-rotate": { + "node_modules/@turf/transform-rotate": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/transform-rotate/-/transform-rotate-6.5.0.tgz", "integrity": "sha512-A2Ip1v4246ZmpssxpcL0hhiVBEf4L8lGnSPWTgSv5bWBEoya2fa/0SnFX9xJgP40rMP+ZzRaCN37vLHbv1Guag==", "dev": true, - "requires": { + "dependencies": { "@turf/centroid": "^6.5.0", "@turf/clone": "^6.5.0", "@turf/helpers": "^6.5.0", @@ -2425,14 +3304,17 @@ "@turf/rhumb-bearing": "^6.5.0", "@turf/rhumb-destination": "^6.5.0", "@turf/rhumb-distance": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/transform-scale": { + "node_modules/@turf/transform-scale": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/transform-scale/-/transform-scale-6.5.0.tgz", "integrity": "sha512-VsATGXC9rYM8qTjbQJ/P7BswKWXHdnSJ35JlV4OsZyHBMxJQHftvmZJsFbOqVtQnIQIzf2OAly6rfzVV9QLr7g==", "dev": true, - "requires": { + "dependencies": { "@turf/bbox": "^6.5.0", "@turf/center": "^6.5.0", "@turf/centroid": "^6.5.0", @@ -2443,48 +3325,60 @@ "@turf/rhumb-bearing": "^6.5.0", "@turf/rhumb-destination": "^6.5.0", "@turf/rhumb-distance": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/transform-translate": { + "node_modules/@turf/transform-translate": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/transform-translate/-/transform-translate-6.5.0.tgz", "integrity": "sha512-NABLw5VdtJt/9vSstChp93pc6oel4qXEos56RBMsPlYB8hzNTEKYtC146XJvyF4twJeeYS8RVe1u7KhoFwEM5w==", "dev": true, - "requires": { + "dependencies": { "@turf/clone": "^6.5.0", "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0", "@turf/meta": "^6.5.0", "@turf/rhumb-destination": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/triangle-grid": { + "node_modules/@turf/triangle-grid": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/triangle-grid/-/triangle-grid-6.5.0.tgz", "integrity": "sha512-2jToUSAS1R1htq4TyLQYPTIsoy6wg3e3BQXjm2rANzw4wPQCXGOxrur1Fy9RtzwqwljlC7DF4tg0OnWr8RjmfA==", "dev": true, - "requires": { + "dependencies": { "@turf/distance": "^6.5.0", "@turf/helpers": "^6.5.0", "@turf/intersect": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/truncate": { + "node_modules/@turf/truncate": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/truncate/-/truncate-6.5.0.tgz", "integrity": "sha512-pFxg71pLk+eJj134Z9yUoRhIi8vqnnKvCYwdT4x/DQl/19RVdq1tV3yqOT3gcTQNfniteylL5qV1uTBDV5sgrg==", "dev": true, - "requires": { + "dependencies": { "@turf/helpers": "^6.5.0", "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/turf": { + "node_modules/@turf/turf": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/turf/-/turf-6.5.0.tgz", "integrity": "sha512-ipMCPnhu59bh92MNt8+pr1VZQhHVuTMHklciQURo54heoxRzt1neNYZOBR6jdL+hNsbDGAECMuIpAutX+a3Y+w==", "dev": true, - "requires": { + "dependencies": { "@turf/along": "^6.5.0", "@turf/angle": "^6.5.0", "@turf/area": "^6.5.0", @@ -2590,365 +3484,413 @@ "@turf/union": "^6.5.0", "@turf/unkink-polygon": "^6.5.0", "@turf/voronoi": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/union": { + "node_modules/@turf/union": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/union/-/union-6.5.0.tgz", "integrity": "sha512-igYWCwP/f0RFHIlC2c0SKDuM/ObBaqSljI3IdV/x71805QbIvY/BYGcJdyNcgEA6cylIGl/0VSlIbpJHZ9ldhw==", "dev": true, - "requires": { + "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0", "polygon-clipping": "^0.15.3" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/unkink-polygon": { + "node_modules/@turf/unkink-polygon": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/unkink-polygon/-/unkink-polygon-6.5.0.tgz", "integrity": "sha512-8QswkzC0UqKmN1DT6HpA9upfa1HdAA5n6bbuzHy8NJOX8oVizVAqfEPY0wqqTgboDjmBR4yyImsdPGUl3gZ8JQ==", "dev": true, - "requires": { + "dependencies": { "@turf/area": "^6.5.0", "@turf/boolean-point-in-polygon": "^6.5.0", "@turf/helpers": "^6.5.0", "@turf/meta": "^6.5.0", "rbush": "^2.0.1" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@turf/voronoi": { + "node_modules/@turf/voronoi": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/voronoi/-/voronoi-6.5.0.tgz", "integrity": "sha512-C/xUsywYX+7h1UyNqnydHXiun4UPjK88VDghtoRypR9cLlb7qozkiLRphQxxsCM0KxyxpVPHBVQXdAL3+Yurow==", "dev": true, - "requires": { + "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0", "d3-voronoi": "1.1.2" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "@types/formatcoords": { + "node_modules/@types/formatcoords": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@types/formatcoords/-/formatcoords-1.1.0.tgz", "integrity": "sha512-T20OHYACraNS/xCoBEmvtUYLc/eYjXaGGDpPFVAyuwarE9KHSGX8DVb3KNBKZ5RQz7fB7qXazZj13520eDSODw==", "dev": true }, - "@types/geojson": { + "node_modules/@types/geojson": { "version": "7946.0.10", "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.10.tgz", "integrity": "sha512-Nmh0K3iWQJzniTuPRcJn5hxXkfB1T1pgB89SBig5PlJQU5yocazeu4jATJlaA0GYFKWMqDdvYemoSnF2pXgLVA==", "dev": true }, - "@types/leaflet": { + "node_modules/@types/leaflet": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@types/leaflet/-/leaflet-1.9.0.tgz", "integrity": "sha512-7LeOSj7EloC5UcyOMo+1kc3S1UT3MjJxwqsMT1d2PTyvQz53w0Y0oSSk9nwZnOZubCmBvpSNGceucxiq+ZPEUw==", "dev": true, - "requires": { + "dependencies": { "@types/geojson": "*" } }, - "@types/node": { + "node_modules/@types/node": { "version": "18.16.1", "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.1.tgz", "integrity": "sha512-DZxSZWXxFfOlx7k7Rv4LAyiMroaxa3Ly/7OOzZO8cBNho0YzAi4qlbrx8W27JGqG57IgR/6J7r+nOJWw6kcvZA==", "dev": true }, - "@types/sortablejs": { + "node_modules/@types/sortablejs": { "version": "1.15.0", "resolved": "https://registry.npmjs.org/@types/sortablejs/-/sortablejs-1.15.0.tgz", "integrity": "sha512-qrhtM7M41EhH4tZQTNw2/RJkxllBx3reiJpTbgWCM2Dx0U1sZ6LwKp9lfNln9uqE26ZMKUaPEYaD4rzvOWYtZw==", "dev": true }, - "@types/svg-injector": { + "node_modules/@types/svg-injector": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/svg-injector/-/svg-injector-0.0.29.tgz", "integrity": "sha512-tNvoN0Xk2si6IfxQI/PqInipOuCyXkDZhCh9Vc4aFv/l1DhIBfTFbXRXYUHBAGXaUNMOCHEtg9475O9J+4NXOg==", "dev": true }, - "JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dev": true, - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - } - }, - "abbrev": { + "node_modules/abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true }, - "accepts": { + "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==", - "requires": { + "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" } }, - "acorn": { + "node_modules/acorn": { "version": "7.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } }, - "acorn-node": { + "node_modules/acorn-node": { "version": "1.8.2", "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", "dev": true, - "requires": { + "dependencies": { "acorn": "^7.0.0", "acorn-walk": "^7.0.0", "xtend": "^4.0.2" } }, - "acorn-walk": { + "node_modules/acorn-walk": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.4.0" + } }, - "ansi-regex": { + "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "ansi-sequence-parser": { + "node_modules/ansi-sequence-parser": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.1.tgz", "integrity": "sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==", "dev": true }, - "ansi-styles": { + "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==", - "requires": { + "dependencies": { "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "any-promise": { + "node_modules/any-promise": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", "dev": true }, - "anymatch": { + "node_modules/anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, - "requires": { + "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" } }, - "array-flatten": { + "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==" }, - "asap": { + "node_modules/asap": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" }, - "asn1.js": { + "node_modules/asn1.js": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", "dev": true, - "requires": { + "dependencies": { "bn.js": "^4.0.0", "inherits": "^2.0.1", "minimalistic-assert": "^1.0.0", "safer-buffer": "^2.1.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } } }, - "assert": { + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/assert": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", "dev": true, - "requires": { + "dependencies": { "object-assign": "^4.1.1", "util": "0.10.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA==", - "dev": true - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha512-5KiHfsmkqacuKjkRkdV7SsfDJ2EGiPsK92s2MhNSY0craxjTdKTtqKsJaCWp4LW33ZZ0OPUv1WO/TFvNQRiQxQ==", - "dev": true, - "requires": { - "inherits": "2.0.1" - } - } } }, - "async": { + "node_modules/assert/node_modules/inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA==", + "dev": true + }, + "node_modules/assert/node_modules/util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha512-5KiHfsmkqacuKjkRkdV7SsfDJ2EGiPsK92s2MhNSY0craxjTdKTtqKsJaCWp4LW33ZZ0OPUv1WO/TFvNQRiQxQ==", + "dev": true, + "dependencies": { + "inherits": "2.0.1" + } + }, + "node_modules/async": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" }, - "available-typed-arrays": { + "node_modules/available-typed-arrays": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "babel-code-frame": { + "node_modules/babel-code-frame": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", "integrity": "sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==", "dev": true, - "requires": { + "dependencies": { "chalk": "^1.1.3", "esutils": "^2.0.2", "js-tokens": "^3.0.2" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==", - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true - } } }, - "babel-messages": { + "node_modules/babel-code-frame/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel-code-frame/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel-code-frame/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel-code-frame/node_modules/js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==", + "dev": true + }, + "node_modules/babel-code-frame/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel-code-frame/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/babel-messages": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", "integrity": "sha512-Bl3ZiA+LjqaMtNYopA9TYE9HP1tQ+E5dLxE0XrAzcIJeK2UqF0/EaqXwBn9esd4UmTfEab+P+UYQ1GnioFIb/w==", "dev": true, - "requires": { + "dependencies": { "babel-runtime": "^6.22.0" } }, - "babel-plugin-import-to-require": { + "node_modules/babel-plugin-import-to-require": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/babel-plugin-import-to-require/-/babel-plugin-import-to-require-1.0.0.tgz", "integrity": "sha512-dc843CwrFivjO8AVgxcHvxl0cb7J7Ed8ZGFP8+PjH3X1CnyzYtAU1WL1349m9Wc/+oqk4ETx2+cIEO2jlp3XyQ==", "dev": true, - "requires": { + "dependencies": { "babel-template": "^6.26.0" } }, - "babel-plugin-polyfill-corejs2": { + "node_modules/babel-plugin-polyfill-corejs2": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", "dev": true, - "requires": { + "dependencies": { "@babel/compat-data": "^7.17.7", "@babel/helper-define-polyfill-provider": "^0.3.3", "semver": "^6.1.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "babel-plugin-polyfill-corejs3": { + "node_modules/babel-plugin-polyfill-corejs3": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-define-polyfill-provider": "^0.3.3", "core-js-compat": "^3.25.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "babel-plugin-polyfill-regenerator": { + "node_modules/babel-plugin-polyfill-regenerator": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-define-polyfill-provider": "^0.3.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "babel-runtime": { + "node_modules/babel-runtime": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==", "dev": true, - "requires": { + "dependencies": { "core-js": "^2.4.0", "regenerator-runtime": "^0.11.0" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "dev": true - } } }, - "babel-template": { + "node_modules/babel-runtime/node_modules/regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "node_modules/babel-template": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", "integrity": "sha512-PCOcLFW7/eazGUKIoqH97sO9A2UYMahsn/yRQ7uOk37iutwjq7ODtcTNF+iFDSHNfkctqsLRjLP7URnOx0T1fg==", "dev": true, - "requires": { + "dependencies": { "babel-runtime": "^6.26.0", "babel-traverse": "^6.26.0", "babel-types": "^6.26.0", @@ -2956,12 +3898,12 @@ "lodash": "^4.17.4" } }, - "babel-traverse": { + "node_modules/babel-traverse": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", "integrity": "sha512-iSxeXx7apsjCHe9c7n8VtRXGzI2Bk1rBSOJgCCjfyXb6v1aCqE1KSEpq/8SXuVN8Ka/Rh1WDTF0MDzkvTA4MIA==", "dev": true, - "requires": { + "dependencies": { "babel-code-frame": "^6.26.0", "babel-messages": "^6.23.0", "babel-runtime": "^6.26.0", @@ -2971,93 +3913,124 @@ "globals": "^9.18.0", "invariant": "^2.2.2", "lodash": "^4.17.4" - }, - "dependencies": { - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true - } } }, - "babel-types": { + "node_modules/babel-traverse/node_modules/globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel-types": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", "integrity": "sha512-zhe3V/26rCWsEZK8kZN+HaQj5yQ1CilTObixFzKW1UWjqG7618Twz6YEsCnjfg5gBcJh02DrpCkS9h98ZqDY+g==", "dev": true, - "requires": { + "dependencies": { "babel-runtime": "^6.26.0", "esutils": "^2.0.2", "lodash": "^4.17.4", "to-fast-properties": "^1.0.3" - }, - "dependencies": { - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og==", - "dev": true - } } }, - "babelify": { + "node_modules/babel-types/node_modules/to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babelify": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/babelify/-/babelify-10.0.0.tgz", "integrity": "sha512-X40FaxyH7t3X+JFAKvb1H9wooWKLRCi8pg3m8poqtdZaIng+bjzp9RvKQCvRjF9isHiPkXspbbXT/zwXLtwgwg==", - "dev": true + "dev": true, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } }, - "babylon": { + "node_modules/babylon": { "version": "6.18.0", "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true + "dev": true, + "bin": { + "babylon": "bin/babylon.js" + } }, - "balanced-match": { + "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==" }, - "base64-js": { + "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true + "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" + } + ] }, - "basic-auth": { + "node_modules/basic-auth": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", - "requires": { + "dependencies": { "safe-buffer": "5.1.2" + }, + "engines": { + "node": ">= 0.8" } }, - "binary-extensions": { + "node_modules/binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "binary-split": { + "node_modules/binary-split": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/binary-split/-/binary-split-1.0.5.tgz", "integrity": "sha512-AQ5fcBrUU5hoIafkEvNKqxT+2xbqlSqAXef6IdCQr5wpHu9E7NGM6rTAlYJYbtxvAvjfx8nJkBy6rNlbPPI+Pw==", "dev": true, - "requires": { + "dependencies": { "through2": "^2.0.3" } }, - "bn.js": { + "node_modules/bn.js": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", "dev": true }, - "body-parser": { + "node_modules/body-parser": { "version": "1.20.2", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", - "requires": { + "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.5", "debug": "2.6.9", @@ -3071,116 +4044,145 @@ "type-is": "~1.6.18", "unpipe": "1.0.0" }, - "dependencies": { - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" - }, - "destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" - }, - "http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "requires": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "requires": { - "ee-first": "1.1.1" - } - }, - "qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "requires": { - "side-channel": "^1.0.4" - } - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" - } + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" } }, - "brace-expansion": { + "node_modules/body-parser/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/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/body-parser/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==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/body-parser/node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/body-parser/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { + "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, - "braces": { + "node_modules/braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, - "requires": { + "dependencies": { "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" } }, - "brorand": { + "node_modules/brorand": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", "dev": true }, - "browser-pack": { + "node_modules/browser-pack": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz", "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==", "dev": true, - "requires": { - "JSONStream": "^1.0.3", + "dependencies": { "combine-source-map": "~0.8.0", "defined": "^1.0.0", + "JSONStream": "^1.0.3", "safe-buffer": "^5.1.1", "through2": "^2.0.0", "umd": "^3.0.0" + }, + "bin": { + "browser-pack": "bin/cmd.js" } }, - "browser-resolve": { + "node_modules/browser-resolve": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz", "integrity": "sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==", "dev": true, - "requires": { + "dependencies": { "resolve": "^1.17.0" } }, - "browserify": { + "node_modules/browserify": { "version": "17.0.0", "resolved": "https://registry.npmjs.org/browserify/-/browserify-17.0.0.tgz", "integrity": "sha512-SaHqzhku9v/j6XsQMRxPyBrSP3gnwmE27gLJYZgMT2GeK3J0+0toN+MnuNYDfHwVGQfLiMZ7KSNSIXHemy905w==", "dev": true, - "requires": { - "JSONStream": "^1.0.3", + "dependencies": { "assert": "^1.4.0", "browser-pack": "^6.0.1", "browser-resolve": "^2.0.0", @@ -3202,6 +4204,7 @@ "https-browserify": "^1.0.0", "inherits": "~2.0.1", "insert-module-globals": "^7.2.1", + "JSONStream": "^1.0.3", "labeled-stream-splicer": "^2.0.0", "mkdirp-classic": "^0.5.2", "module-deps": "^6.2.3", @@ -3228,14 +4231,20 @@ "util": "~0.12.0", "vm-browserify": "^1.0.0", "xtend": "^4.0.0" + }, + "bin": { + "browserify": "bin/cmd.js" + }, + "engines": { + "node": ">= 0.8" } }, - "browserify-aes": { + "node_modules/browserify-aes": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "dev": true, - "requires": { + "dependencies": { "buffer-xor": "^1.0.3", "cipher-base": "^1.0.0", "create-hash": "^1.1.0", @@ -3244,45 +4253,45 @@ "safe-buffer": "^5.0.1" } }, - "browserify-cipher": { + "node_modules/browserify-cipher": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", "dev": true, - "requires": { + "dependencies": { "browserify-aes": "^1.0.4", "browserify-des": "^1.0.0", "evp_bytestokey": "^1.0.0" } }, - "browserify-des": { + "node_modules/browserify-des": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", "dev": true, - "requires": { + "dependencies": { "cipher-base": "^1.0.1", "des.js": "^1.0.0", "inherits": "^2.0.1", "safe-buffer": "^5.1.2" } }, - "browserify-rsa": { + "node_modules/browserify-rsa": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", "dev": true, - "requires": { + "dependencies": { "bn.js": "^5.0.0", "randombytes": "^2.0.1" } }, - "browserify-sign": { + "node_modules/browserify-sign": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", "dev": true, - "requires": { + "dependencies": { "bn.js": "^5.1.1", "browserify-rsa": "^4.0.1", "create-hash": "^1.2.0", @@ -3292,242 +4301,320 @@ "parse-asn1": "^5.1.5", "readable-stream": "^3.6.0", "safe-buffer": "^5.2.0" - }, - "dependencies": { - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } } }, - "browserify-zlib": { + "node_modules/browserify-sign/node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/browserify-sign/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/browserify-sign/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/browserify-zlib": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", "dev": true, - "requires": { + "dependencies": { "pako": "~1.0.5" } }, - "browserslist": { + "node_modules/browserslist": { "version": "4.21.5", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", "dev": true, - "requires": { + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { "caniuse-lite": "^1.0.30001449", "electron-to-chromium": "^1.4.284", "node-releases": "^2.0.8", "update-browserslist-db": "^1.0.10" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "buffer": { + "node_modules/buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", "dev": true, - "requires": { + "dependencies": { "base64-js": "^1.0.2", "ieee754": "^1.1.4" } }, - "buffer-crc32": { + "node_modules/buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==" + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "engines": { + "node": "*" + } }, - "buffer-from": { + "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 }, - "buffer-xor": { + "node_modules/buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", "dev": true }, - "builtin-status-codes": { + "node_modules/builtin-status-codes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", "dev": true }, - "bytes": { + "node_modules/bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } }, - "cached-path-relative": { + "node_modules/cached-path-relative": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.1.0.tgz", "integrity": "sha512-WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA==", "dev": true }, - "call-bind": { + "node_modules/call-bind": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "requires": { + "dependencies": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "caniuse-lite": { + "node_modules/caniuse-lite": { "version": "1.0.30001481", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001481.tgz", "integrity": "sha512-KCqHwRnaa1InZBtqXzP98LPg0ajCVujMKjqKDhZEthIpAsJl/YEIa3YvXjGXPVqzZVguccuu7ga9KOE1J9rKPQ==", - "dev": true + "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" + } + ] }, - "chalk": { + "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { + "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "chokidar": { + "node_modules/chokidar": { "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "dev": true, - "requires": { + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", - "fsevents": "~2.3.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" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "cipher-base": { + "node_modules/cipher-base": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "dev": true, - "requires": { + "dependencies": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" } }, - "cliui": { + "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==", "dev": true, - "requires": { + "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" } }, - "color-convert": { + "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==", - "requires": { + "dependencies": { "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, - "color-name": { + "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==" }, - "combine-source-map": { + "node_modules/combine-source-map": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", "integrity": "sha512-UlxQ9Vw0b/Bt/KYwCFqdEwsQ1eL8d1gibiFb7lxQJFdvTgc2hIZi6ugsg+kyhzhPV+QEpUiEIwInIAIrgoEkrg==", "dev": true, - "requires": { + "dependencies": { "convert-source-map": "~1.1.0", "inline-source-map": "~0.6.0", "lodash.memoize": "~3.0.3", "source-map": "~0.5.3" } }, - "commander": { + "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 }, - "concat-map": { + "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, - "concat-stream": { + "node_modules/concat-stream": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "dev": true, - "requires": { + "engines": [ + "node >= 0.8" + ], + "dependencies": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", "readable-stream": "^2.2.2", "typedarray": "^0.0.6" } }, - "concaveman": { + "node_modules/concaveman": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/concaveman/-/concaveman-1.2.1.tgz", "integrity": "sha512-PwZYKaM/ckQSa8peP5JpVr7IMJ4Nn/MHIaWUjP4be+KoZ7Botgs8seAZGpmaOM+UZXawcdYRao/px9ycrCihHw==", "dev": true, - "requires": { + "dependencies": { "point-in-polygon": "^1.1.0", "rbush": "^3.0.1", "robust-predicates": "^2.0.4", "tinyqueue": "^2.0.3" - }, - "dependencies": { - "quickselect": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", - "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==", - "dev": true - }, - "rbush": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/rbush/-/rbush-3.0.1.tgz", - "integrity": "sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==", - "dev": true, - "requires": { - "quickselect": "^2.0.0" - } - } } }, - "concurrently": { + "node_modules/concaveman/node_modules/quickselect": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", + "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==", + "dev": true + }, + "node_modules/concaveman/node_modules/rbush": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/rbush/-/rbush-3.0.1.tgz", + "integrity": "sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==", + "dev": true, + "dependencies": { + "quickselect": "^2.0.0" + } + }, + "node_modules/concurrently": { "version": "7.6.0", "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-7.6.0.tgz", "integrity": "sha512-BKtRgvcJGeZ4XttiDiNcFiRlxoAeZOseqUvyYRUp/Vtd+9p1ULmeoSqGsDA+2ivdeDFpqrJvGvmI+StKfKl5hw==", "dev": true, - "requires": { + "dependencies": { "chalk": "^4.1.0", "date-fns": "^2.29.1", "lodash": "^4.17.21", @@ -3538,116 +4625,146 @@ "tree-kill": "^1.2.2", "yargs": "^17.3.1" }, - "dependencies": { - "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, - "requires": { - "has-flag": "^4.0.0" - } - } + "bin": { + "conc": "dist/bin/concurrently.js", + "concurrently": "dist/bin/concurrently.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/open-cli-tools/concurrently?sponsor=1" } }, - "console-browserify": { + "node_modules/concurrently/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/console-browserify": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", "dev": true }, - "constants-browserify": { + "node_modules/constants-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", "dev": true }, - "content-disposition": { + "node_modules/content-disposition": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", - "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==" + "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==", + "engines": { + "node": ">= 0.6" + } }, - "content-type": { + "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==" + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } }, - "convert-source-map": { + "node_modules/convert-source-map": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", "integrity": "sha512-Y8L5rp6jo+g9VEPgvqNfEopjTR4OTYct8lXlS8iVQdmnjDvbdbzYe9rjtFCB9egC86JoNCU61WRY+ScjkZpnIg==", "dev": true }, - "cookie": { + "node_modules/cookie": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==" + "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", + "engines": { + "node": ">= 0.6" + } }, - "cookie-parser": { + "node_modules/cookie-parser": { "version": "1.4.6", "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz", "integrity": "sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==", - "requires": { + "dependencies": { "cookie": "0.4.1", "cookie-signature": "1.0.6" + }, + "engines": { + "node": ">= 0.8.0" } }, - "cookie-signature": { + "node_modules/cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" }, - "core-js": { + "node_modules/core-js": { "version": "2.6.12", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", - "dev": true + "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", + "dev": true, + "hasInstallScript": true }, - "core-js-compat": { + "node_modules/core-js-compat": { "version": "3.30.1", "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.30.1.tgz", "integrity": "sha512-d690npR7MC6P0gq4npTl5n2VQeNAmUrJ90n+MHiKS7W2+xno4o3F5GDEuylSdi6EJ3VssibSGXOa1r3YXD3Mhw==", "dev": true, - "requires": { + "dependencies": { "browserslist": "^4.21.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" } }, - "core-util-is": { + "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 }, - "cp": { + "node_modules/cp": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/cp/-/cp-0.2.0.tgz", "integrity": "sha512-4ftCvShHjIZG/zzomHyunNpBof3sOFTTmU6s6q9DdqAL/ANqrKV3pr6Z6kVfBI4hjn59DFLImrBqn7GuuMqSZA==", "dev": true }, - "create-ecdh": { + "node_modules/create-ecdh": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", "dev": true, - "requires": { + "dependencies": { "bn.js": "^4.1.0", "elliptic": "^6.5.3" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } } }, - "create-hash": { + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/create-hash": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "dev": true, - "requires": { + "dependencies": { "cipher-base": "^1.0.1", "inherits": "^2.0.1", "md5.js": "^1.3.4", @@ -3655,12 +4772,12 @@ "sha.js": "^2.4.0" } }, - "create-hmac": { + "node_modules/create-hmac": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "dev": true, - "requires": { + "dependencies": { "cipher-base": "^1.0.3", "create-hash": "^1.1.0", "inherits": "^2.0.1", @@ -3669,12 +4786,12 @@ "sha.js": "^2.4.8" } }, - "crypto-browserify": { + "node_modules/crypto-browserify": { "version": "3.12.0", "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", "dev": true, - "requires": { + "dependencies": { "browserify-cipher": "^1.0.0", "browserify-sign": "^4.0.0", "create-ecdh": "^4.0.0", @@ -3686,207 +4803,249 @@ "public-encrypt": "^4.0.0", "randombytes": "^2.0.0", "randomfill": "^1.0.3" + }, + "engines": { + "node": "*" } }, - "d3-array": { + "node_modules/d3-array": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==", "dev": true }, - "d3-geo": { + "node_modules/d3-geo": { "version": "1.7.1", "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.7.1.tgz", "integrity": "sha512-O4AempWAr+P5qbk2bC2FuN/sDW4z+dN2wDf9QV3bxQt4M5HfOEeXLgJ/UKQW0+o1Dj8BE+L5kiDbdWUMjsmQpw==", "dev": true, - "requires": { + "dependencies": { "d3-array": "1" } }, - "d3-voronoi": { + "node_modules/d3-voronoi": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/d3-voronoi/-/d3-voronoi-1.1.2.tgz", "integrity": "sha512-RhGS1u2vavcO7ay7ZNAPo4xeDh/VYeGof3x5ZLJBQgYhLegxr3s5IykvWmJ94FTU6mcbtp4sloqZ54mP6R4Utw==", "dev": true }, - "dash-ast": { + "node_modules/dash-ast": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==", "dev": true }, - "date-fns": { + "node_modules/date-fns": { "version": "2.29.3", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz", "integrity": "sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.11" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/date-fns" + } }, - "dbly-linked-list": { + "node_modules/dbly-linked-list": { "version": "0.3.4", "resolved": "https://registry.npmjs.org/dbly-linked-list/-/dbly-linked-list-0.3.4.tgz", "integrity": "sha512-327vOlwspi9i1T3Kc9yZhRUR8qDdgMQ4HmXsFDDCQ/HTc3sNe7gnF5b0UrsnaOJ0rvmG7yBZpK0NoOux9rKYKw==", "dev": true, - "requires": { + "dependencies": { "lodash.isequal": "^4.5.0" } }, - "debug": { + "node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { + "dependencies": { "ms": "2.0.0" } }, - "deep-equal": { + "node_modules/deep-equal": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", "dev": true, - "requires": { + "dependencies": { "is-arguments": "^1.0.4", "is-date-object": "^1.0.1", "is-regex": "^1.0.4", "object-is": "^1.0.1", "object-keys": "^1.1.1", "regexp.prototype.flags": "^1.2.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "define-properties": { + "node_modules/define-properties": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", "dev": true, - "requires": { + "dependencies": { "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "defined": { + "node_modules/defined": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==", - "dev": true + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "density-clustering": { + "node_modules/density-clustering": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/density-clustering/-/density-clustering-1.3.0.tgz", "integrity": "sha512-icpmBubVTwLnsaor9qH/4tG5+7+f61VcqMN3V3pm9sxxSCt2Jcs0zWOgwZW9ARJYaKD3FumIgHiMOcIMRRAzFQ==", "dev": true }, - "depd": { + "node_modules/depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==" + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "engines": { + "node": ">= 0.6" + } }, - "deps-sort": { + "node_modules/deps-sort": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.1.tgz", "integrity": "sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw==", "dev": true, - "requires": { + "dependencies": { "JSONStream": "^1.0.3", "shasum-object": "^1.0.0", "subarg": "^1.0.0", "through2": "^2.0.0" + }, + "bin": { + "deps-sort": "bin/cmd.js" } }, - "des.js": { + "node_modules/des.js": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", "dev": true, - "requires": { + "dependencies": { "inherits": "^2.0.1", "minimalistic-assert": "^1.0.0" } }, - "destroy": { + "node_modules/destroy": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", "integrity": "sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg==" }, - "detective": { + "node_modules/detective": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz", "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==", "dev": true, - "requires": { + "dependencies": { "acorn-node": "^1.8.2", "defined": "^1.0.0", "minimist": "^1.2.6" + }, + "bin": { + "detective": "bin/detective.js" + }, + "engines": { + "node": ">=0.8.0" } }, - "diffie-hellman": { + "node_modules/diffie-hellman": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", "dev": true, - "requires": { + "dependencies": { "bn.js": "^4.1.0", "miller-rabin": "^4.0.0", "randombytes": "^2.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } } }, - "domain-browser": { + "node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/domain-browser": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.4", + "npm": ">=1.2" + } }, - "duplexer": { + "node_modules/duplexer": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" }, - "duplexer2": { + "node_modules/duplexer2": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", "dev": true, - "requires": { + "dependencies": { "readable-stream": "^2.0.2" } }, - "earcut": { + "node_modules/earcut": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz", "integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==", "dev": true }, - "ee-first": { + "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==" }, - "ejs": { + "node_modules/ejs": { "version": "3.1.8", "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz", "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==", - "requires": { + "dependencies": { "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" } }, - "electron-to-chromium": { + "node_modules/electron-to-chromium": { "version": "1.4.371", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.371.tgz", "integrity": "sha512-jlBzY4tFcJaiUjzhRTCWAqRvTO/fWzjA3Bls0mykzGZ7zvcMP7h05W6UcgzfT9Ca1SW2xyKDOFRyI0pQeRNZGw==", "dev": true }, - "elliptic": { + "node_modules/elliptic": { "version": "6.5.4", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", "dev": true, - "requires": { + "dependencies": { "bn.js": "^4.11.9", "brorand": "^1.1.0", "hash.js": "^1.0.0", @@ -3894,65 +5053,72 @@ "inherits": "^2.0.4", "minimalistic-assert": "^1.0.1", "minimalistic-crypto-utils": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - } } }, - "emoji-regex": { + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/elliptic/node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, - "encodeurl": { + "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==" + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } }, - "error-ex": { + "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, - "requires": { + "dependencies": { "is-arrayish": "^0.2.1" } }, - "escalade": { + "node_modules/escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + } }, - "escape-html": { + "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==" }, - "escape-string-regexp": { + "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 + "dev": true, + "engines": { + "node": ">=0.8.0" + } }, - "esmify": { + "node_modules/esmify": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/esmify/-/esmify-2.1.1.tgz", "integrity": "sha512-GyOVgjG7sNyYB5Mbo15Ll4aGrcXZzZ3LI22rbLOjCI7L/wYelzQpBHRZkZkqbPNZ/QIRilcaHqzgNCLcEsi1lQ==", "dev": true, - "requires": { + "dependencies": { "@babel/core": "^7.2.2", "@babel/plugin-syntax-async-generators": "^7.2.0", "@babel/plugin-syntax-dynamic-import": "^7.2.0", @@ -3965,22 +5131,28 @@ "through2": "^2.0.5" } }, - "esutils": { + "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 + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "etag": { + "node_modules/etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } }, - "event-stream": { + "node_modules/event-stream": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-4.0.1.tgz", "integrity": "sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA==", - "requires": { + "dependencies": { "duplexer": "^0.1.1", "from": "^0.1.7", "map-stream": "0.0.7", @@ -3990,32 +5162,35 @@ "through": "^2.3.8" } }, - "events": { + "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 + "dev": true, + "engines": { + "node": ">=0.8.x" + } }, - "events-intercept": { + "node_modules/events-intercept": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/events-intercept/-/events-intercept-2.0.0.tgz", "integrity": "sha512-blk1va0zol9QOrdZt0rFXo5KMkNPVSp92Eju/Qz8THwKWKRKeE0T8Br/1aW6+Edkyq9xHYgYxn2QtOnUKPUp+Q==" }, - "evp_bytestokey": { + "node_modules/evp_bytestokey": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "dev": true, - "requires": { + "dependencies": { "md5.js": "^1.3.4", "safe-buffer": "^5.1.1" } }, - "express": { + "node_modules/express": { "version": "4.16.4", "resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz", "integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==", - "requires": { + "dependencies": { "accepts": "~1.3.5", "array-flatten": "1.1.1", "body-parser": "1.18.3", @@ -4047,122 +5222,142 @@ "utils-merge": "1.0.1", "vary": "~1.1.2" }, - "dependencies": { - "body-parser": { - "version": "1.18.3", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", - "integrity": "sha512-YQyoqQG3sO8iCmf8+hyVpgHHOv0/hCEFiS4zTGUwTA1HjAFX66wRcNQrVCeJq9pgESMRvUAOvSil5MJlmccuKQ==", - "requires": { - "bytes": "3.0.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "~1.6.3", - "iconv-lite": "0.4.23", - "on-finished": "~2.3.0", - "qs": "6.5.2", - "raw-body": "2.3.3", - "type-is": "~1.6.16" - } - }, - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==" - }, - "cookie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha512-+IJOX0OqlHCszo2mBUq+SrEbCj6w7Kpffqx60zYbPTFaO4+yYgRjHwcZNpWvaTylDHaV7PPmBHzSecZiMhtPgw==" - }, - "iconv-lite": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", - "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "raw-body": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", - "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", - "requires": { - "bytes": "3.0.0", - "http-errors": "1.6.3", - "iconv-lite": "0.4.23", - "unpipe": "1.0.0" - } - } + "engines": { + "node": ">= 0.10.0" } }, - "express-basic-auth": { + "node_modules/express-basic-auth": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/express-basic-auth/-/express-basic-auth-1.2.1.tgz", "integrity": "sha512-L6YQ1wQ/mNjVLAmK3AG1RK6VkokA1BIY6wmiH304Xtt/cLTps40EusZsU1Uop+v9lTDPxdtzbFmdXfFO3KEnwA==", - "requires": { + "dependencies": { "basic-auth": "^2.0.1" } }, - "extend": { + "node_modules/express/node_modules/body-parser": { + "version": "1.18.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", + "integrity": "sha512-YQyoqQG3sO8iCmf8+hyVpgHHOv0/hCEFiS4zTGUwTA1HjAFX66wRcNQrVCeJq9pgESMRvUAOvSil5MJlmccuKQ==", + "dependencies": { + "bytes": "3.0.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "~1.6.3", + "iconv-lite": "0.4.23", + "on-finished": "~2.3.0", + "qs": "6.5.2", + "raw-body": "2.3.3", + "type-is": "~1.6.16" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha512-+IJOX0OqlHCszo2mBUq+SrEbCj6w7Kpffqx60zYbPTFaO4+yYgRjHwcZNpWvaTylDHaV7PPmBHzSecZiMhtPgw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/iconv-lite": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", + "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/express/node_modules/raw-body": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", + "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", + "dependencies": { + "bytes": "3.0.0", + "http-errors": "1.6.3", + "iconv-lite": "0.4.23", + "unpipe": "1.0.0" + }, + "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==" }, - "fast-safe-stringify": { + "node_modules/fast-safe-stringify": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", "dev": true }, - "fd-slicer": { + "node_modules/fd-slicer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "requires": { + "dependencies": { "pend": "~1.2.0" } }, - "filelist": { + "node_modules/filelist": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", - "requires": { - "minimatch": "^5.0.1" - }, "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.2.tgz", - "integrity": "sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg==", - "requires": { - "brace-expansion": "^2.0.1" - } - } + "minimatch": "^5.0.1" } }, - "fill-range": { + "node_modules/filelist/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==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, - "requires": { + "dependencies": { "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "finalhandler": { + "node_modules/finalhandler": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", - "requires": { + "dependencies": { "debug": "2.6.9", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", @@ -4170,764 +5365,1001 @@ "parseurl": "~1.3.2", "statuses": "~1.4.0", "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" } }, - "for-each": { + "node_modules/for-each": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "dev": true, - "requires": { + "dependencies": { "is-callable": "^1.1.3" } }, - "formatcoords": { + "node_modules/formatcoords": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/formatcoords/-/formatcoords-1.1.3.tgz", "integrity": "sha512-Ittg5/AsYFCOtcFGPLSmVpP56a8Ionmv4Ys69UmCAdvBnqVzvVVbkZMnjWEmXrZvnmoGQE8YI3RhnxbMQFdYSw==", "dev": true }, - "forwarded": { + "node_modules/forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } }, - "fresh": { + "node_modules/fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } }, - "from": { + "node_modules/from": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==" }, - "fs.realpath": { + "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 }, - "fsevents": { + "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, - "optional": true + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } }, - "function-bind": { + "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, - "functions-have-names": { + "node_modules/functions-have-names": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "gensync": { + "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 + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, - "geodesy": { + "node_modules/geodesy": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/geodesy/-/geodesy-1.1.3.tgz", "integrity": "sha512-H/0XSd1KjKZGZ2YGZcOYzRyY/foYAawwTEumNSo+YUwf+u5d4CfvBRg2i2Qimrx9yUEjWR8hLvMnhghuVFN0Zg==", "dev": true }, - "geojson-equality": { + "node_modules/geojson-equality": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/geojson-equality/-/geojson-equality-0.1.6.tgz", "integrity": "sha512-TqG8YbqizP3EfwP5Uw4aLu6pKkg6JQK9uq/XZ1lXQntvTHD1BBKJWhNpJ2M0ax6TuWMP3oyx6Oq7FCIfznrgpQ==", "dev": true, - "requires": { + "dependencies": { "deep-equal": "^1.0.0" } }, - "geojson-rbush": { + "node_modules/geojson-rbush": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/geojson-rbush/-/geojson-rbush-3.2.0.tgz", "integrity": "sha512-oVltQTXolxvsz1sZnutlSuLDEcQAKYC/uXt9zDzJJ6bu0W+baTI8LZBaTup5afzibEH4N3jlq2p+a152wlBJ7w==", "dev": true, - "requires": { + "dependencies": { "@turf/bbox": "*", "@turf/helpers": "6.x", "@turf/meta": "6.x", "@types/geojson": "7946.0.8", "rbush": "^3.0.1" - }, - "dependencies": { - "@types/geojson": { - "version": "7946.0.8", - "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.8.tgz", - "integrity": "sha512-1rkryxURpr6aWP7R786/UQOkJ3PcpQiWkAXBmdWc7ryFWqN6a4xfK7BtjXvFBKO9LjQ+MWQSWxYeZX1OApnArA==", - "dev": true - }, - "quickselect": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", - "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==", - "dev": true - }, - "rbush": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/rbush/-/rbush-3.0.1.tgz", - "integrity": "sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==", - "dev": true, - "requires": { - "quickselect": "^2.0.0" - } - } } }, - "get-assigned-identifiers": { + "node_modules/geojson-rbush/node_modules/@types/geojson": { + "version": "7946.0.8", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.8.tgz", + "integrity": "sha512-1rkryxURpr6aWP7R786/UQOkJ3PcpQiWkAXBmdWc7ryFWqN6a4xfK7BtjXvFBKO9LjQ+MWQSWxYeZX1OApnArA==", + "dev": true + }, + "node_modules/geojson-rbush/node_modules/quickselect": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", + "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==", + "dev": true + }, + "node_modules/geojson-rbush/node_modules/rbush": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/rbush/-/rbush-3.0.1.tgz", + "integrity": "sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==", + "dev": true, + "dependencies": { + "quickselect": "^2.0.0" + } + }, + "node_modules/get-assigned-identifiers": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==", "dev": true }, - "get-caller-file": { + "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } }, - "get-intrinsic": { + "node_modules/get-intrinsic": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", - "requires": { + "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "glob": { + "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, - "requires": { + "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" } }, - "glob-parent": { + "node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, - "requires": { + "dependencies": { "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" } }, - "globals": { + "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 + "dev": true, + "engines": { + "node": ">=4" + } }, - "gopd": { + "node_modules/gopd": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", "dev": true, - "requires": { + "dependencies": { "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "has": { + "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { + "dependencies": { "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" } }, - "has-ansi": { + "node_modules/has-ansi": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", "dev": true, - "requires": { + "dependencies": { "ansi-regex": "^2.0.0" }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true - } + "engines": { + "node": ">=0.10.0" } }, - "has-flag": { + "node_modules/has-ansi/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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==" + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } }, - "has-property-descriptors": { + "node_modules/has-property-descriptors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", "dev": true, - "requires": { + "dependencies": { "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "has-symbols": { + "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==" + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "has-tostringtag": { + "node_modules/has-tostringtag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", "dev": true, - "requires": { + "dependencies": { "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "hash-base": { + "node_modules/hash-base": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", "dev": true, - "requires": { + "dependencies": { "inherits": "^2.0.4", "readable-stream": "^3.6.0", "safe-buffer": "^5.2.0" }, - "dependencies": { - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } + "engines": { + "node": ">=4" } }, - "hash.js": { + "node_modules/hash-base/node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/hash-base/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/hash-base/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/hash.js": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", "dev": true, - "requires": { + "dependencies": { "inherits": "^2.0.3", "minimalistic-assert": "^1.0.1" } }, - "hmac-drbg": { + "node_modules/hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", "dev": true, - "requires": { + "dependencies": { "hash.js": "^1.0.3", "minimalistic-assert": "^1.0.0", "minimalistic-crypto-utils": "^1.0.1" } }, - "htmlescape": { + "node_modules/htmlescape": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", "integrity": "sha512-eVcrzgbR4tim7c7soKQKtxa/kQM4TzjnlU83rcZ9bHU6t31ehfV7SktN6McWgwPWg+JYMA/O3qpGxBvFq1z2Jg==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10" + } }, - "http-errors": { + "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==", - "requires": { + "dependencies": { "depd": "~1.1.2", "inherits": "2.0.3", "setprototypeof": "1.1.0", "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" } }, - "https-browserify": { + "node_modules/https-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", "dev": true }, - "iconv-lite": { + "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==", - "requires": { + "dependencies": { "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" } }, - "ieee754": { + "node_modules/ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true + "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" + } + ] }, - "ignore-by-default": { + "node_modules/ignore-by-default": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", "dev": true }, - "inflight": { + "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==", "dev": true, - "requires": { + "dependencies": { "once": "^1.3.0", "wrappy": "1" } }, - "inherits": { + "node_modules/inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" }, - "inline-source-map": { + "node_modules/inline-source-map": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", "integrity": "sha512-0mVWSSbNDvedDWIN4wxLsdPM4a7cIPcpyMxj3QZ406QRwQ6ePGB1YIHxVPjqpcUGbWQ5C+nHTwGNWAGvt7ggVA==", "dev": true, - "requires": { + "dependencies": { "source-map": "~0.5.3" } }, - "insert-module-globals": { + "node_modules/insert-module-globals": { "version": "7.2.1", "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.1.tgz", "integrity": "sha512-ufS5Qq9RZN+Bu899eA9QCAYThY+gGW7oRkmb0vC93Vlyu/CFGcH0OYPEjVkDXA5FEbTt1+VWzdoOD3Ny9N+8tg==", "dev": true, - "requires": { - "JSONStream": "^1.0.3", + "dependencies": { "acorn-node": "^1.5.2", "combine-source-map": "^0.8.0", "concat-stream": "^1.6.1", "is-buffer": "^1.1.0", + "JSONStream": "^1.0.3", "path-is-absolute": "^1.0.1", "process": "~0.11.0", "through2": "^2.0.0", "undeclared-identifiers": "^1.1.2", "xtend": "^4.0.0" + }, + "bin": { + "insert-module-globals": "bin/cmd.js" } }, - "invariant": { + "node_modules/invariant": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "dev": true, - "requires": { + "dependencies": { "loose-envify": "^1.0.0" } }, - "ipaddr.js": { + "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==" + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } }, - "is-arguments": { + "node_modules/is-arguments": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-arrayish": { + "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 }, - "is-binary-path": { + "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, - "requires": { + "dependencies": { "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" } }, - "is-buffer": { + "node_modules/is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, - "is-callable": { + "node_modules/is-callable": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "is-core-module": { + "node_modules/is-core-module": { "version": "2.11.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", "dev": true, - "requires": { + "dependencies": { "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-date-object": { + "node_modules/is-date-object": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dev": true, - "requires": { + "dependencies": { "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-extglob": { + "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "is-fullwidth-code-point": { + "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "is-generator-function": { + "node_modules/is-generator-function": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", "dev": true, - "requires": { + "dependencies": { "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-glob": { + "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, - "requires": { + "dependencies": { "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "is-number": { + "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.12.0" + } }, - "is-regex": { + "node_modules/is-regex": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-typed-array": { + "node_modules/is-typed-array": { "version": "1.1.10", "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", "dev": true, - "requires": { + "dependencies": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", "for-each": "^0.3.3", "gopd": "^1.0.1", "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-utf8": { + "node_modules/is-utf8": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", "dev": true }, - "isarray": { + "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 }, - "jake": { + "node_modules/jake": { "version": "10.8.5", "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", - "requires": { + "dependencies": { "async": "^3.2.3", "chalk": "^4.0.2", "filelist": "^1.0.1", "minimatch": "^3.0.4" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" } }, - "js-tokens": { + "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 }, - "jsesc": { + "node_modules/jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } }, - "json5": { + "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 + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } }, - "jsonc-parser": { + "node_modules/jsonc-parser": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", "dev": true }, - "jsonparse": { + "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==", - "dev": true + "dev": true, + "engines": [ + "node >= 0.2.0" + ] }, - "labeled-stream-splicer": { + "node_modules/JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/labeled-stream-splicer": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz", "integrity": "sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw==", "dev": true, - "requires": { + "dependencies": { "inherits": "^2.0.1", "stream-splicer": "^2.0.0" } }, - "leaflet": { + "node_modules/leaflet": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.9.3.tgz", "integrity": "sha512-iB2cR9vAkDOu5l3HAay2obcUHZ7xwUBBjph8+PGtmW/2lYhbLizWtG7nTeYht36WfOslixQF9D/uSIzhZgGMfQ==", "dev": true }, - "leaflet-control-mini-map": { + "node_modules/leaflet-control-mini-map": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/leaflet-control-mini-map/-/leaflet-control-mini-map-0.4.0.tgz", "integrity": "sha512-qnetYIYFqlrAbX7MaGsAkBsuA2fg3Z4xDRlEXJN1wSrnhNsIhQUzXt7Z3vapdEzx4r7VUqWTaqHYd7eY5C6Gfw==", - "dev": true + "dev": true, + "peerDependencies": { + "leaflet": ">=1.7.0" + } }, - "leaflet-gesture-handling": { + "node_modules/leaflet-gesture-handling": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/leaflet-gesture-handling/-/leaflet-gesture-handling-1.2.2.tgz", "integrity": "sha512-Blf5V4PoNphWkzL7Y1qge+Spkd4OCQ2atjwUNhMhLIcjKzPcBH++x/lwOinaR9jSqLWqJ6oKYO8d0XdTffy4hQ==" }, - "leaflet-path-drag": { + "node_modules/leaflet-path-drag": { "version": "1.8.0-beta.3", "resolved": "https://registry.npmjs.org/leaflet-path-drag/-/leaflet-path-drag-1.8.0-beta.3.tgz", "integrity": "sha512-kpZ6sPOKlR+m+VChIzZZ7XFH4C+VGTrAxgnM4UN5iYl7lJ00iDOxS+r717bDf/xFFHB6n2jpUp9vvzjjteMpeQ==", "dev": true }, - "leaflet.nauticscale": { + "node_modules/leaflet.nauticscale": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/leaflet.nauticscale/-/leaflet.nauticscale-1.1.0.tgz", "integrity": "sha512-kJqOVuY0bk3CjSWb1CUYsjXiM+W1K0TrlJmMjl/wVubKK2y0PZ+XxkIyD6cxVsKQGlJvLGMvrSqaYdj5LW1O1Q==", "dev": true }, - "lodash": { + "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, - "lodash.assign": { + "node_modules/lodash.assign": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", "integrity": "sha512-hFuH8TY+Yji7Eja3mGiuAxBqLagejScbG8GbG0j6o9vzn0YL14My+ktnqtZgFTosKymC9/44wP6s7xyuLfnClw==" }, - "lodash.debounce": { + "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 }, - "lodash.isequal": { + "node_modules/lodash.isequal": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", "dev": true }, - "lodash.memoize": { + "node_modules/lodash.memoize": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", "integrity": "sha512-eDn9kqrAmVUC1wmZvlQ6Uhde44n+tXpqPrN8olQJbttgh0oKclk+SF54P47VEGE9CEiMeRwAP8BaM7UHvBkz2A==", "dev": true }, - "loose-envify": { + "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "dev": true, - "requires": { + "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" } }, - "lru-cache": { + "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, - "requires": { + "dependencies": { "yallist": "^3.0.2" } }, - "lunr": { + "node_modules/lunr": { "version": "2.3.9", "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", "dev": true }, - "map-stream": { + "node_modules/map-stream": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", "integrity": "sha512-C0X0KQmGm3N2ftbTGBhSyuydQ+vV1LC3f3zPvT3RXHXNZrvfPZcoXp/N5DOa8vedX/rTMm2CjTtivFg2STJMRQ==" }, - "marked": { + "node_modules/marked": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", - "dev": true + "dev": true, + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 12" + } }, - "md5.js": { + "node_modules/md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", "dev": true, - "requires": { + "dependencies": { "hash-base": "^3.0.0", "inherits": "^2.0.1", "safe-buffer": "^5.1.2" } }, - "media-typer": { + "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==" + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } }, - "merge-descriptors": { + "node_modules/merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" }, - "methods": { + "node_modules/methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } }, - "miller-rabin": { + "node_modules/miller-rabin": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", "dev": true, - "requires": { + "dependencies": { "bn.js": "^4.0.0", "brorand": "^1.0.1" }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } + "bin": { + "miller-rabin": "bin/miller-rabin" } }, - "mime": { + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/mime": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", - "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", + "bin": { + "mime": "cli.js" + } }, - "mime-db": { + "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==" + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } }, - "mime-types": { + "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==", - "requires": { + "dependencies": { "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" } }, - "mingo": { + "node_modules/mingo": { "version": "6.2.7", "resolved": "https://registry.npmjs.org/mingo/-/mingo-6.2.7.tgz", "integrity": "sha512-r+yKmrZ+6SjwGxSot+/3S8sP9+LCxWNueR6xppMx7BzV60OegjbeklWAf/UveyQi8PDW8g/mwrQSHZVY/5jBJQ==" }, - "minimalistic-assert": { + "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 }, - "minimalistic-crypto-utils": { + "node_modules/minimalistic-crypto-utils": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", "dev": true }, - "minimatch": { + "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "requires": { + "dependencies": { "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, - "minimist": { + "node_modules/minimist": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", - "dev": true + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "mkdirp-classic": { + "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 }, - "module-deps": { + "node_modules/module-deps": { "version": "6.2.3", "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.3.tgz", "integrity": "sha512-fg7OZaQBcL4/L+AK5f4iVqf9OMbCclXfy/znXRxTVhJSeW5AIlS9AwheYwDaXM3lVW7OBeaeUEY3gbaC6cLlSA==", "dev": true, - "requires": { - "JSONStream": "^1.0.3", + "dependencies": { "browser-resolve": "^2.0.0", "cached-path-relative": "^1.0.2", "concat-stream": "~1.6.0", @@ -4935,6 +6367,7 @@ "detective": "^5.2.0", "duplexer2": "^0.1.2", "inherits": "^2.0.1", + "JSONStream": "^1.0.3", "parents": "^1.0.0", "readable-stream": "^2.0.2", "resolve": "^1.4.0", @@ -4942,50 +6375,73 @@ "subarg": "^1.0.0", "through2": "^2.0.0", "xtend": "^4.0.0" + }, + "bin": { + "module-deps": "bin/cmd.js" + }, + "engines": { + "node": ">= 0.8.0" } }, - "morgan": { + "node_modules/morgan": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.9.1.tgz", "integrity": "sha512-HQStPIV4y3afTiCYVxirakhlCfGkI161c76kKFca7Fk1JusM//Qeo1ej2XaMniiNeaZklMVrh3vTtIzpzwbpmA==", - "requires": { + "dependencies": { "basic-auth": "~2.0.0", "debug": "2.6.9", "depd": "~1.1.2", "on-finished": "~2.3.0", "on-headers": "~1.0.1" + }, + "engines": { + "node": ">= 0.8.0" } }, - "ms": { + "node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, - "negotiator": { + "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==" + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } }, - "node-fetch": { + "node_modules/node-fetch": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "requires": { + "dependencies": { "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, - "node-releases": { + "node_modules/node-releases": { "version": "2.0.10", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", "dev": true }, - "nodemon": { + "node_modules/nodemon": { "version": "2.0.20", "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.20.tgz", "integrity": "sha512-Km2mWHKKY5GzRg6i1j5OxOHQtuvVsgskLfigG25yTtbyfRGn/GNvIbRyOf1PSCKJ2aT/58TiuUsuOU5UToVViw==", "dev": true, - "requires": { + "dependencies": { "chokidar": "^3.5.2", "debug": "^3.2.7", "ignore-by-default": "^1.0.1", @@ -4997,145 +6453,192 @@ "touch": "^3.1.0", "undefsafe": "^2.0.5" }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "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 - }, - "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 - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "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, - "requires": { - "has-flag": "^3.0.0" - } - } + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=8.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" } }, - "nopt": { + "node_modules/nodemon/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/nodemon/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/nodemon/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/nodemon/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/nodemon/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/nopt": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", "dev": true, - "requires": { + "dependencies": { "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "*" } }, - "normalize-path": { + "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "object-assign": { + "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 + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "object-inspect": { + "node_modules/object-inspect": { "version": "1.12.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==" + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "object-is": { + "node_modules/object-is": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "object-keys": { + "node_modules/object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.4" + } }, - "on-finished": { + "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==", - "requires": { + "dependencies": { "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" } }, - "on-headers": { + "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==" + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "engines": { + "node": ">= 0.8" + } }, - "once": { + "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, - "requires": { + "dependencies": { "wrappy": "1" } }, - "os-browserify": { + "node_modules/os-browserify": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", "dev": true }, - "outpipe": { + "node_modules/outpipe": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/outpipe/-/outpipe-1.1.1.tgz", "integrity": "sha512-BnNY/RwnDrkmQdUa9U+OfN/Y7AWmKuUPCCd+hbRclZnnANvYpO72zp/a6Q4n829hPbdqEac31XCcsvlEvb+rtA==", "dev": true, - "requires": { + "dependencies": { "shell-quote": "^1.4.2" } }, - "pako": { + "node_modules/pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", "dev": true }, - "parents": { + "node_modules/parents": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", "integrity": "sha512-mXKF3xkoUt5td2DoxpLmtOmZvko9VfFpwRwkKDHSNvgmpLAeBo18YDhcPbBzJq+QLCHMbGOfzia2cX4U+0v9Mg==", "dev": true, - "requires": { + "dependencies": { "path-platform": "~0.11.15" } }, - "parse-asn1": { + "node_modules/parse-asn1": { "version": "5.1.6", "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", "dev": true, - "requires": { + "dependencies": { "asn1.js": "^5.2.0", "browserify-aes": "^1.0.0", "evp_bytestokey": "^1.0.0", @@ -5143,312 +6646,364 @@ "safe-buffer": "^5.1.1" } }, - "parse-json": { + "node_modules/parse-json": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", "dev": true, - "requires": { + "dependencies": { "error-ex": "^1.2.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "parseurl": { + "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } }, - "path-browserify": { + "node_modules/path-browserify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", "dev": true }, - "path-is-absolute": { + "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 + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "path-parse": { + "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, - "path-platform": { + "node_modules/path-platform": { "version": "0.11.15", "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", "integrity": "sha512-Y30dB6rab1A/nfEKsZxmr01nUotHX0c/ZiIAsCTatEe1CmS5Pm5He7fZ195bPT7RdquoaL8lLxFCMQi/bS7IJg==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.8.0" + } }, - "path-to-regexp": { + "node_modules/path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" }, - "pause-stream": { + "node_modules/pause-stream": { "version": "0.0.11", "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==", - "requires": { + "dependencies": { "through": "~2.3" } }, - "pbkdf2": { + "node_modules/pbkdf2": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", "dev": true, - "requires": { + "dependencies": { "create-hash": "^1.1.2", "create-hmac": "^1.1.4", "ripemd160": "^2.0.1", "safe-buffer": "^5.0.1", "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" } }, - "pend": { + "node_modules/pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" }, - "picocolors": { + "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", "dev": true }, - "picomatch": { + "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } }, - "plantuml-encoder": { + "node_modules/plantuml-encoder": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/plantuml-encoder/-/plantuml-encoder-1.4.0.tgz", "integrity": "sha512-sxMwpDw/ySY1WB2CE3+IdMuEcWibJ72DDOsXLkSmEaSzwEUaYBT6DWgOfBiHGCux4q433X6+OEFWjlVqp7gL6g==", "dev": true }, - "plantuml-pipe": { + "node_modules/plantuml-pipe": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/plantuml-pipe/-/plantuml-pipe-1.6.0.tgz", "integrity": "sha512-TsEBors7XBhcejh0uVEFPxGWC+94jvGcPhNEs3cwhwgFSFNQaOuoA83X5sH2t5JBUnrGgL/hMHE/kcdKZBa5vw==", "dev": true, - "requires": { + "hasInstallScript": true, + "dependencies": { "binary-split": "^1.0.5", "split2": "^4.2.0" } }, - "point-in-polygon": { + "node_modules/point-in-polygon": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/point-in-polygon/-/point-in-polygon-1.1.0.tgz", "integrity": "sha512-3ojrFwjnnw8Q9242TzgXuTD+eKiutbzyslcq1ydfu82Db2y+Ogbmyrkpv0Hgj31qwT3lbS9+QAAO/pIQM35XRw==", "dev": true }, - "polygon-clipping": { + "node_modules/polygon-clipping": { "version": "0.15.3", "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.3.tgz", "integrity": "sha512-ho0Xx5DLkgxRx/+n4O74XyJ67DcyN3Tu9bGYKsnTukGAW6ssnuak6Mwcyb1wHy9MZc9xsUWqIoiazkZB5weECg==", "dev": true, - "requires": { + "dependencies": { "splaytree": "^3.1.0" } }, - "process": { + "node_modules/process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6.0" + } }, - "process-nextick-args": { + "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 }, - "progress": { + "node_modules/progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.4.0" + } }, - "promise": { + "node_modules/promise": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", - "requires": { + "dependencies": { "asap": "~2.0.6" } }, - "proxy-addr": { + "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==", - "requires": { + "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" } }, - "pstree.remy": { + "node_modules/pstree.remy": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", "dev": true }, - "public-encrypt": { + "node_modules/public-encrypt": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", "dev": true, - "requires": { + "dependencies": { "bn.js": "^4.1.0", "browserify-rsa": "^4.0.0", "create-hash": "^1.1.0", "parse-asn1": "^5.0.0", "randombytes": "^2.0.1", "safe-buffer": "^5.1.2" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } } }, - "punycode": { + "node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", "dev": true }, - "qs": { + "node_modules/qs": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "engines": { + "node": ">=0.6" + } }, - "querystring": { + "node_modules/querystring": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", "integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==", - "dev": true + "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", + "dev": true, + "engines": { + "node": ">=0.4.x" + } }, - "querystring-es3": { + "node_modules/querystring-es3": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.4.x" + } }, - "queue-fifo": { + "node_modules/queue-fifo": { "version": "0.2.6", "resolved": "https://registry.npmjs.org/queue-fifo/-/queue-fifo-0.2.6.tgz", "integrity": "sha512-rwlnZHAaTmWEGKC7ziasK8u4QnZW/uN6kSiG+tHNf/1GA+R32FArZi18s3SYUpKcA0Y6jJoUDn5GT3Anoc2mWw==", "dev": true, - "requires": { + "dependencies": { "dbly-linked-list": "0.3.4" } }, - "quickselect": { + "node_modules/quickselect": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-1.1.1.tgz", "integrity": "sha512-qN0Gqdw4c4KGPsBOQafj6yj/PA6c/L63f6CaZ/DCF/xF4Esu3jVmKLUDYxghFx8Kb/O7y9tI7x2RjTSXwdK1iQ==", "dev": true }, - "randombytes": { + "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, - "requires": { + "dependencies": { "safe-buffer": "^5.1.0" } }, - "randomfill": { + "node_modules/randomfill": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", "dev": true, - "requires": { + "dependencies": { "randombytes": "^2.0.5", "safe-buffer": "^5.1.0" } }, - "range-parser": { + "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==" + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } }, - "raw-body": { + "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==", - "requires": { + "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", "iconv-lite": "0.4.24", "unpipe": "1.0.0" }, - "dependencies": { - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" - }, - "http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "requires": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" - } + "engines": { + "node": ">= 0.8" } }, - "rbush": { + "node_modules/raw-body/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/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/raw-body/node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/raw-body/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/rbush": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/rbush/-/rbush-2.0.2.tgz", "integrity": "sha512-XBOuALcTm+O/H8G90b6pzu6nX6v2zCKiFG4BJho8a+bY6AER6t8uQUZdi5bomQc0AprCWhEGa7ncAbbRap0bRA==", "dev": true, - "requires": { + "dependencies": { "quickselect": "^1.0.1" } }, - "read-only-stream": { + "node_modules/read-only-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", "integrity": "sha512-3ALe0bjBVZtkdWKIcThYpQCLbBMd/+Tbh2CDSrAIDO3UsZ4Xs+tnyjv2MjCOMMgBG+AsUOeuP1cgtY1INISc8w==", "dev": true, - "requires": { + "dependencies": { "readable-stream": "^2.0.2" } }, - "readable-stream": { + "node_modules/readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "dev": true, - "requires": { + "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", @@ -5456,180 +7011,216 @@ "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" - }, - "dependencies": { - "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, - "requires": { - "safe-buffer": "~5.1.0" - } - } } }, - "readdirp": { + "node_modules/readable-stream/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/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, - "requires": { + "dependencies": { "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" } }, - "regenerate": { + "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 }, - "regenerate-unicode-properties": { + "node_modules/regenerate-unicode-properties": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", "dev": true, - "requires": { + "dependencies": { "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" } }, - "regenerator-runtime": { + "node_modules/regenerator-runtime": { "version": "0.13.11", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", "dev": true }, - "regenerator-transform": { + "node_modules/regenerator-transform": { "version": "0.15.1", "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", "dev": true, - "requires": { + "dependencies": { "@babel/runtime": "^7.8.4" } }, - "regexp.prototype.flags": { + "node_modules/regexp.prototype.flags": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "regexpu-core": { + "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, - "requires": { + "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" } }, - "regjsparser": { + "node_modules/regjsparser": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", "dev": true, - "requires": { + "dependencies": { "jsesc": "~0.5.0" }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "dev": true - } + "bin": { + "regjsparser": "bin/parser" } }, - "require-directory": { + "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==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "requirejs": { + "node_modules/requirejs": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/requirejs/-/requirejs-2.3.6.tgz", "integrity": "sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg==", - "dev": true + "dev": true, + "bin": { + "r_js": "bin/r.js", + "r.js": "bin/r.js" + }, + "engines": { + "node": ">=0.4.0" + } }, - "resolve": { + "node_modules/resolve": { "version": "1.22.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", "dev": true, - "requires": { + "dependencies": { "is-core-module": "^2.9.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "ripemd160": { + "node_modules/ripemd160": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "dev": true, - "requires": { + "dependencies": { "hash-base": "^3.0.0", "inherits": "^2.0.1" } }, - "robust-predicates": { + "node_modules/robust-predicates": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-2.0.4.tgz", "integrity": "sha512-l4NwboJM74Ilm4VKfbAtFeGq7aEjWL+5kVFcmgFA2MrdnQWx9iE/tUGvxY5HyMI7o/WpSIUFLbC5fbeaHgSCYg==", "dev": true }, - "rxjs": { + "node_modules/rxjs": { "version": "7.8.0", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", "dev": true, - "requires": { + "dependencies": { "tslib": "^2.1.0" } }, - "safe-buffer": { + "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==" }, - "safer-buffer": { + "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, - "save": { + "node_modules/save": { "version": "2.9.0", "resolved": "https://registry.npmjs.org/save/-/save-2.9.0.tgz", "integrity": "sha512-eg8+g8CjvehE/2C6EbLdtK1pINVD27pcJLj4M9PjWWhoeha/y5bWf4dp/0RF+OzbKTcG1bae9qi3PAqiR8CJTg==", - "requires": { + "dependencies": { "async": "^3.2.2", "event-stream": "^4.0.1", "lodash.assign": "^4.2.0", "mingo": "^6.1.0" } }, - "semver": { + "node_modules/semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true + "dev": true, + "bin": { + "semver": "bin/semver.js" + } }, - "send": { + "node_modules/send": { "version": "0.16.2", "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", - "requires": { + "dependencies": { "debug": "2.6.9", "depd": "~1.1.2", "destroy": "~1.0.4", @@ -5643,639 +7234,821 @@ "on-finished": "~2.3.0", "range-parser": "~1.2.0", "statuses": "~1.4.0" + }, + "engines": { + "node": ">= 0.8.0" } }, - "serve-static": { + "node_modules/serve-static": { "version": "1.13.2", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", - "requires": { + "dependencies": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "parseurl": "~1.3.2", "send": "0.16.2" + }, + "engines": { + "node": ">= 0.8.0" } }, - "setprototypeof": { + "node_modules/setprototypeof": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" }, - "sha.js": { + "node_modules/sha.js": { "version": "2.4.11", "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "dev": true, - "requires": { + "dependencies": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" } }, - "shasum-object": { + "node_modules/shasum-object": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/shasum-object/-/shasum-object-1.0.0.tgz", "integrity": "sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg==", "dev": true, - "requires": { + "dependencies": { "fast-safe-stringify": "^2.0.7" } }, - "shell-quote": { + "node_modules/shell-quote": { "version": "1.7.4", "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.4.tgz", "integrity": "sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw==", - "dev": true + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "shiki": { + "node_modules/shiki": { "version": "0.14.4", "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.4.tgz", "integrity": "sha512-IXCRip2IQzKwxArNNq1S+On4KPML3Yyn8Zzs/xRgcgOWIr8ntIK3IKzjFPfjy/7kt9ZMjc+FItfqHRBg8b6tNQ==", "dev": true, - "requires": { + "dependencies": { "ansi-sequence-parser": "^1.1.0", "jsonc-parser": "^3.2.0", "vscode-oniguruma": "^1.7.0", "vscode-textmate": "^8.0.0" } }, - "side-channel": { + "node_modules/side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "requires": { + "dependencies": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "simple-concat": { + "node_modules/simple-concat": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "dev": true + "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" + } + ] }, - "simple-update-notifier": { + "node_modules/simple-update-notifier": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz", "integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==", "dev": true, - "requires": { + "dependencies": { "semver": "~7.0.0" }, - "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true - } + "engines": { + "node": ">=8.10.0" } }, - "skmeans": { + "node_modules/simple-update-notifier/node_modules/semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/skmeans": { "version": "0.9.7", "resolved": "https://registry.npmjs.org/skmeans/-/skmeans-0.9.7.tgz", "integrity": "sha512-hNj1/oZ7ygsfmPZ7ZfN5MUBRoGg1gtpnImuJBgLO0ljQ67DtJuiQaiYdS4lUA6s0KCwnPhGivtC/WRwIZLkHyg==", "dev": true }, - "sortablejs": { + "node_modules/sortablejs": { "version": "1.15.0", "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.15.0.tgz", "integrity": "sha512-bv9qgVMjUMf89wAvM6AxVvS/4MX3sPeN0+agqShejLU5z5GX4C75ow1O2e5k4L6XItUyAK3gH6AxSbXrOM5e8w==", "dev": true }, - "source-map": { + "node_modules/source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "spawn-command": { + "node_modules/spawn-command": { "version": "0.0.2-1", "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz", "integrity": "sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg==", "dev": true }, - "splaytree": { + "node_modules/splaytree": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.2.tgz", "integrity": "sha512-4OM2BJgC5UzrhVnnJA4BkHKGtjXNzzUfpQjCO8I05xYPsfS/VuQDwjCGGMi8rYQilHEV4j8NBqTFbls/PZEE7A==", "dev": true }, - "split": { + "node_modules/split": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", - "requires": { + "dependencies": { "through": "2" + }, + "engines": { + "node": "*" } }, - "split2": { + "node_modules/split2": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", - "dev": true + "dev": true, + "engines": { + "node": ">= 10.x" + } }, - "srtm-elevation": { + "node_modules/srtm-elevation": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/srtm-elevation/-/srtm-elevation-2.1.2.tgz", "integrity": "sha512-VAYD86JwB4l4yXNJmlTVy5ryQBu0bq50rOvPqpNu4pbKwgPrc7QijjYFKKcM+AfnDvbmlaZv+qWWMGYg+mvBVg==", - "requires": { + "dependencies": { "extend": "^3.0.2", "lru-cache": "^6.0.0", "node-fetch": "^2.6.1", "promise": "^8.1.0", "yauzl": "^2.10.0", "yauzl-promise": "^2.1.3" - }, - "dependencies": { - "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==", - "requires": { - "yallist": "^4.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } } }, - "statuses": { + "node_modules/srtm-elevation/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==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/srtm-elevation/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/statuses": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", - "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", + "engines": { + "node": ">= 0.6" + } }, - "stream-browserify": { + "node_modules/stream-browserify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", "dev": true, - "requires": { + "dependencies": { "inherits": "~2.0.4", "readable-stream": "^3.5.0" - }, - "dependencies": { - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } } }, - "stream-combiner": { + "node_modules/stream-browserify/node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/stream-browserify/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/stream-combiner": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", "integrity": "sha512-6yHMqgLYDzQDcAkL+tjJDC5nSNuNIx0vZtRZeiPh7Saef7VHX9H5Ijn9l2VIol2zaNYlYEX6KyuT/237A58qEQ==", - "requires": { + "dependencies": { "duplexer": "~0.1.1", "through": "~2.3.4" } }, - "stream-combiner2": { + "node_modules/stream-combiner2": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", "integrity": "sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==", "dev": true, - "requires": { + "dependencies": { "duplexer2": "~0.1.0", "readable-stream": "^2.0.2" } }, - "stream-http": { + "node_modules/stream-http": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz", "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", "dev": true, - "requires": { + "dependencies": { "builtin-status-codes": "^3.0.0", "inherits": "^2.0.4", "readable-stream": "^3.6.0", "xtend": "^4.0.2" - }, - "dependencies": { - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } } }, - "stream-splicer": { + "node_modules/stream-http/node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/stream-http/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/stream-splicer": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.1.tgz", "integrity": "sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg==", "dev": true, - "requires": { + "dependencies": { "inherits": "^2.0.1", "readable-stream": "^2.0.2" } }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "string_decoder": { + "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==", "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - }, "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } + "safe-buffer": "~5.2.0" } }, - "strip-ansi": { + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "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==", "dev": true, - "requires": { + "dependencies": { "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "strip-bom": { + "node_modules/strip-bom": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", "dev": true, - "requires": { + "dependencies": { "is-utf8": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "strip-json-comments": { + "node_modules/strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "subarg": { + "node_modules/subarg": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", "integrity": "sha512-RIrIdRY0X1xojthNcVtgT9sjpOGagEUKpZdgBUi054OEPFo282yg+zE+t1Rj3+RqKq2xStL7uUHhY+AjbC4BXg==", "dev": true, - "requires": { + "dependencies": { "minimist": "^1.1.0" } }, - "supports-color": { + "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==", - "requires": { + "dependencies": { "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "supports-preserve-symlinks-flag": { + "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "syntax-error": { + "node_modules/syntax-error": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz", "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==", "dev": true, - "requires": { + "dependencies": { "acorn-node": "^1.2.0" } }, - "through": { + "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" }, - "through2": { + "node_modules/through2": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, - "requires": { + "dependencies": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" } }, - "timers-browserify": { + "node_modules/timers-browserify": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", "integrity": "sha512-PIxwAupJZiYU4JmVZYwXp9FKsHMXb5h0ZEFyuXTAn8WLHOlcij+FEcbrvDsom1o5dr1YggEtFbECvGCW2sT53Q==", "dev": true, - "requires": { + "dependencies": { "process": "~0.11.0" + }, + "engines": { + "node": ">=0.6.0" } }, - "tinyqueue": { + "node_modules/tinyqueue": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-2.0.3.tgz", "integrity": "sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA==", "dev": true }, - "to-fast-properties": { + "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 + "dev": true, + "engines": { + "node": ">=4" + } }, - "to-regex-range": { + "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, - "requires": { + "dependencies": { "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" } }, - "toidentifier": { + "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==" + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } }, - "topojson-client": { + "node_modules/topojson-client": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz", "integrity": "sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==", "dev": true, - "requires": { + "dependencies": { "commander": "2" + }, + "bin": { + "topo2geo": "bin/topo2geo", + "topomerge": "bin/topomerge", + "topoquantize": "bin/topoquantize" } }, - "topojson-server": { + "node_modules/topojson-server": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/topojson-server/-/topojson-server-3.0.1.tgz", "integrity": "sha512-/VS9j/ffKr2XAOjlZ9CgyyeLmgJ9dMwq6Y0YEON8O7p/tGGk+dCWnrE03zEdu7i4L7YsFZLEPZPzCvcB7lEEXw==", "dev": true, - "requires": { + "dependencies": { "commander": "2" + }, + "bin": { + "geo2topo": "bin/geo2topo" } }, - "touch": { + "node_modules/touch": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", "dev": true, - "requires": { + "dependencies": { "nopt": "~1.0.10" + }, + "bin": { + "nodetouch": "bin/nodetouch.js" } }, - "tr46": { + "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, - "tree-kill": { + "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 + "dev": true, + "bin": { + "tree-kill": "cli.js" + } }, - "tsconfig": { + "node_modules/tsconfig": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-5.0.3.tgz", "integrity": "sha512-Cq65A3kVp6BbsUgg9DRHafaGmbMb9EhAc7fjWvudNWKjkbWrt43FnrtZt6awshH1R0ocfF2Z0uxock3lVqEgOg==", "dev": true, - "requires": { + "dependencies": { "any-promise": "^1.3.0", "parse-json": "^2.2.0", "strip-bom": "^2.0.0", "strip-json-comments": "^2.0.0" } }, - "tsify": { + "node_modules/tsify": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/tsify/-/tsify-5.0.4.tgz", "integrity": "sha512-XAZtQ5OMPsJFclkZ9xMZWkSNyMhMxEPsz3D2zu79yoKorH9j/DT4xCloJeXk5+cDhosEibu4bseMVjyPOAyLJA==", "dev": true, - "requires": { + "dependencies": { "convert-source-map": "^1.1.0", "fs.realpath": "^1.0.0", "object-assign": "^4.1.0", "semver": "^6.1.0", "through2": "^2.0.0", "tsconfig": "^5.0.3" + }, + "engines": { + "node": ">=0.12" + }, + "peerDependencies": { + "browserify": ">= 10.x", + "typescript": ">= 2.8" } }, - "tslib": { + "node_modules/tslib": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "dev": true }, - "tty-browserify": { + "node_modules/tty-browserify": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", "dev": true }, - "turf-jsts": { + "node_modules/turf-jsts": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/turf-jsts/-/turf-jsts-1.2.3.tgz", "integrity": "sha512-Ja03QIJlPuHt4IQ2FfGex4F4JAr8m3jpaHbFbQrgwr7s7L6U8ocrHiF3J1+wf9jzhGKxvDeaCAnGDot8OjGFyA==", "dev": true }, - "type-is": { + "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==", - "requires": { + "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" } }, - "typedarray": { + "node_modules/typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", "dev": true }, - "typedoc": { + "node_modules/typedoc": { "version": "0.24.8", "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.24.8.tgz", "integrity": "sha512-ahJ6Cpcvxwaxfu4KtjA8qZNqS43wYt6JL27wYiIgl1vd38WW/KWX11YuAeZhuz9v+ttrutSsgK+XO1CjL1kA3w==", "dev": true, - "requires": { + "dependencies": { "lunr": "^2.3.9", "marked": "^4.3.0", "minimatch": "^9.0.0", "shiki": "^0.14.1" }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } + "bin": { + "typedoc": "bin/typedoc" + }, + "engines": { + "node": ">= 14.14" + }, + "peerDependencies": { + "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x" } }, - "typedoc-umlclass": { + "node_modules/typedoc-umlclass": { "version": "0.7.1", "resolved": "https://registry.npmjs.org/typedoc-umlclass/-/typedoc-umlclass-0.7.1.tgz", "integrity": "sha512-nHEPjbda1oIZ5lKNMainzi93UB1FyyMNoFWjNlipjK/Adx/RtepJdaGdIrZ8EgtuWGi7pW+xP8jaRmb40vj/9w==", "dev": true, - "requires": { + "dependencies": { "plantuml-encoder": "^1.4.0", "plantuml-pipe": "^1.5.0", "progress": "^2.0.3", "queue-fifo": "^0.2.6" + }, + "peerDependencies": { + "typedoc": "0.23.x || 0.24.x" } }, - "typescript": { + "node_modules/typedoc/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/typedoc/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/typescript": { "version": "4.9.4", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz", "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==", - "dev": true + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } }, - "umd": { + "node_modules/umd": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz", "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==", - "dev": true + "dev": true, + "bin": { + "umd": "bin/cli.js" + } }, - "undeclared-identifiers": { + "node_modules/undeclared-identifiers": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz", "integrity": "sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw==", "dev": true, - "requires": { + "dependencies": { "acorn-node": "^1.3.0", "dash-ast": "^1.0.0", "get-assigned-identifiers": "^1.2.0", "simple-concat": "^1.0.0", "xtend": "^4.0.1" + }, + "bin": { + "undeclared-identifiers": "bin.js" } }, - "undefsafe": { + "node_modules/undefsafe": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", "dev": true }, - "unicode-canonical-property-names-ecmascript": { + "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } }, - "unicode-match-property-ecmascript": { + "node_modules/unicode-match-property-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", "dev": true, - "requires": { + "dependencies": { "unicode-canonical-property-names-ecmascript": "^2.0.0", "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" } }, - "unicode-match-property-value-ecmascript": { + "node_modules/unicode-match-property-value-ecmascript": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } }, - "unicode-property-aliases-ecmascript": { + "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 + "dev": true, + "engines": { + "node": ">=4" + } }, - "unpipe": { + "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } }, - "update-browserslist-db": { + "node_modules/update-browserslist-db": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", "dev": true, - "requires": { + "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.1.1", "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" } }, - "url": { + "node_modules/url": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", "integrity": "sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ==", "dev": true, - "requires": { + "dependencies": { "punycode": "1.3.2", "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==", - "dev": true - } } }, - "usng.js": { + "node_modules/url/node_modules/punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==", + "dev": true + }, + "node_modules/usng.js": { "version": "0.4.5", "resolved": "https://registry.npmjs.org/usng.js/-/usng.js-0.4.5.tgz", "integrity": "sha512-JTJcFFDy/JqA5iiU8DqMOV5gJiL3ZdXH0hCKYaRMDbbredhFna5Ok4C1YDFU07mTGAgm+5FzHaaOzQnO/3BzWQ==", - "dev": true + "dev": true, + "bin": { + "usng-cli": "bin/cli.js" + } }, - "util": { + "node_modules/util": { "version": "0.12.5", "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", "dev": true, - "requires": { + "dependencies": { "inherits": "^2.0.3", "is-arguments": "^1.0.4", "is-generator-function": "^1.0.7", @@ -6283,46 +8056,52 @@ "which-typed-array": "^1.1.2" } }, - "util-deprecate": { + "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, - "utils-merge": { + "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==" + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } }, - "vary": { + "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==" + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } }, - "vm-browserify": { + "node_modules/vm-browserify": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", "dev": true }, - "vscode-oniguruma": { + "node_modules/vscode-oniguruma": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==", "dev": true }, - "vscode-textmate": { + "node_modules/vscode-textmate": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz", "integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==", "dev": true }, - "watchify": { + "node_modules/watchify": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/watchify/-/watchify-4.0.0.tgz", "integrity": "sha512-2Z04dxwoOeNxa11qzWumBTgSAohTC0+ScuY7XMenPnH+W2lhTcpEOJP4g2EIG/SWeLadPk47x++Yh+8BqPM/lA==", "dev": true, - "requires": { + "dependencies": { "anymatch": "^3.1.0", "browserify": "^17.0.0", "chokidar": "^3.4.0", @@ -6331,98 +8110,123 @@ "through2": "^4.0.2", "xtend": "^4.0.2" }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, - "requires": { - "readable-stream": "3" - } - } + "bin": { + "watchify": "bin/cmd.js" + }, + "engines": { + "node": ">= 8.10.0" } }, - "webidl-conversions": { + "node_modules/watchify/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/watchify/node_modules/through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dev": true, + "dependencies": { + "readable-stream": "3" + } + }, + "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" }, - "whatwg-url": { + "node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "requires": { + "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" } }, - "which-typed-array": { + "node_modules/which-typed-array": { "version": "1.1.9", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", "dev": true, - "requires": { + "dependencies": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", "for-each": "^0.3.3", "gopd": "^1.0.1", "has-tostringtag": "^1.0.0", "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "wrap-ansi": { + "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, - "requires": { + "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" } }, - "wrappy": { + "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, - "xtend": { + "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.4" + } }, - "y18n": { + "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true + "dev": true, + "engines": { + "node": ">=10" + } }, - "yallist": { + "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, - "yargs": { + "node_modules/yargs": { "version": "17.6.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", "dev": true, - "requires": { + "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", @@ -6430,38 +8234,50 @@ "string-width": "^4.2.3", "y18n": "^5.0.5", "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" } }, - "yargs-parser": { + "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==", - "dev": true + "dev": true, + "engines": { + "node": ">=12" + } }, - "yauzl": { + "node_modules/yauzl": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "requires": { + "dependencies": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" } }, - "yauzl-clone": { + "node_modules/yauzl-clone": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/yauzl-clone/-/yauzl-clone-1.0.4.tgz", "integrity": "sha512-igM2RRCf3k8TvZoxR2oguuw4z1xasOnA31joCqHIyLkeWrvAc2Jgay5ISQ2ZplinkoGaJ6orCz56Ey456c5ESA==", - "requires": { + "dependencies": { "events-intercept": "^2.0.0" + }, + "engines": { + "node": ">=6" } }, - "yauzl-promise": { + "node_modules/yauzl-promise": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/yauzl-promise/-/yauzl-promise-2.1.3.tgz", "integrity": "sha512-A1pf6fzh6eYkK0L4Qp7g9jzJSDrM6nN0bOn5T0IbY4Yo3w+YkWlHFkJP7mzknMXjqusHFHlKsK2N+4OLsK2MRA==", - "requires": { + "dependencies": { "yauzl": "^2.9.1", "yauzl-clone": "^1.0.4" + }, + "engines": { + "node": ">=6" } } } diff --git a/client/plugins/databasemanager/copy.bat b/client/plugins/databasemanager/copy.bat index f385d480..34127e37 100644 --- a/client/plugins/databasemanager/copy.bat +++ b/client/plugins/databasemanager/copy.bat @@ -1,4 +1,5 @@ mkdir .\\..\\..\\public\\plugins\\databasemanager +copy .\\index.js .\\..\\..\\public\\plugins\\databasemanager\\index.js copy .\\plugin.json .\\..\\..\\public\\plugins\\databasemanager\\plugin.json copy .\\style.css .\\..\\..\\public\\plugins\\databasemanager\\style.css \ No newline at end of file diff --git a/client/plugins/databasemanager/index.js b/client/plugins/databasemanager/index.js index 41b2b983..82738524 100644 --- a/client/plugins/databasemanager/index.js +++ b/client/plugins/databasemanager/index.js @@ -38,7 +38,7 @@ class AirUnitEditor extends uniteditor_1.UnitEditor { * @param blueprint The blueprint to edit */ setBlueprint(blueprint) { - var _a, _b, _c, _d, _e, _f; + var _a, _b, _c, _d, _e, _f, _g; this.blueprint = blueprint; if (this.blueprint !== null) { this.contentDiv2.replaceChildren(); @@ -48,23 +48,24 @@ class AirUnitEditor extends uniteditor_1.UnitEditor { (0, utils_1.addStringInput)(this.contentDiv2, "Name", blueprint.name, "text", (value) => { blueprint.name = value; }, true); (0, utils_1.addStringInput)(this.contentDiv2, "Label", blueprint.label, "text", (value) => { blueprint.label = value; }); (0, utils_1.addStringInput)(this.contentDiv2, "Short label", blueprint.shortLabel, "text", (value) => { blueprint.shortLabel = value; }); - (0, utils_1.addDropdownInput)(this.contentDiv2, "Coalition", blueprint.coalition, ["", "blue", "red"]); - (0, utils_1.addDropdownInput)(this.contentDiv2, "Era", blueprint.era, ["WW2", "Early Cold War", "Mid Cold War", "Late Cold War", "Modern"]); + (0, utils_1.addDropdownInput)(this.contentDiv2, "Coalition", blueprint.coalition, ["", "blue", "red"], (value) => { blueprint.coalition = value; }); + (0, utils_1.addDropdownInput)(this.contentDiv2, "Era", blueprint.era, ["WW2", "Early Cold War", "Mid Cold War", "Late Cold War", "Modern"], (value) => { blueprint.era = value; }); (0, utils_1.addStringInput)(this.contentDiv2, "Filename", (_a = blueprint.filename) !== null && _a !== void 0 ? _a : "", "text", (value) => { blueprint.filename = value; }); (0, utils_1.addStringInput)(this.contentDiv2, "Cost", (_b = String(blueprint.cost)) !== null && _b !== void 0 ? _b : "", "number", (value) => { blueprint.cost = parseFloat(value); }); - (0, utils_1.addStringInput)(this.contentDiv2, "Rufels from", (_c = String(blueprint.refuelsFrom)) !== null && _c !== void 0 ? _c : "", "text", (value) => { blueprint.refuelsFrom = value; }); - (0, utils_1.addStringInput)(this.contentDiv2, "Refuelling type", (_d = String(blueprint.refuellingType)) !== null && _d !== void 0 ? _d : "", "text", (value) => { blueprint.refuellingType = value; }); + (0, utils_1.addCheckboxInput)(this.contentDiv2, "Can target point", (_c = blueprint.canTargetPoint) !== null && _c !== void 0 ? _c : false, (value) => { blueprint.canTargetPoint = value; }); + (0, utils_1.addStringInput)(this.contentDiv2, "Description", (_d = blueprint.description) !== null && _d !== void 0 ? _d : "", "text", (value) => { blueprint.description = value; }); + (0, utils_1.addStringInput)(this.contentDiv2, "Abilities", (_e = blueprint.abilities) !== null && _e !== void 0 ? _e : "", "text", (value) => { blueprint.abilities = value; }); /* Add a scrollable list of loadouts that the user can edit */ var title = document.createElement("label"); title.innerText = "Loadouts"; this.contentDiv2.appendChild(title); - (0, utils_1.addLoadoutsScroll)(this.contentDiv2, (_e = blueprint.loadouts) !== null && _e !== void 0 ? _e : [], (loadout) => { + (0, utils_1.addLoadoutsScroll)(this.contentDiv2, (_f = blueprint.loadouts) !== null && _f !== void 0 ? _f : [], (loadout) => { var _a, _b; (_a = __classPrivateFieldGet(this, _AirUnitEditor_loadoutEditor, "f")) === null || _a === void 0 ? void 0 : _a.setLoadout(loadout); (_b = __classPrivateFieldGet(this, _AirUnitEditor_loadoutEditor, "f")) === null || _b === void 0 ? void 0 : _b.show(); }); (0, utils_1.addNewElementInput)(this.contentDiv2, (ev, input) => { this.addLoadout(input.value); }); - (_f = __classPrivateFieldGet(this, _AirUnitEditor_loadoutEditor, "f")) === null || _f === void 0 ? void 0 : _f.hide(); + (_g = __classPrivateFieldGet(this, _AirUnitEditor_loadoutEditor, "f")) === null || _g === void 0 ? void 0 : _g.hide(); } } /** Add a new empty blueprint @@ -79,7 +80,8 @@ class AirUnitEditor extends uniteditor_1.UnitEditor { label: "", shortLabel: "", era: "", - loadouts: [] + loadouts: [], + enabled: true }; this.show(); this.setBlueprint(this.database.blueprints[key]); @@ -97,7 +99,8 @@ class AirUnitEditor extends uniteditor_1.UnitEditor { code: "", fuel: 1, items: [], - roles: [] + roles: [], + enabled: true }); this.setBlueprint(this.blueprint); } @@ -505,7 +508,7 @@ class GroundUnitEditor extends uniteditor_1.UnitEditor { * @param blueprint The blueprint to edit */ setBlueprint(blueprint) { - var _a, _b, _c, _d, _e, _f, _g, _h; + var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m; __classPrivateFieldSet(this, _GroundUnitEditor_blueprint, blueprint, "f"); if (__classPrivateFieldGet(this, _GroundUnitEditor_blueprint, "f") !== null) { this.contentDiv2.replaceChildren(); @@ -516,16 +519,20 @@ class GroundUnitEditor extends uniteditor_1.UnitEditor { (0, utils_1.addStringInput)(this.contentDiv2, "Label", blueprint.label, "text", (value) => { blueprint.label = value; }); (0, utils_1.addStringInput)(this.contentDiv2, "Short label", blueprint.shortLabel, "text", (value) => { blueprint.shortLabel = value; }); (0, utils_1.addStringInput)(this.contentDiv2, "Type", (_a = blueprint.type) !== null && _a !== void 0 ? _a : "", "text", (value) => { blueprint.type = value; }); - (0, utils_1.addDropdownInput)(this.contentDiv2, "Coalition", blueprint.coalition, ["", "blue", "red"]); - (0, utils_1.addDropdownInput)(this.contentDiv2, "Era", blueprint.era, ["WW2", "Early Cold War", "Mid Cold War", "Late Cold War", "Modern"]); + (0, utils_1.addDropdownInput)(this.contentDiv2, "Coalition", blueprint.coalition, ["", "blue", "red"], (value) => { blueprint.coalition = value; }); + (0, utils_1.addDropdownInput)(this.contentDiv2, "Era", blueprint.era, ["WW2", "Early Cold War", "Mid Cold War", "Late Cold War", "Modern"], (value) => { blueprint.era = value; }); //addStringInput(this.contentDiv2, "Filename", blueprint.filename?? "", "text", (value: string) => {blueprint.filename = value; }); (0, utils_1.addStringInput)(this.contentDiv2, "Cost", (_b = String(blueprint.cost)) !== null && _b !== void 0 ? _b : "", "number", (value) => { blueprint.cost = parseFloat(value); }); - (0, utils_1.addStringInput)(this.contentDiv2, "Acquisition range [NM]", (_c = String(blueprint.acquisitionRange)) !== null && _c !== void 0 ? _c : "", "number", (value) => { blueprint.acquisitionRange = parseFloat(value); }); - (0, utils_1.addStringInput)(this.contentDiv2, "Engagement range [NM]", (_d = String(blueprint.engagementRange)) !== null && _d !== void 0 ? _d : "", "number", (value) => { blueprint.engagementRange = parseFloat(value); }); + (0, utils_1.addStringInput)(this.contentDiv2, "Acquisition range [m]", (_c = String(blueprint.acquisitionRange)) !== null && _c !== void 0 ? _c : "", "number", (value) => { blueprint.acquisitionRange = parseFloat(value); }); + (0, utils_1.addStringInput)(this.contentDiv2, "Engagement range [m]", (_d = String(blueprint.engagementRange)) !== null && _d !== void 0 ? _d : "", "number", (value) => { blueprint.engagementRange = parseFloat(value); }); (0, utils_1.addStringInput)(this.contentDiv2, "Barrel height [m]", (_e = String(blueprint.barrelHeight)) !== null && _e !== void 0 ? _e : "", "number", (value) => { blueprint.barrelHeight = parseFloat(value); }); (0, utils_1.addStringInput)(this.contentDiv2, "Muzzle velocity [m/s]", (_f = String(blueprint.muzzleVelocity)) !== null && _f !== void 0 ? _f : "", "number", (value) => { blueprint.muzzleVelocity = parseFloat(value); }); (0, utils_1.addStringInput)(this.contentDiv2, "Aim time [s]", (_g = String(blueprint.aimTime)) !== null && _g !== void 0 ? _g : "", "number", (value) => { blueprint.aimTime = parseFloat(value); }); (0, utils_1.addStringInput)(this.contentDiv2, "Burst quantity", (_h = String(blueprint.shotsToFire)) !== null && _h !== void 0 ? _h : "", "number", (value) => { blueprint.shotsToFire = Math.round(parseFloat(value)); }); + (0, utils_1.addCheckboxInput)(this.contentDiv2, "Can target point", (_j = blueprint.canTargetPoint) !== null && _j !== void 0 ? _j : false, (value) => { blueprint.canTargetPoint = value; }); + (0, utils_1.addCheckboxInput)(this.contentDiv2, "Can rearm", (_k = blueprint.canRearm) !== null && _k !== void 0 ? _k : false, (value) => { blueprint.canRearm = value; }); + (0, utils_1.addStringInput)(this.contentDiv2, "Description", (_l = blueprint.description) !== null && _l !== void 0 ? _l : "", "text", (value) => { blueprint.description = value; }); + (0, utils_1.addStringInput)(this.contentDiv2, "Abilities", (_m = blueprint.abilities) !== null && _m !== void 0 ? _m : "", "text", (value) => { blueprint.abilities = value; }); } } /** Add a new empty blueprint @@ -539,7 +546,8 @@ class GroundUnitEditor extends uniteditor_1.UnitEditor { coalition: "", label: "", shortLabel: "", - era: "" + era: "", + enabled: true }; this.show(); this.setBlueprint(this.database.blueprints[key]); @@ -608,6 +616,7 @@ class LoadoutEditor { var laodout = __classPrivateFieldGet(this, _LoadoutEditor_loadout, "f"); (0, utils_1.addStringInput)(__classPrivateFieldGet(this, _LoadoutEditor_contentDiv, "f"), "Name", laodout.name, "text", (value) => { laodout.name = value; __classPrivateFieldGet(this, _LoadoutEditor_contentDiv, "f").dispatchEvent(new Event("refresh")); }); (0, utils_1.addStringInput)(__classPrivateFieldGet(this, _LoadoutEditor_contentDiv, "f"), "Code", laodout.code, "text", (value) => { laodout.code = value; }); + (0, utils_1.addStringInput)(__classPrivateFieldGet(this, _LoadoutEditor_contentDiv, "f"), "Roles", (0, utils_1.arrayToString)(laodout.roles), "text", (value) => { laodout.roles = (0, utils_1.stringToArray)(value); }); (0, utils_1.addLoadoutItemsEditor)(__classPrivateFieldGet(this, _LoadoutEditor_contentDiv, "f"), __classPrivateFieldGet(this, _LoadoutEditor_loadout, "f")); } } @@ -664,8 +673,8 @@ class NavyUnitEditor extends uniteditor_1.UnitEditor { (0, utils_1.addStringInput)(this.contentDiv2, "Label", blueprint.label, "text", (value) => { blueprint.label = value; }); (0, utils_1.addStringInput)(this.contentDiv2, "Short label", blueprint.shortLabel, "text", (value) => { blueprint.shortLabel = value; }); (0, utils_1.addStringInput)(this.contentDiv2, "Type", (_a = blueprint.type) !== null && _a !== void 0 ? _a : "", "text", (value) => { blueprint.type = value; }); - (0, utils_1.addDropdownInput)(this.contentDiv2, "Coalition", blueprint.coalition, ["", "blue", "red"]); - (0, utils_1.addDropdownInput)(this.contentDiv2, "Era", blueprint.era, ["WW2", "Early Cold War", "Mid Cold War", "Late Cold War", "Modern"]); + (0, utils_1.addDropdownInput)(this.contentDiv2, "Coalition", blueprint.coalition, ["", "blue", "red"], (value) => { blueprint.coalition = value; }); + (0, utils_1.addDropdownInput)(this.contentDiv2, "Era", blueprint.era, ["WW2", "Early Cold War", "Mid Cold War", "Late Cold War", "Modern"], (value) => { blueprint.era = value; }); //addStringInput(this.contentDiv2, "Filename", blueprint.filename?? "", "text", (value: string) => {blueprint.filename = value; }); (0, utils_1.addStringInput)(this.contentDiv2, "Cost", (_b = String(blueprint.cost)) !== null && _b !== void 0 ? _b : "", "number", (value) => { blueprint.cost = parseFloat(value); }); (0, utils_1.addStringInput)(this.contentDiv2, "Barrel height [m]", (_c = String(blueprint.barrelHeight)) !== null && _c !== void 0 ? _c : "", "number", (value) => { blueprint.barrelHeight = parseFloat(value); }); @@ -683,7 +692,8 @@ class NavyUnitEditor extends uniteditor_1.UnitEditor { coalition: "", label: "", shortLabel: "", - era: "" + era: "", + enabled: true }; this.show(); this.setBlueprint(this.database.blueprints[key]); @@ -733,7 +743,7 @@ class UnitEditor { * @param database The database that the editor will operate on */ setDatabase(database) { - this.database = JSON.parse(JSON.stringify(database)); + this.database = JSON.parse(JSON.stringify({ blueprints: database.getBlueprints(true) })); } /** Show the editor * @@ -780,7 +790,7 @@ exports.UnitEditor = UnitEditor; },{"./utils":8}],8:[function(require,module,exports){ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -exports.addLoadoutsScroll = exports.addBlueprintsScroll = exports.addNewElementInput = exports.addLoadoutItemsEditor = exports.addDropdownInput = exports.addStringInput = void 0; +exports.stringToArray = exports.arrayToString = exports.addLoadoutsScroll = exports.addBlueprintsScroll = exports.addNewElementInput = exports.addLoadoutItemsEditor = exports.addCheckboxInput = exports.addDropdownInput = exports.addStringInput = void 0; /** This file contains a set of utility functions that are reused in the various editors and allows to declutter the classes * */ @@ -818,7 +828,7 @@ exports.addStringInput = addStringInput; * @param value The initial value of the input * @param options The dropdown options */ -function addDropdownInput(div, key, value, options) { +function addDropdownInput(div, key, value, options, callback, disabled) { var row = document.createElement("div"); var dt = document.createElement("dt"); var dd = document.createElement("dd"); @@ -831,6 +841,8 @@ function addDropdownInput(div, key, value, options) { select.appendChild(el); }); select.value = value; + select.disabled = disabled !== null && disabled !== void 0 ? disabled : false; + select.onchange = () => callback(select.value); dd.appendChild(select); row.appendChild(dt); row.appendChild(dd); @@ -838,6 +850,31 @@ function addDropdownInput(div, key, value, options) { div.appendChild(row); } exports.addDropdownInput = addDropdownInput; +/** Add a checkbox input in the form of String: [ value ] + * + * @param div The HTMLElement that will contain the input + * @param key The key of the input, which will be used as label + * @param value The initial value of the input + * @param callback Callback called when the user enters a new value + * @param disabled If true, the input will be disabled and read only + */ +function addCheckboxInput(div, key, value, callback, disabled) { + var row = document.createElement("div"); + var dt = document.createElement("dt"); + var dd = document.createElement("dd"); + dt.innerText = key; + var input = document.createElement("input"); + input.checked = value; + input.type = "checkbox"; + input.disabled = disabled !== null && disabled !== void 0 ? disabled : false; + input.onchange = () => callback(input.checked); + dd.appendChild(input); + row.appendChild(dt); + row.appendChild(dd); + row.classList.add("input-row"); + div.appendChild(row); +} +exports.addCheckboxInput = addCheckboxInput; /** Create a loadout items editor. This editor allows to add or remove loadout items, as well as changing their name and quantity * * @param div The HTMLElement that will contain the editor @@ -847,6 +884,7 @@ function addLoadoutItemsEditor(div, loadout) { var itemsEl = document.createElement("div"); itemsEl.classList.add("dm-scroll-container", "dm-items-container"); /* Create a row for each loadout item to allow and change the name and quantity of the item itself */ + loadout.items.sort((a, b) => a.name.localeCompare(b.name, undefined, { sensitivity: 'base' })); loadout.items.forEach((item, index) => { var rowDiv = document.createElement("div"); var nameLabel = document.createElement("label"); @@ -922,13 +960,21 @@ function addBlueprintsScroll(div, database, callback) { scrollDiv.classList.add("dm-scroll-container"); if (database !== null) { var blueprints = database.blueprints; - for (let key in Object.keys(blueprints).sort()) { + for (let key of Object.keys(blueprints).sort((a, b) => a.localeCompare(b, undefined, { sensitivity: 'base' }))) { var rowDiv = document.createElement("div"); scrollDiv.appendChild(rowDiv); var text = document.createElement("label"); text.textContent = key; text.onclick = () => callback(key); rowDiv.appendChild(text); + let checkbox = document.createElement("input"); + checkbox.type = "checkbox"; + checkbox.checked = blueprints[key].enabled; + checkbox.onclick = () => { + console.log(checkbox.checked); + blueprints[key].enabled = checkbox.checked; + }; + rowDiv.appendChild(checkbox); /* This button allows to remove an element from the list. It requires a refresh. */ var button = document.createElement("button"); button.innerText = "X"; @@ -951,6 +997,7 @@ exports.addBlueprintsScroll = addBlueprintsScroll; function addLoadoutsScroll(div, loadouts, callback) { var loadoutsEl = document.createElement("div"); loadoutsEl.classList.add("dm-scroll-container", "dm-loadout-container"); + loadouts.sort((a, b) => a.name.localeCompare(b.name, undefined, { sensitivity: 'base' })); loadouts.forEach((loadout, index) => { var rowDiv = document.createElement("div"); loadoutsEl.appendChild(rowDiv); @@ -960,6 +1007,14 @@ function addLoadoutsScroll(div, loadouts, callback) { rowDiv.appendChild(text); /* The "Empty loadout" can not be removed */ if (loadout.name !== "Empty loadout") { + let checkbox = document.createElement("input"); + checkbox.type = "checkbox"; + checkbox.checked = loadout.enabled; + checkbox.onclick = () => { + console.log(checkbox.checked); + loadout.enabled = checkbox.checked; + }; + rowDiv.appendChild(checkbox); /* This button allows to remove an element from the list. It requires a refresh. */ var button = document.createElement("button"); button.innerText = "X"; @@ -973,5 +1028,32 @@ function addLoadoutsScroll(div, loadouts, callback) { div.appendChild(loadoutsEl); } exports.addLoadoutsScroll = addLoadoutsScroll; +/** Converts an array of string into a single string like [val1, val2, val3] + * + * @param array The input array of strings + * @returns The string + */ +function arrayToString(array) { + var value = "["; + var firstRole = true; + array.forEach((role) => { + value += firstRole ? "" : ", "; + firstRole = false; + value += role; + }); + value += "]"; + return value; +} +exports.arrayToString = arrayToString; +function stringToArray(input) { + input = input.replace("[", "").replace("]", ""); + var values = input.split(","); + var result = []; + values.forEach((value) => { + result.push(value.trim()); + }); + return result; +} +exports.stringToArray = stringToArray; },{}]},{},[4]); diff --git a/client/public/databases/units/aircraftdatabase.json b/client/public/databases/units/aircraftdatabase.json index fe020c18..656ff16d 100644 --- a/client/public/databases/units/aircraftdatabase.json +++ b/client/public/databases/units/aircraftdatabase.json @@ -41,8 +41,7 @@ "code": "AGM-65D*2, AGM-65H*2, CBU-97*2, CBU-87*2, TGP, ECM, AIM-9*2", "name": "AGM-65D*2, AGM-65H*2, CBU-97*2, CBU-87*2, TGP, ECM, AIM-9*2", "roles": [ - "CAS", - "test" + "CAS" ] }, { @@ -3543,16 +3542,16 @@ "quantity": 2 }, { - "name": "SUU-25 x 8 LUU-2 - Target Marker Flares", - "quantity": 2 + "name": "GAU 12 Gunpod w/SAPHEI-T", + "quantity": 1 }, { "name": "LAU-68 pod - 7 x 2.75\" Hydra, UnGd Rkts M156, Wht Phos", "quantity": 2 }, { - "name": "GAU 12 Gunpod w/SAPHEI-T", - "quantity": 1 + "name": "SUU-25 x 8 LUU-2 - Target Marker Flares", + "quantity": 2 } ], "enabled": true, diff --git a/client/public/databases/units/default/aircraftdatabase.json b/client/public/databases/units/default/aircraftdatabase.json index 32482150..656ff16d 100644 --- a/client/public/databases/units/default/aircraftdatabase.json +++ b/client/public/databases/units/default/aircraftdatabase.json @@ -3,40 +3,9 @@ "name": "A-10C_2", "coalition": "blue", "era": "Late Cold War", - "label": "A-10C Warthog test", + "label": "A-10C Warthog", "shortLabel": "10", "loadouts": [ - { - "items": [], - "enabled": true, - "code": "", - "name": "Empty loadout", - "roles": [ - "CAS" - ] - }, - { - "items": [ - { - "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", - "quantity": 1 - }, - { - "name": "LAU-68 pod - 7 x 2.75\" Hydra, UnGd Rkts M156, Wht Phos", - "quantity": 6 - }, - { - "name": "ALQ-184 - ECM Pod", - "quantity": 1 - } - ], - "enabled": true, - "code": "LAU-68 42 rkt M156 WP, AIM-9*2, ECM", - "name": "LAU-68 42 rkt M156 WP, AIM-9*2, ECM", - "roles": [ - "AFAC" - ] - }, { "items": [ { @@ -44,7 +13,7 @@ "quantity": 1 }, { - "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", + "name": "AN/AAQ-28 LITENING - Targeting Pod", "quantity": 1 }, { @@ -56,378 +25,16 @@ "quantity": 2 }, { - "name": "AN/AAQ-28 LITENING - Targeting Pod", + "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", "quantity": 1 }, { "name": "LAU-88 with 2 x AGM-65D - Maverick D (IIR ASM)", - "quantity": 2 - } - ], - "enabled": true, - "code": "AGM-65D*4, CBU-97*2, CBU-87*2, TGP, ECM, AIM-9*2", - "name": "AGM-65D*4, CBU-97*2, CBU-87*2, TGP, ECM, AIM-9*2", - "roles": [ - "CAS" - ] - }, - { - "items": [ - { - "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", - "quantity": 1 - }, - { - "name": "BRU-42 with 3 x LAU-131 pods - 21 x 2.75\" Hydra, UnGd Rkts M156, Wht Phos", - "quantity": 4 - }, - { - "name": "AN/AAQ-28 LITENING - Targeting Pod", - "quantity": 1 - }, - { - "name": "LAU-131 pod - 7 x 2.75\" Hydra, UnGd Rkts M156, Wht Phos", - "quantity": 1 - }, - { - "name": "ALQ-131 - ECM Pod", - "quantity": 1 - } - ], - "enabled": true, - "code": "LAU-131 98 rkt M156 WP, AIM-9*2,ECM", - "name": "LAU-131 98 rkt M156 WP, AIM-9*2,ECM", - "roles": [ - "AFAC" - ] - }, - { - "items": [ - { - "name": "ALQ-131 - ECM Pod", - "quantity": 1 - }, - { - "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", - "quantity": 1 - }, - { - "name": "SUU-25 x 8 LUU-2 - Target Marker Flares", - "quantity": 9 - } - ], - "enabled": true, - "code": "SUU-25*9,AIM-9*2,ECM", - "name": "SUU-25*9,AIM-9*2,ECM", - "roles": [ - "AFAC" - ] - }, - { - "items": [ - { - "name": "ALQ-184 - ECM Pod", - "quantity": 1 - }, - { - "name": "LAU-88 with 2 x AGM-65D - Maverick D (IIR ASM)", - "quantity": 2 - }, - { - "name": "AN/AAQ-28 LITENING - Targeting Pod", - "quantity": 1 - }, - { - "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", - "quantity": 1 - }, - { - "name": "CBU-97 - 10 x SFW Cluster Bomb", - "quantity": 4 - } - ], - "enabled": true, - "code": "AGM-65D*4, CBU-97*4,TGP, ECM, AIM-9*2", - "name": "AGM-65D*4, CBU-97*4,TGP, ECM, AIM-9*2", - "roles": [ - "CAS" - ] - }, - { - "items": [ - { - "name": "Mk-82 AIR Ballute - 500lb GP Bomb HD", - "quantity": 8 - }, - { - "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", - "quantity": 1 - }, - { - "name": "ALQ-131 - ECM Pod", - "quantity": 1 - } - ], - "enabled": true, - "code": "Mk-82AIR*8,AIM-9*2,ECM", - "name": "Mk-82AIR*8,AIM-9*2,ECM", - "roles": [ - "Runway Attack" - ] - }, - { - "items": [ - { - "name": "ALQ-131 - ECM Pod", - "quantity": 1 - }, - { - "name": "LAU-131 pod - 7 x 2.75\" Hydra, UnGd Rkts M257, Para Illum", - "quantity": 2 - }, - { - "name": "LAU-117 with AGM-65K - Maverick K (CCD Imp ASM)", - "quantity": 2 - }, - { - "name": "Mk-84 - 2000lb GP Bomb LD", - "quantity": 2 - } - ], - "enabled": true, - "code": "MK-84*2,LAU-68*2,AGM-65K*2", - "name": "MK-84*2,LAU-68*2,AGM-65K*2", - "roles": [ - "Strike" - ] - }, - { - "items": [ - { - "name": "BRU-42 with 3 x BDU-33 - 25lb Practice Bombs LD", - "quantity": 2 - }, - { - "name": "BDU-50LGB - 500lb Laser Guided Inert Practice Bomb LD", - "quantity": 2 - }, - { - "name": "LAU-117 with TGM-65D - Trg Round for Mav D (IIR)", - "quantity": 1 - }, - { - "name": "LAU-117 with TGM-65H - Trg Round for Mav H (CCD)", - "quantity": 1 - }, - { - "name": "AN/AAQ-28 LITENING - Targeting Pod", - "quantity": 1 - }, - { - "name": "LAU-105 with 1 x Captive AIM-9M for ACM", - "quantity": 1 - } - ], - "enabled": true, - "code": "BDU-33*6, TGM-65H, TGM-65D, TGP, BDU-50LGB*2, CAP-9*1", - "name": "BDU-33*6, TGM-65H, TGM-65D, TGP, BDU-50LGB*2, CAP-9*1", - "roles": [ - "CAS" - ] - }, - { - "items": [ - { - "name": "Mk-82 - 500lb GP Bomb LD", - "quantity": 6 - }, - { - "name": "Mk-84 - 2000lb GP Bomb LD", - "quantity": 2 - }, - { - "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", - "quantity": 1 - }, - { - "name": "ALQ-131 - ECM Pod", - "quantity": 1 - } - ], - "enabled": true, - "code": "Mk-82*6,Mk-84*2,AIM-9*2,ECM", - "name": "Mk-82*6,Mk-84*2,AIM-9*2,ECM", - "roles": [ - "Strike" - ] - }, - { - "items": [ - { - "name": "ALQ-131 - ECM Pod", - "quantity": 1 - }, - { - "name": "Mk-84 - 2000lb GP Bomb LD", - "quantity": 4 - }, - { - "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", - "quantity": 1 - } - ], - "enabled": true, - "code": "Mk-84*4,AIM-9*2,ECM", - "name": "Mk-84*4,AIM-9*2,ECM", - "roles": [ - "Strike" - ] - }, - { - "items": [ - { - "name": "ALQ-131 - ECM Pod", - "quantity": 1 - }, - { - "name": "Mk-82 - 500lb GP Bomb LD", - "quantity": 8 - }, - { - "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", - "quantity": 1 - } - ], - "enabled": true, - "code": "Mk-82*8,AIM-9*2,ECM", - "name": "Mk-82*8,AIM-9*2,ECM", - "roles": [ - "Strike" - ] - }, - { - "items": [ - { - "name": "LAU-105 with 1 x Captive AIM-9M for ACM", - "quantity": 1 - }, - { - "name": "BRU-42 with 3 x BDU-33 - 25lb Practice Bombs LD", - "quantity": 4 - }, - { - "name": "AN/AAQ-28 LITENING - Targeting Pod", - "quantity": 1 - } - ], - "enabled": true, - "code": "BDU-33*12, TGP, CAP-9*1", - "name": "BDU-33*12, TGP, CAP-9*1", - "roles": [ - "CAS" - ] - }, - { - "items": [ - { - "name": "ALQ-131 - ECM Pod", - "quantity": 1 - }, - { - "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", - "quantity": 1 - }, - { - "name": "CBU-87 - 202 x CEM Cluster Bomb", - "quantity": 2 - }, - { - "name": "Mk-82 AIR Ballute - 500lb GP Bomb HD", - "quantity": 2 - }, - { - "name": "LAU-88 with 2 x AGM-65D - Maverick D (IIR ASM)", - "quantity": 2 - }, - { - "name": "AN/AAQ-28 LITENING - Targeting Pod", - "quantity": 1 - } - ], - "enabled": true, - "code": "AGM-65D*4,Mk-82AIR*2,CBU-87*2,AIM-9M*2,ECM,TGP", - "name": "AGM-65D*4,Mk-82AIR*2,CBU-87*2,AIM-9M*2,ECM,TGP", - "roles": [ - "CAS" - ] - }, - { - "items": [ - { - "name": "ALQ-184 - ECM Pod", - "quantity": 1 - }, - { - "name": "LAU-88 with 2 x AGM-65D - Maverick D (IIR ASM)", - "quantity": 2 - }, - { - "name": "GBU-12 - 500lb Laser Guided Bomb", - "quantity": 2 - }, - { - "name": "Mk-82 - 500lb GP Bomb LD", - "quantity": 1 - }, - { - "name": "GBU-38(V)1/B - JDAM, 500lb GPS Guided Bomb", - "quantity": 1 - }, - { - "name": "AN/AAQ-28 LITENING - Targeting Pod", - "quantity": 1 - }, - { - "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", - "quantity": 1 - } - ], - "enabled": true, - "code": "AGM-65D*4,GBU-12*2,GBU-38,Mk-82,AIM-9,TGP,ECM", - "name": "AGM-65D*4,GBU-12*2,GBU-38,Mk-82,AIM-9,TGP,ECM", - "roles": [ - "CAS" - ] - }, - { - "items": [ - { - "name": "ALQ-184 - ECM Pod", - "quantity": 1 - }, - { - "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", - "quantity": 1 - }, - { - "name": "CBU-87 - 202 x CEM Cluster Bomb", - "quantity": 2 - }, - { - "name": "CBU-97 - 10 x SFW Cluster Bomb", - "quantity": 2 - }, - { - "name": "AN/AAQ-28 LITENING - Targeting Pod", "quantity": 1 }, { "name": "LAU-88 with 2 x AGM-65H - Maverick H (CCD Imp ASM)", "quantity": 1 - }, - { - "name": "LAU-88 with 2 x AGM-65D - Maverick D (IIR ASM)", - "quantity": 1 } ], "enabled": true, @@ -439,152 +46,46 @@ }, { "items": [ - { - "name": "BDU-50HD - 500lb Inert Practice Bomb HD", - "quantity": 6 - }, { "name": "AN/AAQ-28 LITENING - Targeting Pod", "quantity": 1 }, { - "name": "LAU-105 with 1 x Captive AIM-9M for ACM", + "name": "BRU-42 with 3 x Mk-82 - 500lb GP Bombs LD", "quantity": 1 }, { - "name": "LAU-131 pod - 7 x 2.75\" Hydra, UnGd Rkts Mk1, Practice", + "name": "BRU-42 with 3 x Mk-82 AIR Ballute - 500lb GP Bombs HD", "quantity": 1 - } - ], - "enabled": true, - "code": "BDU-50HD*6,Mk1*7,TGP, CAP-9*1", - "name": "BDU-50HD*6,Mk1*7,TGP, CAP-9*1", - "roles": [ - "CAS" - ] - }, - { - "items": [ + }, { - "name": "ALQ-184 - ECM Pod", + "name": "GBU-12 - 500lb Laser Guided Bomb", + "quantity": 1 + }, + { + "name": "GBU-38(V)1/B - JDAM, 500lb GPS Guided Bomb", "quantity": 1 }, { "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", "quantity": 1 }, - { - "name": "CBU-97 - 10 x SFW Cluster Bomb", - "quantity": 4 - }, - { - "name": "AN/AAQ-28 LITENING - Targeting Pod", - "quantity": 1 - }, - { - "name": "LAU-88 with 2 x AGM-65H - Maverick H (CCD Imp ASM)", - "quantity": 2 - } - ], - "enabled": true, - "code": "AGM-65H*4, CBU-97*4,TGP, ECM, AIM-9*2", - "name": "AGM-65H*4, CBU-97*4,TGP, ECM, AIM-9*2", - "roles": [ - "CAS" - ] - }, - { - "items": [ - { - "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", - "quantity": 1 - }, - { - "name": "AN/AAQ-28 LITENING - Targeting Pod", - "quantity": 1 - }, - { - "name": "ALQ-131 - ECM Pod", - "quantity": 1 - }, - { - "name": "LAU-88 with 2 x AGM-65H - Maverick H (CCD Imp ASM)", - "quantity": 1 - }, { "name": "LAU-88 with 2 x AGM-65D - Maverick D (IIR ASM)", "quantity": 1 }, { - "name": "Mk-82 AIR Ballute - 500lb GP Bomb HD", - "quantity": 2 - }, - { - "name": "CBU-87 - 202 x CEM Cluster Bomb", - "quantity": 2 + "name": "LAU-88 with 2 x AGM-65H - Maverick H (CCD Imp ASM)", + "quantity": 1 } ], "enabled": true, - "code": "AGM-65D*2,AGM-65H*2,Mk-82AIR*2,CBU-87*2,AIM-9M*2,ECM,TGP", - "name": "AGM-65D*2,AGM-65H*2,Mk-82AIR*2,CBU-87*2,AIM-9M*2,ECM,TGP", + "code": "AGM-65D*2,AGM-65H*2,GBU-12,GBU-38,MK82*3,MK82AIR*3,MK5*7,TGP,AM-9*2", + "name": "AGM-65D*2,AGM-65H*2,GBU-12,GBU-38,MK82*3,MK82AIR*3,MK5*7,TGP,AM-9*2", "roles": [ "CAS" ] }, - { - "items": [ - { - "name": "ALQ-184 - ECM Pod", - "quantity": 1 - }, - { - "name": "LAU-117 with AGM-65K - Maverick K (CCD Imp ASM)", - "quantity": 2 - }, - { - "name": "GBU-38(V)1/B - JDAM, 500lb GPS Guided Bomb", - "quantity": 4 - }, - { - "name": "AN/AAQ-28 LITENING - Targeting Pod", - "quantity": 1 - }, - { - "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", - "quantity": 1 - } - ], - "enabled": true, - "code": "AGM-65K*2,GBU-38*4,AIM-9*2,TGP,ECM", - "name": "AGM-65K*2,GBU-38*4,AIM-9*2,TGP,ECM", - "roles": [ - "CAS", - "Strike" - ] - }, - { - "items": [ - { - "name": "BRU-42 with 3 x BDU-33 - 25lb Practice Bombs LD", - "quantity": 2 - }, - { - "name": "AN/AAQ-28 LITENING - Targeting Pod", - "quantity": 1 - }, - { - "name": "LAU-105 with 1 x Captive AIM-9M for ACM", - "quantity": 1 - } - ], - "enabled": true, - "code": "BDU-33*6, TGP, CAP-9*1", - "name": "BDU-33*6, TGP, CAP-9*1", - "roles": [ - "CAS", - "Strike" - ] - }, { "items": [ { @@ -629,277 +130,38 @@ }, { "items": [ - { - "name": "AN/AAQ-28 LITENING - Targeting Pod", - "quantity": 1 - } - ], - "enabled": true, - "code": "TGP", - "name": "TGP", - "roles": [ - "CAS" - ] - }, - { - "items": [ - { - "name": "BRU-42 with 3 x BDU-33 - 25lb Practice Bombs LD", - "quantity": 2 - }, - { - "name": "AN/AAQ-28 LITENING - Targeting Pod", - "quantity": 1 - }, - { - "name": "BDU-50LD - 500lb Inert Practice Bomb LD", - "quantity": 2 - }, - { - "name": "LAU-105 with 1 x Captive AIM-9M for ACM", - "quantity": 1 - } - ], - "enabled": true, - "code": "BDU-33*6, TGP, CAP-9*1, BDU-50LD*2", - "name": "BDU-33*6, TGP, CAP-9*1, BDU-50LD*2", - "roles": [ - "CAS" - ] - }, - { - "items": [ - { - "name": "BRU-42 with 3 x GBU-12 - 500lb Laser Guided Bombs", - "quantity": 2 - }, - { - "name": "GBU-10 - 2000lb Laser Guided Bomb", - "quantity": 2 - }, - { - "name": "AN/AAQ-28 LITENING - Targeting Pod", - "quantity": 1 - }, { "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", "quantity": 1 - } - ], - "enabled": true, - "code": "GBU-12*6,GBU-10*2,TGP, AIM-9*2", - "name": "GBU-12*6,GBU-10*2,TGP, AIM-9*2", - "roles": [ - "CAS" - ] - }, - { - "items": [ + }, + { + "name": "AN/AAQ-28 LITENING - Targeting Pod", + "quantity": 1 + }, { "name": "ALQ-131 - ECM Pod", "quantity": 1 }, { - "name": "CBU-87 - 202 x CEM Cluster Bomb", - "quantity": 3 - }, - { - "name": "LAU-131 pod - 7 x 2.75\" Hydra, UnGd Rkts M151, HE", - "quantity": 4 - }, - { - "name": "AN/AAQ-28 LITENING - Targeting Pod", - "quantity": 1 - }, - { - "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", - "quantity": 1 - } - ], - "enabled": true, - "code": "TGP, CBU-87*3, M151*28, AIM-9*2, ECM", - "name": "TGP, CBU-87*3, M151*28, AIM-9*2, ECM", - "roles": [ - "CAS" - ] - }, - { - "items": [ - { - "name": "CBU-87 - 202 x CEM Cluster Bomb", - "quantity": 2 - }, - { - "name": "BRU-42 with 3 x Mk-82 - 500lb GP Bombs LD", - "quantity": 2 - }, - { - "name": "LAU-88 with 2 x AGM-65D - Maverick D (IIR ASM)", - "quantity": 2 - }, - { - "name": "AN/AAQ-28 LITENING - Targeting Pod", - "quantity": 1 - }, - { - "name": "LAU-131 pod - 7 x 2.75\" Hydra, UnGd Rkts M151, HE", - "quantity": 1 - }, - { - "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", - "quantity": 1 - } - ], - "enabled": true, - "code": "AGM-65D*4,Mk-82*6,CBU-87*2,TGP,AIM-9*2,Mk151*7", - "name": "AGM-65D*4,Mk-82*6,CBU-87*2,TGP,AIM-9*2,Mk151*7", - "roles": [ - "CAS" - ] - }, - { - "items": [ - { - "name": "GBU-10 - 2000lb Laser Guided Bomb", - "quantity": 2 - }, - { - "name": "GBU-12 - 500lb Laser Guided Bomb", - "quantity": 4 - }, - { - "name": "AN/AAQ-28 LITENING - Targeting Pod", - "quantity": 1 - }, - { - "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", - "quantity": 1 - }, - { - "name": "ALQ-184 - ECM Pod", - "quantity": 1 - } - ], - "enabled": true, - "code": "PGM- GBU-10*2,GBU-12*4,AIM-9*2,TGP,ECM", - "name": "PGM- GBU-10*2,GBU-12*4,AIM-9*2,TGP,ECM", - "roles": [ - "CAS", - "Strike" - ] - }, - { - "items": [ - { - "name": "ALQ-184 - ECM Pod", + "name": "LAU-88 with 2 x AGM-65H - Maverick H (CCD Imp ASM)", "quantity": 1 }, { "name": "LAU-88 with 2 x AGM-65D - Maverick D (IIR ASM)", - "quantity": 2 - }, - { - "name": "AN/AAQ-28 LITENING - Targeting Pod", "quantity": 1 }, - { - "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", - "quantity": 1 - } - ], - "enabled": true, - "code": "AGM-65D*4,TGP, ECM, AIM-9*2", - "name": "AGM-65D*4,TGP, ECM, AIM-9*2", - "roles": [ - "CAS" - ] - }, - { - "items": [ - { - "name": "LAU-117 with CATM-65K - Captive Trg Round for Mav K (CCD)", - "quantity": 1 - }, - { - "name": "LAU-117 with TGM-65G - Trg Round for Mav G (IIR)", - "quantity": 1 - }, - { - "name": "LAU-105 with 1 x Captive AIM-9M for ACM", - "quantity": 1 - }, - { - "name": "AN/AAQ-28 LITENING - Targeting Pod", - "quantity": 1 - } - ], - "enabled": true, - "code": "TGP, CAP-9*1, CATM-65K*1, TGM-65G*1", - "name": "TGP, CAP-9*1, CATM-65K*1, TGM-65G*1", - "roles": [ - "CAS" - ] - }, - { - "items": [ - { - "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", - "quantity": 1 - }, - { - "name": "GBU-31(V)1/B - JDAM, 2000lb GPS Guided Bomb", - "quantity": 2 - }, - { - "name": "LAU-117 with AGM-65G - Maverick G (IIR ASM - Lg Whd)", - "quantity": 2 - }, - { - "name": "ALQ-184 - ECM Pod", - "quantity": 1 - }, - { - "name": "AN/AAQ-28 LITENING - Targeting Pod", - "quantity": 1 - } - ], - "enabled": true, - "code": "AGM-65G*2,GBU-31*2,AIM-9*2,TGP,ECM", - "name": "AGM-65G*2,GBU-31*2,AIM-9*2,TGP,ECM", - "roles": [ - "CAS" - ] - }, - { - "items": [ - { - "name": "ALQ-131 - ECM Pod", - "quantity": 1 - }, - { - "name": "LAU-131 pod - 7 x 2.75\" Hydra, UnGd Rkts M151, HE", - "quantity": 2 - }, - { - "name": "Mk-82 - 500lb GP Bomb LD", - "quantity": 2 - }, { "name": "Mk-82 AIR Ballute - 500lb GP Bomb HD", "quantity": 2 }, { - "name": "AN/AAQ-28 LITENING - Targeting Pod", - "quantity": 1 - }, - { - "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", - "quantity": 1 + "name": "CBU-87 - 202 x CEM Cluster Bomb", + "quantity": 2 } ], "enabled": true, - "code": "TGP, M151*14, Mk-82*2, Mk-82AIR*2, AIM-9*2, ECM", - "name": "TGP, M151*14, Mk-82*2, Mk-82AIR*2, AIM-9*2, ECM", + "code": "AGM-65D*2,AGM-65H*2,Mk-82AIR*2,CBU-87*2,AIM-9M*2,ECM,TGP", + "name": "AGM-65D*2,AGM-65H*2,Mk-82AIR*2,CBU-87*2,AIM-9M*2,ECM,TGP", "roles": [ "CAS" ] @@ -907,29 +169,37 @@ { "items": [ { - "name": "ALQ-184 - ECM Pod", + "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", "quantity": 1 }, { - "name": "LAU-117 with AGM-65K - Maverick K (CCD Imp ASM)", - "quantity": 2 - }, - { - "name": "GBU-10 - 2000lb Laser Guided Bomb", - "quantity": 4 + "name": "ALQ-184 - ECM Pod", + "quantity": 1 }, { "name": "AN/AAQ-28 LITENING - Targeting Pod", "quantity": 1 }, { - "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", + "name": "LAU-88 with 2 x AGM-65D - Maverick D (IIR ASM)", "quantity": 1 + }, + { + "name": "LAU-88 with 2 x AGM-65H - Maverick H (CCD Imp ASM)", + "quantity": 1 + }, + { + "name": "Mk-82 AIR Ballute - 500lb GP Bomb HD", + "quantity": 2 + }, + { + "name": "CBU-97 - 10 x SFW Cluster Bomb", + "quantity": 2 } ], "enabled": true, - "code": "PGM- GBU-10*4, AGM-65K*2,AIM-9*2,TGP,ECM", - "name": "PGM- GBU-10*4, AGM-65K*2,AIM-9*2,TGP,ECM", + "code": "AGM-65D*2,AGM-65H*2,Mk-82AIR*2,CBU-97*2,AIM-9M*2,TGP,ECM", + "name": "AGM-65D*2,AGM-65H*2,Mk-82AIR*2,CBU-97*2,AIM-9M*2,TGP,ECM", "roles": [ "CAS" ] @@ -978,282 +248,6 @@ }, { "items": [ - { - "name": "ALQ-184 - ECM Pod", - "quantity": 1 - }, - { - "name": "LAU-117 with AGM-65G - Maverick G (IIR ASM - Lg Whd)", - "quantity": 2 - }, - { - "name": "GBU-38(V)1/B - JDAM, 500lb GPS Guided Bomb", - "quantity": 2 - }, - { - "name": "GBU-31(V)1/B - JDAM, 2000lb GPS Guided Bomb", - "quantity": 2 - }, - { - "name": "AN/AAQ-28 LITENING - Targeting Pod", - "quantity": 1 - }, - { - "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", - "quantity": 1 - } - ], - "enabled": true, - "code": "GBU-31*2,GBU-38*2, AGM-65H*2, AIM-9*2,TGP, ECM", - "name": "GBU-31*2,GBU-38*2, AGM-65H*2, AIM-9*2,TGP, ECM", - "roles": [ - "CAS" - ] - }, - { - "items": [ - { - "name": "ALQ-184 - ECM Pod", - "quantity": 1 - }, - { - "name": "CBU-103 - 202 x CEM, CBU with WCMD", - "quantity": 4 - }, - { - "name": "LAU-131 pod - 7 x 2.75\" Hydra, UnGd Rkts M151, HE", - "quantity": 2 - }, - { - "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", - "quantity": 1 - }, - { - "name": "AN/AAQ-28 LITENING - Targeting Pod", - "quantity": 1 - } - ], - "enabled": true, - "code": "CBU-103*4, M151*14, AIM-9*2, ECM", - "name": "CBU-103*4, M151*14, AIM-9*2, ECM", - "roles": [ - "CAS" - ] - }, - { - "items": [ - { - "name": "ALQ-131 - ECM Pod", - "quantity": 1 - }, - { - "name": "BRU-42 with 3 x LAU-68 pods - 21 x 2.75\" Hydra, UnGd Rkts M151, HE", - "quantity": 2 - }, - { - "name": "CBU-87 - 202 x CEM Cluster Bomb", - "quantity": 4 - }, - { - "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", - "quantity": 1 - } - ], - "enabled": true, - "code": "CBU-87*4, M151*42, AIM-9*2, ECM", - "name": "CBU-87*4, M151*42, AIM-9*2, ECM", - "roles": [ - "CAS" - ] - }, - { - "items": [ - { - "name": "ALQ-184 - ECM Pod", - "quantity": 1 - }, - { - "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", - "quantity": 1 - }, - { - "name": "CBU-97 - 10 x SFW Cluster Bomb", - "quantity": 4 - }, - { - "name": "AN/AAQ-28 LITENING - Targeting Pod", - "quantity": 1 - }, - { - "name": "LAU-88 with 3 x AGM-65D - Maverick D (IIR ASM)", - "quantity": 2 - } - ], - "enabled": true, - "code": "AGM-65D*6, CBU-97*4,TGP, ECM, AIM-9*2", - "name": "AGM-65D*6, CBU-97*4,TGP, ECM, AIM-9*2", - "roles": [ - "CAS" - ] - }, - { - "items": [ - { - "name": "ALQ-131 - ECM Pod", - "quantity": 1 - }, - { - "name": "LAU-131 pod - 7 x 2.75\" Hydra, UnGd Rkts M151, HE", - "quantity": 2 - }, - { - "name": "BRU-42 with 3 x Mk-82 AIR Ballute - 500lb GP Bombs HD", - "quantity": 2 - }, - { - "name": "CBU-87 - 202 x CEM Cluster Bomb", - "quantity": 2 - }, - { - "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", - "quantity": 1 - } - ], - "enabled": true, - "code": "CBU-87*2, M151*14, MK-82AIR*6, AIM-9*2,ECM", - "name": "CBU-87*2, M151*14, MK-82AIR*6, AIM-9*2,ECM", - "roles": [ - "CAS" - ] - }, - { - "items": [ - { - "name": "ALQ-184 - ECM Pod", - "quantity": 1 - }, - { - "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", - "quantity": 1 - }, - { - "name": "CBU-105 - 10 x SFW, CBU with WCMD", - "quantity": 4 - }, - { - "name": "AN/AAQ-28 LITENING - Targeting Pod", - "quantity": 1 - }, - { - "name": "LAU-88 with 2 x AGM-65D - Maverick D (IIR ASM)", - "quantity": 2 - } - ], - "enabled": true, - "code": "AGM-65D*4, CBU-105*4,TGP, ECM, AIM-9*2", - "name": "AGM-65D*4, CBU-105*4,TGP, ECM, AIM-9*2", - "roles": [ - "CAS" - ] - }, - { - "items": [ - { - "name": "BDU-50HD - 500lb Inert Practice Bomb HD", - "quantity": 2 - }, - { - "name": "BDU-50LGB - 500lb Laser Guided Inert Practice Bomb LD", - "quantity": 2 - }, - { - "name": "AN/AAQ-28 LITENING - Targeting Pod", - "quantity": 1 - }, - { - "name": "LAU-68 pod - 7 x 2.75\" Hydra, UnGd Rkts Mk61, Practice", - "quantity": 1 - }, - { - "name": "LAU-105 with 1 x Captive AIM-9M for ACM", - "quantity": 1 - } - ], - "enabled": true, - "code": "BDU-50HD*2,BDU-50LGB*2,TGP, CAP-9*1", - "name": "BDU-50HD*2,BDU-50LGB*2,TGP, CAP-9*1", - "roles": [ - "CAS", - "Strike" - ] - }, - { - "items": [ - { - "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", - "quantity": 1 - }, - { - "name": "CBU-87 - 202 x CEM Cluster Bomb", - "quantity": 4 - }, - { - "name": "LAU-131 pod - 7 x 2.75\" Hydra, UnGd Rkts M151, HE", - "quantity": 4 - }, - { - "name": "ALQ-131 - ECM Pod", - "quantity": 1 - } - ], - "enabled": true, - "code": "CBU-87*4, M151*28, AIM-9*2,ECM", - "name": "CBU-87*4, M151*28, AIM-9*2,ECM", - "roles": [ - "CAS" - ] - }, - { - "items": [ - { - "name": "LAU-68 pod - 7 x 2.75\" Hydra, UnGd Rkts M151, HE", - "quantity": 2 - }, - { - "name": "BRU-42 with 3 x LAU-68 pods - 21 x 2.75\" Hydra, UnGd Rkts M151, HE", - "quantity": 4 - }, - { - "name": "Mk-82 - 500lb GP Bomb LD", - "quantity": 2 - }, - { - "name": "ALQ-131 - ECM Pod", - "quantity": 1 - }, - { - "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", - "quantity": 1 - } - ], - "enabled": true, - "code": "M151*98, Mk-82*2,AIM-9*2,ECM", - "name": "M151*98, Mk-82*2,AIM-9*2,ECM", - "roles": [ - "CAS", - "Strike" - ] - }, - { - "items": [ - { - "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", - "quantity": 1 - }, - { - "name": "AN/AAQ-28 LITENING - Targeting Pod", - "quantity": 1 - }, { "name": "LAU-88 with 2 x AGM-65H - Maverick H (CCD Imp ASM)", "quantity": 1 @@ -1263,59 +257,21 @@ "quantity": 1 }, { - "name": "BRU-42 with 3 x Mk-82 - 500lb GP Bombs LD", - "quantity": 1 - }, - { - "name": "BRU-42 with 3 x Mk-82 AIR Ballute - 500lb GP Bombs HD", - "quantity": 1 - }, - { - "name": "GBU-12 - 500lb Laser Guided Bomb", - "quantity": 1 - }, - { - "name": "GBU-38(V)1/B - JDAM, 500lb GPS Guided Bomb", - "quantity": 1 - } - ], - "enabled": true, - "code": "AGM-65D*2,AGM-65H*2,GBU-12,GBU-38,MK82*3,MK82AIR*3,MK5*7,TGP,AM-9*2", - "name": "AGM-65D*2,AGM-65H*2,GBU-12,GBU-38,MK82*3,MK82AIR*3,MK5*7,TGP,AM-9*2", - "roles": [ - "CAS" - ] - }, - { - "items": [ - { - "name": "ALQ-131 - ECM Pod", - "quantity": 1 - }, - { - "name": "BRU-42 with 3 x LAU-68 pods - 21 x 2.75\" Hydra, UnGd Rkts M151, HE", - "quantity": 2 - }, - { - "name": "BRU-42 with 3 x Mk-82 AIR Ballute - 500lb GP Bombs HD", - "quantity": 2 - }, - { - "name": "BRU-42 with 3 x Mk-82 - 500lb GP Bombs LD", - "quantity": 2 - }, - { - "name": "AN/AAQ-28 LITENING - Targeting Pod", + "name": "ALQ-184 - ECM Pod", "quantity": 1 }, { "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", "quantity": 1 + }, + { + "name": "AN/AAQ-28 LITENING - Targeting Pod", + "quantity": 1 } ], "enabled": true, - "code": "TGP, M151*42, Mk-82*6, Mk-82AIR*6, AIM-9*2, ECM", - "name": "TGP, M151*42, Mk-82*6, Mk-82AIR*6, AIM-9*2, ECM", + "code": "AGM-65D*2,AGM-65H*2,TGP, ECM, AIM-9*2", + "name": "AGM-65D*2,AGM-65H*2,TGP, ECM, AIM-9*2", "roles": [ "CAS" ] @@ -1326,140 +282,12 @@ "name": "ALQ-131 - ECM Pod", "quantity": 1 }, - { - "name": "BRU-42 with 3 x LAU-68 pods - 21 x 2.75\" Hydra, UnGd Rkts M151, HE", - "quantity": 4 - }, { "name": "Mk-82 - 500lb GP Bomb LD", - "quantity": 2 + "quantity": 6 }, { - "name": "AN/AAQ-28 LITENING - Targeting Pod", - "quantity": 1 - }, - { - "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", - "quantity": 1 - } - ], - "enabled": true, - "code": "TGP, M151*84, Mk-82*2,AIM-9*2, ECM", - "name": "TGP, M151*84, Mk-82*2,AIM-9*2, ECM", - "roles": [ - "CAS" - ] - }, - { - "items": [ - { - "name": "AN/AAQ-28 LITENING - Targeting Pod", - "quantity": 1 - }, - { - "name": "BDU-50HD - 500lb Inert Practice Bomb HD", - "quantity": 2 - }, - { - "name": "BDU-50LD - 500lb Inert Practice Bomb LD", - "quantity": 2 - }, - { - "name": "LAU-117 with CATM-65K - Captive Trg Round for Mav K (CCD)", - "quantity": 1 - }, - { - "name": "LAU-117 with TGM-65G - Trg Round for Mav G (IIR)", - "quantity": 1 - }, - { - "name": "LAU-131 pod - 7 x 2.75\" Hydra, UnGd Rkts WTU-1/B, Practice", - "quantity": 1 - }, - { - "name": "LAU-105 with 1 x Captive AIM-9M for ACM", - "quantity": 1 - } - ], - "enabled": true, - "code": "BDU-50LD*2, BDU-50HD*2,CATM-65K, TGM-65G, TGP, CAP-9*1", - "name": "BDU-50LD*2, BDU-50HD*2,CATM-65K, TGM-65G, TGP, CAP-9*1", - "roles": [ - "CAS" - ] - }, - { - "items": [ - { - "name": "ALQ-131 - ECM Pod", - "quantity": 1 - }, - { - "name": "LAU-68 pod - 7 x 2.75\" Hydra, UnGd Rkts M151, HE", - "quantity": 1 - }, - { - "name": "BRU-42 with 3 x LAU-68 pods - 21 x 2.75\" Hydra, UnGd Rkts M151, HE", - "quantity": 2 - }, - { - "name": "CBU-87 - 202 x CEM Cluster Bomb", - "quantity": 2 - }, - { - "name": "Mk-82 - 500lb GP Bomb LD", - "quantity": 2 - }, - { - "name": "AN/AAQ-28 LITENING - Targeting Pod", - "quantity": 1 - }, - { - "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", - "quantity": 1 - } - ], - "enabled": true, - "code": "TGP, M151*49, Mk-82*2, CBU-87*2, AIM-9*2, ECM", - "name": "TGP, M151*49, Mk-82*2, CBU-87*2, AIM-9*2, ECM", - "roles": [ - "CAS" - ] - }, - { - "items": [ - { - "name": "AN/AAQ-28 LITENING - Targeting Pod", - "quantity": 1 - }, - { - "name": "LAU-105 with 1 x Captive AIM-9M for ACM", - "quantity": 1 - }, - { - "name": "BDU-50LGB - 500lb Laser Guided Inert Practice Bomb LD", - "quantity": 4 - } - ], - "enabled": true, - "code": "TGP, CAP-9*1, BDU-50LGB*4", - "name": "TGP, CAP-9*1, BDU-50LGB*4", - "roles": [ - "CAS" - ] - }, - { - "items": [ - { - "name": "BRU-42 with 3 x GBU-12 - 500lb Laser Guided Bombs", - "quantity": 4 - }, - { - "name": "AN/AAQ-28 LITENING - Targeting Pod", - "quantity": 1 - }, - { - "name": "GBU-12 - 500lb Laser Guided Bomb", + "name": "LAU-117 with AGM-65D - Maverick D (IIR ASM)", "quantity": 2 }, { @@ -1468,8 +296,8 @@ } ], "enabled": true, - "code": "GBU-12*14,TGP, AIM-9*2", - "name": "GBU-12*14,TGP, AIM-9*2", + "code": "AGM-65D*2,Mk-82*6,AIM-9*2,ECM", + "name": "AGM-65D*2,Mk-82*6,AIM-9*2,ECM", "roles": [ "CAS" ] @@ -1508,44 +336,6 @@ "CAS" ] }, - { - "items": [ - { - "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", - "quantity": 1 - }, - { - "name": "ALQ-184 - ECM Pod", - "quantity": 1 - }, - { - "name": "AN/AAQ-28 LITENING - Targeting Pod", - "quantity": 1 - }, - { - "name": "LAU-88 with 2 x AGM-65D - Maverick D (IIR ASM)", - "quantity": 1 - }, - { - "name": "LAU-88 with 2 x AGM-65H - Maverick H (CCD Imp ASM)", - "quantity": 1 - }, - { - "name": "Mk-82 AIR Ballute - 500lb GP Bomb HD", - "quantity": 2 - }, - { - "name": "CBU-97 - 10 x SFW Cluster Bomb", - "quantity": 2 - } - ], - "enabled": true, - "code": "AGM-65D*2,AGM-65H*2,Mk-82AIR*2,CBU-97*2,AIM-9M*2,TGP,ECM", - "name": "AGM-65D*2,AGM-65H*2,Mk-82AIR*2,CBU-97*2,AIM-9M*2,TGP,ECM", - "roles": [ - "CAS" - ] - }, { "items": [ { @@ -1583,39 +373,35 @@ { "items": [ { - "name": "ALQ-131 - ECM Pod", + "name": "ALQ-184 - ECM Pod", "quantity": 1 }, - { - "name": "Mk-82 - 500lb GP Bomb LD", - "quantity": 6 - }, - { - "name": "LAU-117 with AGM-65D - Maverick D (IIR ASM)", - "quantity": 2 - }, { "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", "quantity": 1 + }, + { + "name": "CBU-105 - 10 x SFW, CBU with WCMD", + "quantity": 4 + }, + { + "name": "AN/AAQ-28 LITENING - Targeting Pod", + "quantity": 1 + }, + { + "name": "LAU-88 with 2 x AGM-65D - Maverick D (IIR ASM)", + "quantity": 2 } ], "enabled": true, - "code": "AGM-65D*2,Mk-82*6,AIM-9*2,ECM", - "name": "AGM-65D*2,Mk-82*6,AIM-9*2,ECM", + "code": "AGM-65D*4, CBU-105*4,TGP, ECM, AIM-9*2", + "name": "AGM-65D*4, CBU-105*4,TGP, ECM, AIM-9*2", "roles": [ "CAS" ] }, { "items": [ - { - "name": "LAU-88 with 2 x AGM-65H - Maverick H (CCD Imp ASM)", - "quantity": 1 - }, - { - "name": "LAU-88 with 2 x AGM-65D - Maverick D (IIR ASM)", - "quantity": 1 - }, { "name": "ALQ-184 - ECM Pod", "quantity": 1 @@ -1624,31 +410,85 @@ "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", "quantity": 1 }, + { + "name": "CBU-87 - 202 x CEM Cluster Bomb", + "quantity": 2 + }, + { + "name": "CBU-97 - 10 x SFW Cluster Bomb", + "quantity": 2 + }, { "name": "AN/AAQ-28 LITENING - Targeting Pod", "quantity": 1 + }, + { + "name": "LAU-88 with 2 x AGM-65D - Maverick D (IIR ASM)", + "quantity": 2 } ], "enabled": true, - "code": "AGM-65D*2,AGM-65H*2,TGP, ECM, AIM-9*2", - "name": "AGM-65D*2,AGM-65H*2,TGP, ECM, AIM-9*2", + "code": "AGM-65D*4, CBU-97*2, CBU-87*2, TGP, ECM, AIM-9*2", + "name": "AGM-65D*4, CBU-97*2, CBU-87*2, TGP, ECM, AIM-9*2", "roles": [ "CAS" ] }, { "items": [ + { + "name": "ALQ-184 - ECM Pod", + "quantity": 1 + }, + { + "name": "LAU-88 with 2 x AGM-65D - Maverick D (IIR ASM)", + "quantity": 2 + }, { "name": "AN/AAQ-28 LITENING - Targeting Pod", "quantity": 1 }, { - "name": "GBU-31(V)1/B - JDAM, 2000lb GPS Guided Bomb", + "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", + "quantity": 1 + }, + { + "name": "CBU-97 - 10 x SFW Cluster Bomb", + "quantity": 4 + } + ], + "enabled": true, + "code": "AGM-65D*4, CBU-97*4,TGP, ECM, AIM-9*2", + "name": "AGM-65D*4, CBU-97*4,TGP, ECM, AIM-9*2", + "roles": [ + "CAS" + ] + }, + { + "items": [ + { + "name": "ALQ-184 - ECM Pod", + "quantity": 1 + }, + { + "name": "LAU-88 with 2 x AGM-65D - Maverick D (IIR ASM)", "quantity": 2 }, + { + "name": "GBU-12 - 500lb Laser Guided Bomb", + "quantity": 2 + }, + { + "name": "Mk-82 - 500lb GP Bomb LD", + "quantity": 1 + }, { "name": "GBU-38(V)1/B - JDAM, 500lb GPS Guided Bomb", - "quantity": 4 + "quantity": 1 + }, + { + "name": "AN/AAQ-28 LITENING - Targeting Pod", + "quantity": 1 }, { "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", @@ -1656,8 +496,8 @@ } ], "enabled": true, - "code": "GBU-38*4,GBU-31*2,TGP, AIM-9*2", - "name": "GBU-38*4,GBU-31*2,TGP, AIM-9*2", + "code": "AGM-65D*4,GBU-12*2,GBU-38,Mk-82,AIM-9,TGP,ECM", + "name": "AGM-65D*4,GBU-12*2,GBU-38,Mk-82,AIM-9,TGP,ECM", "roles": [ "CAS" ] @@ -1703,15 +543,15 @@ { "items": [ { - "name": "LAU-117 with AGM-65K - Maverick K (CCD Imp ASM)", - "quantity": 1 + "name": "CBU-87 - 202 x CEM Cluster Bomb", + "quantity": 2 }, { - "name": "LAU-117 with AGM-65G - Maverick G (IIR ASM - Lg Whd)", - "quantity": 1 + "name": "BRU-42 with 3 x Mk-82 - 500lb GP Bombs LD", + "quantity": 2 }, { - "name": "GBU-10 - 2000lb Laser Guided Bomb", + "name": "LAU-88 with 2 x AGM-65D - Maverick D (IIR ASM)", "quantity": 2 }, { @@ -1719,50 +559,53 @@ "quantity": 1 }, { - "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", + "name": "LAU-131 pod - 7 x 2.75\" Hydra, UnGd Rkts M151, HE", "quantity": 1 }, { - "name": "ALQ-184 - ECM Pod", + "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", "quantity": 1 } ], "enabled": true, - "code": "AGM-65G,AGM-65K,GBU-10*2,AIM-9*2,TGP,ECM", - "name": "AGM-65G,AGM-65K,GBU-10*2,AIM-9*2,TGP,ECM", + "code": "AGM-65D*4,Mk-82*6,CBU-87*2,TGP,AIM-9*2,Mk151*7", + "name": "AGM-65D*4,Mk-82*6,CBU-87*2,TGP,AIM-9*2,Mk151*7", "roles": [ - "CAS", - "Strike" + "CAS" ] }, { "items": [ - { - "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", - "quantity": 1 - }, - { - "name": "Mk-82 - 500lb GP Bomb LD", - "quantity": 7 - }, - { - "name": "LAU-117 with AGM-65G - Maverick G (IIR ASM - Lg Whd)", - "quantity": 1 - }, - { - "name": "LAU-117 with AGM-65D - Maverick D (IIR ASM)", - "quantity": 1 - }, { "name": "ALQ-131 - ECM Pod", "quantity": 1 + }, + { + "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", + "quantity": 1 + }, + { + "name": "CBU-87 - 202 x CEM Cluster Bomb", + "quantity": 2 + }, + { + "name": "Mk-82 AIR Ballute - 500lb GP Bomb HD", + "quantity": 2 + }, + { + "name": "LAU-88 with 2 x AGM-65D - Maverick D (IIR ASM)", + "quantity": 2 + }, + { + "name": "AN/AAQ-28 LITENING - Targeting Pod", + "quantity": 1 } ], "enabled": true, - "code": "AGM-65G,AGM-65D,Mk-82*7,AIM-9*2,ECM", - "name": "AGM-65G,AGM-65D,Mk-82*7,AIM-9*2,ECM", + "code": "AGM-65D*4,Mk-82AIR*2,CBU-87*2,AIM-9M*2,ECM,TGP", + "name": "AGM-65D*4,Mk-82AIR*2,CBU-87*2,AIM-9M*2,ECM,TGP", "roles": [ - "Runway Attack" + "CAS" ] }, { @@ -1772,62 +615,53 @@ "quantity": 1 }, { - "name": "GBU-38(V)1/B - JDAM, 500lb GPS Guided Bomb", + "name": "LAU-88 with 2 x AGM-65D - Maverick D (IIR ASM)", + "quantity": 2 + }, + { + "name": "AN/AAQ-28 LITENING - Targeting Pod", + "quantity": 1 + }, + { + "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", + "quantity": 1 + } + ], + "enabled": true, + "code": "AGM-65D*4,TGP, ECM, AIM-9*2", + "name": "AGM-65D*4,TGP, ECM, AIM-9*2", + "roles": [ + "CAS" + ] + }, + { + "items": [ + { + "name": "ALQ-184 - ECM Pod", + "quantity": 1 + }, + { + "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", + "quantity": 1 + }, + { + "name": "CBU-97 - 10 x SFW Cluster Bomb", "quantity": 4 }, - { - "name": "GBU-31(V)1/B - JDAM, 2000lb GPS Guided Bomb", - "quantity": 2 - }, { "name": "AN/AAQ-28 LITENING - Targeting Pod", "quantity": 1 }, { - "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", - "quantity": 1 + "name": "LAU-88 with 3 x AGM-65D - Maverick D (IIR ASM)", + "quantity": 2 } ], "enabled": true, - "code": "GBU-31*2,GBU-38*4,AIM-9*2,TGP,ECM, AIM-9*2", - "name": "GBU-31*2,GBU-38*4,AIM-9*2,TGP,ECM, AIM-9*2", + "code": "AGM-65D*6, CBU-97*4,TGP, ECM, AIM-9*2", + "name": "AGM-65D*6, CBU-97*4,TGP, ECM, AIM-9*2", "roles": [ - "CAS", - "Strike" - ] - }, - { - "items": [ - { - "name": "GBU-12 - 500lb Laser Guided Bomb", - "quantity": 2 - }, - { - "name": "AN/AAQ-28 LITENING - Targeting Pod", - "quantity": 1 - }, - { - "name": "ALQ-184 - ECM Pod", - "quantity": 1 - }, - { - "name": "LAU-117 with AGM-65K - Maverick K (CCD Imp ASM)", - "quantity": 2 - }, - { - "name": "BRU-42 with 3 x GBU-12 - 500lb Laser Guided Bombs", - "quantity": 2 - }, - { - "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", - "quantity": 1 - } - ], - "enabled": true, - "code": "AGM-65K*2,GBU-12*8,AIM-9M*2.ECM,TGP", - "name": "AGM-65K*2,GBU-12*8,AIM-9M*2.ECM,TGP", - "roles": [ - "Antiship Strike" + "CAS" ] }, { @@ -1871,41 +705,7 @@ "quantity": 1 }, { - "name": "CBU-97 - 10 x SFW Cluster Bomb", - "quantity": 2 - }, - { - "name": "Mk-82 AIR Ballute - 500lb GP Bomb HD", - "quantity": 2 - }, - { - "name": "LAU-117 with AGM-65E - Maverick E (Laser ASM - Lg Whd)", - "quantity": 2 - }, - { - "name": "AN/AAQ-28 LITENING - Targeting Pod", - "quantity": 1 - } - ], - "enabled": true, - "code": "AGM-65E*2,Mk-82AIR*2,CBU-97*2,AIM-9M*2,ECM,TGP", - "name": "AGM-65E*2,Mk-82AIR*2,CBU-97*2,AIM-9M*2,ECM,TGP", - "roles": [ - "CAS" - ] - }, - { - "items": [ - { - "name": "ALQ-131 - ECM Pod", - "quantity": 1 - }, - { - "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", - "quantity": 1 - }, - { - "name": "CBU-97 - 10 x SFW Cluster Bomb", + "name": "CBU-105 - 10 x SFW, CBU with WCMD", "quantity": 4 }, { @@ -1915,11 +715,15 @@ { "name": "AN/AAQ-28 LITENING - Targeting Pod", "quantity": 1 + }, + { + "name": "LAU-131 pod - 7 x 2.75\" Hydra, Laser Guided Rkts M151, HE APKWS", + "quantity": 1 } ], "enabled": true, - "code": "AGM-65E*2,CBU-97*4,AIM-9M*2,ECM,TGP", - "name": "AGM-65E*2,CBU-97*4,AIM-9M*2,ECM,TGP", + "code": "AGM-65E*2,CBU-105*4,AIM-9M*2,ECM,M151 APKWS*7,TGP", + "name": "AGM-65E*2,CBU-105*4,AIM-9M*2,ECM,M151 APKWS*7,TGP", "roles": [ "CAS" ] @@ -1969,7 +773,7 @@ "quantity": 1 }, { - "name": "CBU-105 - 10 x SFW, CBU with WCMD", + "name": "CBU-97 - 10 x SFW Cluster Bomb", "quantity": 4 }, { @@ -1979,15 +783,11 @@ { "name": "AN/AAQ-28 LITENING - Targeting Pod", "quantity": 1 - }, - { - "name": "LAU-131 pod - 7 x 2.75\" Hydra, Laser Guided Rkts M151, HE APKWS", - "quantity": 1 } ], "enabled": true, - "code": "AGM-65E*2,CBU-105*4,AIM-9M*2,ECM,M151 APKWS*7,TGP", - "name": "AGM-65E*2,CBU-105*4,AIM-9M*2,ECM,M151 APKWS*7,TGP", + "code": "AGM-65E*2,CBU-97*4,AIM-9M*2,ECM,TGP", + "name": "AGM-65E*2,CBU-97*4,AIM-9M*2,ECM,TGP", "roles": [ "CAS" ] @@ -1995,69 +795,210 @@ { "items": [ { - "name": "Mk-82 AIR Ballute - 500lb GP Bomb HD", - "quantity": 4 - }, - { - "name": "Mk-82 - 500lb GP Bomb LD", - "quantity": 4 + "name": "ALQ-131 - ECM Pod", + "quantity": 1 }, { "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", "quantity": 1 }, { - "name": "ALQ-131 - ECM Pod", - "quantity": 1 - } - ], - "enabled": true, - "code": "Mk-82*4,Mk-8AIR*4,AIM-9*2,ECM", - "name": "Mk-82*4,Mk-8AIR*4,AIM-9*2,ECM", - "roles": [ - "Strike" - ] - }, - { - "items": [ - { - "name": "ALQ-131 - ECM Pod", - "quantity": 1 - }, - { - "name": "Mk-82 - 500lb GP Bomb LD", + "name": "CBU-97 - 10 x SFW Cluster Bomb", "quantity": 2 }, { - "name": "BRU-42 with 3 x Mk-82 - 500lb GP Bombs LD", - "quantity": 5 + "name": "Mk-82 AIR Ballute - 500lb GP Bomb HD", + "quantity": 2 }, { - "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", - "quantity": 1 + "name": "LAU-117 with AGM-65E - Maverick E (Laser ASM - Lg Whd)", + "quantity": 2 }, { - "name": "BRU-42 with 3 x Mk-82 AIR Ballute - 500lb GP Bombs HD", + "name": "AN/AAQ-28 LITENING - Targeting Pod", "quantity": 1 } ], "enabled": true, - "code": "Mk-82*20,AIM-9*2,ECM", - "name": "Mk-82*20,AIM-9*2,ECM", + "code": "AGM-65E*2,Mk-82AIR*2,CBU-97*2,AIM-9M*2,ECM,TGP", + "name": "AGM-65E*2,Mk-82AIR*2,CBU-97*2,AIM-9M*2,ECM,TGP", "roles": [ - "Strike" + "CAS" ] }, { "items": [ { - "name": "ALQ-131 - ECM Pod", + "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", "quantity": 1 }, { "name": "Mk-82 - 500lb GP Bomb LD", "quantity": 7 }, + { + "name": "LAU-117 with AGM-65G - Maverick G (IIR ASM - Lg Whd)", + "quantity": 1 + }, + { + "name": "LAU-117 with AGM-65D - Maverick D (IIR ASM)", + "quantity": 1 + }, + { + "name": "ALQ-131 - ECM Pod", + "quantity": 1 + } + ], + "enabled": true, + "code": "AGM-65G,AGM-65D,Mk-82*7,AIM-9*2,ECM", + "name": "AGM-65G,AGM-65D,Mk-82*7,AIM-9*2,ECM", + "roles": [ + "Runway Attack" + ] + }, + { + "items": [ + { + "name": "LAU-117 with AGM-65K - Maverick K (CCD Imp ASM)", + "quantity": 1 + }, + { + "name": "LAU-117 with AGM-65G - Maverick G (IIR ASM - Lg Whd)", + "quantity": 1 + }, + { + "name": "GBU-10 - 2000lb Laser Guided Bomb", + "quantity": 2 + }, + { + "name": "AN/AAQ-28 LITENING - Targeting Pod", + "quantity": 1 + }, + { + "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", + "quantity": 1 + }, + { + "name": "ALQ-184 - ECM Pod", + "quantity": 1 + } + ], + "enabled": true, + "code": "AGM-65G,AGM-65K,GBU-10*2,AIM-9*2,TGP,ECM", + "name": "AGM-65G,AGM-65K,GBU-10*2,AIM-9*2,TGP,ECM", + "roles": [ + "CAS", + "Strike" + ] + }, + { + "items": [ + { + "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", + "quantity": 1 + }, + { + "name": "GBU-31(V)1/B - JDAM, 2000lb GPS Guided Bomb", + "quantity": 2 + }, + { + "name": "LAU-117 with AGM-65G - Maverick G (IIR ASM - Lg Whd)", + "quantity": 2 + }, + { + "name": "ALQ-184 - ECM Pod", + "quantity": 1 + }, + { + "name": "AN/AAQ-28 LITENING - Targeting Pod", + "quantity": 1 + } + ], + "enabled": true, + "code": "AGM-65G*2,GBU-31*2,AIM-9*2,TGP,ECM", + "name": "AGM-65G*2,GBU-31*2,AIM-9*2,TGP,ECM", + "roles": [ + "CAS" + ] + }, + { + "items": [ + { + "name": "ALQ-184 - ECM Pod", + "quantity": 1 + }, + { + "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", + "quantity": 1 + }, + { + "name": "CBU-97 - 10 x SFW Cluster Bomb", + "quantity": 4 + }, + { + "name": "AN/AAQ-28 LITENING - Targeting Pod", + "quantity": 1 + }, + { + "name": "LAU-88 with 2 x AGM-65H - Maverick H (CCD Imp ASM)", + "quantity": 2 + } + ], + "enabled": true, + "code": "AGM-65H*4, CBU-97*4,TGP, ECM, AIM-9*2", + "name": "AGM-65H*4, CBU-97*4,TGP, ECM, AIM-9*2", + "roles": [ + "CAS" + ] + }, + { + "items": [ + { + "name": "GBU-12 - 500lb Laser Guided Bomb", + "quantity": 2 + }, + { + "name": "AN/AAQ-28 LITENING - Targeting Pod", + "quantity": 1 + }, + { + "name": "ALQ-184 - ECM Pod", + "quantity": 1 + }, + { + "name": "LAU-117 with AGM-65K - Maverick K (CCD Imp ASM)", + "quantity": 2 + }, + { + "name": "BRU-42 with 3 x GBU-12 - 500lb Laser Guided Bombs", + "quantity": 2 + }, + { + "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", + "quantity": 1 + } + ], + "enabled": true, + "code": "AGM-65K*2,GBU-12*8,AIM-9M*2.ECM,TGP", + "name": "AGM-65K*2,GBU-12*8,AIM-9M*2.ECM,TGP", + "roles": [ + "Antiship Strike" + ] + }, + { + "items": [ + { + "name": "ALQ-184 - ECM Pod", + "quantity": 1 + }, + { + "name": "LAU-117 with AGM-65K - Maverick K (CCD Imp ASM)", + "quantity": 2 + }, + { + "name": "GBU-38(V)1/B - JDAM, 500lb GPS Guided Bomb", + "quantity": 4 + }, { "name": "AN/AAQ-28 LITENING - Targeting Pod", "quantity": 1 @@ -2068,22 +1009,227 @@ } ], "enabled": true, - "code": "Mk-82*6,AIM-9*2,TGP,ECM", - "name": "Mk-82*6,AIM-9*2,TGP,ECM", + "code": "AGM-65K*2,GBU-38*4,AIM-9*2,TGP,ECM", + "name": "AGM-65K*2,GBU-38*4,AIM-9*2,TGP,ECM", "roles": [ + "CAS", "Strike" ] }, { "items": [ { - "name": "ALQ-131 - ECM Pod", + "name": "LAU-105 with 1 x Captive AIM-9M for ACM", "quantity": 1 }, { - "name": "Mk-84 - 2000lb GP Bomb LD", + "name": "BRU-42 with 3 x BDU-33 - 25lb Practice Bombs LD", + "quantity": 4 + }, + { + "name": "AN/AAQ-28 LITENING - Targeting Pod", + "quantity": 1 + } + ], + "enabled": true, + "code": "BDU-33*12, TGP, CAP-9*1", + "name": "BDU-33*12, TGP, CAP-9*1", + "roles": [ + "CAS" + ] + }, + { + "items": [ + { + "name": "BRU-42 with 3 x BDU-33 - 25lb Practice Bombs LD", + "quantity": 2 + }, + { + "name": "BDU-50LGB - 500lb Laser Guided Inert Practice Bomb LD", + "quantity": 2 + }, + { + "name": "LAU-117 with TGM-65D - Trg Round for Mav D (IIR)", + "quantity": 1 + }, + { + "name": "LAU-117 with TGM-65H - Trg Round for Mav H (CCD)", + "quantity": 1 + }, + { + "name": "AN/AAQ-28 LITENING - Targeting Pod", + "quantity": 1 + }, + { + "name": "LAU-105 with 1 x Captive AIM-9M for ACM", + "quantity": 1 + } + ], + "enabled": true, + "code": "BDU-33*6, TGM-65H, TGM-65D, TGP, BDU-50LGB*2, CAP-9*1", + "name": "BDU-33*6, TGM-65H, TGM-65D, TGP, BDU-50LGB*2, CAP-9*1", + "roles": [ + "CAS" + ] + }, + { + "items": [ + { + "name": "BRU-42 with 3 x BDU-33 - 25lb Practice Bombs LD", + "quantity": 2 + }, + { + "name": "AN/AAQ-28 LITENING - Targeting Pod", + "quantity": 1 + }, + { + "name": "LAU-105 with 1 x Captive AIM-9M for ACM", + "quantity": 1 + } + ], + "enabled": true, + "code": "BDU-33*6, TGP, CAP-9*1", + "name": "BDU-33*6, TGP, CAP-9*1", + "roles": [ + "CAS", + "Strike" + ] + }, + { + "items": [ + { + "name": "BRU-42 with 3 x BDU-33 - 25lb Practice Bombs LD", + "quantity": 2 + }, + { + "name": "AN/AAQ-28 LITENING - Targeting Pod", + "quantity": 1 + }, + { + "name": "BDU-50LD - 500lb Inert Practice Bomb LD", + "quantity": 2 + }, + { + "name": "LAU-105 with 1 x Captive AIM-9M for ACM", + "quantity": 1 + } + ], + "enabled": true, + "code": "BDU-33*6, TGP, CAP-9*1, BDU-50LD*2", + "name": "BDU-33*6, TGP, CAP-9*1, BDU-50LD*2", + "roles": [ + "CAS" + ] + }, + { + "items": [ + { + "name": "BDU-50HD - 500lb Inert Practice Bomb HD", + "quantity": 2 + }, + { + "name": "BDU-50LGB - 500lb Laser Guided Inert Practice Bomb LD", + "quantity": 2 + }, + { + "name": "AN/AAQ-28 LITENING - Targeting Pod", + "quantity": 1 + }, + { + "name": "LAU-68 pod - 7 x 2.75\" Hydra, UnGd Rkts Mk61, Practice", + "quantity": 1 + }, + { + "name": "LAU-105 with 1 x Captive AIM-9M for ACM", + "quantity": 1 + } + ], + "enabled": true, + "code": "BDU-50HD*2,BDU-50LGB*2,TGP, CAP-9*1", + "name": "BDU-50HD*2,BDU-50LGB*2,TGP, CAP-9*1", + "roles": [ + "CAS", + "Strike" + ] + }, + { + "items": [ + { + "name": "BDU-50HD - 500lb Inert Practice Bomb HD", "quantity": 6 }, + { + "name": "AN/AAQ-28 LITENING - Targeting Pod", + "quantity": 1 + }, + { + "name": "LAU-105 with 1 x Captive AIM-9M for ACM", + "quantity": 1 + }, + { + "name": "LAU-131 pod - 7 x 2.75\" Hydra, UnGd Rkts Mk1, Practice", + "quantity": 1 + } + ], + "enabled": true, + "code": "BDU-50HD*6,Mk1*7,TGP, CAP-9*1", + "name": "BDU-50HD*6,Mk1*7,TGP, CAP-9*1", + "roles": [ + "CAS" + ] + }, + { + "items": [ + { + "name": "AN/AAQ-28 LITENING - Targeting Pod", + "quantity": 1 + }, + { + "name": "BDU-50HD - 500lb Inert Practice Bomb HD", + "quantity": 2 + }, + { + "name": "BDU-50LD - 500lb Inert Practice Bomb LD", + "quantity": 2 + }, + { + "name": "LAU-117 with CATM-65K - Captive Trg Round for Mav K (CCD)", + "quantity": 1 + }, + { + "name": "LAU-117 with TGM-65G - Trg Round for Mav G (IIR)", + "quantity": 1 + }, + { + "name": "LAU-131 pod - 7 x 2.75\" Hydra, UnGd Rkts WTU-1/B, Practice", + "quantity": 1 + }, + { + "name": "LAU-105 with 1 x Captive AIM-9M for ACM", + "quantity": 1 + } + ], + "enabled": true, + "code": "BDU-50LD*2, BDU-50HD*2,CATM-65K, TGM-65G, TGP, CAP-9*1", + "name": "BDU-50LD*2, BDU-50HD*2,CATM-65K, TGM-65G, TGP, CAP-9*1", + "roles": [ + "CAS" + ] + }, + { + "items": [ + { + "name": "ALQ-184 - ECM Pod", + "quantity": 1 + }, + { + "name": "CBU-103 - 202 x CEM, CBU with WCMD", + "quantity": 4 + }, + { + "name": "LAU-131 pod - 7 x 2.75\" Hydra, UnGd Rkts M151, HE", + "quantity": 2 + }, { "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", "quantity": 1 @@ -2094,21 +1240,113 @@ } ], "enabled": true, - "code": "Mk-84*6,AIM-9*2,TGP,ECM", - "name": "Mk-84*6,AIM-9*2,TGP,ECM", + "code": "CBU-103*4, M151*14, AIM-9*2, ECM", + "name": "CBU-103*4, M151*14, AIM-9*2, ECM", "roles": [ - "Strike" + "CAS" ] }, { "items": [ { - "name": "Mk-82 AIR Ballute - 500lb GP Bomb HD", - "quantity": 5 + "name": "ALQ-131 - ECM Pod", + "quantity": 1 }, { - "name": "Mk-82 - 500lb GP Bomb LD", + "name": "LAU-131 pod - 7 x 2.75\" Hydra, UnGd Rkts M151, HE", + "quantity": 2 + }, + { + "name": "BRU-42 with 3 x Mk-82 AIR Ballute - 500lb GP Bombs HD", + "quantity": 2 + }, + { + "name": "CBU-87 - 202 x CEM Cluster Bomb", + "quantity": 2 + }, + { + "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", "quantity": 1 + } + ], + "enabled": true, + "code": "CBU-87*2, M151*14, MK-82AIR*6, AIM-9*2,ECM", + "name": "CBU-87*2, M151*14, MK-82AIR*6, AIM-9*2,ECM", + "roles": [ + "CAS" + ] + }, + { + "items": [ + { + "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", + "quantity": 1 + }, + { + "name": "CBU-87 - 202 x CEM Cluster Bomb", + "quantity": 4 + }, + { + "name": "LAU-131 pod - 7 x 2.75\" Hydra, UnGd Rkts M151, HE", + "quantity": 4 + }, + { + "name": "ALQ-131 - ECM Pod", + "quantity": 1 + } + ], + "enabled": true, + "code": "CBU-87*4, M151*28, AIM-9*2,ECM", + "name": "CBU-87*4, M151*28, AIM-9*2,ECM", + "roles": [ + "CAS" + ] + }, + { + "items": [ + { + "name": "ALQ-131 - ECM Pod", + "quantity": 1 + }, + { + "name": "BRU-42 with 3 x LAU-68 pods - 21 x 2.75\" Hydra, UnGd Rkts M151, HE", + "quantity": 2 + }, + { + "name": "CBU-87 - 202 x CEM Cluster Bomb", + "quantity": 4 + }, + { + "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", + "quantity": 1 + } + ], + "enabled": true, + "code": "CBU-87*4, M151*42, AIM-9*2, ECM", + "name": "CBU-87*4, M151*42, AIM-9*2, ECM", + "roles": [ + "CAS" + ] + }, + { + "items": [], + "enabled": true, + "code": "", + "name": "Empty loadout", + "roles": [ + "No task", + "CAS" + ] + }, + { + "items": [ + { + "name": "LAU-117 with AGM-65E - Maverick E (Laser ASM - Lg Whd)", + "quantity": 2 + }, + { + "name": "GBU-10 - 2000lb Laser Guided Bomb", + "quantity": 2 }, { "name": "AN/AAQ-28 LITENING - Targeting Pod", @@ -2123,17 +1361,266 @@ "quantity": 1 }, { - "name": "LAU-68 pod - 7 x 2.75\" Hydra, UnGd Rkts M151, HE", + "name": "LAU-131 pod - 7 x 2.75\" Hydra, Laser Guided Rkts M151, HE APKWS", "quantity": 1 } ], "enabled": true, - "code": "Mk-82AIR*6,Mk-8AIR*4,M151*1,TGP,AIM-9*2,ECM", - "name": "Mk-82AIR*6,Mk-8AIR*4,M151*1,TGP,AIM-9*2,ECM", + "code": "GBU-10*2,M151 APKWS*7,AGM-65E*2,TGP,AIM-9*2,ECM", + "name": "GBU-10*2,M151 APKWS*7,AGM-65E*2,TGP,AIM-9*2,ECM", "roles": [ "Strike" ] }, + { + "items": [ + { + "name": "BRU-42 with 3 x GBU-12 - 500lb Laser Guided Bombs", + "quantity": 4 + }, + { + "name": "AN/AAQ-28 LITENING - Targeting Pod", + "quantity": 1 + }, + { + "name": "GBU-12 - 500lb Laser Guided Bomb", + "quantity": 2 + }, + { + "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", + "quantity": 1 + } + ], + "enabled": true, + "code": "GBU-12*14,TGP, AIM-9*2", + "name": "GBU-12*14,TGP, AIM-9*2", + "roles": [ + "CAS" + ] + }, + { + "items": [ + { + "name": "LAU-117 with AGM-65E - Maverick E (Laser ASM - Lg Whd)", + "quantity": 2 + }, + { + "name": "GBU-38(V)1/B - JDAM, 500lb GPS Guided Bomb", + "quantity": 2 + }, + { + "name": "GBU-12 - 500lb Laser Guided Bomb", + "quantity": 2 + }, + { + "name": "AN/AAQ-28 LITENING - Targeting Pod", + "quantity": 1 + }, + { + "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", + "quantity": 1 + }, + { + "name": "ALQ-131 - ECM Pod", + "quantity": 1 + }, + { + "name": "LAU-131 pod - 7 x 2.75\" Hydra, Laser Guided Rkts M151, HE APKWS", + "quantity": 1 + } + ], + "enabled": true, + "code": "GBU-12*2,GBU-38*2,M151 APKWS*7,AGM-65E*2,TGP,AIM-9*2,ECM", + "name": "GBU-12*2,GBU-38*2,M151 APKWS*7,AGM-65E*2,TGP,AIM-9*2,ECM", + "roles": [ + "Strike" + ] + }, + { + "items": [ + { + "name": "LAU-117 with AGM-65E - Maverick E (Laser ASM - Lg Whd)", + "quantity": 2 + }, + { + "name": "GBU-12 - 500lb Laser Guided Bomb", + "quantity": 4 + }, + { + "name": "AN/AAQ-28 LITENING - Targeting Pod", + "quantity": 1 + }, + { + "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", + "quantity": 1 + }, + { + "name": "ALQ-131 - ECM Pod", + "quantity": 1 + }, + { + "name": "LAU-131 pod - 7 x 2.75\" Hydra, Laser Guided Rkts M151, HE APKWS", + "quantity": 1 + } + ], + "enabled": true, + "code": "GBU-12*4,M151 APKWS*7,AGM-65E*2,TGP,AIM-9*2,ECM", + "name": "GBU-12*4,M151 APKWS*7,AGM-65E*2,TGP,AIM-9*2,ECM", + "roles": [ + "Strike" + ] + }, + { + "items": [ + { + "name": "BRU-42 with 3 x GBU-12 - 500lb Laser Guided Bombs", + "quantity": 2 + }, + { + "name": "GBU-10 - 2000lb Laser Guided Bomb", + "quantity": 2 + }, + { + "name": "AN/AAQ-28 LITENING - Targeting Pod", + "quantity": 1 + }, + { + "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", + "quantity": 1 + } + ], + "enabled": true, + "code": "GBU-12*6,GBU-10*2,TGP, AIM-9*2", + "name": "GBU-12*6,GBU-10*2,TGP, AIM-9*2", + "roles": [ + "CAS" + ] + }, + { + "items": [ + { + "name": "ALQ-184 - ECM Pod", + "quantity": 1 + }, + { + "name": "LAU-117 with AGM-65G - Maverick G (IIR ASM - Lg Whd)", + "quantity": 2 + }, + { + "name": "GBU-38(V)1/B - JDAM, 500lb GPS Guided Bomb", + "quantity": 2 + }, + { + "name": "GBU-31(V)1/B - JDAM, 2000lb GPS Guided Bomb", + "quantity": 2 + }, + { + "name": "AN/AAQ-28 LITENING - Targeting Pod", + "quantity": 1 + }, + { + "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", + "quantity": 1 + } + ], + "enabled": true, + "code": "GBU-31*2,GBU-38*2, AGM-65H*2, AIM-9*2,TGP, ECM", + "name": "GBU-31*2,GBU-38*2, AGM-65H*2, AIM-9*2,TGP, ECM", + "roles": [ + "CAS" + ] + }, + { + "items": [ + { + "name": "ALQ-184 - ECM Pod", + "quantity": 1 + }, + { + "name": "GBU-38(V)1/B - JDAM, 500lb GPS Guided Bomb", + "quantity": 4 + }, + { + "name": "GBU-31(V)1/B - JDAM, 2000lb GPS Guided Bomb", + "quantity": 2 + }, + { + "name": "AN/AAQ-28 LITENING - Targeting Pod", + "quantity": 1 + }, + { + "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", + "quantity": 1 + } + ], + "enabled": true, + "code": "GBU-31*2,GBU-38*4,AIM-9*2,TGP,ECM, AIM-9*2", + "name": "GBU-31*2,GBU-38*4,AIM-9*2,TGP,ECM, AIM-9*2", + "roles": [ + "CAS", + "Strike" + ] + }, + { + "items": [ + { + "name": "LAU-117 with AGM-65E - Maverick E (Laser ASM - Lg Whd)", + "quantity": 2 + }, + { + "name": "GBU-31(V)3/B - JDAM, 2000lb GPS Guided Penetrator Bomb", + "quantity": 2 + }, + { + "name": "AN/AAQ-28 LITENING - Targeting Pod", + "quantity": 1 + }, + { + "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", + "quantity": 1 + }, + { + "name": "ALQ-131 - ECM Pod", + "quantity": 1 + }, + { + "name": "LAU-131 pod - 7 x 2.75\" Hydra, Laser Guided Rkts M151, HE APKWS", + "quantity": 1 + } + ], + "enabled": true, + "code": "GBU-31*2,M151 APKWS*7,AGM-65E*2,TGP,AIM-9*2,ECM", + "name": "GBU-31*2,M151 APKWS*7,AGM-65E*2,TGP,AIM-9*2,ECM", + "roles": [ + "Strike" + ] + }, + { + "items": [ + { + "name": "AN/AAQ-28 LITENING - Targeting Pod", + "quantity": 1 + }, + { + "name": "GBU-31(V)1/B - JDAM, 2000lb GPS Guided Bomb", + "quantity": 2 + }, + { + "name": "GBU-38(V)1/B - JDAM, 500lb GPS Guided Bomb", + "quantity": 4 + }, + { + "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", + "quantity": 1 + } + ], + "enabled": true, + "code": "GBU-38*4,GBU-31*2,TGP, AIM-9*2", + "name": "GBU-38*4,GBU-31*2,TGP, AIM-9*2", + "roles": [ + "CAS" + ] + }, { "items": [ { @@ -2209,11 +1696,11 @@ { "items": [ { - "name": "LAU-117 with AGM-65E - Maverick E (Laser ASM - Lg Whd)", + "name": "LAU-88 with 2 x AGM-65D - Maverick D (IIR ASM)", "quantity": 2 }, { - "name": "GBU-12 - 500lb Laser Guided Bomb", + "name": "GBU-54(V)1/B - LJDAM, 500lb Laser & GPS Guided Bomb LD", "quantity": 4 }, { @@ -2234,114 +1721,8 @@ } ], "enabled": true, - "code": "GBU-12*4,M151 APKWS*7,AGM-65E*2,TGP,AIM-9*2,ECM", - "name": "GBU-12*4,M151 APKWS*7,AGM-65E*2,TGP,AIM-9*2,ECM", - "roles": [ - "Strike" - ] - }, - { - "items": [ - { - "name": "LAU-117 with AGM-65E - Maverick E (Laser ASM - Lg Whd)", - "quantity": 2 - }, - { - "name": "GBU-38(V)1/B - JDAM, 500lb GPS Guided Bomb", - "quantity": 2 - }, - { - "name": "GBU-12 - 500lb Laser Guided Bomb", - "quantity": 2 - }, - { - "name": "AN/AAQ-28 LITENING - Targeting Pod", - "quantity": 1 - }, - { - "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", - "quantity": 1 - }, - { - "name": "ALQ-131 - ECM Pod", - "quantity": 1 - }, - { - "name": "LAU-131 pod - 7 x 2.75\" Hydra, Laser Guided Rkts M151, HE APKWS", - "quantity": 1 - } - ], - "enabled": true, - "code": "GBU-12*2,GBU-38*2,M151 APKWS*7,AGM-65E*2,TGP,AIM-9*2,ECM", - "name": "GBU-12*2,GBU-38*2,M151 APKWS*7,AGM-65E*2,TGP,AIM-9*2,ECM", - "roles": [ - "Strike" - ] - }, - { - "items": [ - { - "name": "LAU-117 with AGM-65E - Maverick E (Laser ASM - Lg Whd)", - "quantity": 2 - }, - { - "name": "GBU-10 - 2000lb Laser Guided Bomb", - "quantity": 2 - }, - { - "name": "AN/AAQ-28 LITENING - Targeting Pod", - "quantity": 1 - }, - { - "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", - "quantity": 1 - }, - { - "name": "ALQ-131 - ECM Pod", - "quantity": 1 - }, - { - "name": "LAU-131 pod - 7 x 2.75\" Hydra, Laser Guided Rkts M151, HE APKWS", - "quantity": 1 - } - ], - "enabled": true, - "code": "GBU-10*2,M151 APKWS*7,AGM-65E*2,TGP,AIM-9*2,ECM", - "name": "GBU-10*2,M151 APKWS*7,AGM-65E*2,TGP,AIM-9*2,ECM", - "roles": [ - "Strike" - ] - }, - { - "items": [ - { - "name": "LAU-117 with AGM-65E - Maverick E (Laser ASM - Lg Whd)", - "quantity": 2 - }, - { - "name": "GBU-31(V)3/B - JDAM, 2000lb GPS Guided Penetrator Bomb", - "quantity": 2 - }, - { - "name": "AN/AAQ-28 LITENING - Targeting Pod", - "quantity": 1 - }, - { - "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", - "quantity": 1 - }, - { - "name": "ALQ-131 - ECM Pod", - "quantity": 1 - }, - { - "name": "LAU-131 pod - 7 x 2.75\" Hydra, Laser Guided Rkts M151, HE APKWS", - "quantity": 1 - } - ], - "enabled": true, - "code": "GBU-31*2,M151 APKWS*7,AGM-65E*2,TGP,AIM-9*2,ECM", - "name": "GBU-31*2,M151 APKWS*7,AGM-65E*2,TGP,AIM-9*2,ECM", + "code": "GBU-54*4,M151 APKWS*7,AGM-65D*4,TGP,AIM-9*2,ECM", + "name": "GBU-54*4,M151 APKWS*7,AGM-65D*4,TGP,AIM-9*2,ECM", "roles": [ "Strike" ] @@ -2383,13 +1764,226 @@ { "items": [ { - "name": "LAU-88 with 2 x AGM-65D - Maverick D (IIR ASM)", + "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", + "quantity": 1 + }, + { + "name": "BRU-42 with 3 x LAU-131 pods - 21 x 2.75\" Hydra, UnGd Rkts M156, Wht Phos", + "quantity": 4 + }, + { + "name": "AN/AAQ-28 LITENING - Targeting Pod", + "quantity": 1 + }, + { + "name": "LAU-131 pod - 7 x 2.75\" Hydra, UnGd Rkts M156, Wht Phos", + "quantity": 1 + }, + { + "name": "ALQ-131 - ECM Pod", + "quantity": 1 + } + ], + "enabled": true, + "code": "LAU-131 98 rkt M156 WP, AIM-9*2,ECM", + "name": "LAU-131 98 rkt M156 WP, AIM-9*2,ECM", + "roles": [ + "FAC-A" + ] + }, + { + "items": [ + { + "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", + "quantity": 1 + }, + { + "name": "LAU-68 pod - 7 x 2.75\" Hydra, UnGd Rkts M156, Wht Phos", + "quantity": 6 + }, + { + "name": "ALQ-184 - ECM Pod", + "quantity": 1 + } + ], + "enabled": true, + "code": "LAU-68 42 rkt M156 WP, AIM-9*2, ECM", + "name": "LAU-68 42 rkt M156 WP, AIM-9*2, ECM", + "roles": [ + "FAC-A" + ] + }, + { + "items": [ + { + "name": "LAU-68 pod - 7 x 2.75\" Hydra, UnGd Rkts M151, HE", "quantity": 2 }, { - "name": "GBU-54(V)1/B - LJDAM, 500lb Laser & GPS Guided Bomb LD", + "name": "BRU-42 with 3 x LAU-68 pods - 21 x 2.75\" Hydra, UnGd Rkts M151, HE", "quantity": 4 }, + { + "name": "Mk-82 - 500lb GP Bomb LD", + "quantity": 2 + }, + { + "name": "ALQ-131 - ECM Pod", + "quantity": 1 + }, + { + "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", + "quantity": 1 + } + ], + "enabled": true, + "code": "M151*98, Mk-82*2,AIM-9*2,ECM", + "name": "M151*98, Mk-82*2,AIM-9*2,ECM", + "roles": [ + "CAS", + "Strike" + ] + }, + { + "items": [ + { + "name": "ALQ-131 - ECM Pod", + "quantity": 1 + }, + { + "name": "Mk-82 - 500lb GP Bomb LD", + "quantity": 2 + }, + { + "name": "BRU-42 with 3 x Mk-82 - 500lb GP Bombs LD", + "quantity": 5 + }, + { + "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", + "quantity": 1 + }, + { + "name": "BRU-42 with 3 x Mk-82 AIR Ballute - 500lb GP Bombs HD", + "quantity": 1 + } + ], + "enabled": true, + "code": "Mk-82*20,AIM-9*2,ECM", + "name": "Mk-82*20,AIM-9*2,ECM", + "roles": [ + "Strike" + ] + }, + { + "items": [ + { + "name": "Mk-82 AIR Ballute - 500lb GP Bomb HD", + "quantity": 4 + }, + { + "name": "Mk-82 - 500lb GP Bomb LD", + "quantity": 4 + }, + { + "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", + "quantity": 1 + }, + { + "name": "ALQ-131 - ECM Pod", + "quantity": 1 + } + ], + "enabled": true, + "code": "Mk-82*4,Mk-8AIR*4,AIM-9*2,ECM", + "name": "Mk-82*4,Mk-8AIR*4,AIM-9*2,ECM", + "roles": [ + "Strike" + ] + }, + { + "items": [ + { + "name": "ALQ-131 - ECM Pod", + "quantity": 1 + }, + { + "name": "Mk-82 - 500lb GP Bomb LD", + "quantity": 7 + }, + { + "name": "AN/AAQ-28 LITENING - Targeting Pod", + "quantity": 1 + }, + { + "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", + "quantity": 1 + } + ], + "enabled": true, + "code": "Mk-82*6,AIM-9*2,TGP,ECM", + "name": "Mk-82*6,AIM-9*2,TGP,ECM", + "roles": [ + "Strike" + ] + }, + { + "items": [ + { + "name": "Mk-82 - 500lb GP Bomb LD", + "quantity": 6 + }, + { + "name": "Mk-84 - 2000lb GP Bomb LD", + "quantity": 2 + }, + { + "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", + "quantity": 1 + }, + { + "name": "ALQ-131 - ECM Pod", + "quantity": 1 + } + ], + "enabled": true, + "code": "Mk-82*6,Mk-84*2,AIM-9*2,ECM", + "name": "Mk-82*6,Mk-84*2,AIM-9*2,ECM", + "roles": [ + "Strike" + ] + }, + { + "items": [ + { + "name": "ALQ-131 - ECM Pod", + "quantity": 1 + }, + { + "name": "Mk-82 - 500lb GP Bomb LD", + "quantity": 8 + }, + { + "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", + "quantity": 1 + } + ], + "enabled": true, + "code": "Mk-82*8,AIM-9*2,ECM", + "name": "Mk-82*8,AIM-9*2,ECM", + "roles": [ + "Strike" + ] + }, + { + "items": [ + { + "name": "Mk-82 AIR Ballute - 500lb GP Bomb HD", + "quantity": 5 + }, + { + "name": "Mk-82 - 500lb GP Bomb LD", + "quantity": 1 + }, { "name": "AN/AAQ-28 LITENING - Targeting Pod", "quantity": 1 @@ -2403,137 +1997,472 @@ "quantity": 1 }, { - "name": "LAU-131 pod - 7 x 2.75\" Hydra, Laser Guided Rkts M151, HE APKWS", + "name": "LAU-68 pod - 7 x 2.75\" Hydra, UnGd Rkts M151, HE", "quantity": 1 } ], "enabled": true, - "code": "GBU-54*4,M151 APKWS*7,AGM-65D*4,TGP,AIM-9*2,ECM", - "name": "GBU-54*4,M151 APKWS*7,AGM-65D*4,TGP,AIM-9*2,ECM", + "code": "Mk-82AIR*6,Mk-8AIR*4,M151*1,TGP,AIM-9*2,ECM", + "name": "Mk-82AIR*6,Mk-8AIR*4,M151*1,TGP,AIM-9*2,ECM", "roles": [ "Strike" ] + }, + { + "items": [ + { + "name": "Mk-82 AIR Ballute - 500lb GP Bomb HD", + "quantity": 8 + }, + { + "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", + "quantity": 1 + }, + { + "name": "ALQ-131 - ECM Pod", + "quantity": 1 + } + ], + "enabled": true, + "code": "Mk-82AIR*8,AIM-9*2,ECM", + "name": "Mk-82AIR*8,AIM-9*2,ECM", + "roles": [ + "Runway Attack" + ] + }, + { + "items": [ + { + "name": "ALQ-131 - ECM Pod", + "quantity": 1 + }, + { + "name": "LAU-131 pod - 7 x 2.75\" Hydra, UnGd Rkts M257, Para Illum", + "quantity": 2 + }, + { + "name": "LAU-117 with AGM-65K - Maverick K (CCD Imp ASM)", + "quantity": 2 + }, + { + "name": "Mk-84 - 2000lb GP Bomb LD", + "quantity": 2 + } + ], + "enabled": true, + "code": "MK-84*2,LAU-68*2,AGM-65K*2", + "name": "MK-84*2,LAU-68*2,AGM-65K*2", + "roles": [ + "Strike" + ] + }, + { + "items": [ + { + "name": "ALQ-131 - ECM Pod", + "quantity": 1 + }, + { + "name": "Mk-84 - 2000lb GP Bomb LD", + "quantity": 4 + }, + { + "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", + "quantity": 1 + } + ], + "enabled": true, + "code": "Mk-84*4,AIM-9*2,ECM", + "name": "Mk-84*4,AIM-9*2,ECM", + "roles": [ + "Strike" + ] + }, + { + "items": [ + { + "name": "ALQ-131 - ECM Pod", + "quantity": 1 + }, + { + "name": "Mk-84 - 2000lb GP Bomb LD", + "quantity": 6 + }, + { + "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", + "quantity": 1 + }, + { + "name": "AN/AAQ-28 LITENING - Targeting Pod", + "quantity": 1 + } + ], + "enabled": true, + "code": "Mk-84*6,AIM-9*2,TGP,ECM", + "name": "Mk-84*6,AIM-9*2,TGP,ECM", + "roles": [ + "Strike" + ] + }, + { + "items": [ + { + "name": "GBU-10 - 2000lb Laser Guided Bomb", + "quantity": 2 + }, + { + "name": "GBU-12 - 500lb Laser Guided Bomb", + "quantity": 4 + }, + { + "name": "AN/AAQ-28 LITENING - Targeting Pod", + "quantity": 1 + }, + { + "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", + "quantity": 1 + }, + { + "name": "ALQ-184 - ECM Pod", + "quantity": 1 + } + ], + "enabled": true, + "code": "PGM- GBU-10*2,GBU-12*4,AIM-9*2,TGP,ECM", + "name": "PGM- GBU-10*2,GBU-12*4,AIM-9*2,TGP,ECM", + "roles": [ + "CAS", + "Strike" + ] + }, + { + "items": [ + { + "name": "ALQ-184 - ECM Pod", + "quantity": 1 + }, + { + "name": "LAU-117 with AGM-65K - Maverick K (CCD Imp ASM)", + "quantity": 2 + }, + { + "name": "GBU-10 - 2000lb Laser Guided Bomb", + "quantity": 4 + }, + { + "name": "AN/AAQ-28 LITENING - Targeting Pod", + "quantity": 1 + }, + { + "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", + "quantity": 1 + } + ], + "enabled": true, + "code": "PGM- GBU-10*4, AGM-65K*2,AIM-9*2,TGP,ECM", + "name": "PGM- GBU-10*4, AGM-65K*2,AIM-9*2,TGP,ECM", + "roles": [ + "CAS" + ] + }, + { + "items": [ + { + "name": "ALQ-131 - ECM Pod", + "quantity": 1 + }, + { + "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", + "quantity": 1 + }, + { + "name": "SUU-25 x 8 LUU-2 - Target Marker Flares", + "quantity": 9 + } + ], + "enabled": true, + "code": "SUU-25*9,AIM-9*2,ECM", + "name": "SUU-25*9,AIM-9*2,ECM", + "roles": [ + "FAC-A" + ] + }, + { + "items": [ + { + "name": "AN/AAQ-28 LITENING - Targeting Pod", + "quantity": 1 + } + ], + "enabled": true, + "code": "TGP", + "name": "TGP", + "roles": [ + "CAS" + ] + }, + { + "items": [ + { + "name": "AN/AAQ-28 LITENING - Targeting Pod", + "quantity": 1 + }, + { + "name": "LAU-105 with 1 x Captive AIM-9M for ACM", + "quantity": 1 + }, + { + "name": "BDU-50LGB - 500lb Laser Guided Inert Practice Bomb LD", + "quantity": 4 + } + ], + "enabled": true, + "code": "TGP, CAP-9*1, BDU-50LGB*4", + "name": "TGP, CAP-9*1, BDU-50LGB*4", + "roles": [ + "CAS" + ] + }, + { + "items": [ + { + "name": "LAU-117 with CATM-65K - Captive Trg Round for Mav K (CCD)", + "quantity": 1 + }, + { + "name": "LAU-117 with TGM-65G - Trg Round for Mav G (IIR)", + "quantity": 1 + }, + { + "name": "LAU-105 with 1 x Captive AIM-9M for ACM", + "quantity": 1 + }, + { + "name": "AN/AAQ-28 LITENING - Targeting Pod", + "quantity": 1 + } + ], + "enabled": true, + "code": "TGP, CAP-9*1, CATM-65K*1, TGM-65G*1", + "name": "TGP, CAP-9*1, CATM-65K*1, TGM-65G*1", + "roles": [ + "CAS" + ] + }, + { + "items": [ + { + "name": "ALQ-131 - ECM Pod", + "quantity": 1 + }, + { + "name": "CBU-87 - 202 x CEM Cluster Bomb", + "quantity": 3 + }, + { + "name": "LAU-131 pod - 7 x 2.75\" Hydra, UnGd Rkts M151, HE", + "quantity": 4 + }, + { + "name": "AN/AAQ-28 LITENING - Targeting Pod", + "quantity": 1 + }, + { + "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", + "quantity": 1 + } + ], + "enabled": true, + "code": "TGP, CBU-87*3, M151*28, AIM-9*2, ECM", + "name": "TGP, CBU-87*3, M151*28, AIM-9*2, ECM", + "roles": [ + "CAS" + ] + }, + { + "items": [ + { + "name": "ALQ-131 - ECM Pod", + "quantity": 1 + }, + { + "name": "LAU-131 pod - 7 x 2.75\" Hydra, UnGd Rkts M151, HE", + "quantity": 2 + }, + { + "name": "Mk-82 - 500lb GP Bomb LD", + "quantity": 2 + }, + { + "name": "Mk-82 AIR Ballute - 500lb GP Bomb HD", + "quantity": 2 + }, + { + "name": "AN/AAQ-28 LITENING - Targeting Pod", + "quantity": 1 + }, + { + "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", + "quantity": 1 + } + ], + "enabled": true, + "code": "TGP, M151*14, Mk-82*2, Mk-82AIR*2, AIM-9*2, ECM", + "name": "TGP, M151*14, Mk-82*2, Mk-82AIR*2, AIM-9*2, ECM", + "roles": [ + "CAS" + ] + }, + { + "items": [ + { + "name": "ALQ-131 - ECM Pod", + "quantity": 1 + }, + { + "name": "BRU-42 with 3 x LAU-68 pods - 21 x 2.75\" Hydra, UnGd Rkts M151, HE", + "quantity": 2 + }, + { + "name": "BRU-42 with 3 x Mk-82 AIR Ballute - 500lb GP Bombs HD", + "quantity": 2 + }, + { + "name": "BRU-42 with 3 x Mk-82 - 500lb GP Bombs LD", + "quantity": 2 + }, + { + "name": "AN/AAQ-28 LITENING - Targeting Pod", + "quantity": 1 + }, + { + "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", + "quantity": 1 + } + ], + "enabled": true, + "code": "TGP, M151*42, Mk-82*6, Mk-82AIR*6, AIM-9*2, ECM", + "name": "TGP, M151*42, Mk-82*6, Mk-82AIR*6, AIM-9*2, ECM", + "roles": [ + "CAS" + ] + }, + { + "items": [ + { + "name": "ALQ-131 - ECM Pod", + "quantity": 1 + }, + { + "name": "LAU-68 pod - 7 x 2.75\" Hydra, UnGd Rkts M151, HE", + "quantity": 1 + }, + { + "name": "BRU-42 with 3 x LAU-68 pods - 21 x 2.75\" Hydra, UnGd Rkts M151, HE", + "quantity": 2 + }, + { + "name": "CBU-87 - 202 x CEM Cluster Bomb", + "quantity": 2 + }, + { + "name": "Mk-82 - 500lb GP Bomb LD", + "quantity": 2 + }, + { + "name": "AN/AAQ-28 LITENING - Targeting Pod", + "quantity": 1 + }, + { + "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", + "quantity": 1 + } + ], + "enabled": true, + "code": "TGP, M151*49, Mk-82*2, CBU-87*2, AIM-9*2, ECM", + "name": "TGP, M151*49, Mk-82*2, CBU-87*2, AIM-9*2, ECM", + "roles": [ + "CAS" + ] + }, + { + "items": [ + { + "name": "ALQ-131 - ECM Pod", + "quantity": 1 + }, + { + "name": "BRU-42 with 3 x LAU-68 pods - 21 x 2.75\" Hydra, UnGd Rkts M151, HE", + "quantity": 4 + }, + { + "name": "Mk-82 - 500lb GP Bomb LD", + "quantity": 2 + }, + { + "name": "AN/AAQ-28 LITENING - Targeting Pod", + "quantity": 1 + }, + { + "name": "LAU-105 with 2 x AIM-9M Sidewinder IR AAM", + "quantity": 1 + } + ], + "enabled": true, + "code": "TGP, M151*84, Mk-82*2,AIM-9*2, ECM", + "name": "TGP, M151*84, Mk-82*2,AIM-9*2, ECM", + "roles": [ + "CAS" + ] } ], "filename": "a-10.png", "enabled": true, "liveries": { - "algerian af fictional desert": { - "name": "Algerian AF Fictional Desert", - "countries": [ - "DZA" - ] - }, - "23rd tfw england afb (el)": { - "name": "23rd TFW England AFB (EL)", - "countries": [ - "USA" - ] - }, "81st fs spangdahlem ab, germany (sp) 1": { "name": "81st FS Spangdahlem AB, Germany (SP) 1", "countries": [ "USA" ] }, - "fictional italian am (23gruppo)": { - "name": "AM (23Gruppo)", - "countries": [ - "ITA" - ] - }, - "118th fs bradley angb, connecticut (ct) n621": { - "name": "118th FS Bradley ANGB, Connecticut (CT) N621", - "countries": [ - "USA" - ] - }, - "47th fs barksdale afb, louisiana (bd)": { - "name": "47th FS Barksdale AFB, Louisiana (BD)", - "countries": [ - "USA" - ] - }, - "canada rcaf 409 squadron": { - "name": "Fictional RCAF 409 Squadron", - "countries": [ - "CAN" - ] - }, - "fictional canadian air force pixel camo": { - "name": "Fictional Canadian Air Force Pixel Camo", - "countries": [ - "CAN" - ] - }, - "fictional spanish aga": { - "name": "Fictional Spanish AGA", - "countries": [ - "SPN" - ] - }, - "australia notional raaf": { - "name": "Australia Notional RAAF", - "countries": [ - "AUS" - ] - }, - "haf fictional": { - "name": "Hellenic Airforce (Fictional)", - "countries": [ - "GRC" - ] - }, - "fictional georgian olive": { - "name": "Fictional Georgian Olive", - "countries": [ - "GRG" - ] - }, - "fictional russian air force 1": { - "name": "Fictional Russian Air Force 1", - "countries": [ - "RUS" - ] - }, "fictional spanish tritonal": { "name": "Fictional Spanish Tritonal", "countries": [ "SPN" ] }, - "74th fs moody afb, georgia (ft)": { - "name": "74th FS Moody AFB, Georgia (FT)", + "47th fs barksdale afb, louisiana (bd)": { + "name": "47th FS Barksdale AFB, Louisiana (BD)", "countries": [ "USA" ] }, - "fictional ukraine air force 1": { - "name": "Fictional Ukraine Air Force 1", + "fictional georgian olive": { + "name": "Fictional Georgian Olive", "countries": [ - "UKR" + "GRG" ] }, - "fictional german 3323": { - "name": "Fictional German 3323", + "algerian af fictional grey": { + "name": "Algerian AF Fictional Grey", "countries": [ - "GER" + "DZA" ] }, - "81st fs spangdahlem ab, germany (sp) 2": { - "name": "81st FS Spangdahlem AB, Germany (SP) 2", + "fictional russian air force 1": { + "name": "Fictional Russian Air Force 1", "countries": [ - "USA" + "RUS" ] }, - "fictional france escadron de chasse 03.003 ardennes": { - "name": "Fictional France Escadron de Chasse 03.003 ARDENNES", + "fictional israel 115 sqn flying dragon": { + "name": "Fictional Israel 115 Sqn Flying Dragon", "countries": [ - "FRA" + "ISR" ] }, - "358th fs davis monthan afb, arizona (dm)": { - "name": "358th FS Davis Monthan AFB, Arizona (DM)", + "172nd fs battle creek angb, michigan (bc)": { + "name": "172nd FS Battle Creek ANGB, Michigan (BC)", "countries": [ "USA" ] @@ -2544,44 +2473,16 @@ "USA" ] }, - "25th fs osan ab, korea (os)": { - "name": "25th FS Osan AB, Korea (OS)", + "81st fs spangdahlem ab, germany (sp) 2": { + "name": "81st FS Spangdahlem AB, Germany (SP) 2", "countries": [ "USA" ] }, - "184th fs arkansas ang, fort smith (fs)": { - "name": "184th FS Arkansas ANG, Fort Smith (FS)", + "fictional german 3322": { + "name": "Fictional German 3322", "countries": [ - "USA" - ] - }, - "algerian af fictional grey": { - "name": "Algerian AF Fictional Grey", - "countries": [ - "DZA" - ] - }, - "fictional russian air force 2": { - "name": "Fictional Russian Air Force 2", - "countries": [ - "RUS" - ] - }, - "a-10 grey": { - "name": "A-10 Grey", - "countries": [ - "UK", - "NETH", - "BEL", - "TUR", - "DEN" - ] - }, - "fictional spanish 12nd wing": { - "name": "Fictional Spanish 12nd Wing", - "countries": [ - "SPN" + "GER" ] }, "66th ws nellis afb, nevada (wa)": { @@ -2590,22 +2491,40 @@ "USA" ] }, - "fictional israel 115 sqn flying dragon": { - "name": "Fictional Israel 115 Sqn Flying Dragon", + "algerian af fictional desert": { + "name": "Algerian AF Fictional Desert", "countries": [ - "ISR" + "DZA" ] }, - "355th fs eielson afb, alaska (ak)": { - "name": "355th FS Eielson AFB, Alaska (AK)", + "fictional italian am (23gruppo)": { + "name": "AM (23Gruppo)", + "countries": [ + "ITA" + ] + }, + "haf fictional": { + "name": "Hellenic Airforce (Fictional)", + "countries": [ + "GRC" + ] + }, + "184th fs arkansas ang, fort smith (fs)": { + "name": "184th FS Arkansas ANG, Fort Smith (FS)", "countries": [ "USA" ] }, - "fictional georgian grey": { - "name": "Fictional Georgian Grey", + "354th fs davis monthan afb, arizona (dm)": { + "name": "354th FS Davis Monthan AFB, Arizona (DM)", "countries": [ - "GRG" + "USA" + ] + }, + "fictional royal norwegian air force": { + "name": "Fictional Royal Norwegian Air Force", + "countries": [ + "NOR" ] }, "422nd tes nellis afb, nevada (ot)": { @@ -2620,22 +2539,28 @@ "USA" ] }, - "fictional german 3322": { - "name": "Fictional German 3322", + "fictional spanish aga": { + "name": "Fictional Spanish AGA", "countries": [ - "GER" + "SPN" ] }, - "canada rcaf 442 snow scheme": { - "name": "Fictional RCAF 442 Snow Scheme", + "74th fs moody afb, georgia (ft)": { + "name": "74th FS Moody AFB, Georgia (FT)", "countries": [ - "CAN" + "USA" ] }, - "fictional royal norwegian air force": { - "name": "Fictional Royal Norwegian Air Force", + "fictional russian air force 2": { + "name": "Fictional Russian Air Force 2", "countries": [ - "NOR" + "RUS" + ] + }, + "118th fs bradley angb, connecticut (ct) n621": { + "name": "118th FS Bradley ANGB, Connecticut (CT) N621", + "countries": [ + "USA" ] }, "357th fs davis monthan afb, arizona (dm)": { @@ -2644,42 +2569,116 @@ "USA" ] }, + "canada rcaf 409 squadron": { + "name": "Fictional RCAF 409 Squadron", + "countries": [ + "CAN" + ] + }, + "355th fs eielson afb, alaska (ak)": { + "name": "355th FS Eielson AFB, Alaska (AK)", + "countries": [ + "USA" + ] + }, + "25th fs osan ab, korea (os)": { + "name": "25th FS Osan AB, Korea (OS)", + "countries": [ + "USA" + ] + }, + "358th fs davis monthan afb, arizona (dm)": { + "name": "358th FS Davis Monthan AFB, Arizona (DM)", + "countries": [ + "USA" + ] + }, + "australia notional raaf": { + "name": "Australia Notional RAAF", + "countries": [ + "AUS" + ] + }, + "fictional canadian air force pixel camo": { + "name": "Fictional Canadian Air Force Pixel Camo", + "countries": [ + "CAN" + ] + }, + "fictional france escadron de chasse 03.003 ardennes": { + "name": "Fictional France Escadron de Chasse 03.003 ARDENNES", + "countries": [ + "FRA" + ] + }, + "canada rcaf 442 snow scheme": { + "name": "Fictional RCAF 442 Snow Scheme", + "countries": [ + "CAN" + ] + }, + "23rd tfw england afb (el)": { + "name": "23rd TFW England AFB (EL)", + "countries": [ + "USA" + ] + }, + "fictional georgian grey": { + "name": "Fictional Georgian Grey", + "countries": [ + "GRG" + ] + }, + "fictional ukraine air force 1": { + "name": "Fictional Ukraine Air Force 1", + "countries": [ + "UKR" + ] + }, "104th fs maryland ang, baltimore (md)": { "name": "104th FS Maryland ANG, Baltimore (MD)", "countries": [ "USA" ] }, - "354th fs davis monthan afb, arizona (dm)": { - "name": "354th FS Davis Monthan AFB, Arizona (DM)", + "fictional spanish 12nd wing": { + "name": "Fictional Spanish 12nd Wing", "countries": [ - "USA" + "SPN" ] }, - "172nd fs battle creek angb, michigan (bc)": { - "name": "172nd FS Battle Creek ANGB, Michigan (BC)", + "a-10 grey": { + "name": "A-10 Grey", "countries": [ - "USA" + "DEN", + "TUR", + "NETH", + "BEL", + "UK" + ] + }, + "fictional german 3323": { + "name": "Fictional German 3323", + "countries": [ + "GER" ] } - } + }, + "type": "Aircraft", + "description": "2 jet engine, straight wing, 1 crew, attack aircraft. Warthog", + "abilities": "Boom AAR", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "A-20G": { "name": "A-20G", - "coalition": "", + "coalition": "blue", "label": "A-20G Havoc", "era": "WW2", "shortLabel": "A20", "loadouts": [ - { - "items": [], - "enabled": true, - "code": "", - "name": "Empty loadout", - "roles": [ - "CAS" - ] - }, { "items": [ { @@ -2696,22 +2695,26 @@ "Runway Attack", "Antiship Strike" ] + }, + { + "items": [], + "enabled": true, + "code": "", + "name": "Empty loadout", + "roles": [ + "No task", + "CAS" + ] } ], "filename": "a-20.png", "enabled": true, "liveries": { - "107 sqn": { - "name": "107 SQN", - "countries": [ - "UK" - ] - }, "ussr 1st gmtap": { "name": "1st GMTAP", "countries": [ - "RUS", - "SUN" + "SUN", + "RUS" ] }, "usaf 645th bs": { @@ -2720,11 +2723,17 @@ "USA" ] }, + "107 sqn": { + "name": "107 SQN", + "countries": [ + "UK" + ] + }, "ussr 27 ape dd": { "name": "27th API DD", "countries": [ - "RUS", - "SUN" + "SUN", + "RUS" ] }, "usaf 668th bs": { @@ -2733,7 +2742,14 @@ "USA" ] } - } + }, + "type": "Aircraft", + "description": "2 propeller, straight wing, 3 crew, medium attack bomber. Havoc", + "abilities": "", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "A-50": { "name": "A-50", @@ -2748,6 +2764,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "AWACS" ] } @@ -2767,7 +2784,14 @@ "RUS" ] } - } + }, + "type": "Aircraft", + "description": "4 jet engine, swept wing, 15 crew. NATO reporting name: Mainstay", + "abilities": "Airbourne early warning", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": false, + "canRearm": false }, "AJS37": { "name": "AJS37", @@ -2777,34 +2801,83 @@ "shortLabel": "37", "loadouts": [ { - "items": [], + "items": [ + { + "name": "AJS External-tank 1013kg fuel", + "quantity": 1 + }, + { + "name": "Rb-75T (AGM-65A Maverick) (TV ASM Lg HE Whd)", + "quantity": 4 + } + ], "enabled": true, - "code": "", - "name": "Empty loadout", + "code": "Anti-ship (Heavy Mav): RB-75T*4, XT", + "name": "Anti-ship (Heavy Mav): RB-75T*4, XT", "roles": [ - "Strike" + "Antiship Strike" ] }, { "items": [ - { - "name": "Rb-75A (AGM-65A Maverick) (TV ASM)", - "quantity": 4 - }, - { - "name": "Rb-24J (AIM-9P) Sidewinder IR AAM", - "quantity": 2 - }, { "name": "AJS External-tank 1013kg fuel", "quantity": 1 + }, + { + "name": "Rb-75A (AGM-65A Maverick) (TV ASM)", + "quantity": 4 } ], "enabled": true, - "code": "Battlefield Air Interdiction: RB-75*4, RB-24J*2, XT", - "name": "Battlefield Air Interdiction: RB-75*4, RB-24J*2, XT", + "code": "Anti-ship (Light Mav): RB-75*4, XT", + "name": "Anti-ship (Light Mav): RB-75*4, XT", "roles": [ - "Strike" + "Antiship Strike" + ] + }, + { + "items": [ + { + "name": "AJS External-tank 1013kg fuel", + "quantity": 1 + }, + { + "name": "Rb-15F Programmable Anti-ship Missile", + "quantity": 2 + }, + { + "name": "Rb-74 (AIM-9L) Sidewinder IR AAM", + "quantity": 2 + } + ], + "enabled": true, + "code": "Anti-Ship (Modern): RB-15F*2, RB-74*2, XT", + "name": "Anti-Ship (Modern): RB-15F*2, RB-74*2, XT", + "roles": [ + "Antiship Strike" + ] + }, + { + "items": [ + { + "name": "AJS External-tank 1013kg fuel", + "quantity": 1 + }, + { + "name": "Rb-05A MCLOS ASM/AShM/AAM", + "quantity": 2 + }, + { + "name": "Rb-74 (AIM-9L) Sidewinder IR AAM", + "quantity": 2 + } + ], + "enabled": true, + "code": "Anti-ship (RB05): RB-05A*2, RB-74*2, XT", + "name": "Anti-ship (RB05): RB-05A*2, RB-74*2, XT", + "roles": [ + "Antiship Strike" ] }, { @@ -2832,7 +2905,95 @@ { "items": [ { - "name": "Rb-75T (AGM-65A Maverick) (TV ASM Lg HE Whd)", + "name": "AJS External-tank 1013kg fuel", + "quantity": 1 + }, + { + "name": "Rb-24J (AIM-9P) Sidewinder IR AAM", + "quantity": 2 + }, + { + "name": "Rb-75A (AGM-65A Maverick) (TV ASM)", + "quantity": 4 + } + ], + "enabled": true, + "code": "Battlefield Air Interdiction: RB-75*4, RB-24J*2, XT", + "name": "Battlefield Air Interdiction: RB-75*4, RB-24J*2, XT", + "roles": [ + "Strike" + ] + }, + { + "items": [ + { + "name": "4x SB M/71 120kg GP Bomb High-drag", + "quantity": 4 + }, + { + "name": "AJS External-tank 1013kg fuel", + "quantity": 1 + }, + { + "name": "Rb-24J (AIM-9P) Sidewinder IR AAM", + "quantity": 2 + } + ], + "enabled": true, + "code": "Bombs High-drag: SB71HD*16, XT, RB-24J", + "name": "Bombs High-drag: SB71HD*16, XT, RB-24J", + "roles": [ + "Strike" + ] + }, + { + "items": [ + { + "name": "4x SB M/71 120kg GP Bomb Low-drag", + "quantity": 4 + }, + { + "name": "AJS External-tank 1013kg fuel", + "quantity": 1 + }, + { + "name": "Rb-24J (AIM-9P) Sidewinder IR AAM", + "quantity": 2 + } + ], + "enabled": true, + "code": "Bombs Low-drag: SB71LD*16, RB-24J*2, XT", + "name": "Bombs Low-drag: SB71LD*16, RB-24J*2, XT", + "roles": [ + "Strike" + ] + }, + { + "items": [ + { + "name": "AJS External-tank 1013kg fuel", + "quantity": 1 + }, + { + "name": "Rb-24J (AIM-9P) Sidewinder IR AAM", + "quantity": 2 + }, + { + "name": "Rb-74 (AIM-9L) Sidewinder IR AAM", + "quantity": 4 + } + ], + "enabled": true, + "code": "CAP (6 AAM): RB-74*4, RB-24J*2, XT", + "name": "CAP (6 AAM): RB-74*4, RB-24J*2, XT", + "roles": [ + "CAP" + ] + }, + { + "items": [ + { + "name": "Rb-24J (AIM-9P) Sidewinder IR AAM", "quantity": 4 }, { @@ -2841,12 +3002,204 @@ } ], "enabled": true, - "code": "Anti-ship (Heavy Mav): RB-75T*4, XT", - "name": "Anti-ship (Heavy Mav): RB-75T*4, XT", + "code": "CAP (AJ37): RB-24J*2", + "name": "CAP (AJ37): RB-24J*2", + "roles": [ + "CAP" + ] + }, + { + "items": [ + { + "name": "Rb-74 (AIM-9L) Sidewinder IR AAM", + "quantity": 2 + }, + { + "name": "AKAN M/55 Gunpod, 150 rnds MINGR55-HE", + "quantity": 2 + }, + { + "name": "AJS External-tank 1013kg fuel", + "quantity": 1 + } + ], + "enabled": true, + "code": "CAP (Gun): AKAN*2, RB-74*2, XT", + "name": "CAP (Gun): AKAN*2, RB-74*2, XT", + "roles": [ + "CAP" + ] + }, + { + "items": [ + { + "name": "Rb-05A MCLOS ASM/AShM/AAM", + "quantity": 2 + }, + { + "name": "Rb-74 (AIM-9L) Sidewinder IR AAM", + "quantity": 2 + }, + { + "name": "AJS External-tank 1013kg fuel", + "quantity": 1 + } + ], + "enabled": true, + "code": "CAP / Intecept: RB-05A*2, RB-74*2, XT", + "name": "CAP / Intecept: RB-05A*2, RB-74*2, XT", + "roles": [ + "CAP" + ] + }, + { + "items": [ + { + "name": "Rb-74 (AIM-9L) Sidewinder IR AAM", + "quantity": 4 + }, + { + "name": "AJS External-tank 1013kg fuel", + "quantity": 1 + } + ], + "enabled": true, + "code": "CAP: RB-74*4, XT", + "name": "CAP: RB-74*4, XT", + "roles": [ + "CAP" + ] + }, + { + "items": [ + { + "name": "Rb-75A (AGM-65A Maverick) (TV ASM)", + "quantity": 2 + }, + { + "name": "AKAN M/55 Gunpod, 150 rnds MINGR55-HE", + "quantity": 2 + } + ], + "enabled": true, + "code": "CAS (75 GUN): RB-75*2, AKAN", + "name": "CAS (75 GUN): RB-75*2, AKAN", + "roles": [ + "CAS" + ] + }, + { + "items": [ + { + "name": "Rb-05A MCLOS ASM/AShM/AAM", + "quantity": 2 + }, + { + "name": "AKAN M/55 Gunpod, 150 rnds MINGR55-HE", + "quantity": 2 + } + ], + "enabled": true, + "code": "CAS: AKAN, RB-05A", + "name": "CAS: AKAN, RB-05A", + "roles": [ + "CAS" + ] + }, + { + "items": [ + { + "name": "ARAK M/70B HE 6x 135mm UnGd Rkts, Shu70 HE/FRAG", + "quantity": 4 + }, + { + "name": "AJS External-tank 1013kg fuel", + "quantity": 1 + } + ], + "enabled": true, + "code": "CAS: ARAK M70 HE*4, XT", + "name": "CAS: ARAK M70 HE*4, XT", + "roles": [ + "CAS" + ] + }, + { + "items": [ + { + "name": "U22/A Jammer", + "quantity": 1 + }, + { + "name": "KB Flare/Chaff dispenser pod", + "quantity": 1 + }, + { + "name": "AJS External-tank 1013kg fuel", + "quantity": 1 + }, + { + "name": "Rb-74 (AIM-9L) Sidewinder IR AAM", + "quantity": 2 + } + ], + "enabled": true, + "code": "Countermeasures Escort: U/22A, KB", + "name": "Countermeasures Escort: U/22A, KB", + "roles": [ + "Strike" + ] + }, + { + "items": [ + { + "name": "KB Flare/Chaff dispenser pod", + "quantity": 1 + }, + { + "name": "Rb-04E Anti-ship Missile", + "quantity": 1 + }, + { + "name": "AJS External-tank 1013kg fuel", + "quantity": 1 + }, + { + "name": "Rb-74 (AIM-9L) Sidewinder IR AAM", + "quantity": 2 + } + ], + "enabled": true, + "code": "ECM Escort Anti-ship: RB-04E, KB, RB-74*2, XT", + "name": "ECM Escort Anti-ship: RB-04E, KB, RB-74*2, XT", "roles": [ "Antiship Strike" ] }, + { + "items": [], + "enabled": true, + "code": "", + "name": "Empty loadout", + "roles": [ + "No task", + "Strike" + ] + }, + { + "items": [ + { + "name": "AJS External-tank 1013kg fuel", + "quantity": 1 + } + ], + "enabled": true, + "code": "Ferry Flight: XT", + "name": "Ferry Flight: XT", + "roles": [ + "Strike" + ] + }, { "items": [ { @@ -2879,10 +3232,6 @@ }, { "items": [ - { - "name": "Rb-75T (AGM-65A Maverick) (TV ASM Lg HE Whd)", - "quantity": 2 - }, { "name": "AJS External-tank 1013kg fuel", "quantity": 1 @@ -2890,6 +3239,10 @@ { "name": "Rb-74 (AIM-9L) Sidewinder IR AAM", "quantity": 2 + }, + { + "name": "Rb-75T (AGM-65A Maverick) (TV ASM Lg HE Whd)", + "quantity": 2 } ], "enabled": true, @@ -2904,163 +3257,7 @@ { "name": "AJS External-tank 1013kg fuel", "quantity": 1 - } - ], - "enabled": true, - "code": "Ferry Flight: XT", - "name": "Ferry Flight: XT", - "roles": [ - "Strike" - ] - }, - { - "items": [ - { - "name": "Rb-75A (AGM-65A Maverick) (TV ASM)", - "quantity": 2 }, - { - "name": "AKAN M/55 Gunpod, 150 rnds MINGR55-HE", - "quantity": 2 - } - ], - "enabled": true, - "code": "CAS (75 GUN): RB-75*2, AKAN", - "name": "CAS (75 GUN): RB-75*2, AKAN", - "roles": [ - "CAS" - ] - }, - { - "items": [ - { - "name": "Rb-74 (AIM-9L) Sidewinder IR AAM", - "quantity": 4 - }, - { - "name": "AJS External-tank 1013kg fuel", - "quantity": 1 - } - ], - "enabled": true, - "code": "CAP: RB-74*4, XT", - "name": "CAP: RB-74*4, XT", - "roles": [ - "CAP" - ] - }, - { - "items": [ - { - "name": "U22/A Jammer", - "quantity": 1 - }, - { - "name": "KB Flare/Chaff dispenser pod", - "quantity": 1 - }, - { - "name": "AJS External-tank 1013kg fuel", - "quantity": 1 - }, - { - "name": "Rb-74 (AIM-9L) Sidewinder IR AAM", - "quantity": 2 - } - ], - "enabled": true, - "code": "Countermeasures Escort: U/22A, KB", - "name": "Countermeasures Escort: U/22A, KB", - "roles": [ - "Strike" - ] - }, - { - "items": [ - { - "name": "BK-90 MJ1 (72 x MJ1 HE-FRAG Bomblets)", - "quantity": 2 - }, - { - "name": "AJS External-tank 1013kg fuel", - "quantity": 1 - }, - { - "name": "Rb-74 (AIM-9L) Sidewinder IR AAM", - "quantity": 2 - } - ], - "enabled": true, - "code": "Strike: BK90 (MJ1)*2, RB-74*2, XT", - "name": "Strike: BK90 (MJ1)*2, RB-74*2, XT", - "roles": [ - "Strike" - ] - }, - { - "items": [ - { - "name": "Rb-05A MCLOS ASM/AShM/AAM", - "quantity": 2 - }, - { - "name": "AKAN M/55 Gunpod, 150 rnds MINGR55-HE", - "quantity": 2 - } - ], - "enabled": true, - "code": "CAS: AKAN, RB-05A", - "name": "CAS: AKAN, RB-05A", - "roles": [ - "CAS" - ] - }, - { - "items": [ - { - "name": "Rb-74 (AIM-9L) Sidewinder IR AAM", - "quantity": 4 - }, - { - "name": "AJS External-tank 1013kg fuel", - "quantity": 1 - }, - { - "name": "Rb-24J (AIM-9P) Sidewinder IR AAM", - "quantity": 2 - } - ], - "enabled": true, - "code": "CAP (6 AAM): RB-74*4, RB-24J*2, XT", - "name": "CAP (6 AAM): RB-74*4, RB-24J*2, XT", - "roles": [ - "CAP" - ] - }, - { - "items": [ - { - "name": "ARAK M/70B HE 6x 135mm UnGd Rkts, Shu70 HE/FRAG", - "quantity": 2 - }, - { - "name": "AJS External-tank 1013kg fuel", - "quantity": 1 - }, - { - "name": "Rb-74 (AIM-9L) Sidewinder IR AAM", - "quantity": 2 - } - ], - "enabled": true, - "code": "Rocket Half Load HE: ARAK HE*2, RB-74*2, XT", - "name": "Rocket Half Load HE: ARAK HE*2, RB-74*2, XT", - "roles": [ - "Strike" - ] - }, - { - "items": [ { "name": "Rb-05A MCLOS ASM/AShM/AAM", "quantity": 2 @@ -3068,198 +3265,11 @@ { "name": "Rb-74 (AIM-9L) Sidewinder IR AAM", "quantity": 2 - }, - { - "name": "AJS External-tank 1013kg fuel", - "quantity": 1 } ], "enabled": true, - "code": "CAP / Intecept: RB-05A*2, RB-74*2, XT", - "name": "CAP / Intecept: RB-05A*2, RB-74*2, XT", - "roles": [ - "CAP" - ] - }, - { - "items": [ - { - "name": "4x SB M/71 120kg GP Bomb Low-drag", - "quantity": 4 - }, - { - "name": "AJS External-tank 1013kg fuel", - "quantity": 1 - }, - { - "name": "Rb-24J (AIM-9P) Sidewinder IR AAM", - "quantity": 2 - } - ], - "enabled": true, - "code": "Bombs Low-drag: SB71LD*16, RB-24J*2, XT", - "name": "Bombs Low-drag: SB71LD*16, RB-24J*2, XT", - "roles": [ - "Strike" - ] - }, - { - "items": [ - { - "name": "Rb-75T (AGM-65A Maverick) (TV ASM Lg HE Whd)", - "quantity": 2 - }, - { - "name": "KB Flare/Chaff dispenser pod", - "quantity": 1 - }, - { - "name": "U/22 Jammer pod", - "quantity": 1 - }, - { - "name": "AJS External-tank 1013kg fuel", - "quantity": 1 - } - ], - "enabled": true, - "code": "SEAD: RB-75T*2, U22/A, KB, XT", - "name": "SEAD: RB-75T*2, U22/A, KB, XT", - "roles": [ - "Strike" - ] - }, - { - "items": [ - { - "name": "Rb-15F Programmable Anti-ship Missile", - "quantity": 2 - }, - { - "name": "Rb-74 (AIM-9L) Sidewinder IR AAM", - "quantity": 2 - }, - { - "name": "AJS External-tank 1013kg fuel", - "quantity": 1 - } - ], - "enabled": true, - "code": "Anti-Ship (Modern): RB-15F*2, RB-74*2, XT", - "name": "Anti-Ship (Modern): RB-15F*2, RB-74*2, XT", - "roles": [ - "Antiship Strike" - ] - }, - { - "items": [], - "enabled": true, - "code": "New Payload", - "name": "New Payload", - "roles": [] - }, - { - "items": [ - { - "name": "Rb-24J (AIM-9P) Sidewinder IR AAM", - "quantity": 4 - }, - { - "name": "AJS External-tank 1013kg fuel", - "quantity": 1 - } - ], - "enabled": true, - "code": "CAP (AJ37): RB-24J*2", - "name": "CAP (AJ37): RB-24J*2", - "roles": [ - "CAP" - ] - }, - { - "items": [ - { - "name": "KB Flare/Chaff dispenser pod", - "quantity": 1 - }, - { - "name": "Rb-04E Anti-ship Missile", - "quantity": 1 - }, - { - "name": "AJS External-tank 1013kg fuel", - "quantity": 1 - }, - { - "name": "Rb-74 (AIM-9L) Sidewinder IR AAM", - "quantity": 2 - } - ], - "enabled": true, - "code": "ECM Escort Anti-ship: RB-04E, KB, RB-74*2, XT", - "name": "ECM Escort Anti-ship: RB-04E, KB, RB-74*2, XT", - "roles": [ - "Antiship Strike" - ] - }, - { - "items": [ - { - "name": "4x SB M/71 120kg GP Bomb High-drag", - "quantity": 4 - }, - { - "name": "AJS External-tank 1013kg fuel", - "quantity": 1 - }, - { - "name": "Rb-24J (AIM-9P) Sidewinder IR AAM", - "quantity": 2 - } - ], - "enabled": true, - "code": "Bombs High-drag: SB71HD*16, XT, RB-24J", - "name": "Bombs High-drag: SB71HD*16, XT, RB-24J", - "roles": [ - "Strike" - ] - }, - { - "items": [ - { - "name": "Rb-75A (AGM-65A Maverick) (TV ASM)", - "quantity": 4 - }, - { - "name": "AJS External-tank 1013kg fuel", - "quantity": 1 - } - ], - "enabled": true, - "code": "Anti-ship (Light Mav): RB-75*4, XT", - "name": "Anti-ship (Light Mav): RB-75*4, XT", - "roles": [ - "Antiship Strike" - ] - }, - { - "items": [ - { - "name": "ARAK M/70B HE 6x 135mm UnGd Rkts, Shu70 HE/FRAG", - "quantity": 4 - }, - { - "name": "AJS External-tank 1013kg fuel", - "quantity": 1 - }, - { - "name": "Rb-24J (AIM-9P) Sidewinder IR AAM", - "quantity": 2 - } - ], - "enabled": true, - "code": "Rocket Full Load HE: ARAK HE*4, RB-24J, XT", - "name": "Rocket Full Load HE: ARAK HE*4, RB-24J, XT", + "code": "Hard Target: RB-05A*2, RB-74*2, XT", + "name": "Hard Target: RB-05A*2, RB-74*2, XT", "roles": [ "Strike" ] @@ -3283,70 +3293,11 @@ ] }, { - "items": [ - { - "name": "AJS External-tank 1013kg fuel", - "quantity": 1 - }, - { - "name": "Rb-05A MCLOS ASM/AShM/AAM", - "quantity": 2 - }, - { - "name": "Rb-74 (AIM-9L) Sidewinder IR AAM", - "quantity": 2 - } - ], + "items": [], "enabled": true, - "code": "Anti-ship (RB05): RB-05A*2, RB-74*2, XT", - "name": "Anti-ship (RB05): RB-05A*2, RB-74*2, XT", - "roles": [ - "Antiship Strike" - ] - }, - { - "items": [ - { - "name": "Rb-74 (AIM-9L) Sidewinder IR AAM", - "quantity": 2 - }, - { - "name": "AKAN M/55 Gunpod, 150 rnds MINGR55-HE", - "quantity": 2 - }, - { - "name": "AJS External-tank 1013kg fuel", - "quantity": 1 - } - ], - "enabled": true, - "code": "CAP (Gun): AKAN*2, RB-74*2, XT", - "name": "CAP (Gun): AKAN*2, RB-74*2, XT", - "roles": [ - "CAP" - ] - }, - { - "items": [ - { - "name": "Rb-05A MCLOS ASM/AShM/AAM", - "quantity": 2 - }, - { - "name": "AJS External-tank 1013kg fuel", - "quantity": 1 - }, - { - "name": "Rb-74 (AIM-9L) Sidewinder IR AAM", - "quantity": 2 - } - ], - "enabled": true, - "code": "Hard Target: RB-05A*2, RB-74*2, XT", - "name": "Hard Target: RB-05A*2, RB-74*2, XT", - "roles": [ - "Strike" - ] + "code": "New Payload", + "name": "New Payload", + "roles": [] }, { "items": [ @@ -3375,13 +3326,17 @@ { "name": "AJS External-tank 1013kg fuel", "quantity": 1 + }, + { + "name": "Rb-24J (AIM-9P) Sidewinder IR AAM", + "quantity": 2 } ], "enabled": true, - "code": "CAS: ARAK M70 HE*4, XT", - "name": "CAS: ARAK M70 HE*4, XT", + "code": "Rocket Full Load HE: ARAK HE*4, RB-24J, XT", + "name": "Rocket Full Load HE: ARAK HE*4, RB-24J, XT", "roles": [ - "CAS" + "Strike" ] }, { @@ -3390,10 +3345,32 @@ "name": "AJS External-tank 1013kg fuel", "quantity": 1 }, + { + "name": "ARAK M/70B HE 6x 135mm UnGd Rkts, Shu70 HE/FRAG", + "quantity": 2 + }, + { + "name": "Rb-74 (AIM-9L) Sidewinder IR AAM", + "quantity": 2 + } + ], + "enabled": true, + "code": "Rocket Half Load HE: ARAK HE*2, RB-74*2, XT", + "name": "Rocket Half Load HE: ARAK HE*2, RB-74*2, XT", + "roles": [ + "Strike" + ] + }, + { + "items": [ { "name": "4x SB M/71 120kg GP Bomb High-drag", "quantity": 4 }, + { + "name": "AJS External-tank 1013kg fuel", + "quantity": 1 + }, { "name": "Rb-24J (AIM-9P) Sidewinder IR AAM", "quantity": 2 @@ -3405,6 +3382,54 @@ "roles": [ "Runway Attack" ] + }, + { + "items": [ + { + "name": "AJS External-tank 1013kg fuel", + "quantity": 1 + }, + { + "name": "KB Flare/Chaff dispenser pod", + "quantity": 1 + }, + { + "name": "Rb-75T (AGM-65A Maverick) (TV ASM Lg HE Whd)", + "quantity": 2 + }, + { + "name": "U/22 Jammer pod", + "quantity": 1 + } + ], + "enabled": true, + "code": "SEAD: RB-75T*2, U22/A, KB, XT", + "name": "SEAD: RB-75T*2, U22/A, KB, XT", + "roles": [ + "Strike" + ] + }, + { + "items": [ + { + "name": "AJS External-tank 1013kg fuel", + "quantity": 1 + }, + { + "name": "BK-90 MJ1 (72 x MJ1 HE-FRAG Bomblets)", + "quantity": 2 + }, + { + "name": "Rb-74 (AIM-9L) Sidewinder IR AAM", + "quantity": 2 + } + ], + "enabled": true, + "code": "Strike: BK90 (MJ1)*2, RB-74*2, XT", + "name": "Strike: BK90 (MJ1)*2, RB-74*2, XT", + "roles": [ + "Strike" + ] } ], "filename": "viggen.png", @@ -3418,27 +3443,34 @@ "name": "#3 JA-37 F21 Akktu Stakki", "countries": "All" }, - "the show must go on": { - "name": "SHOW MUST GO ON! by Bender & Mach3DS", + "se-dxnv4": { + "name": "SE-DXN by Mach3DS", "countries": "All" }, "f7 skaraborg": { "name": "#4 Splinter F7 Skaraborgs Flygflottilj 76", "countries": "All" }, - "baremetal": { - "name": "#2 Bare Metal F7 Skaraborgs Flygflottilj", - "countries": "All" - }, - "se-dxnv4": { - "name": "SE-DXN by Mach3DS", - "countries": "All" - }, "sf-37 akktu stakki - f21": { "name": "SF-37 Akktu Stakki - F21", "countries": "All" + }, + "the show must go on": { + "name": "SHOW MUST GO ON! by Bender & Mach3DS", + "countries": "All" + }, + "baremetal": { + "name": "#2 Bare Metal F7 Skaraborgs Flygflottilj", + "countries": "All" } - } + }, + "type": "Aircraft", + "description": "Single jet engine, delta wing, 1 crew, attack aircraft. Viggen", + "abilities": "", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "AV8BNA": { "name": "AV8BNA", @@ -3447,31 +3479,34 @@ "era": "Late Cold War", "shortLabel": "8", "loadouts": [ - { - "items": [], - "enabled": true, - "code": "", - "name": "Empty loadout", - "roles": [ - "CAS" - ] - }, { "items": [ { - "name": "Mk-82 Snakeye - 500lb GP Bomb HD", - "quantity": 6 + "name": "AGM-122 Sidearm", + "quantity": 1 }, { - "name": "GAU 12 Gunpod w/SAPHEI-T", + "name": "AIM-9M Sidewinder IR AAM", "quantity": 1 + }, + { + "name": "AN/ALQ-164 DECM Pod", + "quantity": 1 + }, + { + "name": "LAU-68 pod - 7 x 2.75\" Hydra, UnGd Rkts M156, Wht Phos", + "quantity": 2 + }, + { + "name": "SUU-25 x 8 LUU-2 - Target Marker Flares", + "quantity": 2 } ], "enabled": true, - "code": "H-L-H: Mk-82SEx6, GAU-12", - "name": "H-L-H: Mk-82SEx6, GAU-12", + "code": "AFAC: AIM-9m, AGM-122, SUU-25x2, LAU-68 (7 WP Tkts)x2, Jammer Pod", + "name": "AFAC: AIM-9m, AGM-122, SUU-25x2, LAU-68 (7 WP Tkts)x2, Jammer Pod", "roles": [ - "CAS" + "FAC-A" ] }, { @@ -3481,23 +3516,97 @@ "quantity": 2 }, { - "name": "SUU-25 x 8 LUU-2 - Target Marker Flares", - "quantity": 2 + "name": "AN/AAQ-28 LITENING - Targeting Pod", + "quantity": 1 }, { "name": "LAU-68 pod - 7 x 2.75\" Hydra, UnGd Rkts M156, Wht Phos", "quantity": 2 }, { - "name": "AN/AAQ-28 LITENING - Targeting Pod", - "quantity": 1 + "name": "SUU-25 x 8 LUU-2 - Target Marker Flares", + "quantity": 2 } ], "enabled": true, "code": "AFAC: AIM-9Mx2, SUU-25x2, LAU-68 (7 WP Tkts)x2, TPOD", "name": "AFAC: AIM-9Mx2, SUU-25x2, LAU-68 (7 WP Tkts)x2, TPOD", "roles": [ - "AFAC" + "FAC-A" + ] + }, + { + "items": [ + { + "name": "AIM-9M Sidewinder IR AAM", + "quantity": 2 + }, + { + "name": "GAU 12 Gunpod w/SAPHEI-T", + "quantity": 1 + }, + { + "name": "LAU-68 pod - 7 x 2.75\" Hydra, UnGd Rkts M156, Wht Phos", + "quantity": 2 + }, + { + "name": "SUU-25 x 8 LUU-2 - Target Marker Flares", + "quantity": 2 + } + ], + "enabled": true, + "code": "AFAC: AIM-9Mx2, SUU-25x2, LAU-68 LAU-68 (7 WP Tkts)x2, GAU-12", + "name": "AFAC: AIM-9Mx2, SUU-25x2, LAU-68 LAU-68 (7 WP Tkts)x2, GAU-12", + "roles": [ + "FAC-A" + ] + }, + { + "items": [ + { + "name": "AIM-9M Sidewinder IR AAM", + "quantity": 2 + }, + { + "name": "GAU 12 Gunpod w/SAPHEI-T", + "quantity": 1 + }, + { + "name": "LAU-117 with AGM-65F - Maverick F (IIR ASM)", + "quantity": 4 + } + ], + "enabled": true, + "code": "Anti Armor: AIM-9Mx2, AGM-65Fx4, GAU-12", + "name": "Anti Armor: AIM-9Mx2, AGM-65Fx4, GAU-12", + "roles": [ + "Strike" + ] + }, + { + "items": [ + { + "name": "2 Mk-20 Rockeye */*", + "quantity": 2 + }, + { + "name": "2 Mk-20 Rockeye *\\*", + "quantity": 2 + }, + { + "name": "GAU 12 Gunpod w/SAPHEI-T", + "quantity": 1 + }, + { + "name": "Mk-20 Rockeye - 490lbs CBU, 247 x HEAT Bomblets", + "quantity": 2 + } + ], + "enabled": true, + "code": "Area Suppression: Mk-20x10, GAU-12", + "name": "Area Suppression: Mk-20x10, GAU-12", + "roles": [ + "CAS" ] }, { @@ -3507,8 +3616,8 @@ "quantity": 1 }, { - "name": "GBU-16 - 1000lb Laser Guided Bomb", - "quantity": 2 + "name": "AIM-9M Sidewinder IR AAM", + "quantity": 1 }, { "name": "AN/AAQ-28 LITENING - Targeting Pod", @@ -3527,8 +3636,8 @@ "quantity": 1 }, { - "name": "AIM-9M Sidewinder IR AAM", - "quantity": 1 + "name": "GBU-16 - 1000lb Laser Guided Bomb", + "quantity": 2 } ], "enabled": true, @@ -3540,24 +3649,128 @@ }, { "items": [ + { + "name": "AGM-122 Sidearm", + "quantity": 1 + }, { "name": "AIM-9M Sidewinder IR AAM", "quantity": 1 }, + { + "name": "AN/AAQ-28 LITENING - Targeting Pod", + "quantity": 1 + }, + { + "name": "AN/ALQ-164 DECM Pod", + "quantity": 1 + }, + { + "name": "GAU 12 Gunpod w/SAPHEI-T", + "quantity": 1 + }, + { + "name": "GBU-12 - 500lb Laser Guided Bomb", + "quantity": 1 + }, + { + "name": "LAU-117 with AGM-65L - Maverick E2/L (CCD Laser ASM)", + "quantity": 2 + } + ], + "enabled": true, + "code": "AS: AIM-9M, AGM-122, AGM-65E2x2, GBU-12, TPOD, Jammer Pod, GAU-12", + "name": "AS: AIM-9M, AGM-122, AGM-65E2x2, GBU-12, TPOD, Jammer Pod, GAU-12", + "roles": [ + "Antiship Strike" + ] + }, + { + "items": [ + { + "name": "AGM-122 Sidearm", + "quantity": 1 + }, + { + "name": "AIM-9M Sidewinder IR AAM", + "quantity": 1 + }, + { + "name": "AN/AAQ-28 LITENING - Targeting Pod", + "quantity": 1 + }, + { + "name": "AN/ALQ-164 DECM Pod", + "quantity": 1 + }, + { + "name": "GAU 12 Gunpod w/SAPHEI-T", + "quantity": 1 + }, + { + "name": "GBU-12 - 500lb Laser Guided Bomb", + "quantity": 1 + }, + { + "name": "LAU-117 with AGM-65F - Maverick F (IIR ASM)", + "quantity": 2 + } + ], + "enabled": true, + "code": "AS: AIM-9M, AGM-122, AGM-65Fx2, GBU-12, TPOD, Jammer Pod, GAU-12", + "name": "AS: AIM-9M, AGM-122, AGM-65Fx2, GBU-12, TPOD, Jammer Pod, GAU-12", + "roles": [ + "Antiship Strike" + ] + }, + { + "items": [], + "enabled": true, + "code": "", + "name": "Empty loadout", + "roles": [ + "No task", + "CAS" + ] + }, + { + "items": [ + { + "name": "GAU 12 Gunpod w/SAPHEI-T", + "quantity": 1 + }, + { + "name": "Mk-82 Snakeye - 500lb GP Bomb HD", + "quantity": 6 + } + ], + "enabled": true, + "code": "H-L-H: Mk-82SEx6, GAU-12", + "name": "H-L-H: Mk-82SEx6, GAU-12", + "roles": [ + "CAS" + ] + }, + { + "items": [ { "name": "2 GBU-38 */*", "quantity": 1 }, + { + "name": "2 GBU-38 *\\*", + "quantity": 1 + }, { "name": "AERO 1D 300 Gallons Fuel Tank ", "quantity": 2 }, { - "name": "2 GBU-38 *\\*", + "name": "AGM-122 Sidearm", "quantity": 1 }, { - "name": "AGM-122 Sidearm", + "name": "AIM-9M Sidewinder IR AAM", "quantity": 1 } ], @@ -3568,6 +3781,140 @@ "CAS" ] }, + { + "items": [ + { + "name": "2 Mk-82 */*", + "quantity": 1 + }, + { + "name": "2 Mk-82 *\\*", + "quantity": 1 + }, + { + "name": "3 Mk-82", + "quantity": 2 + }, + { + "name": "GAU 12 Gunpod w/SAPHEI-T", + "quantity": 1 + } + ], + "enabled": true, + "code": "H-M-H: Mk-82LDx10, GAU-12", + "name": "H-M-H: Mk-82LDx10, GAU-12", + "roles": [ + "CAS" + ] + }, + { + "items": [ + { + "name": "GAU 12 Gunpod w/SAPHEI-T", + "quantity": 1 + }, + { + "name": "Mk-82 - 500lb GP Bomb LD", + "quantity": 6 + } + ], + "enabled": true, + "code": "H-M-H: Mk-82LDx6, GAU-12", + "name": "H-M-H: Mk-82LDx6, GAU-12", + "roles": [ + "CAS" + ] + }, + { + "items": [ + { + "name": "AIM-9M Sidewinder IR AAM", + "quantity": 2 + }, + { + "name": "AN/ALQ-164 DECM Pod", + "quantity": 1 + }, + { + "name": "GAU 12 Gunpod w/SAPHEI-T", + "quantity": 1 + }, + { + "name": "LAU-7 with AIM-9M Sidewinder IR AAM", + "quantity": 2 + } + ], + "enabled": true, + "code": "Helo Escort: AIM-9Mx4, Jammer Pod, GAU-12", + "name": "Helo Escort: AIM-9Mx4, Jammer Pod, GAU-12", + "roles": [ + "Escort" + ] + }, + { + "items": [ + { + "name": "AIM-9M Sidewinder IR AAM", + "quantity": 2 + }, + { + "name": "LAU-7 with AIM-9M Sidewinder IR AAM", + "quantity": 2 + }, + { + "name": "AERO 1D 300 Gallons Fuel Tank ", + "quantity": 2 + }, + { + "name": "AN/ALQ-164 DECM Pod", + "quantity": 1 + }, + { + "name": "GAU 12 Gunpod w/SAPHEI-T", + "quantity": 1 + } + ], + "enabled": true, + "code": "Helo Escort: AIM-9Mx4, Jammer Pod, GAU-12, Fuel Tankx2", + "name": "Helo Escort: AIM-9Mx4, Jammer Pod, GAU-12, Fuel Tankx2", + "roles": [ + "Escort" + ] + }, + { + "items": [ + { + "name": "2 Mk-83 */*", + "quantity": 1 + }, + { + "name": "2 Mk-83 *\\*", + "quantity": 1 + }, + { + "name": "AERO 1D 300 Gallons Fuel Tank ", + "quantity": 2 + }, + { + "name": "AIM-9M Sidewinder IR AAM", + "quantity": 2 + }, + { + "name": "AN/ALQ-164 DECM Pod", + "quantity": 1 + }, + { + "name": "GAU 12 Gunpod w/SAPHEI-T", + "quantity": 1 + } + ], + "enabled": true, + "code": "Interdiction (H-H-H-H): AIM-9Mx2, Mk-83LDx4, Jammer Pod, GAU-12, Fuel Tankx2", + "name": "Interdiction (H-H-H-H): AIM-9Mx2, Mk-83LDx4, Jammer Pod, GAU-12, Fuel Tankx2", + "roles": [ + "Strike" + ] + }, { "items": [ { @@ -3604,74 +3951,6 @@ }, { "items": [ - { - "name": "AIM-9M Sidewinder IR AAM", - "quantity": 2 - }, - { - "name": "AERO 1D 300 Gallons Fuel Tank ", - "quantity": 2 - }, - { - "name": "2 Mk-83 *\\*", - "quantity": 1 - }, - { - "name": "AN/ALQ-164 DECM Pod", - "quantity": 1 - }, - { - "name": "2 Mk-83 */*", - "quantity": 1 - }, - { - "name": "GAU 12 Gunpod w/SAPHEI-T", - "quantity": 1 - } - ], - "enabled": true, - "code": "Interdiction (H-H-H-H): AIM-9Mx2, Mk-83LDx4, Jammer Pod, GAU-12, Fuel Tankx2", - "name": "Interdiction (H-H-H-H): AIM-9Mx2, Mk-83LDx4, Jammer Pod, GAU-12, Fuel Tankx2", - "roles": [ - "Strike" - ] - }, - { - "items": [ - { - "name": "AGM-122 Sidearm", - "quantity": 1 - }, - { - "name": "SUU-25 x 8 LUU-2 - Target Marker Flares", - "quantity": 2 - }, - { - "name": "LAU-68 pod - 7 x 2.75\" Hydra, UnGd Rkts M156, Wht Phos", - "quantity": 2 - }, - { - "name": "AN/ALQ-164 DECM Pod", - "quantity": 1 - }, - { - "name": "AIM-9M Sidewinder IR AAM", - "quantity": 1 - } - ], - "enabled": true, - "code": "AFAC: AIM-9m, AGM-122, SUU-25x2, LAU-68 (7 WP Tkts)x2, Jammer Pod", - "name": "AFAC: AIM-9m, AGM-122, SUU-25x2, LAU-68 (7 WP Tkts)x2, Jammer Pod", - "roles": [ - "AFAC" - ] - }, - { - "items": [ - { - "name": "AIM-9M Sidewinder IR AAM", - "quantity": 2 - }, { "name": "2 Mk-82 Snakeye */*", "quantity": 2 @@ -3680,6 +3959,10 @@ "name": "2 Mk-82 Snakeye *\\*", "quantity": 2 }, + { + "name": "AIM-9M Sidewinder IR AAM", + "quantity": 2 + }, { "name": "AN/ALQ-164 DECM Pod", "quantity": 1 @@ -3699,41 +3982,65 @@ { "items": [ { - "name": "Mk-82 - 500lb GP Bomb LD", - "quantity": 6 + "name": "AGM-122 Sidearm", + "quantity": 3 + }, + { + "name": "2 Mk-20 Rockeye *\\*", + "quantity": 1 + }, + { + "name": "AN/ALQ-164 DECM Pod", + "quantity": 1 }, { "name": "GAU 12 Gunpod w/SAPHEI-T", "quantity": 1 + }, + { + "name": "2 Mk-20 Rockeye */*", + "quantity": 1 + }, + { + "name": "AIM-9M Sidewinder IR AAM", + "quantity": 1 } ], "enabled": true, - "code": "H-M-H: Mk-82LDx6, GAU-12", - "name": "H-M-H: Mk-82LDx6, GAU-12", + "code": "Iron Hand: AIM-9M, AGM-122x3, Mk-20x4, Jammer Pod, GAU-12", + "name": "Iron Hand: AIM-9M, AGM-122x3, Mk-20x4, Jammer Pod, GAU-12", "roles": [ - "CAS" + "SEAD" ] }, { "items": [ { - "name": "2 GBU-12 *-*", + "name": "AGM-122 Sidearm", + "quantity": 3 + }, + { + "name": "LAU-68 pod - 7 x 2.75\" Hydra, UnGd Rkts M151, HE", "quantity": 2 }, { - "name": "AERO 1D 300 Gallons Fuel Tank ", - "quantity": 2 + "name": "AN/ALQ-164 DECM Pod", + "quantity": 1 }, { - "name": "AN/AAQ-28 LITENING - Targeting Pod", + "name": "GAU 12 Gunpod w/SAPHEI-T", + "quantity": 1 + }, + { + "name": "AIM-9M Sidewinder IR AAM", "quantity": 1 } ], "enabled": true, - "code": "PGM (H-H-H-H): GBU-12x4, TPOD, Fuel Tankx2", - "name": "PGM (H-H-H-H): GBU-12x4, TPOD, Fuel Tankx2", + "code": "Iron Hand: AIM-9Mx1, AGM-122x3, LAU-68 (7 HE Rkts)x2, Jammer Pod, GAU-12", + "name": "Iron Hand: AIM-9Mx1, AGM-122x3, LAU-68 (7 HE Rkts)x2, Jammer Pod, GAU-12", "roles": [ - "Strike" + "SEAD" ] }, { @@ -3773,161 +4080,45 @@ "quantity": 2 }, { - "name": "SUU-25 x 8 LUU-2 - Target Marker Flares", - "quantity": 2 - }, - { - "name": "LAU-68 pod - 7 x 2.75\" Hydra, UnGd Rkts M156, Wht Phos", - "quantity": 2 - }, - { - "name": "GAU 12 Gunpod w/SAPHEI-T", - "quantity": 1 - } - ], - "enabled": true, - "code": "AFAC: AIM-9Mx2, SUU-25x2, LAU-68 LAU-68 (7 WP Tkts)x2, GAU-12", - "name": "AFAC: AIM-9Mx2, SUU-25x2, LAU-68 LAU-68 (7 WP Tkts)x2, GAU-12", - "roles": [ - "AFAC" - ] - }, - { - "items": [ - { - "name": "3 Mk-82", - "quantity": 2 - }, - { - "name": "2 Mk-82 *\\*", - "quantity": 1 - }, - { - "name": "GAU 12 Gunpod w/SAPHEI-T", - "quantity": 1 - }, - { - "name": "2 Mk-82 */*", - "quantity": 1 - } - ], - "enabled": true, - "code": "H-M-H: Mk-82LDx10, GAU-12", - "name": "H-M-H: Mk-82LDx10, GAU-12", - "roles": [ - "CAS" - ] - }, - { - "items": [ - { - "name": "Mk-20 Rockeye - 490lbs CBU, 247 x HEAT Bomblets", - "quantity": 2 - }, - { - "name": "2 Mk-20 Rockeye *\\*", - "quantity": 2 - }, - { - "name": "GAU 12 Gunpod w/SAPHEI-T", - "quantity": 1 - }, - { - "name": "2 Mk-20 Rockeye */*", - "quantity": 2 - } - ], - "enabled": true, - "code": "Area Suppression: Mk-20x10, GAU-12", - "name": "Area Suppression: Mk-20x10, GAU-12", - "roles": [ - "CAS" - ] - }, - { - "items": [ - { - "name": "LAU-10 pod - 4 x 127mm ZUNI, UnGd Rkts Mk71, HE/FRAG", - "quantity": 2 - }, - { - "name": "LAU-68 pod - 7 x 2.75\" Hydra, UnGd Rkts Mk5, HEAT", - "quantity": 2 - }, - { - "name": "GAU 12 Gunpod w/SAPHEI-T", - "quantity": 1 - } - ], - "enabled": true, - "code": "Rockets: LAU-10 (4 HE Rkts)x2, LAU-68 (7 HE Rkts)x2", - "name": "Rockets: LAU-10 (4 HE Rkts)x2, LAU-68 (7 HE Rkts)x2", - "roles": [ - "CAS" - ] - }, - { - "items": [ - { - "name": "AGM-122 Sidearm", - "quantity": 1 - }, - { - "name": "LAU-117 with AGM-65F - Maverick F (IIR ASM)", - "quantity": 2 + "name": "GBU-16 - 1000lb Laser Guided Bomb", + "quantity": 4 }, { "name": "AN/AAQ-28 LITENING - Targeting Pod", "quantity": 1 }, - { - "name": "AN/ALQ-164 DECM Pod", - "quantity": 1 - }, { "name": "GAU 12 Gunpod w/SAPHEI-T", "quantity": 1 - }, - { - "name": "GBU-12 - 500lb Laser Guided Bomb", - "quantity": 1 - }, - { - "name": "AIM-9M Sidewinder IR AAM", - "quantity": 1 } ], "enabled": true, - "code": "AS: AIM-9M, AGM-122, AGM-65Fx2, GBU-12, TPOD, Jammer Pod, GAU-12", - "name": "AS: AIM-9M, AGM-122, AGM-65Fx2, GBU-12, TPOD, Jammer Pod, GAU-12", + "code": "PGM (H-H-H-H): AIM-9Mx2, GBU-16x4, TPOD, GAU-12", + "name": "PGM (H-H-H-H): AIM-9Mx2, GBU-16x4, TPOD, GAU-12", "roles": [ - "Antiship Strike" + "Strike" ] }, { "items": [ { - "name": "AIM-9M Sidewinder IR AAM", + "name": "2 GBU-12 *-*", "quantity": 2 }, { - "name": "LAU-7 with AIM-9M Sidewinder IR AAM", + "name": "AERO 1D 300 Gallons Fuel Tank ", "quantity": 2 }, { - "name": "AN/ALQ-164 DECM Pod", - "quantity": 1 - }, - { - "name": "GAU 12 Gunpod w/SAPHEI-T", + "name": "AN/AAQ-28 LITENING - Targeting Pod", "quantity": 1 } ], "enabled": true, - "code": "Helo Escort: AIM-9Mx4, Jammer Pod, GAU-12", - "name": "Helo Escort: AIM-9Mx4, Jammer Pod, GAU-12", + "code": "PGM (H-H-H-H): GBU-12x4, TPOD, Fuel Tankx2", + "name": "PGM (H-H-H-H): GBU-12x4, TPOD, Fuel Tankx2", "roles": [ - "Escort" + "Strike" ] }, { @@ -3964,54 +4155,24 @@ "items": [ { "name": "AIM-9M Sidewinder IR AAM", - "quantity": 2 - }, - { - "name": "LAU-7 with AIM-9M Sidewinder IR AAM", - "quantity": 2 - }, - { - "name": "AERO 1D 300 Gallons Fuel Tank ", - "quantity": 2 - }, - { - "name": "AN/ALQ-164 DECM Pod", "quantity": 1 }, { - "name": "GAU 12 Gunpod w/SAPHEI-T", + "name": "AGM-122 Sidearm", "quantity": 1 - } - ], - "enabled": true, - "code": "Helo Escort: AIM-9Mx4, Jammer Pod, GAU-12, Fuel Tankx2", - "name": "Helo Escort: AIM-9Mx4, Jammer Pod, GAU-12, Fuel Tankx2", - "roles": [ - "Escort" - ] - }, - { - "items": [ - { - "name": "AIM-9M Sidewinder IR AAM", - "quantity": 2 }, { - "name": "GBU-16 - 1000lb Laser Guided Bomb", + "name": "LAU-117 with AGM-65L - Maverick E2/L (CCD Laser ASM)", "quantity": 4 }, { "name": "AN/AAQ-28 LITENING - Targeting Pod", "quantity": 1 - }, - { - "name": "GAU 12 Gunpod w/SAPHEI-T", - "quantity": 1 } ], "enabled": true, - "code": "PGM (H-H-H-H): AIM-9Mx2, GBU-16x4, TPOD, GAU-12", - "name": "PGM (H-H-H-H): AIM-9Mx2, GBU-16x4, TPOD, GAU-12", + "code": "PGM: AIM-9M, AGM-122, AGM-65E2x4, TPOD", + "name": "PGM: AIM-9M, AGM-122, AGM-65E2x4, TPOD", "roles": [ "Strike" ] @@ -4020,20 +4181,24 @@ "items": [ { "name": "AIM-9M Sidewinder IR AAM", - "quantity": 2 + "quantity": 1 }, { - "name": "LAU-117 with AGM-65F - Maverick F (IIR ASM)", + "name": "AGM-122 Sidearm", + "quantity": 1 + }, + { + "name": "LAU-131 pod - 7 x 2.75\" Hydra, Laser Guided Rkts M151, HE APKWS", "quantity": 4 }, { - "name": "GAU 12 Gunpod w/SAPHEI-T", + "name": "AN/AAQ-28 LITENING - Targeting Pod", "quantity": 1 } ], "enabled": true, - "code": "Anti Armor: AIM-9Mx2, AGM-65Fx4, GAU-12", - "name": "Anti Armor: AIM-9Mx2, AGM-65Fx4, GAU-12", + "code": "PGM: AIM-9M, AGM-122, APKWSIIx4, TPOD", + "name": "PGM: AIM-9M, AGM-122, APKWSIIx4, TPOD", "roles": [ "Strike" ] @@ -4076,6 +4241,28 @@ "Runway Attack" ] }, + { + "items": [ + { + "name": "LAU-10 pod - 4 x 127mm ZUNI, UnGd Rkts Mk71, HE/FRAG", + "quantity": 2 + }, + { + "name": "LAU-68 pod - 7 x 2.75\" Hydra, UnGd Rkts Mk5, HEAT", + "quantity": 2 + }, + { + "name": "GAU 12 Gunpod w/SAPHEI-T", + "quantity": 1 + } + ], + "enabled": true, + "code": "Rockets: LAU-10 (4 HE Rkts)x2, LAU-68 (7 HE Rkts)x2", + "name": "Rockets: LAU-10 (4 HE Rkts)x2, LAU-68 (7 HE Rkts)x2", + "roles": [ + "CAS" + ] + }, { "items": [ { @@ -4165,230 +4352,83 @@ "roles": [ "SEAD" ] - }, - { - "items": [ - { - "name": "AGM-122 Sidearm", - "quantity": 3 - }, - { - "name": "LAU-68 pod - 7 x 2.75\" Hydra, UnGd Rkts M151, HE", - "quantity": 2 - }, - { - "name": "AN/ALQ-164 DECM Pod", - "quantity": 1 - }, - { - "name": "GAU 12 Gunpod w/SAPHEI-T", - "quantity": 1 - }, - { - "name": "AIM-9M Sidewinder IR AAM", - "quantity": 1 - } - ], - "enabled": true, - "code": "Iron Hand: AIM-9Mx1, AGM-122x3, LAU-68 (7 HE Rkts)x2, Jammer Pod, GAU-12", - "name": "Iron Hand: AIM-9Mx1, AGM-122x3, LAU-68 (7 HE Rkts)x2, Jammer Pod, GAU-12", - "roles": [ - "SEAD" - ] - }, - { - "items": [ - { - "name": "AGM-122 Sidearm", - "quantity": 3 - }, - { - "name": "2 Mk-20 Rockeye *\\*", - "quantity": 1 - }, - { - "name": "AN/ALQ-164 DECM Pod", - "quantity": 1 - }, - { - "name": "GAU 12 Gunpod w/SAPHEI-T", - "quantity": 1 - }, - { - "name": "2 Mk-20 Rockeye */*", - "quantity": 1 - }, - { - "name": "AIM-9M Sidewinder IR AAM", - "quantity": 1 - } - ], - "enabled": true, - "code": "Iron Hand: AIM-9M, AGM-122x3, Mk-20x4, Jammer Pod, GAU-12", - "name": "Iron Hand: AIM-9M, AGM-122x3, Mk-20x4, Jammer Pod, GAU-12", - "roles": [ - "SEAD" - ] - }, - { - "items": [ - { - "name": "AGM-122 Sidearm", - "quantity": 1 - }, - { - "name": "LAU-117 with AGM-65L - Maverick E2/L (CCD Laser ASM)", - "quantity": 2 - }, - { - "name": "AN/AAQ-28 LITENING - Targeting Pod", - "quantity": 1 - }, - { - "name": "AN/ALQ-164 DECM Pod", - "quantity": 1 - }, - { - "name": "GAU 12 Gunpod w/SAPHEI-T", - "quantity": 1 - }, - { - "name": "GBU-12 - 500lb Laser Guided Bomb", - "quantity": 1 - }, - { - "name": "AIM-9M Sidewinder IR AAM", - "quantity": 1 - } - ], - "enabled": true, - "code": "AS: AIM-9M, AGM-122, AGM-65E2x2, GBU-12, TPOD, Jammer Pod, GAU-12", - "name": "AS: AIM-9M, AGM-122, AGM-65E2x2, GBU-12, TPOD, Jammer Pod, GAU-12", - "roles": [ - "Antiship Strike" - ] - }, - { - "items": [ - { - "name": "AIM-9M Sidewinder IR AAM", - "quantity": 1 - }, - { - "name": "AGM-122 Sidearm", - "quantity": 1 - }, - { - "name": "LAU-117 with AGM-65L - Maverick E2/L (CCD Laser ASM)", - "quantity": 4 - }, - { - "name": "AN/AAQ-28 LITENING - Targeting Pod", - "quantity": 1 - } - ], - "enabled": true, - "code": "PGM: AIM-9M, AGM-122, AGM-65E2x4, TPOD", - "name": "PGM: AIM-9M, AGM-122, AGM-65E2x4, TPOD", - "roles": [ - "Strike" - ] - }, - { - "items": [ - { - "name": "AIM-9M Sidewinder IR AAM", - "quantity": 1 - }, - { - "name": "AGM-122 Sidearm", - "quantity": 1 - }, - { - "name": "LAU-131 pod - 7 x 2.75\" Hydra, Laser Guided Rkts M151, HE APKWS", - "quantity": 4 - }, - { - "name": "AN/AAQ-28 LITENING - Targeting Pod", - "quantity": 1 - } - ], - "enabled": true, - "code": "PGM: AIM-9M, AGM-122, APKWSIIx4, TPOD", - "name": "PGM: AIM-9M, AGM-122, APKWSIIx4, TPOD", - "roles": [ - "Strike" - ] } ], "filename": "av8bna.png", "enabled": true, "liveries": { - "vma-211": { - "name": "VMA-211", - "countries": "All" - }, - "vma-211d": { - "name": "VMA-211D", + "vmat-203": { + "name": "VMAT-203", "countries": "All" }, "vma-542": { "name": "VMA-542", "countries": "All" }, - "vma-231-1": { - "name": "VMA-231-1", - "countries": "All" - }, - "default": { - "name": "default", - "countries": "All" - }, - "vmat-203s": { - "name": "VMAT-203 Special", - "countries": "All" - }, - "vma-214d": { - "name": "VMA-214D", - "countries": "All" - }, - "vma-311": { - "name": "VMA-311", + "vma-311d": { + "name": "VMA-311D", "countries": "All" }, "vma-223d": { "name": "VMA-223D", "countries": "All" }, - "vma-231d": { - "name": "VMA-231D", + "vma-513": { + "name": "VMA-513", "countries": "All" }, - "vma-311d": { - "name": "VMA-311D", + "vma-214d": { + "name": "VMA-214D", "countries": "All" }, - "vmat-203": { - "name": "VMAT-203", + "vma-211": { + "name": "VMA-211", "countries": "All" }, - "vma-513d": { - "name": "VMA-513D", + "vma-231-2": { + "name": "VMA-231-2", + "countries": "All" + }, + "vmat-203s": { + "name": "VMAT-203 Special", "countries": "All" }, "vma-214": { "name": "VMA-214", "countries": "All" }, - "vma-513": { - "name": "VMA-513", + "vma-513d": { + "name": "VMA-513D", "countries": "All" }, - "vma-231-2": { - "name": "VMA-231-2", + "vma-231d": { + "name": "VMA-231D", + "countries": "All" + }, + "vma-311": { + "name": "VMA-311", + "countries": "All" + }, + "default": { + "name": "default", + "countries": "All" + }, + "vma-231-1": { + "name": "VMA-231-1", + "countries": "All" + }, + "vma-211d": { + "name": "VMA-211D", "countries": "All" } - } + }, + "type": "Aircraft", + "description": "Single jet engine, swept wing, 1 crew, all weather, VTOL attack aircraft. Harrier", + "abilities": "Drogue AAR", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "An-26B": { "name": "An-26B", @@ -4403,6 +4443,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "Transport" ] } @@ -4410,22 +4451,29 @@ "filename": "an-26.png", "enabled": true, "liveries": { + "china plaaf": { + "name": "China PLAAF", + "countries": [ + "CHN" + ] + }, + "rf navy": { + "name": "RF Navy", + "countries": [ + "RUS" + ] + }, "abkhazian af": { "name": "Abkhazian AF", "countries": [ "ABH" ] }, - "ukraine af": { - "name": "Ukraine AF", + "aeroflot": { + "name": "Aeroflot", "countries": [ - "UKR" - ] - }, - "china plaaf": { - "name": "China PLAAF", - "countries": [ - "CHN" + "SUN", + "RUS" ] }, "georgian af": { @@ -4440,20 +4488,20 @@ "RUS" ] }, - "aeroflot": { - "name": "Aeroflot", + "ukraine af": { + "name": "Ukraine AF", "countries": [ - "RUS", - "SUN" - ] - }, - "rf navy": { - "name": "RF Navy", - "countries": [ - "RUS" + "UKR" ] } - } + }, + "type": "Aircraft", + "description": "2 turboprop, straight wing, 5 crew, cargo and passenger aircraft. NATO reporting name: Curl", + "abilities": "", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": false, + "canRearm": false }, "An-30M": { "name": "An-30M", @@ -4468,6 +4516,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "Transport" ] } @@ -4475,6 +4524,12 @@ "filename": "a-50.png", "enabled": true, "liveries": { + "15th transport ab": { + "name": "15th Transport AB", + "countries": [ + "UKR" + ] + }, "china caac": { "name": "China CAAC", "countries": [ @@ -4486,14 +4541,15 @@ "countries": [ "RUS" ] - }, - "15th transport ab": { - "name": "15th Transport AB", - "countries": [ - "UKR" - ] } - } + }, + "type": "Aircraft", + "description": "2 turboprop, straight wing, 7 crew, weather reseach aircraft. NATO reporting name: Clank", + "abilities": "", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": false, + "canRearm": false }, "B-1B": { "name": "B-1B", @@ -4508,6 +4564,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "Strike" ] }, @@ -4676,7 +4733,14 @@ "USA" ] } - } + }, + "type": "Aircraft", + "description": "4 jet engine, swing wing, 2 crew bomber. Lancer", + "abilities": "", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "B-52H": { "name": "B-52H", @@ -4691,6 +4755,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "Strike" ] }, @@ -4785,11 +4850,18 @@ "USA" ] } - } + }, + "type": "Aircraft", + "description": "8 jet engine, swept wing, 6 crew bomber. Stratofortress", + "abilities": "", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "Bf-109K-4": { "name": "Bf-109K-4", - "coalition": "", + "coalition": "red", "label": "Bf-109K-4 Fritz", "era": "WW2", "shortLabel": "109", @@ -4800,6 +4872,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "CAP" ] }, @@ -4815,7 +4888,7 @@ "name": "Fuel Tank", "roles": [ "CAP", - "AFAC", + "FAC-A", "Escort" ] }, @@ -4857,70 +4930,6 @@ "filename": "bf109.png", "enabled": true, "liveries": { - "bf-109 k4 irmgard": { - "name": "Bf-109K-4 Irmgard Captured", - "countries": [ - "USA" - ] - }, - "bf-109 k4 ussr green": { - "name": "Green-trophy RKKA", - "countries": [ - "RUS", - "SUN" - ] - }, - "bf-109 k4 1.njg 11": { - "name": "NJG 11", - "countries": [ - "GER", - "NZG" - ] - }, - "bf-109 k4 jagdgeschwader 53": { - "name": " Jagdgeschwader 53", - "countries": [ - "GER", - "NZG" - ] - }, - "bf-109 k4 dogfight blue": { - "name": "BLUE", - "countries": "All" - }, - "bf-109 k4 9.jg77": { - "name": "9./JG77", - "countries": [ - "GER", - "NZG" - ] - }, - "bf-109 k4 us captured": { - "name": "US Captured", - "countries": [ - "USA" - ] - }, - "bf-109 k4 croatia": { - "name": "Croatia Air Force - 'Black 4'", - "countries": [ - "HRV", - "NZG", - "GER" - ] - }, - "bf-109 k4 legion condor spain 1939": { - "name": "6-123 ESPAÑA", - "countries": [ - "SPN" - ] - }, - "bf-109 k4 red7 eads": { - "name": "BF109G4 -red7- EADS -fondation messerschmitt V2", - "countries": [ - "GER" - ] - }, "germany_standard": { "name": "Jagdgeschwader 27", "countries": [ @@ -4928,33 +4937,6 @@ "NZG" ] }, - "bf-109 k4 iaf s-199": { - "name": "S-199 IDF by Ovenmit", - "countries": [ - "ISR" - ] - }, - "bf-109 k4 1.njg 11 (white 5)": { - "name": "1./NJG 11 (W5)", - "countries": [ - "GER", - "NZG" - ] - }, - "bf-109 k4 9.jg27 (w10+i)": { - "name": "9./JG27 (W10+I)", - "countries": [ - "GER", - "NZG" - ] - }, - "bf-109 k4 334xxx batch": { - "name": "334xxx batch", - "countries": [ - "GER", - "NZG" - ] - }, "bf-109 k4 white 6, jg 4": { "name": "White 6, JG 4", "countries": [ @@ -4962,16 +4944,32 @@ "NZG" ] }, - "bf-109 k4 iiijg27": { - "name": "III/JG27", + "bf-109 k4 dogfight red": { + "name": "RED", + "countries": "All" + }, + "bf-109 k4 dogfight blue": { + "name": "BLUE", + "countries": "All" + }, + "bf-109 k4 red7 eads": { + "name": "BF109G4 -red7- EADS -fondation messerschmitt V2", + "countries": [ + "GER" + ] + }, + "bf-109 k4 iijg52": { + "name": "II./JG52", "countries": [ "GER", "NZG" ] }, - "bf-109 k4 dogfight red": { - "name": "RED", - "countries": "All" + "bf-109 k4 us captured": { + "name": "US Captured", + "countries": [ + "USA" + ] }, "bf-109 k4 stab jg52": { "name": "Stab JG52", @@ -4980,22 +4978,32 @@ "NZG" ] }, - "bf-109 k4 jagdgeschwader 77": { - "name": "Jagdgeschwader 77", + "bf-109 k4 334xxx batch": { + "name": "334xxx batch", "countries": [ "GER", "NZG" ] }, - "bf-109 k4 raf vd 358 e-2": { - "name": "RAF VD 358 E-2 - UK Captured", + "bf-109 k4 ussr green": { + "name": "Green-trophy RKKA", "countries": [ - "UK" + "SUN", + "RUS" ] }, - "green": { - "name": "Green", - "countries": "All" + "bf-109 k4 330xxx batch": { + "name": "330xxx batch", + "countries": [ + "GER", + "NZG" + ] + }, + "bf-109 k4 irmgard": { + "name": "Bf-109K-4 Irmgard Captured", + "countries": [ + "USA" + ] }, "bf-109 k4 swiss e-3a j-374 1940": { "name": "Swiss E-3a J-374 1940 l'Seducteur", @@ -5003,8 +5011,47 @@ "SUI" ] }, - "bf-109 k4 335xxx batch": { - "name": "335xxx batch", + "green": { + "name": "Green", + "countries": "All" + }, + "bf-109 k4 9.jg77": { + "name": "9./JG77", + "countries": [ + "GER", + "NZG" + ] + }, + "bf-109 k4 croatia": { + "name": "Croatia Air Force - 'Black 4'", + "countries": [ + "HRV", + "NZG", + "GER" + ] + }, + "bf-109 k4 9.jg27 (w10+i)": { + "name": "9./JG27 (W10+I)", + "countries": [ + "GER", + "NZG" + ] + }, + "bf-109 k4 legion condor spain 1939": { + "name": "6-123 ESPAÑA", + "countries": [ + "SPN" + ] + }, + "bf-109 k4 jagdgeschwader 53": { + "name": " Jagdgeschwader 53", + "countries": [ + "GER", + "NZG" + ] + }, + "bf-109 k4 1.njg 11": { + "name": "NJG 11", "countries": [ "GER", "NZG" @@ -5018,21 +5065,54 @@ "NZG" ] }, - "bf-109 k4 iijg52": { - "name": "II./JG52", + "bf-109 k4 jagdgeschwader 77": { + "name": "Jagdgeschwader 77", "countries": [ "GER", "NZG" ] }, - "bf-109 k4 330xxx batch": { - "name": "330xxx batch", + "bf-109 k4 iaf s-199": { + "name": "S-199 IDF by Ovenmit", + "countries": [ + "ISR" + ] + }, + "bf-109 k4 iiijg27": { + "name": "III/JG27", + "countries": [ + "GER", + "NZG" + ] + }, + "bf-109 k4 1.njg 11 (white 5)": { + "name": "1./NJG 11 (W5)", + "countries": [ + "GER", + "NZG" + ] + }, + "bf-109 k4 raf vd 358 e-2": { + "name": "RAF VD 358 E-2 - UK Captured", + "countries": [ + "UK" + ] + }, + "bf-109 k4 335xxx batch": { + "name": "335xxx batch", "countries": [ "GER", "NZG" ] } - } + }, + "type": "Aircraft", + "description": "Single propeller, straight wing, 1 crew. 109", + "abilities": "", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "C-101CC": { "name": "C-101CC", @@ -5047,6 +5127,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "CAS" ] }, @@ -5578,161 +5659,104 @@ "filename": "c-101.png", "enabled": true, "liveries": { - "aviodev skin": { - "name": "Aviodev Skin", - "countries": [ - "IND", - "GHA", - "IRQ", - "ROU", - "HND", - "ISR", - "VEN", - "RSI", - "DEN", - "RUS", - "SUN", - "SVN", - "BRA", - "JPN", - "GRG", - "FIN", - "YEM", - "SVK", - "BLR", - "ETH", - "GDR", - "BGR", - "RED", - "GRC", - "NOR", - "TUN", - "AUS", - "KOR", - "ABH", - "TUR", - "PRK", - "INS", - "HRV", - "AUT", - "NGA", - "UN", - "CHN", - "PHL", - "SPN", - "CZE", - "POL", - "JOR", - "SAU", - "PAK", - "NZG", - "OMN", - "PRT", - "ITA", - "HUN", - "IDN", - "QAT", - "PER", - "CUB", - "SYR", - "UK", - "YUG", - "MYS", - "RSA", - "CAN", - "KWT", - "SWE", - "MAR", - "BLUE", - "VNM", - "AUSAF", - "DZA", - "NETH", - "LBY", - "SDN", - "CYP", - "MEX", - "CHL", - "BHR", - "ARG", - "SUI", - "BEL", - "GER", - "FRA", - "IRN", - "LBN", - "UKR", - "EGY", - "THA", - "SRB", - "USA", - "BOL", - "KAZ", - "RSO", - "ARE" - ] - }, - "claex green camu skin - centro logistico de armamento y experimentacion": { - "name": "CLAEX Green Camu Skin - Centro Logistico de Armamento y Experimentacion", - "countries": [ - "SPN", - "RED", - "BLUE" - ] - }, - "i brigada aerea - grupo de aviacion n.1 a-36 halcon": { - "name": "I Brigada Aerea - Grupo de Aviacion N.1 A-36 HALCON", - "countries": [ - "CHL" - ] - }, - "russia combat fictional": { - "name": "Russia Combat Fictional", - "countries": [ - "RED", - "RUS" - ] - }, - "georgia combat fictional wolf": { - "name": "Georgia Combat Fictional Wolf", - "countries": [ - "GRG" - ] - }, - "i brigada aerea - grupo de aviacion n.3 a-36 halcon": { - "name": "I Brigada Aerea - Grupo de Aviacion N.3 A-36 HALCON", - "countries": [ - "CHL" - ] - }, - "i brigada aerea - chile early grey n.1 a-36 halcon": { - "name": "I Brigada Aerea - Chile Early Grey", - "countries": [ - "CHL" - ] - }, "i brigada aerea - chile early green n.1 a-36 halcon": { "name": "I Brigada Aerea - Chile Early Green", "countries": [ "CHL" ] }, - "i brigada aerea - chile early agressor nº411 n.1 a-36 halcon": { - "name": "I Brigada Aerea - Chile Early Agressor Nº411", + "aviodev skin": { + "name": "Aviodev Skin", "countries": [ - "CHL" - ] - }, - "honduras - air force comayagua coronel jose enrique soto cano air base skin 2": { - "name": "Honduras - Air Force Comayagua Coronel Jose Enrique Soto Cano Air Base Skin 2", - "countries": [ - "HND" - ] - }, - "i brigada aerea - chile early agressor nº410 n.1 a-36 halcon": { - "name": "I Brigada Aerea - Chile Early Agressor Nº410 ", - "countries": [ - "CHL" + "CUB", + "AUS", + "PRT", + "SUN", + "USA", + "BLR", + "HRV", + "LBN", + "SVK", + "TUR", + "ARG", + "BEL", + "FIN", + "SAU", + "UN", + "RSI", + "CHL", + "AUT", + "EGY", + "CAN", + "QAT", + "YUG", + "ISR", + "PER", + "BHR", + "NGA", + "IDN", + "KAZ", + "INS", + "AUSAF", + "PAK", + "SVN", + "RED", + "ROU", + "DEN", + "TUN", + "IND", + "CZE", + "MYS", + "GHA", + "OMN", + "CYP", + "RSO", + "IRN", + "UKR", + "JPN", + "THA", + "JOR", + "RSA", + "MEX", + "NOR", + "ITA", + "NETH", + "SUI", + "VNM", + "KOR", + "GRG", + "SDN", + "UK", + "BRA", + "ARE", + "ABH", + "BOL", + "RUS", + "PHL", + "SPN", + "MAR", + "DZA", + "GDR", + "HND", + "PRK", + "SRB", + "BGR", + "LBY", + "VEN", + "IRQ", + "SYR", + "NZG", + "GRC", + "POL", + "SWE", + "GER", + "CHN", + "YEM", + "FRA", + "HUN", + "ETH", + "BLUE", + "KWT" ] }, "georgia combat fictional green": { @@ -5741,22 +5765,8 @@ "GRG" ] }, - "claex desert camu skin - centro logistico de armamento y experimentacion": { - "name": "CLAEX Desert Camu Skin - Centro Logistico de Armamento y Experimentacion", - "countries": [ - "SPN", - "RED", - "BLUE" - ] - }, - "honduras - air force comayagua coronel jose enrique soto cano air base skin 1": { - "name": "Honduras - Air Force Comayagua Coronel Jose Enrique Soto Cano Air Base Skin 1", - "countries": [ - "HND" - ] - }, - "i brigada aerea - grupo de aviacion n.1 a-36 halcon desert skin": { - "name": "I Brigada Aerea - Grupo de Aviacion N.1 A-36 HALCON Desert Skin", + "i brigada aerea - chile early grey n.1 a-36 halcon": { + "name": "I Brigada Aerea - Chile Early Grey", "countries": [ "CHL" ] @@ -5773,6 +5783,18 @@ "GRG" ] }, + "i brigada aerea - grupo de aviacion n.1 a-36 halcon desert skin": { + "name": "I Brigada Aerea - Grupo de Aviacion N.1 A-36 HALCON Desert Skin", + "countries": [ + "CHL" + ] + }, + "i brigada aerea - chile early agressor nº410 n.1 a-36 halcon": { + "name": "I Brigada Aerea - Chile Early Agressor Nº410 ", + "countries": [ + "CHL" + ] + }, "usaf agressor fictional": { "name": "USAF Agressor Fictional", "countries": [ @@ -5780,8 +5802,74 @@ "AUSAF", "BLUE" ] + }, + "i brigada aerea - grupo de aviacion n.1 a-36 halcon": { + "name": "I Brigada Aerea - Grupo de Aviacion N.1 A-36 HALCON", + "countries": [ + "CHL" + ] + }, + "i brigada aerea - chile early agressor nº411 n.1 a-36 halcon": { + "name": "I Brigada Aerea - Chile Early Agressor Nº411", + "countries": [ + "CHL" + ] + }, + "claex green camu skin - centro logistico de armamento y experimentacion": { + "name": "CLAEX Green Camu Skin - Centro Logistico de Armamento y Experimentacion", + "countries": [ + "RED", + "SPN", + "BLUE" + ] + }, + "russia combat fictional": { + "name": "Russia Combat Fictional", + "countries": [ + "RED", + "RUS" + ] + }, + "georgia combat fictional wolf": { + "name": "Georgia Combat Fictional Wolf", + "countries": [ + "GRG" + ] + }, + "honduras - air force comayagua coronel jose enrique soto cano air base skin 1": { + "name": "Honduras - Air Force Comayagua Coronel Jose Enrique Soto Cano Air Base Skin 1", + "countries": [ + "HND" + ] + }, + "i brigada aerea - grupo de aviacion n.3 a-36 halcon": { + "name": "I Brigada Aerea - Grupo de Aviacion N.3 A-36 HALCON", + "countries": [ + "CHL" + ] + }, + "honduras - air force comayagua coronel jose enrique soto cano air base skin 2": { + "name": "Honduras - Air Force Comayagua Coronel Jose Enrique Soto Cano Air Base Skin 2", + "countries": [ + "HND" + ] + }, + "claex desert camu skin - centro logistico de armamento y experimentacion": { + "name": "CLAEX Desert Camu Skin - Centro Logistico de Armamento y Experimentacion", + "countries": [ + "RED", + "SPN", + "BLUE" + ] } - } + }, + "type": "Aircraft", + "description": "Single jet engine, swept wing, 2 crew, light attack trainer. Aviojet", + "abilities": "", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "C-130": { "name": "C-130", @@ -5796,6 +5884,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "Transport" ] } @@ -5803,70 +5892,10 @@ "filename": "c-130.png", "enabled": true, "liveries": { - "iriaf 5-8503": { - "name": "IRIAF 5-8503", + "belgian air force": { + "name": "Belgian Air Force", "countries": [ - "IRN" - ] - }, - "algerian af green": { - "name": "Algerian AF Green", - "countries": [ - "DZA" - ] - }, - "haf gray": { - "name": "Hellenic Airforce - Gray", - "countries": [ - "GRC" - ] - }, - "royal netherlands air force": { - "name": "Royal Netherlands Air Force", - "countries": [ - "NETH" - ] - }, - "royal norwegian air force": { - "name": "Royal Norwegian Air Force", - "countries": [ - "NOR" - ] - }, - "canada's air force": { - "name": "Canada's Air Force", - "countries": [ - "CAN" - ] - }, - "french air force": { - "name": "French Air Force", - "countries": [ - "FRA" - ] - }, - "turkish air force": { - "name": "Turkish Air Force", - "countries": [ - "TUR" - ] - }, - "israel defence force": { - "name": "Israel Defence Force", - "countries": [ - "ISR" - ] - }, - "us air force": { - "name": "US Air Force", - "countries": [ - "USA" - ] - }, - "royal danish air force": { - "name": "Royal Danish Air Force", - "countries": [ - "DEN" + "BEL" ] }, "iriaf 5-8518": { @@ -5875,37 +5904,104 @@ "IRN" ] }, - "algerian af h30 white": { - "name": "Algerian AF H30 White", + "israel defence force": { + "name": "Israel Defence Force", + "countries": [ + "ISR" + ] + }, + "haf gray": { + "name": "Hellenic Airforce - Gray", + "countries": [ + "GRC" + ] + }, + "turkish air force": { + "name": "Turkish Air Force", + "countries": [ + "TUR" + ] + }, + "royal danish air force": { + "name": "Royal Danish Air Force", + "countries": [ + "DEN" + ] + }, + "algerian af green": { + "name": "Algerian AF Green", "countries": [ "DZA" ] }, + "royal netherlands air force": { + "name": "Royal Netherlands Air Force", + "countries": [ + "NETH" + ] + }, + "canada's air force": { + "name": "Canada's Air Force", + "countries": [ + "CAN" + ] + }, + "royal norwegian air force": { + "name": "Royal Norwegian Air Force", + "countries": [ + "NOR" + ] + }, + "iriaf 5-8503": { + "name": "IRIAF 5-8503", + "countries": [ + "IRN" + ] + }, + "us air force": { + "name": "US Air Force", + "countries": [ + "USA" + ] + }, "royal air force": { "name": "Royal Air Force", "countries": [ "UK" ] }, + "air algerie l-382 white": { + "name": "Air Algerie L-382 White", + "countries": [ + "DZA" + ] + }, + "french air force": { + "name": "French Air Force", + "countries": [ + "FRA" + ] + }, "spanish air force": { "name": "Spanish Air Force", "countries": [ "SPN" ] }, - "belgian air force": { - "name": "Belgian Air Force", - "countries": [ - "BEL" - ] - }, - "air algerie l-382 white": { - "name": "Air Algerie L-382 White", + "algerian af h30 white": { + "name": "Algerian AF H30 White", "countries": [ "DZA" ] } - } + }, + "type": "Aircraft", + "description": "4 turboprop, stright wing, 3 crew. Hercules", + "abilities": "", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": false, + "canRearm": false }, "C-17A": { "name": "C-17A", @@ -5920,6 +6016,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "Transport" ] } @@ -5933,7 +6030,14 @@ "USA" ] } - } + }, + "type": "Aircraft", + "description": "4 jet engine, swept wing, 3 crew. Globemaster", + "abilities": "", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": false, + "canRearm": false }, "E-2C": { "name": "E-2C", @@ -5948,6 +6052,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "AWACS" ] } @@ -5955,19 +6060,26 @@ "filename": "e-2.png", "enabled": true, "liveries": { - "e-2d demo": { - "name": "E-2D Demo", - "countries": [ - "USA" - ] - }, "vaw-125 tigertails": { "name": "VAW-125 Tigertails", "countries": [ "USA" ] + }, + "e-2d demo": { + "name": "E-2D Demo", + "countries": [ + "USA" + ] } - } + }, + "type": "Aircraft", + "description": "2 turboprop, straight wing, 5 crew. Hawkeye", + "abilities": "Airbourne early warning", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": false, + "canRearm": false }, "E-3A": { "name": "E-3A", @@ -5982,6 +6094,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "AWACS" ] } @@ -5989,21 +6102,28 @@ "filename": "e-3.png", "enabled": true, "liveries": { + "nato": { + "name": "nato", + "countries": [ + "USA", + "FRA", + "UK" + ] + }, "usaf standard": { "name": "usaf standard", "countries": [ "USA" ] - }, - "nato": { - "name": "nato", - "countries": [ - "UK", - "USA", - "FRA" - ] } - } + }, + "type": "Aircraft", + "description": "4 jet engine, swept wing, 17 crew. Sentry", + "abilities": "Airbourne early warning", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": false, + "canRearm": false }, "F-117A": { "name": "F-117A", @@ -6018,6 +6138,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "Strike" ] }, @@ -6073,7 +6194,14 @@ "USA" ] } - } + }, + "type": "Aircraft", + "description": "2 jet engine, delta wing, 1 crew. Nighthawk", + "abilities": "", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "F-14A-135-GR": { "name": "F-14A-135-GR", @@ -6088,6 +6216,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "CAP" ] }, @@ -6833,85 +6962,111 @@ "Runway Attack", "Strike" ] + }, + { + "items": [ + { + "name": "AIM-9M Sidewinder IR AAM", + "quantity": 2 + }, + { + "name": "AIM-7M", + "quantity": 2 + }, + { + "name": "Fuel tank 300 gal", + "quantity": 2 + }, + { + "name": "ADM_141A", + "quantity": 4 + } + ], + "enabled": true, + "code": "ADM-141a*4, Aim-7M*2, Aim-9M*2, XT 300 GAL*2", + "name": "ADM-141a*4, Aim-7M*2, Aim-9M*2, XT 300 GAL*2", + "roles": [ + "SEAD" + ] } ], "filename": "f-14.png", "enabled": true, "liveries": { - "vf-21 freelancers 200": { - "name": "VF-21 Freelancers 200", - "countries": "All" - }, - "vf-11 ae101 1988": { - "name": "VF-11 AE101 1988", - "countries": "All" - }, "rogue nation(top gun - maverick)": { "name": "Top Gun: Maverick - Rogue Nation", "countries": "All" }, - "vf-32 swordsmen ab200 (1976)": { - "name": "VF-32 Swordsmen AB200 (1976)", - "countries": "All" - }, - "vf-301 nd101 hivis": { - "name": "VF-301 ND101 HiVis by Mach3DS", - "countries": "All" - }, - "vx-4 vandy one sad bunny (1992)": { - "name": "VX-4 Vandy One Sad Bunny (1992)", - "countries": "All" - }, - "top gun 114": { - "name": "Top Gun 114 Maverick and Goose", - "countries": "All" - }, - "vf-14 tophatters aj201 (1999 allied force)": { - "name": "VF-14 Tophatters AJ201 (1999 Allied Force)", - "countries": "All" - }, - "vf-211 fighting checkmates 105": { - "name": "VF-211 Fighting Checkmates 105", - "countries": "All" - }, - "vf-41 black aces aj102 (1999 allied force)": { - "name": "VF-41 Black Aces AJ102 (1999 Allied Force)", - "countries": "All" - }, - "vf-14 tophatters ab100 (1976)": { - "name": "VF-14 Tophatters AB100(1976)", - "countries": "All" - }, - "vf-31 ae204 1988": { - "name": "VF-31 AE204 1988", - "countries": "All" - }, - "vf-301 nd113": { - "name": "VF-301 ND113 by Mach3DS", - "countries": "All" - }, - "vf-1 wolfpack nk101 (1974)": { - "name": "VF-1 Wolfpack NK101 (1974)", + "vf-21 freelancers 200": { + "name": "VF-21 Freelancers 200", "countries": "All" }, "vf-11 ae106 1988": { "name": "VF-11 AE106 1988", "countries": "All" }, - "vf-41 black aces aj100 (1999 allied force)": { - "name": "VF-41 Black Aces AJ100 (1999 Allied Force)", + "vf-301 nd113": { + "name": "VF-301 ND113 by Mach3DS", + "countries": "All" + }, + "vf-301 nd111": { + "name": "VF-301 ND111 by Mach3DS", + "countries": "All" + }, + "vf-154 black knights 101": { + "name": "00 - VF-154 Black Knights 101", + "countries": "All" + }, + "vf-14 tophatters aj206 (1999 allied force)": { + "name": "VF-14 Tophatters AJ206 (1999 Allied Force)", + "countries": "All" + }, + "vf-31 ae204 1988": { + "name": "VF-31 AE204 1988", "countries": "All" }, "vf-1 wolfpack nk102 (1974)": { "name": "VF-1 Wolfpack NK102 (1974)", "countries": "All" }, + "vf-33 starfighters ab201 (1988)": { + "name": "VF-33 Starfighters AB201(Dale Snodgrass)", + "countries": "All" + }, + "vf-31 1991 ae200": { + "name": "VF-31 1991 AE200 by Mach3DS", + "countries": "All" + }, + "vf-41 black aces aj100 (1999 allied force)": { + "name": "VF-41 Black Aces AJ100 (1999 Allied Force)", + "countries": "All" + }, + "vf-41 black aces aj101 (1999 allied force)": { + "name": "VF-41 Black Aces AJ101 (1999 Allied Force)", + "countries": "All" + }, + "vf-31 1991 ae205": { + "name": "VF-31 1991 AE205 by Mach3DS", + "countries": "All" + }, + "vf-41 black aces aj102 (1999 allied force)": { + "name": "VF-41 Black Aces AJ102 (1999 Allied Force)", + "countries": "All" + }, + "vf-1 wolfpack nk101 (1974)": { + "name": "VF-1 Wolfpack NK101 (1974)", + "countries": "All" + }, "vf-31 ae200 1988": { "name": "VF-31 AE200 1988", "countries": "All" }, - "vf-14 tophatters aj200 (1999) 80th aniversary": { - "name": "VF-14 Tophatters AJ200 (1999) 80th Anniversary", + "vf-11 red rippers 106": { + "name": "VF-11 Red Rippers 106", + "countries": "All" + }, + "vf-1 wolfpack nk103 (1974)": { + "name": "VF-1 Wolfpack NK103 (1974)", "countries": "All" }, "vf-14 tophatters ab103 (1976)": { @@ -6922,28 +7077,42 @@ "name": "VF-111 Sundowners 200", "countries": "All" }, + "top gun 114": { + "name": "Top Gun 114 Maverick and Goose", + "countries": "All" + }, + "vf-11 ae103 1988": { + "name": "VF-11 AE103 1988", + "countries": "All" + }, + "vx-4 vandy one sad bunny (1992)": { + "name": "VX-4 Vandy One Sad Bunny (1992)", + "countries": "All" + }, + "vf-211 fighting checkmates 100 (2001)": { + "name": "VF-211 Fighting Checkmates 100 (2001)", + "countries": [ + "USA" + ] + }, "vf-301 nd104": { "name": "VF-301 ND104 by Mach3DS", "countries": "All" }, - "vf-1 wolfpack nk103 (1974)": { - "name": "VF-1 Wolfpack NK103 (1974)", + "vf-32 swordsmen ab200 (1976)": { + "name": "VF-32 Swordsmen AB200 (1976)", "countries": "All" }, - "vf-154 black knights 101": { - "name": "00 - VF-154 Black Knights 101", + "vf-211 fighting checkmates 105": { + "name": "VF-211 Fighting Checkmates 105", "countries": "All" }, - "vf-33 starfighters ab201 (1988)": { - "name": "VF-33 Starfighters AB201(Dale Snodgrass)", + "vf-14 tophatters ab100 (1976)": { + "name": "VF-14 Tophatters AB100(1976)", "countries": "All" }, - "vf-41 black aces aj104 (1999 allied force)": { - "name": "VF-41 Black Aces AJ104 (1999 Allied Force)", - "countries": "All" - }, - "vf-301 nd111": { - "name": "VF-301 ND111 by Mach3DS", + "vf-11 ae101 1988": { + "name": "VF-11 AE101 1988", "countries": "All" }, "vf-14 tophatters aj202 (1999 allied force)": { @@ -6954,37 +7123,30 @@ "name": "VF-1 Wolfpack NK100 (1974)", "countries": "All" }, - "vf-11 ae103 1988": { - "name": "VF-11 AE103 1988", + "vf-301 nd101 hivis": { + "name": "VF-301 ND101 HiVis by Mach3DS", "countries": "All" }, - "vf-31 1991 ae205": { - "name": "VF-31 1991 AE205 by Mach3DS", + "vf-14 tophatters aj201 (1999 allied force)": { + "name": "VF-14 Tophatters AJ201 (1999 Allied Force)", "countries": "All" }, - "vf-11 red rippers 106": { - "name": "VF-11 Red Rippers 106", + "vf-14 tophatters aj200 (1999) 80th aniversary": { + "name": "VF-14 Tophatters AJ200 (1999) 80th Anniversary", "countries": "All" }, - "vf-31 1991 ae200": { - "name": "VF-31 1991 AE200 by Mach3DS", + "vf-41 black aces aj104 (1999 allied force)": { + "name": "VF-41 Black Aces AJ104 (1999 Allied Force)", "countries": "All" - }, - "vf-41 black aces aj101 (1999 allied force)": { - "name": "VF-41 Black Aces AJ101 (1999 Allied Force)", - "countries": "All" - }, - "vf-14 tophatters aj206 (1999 allied force)": { - "name": "VF-14 Tophatters AJ206 (1999 Allied Force)", - "countries": "All" - }, - "vf-211 fighting checkmates 100 (2001)": { - "name": "VF-211 Fighting Checkmates 100 (2001)", - "countries": [ - "USA" - ] } - } + }, + "type": "Aircraft", + "description": "2 Jet engine, swing wing, 2 crew. Tomcat", + "abilities": "Drogue AAR", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "F-14B": { "name": "F-14B", @@ -6999,6 +7161,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "CAP" ] }, @@ -8175,75 +8338,59 @@ "Runway Attack", "Strike" ] + }, + { + "items": [ + { + "name": "AIM-9M Sidewinder IR AAM", + "quantity": 2 + }, + { + "name": "AIM-7M", + "quantity": 2 + }, + { + "name": "Fuel tank 300 gal", + "quantity": 2 + }, + { + "name": "ADM_141A", + "quantity": 4 + } + ], + "enabled": true, + "code": "ADM-141a*4, Aim-7M*2, Aim-9M*2, XT 300 GAL*2", + "name": "ADM-141a*4, Aim-7M*2, Aim-9M*2, XT 300 GAL*2", + "roles": [ + "SEAD" + ] } ], "filename": "f-14.png", "enabled": true, "liveries": { - "vf-32 fighting swordsmen 100 (2000)": { - "name": "VF-32 Fighting Swordsmen 100 (2000)", - "countries": [ - "USA" - ] - }, - "vf-103 jolly rogers hi viz": { - "name": "VF-103 Jolly Rogers Hi Viz", + "vf-103 sluggers 206 (1995)": { + "name": "VF-103 Sluggers 206 (1995)", "countries": "All" }, - "vf-143 pukin dogs low vis (1995)": { - "name": "VF-143 Pukin Dogs Low Vis (1995)", - "countries": "All" - }, - "vf-11 red rippers (1997)": { - "name": "VF-11 Red Rippers (1997)", - "countries": "All" - }, - "vf-32 fighting swordsmen 102": { - "name": "VF-32 Fighting Swordsmen 102 (1998)", - "countries": "All" - }, - "vx-9 vampires xf240 white whale": { - "name": "VX-9 Vampires XF240 White Whale", + "vf-143 pukin dogs low vis": { + "name": "VF-143 Pukin Dogs Low Vis (1998)", "countries": "All" }, "rogue nation(top gun - maverick)": { "name": "Top Gun: Maverick - Rogue Nation", "countries": "All" }, - "vf-74 adversary": { - "name": "VF-74 Adversary", - "countries": "All" - }, - "santa": { - "name": "Fictional Christmas Livery", - "countries": "All" - }, - "chromecat": { - "name": "Fictional Chrome Cat ", - "countries": "All" - }, - "vf-211 fighting checkmates": { - "name": "VF-211 Fighting Checkmates", - "countries": "All" - }, - "vf-101 red": { - "name": "VF-101 Red", - "countries": "All" - }, - "vf-103 last ride": { - "name": "VF-103 Last Ride", - "countries": "All" - }, "vf-31 tomcatters nk101 (2004)": { "name": "VF-31 Tomcatters NK101 (2004)", "countries": "All" }, - "vf-142 ghostriders": { - "name": "VF-142 Ghostriders", + "vf-32 fighting swordsmen 103": { + "name": "VF-32 Fighting Swordsmen 103 (1998)", "countries": "All" }, - "vf-103 sluggers 207 (1991)": { - "name": "VF-103 Sluggers 207 (1991)", + "vf-103 jolly rogers hi viz": { + "name": "VF-103 Jolly Rogers Hi Viz", "countries": "All" }, "vf-101 dark": { @@ -8254,55 +8401,104 @@ "name": "01 - VF-102 Diamondbacks 1996", "countries": "All" }, - "vf-101 grim reapers low vis": { - "name": "VF-101 Grim Reapers Low Vis", - "countries": "All" - }, - "vf-24 renegades": { - "name": "VF-24 Renegades Low-Viz", - "countries": "All" - }, - "vf-103 sluggers 206 (1995)": { - "name": "VF-103 Sluggers 206 (1995)", - "countries": "All" - }, - "vf-32 fighting swordsmen 103": { - "name": "VF-32 Fighting Swordsmen 103 (1998)", - "countries": "All" - }, - "vx-9 vandy 41 (1995)": { - "name": "VX-9 Vandy 41 (1995)", - "countries": "All" - }, - "top gun 114 hb weather": { - "name": "Top Gun 114 Maverick and Goose", - "countries": "All" - }, - "vf-74 bedevilers 1991": { - "name": "VF-74 Be-Devilers 1991", + "vf-143 pukin dogs low vis (1995)": { + "name": "VF-143 Pukin Dogs Low Vis (1995)", "countries": "All" }, "vx-4 xf-51 1988": { "name": "VX-4 XF-51 1988", "countries": "All" }, - "vf-143 pukin dogs cag": { - "name": "VF-143 Pukin' Dogs CAG", + "top gun 114 hb weather": { + "name": "Top Gun 114 Maverick and Goose", + "countries": "All" + }, + "vf-24 renegades": { + "name": "VF-24 Renegades Low-Viz", + "countries": "All" + }, + "vf-11 red rippers (1997)": { + "name": "VF-11 Red Rippers (1997)", + "countries": "All" + }, + "vf-32 fighting swordsmen 100 (2000)": { + "name": "VF-32 Fighting Swordsmen 100 (2000)", + "countries": [ + "USA" + ] + }, + "vf-74 bedevilers 1991": { + "name": "VF-74 Be-Devilers 1991", + "countries": "All" + }, + "santa": { + "name": "Fictional Christmas Livery", + "countries": "All" + }, + "vf-103 sluggers 207 (1991)": { + "name": "VF-103 Sluggers 207 (1991)", "countries": "All" }, "vf-32 fighting swordsmen 101": { "name": "VF-32 Fighting Swordsmen 101 (1998)", "countries": "All" }, + "vf-103 last ride": { + "name": "VF-103 Last Ride", + "countries": "All" + }, + "vf-143 pukin dogs cag": { + "name": "VF-143 Pukin' Dogs CAG", + "countries": "All" + }, + "vx-9 vampires xf240 white whale": { + "name": "VX-9 Vampires XF240 White Whale", + "countries": "All" + }, + "vf-74 adversary": { + "name": "VF-74 Adversary", + "countries": "All" + }, + "vx-9 vandy 41 (1995)": { + "name": "VX-9 Vandy 41 (1995)", + "countries": "All" + }, + "vf-142 ghostriders": { + "name": "VF-142 Ghostriders", + "countries": "All" + }, + "vf-211 fighting checkmates": { + "name": "VF-211 Fighting Checkmates", + "countries": "All" + }, + "vf-101 grim reapers low vis": { + "name": "VF-101 Grim Reapers Low Vis", + "countries": "All" + }, + "chromecat": { + "name": "Fictional Chrome Cat ", + "countries": "All" + }, + "vf-32 fighting swordsmen 102": { + "name": "VF-32 Fighting Swordsmen 102 (1998)", + "countries": "All" + }, "vf-102 diamondbacks 102": { "name": "VF-102 Diamondbacks 102 (2000)", "countries": "All" }, - "vf-143 pukin dogs low vis": { - "name": "VF-143 Pukin Dogs Low Vis (1998)", + "vf-101 red": { + "name": "VF-101 Red", "countries": "All" } - } + }, + "type": "Aircraft", + "description": "2 Jet engine, swing wing, 2 crew. Tomcat", + "abilities": "Drogue AAR", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "F-15C": { "name": "F-15C", @@ -8317,6 +8513,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "CAP" ] }, @@ -8596,10 +8793,10 @@ "filename": "f-15.png", "enabled": true, "liveries": { - "ferris scheme": { - "name": "Ferris Scheme", + "106th sqn (8th airbase)": { + "name": "106th SQN (8th Airbase)", "countries": [ - "USA" + "ISR" ] }, "433rd weapons sqn (wa)": { @@ -8608,28 +8805,14 @@ "USA" ] }, - "58th fighter sqn (eg)": { - "name": "58th Fighter SQN (EG)", + "493rd fighter sqn (ln)": { + "name": "493rd Fighter SQN (LN)", "countries": [ "USA" ] }, - "65th aggressor sqn (wa) super_flanker": { - "name": "65th Aggressor SQN (WA) SUPER_Flanker", - "countries": [ - "USA", - "AUSAF" - ] - }, - "65th aggressor sqn (wa) flanker": { - "name": "65th Aggressor SQN (WA) Flanker", - "countries": [ - "USA", - "AUSAF" - ] - }, - "493rd fighter sqn (ln)": { - "name": "493rd Fighter SQN (LN)", + "12th fighter sqn (ak)": { + "name": "12th Fighter SQN (AK)", "countries": [ "USA" ] @@ -8640,22 +8823,18 @@ "USA" ] }, - "haf aegean ghost": { - "name": "Hellenic Airforece - Aegean Ghost (Fictional)", + "65th aggressor sqn (wa) flanker": { + "name": "65th Aggressor SQN (WA) Flanker", "countries": [ - "GRC" + "USA", + "AUSAF" ] }, - "106th sqn (8th airbase)": { - "name": "106th SQN (8th Airbase)", + "65th aggressor sqn (wa) super_flanker": { + "name": "65th Aggressor SQN (WA) SUPER_Flanker", "countries": [ - "ISR" - ] - }, - "12th fighter sqn (ak)": { - "name": "12th Fighter SQN (AK)", - "countries": [ - "USA" + "USA", + "AUSAF" ] }, "65th aggressor sqn (wa) mig": { @@ -8664,981 +8843,33 @@ "USA", "AUSAF" ] - } - } - }, - "F-15E": { - "name": "F-15E", - "coalition": "blue", - "label": "F-15E Strike Eagle", - "era": "Late Cold War", - "shortLabel": "15", - "loadouts": [ - { - "items": [], - "enabled": true, - "code": "", - "name": "Empty loadout", - "roles": [ - "Strike" - ] }, - { - "items": [ - { - "name": "AIM-120B AMRAAM - Active Rdr AAM", - "quantity": 2 - }, - { - "name": "Fuel tank 610 gal", - "quantity": 3 - }, - { - "name": "AIM-9M Sidewinder IR AAM", - "quantity": 2 - }, - { - "name": "CBU-87 - 202 x CEM Cluster Bomb", - "quantity": 6 - }, - { - "name": "Mk-82 AIR Ballute - 500lb GP Bomb HD", - "quantity": 6 - } - ], - "enabled": true, - "code": "AIM-120B*2,AIM-9M*2,FUEL*3,CBU-87*6,Mk-82AIR*6", - "name": "AIM-120B*2,AIM-9M*2,FUEL*3,CBU-87*6,Mk-82AIR*6", - "roles": [ - "Strike" - ] - }, - { - "items": [ - { - "name": "AIM-120B AMRAAM - Active Rdr AAM", - "quantity": 2 - }, - { - "name": "Fuel tank 610 gal", - "quantity": 3 - }, - { - "name": "AIM-9M Sidewinder IR AAM", - "quantity": 2 - }, - { - "name": "CBU-97 - 10 x SFW Cluster Bomb", - "quantity": 12 - } - ], - "enabled": true, - "code": "AIM-120B*2,AIM-9M*2,FUEL*3,CBU-97*12", - "name": "AIM-120B*2,AIM-9M*2,FUEL*3,CBU-97*12", - "roles": [ - "Strike" - ] - }, - { - "items": [ - { - "name": "AIM-120B AMRAAM - Active Rdr AAM", - "quantity": 2 - }, - { - "name": "Fuel tank 610 gal", - "quantity": 3 - }, - { - "name": "AIM-9M Sidewinder IR AAM", - "quantity": 2 - }, - { - "name": "Mk-82 - 500lb GP Bomb LD", - "quantity": 12 - } - ], - "enabled": true, - "code": "AIM-120B*2,AIM-9M*2,FUEL*3,Mk-82*12", - "name": "AIM-120B*2,AIM-9M*2,FUEL*3,Mk-82*12", - "roles": [ - "Strike" - ] - }, - { - "items": [ - { - "name": "AIM-120B AMRAAM - Active Rdr AAM", - "quantity": 4 - }, - { - "name": "Fuel tank 610 gal", - "quantity": 3 - }, - { - "name": "AIM-120C-5 AMRAAM - Active Rdr AAM", - "quantity": 4 - } - ], - "enabled": true, - "code": "AIM-120B*4,AIM-120C*4,FUEL*3", - "name": "AIM-120B*4,AIM-120C*4,FUEL*3", - "roles": [ - "Escort", - "CAP", - "CAP", - "CAP" - ] - }, - { - "items": [ - { - "name": "AIM-120B AMRAAM - Active Rdr AAM", - "quantity": 2 - }, - { - "name": "LAU-117 with AGM-65H - Maverick H (CCD Imp ASM)", - "quantity": 1 - }, - { - "name": "AIM-9M Sidewinder IR AAM", - "quantity": 2 - }, - { - "name": "LAU-117 with AGM-65D - Maverick D (IIR ASM)", - "quantity": 1 - }, - { - "name": "Fuel tank 610 gal", - "quantity": 1 - }, - { - "name": "GBU-31(V)1/B - JDAM, 2000lb GPS Guided Bomb", - "quantity": 4 - } - ], - "enabled": true, - "code": "AIM-120B*2,AIM-9M*2,FUEL,GBU-31*4,AGM-65H,AGM-65D", - "name": "AIM-120B*2,AIM-9M*2,FUEL,GBU-31*4,AGM-65H,AGM-65D", - "roles": [ - "CAS", - "Strike" - ] - }, - { - "items": [ - { - "name": "AIM-120B AMRAAM - Active Rdr AAM", - "quantity": 2 - }, - { - "name": "AGM-154C - JSOW Unitary BROACH", - "quantity": 2 - }, - { - "name": "AIM-9M Sidewinder IR AAM", - "quantity": 2 - }, - { - "name": "CBU-103 - 202 x CEM, CBU with WCMD", - "quantity": 2 - }, - { - "name": "Fuel tank 610 gal", - "quantity": 1 - }, - { - "name": "GBU-38(V)1/B - JDAM, 500lb GPS Guided Bomb", - "quantity": 1 - }, - { - "name": "GBU-12 - 500lb Laser Guided Bomb", - "quantity": 1 - } - ], - "enabled": true, - "code": "AIM-120B*2,AIM-9M*2,FUEL,CBU-103*2,GBU-12,GBU-38,AGM-154C*2", - "name": "AIM-120B*2,AIM-9M*2,FUEL,CBU-103*2,GBU-12,GBU-38,AGM-154C*2", - "roles": [ - "CAS" - ] - }, - { - "items": [ - { - "name": "AIM-9M Sidewinder IR AAM", - "quantity": 4 - }, - { - "name": "Fuel tank 610 gal", - "quantity": 3 - }, - { - "name": "AIM-120C-5 AMRAAM - Active Rdr AAM", - "quantity": 4 - } - ], - "enabled": true, - "code": "AIM-120B*4,AIM-9M*4,FUEL*3", - "name": "AIM-120B*4,AIM-9M*4,FUEL*3", - "roles": [ - "Escort", - "CAP", - "CAP", - "CAP" - ] - }, - { - "items": [ - { - "name": "AIM-120B AMRAAM - Active Rdr AAM", - "quantity": 2 - }, - { - "name": "Fuel tank 610 gal", - "quantity": 3 - }, - { - "name": "AIM-9M Sidewinder IR AAM", - "quantity": 2 - }, - { - "name": "AIM-7M Sparrow Semi-Active Radar", - "quantity": 2 - }, - { - "name": "AIM-120C-5 AMRAAM - Active Rdr AAM", - "quantity": 2 - } - ], - "enabled": true, - "code": "AIM-120B*2,AIM-9M*2,AIM-120C*2,AIM-7M*2,FUEL*3", - "name": "AIM-120B*2,AIM-9M*2,AIM-120C*2,AIM-7M*2,FUEL*3", - "roles": [ - "Escort", - "CAP", - "CAP", - "CAP" - ] - }, - { - "items": [ - { - "name": "AIM-120B AMRAAM - Active Rdr AAM", - "quantity": 2 - }, - { - "name": "AGM-154C - JSOW Unitary BROACH", - "quantity": 2 - }, - { - "name": "AIM-9M Sidewinder IR AAM", - "quantity": 2 - }, - { - "name": "GBU-38(V)1/B - JDAM, 500lb GPS Guided Bomb", - "quantity": 4 - }, - { - "name": "GBU-12 - 500lb Laser Guided Bomb", - "quantity": 4 - }, - { - "name": "Fuel tank 610 gal", - "quantity": 1 - } - ], - "enabled": true, - "code": "AIM-120B*2,AIM-9M*2,FUEL,GBU-12*4,GBU-38*4,AGM-154C*2", - "name": "AIM-120B*2,AIM-9M*2,FUEL,GBU-12*4,GBU-38*4,AGM-154C*2", - "roles": [ - "CAS" - ] - }, - { - "items": [ - { - "name": "AIM-120B AMRAAM - Active Rdr AAM", - "quantity": 2 - }, - { - "name": "AGM-154C - JSOW Unitary BROACH", - "quantity": 2 - }, - { - "name": "AIM-9M Sidewinder IR AAM", - "quantity": 2 - }, - { - "name": "GBU-31(V)1/B - JDAM, 2000lb GPS Guided Bomb", - "quantity": 4 - }, - { - "name": "Fuel tank 610 gal", - "quantity": 1 - } - ], - "enabled": true, - "code": "AIM-120B*2,AIM-9M*2,FUEL,GBU-31*4,AGM-154C*2", - "name": "AIM-120B*2,AIM-9M*2,FUEL,GBU-31*4,AGM-154C*2", - "roles": [ - "CAS", - "Strike" - ] - }, - { - "items": [ - { - "name": "AIM-120B AMRAAM - Active Rdr AAM", - "quantity": 2 - }, - { - "name": "Fuel tank 610 gal", - "quantity": 3 - }, - { - "name": "AIM-9M Sidewinder IR AAM", - "quantity": 2 - }, - { - "name": "AIM-7M Sparrow Semi-Active Radar", - "quantity": 4 - } - ], - "enabled": true, - "code": "AIM-120B*2,AIM-9M*2,AIM-7M*4,FUEL*3", - "name": "AIM-120B*2,AIM-9M*2,AIM-7M*4,FUEL*3", - "roles": [ - "Escort", - "CAP", - "CAP", - "CAP" - ] - }, - { - "items": [ - { - "name": "AIM-120B AMRAAM - Active Rdr AAM", - "quantity": 2 - }, - { - "name": "Fuel tank 610 gal", - "quantity": 3 - }, - { - "name": "AIM-9M Sidewinder IR AAM", - "quantity": 2 - }, - { - "name": "Mk-84 - 2000lb GP Bomb LD", - "quantity": 8 - } - ], - "enabled": true, - "code": "AIM-120B*2,AIM-9M*2,FUEL*3,Mk-84*8", - "name": "AIM-120B*2,AIM-9M*2,FUEL*3,Mk-84*8", - "roles": [ - "Strike", - "Runway Attack" - ] - }, - { - "items": [ - { - "name": "AIM-120B AMRAAM - Active Rdr AAM", - "quantity": 2 - }, - { - "name": "AGM-154C - JSOW Unitary BROACH", - "quantity": 2 - }, - { - "name": "AIM-9M Sidewinder IR AAM", - "quantity": 2 - }, - { - "name": "Mk-82 AIR Ballute - 500lb GP Bomb HD", - "quantity": 6 - }, - { - "name": "CBU-103 - 202 x CEM, CBU with WCMD", - "quantity": 6 - }, - { - "name": "Fuel tank 610 gal", - "quantity": 1 - } - ], - "enabled": true, - "code": "AIM-120B*2,AIM-9M*2,FUEL,AGM-154C*2", - "name": "AIM-120B*2,AIM-9M*2,FUEL,AGM-154C*2", - "roles": [ - "CAS" - ] - }, - { - "items": [ - { - "name": "AIM-120B AMRAAM - Active Rdr AAM", - "quantity": 2 - }, - { - "name": "LAU-117 with AGM-65K - Maverick K (CCD Imp ASM)", - "quantity": 2 - }, - { - "name": "AIM-9M Sidewinder IR AAM", - "quantity": 2 - }, - { - "name": "GBU-38(V)1/B - JDAM, 500lb GPS Guided Bomb", - "quantity": 4 - }, - { - "name": "GBU-12 - 500lb Laser Guided Bomb", - "quantity": 4 - }, - { - "name": "Fuel tank 610 gal", - "quantity": 1 - } - ], - "enabled": true, - "code": "AIM-120B*2,AIM-9M*2,FUEL,GBU-12*4,GBU-38*4,AGM-65D*2", - "name": "AIM-120B*2,AIM-9M*2,FUEL,GBU-12*4,GBU-38*4,AGM-65D*2", - "roles": [ - "CAS" - ] - }, - { - "items": [ - { - "name": "AIM-120B AMRAAM - Active Rdr AAM", - "quantity": 2 - }, - { - "name": "LAU-117 with AGM-65K - Maverick K (CCD Imp ASM)", - "quantity": 2 - }, - { - "name": "AIM-9M Sidewinder IR AAM", - "quantity": 2 - }, - { - "name": "Fuel tank 610 gal", - "quantity": 1 - }, - { - "name": "GBU-12 - 500lb Laser Guided Bomb", - "quantity": 4 - }, - { - "name": "GBU-38(V)1/B - JDAM, 500lb GPS Guided Bomb", - "quantity": 4 - } - ], - "enabled": true, - "code": "AIM-120B*2,AIM-9M*2,FUEL,GBU-12*4,GBU-38*4,AGM-65K*2", - "name": "AIM-120B*2,AIM-9M*2,FUEL,GBU-12*4,GBU-38*4,AGM-65K*2", - "roles": [ - "CAS" - ] - }, - { - "items": [ - { - "name": "AIM-9M Sidewinder IR AAM", - "quantity": 4 - }, - { - "name": "Fuel tank 610 gal", - "quantity": 3 - }, - { - "name": "AIM-7M Sparrow Semi-Active Radar", - "quantity": 2 - }, - { - "name": "AIM-120C-5 AMRAAM - Active Rdr AAM", - "quantity": 2 - } - ], - "enabled": true, - "code": "AIM-120C*2,AIM-9M*4,AIM-7M*2,FUEL*3", - "name": "AIM-120C*2,AIM-9M*4,AIM-7M*2,FUEL*3", - "roles": [ - "Escort", - "CAP", - "CAP", - "CAP" - ] - }, - { - "items": [ - { - "name": "AIM-9M Sidewinder IR AAM", - "quantity": 4 - }, - { - "name": "Fuel tank 610 gal", - "quantity": 3 - }, - { - "name": "AIM-7M Sparrow Semi-Active Radar", - "quantity": 4 - } - ], - "enabled": true, - "code": "AIM-9M*4,AIM-7M*4,FUEL*3", - "name": "AIM-9M*4,AIM-7M*4,FUEL*3", - "roles": [ - "Escort", - "CAP", - "CAP", - "CAP" - ] - }, - { - "items": [ - { - "name": "AIM-120C-5 AMRAAM - Active Rdr AAM", - "quantity": 2 - }, - { - "name": "Fuel tank 610 gal", - "quantity": 3 - }, - { - "name": "AIM-9M Sidewinder IR AAM", - "quantity": 2 - } - ], - "enabled": true, - "code": "AIM-120C*2,AIM-9M*2,FUEL*3", - "name": "AIM-120C*2,AIM-9M*2,FUEL*3", - "roles": [ - "Reconnaissance" - ] - }, - { - "items": [ - { - "name": "AIM-120B AMRAAM - Active Rdr AAM", - "quantity": 2 - }, - { - "name": "AGM-154C - JSOW Unitary BROACH", - "quantity": 2 - }, - { - "name": "AIM-9M Sidewinder IR AAM", - "quantity": 2 - }, - { - "name": "Mk-84 - 2000lb GP Bomb LD", - "quantity": 8 - }, - { - "name": "Fuel tank 610 gal", - "quantity": 1 - } - ], - "enabled": true, - "code": "AIM-120B*2,AIM-9M*2,FUEL,Mk-84*8,AGM-154C*2", - "name": "AIM-120B*2,AIM-9M*2,FUEL,Mk-84*8,AGM-154C*2", - "roles": [ - "Runway Attack" - ] - }, - { - "items": [ - { - "name": "AIM-120B AMRAAM - Active Rdr AAM", - "quantity": 2 - }, - { - "name": "Fuel tank 610 gal", - "quantity": 3 - }, - { - "name": "AIM-9M Sidewinder IR AAM", - "quantity": 2 - }, - { - "name": "Mk-82 AIR Ballute - 500lb GP Bomb HD", - "quantity": 12 - } - ], - "enabled": true, - "code": "AIM-120B*2,AIM-9M*2,FUEL*3,Mk-82AIR*12", - "name": "AIM-120B*2,AIM-9M*2,FUEL*3,Mk-82AIR*12", - "roles": [ - "Strike", - "Runway Attack" - ] - }, - { - "items": [ - { - "name": "AIM-120B AMRAAM - Active Rdr AAM", - "quantity": 2 - }, - { - "name": "AGM-154C - JSOW Unitary BROACH", - "quantity": 2 - }, - { - "name": "AIM-9M Sidewinder IR AAM", - "quantity": 2 - }, - { - "name": "GBU-12 - 500lb Laser Guided Bomb", - "quantity": 2 - }, - { - "name": "GBU-38(V)1/B - JDAM, 500lb GPS Guided Bomb", - "quantity": 2 - }, - { - "name": "Fuel tank 610 gal", - "quantity": 1 - } - ], - "enabled": true, - "code": "AIM-120B*2,AIM-9M*2,FUEL,GBU-12*2,GBU-38*2,AGM-154C*2", - "name": "AIM-120B*2,AIM-9M*2,FUEL,GBU-12*2,GBU-38*2,AGM-154C*2", - "roles": [ - "CAS" - ] - }, - { - "items": [ - { - "name": "AIM-120B AMRAAM - Active Rdr AAM", - "quantity": 2 - }, - { - "name": "LAU-117 with AGM-65H - Maverick H (CCD Imp ASM)", - "quantity": 1 - }, - { - "name": "AIM-9M Sidewinder IR AAM", - "quantity": 2 - }, - { - "name": "LAU-117 with AGM-65D - Maverick D (IIR ASM)", - "quantity": 1 - }, - { - "name": "Fuel tank 610 gal", - "quantity": 1 - }, - { - "name": "GBU-12 - 500lb Laser Guided Bomb", - "quantity": 2 - }, - { - "name": "GBU-38(V)1/B - JDAM, 500lb GPS Guided Bomb", - "quantity": 2 - } - ], - "enabled": true, - "code": "AIM-120B*2,AIM-9M*2,FUEL,GBU-12*2,GBU-38*2,AGM-65H,AGM-65D", - "name": "AIM-120B*2,AIM-9M*2,FUEL,GBU-12*2,GBU-38*2,AGM-65H,AGM-65D", - "roles": [ - "CAS" - ] - }, - { - "items": [ - { - "name": "AIM-120B AMRAAM - Active Rdr AAM", - "quantity": 2 - }, - { - "name": "Fuel tank 610 gal", - "quantity": 3 - }, - { - "name": "AIM-9M Sidewinder IR AAM", - "quantity": 2 - }, - { - "name": "AIM-120C-5 AMRAAM - Active Rdr AAM", - "quantity": 4 - } - ], - "enabled": true, - "code": "AIM-120B*2,AIM-120C*4,AIM-9M*2,FUEL*3", - "name": "AIM-120B*2,AIM-120C*4,AIM-9M*2,FUEL*3", - "roles": [ - "Escort", - "CAP", - "CAP", - "CAP" - ] - }, - { - "items": [ - { - "name": "AIM-120B AMRAAM - Active Rdr AAM", - "quantity": 2 - }, - { - "name": "Fuel tank 610 gal", - "quantity": 3 - }, - { - "name": "AIM-9M Sidewinder IR AAM", - "quantity": 2 - }, - { - "name": "Mk-82 - 500lb GP Bomb LD", - "quantity": 6 - }, - { - "name": "Mk-82 AIR Ballute - 500lb GP Bomb HD", - "quantity": 6 - } - ], - "enabled": true, - "code": "AIM-120B*2,AIM-9M*2,FUEL*3,Mk-82*6,Mk-82AIR*6", - "name": "AIM-120B*2,AIM-9M*2,FUEL*3,Mk-82*6,Mk-82AIR*6", - "roles": [ - "Strike" - ] - }, - { - "items": [ - { - "name": "AIM-120B AMRAAM - Active Rdr AAM", - "quantity": 2 - }, - { - "name": "LAU-117 with AGM-65H - Maverick H (CCD Imp ASM)", - "quantity": 2 - }, - { - "name": "AIM-9M Sidewinder IR AAM", - "quantity": 2 - }, - { - "name": "Fuel tank 610 gal", - "quantity": 1 - }, - { - "name": "GBU-12 - 500lb Laser Guided Bomb", - "quantity": 1 - }, - { - "name": "GBU-38(V)1/B - JDAM, 500lb GPS Guided Bomb", - "quantity": 1 - }, - { - "name": "CBU-103 - 202 x CEM, CBU with WCMD", - "quantity": 2 - } - ], - "enabled": true, - "code": "AIM-120B*2,AIM-9M*2,FUEL,CBU-103*2,GBU-12,GBU-38,AGM-65H*2", - "name": "AIM-120B*2,AIM-9M*2,FUEL,CBU-103*2,GBU-12,GBU-38,AGM-65H*2", - "roles": [ - "CAS" - ] - }, - { - "items": [ - { - "name": "LAU-117 with AGM-65D - Maverick D (IIR ASM)", - "quantity": 2 - }, - { - "name": "AIM-120B AMRAAM - Active Rdr AAM", - "quantity": 2 - }, - { - "name": "AIM-9M Sidewinder IR AAM", - "quantity": 2 - }, - { - "name": "Fuel tank 610 gal", - "quantity": 1 - }, - { - "name": "CBU-103 - 202 x CEM, CBU with WCMD", - "quantity": 6 - }, - { - "name": "Mk-82 AIR Ballute - 500lb GP Bomb HD", - "quantity": 6 - } - ], - "enabled": true, - "code": "AIM-120B*2,AIM-9M*2,FUEL,AGM-65D*2", - "name": "AIM-120B*2,AIM-9M*2,FUEL,AGM-65D*2", - "roles": [ - "CAS" - ] - }, - { - "items": [ - { - "name": "AIM-120B AMRAAM - Active Rdr AAM", - "quantity": 2 - }, - { - "name": "Fuel tank 610 gal", - "quantity": 3 - }, - { - "name": "AIM-9M Sidewinder IR AAM", - "quantity": 2 - }, - { - "name": "SUU-25 x 8 LUU-2 - Target Marker Flares", - "quantity": 2 - }, - { - "name": "GBU-12 - 500lb Laser Guided Bomb", - "quantity": 1 - }, - { - "name": "GBU-38(V)1/B - JDAM, 500lb GPS Guided Bomb", - "quantity": 1 - } - ], - "enabled": true, - "code": "AIM-120B*2,AIM-9M*2,FUEL*2,SUU-25*2,GBU-12,GBU-38", - "name": "AIM-120B*2,AIM-9M*2,FUEL*2,SUU-25*2,GBU-12,GBU-38", - "roles": [ - "AFAC" - ] - }, - { - "items": [ - { - "name": "AIM-120B AMRAAM - Active Rdr AAM", - "quantity": 6 - }, - { - "name": "Fuel tank 610 gal", - "quantity": 3 - }, - { - "name": "AIM-9M Sidewinder IR AAM", - "quantity": 2 - } - ], - "enabled": true, - "code": "AIM-120B*6,AIM-9M*2,FUEL*3", - "name": "AIM-120B*6,AIM-9M*2,FUEL*3", - "roles": [ - "Escort", - "CAP", - "CAP", - "CAP" - ] - }, - { - "items": [ - { - "name": "AIM-120B AMRAAM - Active Rdr AAM", - "quantity": 2 - }, - { - "name": "AGM-154C - JSOW Unitary BROACH", - "quantity": 2 - }, - { - "name": "AIM-9M Sidewinder IR AAM", - "quantity": 2 - }, - { - "name": "Mk-82 AIR Ballute - 500lb GP Bomb HD", - "quantity": 12 - }, - { - "name": "Fuel tank 610 gal", - "quantity": 1 - } - ], - "enabled": true, - "code": "AIM-120B*2,AIM-9M*2,FUEL,Mk-82AIR*12,AGM-154C*2", - "name": "AIM-120B*2,AIM-9M*2,FUEL,Mk-82AIR*12,AGM-154C*2", - "roles": [ - "Runway Attack" - ] - }, - { - "items": [ - { - "name": "AIM-120C-5 AMRAAM - Active Rdr AAM", - "quantity": 6 - }, - { - "name": "Fuel tank 610 gal", - "quantity": 3 - }, - { - "name": "AIM-9M Sidewinder IR AAM", - "quantity": 2 - } - ], - "enabled": true, - "code": "AIM-120C*6,AIM-9M*2,FUEL*3", - "name": "AIM-120C*6,AIM-9M*2,FUEL*3", - "roles": [ - "Escort", - "CAP", - "CAP", - "CAP" - ] - }, - { - "items": [ - { - "name": "AIM-120C-5 AMRAAM - Active Rdr AAM", - "quantity": 2 - }, - { - "name": "GBU-31(V)3/B - JDAM, 2000lb GPS Guided Penetrator Bomb", - "quantity": 5 - }, - { - "name": "AIM-9M Sidewinder IR AAM", - "quantity": 2 - } - ], - "enabled": true, - "code": "GBU-31(V)3/B*5, AIM-120C*2, AIM-9M*2", - "name": "GBU-31(V)3/B*5, AIM-120C*2, AIM-9M*2", - "roles": [ - "Strike" - ] - } - ], - "filename": "f-15.png", - "enabled": true, - "liveries": { - "335th fighter sqn (sj)": { - "name": "335th Fighter SQN (SJ)", + "ferris scheme": { + "name": "Ferris Scheme", "countries": [ "USA" ] }, - "492d fighter sqn (ln)": { - "name": "492d Fighter SQN (LN)", + "58th fighter sqn (eg)": { + "name": "58th Fighter SQN (EG)", "countries": [ "USA" ] }, - "idf no 69 hammers squadron": { - "name": "IDF No 69 Hammers Squadron", + "haf aegean ghost": { + "name": "Hellenic Airforece - Aegean Ghost (Fictional)", "countries": [ - "ISR" + "GRC" ] } - } + }, + "type": "Aircraft", + "description": "2 Jet engine, swept wing, 2 crew, all weather fighter. Eagle.", + "abilities": "Boom AAR", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "F-16C_50": { "name": "F-16C_50", @@ -9653,6 +8884,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "CAP" ] }, @@ -11214,19 +10446,252 @@ "code": "AIM-120C*2, AIM-9X*2, MK-61*2, FUEL*2, ECM, TGP", "name": "AIM-120C*2, AIM-9X*2, MK-61*2, FUEL*2, ECM, TGP", "roles": [ - "AFAC" + "FAC-A" ] } ], "filename": "f-16c.png", "enabled": true, "liveries": { + "haf_347_perseus": { + "name": "HAF 347S Perseus Squadron", + "countries": [ + "GRC" + ] + }, + "ami, 5 stormo 23 gruppo": { + "name": "Italian Air Force, 5° Stormo, 23 Gruppo", + "countries": [ + "ITA" + ] + }, + "haf_337_ghost": { + "name": "HAF 337 Ghost Squadron", + "countries": [ + "GRC" + ] + }, + "haf_ 330_thunder": { + "name": "HAF 330 Thunder Squadron", + "countries": [ + "GRC" + ] + }, + "haf_336_olympus": { + "name": "HAF 336 Olympus Squadron", + "countries": [ + "GRC" + ] + }, + "iaf_117th_squadron": { + "name": "IAF 117th squadron", + "countries": [ + "ISR" + ] + }, "jasdf 8th tfs": { "name": "JASDF 8th TFS", "countries": [ "JPN" ] }, + "haf_340_fox": { + "name": "HAF 340 Fox Squadron", + "countries": [ + "GRC" + ] + }, + "haf_346_jason": { + "name": "HAF 346 Jason Squadron", + "countries": [ + "GRC" + ] + }, + "paf_no.9_griffins_1": { + "name": "PAF No.9 Griffins (TRIBUTE TO WC NAUMAN)", + "countries": [ + "PAK" + ] + }, + "522nd_fighter_squadron": { + "name": "522nd Fighter Squadron 'Fireballs'", + "countries": [ + "USA" + ] + }, + "default": { + "name": "default livery", + "countries": [ + "USA" + ] + }, + "18th agrs arctic splinter": { + "name": "18th AGRS Arсtic Splinter", + "countries": [ + "USA", + "AUSAF" + ] + }, + "iaf_115th_aggressors_squadron": { + "name": "IAF 115th aggressors squadron", + "countries": [ + "ISR" + ] + }, + "chile air force 732": { + "name": "Chile Air Force 732", + "countries": [ + "CHL" + ] + }, + "iaf_110th_squadron": { + "name": "IAF 110th squadron", + "countries": [ + "ISR" + ] + }, + "paf_no.29_aggressors": { + "name": "PAF No.29 Aggressor", + "countries": [ + "PAK" + ] + }, + "79th_fighter_squadron": { + "name": "79th Fighter Squadron 'Tigers'", + "countries": [ + "USA" + ] + }, + "paf_no.5_falcons": { + "name": "PAF No.5 Falcons", + "countries": [ + "PAK" + ] + }, + "18th agrs splinter": { + "name": "18th AGRS Blue Splinter", + "countries": [ + "USA", + "AUSAF" + ] + }, + "dark_viper": { + "name": "F-16C Dark Viper", + "countries": [ + "USA" + ] + }, + "jasdf 6th tfs": { + "name": "JASDF 6th TFS", + "countries": [ + "JPN" + ] + }, + "23rd_fighter_squadron": { + "name": "23rd Fighter Squadron 'Fighting Hawks'", + "countries": [ + "USA" + ] + }, + "polish af standard": { + "name": "Polish AF standard", + "countries": [ + "POL" + ] + }, + "480th_fighter_squadron": { + "name": "480th Fighter Squadron 'Warhawks'", + "countries": [ + "USA" + ] + }, + "18th agrs bdu splinter": { + "name": "18th AGRS BDU Splinter", + "countries": [ + "USA", + "AUSAF" + ] + }, + "174th_fighter_squadron": { + "name": "174th Fighter Squadron ANG,Iowa AFB", + "countries": [ + "USA" + ] + }, + "thk_191_filo": { + "name": "Türk Hava Kuvvetleri, 191 Filo", + "countries": [ + "TUR" + ] + }, + "chile air force 746": { + "name": "Chile Air Force 746", + "countries": [ + "CHL" + ] + }, + "haf_335_tiger": { + "name": "HAF 335 Tiger Squadron", + "countries": [ + "GRC" + ] + }, + "77th_fighter_squadron": { + "name": "77th Fighter Squadron 'Gamblers' ", + "countries": [ + "USA" + ] + }, + "132nd_wing _iowa_ang": { + "name": "132nd Wing Iowa ANG, Des Moines AFB", + "countries": [ + "USA" + ] + }, + "usaf 64th aggressor sqn-splinter": { + "name": "USAF 64th Aggressor SQN-Splinter", + "countries": [ + "USA", + "AUSAF" + ] + }, + "14th_fighter_squadron": { + "name": "14th Fighter Squadron 'Samurais'", + "countries": [ + "USA" + ] + }, + "152nd_fighter_squadron": { + "name": "152nd Fighter Squadron 'Las Vaqueros'", + "countries": [ + "USA" + ] + }, + "179th_fighter_squadron": { + "name": "179th Fighter Squadron 'Bulldogs'", + "countries": [ + "USA" + ] + }, + "paf_no.19_sherdils": { + "name": "PAF No.19 Sherdils", + "countries": [ + "PAK" + ] + }, + "64th_aggressor_squadron_ghost": { + "name": "64th Aggressor Squadron “Ghost", + "countries": [ + "USA", + "AUSAF" + ] + }, + "paf_no.9 griffins_2": { + "name": "PAF No.9 Griffins", + "countries": [ + "PAK" + ] + }, "paf_no.11_arrows": { "name": "PAF No.11 Arrows", "countries": [ @@ -11239,138 +10704,52 @@ "GRC" ] }, - "polish_af_31blt6th_tactical_sqn": { - "name": "Polish AF 31.Blt 6th Tactical Sqn (Poznań-Krzesiny AB) - Tiger Meet", - "countries": [ - "POL" - ] - }, - "22nd_fighter_squadron": { - "name": "22nd Fighter Squadron 'Stingers'", - "countries": [ - "USA" - ] - }, - "haf_346_jason": { - "name": "HAF 346 Jason Squadron", - "countries": [ - "GRC" - ] - }, - "haf_340_fox": { - "name": "HAF 340 Fox Squadron", - "countries": [ - "GRC" - ] - }, - "usaf 64th aggressor sqn-splinter": { - "name": "USAF 64th Aggressor SQN-Splinter", - "countries": [ - "USA", - "AUSAF" - ] - }, - "79th_fighter_squadron": { - "name": "79th Fighter Squadron 'Tigers'", - "countries": [ - "USA" - ] - }, - "iaf_115th_aggressors_squadron": { - "name": "IAF 115th aggressors squadron", - "countries": [ - "ISR" - ] - }, - "179th_fighter_squadron": { - "name": "179th Fighter Squadron 'Bulldogs'", - "countries": [ - "USA" - ] - }, - "jasdf 6th tfs": { - "name": "JASDF 6th TFS", - "countries": [ - "JPN" - ] - }, - "152nd_fighter_squadron": { - "name": "152nd Fighter Squadron 'Las Vaqueros'", - "countries": [ - "USA" - ] - }, "80th_fighter_squadron": { "name": "80th Fighter Squadron, Kunsan AFB", "countries": [ "USA" ] }, - "iaf_117th_squadron": { - "name": "IAF 117th squadron", - "countries": [ - "ISR" - ] - }, - "polish af standard": { - "name": "Polish AF standard", - "countries": [ - "POL" - ] - }, - "chile air force 851": { - "name": "Chile Air Force 851", - "countries": [ - "CHL" - ] - }, - "haf_347_perseus": { - "name": "HAF 347S Perseus Squadron", - "countries": [ - "GRC" - ] - }, - "iaf_101st_squadron": { - "name": "IAF 101st squadron", - "countries": [ - "ISR" - ] - }, - "174th_fighter_squadron": { - "name": "174th Fighter Squadron ANG,Iowa AFB", - "countries": [ - "USA" - ] - }, - "paf_no.19_sherdils": { - "name": "PAF No.19 Sherdils", - "countries": [ - "PAK" - ] - }, - "77th_fighter_squadron": { - "name": "77th Fighter Squadron 'Gamblers' ", - "countries": [ - "USA" - ] - }, - "522nd_fighter_squadron": { - "name": "522nd Fighter Squadron 'Fireballs'", - "countries": [ - "USA" - ] - }, "36th_fighter_squadron": { "name": "36th Fighter Squadron Osan Air Base", "countries": [ "USA" ] }, - "64th_aggressor_squadron_ghost": { - "name": "64th Aggressor Squadron “Ghost", + "22nd_fighter_squadron": { + "name": "22nd Fighter Squadron 'Stingers'", "countries": [ - "USA", - "AUSAF" + "USA" + ] + }, + "55th_fighter_squadron": { + "name": "55th Fighter Squadron 'Fifty Fifth'", + "countries": [ + "USA" + ] + }, + "iaf_101st_squadron": { + "name": "IAF 101st squadron", + "countries": [ + "ISR" + ] + }, + "polish_af_31blt6th_tactical_sqn": { + "name": "Polish AF 31.Blt 6th Tactical Sqn (Poznań-Krzesiny AB) - Tiger Meet", + "countries": [ + "POL" + ] + }, + "13th_fighter_squadron": { + "name": "13th Fighter Squadron 'Panthers'", + "countries": [ + "USA" + ] + }, + "haf_341_arrow": { + "name": "HAF 341 Arrow Squadron", + "countries": [ + "GRC" ] }, "usaf 64th aggressor sqn - shark": { @@ -11380,160 +10759,20 @@ "AUSAF" ] }, - "haf_335_tiger": { - "name": "HAF 335 Tiger Squadron", - "countries": [ - "GRC" - ] - }, - "paf_no.9 griffins_2": { - "name": "PAF No.9 Griffins", - "countries": [ - "PAK" - ] - }, - "paf_no.29_aggressors": { - "name": "PAF No.29 Aggressor", - "countries": [ - "PAK" - ] - }, - "55th_fighter_squadron": { - "name": "55th Fighter Squadron 'Fifty Fifth'", - "countries": [ - "USA" - ] - }, - "132nd_wing _iowa_ang": { - "name": "132nd Wing Iowa ANG, Des Moines AFB", - "countries": [ - "USA" - ] - }, - "480th_fighter_squadron": { - "name": "480th Fighter Squadron 'Warhawks'", - "countries": [ - "USA" - ] - }, - "dark_viper": { - "name": "F-16C Dark Viper", - "countries": [ - "USA" - ] - }, - "chile air force 732": { - "name": "Chile Air Force 732", + "chile air force 851": { + "name": "Chile Air Force 851", "countries": [ "CHL" ] - }, - "chile air force 746": { - "name": "Chile Air Force 746", - "countries": [ - "CHL" - ] - }, - "haf_337_ghost": { - "name": "HAF 337 Ghost Squadron", - "countries": [ - "GRC" - ] - }, - "haf_336_olympus": { - "name": "HAF 336 Olympus Squadron", - "countries": [ - "GRC" - ] - }, - "haf_ 330_thunder": { - "name": "HAF 330 Thunder Squadron", - "countries": [ - "GRC" - ] - }, - "18th agrs bdu splinter": { - "name": "18th AGRS BDU Splinter", - "countries": [ - "USA", - "AUSAF" - ] - }, - "haf_341_arrow": { - "name": "HAF 341 Arrow Squadron", - "countries": [ - "GRC" - ] - }, - "paf_no.5_falcons": { - "name": "PAF No.5 Falcons", - "countries": [ - "PAK" - ] - }, - "thk_191_filo": { - "name": "Türk Hava Kuvvetleri, 191 Filo", - "countries": [ - "TUR" - ] - }, - "default": { - "name": "default livery", - "countries": [ - "USA" - ] - }, - "13th_fighter_squadron": { - "name": "13th Fighter Squadron 'Panthers'", - "countries": [ - "USA" - ] - }, - "ami, 5 stormo 23 gruppo": { - "name": "Italian Air Force, 5° Stormo, 23 Gruppo", - "countries": [ - "ITA" - ] - }, - "18th agrs arctic splinter": { - "name": "18th AGRS Arсtic Splinter", - "countries": [ - "USA", - "AUSAF" - ] - }, - "23rd_fighter_squadron": { - "name": "23rd Fighter Squadron 'Fighting Hawks'", - "countries": [ - "USA" - ] - }, - "iaf_110th_squadron": { - "name": "IAF 110th squadron", - "countries": [ - "ISR" - ] - }, - "paf_no.9_griffins_1": { - "name": "PAF No.9 Griffins (TRIBUTE TO WC NAUMAN)", - "countries": [ - "PAK" - ] - }, - "14th_fighter_squadron": { - "name": "14th Fighter Squadron 'Samurais'", - "countries": [ - "USA" - ] - }, - "18th agrs splinter": { - "name": "18th AGRS Blue Splinter", - "countries": [ - "USA", - "AUSAF" - ] } - } + }, + "type": "Aircraft", + "description": "Single jet engine, swept wing, 1 crew, all weather fighter and strike. Viper.", + "abilities": "Boom AAR", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "F-4E": { "name": "F-4E", @@ -11548,6 +10787,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "CAP" ] }, @@ -11836,7 +11076,7 @@ "code": "Fuel*3", "name": "Fuel*3", "roles": [ - "AFAC" + "FAC-A" ] }, { @@ -11915,12 +11155,6 @@ "filename": "f-4.png", "enabled": true, "liveries": { - "af standard": { - "name": "af standard", - "countries": [ - "GER" - ] - }, "haf aegean ghost": { "name": "Hellenic Airforce - Aegean Ghost", "countries": [ @@ -11932,8 +11166,21 @@ "countries": [ "IRN" ] + }, + "af standard": { + "name": "af standard", + "countries": [ + "GER" + ] } - } + }, + "type": "Aircraft", + "description": "2 Jet engine, swept wing, 2 crew. Phantom", + "abilities": "Drogue AAR", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "F-5E-3": { "name": "F-5E-3", @@ -11948,6 +11195,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "CAP" ] }, @@ -12670,77 +11918,46 @@ "filename": "f-5.png", "enabled": true, "liveries": { - "no 338 sqn 215": { - "name": "RNoAF 338 sqn 215", - "countries": [ - "NOR" - ] - }, - "no 336 sq": { - "name": "336 Skvadron", - "countries": [ - "NOR" - ] - }, - "br fab 4828": { - "name": "2/1 GAvCa - FAB 4828", - "countries": [ - "BRA" - ] - }, - "us aggressor vfc-111 115": { - "name": "Sundowners VFC-115", + "us aggressor vfc-13 40": { + "name": "Aggressor VFC-13 40", "countries": [ "USA", "AUSAF" ] }, - "aggressor vfc-13 11": { - "name": "Aggressor VFC-13 11", + "ch swiss generic": { + "name": "Swiss Generic two-tone skin", + "countries": [ + "SUI" + ] + }, + "tw ngrc 5315": { + "name": "NGRC 5thFG 5315", "countries": [ "USA", "AUSAF" ] }, - "ir iriaf camo": { - "name": "IRIAF F-5E Standard", - "countries": [ - "IRN" - ] - }, - "gr haf f-5e grey": { - "name": "HAF F-5E Grey", - "countries": [ - "GRC" - ] - }, - "gb no.29 squadron raf": { - "name": "No.29 Squadron RAF (Fictional)", - "countries": [ - "UK" - ] - }, "ch j-3079": { "name": "J-3079", "countries": [ "SUI" ] }, - "tr turkish stars": { - "name": "Turkish Stars", + "sa royal saudi air force": { + "name": "Royal Saudi Air Force", "countries": [ - "TUR" + "SAU" ] }, - "aggressor snake scheme": { - "name": "Aggressor Snake Scheme", + "no 336 sq": { + "name": "336 Skvadron", "countries": [ - "USA", - "AUSAF" + "NOR" ] }, - "us aggressor vmft-401 02 2011": { - "name": "Aggressor VMFT-401 02 2011", + "tw rocaf 7thfg(m)": { + "name": "ROCAF 7thFG(LV)", "countries": [ "USA", "AUSAF" @@ -12753,285 +11970,12 @@ "AUSAF" ] }, - "us aggressor vfc-111 01": { - "name": "Sundowners VFC-111 01", - "countries": [ - "USA", - "AUSAF" - ] - }, - "ch j-3001 variante 1986": { - "name": "J-3001 GRD Emmen 1986", - "countries": [ - "SUI" - ] - }, - "usa standard": { - "name": "Standard Gray", - "countries": [ - "IND", - "ITA", - "BGR", - "HUN", - "IRQ", - "GRC", - "ROU", - "NOR", - "TUN", - "SDN", - "MEX", - "ISR", - "AUS", - "KOR", - "ABH", - "BHR", - "SYR", - "SUI", - "BEL", - "GER", - "TUR", - "DEN", - "RUS", - "PRK", - "INS", - "UK", - "HRV", - "AUT", - "FRA", - "MYS", - "CAN", - "CHN", - "BRA", - "SWE", - "IRN", - "SPN", - "UKR", - "CZE", - "EGY", - "JPN", - "THA", - "GRG", - "FIN", - "SRB", - "AUSAF", - "POL", - "JOR", - "SAU", - "PAK", - "SVK", - "USA", - "BLR", - "KAZ", - "NETH", - "RSO" - ] - }, - "ch j-3038": { - "name": "J-3038", - "countries": [ - "SUI" - ] - }, - "sa royal saudi air force": { - "name": "Royal Saudi Air Force", - "countries": [ - "SAU" - ] - }, - "ch j-3036 2017": { - "name": "J-3036 Sion 2017", - "countries": [ - "SUI" - ] - }, - "us aggressor vfc-13 28 fict splinter": { - "name": "Aggressor VFC-13 28 Fictional Splinter", - "countries": [ - "USA", - "AUSAF" - ] - }, - "no 332 sqn ah-p": { - "name": "RNoAF 332 sqn AH-P", - "countries": [ - "NOR" - ] - }, - "br fab 4846": { - "name": "FAB 4846", + "br fab 4828": { + "name": "2/1 GAvCa - FAB 4828", "countries": [ "BRA" ] }, - "ch j-3098": { - "name": "J-3098", - "countries": [ - "SUI" - ] - }, - "ch j-3036": { - "name": "J-3036 FlSt 01 1985", - "countries": [ - "SUI" - ] - }, - "ch patrouille suisse j-3088": { - "name": "Patrouille Suisse J-3088", - "countries": [ - "SUI" - ] - }, - "br fab 4834": { - "name": "1/1 GAvCa - FAB 4834", - "countries": [ - "BRA" - ] - }, - "ir iriaf azarakhsh": { - "name": "HESA Azarakhsh", - "countries": [ - "IRN" - ] - }, - "tw ngrc 5315": { - "name": "NGRC 5thFG 5315", - "countries": [ - "USA", - "AUSAF" - ] - }, - "ir iriaf 43rd tfs": { - "name": "IRIAF - 43rd TFS", - "countries": [ - "IRN" - ] - }, - "us aggressor vfc-13 40": { - "name": "Aggressor VFC-13 40", - "countries": [ - "USA", - "AUSAF" - ] - }, - "no 334 sqn ri-h": { - "name": "RNoAF 334 sqn RI-H", - "countries": [ - "NOR" - ] - }, - "us aggressor vfc-13 01": { - "name": "Aggressor VFC-13 01", - "countries": [ - "USA", - "AUSAF" - ] - }, - "ch swiss generic": { - "name": "Swiss Generic two-tone skin", - "countries": [ - "SUI" - ] - }, - "ch j-3033_2017": { - "name": "J-3033_2017", - "countries": [ - "SUI" - ] - }, - "aggressor desert scheme": { - "name": "Aggressor Desert Scheme", - "countries": [ - "USA", - "AUSAF" - ] - }, - "sp spanish air force 464-48": { - "name": "Ejercito del Aire 464-48", - "countries": [ - "SPN" - ] - }, - "fi 11th fs lapland air command": { - "name": "FiAF 11th FS Lapland Air Command", - "countries": [ - "FIN" - ] - }, - "br fab 4841": { - "name": "FAB 4841 60th an", - "countries": [ - "BRA" - ] - }, - "ch j-3025": { - "name": "J-3025 FlSt 11/18 January 2006", - "countries": [ - "SUI" - ] - }, - "us aggressor vfc-13 25": { - "name": "Aggressor VFC-13 25", - "countries": [ - "USA", - "AUSAF" - ] - }, - "3rd main jet base group command, turkey": { - "name": "133 squadron, 3rd Main Jet Base Group Command, Turkey", - "countries": [ - "TUR" - ] - }, - "ch j-3026": { - "name": "J-3026 FlSt 11 approx. 1989", - "countries": [ - "SUI" - ] - }, - "5th fs merzifon air base, turkey": { - "name": "5th fs Merzifon air base, Turkish air force", - "countries": [ - "TUR" - ] - }, - "it aereonautica militare italiana": { - "name": "Aereonautica Militare Italiana", - "countries": [ - "ITA" - ] - }, - "ch j-3001 variante 2000": { - "name": "J-3001 FlSt 08 2000", - "countries": [ - "SUI" - ] - }, - "rocaf 7th fighter group": { - "name": "ROCAF 7th Fighter Group", - "countries": [ - "AUSAF" - ] - }, - "ch j-3001 variante 1996": { - "name": "J-3001 GRD Emmen 1996", - "countries": [ - "SUI" - ] - }, - "aggressor marine scheme": { - "name": "Aggressor Marine Scheme", - "countries": [ - "USA", - "AUSAF" - ] - }, - "us usaf grape 31": { - "name": "USAF Grape 31", - "countries": [ - "USA", - "AUSAF" - ] - }, "usaf 'southeast asia'": { "name": "USAF 'Southeast Asia'", "countries": [ @@ -13039,10 +11983,17 @@ "AUSAF" ] }, - "kr rokaf 10th fighter wing": { - "name": "ROKAF 10th FW KF-5E 10-584", + "br fab 4846": { + "name": "FAB 4846", "countries": [ - "KOR" + "BRA" + ] + }, + "aggressor vfc-13 21": { + "name": "Aggressor VFC-13 21", + "countries": [ + "USA", + "AUSAF" ] }, "no 334 sqn 373": { @@ -13051,16 +12002,23 @@ "NOR" ] }, - "ch j-3074": { - "name": "J-3074", + "rocaf 7th fighter group": { + "name": "ROCAF 7th Fighter Group", + "countries": [ + "AUSAF" + ] + }, + "ch j-3036 2017": { + "name": "J-3036 Sion 2017", "countries": [ "SUI" ] }, - "ch j-3008": { - "name": "J-3008 FlSt 08/19 February 2005", + "us aggressor vfc-111 116": { + "name": "Sundowners VFC-116", "countries": [ - "SUI" + "USA", + "AUSAF" ] }, "black 'mig-28'": { @@ -13076,25 +12034,72 @@ "SUI" ] }, - "tw rocaf 7thfg(m)": { - "name": "ROCAF 7thFG(LV)", + "fi 11th fs lapland air command": { + "name": "FiAF 11th FS Lapland Air Command", + "countries": [ + "FIN" + ] + }, + "ir iriaf azarakhsh": { + "name": "HESA Azarakhsh", + "countries": [ + "IRN" + ] + }, + "ch j-3098": { + "name": "J-3098", + "countries": [ + "SUI" + ] + }, + "ir iriaf 43rd tfs": { + "name": "IRIAF - 43rd TFS", + "countries": [ + "IRN" + ] + }, + "no 338 sqn 215": { + "name": "RNoAF 338 sqn 215", + "countries": [ + "NOR" + ] + }, + "us usaf grape 31": { + "name": "USAF Grape 31", "countries": [ "USA", "AUSAF" ] }, - "aggressor vfc-13 21": { - "name": "Aggressor VFC-13 21", + "no 332 sqn ah-p": { + "name": "RNoAF 332 sqn AH-P", + "countries": [ + "NOR" + ] + }, + "ch j-3001 variante 1996": { + "name": "J-3001 GRD Emmen 1996", + "countries": [ + "SUI" + ] + }, + "us aggressor vfc-111 01": { + "name": "Sundowners VFC-111 01", "countries": [ "USA", "AUSAF" ] }, - "us aggressor vfc-111 116": { - "name": "Sundowners VFC-116", + "3rd main jet base group command, turkey": { + "name": "133 squadron, 3rd Main Jet Base Group Command, Turkey", "countries": [ - "USA", - "AUSAF" + "TUR" + ] + }, + "kr rokaf 10th fighter wing": { + "name": "ROKAF 10th FW KF-5E 10-584", + "countries": [ + "KOR" ] }, "sp spanish air force 21-51": { @@ -13102,8 +12107,258 @@ "countries": [ "SPN" ] + }, + "aggressor vfc-13 11": { + "name": "Aggressor VFC-13 11", + "countries": [ + "USA", + "AUSAF" + ] + }, + "ch j-3001 variante 1986": { + "name": "J-3001 GRD Emmen 1986", + "countries": [ + "SUI" + ] + }, + "usa standard": { + "name": "Standard Gray", + "countries": [ + "BRA", + "MYS", + "AUS", + "ABH", + "RUS", + "SPN", + "ISR", + "USA", + "BHR", + "BLR", + "HRV", + "RSO", + "SVK", + "IRN", + "UKR", + "TUR", + "JPN", + "PRK", + "SRB", + "KAZ", + "BGR", + "BEL", + "INS", + "THA", + "AUSAF", + "PAK", + "JOR", + "FIN", + "MEX", + "NOR", + "IRQ", + "SYR", + "ITA", + "GRC", + "POL", + "NETH", + "GER", + "SUI", + "CHN", + "SAU", + "SWE", + "ROU", + "FRA", + "KOR", + "HUN", + "AUT", + "GRG", + "DEN", + "TUN", + "EGY", + "IND", + "CZE", + "CAN", + "SDN", + "UK" + ] + }, + "5th fs merzifon air base, turkey": { + "name": "5th fs Merzifon air base, Turkish air force", + "countries": [ + "TUR" + ] + }, + "ch j-3001 variante 2000": { + "name": "J-3001 FlSt 08 2000", + "countries": [ + "SUI" + ] + }, + "ir iriaf camo": { + "name": "IRIAF F-5E Standard", + "countries": [ + "IRN" + ] + }, + "it aereonautica militare italiana": { + "name": "Aereonautica Militare Italiana", + "countries": [ + "ITA" + ] + }, + "ch j-3038": { + "name": "J-3038", + "countries": [ + "SUI" + ] + }, + "ch j-3033_2017": { + "name": "J-3033_2017", + "countries": [ + "SUI" + ] + }, + "us aggressor vfc-13 28 fict splinter": { + "name": "Aggressor VFC-13 28 Fictional Splinter", + "countries": [ + "USA", + "AUSAF" + ] + }, + "ch j-3025": { + "name": "J-3025 FlSt 11/18 January 2006", + "countries": [ + "SUI" + ] + }, + "us aggressor vfc-13 01": { + "name": "Aggressor VFC-13 01", + "countries": [ + "USA", + "AUSAF" + ] + }, + "ch patrouille suisse j-3088": { + "name": "Patrouille Suisse J-3088", + "countries": [ + "SUI" + ] + }, + "us aggressor vfc-13 25": { + "name": "Aggressor VFC-13 25", + "countries": [ + "USA", + "AUSAF" + ] + }, + "no 334 sqn ri-h": { + "name": "RNoAF 334 sqn RI-H", + "countries": [ + "NOR" + ] + }, + "br fab 4841": { + "name": "FAB 4841 60th an", + "countries": [ + "BRA" + ] + }, + "aggressor marine scheme": { + "name": "Aggressor Marine Scheme", + "countries": [ + "USA", + "AUSAF" + ] + }, + "sp spanish air force 464-48": { + "name": "Ejercito del Aire 464-48", + "countries": [ + "SPN" + ] + }, + "gr haf f-5e grey": { + "name": "HAF F-5E Grey", + "countries": [ + "GRC" + ] + }, + "tr turkish stars": { + "name": "Turkish Stars", + "countries": [ + "TUR" + ] + }, + "gb no.29 squadron raf": { + "name": "No.29 Squadron RAF (Fictional)", + "countries": [ + "UK" + ] + }, + "br fab 4834": { + "name": "1/1 GAvCa - FAB 4834", + "countries": [ + "BRA" + ] + }, + "ch j-3026": { + "name": "J-3026 FlSt 11 approx. 1989", + "countries": [ + "SUI" + ] + }, + "aggressor snake scheme": { + "name": "Aggressor Snake Scheme", + "countries": [ + "USA", + "AUSAF" + ] + }, + "us aggressor vfc-111 115": { + "name": "Sundowners VFC-115", + "countries": [ + "USA", + "AUSAF" + ] + }, + "us aggressor vmft-401 02 2011": { + "name": "Aggressor VMFT-401 02 2011", + "countries": [ + "USA", + "AUSAF" + ] + }, + "ch j-3008": { + "name": "J-3008 FlSt 08/19 February 2005", + "countries": [ + "SUI" + ] + }, + "aggressor desert scheme": { + "name": "Aggressor Desert Scheme", + "countries": [ + "USA", + "AUSAF" + ] + }, + "ch j-3074": { + "name": "J-3074", + "countries": [ + "SUI" + ] + }, + "ch j-3036": { + "name": "J-3036 FlSt 01 1985", + "countries": [ + "SUI" + ] } - } + }, + "type": "Aircraft", + "description": "2 Jet engine, swept wing, single crew. Tiger", + "abilities": "", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "F-86F Sabre": { "name": "F-86F Sabre", @@ -13118,6 +12373,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "CAP" ] }, @@ -13295,14 +12551,8 @@ "filename": "f-5.png", "enabled": true, "liveries": { - "haf 342sqn": { - "name": "Hellenic Airforce 342sqn", - "countries": [ - "GRC" - ] - }, - "us air force (green)": { - "name": "US Air Force (Green)", + "us air force (skyblazers)": { + "name": "US Air Force Jet Team Skyblazer", "countries": [ "USA" ] @@ -13313,142 +12563,155 @@ "CAN" ] }, - "us air force (code fu-178)": { - "name": "US Air Force FU-178", - "countries": [ - "USA" - ] - }, - "default livery": { - "name": "default livery", - "countries": [ - "IND", - "ITA", - "BGR", - "HUN", - "IDN", - "IRQ", - "GRC", - "LBY", - "QAT", - "ROU", - "NOR", - "CUB", - "TUN", - "SDN", - "MEX", - "HND", - "ISR", - "CHL", - "AUS", - "KOR", - "ABH", - "VEN", - "BHR", - "SYR", - "RSI", - "SUI", - "BEL", - "GER", - "TUR", - "DEN", - "RUS", - "PRK", - "SUN", - "INS", - "UK", - "HRV", - "AUT", - "FRA", - "YUG", - "MYS", - "RSA", - "CAN", - "KWT", - "CHN", - "BRA", - "SWE", - "PHL", - "IRN", - "MAR", - "SPN", - "UKR", - "CZE", - "EGY", - "VNM", - "JPN", - "THA", - "GRG", - "FIN", - "SRB", - "ETH", - "AUSAF", - "POL", - "YEM", - "SAU", - "PAK", - "SVK", - "USA", - "JOR", - "NZG", - "BLR", - "KAZ", - "NETH", - "DZA", - "RSO", - "OMN", - "ARE" - ] - }, - "japan air force": { - "name": "Japan Air Force", - "countries": [ - "JPN" - ] - }, - "us air force (skyblazers)": { - "name": "US Air Force Jet Team Skyblazer", - "countries": [ - "USA" - ] - }, "us air force (squadron 39)": { "name": "US Air Force (Squadron 39)", "countries": [ "USA" ] }, - "haf 341sqn": { - "name": "Hellenic Airforce 341sqn", - "countries": [ - "GRC" - ] - }, - "us air force": { - "name": "US Air Force", - "countries": [ - "USA" - ] - }, "iiaf bare metall": { "name": "IIAF Bare Metal Weathered", "countries": [ "IRN" ] }, + "us air force (green)": { + "name": "US Air Force (Green)", + "countries": [ + "USA" + ] + }, "us air force (ex-usaf f-86a sabre)": { "name": "US Air Force ex-USAF F-86A Sabre", "countries": [ "USA" ] }, + "default livery": { + "name": "default livery", + "countries": [ + "BRA", + "CUB", + "MYS", + "ARE", + "AUS", + "ABH", + "RUS", + "PHL", + "SPN", + "ISR", + "SUN", + "USA", + "BHR", + "MAR", + "BLR", + "HRV", + "DZA", + "OMN", + "RSO", + "SVK", + "HND", + "IRN", + "UKR", + "TUR", + "JPN", + "PRK", + "SRB", + "IDN", + "KAZ", + "BGR", + "BEL", + "INS", + "THA", + "LBY", + "AUSAF", + "VEN", + "PAK", + "JOR", + "RSA", + "FIN", + "MEX", + "KWT", + "NOR", + "IRQ", + "SYR", + "ITA", + "NZG", + "GRC", + "POL", + "NETH", + "GER", + "SUI", + "CHN", + "SAU", + "SWE", + "YEM", + "VNM", + "ROU", + "RSI", + "FRA", + "CHL", + "KOR", + "HUN", + "AUT", + "GRG", + "DEN", + "TUN", + "EGY", + "IND", + "CZE", + "ETH", + "CAN", + "SDN", + "QAT", + "UK", + "YUG" + ] + }, "royal saudi air force": { "name": "RSAF", "countries": [ "SAU" ] + }, + "us air force": { + "name": "US Air Force", + "countries": [ + "USA" + ] + }, + "haf 342sqn": { + "name": "Hellenic Airforce 342sqn", + "countries": [ + "GRC" + ] + }, + "japan air force": { + "name": "Japan Air Force", + "countries": [ + "JPN" + ] + }, + "haf 341sqn": { + "name": "Hellenic Airforce 341sqn", + "countries": [ + "GRC" + ] + }, + "us air force (code fu-178)": { + "name": "US Air Force FU-178", + "countries": [ + "USA" + ] } - } + }, + "type": "Aircraft", + "description": "Single engine, swept wing, 1 crew. Sabre", + "abilities": "", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "FA-18C_hornet": { "name": "FA-18C_hornet", @@ -13463,6 +12726,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "CAP" ] }, @@ -14055,7 +13319,7 @@ "code": "AIM-9M*2, ATFLIR, FUEL", "name": "AIM-9M*2, ATFLIR, FUEL", "roles": [ - "AFAC" + "FAC-A" ] }, { @@ -14084,195 +13348,12 @@ "filename": "fa-18c.png", "enabled": true, "liveries": { - "kuwait 9th squadron": { - "name": "9th Squadron", - "countries": [ - "KWT" - ] - }, - "vfa-106 high visibility": { - "name": "VFA-106 high visibility", + "vfa-192": { + "name": "VFA-192", "countries": [ "USA" ] }, - "spain 151th escuadron c.15-14": { - "name": "Spain 151_14 Escuadron C.15-14", - "countries": [ - "SPN" - ] - }, - "vmfa-323 high visibility": { - "name": "VMFA-323_high visibility", - "countries": [ - "USA" - ] - }, - "fictional turkey 162nd sq": { - "name": "162nd Sqn Harpoon", - "countries": [ - "TUR" - ] - }, - "fictional russia air force": { - "name": "Fictional Russia Air Force", - "countries": [ - "RUS", - "AUSAF" - ] - }, - "finland 31": { - "name": "Finland", - "countries": [ - "FIN" - ] - }, - "blue angels jet team": { - "name": "Blue Angels Jet Team", - "countries": [ - "USA" - ] - }, - "maverick": { - "name": "Maverick", - "countries": [ - "USA" - ] - }, - "spain 111th escuadron c.15-88": { - "name": "Spain 111 Escuadron C.15-88", - "countries": [ - "SPN" - ] - }, - "spain 111th escuadron c.15-73": { - "name": "Spain 111 Escuadron C.15-73", - "countries": [ - "SPN" - ] - }, - "spain 151th escuadron c.15-14 tiger meet": { - "name": "Spain 151th Escuadron C.15-14 Tiger Meet", - "countries": [ - "SPN" - ] - }, - "vmfa-232": { - "name": "VMFA-232", - "countries": [ - "USA" - ] - }, - "canada 150 demo jet": { - "name": "Canada 150 Demo Jet", - "countries": [ - "CAN" - ] - }, - "vmfa-323": { - "name": "VMFA-323", - "countries": [ - "USA" - ] - }, - "fictional ukraine air force": { - "name": "Fictional Ukraine Air Force", - "countries": [ - "UKR" - ] - }, - "switzerland": { - "name": "Switzerland", - "countries": [ - "SUI" - ] - }, - "vmfa-531": { - "name": "VMFA-531", - "countries": [ - "USA" - ] - }, - "spain 462th escuadron c.15-90": { - "name": "Spain 462th Escuadron C.15-90", - "countries": [ - "SPN" - ] - }, - "vx-31 cona": { - "name": "VX-31 CoNA", - "countries": [ - "USA" - ] - }, - "spain 121th escuadron c.15-50": { - "name": "Spain 121 Escuadron C.15-50", - "countries": [ - "SPN" - ] - }, - "spain 151th escuadron c.15-24": { - "name": "Spain 151_24 Escuadron C.15-24", - "countries": [ - "SPN" - ] - }, - "vfa-97": { - "name": "VFA-97", - "countries": [ - "USA" - ] - }, - "iceman": { - "name": "Iceman", - "countries": [ - "USA", - "AUSAF" - ] - }, - "nsawc blue": { - "name": "NSAWC blue", - "countries": [ - "USA", - "AUSAF" - ] - }, - "australian 75th squadron": { - "name": "Australian sqn 75", - "countries": [ - "AUS" - ] - }, - "spain 211th escuadron c.15-76": { - "name": "Spain 211th Escuadron C.15-76", - "countries": [ - "SPN" - ] - }, - "vfa-113": { - "name": "VFA-113", - "countries": [ - "USA" - ] - }, - "vfa-34": { - "name": "VFA-34", - "countries": [ - "USA" - ] - }, - "spain 462th escuadron c.15-79": { - "name": "Spain 462th Escuadron C.15-79", - "countries": [ - "SPN" - ] - }, - "canada 409th squadron": { - "name": "Canada 409th Squadron", - "countries": [ - "CAN" - ] - }, "nsawc brown splinter": { "name": "NSAWC brown splinter", "countries": [ @@ -14280,161 +13361,14 @@ "AUSAF" ] }, - "spain 151th escuadron c.15-23": { - "name": "Spain 151_23 Escuadron C.15-23", - "countries": [ - "SPN" - ] - }, - "vmfa-312": { - "name": "VMFA-312", + "vfa-34": { + "name": "VFA-34", "countries": [ "USA" ] }, - "vmfa-314": { - "name": "VMFA-314", - "countries": [ - "USA" - ] - }, - "vmfa-312 high visibility": { - "name": "VMFA-312 high visibility", - "countries": [ - "USA" - ] - }, - "finland 21": { - "name": "Finland", - "countries": [ - "FIN" - ] - }, - "default livery": { - "name": "default livery", - "countries": [ - "IND", - "ITA", - "BGR", - "HUN", - "IDN", - "IRQ", - "GRC", - "LBY", - "QAT", - "ROU", - "NOR", - "CUB", - "TUN", - "SDN", - "MEX", - "HND", - "ISR", - "CHL", - "AUS", - "KOR", - "ABH", - "VEN", - "BHR", - "SYR", - "RSI", - "SUI", - "BEL", - "GER", - "TUR", - "DEN", - "RUS", - "PRK", - "SUN", - "INS", - "UK", - "HRV", - "AUT", - "FRA", - "YUG", - "MYS", - "RSA", - "CAN", - "KWT", - "CHN", - "BRA", - "SWE", - "PHL", - "IRN", - "MAR", - "SPN", - "UKR", - "CZE", - "EGY", - "VNM", - "JPN", - "THA", - "GRG", - "FIN", - "SRB", - "ETH", - "AUSAF", - "POL", - "YEM", - "SAU", - "PAK", - "SVK", - "USA", - "JOR", - "NZG", - "BLR", - "KAZ", - "NETH", - "DZA", - "RSO", - "OMN", - "ARE" - ] - }, - "nsawc gray": { - "name": "NSAWC gray", - "countries": [ - "USA" - ] - }, - "vfa-106": { - "name": "VFA-106", - "countries": [ - "USA" - ] - }, - "vfa-83": { - "name": "VFA-83", - "countries": [ - "USA" - ] - }, - "canada 425th squadron": { - "name": "Canada 425th Squadron", - "countries": [ - "CAN" - ] - }, - "vmfa-122 high visibility": { - "name": "VMFA-122 high visibility", - "countries": [ - "USA" - ] - }, - "vfa-37": { - "name": "VFA-37", - "countries": [ - "USA" - ] - }, - "spain 151th escuadron c.15-18": { - "name": "Spain 151_18 Escuadron C.15-18", - "countries": [ - "SPN" - ] - }, - "vfa-122": { - "name": "VFA-122", + "vmfa-232": { + "name": "VMFA-232", "countries": [ "USA" ] @@ -14445,8 +13379,178 @@ "USA" ] }, - "vmfa-251": { - "name": "VMFA-251", + "vmfa-232 high visibility": { + "name": "VMFA-232 high visibility", + "countries": [ + "USA" + ] + }, + "vmfat-101 high visibility": { + "name": "VMFAT-101 high visibility", + "countries": [ + "USA" + ] + }, + "vfa-37": { + "name": "VFA-37", + "countries": [ + "USA" + ] + }, + "fictional russia air force": { + "name": "Fictional Russia Air Force", + "countries": [ + "AUSAF", + "RUS" + ] + }, + "canada 150 demo jet": { + "name": "Canada 150 Demo Jet", + "countries": [ + "CAN" + ] + }, + "fictional uk air force": { + "name": "Fictional UK Air Force", + "countries": [ + "UK" + ] + }, + "vfa-131": { + "name": "VFA-131", + "countries": [ + "USA" + ] + }, + "vmfa-122 high visibility": { + "name": "VMFA-122 high visibility", + "countries": [ + "USA" + ] + }, + "spain 462th escuadron c.15-79": { + "name": "Spain 462th Escuadron C.15-79", + "countries": [ + "SPN" + ] + }, + "vmfat-101 high visibility 2005": { + "name": "VMFAT-101 high visibility 2005", + "countries": [ + "USA" + ] + }, + "vmfa-323": { + "name": "VMFA-323", + "countries": [ + "USA" + ] + }, + "vx-31 cona": { + "name": "VX-31 CoNA", + "countries": [ + "USA" + ] + }, + "fictional turkey 162nd sq": { + "name": "162nd Sqn Harpoon", + "countries": [ + "TUR" + ] + }, + "nawdc brown": { + "name": "NAWDC brown", + "countries": [ + "USA", + "AUSAF" + ] + }, + "spain 151th escuadron c.15-14": { + "name": "Spain 151_14 Escuadron C.15-14", + "countries": [ + "SPN" + ] + }, + "spain 151th escuadron c.15-24": { + "name": "Spain 151_24 Escuadron C.15-24", + "countries": [ + "SPN" + ] + }, + "vfa-106": { + "name": "VFA-106", + "countries": [ + "USA" + ] + }, + "spain 121th escuadron c.15-45": { + "name": "Spain 121 Escuadron C.15-45", + "countries": [ + "SPN" + ] + }, + "vfa-97": { + "name": "VFA-97", + "countries": [ + "USA" + ] + }, + "vx-9": { + "name": "VX-9", + "countries": [ + "USA" + ] + }, + "spain 111th escuadron c.15-73": { + "name": "Spain 111 Escuadron C.15-73", + "countries": [ + "SPN" + ] + }, + "switzerland": { + "name": "Switzerland", + "countries": [ + "SUI" + ] + }, + "vx-23": { + "name": "VX-23", + "countries": [ + "USA" + ] + }, + "vfa-83": { + "name": "VFA-83", + "countries": [ + "USA" + ] + }, + "australian 75th squadron": { + "name": "Australian sqn 75", + "countries": [ + "AUS" + ] + }, + "canada 425th squadron": { + "name": "Canada 425th Squadron", + "countries": [ + "CAN" + ] + }, + "spain 151th escuadron c.15-18": { + "name": "Spain 151_18 Escuadron C.15-18", + "countries": [ + "SPN" + ] + }, + "nsawc gray": { + "name": "NSAWC gray", + "countries": [ + "USA" + ] + }, + "vfa-87": { + "name": "VFA-87", "countries": [ "USA" ] @@ -14458,37 +13562,80 @@ "AUSAF" ] }, - "vfa-87": { - "name": "VFA-87", - "countries": [ - "USA" - ] - }, "australian 77th squadron": { "name": "Australian sqn 77", "countries": [ "AUS" ] }, - "canada norad 60 demo jet": { - "name": "Canada NORAD 60 Demo Jet", + "vmfa-251 high visibility": { + "name": "VMFA-251 high visibility", "countries": [ - "CAN" + "USA" ] }, - "vfc-12": { - "name": "VFC-12", + "vmfa-531": { + "name": "VMFA-531", + "countries": [ + "USA" + ] + }, + "viper": { + "name": "Viper", + "countries": [ + "USA" + ] + }, + "iceman": { + "name": "Iceman", "countries": [ "USA", "AUSAF" ] }, + "spain 121th escuadron c.15-60": { + "name": "Spain 121 Escuadron C.15-60", + "countries": [ + "SPN" + ] + }, + "nsawc blue": { + "name": "NSAWC blue", + "countries": [ + "USA", + "AUSAF" + ] + }, + "blue angels jet team": { + "name": "Blue Angels Jet Team", + "countries": [ + "USA" + ] + }, "fictional israel air force": { "name": "Fictional Israel Air Force", "countries": [ "ISR" ] }, + "spain 462th escuadron c.15-90": { + "name": "Spain 462th Escuadron C.15-90", + "countries": [ + "SPN" + ] + }, + "vmfa-323 high visibility": { + "name": "VMFA-323_high visibility", + "countries": [ + "USA" + ] + }, + "maverick": { + "name": "Maverick", + "countries": [ + "USA" + ] + }, "nawdc black": { "name": "NAWDC black", "countries": [ @@ -14496,74 +13643,204 @@ "AUSAF" ] }, - "viper": { - "name": "Viper", + "kuwait 9th squadron": { + "name": "9th Squadron", + "countries": [ + "KWT" + ] + }, + "vmfa-251": { + "name": "VMFA-251", "countries": [ "USA" ] }, - "fictional uk air force": { - "name": "Fictional UK Air Force", - "countries": [ - "UK" - ] - }, - "vfa-192": { - "name": "VFA-192", + "vmfa-314": { + "name": "VMFA-314", "countries": [ "USA" ] }, - "vmfa-232 high visibility": { - "name": "VMFA-232 high visibility", + "fictional ukraine air force": { + "name": "Fictional Ukraine Air Force", + "countries": [ + "UKR" + ] + }, + "canada 409th squadron": { + "name": "Canada 409th Squadron", + "countries": [ + "CAN" + ] + }, + "canada norad 60 demo jet": { + "name": "Canada NORAD 60 Demo Jet", + "countries": [ + "CAN" + ] + }, + "spain 111th escuadron c.15-88": { + "name": "Spain 111 Escuadron C.15-88", + "countries": [ + "SPN" + ] + }, + "spain 211th escuadron c.15-76": { + "name": "Spain 211th Escuadron C.15-76", + "countries": [ + "SPN" + ] + }, + "finland 31": { + "name": "Finland", + "countries": [ + "FIN" + ] + }, + "spain 151th escuadron c.15-23": { + "name": "Spain 151_23 Escuadron C.15-23", + "countries": [ + "SPN" + ] + }, + "vfa-122": { + "name": "VFA-122", "countries": [ "USA" ] }, + "spain 151th escuadron c.15-14 tiger meet": { + "name": "Spain 151th Escuadron C.15-14 Tiger Meet", + "countries": [ + "SPN" + ] + }, + "vfc-12": { + "name": "VFC-12", + "countries": [ + "USA", + "AUSAF" + ] + }, "spain 211th escuadron c.15-77": { "name": "Spain 211th Escuadron C.15-77", "countries": [ "SPN" ] }, + "spain 121th escuadron c.15-34 50th anniversary": { + "name": "Spain 121th Escuadron C.15-34 34th Anniversary", + "countries": [ + "SPN" + ] + }, + "default livery": { + "name": "default livery", + "countries": [ + "BRA", + "CUB", + "MYS", + "ARE", + "AUS", + "ABH", + "RUS", + "PHL", + "SPN", + "ISR", + "SUN", + "USA", + "BHR", + "MAR", + "BLR", + "HRV", + "DZA", + "OMN", + "RSO", + "SVK", + "HND", + "IRN", + "UKR", + "TUR", + "JPN", + "PRK", + "SRB", + "IDN", + "KAZ", + "BGR", + "BEL", + "INS", + "THA", + "LBY", + "AUSAF", + "VEN", + "PAK", + "JOR", + "RSA", + "FIN", + "MEX", + "KWT", + "NOR", + "IRQ", + "SYR", + "ITA", + "NZG", + "GRC", + "POL", + "NETH", + "GER", + "SUI", + "CHN", + "SAU", + "SWE", + "YEM", + "VNM", + "ROU", + "RSI", + "FRA", + "CHL", + "KOR", + "HUN", + "AUT", + "GRG", + "DEN", + "TUN", + "EGY", + "IND", + "CZE", + "ETH", + "CAN", + "SDN", + "QAT", + "UK", + "YUG" + ] + }, + "spain 121th escuadron c.15-50": { + "name": "Spain 121 Escuadron C.15-50", + "countries": [ + "SPN" + ] + }, + "vfa-113": { + "name": "VFA-113", + "countries": [ + "USA" + ] + }, + "vmfa-312": { + "name": "VMFA-312", + "countries": [ + "USA" + ] + }, "kuwait 25th squadron": { "name": "9th Squadron", "countries": [ "KWT" ] }, - "spain 121th escuadron c.15-45": { - "name": "Spain 121 Escuadron C.15-45", - "countries": [ - "SPN" - ] - }, - "spain 121th escuadron c.15-60": { - "name": "Spain 121 Escuadron C.15-60", - "countries": [ - "SPN" - ] - }, - "vmfa-251 high visibility": { - "name": "VMFA-251 high visibility", - "countries": [ - "USA" - ] - }, - "vfa-131": { - "name": "VFA-131", - "countries": [ - "USA" - ] - }, - "vmfat-101 high visibility 2005": { - "name": "VMFAT-101 high visibility 2005", - "countries": [ - "USA" - ] - }, - "vx-23": { - "name": "VX-23", + "vmfa-312 high visibility": { + "name": "VMFA-312 high visibility", "countries": [ "USA" ] @@ -14574,36 +13851,30 @@ "USA" ] }, - "spain 121th escuadron c.15-34 50th anniversary": { - "name": "Spain 121th Escuadron C.15-34 34th Anniversary", - "countries": [ - "SPN" - ] - }, - "nawdc brown": { - "name": "NAWDC brown", - "countries": [ - "USA", - "AUSAF" - ] - }, - "vmfat-101 high visibility": { - "name": "VMFAT-101 high visibility", + "vfa-106 high visibility": { + "name": "VFA-106 high visibility", "countries": [ "USA" ] }, - "vx-9": { - "name": "VX-9", + "finland 21": { + "name": "Finland", "countries": [ - "USA" + "FIN" ] } - } + }, + "type": "Aircraft", + "description": "2 Jet engine, swept wing, 1 crew, fighter and strike. Hornet", + "abilities": "Drogue AAR", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "FW-190A8": { "name": "FW-190A8", - "coalition": "", + "coalition": "red", "label": "FW-190A8 Bosch", "era": "WW2", "shortLabel": "190A8", @@ -14614,6 +13885,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "CAP" ] }, @@ -14799,14 +14071,99 @@ "filename": "fw190.png", "enabled": true, "liveries": { + "fw190_fuselage_d_jg301": { + "name": "JG 301", + "countries": [ + "GER", + "NZG" + ] + }, + "captured_ra": { + "name": "Captured_RA", + "countries": [ + "SUN" + ] + }, + "fictional ijn carrier akagi ai-103": { + "name": "Fictional IJN Carrier Akagi AI-103", + "countries": [ + "JPN" + ] + }, + "fictional ijn otu tsukuba tsu-102": { + "name": "Fictional IJN OTU Tsukuba Tsu-102", + "countries": [ + "JPN" + ] + }, + "fw-190a8 yellow 4": { + "name": "FW190A8 Yellow 4", + "countries": [ + "GER", + "NZG" + ] + }, "fw-190a8 rhaf": { "name": "Fw 190 A8 RHAF", "countries": [ "HUN" ] }, - "fw-190a8 yellow 4": { - "name": "FW190A8 Yellow 4", + "jg3 white nose wulf": { + "name": "Fw190A8 'White nose Wulf'", + "countries": [ + "GER", + "NZG" + ] + }, + "fw-190a8_2.jg 54": { + "name": "2.JG 54", + "countries": [ + "GER", + "NZG" + ] + }, + "fictional ijn carrier soryu bi-112": { + "name": "Fictional IJN Carrier Soryu BI-112", + "countries": [ + "JPN" + ] + }, + "black 13 schwarze katze from jg1": { + "name": "Fw190_JG1_Gen._'Schwarze Katze'_Win.", + "countries": [ + "GER", + "NZG" + ] + }, + "turkish air force, 5th fr (1942)": { + "name": "Turkish Air Force, 5th FR (1942)", + "countries": [ + "AUSAF", + "TUR" + ] + }, + "fw-190a8 jg26 priller": { + "name": "Fw 190 A8 JG26 Priller", + "countries": [ + "GER", + "HUN", + "NZG" + ] + }, + "inspired by jg2 skin of early fw 190a": { + "name": "Fw190A8 JG2 Generic", + "countries": [ + "GER", + "NZG" + ] + }, + "fw-190a8": { + "name": "FW190A8", + "countries": "All" + }, + "fw190_alfred_bindseil": { + "name": "6.JG 1_Alfred Bindseil", "countries": [ "GER", "NZG" @@ -14818,28 +14175,10 @@ "JPN" ] }, - "fw-190a8": { - "name": "FW190A8", - "countries": "All" - }, - "factory skin": { - "name": "FW190A8 Luftwaffe", + "fictional ijn carrier akagi ai-151": { + "name": "Fictional IJN Carrier Akagi AI-151", "countries": [ - "GER", - "NZG" - ] - }, - "roaf-grupul7": { - "name": "RoAF-Grupul7", - "countries": [ - "ROU" - ] - }, - "inspired by jg2 skin of early fw 190a": { - "name": "Fw190A8 JG2 Generic", - "countries": [ - "GER", - "NZG" + "JPN" ] }, "fw-190a8_raf": { @@ -14848,30 +14187,8 @@ "UK" ] }, - "fw-190a8 jg26 priller": { - "name": "Fw 190 A8 JG26 Priller", - "countries": [ - "GER", - "HUN", - "NZG" - ] - }, - "fw190_alfred_bindseil": { - "name": "6.JG 1_Alfred Bindseil", - "countries": [ - "GER", - "NZG" - ] - }, - "fw190_fuselage_d_jg301": { - "name": "JG 301", - "countries": [ - "GER", - "NZG" - ] - }, - "black 13 schwarze katze from jg1": { - "name": "Fw190_JG1_Gen._'Schwarze Katze'_Win.", + "factory skin": { + "name": "FW190A8 Luftwaffe", "countries": [ "GER", "NZG" @@ -14884,45 +14201,14 @@ "NZG" ] }, - "fictional ijn carrier soryu bi-112": { - "name": "Fictional IJN Carrier Soryu BI-112", - "countries": [ - "JPN" - ] - }, - "captured_ra": { - "name": "Captured_RA", - "countries": [ - "SUN" - ] - }, - "fw190_ewald_preisz": { - "name": "6.JG 300_Ewald Preisz", - "countries": [ - "GER", - "NZG" - ] - }, - "fictional ijn carrier akagi ai-151": { - "name": "Fictional IJN Carrier Akagi AI-151", - "countries": [ - "JPN" - ] - }, - "fictional ijn otu tsukuba tsu-102": { - "name": "Fictional IJN OTU Tsukuba Tsu-102", - "countries": [ - "JPN" - ] - }, "fw 190 a-8 czech avia s.90": { "name": "Fw 190 A-8 Czech Avia S.90", "countries": [ "CZE" ] }, - "jg3 white nose wulf": { - "name": "Fw190A8 'White nose Wulf'", + "fw190_ewald_preisz": { + "name": "6.JG 300_Ewald Preisz", "countries": [ "GER", "NZG" @@ -14936,31 +14222,24 @@ "NZG" ] }, - "fw-190a8_2.jg 54": { - "name": "2.JG 54", + "roaf-grupul7": { + "name": "RoAF-Grupul7", "countries": [ - "GER", - "NZG" - ] - }, - "turkish air force, 5th fr (1942)": { - "name": "Turkish Air Force, 5th FR (1942)", - "countries": [ - "TUR", - "AUSAF" - ] - }, - "fictional ijn carrier akagi ai-103": { - "name": "Fictional IJN Carrier Akagi AI-103", - "countries": [ - "JPN" + "ROU" ] } - } + }, + "type": "Aircraft", + "description": "Single propellor, straight wing, 1 crew. Shrike", + "abilities": "", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "FW-190D9": { "name": "FW-190D9", - "coalition": "", + "coalition": "red", "label": "FW-190D9 Jerry", "era": "WW2", "shortLabel": "190D9", @@ -14971,6 +14250,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "CAP" ] }, @@ -15003,7 +14283,7 @@ "name": "Fuel Tank", "roles": [ "CAP", - "AFAC", + "FAC-A", "Escort" ] }, @@ -15045,34 +14325,8 @@ "filename": "fw190.png", "enabled": true, "liveries": { - "fw-190d9_jg54": { - "name": "FW-190D9_JG54.1945", - "countries": [ - "GER", - "NZG" - ] - }, - "fw-190d9_red": { - "name": "FW_190D9_Red.1945", - "countries": [ - "GER", - "NZG" - ] - }, - "fw-190d9_gb": { - "name": "FW-190_GB_Standart.1943", - "countries": [ - "UK" - ] - }, - "fw-190d9_usa": { - "name": "FW-190_USA_Standard.1943", - "countries": [ - "USA" - ] - }, - "fw-190d9_black 4 of stab iijg 6": { - "name": "FW-190D9_Black <4 of Stab II/JG 6", + "fw-190d9_5jg301": { + "name": "FW-190_5JG301.1945", "countries": [ "GER", "NZG" @@ -15085,8 +14339,8 @@ "NZG" ] }, - "fw-190d9_5jg301": { - "name": "FW-190_5JG301.1945", + "fw-190d9_red": { + "name": "FW_190D9_Red.1945", "countries": [ "GER", "NZG" @@ -15099,14 +14353,47 @@ "NZG" ] }, + "fw-190d9_jg54": { + "name": "FW-190D9_JG54.1945", + "countries": [ + "GER", + "NZG" + ] + }, + "fw-190d9_black 4 of stab iijg 6": { + "name": "FW-190D9_Black <4 of Stab II/JG 6", + "countries": [ + "GER", + "NZG" + ] + }, + "fw-190d9_usa": { + "name": "FW-190_USA_Standard.1943", + "countries": [ + "USA" + ] + }, + "fw-190d9_gb": { + "name": "FW-190_GB_Standart.1943", + "countries": [ + "UK" + ] + }, "fw-190d9_ussr": { "name": "FW-190 WNr 210251 USSR (Captured. 1943)", "countries": [ - "RUS", - "SUN" + "SUN", + "RUS" ] } - } + }, + "type": "Aircraft", + "description": "Single propellor, straight wing, 1 crew. Shrike", + "abilities": "", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "H-6J": { "name": "H-6J", @@ -15121,6 +14408,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "Antiship Strike" ] }, @@ -15308,11 +14596,18 @@ "CHN" ] } - } + }, + "type": "Aircraft", + "description": "2 jet engine, swept wing, 4 crew bomber. Badger", + "abilities": "", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "I-16": { "name": "I-16", - "coalition": "", + "coalition": "red", "label": "I-16", "era": "WW2", "shortLabel": "I16", @@ -15323,6 +14618,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "CAP" ] }, @@ -15414,32 +14710,25 @@ "filename": "i-16.png", "enabled": true, "liveries": { + "silver-black demo": { + "name": "Silver-black paint scheme", + "countries": [ + "SUN", + "RUS" + ] + }, "red army camo": { "name": "Red Army Air Force Camouflage", "countries": [ - "RUS", - "SUN" + "SUN", + "RUS" ] }, - "red army standard": { - "name": "1 Red Army Air Force Standard", + "spain nationalists": { + "name": "Spain (Nationalists)", "countries": [ - "RUS", - "SUN" - ] - }, - "silver demo": { - "name": "Silver paint scheme", - "countries": [ - "RUS", - "SUN" - ] - }, - "red five demo": { - "name": "RED FIVE Aerobatic Team", - "countries": [ - "RUS", - "SUN" + "SPN", + "NZG" ] }, "japan": { @@ -15456,39 +14745,53 @@ "NZG" ] }, - "spain nationalists": { - "name": "Spain (Nationalists)", + "red army standard": { + "name": "1 Red Army Air Force Standard", "countries": [ - "SPN", - "NZG" - ] - }, - "red army winter": { - "name": "Red Army Air Force winter", - "countries": [ - "RUS", - "SUN" + "SUN", + "RUS" ] }, "spain republicans": { "name": "Spain (Republicans)", "countries": [ - "SPN", - "SUN" + "SUN", + "SPN" ] }, - "silver-black demo": { - "name": "Silver-black paint scheme", + "red five demo": { + "name": "RED FIVE Aerobatic Team", "countries": [ - "RUS", - "SUN" + "SUN", + "RUS" ] }, "clear": { "name": "Green unmarked", "countries": "All" + }, + "silver demo": { + "name": "Silver paint scheme", + "countries": [ + "SUN", + "RUS" + ] + }, + "red army winter": { + "name": "Red Army Air Force winter", + "countries": [ + "SUN", + "RUS" + ] } - } + }, + "type": "Aircraft", + "description": "Single propellor, straight wing, 1 crew. Ishak", + "abilities": "", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "IL-76MD": { "name": "IL-76MD", @@ -15503,6 +14806,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "Transport" ] } @@ -15510,10 +14814,10 @@ "filename": "il-76.png", "enabled": true, "liveries": { - "china air force new": { - "name": "China Air Force New", + "ukrainian af aeroflot": { + "name": "Ukrainian AF aeroflot", "countries": [ - "CHN" + "UKR" ] }, "algerian af il-76md": { @@ -15522,22 +14826,10 @@ "DZA" ] }, - "fsb aeroflot": { - "name": "FSB aeroflot", + "china air force old": { + "name": "China Air Force Old", "countries": [ - "RUS" - ] - }, - "mvd aeroflot": { - "name": "MVD aeroflot", - "countries": [ - "RUS" - ] - }, - "ukrainian af aeroflot": { - "name": "Ukrainian AF aeroflot", - "countries": [ - "UKR" + "CHN" ] }, "ukrainian af": { @@ -15546,19 +14838,38 @@ "UKR" ] }, - "china air force old": { - "name": "China Air Force Old", - "countries": [ - "CHN" - ] - }, "rf air force": { "name": "RF Air Force", "countries": [ "RUS" ] + }, + "china air force new": { + "name": "China Air Force New", + "countries": [ + "CHN" + ] + }, + "mvd aeroflot": { + "name": "MVD aeroflot", + "countries": [ + "RUS" + ] + }, + "fsb aeroflot": { + "name": "FSB aeroflot", + "countries": [ + "RUS" + ] } - } + }, + "type": "Aircraft", + "description": "4 jet engine, swept wing, 5 crew. Cargo and passenger aircraft. NATO reporting name: Candid", + "abilities": "", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": false, + "canRearm": false }, "IL-78M": { "name": "IL-78M", @@ -15573,26 +14884,33 @@ "code": "", "name": "Empty loadout", "roles": [ - "Refuelling" + "No task", + "Tanker" ] } ], "filename": "il-76.png", "enabled": true, "liveries": { + "rf air force aeroflot": { + "name": "RF Air Force aeroflot", + "countries": [ + "SUN", + "RUS" + ] + }, + "rf air force new": { + "name": "RF Air Force new", + "countries": [ + "RUS" + ] + }, "algerian af il-78m": { "name": "Algerian AF IL-78M", "countries": [ "DZA" ] }, - "rf air force aeroflot": { - "name": "RF Air Force aeroflot", - "countries": [ - "RUS", - "SUN" - ] - }, "china air force": { "name": "China Air Force", "countries": [ @@ -15602,17 +14920,18 @@ "rf air force": { "name": "RF Air Force", "countries": [ - "RUS", - "SUN" - ] - }, - "rf air force new": { - "name": "RF Air Force new", - "countries": [ + "SUN", "RUS" ] } - } + }, + "type": "Aircraft", + "description": "4 jet engine, swept wing, 6 crew. Tanker aircraft. NATO reporting name: Midas", + "abilities": "Tanker, Drogue AAR", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": false, + "canRearm": false }, "J-11A": { "name": "J-11A", @@ -15627,6 +14946,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "CAP" ] }, @@ -16347,36 +15667,6 @@ "filename": "su-27.png", "enabled": true, "liveries": { - "usaf 65th aggressor sqn 'desert' (fictional)": { - "name": "65th Aggressor SQN 'Desert' (Fictional)", - "countries": [ - "AUSAF" - ] - }, - "plaaf ghost gray (fictional)": { - "name": "PLAAF Ghost Gray (Fictional)", - "countries": [ - "CHN" - ] - }, - "plaaf 7th ad": { - "name": "PLAAF 7th AD", - "countries": [ - "CHN" - ] - }, - "plaaf 14th ad": { - "name": "PLAAF 14th AD", - "countries": [ - "CHN" - ] - }, - "sky hunter": { - "name": "Sky Hunter", - "countries": [ - "CHN" - ] - }, "plaaf 19th ad": { "name": "PLAAF 19th AD", "countries": [ @@ -16389,24 +15679,84 @@ "CHN" ] }, - "plaaf 14th ad (reworked)": { - "name": "PLAAF 14th AD (Reworked)", - "countries": [ - "CHN" - ] - }, "plaaf 18th ad 'thunderclap wing' (fictional)": { "name": "PLAAF 18th AD 'Thunderclap Wing' (Fictional)", "countries": [ "CHN" ] }, + "usn aggressor vfc-13 'ferris' (fictional)": { + "name": "Aggressor VFC-13 'Ferris' (Fictional)", + "countries": [ + "AUSAF" + ] + }, + "plaaf 19th ad (reworked)": { + "name": "PLAAF 19th AD (Reworked)", + "countries": [ + "CHN" + ] + }, + "plaaf 14th ad": { + "name": "PLAAF 14th AD", + "countries": [ + "CHN" + ] + }, "plaaf 6th ad": { "name": "PLAAF 6th AD", "countries": [ "CHN" ] }, + "plaaf 14th ad (reworked)": { + "name": "PLAAF 14th AD (Reworked)", + "countries": [ + "CHN" + ] + }, + "plaaf opfor 'desert' (fictional)": { + "name": "PLAAF OPFOR 'Desert' (Fictional)", + "countries": [ + "CHN" + ] + }, + "plaaf 7th ad (reworked)": { + "name": "PLAAF 7th AD (Reworked)", + "countries": [ + "CHN" + ] + }, + "usaf 65th aggressor sqn 'desert' (fictional)": { + "name": "65th Aggressor SQN 'Desert' (Fictional)", + "countries": [ + "AUSAF" + ] + }, + "sky hunter": { + "name": "Sky Hunter", + "countries": [ + "CHN" + ] + }, + "plaaf 2nd ad (parade)": { + "name": "PLAAF 2nd AD (Parade)", + "countries": [ + "CHN" + ] + }, + "plaaf opfor 'jungle' (fictional)": { + "name": "PLAAF OPFOR 'Jungle' (Fictional) ", + "countries": [ + "CHN" + ] + }, + "plaaf 33th ad (reworked)": { + "name": "PLAAF 33th AD (Reworked)", + "countries": [ + "CHN" + ] + }, "plaaf 33th ad": { "name": "PLAAF 33th AD", "countries": [ @@ -16419,61 +15769,38 @@ "AUSAF" ] }, - "plaaf 7th ad (reworked)": { - "name": "PLAAF 7th AD (Reworked)", - "countries": [ - "CHN" - ] - }, - "plaaf opfor 'jungle' (fictional)": { - "name": "PLAAF OPFOR 'Jungle' (Fictional) ", - "countries": [ - "CHN" - ] - }, - "usn aggressor vfc-13 'ferris' (fictional)": { - "name": "Aggressor VFC-13 'Ferris' (Fictional)", - "countries": [ - "AUSAF" - ] - }, "plaaf 2nd ad": { "name": "PLAAF 2nd AD", "countries": [ "CHN" ] }, + "plaaf 7th ad": { + "name": "PLAAF 7th AD", + "countries": [ + "CHN" + ] + }, + "plaaf ghost gray (fictional)": { + "name": "PLAAF Ghost Gray (Fictional)", + "countries": [ + "CHN" + ] + }, "plaaf 2nd ad (reworked)": { "name": "PLAAF 2nd AD (Reworked)", "countries": [ "CHN" ] - }, - "plaaf 2nd ad (parade)": { - "name": "PLAAF 2nd AD (Parade)", - "countries": [ - "CHN" - ] - }, - "plaaf 19th ad (reworked)": { - "name": "PLAAF 19th AD (Reworked)", - "countries": [ - "CHN" - ] - }, - "plaaf 33th ad (reworked)": { - "name": "PLAAF 33th AD (Reworked)", - "countries": [ - "CHN" - ] - }, - "plaaf opfor 'desert' (fictional)": { - "name": "PLAAF OPFOR 'Desert' (Fictional)", - "countries": [ - "CHN" - ] } - } + }, + "type": "Aircraft", + "description": "2 Jet engine, swept wing, 1 crew, fighter and strike. NATO reporting name: Flanker", + "abilities": "", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "JF-17": { "name": "JF-17", @@ -16488,6 +15815,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "CAP" ] }, @@ -18091,44 +17419,32 @@ "filename": "jf-17.png", "enabled": true, "liveries": { - "paf black panthers (reworked)": { - "name": "Pakistan Air Force No.16 Sqn Black Panthers (Reworked)", + "paf black panthers 07-101": { + "name": "Pakistan Air Force No.16 Sqn Black Panthers 07-101", "countries": [ "PAK" ] }, - "paf tail choppers": { - "name": "Pakistan Air Force No.14 Sqn Tail Choppers", + "paf phoenixes": { + "name": "Pakistan Air Force No.28 Sqn Phoenixes", "countries": [ "PAK" ] }, - "paf black spiders (web camo)": { - "name": "Pakistan Air Force No.26 Sqn Black Spiders (Web Camo)", - "countries": [ - "PAK" - ] - }, - "'chips' camo for blue side (fictional)": { - "name": "USAF \"Chips\" Camo (Fictional)", - "countries": [ - "USA" - ] - }, "paf black spiders 07-101 (fictional)": { "name": "Pakistan Air Force No.26 Sqn Black Spiders 07-101 (Fictional)", "countries": [ "PAK" ] }, - "plaaf 111th ab (fictional)": { - "name": "PLAAF 111th AB (Fictional)", + "paf 07-101 (overhauled)": { + "name": "Pakistan Air Force 07-101 (Overhauled)", "countries": [ - "CHN" + "PAK" ] }, - "paf black panthers 07-101": { - "name": "Pakistan Air Force No.16 Sqn Black Panthers 07-101", + "paf black panthers (b2v2)": { + "name": "Pakistan Air Force No.16 Sqn Black Panthers (Block2 Camo2)", "countries": [ "PAK" ] @@ -18139,14 +17455,66 @@ "CHN" ] }, + "naf 722": { + "name": "Nigerian Air Force 722", + "countries": [ + "NGA" + ] + }, + "paf dark camo": { + "name": "Pakistan Air Force Dark Camo", + "countries": [ + "PAK" + ] + }, + "'splinter' camo for blue side (fictional)": { + "name": "\"Splinter\" Camo for Blue Side (Fictional)", + "countries": "All" + }, + "paf black spiders (web camo)": { + "name": "Pakistan Air Force No.26 Sqn Black Spiders (Web Camo)", + "countries": [ + "PAK" + ] + }, + "plaaf 111th ab (fictional)": { + "name": "PLAAF 111th AB (Fictional)", + "countries": [ + "CHN" + ] + }, "paf black panthers": { "name": "Pakistan Air Force No.16 Sqn Black Panthers", "countries": [ "PAK" ] }, - "paf sharp shooters": { - "name": "Pakistan Air Force No.18 Sqn Sharp Shooters", + "paf black spiders (default)": { + "name": "Pakistan Air Force No.26 Sqn Black Spiders", + "countries": [ + "PAK" + ] + }, + "paf ccs fierce fragons": { + "name": "Pakistan Air Force CCS Sqn Fierce Dragons", + "countries": [ + "PAK" + ] + }, + "plaaf ghost gray camo (fictional)": { + "name": "PLAAF \"Ghost Gray\" Camo (Fictional)", + "countries": [ + "CHN" + ] + }, + "'chips' camo for blue side (fictional)": { + "name": "USAF \"Chips\" Camo (Fictional)", + "countries": [ + "USA" + ] + }, + "paf black panthers (reworked)": { + "name": "Pakistan Air Force No.16 Sqn Black Panthers (Reworked)", "countries": [ "PAK" ] @@ -18161,16 +17529,22 @@ "CHN" ] }, - "paf 07-101 (overhauled)": { - "name": "Pakistan Air Force 07-101 (Overhauled)", + "paf minhasians": { + "name": "Pakistan Air Force No.2 Sqn Minhasians", "countries": [ "PAK" ] }, - "plaaf ghost gray camo (fictional)": { - "name": "PLAAF \"Ghost Gray\" Camo (Fictional)", + "paf sharp shooters": { + "name": "Pakistan Air Force No.18 Sqn Sharp Shooters", "countries": [ - "CHN" + "PAK" + ] + }, + "paf tail choppers": { + "name": "Pakistan Air Force No.14 Sqn Tail Choppers", + "countries": [ + "PAK" ] }, "paf black panthers (b2v1)": { @@ -18178,54 +17552,15 @@ "countries": [ "PAK" ] - }, - "paf dark camo": { - "name": "Pakistan Air Force Dark Camo", - "countries": [ - "PAK" - ] - }, - "paf ccs fierce fragons": { - "name": "Pakistan Air Force CCS Sqn Fierce Dragons", - "countries": [ - "PAK" - ] - }, - "paf black panthers (b2v2)": { - "name": "Pakistan Air Force No.16 Sqn Black Panthers (Block2 Camo2)", - "countries": [ - "PAK" - ] - }, - "paf phoenixes": { - "name": "Pakistan Air Force No.28 Sqn Phoenixes", - "countries": [ - "PAK" - ] - }, - "'splinter' camo for blue side (fictional)": { - "name": "\"Splinter\" Camo for Blue Side (Fictional)", - "countries": "All" - }, - "paf black spiders (default)": { - "name": "Pakistan Air Force No.26 Sqn Black Spiders", - "countries": [ - "PAK" - ] - }, - "paf minhasians": { - "name": "Pakistan Air Force No.2 Sqn Minhasians", - "countries": [ - "PAK" - ] - }, - "naf 722": { - "name": "Nigerian Air Force 722", - "countries": [ - "NGA" - ] } - } + }, + "type": "Aircraft", + "description": "Single jet engine, swept wing, 1 crew, fighter and strike. Geoff", + "abilities": "Drogue AAR", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "KC-135": { "name": "KC-135", @@ -18240,26 +17575,34 @@ "code": "", "name": "Empty loadout", "roles": [ - "Refuelling" + "No task", + "Tanker" ] } ], "filename": "kc-135.png", "enabled": true, "liveries": { - "turaf standard": { - "name": "Turkish Air Force", - "countries": [ - "TUR" - ] - }, "standard usaf": { "name": "USAF Standard", "countries": [ "USA" ] + }, + "turaf standard": { + "name": "Turkish Air Force", + "countries": [ + "TUR" + ] } - } + }, + "type": "Aircraft", + "description": "4 jet engine, swept wing, 3 crew. Tanker aircraft. Stratotanker", + "abilities": "Tanker, Boom AAR", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": false, + "canRearm": false }, "KC135MPRS": { "name": "KC135MPRS", @@ -18274,26 +17617,34 @@ "code": "", "name": "Empty loadout", "roles": [ - "Refuelling" + "No task", + "Tanker" ] } ], "filename": "kc-135.png", "enabled": true, "liveries": { - "22nd arw": { - "name": "22nd ARW", - "countries": [ - "USA" - ] - }, "100th arw": { "name": "100th ARW", "countries": [ "USA" ] + }, + "22nd arw": { + "name": "22nd ARW", + "countries": [ + "USA" + ] } - } + }, + "type": "Aircraft", + "description": "4 jet engine, swept wing, 3 crew. Tanker aircraft. Stratotanker", + "abilities": "Tanker, Drogue AAR", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": false, + "canRearm": false }, "L-39ZA": { "name": "L-39ZA", @@ -18308,6 +17659,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "CAS" ] }, @@ -18564,7 +17916,7 @@ "code": "SAB-100x4", "name": "SAB-100x4", "roles": [ - "AFAC" + "FAC-A" ] }, { @@ -18621,14 +17973,14 @@ "filename": "l-39.png", "enabled": true, "liveries": { - "splinter camo desert": { - "name": "Splinter camo desert", + "splinter camo woodland": { + "name": "Splinter camo woodland", "countries": "All" }, - "czechoslovakia air force": { - "name": "Czechoslovakia_Air Force", + "algerian af tiger nl-36": { + "name": "Algerian AF Tiger NL-36", "countries": [ - "CZE" + "DZA" ] }, "czech air force": { @@ -18643,14 +17995,8 @@ "DZA" ] }, - "russian air force": { - "name": "1 Russian Air Force", - "countries": [ - "RUS" - ] - }, - "splinter camo woodland": { - "name": "Splinter camo woodland", + "splinter camo desert": { + "name": "Splinter camo desert", "countries": "All" }, "slovak air force": { @@ -18659,13 +18005,26 @@ "SVK" ] }, - "algerian af tiger nl-36": { - "name": "Algerian AF Tiger NL-36", + "russian air force": { + "name": "1 Russian Air Force", "countries": [ - "DZA" + "RUS" + ] + }, + "czechoslovakia air force": { + "name": "Czechoslovakia_Air Force", + "countries": [ + "CZE" ] } - } + }, + "type": "Aircraft", + "description": "Single jet engine, swept wing, 2 crew, light attack trainer. Aviojet", + "abilities": "", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "M-2000C": { "name": "M-2000C", @@ -18680,6 +18039,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "CAP" ] }, @@ -19055,66 +18415,8 @@ "filename": "m2000.png", "enabled": true, "liveries": { - "uae air force": { - "name": "UAE Air Defense Air Force", - "countries": [ - "FRA", - "ARE" - ] - }, - "peru064": { - "name": "Fuerza Aerea Peruana 064", - "countries": [ - "FRA", - "PER" - ] - }, - "2010 tigermeet": { - "name": "NATO Tigermeet 2010", - "countries": [ - "FRA" - ] - }, - "iaf silver 59": { - "name": "Israeli Air Force 101 Sqn 1967 scheme", - "countries": [ - "ITA", - "NOR", - "ISR", - "ABH", - "BEL", - "GER", - "TUR", - "DEN", - "RUS", - "UK", - "FRA", - "CAN", - "SPN", - "CZE", - "UKR", - "GRG", - "POL", - "USA", - "NETH", - "RSO" - ] - }, - "greek air force": { - "name": "Polemikh Aeroporia (Greek Air Force)", - "countries": [ - "GRC", - "FRA" - ] - }, - "2004 tigermeet": { - "name": "NATO Tigermeet 2004", - "countries": [ - "FRA" - ] - }, - "2003 tigermeet": { - "name": "NATO Tigermeet 2003", + "ada alsace lf-2": { + "name": "Ada Alsace LF-2", "countries": [ "FRA" ] @@ -19130,16 +18432,17 @@ "name": "2022 MISSION ACCOMPLIE by MALBAK", "countries": "All" }, - "ada chasse 2-5": { - "name": "AdA Chasse 2/5", + "cambresis": { + "name": "AdA Cambresis", "countries": [ "FRA" ] }, - "ada alsace lf-2": { - "name": "Ada Alsace LF-2", + "greek air force": { + "name": "Polemikh Aeroporia (Greek Air Force)", "countries": [ - "FRA" + "FRA", + "GRC" ] }, "brasilian air force": { @@ -19149,13 +18452,77 @@ "FRA" ] }, - "cambresis": { - "name": "AdA Cambresis", + "2003 tigermeet": { + "name": "NATO Tigermeet 2003", "countries": [ "FRA" ] + }, + "peru064": { + "name": "Fuerza Aerea Peruana 064", + "countries": [ + "FRA", + "PER" + ] + }, + "2010 tigermeet": { + "name": "NATO Tigermeet 2010", + "countries": [ + "FRA" + ] + }, + "uae air force": { + "name": "UAE Air Defense Air Force", + "countries": [ + "FRA", + "ARE" + ] + }, + "2004 tigermeet": { + "name": "NATO Tigermeet 2004", + "countries": [ + "FRA" + ] + }, + "ada chasse 2-5": { + "name": "AdA Chasse 2/5", + "countries": [ + "FRA" + ] + }, + "iaf silver 59": { + "name": "Israeli Air Force 101 Sqn 1967 scheme", + "countries": [ + "ABH", + "RUS", + "SPN", + "ISR", + "USA", + "RSO", + "UKR", + "TUR", + "BEL", + "NOR", + "ITA", + "POL", + "NETH", + "GER", + "FRA", + "GRG", + "DEN", + "CZE", + "CAN", + "UK" + ] } - } + }, + "type": "Aircraft", + "description": "Single jet engine, swept wing, 1 crew, fighter and strike.", + "abilities": "Drogue AAR", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "MB-339A": { "name": "MB-339A", @@ -19170,6 +18537,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "CAS" ] }, @@ -19358,6 +18726,7 @@ "code": "A - 2*500L TipTanks + 2*330L Tanks + Luggage Container [Ferry Long Range]", "name": "A - 2*500L TipTanks + 2*330L Tanks + Luggage Container [Ferry Long Range]", "roles": [ + "No task", "Transport" ] }, @@ -19560,6 +18929,7 @@ "code": "A - 2*320L TipTanks + 6*Mk.82LD", "name": "A - 2*320L TipTanks + 6*Mk.82LD", "roles": [ + "No task", "Strike" ] }, @@ -19633,62 +19003,20 @@ "filename": "c-101.png", "enabled": true, "liveries": { - "mb339ag 'ghana'": { - "name": "Ghana Air Force | Camo (Low-Vis)", - "countries": [ - "GHA" - ] - }, "mb339an 'nigeria'": { "name": "Nigerian Air Force | Camo (Low-Vis)", "countries": [ "NGA" ] }, - "mb339a italian factory": { - "name": "Italian Orange/White", - "countries": [ - "ITA" - ] - }, - "mb339ad 'uae'": { - "name": "UAE Air Force", - "countries": [ - "ARE" - ] - }, - "mb339aa 'armada' - yellow band": { - "name": "ARMADA Argentina | Camo (Yellow Band)", - "countries": [ - "ARG" - ] - }, - "mb339aa 'armada' - crippa": { - "name": "ARMADA Argentina | Camo (Lt. Crippa's killmark)", - "countries": [ - "ARG" - ] - }, "mb339a italian camo - late": { "name": "Italian Camo - Late", "countries": [ "ITA" ] }, - "mb339ap 'peru'": { - "name": "Peruvian Air Force | Camo (Late)", - "countries": [ - "PER" - ] - }, - "mb339a italian camo - early": { - "name": "Italian Camo - Early", - "countries": [ - "ITA" - ] - }, - "mb339a italian gray": { - "name": "Italian Gray", + "mb339a italian factory": { + "name": "Italian Orange/White", "countries": [ "ITA" ] @@ -19699,11 +19027,60 @@ "MYS" ] }, + "mb339aa 'armada' - yellow band": { + "name": "ARMADA Argentina | Camo (Yellow Band)", + "countries": [ + "ARG" + ] + }, + "mb339ag 'ghana'": { + "name": "Ghana Air Force | Camo (Low-Vis)", + "countries": [ + "GHA" + ] + }, + "mb339a italian gray": { + "name": "Italian Gray", + "countries": [ + "ITA" + ] + }, + "mb339a italian camo - early": { + "name": "Italian Camo - Early", + "countries": [ + "ITA" + ] + }, "mb339 'factory'": { "name": "Aermacchi Factory Scheme | S-001 I-NEUF", "countries": "All" + }, + "mb339ad 'uae'": { + "name": "UAE Air Force", + "countries": [ + "ARE" + ] + }, + "mb339aa 'armada' - crippa": { + "name": "ARMADA Argentina | Camo (Lt. Crippa's killmark)", + "countries": [ + "ARG" + ] + }, + "mb339ap 'peru'": { + "name": "Peruvian Air Force | Camo (Late)", + "countries": [ + "PER" + ] } - } + }, + "type": "Aircraft", + "description": "Single jet engine, swept wing, 2 crew, light attack trainer. Aviojet", + "abilities": "", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "MQ-9 Reaper": { "name": "MQ-9 Reaper", @@ -19718,6 +19095,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "Reconnaissance" ] }, @@ -19811,19 +19189,26 @@ "ITA" ] }, - "'camo' scheme": { - "name": "'camo' scheme", - "countries": [ - "USA" - ] - }, "standard france": { "name": "standard France", "countries": [ "FRA" ] + }, + "'camo' scheme": { + "name": "'camo' scheme", + "countries": [ + "USA" + ] } - } + }, + "type": "Aircraft", + "description": "Single turboprop, straight wing, attack aircraft. Reaper", + "abilities": "", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "MiG-15bis": { "name": "MiG-15bis", @@ -19838,6 +19223,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "CAP" ] }, @@ -19949,18 +19335,10 @@ "filename": "mig-15.png", "enabled": true, "liveries": { - "north_korea_air force_major_ arkady_ boitsow": { - "name": "North Korea - Major Arkady Boitsow", + "china_air force": { + "name": "People's Liberation Army Air Force", "countries": [ - "RUS", - "PRK" - ] - }, - "ussr_red": { - "name": "USSR Red", - "countries": [ - "RUS", - "SUN" + "CHN" ] }, "china volunteer air force": { @@ -19969,22 +19347,124 @@ "CHN" ] }, + "ussr_red": { + "name": "USSR Red", + "countries": [ + "SUN", + "RUS" + ] + }, "algerian af 1962": { "name": "Algerian AF 1962", "countries": [ "DZA" ] }, + "north_korea_air force_major_ arkady_ boitsow": { + "name": "North Korea - Major Arkady Boitsow", + "countries": [ + "RUS", + "PRK" + ] + }, + "gdr_air force": { + "name": "Air Forces of the National People's Army", + "countries": [ + "GER" + ] + }, + "default livery": { + "name": "default livery", + "countries": [ + "BRA", + "CUB", + "MYS", + "ARE", + "AUS", + "ABH", + "RUS", + "PHL", + "SPN", + "ISR", + "SUN", + "USA", + "BHR", + "MAR", + "BLR", + "HRV", + "DZA", + "OMN", + "RSO", + "SVK", + "HND", + "IRN", + "UKR", + "TUR", + "JPN", + "PRK", + "SRB", + "IDN", + "KAZ", + "BGR", + "BEL", + "INS", + "THA", + "LBY", + "AUSAF", + "VEN", + "PAK", + "JOR", + "RSA", + "FIN", + "MEX", + "KWT", + "NOR", + "IRQ", + "SYR", + "ITA", + "NZG", + "GRC", + "POL", + "NETH", + "GER", + "SUI", + "CHN", + "SAU", + "SWE", + "YEM", + "VNM", + "ROU", + "RSI", + "FRA", + "CHL", + "KOR", + "HUN", + "AUT", + "GRG", + "DEN", + "TUN", + "EGY", + "IND", + "CZE", + "ETH", + "CAN", + "SDN", + "QAT", + "UK", + "YUG" + ] + }, "haf fictional": { "name": "Hellenic Airforce - Fictional", "countries": [ "GRC" ] }, - "czechoslovakia_air force": { - "name": "Czechoslovak Air Force", + "ussr_air forces": { + "name": "Air Forces of Soviet Union", "countries": [ - "CZE" + "SUN", + "RUS" ] }, "north_korea_air force": { @@ -19999,122 +19479,35 @@ "POL" ] }, - "china_air force": { - "name": "People's Liberation Army Air Force", - "countries": [ - "CHN" - ] - }, - "default livery": { - "name": "default livery", - "countries": [ - "IND", - "ITA", - "BGR", - "HUN", - "IDN", - "IRQ", - "GRC", - "LBY", - "QAT", - "ROU", - "NOR", - "CUB", - "TUN", - "SDN", - "MEX", - "HND", - "ISR", - "CHL", - "AUS", - "KOR", - "ABH", - "VEN", - "BHR", - "SYR", - "RSI", - "SUI", - "BEL", - "GER", - "TUR", - "DEN", - "RUS", - "PRK", - "SUN", - "INS", - "UK", - "HRV", - "AUT", - "FRA", - "YUG", - "MYS", - "RSA", - "CAN", - "KWT", - "CHN", - "BRA", - "SWE", - "PHL", - "IRN", - "MAR", - "SPN", - "UKR", - "CZE", - "EGY", - "VNM", - "JPN", - "THA", - "GRG", - "FIN", - "SRB", - "ETH", - "AUSAF", - "POL", - "YEM", - "SAU", - "PAK", - "SVK", - "USA", - "JOR", - "NZG", - "BLR", - "KAZ", - "NETH", - "DZA", - "RSO", - "OMN", - "ARE" - ] - }, "ussr_air forces old": { "name": "USSR Old", "countries": [ - "RUS", - "SUN" + "SUN", + "RUS" ] }, - "gdr_air force": { - "name": "Air Forces of the National People's Army", + "czechoslovakia_air force": { + "name": "Czechoslovak Air Force", "countries": [ - "GER" + "CZE" ] }, "ussr_pepelyaev": { "name": "USSR Pepelyaev", "countries": [ + "SUN", "RUS", - "PRK", - "SUN" - ] - }, - "ussr_air forces": { - "name": "Air Forces of Soviet Union", - "countries": [ - "RUS", - "SUN" + "PRK" ] } - } + }, + "type": "Aircraft", + "description": "Single jet engine, swept wing, 1 crew. Fagot", + "abilities": "", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "MiG-19P": { "name": "MiG-19P", @@ -20129,6 +19522,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "CAP" ] }, @@ -20331,14 +19725,17 @@ "filename": "mig-19.png", "enabled": true, "liveries": { - "iap": { - "name": "234 Fighter Regiment (234 IAP)", - "countries": "All" - }, - "czechoslovakia": { - "name": "2nd Fighter-Bomber Regiment", + "ussr_2": { + "name": "764th Fighter Aviation Regiment", "countries": [ - "CZE" + "SUN", + "RUS" + ] + }, + "plaaf camo": { + "name": "PLAAF Snow Camo", + "countries": [ + "CHN" ] }, "cuba": { @@ -20347,62 +19744,66 @@ "CUB" ] }, - "poland 39 plm": { - "name": "39 PLM Squadron", - "countries": [ - "POL" - ] + "iap": { + "name": "234 Fighter Regiment (234 IAP)", + "countries": "All" }, - "default": { - "name": "default", + "ddr - fictional": { + "name": "Germany DDR camouflage (Fictional)", "countries": "All" }, "snow - fictional": { "name": "Snow Camouflage Fictional", "countries": "All" }, - "ussr_2": { - "name": "764th Fighter Aviation Regiment", - "countries": [ - "RUS", - "SUN" - ] - }, - "romania - 66th fighter division": { - "name": "91st Fighter Regiment", - "countries": [ - "ROU" - ] - }, - "bulgaria": { - "name": "1st Squadron, 18th Fighter Regiment", - "countries": [ - "BGR" - ] - }, - "poland 62 plm": { - "name": "62 PLM Squadron", - "countries": [ - "POL" - ] - }, - "ddr - fictional": { - "name": "Germany DDR camouflage (Fictional)", - "countries": "All" - }, "plaaf": { "name": "112th Air Regiment", "countries": [ "CHN" ] }, - "plaaf camo": { - "name": "PLAAF Snow Camo", + "romania - 66th fighter division": { + "name": "91st Fighter Regiment", "countries": [ - "CHN" + "ROU" + ] + }, + "poland 39 plm": { + "name": "39 PLM Squadron", + "countries": [ + "POL" + ] + }, + "poland 62 plm": { + "name": "62 PLM Squadron", + "countries": [ + "POL" + ] + }, + "default": { + "name": "default", + "countries": "All" + }, + "czechoslovakia": { + "name": "2nd Fighter-Bomber Regiment", + "countries": [ + "CZE" + ] + }, + "bulgaria": { + "name": "1st Squadron, 18th Fighter Regiment", + "countries": [ + "BGR" ] } - } + }, + "type": "Aircraft", + "description": "Single jet engine, swept wing, 1 crew. Farmer", + "abilities": "", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "MiG-21Bis": { "name": "MiG-21Bis", @@ -20417,6 +19818,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "CAP" ] }, @@ -21104,307 +20506,314 @@ "filename": "mig-21.png", "enabled": true, "liveries": { - "india - 101st sqn (1)": { - "name": "India - 101st Sqn Falcons", - "countries": "All" - }, - "india - 101st sqn (2)": { - "name": "India - 101st Sqn Falcons (2)", - "countries": "All" - }, - "iraq - 17th sqn (2)": { - "name": "Iraq - 17th Sqn (2)", - "countries": "All" - }, - "finland - hävllv 31": { - "name": "Finland - HavLLv 31", - "countries": "All" - }, - "poland - metal": { - "name": "Poland - Lacquer Metal", - "countries": "All" - }, - "vvs - 234 gviap": { - "name": "VVS - 234 GvIAP", - "countries": "All" - }, - "vvs - amt-11 grey": { - "name": "VVS - AMT-11 Grey", - "countries": "All" - }, - "iran - standard": { - "name": "Iran - Standard", - "countries": "All" - }, - "afghanistan (2)": { - "name": "Afghanistan (2)", - "countries": "All" - }, - "serbia - 101st lae": { - "name": "Serbia - 101st LAE", - "countries": "All" - }, - "draken international": { - "name": "Draken International", - "countries": "All" - }, - "iraq - 17th sqn (1)": { - "name": "Iraq - 17th Sqn (1)", - "countries": "All" - }, - "syria (1)": { - "name": "Syria (1)", - "countries": "All" - }, - "iran - 51st sqn": { - "name": "Iran - 51st Sqn (Umidiyeh AB)", - "countries": "All" - }, - "vpaf - 927th lam son - 6122": { - "name": "VPAF - 927th Lam Son", - "countries": "All" - }, - "vvs - 115 gviap": { - "name": "VVS - 115 GvIAP (Kokaydy AB)", - "countries": "All" - }, - "huaf 47th ab (griff sqn)": { - "name": "HunAF Griff Sqn. (47th AB)", - "countries": "All" - }, - "huaf 31st ab (turul sqn)": { - "name": "HunAF 1904 Capeti (51th AB)", - "countries": "All" - }, - "iraq - 9th sqn": { - "name": "Iraq - 9th Sqn", - "countries": "All" - }, - "raf - 111th sqn": { - "name": "RAF - 111th Sqn", - "countries": "All" - }, - "huaf 47th ab - 6115 (griff sqn)": { - "name": "HunAF Griff Sqn. (47th AB) 6115", - "countries": "All" - }, "afghanistan (1)": { "name": "Afghanistan (1)", "countries": "All" }, - "romania - gray": { - "name": "Romania - Gray", - "countries": "All" - }, - "poland - 1 dlmw": { - "name": "Poland - 1 DLMW", - "countries": "All" - }, - "dprk - 2014 - 34": { - "name": "DPRK - 2014 Nr.34", - "countries": "All" - }, - "libya - early": { - "name": "Lybia - Early", - "countries": "All" - }, - "vpaf - 927th fighter regiment metal": { - "name": "VPAF - 927th Fighter Regiment Metal", - "countries": "All" - }, - "india - 15th sqn": { - "name": "India - 15 Sqn War Games", - "countries": "All" - }, - "plaaf - sky blue": { - "name": "PLAAF - Sky Blue", - "countries": "All" - }, - "germany east - jg-8": { - "name": "East Germany - JG-8", - "countries": "All" - }, - "sweden - 16th air wing": { - "name": "Sweden - 16th Air Wing", - "countries": "All" - }, - "sweden - m90": { - "name": "Sweden - M90", - "countries": "All" - }, - "vvs - metal": { - "name": "VVS Metal", - "countries": "All" - }, - "vvs - demonstrator": { - "name": "VVS Demonstrator", - "countries": "All" - }, - "bare metal": { - "name": "Bare Metal", - "countries": "All" - }, - "croatia - 1st fs 1992": { - "name": "Croatia - 1st FS 1992", - "countries": "All" - }, - "yugoslavia - camo": { - "name": "Yugoslavia - Camo", - "countries": "All" - }, - "libya - 2017": { - "name": "Lybia - 2017", - "countries": "All" - }, - "algeria": { - "name": "Algeria FD-43", - "countries": "All" - }, - "bulgaria - 1-3 iae (2)": { - "name": "Bulgaria - 1/3 IAE (2)", - "countries": "All" - }, - "plaaf - white": { - "name": "PLAAF - White", - "countries": "All" - }, - "dprk - 2016 - 42": { - "name": "DPRK - 2016 Nr.42", - "countries": "All" - }, - "croatia - 21st fs": { - "name": "Croatia - 21st Fighter Squadron (Zagreb AB)", - "countries": "All" - }, - "ukraine (1)": { - "name": "Ukraine 01", - "countries": "All" - }, - "egypt - tan 1982": { - "name": "Egypt - Tan 1982", - "countries": "All" - }, - "vvs - 116 cbp": { - "name": "VVS - 116 CBP", - "countries": "All" - }, - "cuba - um 5010 is": { - "name": "Cuba - UM 5010 IS", - "countries": "All" - }, - "poland - 10 elt": { - "name": "Poland - 10 ELT", - "countries": "All" - }, - "syria (2)": { - "name": "Syria (2)", - "countries": "All" - }, - "georgia (1)": { - "name": "Georgia (1)", - "countries": "All" - }, - "huaf metal": { - "name": "HuAF Metal", - "countries": "All" - }, - "huaf 47th ab - early": { - "name": "HunAF Griff Sqn. (47th AB) - Early ", - "countries": "All" - }, - "raf - 11th sqn": { - "name": "RAF - 11th Sqn", - "countries": "All" - }, - "romania - lancer a": { - "name": "Romania - Lancer A", - "countries": "All" - }, - "ukraine (2)": { - "name": "Ukraine 02", - "countries": "All" - }, - "georgia (2)": { - "name": "Georgia (2)", - "countries": "All" - }, - "cuba - 1990s": { - "name": "Cuba - 1990s", - "countries": "All" - }, - "vpaf - 921st sao do - 5040": { - "name": "VPAF - 921st Sao Do", - "countries": "All" - }, - "plaaf - splinter": { - "name": "PLAAF - Splinter", - "countries": "All" - }, - "yugoslavia - gray": { - "name": "Yugoslavia - Grey", - "countries": "All" - }, - "egypt - grey 1982": { - "name": "Egypt - Grey 1982", - "countries": "All" - }, - "angola - c314": { - "name": "Angola - C314", - "countries": "All" - }, - "jasdf": { - "name": "JASDF", - "countries": "All" - }, - "bulgaria - 1-3 iae": { - "name": "Bulgaria - 1/3 IAE", - "countries": "All" - }, - "angola - c41": { - "name": "Angola - C41", - "countries": "All" - }, - "romania - lancer c": { - "name": "Romania - Lancer C", - "countries": "All" - }, - "argentina (1)": { - "name": "Argentina (1)", - "countries": "All" - }, "bulgaria - 1-3 iae (3)": { "name": "Bulgaria - 1/3 IAE (3)", "countries": "All" }, - "northeria - 32nd fs": { - "name": "Northeria - 32nd FG", + "germany east - jg-8": { + "name": "East Germany - JG-8", "countries": "All" }, - "southeria": { - "name": "Southeria", + "plaaf - white": { + "name": "PLAAF - White", "countries": "All" }, - "cuba - metal": { - "name": "Cuba - Metal", + "croatia - 21st fs": { + "name": "Croatia - 21st Fighter Squadron (Zagreb AB)", "countries": "All" }, - "slovakia - 1998": { - "name": "Slovakia - 1998", + "plaaf - sky blue": { + "name": "PLAAF - Sky Blue", "countries": "All" }, - "vvs - 185th gviap": { - "name": "VVS 185th GvIAP", + "iraq - 17th sqn (2)": { + "name": "Iraq - 17th Sqn (2)", + "countries": "All" + }, + "vvs - amt-11 grey": { + "name": "VVS - AMT-11 Grey", + "countries": "All" + }, + "vvs - 234 gviap": { + "name": "VVS - 234 GvIAP", + "countries": "All" + }, + "bare metal": { + "name": "Bare Metal", + "countries": "All" + }, + "bulgaria - 1-3 iae (2)": { + "name": "Bulgaria - 1/3 IAE (2)", + "countries": "All" + }, + "plaaf - splinter": { + "name": "PLAAF - Splinter", "countries": "All" }, "argentina (2)": { "name": "Argentina (2)", "countries": "All" }, + "vvs - demonstrator": { + "name": "VVS Demonstrator", + "countries": "All" + }, + "vvs - 115 gviap": { + "name": "VVS - 115 GvIAP (Kokaydy AB)", + "countries": "All" + }, + "romania - lancer a": { + "name": "Romania - Lancer A", + "countries": "All" + }, + "sweden - 16th air wing": { + "name": "Sweden - 16th Air Wing", + "countries": "All" + }, + "syria (1)": { + "name": "Syria (1)", + "countries": "All" + }, + "egypt - grey 1982": { + "name": "Egypt - Grey 1982", + "countries": "All" + }, + "finland - hävllv 31": { + "name": "Finland - HavLLv 31", + "countries": "All" + }, + "huaf 47th ab - 6115 (griff sqn)": { + "name": "HunAF Griff Sqn. (47th AB) 6115", + "countries": "All" + }, + "libya - 2017": { + "name": "Lybia - 2017", + "countries": "All" + }, + "huaf 47th ab (griff sqn)": { + "name": "HunAF Griff Sqn. (47th AB)", + "countries": "All" + }, + "cuba - 1990s": { + "name": "Cuba - 1990s", + "countries": "All" + }, + "serbia - 101st lae": { + "name": "Serbia - 101st LAE", + "countries": "All" + }, + "slovakia - 1998": { + "name": "Slovakia - 1998", + "countries": "All" + }, + "iran - 51st sqn": { + "name": "Iran - 51st Sqn (Umidiyeh AB)", + "countries": "All" + }, + "vvs - 116 cbp": { + "name": "VVS - 116 CBP", + "countries": "All" + }, + "georgia (2)": { + "name": "Georgia (2)", + "countries": "All" + }, + "huaf metal": { + "name": "HuAF Metal", + "countries": "All" + }, + "bulgaria - 1-3 iae": { + "name": "Bulgaria - 1/3 IAE", + "countries": "All" + }, + "india - 101st sqn (1)": { + "name": "India - 101st Sqn Falcons", + "countries": "All" + }, + "ukraine (2)": { + "name": "Ukraine 02", + "countries": "All" + }, + "vpaf - 927th fighter regiment metal": { + "name": "VPAF - 927th Fighter Regiment Metal", + "countries": "All" + }, + "iran - standard": { + "name": "Iran - Standard", + "countries": "All" + }, + "romania - lancer c": { + "name": "Romania - Lancer C", + "countries": "All" + }, + "angola - c41": { + "name": "Angola - C41", + "countries": "All" + }, + "poland - 1 dlmw": { + "name": "Poland - 1 DLMW", + "countries": "All" + }, + "yugoslavia - gray": { + "name": "Yugoslavia - Grey", + "countries": "All" + }, + "angola - c314": { + "name": "Angola - C314", + "countries": "All" + }, + "argentina (1)": { + "name": "Argentina (1)", + "countries": "All" + }, + "romania - gray": { + "name": "Romania - Gray", + "countries": "All" + }, + "dprk - 2016 - 42": { + "name": "DPRK - 2016 Nr.42", + "countries": "All" + }, + "libya - early": { + "name": "Lybia - Early", + "countries": "All" + }, + "poland - metal": { + "name": "Poland - Lacquer Metal", + "countries": "All" + }, + "syria (2)": { + "name": "Syria (2)", + "countries": "All" + }, + "india - 15th sqn": { + "name": "India - 15 Sqn War Games", + "countries": "All" + }, + "cuba - um 5010 is": { + "name": "Cuba - UM 5010 IS", + "countries": "All" + }, + "afghanistan (2)": { + "name": "Afghanistan (2)", + "countries": "All" + }, + "iraq - 9th sqn": { + "name": "Iraq - 9th Sqn", + "countries": "All" + }, + "vpaf - 927th lam son - 6122": { + "name": "VPAF - 927th Lam Son", + "countries": "All" + }, + "yugoslavia - camo": { + "name": "Yugoslavia - Camo", + "countries": "All" + }, + "egypt - tan 1982": { + "name": "Egypt - Tan 1982", + "countries": "All" + }, + "croatia - 1st fs 1992": { + "name": "Croatia - 1st FS 1992", + "countries": "All" + }, + "southeria": { + "name": "Southeria", + "countries": "All" + }, + "ukraine (1)": { + "name": "Ukraine 01", + "countries": "All" + }, + "georgia (1)": { + "name": "Georgia (1)", + "countries": "All" + }, + "northeria - 32nd fs": { + "name": "Northeria - 32nd FG", + "countries": "All" + }, + "cuba - metal": { + "name": "Cuba - Metal", + "countries": "All" + }, + "huaf 47th ab - early": { + "name": "HunAF Griff Sqn. (47th AB) - Early ", + "countries": "All" + }, + "jasdf": { + "name": "JASDF", + "countries": "All" + }, + "raf - 111th sqn": { + "name": "RAF - 111th Sqn", + "countries": "All" + }, + "sweden - m90": { + "name": "Sweden - M90", + "countries": "All" + }, + "algeria": { + "name": "Algeria FD-43", + "countries": "All" + }, + "india - 101st sqn (2)": { + "name": "India - 101st Sqn Falcons (2)", + "countries": "All" + }, + "draken international": { + "name": "Draken International", + "countries": "All" + }, + "raf - 11th sqn": { + "name": "RAF - 11th Sqn", + "countries": "All" + }, + "vpaf - 921st sao do - 5040": { + "name": "VPAF - 921st Sao Do", + "countries": "All" + }, + "vvs - metal": { + "name": "VVS Metal", + "countries": "All" + }, + "iraq - 17th sqn (1)": { + "name": "Iraq - 17th Sqn (1)", + "countries": "All" + }, + "vvs - 185th gviap": { + "name": "VVS 185th GvIAP", + "countries": "All" + }, + "poland - 10 elt": { + "name": "Poland - 10 ELT", + "countries": "All" + }, + "dprk - 2014 - 34": { + "name": "DPRK - 2014 Nr.34", + "countries": "All" + }, "huaf grey": { "name": "HuAF Grey", "countries": "All" + }, + "huaf 31st ab (turul sqn)": { + "name": "HunAF 1904 Capeti (51th AB)", + "countries": "All" } - } + }, + "type": "Aircraft", + "description": "Single jet engine, swept wing, 1 crew. Fishbed", + "abilities": "", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "MiG-23MLD": { "name": "MiG-23MLD", @@ -21419,6 +20828,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "CAP" ] }, @@ -21684,25 +21094,18 @@ "filename": "mig-23.png", "enabled": true, "liveries": { + "af standard-2": { + "name": "af standard-2", + "countries": [ + "SUN", + "RUS" + ] + }, "af standard-3 (worn-out)": { "name": "af standard-3 (worn-out)", "countries": [ - "RUS", - "SUN" - ] - }, - "af standard-1": { - "name": "af standard-1", - "countries": [ - "RUS", - "SUN" - ] - }, - "af standard": { - "name": "af standard", - "countries": [ - "RUS", - "SUN" + "SUN", + "RUS" ] }, "algerian air force": { @@ -21711,14 +21114,28 @@ "DZA" ] }, - "af standard-2": { - "name": "af standard-2", + "af standard-1": { + "name": "af standard-1", "countries": [ - "RUS", - "SUN" + "SUN", + "RUS" + ] + }, + "af standard": { + "name": "af standard", + "countries": [ + "SUN", + "RUS" ] } - } + }, + "type": "Aircraft", + "description": "Single jet engine, swing wing, 1 crew. Flogger", + "abilities": "", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "MiG-25PD": { "name": "MiG-25PD", @@ -21733,6 +21150,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "CAP" ] }, @@ -21799,20 +21217,27 @@ "filename": "mig-25.png", "enabled": true, "liveries": { - "af standard": { - "name": "af standard", - "countries": [ - "RUS", - "SUN" - ] - }, "algerian air force": { "name": "Algeria Air Force standard", "countries": [ "DZA" ] + }, + "af standard": { + "name": "af standard", + "countries": [ + "SUN", + "RUS" + ] } - } + }, + "type": "Aircraft", + "description": "2 jet engine, swept wing, 1 crew. Foxbat", + "abilities": "", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "MiG-25RBT": { "name": "MiG-25RBT", @@ -21827,6 +21252,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "Reconnaissance" ] }, @@ -21866,20 +21292,27 @@ "filename": "mig-25.png", "enabled": true, "liveries": { - "af standard": { - "name": "af standard", - "countries": [ - "RUS", - "SUN" - ] - }, "algerian air force": { "name": "Algeria Air Force standard", "countries": [ "DZA" ] + }, + "af standard": { + "name": "af standard", + "countries": [ + "SUN", + "RUS" + ] } - } + }, + "type": "Aircraft", + "description": "2 jet engine, swept wing, 1 crew. Foxbat", + "abilities": "", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "MiG-27K": { "name": "MiG-27K", @@ -21894,6 +21327,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "Strike" ] }, @@ -22201,20 +21635,27 @@ "filename": "mig-23.png", "enabled": true, "liveries": { - "af standard": { - "name": "af standard", - "countries": [ - "RUS", - "SUN" - ] - }, "algerian air force": { "name": "Algerian Air Force", "countries": [ "DZA" ] + }, + "af standard": { + "name": "af standard", + "countries": [ + "SUN", + "RUS" + ] } - } + }, + "type": "Aircraft", + "description": "Single jet engine, swing wing, 1 crew. Flogger", + "abilities": "", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "MiG-29A": { "name": "MiG-29A", @@ -22229,6 +21670,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "CAP" ] }, @@ -22247,7 +21689,7 @@ "code": "Fuel-1150*2,Fuel-1500", "name": "Fuel-1150*2,Fuel-1500", "roles": [ - "AFAC" + "FAC-A" ] }, { @@ -22636,24 +22078,6 @@ "filename": "mig-29.png", "enabled": true, "liveries": { - "domna 120th ar": { - "name": "Domna - 120th Aviation Regiment", - "countries": [ - "RUS" - ] - }, - "polish 41st sqn standard2": { - "name": "41st Sqn Standard 2", - "countries": [ - "POL" - ] - }, - "iriaf blue-grey": { - "name": "IRIAF blue-grey", - "countries": [ - "IRN" - ] - }, "air force ukraine standard": { "name": "Air Force (Standard)", "countries": [ @@ -22663,8 +22087,20 @@ "air force standard": { "name": "Air Force (Standard)", "countries": [ - "RUS", - "SUN" + "SUN", + "RUS" + ] + }, + "strizhi": { + "name": "Strizhi 1992", + "countries": [ + "RUS" + ] + }, + "domna 120th ar": { + "name": "Domna - 120th Aviation Regiment", + "countries": [ + "RUS" ] }, "mary-1 agressors": { @@ -22685,22 +22121,16 @@ "IRN" ] }, - "kazakhstan kazaadf 2008": { - "name": "KazAADF 600th Airbase 2008", - "countries": [ - "KAZ" - ] - }, "strizhi (w)": { "name": "Strizhi 1992(W)", "countries": [ "RUS" ] }, - "kazakhstan air defense forces": { - "name": "KazAADF 600th Airbase 2015", + "polish 41st sqn standard2": { + "name": "41st Sqn Standard 2", "countries": [ - "KAZ" + "POL" ] }, "vasylkiv 40th brta": { @@ -22709,10 +22139,22 @@ "UKR" ] }, - "strizhi": { - "name": "Strizhi 1992", + "kazakhstan air defense forces": { + "name": "KazAADF 600th Airbase 2015", "countries": [ - "RUS" + "KAZ" + ] + }, + "kazakhstan kazaadf 2008": { + "name": "KazAADF 600th Airbase 2008", + "countries": [ + "KAZ" + ] + }, + "iriaf blue-grey": { + "name": "IRIAF blue-grey", + "countries": [ + "IRN" ] }, "syaaf": { @@ -22721,7 +22163,14 @@ "SYR" ] } - } + }, + "type": "Aircraft", + "description": "2 jet engine, swept wing, 1 crew. Flanker", + "abilities": "Drogue AAR", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "MiG-29S": { "name": "MiG-29S", @@ -22736,6 +22185,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "CAP" ] }, @@ -23046,7 +22496,7 @@ "code": "Fuel-1150*2,Fuel-1500", "name": "Fuel-1150*2,Fuel-1500", "roles": [ - "AFAC" + "FAC-A" ] }, { @@ -23217,16 +22667,10 @@ "filename": "mig-29.png", "enabled": true, "liveries": { - "31 gviap_zernograd": { - "name": "Zernograd AFB, 31st Guards Aviation Regiment", + "algerian af fc-16": { + "name": "Algerian AF FC-16", "countries": [ - "RUS" - ] - }, - "air force standard": { - "name": "Air Force (Standard)", - "countries": [ - "RUS" + "DZA" ] }, "air force ukraine standard": { @@ -23235,68 +22679,8 @@ "UKR" ] }, - "kazaadf new (fictional)": { - "name": "KazAADF new (fictional)", - "countries": [ - "KAZ" - ] - }, - "115 gviap_termez": { - "name": "Termez AFB, 115th Guards Aviation Regiment", - "countries": [ - "RUS" - ] - }, - "426th air group_erebuni": { - "name": "Erebuni AFB, 426th Air Group", - "countries": [ - "RUS" - ] - }, - "kazaadf old (fictional)": { - "name": "KazAADF old (fictional)", - "countries": [ - "KAZ" - ] - }, - "belarusian air force": { - "name": "Belarusian Air Force 61 FAB Baranavichy (2017)", - "countries": [ - "BLR" - ] - }, - "773 iap_damgarten": { - "name": "Damgarten AFB, 773rd Aviation Regiment", - "countries": [ - "RUS" - ] - }, - "28 gviap_andreapol": { - "name": "Andreapol AFB, 28th Guards Aviation Regiment", - "countries": [ - "RUS" - ] - }, - "swifts": { - "name": "Swifts (Aerobatic team)", - "countries": [ - "RUS" - ] - }, - "algerian af fc-16": { - "name": "Algerian AF FC-16", - "countries": [ - "DZA" - ] - }, - "1521th air base_mary-1": { - "name": "Mary-1 AFB, 1521st Air Force Base", - "countries": [ - "RUS" - ] - }, - "strizhi": { - "name": "Strizhi 2003", + "air force standard": { + "name": "Air Force (Standard)", "countries": [ "RUS" ] @@ -23307,8 +22691,68 @@ "KAZ" ] }, - "kazaadf new (fictional digital)": { - "name": "KazAADF new digital (fictional digital)", + "strizhi": { + "name": "Strizhi 2003", + "countries": [ + "RUS" + ] + }, + "115 gviap_termez": { + "name": "Termez AFB, 115th Guards Aviation Regiment", + "countries": [ + "RUS" + ] + }, + "1521th air base_mary-1": { + "name": "Mary-1 AFB, 1521st Air Force Base", + "countries": [ + "RUS" + ] + }, + "kazaadf old (fictional)": { + "name": "KazAADF old (fictional)", + "countries": [ + "KAZ" + ] + }, + "swifts": { + "name": "Swifts (Aerobatic team)", + "countries": [ + "RUS" + ] + }, + "773 iap_damgarten": { + "name": "Damgarten AFB, 773rd Aviation Regiment", + "countries": [ + "RUS" + ] + }, + "426th air group_erebuni": { + "name": "Erebuni AFB, 426th Air Group", + "countries": [ + "RUS" + ] + }, + "31 gviap_zernograd": { + "name": "Zernograd AFB, 31st Guards Aviation Regiment", + "countries": [ + "RUS" + ] + }, + "28 gviap_andreapol": { + "name": "Andreapol AFB, 28th Guards Aviation Regiment", + "countries": [ + "RUS" + ] + }, + "belarusian air force": { + "name": "Belarusian Air Force 61 FAB Baranavichy (2017)", + "countries": [ + "BLR" + ] + }, + "kazaadf new (fictional)": { + "name": "KazAADF new (fictional)", "countries": [ "KAZ" ] @@ -23318,8 +22762,21 @@ "countries": [ "RUS" ] + }, + "kazaadf new (fictional digital)": { + "name": "KazAADF new digital (fictional digital)", + "countries": [ + "KAZ" + ] } - } + }, + "type": "Aircraft", + "description": "2 jet engine, swept wing, 1 crew. Flanker", + "abilities": "Drogue AAR", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "MiG-31": { "name": "MiG-31", @@ -23334,6 +22791,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "CAP" ] }, @@ -23429,13 +22887,6 @@ "filename": "mig-23.png", "enabled": true, "liveries": { - "af standard": { - "name": "af standard", - "countries": [ - "RUS", - "SUN" - ] - }, "174 gviap_boris safonov": { "name": "174 GvIAP Boris Safonov", "countries": [ @@ -23447,8 +22898,22 @@ "countries": [ "RUS" ] + }, + "af standard": { + "name": "af standard", + "countries": [ + "SUN", + "RUS" + ] } - } + }, + "type": "Aircraft", + "description": "2 jet engine, swept wing, 2 crew. Foxhound", + "abilities": "Drogue AAR", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "Mirage-F1EE": { "name": "Mirage-F1EE", @@ -23463,6 +22928,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "CAP" ] }, @@ -23929,17 +23395,17 @@ "name": "R550 Magic 1 IR AAM", "quantity": 2 }, - { - "name": "BARAX - ECM Pod", - "quantity": 1 - }, { "name": "S530F", - "quantity": 1 + "quantity": 2 }, { "name": "RP35 Pylon Fuel Tank (1137 l usable)", "quantity": 1 + }, + { + "name": "BARAX - ECM Pod", + "quantity": 1 } ], "enabled": true, @@ -23956,379 +23422,14 @@ "filename": "f-5.png", "enabled": true, "liveries": { - "ec 2 30 normandie niemen (fictional ct)": { - "name": "EC 2/30 Normandie Niemen (FICTIONAL CT)", + "ec 330 lorraine": { + "name": "EC 330 Lorraine", "countries": [ "FRA" ] }, - "iriaf 3-6210 _ 2017 blue (eq variant)": { - "name": "IRIAF 3-6210 _ 2017 Blue (EQ Variant)", - "countries": [ - "INS", - "IRN" - ] - }, - "iriaf 3-6215 _ 1990-2010s desert (eq variant)": { - "name": "IRIAF 3-6215 _ 1990-2010s Desert (EQ Variant)", - "countries": [ - "INS", - "IRN" - ] - }, - "aerges camo": { - "name": "AERGES CAMO", - "countries": [ - "IND", - "GHA", - "IRQ", - "ROU", - "ECU", - "HND", - "ISR", - "VEN", - "RSI", - "DEN", - "RUS", - "SUN", - "SVN", - "BRA", - "JPN", - "GRG", - "FIN", - "YEM", - "SVK", - "BLR", - "ETH", - "GDR", - "BGR", - "GRC", - "NOR", - "TUN", - "AUS", - "KOR", - "ABH", - "TUR", - "PRK", - "INS", - "HRV", - "AUT", - "NGA", - "CHN", - "PHL", - "SPN", - "CZE", - "POL", - "JOR", - "SAU", - "PAK", - "NZG", - "OMN", - "PRT", - "ITA", - "HUN", - "IDN", - "QAT", - "PER", - "CUB", - "SYR", - "UK", - "YUG", - "MYS", - "RSA", - "CAN", - "KWT", - "SWE", - "MAR", - "VNM", - "AUSAF", - "DZA", - "NETH", - "LBY", - "SDN", - "MEX", - "CHL", - "BHR", - "ARG", - "SUI", - "BEL", - "GER", - "FRA", - "IRN", - "LBN", - "UKR", - "EGY", - "THA", - "SRB", - "USA", - "BOL", - "KAZ", - "RSO", - "ARE" - ] - }, - "er 233 savoie ba 118 mont de marsan dessert camu (fictional cr)": { - "name": "ER 233 Savoie BA 118 Mont de Marsan Dessert Camu (FICTIONAL CR)", - "countries": [ - "FRA" - ] - }, - "ec 212 picardie": { - "name": "EC 212 Picardie", - "countries": [ - "FRA" - ] - }, - "ala 14 nato skin 1 (ee)": { - "name": "ALA 14 NATO Skin 1 (EE)", - "countries": [ - "SPN" - ] - }, - "ala 46 sq 462 blue skin (ee) gando": { - "name": "ALA 46 SQ 462 Blue Skin (EE) Gando", - "countries": [ - "SPN" - ] - }, - "iriaf 3-6210 _ 2013 gray (eq variant)": { - "name": "IRIAF 3-6210 _ 2013 Gray (EQ Variant)", - "countries": [ - "INS", - "IRN" - ] - }, - "iriaf 3-6215 _ 2021 blue (eq variant)": { - "name": "IRIAF 3-6215 _ 2021 Blue (EQ Variant)", - "countries": [ - "INS", - "IRN" - ] - }, - "aerges blue": { - "name": "AERGES BLUE", - "countries": [ - "IND", - "GHA", - "IRQ", - "ROU", - "ECU", - "HND", - "ISR", - "VEN", - "RSI", - "DEN", - "RUS", - "SUN", - "SVN", - "BRA", - "JPN", - "GRG", - "FIN", - "YEM", - "SVK", - "BLR", - "ETH", - "GDR", - "BGR", - "GRC", - "NOR", - "TUN", - "AUS", - "KOR", - "ABH", - "TUR", - "PRK", - "INS", - "HRV", - "AUT", - "NGA", - "CHN", - "PHL", - "SPN", - "CZE", - "POL", - "JOR", - "SAU", - "PAK", - "NZG", - "OMN", - "PRT", - "ITA", - "HUN", - "IDN", - "QAT", - "PER", - "CUB", - "SYR", - "UK", - "YUG", - "MYS", - "RSA", - "CAN", - "KWT", - "SWE", - "MAR", - "VNM", - "AUSAF", - "DZA", - "NETH", - "LBY", - "SDN", - "MEX", - "CHL", - "BHR", - "ARG", - "SUI", - "BEL", - "GER", - "FRA", - "IRN", - "LBN", - "UKR", - "EGY", - "THA", - "SRB", - "USA", - "BOL", - "KAZ", - "RSO", - "ARE" - ] - }, - "iriaf 3-6210 _ 2021 blue (eq variant)": { - "name": "IRIAF 3-6210 _ 2021 Blue (EQ Variant)", - "countries": [ - "INS", - "IRN" - ] - }, - "usa company skin (m-ee)": { - "name": "USA Company Skin EE", - "countries": [ - "USA", - "AUSAF" - ] - }, - "iriaf 3-6211 _ 2010s blue_gray (eq variant)": { - "name": "IRIAF 3-6211 _ 2010s Blue_Gray (EQ Variant)", - "countries": [ - "INS", - "IRN" - ] - }, - "ala 14 blue skin (ee) albacete": { - "name": "ALA 14 Blue Skin (EE) Albacete", - "countries": [ - "SPN" - ] - }, - "aerges nato grey": { - "name": "AERGES NATO GREY", - "countries": [ - "IND", - "GHA", - "IRQ", - "ROU", - "ECU", - "HND", - "ISR", - "VEN", - "RSI", - "DEN", - "RUS", - "SUN", - "SVN", - "BRA", - "JPN", - "GRG", - "FIN", - "YEM", - "SVK", - "BLR", - "ETH", - "GDR", - "BGR", - "GRC", - "NOR", - "TUN", - "AUS", - "KOR", - "ABH", - "TUR", - "PRK", - "INS", - "HRV", - "AUT", - "NGA", - "CHN", - "PHL", - "SPN", - "CZE", - "POL", - "JOR", - "SAU", - "PAK", - "NZG", - "OMN", - "PRT", - "ITA", - "HUN", - "IDN", - "QAT", - "PER", - "CUB", - "SYR", - "UK", - "YUG", - "MYS", - "RSA", - "CAN", - "KWT", - "SWE", - "MAR", - "VNM", - "AUSAF", - "DZA", - "NETH", - "LBY", - "SDN", - "MEX", - "CHL", - "BHR", - "ARG", - "SUI", - "BEL", - "GER", - "FRA", - "IRN", - "LBN", - "UKR", - "EGY", - "THA", - "SRB", - "USA", - "BOL", - "KAZ", - "RSO", - "ARE" - ] - }, - "ala 46 blue skin (ee) gando": { - "name": "ALA 46 Blue Skin (EE) Gando", - "countries": [ - "SPN" - ] - }, - "usa company grey (m-ee)": { - "name": "USA Company Grey EE", - "countries": [ - "USA", - "AUSAF" - ] - }, - "ec 1 12 cambresis": { - "name": "EC 112 BA 103 Cambrai-Épinoy", + "ec 5 330 cote d'argent (fictional ct)": { + "name": "EC 5/330 Cote d'Argent (FICTIONAL CT)", "countries": [ "FRA" ] @@ -24339,49 +23440,18 @@ "FRA" ] }, - "usa company skin 2 (m-ee)": { - "name": "USA Company Skin 2 EE", + "iriaf 3-6210 _ 2017 blue (eq variant)": { + "name": "IRIAF 3-6210 _ 2017 Blue (EQ Variant)", "countries": [ - "USA", - "AUSAF" - ] - }, - "ec 5 330 cote d'argent (fictional ct)": { - "name": "EC 5/330 Cote d'Argent (FICTIONAL CT)", - "countries": [ - "FRA" - ] - }, - "ec 330 lorraine": { - "name": "EC 330 Lorraine", - "countries": [ - "FRA" - ] - }, - "ec 3 33 lorraine ba 112 reims - champagne ardennes": { - "name": "EC 333 Lorraine BA 112 Reims - Champagne Ardennes", - "countries": [ - "FRA" - ] - }, - "iriaf 3-6212 _ col. naghdibake (eq variant)": { - "name": "IRIAF 3-6212 _ Col. Naghdibake (EQ Variant)", - "countries": [ - "INS", - "IRN" + "IRN", + "INS" ] }, "iriaf 3-6209 _ 2010s blue_gray (eq variant)": { "name": "IRIAF 3-6209 _ 2010s Blue_Gray (EQ Variant)", "countries": [ - "INS", - "IRN" - ] - }, - "ec 1 5 vendee ba orange-cariat": { - "name": "EC 1/5 Vendee BA 115 Orange-Cariat", - "countries": [ - "FRA" + "IRN", + "INS" ] }, "er 233 savoie ba 118 mont de marsan (fictional cr)": { @@ -24390,18 +23460,421 @@ "FRA" ] }, + "ala 14 blue skin (ee) albacete": { + "name": "ALA 14 Blue Skin (EE) Albacete", + "countries": [ + "SPN" + ] + }, + "usa company skin (m-ee)": { + "name": "USA Company Skin EE", + "countries": [ + "USA", + "AUSAF" + ] + }, + "ala 14 nato skin 1 (ee)": { + "name": "ALA 14 NATO Skin 1 (EE)", + "countries": [ + "SPN" + ] + }, + "iriaf 3-6210 _ 2013 gray (eq variant)": { + "name": "IRIAF 3-6210 _ 2013 Gray (EQ Variant)", + "countries": [ + "IRN", + "INS" + ] + }, + "usa company skin 2 (m-ee)": { + "name": "USA Company Skin 2 EE", + "countries": [ + "USA", + "AUSAF" + ] + }, "iriaf 3-6214 _ 2021 blue (eq variant)": { "name": "IRIAF 3-6214 _ 2021 Blue (EQ Variant)", "countries": [ + "IRN", + "INS" + ] + }, + "aerges nato grey": { + "name": "AERGES NATO GREY", + "countries": [ + "CUB", + "AUS", + "PRT", + "SUN", + "USA", + "BLR", + "HRV", + "LBN", + "SVK", + "TUR", + "ARG", + "BEL", + "FIN", + "SAU", + "RSI", + "CHL", + "AUT", + "EGY", + "ECU", + "CAN", + "QAT", + "YUG", + "ISR", + "PER", + "BHR", + "NGA", + "IDN", + "KAZ", "INS", - "IRN" + "AUSAF", + "PAK", + "SVN", + "ROU", + "DEN", + "TUN", + "IND", + "CZE", + "MYS", + "GHA", + "OMN", + "RSO", + "IRN", + "UKR", + "JPN", + "THA", + "JOR", + "RSA", + "MEX", + "NOR", + "ITA", + "NETH", + "SUI", + "VNM", + "KOR", + "GRG", + "SDN", + "UK", + "BRA", + "ARE", + "ABH", + "BOL", + "RUS", + "PHL", + "SPN", + "MAR", + "DZA", + "GDR", + "HND", + "PRK", + "SRB", + "BGR", + "LBY", + "VEN", + "IRQ", + "SYR", + "NZG", + "GRC", + "POL", + "SWE", + "GER", + "CHN", + "YEM", + "FRA", + "HUN", + "ETH", + "KWT" + ] + }, + "ec 3 33 lorraine ba 112 reims - champagne ardennes": { + "name": "EC 333 Lorraine BA 112 Reims - Champagne Ardennes", + "countries": [ + "FRA" + ] + }, + "ec 1 12 cambresis": { + "name": "EC 112 BA 103 Cambrai-Épinoy", + "countries": [ + "FRA" + ] + }, + "ala 46 blue skin (ee) gando": { + "name": "ALA 46 Blue Skin (EE) Gando", + "countries": [ + "SPN" + ] + }, + "aerges blue": { + "name": "AERGES BLUE", + "countries": [ + "CUB", + "AUS", + "PRT", + "SUN", + "USA", + "BLR", + "HRV", + "LBN", + "SVK", + "TUR", + "ARG", + "BEL", + "FIN", + "SAU", + "RSI", + "CHL", + "AUT", + "EGY", + "ECU", + "CAN", + "QAT", + "YUG", + "ISR", + "PER", + "BHR", + "NGA", + "IDN", + "KAZ", + "INS", + "AUSAF", + "PAK", + "SVN", + "ROU", + "DEN", + "TUN", + "IND", + "CZE", + "MYS", + "GHA", + "OMN", + "RSO", + "IRN", + "UKR", + "JPN", + "THA", + "JOR", + "RSA", + "MEX", + "NOR", + "ITA", + "NETH", + "SUI", + "VNM", + "KOR", + "GRG", + "SDN", + "UK", + "BRA", + "ARE", + "ABH", + "BOL", + "RUS", + "PHL", + "SPN", + "MAR", + "DZA", + "GDR", + "HND", + "PRK", + "SRB", + "BGR", + "LBY", + "VEN", + "IRQ", + "SYR", + "NZG", + "GRC", + "POL", + "SWE", + "GER", + "CHN", + "YEM", + "FRA", + "HUN", + "ETH", + "KWT" + ] + }, + "ec 212 picardie": { + "name": "EC 212 Picardie", + "countries": [ + "FRA" + ] + }, + "iriaf 3-6212 _ col. naghdibake (eq variant)": { + "name": "IRIAF 3-6212 _ Col. Naghdibake (EQ Variant)", + "countries": [ + "IRN", + "INS" + ] + }, + "iriaf 3-6211 _ 2010s blue_gray (eq variant)": { + "name": "IRIAF 3-6211 _ 2010s Blue_Gray (EQ Variant)", + "countries": [ + "IRN", + "INS" + ] + }, + "ec 1 5 vendee ba orange-cariat": { + "name": "EC 1/5 Vendee BA 115 Orange-Cariat", + "countries": [ + "FRA" + ] + }, + "er 233 savoie ba 118 mont de marsan dessert camu (fictional cr)": { + "name": "ER 233 Savoie BA 118 Mont de Marsan Dessert Camu (FICTIONAL CR)", + "countries": [ + "FRA" + ] + }, + "iriaf 3-6215 _ 2021 blue (eq variant)": { + "name": "IRIAF 3-6215 _ 2021 Blue (EQ Variant)", + "countries": [ + "IRN", + "INS" + ] + }, + "iriaf 3-6210 _ 2021 blue (eq variant)": { + "name": "IRIAF 3-6210 _ 2021 Blue (EQ Variant)", + "countries": [ + "IRN", + "INS" + ] + }, + "ala 46 sq 462 blue skin (ee) gando": { + "name": "ALA 46 SQ 462 Blue Skin (EE) Gando", + "countries": [ + "SPN" + ] + }, + "ec 2 30 normandie niemen (fictional ct)": { + "name": "EC 2/30 Normandie Niemen (FICTIONAL CT)", + "countries": [ + "FRA" + ] + }, + "iriaf 3-6215 _ 1990-2010s desert (eq variant)": { + "name": "IRIAF 3-6215 _ 1990-2010s Desert (EQ Variant)", + "countries": [ + "IRN", + "INS" + ] + }, + "aerges camo": { + "name": "AERGES CAMO", + "countries": [ + "CUB", + "AUS", + "PRT", + "SUN", + "USA", + "BLR", + "HRV", + "LBN", + "SVK", + "TUR", + "ARG", + "BEL", + "FIN", + "SAU", + "RSI", + "CHL", + "AUT", + "EGY", + "ECU", + "CAN", + "QAT", + "YUG", + "ISR", + "PER", + "BHR", + "NGA", + "IDN", + "KAZ", + "INS", + "AUSAF", + "PAK", + "SVN", + "ROU", + "DEN", + "TUN", + "IND", + "CZE", + "MYS", + "GHA", + "OMN", + "RSO", + "IRN", + "UKR", + "JPN", + "THA", + "JOR", + "RSA", + "MEX", + "NOR", + "ITA", + "NETH", + "SUI", + "VNM", + "KOR", + "GRG", + "SDN", + "UK", + "BRA", + "ARE", + "ABH", + "BOL", + "RUS", + "PHL", + "SPN", + "MAR", + "DZA", + "GDR", + "HND", + "PRK", + "SRB", + "BGR", + "LBY", + "VEN", + "IRQ", + "SYR", + "NZG", + "GRC", + "POL", + "SWE", + "GER", + "CHN", + "YEM", + "FRA", + "HUN", + "ETH", + "KWT" + ] + }, + "usa company grey (m-ee)": { + "name": "USA Company Grey EE", + "countries": [ + "USA", + "AUSAF" ] } - } + }, + "type": "Aircraft", + "description": "Single Jet engine, swept wing, 1 crew.", + "abilities": "Drogue AAR", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "MosquitoFBMkVI": { "name": "MosquitoFBMkVI", - "coalition": "", + "coalition": "blue", "label": "Mosquito FB MkVI", "era": "WW2", "shortLabel": "Mo", @@ -24412,6 +23885,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "CAP" ] }, @@ -24545,49 +24019,23 @@ "filename": "mosquito.png", "enabled": true, "liveries": { - "raf": { - "name": "RAF 1944", - "countries": "All" - }, - "305sqn july": { - "name": "305Sqn July 1944", - "countries": [] - }, - "305sqn june": { - "name": "305Sqn June 1944", - "countries": [] - }, - "armée de l'air blue": { - "name": "Armée de L'air Blue Camo", - "countries": [ - "FRA" - ] - }, - "ussr air force": { - "name": "USSR Air Force", - "countries": [] - }, "25th bombardment group p": { "name": "USAAF 25th Bombardment Group \"P\" (Invasion Stripes)", "countries": [ "USA" ] }, - "iaf - 1956 - 110th squadron": { - "name": "IAF - 1956 - 110th Squadron", + "l-3 pz474 1945": { + "name": "L-3 PZ474 1945", + "countries": [] + }, + "raf": { + "name": "RAF 1944", "countries": "All" }, - "25th bombardment group z": { - "name": "USAAF 25th Bombardment Group \"Z\" (Invasion Stripes)", - "countries": [ - "USA" - ] - }, - "raf, ml897d, no.1409 met flight, wyton, late 1943": { - "name": "RAF, ML897/D, No.1409 Met Flight, Wyton, late 1943", - "countries": [ - "UK" - ] + "605 sqn up-j wag's war wagon": { + "name": "605 Sqn UP-J \"Wag's War Wagon\"", + "countries": "All" }, "605 sqn up-o": { "name": "605 Sqn UP-O", @@ -24597,12 +24045,16 @@ "name": "605 Sqn", "countries": "All" }, - "no. 235 squadron raf 1944": { - "name": "No. 235 Squadron RAF 1944", + "iaf - 1956 - 110th squadron": { + "name": "IAF - 1956 - 110th Squadron", + "countries": "All" + }, + "ussr air force": { + "name": "USSR Air Force", "countries": [] }, - "l-3 pz474 1945": { - "name": "L-3 PZ474 1945", + "no. 235 squadron raf 1944": { + "name": "No. 235 Squadron RAF 1944", "countries": [] }, "no. 613 squadron raf june 1944": { @@ -24611,9 +24063,21 @@ "UK" ] }, - "605 sqn up-j wag's war wagon": { - "name": "605 Sqn UP-J \"Wag's War Wagon\"", - "countries": "All" + "armée de l'air blue": { + "name": "Armée de L'air Blue Camo", + "countries": [ + "FRA" + ] + }, + "raf, ml897d, no.1409 met flight, wyton, late 1943": { + "name": "RAF, ML897/D, No.1409 Met Flight, Wyton, late 1943", + "countries": [ + "UK" + ] + }, + "no. 27 squadron raf popeye camo letters on": { + "name": "No. 27 Squadron RAF Popeye Camo Letters on", + "countries": [] }, "25th bombardment group f": { "name": "USAAF 25th Bombardment Group \"F\"", @@ -24621,15 +24085,32 @@ "USA" ] }, - "no. 27 squadron raf popeye camo letters on": { - "name": "No. 27 Squadron RAF Popeye Camo Letters on", + "305sqn july": { + "name": "305Sqn July 1944", "countries": [] + }, + "305sqn june": { + "name": "305Sqn June 1944", + "countries": [] + }, + "25th bombardment group z": { + "name": "USAAF 25th Bombardment Group \"Z\" (Invasion Stripes)", + "countries": [ + "USA" + ] } - } + }, + "type": "Aircraft", + "description": "2 propeller, straight wing, 2 crew. Mosquito.", + "abilities": "", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "P-47D-40": { "name": "P-47D-40", - "coalition": "", + "coalition": "blue", "label": "P-47D Thunderbolt", "era": "WW2", "shortLabel": "P47", @@ -24640,6 +24121,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "CAP" ] }, @@ -24751,25 +24233,20 @@ "filename": "p-47.png", "enabled": true, "liveries": { - "61st_fs_8th_af_hvz": { - "name": "61st FS 8th Air Force HV-Z (Capt. Witold Lanowski)", - "countries": [ - "USA", - "POL" - ] - }, "79thfg 86thfs the trojan warhorse": { "name": "79thFG 86thFS The Trojan Warhorse", "countries": [ "USA" ] }, - "1st brazilian ftr sq-jambock a1-menezes": { - "name": "1st Brazilian Ftr Sq-Jambock A1-Menezes", - "countries": [] + "61st_fs_d_day": { + "name": "61st FS, D-day", + "countries": [ + "USA" + ] }, - "warchief": { - "name": "WarChief", + "lt_col_gabreski_d_day": { + "name": "Lt.Col. Gabby Gabreski, 61st FS, D-day", "countries": [ "USA" ] @@ -24780,19 +24257,14 @@ "USA" ] }, - "raf thunderbolt": { - "name": "RAF Thunderbolt", - "countries": [] - }, - "lend-lease": { - "name": "Lend-Lease", + "eagle dynamics commemorative": { + "name": "Eagle Dynamics Commemorative", "countries": [ - "RUS", - "SUN" + "USA" ] }, - "lt_col_gabreski_d_day": { - "name": "Lt.Col. Gabby Gabreski, 61st FS, D-day", + "tony 5th emergency rescue squadron": { + "name": "TONY 5th Emergency Rescue Squadron", "countries": [ "USA" ] @@ -24803,27 +24275,17 @@ "USA" ] }, - "lt_col_gabreski_1944": { - "name": "Lt.Col. Gabby Gabreski, 61st FS, July 1944", + "maj_howard_park_1945": { + "name": "Maj. Howard Park, 513th FS, France 1945", "countries": [ "USA" ] }, - "ussr-blue-scheme": { - "name": "USSR - blue", + "61st_fs_8th_af_hvz": { + "name": "61st FS 8th Air Force HV-Z (Capt. Witold Lanowski)", "countries": [ - "RUS", - "SUN" - ] - }, - "usaaf 509th fs, 405th fg, eto 1944, chief ski-u-mah d28": { - "name": "509th FS 405th FG \"Chief Ski-U-Mah\" for D-30 (Early) ", - "countries": "All" - }, - "eagle dynamics commemorative": { - "name": "Eagle Dynamics Commemorative", - "countries": [ - "USA" + "USA", + "POL" ] }, "53rd_fs_9th_air_force": { @@ -24832,39 +24294,66 @@ "USA" ] }, + "1st brazilian ftr sq-jambock a1-menezes": { + "name": "1st Brazilian Ftr Sq-Jambock A1-Menezes", + "countries": [] + }, "61st_fs_1944": { "name": "61st FS, July 1944", "countries": [ "USA" ] }, - "maj_howard_park_1945": { - "name": "Maj. Howard Park, 513th FS, France 1945", + "lt_col_gabreski_1944": { + "name": "Lt.Col. Gabby Gabreski, 61st FS, July 1944", "countries": [ "USA" ] }, + "lend-lease": { + "name": "Lend-Lease", + "countries": [ + "SUN", + "RUS" + ] + }, + "usaaf 509th fs, 405th fg, eto 1944, chief ski-u-mah d28": { + "name": "509th FS 405th FG \"Chief Ski-U-Mah\" for D-30 (Early) ", + "countries": "All" + }, + "ussr-blue-scheme": { + "name": "USSR - blue", + "countries": [ + "SUN", + "RUS" + ] + }, + "raf thunderbolt": { + "name": "RAF Thunderbolt", + "countries": [] + }, "usaaf 509th fs, 405th fg, eto 1944, chief ski-u-mah d40": { "name": "509th FS 405th FG \"Chief Ski-U-Mah\"", "countries": "All" }, - "61st_fs_d_day": { - "name": "61st FS, D-day", - "countries": [ - "USA" - ] - }, - "tony 5th emergency rescue squadron": { - "name": "TONY 5th Emergency Rescue Squadron", + "warchief": { + "name": "WarChief", "countries": [ "USA" ] } - } + }, + "type": "Aircraft", + "description": "Single propellor, straight wing, 1 crew. Thunderbolt", + "abilities": "", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "P-51D-30-NA": { "name": "P-51D-30-NA", - "coalition": "", + "coalition": "blue", "label": "P-51D Mustang", "era": "WW2", "shortLabel": "P51", @@ -24875,6 +24364,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "CAS" ] }, @@ -24891,7 +24381,7 @@ "roles": [ "CAP", "CAP", - "AFAC" + "FAC-A" ] }, { @@ -24909,7 +24399,7 @@ "code": "HVAR*6,Fuel75*2", "name": "HVAR*6,Fuel75*2", "roles": [ - "AFAC" + "FAC-A" ] }, { @@ -24946,7 +24436,7 @@ "CAS", "Strike", "Antiship Strike", - "AFAC" + "FAC-A" ] }, { @@ -24999,25 +24489,20 @@ "filename": "p-51.png", "enabled": true, "liveries": { - "61st_fs_8th_af_hvz": { - "name": "61st FS 8th Air Force HV-Z (Capt. Witold Lanowski)", - "countries": [ - "USA", - "POL" - ] - }, "79thfg 86thfs the trojan warhorse": { "name": "79thFG 86thFS The Trojan Warhorse", "countries": [ "USA" ] }, - "1st brazilian ftr sq-jambock a1-menezes": { - "name": "1st Brazilian Ftr Sq-Jambock A1-Menezes", - "countries": [] + "61st_fs_d_day": { + "name": "61st FS, D-day", + "countries": [ + "USA" + ] }, - "warchief": { - "name": "WarChief", + "lt_col_gabreski_d_day": { + "name": "Lt.Col. Gabby Gabreski, 61st FS, D-day", "countries": [ "USA" ] @@ -25028,19 +24513,14 @@ "USA" ] }, - "raf thunderbolt": { - "name": "RAF Thunderbolt", - "countries": [] - }, - "lend-lease": { - "name": "Lend-Lease", + "eagle dynamics commemorative": { + "name": "Eagle Dynamics Commemorative", "countries": [ - "RUS", - "SUN" + "USA" ] }, - "lt_col_gabreski_d_day": { - "name": "Lt.Col. Gabby Gabreski, 61st FS, D-day", + "tony 5th emergency rescue squadron": { + "name": "TONY 5th Emergency Rescue Squadron", "countries": [ "USA" ] @@ -25051,27 +24531,17 @@ "USA" ] }, - "lt_col_gabreski_1944": { - "name": "Lt.Col. Gabby Gabreski, 61st FS, July 1944", + "maj_howard_park_1945": { + "name": "Maj. Howard Park, 513th FS, France 1945", "countries": [ "USA" ] }, - "ussr-blue-scheme": { - "name": "USSR - blue", + "61st_fs_8th_af_hvz": { + "name": "61st FS 8th Air Force HV-Z (Capt. Witold Lanowski)", "countries": [ - "RUS", - "SUN" - ] - }, - "usaaf 509th fs, 405th fg, eto 1944, chief ski-u-mah d28": { - "name": "509th FS 405th FG \"Chief Ski-U-Mah\" for D-30 (Early) ", - "countries": "All" - }, - "eagle dynamics commemorative": { - "name": "Eagle Dynamics Commemorative", - "countries": [ - "USA" + "USA", + "POL" ] }, "53rd_fs_9th_air_force": { @@ -25080,35 +24550,62 @@ "USA" ] }, + "1st brazilian ftr sq-jambock a1-menezes": { + "name": "1st Brazilian Ftr Sq-Jambock A1-Menezes", + "countries": [] + }, "61st_fs_1944": { "name": "61st FS, July 1944", "countries": [ "USA" ] }, - "maj_howard_park_1945": { - "name": "Maj. Howard Park, 513th FS, France 1945", + "lt_col_gabreski_1944": { + "name": "Lt.Col. Gabby Gabreski, 61st FS, July 1944", "countries": [ "USA" ] }, + "lend-lease": { + "name": "Lend-Lease", + "countries": [ + "SUN", + "RUS" + ] + }, + "usaaf 509th fs, 405th fg, eto 1944, chief ski-u-mah d28": { + "name": "509th FS 405th FG \"Chief Ski-U-Mah\" for D-30 (Early) ", + "countries": "All" + }, + "ussr-blue-scheme": { + "name": "USSR - blue", + "countries": [ + "SUN", + "RUS" + ] + }, + "raf thunderbolt": { + "name": "RAF Thunderbolt", + "countries": [] + }, "usaaf 509th fs, 405th fg, eto 1944, chief ski-u-mah d40": { "name": "509th FS 405th FG \"Chief Ski-U-Mah\"", "countries": "All" }, - "61st_fs_d_day": { - "name": "61st FS, D-day", - "countries": [ - "USA" - ] - }, - "tony 5th emergency rescue squadron": { - "name": "TONY 5th Emergency Rescue Squadron", + "warchief": { + "name": "WarChief", "countries": [ "USA" ] } - } + }, + "type": "Aircraft", + "description": "Single propellor, straight wing, 1 crew. Mustang", + "abilities": "", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "S-3B Tanker": { "name": "S-3B Tanker", @@ -25123,7 +24620,8 @@ "code": "", "name": "Empty loadout", "roles": [ - "Refuelling" + "No task", + "Tanker" ] } ], @@ -25136,7 +24634,14 @@ "USA" ] } - } + }, + "type": "Aircraft", + "description": "2 jet engine, straight wing, 4 crew. Viking", + "abilities": "Tanker, Drogue AAR", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": false, + "canRearm": false }, "Su-17M4": { "name": "Su-17M4", @@ -25151,6 +24656,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "Strike" ] }, @@ -25518,7 +25024,7 @@ "code": "Fuel*4", "name": "Fuel*4", "roles": [ - "AFAC" + "FAC-A" ] }, { @@ -25565,6 +25071,12 @@ "filename": "su-17.png", "enabled": true, "liveries": { + "af standard (worn-out)": { + "name": "af standard (worn-out)", + "countries": [ + "UKR" + ] + }, "shap limanskoye ab": { "name": "shap limanskoye ab", "countries": [ @@ -25574,14 +25086,8 @@ "af standard (rus)": { "name": "af standard", "countries": [ - "RUS", - "SUN" - ] - }, - "af standard (worn-out)": { - "name": "af standard (worn-out)", - "countries": [ - "UKR" + "SUN", + "RUS" ] }, "af standard (worn-out) (rus)": { @@ -25596,7 +25102,14 @@ "UKR" ] } - } + }, + "type": "Aircraft", + "description": "Single jet engine, swept wing, 1 crew. Fitter", + "abilities": "", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "Su-24M": { "name": "Su-24M", @@ -25611,6 +25124,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "Strike" ] }, @@ -26062,7 +25576,7 @@ "code": "Fuel*3", "name": "Fuel*3", "roles": [ - "AFAC" + "FAC-A" ] }, { @@ -26217,23 +25731,10 @@ "filename": "su-24.png", "enabled": true, "liveries": { - "kazakhstan air force": { - "name": "600th Airbase Kazakhstan", + "syrian air force": { + "name": "Syrian Air Force", "countries": [ - "KAZ" - ] - }, - "algerian af kx-12": { - "name": "Algerian AF KX-12", - "countries": [ - "DZA" - ] - }, - "af standard": { - "name": "af standard", - "countries": [ - "RUS", - "SUN" + "SYR" ] }, "iran air force": { @@ -26242,24 +25743,44 @@ "IRN" ] }, + "algerian af kx-12": { + "name": "Algerian AF KX-12", + "countries": [ + "DZA" + ] + }, "ukrainian air force standard": { "name": "Ukrainian Air Force", "countries": [ "UKR" ] }, - "syrian air force": { - "name": "Syrian Air Force", + "kazakhstan air force": { + "name": "600th Airbase Kazakhstan", "countries": [ - "SYR" + "KAZ" + ] + }, + "af standard": { + "name": "af standard", + "countries": [ + "SUN", + "RUS" ] } - } + }, + "type": "Aircraft", + "description": "2 jet engine, swing wing, 2 crew. Fencer", + "abilities": "", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "Su-25": { "name": "Su-25", "coalition": "red", - "label": "Su-25A Frogfoot", + "label": "Su-25T Frogfoot", "era": "Late Cold War", "shortLabel": "S25", "loadouts": [ @@ -26269,6 +25790,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "CAS" ] }, @@ -26625,7 +26147,7 @@ "code": "S-8TsM*160,R-60*2", "name": "S-8TsM*160,R-60*2", "roles": [ - "AFAC" + "FAC-A" ] }, { @@ -26683,7 +26205,7 @@ "code": "SAB-100*8,R-60*2", "name": "SAB-100*8,R-60*2", "roles": [ - "AFAC" + "FAC-A" ] }, { @@ -26958,75 +26480,51 @@ "filename": "su-25.png", "enabled": true, "liveries": { - "field camo scheme #3 (worn-out). 960th shap": { - "name": "field camo scheme #3 (worn-out). 960th shap.", - "countries": [ - "RUS" - ] - }, - "field camo scheme #1 (native)": { - "name": "field camo scheme #1 (native)", - "countries": [ - "RUS", - "SUN" - ] - }, - "forest camo scheme #1 (native)": { - "name": "forest camo scheme #1 (native)", - "countries": [ - "RUS" - ] - }, - "petal camo scheme #2 (native). 299th brigade": { - "name": "petal camo scheme #2 (native). 299th brigade.", - "countries": [ - "UKR" - ] - }, - "field camo scheme #1 (native)01": { - "name": "field camo scheme #1 (native)", - "countries": [ - "GRG" - ] - }, - "`scorpion` demo scheme (native)": { - "name": "`scorpion` demo scheme (native)", - "countries": [ - "GRG" - ] - }, - "algerian af desert fictional": { - "name": "Algerian AF Desert Fictional", - "countries": [ - "DZA" - ] - }, "broken camo scheme #2 (native). 452th shap": { "name": "broken camo scheme #2 (native). 452th shap.", "countries": [ "UKR" ] }, - "haf camo": { - "name": "Hellenic Airforce - Camo (Fictional)", - "countries": [ - "GRC" - ] - }, - "haf aegean ghost": { - "name": "Hellenic Airforce - Aegean Ghost (Fictional)", - "countries": [ - "GRC" - ] - }, "broken camo scheme #1 (native). 299th oshap": { "name": "broken camo scheme #1 (native). 299th oshap.", "countries": [ "UKR" ] }, - "field camo scheme #2 (native). 960th shap": { - "name": "field camo scheme #2 (native). 960th shap.", + "field camo scheme #1 (native)": { + "name": "field camo scheme #1 (native)", + "countries": [ + "SUN", + "RUS" + ] + }, + "field camo scheme #1 (native)01": { + "name": "field camo scheme #1 (native)", + "countries": [ + "GRG" + ] + }, + "haf camo": { + "name": "Hellenic Airforce - Camo (Fictional)", + "countries": [ + "GRC" + ] + }, + "`scorpion` demo scheme (native)": { + "name": "`scorpion` demo scheme (native)", + "countries": [ + "GRG" + ] + }, + "abkhazian air force": { + "name": "Abkhazian Air Force", + "countries": [ + "ABH" + ] + }, + "field camo scheme #3 (worn-out). 960th shap": { + "name": "field camo scheme #3 (worn-out). 960th shap.", "countries": [ "RUS" ] @@ -27037,10 +26535,22 @@ "UKR" ] }, - "abkhazian air force": { - "name": "Abkhazian Air Force", + "petal camo scheme #2 (native). 299th brigade": { + "name": "petal camo scheme #2 (native). 299th brigade.", "countries": [ - "ABH" + "UKR" + ] + }, + "algerian af desert fictional": { + "name": "Algerian AF Desert Fictional", + "countries": [ + "DZA" + ] + }, + "forest camo scheme #1 (native)": { + "name": "forest camo scheme #1 (native)", + "countries": [ + "RUS" ] }, "irgc 54": { @@ -27048,8 +26558,27 @@ "countries": [ "IRN" ] + }, + "field camo scheme #2 (native). 960th shap": { + "name": "field camo scheme #2 (native). 960th shap.", + "countries": [ + "RUS" + ] + }, + "haf aegean ghost": { + "name": "Hellenic Airforce - Aegean Ghost (Fictional)", + "countries": [ + "GRC" + ] } - } + }, + "type": "Aircraft", + "description": "2 jet engine, swept wing, 1 crew. Frogfoot", + "abilities": "", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "Su-25T": { "name": "Su-25", @@ -27064,6 +26593,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "CAS" ] }, @@ -27408,7 +26938,7 @@ "code": "Fuel*4", "name": "Fuel*4", "roles": [ - "AFAC" + "FAC-A" ] }, { @@ -27933,24 +27463,11 @@ "filename": "su-25.png", "enabled": true, "liveries": { - "algerian af desert ku-03": { - "name": "Algerian AF Desert KU-03", - "countries": [ - "DZA" - ] - }, - "af standard 1": { - "name": "af standard 1", - "countries": [ - "RUS", - "SUN" - ] - }, "af standard 2": { "name": "af standard 2", "countries": [ - "RUS", - "SUN" + "SUN", + "RUS" ] }, "algerian af grey ku-02": { @@ -27959,18 +27476,18 @@ "DZA" ] }, + "su-25t test scheme": { + "name": "su-25t test scheme", + "countries": [ + "RUS" + ] + }, "haf - fictional": { "name": "Hellenic Airforce (Fictional)", "countries": [ "GRC" ] }, - "af standard": { - "name": "af standard", - "countries": [ - "GRG" - ] - }, "algerian af trainer ku-04": { "name": "Algerian AF Trainer KU-04", "countries": [ @@ -27989,13 +27506,29 @@ "GRG" ] }, - "su-25t test scheme": { - "name": "su-25t test scheme", + "algerian af desert ku-03": { + "name": "Algerian AF Desert KU-03", "countries": [ + "DZA" + ] + }, + "af standard 1": { + "name": "af standard 1", + "countries": [ + "SUN", "RUS" ] + }, + "af standard": { + "name": "af standard", + "countries": [ + "GRG" + ] } - } + }, + "type": "Attack", + "description": "2 jet engine, swept wing, 1 crew. Frogfoot", + "abilities": "Fox 2 and gun, Dumb bombs, rockets, SEAD and ATGMs, Subsonic" }, "Su-27": { "name": "Su-27", @@ -28010,6 +27543,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "CAP" ] }, @@ -28290,7 +27824,7 @@ "code": "ECM", "name": "ECM", "roles": [ - "AFAC" + "FAC-A" ] }, { @@ -28691,162 +28225,52 @@ "filename": "su-27.png", "enabled": true, "liveries": { - "kubinka afb (russian knights)": { - "name": "Kubinka AFB (Russian Knights)", + "kubinka afb (russian knights old)": { + "name": "Kubinka AFB (Russian Knights Old)", "countries": [ "RUS" ] }, - "chkalovsk afb (689 gviap)": { - "name": "Chkalovsk AFB (689 GvIAP)", - "countries": [ - "RUS" - ] - }, - "besovets afb": { - "name": "Besovets AFB", - "countries": [ - "RUS" - ] - }, - "air force standard": { - "name": "Air Force Standard", - "countries": [ - "RUS", - "SUN" - ] - }, - "lypetsk afb (falcons of russia)": { - "name": "Lypetsk AFB (Falcons of Russia)", - "countries": [ - "RUS" - ] - }, - "planaf hh8s": { - "name": "PLANAF HH8S", - "countries": [ - "CHN" - ] - }, - "haf aegean ghost": { - "name": "Hellenic Airforce - Aegean Ghost (Fictional)", - "countries": [ - "GRC" - ] - }, - "mirgorod afb (digital camo)": { - "name": "Mirgorod AFB (Digital camo)", - "countries": [ - "UKR" - ] - }, - "ozerne afb (9th brigade)": { - "name": "Ozerne AFB (9th brigade)", - "countries": [ - "UKR" - ] - }, - "air force standard early": { - "name": "Air Force Standard Early", - "countries": [ - "RUS", - "SUN" - ] - }, "mirgorod afb (831th brigade)": { "name": "Mirgorod AFB (831th brigade)", "countries": [ "UKR" ] }, - "air force standard old": { - "name": "Air Force Standard old", - "countries": [ - "RUS", - "SUN" - ] - }, - "kubinka afb (russian knights old)": { - "name": "Kubinka AFB (Russian Knights Old)", + "lypetsk afb (falcons of russia)": { + "name": "Lypetsk AFB (Falcons of Russia)", "countries": [ "RUS" ] }, - "m gromov fri": { - "name": "M Gromov FRI", + "hotilovo afb": { + "name": "Hotilovo AFB", "countries": [ "RUS" ] }, - "plaaf k2s old": { - "name": "PLAAF K2S old", - "countries": [ - "CHN" - ] - }, "plaaf k2s new parade": { "name": "PLAAF K2S new parade", "countries": [ "CHN" ] }, - "algerian af grey 04": { - "name": "Algerian AF GREY 04", - "countries": [ - "DZA" - ] - }, - "lypetsk afb (shark)": { - "name": "Lypetsk AFB (Shark)", - "countries": [ - "RUS" - ] - }, - "lodeynoye pole afb (177 iap)": { - "name": "Lodeynoye pole AFB (177 IAP)", - "countries": [ - "RUS" - ] - }, - "plaaf k33s": { - "name": "PLAAF K33S", - "countries": [ - "CHN" - ] - }, "plaaf standard": { "name": "PLAAF Standard", "countries": [ "CHN" ] }, - "besovets afb 2 squadron": { - "name": "Besovets AFB 2 squadron", - "countries": [ - "RUS" - ] - }, - "kilpyavr afb (maresyev)": { - "name": "Kilpyavr AFB (Maresyev)", - "countries": [ - "RUS" - ] - }, - "plaaf k2s new": { - "name": "PLAAF K2S new", - "countries": [ - "CHN" - ] - }, - "algerian af blue 02": { - "name": "Algerian AF Blue 02", + "algerian af grey 04": { + "name": "Algerian AF GREY 04", "countries": [ "DZA" ] }, - "hotilovo afb": { - "name": "Hotilovo AFB", + "air force standard early": { + "name": "Air Force Standard Early", "countries": [ + "SUN", "RUS" ] }, @@ -28856,16 +28280,28 @@ "UKR" ] }, + "planaf hh8s": { + "name": "PLANAF HH8S", + "countries": [ + "CHN" + ] + }, + "ozerne afb (9th brigade)": { + "name": "Ozerne AFB (9th brigade)", + "countries": [ + "UKR" + ] + }, "air force ukraine standard early": { "name": "Air Force Ukraine Standard Early", "countries": [ "UKR" ] }, - "kazakhstan air defense forces": { - "name": "Kazakhstan Air Defense Forces", + "algerian af blue 02": { + "name": "Algerian AF Blue 02", "countries": [ - "KAZ" + "DZA" ] }, "plaaf k1s old": { @@ -28873,8 +28309,113 @@ "countries": [ "CHN" ] + }, + "m gromov fri": { + "name": "M Gromov FRI", + "countries": [ + "RUS" + ] + }, + "plaaf k33s": { + "name": "PLAAF K33S", + "countries": [ + "CHN" + ] + }, + "air force standard": { + "name": "Air Force Standard", + "countries": [ + "SUN", + "RUS" + ] + }, + "plaaf k2s old": { + "name": "PLAAF K2S old", + "countries": [ + "CHN" + ] + }, + "chkalovsk afb (689 gviap)": { + "name": "Chkalovsk AFB (689 GvIAP)", + "countries": [ + "RUS" + ] + }, + "kazakhstan air defense forces": { + "name": "Kazakhstan Air Defense Forces", + "countries": [ + "KAZ" + ] + }, + "haf aegean ghost": { + "name": "Hellenic Airforce - Aegean Ghost (Fictional)", + "countries": [ + "GRC" + ] + }, + "besovets afb": { + "name": "Besovets AFB", + "countries": [ + "RUS" + ] + }, + "kilpyavr afb (maresyev)": { + "name": "Kilpyavr AFB (Maresyev)", + "countries": [ + "RUS" + ] + }, + "mirgorod afb (digital camo)": { + "name": "Mirgorod AFB (Digital camo)", + "countries": [ + "UKR" + ] + }, + "plaaf k2s new": { + "name": "PLAAF K2S new", + "countries": [ + "CHN" + ] + }, + "air force standard old": { + "name": "Air Force Standard old", + "countries": [ + "SUN", + "RUS" + ] + }, + "lodeynoye pole afb (177 iap)": { + "name": "Lodeynoye pole AFB (177 IAP)", + "countries": [ + "RUS" + ] + }, + "kubinka afb (russian knights)": { + "name": "Kubinka AFB (Russian Knights)", + "countries": [ + "RUS" + ] + }, + "lypetsk afb (shark)": { + "name": "Lypetsk AFB (Shark)", + "countries": [ + "RUS" + ] + }, + "besovets afb 2 squadron": { + "name": "Besovets AFB 2 squadron", + "countries": [ + "RUS" + ] } - } + }, + "type": "Aircraft", + "description": "2 jet engine, swept wing, 1 crew. Flanker", + "abilities": "Drogue AAR", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "Su-30": { "name": "Su-30", @@ -28889,6 +28430,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "CAP" ] }, @@ -29149,7 +28691,7 @@ "code": "ECM", "name": "ECM", "roles": [ - "AFAC" + "FAC-A" ] }, { @@ -29756,45 +29298,14 @@ "RUS" ] }, - "`test-pilots` team #597": { - "name": "`test-pilots` team #597", - "countries": [ - "RUS" - ] - }, - "af standard early (worn-out)": { - "name": "af standard early (worn-out)", - "countries": [ - "RUS" - ] - }, - "af standard early": { - "name": "af standard early", - "countries": [ - "RUS", - "SUN" - ] - }, - "adf 148th ctc savasleyka ab": { - "name": "adf 148th ctc savasleyka ab", - "countries": [ - "RUS" - ] - }, "`russian knights` team #25": { "name": "`russian knights` team #25", "countries": [ "RUS" ] }, - "af standard": { - "name": "af standard", - "countries": [ - "RUS" - ] - }, - "af standard last (worn-out)": { - "name": "af standard last (worn-out)", + "adf 148th ctc savasleyka ab": { + "name": "adf 148th ctc savasleyka ab", "countries": [ "RUS" ] @@ -29805,13 +29316,51 @@ "RUS" ] }, + "`test-pilots` team #597": { + "name": "`test-pilots` team #597", + "countries": [ + "RUS" + ] + }, "`snow` test paint scheme": { "name": "`snow` test paint scheme", "countries": [ "RUS" ] + }, + "af standard early": { + "name": "af standard early", + "countries": [ + "SUN", + "RUS" + ] + }, + "af standard last (worn-out)": { + "name": "af standard last (worn-out)", + "countries": [ + "RUS" + ] + }, + "af standard early (worn-out)": { + "name": "af standard early (worn-out)", + "countries": [ + "RUS" + ] + }, + "af standard": { + "name": "af standard", + "countries": [ + "RUS" + ] } - } + }, + "type": "Aircraft", + "description": "2 jet engine, swept wing, 1 crew. Flanker", + "abilities": "Drogue AAR", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "Su-33": { "name": "Su-33", @@ -29826,6 +29375,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "CAP" ] }, @@ -30037,7 +29587,7 @@ "code": "ECM", "name": "ECM", "roles": [ - "AFAC" + "FAC-A" ] }, { @@ -30426,72 +29976,79 @@ "filename": "su-34.png", "enabled": true, "liveries": { - "aaf grey 12": { - "name": "Algerian AF GREY No 12", - "countries": [ - "DZA" - ] - }, "t-10k-9 test paint scheme": { "name": "t-10k-9 test paint scheme", "countries": [ "RUS" ] }, - "279th kiap 2nd squad navy": { - "name": "Navy, 279th kiap, 2nd squad", - "countries": [ - "RUS" - ] - }, - "haf - aegean ghost": { - "name": "Hellenic Airforce - Aegean Ghost (Fictional)", - "countries": [ - "GRC" - ] - }, - "plan carrier air wings j-15": { - "name": "PLAN Carrier Air Wings J-15", - "countries": "All" - }, - "aaf blue 68": { - "name": "Algerian AF BLUE No 68", - "countries": [ - "DZA" - ] - }, - "t-10k-1 test paint scheme": { - "name": "t-10k-1 test paint scheme", - "countries": [ - "RUS", - "SUN" - ] - }, - "t-10k-5 test paint scheme": { - "name": "t-10k-5 test paint scheme", - "countries": [ - "RUS" - ] - }, "279th kiap 1st squad navy": { "name": "Navy, 279th kiap, 1st squad", "countries": [ "RUS" ] }, + "aaf blue 68": { + "name": "Algerian AF BLUE No 68", + "countries": [ + "DZA" + ] + }, + "haf - aegean ghost": { + "name": "Hellenic Airforce - Aegean Ghost (Fictional)", + "countries": [ + "GRC" + ] + }, "279th kiap 2nd squad syria 2017": { "name": "Syria 2017, 279th kiap, 2nd squad", "countries": [ "RUS" ] }, + "aaf grey 12": { + "name": "Algerian AF GREY No 12", + "countries": [ + "DZA" + ] + }, + "t-10k-5 test paint scheme": { + "name": "t-10k-5 test paint scheme", + "countries": [ + "RUS" + ] + }, "279th kiap 1st squad syria 2017": { "name": "Syria 2017, 279th kiap, 1st squad", "countries": [ "RUS" ] + }, + "279th kiap 2nd squad navy": { + "name": "Navy, 279th kiap, 2nd squad", + "countries": [ + "RUS" + ] + }, + "t-10k-1 test paint scheme": { + "name": "t-10k-1 test paint scheme", + "countries": [ + "SUN", + "RUS" + ] + }, + "plan carrier air wings j-15": { + "name": "PLAN Carrier Air Wings J-15", + "countries": "All" } - } + }, + "type": "Aircraft", + "description": "2 jet engine, swept wing, 1 crew. Flanker", + "abilities": "Drogue AAR", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "Su-34": { "name": "Su-34", @@ -30506,6 +30063,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "Strike" ] }, @@ -30722,7 +30280,7 @@ "code": "ECM", "name": "ECM", "roles": [ - "AFAC" + "FAC-A" ] }, { @@ -31089,19 +30647,26 @@ "filename": "su-34.png", "enabled": true, "liveries": { - "russian air force old": { - "name": "Russian Air Force Old", - "countries": [ - "RUS" - ] - }, "russian air force": { "name": "1 Russian Air Force", "countries": [ "RUS" ] + }, + "russian air force old": { + "name": "Russian Air Force Old", + "countries": [ + "RUS" + ] } - } + }, + "type": "Aircraft", + "description": "2 Jet engine, swept wing, 2 crew, all weather fighter and strike. Fullback", + "abilities": "Drogue AAR", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "Tornado GR4": { "name": "Tornado GR4", @@ -31116,6 +30681,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "Strike" ] }, @@ -31199,7 +30765,7 @@ "name": "GBU-16*2, AIM-9M*2, Fuel*2, ECM", "roles": [ "Strike", - "AFAC", + "FAC-A", "Strike" ] }, @@ -31267,30 +30833,12 @@ "filename": "tornado.png", "enabled": true, "liveries": { - "no. 617 squadron raf lossiemouth ab (morayshire)": { - "name": "no. 617 squadron raf lossiemouth ab (morayshire)", - "countries": [ - "UK" - ] - }, - "no. 9 squadron raf marham ab (norfolk)": { - "name": "no. 9 squadron raf marham ab (norfolk)", - "countries": [ - "UK" - ] - }, "no. 14 squadron raf lossiemouth ab (morayshire)": { "name": "no. 14 squadron raf lossiemouth ab (morayshire)", "countries": [ "UK" ] }, - "no. 12 squadron raf lossiemouth ab (morayshire)": { - "name": "no. 12 squadron raf lossiemouth ab (morayshire)", - "countries": [ - "UK" - ] - }, "o of ii (ac) squadron raf marham": { "name": "o of ii (ac) squadron raf marham", "countries": [ @@ -31302,8 +30850,33 @@ "countries": [ "UK" ] + }, + "no. 9 squadron raf marham ab (norfolk)": { + "name": "no. 9 squadron raf marham ab (norfolk)", + "countries": [ + "UK" + ] + }, + "no. 12 squadron raf lossiemouth ab (morayshire)": { + "name": "no. 12 squadron raf lossiemouth ab (morayshire)", + "countries": [ + "UK" + ] + }, + "no. 617 squadron raf lossiemouth ab (morayshire)": { + "name": "no. 617 squadron raf lossiemouth ab (morayshire)", + "countries": [ + "UK" + ] } - } + }, + "type": "Aircraft", + "description": "2 jet engine, swing wing, 2 crew, all weather strike.", + "abilities": "Drogue AAR", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "Tornado IDS": { "name": "Tornado IDS", @@ -31318,6 +30891,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "Strike" ] }, @@ -31388,7 +30962,7 @@ "code": "Fuel*2", "name": "Fuel*2", "roles": [ - "AFAC" + "FAC-A" ] }, { @@ -31531,20 +31105,8 @@ "ITA" ] }, - "ita tornado mm55004": { - "name": "Tornado MM55004", - "countries": [ - "ITA" - ] - }, - "ita tornado mm7042": { - "name": "Tornado MM7042", - "countries": [ - "ITA" - ] - }, - "jagdbombergeschwader 33 buchel ab no. 43+19 experimental scheme": { - "name": "jagdbombergeschwader 33 buchel ab no. 43+19 experimental scheme", + "marinefliegergeschwader 2 eggebek ab marineflieger": { + "name": "marinefliegergeschwader 2 eggebek ab marineflieger", "countries": [ "GER" ] @@ -31555,14 +31117,26 @@ "GER" ] }, + "ita tornado mm7042": { + "name": "Tornado MM7042", + "countries": [ + "ITA" + ] + }, + "ita tornado mm55004": { + "name": "Tornado MM55004", + "countries": [ + "ITA" + ] + }, "aufklarungsgeschwader 51 `immelmann` jagel ab luftwaffe": { "name": "aufklarungsgeschwader 51 `immelmann` jagel ab luftwaffe", "countries": [ "GER" ] }, - "marinefliegergeschwader 2 eggebek ab marineflieger": { - "name": "marinefliegergeschwader 2 eggebek ab marineflieger", + "jagdbombergeschwader 33 buchel ab no. 43+19 experimental scheme": { + "name": "jagdbombergeschwader 33 buchel ab no. 43+19 experimental scheme", "countries": [ "GER" ] @@ -31579,7 +31153,14 @@ "ITA" ] } - } + }, + "type": "Aircraft", + "description": "2 jet engine, swing wing, 2 crew, all weather strike.", + "abilities": "Drogue AAR", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "Tu-142": { "name": "Tu-142", @@ -31594,6 +31175,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "Antiship Strike" ] }, @@ -31621,7 +31203,14 @@ "RUS" ] } - } + }, + "type": "Aircraft", + "description": "4 turboprop, swept wing, 11 crew, bomber. Bear", + "abilities": "", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "Tu-160": { "name": "Tu-160", @@ -31636,6 +31225,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "Strike" ] }, @@ -31663,7 +31253,14 @@ "RUS" ] } - } + }, + "type": "Aircraft", + "description": "4 jet engine, swing wing, 4 crew bomber. Blackjack", + "abilities": "", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "Tu-22M3": { "name": "Tu-22M3", @@ -31678,6 +31275,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "Antiship Strike" ] }, @@ -31788,7 +31386,14 @@ "RUS" ] } - } + }, + "type": "Aircraft", + "description": "2 jet engine, swing wing, 4 crew bomber. Backfire", + "abilities": "", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "Tu-95MS": { "name": "Tu-95MS", @@ -31803,6 +31408,7 @@ "code": "", "name": "Empty loadout", "roles": [ + "No task", "Strike" ] }, @@ -31831,6 +31437,861 @@ "RUS" ] } + }, + "type": "Aircraft", + "description": "4 turboprop, swept wing, 6 crew, bomber. Bear", + "abilities": "", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false + }, + "F-15ESE": { + "name": "F-15ESE", + "coalition": "", + "label": "F-15E Strike Eagle", + "shortLabel": "15E", + "era": "", + "enabled": true, + "loadouts": [ + { + "items": [], + "enabled": true, + "code": "", + "name": "Empty loadout", + "roles": [ + "No task", + "Strike" + ] + }, + { + "items": [ + { + "name": "Fuel tank 610 gal", + "quantity": 1 + }, + { + "name": "AIM-120C-5 AMRAAM - Active Rdr AAM", + "quantity": 2 + }, + { + "name": "AIM-9M Sidewinder IR AAM", + "quantity": 2 + }, + { + "name": "BLU-107 * 6", + "quantity": 2 + }, + { + "name": "AN/AAQ-13 LANTIRN NAV POD", + "quantity": 1 + }, + { + "name": "AN/AAQ-14 LANTIRN TGT Pod", + "quantity": 1 + } + ], + "enabled": true, + "code": "AIM-120C x 2, AIM-9M x 2, BLU-107 x 12, TGP, NVP, Fuel Tank", + "name": "AIM-120C x 2, AIM-9M x 2, BLU-107 x 12, TGP, NVP, Fuel Tank", + "roles": [ + "Runway Attack" + ] + }, + { + "items": [ + { + "name": "AIM-9M Sidewinder IR AAM", + "quantity": 4 + }, + { + "name": "Fuel tank 610 gal", + "quantity": 2 + }, + { + "name": "AIM-120C-5 AMRAAM - Active Rdr AAM", + "quantity": 4 + }, + { + "name": "AN/AAQ-13 LANTIRN NAV POD", + "quantity": 1 + }, + { + "name": "AN/AAQ-14 LANTIRN TGT Pod", + "quantity": 1 + } + ], + "enabled": true, + "code": "AIM-120C x 4, AIM-9M x4, TGP, NVP, FUel Tank x 2", + "name": "AIM-120C x 4, AIM-9M x4, TGP, NVP, FUel Tank x 2", + "roles": [ + "Reconnaissance" + ] + }, + { + "items": [ + { + "name": "AIM-9M Sidewinder IR AAM", + "quantity": 4 + }, + { + "name": "Fuel tank 610 gal", + "quantity": 2 + }, + { + "name": "CBU-87 * 3", + "quantity": 2 + }, + { + "name": null, + "quantity": 1 + }, + { + "name": "AN/AAQ-14 LANTIRN TGT Pod", + "quantity": 1 + } + ], + "enabled": true, + "code": "AIM-9M x 4, CBU-87 x 6, TGP, Fuel Tank x 2", + "name": "AIM-9M x 4, CBU-87 x 6, TGP, Fuel Tank x 2", + "roles": [ + "CAS" + ] + }, + { + "items": [ + { + "name": "AIM-9M Sidewinder IR AAM", + "quantity": 4 + }, + { + "name": "Fuel tank 610 gal", + "quantity": 2 + }, + { + "name": "AIM-120C-5 AMRAAM - Active Rdr AAM", + "quantity": 4 + } + ], + "enabled": true, + "code": "AIM-120Cx4, AIM-9Mx4, Fuel Tanks x 2", + "name": "AIM-120Cx4, AIM-9Mx4, Fuel Tanks x 2", + "roles": [ + "CAP" + ] + }, + { + "items": [ + { + "name": "AIM-9M Sidewinder IR AAM", + "quantity": 4 + }, + { + "name": "Fuel tank 610 gal", + "quantity": 2 + }, + { + "name": "AN/AAQ-13 LANTIRN NAV POD", + "quantity": 1 + }, + { + "name": null, + "quantity": 1 + }, + { + "name": "AN/AAQ-14 LANTIRN TGT Pod", + "quantity": 1 + } + ], + "enabled": true, + "code": "AIM-9M x 4, TGP, NVP, Fuel Tanks x 2", + "name": "AIM-9M x 4, TGP, NVP, Fuel Tanks x 2", + "roles": [ + "CAP" + ] + }, + { + "items": [ + { + "name": "AIM-9M Sidewinder IR AAM", + "quantity": 4 + }, + { + "name": "Mk-84 - 2000lb GP Bomb LD", + "quantity": 2 + }, + { + "name": "Mk-82 * 6", + "quantity": 1 + }, + { + "name": "AN/AAQ-14 LANTIRN TGT Pod", + "quantity": 1 + }, + { + "name": null, + "quantity": 1 + }, + { + "name": "AN/AAQ-13 LANTIRN NAV POD", + "quantity": 1 + }, + { + "name": "CBU-97 * 3", + "quantity": 1 + } + ], + "enabled": true, + "code": "AIM-9M x 4, Mk-84 x 2, Mk-82 x 6, CBU-87 x 3, TGP, NVP", + "name": "AIM-9M x 4, Mk-84 x 2, Mk-82 x 6, CBU-87 x 3, TGP, NVP", + "roles": [ + "CAS" + ] + }, + { + "items": [ + { + "name": "Captive AIM-9M for ACM", + "quantity": 3 + }, + { + "name": null, + "quantity": 1 + }, + { + "name": "AIM-120C-5 AMRAAM - Active Rdr AAM", + "quantity": 1 + }, + { + "name": "AN/AAQ-14 LANTIRN TGT Pod", + "quantity": 1 + }, + { + "name": "AN/AAQ-13 LANTIRN NAV POD", + "quantity": 1 + } + ], + "enabled": true, + "code": "CATM-9M x 3, AIM-120B", + "name": "CATM-9M x 3, AIM-120B", + "roles": [ + "CAP" + ] + }, + { + "items": [ + { + "name": "AIM-9M Sidewinder IR AAM", + "quantity": 4 + }, + { + "name": "Fuel tank 610 gal", + "quantity": 2 + }, + { + "name": "AIM-120C-5 AMRAAM - Active Rdr AAM", + "quantity": 4 + }, + { + "name": "AN/AAQ-14 LANTIRN TGT Pod", + "quantity": 1 + }, + { + "name": null, + "quantity": 1 + }, + { + "name": "AN/AAQ-13 LANTIRN NAV POD", + "quantity": 1 + } + ], + "enabled": true, + "code": "AIM-9M x 4, AIM-120B x 4, TGP, NVP, Fuel Tanks x 2", + "name": "AIM-9M x 4, AIM-120B x 4, TGP, NVP, Fuel Tanks x 2", + "roles": [ + "CAP" + ] + }, + { + "items": [ + { + "name": "Captive AIM-9M for ACM", + "quantity": 1 + }, + { + "name": null, + "quantity": 1 + }, + { + "name": "AIM-120C-5 AMRAAM - Active Rdr AAM", + "quantity": 1 + } + ], + "enabled": true, + "code": "CATM-9M, CAIM-120", + "name": "CATM-9M, CAIM-120", + "roles": [ + "CAP" + ] + }, + { + "items": [ + { + "name": "Captive AIM-9M for ACM", + "quantity": 1 + }, + { + "name": "BDU-50LGB * 2", + "quantity": 2 + }, + { + "name": "AN/AAQ-14 LANTIRN TGT Pod", + "quantity": 1 + }, + { + "name": null, + "quantity": 1 + }, + { + "name": "AN/AAQ-13 LANTIRN NAV POD", + "quantity": 1 + }, + { + "name": "AIM-120C-5 AMRAAM - Active Rdr AAM", + "quantity": 1 + } + ], + "enabled": true, + "code": " AIM-120C x 2, CATM-9M, GBU-12 x 4, TGP, NVP", + "name": " AIM-120C x 2, CATM-9M, GBU-12 x 4, TGP, NVP", + "roles": [ + "Strike" + ] + }, + { + "items": [ + { + "name": "AIM-120C-5 AMRAAM - Active Rdr AAM", + "quantity": 2 + }, + { + "name": "AIM-9M Sidewinder IR AAM", + "quantity": 2 + }, + { + "name": "GBU-12 * 4", + "quantity": 2 + }, + { + "name": "AN/AAQ-14 LANTIRN TGT Pod", + "quantity": 1 + }, + { + "name": "GBU-12 - 500lb Laser Guided Bomb", + "quantity": 1 + }, + { + "name": "AN/AAQ-13 LANTIRN NAV POD", + "quantity": 1 + }, + { + "name": "Fuel tank 610 gal", + "quantity": 2 + } + ], + "enabled": true, + "code": "AIM-120C x 2, AIM-9M x 2, GBU-12 x 9, TGP, NVP, FUel Tank x 2", + "name": "AIM-120C x 2, AIM-9M x 2, GBU-12 x 9, TGP, NVP, FUel Tank x 2", + "roles": [ + "Strike" + ] + }, + { + "items": [ + { + "name": "AIM-9M Sidewinder IR AAM", + "quantity": 4 + }, + { + "name": "Fuel tank 610 gal", + "quantity": 2 + }, + { + "name": "Mk-82 * 6", + "quantity": 2 + }, + { + "name": null, + "quantity": 1 + }, + { + "name": "AN/AAQ-14 LANTIRN TGT Pod", + "quantity": 1 + } + ], + "enabled": true, + "code": " AIM-9M x 4, MK-82 x 12, TGP, Fuel Tank x 2", + "name": " AIM-9M x 4, MK-82 x 12, TGP, Fuel Tank x 2", + "roles": [ + "CAS" + ] + }, + { + "items": [ + { + "name": "AIM-9M Sidewinder IR AAM", + "quantity": 4 + }, + { + "name": "CBU-87 * 6", + "quantity": 1 + }, + { + "name": null, + "quantity": 1 + }, + { + "name": "AN/AAQ-14 LANTIRN TGT Pod", + "quantity": 1 + }, + { + "name": "AIM-120C-5 AMRAAM - Active Rdr AAM", + "quantity": 2 + } + ], + "enabled": true, + "code": "AIM-9M x 4, AIM-120C x 2, CBU-87 x 6, TGP", + "name": "AIM-9M x 4, AIM-120C x 2, CBU-87 x 6, TGP", + "roles": [ + "CAS" + ] + }, + { + "items": [ + { + "name": "AIM-120C-5 AMRAAM - Active Rdr AAM", + "quantity": 2 + }, + { + "name": "AIM-9M Sidewinder IR AAM", + "quantity": 2 + }, + { + "name": "GBU-12 * 4", + "quantity": 1 + }, + { + "name": "AN/AAQ-14 LANTIRN TGT Pod", + "quantity": 1 + }, + { + "name": null, + "quantity": 1 + }, + { + "name": "AN/AAQ-13 LANTIRN NAV POD", + "quantity": 1 + }, + { + "name": "GBU-10 * 2", + "quantity": 1 + }, + { + "name": "Fuel tank 610 gal", + "quantity": 2 + } + ], + "enabled": true, + "code": "AIM-120C x 2, AIM-9M x 2, GBU-12 x 4, GBU-10 x 2, TGP, NVP, FUel Tank x 2", + "name": "AIM-120C x 2, AIM-9M x 2, GBU-12 x 4, GBU-10 x 2, TGP, NVP, FUel Tank x 2", + "roles": [ + "Strike" + ] + }, + { + "items": [ + { + "name": null, + "quantity": 3 + } + ], + "enabled": true, + "code": "Clean", + "name": "Clean", + "roles": [] + }, + { + "items": [ + { + "name": "AIM-9M Sidewinder IR AAM", + "quantity": 4 + }, + { + "name": "Fuel tank 610 gal", + "quantity": 2 + }, + { + "name": "Mk-20 Rockeye * 6", + "quantity": 2 + }, + { + "name": "AN/AAQ-13 LANTIRN NAV POD", + "quantity": 1 + } + ], + "enabled": true, + "code": "AIM-9M x 4, Mk-20 x 12, NVP, Fuel Tanks x 2", + "name": "AIM-9M x 4, Mk-20 x 12, NVP, Fuel Tanks x 2", + "roles": [ + "Strike", + "CAS" + ] + }, + { + "items": [ + { + "name": "AIM-9M Sidewinder IR AAM", + "quantity": 4 + }, + { + "name": "Fuel tank 610 gal", + "quantity": 2 + }, + { + "name": "AIM-7MH Sparrow Semi-Active Radar", + "quantity": 2 + }, + { + "name": "Mk-20 Rockeye * 6", + "quantity": 1 + }, + { + "name": "AN/AAQ-13 LANTIRN NAV POD", + "quantity": 1 + } + ], + "enabled": true, + "code": "AIM-9M x 4, AIM-7M x 2, Mk-20 x 2, NVP, Fuel Tanks x 2", + "name": "AIM-9M x 4, AIM-7M x 2, Mk-20 x 2, NVP, Fuel Tanks x 2", + "roles": [ + "Strike", + "CAS" + ] + }, + { + "items": [ + { + "name": "AIM-120C-5 AMRAAM - Active Rdr AAM", + "quantity": 2 + }, + { + "name": "Mk-84 - 2000lb GP Bomb LD", + "quantity": 3 + }, + { + "name": "AIM-9M Sidewinder IR AAM", + "quantity": 2 + }, + { + "name": "Mk-82 AIR * 6", + "quantity": 2 + }, + { + "name": "AN/AAQ-14 LANTIRN TGT Pod", + "quantity": 1 + }, + { + "name": "AN/AAQ-13 LANTIRN NAV POD", + "quantity": 1 + } + ], + "enabled": true, + "code": "AIM-120C x2, AIM-9M x 2, Mk-84 x 3, Mk-82AIR x 12", + "name": "AIM-120C x2, AIM-9M x 2, Mk-84 x 3, Mk-82AIR x 12", + "roles": [ + "Strike", + "CAS" + ] + } + ], + "filename": "f-15.png", + "liveries": { + "usaf 334th eagles fs af89 aim high": { + "name": "USAF 334th Eagles AF89-475 'Aim High'", + "countries": [ + "USA" + ] + }, + "usaf 335th chiefs fs af89 low vis combat": { + "name": "USAF 335th Chiefs AF89 Low Vis Combat", + "countries": [ + "USA" + ] + }, + "usaf 492nd madhatters fs af91 low vis combat": { + "name": "USAF 492nd Madhatters AF91 Low Vis Combat", + "countries": [ + "USA" + ] + }, + "usaf 335th chiefs fs af89 high vis clean": { + "name": "USAF 335th Chiefs AF89 High Vis Clean", + "countries": [ + "USA" + ] + }, + "usaf 335th chiefs fs af89-0487 lucky": { + "name": "USAF 335th Chiefs AF89-0487 'Lucky'", + "countries": [ + "USA" + ] + }, + "usaf 336th rocketeers fs af88-1690 darkness falls": { + "name": "USAF 336th Rocketeers AF88-1690 'Darkness Falls'", + "countries": [ + "USA" + ] + }, + "usaf 391st bold tigers fs af92-366 billy the kid": { + "name": "USAF 391st Bold Tigers AF92-366 'Billy the Kid'", + "countries": [ + "USA" + ] + }, + "idf ra'am, 69 hammer sqn": { + "name": "IDF 69th Hammers Scheme B", + "countries": [ + "ISR" + ] + }, + "usaf 336th rocketeers fs af89 high vis clean": { + "name": "USAF 336th Rocketeers AF89 High Vis Clean", + "countries": [ + "USA" + ] + }, + "usaf 336th rocketeers fs af89-496 shadow": { + "name": "USAF 336th Rocketeers AF89-496 'Shadow'", + "countries": [ + "USA" + ] + }, + "usaf 389th thunderbolts fs af90 low vis combat": { + "name": "USAF 389th Thunderbolts AF90 Low Vis Combat", + "countries": [ + "USA" + ] + }, + "usaf 492nd mad hatters fs 97-219 75th d-day anniversary": { + "name": "USAF 492nd Madhatters AF97-219 '75th Anniversary D-Day'", + "countries": [ + "USA" + ] + }, + "usaf 334th eagles fs af89 high vis clean": { + "name": "USAF 334th Eagles AF89 High Vis Clean", + "countries": [ + "USA" + ] + }, + "usaf 391st bold tigers fs af91-300 leo": { + "name": "USAF 391st Bold Tigers AF91-300 'Leo'", + "countries": [ + "USA" + ] + }, + "usaf 494th panthers fs af01 low vis clean": { + "name": "USAF 494th Panthers AF01 Low Vis Clean", + "countries": [ + "USA" + ] + }, + "usaf 492nd madhatters fs af97-220 thanos": { + "name": "USAF 492nd Madhatters AF97-220 'Thanos'", + "countries": [ + "USA" + ] + }, + "usaf 48th fw 70th anniversary af92-364 heritage": { + "name": "USAF 48th FW 70th Aniversary AF92-364 Heritage", + "countries": [ + "USA" + ] + }, + "usaf 336th rocketeers fs af88 low vis combat": { + "name": "USAF 336th Rocketeers AF88 Low Vis Combat", + "countries": [ + "USA" + ] + }, + "usaf 492nd madhatters fs af97-221 low vis combat": { + "name": "USAF 492nd Madhatters AF97-221 Low Vis Combat", + "countries": [ + "USA" + ] + }, + "usaf 492nd madhatters fs af91-315 vader": { + "name": "USAF 492nd Madhatters AF91-315 'Vader'", + "countries": [ + "USA" + ] + }, + "usaf 492nd madhatters fs af91-327 green goblin": { + "name": "USAF 492nd Madhatters AF91-327 'Green Goblin'", + "countries": [ + "USA" + ] + }, + "usaf 391st bold tigers fs af90-247 kraken": { + "name": "USAF 391st Bold Tigers AF90-247 'kraken'", + "countries": [ + "USA" + ] + }, + "usaf 336th rocketeers fs af88-1700 dragon betty": { + "name": "USAF 336th Rocketeers AF88-1700 'Dragon Betty'", + "countries": [ + "USA" + ] + }, + "usaf 336th rocketeers fs af89-501": { + "name": "USAF 336th Rocketeers AF89-501", + "countries": [ + "USA" + ] + }, + "usaf 336th rocketeers fs af88 high vis clean": { + "name": "USAF 336th Rocketeers AF88 High Vis Clean", + "countries": [ + "USA" + ] + }, + "usaf 333rd rocketeers fs af87-199 333 fgs": { + "name": "USAF 333rd Lancers AF87-0199 333 FGS", + "countries": [ + "USA" + ] + }, + "usaf 391st bold tigers fs af90-241 high vis combat": { + "name": "USAF 391st Bold Tigers AF90-241 High Vis Combat", + "countries": [ + "USA" + ] + }, + "usaf 492nd madhatters fs af96 low vis clean": { + "name": "USAF 492nd Madhatters AF96 Low Vis Clean", + "countries": [ + "USA" + ] + }, + "usaf 494th panthers fs af00 low vis combat": { + "name": "USAF 494th Panthers AF00 Low Vis Combat", + "countries": [ + "USA" + ] + }, + "usaf 492nd madhatters fs af91 low vis clean": { + "name": "USAF 492nd Madhatters AF91 Low Vis Clean", + "countries": [ + "USA" + ] + }, + "usaf 494th panthers fs af01 low vis combat": { + "name": "USAF 494th Panthers AF01 Low Vis Combat", + "countries": [ + "USA" + ] + }, + "usaf 492nd madhatters fs af98 low vis clean": { + "name": "USAF 492nd Madhatters AF98 Low Vis Clean", + "countries": [ + "USA" + ] + }, + "usaf 17th ws af90 low vis clean": { + "name": "USAF 17th Weapons Squadron AF90 Low Vis Clean", + "countries": [ + "USA" + ] + }, + "usaf 336th rocketeers fs af88-1673 336 fgs": { + "name": "USAF 336th Rocketeers AF88-1673 336 FGS", + "countries": [ + "USA" + ] + }, + "usaf 336th rocketeers fs af89 low vis combat": { + "name": "USAF 336th Rocketeers AF89 Low Vis Combat", + "countries": [ + "USA" + ] + }, + "usaf 492nd madhatters fs af91-308 low vis clean": { + "name": "USAF 492nd Madhatters AF91-308 Low Vis Clean", + "countries": [ + "USA" + ] + }, + "usaf 492nd madhatters fs af98 low vis combat": { + "name": "USAF 492nd Madhatters AF98 Low Vis Combat", + "countries": [ + "USA" + ] + }, + "usaf 391st bold tigers af90-250 tmota": { + "name": "USAF 391ST Bold Tigers 2005 Tiger Meet of the Americas", + "countries": [ + "USA" + ] + }, + "usaf af86-183 number1": { + "name": "USAF Test AF86-183 'Number 1'", + "countries": [ + "USA" + ] + }, + "usaf 17th wps af90-257": { + "name": "USAF 17th Weapons Squadron AF90-257 High Vis Clean", + "countries": [ + "USA" + ] + }, + "usaf 17th ws af90 high vis clean": { + "name": "USAF 17th Weapons Squadron AF90 High Vis Clean", + "countries": [ + "USA" + ] + }, + "usaf 492nd madhatters fs af96 low vis combat": { + "name": "USAF 492nd Madhatters AF96 Low Vis Combat", + "countries": [ + "USA" + ] + }, + "usaf 391st bold tigers fs af90 low vis combat": { + "name": "USAF 391st Bold Tigers AF90 Low Vis Combat", + "countries": [ + "USA" + ] + }, + "usaf 494th panthers fs 91-603 75th d-day anniversary": { + "name": "USAF 494th Panthers AF91-603 '75th Anniversary D-Day'", + "countries": [ + "USA" + ] + }, + "usaf 336th fw mountain home 75 years af87-173": { + "name": "USAF 366th FW 'Mountain Home 75 Years' AF87-0173", + "countries": [ + "USA" + ] + }, + "usaf 336th rocketeers fs af88-1687 mad duck iv": { + "name": "USAF 336th Rocketeers AF88-1687 'Mad Duck IV'", + "countries": [ + "USA" + ] + } } } } \ No newline at end of file diff --git a/client/public/databases/units/default/groundunitdatabase.json b/client/public/databases/units/default/groundunitdatabase.json index b9eea047..cca675d9 100644 --- a/client/public/databases/units/default/groundunitdatabase.json +++ b/client/public/databases/units/default/groundunitdatabase.json @@ -6,14 +6,20 @@ "label": "Box Spring", "shortLabel": "1L13 EWR", "filename": "", - "type": "Radar", + "type": "EW Radar", "enabled": true, "liveries": { "desert": { "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 300000, + "engagementRange": 0, + "description": "EWR built on a truck trailer", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "2B11 mortar": { "name": "2B11 mortar", @@ -22,7 +28,7 @@ "label": "2B11 mortar", "shortLabel": "2B11 mortar", "filename": "", - "type": "Gun Artillery", + "type": "Artillery", "enabled": true, "liveries": { "winter": { @@ -45,7 +51,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 7000, + "description": "Man portable 120mm mortar", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "2S6 Tunguska": { "name": "2S6 Tunguska", @@ -55,7 +67,7 @@ "shortLabel": "SA-19", "range": "Short", "filename": "", - "type": "AAA/SAM", + "type": "AAA", "enabled": true, "liveries": { "winter": { @@ -94,7 +106,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 18000, + "engagementRange": 8000, + "description": "2K22 Tunguska. Tracked self-propelled anti-aircraft 30mm guns and missiles", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "55G6 EWR": { "name": "55G6 EWR", @@ -103,14 +121,20 @@ "label": "Tall Rack", "shortLabel": "55G6 EWR", "filename": "", - "type": "Radar", + "type": "EW Radar", "enabled": true, "liveries": { "desert": { "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 400000, + "engagementRange": 0, + "description": "EWR built on a truck trailer", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "5p73 s-125 ln": { "name": "5p73 s-125 ln", @@ -159,7 +183,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 18000, + "description": "4 SA-3 missiles on a static emplacement. Requires grouping with SA-3 components", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "AAV7": { "name": "AAV7", @@ -168,7 +198,7 @@ "label": "AAV7", "shortLabel": "AAV7", "filename": "", - "type": "APC", + "type": "Armoured Personnel Carrier", "enabled": true, "liveries": { "winter": { @@ -191,7 +221,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 1200, + "description": "Amphibious assault vehicle. Tracked", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "ATMZ-5": { "name": "ATMZ-5", @@ -207,7 +243,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "Refueler truck. Wheeled", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "ATZ-10": { "name": "ATZ-10", @@ -223,7 +265,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "Refueler truck. Wheeled", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "BMD-1": { "name": "BMD-1", @@ -232,7 +280,7 @@ "label": "BMD-1", "shortLabel": "BMD-1", "filename": "", - "type": "IFV", + "type": "Infantry Fighting Vehicle", "enabled": true, "liveries": { "winter": { @@ -275,7 +323,15 @@ "name": "Desert", "countries": "All" } - } + }, + "barrelHeight": 1.25, + "muzzleVelocity": 900, + "acquisitionRange": 0, + "engagementRange": 3000, + "description": "Infantry fighting vehicle. Tracked. Amphibious", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "BMP-1": { "name": "BMP-1", @@ -284,7 +340,7 @@ "label": "BMP-1", "shortLabel": "BMP-1", "filename": "", - "type": "IFV", + "type": "Infantry Fighting Vehicle", "enabled": true, "liveries": { "winter": { @@ -371,7 +427,13 @@ "name": "RUS_Spring", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 3000, + "description": "Infantry fighting vehicle. Tracked. Amphibious", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "BMP-2": { "name": "BMP-2", @@ -380,7 +442,7 @@ "label": "BMP-2", "shortLabel": "BMP-2", "filename": "", - "type": "IFV", + "type": "Infantry Fighting Vehicle", "enabled": true, "liveries": { "ukr_summer": { @@ -451,7 +513,15 @@ "name": "Desert", "countries": "All" } - } + }, + "barrelHeight": 1.95, + "muzzleVelocity": 970, + "acquisitionRange": 0, + "engagementRange": 3000, + "description": "Infantry fighting vehicle. Tracked. Amphibious", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "BMP-3": { "name": "BMP-3", @@ -460,7 +530,7 @@ "label": "BMP-3", "shortLabel": "BMP-3", "filename": "", - "type": "IFV", + "type": "Infantry Fighting Vehicle", "enabled": true, "liveries": { "winter": { @@ -499,7 +569,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 4000, + "description": "Infantry fighting vehicle. Tracked. Amphibious", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "BRDM-2": { "name": "BRDM-2", @@ -508,7 +584,7 @@ "label": "BRDM-2", "shortLabel": "BRDM-2", "filename": "", - "type": "Reconnaissance", + "type": "Armoured Car", "enabled": true, "liveries": { "winter": { @@ -547,7 +623,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 1600, + "description": "Scout car. Wheeled. Amphibious", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "BTR-80": { "name": "BTR-80", @@ -556,7 +638,7 @@ "label": "BTR-80", "shortLabel": "BTR-80", "filename": "", - "type": "APC", + "type": "Armoured Personnel Carrier", "enabled": true, "liveries": { "winter": { @@ -627,7 +709,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 1600, + "description": "Armoured persononel carrier. Wheeled. Amphibious", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "BTR_D": { "name": "BTR_D", @@ -636,7 +724,7 @@ "label": "BTR_D", "shortLabel": "BTR_D", "filename": "", - "type": "APC", + "type": "Armoured Personnel Carrier", "enabled": true, "liveries": { "winter": { @@ -675,17 +763,13 @@ "name": "Desert", "countries": "All" } - } - }, - "Boman": { - "name": "Boman", - "coalition": "blue", - "era": "Late Cold War", - "label": "Grad Fire Direction Manager", - "shortLabel": "Boman", - "filename": "", - "type": "Reconnaissance", - "enabled": true + }, + "acquisitionRange": 0, + "engagementRange": 3000, + "description": "Armoured persononel carrier. Tracked.", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "Bunker": { "name": "Bunker", @@ -694,8 +778,14 @@ "label": "Bunker", "shortLabel": "Bunker", "filename": "", - "type": "Static", - "enabled": true + "type": "Structure", + "enabled": true, + "acquisitionRange": 0, + "engagementRange": 800, + "description": "Concrete bunker. Structure. Fixed Position.", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "Challenger2": { "name": "Challenger2", @@ -715,7 +805,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 3500, + "description": "Main battle tank. Tracked. Modern and heavily armoured.", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "Cobra": { "name": "Cobra", @@ -724,17 +820,23 @@ "label": "Otokar Cobra", "shortLabel": "Cobra", "filename": "", - "type": "Reconnaissance", - "enabled": true + "type": "Armoured Car", + "enabled": true, + "acquisitionRange": 0, + "engagementRange": 1200, + "description": "Armoured car, MRAP. Wheeled.", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "Dog Ear radar": { "name": "Dog Ear radar", "coalition": "red", "era": "Mid Cold War", "label": "Dog Ear", - "shortLabel": "Dog Ear radar", + "shortLabel": "Dog Ear Radar", "filename": "", - "type": "SAM Search radar", + "type": "SAM Track Radar", "enabled": true, "liveries": { "ukr_summer": { @@ -789,7 +891,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 35000, + "engagementRange": 0, + "description": "9S80-1 Sborka Mobile. Tracked fire control Radar that can integrate with missile and gun systems.", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "GAZ-3307": { "name": "GAZ-3307", @@ -805,7 +913,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "Civilian truck, single axle, wheeled", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "GAZ-3308": { "name": "GAZ-3308", @@ -821,7 +935,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "Military truck, single axle, canvas covered cargo bay. wheeled", + "abilities": "", + "canTargetPoint": false, + "canRearm": true }, "GAZ-66": { "name": "GAZ-66", @@ -869,7 +989,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "Military truck, single axle, open cargo bay. wheeled", + "abilities": "", + "canTargetPoint": false, + "canRearm": true }, "Gepard": { "name": "Gepard", @@ -901,7 +1027,15 @@ "name": "Desert", "countries": "All" } - } + }, + "barrelHeight": 2.35, + "muzzleVelocity": 1440, + "acquisitionRange": 15000, + "engagementRange": 4000, + "description": "Tracked self-propelled anti-aircraft 35mm guns", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "Grad-URAL": { "name": "Grad-URAL", @@ -910,8 +1044,14 @@ "label": "Grad", "shortLabel": "Grad", "filename": "", - "type": "Rocket Artillery", - "enabled": true + "type": "Unarmed", + "enabled": true, + "acquisitionRange": 0, + "engagementRange": 19000, + "description": "Military truck, single axle, open cargo bay. wheeled", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "HEMTT TFFT": { "name": "HEMTT TFFT", @@ -927,7 +1067,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "Military truck, 2 axle, firefigther. wheeled", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "Hawk SAM Battery": { "name": "Hawk SAM Battery", @@ -938,7 +1084,13 @@ "range": "Medium", "filename": "", "type": "SAM Site", - "enabled": true + "enabled": true, + "acquisitionRange": 90000, + "engagementRange": 0, + "description": "Multiple unit SAM site", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "Hawk cwar": { "name": "Hawk cwar", @@ -948,7 +1100,7 @@ "shortLabel": "Hawk cwar", "range": "Long", "filename": "", - "type": "SAM Track radar", + "type": "SAM Search Radar", "enabled": true, "liveries": { "winter": { @@ -963,7 +1115,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 70000, + "engagementRange": 0, + "description": "Hawk site Aquisition Radar", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "Hawk ln": { "name": "Hawk ln", @@ -1292,7 +1450,13 @@ "ITA" ] } - } + }, + "acquisitionRange": 0, + "engagementRange": 45000, + "description": "Hawk site missile laucher. 3 missiles. Needs rest of site to fuction", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "Hawk pcp": { "name": "Hawk pcp", @@ -1317,17 +1481,23 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "Hawk site command post. Medium sized trailer.", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "Hawk sr": { "name": "Hawk sr", "coalition": "blue", "era": "Early Cold War", - "label": "Hawk Search radar", + "label": "Hawk Search Radar", "shortLabel": "Hawk sr", "range": "Long", "filename": "", - "type": "SAM Search radar", + "type": "SAM Search Radar", "enabled": true, "liveries": { "xx337 - 92 sqn blue tail": { @@ -1647,17 +1817,23 @@ "ITA" ] } - } + }, + "acquisitionRange": 90000, + "engagementRange": 0, + "description": "Hawk site search Radar. Medium sized trailer", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "Hawk tr": { "name": "Hawk tr", "coalition": "blue", "era": "Early Cold War", - "label": "Hawk Track radar", + "label": "Hawk Track Radar", "shortLabel": "Hawk tr", "range": "Medium", "filename": "", - "type": "SAM Track radar", + "type": "SAM Track Radar", "enabled": true, "liveries": { "xx337 - 92 sqn blue tail": { @@ -1977,7 +2153,13 @@ "ITA" ] } - } + }, + "acquisitionRange": 90000, + "engagementRange": 0, + "description": "Hawk site track Radar. Medium sized trailer", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "Hummer": { "name": "Hummer", @@ -1986,7 +2168,7 @@ "label": "Hummer", "shortLabel": "Hummer", "filename": "", - "type": "Unarmed", + "type": "Armoured Car", "enabled": true, "liveries": { "winter": { @@ -2025,7 +2207,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "Military car, single axle, wheeled", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "IKARUS Bus": { "name": "IKARUS Bus", @@ -2035,7 +2223,13 @@ "shortLabel": "IKARUS Bus", "filename": "", "type": "Unarmed", - "enabled": true + "enabled": true, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "Civilian Bus. Yellow. Bendy bus", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "Igla manpad INS": { "name": "Igla manpad INS", @@ -2064,7 +2258,13 @@ "name": "GRC_Winter", "countries": "All" } - } + }, + "acquisitionRange": 5000, + "engagementRange": 5200, + "description": "9K38/SA-18 Man portable air defence. Heatseaker", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "Infantry AK": { "name": "Infantry AK", @@ -2075,8 +2275,14 @@ "filename": "", "type": "Infantry", "enabled": true, - "muzzleVelocity": 860, - "barrelHeight": 0.9 + "muzzleVelocity": 900, + "barrelHeight": 0.9, + "acquisitionRange": 0, + "engagementRange": 500, + "description": "Single infantry carrying AK-74", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "KAMAZ Truck": { "name": "KAMAZ Truck", @@ -2124,7 +2330,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "Military truck, 2 axle, wheeled", + "abilities": "", + "canTargetPoint": false, + "canRearm": true }, "Kub 1S91 str": { "name": "Kub 1S91 str", @@ -2134,7 +2346,7 @@ "shortLabel": "Kub 1S91 str", "range": "Medium", "filename": "", - "type": "SAM Search/Track radar", + "type": "SAM Search/Track Radar", "enabled": true, "liveries": { "winter": { @@ -2157,7 +2369,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 70000, + "engagementRange": 0, + "description": "SA-6/Kub search and track Radar, tracked.", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "Kub 2P25 ln": { "name": "Kub 2P25 ln", @@ -2190,7 +2408,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 25000, + "description": "SA-6/Kub launcher. 3 missiles. Tracked. Needs rest of site to function", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "LAV-25": { "name": "LAV-25", @@ -2199,7 +2423,7 @@ "label": "LAV-25", "shortLabel": "LAV-25", "filename": "", - "type": "IFV", + "type": "Infantry Fighting Vehicle", "enabled": true, "liveries": { "winter": { @@ -2238,7 +2462,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 2500, + "description": "Infantry fighter vehicle. Wheeled. Amphibious", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "LAZ Bus": { "name": "LAZ Bus", @@ -2248,7 +2478,13 @@ "shortLabel": "LAZ Bus", "filename": "", "type": "Unarmed", - "enabled": true + "enabled": true, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "Civilian bus. Single Axle. Wheeled", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "Leclerc": { "name": "Leclerc", @@ -2264,7 +2500,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 3500, + "description": "Main battle tank. Tracked. Modern and heavily armoured.", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "Leopard-2": { "name": "Leopard-2", @@ -2424,7 +2666,13 @@ "name": "FIN_autumn", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 3500, + "description": "Main battle tank. Tracked. Modern and heavily armoured.", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "Leopard1A3": { "name": "Leopard1A3", @@ -2472,7 +2720,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 2500, + "description": "Main battle tank. Tracked. Heavily armoured.", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "M 818": { "name": "M 818", @@ -2500,7 +2754,13 @@ "name": "summer", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "???", + "abilities": "", + "canTargetPoint": false, + "canRearm": true }, "M-1 Abrams": { "name": "M-1 Abrams", @@ -2532,7 +2792,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 3500, + "description": "Main battle tank. Tracked. Modern and heavily armoured.", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "M-109": { "name": "M-109", @@ -2541,7 +2807,7 @@ "label": "M-109 Paladin", "shortLabel": "M-109", "filename": "", - "type": "Gun Artillery", + "type": "Artillery", "enabled": true, "liveries": { "winter": { @@ -2580,7 +2846,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 22000, + "description": "???", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "M-113": { "name": "M-113", @@ -2589,7 +2861,7 @@ "label": "M-113", "shortLabel": "M-113", "filename": "", - "type": "APC", + "type": "Armoured Personnel Carrier", "enabled": true, "liveries": { "winter": { @@ -2672,7 +2944,13 @@ "name": "summer", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 1200, + "description": "Armoured personnel carrier. Tracked. Amphibious", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "M-2 Bradley": { "name": "M-2 Bradley", @@ -2681,7 +2959,7 @@ "label": "M-2A2 Bradley", "shortLabel": "M-2 Bradley", "filename": "", - "type": "IFV", + "type": "Infantry Fighting Vehicle", "enabled": true, "liveries": { "winter": { @@ -2704,7 +2982,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 3800, + "description": "Infantry fighting vehicle. Tracked.", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "M-60": { "name": "M-60", @@ -2736,7 +3020,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 8000, + "description": "Main battle tank. Tracked. Heavily armoured.", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "M1043 HMMWV Armament": { "name": "M1043 HMMWV Armament", @@ -2745,7 +3035,7 @@ "label": "HMMWV M2 Browning", "shortLabel": "HMMWV M2", "filename": "", - "type": "Reconnaissance", + "type": "Armoured Car", "enabled": true, "liveries": { "winter": { @@ -2784,7 +3074,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 1200, + "description": "Military car, single axle, wheeled", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "M1045 HMMWV TOW": { "name": "M1045 HMMWV TOW", @@ -2793,7 +3089,7 @@ "label": "HMMWV TOW", "shortLabel": "HMMWV TOW", "filename": "", - "type": "Reconnaissance", + "type": "Armoured Car", "enabled": true, "liveries": { "winter": { @@ -2832,7 +3128,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 3800, + "description": "Military car, single axle, wheeled", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "M1097 Avenger": { "name": "M1097 Avenger", @@ -2842,7 +3144,13 @@ "shortLabel": "M1097 Avenger", "filename": "", "type": "SAM", - "enabled": true + "enabled": true, + "acquisitionRange": 5200, + "engagementRange": 4500, + "description": "Military car, single axle, wheeled", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "M1126 Stryker ICV": { "name": "M1126 Stryker ICV", @@ -2851,8 +3159,14 @@ "label": "Stryker MG", "shortLabel": "Stryker MG", "filename": "", - "type": "APC", - "enabled": true + "type": "Armoured Personnel Carrier", + "enabled": true, + "acquisitionRange": 0, + "engagementRange": 1200, + "description": "Armoured personnel carrier. Wheeled.", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "M1128 Stryker MGS": { "name": "M1128 Stryker MGS", @@ -2861,8 +3175,14 @@ "label": "M1128 Stryker MGS", "shortLabel": "M1128 Stryker MGS", "filename": "", - "type": "SPG", - "enabled": true + "type": "Self Propelled Gun", + "enabled": true, + "acquisitionRange": 0, + "engagementRange": 4000, + "description": "Self propelled gun. Wheeled.", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "M1134 Stryker ATGM": { "name": "M1134 Stryker ATGM", @@ -2871,8 +3191,14 @@ "label": "Stryker ATGM", "shortLabel": "Stryker ATGM", "filename": "", - "type": "IFV", - "enabled": true + "type": "Armoured Personnel Carrier", + "enabled": true, + "acquisitionRange": 0, + "engagementRange": 3800, + "description": "Armoured personnel carrier. Wheeled.", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "M48 Chaparral": { "name": "M48 Chaparral", @@ -2936,7 +3262,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 10000, + "engagementRange": 8500, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "M6 Linebacker": { "name": "M6 Linebacker", @@ -2968,7 +3300,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 8000, + "engagementRange": 4500, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "M978 HEMTT Tanker": { "name": "M978 HEMTT Tanker", @@ -3000,7 +3338,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "MAZ-6303": { "name": "MAZ-6303", @@ -3032,16 +3376,22 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "MCV-80": { "name": "MCV-80", "coalition": "blue", "era": "Late Cold War", - "label": "Warrior IFV", + "label": "Warrior Infantry Fighting Vehicle", "shortLabel": "Warrior", "filename": "", - "type": "IFV", + "type": "Infantry Fighting Vehicle", "enabled": true, "liveries": { "winter": { @@ -3064,7 +3414,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 2500, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "MLRS": { "name": "MLRS", @@ -3112,7 +3468,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 32000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "MTLB": { "name": "MTLB", @@ -3121,7 +3483,7 @@ "label": "MT-LB", "shortLabel": "MT-LB", "filename": "", - "type": "APC", + "type": "Armoured Personnel Carrier", "enabled": true, "liveries": { "winter": { @@ -3160,7 +3522,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 1000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "Marder": { "name": "Marder", @@ -3169,7 +3537,7 @@ "label": "Marder", "shortLabel": "Marder", "filename": "", - "type": "IFV", + "type": "Infantry Fighting Vehicle", "enabled": true, "liveries": { "winter": { @@ -3192,7 +3560,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 1500, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "Osa 9A33 ln": { "name": "Osa 9A33 ln", @@ -3225,7 +3599,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 30000, + "engagementRange": 10300, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "Paratrooper AKS-74": { "name": "Paratrooper AKS-74", @@ -3235,7 +3615,13 @@ "shortLabel": "Paratrooper AKS-74", "filename": "", "type": "Infantry", - "enabled": true + "enabled": true, + "acquisitionRange": 0, + "engagementRange": 500, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "Paratrooper RPG-16": { "name": "Paratrooper RPG-16", @@ -3245,7 +3631,13 @@ "shortLabel": "Paratrooper RPG-16", "filename": "", "type": "Infantry", - "enabled": true + "enabled": true, + "acquisitionRange": 0, + "engagementRange": 500, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "Patriot AMG": { "name": "Patriot AMG", @@ -3278,7 +3670,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "Patriot ECS": { "name": "Patriot ECS", @@ -3311,7 +3709,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "Patriot EPP": { "name": "Patriot EPP", @@ -3344,7 +3748,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "Patriot cp": { "name": "Patriot cp", @@ -3377,7 +3787,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "Patriot ln": { "name": "Patriot ln", @@ -3410,7 +3826,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 100000, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "Patriot site": { "name": "Patriot site", @@ -3443,17 +3865,23 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 160000, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "Patriot str": { "name": "Patriot str", "coalition": "blue", "era": "Late Cold War", - "label": "Patriot Search/Track radar", + "label": "Patriot Search/Track Radar", "shortLabel": "Patriot str", "range": "Medium", "filename": "", - "type": "SAM Search/Track radar", + "type": "SAM Search/Track Radar", "enabled": true, "liveries": { "grc_summer": { @@ -3476,7 +3904,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 160000, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "Predator GCS": { "name": "Predator GCS", @@ -3494,7 +3928,13 @@ "USA" ] } - } + }, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "Predator TrojanSpirit": { "name": "Predator TrojanSpirit", @@ -3504,7 +3944,13 @@ "shortLabel": "Predator TrojanSpirit", "filename": "", "type": "Unarmed", - "enabled": true + "enabled": true, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "RLS_19J6": { "name": "RLS_19J6", @@ -3514,7 +3960,7 @@ "shortLabel": "RLS 19J6", "range": "Long", "filename": "", - "type": "SAM Search radar", + "type": "SAM Search Radar", "enabled": true, "liveries": { "spring": { @@ -3533,7 +3979,13 @@ "name": "summer", "countries": "All" } - } + }, + "acquisitionRange": 150000, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "RPC_5N62V": { "name": "RPC_5N62V", @@ -3543,7 +3995,7 @@ "shortLabel": "RPC 5N62V", "range": "Long", "filename": "", - "type": "SAM Track radar", + "type": "SAM Track Radar", "enabled": true, "liveries": { "desert_spring": { @@ -3610,7 +4062,13 @@ "name": "S-200_Radar_Cam_Winter", "countries": "All" } - } + }, + "acquisitionRange": 400000, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "Roland ADS": { "name": "Roland ADS", @@ -3626,23 +4084,35 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 12000, + "engagementRange": 8000, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "Roland Radar": { "name": "Roland Radar", "coalition": "blue", "era": "Mid Cold War", - "label": "Roland Search radar", + "label": "Roland Search Radar", "shortLabel": "Roland Radar", "filename": "", - "type": "SAM Search radar", + "type": "SAM Search Radar", "enabled": true, "liveries": { "desert": { "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 35000, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": "no", + "canRearm": "no" }, "S-200_Launcher": { "name": "S-200_Launcher", @@ -3719,7 +4189,13 @@ "name": "S-200_Launcher_Cam_Winter", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 255000, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "S-300PS 40B6M tr": { "name": "S-300PS 40B6M tr", @@ -3729,7 +4205,7 @@ "shortLabel": "S-300PS 40B6M tr", "range": "Long", "filename": "", - "type": "SAM Track radar", + "type": "SAM Track Radar", "enabled": true, "liveries": { "grc_summer": { @@ -3752,7 +4228,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 160000, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "S-300PS 40B6MD sr": { "name": "S-300PS 40B6MD sr", @@ -3762,7 +4244,7 @@ "shortLabel": "S-300PS 40B6MD sr", "range": "Long", "filename": "", - "type": "SAM Search radar", + "type": "SAM Search Radar", "enabled": true, "liveries": { "grc_summer": { @@ -3785,7 +4267,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 60000, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "S-300PS 54K6 cp": { "name": "S-300PS 54K6 cp", @@ -3818,7 +4306,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "S-300PS 5P85C ln": { "name": "S-300PS 5P85C ln", @@ -3851,7 +4345,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 120000, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "S-300PS 5P85D ln": { "name": "S-300PS 5P85D ln", @@ -3884,7 +4384,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 120000, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "S-300PS 64H6E sr": { "name": "S-300PS 64H6E sr", @@ -3894,7 +4400,7 @@ "shortLabel": "S-300PS 64H6E sr", "range": "Long", "filename": "", - "type": "SAM Search radar", + "type": "SAM Search Radar", "enabled": true, "liveries": { "grc_summer": { @@ -3917,7 +4423,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 160000, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "SA-10 SAM Battery": { "name": "SA-10 SAM Battery", @@ -3928,7 +4440,13 @@ "range": "Long", "filename": "", "type": "SAM Site", - "enabled": true + "enabled": true, + "acquisitionRange": "", + "engagementRange": "", + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "SA-11 Buk CC 9S470M1": { "name": "SA-11 Buk CC 9S470M1", @@ -3993,7 +4511,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "SA-11 Buk LN 9A310M1": { "name": "SA-11 Buk LN 9A310M1", @@ -4010,7 +4534,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 50000, + "engagementRange": 35000, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "SA-11 Buk SR 9S18M1": { "name": "SA-11 Buk SR 9S18M1", @@ -4020,7 +4550,7 @@ "shortLabel": "SA-11 Buk SR 9S18M1", "range": "Long", "filename": "", - "type": "SAM Search radar", + "type": "SAM Search Radar", "enabled": true, "liveries": { "ukr_summer": { @@ -4075,7 +4605,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 100000, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "SA-11 SAM Battery": { "name": "SA-11 SAM Battery", @@ -4086,7 +4622,13 @@ "range": "Medium", "filename": "", "type": "SAM Site", - "enabled": true + "enabled": true, + "acquisitionRange": "", + "engagementRange": "", + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "SA-18 Igla manpad": { "name": "SA-18 Igla manpad", @@ -4097,7 +4639,13 @@ "range": "Short", "filename": "", "type": "MANPADS", - "enabled": true + "enabled": true, + "acquisitionRange": 5000, + "engagementRange": 5200, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "SA-18 Igla-S manpad": { "name": "SA-18 Igla-S manpad", @@ -4108,7 +4656,13 @@ "range": "Short", "filename": "", "type": "MANPADS", - "enabled": true + "enabled": true, + "acquisitionRange": 5000, + "engagementRange": 5200, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "SA-2 SAM Battery": { "name": "SA-2 SAM Battery", @@ -4119,7 +4673,13 @@ "range": "Long", "filename": "", "type": "SAM Site", - "enabled": true + "enabled": true, + "acquisitionRange": "", + "engagementRange": "", + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "SA-3 SAM Battery": { "name": "SA-3 SAM Battery", @@ -4130,7 +4690,13 @@ "range": "Medium", "filename": "", "type": "SAM Site", - "enabled": true + "enabled": true, + "acquisitionRange": "", + "engagementRange": "", + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "SA-5 SAM Battery": { "name": "SA-5 SAM Battery", @@ -4141,7 +4707,13 @@ "range": "Long", "filename": "", "type": "SAM Site", - "enabled": true + "enabled": true, + "acquisitionRange": "", + "engagementRange": "", + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "SA-6 SAM Battery": { "name": "SA-6 SAM Battery", @@ -4152,18 +4724,13 @@ "range": "Medium", "filename": "", "type": "SAM Site", - "enabled": true - }, - "SA-8 Osa LD 9T217": { - "name": "SA-8 Osa LD 9T217", - "coalition": "red", - "era": "Late Cold War", - "label": "SA-8 Osa LD 9T217", - "shortLabel": "SA-8 Osa LD 9T217", - "range": "Short", - "filename": "", - "type": "SAM", - "enabled": true + "enabled": true, + "description": "2K12 Kub. Tracked self propelled straight fush Radars, and TELs. 3 missiles per TEL.", + "abilities": "", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": false, + "canRearm": false }, "SAU 2-C9": { "name": "SAU 2-C9", @@ -4172,7 +4739,7 @@ "label": "SAU Nona", "shortLabel": "SAU Nona", "filename": "", - "type": "Gun Artillery", + "type": "Artillery", "enabled": true, "liveries": { "winter": { @@ -4211,7 +4778,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 7000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "SAU Akatsia": { "name": "SAU Akatsia", @@ -4220,7 +4793,7 @@ "label": "SAU Akatsia", "shortLabel": "SAU Akatsia", "filename": "", - "type": "Gun Artillery", + "type": "Artillery", "enabled": true, "liveries": { "winter": { @@ -4259,7 +4832,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 17000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "SAU Gvozdika": { "name": "SAU Gvozdika", @@ -4268,7 +4847,7 @@ "label": "SAU Gvozdika", "shortLabel": "SAU Gvozdika", "filename": "", - "type": "Gun Artillery", + "type": "Artillery", "enabled": true, "liveries": { "winter": { @@ -4307,7 +4886,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 15000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "SAU Msta": { "name": "SAU Msta", @@ -4316,7 +4901,7 @@ "label": "SAU Msta", "shortLabel": "SAU Msta", "filename": "", - "type": "Gun Artillery", + "type": "Artillery", "enabled": true, "liveries": { "winter": { @@ -4355,7 +4940,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 23500, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "SKP-11": { "name": "SKP-11", @@ -4371,7 +4962,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "SNR_75V": { "name": "SNR_75V", @@ -4380,7 +4977,7 @@ "label": "SA-2 Fan Song", "shortLabel": "SNR 75V", "filename": "", - "type": "SAM Track radar", + "type": "SAM Track Radar", "enabled": true, "liveries": { "winter": { @@ -4403,7 +5000,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 100000, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "S_75M_Volhov": { "name": "S_75M_Volhov", @@ -4435,7 +5038,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 43000, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "Sandbox": { "name": "Sandbox", @@ -4444,8 +5053,14 @@ "label": "Sandbox", "shortLabel": "Sandbox", "filename": "", - "type": "Static", - "enabled": true + "type": "Structure", + "enabled": true, + "acquisitionRange": 0, + "engagementRange": 800, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "Smerch": { "name": "Smerch", @@ -4477,7 +5092,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 70000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "Soldier AK": { "name": "Soldier AK", @@ -4521,7 +5142,15 @@ "name": "GRC_Winter", "countries": "All" } - } + }, + "muzzleVelocity": 900, + "barrelHeight": 0.9, + "acquisitionRange": 0, + "engagementRange": 500, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "Soldier M249": { "name": "Soldier M249", @@ -4565,7 +5194,13 @@ "name": "GRC_Winter", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 700, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "Soldier M4 GRG": { "name": "Soldier M4 GRG", @@ -4609,7 +5244,13 @@ "name": "GRC_Winter", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 500, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "Soldier M4": { "name": "Soldier M4", @@ -4653,7 +5294,13 @@ "name": "GRC_Winter", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 500, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "Soldier RPG": { "name": "Soldier RPG", @@ -4697,7 +5344,13 @@ "name": "GRC_Winter", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 500, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "Stinger comm dsr": { "name": "Stinger comm dsr", @@ -4730,7 +5383,13 @@ "name": "GRC_Winter", "countries": "All" } - } + }, + "acquisitionRange": 5000, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "Stinger comm": { "name": "Stinger comm", @@ -4763,94 +5422,13 @@ "name": "GRC_Winter", "countries": "All" } - } - }, - "Stinger manpad GRG": { - "name": "Stinger manpad GRG", - "coalition": "blue", - "era": "Late Cold War", - "label": "Stinger manpad GRG", - "shortLabel": "Stinger manpad GRG", - "range": "Short", - "filename": "", - "type": "MANPADS", - "enabled": true, - "liveries": { - "grc_spring": { - "name": "GRC_Spring", - "countries": "All" - }, - "grc_summer": { - "name": "GRC_Summer", - "countries": "All" - }, - "grc_autumn": { - "name": "GRC_Autumn", - "countries": "All" - }, - "grc_winter": { - "name": "GRC_Winter", - "countries": "All" - } - } - }, - "Stinger manpad dsr": { - "name": "Stinger manpad dsr", - "coalition": "blue", - "era": "Late Cold War", - "label": "Stinger manpad dsr", - "shortLabel": "Stinger manpad dsr", - "range": "Short", - "filename": "", - "type": "MANPADS", - "enabled": true, - "liveries": { - "grc_spring": { - "name": "GRC_Spring", - "countries": "All" - }, - "grc_summer": { - "name": "GRC_Summer", - "countries": "All" - }, - "grc_autumn": { - "name": "GRC_Autumn", - "countries": "All" - }, - "grc_winter": { - "name": "GRC_Winter", - "countries": "All" - } - } - }, - "Stinger manpad": { - "name": "Stinger manpad", - "coalition": "blue", - "era": "Late Cold War", - "label": "Stinger manpad", - "shortLabel": "Stinger manpad", - "range": "Short", - "filename": "", - "type": "MANPADS", - "enabled": true, - "liveries": { - "grc_spring": { - "name": "GRC_Spring", - "countries": "All" - }, - "grc_summer": { - "name": "GRC_Summer", - "countries": "All" - }, - "grc_autumn": { - "name": "GRC_Autumn", - "countries": "All" - }, - "grc_winter": { - "name": "GRC_Winter", - "countries": "All" - } - } + }, + "acquisitionRange": 5000, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "Strela-1 9P31": { "name": "Strela-1 9P31", @@ -4899,7 +5477,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 5000, + "engagementRange": 4200, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "Strela-10M3": { "name": "Strela-10M3", @@ -4948,7 +5532,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 8000, + "engagementRange": 5000, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "Suidae": { "name": "Suidae", @@ -4958,7 +5548,13 @@ "shortLabel": "Suidae", "filename": "", "type": "Unarmed", - "enabled": true + "enabled": true, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "T-55": { "name": "T-55", @@ -5006,7 +5602,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 2500, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "T-72B": { "name": "T-72B", @@ -5022,7 +5624,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 4000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "T-80UD": { "name": "T-80UD", @@ -5078,7 +5686,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 5000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "T-90": { "name": "T-90", @@ -5126,7 +5740,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 5000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "TPZ": { "name": "TPZ", @@ -5135,8 +5755,14 @@ "label": "TPz Fuchs", "shortLabel": "TPz Fuchs", "filename": "", - "type": "APC", - "enabled": true + "type": "Armoured Personnel Carrier", + "enabled": true, + "acquisitionRange": 0, + "engagementRange": 1000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "Tigr_233036": { "name": "Tigr_233036", @@ -5152,7 +5778,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "Tor 9A331": { "name": "Tor 9A331", @@ -5217,7 +5849,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 25000, + "engagementRange": 12000, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "Trolley bus": { "name": "Trolley bus", @@ -5227,7 +5865,13 @@ "shortLabel": "Trolley bus", "filename": "", "type": "Unarmed", - "enabled": true + "enabled": true, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "UAZ-469": { "name": "UAZ-469", @@ -5287,7 +5931,13 @@ "name": "ORANGE_Winter", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "Uragan_BM-27": { "name": "Uragan_BM-27", @@ -5351,7 +6001,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 35800, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "Ural ATsP-6": { "name": "Ural ATsP-6", @@ -5361,7 +6017,13 @@ "shortLabel": "Ural ATsP-6", "filename": "", "type": "Unarmed", - "enabled": true + "enabled": true, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "Ural-375 PBU": { "name": "Ural-375 PBU", @@ -5377,7 +6039,13 @@ "name": "desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "Ural-375 ZU-23 Insurgent": { "name": "Ural-375 ZU-23 Insurgent", @@ -5393,7 +6061,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 5000, + "engagementRange": 2500, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "Ural-375 ZU-23": { "name": "Ural-375 ZU-23", @@ -5409,7 +6083,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 5000, + "engagementRange": 2500, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "Ural-375": { "name": "Ural-375", @@ -5425,7 +6105,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": true }, "Ural-4320 APA-5D": { "name": "Ural-4320 APA-5D", @@ -5441,7 +6127,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "Lightly armoured", + "abilities": "", + "canTargetPoint": false, + "canRearm": true }, "Ural-4320-31": { "name": "Ural-4320-31", @@ -5457,7 +6149,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 0, + "abilities": "", + "description": "", + "canTargetPoint": false, + "canRearm": true }, "Ural-4320T": { "name": "Ural-4320T", @@ -5473,7 +6171,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 0, + "abilities": "", + "description": "", + "canTargetPoint": false, + "canRearm": true }, "VAZ Car": { "name": "VAZ Car", @@ -5483,7 +6187,13 @@ "shortLabel": "VAZ Car", "filename": "", "type": "Unarmed", - "enabled": true + "enabled": true, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "Vulcan": { "name": "Vulcan", @@ -5547,7 +6257,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 5000, + "engagementRange": 2000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "ZIL-131 KUNG": { "name": "ZIL-131 KUNG", @@ -5595,7 +6311,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "ZIL-4331": { "name": "ZIL-4331", @@ -5643,7 +6365,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "ZSU-23-4 Shilka": { "name": "ZSU-23-4 Shilka", @@ -5723,7 +6451,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 5000, + "engagementRange": 2500, + "description": "Ship", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "ZU-23 Closed Insurgent": { "name": "ZU-23 Closed Insurgent", @@ -5739,7 +6473,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 5000, + "engagementRange": 2500, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "ZU-23 Emplacement Closed": { "name": "ZU-23 Emplacement Closed", @@ -5771,7 +6511,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 5000, + "engagementRange": 2500, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "ZU-23 Emplacement": { "name": "ZU-23 Emplacement", @@ -5803,7 +6549,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 5000, + "engagementRange": 2500, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "ZU-23 Insurgent": { "name": "ZU-23 Insurgent", @@ -5819,7 +6571,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 5000, + "engagementRange": 2500, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "ZiL-131 APA-80": { "name": "ZiL-131 APA-80", @@ -5835,7 +6593,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "house1arm": { "name": "house1arm", @@ -5845,7 +6609,13 @@ "shortLabel": "house1arm", "filename": "", "type": "Structure", - "enabled": true + "enabled": true, + "acquisitionRange": 0, + "engagementRange": 800, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "house2arm": { "name": "house2arm", @@ -5855,7 +6625,13 @@ "shortLabel": "house2arm", "filename": "", "type": "Structure", - "enabled": true + "enabled": true, + "acquisitionRange": 0, + "engagementRange": 800, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "houseA_arm": { "name": "houseA_arm", @@ -5865,7 +6641,13 @@ "shortLabel": "houseA_arm", "filename": "", "type": "Structure", - "enabled": true + "enabled": true, + "acquisitionRange": 0, + "engagementRange": 800, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "outpost": { "name": "outpost", @@ -5875,7 +6657,13 @@ "shortLabel": "outpost", "filename": "", "type": "Structure", - "enabled": true + "enabled": true, + "acquisitionRange": 0, + "engagementRange": 800, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "outpost_road": { "name": "outpost_road", @@ -5885,7 +6673,13 @@ "shortLabel": "outpost_road", "filename": "", "type": "Structure", - "enabled": true + "enabled": true, + "acquisitionRange": 0, + "engagementRange": 800, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "p-19 s-125 sr": { "name": "p-19 s-125 sr", @@ -5894,7 +6688,7 @@ "label": "SA-3 Flat Face B", "shortLabel": "Flat Face B", "filename": "", - "type": "SAM Search radar", + "type": "SAM Search Radar", "enabled": true, "liveries": { "winter": { @@ -5933,7 +6727,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 160000, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "snr s-125 tr": { "name": "snr s-125 tr", @@ -5943,7 +6743,7 @@ "shortLabel": "snr s-125 tr", "range": "Medium", "filename": "", - "type": "SAM Track radar", + "type": "SAM Track Radar", "enabled": true, "liveries": { "winter": { @@ -5982,6 +6782,2236 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 100000, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "SpGH_Dana": { + "name": "SpGH_Dana", + "coalition": "", + "era": "", + "label": "SPH Dana vz77 152mm", + "shortLabel": "SPH Dana vz77 152mm", + "type": "Artillery", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 18700, + "description": "", + "abilities": "" + }, + "Grad_FDDM": { + "name": "Grad_FDDM", + "coalition": "", + "era": "", + "label": "Grad MRL FDDM (FC)", + "shortLabel": "Grad MRL FDDM (FC)", + "type": "Artillery", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 1000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "Infantry AK Ins": { + "name": "Infantry AK Ins", + "coalition": "", + "era": "", + "label": "Insurgent AK-74", + "shortLabel": "Insurgent AK-74", + "type": "Infantry", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 500, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "MLRS FDDM": { + "name": "MLRS FDDM", + "coalition": "", + "era": "", + "label": "MRLS FDDM (FC)", + "shortLabel": "MRLS FDDM (FC)", + "type": "Artillery", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 1200, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "Infantry AK ver2": { + "name": "Infantry AK ver2", + "coalition": "", + "era": "", + "label": "Infantry AK-74 Rus ver2", + "shortLabel": "Infantry AK-74 Rus ver2", + "type": "Infantry", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 500, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "Infantry AK ver3": { + "name": "Infantry AK ver3", + "coalition": "", + "era": "", + "label": "Infantry AK-74 Rus ver3", + "shortLabel": "Infantry AK-74 Rus ver3", + "type": "Infantry", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 500, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "Smerch_HE": { + "name": "Smerch_HE", + "coalition": "", + "era": "", + "label": "MLRS 9A52 Smerch HE 300mm", + "shortLabel": "MLRS 9A52 Smerch HE 300mm", + "type": "Artillery", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 70000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "Soldier stinger": { + "name": "Soldier stinger", + "coalition": "", + "era": "", + "label": "MANPADS Stinger", + "shortLabel": "MANPADS Stinger", + "type": "MANPADS", + "enabled": true, + "liveries": {}, + "acquisitionRange": 5000, + "engagementRange": 4500, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "SA-18 Igla comm": { + "name": "SA-18 Igla comm", + "coalition": "", + "era": "", + "label": "MANPADS SA-18 Igla \"Grouse\" C2", + "shortLabel": "MANPADS SA-18 Igla \"Grouse\" C2", + "type": "MANPADS", + "enabled": true, + "liveries": {}, + "acquisitionRange": 5000, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "SA-18 Igla-S comm": { + "name": "SA-18 Igla-S comm", + "coalition": "", + "era": "", + "label": "MANPADS SA-18 Igla-S \"Grouse\" C2", + "shortLabel": "MANPADS SA-18 Igla-S \"Grouse\" C2", + "type": "MANPADS", + "enabled": true, + "liveries": {}, + "acquisitionRange": 5000, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "TACAN_beacon": { + "name": "TACAN_beacon", + "coalition": "", + "era": "", + "label": "Beacon TACAN Portable TTS 3030", + "shortLabel": "Beacon TACAN Portable TTS 3030", + "type": "Structure", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "Merkava_Mk4": { + "name": "Merkava_Mk4", + "coalition": "", + "era": "", + "label": "Tank Merkava IV", + "shortLabel": "Tank Merkava IV", + "type": "Tank", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 3500, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "LiAZ Bus": { + "name": "LiAZ Bus", + "coalition": "", + "era": "", + "label": "Bus LiAZ-677", + "shortLabel": "Bus LiAZ-677", + "type": "Unarmed", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "KrAZ6322": { + "name": "KrAZ6322", + "coalition": "", + "era": "", + "label": "Truck KrAZ-6322 6x6", + "shortLabel": "Truck KrAZ-6322 6x6", + "type": "Unarmed", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": true + }, + "JTAC": { + "name": "JTAC", + "coalition": "", + "era": "", + "label": "JTAC", + "shortLabel": "JTAC", + "type": "Infantry", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "Infantry Animated": { + "name": "Infantry Animated", + "coalition": "", + "era": "", + "label": "Infantry", + "shortLabel": "Infantry", + "type": "Infantry", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 500, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "Electric locomotive": { + "name": "Electric locomotive", + "coalition": "", + "era": "", + "label": "Loco VL80 Electric", + "shortLabel": "Loco VL80 Electric", + "type": "Locomotive", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "Locomotive": { + "name": "Locomotive", + "coalition": "", + "era": "", + "label": "Loco CHME3T", + "shortLabel": "Loco CHME3T", + "type": "Locomotive", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "Coach cargo": { + "name": "Coach cargo", + "coalition": "", + "era": "", + "label": "Freight Van", + "shortLabel": "Freight Van", + "type": "Carriage", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "Coach cargo open": { + "name": "Coach cargo open", + "coalition": "", + "era": "", + "label": "Open Wagon", + "shortLabel": "Open Wagon", + "type": "Carriage", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "Coach a tank blue": { + "name": "Coach a tank blue", + "coalition": "", + "era": "", + "label": "Tank Car blue", + "shortLabel": "Tank Car blue", + "type": "Carriage", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "Coach a tank yellow": { + "name": "Coach a tank yellow", + "coalition": "", + "era": "", + "label": "Tank Car yellow", + "shortLabel": "Tank Car yellow", + "type": "Carriage", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "Coach a passenger": { + "name": "Coach a passenger", + "coalition": "", + "era": "", + "label": "Passenger Car", + "shortLabel": "Passenger Car", + "type": "Carriage", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "Coach a platform": { + "name": "Coach a platform", + "coalition": "", + "era": "", + "label": "Coach Platform", + "shortLabel": "Coach Platform", + "type": "Carriage", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "tacr2a": { + "name": "tacr2a", + "coalition": "", + "era": "", + "label": "RAF Rescue", + "shortLabel": "RAF Rescue", + "type": "Unarmed", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "LARC-V": { + "name": "LARC-V", + "coalition": "", + "era": "", + "label": "LARC-V", + "shortLabel": "LARC-V", + "type": "Unarmed", + "enabled": true, + "liveries": {}, + "acquisitionRange": 500, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "KS-19": { + "name": "KS-19", + "coalition": "", + "era": "", + "label": "AAA KS-19 100mm", + "shortLabel": "AAA KS-19 100mm", + "type": "AAA", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 20000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "SON_9": { + "name": "SON_9", + "coalition": "", + "era": "", + "label": "AAA Fire Can SON-9", + "shortLabel": "AAA Fire Can SON-9", + "type": "AAA", + "enabled": true, + "liveries": {}, + "acquisitionRange": 55000, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "Scud_B": { + "name": "Scud_B", + "coalition": "", + "era": "", + "label": "SSM SS-1C Scud-B", + "shortLabel": "SSM SS-1C Scud-B", + "type": "Missile system", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 320000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "HL_DSHK": { + "name": "HL_DSHK", + "coalition": "", + "era": "", + "label": "Scout HL with DSHK 12.7mm", + "shortLabel": "Scout HL with DSHK 12.7mm", + "type": "Armoured Car", + "enabled": true, + "liveries": {}, + "acquisitionRange": 5000, + "engagementRange": 1200, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "HL_KORD": { + "name": "HL_KORD", + "coalition": "", + "era": "", + "label": "Scout HL with KORD 12.7mm", + "shortLabel": "Scout HL with KORD 12.7mm", + "type": "Armoured Car", + "enabled": true, + "liveries": {}, + "acquisitionRange": 5000, + "engagementRange": 1200, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "tt_DSHK": { + "name": "tt_DSHK", + "coalition": "", + "era": "", + "label": "Scout LC with DSHK 12.7mm", + "shortLabel": "Scout LC with DSHK 12.7mm", + "type": "Armoured Car", + "enabled": true, + "liveries": {}, + "acquisitionRange": 5000, + "engagementRange": 1200, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "tt_KORD": { + "name": "tt_KORD", + "coalition": "", + "era": "", + "label": "Scout LC with KORD 12.7mm", + "shortLabel": "Scout LC with KORD 12.7mm", + "type": "Armoured Car", + "enabled": true, + "liveries": {}, + "acquisitionRange": 5000, + "engagementRange": 1200, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "HL_ZU-23": { + "name": "HL_ZU-23", + "coalition": "", + "era": "", + "label": "SPAAA HL with ZU-23", + "shortLabel": "SPAAA HL with ZU-23", + "type": "AAA", + "enabled": true, + "liveries": {}, + "acquisitionRange": 5000, + "engagementRange": 2500, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "tt_ZU-23": { + "name": "tt_ZU-23", + "coalition": "", + "era": "", + "label": "SPAAA LC with ZU-23", + "shortLabel": "SPAAA LC with ZU-23", + "type": "AAA", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 2500, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "HL_B8M1": { + "name": "HL_B8M1", + "coalition": "", + "era": "", + "label": "MLRS HL with B8M1 80mm", + "shortLabel": "MLRS HL with B8M1 80mm", + "type": "Artillery", + "enabled": true, + "liveries": {}, + "acquisitionRange": 5000, + "engagementRange": 5000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "tt_B8M1": { + "name": "tt_B8M1", + "coalition": "", + "era": "", + "label": "MLRS LC with B8M1 80mm", + "shortLabel": "MLRS LC with B8M1 80mm", + "type": "Artillery", + "enabled": true, + "liveries": {}, + "acquisitionRange": 5000, + "engagementRange": 5000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "NASAMS_Radar_MPQ64F1": { + "name": "NASAMS_Radar_MPQ64F1", + "coalition": "", + "era": "", + "label": "SAM NASAMS SR MPQ64F1", + "shortLabel": "SAM NASAMS SR MPQ64F1", + "type": "SAM Search Radar", + "enabled": true, + "liveries": {}, + "acquisitionRange": 50000, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": "no", + "canRearm": "no" + }, + "NASAMS_Command_Post": { + "name": "NASAMS_Command_Post", + "coalition": "", + "era": "", + "label": "SAM NASAMS C2", + "shortLabel": "SAM NASAMS C2", + "type": "SAM Support vehicle", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "NASAMS_LN_B": { + "name": "NASAMS_LN_B", + "coalition": "", + "era": "", + "label": "SAM NASAMS LN AIM-120B", + "shortLabel": "SAM NASAMS LN AIM-120B", + "type": "SAM Launcher", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 15000, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "NASAMS_LN_C": { + "name": "NASAMS_LN_C", + "coalition": "", + "era": "", + "label": "SAM NASAMS LN AIM-120C", + "shortLabel": "SAM NASAMS LN AIM-120C", + "type": "SAM Launcher", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 15000, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "M4_Sherman": { + "name": "M4_Sherman", + "coalition": "", + "era": "", + "label": "Tk M4 Sherman", + "shortLabel": "Tk M4 Sherman", + "type": "Tank", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 3000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "M2A1_halftrack": { + "name": "M2A1_halftrack", + "coalition": "", + "era": "", + "label": "Armoured Personnel Carrier M2A1 Halftrack", + "shortLabel": "Armoured Personnel Carrier M2A1 Halftrack", + "type": "Armoured Personnel Carrier", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 1200, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "FPS-117 Dome": { + "name": "FPS-117 Dome", + "coalition": "", + "era": "", + "label": "EWR AN/FPS-117 Radar (domed)", + "shortLabel": "EWR AN/FPS-117 Radar (domed)", + "type": "EW Radar", + "enabled": true, + "liveries": {}, + "acquisitionRange": 400000, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "FPS-117 ECS": { + "name": "FPS-117 ECS", + "coalition": "", + "era": "", + "label": "EWR AN/FPS-117 ECS", + "shortLabel": "EWR AN/FPS-117 ECS", + "type": "EW Radar", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "FPS-117": { + "name": "FPS-117", + "coalition": "", + "era": "", + "label": "EW Radar", + "shortLabel": "EWR AN/FPS-117 Radar", + "type": "EW Radar", + "enabled": true, + "liveries": {}, + "acquisitionRange": 463000, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "RD_75": { + "name": "RD_75", + "coalition": "", + "era": "", + "label": "SAM SA-2 S-75 RD-75 Amazonka RF", + "shortLabel": "SAM SA-2 S-75 RD-75 Amazonka RF", + "type": "EW Radar", + "enabled": true, + "liveries": {}, + "acquisitionRange": 100000, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "ZSU_57_2": { + "name": "ZSU_57_2", + "coalition": "", + "era": "", + "label": "SPAAA ZSU-57-2", + "shortLabel": "SPAAA ZSU-57-2", + "type": "AAA", + "enabled": true, + "liveries": {}, + "acquisitionRange": 5000, + "engagementRange": 7000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "S-60_Type59_Artillery": { + "name": "S-60_Type59_Artillery", + "coalition": "", + "era": "", + "label": "AAA S-60 57mm", + "shortLabel": "AAA S-60 57mm", + "type": "AAA", + "enabled": true, + "liveries": {}, + "acquisitionRange": 5000, + "engagementRange": 6000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "generator_5i57": { + "name": "generator_5i57", + "coalition": "", + "era": "", + "label": "Diesel Power Station 5I57A", + "shortLabel": "Diesel Power Station 5I57A", + "type": "Unarmed", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "T-72B3": { + "name": "T-72B3", + "coalition": "", + "era": "", + "label": "Tank T-72B3", + "shortLabel": "Tank T-72B3", + "type": "Tank", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 4000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "PT_76": { + "name": "PT_76", + "coalition": "", + "era": "", + "label": "LT PT-76", + "shortLabel": "LT PT-76", + "type": "Tank", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 2000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "BTR-82A": { + "name": "BTR-82A", + "coalition": "", + "era": "", + "label": "Infantry Fighting Vehicle BTR-82A", + "shortLabel": "Infantry Fighting Vehicle BTR-82A", + "type": "Infantry Fighting Vehicle", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 2000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "ATZ-5": { + "name": "ATZ-5", + "coalition": "", + "era": "", + "label": "Refueler ATZ-5", + "shortLabel": "Refueler ATZ-5", + "type": "Unarmed", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "AA8": { + "name": "AA8", + "coalition": "", + "era": "", + "label": "Firefighter Vehicle AA-7.2/60", + "shortLabel": "Firefighter Vehicle AA-7.2/60", + "type": "Unarmed", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "TZ-22_KrAZ": { + "name": "TZ-22_KrAZ", + "coalition": "", + "era": "", + "label": "Refueler TZ-22 Tractor (KrAZ-258B1)", + "shortLabel": "Refueler TZ-22 Tractor (KrAZ-258B1)", + "type": "Unarmed", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "ATZ-60_Maz": { + "name": "ATZ-60_Maz", + "coalition": "", + "era": "", + "label": "Refueler ATZ-60 Tractor (MAZ-7410)", + "shortLabel": "Refueler ATZ-60 Tractor (MAZ-7410)", + "type": "Unarmed", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "ZIL-135": { + "name": "ZIL-135", + "coalition": "", + "era": "", + "label": "Truck ZIL-135", + "shortLabel": "Truck ZIL-135", + "type": "Unarmed", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "S_75_ZIL": { + "name": "S_75_ZIL", + "coalition": "", + "era": "", + "label": "S-75 Tractor (ZIL-131)", + "shortLabel": "S-75 Tractor (ZIL-131)", + "type": "Unarmed", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "rapier_fsa_launcher": { + "name": "rapier_fsa_launcher", + "coalition": "", + "era": "", + "label": "SAM Rapier LN", + "shortLabel": "SAM Rapier LN", + "type": "SAM Launcher", + "enabled": true, + "liveries": {}, + "acquisitionRange": 30000, + "engagementRange": 6800, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "rapier_fsa_optical_tracker_unit": { + "name": "rapier_fsa_optical_tracker_unit", + "coalition": "", + "era": "", + "label": "SAM Rapier Tracker", + "shortLabel": "SAM Rapier Tracker", + "type": "SAM Track Radar", + "enabled": true, + "liveries": {}, + "acquisitionRange": 20000, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "rapier_fsa_blindfire_radar": { + "name": "rapier_fsa_blindfire_radar", + "coalition": "", + "era": "", + "label": "SAM Rapier Blindfire TR", + "shortLabel": "SAM Rapier Blindfire TR", + "type": "SAM Track Radar", + "enabled": true, + "liveries": {}, + "acquisitionRange": 30000, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "bofors40": { + "name": "bofors40", + "coalition": "", + "era": "", + "label": "AAA Bofors 40mm", + "shortLabel": "AAA Bofors 40mm", + "type": "AAA", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 4000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "Chieftain_mk3": { + "name": "Chieftain_mk3", + "coalition": "", + "era": "", + "label": "Tank Chieftain Mk.3", + "shortLabel": "Tank Chieftain Mk.3", + "type": "Tank", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 3500, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "Bedford_MWD": { + "name": "Bedford_MWD", + "coalition": "", + "era": "", + "label": "Truck Bedford", + "shortLabel": "Truck Bedford", + "type": "Unarmed", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "Land_Rover_101_FC": { + "name": "Land_Rover_101_FC", + "coalition": "", + "era": "", + "label": "Truck Land Rover 101 FC", + "shortLabel": "Truck Land Rover 101 FC", + "type": "Unarmed", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "Land_Rover_109_S3": { + "name": "Land_Rover_109_S3", + "coalition": "", + "era": "", + "label": "LUV Land Rover 109", + "shortLabel": "LUV Land Rover 109", + "type": "Unarmed", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "hy_launcher": { + "name": "hy_launcher", + "coalition": "", + "era": "", + "label": "AShM SS-N-2 Silkworm", + "shortLabel": "AShM SS-N-2 Silkworm", + "type": "Missile system", + "enabled": true, + "liveries": {}, + "acquisitionRange": 100000, + "engagementRange": 100000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "Silkworm_SR": { + "name": "Silkworm_SR", + "coalition": "", + "era": "", + "label": "AShM Silkworm SR", + "shortLabel": "AShM Silkworm SR", + "type": "Missile system", + "enabled": true, + "liveries": {}, + "acquisitionRange": 200000, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "ES44AH": { + "name": "ES44AH", + "coalition": "", + "era": "", + "label": "Loco ES44AH", + "shortLabel": "Loco ES44AH", + "type": "Locomotive", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "Boxcartrinity": { + "name": "Boxcartrinity", + "coalition": "", + "era": "", + "label": "Flatcar", + "shortLabel": "Flatcar", + "type": "Carriage", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "Tankcartrinity": { + "name": "Tankcartrinity", + "coalition": "", + "era": "", + "label": "Tank Cartrinity", + "shortLabel": "Tank Cartrinity", + "type": "Carriage", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "Wellcarnsc": { + "name": "Wellcarnsc", + "coalition": "", + "era": "", + "label": "Well Car", + "shortLabel": "Well Car", + "type": "Carriage", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "flak18": { + "name": "flak18", + "coalition": "", + "era": "", + "label": "AAA 8,8cm Flak 18", + "shortLabel": "AAA 8,8cm Flak 18", + "type": "AAA", + "enabled": true, + "liveries": {}, + "aimTime": 20, + "shotsToFire": 1, + "acquisitionRange": 0, + "engagementRange": 5000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "Pz_IV_H": { + "name": "Pz_IV_H", + "coalition": "", + "era": "", + "label": "Tk PzIV H", + "shortLabel": "Tk PzIV H", + "type": "Tank", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 3000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "Leopard-2A5": { + "name": "Leopard-2A5", + "coalition": "", + "era": "", + "label": "Tank Leopard-2A5", + "shortLabel": "Tank Leopard-2A5", + "type": "Tank", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 3500, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "leopard-2A4": { + "name": "leopard-2A4", + "coalition": "", + "era": "", + "label": "Tank Leopard-2A4", + "shortLabel": "Tank Leopard-2A4", + "type": "Tank", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 3500, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "leopard-2A4_trs": { + "name": "leopard-2A4_trs", + "coalition": "", + "era": "", + "label": "Tank Leopard-2A4 Trs", + "shortLabel": "Tank Leopard-2A4 Trs", + "type": "Tank", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 3500, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "Sd_Kfz_251": { + "name": "Sd_Kfz_251", + "coalition": "", + "era": "", + "label": "Armoured Personnel Carrier Sd.Kfz.251 Halftrack", + "shortLabel": "Armoured Personnel Carrier Sd.Kfz.251 Halftrack", + "type": "Armoured Personnel Carrier", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 1100, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "Blitz_36-6700A": { + "name": "Blitz_36-6700A", + "coalition": "", + "era": "", + "label": "Truck Opel Blitz", + "shortLabel": "Truck Opel Blitz", + "type": "Unarmed", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": true + }, + "T155_Firtina": { + "name": "T155_Firtina", + "coalition": "", + "era": "", + "label": "SPH T155 Firtina 155mm", + "shortLabel": "SPH T155 Firtina 155mm", + "type": "Artillery", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 41000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "VAB_Mephisto": { + "name": "VAB_Mephisto", + "coalition": "", + "era": "", + "label": "ATGM VAB Mephisto", + "shortLabel": "ATGM VAB Mephisto", + "type": "Armoured Car", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 3800, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "ZTZ96B": { + "name": "ZTZ96B", + "coalition": "", + "era": "", + "label": "ZTZ-96B", + "shortLabel": "ZTZ-96B", + "type": "Tank", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 5000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "ZBD04A": { + "name": "ZBD04A", + "coalition": "", + "era": "", + "label": "ZBD-04A", + "shortLabel": "ZBD-04A", + "type": "Infantry Fighting Vehicle", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 4800, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "HQ-7_LN_SP": { + "name": "HQ-7_LN_SP", + "coalition": "", + "era": "", + "label": "HQ-7 Self-Propelled LN", + "shortLabel": "HQ-7 Self-Propelled LN", + "type": "SAM Launcher", + "enabled": true, + "liveries": {}, + "acquisitionRange": 15000, + "engagementRange": 15000, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "HQ-7_LN_EO": { + "name": "HQ-7_LN_EO", + "coalition": "", + "era": "", + "label": "HQ-7 LN Electro-Optics", + "shortLabel": "HQ-7 LN Electro-Optics", + "type": "SAM Track Radar", + "enabled": true, + "liveries": {}, + "acquisitionRange": 8000, + "engagementRange": 12000, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "HQ-7_STR_SP": { + "name": "HQ-7_STR_SP", + "coalition": "", + "era": "", + "label": "HQ-7 Self-Propelled STR", + "shortLabel": "HQ-7 Self-Propelled STR", + "type": "SAM Track Radar", + "enabled": true, + "liveries": {}, + "acquisitionRange": 30000, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "PLZ05": { + "name": "PLZ05", + "coalition": "", + "era": "", + "label": "PLZ-05", + "shortLabel": "PLZ-05", + "type": "Artillery", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 23500, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "TYPE-59": { + "name": "TYPE-59", + "coalition": "", + "era": "", + "label": "MT Type 59", + "shortLabel": "MT Type 59", + "type": "Tank", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 2500, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "Kubelwagen_82": { + "name": "Kubelwagen_82", + "coalition": "", + "era": "", + "label": "LUV Kubelwagen Jeep", + "shortLabel": "LUV Kubelwagen Jeep", + "type": "Unarmed", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "Sd_Kfz_2": { + "name": "Sd_Kfz_2", + "coalition": "", + "era": "", + "label": "LUV Kettenrad", + "shortLabel": "LUV Kettenrad", + "type": "Unarmed", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "Sd_Kfz_7": { + "name": "Sd_Kfz_7", + "coalition": "", + "era": "", + "label": "Tractor Sd.Kfz.7 Art'y Tractor", + "shortLabel": "Tractor Sd.Kfz.7 Art'y Tractor", + "type": "Unarmed", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "Horch_901_typ_40_kfz_21": { + "name": "Horch_901_typ_40_kfz_21", + "coalition": "", + "era": "", + "label": "LUV Horch 901 Staff Car", + "shortLabel": "LUV Horch 901 Staff Car", + "type": "Unarmed", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "Tiger_I": { + "name": "Tiger_I", + "coalition": "", + "era": "", + "label": "Tk Tiger 1", + "shortLabel": "Tk Tiger 1", + "type": "Tank", + "enabled": false, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 3000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "Tiger_II_H": { + "name": "Tiger_II_H", + "coalition": "", + "era": "", + "label": "Tk Tiger II", + "shortLabel": "Tk Tiger II", + "type": "Tank", + "enabled": false, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 6000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "Pz_V_Panther_G": { + "name": "Pz_V_Panther_G", + "coalition": "", + "era": "", + "label": "Tk Panther G (Pz V)", + "shortLabel": "Tk Panther G (Pz V)", + "type": "Tank", + "enabled": false, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 3000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "Jagdpanther_G1": { + "name": "Jagdpanther_G1", + "coalition": "", + "era": "", + "label": "Self Propelled Gun Jagdpanther TD", + "shortLabel": "Self Propelled Gun Jagdpanther TD", + "type": "Tank", + "enabled": false, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 5000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "JagdPz_IV": { + "name": "JagdPz_IV", + "coalition": "", + "era": "", + "label": "Self Propelled Gun Jagdpanzer IV TD", + "shortLabel": "Self Propelled Gun Jagdpanzer IV TD", + "type": "Tank", + "enabled": false, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 3000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "Stug_IV": { + "name": "Stug_IV", + "coalition": "", + "era": "", + "label": "Self Propelled Gun StuG IV AG", + "shortLabel": "Self Propelled Gun StuG IV AG", + "type": "Tank", + "enabled": false, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 3000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "SturmPzIV": { + "name": "SturmPzIV", + "coalition": "", + "era": "", + "label": "Self Propelled Gun Brummbaer AG", + "shortLabel": "Self Propelled Gun Brummbaer AG", + "type": "Tank", + "enabled": false, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 4500, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "Wespe124": { + "name": "Wespe124", + "coalition": "", + "era": "", + "label": "SPH Sd.Kfz.124 Wespe 105mm", + "shortLabel": "SPH Sd.Kfz.124 Wespe 105mm", + "type": "Artillery", + "enabled": false, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 10500, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "Sd_Kfz_234_2_Puma": { + "name": "Sd_Kfz_234_2_Puma", + "coalition": "", + "era": "", + "label": "Scout Puma AC", + "shortLabel": "Scout Puma AC", + "type": "Armoured Car", + "enabled": false, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 2000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "KDO_Mod40": { + "name": "KDO_Mod40", + "coalition": "", + "era": "", + "label": "AAA Kdo.G.40", + "shortLabel": "AAA Kdo.G.40", + "type": "AAA", + "enabled": false, + "liveries": {}, + "acquisitionRange": 30000, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "Flakscheinwerfer_37": { + "name": "Flakscheinwerfer_37", + "coalition": "", + "era": "", + "label": "SL Flakscheinwerfer 37", + "shortLabel": "SL Flakscheinwerfer 37", + "type": "AAA", + "enabled": false, + "liveries": {}, + "acquisitionRange": 15000, + "engagementRange": 15000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "Maschinensatz_33": { + "name": "Maschinensatz_33", + "coalition": "", + "era": "", + "label": "Maschinensatz 33 Gen", + "shortLabel": "Maschinensatz 33 Gen", + "type": "AAA", + "enabled": false, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "soldier_mauser98": { + "name": "soldier_mauser98", + "coalition": "", + "era": "", + "label": "Infantry Mauser 98", + "shortLabel": "Infantry Mauser 98", + "type": "Infantry", + "enabled": false, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 500, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "SK_C_28_naval_gun": { + "name": "SK_C_28_naval_gun", + "coalition": "", + "era": "", + "label": "Gun 15cm SK C/28 Naval in Bunker", + "shortLabel": "Gun 15cm SK C/28 Naval in Bunker", + "type": "Artillery", + "enabled": false, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 20000, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "fire_control": { + "name": "fire_control", + "coalition": "", + "era": "", + "label": "Bunker with Fire Control Center", + "shortLabel": "Bunker with Fire Control Center", + "type": "Structure", + "enabled": false, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 1100, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "Stug_III": { + "name": "Stug_III", + "coalition": "", + "era": "", + "label": "Self Propelled Gun StuG III G AG", + "shortLabel": "Self Propelled Gun StuG III G AG", + "type": "Tank", + "enabled": false, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 3000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "Elefant_SdKfz_184": { + "name": "Elefant_SdKfz_184", + "coalition": "", + "era": "", + "label": "Self Propelled Gun Elefant TD", + "shortLabel": "Self Propelled Gun Elefant TD", + "type": "Tank", + "enabled": false, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 6000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "v1_launcher": { + "name": "v1_launcher", + "coalition": "", + "era": "", + "label": "V-1 Launch Ramp", + "shortLabel": "V-1 Launch Ramp", + "type": "Missile System", + "enabled": false, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "FuMG-401": { + "name": "FuMG-401", + "coalition": "", + "era": "", + "label": "EWR FuMG-401 Freya LZ", + "shortLabel": "EWR FuMG-401 Freya LZ", + "type": "EW Radar", + "enabled": false, + "liveries": {}, + "acquisitionRange": 160000, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "FuSe-65": { + "name": "FuSe-65", + "coalition": "", + "era": "", + "label": "EWR FuSe-65 Würzburg-Riese", + "shortLabel": "EWR FuSe-65 Würzburg-Riese", + "type": "EW Radar", + "enabled": false, + "liveries": {}, + "acquisitionRange": 60000, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "Pak40": { + "name": "Pak40", + "coalition": "", + "era": "", + "label": "FH Pak 40 75mm", + "shortLabel": "FH Pak 40 75mm", + "type": "Artillery", + "enabled": false, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 3000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "LeFH_18-40-105": { + "name": "LeFH_18-40-105", + "coalition": "", + "era": "", + "label": "FH LeFH-18 105mm", + "shortLabel": "FH LeFH-18 105mm", + "type": "Artillery", + "enabled": false, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 10500, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "Cromwell_IV": { + "name": "Cromwell_IV", + "coalition": "", + "era": "", + "label": "Tk Cromwell IV", + "shortLabel": "Tk Cromwell IV", + "type": "Tank", + "enabled": false, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 3000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "M4A4_Sherman_FF": { + "name": "M4A4_Sherman_FF", + "coalition": "", + "era": "", + "label": "Tk M4A4 Sherman Firefly", + "shortLabel": "Tk M4A4 Sherman Firefly", + "type": "Tank", + "enabled": false, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 3000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "soldier_wwii_br_01": { + "name": "soldier_wwii_br_01", + "coalition": "", + "era": "", + "label": "Infantry SMLE No.4 Mk-1", + "shortLabel": "Infantry SMLE No.4 Mk-1", + "type": "Infantry", + "enabled": false, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 500, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "Centaur_IV": { + "name": "Centaur_IV", + "coalition": "", + "era": "", + "label": "Tk Centaur IV CS", + "shortLabel": "Tk Centaur IV CS", + "type": "Tank", + "enabled": false, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 6000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "Churchill_VII": { + "name": "Churchill_VII", + "coalition": "", + "era": "", + "label": "Tk Churchill VII", + "shortLabel": "Tk Churchill VII", + "type": "Tank", + "enabled": false, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 3000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "Daimler_AC": { + "name": "Daimler_AC", + "coalition": "", + "era": "", + "label": "Car Daimler Armored", + "shortLabel": "Car Daimler Armored", + "type": "Armoured Car", + "enabled": false, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 2000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "Tetrarch": { + "name": "Tetrarch", + "coalition": "", + "era": "", + "label": "Tk Tetrach", + "shortLabel": "Tk Tetrach", + "type": "Armoured Car", + "enabled": false, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 2000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "QF_37_AA": { + "name": "QF_37_AA", + "coalition": "", + "era": "", + "label": "AAA QF 3.7\"", + "shortLabel": "AAA QF 3.7\"", + "type": "AAA", + "enabled": false, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 9000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "Allies_Director": { + "name": "Allies_Director", + "coalition": "", + "era": "", + "label": "Allies Rangefinder (DRT)", + "shortLabel": "Allies Rangefinder (DRT)", + "type": "Unarmed", + "enabled": false, + "liveries": {}, + "acquisitionRange": 30000, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "CCKW_353": { + "name": "CCKW_353", + "coalition": "", + "era": "", + "label": "Truck GMC \"Jimmy\" 6x6", + "shortLabel": "Truck GMC \"Jimmy\" 6x6", + "type": "Unarmed", + "enabled": false, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "Willys_MB": { + "name": "Willys_MB", + "coalition": "", + "era": "", + "label": "Car Willys Jeep", + "shortLabel": "Car Willys Jeep", + "type": "Unarmed", + "enabled": false, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "M12_GMC": { + "name": "M12_GMC", + "coalition": "", + "era": "", + "label": "SPH M12 GMC 155mm", + "shortLabel": "SPH M12 GMC 155mm", + "type": "Artillery", + "enabled": false, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 18300, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "M30_CC": { + "name": "M30_CC", + "coalition": "", + "era": "", + "label": "Ammo M30 Cargo Carrier", + "shortLabel": "Ammo M30 Cargo Carrier", + "type": "Unarmed", + "enabled": false, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 1200, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "soldier_wwii_us": { + "name": "soldier_wwii_us", + "coalition": "", + "era": "", + "label": "Infantry M1 Garand", + "shortLabel": "Infantry M1 Garand", + "type": "Infantry", + "enabled": false, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 500, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "M10_GMC": { + "name": "M10_GMC", + "coalition": "", + "era": "", + "label": "Self Propelled Gun M10 GMC TD", + "shortLabel": "Self Propelled Gun M10 GMC TD", + "type": "Tank", + "enabled": false, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 6000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "M8_Greyhound": { + "name": "M8_Greyhound", + "coalition": "", + "era": "", + "label": "Scout M8 Greyhound AC", + "shortLabel": "Scout M8 Greyhound AC", + "type": "Armoured Car", + "enabled": false, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 2000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "M2A1-105": { + "name": "M2A1-105", + "coalition": "", + "era": "", + "label": "FH M2A1 105mm", + "shortLabel": "FH M2A1 105mm", + "type": "Artillery", + "enabled": false, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 11500, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "M4_Tractor": { + "name": "M4_Tractor", + "coalition": "", + "era": "", + "label": "Tractor M4 High Speed", + "shortLabel": "Tractor M4 High Speed", + "type": "Unarmed", + "enabled": false, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 1200, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "M45_Quadmount": { + "name": "M45_Quadmount", + "coalition": "", + "era": "", + "label": "AAA M45 Quadmount HB 12.7mm", + "shortLabel": "AAA M45 Quadmount HB 12.7mm", + "type": "AAA", + "enabled": false, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 1500, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "M1_37mm": { + "name": "M1_37mm", + "coalition": "", + "era": "", + "label": "AAA M1 37mm", + "shortLabel": "AAA M1 37mm", + "type": "AAA", + "enabled": false, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 5700, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "DR_50Ton_Flat_Wagon": { + "name": "DR_50Ton_Flat_Wagon", + "coalition": "", + "era": "", + "label": "DR 50-ton flat wagon", + "shortLabel": "DR 50-ton flat wagon", + "type": "Carriage", + "enabled": false, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "DRG_Class_86": { + "name": "DRG_Class_86", + "coalition": "", + "era": "", + "label": "Loco DRG Class 86", + "shortLabel": "Loco DRG Class 86", + "type": "Locomotive", + "enabled": false, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "German_covered_wagon_G10": { + "name": "German_covered_wagon_G10", + "coalition": "", + "era": "", + "label": "Wagon G10 (Germany)", + "shortLabel": "Wagon G10 (Germany)", + "type": "Carriage", + "enabled": false, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "German_tank_wagon": { + "name": "German_tank_wagon", + "coalition": "", + "era": "", + "label": "Tank Car (Germany)", + "shortLabel": "Tank Car (Germany)", + "type": "Carriage", + "enabled": false, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false } } \ No newline at end of file diff --git a/client/public/databases/units/default/helicopterdatabase.json b/client/public/databases/units/default/helicopterdatabase.json index e4f87c17..d8707fff 100644 --- a/client/public/databases/units/default/helicopterdatabase.json +++ b/client/public/databases/units/default/helicopterdatabase.json @@ -334,7 +334,14 @@ "TUR" ] } - } + }, + "type": "Helicopter", + "description": "2 engine, 2 crew attack helicopter. Cobra", + "abilities": "", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "AH-64D_BLK_II": { "name": "AH-64D_BLK_II", @@ -727,7 +734,14 @@ "GRC" ] } - } + }, + "type": "Helicopter", + "description": "2 engine, 2 crew attack helicopter. Apache", + "abilities": "", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "Ka-50_3": { "name": "Ka-50_3", @@ -1266,7 +1280,14 @@ "RUS" ] } - } + }, + "type": "Helicopter", + "description": "2 engine, 1 crew attack helicopter. Blackshark", + "abilities": "", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "Mi-24P": { "name": "Mi-24P", @@ -1745,7 +1766,14 @@ "RUS" ] } - } + }, + "type": "Helicopter", + "description": "2 engine, 2 crew attack helicopter. Hind", + "abilities": "", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "Mi-26": { "name": "Mi-26", @@ -1811,7 +1839,14 @@ "DZA" ] } - } + }, + "type": "Helicopter", + "description": "2 engine, 5 crew transport helicopter. Halo", + "acquisitionRange": "", + "engagementRange": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "Mi-28N": { "name": "Mi-28N", @@ -2288,7 +2323,14 @@ "RUS" ] } - } + }, + "type": "Helicopter", + "description": "2 engine, 2 crew attack helicopter. Havoc", + "abilities": "", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": true, + "canRearm": false }, "Mi-8MT": { "name": "Mi-8MT", @@ -2798,7 +2840,14 @@ "RUS" ] } - } + }, + "type": "Helicopter", + "description": "2 engine, 3 crew transport helicopter. Hip", + "abilities": "", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": false, + "canRearm": false }, "SA342L": { "name": "SA342L", @@ -3025,7 +3074,14 @@ "SRB" ] } - } + }, + "type": "Helicopter", + "description": "1 engine, 2 crew scout helicopter. Gazelle", + "abilities": "", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": false, + "canRearm": false }, "SA342M": { "name": "SA342M", @@ -3282,7 +3338,14 @@ "SRB" ] } - } + }, + "type": "Helicopter", + "description": "1 engine, 2 crew scout helicopter. Gazelle", + "abilities": "", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": false, + "canRearm": false }, "SA342Mistral": { "name": "SA342Mistral", @@ -3475,7 +3538,14 @@ "CYP" ] } - } + }, + "type": "Helicopter", + "description": "1 engine, 2 crew scout helicopter. Gazelle", + "abilities": "", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": false, + "canRearm": false }, "SH-60B": { "name": "SH-60B", @@ -3485,7 +3555,24 @@ "shortLabel": "S60", "loadouts": [ { - "items": [], + "items": [ + { + "name": "", + "quantity": 1 + }, + { + "name": "", + "quantity": 1 + }, + { + "name": "", + "quantity": 1 + }, + { + "name": "", + "quantity": 1 + } + ], "enabled": true, "code": "", "name": "Empty loadout", @@ -3498,6 +3585,30 @@ { "name": "AGM-119B Penguin ASM", "quantity": 1 + }, + { + "name": "", + "quantity": 1 + }, + { + "name": "", + "quantity": 1 + }, + { + "name": "", + "quantity": 1 + }, + { + "name": "", + "quantity": 1 + }, + { + "name": "", + "quantity": 1 + }, + { + "name": "", + "quantity": 1 } ], "enabled": true, @@ -3506,6 +3617,20 @@ "roles": [ "Antiship Strike" ] + }, + { + "name": "asd", + "code": "", + "fuel": 1, + "items": [], + "roles": [] + }, + { + "name": "asd", + "code": "", + "fuel": 1, + "items": [], + "roles": [] } ], "filename": "uh-60.png", @@ -3527,7 +3652,14 @@ "GRC" ] } - } + }, + "type": "Helicopter", + "description": "2 engine, 3 crew transport helicopter. Seahawk", + "acquisitionRange": "", + "engagementRange": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "UH-1H": { "name": "UH-1H", @@ -3811,7 +3943,14 @@ "USA" ] } - } + }, + "type": "Helicopter", + "description": "2 engine, 2 crew transport helicopter. Huey", + "abilities": "", + "acquisitionRange": "", + "engagementRange": "", + "canTargetPoint": false, + "canRearm": false }, "UH-60A": { "name": "UH-60A", @@ -3866,6 +4005,13 @@ "TUR" ] } - } + }, + "type": "Helicopter", + "description": "2 engine, 3 crew transport helicopter. Blackhawk", + "acquisitionRange": "", + "engagementRange": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false } } \ No newline at end of file diff --git a/client/public/databases/units/default/navyunitdatabase.json b/client/public/databases/units/default/navyunitdatabase.json index 4ffc29bd..c70d5966 100644 --- a/client/public/databases/units/default/navyunitdatabase.json +++ b/client/public/databases/units/default/navyunitdatabase.json @@ -2,24 +2,19 @@ "BDK-775": { "name": "BDK-775", "coalition": "blue", - "type": "Landing Craft", + "type": "Landing Ship", "era": "Mid Cold War", "label": "LS Ropucha", "shortLabel": "LS Ropucha", "range": "", "filename": "", - "enabled": true - }, - "Boat Armed Hi-Speed": { - "name": "Boat Armed Hi-Speed", - "coalition": "", - "type": "Fast Attack Craft", - "era": "Mid Cold War", - "label": "Boat Armed Hi-Speed", - "shortLabel": "Boat Armed Hi-Speed", - "range": "", - "filename": "", - "enabled": true + "enabled": true, + "acquisitionRange": 25000, + "engagementRange": 6000, + "description": "Landing ship Ropucha", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "CVN_71": { "name": "CVN_71", @@ -30,7 +25,13 @@ "shortLabel": "CVN-71", "range": "Short", "filename": "", - "enabled": true + "enabled": true, + "acquisitionRange": 50000, + "engagementRange": 25000, + "description": "Ship", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "CVN_72": { "name": "CVN_72", @@ -41,7 +42,13 @@ "shortLabel": "CVN-72", "range": "Short", "filename": "", - "enabled": true + "enabled": true, + "acquisitionRange": 50000, + "engagementRange": 25000, + "description": "Ship", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "CVN_73": { "name": "CVN_73", @@ -52,7 +59,13 @@ "shortLabel": "CVN-73", "range": "Medium", "filename": "", - "enabled": true + "enabled": true, + "acquisitionRange": 50000, + "engagementRange": 25000, + "description": "Ship", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "CVN_75": { "name": "CVN_75", @@ -85,7 +98,13 @@ "name": "Desert", "countries": "All" } - } + }, + "acquisitionRange": 50000, + "engagementRange": 25000, + "description": "Ship", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "CV_1143_5": { "name": "CV_1143_5", @@ -96,18 +115,13 @@ "shortLabel": "Admiral Kuznetsov(2017)", "range": "Medium", "filename": "", - "enabled": true - }, - "CV_59": { - "name": "CV_59", - "coalition": "blue", - "type": "Aircraft Carrier", - "era": "Early Cold War", - "label": "CV-59 Forrestal", - "shortLabel": "CV-59", - "range": "Short", - "filename": "", - "enabled": true + "enabled": true, + "acquisitionRange": 25000, + "engagementRange": 12000, + "description": "Admiral Kuznetsov. Conventional STOBAR carrier", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "CastleClass_01": { "name": "CastleClass_01", @@ -124,7 +138,13 @@ "name": "Dumbarton", "countries": "All" } - } + }, + "acquisitionRange": 25000, + "engagementRange": 3000, + "description": "HMS Leeds Castle. Smaller. Patrol craft", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "HandyWind": { "name": "HandyWind", @@ -153,7 +173,13 @@ "name": "Baltic Wind", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "HarborTug": { "name": "HarborTug", @@ -182,7 +208,13 @@ "name": "Harbor Tug Green", "countries": "All" } - } + }, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "LHA_Tarawa": { "name": "LHA_Tarawa", @@ -193,7 +225,13 @@ "shortLabel": "LHA-1 Tarawa", "range": "Short", "filename": "", - "enabled": true + "enabled": true, + "acquisitionRange": 150000, + "engagementRange": 20000, + "description": "Ship", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "La_Combattante_II": { "name": "La_Combattante_II", @@ -440,7 +478,13 @@ "EGP" ] } - } + }, + "acquisitionRange": 19000, + "engagementRange": 4000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "Seawise_Giant": { "name": "Seawise_Giant", @@ -451,7 +495,13 @@ "shortLabel": "Seawise Giant", "range": "", "filename": "", - "enabled": true + "enabled": true, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "Ship_Tilde_Supply": { "name": "Ship_Tilde_Supply", @@ -462,7 +512,13 @@ "shortLabel": "Supply Ship Tilde", "range": "", "filename": "", - "enabled": true + "enabled": true, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, "Stennis": { "name": "Stennis", @@ -473,7 +529,13 @@ "shortLabel": "CVN-74", "range": "Medium", "filename": "", - "enabled": true + "enabled": true, + "acquisitionRange": 50000, + "engagementRange": 25000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "TICONDEROG": { "name": "TICONDEROG", @@ -546,7 +608,13 @@ "USA" ] } - } + }, + "acquisitionRange": 150000, + "engagementRange": 100000, + "description": "Ship", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "Type_052B": { "name": "Type_052B", @@ -575,7 +643,13 @@ "CHN" ] } - } + }, + "acquisitionRange": 100000, + "engagementRange": 30000, + "description": "Ship", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "Type_052C": { "name": "Type_052C", @@ -628,7 +702,13 @@ "CHN" ] } - } + }, + "acquisitionRange": 260000, + "engagementRange": 100000, + "description": "Ship", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "Type_054A": { "name": "", @@ -789,7 +869,11 @@ "CHN" ] } - } + }, + "acquisitionRange": 160000, + "engagementRange": 45000, + "description": "Ship", + "abilities": "35nm >50,000ft range" }, "Type_071": { "name": "Type_071", @@ -838,7 +922,13 @@ "CHN" ] } - } + }, + "acquisitionRange": 300000, + "engagementRange": 150000, + "description": "Ship", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "Type_093": { "name": "Type_093", @@ -855,7 +945,13 @@ "name": "Periscope State 1", "countries": "All" } - } + }, + "acquisitionRange": 40000, + "engagementRange": 40000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "USS_Arleigh_Burke_IIa": { "name": "USS_Arleigh_Burke_IIa", @@ -964,56 +1060,13 @@ "USA" ] } - } - }, - "albatros": { - "name": "albatros", - "coalition": "red", - "type": "Aircraft Carrier", - "era": "Early Cold War", - "label": "Albatros (Grisha-5)", - "shortLabel": "Albatros", - "range": "", - "filename": "", - "enabled": true, - "liveries": { - "141": { - "name": "141", - "countries": "All" - }, - "142": { - "name": "142", - "countries": "All" - }, - "143": { - "name": "143", - "countries": "All" - }, - "144": { - "name": "144", - "countries": "All" - }, - "145": { - "name": "145", - "countries": "All" - }, - "146": { - "name": "146", - "countries": "All" - }, - "147": { - "name": "147", - "countries": "All" - }, - "148": { - "name": "148", - "countries": "All" - }, - "149": { - "name": "149", - "countries": "All" - } - } + }, + "acquisitionRange": 150000, + "engagementRange": 100000, + "abilities": "", + "description": "", + "canTargetPoint": true, + "canRearm": false }, "ara_vdm": { "name": "ara_vdm", @@ -1024,54 +1077,13 @@ "shortLabel": "ARA Vienticinco de Mayo", "range": "", "filename": "", - "enabled": true - }, - "barge-1": { - "name": "barge-1", - "coalition": "red", - "type": "Cargoship", - "era": "Late Cold War", - "label": "Dry cargo ship Ivanov", - "shortLabel": "Dry cargo ship Ivanov", - "range": "", - "filename": "", - "enabled": true - }, - "barge-2": { - "name": "barge-2", - "coalition": "red", - "type": "Cargoship", - "era": "Late Cold War", - "label": "Dry cargo ship Yakushev", - "shortLabel": "Dry cargo ship Yakushev", - "range": "", - "filename": "", - "enabled": true - }, - "elnya": { - "name": "elnya", - "coalition": "red", - "type": "Tanker", - "era": "Late Cold War", - "label": "Elnya tanker", - "shortLabel": "Elnya tanker", - "range": "", - "filename": "", "enabled": true, - "liveries": { - "952": { - "name": "952", - "countries": "All" - }, - "953": { - "name": "953", - "countries": "All" - }, - "954": { - "name": "954", - "countries": "All" - } - } + "acquisitionRange": 18000, + "engagementRange": 5000, + "description": "ARA Vienticinco de Mayo. Conventional CATOBAR carrier", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "hms_invincible": { "name": "hms_invincible", @@ -1082,40 +1094,13 @@ "shortLabel": "HMS Invincible", "range": "", "filename": "", - "enabled": true - }, - "kilo": { - "name": "kilo", - "coalition": "red", - "type": "Submarine", - "era": "Late Cold War", - "label": "Project 636 Varshavyanka Basic", - "shortLabel": "Varshavyanka Basic", - "range": "Medium", - "filename": "", - "enabled": true - }, - "kilo_636": { - "name": "kilo_636", - "coalition": "red", - "type": "Submarine", - "era": "Late Cold War", - "label": "Project 636 Varshavyanka Improved", - "shortLabel": "Varshavyanka Improved", - "range": "Medium", - "filename": "", - "enabled": true - }, - "kuznecow": { - "name": "kuznecow", - "coalition": "red", - "type": "Aircraft Carrier", - "era": "Late Cold War", - "label": "Admiral Kuznetsov", - "shortLabel": "Admiral Kuznetsov", - "range": "Medium", - "filename": "", - "enabled": true + "enabled": true, + "acquisitionRange": 100000, + "engagementRange": 74000, + "description": "Ship", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "leander-gun-achilles": { "name": "leander-gun-achilles", @@ -1126,7 +1111,13 @@ "shortLabel": "HMS Achilles", "range": "", "filename": "", - "enabled": true + "enabled": true, + "acquisitionRange": 180000, + "engagementRange": 8000, + "description": "Ship", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "leander-gun-andromeda": { "name": "leander-gun-andromeda", @@ -1137,7 +1128,13 @@ "shortLabel": "HMS Andromeda", "range": "", "filename": "", - "enabled": true + "enabled": true, + "acquisitionRange": 180000, + "engagementRange": 140000, + "description": "Ship", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "leander-gun-ariadne": { "name": "leander-gun-ariadne", @@ -1148,7 +1145,13 @@ "shortLabel": "HMS Ariadne", "range": "", "filename": "", - "enabled": true + "enabled": true, + "acquisitionRange": 150000, + "engagementRange": 100000, + "description": "Ship", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "leander-gun-condell": { "name": "leander-gun-condell", @@ -1159,7 +1162,13 @@ "shortLabel": "Almirante Condell", "range": "", "filename": "", - "enabled": true + "enabled": true, + "acquisitionRange": 150000, + "engagementRange": 100000, + "description": "Ship", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, "leander-gun-lynch": { "name": "leander-gun-lynch", @@ -1170,74 +1179,64 @@ "shortLabel": "CNS Almirante Lynch", "range": "", "filename": "", - "enabled": true + "enabled": true, + "acquisitionRange": 180000, + "engagementRange": 140000, + "description": "Ship", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, - "molniya": { - "name": "molniya", + "santafe": { + "name": "santafe", "coalition": "", - "type": "Fast Attack Craft", - "era": "Late Cold War", - "label": "Molniya (Tarantul-3)", - "shortLabel": "Molniya", - "range": "Short", + "type": "Submarine", + "era": "Early Cold War", + "label": "ARA Santa Fe S-21", + "shortLabel": "ARA Santa", + "range": "", "filename": "", "enabled": true, - "liveries": { - "952": { - "name": "952", - "countries": "All" - }, - "953": { - "name": "953", - "countries": "All" - }, - "954": { - "name": "954", - "countries": "All" - } - } + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, - "moscow": { - "name": "moscow", - "coalition": "red", - "type": "Cruiser", - "era": "Late Cold War", - "label": "Moscow", - "shortLabel": "Moscow", - "range": "Medium", - "filename": "", + "speedboat": { + "name": "speedboat", + "coalition": "", + "era": "", + "label": "Boat Armed Hi-speed", + "shortLabel": "Boat Armed Hi-speed", + "type": "Speedboat", "enabled": true, - "liveries": { - "default": { - "name": "default", - "countries": "All" - }, - "cow1": { - "name": "cow1", - "countries": "All" - }, - "cow3": { - "name": "cow3", - "countries": "All" - }, - "cow2": { - "name": "cow2", - "countries": "All" - } - } + "liveries": {}, + "acquisitionRange": 5000, + "engagementRange": 1000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false }, - "neustrash": { - "name": "neustrash", - "coalition": "red", - "type": "Frigate", - "era": "Late Cold War", - "label": "Neustrashimy", - "shortLabel": "Neustrashimy", - "range": "Short", - "filename": "", - "enabled": true + "VINSON": { + "name": "VINSON", + "coalition": "", + "era": "", + "label": "CVN-70 Carl Vinson", + "shortLabel": "CVN-70 Carl Vinson", + "type": "Aircraft Carrier", + "enabled": true, + "liveries": {}, + "acquisitionRange": 30000, + "engagementRange": 15000, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false }, - "perry": { + "PERRY": { "name": "perry", "coalition": "blue", "type": "Frigate", @@ -1288,20 +1287,162 @@ "name": "USS Kauffman FFG-59", "countries": "All" } - } + }, + "acquisitionRange": 150000, + "engagementRange": 100000 }, - "piotr_velikiy": { - "name": "piotr_velikiy", + "ALBATROS": { + "name": "albatros", + "coalition": "red", + "type": "Frigade", + "era": "Early Cold War", + "label": "Albatros (Grisha-5)", + "shortLabel": "Albatros", + "range": "", + "filename": "", + "enabled": true, + "liveries": { + "141": { + "name": "141", + "countries": "All" + }, + "142": { + "name": "142", + "countries": "All" + }, + "143": { + "name": "143", + "countries": "All" + }, + "144": { + "name": "144", + "countries": "All" + }, + "145": { + "name": "145", + "countries": "All" + }, + "146": { + "name": "146", + "countries": "All" + }, + "147": { + "name": "147", + "countries": "All" + }, + "148": { + "name": "148", + "countries": "All" + }, + "149": { + "name": "149", + "countries": "All" + } + }, + "acquisitionRange": 30000, + "engagementRange": 16000 + }, + "KUZNECOW": { + "name": "kuznecow", + "coalition": "red", + "type": "Aircraft Carrier", + "era": "Late Cold War", + "label": "Admiral Kuznetsov", + "shortLabel": "Admiral Kuznetsov", + "range": "Medium", + "filename": "", + "enabled": true, + "acquisitionRange": 25000, + "engagementRange": 12000 + }, + "MOLNIYA": { + "name": "molniya", + "coalition": "", + "type": "Corvette", + "era": "Late Cold War", + "label": "Molniya (Tarantul-3)", + "shortLabel": "Molniya", + "range": "Short", + "filename": "", + "enabled": true, + "liveries": { + "952": { + "name": "952", + "countries": "All" + }, + "953": { + "name": "953", + "countries": "All" + }, + "954": { + "name": "954", + "countries": "All" + } + }, + "acquisitionRange": 21000, + "engagementRange": 2000 + }, + "MOSCOW": { + "name": "moscow", "coalition": "red", "type": "Cruiser", "era": "Late Cold War", - "label": "Pyotr Velikiy", - "shortLabel": "Pyotr Velikiy", + "label": "Moscow", + "shortLabel": "Moscow", "range": "Medium", "filename": "", - "enabled": true + "enabled": true, + "liveries": { + "default": { + "name": "default", + "countries": "All" + }, + "cow1": { + "name": "cow1", + "countries": "All" + }, + "cow3": { + "name": "cow3", + "countries": "All" + }, + "cow2": { + "name": "cow2", + "countries": "All" + } + }, + "acquisitionRange": 160000, + "engagementRange": 75000 }, - "rezky": { + "NEUSTRASH": { + "name": "neustrash", + "coalition": "red", + "type": "Frigate", + "era": "Late Cold War", + "label": "Neustrashimy", + "shortLabel": "Neustrashimy", + "range": "Short", + "filename": "", + "enabled": true, + "acquisitionRange": 27000, + "engagementRange": 12000 + }, + "PIOTR": { + "name": "PIOTR", + "coalition": "", + "era": "", + "label": "Battlecruiser 1144.2 Pyotr Velikiy", + "shortLabel": "Battlecruiser 1144.2 Pyotr Velikiy", + "type": "Cruiser", + "enabled": true, + "liveries": {}, + "acquisitionRange": 250000, + "engagementRange": 190000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "REZKY": { "name": "Rezky (Krivak-2)", "coalition": "red", "type": "Frigate", @@ -1310,20 +1451,70 @@ "shortLabel": "Rezky", "range": "Short", "filename": "", - "enabled": true + "enabled": true, + "acquisitionRange": 30000, + "engagementRange": 16000 }, - "santafe": { - "name": "santafe", - "coalition": "", - "type": "Submarine", - "era": "Early Cold War", - "label": "ARA Santa Fe S-21", - "shortLabel": "ARA Santa", + "ELNYA": { + "name": "elnya", + "coalition": "red", + "type": "Tanker", + "era": "Late Cold War", + "label": "Elnya tanker", + "shortLabel": "Elnya tanker", "range": "", "filename": "", - "enabled": true + "enabled": true, + "liveries": { + "952": { + "name": "952", + "countries": "All" + }, + "953": { + "name": "953", + "countries": "All" + }, + "954": { + "name": "954", + "countries": "All" + } + }, + "acquisitionRange": 0, + "engagementRange": 0 }, - "zwezdny": { + "Dry-cargo ship-2": { + "name": "Dry-cargo ship-2", + "coalition": "", + "era": "", + "label": "Cargo Ivanov", + "shortLabel": "Cargo Ivanov", + "type": "Cargoship", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "Dry-cargo ship-1": { + "name": "Dry-cargo ship-1", + "coalition": "", + "era": "", + "label": "Bulker Yakushev", + "shortLabel": "Bulker Yakushev", + "type": "Cargoship", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "ZWEZDNY": { "name": "zwezdny", "coalition": "", "type": "Civilian Boat", @@ -1332,6 +1523,149 @@ "shortLabel": "Zwezdny", "range": "", "filename": "", - "enabled": true + "enabled": true, + "acquisitionRange": 0, + "engagementRange": 0 + }, + "KILO": { + "name": "kilo", + "coalition": "red", + "type": "Submarine", + "era": "Late Cold War", + "label": "Project 636 Varshavyanka Basic", + "shortLabel": "Varshavyanka Basic", + "range": "Medium", + "filename": "", + "enabled": true, + "acquisitionRange": 0, + "engagementRange": 0 + }, + "IMPROVED_KILO": { + "name": "IMPROVED_KILO", + "coalition": "", + "era": "", + "label": "SSK 636 Improved Kilo", + "shortLabel": "SSK 636 Improved Kilo", + "type": "Submarine", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "SOM": { + "name": "SOM", + "coalition": "", + "era": "", + "label": "SSK 641B Tango", + "shortLabel": "SSK 641B Tango", + "type": "Submarine", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 0, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "Forrestal": { + "name": "Forrestal", + "coalition": "", + "era": "", + "label": "CV-59 Forrestal", + "shortLabel": "CV-59 Forrestal", + "type": "Aircraft Carrier", + "enabled": true, + "liveries": {}, + "acquisitionRange": 50000, + "engagementRange": 25000, + "description": "", + "abilities": "", + "canTargetPoint": false, + "canRearm": false + }, + "LST_Mk2": { + "name": "LST_Mk2", + "coalition": "", + "era": "", + "label": "LST Mk.II", + "shortLabel": "LST Mk.II", + "type": "Landing Ship", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 4000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "USS_Samuel_Chase": { + "name": "USS_Samuel_Chase", + "coalition": "", + "era": "", + "label": "LS Samuel Chase", + "shortLabel": "LS Samuel Chase", + "type": "Landing SHip", + "enabled": true, + "liveries": {}, + "acquisitionRange": 0, + "engagementRange": 7000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "Higgins_boat": { + "name": "Higgins_boat", + "coalition": "", + "era": "", + "label": "Boat LCVP Higgins", + "shortLabel": "Boat LCVP Higgins", + "type": "Landing Ship", + "enabled": true, + "liveries": {}, + "acquisitionRange": 3000, + "engagementRange": 1000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "Uboat_VIIC": { + "name": "Uboat_VIIC", + "coalition": "", + "era": "", + "label": "U-boat VIIC U-flak", + "shortLabel": "U-boat VIIC U-flak", + "type": "Submarine", + "enabled": true, + "liveries": {}, + "acquisitionRange": 20000, + "engagementRange": 4000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false + }, + "Schnellboot_type_S130": { + "name": "Schnellboot_type_S130", + "coalition": "", + "era": "", + "label": "Boat Schnellboot type S130", + "shortLabel": "Boat Schnellboot type S130", + "type": "Torpedo Boat", + "enabled": true, + "liveries": {}, + "acquisitionRange": 10000, + "engagementRange": 4000, + "description": "", + "abilities": "", + "canTargetPoint": true, + "canRearm": false } } \ No newline at end of file diff --git a/client/src/constants/constants.ts b/client/src/constants/constants.ts index 85c3c677..0e01b227 100644 --- a/client/src/constants/constants.ts +++ b/client/src/constants/constants.ts @@ -104,26 +104,26 @@ export const mapBounds = { export const mapLayers = { "ArcGIS Satellite": { urlTemplate: "https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}", - maxZoom: 20, minZoom: 1, + maxZoom: 16, attribution: "Tiles © Esri — Source: Esri, i-cubed, USDA, USGS, AEX, GeoEye, GetApp().getMap()ping, Aerogrid, IGN, IGP, UPR-EGP, and the GIS User Community" }, "USGS Topo": { urlTemplate: 'https://basemap.nationalmap.gov/arcgis/rest/services/USGSTopo/MapServer/tile/{z}/{y}/{x}', minZoom: 1, - maxZoom: 20, + maxZoom: 16, attribution: 'Tiles courtesy of the U.S. Geological Survey' }, "OpenStreetMap Mapnik": { urlTemplate: 'https://tile.openstreetmap.org/{z}/{x}/{y}.png', minZoom: 1, - maxZoom: 19, + maxZoom: 16, attribution: '© OpenStreetMap contributors' }, "OPENVKarte": { urlTemplate: 'https://tileserver.memomaps.de/tilegen/{z}/{x}/{y}.png', minZoom: 1, - maxZoom: 18, + maxZoom: 16, attribution: 'Map memomaps.de CC-BY-SA, map data © OpenStreetMap contributors' }, "Esri.DeLorme": { @@ -135,7 +135,7 @@ export const mapLayers = { "CyclOSM": { urlTemplate: 'https://{s}.tile-cyclosm.openstreetmap.fr/cyclosm/{z}/{x}/{y}.png', minZoom: 1, - maxZoom: 20, + maxZoom: 16, attribution: 'CyclOSM | Map data: © OpenStreetMap contributors' } } diff --git a/client/src/map/map.ts b/client/src/map/map.ts index 4f962851..51dff111 100644 --- a/client/src/map/map.ts +++ b/client/src/map/map.ts @@ -94,7 +94,7 @@ export class Map extends L.Map { super(ID, { zoomSnap: 0, zoomDelta: 0.25, - preferCanvas: false, + preferCanvas: true, doubleClickZoom: false, zoomControl: false, boxZoom: false, @@ -400,6 +400,7 @@ export class Map extends L.Map { this.options.scrollWheelZoom = undefined; this.#centerUnit = null; } + this.#updateCursor(); } getCenterUnit() { @@ -714,6 +715,8 @@ export class Map extends L.Map { #panToUnit(unit: Unit) { var unitPosition = new L.LatLng(unit.getPosition().lat, unit.getPosition().lng); this.setView(unitPosition, this.getZoom(), { animate: false }); + this.#updateCursor(); + this.#updateDestinationCursors(); } #getMinimapBoundaries() { diff --git a/client/src/unit/unit.ts b/client/src/unit/unit.ts index 872dcc19..b28e88aa 100644 --- a/client/src/unit/unit.ts +++ b/client/src/unit/unit.ts @@ -1361,7 +1361,7 @@ export class AirUnit extends Unit { if (getApp().getUnitsManager().getSelectedUnits().length == 1) { options["center-map"] = { text: "Center map", tooltip: "Center the map on the unit and follow it", type: "and" }; } else { - /* Provision */ + options["follow"] = { text: "Follow", tooltip: "Follow the unit at a user defined distance and position", type: "or" }; } options["refuel"] = { text: "Air to air refuel", tooltip: "Refuel units at the nearest AAR Tanker. If no tanker is available the unit will RTB.", type: "and" }; // TODO Add some way of knowing which aircraft can AAR diff --git a/client/src/unit/unitsmanager.ts b/client/src/unit/unitsmanager.ts index f03e0fbd..398d074a 100644 --- a/client/src/unit/unitsmanager.ts +++ b/client/src/unit/unitsmanager.ts @@ -328,7 +328,7 @@ export class UnitsManager { const unit = selectedUnits[idx]; /* If a unit is following another unit, and that unit is also selected, send the command to the followed ("leader") unit */ - if (unit.getState() === "Follow") { + if (unit.getState() === "follow") { const leader = this.getUnitByID(unit.getLeaderID()) if (leader && leader.getSelected()) leader.addDestination(latlng); @@ -351,7 +351,7 @@ export class UnitsManager { var selectedUnits = this.getSelectedUnits({ excludeHumans: true, onlyOnePerGroup: true }); for (let idx in selectedUnits) { const unit = selectedUnits[idx]; - if (unit.getState() === "Follow") { + if (unit.getState() === "follow") { const leader = this.getUnitByID(unit.getLeaderID()) if (leader && leader.getSelected()) leader.clearDestinations(); @@ -561,29 +561,32 @@ export class UnitsManager { } var selectedUnits = this.getSelectedUnits({ excludeHumans: true, onlyOnePerGroup: true }); + var count = 1; var xr = 0; var yr = 1; var zr = -1; var layer = 1; for (let idx in selectedUnits) { var unit = selectedUnits[idx]; - if (offset != undefined) - /* Offset is set, apply it */ - unit.followUnit(ID, { "x": offset.x * count, "y": offset.y * count, "z": offset.z * count }); - else { - /* More complex formations with variable offsets */ - if (formation === "diamond") { - var xl = xr * Math.cos(Math.PI / 4) - yr * Math.sin(Math.PI / 4); - var yl = xr * Math.sin(Math.PI / 4) + yr * Math.cos(Math.PI / 4); - unit.followUnit(ID, { "x": -yl * 50, "y": zr * 10, "z": xl * 50 }); + if (unit.ID !== ID) { + if (offset != undefined) + /* Offset is set, apply it */ + unit.followUnit(ID, { "x": offset.x * count, "y": offset.y * count, "z": offset.z * count }); + else { + /* More complex formations with variable offsets */ + if (formation === "diamond") { + var xl = xr * Math.cos(Math.PI / 4) - yr * Math.sin(Math.PI / 4); + var yl = xr * Math.sin(Math.PI / 4) + yr * Math.cos(Math.PI / 4); + unit.followUnit(ID, { "x": -yl * 50, "y": zr * 10, "z": xl * 50 }); - if (yr == 0) { layer++; xr = 0; yr = layer; zr = -layer; } - else { - if (xr < layer) { xr++; zr--; } - else { yr--; zr++; } + if (yr == 0) { layer++; xr = 0; yr = layer; zr = -layer; } + else { + if (xr < layer) { xr++; zr--; } + else { yr--; zr++; } + } } } + count++; } - count++; } this.#showActionMessage(selectedUnits, `following unit ${this.getUnitByID(ID)?.getUnitName()}`); } diff --git a/package.bat b/package.bat index eceb06f4..6f924e22 100644 --- a/package.bat +++ b/package.bat @@ -1,4 +1,10 @@ cd client +cd "plugins\controltips" +call npm run build +cd "..\.." +cd "plugins\databasemanager" +call npm run build +cd "..\.." call npm prune --production cd .. call "C:\Program Files (x86)\Inno Setup 6\iscc.exe" "installer\olympus.iss" From 1a579c5755eaa1077134624fef6588300c4b8488 Mon Sep 17 00:00:00 2001 From: Pax1601 Date: Sat, 14 Oct 2023 12:13:32 +0200 Subject: [PATCH 02/19] Build scripts updated --- package.bat => build_package.bat | 7 +++++++ client/package.json | 1 + scripts/OlympusCommand.lua | 2 +- 3 files changed, 9 insertions(+), 1 deletion(-) rename package.bat => build_package.bat (60%) diff --git a/package.bat b/build_package.bat similarity index 60% rename from package.bat rename to build_package.bat index 6f924e22..0fc7c5ad 100644 --- a/package.bat +++ b/build_package.bat @@ -1,4 +1,11 @@ +cd src +msbuild olympus.sln /t:Rebuild /p:Configuration=Release +cd .. cd client +call npm install +rmdir /s /q "hgt" +call npm run emit-declarations +call npm run build cd "plugins\controltips" call npm run build cd "..\.." diff --git a/client/package.json b/client/package.json index 59cdfe25..968b1b71 100644 --- a/client/package.json +++ b/client/package.json @@ -5,6 +5,7 @@ "version": "v0.4.5-alpha", "private": true, "scripts": { + "build": "browserify ./src/index.ts -p [ tsify --noImplicitAny] > index.js && copy.bat", "emit-declarations": "tsc --project tsconfig.json --declaration --emitDeclarationOnly --outfile ./@types/olympus/index.d.ts", "copy": "copy.bat", "start": "npm run copy & concurrently --kill-others \"npm run watch\" \"nodemon --ignore ./public/databases/ ./bin/www\"", diff --git a/scripts/OlympusCommand.lua b/scripts/OlympusCommand.lua index 2b4a03b6..e77dd00e 100644 --- a/scripts/OlympusCommand.lua +++ b/scripts/OlympusCommand.lua @@ -1,6 +1,6 @@ local version = "v0.4.5-alpha" -local debug = true -- True enables debug printing using DCS messages +local debug = false -- True enables debug printing using DCS messages -- .dll related variables Olympus.OlympusDLL = nil From 9ca2703f16e17a4002a57dacb87a331a025ab421 Mon Sep 17 00:00:00 2001 From: Pax1601 Date: Sat, 14 Oct 2023 12:32:24 +0200 Subject: [PATCH 03/19] More package build updates --- client/@types/olympus/index.d.ts | 20 +++++++++++--------- client/package.json | 2 +- client/prepare.bat | 2 -- 3 files changed, 12 insertions(+), 12 deletions(-) delete mode 100644 client/prepare.bat diff --git a/client/@types/olympus/index.d.ts b/client/@types/olympus/index.d.ts index 11be7280..faa3f853 100644 --- a/client/@types/olympus/index.d.ts +++ b/client/@types/olympus/index.d.ts @@ -151,8 +151,8 @@ declare module "constants/constants" { export const mapLayers: { "ArcGIS Satellite": { urlTemplate: string; - maxZoom: number; minZoom: number; + maxZoom: number; attribution: string; }; "USGS Topo": { @@ -222,8 +222,8 @@ declare module "constants/constants" { position = 13, speed = 14, heading = 15, - isTanker = 16, - isAWACS = 17, + isActiveTanker = 16, + isActiveAWACS = 17, onOff = 18, followRoads = 19, fuel = 20, @@ -499,8 +499,8 @@ declare module "interfaces" { position: LatLng; speed: number; heading: number; - isTanker: boolean; - isAWACS: boolean; + isActiveTanker: boolean; + isActiveAWACS: boolean; onOff: boolean; followRoads: boolean; fuel: number; @@ -1037,8 +1037,8 @@ declare module "unit/unit" { getPosition(): LatLng; getSpeed(): number; getHeading(): number; - getIsTanker(): boolean; - getIsAWACS(): boolean; + getIsActiveTanker(): boolean; + getIsActiveAWACS(): boolean; getOnOff(): boolean; getFollowRoads(): boolean; getFuel(): number; @@ -1097,6 +1097,8 @@ declare module "unit/unit" { isInViewport(): boolean; canTargetPoint(): boolean; canRearm(): boolean; + isTanker(): boolean; + isAWACS(): boolean; /********************** Unit commands *************************/ addDestination(latlng: L.LatLng): void; clearDestinations(): void; @@ -1121,7 +1123,7 @@ declare module "unit/unit" { setOperateAs(operateAs: string): void; delete(explosion: boolean, immediate: boolean): void; refuel(): void; - setAdvancedOptions(isTanker: boolean, isAWACS: boolean, TACAN: TACAN, radio: Radio, generalSettings: GeneralSettings): void; + setAdvancedOptions(isActiveTanker: boolean, isActiveAWACS: boolean, TACAN: TACAN, radio: Radio, generalSettings: GeneralSettings): void; bombPoint(latlng: LatLng): void; carpetBomb(latlng: LatLng): void; bombBuilding(latlng: LatLng): void; @@ -2064,7 +2066,7 @@ declare module "server/servermanager" { scenicAAA(ID: number, coalition: string, callback?: CallableFunction): void; missOnPurpose(ID: number, coalition: string, callback?: CallableFunction): void; landAtPoint(ID: number, latlng: LatLng, callback?: CallableFunction): void; - setAdvacedOptions(ID: number, isTanker: boolean, isAWACS: boolean, TACAN: TACAN, radio: Radio, generalSettings: GeneralSettings, callback?: CallableFunction): void; + setAdvacedOptions(ID: number, isActiveTanker: boolean, isActiveAWACS: boolean, TACAN: TACAN, radio: Radio, generalSettings: GeneralSettings, callback?: CallableFunction): void; setCommandModeOptions(restrictSpawns: boolean, restrictToCoalition: boolean, spawnPoints: { blue: number; red: number; diff --git a/client/package.json b/client/package.json index 968b1b71..0007e31b 100644 --- a/client/package.json +++ b/client/package.json @@ -5,7 +5,7 @@ "version": "v0.4.5-alpha", "private": true, "scripts": { - "build": "browserify ./src/index.ts -p [ tsify --noImplicitAny] > index.js && copy.bat", + "build": "browserify .\\src\\index.ts --debug -o .\\public\\javascripts\\bundle.js -t [ babelify --global true --presets [ @babel/preset-env ] --extensions '.js'] -p [ tsify --noImplicitAny ] && copy.bat", "emit-declarations": "tsc --project tsconfig.json --declaration --emitDeclarationOnly --outfile ./@types/olympus/index.d.ts", "copy": "copy.bat", "start": "npm run copy & concurrently --kill-others \"npm run watch\" \"nodemon --ignore ./public/databases/ ./bin/www\"", diff --git a/client/prepare.bat b/client/prepare.bat deleted file mode 100644 index f163f70e..00000000 --- a/client/prepare.bat +++ /dev/null @@ -1,2 +0,0 @@ -copy .\\node_modules\\leaflet\\dist\\leaflet.css .\\public\\stylesheets\\leaflet\\leaflet.css -copy .\\node_modules\\leaflet.nauticscale\\dist\\leaflet.nauticscale.js .\\public\\javascripts\\leaflet.nauticscale.js From 24cd2729db314e23b528ade8a150a64af3ab36ea Mon Sep 17 00:00:00 2001 From: Pax1601 Date: Sun, 15 Oct 2023 09:54:57 +0200 Subject: [PATCH 04/19] Startup script updated --- client/.vscode/tasks.json | 2 +- client/package-lock.json | 176 ++-------------------- client/package.json | 5 +- client/public/stylesheets/style/style.css | 1 + package-lock.json | 3 - 5 files changed, 21 insertions(+), 166 deletions(-) delete mode 100644 package-lock.json diff --git a/client/.vscode/tasks.json b/client/.vscode/tasks.json index a2332f62..ee945bcf 100644 --- a/client/.vscode/tasks.json +++ b/client/.vscode/tasks.json @@ -6,7 +6,7 @@ { "label": "server", "type": "shell", - "command": "npm run start", + "command": "npm run debug", "isBackground": true } ] diff --git a/client/package-lock.json b/client/package-lock.json index 08753ba8..47627bdf 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -8,6 +8,7 @@ "name": "DCSOlympus", "version": "v0.4.5-alpha", "dependencies": { + "@turf/turf": "^6.5.0", "body-parser": "^1.20.2", "cookie-parser": "~1.4.4", "debug": "~2.6.9", @@ -22,7 +23,6 @@ "devDependencies": { "@babel/preset-env": "^7.21.4", "@tanem/svg-injector": "^10.1.55", - "@turf/turf": "^6.5.0", "@types/formatcoords": "^1.1.0", "@types/geojson": "^7946.0.10", "@types/leaflet": "^1.9.0", @@ -1866,7 +1866,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/along/-/along-6.5.0.tgz", "integrity": "sha512-LLyWQ0AARqJCmMcIEAXF4GEu8usmd4Kbz3qk1Oy5HoRNpZX47+i5exQtmIWKdqJ1MMhW26fCTXgpsEs5zgJ5gw==", - "dev": true, "dependencies": { "@turf/bearing": "^6.5.0", "@turf/destination": "^6.5.0", @@ -1882,7 +1881,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/angle/-/angle-6.5.0.tgz", "integrity": "sha512-4pXMbWhFofJJAOvTMCns6N4C8CMd5Ih4O2jSAG9b3dDHakj3O4yN1+Zbm+NUei+eVEZ9gFeVp9svE3aMDenIkw==", - "dev": true, "dependencies": { "@turf/bearing": "^6.5.0", "@turf/helpers": "^6.5.0", @@ -1897,7 +1895,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/area/-/area-6.5.0.tgz", "integrity": "sha512-xCZdiuojokLbQ+29qR6qoMD89hv+JAgWjLrwSEWL+3JV8IXKeNFl6XkEJz9HGkVpnXvQKJoRz4/liT+8ZZ5Jyg==", - "dev": true, "dependencies": { "@turf/helpers": "^6.5.0", "@turf/meta": "^6.5.0" @@ -1910,7 +1907,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/bbox/-/bbox-6.5.0.tgz", "integrity": "sha512-RBbLaao5hXTYyyg577iuMtDB8ehxMlUqHEJiMs8jT1GHkFhr6sYre3lmLsPeYEi/ZKj5TP5tt7fkzNdJ4GIVyw==", - "dev": true, "dependencies": { "@turf/helpers": "^6.5.0", "@turf/meta": "^6.5.0" @@ -1923,7 +1919,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/bbox-clip/-/bbox-clip-6.5.0.tgz", "integrity": "sha512-F6PaIRF8WMp8EmgU/Ke5B1Y6/pia14UAYB5TiBC668w5rVVjy5L8rTm/m2lEkkDMHlzoP9vNY4pxpNthE7rLcQ==", - "dev": true, "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0" @@ -1936,7 +1931,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/bbox-polygon/-/bbox-polygon-6.5.0.tgz", "integrity": "sha512-+/r0NyL1lOG3zKZmmf6L8ommU07HliP4dgYToMoTxqzsWzyLjaj/OzgQ8rBmv703WJX+aS6yCmLuIhYqyufyuw==", - "dev": true, "dependencies": { "@turf/helpers": "^6.5.0" }, @@ -1948,7 +1942,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/bearing/-/bearing-6.5.0.tgz", "integrity": "sha512-dxINYhIEMzgDOztyMZc20I7ssYVNEpSv04VbMo5YPQsqa80KO3TFvbuCahMsCAW5z8Tncc8dwBlEFrmRjJG33A==", - "dev": true, "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0" @@ -1961,7 +1954,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/bezier-spline/-/bezier-spline-6.5.0.tgz", "integrity": "sha512-vokPaurTd4PF96rRgGVm6zYYC5r1u98ZsG+wZEv9y3kJTuJRX/O3xIY2QnTGTdbVmAJN1ouOsD0RoZYaVoXORQ==", - "dev": true, "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0" @@ -1974,7 +1966,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/boolean-clockwise/-/boolean-clockwise-6.5.0.tgz", "integrity": "sha512-45+C7LC5RMbRWrxh3Z0Eihsc8db1VGBO5d9BLTOAwU4jR6SgsunTfRWR16X7JUwIDYlCVEmnjcXJNi/kIU3VIw==", - "dev": true, "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0" @@ -1987,7 +1978,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/boolean-contains/-/boolean-contains-6.5.0.tgz", "integrity": "sha512-4m8cJpbw+YQcKVGi8y0cHhBUnYT+QRfx6wzM4GI1IdtYH3p4oh/DOBJKrepQyiDzFDaNIjxuWXBh0ai1zVwOQQ==", - "dev": true, "dependencies": { "@turf/bbox": "^6.5.0", "@turf/boolean-point-in-polygon": "^6.5.0", @@ -2003,7 +1993,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/boolean-crosses/-/boolean-crosses-6.5.0.tgz", "integrity": "sha512-gvshbTPhAHporTlQwBJqyfW+2yV8q/mOTxG6PzRVl6ARsqNoqYQWkd4MLug7OmAqVyBzLK3201uAeBjxbGw0Ng==", - "dev": true, "dependencies": { "@turf/boolean-point-in-polygon": "^6.5.0", "@turf/helpers": "^6.5.0", @@ -2019,7 +2008,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/boolean-disjoint/-/boolean-disjoint-6.5.0.tgz", "integrity": "sha512-rZ2ozlrRLIAGo2bjQ/ZUu4oZ/+ZjGvLkN5CKXSKBcu6xFO6k2bgqeM8a1836tAW+Pqp/ZFsTA5fZHsJZvP2D5g==", - "dev": true, "dependencies": { "@turf/boolean-point-in-polygon": "^6.5.0", "@turf/helpers": "^6.5.0", @@ -2035,7 +2023,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/boolean-equal/-/boolean-equal-6.5.0.tgz", "integrity": "sha512-cY0M3yoLC26mhAnjv1gyYNQjn7wxIXmL2hBmI/qs8g5uKuC2hRWi13ydufE3k4x0aNRjFGlg41fjoYLwaVF+9Q==", - "dev": true, "dependencies": { "@turf/clean-coords": "^6.5.0", "@turf/helpers": "^6.5.0", @@ -2050,7 +2037,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/boolean-intersects/-/boolean-intersects-6.5.0.tgz", "integrity": "sha512-nIxkizjRdjKCYFQMnml6cjPsDOBCThrt+nkqtSEcxkKMhAQj5OO7o2CecioNTaX8EayqwMGVKcsz27oP4mKPTw==", - "dev": true, "dependencies": { "@turf/boolean-disjoint": "^6.5.0", "@turf/helpers": "^6.5.0", @@ -2064,7 +2050,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/boolean-overlap/-/boolean-overlap-6.5.0.tgz", "integrity": "sha512-8btMIdnbXVWUa1M7D4shyaSGxLRw6NjMcqKBcsTXcZdnaixl22k7ar7BvIzkaRYN3SFECk9VGXfLncNS3ckQUw==", - "dev": true, "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0", @@ -2081,7 +2066,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/boolean-parallel/-/boolean-parallel-6.5.0.tgz", "integrity": "sha512-aSHJsr1nq9e5TthZGZ9CZYeXklJyRgR5kCLm5X4urz7+MotMOp/LsGOsvKvK9NeUl9+8OUmfMn8EFTT8LkcvIQ==", - "dev": true, "dependencies": { "@turf/clean-coords": "^6.5.0", "@turf/helpers": "^6.5.0", @@ -2096,7 +2080,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/boolean-point-in-polygon/-/boolean-point-in-polygon-6.5.0.tgz", "integrity": "sha512-DtSuVFB26SI+hj0SjrvXowGTUCHlgevPAIsukssW6BG5MlNSBQAo70wpICBNJL6RjukXg8d2eXaAWuD/CqL00A==", - "dev": true, "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0" @@ -2109,7 +2092,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/boolean-point-on-line/-/boolean-point-on-line-6.5.0.tgz", "integrity": "sha512-A1BbuQ0LceLHvq7F/P7w3QvfpmZqbmViIUPHdNLvZimFNLo4e6IQunmzbe+8aSStH9QRZm3VOflyvNeXvvpZEQ==", - "dev": true, "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0" @@ -2122,7 +2104,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/boolean-within/-/boolean-within-6.5.0.tgz", "integrity": "sha512-YQB3oU18Inx35C/LU930D36RAVe7LDXk1kWsQ8mLmuqYn9YdPsDQTMTkLJMhoQ8EbN7QTdy333xRQ4MYgToteQ==", - "dev": true, "dependencies": { "@turf/bbox": "^6.5.0", "@turf/boolean-point-in-polygon": "^6.5.0", @@ -2138,7 +2119,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/buffer/-/buffer-6.5.0.tgz", "integrity": "sha512-qeX4N6+PPWbKqp1AVkBVWFerGjMYMUyencwfnkCesoznU6qvfugFHNAngNqIBVnJjZ5n8IFyOf+akcxnrt9sNg==", - "dev": true, "dependencies": { "@turf/bbox": "^6.5.0", "@turf/center": "^6.5.0", @@ -2156,7 +2136,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/center/-/center-6.5.0.tgz", "integrity": "sha512-T8KtMTfSATWcAX088rEDKjyvQCBkUsLnK/Txb6/8WUXIeOZyHu42G7MkdkHRoHtwieLdduDdmPLFyTdG5/e7ZQ==", - "dev": true, "dependencies": { "@turf/bbox": "^6.5.0", "@turf/helpers": "^6.5.0" @@ -2169,7 +2148,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/center-mean/-/center-mean-6.5.0.tgz", "integrity": "sha512-AAX6f4bVn12pTVrMUiB9KrnV94BgeBKpyg3YpfnEbBpkN/znfVhL8dG8IxMAxAoSZ61Zt9WLY34HfENveuOZ7Q==", - "dev": true, "dependencies": { "@turf/bbox": "^6.5.0", "@turf/helpers": "^6.5.0", @@ -2183,7 +2161,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/center-median/-/center-median-6.5.0.tgz", "integrity": "sha512-dT8Ndu5CiZkPrj15PBvslpuf01ky41DEYEPxS01LOxp5HOUHXp1oJxsPxvc+i/wK4BwccPNzU1vzJ0S4emd1KQ==", - "dev": true, "dependencies": { "@turf/center-mean": "^6.5.0", "@turf/centroid": "^6.5.0", @@ -2199,7 +2176,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/center-of-mass/-/center-of-mass-6.5.0.tgz", "integrity": "sha512-EWrriU6LraOfPN7m1jZi+1NLTKNkuIsGLZc2+Y8zbGruvUW+QV7K0nhf7iZWutlxHXTBqEXHbKue/o79IumAsQ==", - "dev": true, "dependencies": { "@turf/centroid": "^6.5.0", "@turf/convex": "^6.5.0", @@ -2215,7 +2191,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/centroid/-/centroid-6.5.0.tgz", "integrity": "sha512-MwE1oq5E3isewPprEClbfU5pXljIK/GUOMbn22UM3IFPDJX0KeoyLNwghszkdmFp/qMGL/M13MMWvU+GNLXP/A==", - "dev": true, "dependencies": { "@turf/helpers": "^6.5.0", "@turf/meta": "^6.5.0" @@ -2228,7 +2203,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/circle/-/circle-6.5.0.tgz", "integrity": "sha512-oU1+Kq9DgRnoSbWFHKnnUdTmtcRUMmHoV9DjTXu9vOLNV5OWtAAh1VZ+mzsioGGzoDNT/V5igbFOkMfBQc0B6A==", - "dev": true, "dependencies": { "@turf/destination": "^6.5.0", "@turf/helpers": "^6.5.0" @@ -2241,7 +2215,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/clean-coords/-/clean-coords-6.5.0.tgz", "integrity": "sha512-EMX7gyZz0WTH/ET7xV8MyrExywfm9qUi0/MY89yNffzGIEHuFfqwhcCqZ8O00rZIPZHUTxpmsxQSTfzJJA1CPw==", - "dev": true, "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0" @@ -2254,7 +2227,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/clone/-/clone-6.5.0.tgz", "integrity": "sha512-mzVtTFj/QycXOn6ig+annKrM6ZlimreKYz6f/GSERytOpgzodbQyOgkfwru100O1KQhhjSudKK4DsQ0oyi9cTw==", - "dev": true, "dependencies": { "@turf/helpers": "^6.5.0" }, @@ -2266,7 +2238,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/clusters/-/clusters-6.5.0.tgz", "integrity": "sha512-Y6gfnTJzQ1hdLfCsyd5zApNbfLIxYEpmDibHUqR5z03Lpe02pa78JtgrgUNt1seeO/aJ4TG1NLN8V5gOrHk04g==", - "dev": true, "dependencies": { "@turf/helpers": "^6.5.0", "@turf/meta": "^6.5.0" @@ -2279,7 +2250,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/clusters-dbscan/-/clusters-dbscan-6.5.0.tgz", "integrity": "sha512-SxZEE4kADU9DqLRiT53QZBBhu8EP9skviSyl+FGj08Y01xfICM/RR9ACUdM0aEQimhpu+ZpRVcUK+2jtiCGrYQ==", - "dev": true, "dependencies": { "@turf/clone": "^6.5.0", "@turf/distance": "^6.5.0", @@ -2295,7 +2265,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/clusters-kmeans/-/clusters-kmeans-6.5.0.tgz", "integrity": "sha512-DwacD5+YO8kwDPKaXwT9DV46tMBVNsbi1IzdajZu1JDSWoN7yc7N9Qt88oi+p30583O0UPVkAK+A10WAQv4mUw==", - "dev": true, "dependencies": { "@turf/clone": "^6.5.0", "@turf/helpers": "^6.5.0", @@ -2311,7 +2280,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/collect/-/collect-6.5.0.tgz", "integrity": "sha512-4dN/T6LNnRg099m97BJeOcTA5fSI8cu87Ydgfibewd2KQwBexO69AnjEFqfPX3Wj+Zvisj1uAVIZbPmSSrZkjg==", - "dev": true, "dependencies": { "@turf/bbox": "^6.5.0", "@turf/boolean-point-in-polygon": "^6.5.0", @@ -2326,7 +2294,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/combine/-/combine-6.5.0.tgz", "integrity": "sha512-Q8EIC4OtAcHiJB3C4R+FpB4LANiT90t17uOd851qkM2/o6m39bfN5Mv0PWqMZIHWrrosZqRqoY9dJnzz/rJxYQ==", - "dev": true, "dependencies": { "@turf/helpers": "^6.5.0", "@turf/meta": "^6.5.0" @@ -2339,7 +2306,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/concave/-/concave-6.5.0.tgz", "integrity": "sha512-I/sUmUC8TC5h/E2vPwxVht+nRt+TnXIPRoztDFvS8/Y0+cBDple9inLSo9nnPXMXidrBlGXZ9vQx/BjZUJgsRQ==", - "dev": true, "dependencies": { "@turf/clone": "^6.5.0", "@turf/distance": "^6.5.0", @@ -2358,7 +2324,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/convex/-/convex-6.5.0.tgz", "integrity": "sha512-x7ZwC5z7PJB0SBwNh7JCeCNx7Iu+QSrH7fYgK0RhhNop13TqUlvHMirMLRgf2db1DqUetrAO2qHJeIuasquUWg==", - "dev": true, "dependencies": { "@turf/helpers": "^6.5.0", "@turf/meta": "^6.5.0", @@ -2372,7 +2337,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/destination/-/destination-6.5.0.tgz", "integrity": "sha512-4cnWQlNC8d1tItOz9B4pmJdWpXqS0vEvv65bI/Pj/genJnsL7evI0/Xw42RvEGROS481MPiU80xzvwxEvhQiMQ==", - "dev": true, "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0" @@ -2385,7 +2349,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.5.0.tgz", "integrity": "sha512-l8iR5uJqvI+5Fs6leNbhPY5t/a3vipUF/3AeVLpwPQcgmedNXyheYuy07PcMGH5Jdpi5gItOiTqwiU/bUH4b3A==", - "dev": true, "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0", @@ -2399,7 +2362,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/dissolve/-/dissolve-6.5.0.tgz", "integrity": "sha512-WBVbpm9zLTp0Bl9CE35NomTaOL1c4TQCtEoO43YaAhNEWJOOIhZMFJyr8mbvYruKl817KinT3x7aYjjCMjTAsQ==", - "dev": true, "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0", @@ -2414,7 +2376,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/distance/-/distance-6.5.0.tgz", "integrity": "sha512-xzykSLfoURec5qvQJcfifw/1mJa+5UwByZZ5TZ8iaqjGYN0vomhV9aiSLeYdUGtYRESZ+DYC/OzY+4RclZYgMg==", - "dev": true, "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0" @@ -2427,7 +2388,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/distance-weight/-/distance-weight-6.5.0.tgz", "integrity": "sha512-a8qBKkgVNvPKBfZfEJZnC3DV7dfIsC3UIdpRci/iap/wZLH41EmS90nM+BokAJflUHYy8PqE44wySGWHN1FXrQ==", - "dev": true, "dependencies": { "@turf/centroid": "^6.5.0", "@turf/helpers": "^6.5.0", @@ -2442,7 +2402,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/ellipse/-/ellipse-6.5.0.tgz", "integrity": "sha512-kuXtwFviw/JqnyJXF1mrR/cb496zDTSbGKtSiolWMNImYzGGkbsAsFTjwJYgD7+4FixHjp0uQPzo70KDf3AIBw==", - "dev": true, "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0", @@ -2457,7 +2416,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/envelope/-/envelope-6.5.0.tgz", "integrity": "sha512-9Z+FnBWvOGOU4X+fMZxYFs1HjFlkKqsddLuMknRaqcJd6t+NIv5DWvPtDL8ATD2GEExYDiFLwMdckfr1yqJgHA==", - "dev": true, "dependencies": { "@turf/bbox": "^6.5.0", "@turf/bbox-polygon": "^6.5.0", @@ -2471,7 +2429,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/explode/-/explode-6.5.0.tgz", "integrity": "sha512-6cSvMrnHm2qAsace6pw9cDmK2buAlw8+tjeJVXMfMyY+w7ZUi1rprWMsY92J7s2Dar63Bv09n56/1V7+tcj52Q==", - "dev": true, "dependencies": { "@turf/helpers": "^6.5.0", "@turf/meta": "^6.5.0" @@ -2484,7 +2441,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/flatten/-/flatten-6.5.0.tgz", "integrity": "sha512-IBZVwoNLVNT6U/bcUUllubgElzpMsNoCw8tLqBw6dfYg9ObGmpEjf9BIYLr7a2Yn5ZR4l7YIj2T7kD5uJjZADQ==", - "dev": true, "dependencies": { "@turf/helpers": "^6.5.0", "@turf/meta": "^6.5.0" @@ -2497,7 +2453,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/flip/-/flip-6.5.0.tgz", "integrity": "sha512-oyikJFNjt2LmIXQqgOGLvt70RgE2lyzPMloYWM7OR5oIFGRiBvqVD2hA6MNw6JewIm30fWZ8DQJw1NHXJTJPbg==", - "dev": true, "dependencies": { "@turf/clone": "^6.5.0", "@turf/helpers": "^6.5.0", @@ -2511,7 +2466,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/great-circle/-/great-circle-6.5.0.tgz", "integrity": "sha512-7ovyi3HaKOXdFyN7yy1yOMa8IyOvV46RC1QOQTT+RYUN8ke10eyqExwBpL9RFUPvlpoTzoYbM/+lWPogQlFncg==", - "dev": true, "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0" @@ -2524,7 +2478,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.5.0.tgz", "integrity": "sha512-VbI1dV5bLFzohYYdgqwikdMVpe7pJ9X3E+dlr425wa2/sMJqYDhTO++ec38/pcPvPE6oD9WEEeU3Xu3gza+VPw==", - "dev": true, "funding": { "url": "https://opencollective.com/turf" } @@ -2533,7 +2486,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/hex-grid/-/hex-grid-6.5.0.tgz", "integrity": "sha512-Ln3tc2tgZT8etDOldgc6e741Smg1CsMKAz1/Mlel+MEL5Ynv2mhx3m0q4J9IB1F3a4MNjDeVvm8drAaf9SF33g==", - "dev": true, "dependencies": { "@turf/distance": "^6.5.0", "@turf/helpers": "^6.5.0", @@ -2548,7 +2500,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/interpolate/-/interpolate-6.5.0.tgz", "integrity": "sha512-LSH5fMeiGyuDZ4WrDJNgh81d2DnNDUVJtuFryJFup8PV8jbs46lQGfI3r1DJ2p1IlEJIz3pmAZYeTfMMoeeohw==", - "dev": true, "dependencies": { "@turf/bbox": "^6.5.0", "@turf/centroid": "^6.5.0", @@ -2570,7 +2521,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.5.0.tgz", "integrity": "sha512-2legGJeKrfFkzntcd4GouPugoqPUjexPZnOvfez+3SfIMrHvulw8qV8u7pfVyn2Yqs53yoVCEjS5sEpvQ5YRQg==", - "dev": true, "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0", @@ -2584,7 +2534,6 @@ "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==", - "dev": true, "dependencies": { "@turf/helpers": "^6.5.0" }, @@ -2596,7 +2545,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/isobands/-/isobands-6.5.0.tgz", "integrity": "sha512-4h6sjBPhRwMVuFaVBv70YB7eGz+iw0bhPRnp+8JBdX1UPJSXhoi/ZF2rACemRUr0HkdVB/a1r9gC32vn5IAEkw==", - "dev": true, "dependencies": { "@turf/area": "^6.5.0", "@turf/bbox": "^6.5.0", @@ -2615,7 +2563,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/isolines/-/isolines-6.5.0.tgz", "integrity": "sha512-6ElhiLCopxWlv4tPoxiCzASWt/jMRvmp6mRYrpzOm3EUl75OhHKa/Pu6Y9nWtCMmVC/RcWtiiweUocbPLZLm0A==", - "dev": true, "dependencies": { "@turf/bbox": "^6.5.0", "@turf/helpers": "^6.5.0", @@ -2631,7 +2578,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.5.0.tgz", "integrity": "sha512-ViCngdPt1eEL7hYUHR2eHR662GvCgTc35ZJFaNR6kRtr6D8plLaDju0FILeFFWSc+o8e3fwxZEJKmFj9IzPiIQ==", - "dev": true, "dependencies": { "@turf/helpers": "^6.5.0" }, @@ -2643,7 +2589,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/length/-/length-6.5.0.tgz", "integrity": "sha512-5pL5/pnw52fck3oRsHDcSGrj9HibvtlrZ0QNy2OcW8qBFDNgZ4jtl6U7eATVoyWPKBHszW3dWETW+iLV7UARig==", - "dev": true, "dependencies": { "@turf/distance": "^6.5.0", "@turf/helpers": "^6.5.0", @@ -2657,7 +2602,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/line-arc/-/line-arc-6.5.0.tgz", "integrity": "sha512-I6c+V6mIyEwbtg9P9zSFF89T7QPe1DPTG3MJJ6Cm1MrAY0MdejwQKOpsvNl8LDU2ekHOlz2kHpPVR7VJsoMllA==", - "dev": true, "dependencies": { "@turf/circle": "^6.5.0", "@turf/destination": "^6.5.0", @@ -2671,7 +2615,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/line-chunk/-/line-chunk-6.5.0.tgz", "integrity": "sha512-i1FGE6YJaaYa+IJesTfyRRQZP31QouS+wh/pa6O3CC0q4T7LtHigyBSYjrbjSLfn2EVPYGlPCMFEqNWCOkC6zg==", - "dev": true, "dependencies": { "@turf/helpers": "^6.5.0", "@turf/length": "^6.5.0", @@ -2686,7 +2629,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/line-intersect/-/line-intersect-6.5.0.tgz", "integrity": "sha512-CS6R1tZvVQD390G9Ea4pmpM6mJGPWoL82jD46y0q1KSor9s6HupMIo1kY4Ny+AEYQl9jd21V3Scz20eldpbTVA==", - "dev": true, "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0", @@ -2702,7 +2644,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/line-offset/-/line-offset-6.5.0.tgz", "integrity": "sha512-CEXZbKgyz8r72qRvPchK0dxqsq8IQBdH275FE6o4MrBkzMcoZsfSjghtXzKaz9vvro+HfIXal0sTk2mqV1lQTw==", - "dev": true, "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0", @@ -2716,7 +2657,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/line-overlap/-/line-overlap-6.5.0.tgz", "integrity": "sha512-xHOaWLd0hkaC/1OLcStCpfq55lPHpPNadZySDXYiYjEz5HXr1oKmtMYpn0wGizsLwrOixRdEp+j7bL8dPt4ojQ==", - "dev": true, "dependencies": { "@turf/boolean-point-on-line": "^6.5.0", "@turf/helpers": "^6.5.0", @@ -2735,7 +2675,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/line-segment/-/line-segment-6.5.0.tgz", "integrity": "sha512-jI625Ho4jSuJESNq66Mmi290ZJ5pPZiQZruPVpmHkUw257Pew0alMmb6YrqYNnLUuiVVONxAAKXUVeeUGtycfw==", - "dev": true, "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0", @@ -2749,7 +2688,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/line-slice/-/line-slice-6.5.0.tgz", "integrity": "sha512-vDqJxve9tBHhOaVVFXqVjF5qDzGtKWviyjbyi2QnSnxyFAmLlLnBfMX8TLQCAf2GxHibB95RO5FBE6I2KVPRuw==", - "dev": true, "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0", @@ -2763,7 +2701,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/line-slice-along/-/line-slice-along-6.5.0.tgz", "integrity": "sha512-KHJRU6KpHrAj+BTgTNqby6VCTnDzG6a1sJx/I3hNvqMBLvWVA2IrkR9L9DtsQsVY63IBwVdQDqiwCuZLDQh4Ng==", - "dev": true, "dependencies": { "@turf/bearing": "^6.5.0", "@turf/destination": "^6.5.0", @@ -2778,7 +2715,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/line-split/-/line-split-6.5.0.tgz", "integrity": "sha512-/rwUMVr9OI2ccJjw7/6eTN53URtGThNSD5I0GgxyFXMtxWiloRJ9MTff8jBbtPWrRka/Sh2GkwucVRAEakx9Sw==", - "dev": true, "dependencies": { "@turf/bbox": "^6.5.0", "@turf/helpers": "^6.5.0", @@ -2799,7 +2735,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/line-to-polygon/-/line-to-polygon-6.5.0.tgz", "integrity": "sha512-qYBuRCJJL8Gx27OwCD1TMijM/9XjRgXH/m/TyuND4OXedBpIWlK5VbTIO2gJ8OCfznBBddpjiObLBrkuxTpN4Q==", - "dev": true, "dependencies": { "@turf/bbox": "^6.5.0", "@turf/clone": "^6.5.0", @@ -2814,7 +2749,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/mask/-/mask-6.5.0.tgz", "integrity": "sha512-RQha4aU8LpBrmrkH8CPaaoAfk0Egj5OuXtv6HuCQnHeGNOQt3TQVibTA3Sh4iduq4EPxnZfDjgsOeKtrCA19lg==", - "dev": true, "dependencies": { "@turf/helpers": "^6.5.0", "polygon-clipping": "^0.15.3" @@ -2827,7 +2761,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/meta/-/meta-6.5.0.tgz", "integrity": "sha512-RrArvtsV0vdsCBegoBtOalgdSOfkBrTJ07VkpiCnq/491W67hnMWmDu7e6Ztw0C3WldRYTXkg3SumfdzZxLBHA==", - "dev": true, "dependencies": { "@turf/helpers": "^6.5.0" }, @@ -2839,7 +2772,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/midpoint/-/midpoint-6.5.0.tgz", "integrity": "sha512-MyTzV44IwmVI6ec9fB2OgZ53JGNlgOpaYl9ArKoF49rXpL84F9rNATndbe0+MQIhdkw8IlzA6xVP4lZzfMNVCw==", - "dev": true, "dependencies": { "@turf/bearing": "^6.5.0", "@turf/destination": "^6.5.0", @@ -2854,7 +2786,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/moran-index/-/moran-index-6.5.0.tgz", "integrity": "sha512-ItsnhrU2XYtTtTudrM8so4afBCYWNaB0Mfy28NZwLjB5jWuAsvyV+YW+J88+neK/ougKMTawkmjQqodNJaBeLQ==", - "dev": true, "dependencies": { "@turf/distance-weight": "^6.5.0", "@turf/helpers": "^6.5.0", @@ -2868,7 +2799,6 @@ "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==", - "dev": true, "dependencies": { "@turf/clone": "^6.5.0", "@turf/distance": "^6.5.0", @@ -2883,7 +2813,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/nearest-point-on-line/-/nearest-point-on-line-6.5.0.tgz", "integrity": "sha512-WthrvddddvmymnC+Vf7BrkHGbDOUu6Z3/6bFYUGv1kxw8tiZ6n83/VG6kHz4poHOfS0RaNflzXSkmCi64fLBlg==", - "dev": true, "dependencies": { "@turf/bearing": "^6.5.0", "@turf/destination": "^6.5.0", @@ -2901,7 +2830,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/nearest-point-to-line/-/nearest-point-to-line-6.5.0.tgz", "integrity": "sha512-PXV7cN0BVzUZdjj6oeb/ESnzXSfWmEMrsfZSDRgqyZ9ytdiIj/eRsnOXLR13LkTdXVOJYDBuf7xt1mLhM4p6+Q==", - "dev": true, "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0", @@ -2917,7 +2845,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/planepoint/-/planepoint-6.5.0.tgz", "integrity": "sha512-R3AahA6DUvtFbka1kcJHqZ7DMHmPXDEQpbU5WaglNn7NaCQg9HB0XM0ZfqWcd5u92YXV+Gg8QhC8x5XojfcM4Q==", - "dev": true, "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0" @@ -2930,7 +2857,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/point-grid/-/point-grid-6.5.0.tgz", "integrity": "sha512-Iq38lFokNNtQJnOj/RBKmyt6dlof0yhaHEDELaWHuECm1lIZLY3ZbVMwbs+nXkwTAHjKfS/OtMheUBkw+ee49w==", - "dev": true, "dependencies": { "@turf/boolean-within": "^6.5.0", "@turf/distance": "^6.5.0", @@ -2945,7 +2871,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/point-on-feature/-/point-on-feature-6.5.0.tgz", "integrity": "sha512-bDpuIlvugJhfcF/0awAQ+QI6Om1Y1FFYE8Y/YdxGRongivix850dTeXCo0mDylFdWFPGDo7Mmh9Vo4VxNwW/TA==", - "dev": true, "dependencies": { "@turf/boolean-point-in-polygon": "^6.5.0", "@turf/center": "^6.5.0", @@ -2961,7 +2886,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/point-to-line-distance/-/point-to-line-distance-6.5.0.tgz", "integrity": "sha512-opHVQ4vjUhNBly1bob6RWy+F+hsZDH9SA0UW36pIRzfpu27qipU18xup0XXEePfY6+wvhF6yL/WgCO2IbrLqEA==", - "dev": true, "dependencies": { "@turf/bearing": "^6.5.0", "@turf/distance": "^6.5.0", @@ -2980,7 +2904,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/points-within-polygon/-/points-within-polygon-6.5.0.tgz", "integrity": "sha512-YyuheKqjliDsBDt3Ho73QVZk1VXX1+zIA2gwWvuz8bR1HXOkcuwk/1J76HuFMOQI3WK78wyAi+xbkx268PkQzQ==", - "dev": true, "dependencies": { "@turf/boolean-point-in-polygon": "^6.5.0", "@turf/helpers": "^6.5.0", @@ -2994,7 +2917,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/polygon-smooth/-/polygon-smooth-6.5.0.tgz", "integrity": "sha512-LO/X/5hfh/Rk4EfkDBpLlVwt3i6IXdtQccDT9rMjXEP32tRgy0VMFmdkNaXoGlSSKf/1mGqLl4y4wHd86DqKbg==", - "dev": true, "dependencies": { "@turf/helpers": "^6.5.0", "@turf/meta": "^6.5.0" @@ -3007,7 +2929,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/polygon-tangents/-/polygon-tangents-6.5.0.tgz", "integrity": "sha512-sB4/IUqJMYRQH9jVBwqS/XDitkEfbyqRy+EH/cMRJURTg78eHunvJ708x5r6umXsbiUyQU4eqgPzEylWEQiunw==", - "dev": true, "dependencies": { "@turf/bbox": "^6.5.0", "@turf/boolean-within": "^6.5.0", @@ -3024,7 +2945,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/polygon-to-line/-/polygon-to-line-6.5.0.tgz", "integrity": "sha512-5p4n/ij97EIttAq+ewSnKt0ruvuM+LIDzuczSzuHTpq4oS7Oq8yqg5TQ4nzMVuK41r/tALCk7nAoBuw3Su4Gcw==", - "dev": true, "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0" @@ -3037,7 +2957,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/polygonize/-/polygonize-6.5.0.tgz", "integrity": "sha512-a/3GzHRaCyzg7tVYHo43QUChCspa99oK4yPqooVIwTC61npFzdrmnywMv0S+WZjHZwK37BrFJGFrZGf6ocmY5w==", - "dev": true, "dependencies": { "@turf/boolean-point-in-polygon": "^6.5.0", "@turf/envelope": "^6.5.0", @@ -3053,7 +2972,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/projection/-/projection-6.5.0.tgz", "integrity": "sha512-/Pgh9mDvQWWu8HRxqpM+tKz8OzgauV+DiOcr3FCjD6ubDnrrmMJlsf6fFJmggw93mtVPrZRL6yyi9aYCQBOIvg==", - "dev": true, "dependencies": { "@turf/clone": "^6.5.0", "@turf/helpers": "^6.5.0", @@ -3067,7 +2985,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/random/-/random-6.5.0.tgz", "integrity": "sha512-8Q25gQ/XbA7HJAe+eXp4UhcXM9aOOJFaxZ02+XSNwMvY8gtWSCBLVqRcW4OhqilgZ8PeuQDWgBxeo+BIqqFWFQ==", - "dev": true, "dependencies": { "@turf/helpers": "^6.5.0" }, @@ -3079,7 +2996,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/rectangle-grid/-/rectangle-grid-6.5.0.tgz", "integrity": "sha512-yQZ/1vbW68O2KsSB3OZYK+72aWz/Adnf7m2CMKcC+aq6TwjxZjAvlbCOsNUnMAuldRUVN1ph6RXMG4e9KEvKvg==", - "dev": true, "dependencies": { "@turf/boolean-intersects": "^6.5.0", "@turf/distance": "^6.5.0", @@ -3093,7 +3009,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/rewind/-/rewind-6.5.0.tgz", "integrity": "sha512-IoUAMcHWotBWYwSYuYypw/LlqZmO+wcBpn8ysrBNbazkFNkLf3btSDZMkKJO/bvOzl55imr/Xj4fi3DdsLsbzQ==", - "dev": true, "dependencies": { "@turf/boolean-clockwise": "^6.5.0", "@turf/clone": "^6.5.0", @@ -3109,7 +3024,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/rhumb-bearing/-/rhumb-bearing-6.5.0.tgz", "integrity": "sha512-jMyqiMRK4hzREjQmnLXmkJ+VTNTx1ii8vuqRwJPcTlKbNWfjDz/5JqJlb5NaFDcdMpftWovkW5GevfnuzHnOYA==", - "dev": true, "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0" @@ -3122,7 +3036,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/rhumb-destination/-/rhumb-destination-6.5.0.tgz", "integrity": "sha512-RHNP1Oy+7xTTdRrTt375jOZeHceFbjwohPHlr9Hf68VdHHPMAWgAKqiX2YgSWDcvECVmiGaBKWus1Df+N7eE4Q==", - "dev": true, "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0" @@ -3135,7 +3048,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/rhumb-distance/-/rhumb-distance-6.5.0.tgz", "integrity": "sha512-oKp8KFE8E4huC2Z1a1KNcFwjVOqa99isxNOwfo4g3SUABQ6NezjKDDrnvC4yI5YZ3/huDjULLBvhed45xdCrzg==", - "dev": true, "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0" @@ -3148,7 +3060,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/sample/-/sample-6.5.0.tgz", "integrity": "sha512-kSdCwY7el15xQjnXYW520heKUrHwRvnzx8ka4eYxX9NFeOxaFITLW2G7UtXb6LJK8mmPXI8Aexv23F2ERqzGFg==", - "dev": true, "dependencies": { "@turf/helpers": "^6.5.0" }, @@ -3160,7 +3071,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/sector/-/sector-6.5.0.tgz", "integrity": "sha512-cYUOkgCTWqa23SOJBqxoFAc/yGCUsPRdn/ovbRTn1zNTm/Spmk6hVB84LCKOgHqvSF25i0d2kWqpZDzLDdAPbw==", - "dev": true, "dependencies": { "@turf/circle": "^6.5.0", "@turf/helpers": "^6.5.0", @@ -3176,7 +3086,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/shortest-path/-/shortest-path-6.5.0.tgz", "integrity": "sha512-4de5+G7+P4hgSoPwn+SO9QSi9HY5NEV/xRJ+cmoFVRwv2CDsuOPDheHKeuIAhKyeKDvPvPt04XYWbac4insJMg==", - "dev": true, "dependencies": { "@turf/bbox": "^6.5.0", "@turf/bbox-polygon": "^6.5.0", @@ -3196,7 +3105,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/simplify/-/simplify-6.5.0.tgz", "integrity": "sha512-USas3QqffPHUY184dwQdP8qsvcVH/PWBYdXY5am7YTBACaQOMAlf6AKJs9FT8jiO6fQpxfgxuEtwmox+pBtlOg==", - "dev": true, "dependencies": { "@turf/clean-coords": "^6.5.0", "@turf/clone": "^6.5.0", @@ -3211,7 +3119,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/square/-/square-6.5.0.tgz", "integrity": "sha512-BM2UyWDmiuHCadVhHXKIx5CQQbNCpOxB6S/aCNOCLbhCeypKX5Q0Aosc5YcmCJgkwO5BERCC6Ee7NMbNB2vHmQ==", - "dev": true, "dependencies": { "@turf/distance": "^6.5.0", "@turf/helpers": "^6.5.0" @@ -3224,7 +3131,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/square-grid/-/square-grid-6.5.0.tgz", "integrity": "sha512-mlR0ayUdA+L4c9h7p4k3pX6gPWHNGuZkt2c5II1TJRmhLkW2557d6b/Vjfd1z9OVaajb1HinIs1FMSAPXuuUrA==", - "dev": true, "dependencies": { "@turf/helpers": "^6.5.0", "@turf/rectangle-grid": "^6.5.0" @@ -3237,7 +3143,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/standard-deviational-ellipse/-/standard-deviational-ellipse-6.5.0.tgz", "integrity": "sha512-02CAlz8POvGPFK2BKK8uHGUk/LXb0MK459JVjKxLC2yJYieOBTqEbjP0qaWhiBhGzIxSMaqe8WxZ0KvqdnstHA==", - "dev": true, "dependencies": { "@turf/center-mean": "^6.5.0", "@turf/ellipse": "^6.5.0", @@ -3254,7 +3159,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/tag/-/tag-6.5.0.tgz", "integrity": "sha512-XwlBvrOV38CQsrNfrxvBaAPBQgXMljeU0DV8ExOyGM7/hvuGHJw3y8kKnQ4lmEQcmcrycjDQhP7JqoRv8vFssg==", - "dev": true, "dependencies": { "@turf/boolean-point-in-polygon": "^6.5.0", "@turf/clone": "^6.5.0", @@ -3269,7 +3173,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/tesselate/-/tesselate-6.5.0.tgz", "integrity": "sha512-M1HXuyZFCfEIIKkglh/r5L9H3c5QTEsnMBoZOFQiRnGPGmJWcaBissGb7mTFX2+DKE7FNWXh4TDnZlaLABB0dQ==", - "dev": true, "dependencies": { "@turf/helpers": "^6.5.0", "earcut": "^2.0.0" @@ -3282,7 +3185,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/tin/-/tin-6.5.0.tgz", "integrity": "sha512-YLYikRzKisfwj7+F+Tmyy/LE3d2H7D4kajajIfc9mlik2+esG7IolsX/+oUz1biguDYsG0DUA8kVYXDkobukfg==", - "dev": true, "dependencies": { "@turf/helpers": "^6.5.0" }, @@ -3294,7 +3196,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/transform-rotate/-/transform-rotate-6.5.0.tgz", "integrity": "sha512-A2Ip1v4246ZmpssxpcL0hhiVBEf4L8lGnSPWTgSv5bWBEoya2fa/0SnFX9xJgP40rMP+ZzRaCN37vLHbv1Guag==", - "dev": true, "dependencies": { "@turf/centroid": "^6.5.0", "@turf/clone": "^6.5.0", @@ -3313,7 +3214,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/transform-scale/-/transform-scale-6.5.0.tgz", "integrity": "sha512-VsATGXC9rYM8qTjbQJ/P7BswKWXHdnSJ35JlV4OsZyHBMxJQHftvmZJsFbOqVtQnIQIzf2OAly6rfzVV9QLr7g==", - "dev": true, "dependencies": { "@turf/bbox": "^6.5.0", "@turf/center": "^6.5.0", @@ -3334,7 +3234,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/transform-translate/-/transform-translate-6.5.0.tgz", "integrity": "sha512-NABLw5VdtJt/9vSstChp93pc6oel4qXEos56RBMsPlYB8hzNTEKYtC146XJvyF4twJeeYS8RVe1u7KhoFwEM5w==", - "dev": true, "dependencies": { "@turf/clone": "^6.5.0", "@turf/helpers": "^6.5.0", @@ -3350,7 +3249,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/triangle-grid/-/triangle-grid-6.5.0.tgz", "integrity": "sha512-2jToUSAS1R1htq4TyLQYPTIsoy6wg3e3BQXjm2rANzw4wPQCXGOxrur1Fy9RtzwqwljlC7DF4tg0OnWr8RjmfA==", - "dev": true, "dependencies": { "@turf/distance": "^6.5.0", "@turf/helpers": "^6.5.0", @@ -3364,7 +3262,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/truncate/-/truncate-6.5.0.tgz", "integrity": "sha512-pFxg71pLk+eJj134Z9yUoRhIi8vqnnKvCYwdT4x/DQl/19RVdq1tV3yqOT3gcTQNfniteylL5qV1uTBDV5sgrg==", - "dev": true, "dependencies": { "@turf/helpers": "^6.5.0", "@turf/meta": "^6.5.0" @@ -3377,7 +3274,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/turf/-/turf-6.5.0.tgz", "integrity": "sha512-ipMCPnhu59bh92MNt8+pr1VZQhHVuTMHklciQURo54heoxRzt1neNYZOBR6jdL+hNsbDGAECMuIpAutX+a3Y+w==", - "dev": true, "dependencies": { "@turf/along": "^6.5.0", "@turf/angle": "^6.5.0", @@ -3493,7 +3389,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/union/-/union-6.5.0.tgz", "integrity": "sha512-igYWCwP/f0RFHIlC2c0SKDuM/ObBaqSljI3IdV/x71805QbIvY/BYGcJdyNcgEA6cylIGl/0VSlIbpJHZ9ldhw==", - "dev": true, "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0", @@ -3507,7 +3402,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/unkink-polygon/-/unkink-polygon-6.5.0.tgz", "integrity": "sha512-8QswkzC0UqKmN1DT6HpA9upfa1HdAA5n6bbuzHy8NJOX8oVizVAqfEPY0wqqTgboDjmBR4yyImsdPGUl3gZ8JQ==", - "dev": true, "dependencies": { "@turf/area": "^6.5.0", "@turf/boolean-point-in-polygon": "^6.5.0", @@ -3523,7 +3417,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/voronoi/-/voronoi-6.5.0.tgz", "integrity": "sha512-C/xUsywYX+7h1UyNqnydHXiun4UPjK88VDghtoRypR9cLlb7qozkiLRphQxxsCM0KxyxpVPHBVQXdAL3+Yurow==", - "dev": true, "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0", @@ -4559,8 +4452,7 @@ "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 + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" }, "node_modules/concat-map": { "version": "0.0.1", @@ -4586,7 +4478,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/concaveman/-/concaveman-1.2.1.tgz", "integrity": "sha512-PwZYKaM/ckQSa8peP5JpVr7IMJ4Nn/MHIaWUjP4be+KoZ7Botgs8seAZGpmaOM+UZXawcdYRao/px9ycrCihHw==", - "dev": true, "dependencies": { "point-in-polygon": "^1.1.0", "rbush": "^3.0.1", @@ -4597,14 +4488,12 @@ "node_modules/concaveman/node_modules/quickselect": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", - "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==", - "dev": true + "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==" }, "node_modules/concaveman/node_modules/rbush": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/rbush/-/rbush-3.0.1.tgz", "integrity": "sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==", - "dev": true, "dependencies": { "quickselect": "^2.0.0" } @@ -4811,14 +4700,12 @@ "node_modules/d3-array": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", - "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==", - "dev": true + "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==" }, "node_modules/d3-geo": { "version": "1.7.1", "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.7.1.tgz", "integrity": "sha512-O4AempWAr+P5qbk2bC2FuN/sDW4z+dN2wDf9QV3bxQt4M5HfOEeXLgJ/UKQW0+o1Dj8BE+L5kiDbdWUMjsmQpw==", - "dev": true, "dependencies": { "d3-array": "1" } @@ -4826,8 +4713,7 @@ "node_modules/d3-voronoi": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/d3-voronoi/-/d3-voronoi-1.1.2.tgz", - "integrity": "sha512-RhGS1u2vavcO7ay7ZNAPo4xeDh/VYeGof3x5ZLJBQgYhLegxr3s5IykvWmJ94FTU6mcbtp4sloqZ54mP6R4Utw==", - "dev": true + "integrity": "sha512-RhGS1u2vavcO7ay7ZNAPo4xeDh/VYeGof3x5ZLJBQgYhLegxr3s5IykvWmJ94FTU6mcbtp4sloqZ54mP6R4Utw==" }, "node_modules/dash-ast": { "version": "1.0.0", @@ -4869,7 +4755,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", - "dev": true, "dependencies": { "is-arguments": "^1.0.4", "is-date-object": "^1.0.1", @@ -4886,7 +4771,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", - "dev": true, "dependencies": { "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" @@ -4910,8 +4794,7 @@ "node_modules/density-clustering": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/density-clustering/-/density-clustering-1.3.0.tgz", - "integrity": "sha512-icpmBubVTwLnsaor9qH/4tG5+7+f61VcqMN3V3pm9sxxSCt2Jcs0zWOgwZW9ARJYaKD3FumIgHiMOcIMRRAzFQ==", - "dev": true + "integrity": "sha512-icpmBubVTwLnsaor9qH/4tG5+7+f61VcqMN3V3pm9sxxSCt2Jcs0zWOgwZW9ARJYaKD3FumIgHiMOcIMRRAzFQ==" }, "node_modules/depd": { "version": "1.1.2", @@ -5012,8 +4895,7 @@ "node_modules/earcut": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz", - "integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==", - "dev": true + "integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==" }, "node_modules/ee-first": { "version": "1.1.1", @@ -5435,7 +5317,6 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -5459,7 +5340,6 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/geojson-equality/-/geojson-equality-0.1.6.tgz", "integrity": "sha512-TqG8YbqizP3EfwP5Uw4aLu6pKkg6JQK9uq/XZ1lXQntvTHD1BBKJWhNpJ2M0ax6TuWMP3oyx6Oq7FCIfznrgpQ==", - "dev": true, "dependencies": { "deep-equal": "^1.0.0" } @@ -5468,7 +5348,6 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/geojson-rbush/-/geojson-rbush-3.2.0.tgz", "integrity": "sha512-oVltQTXolxvsz1sZnutlSuLDEcQAKYC/uXt9zDzJJ6bu0W+baTI8LZBaTup5afzibEH4N3jlq2p+a152wlBJ7w==", - "dev": true, "dependencies": { "@turf/bbox": "*", "@turf/helpers": "6.x", @@ -5480,20 +5359,17 @@ "node_modules/geojson-rbush/node_modules/@types/geojson": { "version": "7946.0.8", "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.8.tgz", - "integrity": "sha512-1rkryxURpr6aWP7R786/UQOkJ3PcpQiWkAXBmdWc7ryFWqN6a4xfK7BtjXvFBKO9LjQ+MWQSWxYeZX1OApnArA==", - "dev": true + "integrity": "sha512-1rkryxURpr6aWP7R786/UQOkJ3PcpQiWkAXBmdWc7ryFWqN6a4xfK7BtjXvFBKO9LjQ+MWQSWxYeZX1OApnArA==" }, "node_modules/geojson-rbush/node_modules/quickselect": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", - "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==", - "dev": true + "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==" }, "node_modules/geojson-rbush/node_modules/rbush": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/rbush/-/rbush-3.0.1.tgz", "integrity": "sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==", - "dev": true, "dependencies": { "quickselect": "^2.0.0" } @@ -5623,7 +5499,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, "dependencies": { "get-intrinsic": "^1.1.1" }, @@ -5646,7 +5521,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, "dependencies": { "has-symbols": "^1.0.2" }, @@ -5864,7 +5738,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -5928,7 +5801,6 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -5997,7 +5869,6 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -6537,7 +6408,6 @@ "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" } @@ -6554,7 +6424,6 @@ "version": "1.1.5", "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3" @@ -6570,7 +6439,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, "engines": { "node": ">= 0.4" } @@ -6768,14 +6636,12 @@ "node_modules/point-in-polygon": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/point-in-polygon/-/point-in-polygon-1.1.0.tgz", - "integrity": "sha512-3ojrFwjnnw8Q9242TzgXuTD+eKiutbzyslcq1ydfu82Db2y+Ogbmyrkpv0Hgj31qwT3lbS9+QAAO/pIQM35XRw==", - "dev": true + "integrity": "sha512-3ojrFwjnnw8Q9242TzgXuTD+eKiutbzyslcq1ydfu82Db2y+Ogbmyrkpv0Hgj31qwT3lbS9+QAAO/pIQM35XRw==" }, "node_modules/polygon-clipping": { "version": "0.15.3", "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.3.tgz", "integrity": "sha512-ho0Xx5DLkgxRx/+n4O74XyJ67DcyN3Tu9bGYKsnTukGAW6ssnuak6Mwcyb1wHy9MZc9xsUWqIoiazkZB5weECg==", - "dev": true, "dependencies": { "splaytree": "^3.1.0" } @@ -6895,8 +6761,7 @@ "node_modules/quickselect": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-1.1.1.tgz", - "integrity": "sha512-qN0Gqdw4c4KGPsBOQafj6yj/PA6c/L63f6CaZ/DCF/xF4Esu3jVmKLUDYxghFx8Kb/O7y9tI7x2RjTSXwdK1iQ==", - "dev": true + "integrity": "sha512-qN0Gqdw4c4KGPsBOQafj6yj/PA6c/L63f6CaZ/DCF/xF4Esu3jVmKLUDYxghFx8Kb/O7y9tI7x2RjTSXwdK1iQ==" }, "node_modules/randombytes": { "version": "2.1.0", @@ -6984,7 +6849,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/rbush/-/rbush-2.0.2.tgz", "integrity": "sha512-XBOuALcTm+O/H8G90b6pzu6nX6v2zCKiFG4BJho8a+bY6AER6t8uQUZdi5bomQc0AprCWhEGa7ncAbbRap0bRA==", - "dev": true, "dependencies": { "quickselect": "^1.0.1" } @@ -7071,7 +6935,6 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -7174,8 +7037,7 @@ "node_modules/robust-predicates": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-2.0.4.tgz", - "integrity": "sha512-l4NwboJM74Ilm4VKfbAtFeGq7aEjWL+5kVFcmgFA2MrdnQWx9iE/tUGvxY5HyMI7o/WpSIUFLbC5fbeaHgSCYg==", - "dev": true + "integrity": "sha512-l4NwboJM74Ilm4VKfbAtFeGq7aEjWL+5kVFcmgFA2MrdnQWx9iE/tUGvxY5HyMI7o/WpSIUFLbC5fbeaHgSCYg==" }, "node_modules/rxjs": { "version": "7.8.0", @@ -7358,8 +7220,7 @@ "node_modules/skmeans": { "version": "0.9.7", "resolved": "https://registry.npmjs.org/skmeans/-/skmeans-0.9.7.tgz", - "integrity": "sha512-hNj1/oZ7ygsfmPZ7ZfN5MUBRoGg1gtpnImuJBgLO0ljQ67DtJuiQaiYdS4lUA6s0KCwnPhGivtC/WRwIZLkHyg==", - "dev": true + "integrity": "sha512-hNj1/oZ7ygsfmPZ7ZfN5MUBRoGg1gtpnImuJBgLO0ljQ67DtJuiQaiYdS4lUA6s0KCwnPhGivtC/WRwIZLkHyg==" }, "node_modules/sortablejs": { "version": "1.15.0", @@ -7385,8 +7246,7 @@ "node_modules/splaytree": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.2.tgz", - "integrity": "sha512-4OM2BJgC5UzrhVnnJA4BkHKGtjXNzzUfpQjCO8I05xYPsfS/VuQDwjCGGMi8rYQilHEV4j8NBqTFbls/PZEE7A==", - "dev": true + "integrity": "sha512-4OM2BJgC5UzrhVnnJA4BkHKGtjXNzzUfpQjCO8I05xYPsfS/VuQDwjCGGMi8rYQilHEV4j8NBqTFbls/PZEE7A==" }, "node_modules/split": { "version": "1.0.1", @@ -7683,8 +7543,7 @@ "node_modules/tinyqueue": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-2.0.3.tgz", - "integrity": "sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA==", - "dev": true + "integrity": "sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA==" }, "node_modules/to-fast-properties": { "version": "2.0.0", @@ -7719,7 +7578,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz", "integrity": "sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==", - "dev": true, "dependencies": { "commander": "2" }, @@ -7733,7 +7591,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/topojson-server/-/topojson-server-3.0.1.tgz", "integrity": "sha512-/VS9j/ffKr2XAOjlZ9CgyyeLmgJ9dMwq6Y0YEON8O7p/tGGk+dCWnrE03zEdu7i4L7YsFZLEPZPzCvcB7lEEXw==", - "dev": true, "dependencies": { "commander": "2" }, @@ -7815,8 +7672,7 @@ "node_modules/turf-jsts": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/turf-jsts/-/turf-jsts-1.2.3.tgz", - "integrity": "sha512-Ja03QIJlPuHt4IQ2FfGex4F4JAr8m3jpaHbFbQrgwr7s7L6U8ocrHiF3J1+wf9jzhGKxvDeaCAnGDot8OjGFyA==", - "dev": true + "integrity": "sha512-Ja03QIJlPuHt4IQ2FfGex4F4JAr8m3jpaHbFbQrgwr7s7L6U8ocrHiF3J1+wf9jzhGKxvDeaCAnGDot8OjGFyA==" }, "node_modules/type-is": { "version": "1.6.18", diff --git a/client/package.json b/client/package.json index 0007e31b..77c3c874 100644 --- a/client/package.json +++ b/client/package.json @@ -8,10 +8,12 @@ "build": "browserify .\\src\\index.ts --debug -o .\\public\\javascripts\\bundle.js -t [ babelify --global true --presets [ @babel/preset-env ] --extensions '.js'] -p [ tsify --noImplicitAny ] && copy.bat", "emit-declarations": "tsc --project tsconfig.json --declaration --emitDeclarationOnly --outfile ./@types/olympus/index.d.ts", "copy": "copy.bat", - "start": "npm run copy & concurrently --kill-others \"npm run watch\" \"nodemon --ignore ./public/databases/ ./bin/www\"", + "start": "node ./bin/www", + "debug": "npm run copy & concurrently --kill-others \"npm run watch\" \"nodemon --ignore ./public/databases/ ./bin/www\"", "watch": "watchify .\\src\\index.ts --debug -o .\\public\\javascripts\\bundle.js -t [ babelify --global true --presets [ @babel/preset-env ] --extensions '.js'] -p [ tsify --noImplicitAny ]" }, "dependencies": { + "@turf/turf": "^6.5.0", "body-parser": "^1.20.2", "cookie-parser": "~1.4.4", "debug": "~2.6.9", @@ -26,7 +28,6 @@ "devDependencies": { "@babel/preset-env": "^7.21.4", "@tanem/svg-injector": "^10.1.55", - "@turf/turf": "^6.5.0", "@types/formatcoords": "^1.1.0", "@types/geojson": "^7946.0.10", "@types/leaflet": "^1.9.0", diff --git a/client/public/stylesheets/style/style.css b/client/public/stylesheets/style/style.css index e59e5d6a..368571d0 100644 --- a/client/public/stylesheets/style/style.css +++ b/client/public/stylesheets/style/style.css @@ -807,6 +807,7 @@ nav.ol-panel> :last-child { margin: 10px 0px; flex-wrap: wrap; width: 100%; + row-gap: 10px; } #authentication-form>div { diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 48e341a0..00000000 --- a/package-lock.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "lockfileVersion": 1 -} From 121f9b6ec3ba3e7145a63041da9a5452465bc0b6 Mon Sep 17 00:00:00 2001 From: PeekabooSteam Date: Sun, 15 Oct 2023 11:51:49 +0100 Subject: [PATCH 05/19] Tweaked string functions --- client/plugins/databasemanager/src/utils.ts | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/client/plugins/databasemanager/src/utils.ts b/client/plugins/databasemanager/src/utils.ts index 3d28d11a..a13f0e9f 100644 --- a/client/plugins/databasemanager/src/utils.ts +++ b/client/plugins/databasemanager/src/utils.ts @@ -264,24 +264,10 @@ export function addLoadoutsScroll(div: HTMLElement, loadouts: LoadoutBlueprint[] * @returns The string */ export function arrayToString(array: string[]) { - var value = "["; - var firstRole = true; - array.forEach((role: string) => { - value += firstRole? "": ", "; - firstRole = false; - value += role; - }) - value += "]"; - return value; + return "[" + array.join( ", " ) + "]"; } export function stringToArray(input: string) { - input = input.replace("[", "").replace("]", ""); - var values = input.split(","); - var result: string[] = []; - values.forEach((value: string) => { - result.push(value.trim()); - }) - return result; + return input.match( /([\w])+/g ); } \ No newline at end of file From 2b1272c70d3711c76f3c46f2e8ef441fc61c0a83 Mon Sep 17 00:00:00 2001 From: PeekabooSteam Date: Sun, 15 Oct 2023 11:53:12 +0100 Subject: [PATCH 06/19] Removed needless [] --- client/plugins/databasemanager/src/utils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/plugins/databasemanager/src/utils.ts b/client/plugins/databasemanager/src/utils.ts index a13f0e9f..19cec041 100644 --- a/client/plugins/databasemanager/src/utils.ts +++ b/client/plugins/databasemanager/src/utils.ts @@ -269,5 +269,5 @@ export function arrayToString(array: string[]) { export function stringToArray(input: string) { - return input.match( /([\w])+/g ); + return input.match( /(\w)+/g ); } \ No newline at end of file From 8e545346e6be716f9d01fc01caf27a58ba51fbb4 Mon Sep 17 00:00:00 2001 From: PeekabooSteam Date: Mon, 16 Oct 2023 09:13:44 +0100 Subject: [PATCH 07/19] Exploratory tweaks --- client/src/contextmenus/mapcontextmenu.ts | 6 +++--- client/src/controls/unitspawnmenu.ts | 4 ++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/client/src/contextmenus/mapcontextmenu.ts b/client/src/contextmenus/mapcontextmenu.ts index 23f512cf..34ce3a80 100644 --- a/client/src/contextmenus/mapcontextmenu.ts +++ b/client/src/contextmenus/mapcontextmenu.ts @@ -65,9 +65,9 @@ export class MapContextMenu extends ContextMenu { } }); - document.addEventListener("commandModeOptionsChanged", (e: any) => { - //this.#refreshOptions(); - }); + // document.addEventListener("commandModeOptionsChanged", (e: any) => { + // //this.#refreshOptions(); + // }); this.#aircraftSpawnMenu.getContainer().addEventListener("resize", () => this.clip()); this.#helicopterSpawnMenu.getContainer().addEventListener("resize", () => this.clip()); diff --git a/client/src/controls/unitspawnmenu.ts b/client/src/controls/unitspawnmenu.ts index f7d53d9d..37787c1f 100644 --- a/client/src/controls/unitspawnmenu.ts +++ b/client/src/controls/unitspawnmenu.ts @@ -290,6 +290,10 @@ export class UnitSpawnMenu { var acquisitionRange = this.#unitDatabase.getByName(this.spawnOptions.name)?.acquisitionRange ?? 0; var engagementRange = this.#unitDatabase.getByName(this.spawnOptions.name)?.engagementRange ?? 0; + if ( engagementRange === 0 && acquisitionRange === 0 ) { + return; + } + this.#acquisitionCircle.setRadius(acquisitionRange); this.#engagementCircle.setRadius(engagementRange); this.#acquisitionCircle.setLatLng(this.spawnOptions.latlng); From c0aee94da523e2351549139a28945667da20c86a Mon Sep 17 00:00:00 2001 From: PeekabooSteam Date: Mon, 16 Oct 2023 19:45:51 +0100 Subject: [PATCH 08/19] Hotgroup logic updated --- client/plugins/controltips/index.js | 18 ++++++++++++++++ .../controltips/src/controltipsplugin.ts | 21 +++++++++++++++++++ client/src/olympusapp.ts | 8 +++---- client/src/panels/hotgrouppanel.ts | 4 ++-- 4 files changed, 45 insertions(+), 6 deletions(-) diff --git a/client/plugins/controltips/index.js b/client/plugins/controltips/index.js index 2153ddef..a3092be0 100644 --- a/client/plugins/controltips/index.js +++ b/client/plugins/controltips/index.js @@ -273,6 +273,11 @@ _ControlTipsPlugin_element = new WeakMap(), _ControlTipsPlugin_app = new WeakMap "showIfUnitSelected": true, "minSelectedUnits": 2 }, + { + "key": `[Num 1-9]`, + "action": "Add to hotgroup", + "showIfUnitSelected": true + }, { "key": "CTRL", "action": " ... more", @@ -292,6 +297,16 @@ _ControlTipsPlugin_element = new WeakMap(), _ControlTipsPlugin_app = new WeakMap "showIfUnitSelected": true, "minSelectedUnits": 2, "unitsMustBeControlled": true + }, { + "key": `[Num 1-9]`, + "action": "Add hotgroup to selection", + "callback": (tip) => { + return (Object.values(__classPrivateFieldGet(this, _ControlTipsPlugin_app, "f").getUnitsManager().getUnits()).some((unit) => { + return unit.getHotgroup(); + })); + }, + "showIfUnitSelected": true, + "minSelectedUnits": 1 } ] } @@ -351,6 +366,9 @@ _ControlTipsPlugin_element = new WeakMap(), _ControlTipsPlugin_app = new WeakMap if (!tipsIncludesActiveMouseover && typeof tip.mouseoverSelector === "string") { return false; } + if (typeof tip.callback === "function" && !tip.callback(tip)) { + return false; + } element.innerHTML += `
${tip.key}${tip.action}
`; }); }; diff --git a/client/plugins/controltips/src/controltipsplugin.ts b/client/plugins/controltips/src/controltipsplugin.ts index b50a1ee2..4ac6bff1 100644 --- a/client/plugins/controltips/src/controltipsplugin.ts +++ b/client/plugins/controltips/src/controltipsplugin.ts @@ -1,4 +1,6 @@ import { OlympusPlugin } from "interfaces"; +import { OlympusApp } from "olympusapp"; +import { Unit } from "unit/unit"; const SHOW_CONTROL_TIPS = "Show control tips" @@ -279,6 +281,11 @@ export class ControlTipsPlugin implements OlympusPlugin { "showIfUnitSelected": true, "minSelectedUnits": 2 }, + { + "key": `[Num 1-9]`, + "action": "Add to hotgroup", + "showIfUnitSelected": true + }, { "key": "CTRL", "action": " ... more", @@ -298,6 +305,16 @@ export class ControlTipsPlugin implements OlympusPlugin { "showIfUnitSelected": true, "minSelectedUnits": 2, "unitsMustBeControlled": true + }, { + "key": `[Num 1-9]`, + "action": "Add hotgroup to selection", + "callback": ( tip:object ) => { + return (Object.values( this.#app.getUnitsManager().getUnits() ).some( ( unit:Unit ) => { + return unit.getHotgroup(); + })); + }, + "showIfUnitSelected": true, + "minSelectedUnits": 1 } ] } @@ -375,6 +392,10 @@ export class ControlTipsPlugin implements OlympusPlugin { return false; } + if ( typeof tip.callback === "function" && !tip.callback( tip ) ) { + return false; + } + element.innerHTML += `
${tip.key}${tip.action}
`; }); diff --git a/client/src/olympusapp.ts b/client/src/olympusapp.ts index a8d9483d..ac1181a1 100644 --- a/client/src/olympusapp.ts +++ b/client/src/olympusapp.ts @@ -339,13 +339,13 @@ export class OlympusApp { "altKey": false, "callback": (ev: KeyboardEvent) => { if (ev.ctrlKey && ev.shiftKey) - this.getUnitsManager().selectedUnitsAddToHotgroup(parseInt(ev.code.substring(5))); + this.getUnitsManager().selectUnitsByHotgroup(parseInt(ev.code.substring(5)), false); // "Select hotgroup X in addition to any units already selected" else if (ev.ctrlKey && !ev.shiftKey) - this.getUnitsManager().selectedUnitsSetHotgroup(parseInt(ev.code.substring(5))); + this.getUnitsManager().selectedUnitsSetHotgroup(parseInt(ev.code.substring(5))); // "These selected units are hotgroup X (forget any previous membership)" else if (!ev.ctrlKey && ev.shiftKey) - this.getUnitsManager().selectUnitsByHotgroup(parseInt(ev.code.substring(5)), false); + this.getUnitsManager().selectedUnitsAddToHotgroup(parseInt(ev.code.substring(5))); // "Add (append) these units to hotgroup X (in addition to any existing members)" else - this.getUnitsManager().selectUnitsByHotgroup(parseInt(ev.code.substring(5))); + this.getUnitsManager().selectUnitsByHotgroup(parseInt(ev.code.substring(5))); // "Select hotgroup X, deselect any units not in it." }, "code": code }); diff --git a/client/src/panels/hotgrouppanel.ts b/client/src/panels/hotgrouppanel.ts index 007e5b92..ef9d2e5f 100644 --- a/client/src/panels/hotgrouppanel.ts +++ b/client/src/panels/hotgrouppanel.ts @@ -42,8 +42,8 @@ export class HotgroupPanel extends Panel { this.getElement().appendChild(el); - el.addEventListener("click", () => { - getApp().getUnitsManager().selectUnitsByHotgroup(hotgroup); + el.addEventListener("click", ( ev:MouseEvent ) => { + getApp().getUnitsManager().selectUnitsByHotgroup(hotgroup, (!ev.ctrlKey)); }); el.addEventListener("mouseover", () => { From 1413f596fbc1a77197934983c36ac6233a385771 Mon Sep 17 00:00:00 2001 From: PeekabooSteam Date: Tue, 17 Oct 2023 11:27:21 +0100 Subject: [PATCH 09/19] Improved filter logic --- client/plugins/controltips/src/controltipsplugin.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/plugins/controltips/src/controltipsplugin.ts b/client/plugins/controltips/src/controltipsplugin.ts index 4ac6bff1..511f89bf 100644 --- a/client/plugins/controltips/src/controltipsplugin.ts +++ b/client/plugins/controltips/src/controltipsplugin.ts @@ -310,7 +310,7 @@ export class ControlTipsPlugin implements OlympusPlugin { "action": "Add hotgroup to selection", "callback": ( tip:object ) => { return (Object.values( this.#app.getUnitsManager().getUnits() ).some( ( unit:Unit ) => { - return unit.getHotgroup(); + return unit.getAlive() && unit.getControlled() && unit.getHotgroup(); })); }, "showIfUnitSelected": true, From 4d31d9d7484be5229977fdb9be409fb538468d94 Mon Sep 17 00:00:00 2001 From: PeekabooSteam Date: Wed, 18 Oct 2023 10:23:50 +0100 Subject: [PATCH 10/19] Unit spawn qty now sorted numerically. --- client/src/controls/dropdown.ts | 17 +++++++++++++++-- client/src/controls/unitspawnmenu.ts | 2 +- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/client/src/controls/dropdown.ts b/client/src/controls/dropdown.ts index c7823856..8af9baf9 100644 --- a/client/src/controls/dropdown.ts +++ b/client/src/controls/dropdown.ts @@ -36,8 +36,21 @@ export class Dropdown { return this.#container; } - setOptions(optionsList: string[], sortAlphabetically: boolean = true) { - this.#optionsList = optionsList.sort(); + setOptions(optionsList: string[], sort:""|"string"|"number" = "string") { + + if ( sort === "number" ) { + this.#optionsList = optionsList.sort( (optionA:string, optionB:string) => { + const a = parseInt( optionA ); + const b = parseInt( optionB ); + if ( a > b ) + return 1; + else + return ( b > a ) ? -1 : 0; + }); + } else if ( sort === "string" ) { + this.#optionsList = optionsList.sort(); + } + if (this.#optionsList.length == 0) { optionsList = ["No options available"] this.#value.innerText = "No options available"; diff --git a/client/src/controls/unitspawnmenu.ts b/client/src/controls/unitspawnmenu.ts index f7d53d9d..442f6f73 100644 --- a/client/src/controls/unitspawnmenu.ts +++ b/client/src/controls/unitspawnmenu.ts @@ -346,7 +346,7 @@ export class UnitSpawnMenu { var countOptions: string[] = []; for (let i = 1; i <= maxUnitCount; i++) countOptions.push(i.toString()); - this.#unitCountDropdown.setOptions(countOptions); + this.#unitCountDropdown.setOptions(countOptions, "number"); this.#unitCountDropdown.selectValue(0); } From e4e55430ca0e34a47165b884e05f73d8fd3196c4 Mon Sep 17 00:00:00 2001 From: PeekabooSteam Date: Wed, 18 Oct 2023 11:17:05 +0100 Subject: [PATCH 11/19] Optimised quantity option generator --- client/src/controls/unitspawnmenu.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/client/src/controls/unitspawnmenu.ts b/client/src/controls/unitspawnmenu.ts index 442f6f73..7c5b88ef 100644 --- a/client/src/controls/unitspawnmenu.ts +++ b/client/src/controls/unitspawnmenu.ts @@ -343,10 +343,7 @@ export class UnitSpawnMenu { setMaxUnitCount(maxUnitCount: number) { /* Create the unit count options */ - var countOptions: string[] = []; - for (let i = 1; i <= maxUnitCount; i++) - countOptions.push(i.toString()); - this.#unitCountDropdown.setOptions(countOptions, "number"); + this.#unitCountDropdown.setOptions( [...Array(maxUnitCount).keys()].map( n => (n+1).toString() ), "number"); this.#unitCountDropdown.selectValue(0); } From 1691b0b30c4bf950c5826cfd90543b3faf666288 Mon Sep 17 00:00:00 2001 From: PeekabooSteam Date: Wed, 18 Oct 2023 12:13:51 +0100 Subject: [PATCH 12/19] Range rings only showing when necessary --- client/src/contextmenus/mapcontextmenu.ts | 6 ++++-- client/src/controls/unitspawnmenu.ts | 14 +++++++++++++- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/client/src/contextmenus/mapcontextmenu.ts b/client/src/contextmenus/mapcontextmenu.ts index 34ce3a80..f7924fcd 100644 --- a/client/src/contextmenus/mapcontextmenu.ts +++ b/client/src/contextmenus/mapcontextmenu.ts @@ -18,6 +18,7 @@ export class MapContextMenu extends ContextMenu { #groundUnitSpawnMenu: GroundUnitSpawnMenu; #navyUnitSpawnMenu: NavyUnitSpawnMenu; #coalitionArea: CoalitionArea | null = null; + #selectedUnitCategory: string = ""; /** * @@ -39,9 +40,10 @@ export class MapContextMenu extends ContextMenu { /* Event listeners */ document.addEventListener("mapContextMenuShow", (e: any) => { - if (this.getVisibleSubMenu() !== e.detail.type) + if (this.getVisibleSubMenu() !== e.detail.type) { this.#showSubMenu(e.detail.type); - else + this.#selectedUnitCategory = e.detail.type; + } else this.#hideSubMenus(e.detail.type); }); diff --git a/client/src/controls/unitspawnmenu.ts b/client/src/controls/unitspawnmenu.ts index 37787c1f..0115add5 100644 --- a/client/src/controls/unitspawnmenu.ts +++ b/client/src/controls/unitspawnmenu.ts @@ -50,6 +50,7 @@ export class UnitSpawnMenu { /* Range circle previews */ #engagementCircle: Circle; #acquisitionCircle: Circle; + protected showRangeCircles: boolean = false; constructor(ID: string, unitDatabase: UnitDatabase, orderByRole: boolean) { this.#container = document.getElementById(ID) as HTMLElement; @@ -244,6 +245,10 @@ export class UnitSpawnMenu { return this.#container; } + getVisible() { + return !this.getContainer().classList.contains( "hide" ); + } + reset() { this.#deployUnitButtonEl.disabled = true; this.#unitRoleTypeDropdown.reset(); @@ -286,11 +291,15 @@ export class UnitSpawnMenu { showCirclesPreviews() { this.clearCirclesPreviews(); + + if ( !this.showRangeCircles || this.spawnOptions.name === "" || !this.getVisible() ) { + return; + } var acquisitionRange = this.#unitDatabase.getByName(this.spawnOptions.name)?.acquisitionRange ?? 0; var engagementRange = this.#unitDatabase.getByName(this.spawnOptions.name)?.engagementRange ?? 0; - if ( engagementRange === 0 && acquisitionRange === 0 ) { + if ( acquisitionRange === 0 && engagementRange === 0 ) { return; } @@ -576,6 +585,9 @@ export class HelicopterSpawnMenu extends UnitSpawnMenu { } export class GroundUnitSpawnMenu extends UnitSpawnMenu { + + protected showRangeCircles: boolean = true; + /** * * @param ID - the ID of the HTML element which will contain the context menu From 005ffc55ce285b077737b8126887e18439e575f7 Mon Sep 17 00:00:00 2001 From: PeekabooSteam Date: Wed, 18 Oct 2023 12:15:59 +0100 Subject: [PATCH 13/19] var => let --- client/src/controls/unitspawnmenu.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/src/controls/unitspawnmenu.ts b/client/src/controls/unitspawnmenu.ts index 0115add5..8ea87707 100644 --- a/client/src/controls/unitspawnmenu.ts +++ b/client/src/controls/unitspawnmenu.ts @@ -296,8 +296,8 @@ export class UnitSpawnMenu { return; } - var acquisitionRange = this.#unitDatabase.getByName(this.spawnOptions.name)?.acquisitionRange ?? 0; - var engagementRange = this.#unitDatabase.getByName(this.spawnOptions.name)?.engagementRange ?? 0; + let acquisitionRange = this.#unitDatabase.getByName(this.spawnOptions.name)?.acquisitionRange ?? 0; + let engagementRange = this.#unitDatabase.getByName(this.spawnOptions.name)?.engagementRange ?? 0; if ( acquisitionRange === 0 && engagementRange === 0 ) { return; From 67079e1c0b511dabd5c91c184cffa9125c591c96 Mon Sep 17 00:00:00 2001 From: PeekabooSteam Date: Wed, 18 Oct 2023 13:20:54 +0100 Subject: [PATCH 14/19] Munitions constrained to a scrollable --- client/public/stylesheets/panels/unitinfo.css | 16 ++++++++-------- client/views/panels/unitinfo.ejs | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/client/public/stylesheets/panels/unitinfo.css b/client/public/stylesheets/panels/unitinfo.css index 49dae06e..9ef7b10b 100644 --- a/client/public/stylesheets/panels/unitinfo.css +++ b/client/public/stylesheets/panels/unitinfo.css @@ -97,14 +97,14 @@ } #loadout-items { - margin-right: 20px; align-self: center; - display: flex; - flex-flow: column; - row-gap: 8px; column-gap: 8px; - max-height: 90px; - flex-wrap: wrap; + display: flex; + flex-flow: column nowrap; + margin-right: 20px; + max-height: 110px; + padding-right:20px; + row-gap: 6px; } #loadout-items>* { @@ -122,7 +122,7 @@ display: flex; font-size: 11px; font-weight: bold; - padding: 4px 6px; + padding: 3px 4px; } #loadout-items>*::after { @@ -137,7 +137,7 @@ #fuel-percentage { align-items: center; display: flex; - margin-top: auto; + margin-top: 8px; } #fuel-percentage::before { diff --git a/client/views/panels/unitinfo.ejs b/client/views/panels/unitinfo.ejs index c1aeada6..25e35ed1 100644 --- a/client/views/panels/unitinfo.ejs +++ b/client/views/panels/unitinfo.ejs @@ -13,7 +13,7 @@
-
+
From 44deef4a5a6cfc8baf2217c70de9e0337abd40eb Mon Sep 17 00:00:00 2001 From: PeekabooSteam Date: Wed, 18 Oct 2023 13:23:25 +0100 Subject: [PATCH 15/19] Tweaked spacing --- client/public/stylesheets/panels/unitinfo.css | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/client/public/stylesheets/panels/unitinfo.css b/client/public/stylesheets/panels/unitinfo.css index 9ef7b10b..0fe84177 100644 --- a/client/public/stylesheets/panels/unitinfo.css +++ b/client/public/stylesheets/panels/unitinfo.css @@ -101,9 +101,8 @@ column-gap: 8px; display: flex; flex-flow: column nowrap; - margin-right: 20px; max-height: 110px; - padding-right:20px; + padding-right:40px; row-gap: 6px; } From 94684fff9f805aa5474c31da3df333d421142a63 Mon Sep 17 00:00:00 2001 From: PeekabooSteam Date: Wed, 18 Oct 2023 13:54:33 +0100 Subject: [PATCH 16/19] More spacing tweaking --- client/public/stylesheets/panels/unitinfo.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/public/stylesheets/panels/unitinfo.css b/client/public/stylesheets/panels/unitinfo.css index 0fe84177..50c90faf 100644 --- a/client/public/stylesheets/panels/unitinfo.css +++ b/client/public/stylesheets/panels/unitinfo.css @@ -101,7 +101,7 @@ column-gap: 8px; display: flex; flex-flow: column nowrap; - max-height: 110px; + max-height: 108px; padding-right:40px; row-gap: 6px; } From cc729b1d25dba03c68c225b24da8046fc65f9016 Mon Sep 17 00:00:00 2001 From: Shredmetal <131475927+Shredmetal@users.noreply.github.com> Date: Thu, 26 Oct 2023 16:45:58 +0800 Subject: [PATCH 17/19] Update and rename COPYING to LEGAL Cleaned up the legal text --- COPYING => LEGAL | 90 ++++++++++++++++++++---------------------------- 1 file changed, 38 insertions(+), 52 deletions(-) rename COPYING => LEGAL (92%) diff --git a/COPYING b/LEGAL similarity index 92% rename from COPYING rename to LEGAL index e72bfdda..f92851cf 100644 --- a/COPYING +++ b/LEGAL @@ -1,4 +1,33 @@ - GNU GENERAL PUBLIC LICENSE +DCS Olympus + +A real-time AI unit control mod for DCS World + +Copyright (C) 2023 Veltro & Gang + +DCS Olympus (the "MATERIAL" or "Software") is provided completely free +to users subject to the it under both the terms of version 3 of the GNU +General Public License as published by the Free Software Foundation, and +the additional terms set out below; except where such terms conflict with this +disclaimer, in which case, the terms of this disclaimer shall prevail. + +The authors and/or copyright holders of the Software have not received any +financial benefit in connection with the Software. In any event, the +Software is provided “as is”, without warranty of any kind, express or +implied, including but not limited to the warranties of merchantability, +fitness for a particular purpose and non-infringement. In no event shall +the authors and/or copyright holders be liable for any claim, damages or +other liability, whether in an action of contract, tort or otherwise, +arising from, out of or in connection with the Software or the use or o +ther dealings in the Software. + +Any party making use of the Software in any manner agrees to be +bound by the terms set out in this disclaimer, version 3 of the GNU +General Public Licence, and the Additional Terms below. + +THIS MATERIAL IS NOT MADE OR SUPPORTED BY EAGLE DYNAMICS SA. + + + GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. @@ -618,57 +647,14 @@ an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. - END OF TERMS AND CONDITIONS + END OF GNU GENERAL PUBLIC LICENCE - How to Apply These Terms to Your New Programs + ADDITIONAL TERMS & CONDITIONS - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. +1. Governing Law - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. \ No newline at end of file + Save where specifically provided for otherwise, the provisions of the +GNU General Public Licence Version 3 above shall be governed by and +interpreted in accordance with English Law and the parties submit to the +exclusive jurisdiction of the English Courts. + From f954338c271252c6dd7ebec85b23ca790aac8cee Mon Sep 17 00:00:00 2001 From: PeekabooSteam Date: Fri, 27 Oct 2023 17:26:41 +0100 Subject: [PATCH 18/19] Added new delete method dialog --- client/public/stylesheets/layout/layout.css | 10 +++ client/public/stylesheets/style/style.css | 8 +- client/src/constants/constants.ts | 5 +- client/src/dialog/dialog.ts | 19 +++++ client/src/olympusapp.ts | 30 ++++---- client/src/server/servermanager.ts | 13 ++-- client/src/unit/unitsmanager.ts | 81 ++++++++++++++++----- client/views/other/dialogs.ejs | 25 ++++++- 8 files changed, 148 insertions(+), 43 deletions(-) create mode 100644 client/src/dialog/dialog.ts diff --git a/client/public/stylesheets/layout/layout.css b/client/public/stylesheets/layout/layout.css index 2dadac0d..8dc6e68d 100644 --- a/client/public/stylesheets/layout/layout.css +++ b/client/public/stylesheets/layout/layout.css @@ -140,6 +140,16 @@ align-items: center; } +#slow-delete-popup { + align-self: center; + display:flex; + justify-self: center; + position: absolute; + width: fit-content; + height: fit-content; + z-index: 9999999999; +} + #log-panel { position: absolute; right: 0px; diff --git a/client/public/stylesheets/style/style.css b/client/public/stylesheets/style/style.css index 368571d0..37609fbd 100644 --- a/client/public/stylesheets/style/style.css +++ b/client/public/stylesheets/style/style.css @@ -699,7 +699,7 @@ nav.ol-panel> :last-child { overflow: hidden; width: 70%; max-width: 1200px; - z-index: 99999; + z-index: 999999; } @media (min-width: 1700px) { @@ -796,7 +796,7 @@ nav.ol-panel> :last-child { position: fixed; top: 0px; width: 100%; - z-index: 9999; + z-index: 99999; } #authentication-form { @@ -1148,7 +1148,7 @@ dl.ol-data-grid dd { background-color: var(--background-slate-blue); color: white; position: absolute; - z-index: 9999; + z-index: 999999; } .ol-panel.ol-dialog { @@ -1178,8 +1178,10 @@ dl.ol-data-grid dd { } .ol-dialog-footer { + align-content: center; border-top: 1px solid var(--background-grey); display: flex; + justify-content: center; padding-top: 15px; row-gap: 10px; } diff --git a/client/src/constants/constants.ts b/client/src/constants/constants.ts index 0e01b227..3c633a25 100644 --- a/client/src/constants/constants.ts +++ b/client/src/constants/constants.ts @@ -209,4 +209,7 @@ export const MGRS_PRECISION_10KM = 2; export const MGRS_PRECISION_1KM = 3; export const MGRS_PRECISION_100M = 4; export const MGRS_PRECISION_10M = 5; -export const MGRS_PRECISION_1M = 6; \ No newline at end of file +export const MGRS_PRECISION_1M = 6; + +export const DELETE_CYCLE_TIME = 0.1; +export const DELETE_SLOW_THRESHOLD = 50; \ No newline at end of file diff --git a/client/src/dialog/dialog.ts b/client/src/dialog/dialog.ts new file mode 100644 index 00000000..78b4cf94 --- /dev/null +++ b/client/src/dialog/dialog.ts @@ -0,0 +1,19 @@ +import { Panel } from "../panels/panel"; + +export class Dialog extends Panel { + + constructor( element:string ) { + super( element ); + } + + hide() { + super.hide(); + document.getElementById( "gray-out" )?.classList.toggle("hide", true); + } + + show() { + super.show(); + document.getElementById( "gray-out" )?.classList.toggle("hide", false); + } + +} \ No newline at end of file diff --git a/client/src/olympusapp.ts b/client/src/olympusapp.ts index a8d9483d..551b6363 100644 --- a/client/src/olympusapp.ts +++ b/client/src/olympusapp.ts @@ -34,21 +34,26 @@ export class OlympusApp { #map: Map | null = null; /* Managers */ + #dialogManager!: Manager; + #missionManager: MissionManager | null = null; + #panelsManager: Manager | null = null; + #pluginsManager: PluginsManager | null = null; + #popupsManager: Manager | null = null; #serverManager: ServerManager | null = null; + #shortcutManager: ShortcutManager | null = null; + #toolbarsManager: Manager | null = null; #unitsManager: UnitsManager | null = null; #weaponsManager: WeaponsManager | null = null; - #missionManager: MissionManager | null = null; - #pluginsManager: PluginsManager | null = null; - #panelsManager: Manager | null = null; - #popupsManager: Manager | null = null; - #toolbarsManager: Manager | null = null; - #shortcutManager: ShortcutManager | null = null; constructor() { } // TODO add checks on null + getDialogManager() { + return this.#dialogManager as Manager; + } + getMap() { return this.#map as Map; } @@ -163,16 +168,14 @@ export class OlympusApp { /* Initialize base functionalitites */ this.#map = new Map('map-container'); - this.#serverManager = new ServerManager(); - this.#unitsManager = new UnitsManager(); - this.#weaponsManager = new WeaponsManager(); this.#missionManager = new MissionManager(); - - this.#shortcutManager = new ShortcutManager(); - this.#panelsManager = new Manager(); this.#popupsManager = new Manager(); + this.#serverManager = new ServerManager(); + this.#shortcutManager = new ShortcutManager(); this.#toolbarsManager = new Manager(); + this.#unitsManager = new UnitsManager(); + this.#weaponsManager = new WeaponsManager(); // Panels this.getPanelsManager() @@ -186,7 +189,8 @@ export class OlympusApp { .add("unitList", new UnitListPanel("unit-list-panel", "unit-list-panel-content")) // Popups - this.getPopupsManager().add("infoPopup", new Popup("info-popup")); + this.getPopupsManager() + .add("infoPopup", new Popup("info-popup")); // Toolbars this.getToolbarsManager().add("primaryToolbar", new PrimaryToolbar("primary-toolbar")) diff --git a/client/src/server/servermanager.ts b/client/src/server/servermanager.ts index cb6286f6..c5321799 100644 --- a/client/src/server/servermanager.ts +++ b/client/src/server/servermanager.ts @@ -541,14 +541,15 @@ export class ServerManager { } setConnected(newConnected: boolean) { - if (this.#connected != newConnected) + if (this.#connected != newConnected) { newConnected ? (getApp().getPopupsManager().get("infoPopup") as Popup).setText("Connected to DCS Olympus server") : (getApp().getPopupsManager().get("infoPopup") as Popup).setText("Disconnected from DCS Olympus server"); - this.#connected = newConnected; - - if (this.#connected) { - document.querySelector("#splash-screen")?.classList.add("hide"); - document.querySelector("#gray-out")?.classList.add("hide"); + if (newConnected) { + document.getElementById("splash-screen")?.classList.add("hide"); + document.getElementById("gray-out")?.classList.add("hide"); + } } + + this.#connected = newConnected; } getConnected() { diff --git a/client/src/unit/unitsmanager.ts b/client/src/unit/unitsmanager.ts index 398d074a..7e6fa97d 100644 --- a/client/src/unit/unitsmanager.ts +++ b/client/src/unit/unitsmanager.ts @@ -4,7 +4,7 @@ import { Unit } from "./unit"; import { bearingAndDistanceToLatLng, deg2rad, getGroundElevation, getUnitDatabaseByCategory, keyEventWasInInput, latLngToMercator, mToFt, mercatorToLatLng, msToKnots, polyContains, polygonArea, randomPointInPoly, randomUnitBlueprint } from "../other/utils"; import { CoalitionArea } from "../map/coalitionarea/coalitionarea"; import { groundUnitDatabase } from "./databases/groundunitdatabase"; -import { DataIndexes, GAME_MASTER, IADSDensities, IDLE, MOVE_UNIT } from "../constants/constants"; +import { DELETE_CYCLE_TIME, DELETE_SLOW_THRESHOLD, DataIndexes, GAME_MASTER, IADSDensities, IDLE, MOVE_UNIT } from "../constants/constants"; import { DataExtractor } from "../server/dataextractor"; import { citiesDatabase } from "./citiesDatabase"; import { aircraftDatabase } from "./databases/aircraftdatabase"; @@ -14,35 +14,40 @@ import { TemporaryUnitMarker } from "../map/markers/temporaryunitmarker"; import { Popup } from "../popups/popup"; import { HotgroupPanel } from "../panels/hotgrouppanel"; import { Contact, UnitData, UnitSpawnTable } from "../interfaces"; +import { Dialog } from "../dialog/dialog"; /** The UnitsManager handles the creation, update, and control of units. Data is strictly updated by the server ONLY. This means that any interaction from the user will always and only * result in a command to the server, executed by means of a REST PUT request. Any subsequent change in data will be reflected only when the new data is sent back by the server. This strategy allows * to avoid client/server and client/client inconsistencies. */ export class UnitsManager { - #units: { [ID: number]: Unit }; #copiedUnits: UnitData[]; - #selectionEventDisabled: boolean = false; #deselectionEventDisabled: boolean = false; #requestDetectionUpdate: boolean = false; + #selectionEventDisabled: boolean = false; + #slowDeleteDialog!:Dialog; + #units: { [ID: number]: Unit }; + constructor() { - this.#units = {}; this.#copiedUnits = []; + this.#units = {}; + document.addEventListener('commandModeOptionsChanged', () => { Object.values(this.#units).forEach((unit: Unit) => unit.updateVisibility()) }); + document.addEventListener('contactsUpdated', (e: CustomEvent) => { this.#requestDetectionUpdate = true }); document.addEventListener('copy', () => this.selectedUnitsCopy()); - document.addEventListener('paste', () => this.pasteUnits()); - document.addEventListener('unitSelection', (e: CustomEvent) => this.#onUnitSelection(e.detail)); - document.addEventListener('unitDeselection', (e: CustomEvent) => this.#onUnitDeselection(e.detail)); document.addEventListener('deleteSelectedUnits', () => this.selectedUnitsDelete()); document.addEventListener('explodeSelectedUnits', () => this.selectedUnitsDelete(true)); - document.addEventListener('keyup', (event) => this.#onKeyUp(event)); document.addEventListener('exportToFile', () => this.exportToFile()); document.addEventListener('importFromFile', () => this.importFromFile()); - document.addEventListener('contactsUpdated', (e: CustomEvent) => { this.#requestDetectionUpdate = true }); - document.addEventListener('commandModeOptionsChanged', () => { Object.values(this.#units).forEach((unit: Unit) => unit.updateVisibility()) }); - document.addEventListener('selectedUnitsChangeSpeed', (e: any) => { this.selectedUnitsChangeSpeed(e.detail.type) }); + document.addEventListener('keyup', (event) => this.#onKeyUp(event)); + document.addEventListener('paste', () => this.pasteUnits()); document.addEventListener('selectedUnitsChangeAltitude', (e: any) => { this.selectedUnitsChangeAltitude(e.detail.type) }); + document.addEventListener('selectedUnitsChangeSpeed', (e: any) => { this.selectedUnitsChangeSpeed(e.detail.type) }); + document.addEventListener('unitDeselection', (e: CustomEvent) => this.#onUnitDeselection(e.detail)); + document.addEventListener('unitSelection', (e: CustomEvent) => this.#onUnitSelection(e.detail)); + + this.#slowDeleteDialog = new Dialog( "slow-delete-dialog" ); } /** @@ -638,7 +643,7 @@ export class UnitsManager { try { groundElevation = parseFloat(response); } catch { - console.log("Simulate fire fight: could not retrieve ground elevation") + console.warn("Simulate fire fight: could not retrieve ground elevation") } for (let idx in selectedUnits) { selectedUnits[idx].simulateFireFight(latlng, groundElevation); @@ -754,14 +759,24 @@ export class UnitsManager { return; } - var immediate = false; - if (selectedUnits.length > 20) - immediate = confirm(`You are trying to delete ${selectedUnits.length} units, do you want to delete them immediately? This may cause lag for players.`) - - for (let idx in selectedUnits) { - selectedUnits[idx].delete(explosion, immediate); + const doDelete = (explosion = false, immediate = false) => { + const selectedUnits = this.getSelectedUnits(); + for (let idx in selectedUnits) { + selectedUnits[idx].delete(explosion, immediate); + } + this.#showActionMessage(selectedUnits, `deleted`); } - this.#showActionMessage(selectedUnits, `deleted`); + + if (selectedUnits.length >= DELETE_SLOW_THRESHOLD) + this.#showSlowDeleteDialog(selectedUnits).then((action:any) => { + if (action === "delete-slow") + doDelete(explosion, false); + else if (action === "delete-immediate") + doDelete(explosion, true); + }) + else + doDelete(explosion); + } /** Compute the destinations of every unit in the selected units. This function preserves the relative positions of the units, and rotates the whole formation by rotation. @@ -1083,4 +1098,32 @@ export class UnitsManager { else if (units.length > 1) (getApp().getPopupsManager().get("infoPopup") as Popup).setText(`${units[0].getUnitName()} and ${units.length - 1} other units ${message}`); } + + #showSlowDeleteDialog(selectedUnits:Unit[]) { + let button:HTMLButtonElement | null = null; + const deletionTime = Math.round( selectedUnits.length * DELETE_CYCLE_TIME ).toString(); + const dialog = this.#slowDeleteDialog; + const element = dialog.getElement(); + const listener = (ev:MouseEvent) => { + if (ev.target instanceof HTMLButtonElement && ev.target.matches("[data-action]")) + button = ev.target; + } + + element.querySelectorAll(".deletion-count").forEach( el => el.innerHTML = selectedUnits.length.toString() ); + element.querySelectorAll(".deletion-time").forEach( el => el.innerHTML = deletionTime ); + dialog.show(); + + return new Promise((resolve) => { + element.addEventListener("click", listener); + + const interval = setInterval(() => { + if (button instanceof HTMLButtonElement ) { + clearInterval(interval); + dialog.hide(); + element.removeEventListener("click", listener); + resolve( button.getAttribute("data-action") ); + } + }, 250); + }); + } } \ No newline at end of file diff --git a/client/views/other/dialogs.ejs b/client/views/other/dialogs.ejs index 1d56160c..55cee3f6 100644 --- a/client/views/other/dialogs.ejs +++ b/client/views/other/dialogs.ejs @@ -304,4 +304,27 @@
- \ No newline at end of file + + + +
+
+

Confirm deletion method

+
+ +
+

You are trying to delete a large amount of units (), which can cause the server to lag for players.

+

You may: +

    +
  • delete in batches (less lag but Olympus cannot process any additional orders until
    all units have been deleted);
  • +
  • delete immediately (you can continue to give Olympus orders but players may
    experience lag while this happens);
  • +
  • cancel this instruction.
  • +

+
+ + +
From 31710b4e285e45f3885797c225030acd308efc41 Mon Sep 17 00:00:00 2001 From: Pax1601 Date: Mon, 30 Oct 2023 09:56:07 +0100 Subject: [PATCH 19/19] Updated legal text --- client/src/constants/constants.ts | 2 +- client/src/controls/unitspawnmenu.ts | 13 ++++++------ client/views/other/dialogs.ejs | 31 ++++++++++++++++++++++++++-- src/core/src/groundunit.cpp | 8 +++---- 4 files changed, 41 insertions(+), 13 deletions(-) diff --git a/client/src/constants/constants.ts b/client/src/constants/constants.ts index 3c633a25..e0547d43 100644 --- a/client/src/constants/constants.ts +++ b/client/src/constants/constants.ts @@ -211,5 +211,5 @@ export const MGRS_PRECISION_100M = 4; export const MGRS_PRECISION_10M = 5; export const MGRS_PRECISION_1M = 6; -export const DELETE_CYCLE_TIME = 0.1; +export const DELETE_CYCLE_TIME = 0.05; export const DELETE_SLOW_THRESHOLD = 50; \ No newline at end of file diff --git a/client/src/controls/unitspawnmenu.ts b/client/src/controls/unitspawnmenu.ts index d23cf82a..0ed023d1 100644 --- a/client/src/controls/unitspawnmenu.ts +++ b/client/src/controls/unitspawnmenu.ts @@ -13,11 +13,8 @@ import { navyUnitDatabase } from "../unit/databases/navyunitdatabase"; import { UnitSpawnOptions, UnitSpawnTable } from "../interfaces"; export class UnitSpawnMenu { - #container: HTMLElement; - #unitDatabase: UnitDatabase; - #countryCodes: any; - #orderByRole: boolean; - spawnOptions: UnitSpawnOptions = { + protected showRangeCircles: boolean = false; + protected spawnOptions: UnitSpawnOptions = { roleType: "", name: "", latlng: new LatLng(0, 0), @@ -30,6 +27,11 @@ export class UnitSpawnMenu { altitude: undefined }; + #container: HTMLElement; + #unitDatabase: UnitDatabase; + #countryCodes: any; + #orderByRole: boolean; + /* Controls */ #unitRoleTypeDropdown: Dropdown; #unitLabelDropdown: Dropdown; @@ -50,7 +52,6 @@ export class UnitSpawnMenu { /* Range circle previews */ #engagementCircle: Circle; #acquisitionCircle: Circle; - protected showRangeCircles: boolean = false; constructor(ID: string, unitDatabase: UnitDatabase, orderByRole: boolean) { this.#container = document.getElementById(ID) as HTMLElement; diff --git a/client/views/other/dialogs.ejs b/client/views/other/dialogs.ejs index 55cee3f6..14296f1c 100644 --- a/client/views/other/dialogs.ejs +++ b/client/views/other/dialogs.ejs @@ -16,8 +16,35 @@ diff --git a/src/core/src/groundunit.cpp b/src/core/src/groundunit.cpp index 4220129a..801000b0 100644 --- a/src/core/src/groundunit.cpp +++ b/src/core/src/groundunit.cpp @@ -202,7 +202,7 @@ void GroundUnit::AIloop() double lat = 0; double lng = 0; - double randomBearing = bearing1 + (((double)(rand()) / (double)(RAND_MAX) - 0.5) * 2) * 15; + double randomBearing = bearing1 + (((double)(rand()) / (double)(RAND_MAX) - 0.5) * 2) * 0; // TODO put defined constant here Geodesic::WGS84().Direct(position.lat, position.lng, randomBearing, r, lat, lng); std::ostringstream taskSS; @@ -214,7 +214,7 @@ void GroundUnit::AIloop() } if (internalCounter == 0) - internalCounter = 20 / 0.05; + internalCounter = 20 / 0.05; // TODO make defined constant internalCounter--; break; @@ -285,7 +285,7 @@ void GroundUnit::AIloop() if (muzzleVelocity != 0) aimTime += distance / muzzleVelocity; - internalCounter = (aimTime + 2) / 0.05; + internalCounter = (aimTime + 2) / 0.05; // TODO fix me you fucking monster /* Compute where the target will be in aimTime seconds. We don't consider vertical velocity atm, since after all we are not really tring to hit */ double aimDistance = target->getSpeed() * aimTime; @@ -293,7 +293,7 @@ void GroundUnit::AIloop() double aimLng = 0; Geodesic::WGS84().Direct(target->getPosition().lat, target->getPosition().lng, target->getHeading() * 57.29577, aimDistance, aimLat, aimLng); /* TODO make util function */ - /* Compute distance to the aim point */ + /* Compute distance to the aim point */ // TODO: why am I here? double dist; double bearing1; double bearing2;