diff --git a/app/Controller/Api/Rest/SystemThera.php b/app/Controller/Api/Rest/SystemThera.php
index d428ca8b..d1e89079 100644
--- a/app/Controller/Api/Rest/SystemThera.php
+++ b/app/Controller/Api/Rest/SystemThera.php
@@ -3,6 +3,7 @@
namespace Exodus4D\Pathfinder\Controller\Api\Rest;
+use Exodus4D\Pathfinder\Controller\Ccp\Universe;
use Exodus4D\Pathfinder\Lib\Config;
class SystemThera extends AbstractRestController {
@@ -35,7 +36,6 @@ class SystemThera extends AbstractRestController {
*/
protected function getEveScoutTheraConnections() : array {
$connectionsData = [];
-
/**
* map system data from eveScout response to Pathfinder´s 'system' format
* @param string $key
@@ -44,17 +44,19 @@ class SystemThera extends AbstractRestController {
*/
$enrichWithSystemData = function(string $key, array $eveScoutConnection, array &$connectionData) : void {
$eveScoutSystem = (array)$eveScoutConnection[$key];
+ $universe = new Universe();
+ $staticData = $universe->getSystemData($eveScoutSystem['id']);
+
$systemData = [
- 'id' => (int)$eveScoutSystem['id'],
- 'name' => (string)$eveScoutSystem['name'],
- 'trueSec' => round((float)$eveScoutSystem['security'], 4)
+ 'id' => (int)$staticData->id,
+ 'name' => (string)$staticData->name,
+ 'system_class' => round((float)$staticData->trueSec, 4),
+ 'constellation' => ['id' => (int)$staticData->constellation->id],
+ 'region' => [
+ 'id' => (int)$staticData->constellation->region->id,
+ 'name' => (string)$staticData->constellation->region->name
+ ]
];
- if(!empty($eveScoutSystem['constellationID'])){
- $systemData['constellation'] = ['id' => (int)$eveScoutSystem['constellationID']];
- }
- if(!empty($region = (array)$eveScoutSystem['region']) && !empty($region['id'])){
- $systemData['region'] = ['id' => (int)$region['id'], 'name' => (string)$region['name']];
- }
$connectionData[$key] = $systemData;
};
@@ -66,10 +68,14 @@ class SystemThera extends AbstractRestController {
$enrichWithSignatureData = function(string $key, array $eveScoutConnection, array &$connectionData) : void {
$eveScoutSignature = (array)$eveScoutConnection[$key];
$signatureData = [
- 'name' => $eveScoutSignature['name'] ? : null
+ 'name' => $eveScoutSignature['name'] ? : null,
+ 'short_name' => str_split($eveScoutSignature['name'],3)[0] ? : null
];
- if(!empty($sigType = (array)$eveScoutSignature['type']) && !empty($sigType['name'])){
- $signatureData['type'] = ['name' => strtoupper((string)$sigType['name'])];
+ if($key == 'sourceSignature' && $eveScoutConnection['wh_exits_outward']) {
+ $signatureData['type'] = ['name' => strtoupper((string)$eveScoutConnection['wh_type'])];
+ }
+ if($key == 'targetSignature' && !$eveScoutConnection['wh_exits_outware']) {
+ $signatureData['type'] = ['name' => strtoupper((string)$eveScoutConnection['wh_type'])];
}
$connectionData[$key] = $signatureData;
};
@@ -81,17 +87,31 @@ class SystemThera extends AbstractRestController {
*/
$enrichWithWormholeData = function(array $wormholeData, array &$connectionsData) : void {
$type = [];
- if($wormholeData['mass'] === 'reduced'){
- $type[] = 'wh_reduced';
- }else if($wormholeData['mass'] === 'critical'){
- $type[] = 'wh_critical';
- }else{
- $type[] = 'wh_fresh';
- }
+ $type[] = 'wh_fresh';
- if($wormholeData['eol'] === 'critical'){
+ if($wormholeData['estimatedEol'] <= 4){
$type[] = 'wh_eol';
}
+ switch($wormholeData['jumpMass']) {
+ case "capital":
+ $type[] = 'wh_jump_mass_xl';
+ break;
+ case "xlarge":
+ $type[] = 'wh_jump_mass_xl';
+ break;
+ case "large":
+ $type[] = 'wh_jump_mass_l';
+ break;
+ case "medium":
+ $type[] = 'wh_jump_mass_m';
+ break;
+ case "small":
+ $type[] = 'wh_jump_mass_s';
+ break;
+ default:
+ break;
+ }
+
$connectionsData['type'] = $type;
$connectionsData['estimatedEol'] = $wormholeData['estimatedEol'];
};
@@ -101,7 +121,8 @@ class SystemThera extends AbstractRestController {
foreach((array)$eveScoutResponse['connections'] as $eveScoutConnection){
if(
$eveScoutConnection['type'] === 'wormhole' &&
- isset($eveScoutConnection['source']) && isset($eveScoutConnection['target'])
+ isset($eveScoutConnection['source']) && isset($eveScoutConnection['target']) &&
+ $eveScoutConnection['source']['id'] === 31000005 // Check it's thera and not a turnur connection
){
try{
$data = [
diff --git a/app/pathfinder.ini b/app/pathfinder.ini
index 8d831029..c4c08600 100644
--- a/app/pathfinder.ini
+++ b/app/pathfinder.ini
@@ -13,8 +13,8 @@ NAME = Pathfinder
; Version is used for CSS/JS cache busting and is part of the URL for static resources:
; e.g. public/js/vX.X.X/app.js
; Syntax: String (current version)
-; Default: v2.2.3
-VERSION = v2.2.3
+; Default: v2.2.4
+VERSION = v2.2.4
; Contact information [optional]
; Shown on 'licence', 'contact' page.
@@ -387,7 +387,7 @@ Z_KILLBOARD = https://zkillboard.com/api
EVEEYE = https://eveeye.com
DOTLAN = http://evemaps.dotlan.net
ANOIK = http://anoik.is
-EVE_SCOUT = https://www.eve-scout.com/api
+EVE_SCOUT = https://api.eve-scout.com
; GitHub Developer API
GIT_HUB = https://api.github.com
diff --git a/composer.json b/composer.json
index 42f97ba5..c725a05f 100644
--- a/composer.json
+++ b/composer.json
@@ -46,7 +46,7 @@
"react/promise-stream": "1.3.*",
"clue/ndjson-react": "1.2.*",
"firebase/php-jwt": "6.*",
- "goryn-clade/pathfinder_esi": "2.1.3"
+ "goryn-clade/pathfinder_esi": "2.1.4"
},
"suggest": {
"ext-redis": "Redis can be used as cache backend."
diff --git a/composer.lock b/composer.lock
index c3824c82..5e84333c 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "7e1ba3417676d615428a08e60a51ae99",
+ "content-hash": "1cb2e1085d3134dd283f3087462060c8",
"packages": [
{
"name": "bcosca/fatfree-core",
@@ -709,16 +709,16 @@
},
{
"name": "doctrine/deprecations",
- "version": "1.1.2",
+ "version": "1.1.3",
"source": {
"type": "git",
"url": "https://github.com/doctrine/deprecations.git",
- "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931"
+ "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/deprecations/zipball/4f2d4f2836e7ec4e7a8625e75c6aa916004db931",
- "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931",
+ "url": "https://api.github.com/repos/doctrine/deprecations/zipball/dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab",
+ "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab",
"shasum": ""
},
"require": {
@@ -750,22 +750,22 @@
"homepage": "https://www.doctrine-project.org/",
"support": {
"issues": "https://github.com/doctrine/deprecations/issues",
- "source": "https://github.com/doctrine/deprecations/tree/1.1.2"
+ "source": "https://github.com/doctrine/deprecations/tree/1.1.3"
},
- "time": "2023-09-27T20:04:15+00:00"
+ "time": "2024-01-30T19:34:25+00:00"
},
{
"name": "doctrine/lexer",
- "version": "2.1.0",
+ "version": "2.1.1",
"source": {
"type": "git",
"url": "https://github.com/doctrine/lexer.git",
- "reference": "39ab8fcf5a51ce4b85ca97c7a7d033eb12831124"
+ "reference": "861c870e8b75f7c8f69c146c7f89cc1c0f1b49b6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/lexer/zipball/39ab8fcf5a51ce4b85ca97c7a7d033eb12831124",
- "reference": "39ab8fcf5a51ce4b85ca97c7a7d033eb12831124",
+ "url": "https://api.github.com/repos/doctrine/lexer/zipball/861c870e8b75f7c8f69c146c7f89cc1c0f1b49b6",
+ "reference": "861c870e8b75f7c8f69c146c7f89cc1c0f1b49b6",
"shasum": ""
},
"require": {
@@ -773,11 +773,11 @@
"php": "^7.1 || ^8.0"
},
"require-dev": {
- "doctrine/coding-standard": "^9 || ^10",
+ "doctrine/coding-standard": "^9 || ^12",
"phpstan/phpstan": "^1.3",
- "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6",
"psalm/plugin-phpunit": "^0.18.3",
- "vimeo/psalm": "^4.11 || ^5.0"
+ "vimeo/psalm": "^4.11 || ^5.21"
},
"type": "library",
"autoload": {
@@ -814,7 +814,7 @@
],
"support": {
"issues": "https://github.com/doctrine/lexer/issues",
- "source": "https://github.com/doctrine/lexer/tree/2.1.0"
+ "source": "https://github.com/doctrine/lexer/tree/2.1.1"
},
"funding": [
{
@@ -830,7 +830,7 @@
"type": "tidelift"
}
],
- "time": "2022-12-14T08:49:07+00:00"
+ "time": "2024-02-05T11:35:39+00:00"
},
{
"name": "egulias/email-validator",
@@ -1011,16 +1011,16 @@
},
{
"name": "goryn-clade/pathfinder_esi",
- "version": "v2.1.3",
+ "version": "v2.1.4",
"source": {
"type": "git",
"url": "https://github.com/goryn-clade/pathfinder_esi.git",
- "reference": "bedfb07a9979fb51158e4248e33c0c1ecb77111c"
+ "reference": "c7c92adb26457fcf954fa88f9273df7409687031"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/goryn-clade/pathfinder_esi/zipball/bedfb07a9979fb51158e4248e33c0c1ecb77111c",
- "reference": "bedfb07a9979fb51158e4248e33c0c1ecb77111c",
+ "url": "https://api.github.com/repos/goryn-clade/pathfinder_esi/zipball/c7c92adb26457fcf954fa88f9273df7409687031",
+ "reference": "c7c92adb26457fcf954fa88f9273df7409687031",
"shasum": ""
},
"require": {
@@ -1050,9 +1050,9 @@
"homepage": "https://github.com/goryn-clade/pathfinder_esi",
"support": {
"issues": "https://github.com/goryn-clade/pathfinder_esi/issues",
- "source": "https://github.com/goryn-clade/pathfinder_esi/tree/v2.1.3"
+ "source": "https://github.com/goryn-clade/pathfinder_esi/tree/v2.1.4"
},
- "time": "2022-09-02T23:53:15+00:00"
+ "time": "2024-03-16T09:12:11+00:00"
},
{
"name": "guzzlehttp/guzzle",
@@ -1392,9 +1392,9 @@
],
"support": {
"issues": "https://github.com/ikkez/f3-cortex/issues",
- "source": "https://github.com/ikkez/f3-cortex/tree/v1.7.6"
+ "source": "https://github.com/ikkez/f3-cortex/tree/v1.7.7"
},
- "time": "2023-01-23T22:28:35+00:00"
+ "time": "2024-03-06T16:05:14+00:00"
},
{
"name": "ikkez/f3-schema-builder",
@@ -1438,16 +1438,16 @@
},
{
"name": "ikkez/f3-sheet",
- "version": "v0.4.2",
+ "version": "v0.4.3",
"source": {
"type": "git",
"url": "https://github.com/ikkez/f3-sheet.git",
- "reference": "e2a3691a87db48f83cc4e617cc60c5314d540cea"
+ "reference": "53b04ec0305254b04192b4feed8aa22dd466422c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/ikkez/f3-sheet/zipball/e2a3691a87db48f83cc4e617cc60c5314d540cea",
- "reference": "e2a3691a87db48f83cc4e617cc60c5314d540cea",
+ "url": "https://api.github.com/repos/ikkez/f3-sheet/zipball/53b04ec0305254b04192b4feed8aa22dd466422c",
+ "reference": "53b04ec0305254b04192b4feed8aa22dd466422c",
"shasum": ""
},
"type": "library",
@@ -1472,9 +1472,9 @@
],
"support": {
"issues": "https://github.com/ikkez/f3-sheet/issues",
- "source": "https://github.com/ikkez/f3-sheet/tree/v0.4.2"
+ "source": "https://github.com/ikkez/f3-sheet/tree/v0.4.3"
},
- "time": "2022-09-12T21:17:10+00:00"
+ "time": "2024-03-06T16:19:08+00:00"
},
{
"name": "league/flysystem",
@@ -2758,16 +2758,16 @@
},
{
"name": "symfony/polyfill-iconv",
- "version": "v1.28.0",
+ "version": "v1.29.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-iconv.git",
- "reference": "6de50471469b8c9afc38164452ab2b6170ee71c1"
+ "reference": "cd4226d140ecd3d0f13d32ed0a4a095ffe871d2f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/6de50471469b8c9afc38164452ab2b6170ee71c1",
- "reference": "6de50471469b8c9afc38164452ab2b6170ee71c1",
+ "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/cd4226d140ecd3d0f13d32ed0a4a095ffe871d2f",
+ "reference": "cd4226d140ecd3d0f13d32ed0a4a095ffe871d2f",
"shasum": ""
},
"require": {
@@ -2781,9 +2781,6 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.28-dev"
- },
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
@@ -2821,7 +2818,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-iconv/tree/v1.28.0"
+ "source": "https://github.com/symfony/polyfill-iconv/tree/v1.29.0"
},
"funding": [
{
@@ -2837,20 +2834,20 @@
"type": "tidelift"
}
],
- "time": "2023-01-26T09:26:14+00:00"
+ "time": "2024-01-29T20:11:03+00:00"
},
{
"name": "symfony/polyfill-intl-idn",
- "version": "v1.28.0",
+ "version": "v1.29.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-idn.git",
- "reference": "ecaafce9f77234a6a449d29e49267ba10499116d"
+ "reference": "a287ed7475f85bf6f61890146edbc932c0fff919"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/ecaafce9f77234a6a449d29e49267ba10499116d",
- "reference": "ecaafce9f77234a6a449d29e49267ba10499116d",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/a287ed7475f85bf6f61890146edbc932c0fff919",
+ "reference": "a287ed7475f85bf6f61890146edbc932c0fff919",
"shasum": ""
},
"require": {
@@ -2863,9 +2860,6 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.28-dev"
- },
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
@@ -2908,7 +2902,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.28.0"
+ "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.29.0"
},
"funding": [
{
@@ -2924,20 +2918,20 @@
"type": "tidelift"
}
],
- "time": "2023-01-26T09:30:37+00:00"
+ "time": "2024-01-29T20:11:03+00:00"
},
{
"name": "symfony/polyfill-intl-normalizer",
- "version": "v1.28.0",
+ "version": "v1.29.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
- "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92"
+ "reference": "bc45c394692b948b4d383a08d7753968bed9a83d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92",
- "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/bc45c394692b948b4d383a08d7753968bed9a83d",
+ "reference": "bc45c394692b948b4d383a08d7753968bed9a83d",
"shasum": ""
},
"require": {
@@ -2948,9 +2942,6 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.28-dev"
- },
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
@@ -2992,7 +2983,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.28.0"
+ "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.29.0"
},
"funding": [
{
@@ -3008,20 +2999,20 @@
"type": "tidelift"
}
],
- "time": "2023-01-26T09:26:14+00:00"
+ "time": "2024-01-29T20:11:03+00:00"
},
{
"name": "symfony/polyfill-mbstring",
- "version": "v1.28.0",
+ "version": "v1.29.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
- "reference": "42292d99c55abe617799667f454222c54c60e229"
+ "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229",
- "reference": "42292d99c55abe617799667f454222c54c60e229",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9773676c8a1bb1f8d4340a62efe641cf76eda7ec",
+ "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec",
"shasum": ""
},
"require": {
@@ -3035,9 +3026,6 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.28-dev"
- },
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
@@ -3075,7 +3063,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.28.0"
+ "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.29.0"
},
"funding": [
{
@@ -3091,20 +3079,20 @@
"type": "tidelift"
}
],
- "time": "2023-07-28T09:04:16+00:00"
+ "time": "2024-01-29T20:11:03+00:00"
},
{
"name": "symfony/polyfill-php72",
- "version": "v1.28.0",
+ "version": "v1.29.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php72.git",
- "reference": "70f4aebd92afca2f865444d30a4d2151c13c3179"
+ "reference": "861391a8da9a04cbad2d232ddd9e4893220d6e25"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/70f4aebd92afca2f865444d30a4d2151c13c3179",
- "reference": "70f4aebd92afca2f865444d30a4d2151c13c3179",
+ "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/861391a8da9a04cbad2d232ddd9e4893220d6e25",
+ "reference": "861391a8da9a04cbad2d232ddd9e4893220d6e25",
"shasum": ""
},
"require": {
@@ -3112,9 +3100,6 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.28-dev"
- },
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
@@ -3151,7 +3136,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php72/tree/v1.28.0"
+ "source": "https://github.com/symfony/polyfill-php72/tree/v1.29.0"
},
"funding": [
{
@@ -3167,7 +3152,7 @@
"type": "tidelift"
}
],
- "time": "2023-01-26T09:26:14+00:00"
+ "time": "2024-01-29T20:11:03+00:00"
},
{
"name": "xfra35/f3-cron",
diff --git a/js/app/conf/signature_type.js b/js/app/conf/signature_type.js
index d1240d6e..693f639c 100644
--- a/js/app/conf/signature_type.js
+++ b/js/app/conf/signature_type.js
@@ -6,7 +6,7 @@
* proofed, signature names (copy & paste from scanning window)
*/
- define([], () => {
+define([], () => {
'use strict';
// signature sources
@@ -397,8 +397,9 @@
6: 'S804 - C6',
7: 'N110 - H',
8: 'J244 - L',
- 9: 'Z060 - 0.0',
- 10: 'F353 - C12 Thera'
+ 9: 'J377 - L Turnur',
+ 10: 'Z060 - 0.0',
+ 11: 'F353 - C12 Thera'
};
// all w-space -> w-space are statics or K162
@@ -411,9 +412,10 @@
6: 'R474 - C6',
7: 'B274 - H',
8: 'A239 - L',
- 9: 'E545 - 0.0',
- 10: 'F135 - C12 Thera',
- 11: 'F216 - T Pochven'
+ 9: 'J377 - L Turnur',
+ 10: 'E545 - 0.0',
+ 11: 'F135 - C12 Thera',
+ 12: 'F216 - T Pochven'
};
// all k-space exits are static or K162
@@ -426,9 +428,10 @@
6: 'A982 - C6',
7: 'D845 - H',
8: 'U210 - L',
- 9: 'K346 - 0.0',
- 10: 'F135 - C12 Thera',
- 11: 'F216 - T Pochven'
+ 9: 'J377 - L Turnur',
+ 10: 'K346 - 0.0',
+ 11: 'F135 - C12 Thera',
+ 12: 'F216 - T Pochven'
};
// no *wandering* w-space -> w-space
@@ -442,8 +445,9 @@
6: 'U574 - C6',
7: 'S047 - H',
8: 'N290 - L',
- 9: 'K329 - 0.0',
- 10: 'F216 - T Pochven'
+ 9: 'J377 - L Turnur',
+ 10: 'K329 - 0.0',
+ 11: 'F216 - T Pochven'
};
let c5WH = {
@@ -455,8 +459,9 @@
6: 'V753 - C6',
7: 'D792 - H',
8: 'C140 - L',
- 9: 'Z142 - 0.0',
- 10: 'F216 - T Pochven'
+ 9: 'J377 - L Turnur',
+ 10: 'Z142 - 0.0',
+ 11: 'F216 - T Pochven'
};
let c6WH = {
@@ -470,9 +475,10 @@
8: 'D792 - H',
9: 'C140 - L',
10: 'C391 - L',
- 11: 'C248 - 0.0',
- 12: 'Z142 - 0.0',
- 13: 'F216 - T Pochven'
+ 11: 'J377 - L Turnur',
+ 12: 'C248 - 0.0',
+ 13: 'Z142 - 0.0',
+ 14: 'F216 - T Pochven'
};
// Shattered WH (some of them are static)
@@ -502,12 +508,13 @@
23: 'A239 - L',
24: 'C391 - L',
25: 'J244 - L',
- 26: 'U201 - L', // ??
- 27: 'U210 - L',
- 28: 'C248 - 0.0',
- 29: 'E545 - 0.0',
- 30: 'K346 - 0.0',
- 31: 'Z060 - 0.0'
+ 26: 'J377 - L Turnur',
+ 27: 'U201 - L', // ??
+ 28: 'U210 - L',
+ 29: 'C248 - 0.0',
+ 30: 'E545 - 0.0',
+ 31: 'K346 - 0.0',
+ 32: 'Z060 - 0.0'
};
let hsWH = {
@@ -519,9 +526,10 @@
6: 'B041 - C6',
7: 'A641 - H',
8: 'R051 - L',
- 9: 'V283 - 0.0',
- 10: 'T458 - C12 Thera',
- 11: 'C729 - T Pochven'
+ 9: 'J377 - L Turnur',
+ 10: 'V283 - 0.0',
+ 11: 'T458 - C12 Thera',
+ 12: 'C729 - T Pochven'
};
let lsWH = {
@@ -533,9 +541,10 @@
6: 'U319 - C6',
7: 'B449 - H',
8: 'N944 - L',
- 9: 'S199 - 0.0',
- 10: 'M164 - C12 Thera',
- 11: 'C729 - T Pochven'
+ 9: 'J377 - L Turnur',
+ 10: 'S199 - 0.0',
+ 11: 'M164 - C12 Thera',
+ 12: 'C729 - T Pochven'
};
let nullWH = {
@@ -547,10 +556,11 @@
6: 'U319 - C6',
7: 'B449 - H',
8: 'N944 - L',
- 9: 'S199 - 0.0',
- 10: 'L031 - C12 Thera',
- 11: 'C729 - T Pochven',
- 12: 'U372 - T Pochven'
+ 9: 'J377 - L Turnur',
+ 10: 'S199 - 0.0',
+ 11: 'L031 - C12 Thera',
+ 12: 'C729 - T Pochven',
+ 13: 'U372 - T Pochven'
};
let pochWH = {
diff --git a/js/app/ui/dialog/jump_info.js b/js/app/ui/dialog/jump_info.js
index d75cf4ff..a6beaef2 100644
--- a/js/app/ui/dialog/jump_info.js
+++ b/js/app/ui/dialog/jump_info.js
@@ -62,16 +62,16 @@ define([
];
let matrixBodyFirst = [
- ['C1', 'H121', 'C125', 'O883', 'M609', 'L614', 'S804', 'N110', 'J244', 'Z060', 'F353', ''],
- ['C2', 'Z647', 'D382', 'O477', 'Y683', 'N062', 'R474', 'B274', 'A239', 'E545', 'F135', ''],
- ['C3', 'V301', 'I182', 'N968', 'T405', 'N770', 'A982', 'D845', 'U210', 'K346', 'F135', ''],
- ['C4', 'P060', 'N766', 'C247', 'X877', 'H900', 'U574', 'S047', 'N290', 'K329', '' , ''],
- ['C5', 'Y790', 'D364', 'M267', 'E175', 'H296', 'V753', 'D792', 'C140', 'Z142', '' , ''],
- ['C6', 'Q317', 'G024', 'L477', 'Z457', 'V911', 'W237', ['B520', 'D792'], ['C140', 'C391'], ['C248', 'Z142'], '', ''],
- ['H', 'Z971', 'R943', 'X702', 'O128', 'M555', 'B041', 'A641', 'R051', 'V283', 'T458', ''],
- ['L', 'Z971', 'R943', 'X702', 'O128', 'N432', 'U319', 'B449', 'N944', 'S199', 'M164', ''],
- ['0.0', 'Z971', 'R943', 'X702', 'O128', 'N432', 'U319', 'B449', 'N944', 'S199', 'L031', ''],
- ['C12', '' , '' , '' , '' , '' , '' , 'Q063', 'V898', 'E587', '' , ''],
+ ['C1', 'H121', 'C125', 'O883', 'M609', 'L614', 'S804', 'N110', ['J244', 'J377'], 'Z060', 'F353', ''],
+ ['C2', 'Z647', 'D382', 'O477', 'Y683', 'N062', 'R474', 'B274', ['A239', 'J377'], 'E545', 'F135', ''],
+ ['C3', 'V301', 'I182', 'N968', 'T405', 'N770', 'A982', 'D845', ['U210', 'J377'], 'K346', 'F135', ''],
+ ['C4', 'P060', 'N766', 'C247', 'X877', 'H900', 'U574', 'S047', ['N290', 'J377'], 'K329', '' , ''],
+ ['C5', 'Y790', 'D364', 'M267', 'E175', 'H296', 'V753', 'D792', ['C140', 'J377'], 'Z142', '' , ''],
+ ['C6', 'Q317', 'G024', 'L477', 'Z457', 'V911', 'W237', ['B520', 'D792'], ['C140', 'C391', 'J377'], ['C248', 'Z142'], '', ''],
+ ['H', 'Z971', 'R943', 'X702', 'O128', 'M555', 'B041', 'A641', ['R051', 'J377'], 'V283', 'T458', ''],
+ ['L', 'Z971', 'R943', 'X702', 'O128', 'N432', 'U319', 'B449', ['N944', 'J377'], 'S199', 'M164', ''],
+ ['0.0', 'Z971', 'R943', 'X702', 'O128', 'N432', 'U319', 'B449', ['N944', 'J377'], 'S199', 'L031', ''],
+ ['C12', '' , '' , '' , '' , '' , '' , 'Q063', ['V898', 'J377'], 'E587', '' , ''],
['?', 'E004', 'L005', 'Z006', 'M001', 'C008', 'G008', '' , '' , 'Q003', '' , 'A009']
];
diff --git a/js/app/ui/module/global_thera.js b/js/app/ui/module/global_thera.js
index 906aa8a2..2612261d 100644
--- a/js/app/ui/module/global_thera.js
+++ b/js/app/ui/module/global_thera.js
@@ -175,15 +175,16 @@ define([
targets: 1,
name: 'trueSec',
title: 'sec',
- width: 15,
+ width: 10,
className:'text-center',
- data: 'target.trueSec',
+ data: 'target.system_class',
defaultContent: module.getIconForUndefinedCellValue(),
render: {
display: (cellData, type, rowData, meta) => {
if(cellData !== undefined){
let systemTrueSecClass = BaseModule.Util.getTrueSecClassForSystem(cellData);
return '' + cellData.toFixed(1) + '';
+ return cellData
}
}
}
@@ -221,12 +222,12 @@ define([
targets: 4,
name: 'outSig',
title: '',
- width: 12,
+ width: 20,
className: ['text-center', module._config.fontUppercaseClass].join(' '),
data: 'sourceSignature',
defaultContent: module.getIconForUndefinedCellValue(),
render: {
- _: 'name'
+ _: 'short_name'
}
},{
targets: 5,
@@ -241,12 +242,12 @@ define([
targets: 6,
name: 'inSig',
title: '',
- width: 12,
+ width: 20,
className: ['text-center', module._config.fontUppercaseClass].join(' '),
data: 'targetSignature',
defaultContent: module.getIconForUndefinedCellValue(),
render: {
- _: 'name'
+ _: 'short_name'
}
},{
targets: 7,
@@ -279,15 +280,11 @@ define([
defaultContent: module.getIconForUndefinedCellValue(),
render: {
display: (cellData, type, rowData, meta) => {
- try{
- let timeNow = (new Date()).getTime();
- let timeEol = Date.parse(cellData);
- if(!isNaN(timeNow) && !isNaN(timeEol) ){
- let diff = (timeEol - timeNow) / 1000;
- diff /= (60 * 60);
- return `< ${Math.ceil(diff)}h`;
- }
- }catch(e){}
+ if(cellData > 0){
+ return `< ${cellData}h`;
+ } else if (cellData == 0 ){
+ return `< 1h`;
+ }
},
sort: dateVal => Date.parse(dateVal)
}
diff --git a/package-lock.json b/package-lock.json
index 2e6187d1..5590bbfe 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "pathfinder-eve",
- "version": "2.2.3",
+ "version": "2.2.4",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
diff --git a/package.json b/package.json
index 144ee8bf..ffb39229 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "pathfinder-eve",
- "version": "2.2.3",
+ "version": "2.2.4",
"engines": {
"node": "12.x"
},
diff --git a/public/css/v2.2.3/pathfinder.css b/public/css/v2.2.4/pathfinder.css
similarity index 100%
rename from public/css/v2.2.3/pathfinder.css
rename to public/css/v2.2.4/pathfinder.css
diff --git a/public/css/v2.2.3/pathfinder.css.br b/public/css/v2.2.4/pathfinder.css.br
similarity index 100%
rename from public/css/v2.2.3/pathfinder.css.br
rename to public/css/v2.2.4/pathfinder.css.br
diff --git a/public/css/v2.2.3/pathfinder.css.map b/public/css/v2.2.4/pathfinder.css.map
similarity index 100%
rename from public/css/v2.2.3/pathfinder.css.map
rename to public/css/v2.2.4/pathfinder.css.map
diff --git a/public/img/v2.2.3/gallery/admin_1.jpg b/public/img/v2.2.4/gallery/admin_1.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/admin_1.jpg
rename to public/img/v2.2.4/gallery/admin_1.jpg
diff --git a/public/img/v2.2.3/gallery/admin_1.webp b/public/img/v2.2.4/gallery/admin_1.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/admin_1.webp
rename to public/img/v2.2.4/gallery/admin_1.webp
diff --git a/public/img/v2.2.3/gallery/admin_2.jpg b/public/img/v2.2.4/gallery/admin_2.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/admin_2.jpg
rename to public/img/v2.2.4/gallery/admin_2.jpg
diff --git a/public/img/v2.2.3/gallery/admin_2.webp b/public/img/v2.2.4/gallery/admin_2.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/admin_2.webp
rename to public/img/v2.2.4/gallery/admin_2.webp
diff --git a/public/img/v2.2.3/gallery/connection_1.jpg b/public/img/v2.2.4/gallery/connection_1.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/connection_1.jpg
rename to public/img/v2.2.4/gallery/connection_1.jpg
diff --git a/public/img/v2.2.3/gallery/connection_1.webp b/public/img/v2.2.4/gallery/connection_1.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/connection_1.webp
rename to public/img/v2.2.4/gallery/connection_1.webp
diff --git a/public/img/v2.2.3/gallery/development_1.jpg b/public/img/v2.2.4/gallery/development_1.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/development_1.jpg
rename to public/img/v2.2.4/gallery/development_1.jpg
diff --git a/public/img/v2.2.3/gallery/development_1.webp b/public/img/v2.2.4/gallery/development_1.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/development_1.webp
rename to public/img/v2.2.4/gallery/development_1.webp
diff --git a/public/img/v2.2.3/gallery/development_2.jpg b/public/img/v2.2.4/gallery/development_2.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/development_2.jpg
rename to public/img/v2.2.4/gallery/development_2.jpg
diff --git a/public/img/v2.2.3/gallery/development_2.webp b/public/img/v2.2.4/gallery/development_2.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/development_2.webp
rename to public/img/v2.2.4/gallery/development_2.webp
diff --git a/public/img/v2.2.3/gallery/discord_1.jpg b/public/img/v2.2.4/gallery/discord_1.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/discord_1.jpg
rename to public/img/v2.2.4/gallery/discord_1.jpg
diff --git a/public/img/v2.2.3/gallery/discord_1.webp b/public/img/v2.2.4/gallery/discord_1.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/discord_1.webp
rename to public/img/v2.2.4/gallery/discord_1.webp
diff --git a/public/img/v2.2.3/gallery/install_db.jpg b/public/img/v2.2.4/gallery/install_db.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/install_db.jpg
rename to public/img/v2.2.4/gallery/install_db.jpg
diff --git a/public/img/v2.2.3/gallery/install_db.webp b/public/img/v2.2.4/gallery/install_db.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/install_db.webp
rename to public/img/v2.2.4/gallery/install_db.webp
diff --git a/public/img/v2.2.3/gallery/install_settings.jpg b/public/img/v2.2.4/gallery/install_settings.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/install_settings.jpg
rename to public/img/v2.2.4/gallery/install_settings.jpg
diff --git a/public/img/v2.2.3/gallery/install_settings.webp b/public/img/v2.2.4/gallery/install_settings.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/install_settings.webp
rename to public/img/v2.2.4/gallery/install_settings.webp
diff --git a/public/img/v2.2.3/gallery/intel_1.jpg b/public/img/v2.2.4/gallery/intel_1.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/intel_1.jpg
rename to public/img/v2.2.4/gallery/intel_1.jpg
diff --git a/public/img/v2.2.3/gallery/intel_1.webp b/public/img/v2.2.4/gallery/intel_1.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/intel_1.webp
rename to public/img/v2.2.4/gallery/intel_1.webp
diff --git a/public/img/v2.2.3/gallery/kb_1.jpg b/public/img/v2.2.4/gallery/kb_1.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/kb_1.jpg
rename to public/img/v2.2.4/gallery/kb_1.jpg
diff --git a/public/img/v2.2.3/gallery/kb_1.webp b/public/img/v2.2.4/gallery/kb_1.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/kb_1.webp
rename to public/img/v2.2.4/gallery/kb_1.webp
diff --git a/public/img/v2.2.3/gallery/kb_2.jpg b/public/img/v2.2.4/gallery/kb_2.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/kb_2.jpg
rename to public/img/v2.2.4/gallery/kb_2.jpg
diff --git a/public/img/v2.2.3/gallery/kb_2.webp b/public/img/v2.2.4/gallery/kb_2.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/kb_2.webp
rename to public/img/v2.2.4/gallery/kb_2.webp
diff --git a/public/img/v2.2.3/gallery/log_1.jpg b/public/img/v2.2.4/gallery/log_1.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/log_1.jpg
rename to public/img/v2.2.4/gallery/log_1.jpg
diff --git a/public/img/v2.2.3/gallery/log_1.webp b/public/img/v2.2.4/gallery/log_1.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/log_1.webp
rename to public/img/v2.2.4/gallery/log_1.webp
diff --git a/public/img/v2.2.3/gallery/login_1.jpg b/public/img/v2.2.4/gallery/login_1.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/login_1.jpg
rename to public/img/v2.2.4/gallery/login_1.jpg
diff --git a/public/img/v2.2.3/gallery/login_1.webp b/public/img/v2.2.4/gallery/login_1.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/login_1.webp
rename to public/img/v2.2.4/gallery/login_1.webp
diff --git a/public/img/v2.2.3/gallery/map_1.jpg b/public/img/v2.2.4/gallery/map_1.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/map_1.jpg
rename to public/img/v2.2.4/gallery/map_1.jpg
diff --git a/public/img/v2.2.3/gallery/map_1.webp b/public/img/v2.2.4/gallery/map_1.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/map_1.webp
rename to public/img/v2.2.4/gallery/map_1.webp
diff --git a/public/img/v2.2.3/gallery/map_2.jpg b/public/img/v2.2.4/gallery/map_2.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/map_2.jpg
rename to public/img/v2.2.4/gallery/map_2.jpg
diff --git a/public/img/v2.2.3/gallery/map_2.webp b/public/img/v2.2.4/gallery/map_2.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/map_2.webp
rename to public/img/v2.2.4/gallery/map_2.webp
diff --git a/public/img/v2.2.3/gallery/map_3.jpg b/public/img/v2.2.4/gallery/map_3.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/map_3.jpg
rename to public/img/v2.2.4/gallery/map_3.jpg
diff --git a/public/img/v2.2.3/gallery/map_3.webp b/public/img/v2.2.4/gallery/map_3.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/map_3.webp
rename to public/img/v2.2.4/gallery/map_3.webp
diff --git a/public/img/v2.2.3/gallery/route_1.jpg b/public/img/v2.2.4/gallery/route_1.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/route_1.jpg
rename to public/img/v2.2.4/gallery/route_1.jpg
diff --git a/public/img/v2.2.3/gallery/route_1.webp b/public/img/v2.2.4/gallery/route_1.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/route_1.webp
rename to public/img/v2.2.4/gallery/route_1.webp
diff --git a/public/img/v2.2.3/gallery/route_2.jpg b/public/img/v2.2.4/gallery/route_2.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/route_2.jpg
rename to public/img/v2.2.4/gallery/route_2.jpg
diff --git a/public/img/v2.2.3/gallery/route_2.webp b/public/img/v2.2.4/gallery/route_2.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/route_2.webp
rename to public/img/v2.2.4/gallery/route_2.webp
diff --git a/public/img/v2.2.3/gallery/settings_1.jpg b/public/img/v2.2.4/gallery/settings_1.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/settings_1.jpg
rename to public/img/v2.2.4/gallery/settings_1.jpg
diff --git a/public/img/v2.2.3/gallery/settings_1.webp b/public/img/v2.2.4/gallery/settings_1.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/settings_1.webp
rename to public/img/v2.2.4/gallery/settings_1.webp
diff --git a/public/img/v2.2.3/gallery/signatures_1.jpg b/public/img/v2.2.4/gallery/signatures_1.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/signatures_1.jpg
rename to public/img/v2.2.4/gallery/signatures_1.jpg
diff --git a/public/img/v2.2.3/gallery/signatures_1.webp b/public/img/v2.2.4/gallery/signatures_1.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/signatures_1.webp
rename to public/img/v2.2.4/gallery/signatures_1.webp
diff --git a/public/img/v2.2.3/gallery/signatures_2.jpg b/public/img/v2.2.4/gallery/signatures_2.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/signatures_2.jpg
rename to public/img/v2.2.4/gallery/signatures_2.jpg
diff --git a/public/img/v2.2.3/gallery/signatures_2.webp b/public/img/v2.2.4/gallery/signatures_2.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/signatures_2.webp
rename to public/img/v2.2.4/gallery/signatures_2.webp
diff --git a/public/img/v2.2.3/gallery/statistics_1.jpg b/public/img/v2.2.4/gallery/statistics_1.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/statistics_1.jpg
rename to public/img/v2.2.4/gallery/statistics_1.jpg
diff --git a/public/img/v2.2.3/gallery/statistics_1.webp b/public/img/v2.2.4/gallery/statistics_1.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/statistics_1.webp
rename to public/img/v2.2.4/gallery/statistics_1.webp
diff --git a/public/img/v2.2.3/gallery/statistics_2.jpg b/public/img/v2.2.4/gallery/statistics_2.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/statistics_2.jpg
rename to public/img/v2.2.4/gallery/statistics_2.jpg
diff --git a/public/img/v2.2.3/gallery/statistics_2.webp b/public/img/v2.2.4/gallery/statistics_2.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/statistics_2.webp
rename to public/img/v2.2.4/gallery/statistics_2.webp
diff --git a/public/img/v2.2.3/gallery/system_1.jpg b/public/img/v2.2.4/gallery/system_1.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/system_1.jpg
rename to public/img/v2.2.4/gallery/system_1.jpg
diff --git a/public/img/v2.2.3/gallery/system_1.webp b/public/img/v2.2.4/gallery/system_1.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/system_1.webp
rename to public/img/v2.2.4/gallery/system_1.webp
diff --git a/public/img/v2.2.3/gallery/system_2.jpg b/public/img/v2.2.4/gallery/system_2.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/system_2.jpg
rename to public/img/v2.2.4/gallery/system_2.jpg
diff --git a/public/img/v2.2.3/gallery/system_2.webp b/public/img/v2.2.4/gallery/system_2.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/system_2.webp
rename to public/img/v2.2.4/gallery/system_2.webp
diff --git a/public/img/v2.2.3/gallery/taskmanager_1.jpg b/public/img/v2.2.4/gallery/taskmanager_1.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/taskmanager_1.jpg
rename to public/img/v2.2.4/gallery/taskmanager_1.jpg
diff --git a/public/img/v2.2.3/gallery/taskmanager_1.webp b/public/img/v2.2.4/gallery/taskmanager_1.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/taskmanager_1.webp
rename to public/img/v2.2.4/gallery/taskmanager_1.webp
diff --git a/public/img/v2.2.3/gallery/thumbs/admin_1.jpg b/public/img/v2.2.4/gallery/thumbs/admin_1.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/admin_1.jpg
rename to public/img/v2.2.4/gallery/thumbs/admin_1.jpg
diff --git a/public/img/v2.2.3/gallery/thumbs/admin_1.webp b/public/img/v2.2.4/gallery/thumbs/admin_1.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/admin_1.webp
rename to public/img/v2.2.4/gallery/thumbs/admin_1.webp
diff --git a/public/img/v2.2.3/gallery/thumbs/admin_2.jpg b/public/img/v2.2.4/gallery/thumbs/admin_2.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/admin_2.jpg
rename to public/img/v2.2.4/gallery/thumbs/admin_2.jpg
diff --git a/public/img/v2.2.3/gallery/thumbs/admin_2.webp b/public/img/v2.2.4/gallery/thumbs/admin_2.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/admin_2.webp
rename to public/img/v2.2.4/gallery/thumbs/admin_2.webp
diff --git a/public/img/v2.2.3/gallery/thumbs/connection_1.jpg b/public/img/v2.2.4/gallery/thumbs/connection_1.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/connection_1.jpg
rename to public/img/v2.2.4/gallery/thumbs/connection_1.jpg
diff --git a/public/img/v2.2.3/gallery/thumbs/connection_1.webp b/public/img/v2.2.4/gallery/thumbs/connection_1.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/connection_1.webp
rename to public/img/v2.2.4/gallery/thumbs/connection_1.webp
diff --git a/public/img/v2.2.3/gallery/thumbs/development_1.jpg b/public/img/v2.2.4/gallery/thumbs/development_1.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/development_1.jpg
rename to public/img/v2.2.4/gallery/thumbs/development_1.jpg
diff --git a/public/img/v2.2.3/gallery/thumbs/development_1.webp b/public/img/v2.2.4/gallery/thumbs/development_1.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/development_1.webp
rename to public/img/v2.2.4/gallery/thumbs/development_1.webp
diff --git a/public/img/v2.2.3/gallery/thumbs/development_2.jpg b/public/img/v2.2.4/gallery/thumbs/development_2.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/development_2.jpg
rename to public/img/v2.2.4/gallery/thumbs/development_2.jpg
diff --git a/public/img/v2.2.3/gallery/thumbs/development_2.webp b/public/img/v2.2.4/gallery/thumbs/development_2.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/development_2.webp
rename to public/img/v2.2.4/gallery/thumbs/development_2.webp
diff --git a/public/img/v2.2.3/gallery/thumbs/discord_1.jpg b/public/img/v2.2.4/gallery/thumbs/discord_1.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/discord_1.jpg
rename to public/img/v2.2.4/gallery/thumbs/discord_1.jpg
diff --git a/public/img/v2.2.3/gallery/thumbs/discord_1.webp b/public/img/v2.2.4/gallery/thumbs/discord_1.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/discord_1.webp
rename to public/img/v2.2.4/gallery/thumbs/discord_1.webp
diff --git a/public/img/v2.2.3/gallery/thumbs/install_db.jpg b/public/img/v2.2.4/gallery/thumbs/install_db.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/install_db.jpg
rename to public/img/v2.2.4/gallery/thumbs/install_db.jpg
diff --git a/public/img/v2.2.3/gallery/thumbs/install_db.webp b/public/img/v2.2.4/gallery/thumbs/install_db.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/install_db.webp
rename to public/img/v2.2.4/gallery/thumbs/install_db.webp
diff --git a/public/img/v2.2.3/gallery/thumbs/install_settings.jpg b/public/img/v2.2.4/gallery/thumbs/install_settings.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/install_settings.jpg
rename to public/img/v2.2.4/gallery/thumbs/install_settings.jpg
diff --git a/public/img/v2.2.3/gallery/thumbs/install_settings.webp b/public/img/v2.2.4/gallery/thumbs/install_settings.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/install_settings.webp
rename to public/img/v2.2.4/gallery/thumbs/install_settings.webp
diff --git a/public/img/v2.2.3/gallery/thumbs/intel_1.jpg b/public/img/v2.2.4/gallery/thumbs/intel_1.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/intel_1.jpg
rename to public/img/v2.2.4/gallery/thumbs/intel_1.jpg
diff --git a/public/img/v2.2.3/gallery/thumbs/intel_1.webp b/public/img/v2.2.4/gallery/thumbs/intel_1.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/intel_1.webp
rename to public/img/v2.2.4/gallery/thumbs/intel_1.webp
diff --git a/public/img/v2.2.3/gallery/thumbs/kb_1.jpg b/public/img/v2.2.4/gallery/thumbs/kb_1.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/kb_1.jpg
rename to public/img/v2.2.4/gallery/thumbs/kb_1.jpg
diff --git a/public/img/v2.2.3/gallery/thumbs/kb_1.webp b/public/img/v2.2.4/gallery/thumbs/kb_1.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/kb_1.webp
rename to public/img/v2.2.4/gallery/thumbs/kb_1.webp
diff --git a/public/img/v2.2.3/gallery/thumbs/kb_2.jpg b/public/img/v2.2.4/gallery/thumbs/kb_2.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/kb_2.jpg
rename to public/img/v2.2.4/gallery/thumbs/kb_2.jpg
diff --git a/public/img/v2.2.3/gallery/thumbs/kb_2.webp b/public/img/v2.2.4/gallery/thumbs/kb_2.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/kb_2.webp
rename to public/img/v2.2.4/gallery/thumbs/kb_2.webp
diff --git a/public/img/v2.2.3/gallery/thumbs/log_1.jpg b/public/img/v2.2.4/gallery/thumbs/log_1.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/log_1.jpg
rename to public/img/v2.2.4/gallery/thumbs/log_1.jpg
diff --git a/public/img/v2.2.3/gallery/thumbs/log_1.webp b/public/img/v2.2.4/gallery/thumbs/log_1.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/log_1.webp
rename to public/img/v2.2.4/gallery/thumbs/log_1.webp
diff --git a/public/img/v2.2.3/gallery/thumbs/login_1.jpg b/public/img/v2.2.4/gallery/thumbs/login_1.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/login_1.jpg
rename to public/img/v2.2.4/gallery/thumbs/login_1.jpg
diff --git a/public/img/v2.2.3/gallery/thumbs/login_1.webp b/public/img/v2.2.4/gallery/thumbs/login_1.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/login_1.webp
rename to public/img/v2.2.4/gallery/thumbs/login_1.webp
diff --git a/public/img/v2.2.3/gallery/thumbs/map_1.jpg b/public/img/v2.2.4/gallery/thumbs/map_1.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/map_1.jpg
rename to public/img/v2.2.4/gallery/thumbs/map_1.jpg
diff --git a/public/img/v2.2.3/gallery/thumbs/map_1.webp b/public/img/v2.2.4/gallery/thumbs/map_1.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/map_1.webp
rename to public/img/v2.2.4/gallery/thumbs/map_1.webp
diff --git a/public/img/v2.2.3/gallery/thumbs/map_2.jpg b/public/img/v2.2.4/gallery/thumbs/map_2.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/map_2.jpg
rename to public/img/v2.2.4/gallery/thumbs/map_2.jpg
diff --git a/public/img/v2.2.3/gallery/thumbs/map_2.webp b/public/img/v2.2.4/gallery/thumbs/map_2.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/map_2.webp
rename to public/img/v2.2.4/gallery/thumbs/map_2.webp
diff --git a/public/img/v2.2.3/gallery/thumbs/map_3.jpg b/public/img/v2.2.4/gallery/thumbs/map_3.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/map_3.jpg
rename to public/img/v2.2.4/gallery/thumbs/map_3.jpg
diff --git a/public/img/v2.2.3/gallery/thumbs/map_3.webp b/public/img/v2.2.4/gallery/thumbs/map_3.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/map_3.webp
rename to public/img/v2.2.4/gallery/thumbs/map_3.webp
diff --git a/public/img/v2.2.3/gallery/thumbs/route_1.jpg b/public/img/v2.2.4/gallery/thumbs/route_1.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/route_1.jpg
rename to public/img/v2.2.4/gallery/thumbs/route_1.jpg
diff --git a/public/img/v2.2.3/gallery/thumbs/route_1.webp b/public/img/v2.2.4/gallery/thumbs/route_1.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/route_1.webp
rename to public/img/v2.2.4/gallery/thumbs/route_1.webp
diff --git a/public/img/v2.2.3/gallery/thumbs/route_2.jpg b/public/img/v2.2.4/gallery/thumbs/route_2.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/route_2.jpg
rename to public/img/v2.2.4/gallery/thumbs/route_2.jpg
diff --git a/public/img/v2.2.3/gallery/thumbs/route_2.webp b/public/img/v2.2.4/gallery/thumbs/route_2.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/route_2.webp
rename to public/img/v2.2.4/gallery/thumbs/route_2.webp
diff --git a/public/img/v2.2.3/gallery/thumbs/settings_1.jpg b/public/img/v2.2.4/gallery/thumbs/settings_1.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/settings_1.jpg
rename to public/img/v2.2.4/gallery/thumbs/settings_1.jpg
diff --git a/public/img/v2.2.3/gallery/thumbs/settings_1.webp b/public/img/v2.2.4/gallery/thumbs/settings_1.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/settings_1.webp
rename to public/img/v2.2.4/gallery/thumbs/settings_1.webp
diff --git a/public/img/v2.2.3/gallery/thumbs/signatures_1.jpg b/public/img/v2.2.4/gallery/thumbs/signatures_1.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/signatures_1.jpg
rename to public/img/v2.2.4/gallery/thumbs/signatures_1.jpg
diff --git a/public/img/v2.2.3/gallery/thumbs/signatures_1.webp b/public/img/v2.2.4/gallery/thumbs/signatures_1.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/signatures_1.webp
rename to public/img/v2.2.4/gallery/thumbs/signatures_1.webp
diff --git a/public/img/v2.2.3/gallery/thumbs/signatures_2.jpg b/public/img/v2.2.4/gallery/thumbs/signatures_2.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/signatures_2.jpg
rename to public/img/v2.2.4/gallery/thumbs/signatures_2.jpg
diff --git a/public/img/v2.2.3/gallery/thumbs/signatures_2.webp b/public/img/v2.2.4/gallery/thumbs/signatures_2.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/signatures_2.webp
rename to public/img/v2.2.4/gallery/thumbs/signatures_2.webp
diff --git a/public/img/v2.2.3/gallery/thumbs/statistics_1.jpg b/public/img/v2.2.4/gallery/thumbs/statistics_1.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/statistics_1.jpg
rename to public/img/v2.2.4/gallery/thumbs/statistics_1.jpg
diff --git a/public/img/v2.2.3/gallery/thumbs/statistics_1.webp b/public/img/v2.2.4/gallery/thumbs/statistics_1.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/statistics_1.webp
rename to public/img/v2.2.4/gallery/thumbs/statistics_1.webp
diff --git a/public/img/v2.2.3/gallery/thumbs/statistics_2.jpg b/public/img/v2.2.4/gallery/thumbs/statistics_2.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/statistics_2.jpg
rename to public/img/v2.2.4/gallery/thumbs/statistics_2.jpg
diff --git a/public/img/v2.2.3/gallery/thumbs/statistics_2.webp b/public/img/v2.2.4/gallery/thumbs/statistics_2.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/statistics_2.webp
rename to public/img/v2.2.4/gallery/thumbs/statistics_2.webp
diff --git a/public/img/v2.2.3/gallery/thumbs/system_1.jpg b/public/img/v2.2.4/gallery/thumbs/system_1.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/system_1.jpg
rename to public/img/v2.2.4/gallery/thumbs/system_1.jpg
diff --git a/public/img/v2.2.3/gallery/thumbs/system_1.webp b/public/img/v2.2.4/gallery/thumbs/system_1.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/system_1.webp
rename to public/img/v2.2.4/gallery/thumbs/system_1.webp
diff --git a/public/img/v2.2.3/gallery/thumbs/system_2.jpg b/public/img/v2.2.4/gallery/thumbs/system_2.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/system_2.jpg
rename to public/img/v2.2.4/gallery/thumbs/system_2.jpg
diff --git a/public/img/v2.2.3/gallery/thumbs/system_2.webp b/public/img/v2.2.4/gallery/thumbs/system_2.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/system_2.webp
rename to public/img/v2.2.4/gallery/thumbs/system_2.webp
diff --git a/public/img/v2.2.3/gallery/thumbs/taskmanager_1.jpg b/public/img/v2.2.4/gallery/thumbs/taskmanager_1.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/taskmanager_1.jpg
rename to public/img/v2.2.4/gallery/thumbs/taskmanager_1.jpg
diff --git a/public/img/v2.2.3/gallery/thumbs/taskmanager_1.webp b/public/img/v2.2.4/gallery/thumbs/taskmanager_1.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/taskmanager_1.webp
rename to public/img/v2.2.4/gallery/thumbs/taskmanager_1.webp
diff --git a/public/img/v2.2.3/gallery/thumbs/wip.jpg b/public/img/v2.2.4/gallery/thumbs/wip.jpg
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/wip.jpg
rename to public/img/v2.2.4/gallery/thumbs/wip.jpg
diff --git a/public/img/v2.2.3/gallery/thumbs/wip.webp b/public/img/v2.2.4/gallery/thumbs/wip.webp
similarity index 100%
rename from public/img/v2.2.3/gallery/thumbs/wip.webp
rename to public/img/v2.2.4/gallery/thumbs/wip.webp
diff --git a/public/img/v2.2.3/header/pf-header-1200.jpg b/public/img/v2.2.4/header/pf-header-1200.jpg
similarity index 100%
rename from public/img/v2.2.3/header/pf-header-1200.jpg
rename to public/img/v2.2.4/header/pf-header-1200.jpg
diff --git a/public/img/v2.2.3/header/pf-header-1200.png b/public/img/v2.2.4/header/pf-header-1200.png
similarity index 100%
rename from public/img/v2.2.3/header/pf-header-1200.png
rename to public/img/v2.2.4/header/pf-header-1200.png
diff --git a/public/img/v2.2.3/header/pf-header-1200.webp b/public/img/v2.2.4/header/pf-header-1200.webp
similarity index 100%
rename from public/img/v2.2.3/header/pf-header-1200.webp
rename to public/img/v2.2.4/header/pf-header-1200.webp
diff --git a/public/img/v2.2.3/header/pf-header-1600.jpg b/public/img/v2.2.4/header/pf-header-1600.jpg
similarity index 100%
rename from public/img/v2.2.3/header/pf-header-1600.jpg
rename to public/img/v2.2.4/header/pf-header-1600.jpg
diff --git a/public/img/v2.2.3/header/pf-header-1600.png b/public/img/v2.2.4/header/pf-header-1600.png
similarity index 100%
rename from public/img/v2.2.3/header/pf-header-1600.png
rename to public/img/v2.2.4/header/pf-header-1600.png
diff --git a/public/img/v2.2.3/header/pf-header-1600.webp b/public/img/v2.2.4/header/pf-header-1600.webp
similarity index 100%
rename from public/img/v2.2.3/header/pf-header-1600.webp
rename to public/img/v2.2.4/header/pf-header-1600.webp
diff --git a/public/img/v2.2.3/header/pf-header-3840.jpg b/public/img/v2.2.4/header/pf-header-3840.jpg
similarity index 100%
rename from public/img/v2.2.3/header/pf-header-3840.jpg
rename to public/img/v2.2.4/header/pf-header-3840.jpg
diff --git a/public/img/v2.2.3/header/pf-header-3840.png b/public/img/v2.2.4/header/pf-header-3840.png
similarity index 100%
rename from public/img/v2.2.3/header/pf-header-3840.png
rename to public/img/v2.2.4/header/pf-header-3840.png
diff --git a/public/img/v2.2.3/header/pf-header-3840.webp b/public/img/v2.2.4/header/pf-header-3840.webp
similarity index 100%
rename from public/img/v2.2.3/header/pf-header-3840.webp
rename to public/img/v2.2.4/header/pf-header-3840.webp
diff --git a/public/img/v2.2.3/header/pf-header-480.jpg b/public/img/v2.2.4/header/pf-header-480.jpg
similarity index 100%
rename from public/img/v2.2.3/header/pf-header-480.jpg
rename to public/img/v2.2.4/header/pf-header-480.jpg
diff --git a/public/img/v2.2.3/header/pf-header-480.png b/public/img/v2.2.4/header/pf-header-480.png
similarity index 100%
rename from public/img/v2.2.3/header/pf-header-480.png
rename to public/img/v2.2.4/header/pf-header-480.png
diff --git a/public/img/v2.2.3/header/pf-header-480.webp b/public/img/v2.2.4/header/pf-header-480.webp
similarity index 100%
rename from public/img/v2.2.3/header/pf-header-480.webp
rename to public/img/v2.2.4/header/pf-header-480.webp
diff --git a/public/img/v2.2.3/header/pf-header-780.jpg b/public/img/v2.2.4/header/pf-header-780.jpg
similarity index 100%
rename from public/img/v2.2.3/header/pf-header-780.jpg
rename to public/img/v2.2.4/header/pf-header-780.jpg
diff --git a/public/img/v2.2.3/header/pf-header-780.png b/public/img/v2.2.4/header/pf-header-780.png
similarity index 100%
rename from public/img/v2.2.3/header/pf-header-780.png
rename to public/img/v2.2.4/header/pf-header-780.png
diff --git a/public/img/v2.2.3/header/pf-header-780.webp b/public/img/v2.2.4/header/pf-header-780.webp
similarity index 100%
rename from public/img/v2.2.3/header/pf-header-780.webp
rename to public/img/v2.2.4/header/pf-header-780.webp
diff --git a/public/img/v2.2.3/icons/client/ui/window/charcustomization.png b/public/img/v2.2.4/icons/client/ui/window/charcustomization.png
similarity index 100%
rename from public/img/v2.2.3/icons/client/ui/window/charcustomization.png
rename to public/img/v2.2.4/icons/client/ui/window/charcustomization.png
diff --git a/public/img/v2.2.3/icons/client/ui/window/clonebay.png b/public/img/v2.2.4/icons/client/ui/window/clonebay.png
similarity index 100%
rename from public/img/v2.2.3/icons/client/ui/window/clonebay.png
rename to public/img/v2.2.4/icons/client/ui/window/clonebay.png
diff --git a/public/img/v2.2.3/icons/client/ui/window/concord.png b/public/img/v2.2.4/icons/client/ui/window/concord.png
similarity index 100%
rename from public/img/v2.2.3/icons/client/ui/window/concord.png
rename to public/img/v2.2.4/icons/client/ui/window/concord.png
diff --git a/public/img/v2.2.3/icons/client/ui/window/docking.png b/public/img/v2.2.4/icons/client/ui/window/docking.png
similarity index 100%
rename from public/img/v2.2.3/icons/client/ui/window/docking.png
rename to public/img/v2.2.4/icons/client/ui/window/docking.png
diff --git a/public/img/v2.2.3/icons/client/ui/window/factionalwarfare.png b/public/img/v2.2.4/icons/client/ui/window/factionalwarfare.png
similarity index 100%
rename from public/img/v2.2.3/icons/client/ui/window/factionalwarfare.png
rename to public/img/v2.2.4/icons/client/ui/window/factionalwarfare.png
diff --git a/public/img/v2.2.3/icons/client/ui/window/fitting.png b/public/img/v2.2.4/icons/client/ui/window/fitting.png
similarity index 100%
rename from public/img/v2.2.3/icons/client/ui/window/fitting.png
rename to public/img/v2.2.4/icons/client/ui/window/fitting.png
diff --git a/public/img/v2.2.3/icons/client/ui/window/industry.png b/public/img/v2.2.4/icons/client/ui/window/industry.png
similarity index 100%
rename from public/img/v2.2.3/icons/client/ui/window/industry.png
rename to public/img/v2.2.4/icons/client/ui/window/industry.png
diff --git a/public/img/v2.2.3/icons/client/ui/window/insurance.png b/public/img/v2.2.4/icons/client/ui/window/insurance.png
similarity index 100%
rename from public/img/v2.2.3/icons/client/ui/window/insurance.png
rename to public/img/v2.2.4/icons/client/ui/window/insurance.png
diff --git a/public/img/v2.2.3/icons/client/ui/window/jumpclones.png b/public/img/v2.2.4/icons/client/ui/window/jumpclones.png
similarity index 100%
rename from public/img/v2.2.3/icons/client/ui/window/jumpclones.png
rename to public/img/v2.2.4/icons/client/ui/window/jumpclones.png
diff --git a/public/img/v2.2.3/icons/client/ui/window/lpstore.png b/public/img/v2.2.4/icons/client/ui/window/lpstore.png
similarity index 100%
rename from public/img/v2.2.3/icons/client/ui/window/lpstore.png
rename to public/img/v2.2.4/icons/client/ui/window/lpstore.png
diff --git a/public/img/v2.2.3/icons/client/ui/window/market.png b/public/img/v2.2.4/icons/client/ui/window/market.png
similarity index 100%
rename from public/img/v2.2.3/icons/client/ui/window/market.png
rename to public/img/v2.2.4/icons/client/ui/window/market.png
diff --git a/public/img/v2.2.3/icons/client/ui/window/repairshop.png b/public/img/v2.2.4/icons/client/ui/window/repairshop.png
similarity index 100%
rename from public/img/v2.2.3/icons/client/ui/window/repairshop.png
rename to public/img/v2.2.4/icons/client/ui/window/repairshop.png
diff --git a/public/img/v2.2.3/icons/client/ui/window/reprocess.png b/public/img/v2.2.4/icons/client/ui/window/reprocess.png
similarity index 100%
rename from public/img/v2.2.3/icons/client/ui/window/reprocess.png
rename to public/img/v2.2.4/icons/client/ui/window/reprocess.png
diff --git a/public/img/v2.2.3/icons/client/ui/window/research.png b/public/img/v2.2.4/icons/client/ui/window/research.png
similarity index 100%
rename from public/img/v2.2.3/icons/client/ui/window/research.png
rename to public/img/v2.2.4/icons/client/ui/window/research.png
diff --git a/public/img/v2.2.3/icons/client/ui/window/skins.png b/public/img/v2.2.4/icons/client/ui/window/skins.png
similarity index 100%
rename from public/img/v2.2.3/icons/client/ui/window/skins.png
rename to public/img/v2.2.4/icons/client/ui/window/skins.png
diff --git a/public/img/v2.2.3/icons/grid_left.png b/public/img/v2.2.4/icons/grid_left.png
similarity index 100%
rename from public/img/v2.2.3/icons/grid_left.png
rename to public/img/v2.2.4/icons/grid_left.png
diff --git a/public/img/v2.2.3/icons/grid_right.png b/public/img/v2.2.4/icons/grid_right.png
similarity index 100%
rename from public/img/v2.2.3/icons/grid_right.png
rename to public/img/v2.2.4/icons/grid_right.png
diff --git a/public/img/v2.2.3/icons/logo_anoik.png b/public/img/v2.2.4/icons/logo_anoik.png
similarity index 100%
rename from public/img/v2.2.3/icons/logo_anoik.png
rename to public/img/v2.2.4/icons/logo_anoik.png
diff --git a/public/img/v2.2.3/icons/logo_dotlan.png b/public/img/v2.2.4/icons/logo_dotlan.png
similarity index 100%
rename from public/img/v2.2.3/icons/logo_dotlan.png
rename to public/img/v2.2.4/icons/logo_dotlan.png
diff --git a/public/img/v2.2.3/icons/logo_eve.png b/public/img/v2.2.4/icons/logo_eve.png
similarity index 100%
rename from public/img/v2.2.3/icons/logo_eve.png
rename to public/img/v2.2.4/icons/logo_eve.png
diff --git a/public/img/v2.2.3/icons/logo_eveeye.png b/public/img/v2.2.4/icons/logo_eveeye.png
similarity index 100%
rename from public/img/v2.2.3/icons/logo_eveeye.png
rename to public/img/v2.2.4/icons/logo_eveeye.png
diff --git a/public/img/v2.2.3/misc/donate_patreon.png b/public/img/v2.2.4/misc/donate_patreon.png
similarity index 100%
rename from public/img/v2.2.3/misc/donate_patreon.png
rename to public/img/v2.2.4/misc/donate_patreon.png
diff --git a/public/img/v2.2.3/misc/donate_paypal.png b/public/img/v2.2.4/misc/donate_paypal.png
similarity index 100%
rename from public/img/v2.2.3/misc/donate_paypal.png
rename to public/img/v2.2.4/misc/donate_paypal.png
diff --git a/public/img/v2.2.3/misc/grid_40x40.png b/public/img/v2.2.4/misc/grid_40x40.png
similarity index 100%
rename from public/img/v2.2.3/misc/grid_40x40.png
rename to public/img/v2.2.4/misc/grid_40x40.png
diff --git a/public/img/v2.2.3/misc/logo.png b/public/img/v2.2.4/misc/logo.png
similarity index 100%
rename from public/img/v2.2.3/misc/logo.png
rename to public/img/v2.2.4/misc/logo.png
diff --git a/public/img/v2.2.3/misc/logo_alpha.png b/public/img/v2.2.4/misc/logo_alpha.png
similarity index 100%
rename from public/img/v2.2.3/misc/logo_alpha.png
rename to public/img/v2.2.4/misc/logo_alpha.png
diff --git a/public/img/v2.2.3/misc/notification.png b/public/img/v2.2.4/misc/notification.png
similarity index 100%
rename from public/img/v2.2.3/misc/notification.png
rename to public/img/v2.2.4/misc/notification.png
diff --git a/public/img/v2.2.3/sso/eve_sso_login_buttons_large_black.png b/public/img/v2.2.4/sso/eve_sso_login_buttons_large_black.png
similarity index 100%
rename from public/img/v2.2.3/sso/eve_sso_login_buttons_large_black.png
rename to public/img/v2.2.4/sso/eve_sso_login_buttons_large_black.png
diff --git a/public/img/v2.2.3/sso/eve_sso_login_buttons_large_black_hover.png b/public/img/v2.2.4/sso/eve_sso_login_buttons_large_black_hover.png
similarity index 100%
rename from public/img/v2.2.3/sso/eve_sso_login_buttons_large_black_hover.png
rename to public/img/v2.2.4/sso/eve_sso_login_buttons_large_black_hover.png
diff --git a/public/img/v2.2.3/svg/bubble.svg b/public/img/v2.2.4/svg/bubble.svg
similarity index 100%
rename from public/img/v2.2.3/svg/bubble.svg
rename to public/img/v2.2.4/svg/bubble.svg
diff --git a/public/img/v2.2.3/svg/ccp_sso.svg b/public/img/v2.2.4/svg/ccp_sso.svg
similarity index 100%
rename from public/img/v2.2.3/svg/ccp_sso.svg
rename to public/img/v2.2.4/svg/ccp_sso.svg
diff --git a/public/img/v2.2.3/svg/grid_layout.svg b/public/img/v2.2.4/svg/grid_layout.svg
similarity index 100%
rename from public/img/v2.2.3/svg/grid_layout.svg
rename to public/img/v2.2.4/svg/grid_layout.svg
diff --git a/public/img/v2.2.3/svg/logo_inline.svg b/public/img/v2.2.4/svg/logo_inline.svg
similarity index 100%
rename from public/img/v2.2.3/svg/logo_inline.svg
rename to public/img/v2.2.4/svg/logo_inline.svg
diff --git a/public/img/v2.2.3/svg/logo_simple.svg b/public/img/v2.2.4/svg/logo_simple.svg
similarity index 100%
rename from public/img/v2.2.3/svg/logo_simple.svg
rename to public/img/v2.2.4/svg/logo_simple.svg
diff --git a/public/img/v2.2.3/svg/swords.svg b/public/img/v2.2.4/svg/swords.svg
similarity index 100%
rename from public/img/v2.2.3/svg/swords.svg
rename to public/img/v2.2.4/svg/swords.svg
diff --git a/public/js/v2.2.3/app/admin.js b/public/js/v2.2.3/app/admin.js
deleted file mode 100644
index afe80df1..00000000
--- a/public/js/v2.2.3/app/admin.js
+++ /dev/null
@@ -1,2 +0,0 @@
-if(function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){"use strict";var n=[],r=e.document,o=Object.getPrototypeOf,a=n.slice,i=n.concat,s=n.push,l=n.indexOf,c={},u=c.toString,d=c.hasOwnProperty,f=d.toString,p=f.call(Object),h={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},g=function(e){return null!=e&&e===e.window},v={type:!0,src:!0,nonce:!0,noModule:!0};function y(e,t,n){var o,a,i=(n=n||r).createElement("script");if(i.text=e,t)for(o in v)(a=t[o]||t.getAttribute&&t.getAttribute(o))&&i.setAttribute(o,a);n.head.appendChild(i).parentNode.removeChild(i)}function b(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?c[u.call(e)]||"object":typeof e}var w="3.4.1",x=function(e,t){return new x.fn.init(e,t)},S=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function C(e){var t=!!e&&"length"in e&&e.length,n=b(e);return!m(e)&&!g(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+$+")"+$+"*"),W=new RegExp($+"|>"),V=new RegExp(M),X=new RegExp("^"+N+"$"),Y={ID:new RegExp("^#("+N+")"),CLASS:new RegExp("^\\.("+N+")"),TAG:new RegExp("^("+N+"|[*])"),ATTR:new RegExp("^"+B),PSEUDO:new RegExp("^"+M),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+$+"*(even|odd|(([+-]|)(\\d*)n|)"+$+"*(?:([+-]|)"+$+"*(\\d+)|))"+$+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+$+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+$+"*((?:-\\d)?\\d*)"+$+"*\\)|)(?=[^-]|$)","i")},G=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,K=/^h\d$/i,Z=/^[^{]+\{\s*\[native \w/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+$+"?|("+$+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,oe=function(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},ae=function(){f()},ie=we(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{P.apply(E=j.call(x.childNodes),x.childNodes),E[x.childNodes.length].nodeType}catch(t){P={apply:E.length?function(e,t){F.apply(e,j.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}function se(e,t,r,o){var a,s,c,u,d,h,v,y=t&&t.ownerDocument,S=t?t.nodeType:9;if(r=r||[],"string"!=typeof e||!e||1!==S&&9!==S&&11!==S)return r;if(!o&&((t?t.ownerDocument||t:x)!==p&&f(t),t=t||p,m)){if(11!==S&&(d=J.exec(e)))if(a=d[1]){if(9===S){if(!(c=t.getElementById(a)))return r;if(c.id===a)return r.push(c),r}else if(y&&(c=y.getElementById(a))&&b(t,c)&&c.id===a)return r.push(c),r}else{if(d[2])return P.apply(r,t.getElementsByTagName(e)),r;if((a=d[3])&&n.getElementsByClassName&&t.getElementsByClassName)return P.apply(r,t.getElementsByClassName(a)),r}if(n.qsa&&!I[e+" "]&&(!g||!g.test(e))&&(1!==S||"object"!==t.nodeName.toLowerCase())){if(v=e,y=t,1===S&&W.test(e)){for((u=t.getAttribute("id"))?u=u.replace(re,oe):t.setAttribute("id",u=w),s=(h=i(e)).length;s--;)h[s]="#"+u+" "+be(h[s]);v=h.join(","),y=ee.test(e)&&ve(t.parentNode)||t}try{return P.apply(r,y.querySelectorAll(v)),r}catch(t){I(e,!0)}finally{u===w&&t.removeAttribute("id")}}}return l(e.replace(q,"$1"),t,r,o)}function le(){var e=[];return function t(n,o){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=o}}function ce(e){return e[w]=!0,e}function ue(e){var t=p.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function de(e,t){for(var n=e.split("|"),o=n.length;o--;)r.attrHandle[n[o]]=t}function fe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function pe(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function he(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function me(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&ie(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function ge(e){return ce(function(t){return t=+t,ce(function(n,r){for(var o,a=e([],n.length,t),i=a.length;i--;)n[o=a[i]]&&(n[o]=!(r[o]=n[o]))})})}function ve(e){return e&&void 0!==e.getElementsByTagName&&e}for(t in n=se.support={},a=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!G.test(t||n&&n.nodeName||"HTML")},f=se.setDocument=function(e){var t,o,i=e?e.ownerDocument||e:x;return i!==p&&9===i.nodeType&&i.documentElement&&(h=(p=i).documentElement,m=!a(p),x!==p&&(o=p.defaultView)&&o.top!==o&&(o.addEventListener?o.addEventListener("unload",ae,!1):o.attachEvent&&o.attachEvent("onunload",ae)),n.attributes=ue(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=ue(function(e){return e.appendChild(p.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=Z.test(p.getElementsByClassName),n.getById=ue(function(e){return h.appendChild(e).id=w,!p.getElementsByName||!p.getElementsByName(w).length}),n.getById?(r.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},r.find.ID=function(e,t){if(void 0!==t.getElementById&&m){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(te,ne);return function(e){var n=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},r.find.ID=function(e,t){if(void 0!==t.getElementById&&m){var n,r,o,a=t.getElementById(e);if(a){if((n=a.getAttributeNode("id"))&&n.value===e)return[a];for(o=t.getElementsByName(e),r=0;a=o[r++];)if((n=a.getAttributeNode("id"))&&n.value===e)return[a]}return[]}}),r.find.TAG=n.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],o=0,a=t.getElementsByTagName(e);if("*"===e){for(;n=a[o++];)1===n.nodeType&&r.push(n);return r}return a},r.find.CLASS=n.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&m)return t.getElementsByClassName(e)},v=[],g=[],(n.qsa=Z.test(p.querySelectorAll))&&(ue(function(e){h.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&g.push("[*^$]="+$+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||g.push("\\["+$+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+w+"-]").length||g.push("~="),e.querySelectorAll(":checked").length||g.push(":checked"),e.querySelectorAll("a#"+w+"+*").length||g.push(".#.+[+~]")}),ue(function(e){e.innerHTML="";var t=p.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&g.push("name"+$+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&g.push(":enabled",":disabled"),h.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")})),(n.matchesSelector=Z.test(y=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&ue(function(e){n.disconnectedMatch=y.call(e,"*"),y.call(e,"[s!='']:x"),v.push("!=",M)}),g=g.length&&new RegExp(g.join("|")),v=v.length&&new RegExp(v.join("|")),t=Z.test(h.compareDocumentPosition),b=t||Z.test(h.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},k=t?function(e,t){if(e===t)return d=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e===p||e.ownerDocument===x&&b(x,e)?-1:t===p||t.ownerDocument===x&&b(x,t)?1:u?L(u,e)-L(u,t):0:4&r?-1:1)}:function(e,t){if(e===t)return d=!0,0;var n,r=0,o=e.parentNode,a=t.parentNode,i=[e],s=[t];if(!o||!a)return e===p?-1:t===p?1:o?-1:a?1:u?L(u,e)-L(u,t):0;if(o===a)return fe(e,t);for(n=e;n=n.parentNode;)i.unshift(n);for(n=t;n=n.parentNode;)s.unshift(n);for(;i[r]===s[r];)r++;return r?fe(i[r],s[r]):i[r]===x?-1:s[r]===x?1:0}),p},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==p&&f(e),n.matchesSelector&&m&&!I[t+" "]&&(!v||!v.test(t))&&(!g||!g.test(t)))try{var r=y.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){I(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return Y.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&V.test(n)&&(t=i(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=_[e+" "];return t||(t=new RegExp("(^|"+$+")"+e+"("+$+"|$)"))&&_(e,function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var o=se.attr(r,e);return null==o?"!="===t:!t||(o+="","="===t?o===n:"!="===t?o!==n:"^="===t?n&&0===o.indexOf(n):"*="===t?n&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function E(e,t,n){return m(t)?x.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?x.grep(e,function(e){return e===t!==n}):"string"!=typeof t?x.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(x.fn.init=function(e,t,n){var o,a;if(!e)return this;if(n=n||O,"string"==typeof e){if(!(o="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:F.exec(e))||!o[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(o[1]){if(t=t instanceof x?t[0]:t,x.merge(this,x.parseHTML(o[1],t&&t.nodeType?t.ownerDocument||t:r,!0)),A.test(o[1])&&x.isPlainObject(t))for(o in t)m(this[o])?this[o](t[o]):this.attr(o,t[o]);return this}return(a=r.getElementById(o[2]))&&(this[0]=a,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(x):x.makeArray(e,this)}).prototype=x.fn,O=x(r);var P=/^(?:parents|prev(?:Until|All))/,j={children:!0,contents:!0,next:!0,prev:!0};function L(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}x.fn.extend({has:function(e){var t=x(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,me={option:[1,""],thead:[1,""],col:[2,""],tr:[2,""],td:[3,""],_default:[0,"",""]};function ge(e,t){var n;return n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&k(e,t)?x.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;nx",h.noCloneChecked=!!ye.cloneNode(!0).lastChild.defaultValue;var Se=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,_e=/^([^.]*)(?:\.(.+)|)/;function Te(){return!0}function De(){return!1}function Ie(e,t){return e===function(){try{return r.activeElement}catch(e){}}()==("focus"===t)}function ke(e,t,n,r,o,a){var i,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)ke(e,s,n,r,t[s],a);return e}if(null==r&&null==o?(o=n,r=n=void 0):null==o&&("string"==typeof n?(o=r,r=void 0):(o=r,r=n,n=void 0)),!1===o)o=De;else if(!o)return e;return 1===a&&(i=o,(o=function(e){return x().off(e),i.apply(this,arguments)}).guid=i.guid||(i.guid=x.guid++)),e.each(function(){x.event.add(this,t,o,r,n)})}function Ae(e,t,n){n?(Q.set(e,t,!1),x.event.add(e,t,{namespace:!1,handler:function(e){var r,o,i=Q.get(this,t);if(1&e.isTrigger&&this[t]){if(i.length)(x.event.special[t]||{}).delegateType&&e.stopPropagation();else if(i=a.call(arguments),Q.set(this,t,i),r=n(this,t),this[t](),i!==(o=Q.get(this,t))||r?Q.set(this,t,!1):o={},i!==o)return e.stopImmediatePropagation(),e.preventDefault(),o.value}else i.length&&(Q.set(this,t,{value:x.event.trigger(x.extend(i[0],x.Event.prototype),i.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,t)&&x.event.add(e,t,Te)}x.event={global:{},add:function(e,t,n,r,o){var a,i,s,l,c,u,d,f,p,h,m,g=Q.get(e);if(g)for(n.handler&&(n=(a=n).handler,o=a.selector),o&&x.find.matchesSelector(oe,o),n.guid||(n.guid=x.guid++),(l=g.events)||(l=g.events={}),(i=g.handle)||(i=g.handle=function(t){return void 0!==x&&x.event.triggered!==t.type?x.event.dispatch.apply(e,arguments):void 0}),c=(t=(t||"").match(R)||[""]).length;c--;)p=m=(s=_e.exec(t[c])||[])[1],h=(s[2]||"").split(".").sort(),p&&(d=x.event.special[p]||{},p=(o?d.delegateType:d.bindType)||p,d=x.event.special[p]||{},u=x.extend({type:p,origType:m,data:r,handler:n,guid:n.guid,selector:o,needsContext:o&&x.expr.match.needsContext.test(o),namespace:h.join(".")},a),(f=l[p])||((f=l[p]=[]).delegateCount=0,d.setup&&!1!==d.setup.call(e,r,h,i)||e.addEventListener&&e.addEventListener(p,i)),d.add&&(d.add.call(e,u),u.handler.guid||(u.handler.guid=n.guid)),o?f.splice(f.delegateCount++,0,u):f.push(u),x.event.global[p]=!0)},remove:function(e,t,n,r,o){var a,i,s,l,c,u,d,f,p,h,m,g=Q.hasData(e)&&Q.get(e);if(g&&(l=g.events)){for(c=(t=(t||"").match(R)||[""]).length;c--;)if(p=m=(s=_e.exec(t[c])||[])[1],h=(s[2]||"").split(".").sort(),p){for(d=x.event.special[p]||{},f=l[p=(r?d.delegateType:d.bindType)||p]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=a=f.length;a--;)u=f[a],!o&&m!==u.origType||n&&n.guid!==u.guid||s&&!s.test(u.namespace)||r&&r!==u.selector&&("**"!==r||!u.selector)||(f.splice(a,1),u.selector&&f.delegateCount--,d.remove&&d.remove.call(e,u));i&&!f.length&&(d.teardown&&!1!==d.teardown.call(e,h,g.handle)||x.removeEvent(e,p,g.handle),delete l[p])}else for(p in l)x.event.remove(e,p+t[c],n,r,!0);x.isEmptyObject(l)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,o,a,i,s=x.event.fix(e),l=new Array(arguments.length),c=(Q.get(this,"events")||{})[s.type]||[],u=x.event.special[s.type]||{};for(l[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,Oe=/