From 0b49e9b8a823e0efffe2df3b0a22b809b1a181d3 Mon Sep 17 00:00:00 2001 From: James Cole Date: Tue, 23 Aug 2022 05:46:43 +0200 Subject: [PATCH 01/15] Basic amount fix --- app/Http/Controllers/Budget/BudgetLimitController.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/app/Http/Controllers/Budget/BudgetLimitController.php b/app/Http/Controllers/Budget/BudgetLimitController.php index 71b918fa86..6a0b92ec68 100644 --- a/app/Http/Controllers/Budget/BudgetLimitController.php +++ b/app/Http/Controllers/Budget/BudgetLimitController.php @@ -148,6 +148,15 @@ class BudgetLimitController extends Controller Log::debug(sprintf('Start: %s, end: %s', $start->format('Y-m-d'), $end->format('Y-m-d'))); $limit = $this->blRepository->find($budget, $currency, $start, $end); + + // sanity check on amount: + if ((float) $amount === 0.0) { + $amount = '1'; + } + if ((int) $amount > 65536) { + $amount = '65536'; + } + if (null !== $limit) { $limit->amount = $amount; $limit->save(); From 70c08d6b50d1947dea16ab203abffbdb141220f6 Mon Sep 17 00:00:00 2001 From: James Cole Date: Tue, 23 Aug 2022 05:46:59 +0200 Subject: [PATCH 02/15] Basic amount fix --- app/Http/Controllers/Budget/BudgetLimitController.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/app/Http/Controllers/Budget/BudgetLimitController.php b/app/Http/Controllers/Budget/BudgetLimitController.php index 6a0b92ec68..34c1de175c 100644 --- a/app/Http/Controllers/Budget/BudgetLimitController.php +++ b/app/Http/Controllers/Budget/BudgetLimitController.php @@ -206,6 +206,14 @@ class BudgetLimitController extends Controller $amount = '0'; } + // sanity check on amount: + if ((float) $amount === 0.0) { + $amount = '1'; + } + if ((int) $amount > 65536) { + $amount = '65536'; + } + $limit = $this->blRepository->update($budgetLimit, ['amount' => $amount]); $array = $limit->toArray(); From 52e83c2ec2ad7876fd264f5ef58e1449c22ecbe8 Mon Sep 17 00:00:00 2001 From: James Cole Date: Sun, 28 Aug 2022 06:37:03 +0200 Subject: [PATCH 03/15] Fix https://github.com/firefly-iii/firefly-iii/issues/6379 --- app/Http/Controllers/CurrencyController.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/Http/Controllers/CurrencyController.php b/app/Http/Controllers/CurrencyController.php index b1e39e62d7..6b61c923f6 100644 --- a/app/Http/Controllers/CurrencyController.php +++ b/app/Http/Controllers/CurrencyController.php @@ -258,7 +258,7 @@ class CurrencyController extends Controller } session()->flash('success', (string) trans('firefly.currency_is_now_disabled', ['name' => $currency->name])); - + return response()->json([]); } /** @@ -308,7 +308,7 @@ class CurrencyController extends Controller * @param Request $request * @return RedirectResponse|Redirector */ - public function enableCurrency(Request $request) + public function enableCurrency(Request $request): JsonResponse { $currencyId = (int) $request->get('id'); if ($currencyId > 0) { @@ -323,7 +323,7 @@ class CurrencyController extends Controller } } - return redirect(route('currencies.index')); + return response()->json([]); } /** From 7f9d87a117ee243894f2d57d0990e2fc5a14ea55 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 29 Aug 2022 03:00:45 +0000 Subject: [PATCH 04/15] Bump spatie/laravel-ignition from 1.3.1 to 1.4.0 Bumps [spatie/laravel-ignition](https://github.com/spatie/laravel-ignition) from 1.3.1 to 1.4.0. - [Release notes](https://github.com/spatie/laravel-ignition/releases) - [Changelog](https://github.com/spatie/laravel-ignition/blob/main/CHANGELOG.md) - [Commits](https://github.com/spatie/laravel-ignition/compare/1.3.1...1.4.0) --- updated-dependencies: - dependency-name: spatie/laravel-ignition dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 143 ++++++++++++++++++++++++++------------------------ 2 files changed, 74 insertions(+), 71 deletions(-) diff --git a/composer.json b/composer.json index fb5dddd302..d943cd302f 100644 --- a/composer.json +++ b/composer.json @@ -103,7 +103,7 @@ "ramsey/uuid": "^4.4", "rcrowe/twigbridge": "^0.14", "spatie/data-transfer-object": "^3.8", - "spatie/laravel-ignition": "^1.3", + "spatie/laravel-ignition": "^1.4", "symfony/http-client": "^6.0", "symfony/mailgun-mailer": "^6.0" }, diff --git a/composer.lock b/composer.lock index ed4970724e..57e52b197e 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": "d8ffb75cb08ed3955b50dca606ac4689", + "content-hash": "573e71c89704b455e63ae4ed48fec07f", "packages": [ { "name": "bacon/bacon-qr-code", @@ -1847,16 +1847,16 @@ }, { "name": "laravel/framework", - "version": "v9.25.1", + "version": "v9.26.1", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "e8af8c2212e3717757ea7f459a655a2e9e771109" + "reference": "1ccfb91afee7a351b09ba1f1b97739096a3ad1cf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/e8af8c2212e3717757ea7f459a655a2e9e771109", - "reference": "e8af8c2212e3717757ea7f459a655a2e9e771109", + "url": "https://api.github.com/repos/laravel/framework/zipball/1ccfb91afee7a351b09ba1f1b97739096a3ad1cf", + "reference": "1ccfb91afee7a351b09ba1f1b97739096a3ad1cf", "shasum": "" }, "require": { @@ -2023,7 +2023,7 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2022-08-16T16:36:05+00:00" + "time": "2022-08-23T19:00:07+00:00" }, { "name": "laravel/passport", @@ -3398,16 +3398,16 @@ }, { "name": "nesbot/carbon", - "version": "2.61.0", + "version": "2.62.0", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "bdf4f4fe3a3eac4de84dbec0738082a862c68ba6" + "reference": "7507aec3d626797ce2123cf6c6556683be22b5f8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/bdf4f4fe3a3eac4de84dbec0738082a862c68ba6", - "reference": "bdf4f4fe3a3eac4de84dbec0738082a862c68ba6", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/7507aec3d626797ce2123cf6c6556683be22b5f8", + "reference": "7507aec3d626797ce2123cf6c6556683be22b5f8", "shasum": "" }, "require": { @@ -3496,7 +3496,7 @@ "type": "tidelift" } ], - "time": "2022-08-06T12:41:24+00:00" + "time": "2022-08-28T19:48:05+00:00" }, { "name": "nette/schema", @@ -5335,16 +5335,16 @@ }, { "name": "spatie/flare-client-php", - "version": "1.2.0", + "version": "1.3.0", "source": { "type": "git", "url": "https://github.com/spatie/flare-client-php.git", - "reference": "86a380f5b1ce839af04a08f1c8f2697184cdf23f" + "reference": "b1b974348750925b717fa8c8b97a0db0d1aa40ca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/86a380f5b1ce839af04a08f1c8f2697184cdf23f", - "reference": "86a380f5b1ce839af04a08f1c8f2697184cdf23f", + "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/b1b974348750925b717fa8c8b97a0db0d1aa40ca", + "reference": "b1b974348750925b717fa8c8b97a0db0d1aa40ca", "shasum": "" }, "require": { @@ -5392,7 +5392,7 @@ ], "support": { "issues": "https://github.com/spatie/flare-client-php/issues", - "source": "https://github.com/spatie/flare-client-php/tree/1.2.0" + "source": "https://github.com/spatie/flare-client-php/tree/1.3.0" }, "funding": [ { @@ -5400,20 +5400,20 @@ "type": "github" } ], - "time": "2022-05-16T12:13:39+00:00" + "time": "2022-08-08T10:10:20+00:00" }, { "name": "spatie/ignition", - "version": "1.3.1", + "version": "1.4.1", "source": { "type": "git", "url": "https://github.com/spatie/ignition.git", - "reference": "997363fbcce809b1e55f571997d49017f9c623d9" + "reference": "dd3d456779108d7078baf4e43f8c2b937d9794a1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/ignition/zipball/997363fbcce809b1e55f571997d49017f9c623d9", - "reference": "997363fbcce809b1e55f571997d49017f9c623d9", + "url": "https://api.github.com/repos/spatie/ignition/zipball/dd3d456779108d7078baf4e43f8c2b937d9794a1", + "reference": "dd3d456779108d7078baf4e43f8c2b937d9794a1", "shasum": "" }, "require": { @@ -5475,20 +5475,20 @@ "type": "github" } ], - "time": "2022-05-16T13:16:07+00:00" + "time": "2022-08-26T11:51:15+00:00" }, { "name": "spatie/laravel-ignition", - "version": "1.3.1", + "version": "1.4.0", "source": { "type": "git", "url": "https://github.com/spatie/laravel-ignition.git", - "reference": "fe37a0eafe6ea040804255c70e9808af13314f87" + "reference": "71c627a0838f107562e89bc2b0201a81f26e9011" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/fe37a0eafe6ea040804255c70e9808af13314f87", - "reference": "fe37a0eafe6ea040804255c70e9808af13314f87", + "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/71c627a0838f107562e89bc2b0201a81f26e9011", + "reference": "71c627a0838f107562e89bc2b0201a81f26e9011", "shasum": "" }, "require": { @@ -5565,7 +5565,7 @@ "type": "github" } ], - "time": "2022-06-17T06:28:57+00:00" + "time": "2022-08-26T13:28:24+00:00" }, { "name": "stella-maris/clock", @@ -5616,16 +5616,16 @@ }, { "name": "symfony/console", - "version": "v6.0.11", + "version": "v6.0.12", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "09b8e50f09bf0e5bbde9b61b19d7f53751114725" + "reference": "c5c2e313aa682530167c25077d6bdff36346251e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/09b8e50f09bf0e5bbde9b61b19d7f53751114725", - "reference": "09b8e50f09bf0e5bbde9b61b19d7f53751114725", + "url": "https://api.github.com/repos/symfony/console/zipball/c5c2e313aa682530167c25077d6bdff36346251e", + "reference": "c5c2e313aa682530167c25077d6bdff36346251e", "shasum": "" }, "require": { @@ -5691,7 +5691,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.0.11" + "source": "https://github.com/symfony/console/tree/v6.0.12" }, "funding": [ { @@ -5707,7 +5707,7 @@ "type": "tidelift" } ], - "time": "2022-07-22T14:17:38+00:00" + "time": "2022-08-23T20:52:30+00:00" }, { "name": "symfony/css-selector", @@ -6299,16 +6299,16 @@ }, { "name": "symfony/http-foundation", - "version": "v6.0.11", + "version": "v6.0.12", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "69302fb4a7d65f6373c60b6d9ca89b91d2c9e0e6" + "reference": "d50ee4795c981638369dfa0b281107365fab2429" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/69302fb4a7d65f6373c60b6d9ca89b91d2c9e0e6", - "reference": "69302fb4a7d65f6373c60b6d9ca89b91d2c9e0e6", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/d50ee4795c981638369dfa0b281107365fab2429", + "reference": "d50ee4795c981638369dfa0b281107365fab2429", "shasum": "" }, "require": { @@ -6319,8 +6319,11 @@ "require-dev": { "predis/predis": "~1.0", "symfony/cache": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", "symfony/expression-language": "^5.4|^6.0", - "symfony/mime": "^5.4|^6.0" + "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4", + "symfony/mime": "^5.4|^6.0", + "symfony/rate-limiter": "^5.2|^6.0" }, "suggest": { "symfony/mime": "To use the file extension guesser" @@ -6351,7 +6354,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v6.0.11" + "source": "https://github.com/symfony/http-foundation/tree/v6.0.12" }, "funding": [ { @@ -6367,20 +6370,20 @@ "type": "tidelift" } ], - "time": "2022-07-22T16:13:32+00:00" + "time": "2022-08-19T14:25:15+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.0.11", + "version": "v6.0.12", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "961268a36f3fa4bda9fde1400d2ae7004318b717" + "reference": "8f3563e4518cfee24a5cc724434cc60e0818abec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/961268a36f3fa4bda9fde1400d2ae7004318b717", - "reference": "961268a36f3fa4bda9fde1400d2ae7004318b717", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/8f3563e4518cfee24a5cc724434cc60e0818abec", + "reference": "8f3563e4518cfee24a5cc724434cc60e0818abec", "shasum": "" }, "require": { @@ -6460,7 +6463,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v6.0.11" + "source": "https://github.com/symfony/http-kernel/tree/v6.0.12" }, "funding": [ { @@ -6476,20 +6479,20 @@ "type": "tidelift" } ], - "time": "2022-07-29T12:37:40+00:00" + "time": "2022-08-26T14:45:39+00:00" }, { "name": "symfony/mailer", - "version": "v6.0.11", + "version": "v6.0.12", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "4a787a257addd412eac53157d459f87f8e335037" + "reference": "45aad5f8cfb481130e83dc4cb867c0f576182ea9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/4a787a257addd412eac53157d459f87f8e335037", - "reference": "4a787a257addd412eac53157d459f87f8e335037", + "url": "https://api.github.com/repos/symfony/mailer/zipball/45aad5f8cfb481130e83dc4cb867c0f576182ea9", + "reference": "45aad5f8cfb481130e83dc4cb867c0f576182ea9", "shasum": "" }, "require": { @@ -6534,7 +6537,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v6.0.11" + "source": "https://github.com/symfony/mailer/tree/v6.0.12" }, "funding": [ { @@ -6550,7 +6553,7 @@ "type": "tidelift" } ], - "time": "2022-07-27T15:50:26+00:00" + "time": "2022-08-03T05:17:36+00:00" }, { "name": "symfony/mailgun-mailer", @@ -6619,16 +6622,16 @@ }, { "name": "symfony/mime", - "version": "v6.0.11", + "version": "v6.0.12", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "c6f16f6789587348f6518b193d3499c0e1f5e5c5" + "reference": "02a11577f2f9522c783179712bdf6d2d3cb9fc1d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/c6f16f6789587348f6518b193d3499c0e1f5e5c5", - "reference": "c6f16f6789587348f6518b193d3499c0e1f5e5c5", + "url": "https://api.github.com/repos/symfony/mime/zipball/02a11577f2f9522c783179712bdf6d2d3cb9fc1d", + "reference": "02a11577f2f9522c783179712bdf6d2d3cb9fc1d", "shasum": "" }, "require": { @@ -6680,7 +6683,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v6.0.11" + "source": "https://github.com/symfony/mime/tree/v6.0.12" }, "funding": [ { @@ -6696,7 +6699,7 @@ "type": "tidelift" } ], - "time": "2022-07-20T13:45:53+00:00" + "time": "2022-08-19T14:25:15+00:00" }, { "name": "symfony/polyfill-ctype", @@ -7674,16 +7677,16 @@ }, { "name": "symfony/string", - "version": "v6.0.11", + "version": "v6.0.12", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "042b6bf0f6ccca6d456a0572eb788cfb8b1ff809" + "reference": "3a975ba1a1508ad97df45f4590f55b7cc4c1a0a0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/042b6bf0f6ccca6d456a0572eb788cfb8b1ff809", - "reference": "042b6bf0f6ccca6d456a0572eb788cfb8b1ff809", + "url": "https://api.github.com/repos/symfony/string/zipball/3a975ba1a1508ad97df45f4590f55b7cc4c1a0a0", + "reference": "3a975ba1a1508ad97df45f4590f55b7cc4c1a0a0", "shasum": "" }, "require": { @@ -7739,7 +7742,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.0.11" + "source": "https://github.com/symfony/string/tree/v6.0.12" }, "funding": [ { @@ -7755,20 +7758,20 @@ "type": "tidelift" } ], - "time": "2022-07-27T15:50:26+00:00" + "time": "2022-08-12T18:05:20+00:00" }, { "name": "symfony/translation", - "version": "v6.0.11", + "version": "v6.0.12", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "55ffbe4b690156100af1ae42e1f94c5873085bca" + "reference": "5e71973b4991e141271465dacf4bf9e719941424" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/55ffbe4b690156100af1ae42e1f94c5873085bca", - "reference": "55ffbe4b690156100af1ae42e1f94c5873085bca", + "url": "https://api.github.com/repos/symfony/translation/zipball/5e71973b4991e141271465dacf4bf9e719941424", + "reference": "5e71973b4991e141271465dacf4bf9e719941424", "shasum": "" }, "require": { @@ -7834,7 +7837,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v6.0.11" + "source": "https://github.com/symfony/translation/tree/v6.0.12" }, "funding": [ { @@ -7850,7 +7853,7 @@ "type": "tidelift" } ], - "time": "2022-07-20T13:45:53+00:00" + "time": "2022-08-02T16:01:06+00:00" }, { "name": "symfony/translation-contracts", From 37f91cabf5906ab01075c3555c50f12ad418b9e9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 29 Aug 2022 03:02:30 +0000 Subject: [PATCH 05/15] Bump jquery from 3.6.0 to 3.6.1 Bumps [jquery](https://github.com/jquery/jquery) from 3.6.0 to 3.6.1. - [Release notes](https://github.com/jquery/jquery/releases) - [Commits](https://github.com/jquery/jquery/compare/3.6.0...3.6.1) --- updated-dependencies: - dependency-name: jquery dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 8fbb79c003..01f19778a0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3312,9 +3312,9 @@ jest-worker@^27.4.5: supports-color "^8.0.0" jquery@^3: - version "3.6.0" - resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.6.0.tgz#c72a09f15c1bdce142f49dbf1170bdf8adac2470" - integrity sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw== + version "3.6.1" + resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.6.1.tgz#fab0408f8b45fc19f956205773b62b292c147a16" + integrity sha512-opJeO4nCucVnsjiXOE+/PcCgYw9Gwpvs/a6B1LL/lQhwWwpbVEVYDZ1FokFr8PRc7ghYlrFPuyHuiiDNTQxmcw== js-tokens@^4.0.0: version "4.0.0" From 44da3be91081c76336318f4054847b09e5949458 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 29 Aug 2022 03:53:27 +0000 Subject: [PATCH 06/15] Bump laravel/passport from 10.4.1 to 11.0.0 Bumps [laravel/passport](https://github.com/laravel/passport) from 10.4.1 to 11.0.0. - [Release notes](https://github.com/laravel/passport/releases) - [Changelog](https://github.com/laravel/passport/blob/11.x/CHANGELOG.md) - [Upgrade guide](https://github.com/laravel/passport/blob/11.x/UPGRADE.md) - [Commits](https://github.com/laravel/passport/compare/v10.4.1...v11.0.0) --- updated-dependencies: - dependency-name: laravel/passport dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 74 ++++++++++++++++++++++++--------------------------- 2 files changed, 36 insertions(+), 40 deletions(-) diff --git a/composer.json b/composer.json index d943cd302f..54aa7b526c 100644 --- a/composer.json +++ b/composer.json @@ -89,7 +89,7 @@ "jc5/google2fa-laravel": "^2.0", "jc5/recovery": "^2", "laravel/framework": "^9", - "laravel/passport": "10.*", + "laravel/passport": "11.*", "laravel/sanctum": "^3.0", "laravel/ui": "^4.0", "laravelcollective/html": "6.*", diff --git a/composer.lock b/composer.lock index 57e52b197e..d995cebfbe 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": "573e71c89704b455e63ae4ed48fec07f", + "content-hash": "22c85dc6880ba24f9a770b29e6ba9cab", "packages": [ { "name": "bacon/bacon-qr-code", @@ -2027,46 +2027,46 @@ }, { "name": "laravel/passport", - "version": "v10.4.1", + "version": "v11.0.0", "source": { "type": "git", "url": "https://github.com/laravel/passport.git", - "reference": "b62b418a6d9e9aca231a587be0fc14dc55cd8d77" + "reference": "dd00df75cc10f14186f71edb39a8839627ef837e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/passport/zipball/b62b418a6d9e9aca231a587be0fc14dc55cd8d77", - "reference": "b62b418a6d9e9aca231a587be0fc14dc55cd8d77", + "url": "https://api.github.com/repos/laravel/passport/zipball/dd00df75cc10f14186f71edb39a8839627ef837e", + "reference": "dd00df75cc10f14186f71edb39a8839627ef837e", "shasum": "" }, "require": { "ext-json": "*", "firebase/php-jwt": "^6.0", - "illuminate/auth": "^8.37|^9.0", - "illuminate/console": "^8.37|^9.0", - "illuminate/container": "^8.37|^9.0", - "illuminate/contracts": "^8.37|^9.0", - "illuminate/cookie": "^8.37|^9.0", - "illuminate/database": "^8.37|^9.0", - "illuminate/encryption": "^8.37|^9.0", - "illuminate/http": "^8.37|^9.0", - "illuminate/support": "^8.37|^9.0", + "illuminate/auth": "^9.0", + "illuminate/console": "^9.0", + "illuminate/container": "^9.0", + "illuminate/contracts": "^9.0", + "illuminate/cookie": "^9.0", + "illuminate/database": "^9.0", + "illuminate/encryption": "^9.0", + "illuminate/http": "^9.0", + "illuminate/support": "^9.0", "lcobucci/jwt": "^3.4|^4.0", "league/oauth2-server": "^8.2", "nyholm/psr7": "^1.3", - "php": "^7.3|^8.0", + "php": "^8.0", "phpseclib/phpseclib": "^2.0|^3.0", "symfony/psr-http-message-bridge": "^2.0" }, "require-dev": { "mockery/mockery": "^1.0", - "orchestra/testbench": "^6.0|^7.0", + "orchestra/testbench": "^7.0", "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "10.x-dev" + "dev-master": "11.x-dev" }, "laravel": { "providers": [ @@ -2100,7 +2100,7 @@ "issues": "https://github.com/laravel/passport/issues", "source": "https://github.com/laravel/passport" }, - "time": "2022-04-16T13:38:08+00:00" + "time": "2022-08-19T15:05:01+00:00" }, { "name": "laravel/sanctum", @@ -2422,16 +2422,16 @@ }, { "name": "lcobucci/jwt", - "version": "4.1.5", + "version": "4.2.1", "source": { "type": "git", "url": "https://github.com/lcobucci/jwt.git", - "reference": "fe2d89f2eaa7087af4aa166c6f480ef04e000582" + "reference": "72ac6d807ee51a70ad376ee03a2387e8646e10f3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/lcobucci/jwt/zipball/fe2d89f2eaa7087af4aa166c6f480ef04e000582", - "reference": "fe2d89f2eaa7087af4aa166c6f480ef04e000582", + "url": "https://api.github.com/repos/lcobucci/jwt/zipball/72ac6d807ee51a70ad376ee03a2387e8646e10f3", + "reference": "72ac6d807ee51a70ad376ee03a2387e8646e10f3", "shasum": "" }, "require": { @@ -2447,12 +2447,12 @@ "infection/infection": "^0.21", "lcobucci/coding-standard": "^6.0", "mikey179/vfsstream": "^1.6.7", - "phpbench/phpbench": "^1.0", + "phpbench/phpbench": "^1.2", "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^0.12", - "phpstan/phpstan-deprecation-rules": "^0.12", - "phpstan/phpstan-phpunit": "^0.12", - "phpstan/phpstan-strict-rules": "^0.12", + "phpstan/phpstan": "^1.4", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-phpunit": "^1.0", + "phpstan/phpstan-strict-rules": "^1.0", "phpunit/php-invoker": "^3.1", "phpunit/phpunit": "^9.5" }, @@ -2480,7 +2480,7 @@ ], "support": { "issues": "https://github.com/lcobucci/jwt/issues", - "source": "https://github.com/lcobucci/jwt/tree/4.1.5" + "source": "https://github.com/lcobucci/jwt/tree/4.2.1" }, "funding": [ { @@ -2492,7 +2492,7 @@ "type": "patreon" } ], - "time": "2021-09-28T19:34:56+00:00" + "time": "2022-08-19T23:14:07+00:00" }, { "name": "league/commonmark", @@ -5569,16 +5569,16 @@ }, { "name": "stella-maris/clock", - "version": "0.1.4", + "version": "0.1.5", "source": { "type": "git", - "url": "https://gitlab.com/stella-maris/clock.git", - "reference": "8a0a967896df4c63417385dc69328a0aec84d9cf" + "url": "git@gitlab.com:stella-maris/clock.git", + "reference": "447879c53ca0b2a762cdbfba5e76ccf4deca9158" }, "dist": { "type": "zip", - "url": "https://gitlab.com/api/v4/projects/stella-maris%2Fclock/repository/archive.zip?sha=8a0a967896df4c63417385dc69328a0aec84d9cf", - "reference": "8a0a967896df4c63417385dc69328a0aec84d9cf", + "url": "https://gitlab.com/api/v4/projects/stella-maris%2Fclock/repository/archive.zip?sha=447879c53ca0b2a762cdbfba5e76ccf4deca9158", + "reference": "447879c53ca0b2a762cdbfba5e76ccf4deca9158", "shasum": "" }, "require": { @@ -5608,11 +5608,7 @@ "point in time", "psr20" ], - "support": { - "issues": "https://gitlab.com/stella-maris/clock/-/issues", - "source": "https://gitlab.com/stella-maris/clock/-/tree/0.1.4" - }, - "time": "2022-04-17T14:12:26+00:00" + "time": "2022-08-05T07:21:25+00:00" }, { "name": "symfony/console", From 194ecc7ac7f6d858c210bec84c69e2b44a42a252 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 29 Aug 2022 03:53:42 +0000 Subject: [PATCH 07/15] Bump symfony/http-client from 6.0.11 to 6.0.12 Bumps [symfony/http-client](https://github.com/symfony/http-client) from 6.0.11 to 6.0.12. - [Release notes](https://github.com/symfony/http-client/releases) - [Changelog](https://github.com/symfony/http-client/blob/6.1/CHANGELOG.md) - [Commits](https://github.com/symfony/http-client/compare/v6.0.11...v6.0.12) --- updated-dependencies: - dependency-name: symfony/http-client dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- composer.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/composer.lock b/composer.lock index 57e52b197e..b72e3085c4 100644 --- a/composer.lock +++ b/composer.lock @@ -6137,16 +6137,16 @@ }, { "name": "symfony/http-client", - "version": "v6.0.11", + "version": "v6.0.12", "source": { "type": "git", "url": "https://github.com/symfony/http-client.git", - "reference": "49bef7df70f84a4f5d516eb268963779ca80320d" + "reference": "411f73ad1a797f327d100d27fa5d715b947a8272" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/49bef7df70f84a4f5d516eb268963779ca80320d", - "reference": "49bef7df70f84a4f5d516eb268963779ca80320d", + "url": "https://api.github.com/repos/symfony/http-client/zipball/411f73ad1a797f327d100d27fa5d715b947a8272", + "reference": "411f73ad1a797f327d100d27fa5d715b947a8272", "shasum": "" }, "require": { @@ -6201,7 +6201,7 @@ "description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-client/tree/v6.0.11" + "source": "https://github.com/symfony/http-client/tree/v6.0.12" }, "funding": [ { @@ -6217,7 +6217,7 @@ "type": "tidelift" } ], - "time": "2022-07-28T13:39:17+00:00" + "time": "2022-08-02T16:01:06+00:00" }, { "name": "symfony/http-client-contracts", From 77358301e83485ce157cdfa31d45e6042ae92234 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 29 Aug 2022 03:55:01 +0000 Subject: [PATCH 08/15] Bump guzzlehttp/guzzle from 7.4.5 to 7.5.0 Bumps [guzzlehttp/guzzle](https://github.com/guzzle/guzzle) from 7.4.5 to 7.5.0. - [Release notes](https://github.com/guzzle/guzzle/releases) - [Changelog](https://github.com/guzzle/guzzle/blob/master/CHANGELOG.md) - [Commits](https://github.com/guzzle/guzzle/compare/7.4.5...7.5.0) --- updated-dependencies: - dependency-name: guzzlehttp/guzzle dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 56 +++++++++++++++++++++++++++++---------------------- 2 files changed, 33 insertions(+), 25 deletions(-) diff --git a/composer.json b/composer.json index 54aa7b526c..0166346ed5 100644 --- a/composer.json +++ b/composer.json @@ -85,7 +85,7 @@ "diglactic/laravel-breadcrumbs": "^8.0", "doctrine/dbal": "3.*", "gdbots/query-parser": "^2.0", - "guzzlehttp/guzzle": "^7.4", + "guzzlehttp/guzzle": "^7.5", "jc5/google2fa-laravel": "^2.0", "jc5/recovery": "^2", "laravel/framework": "^9", diff --git a/composer.lock b/composer.lock index a75302e51f..b8c362f860 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": "22c85dc6880ba24f9a770b29e6ba9cab", + "content-hash": "9f9d24b848eb536353b6ffd489b6411d", "packages": [ { "name": "bacon/bacon-qr-code", @@ -1369,16 +1369,16 @@ }, { "name": "guzzlehttp/guzzle", - "version": "7.4.5", + "version": "7.5.0", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "1dd98b0564cb3f6bd16ce683cb755f94c10fbd82" + "reference": "b50a2a1251152e43f6a37f0fa053e730a67d25ba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/1dd98b0564cb3f6bd16ce683cb755f94c10fbd82", - "reference": "1dd98b0564cb3f6bd16ce683cb755f94c10fbd82", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/b50a2a1251152e43f6a37f0fa053e730a67d25ba", + "reference": "b50a2a1251152e43f6a37f0fa053e730a67d25ba", "shasum": "" }, "require": { @@ -1393,10 +1393,10 @@ "psr/http-client-implementation": "1.0" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.4.1", + "bamarni/composer-bin-plugin": "^1.8.1", "ext-curl": "*", "php-http/client-integration-tests": "^3.0", - "phpunit/phpunit": "^8.5.5 || ^9.3.5", + "phpunit/phpunit": "^8.5.29 || ^9.5.23", "psr/log": "^1.1 || ^2.0 || ^3.0" }, "suggest": { @@ -1406,8 +1406,12 @@ }, "type": "library", "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + }, "branch-alias": { - "dev-master": "7.4-dev" + "dev-master": "7.5-dev" } }, "autoload": { @@ -1473,7 +1477,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.4.5" + "source": "https://github.com/guzzle/guzzle/tree/7.5.0" }, "funding": [ { @@ -1489,20 +1493,20 @@ "type": "tidelift" } ], - "time": "2022-06-20T22:16:13+00:00" + "time": "2022-08-28T15:39:27+00:00" }, { "name": "guzzlehttp/promises", - "version": "1.5.1", + "version": "1.5.2", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da" + "reference": "b94b2807d85443f9719887892882d0329d1e2598" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/fe752aedc9fd8fcca3fe7ad05d419d32998a06da", - "reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da", + "url": "https://api.github.com/repos/guzzle/promises/zipball/b94b2807d85443f9719887892882d0329d1e2598", + "reference": "b94b2807d85443f9719887892882d0329d1e2598", "shasum": "" }, "require": { @@ -1557,7 +1561,7 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/1.5.1" + "source": "https://github.com/guzzle/promises/tree/1.5.2" }, "funding": [ { @@ -1573,20 +1577,20 @@ "type": "tidelift" } ], - "time": "2021-10-22T20:56:57+00:00" + "time": "2022-08-28T14:55:35+00:00" }, { "name": "guzzlehttp/psr7", - "version": "2.4.0", + "version": "2.4.1", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "13388f00956b1503577598873fffb5ae994b5737" + "reference": "69568e4293f4fa993f3b0e51c9723e1e17c41379" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/13388f00956b1503577598873fffb5ae994b5737", - "reference": "13388f00956b1503577598873fffb5ae994b5737", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/69568e4293f4fa993f3b0e51c9723e1e17c41379", + "reference": "69568e4293f4fa993f3b0e51c9723e1e17c41379", "shasum": "" }, "require": { @@ -1600,15 +1604,19 @@ "psr/http-message-implementation": "1.0" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.4.1", + "bamarni/composer-bin-plugin": "^1.8.1", "http-interop/http-factory-tests": "^0.9", - "phpunit/phpunit": "^8.5.8 || ^9.3.10" + "phpunit/phpunit": "^8.5.29 || ^9.5.23" }, "suggest": { "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" }, "type": "library", "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + }, "branch-alias": { "dev-master": "2.4-dev" } @@ -1672,7 +1680,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.4.0" + "source": "https://github.com/guzzle/psr7/tree/2.4.1" }, "funding": [ { @@ -1688,7 +1696,7 @@ "type": "tidelift" } ], - "time": "2022-06-20T21:43:11+00:00" + "time": "2022-08-28T14:45:39+00:00" }, { "name": "jc5/google2fa-laravel", From 8659c7efbd7f66d290e62cca08c0ae5c106a8154 Mon Sep 17 00:00:00 2001 From: James Cole Date: Sun, 4 Sep 2022 13:31:46 +0200 Subject: [PATCH 09/15] Skip error --- app/Exceptions/Handler.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php index 93c62e362e..79d6c52b29 100644 --- a/app/Exceptions/Handler.php +++ b/app/Exceptions/Handler.php @@ -39,6 +39,7 @@ use Illuminate\Support\Arr; use Illuminate\Validation\ValidationException as LaravelValidationException; use Laravel\Passport\Exceptions\OAuthServerException as LaravelOAuthException; use League\OAuth2\Server\Exception\OAuthServerException; +use Symfony\Component\HttpFoundation\Exception\SuspiciousOperationException; use Symfony\Component\HttpKernel\Exception\HttpException; use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; use Throwable; @@ -62,6 +63,7 @@ class Handler extends ExceptionHandler LaravelOAuthException::class, TokenMismatchException::class, HttpException::class, + SuspiciousOperationException::class ]; /** From 06b7f18d552bdbdbc13929aa51c624ad3fdece3d Mon Sep 17 00:00:00 2001 From: James Cole Date: Sun, 4 Sep 2022 13:32:59 +0200 Subject: [PATCH 10/15] Make 2FA code + validation more robust. Thanks to @jtmoss3991, @timaschew and @Ottega. --- app/Http/Controllers/DebugController.php | 2 +- app/Http/Controllers/ProfileController.php | 49 +++++++++++-------- app/Providers/AuthServiceProvider.php | 1 - .../Authentication/RemoteUserProvider.php | 2 - app/Validation/FireflyValidator.php | 10 +++- 5 files changed, 37 insertions(+), 27 deletions(-) diff --git a/app/Http/Controllers/DebugController.php b/app/Http/Controllers/DebugController.php index c96cad13f6..451f92d9d7 100644 --- a/app/Http/Controllers/DebugController.php +++ b/app/Http/Controllers/DebugController.php @@ -88,7 +88,7 @@ class DebugController extends Controller public function flush(Request $request) { app('preferences')->mark(); - $request->session()->forget(['start', 'end', '_previous', 'viewRange', 'range', 'is_custom_range']); + $request->session()->forget(['start', 'end', '_previous', 'viewRange', 'range', 'is_custom_range','temp-mfa-secret','temp-mfa-codes']); Log::debug('Call cache:clear...'); Artisan::call('cache:clear'); Log::debug('Call config:clear...'); diff --git a/app/Http/Controllers/ProfileController.php b/app/Http/Controllers/ProfileController.php index 5ad9dc473e..59f75258d1 100644 --- a/app/Http/Controllers/ProfileController.php +++ b/app/Http/Controllers/ProfileController.php @@ -34,6 +34,7 @@ use FireflyIII\Http\Requests\ProfileFormRequest; use FireflyIII\Http\Requests\TokenFormRequest; use FireflyIII\Models\Preference; use FireflyIII\Repositories\User\UserRepositoryInterface; +use FireflyIII\Support\Facades\Preferences; use FireflyIII\Support\Http\Controllers\CreateStuff; use FireflyIII\User; use Google2FA; @@ -157,37 +158,36 @@ class ProfileController extends Controller return redirect(route('profile.index')); } - $domain = $this->getDomain(); - $secret = null; + $domain = $this->getDomain(); + $secretPreference = Preferences::get('temp-mfa-secret'); + $codesPreference = Preferences::get('temp-mfa-codes'); // generate secret if not in session - if (!session()->has('temp-mfa-secret')) { + if (null === $secretPreference) { // generate secret + store + flash $secret = Google2FA::generateSecretKey(); - session()->put('temp-mfa-secret', $secret); - session()->flash('two-factor-secret', $secret); - } - // re-use secret if in session - if (session()->has('temp-mfa-secret')) { - // get secret from session and flash - $secret = session()->get('temp-mfa-secret'); - session()->flash('two-factor-secret', $secret); + Preferences::set('temp-mfa-secret', $secret); } - // generate codes if not in session: + // re-use secret if in session + if (null !== $secretPreference) { + // get secret from session and flash + $secret = $secretPreference->data; + } + + // generate recovery codes if not in session: $recoveryCodes = ''; - if (!session()->has('temp-mfa-codes')) { + + if (null === $codesPreference) { // generate codes + store + flash: $recovery = app(Recovery::class); $recoveryCodes = $recovery->lowercase()->setCount(8)->setBlocks(2)->setChars(6)->toArray(); - session()->put('temp-mfa-codes', $recoveryCodes); - session()->flash('two-factor-codes', $recoveryCodes); + Preferences::set('temp-mfa-codes', $recoveryCodes); } - // get codes from session if there already: - if (session()->has('temp-mfa-codes')) { - $recoveryCodes = session()->get('temp-mfa-codes'); - session()->flash('two-factor-codes', $recoveryCodes); + // get codes from session if present already: + if (null !== $codesPreference) { + $recoveryCodes = $codesPreference->data; } $codes = implode("\r\n", $recoveryCodes); @@ -275,7 +275,11 @@ class ProfileController extends Controller /** @var User $user */ $user = auth()->user(); + Preferences::delete('temp-mfa-secret'); + Preferences::delete('temp-mfa-codes'); $repository->setMFACode($user, null); + app('preferences')->mark(); + session()->flash('success', (string) trans('firefly.pref_two_factor_auth_disabled')); session()->flash('info', (string) trans('firefly.pref_two_factor_auth_remove_it')); @@ -498,10 +502,13 @@ class ProfileController extends Controller $user = auth()->user(); /** @var UserRepositoryInterface $repository */ $repository = app(UserRepositoryInterface::class); - /** @var string $secret */ - $secret = session()->get('two-factor-secret'); + $secret = (string) session()->get('temp-mfa-secret'); + $repository->setMFACode($user, $secret); + Preferences::delete('temp-mfa-secret'); + Preferences::delete('temp-mfa-codes'); + session()->flash('success', (string) trans('firefly.saved_preferences')); app('preferences')->mark(); diff --git a/app/Providers/AuthServiceProvider.php b/app/Providers/AuthServiceProvider.php index fcd48ce4c4..ebe20226df 100644 --- a/app/Providers/AuthServiceProvider.php +++ b/app/Providers/AuthServiceProvider.php @@ -64,7 +64,6 @@ class AuthServiceProvider extends ServiceProvider ); $this->registerPolicies(); - Passport::routes(); Passport::tokensExpireIn(now()->addDays(14)); } } diff --git a/app/Support/Authentication/RemoteUserProvider.php b/app/Support/Authentication/RemoteUserProvider.php index 2d309e018b..c67555b5a9 100644 --- a/app/Support/Authentication/RemoteUserProvider.php +++ b/app/Support/Authentication/RemoteUserProvider.php @@ -69,8 +69,6 @@ class RemoteUserProvider implements UserProvider $roleObject = Role::where('name', 'owner')->first(); $user->roles()->attach($roleObject); } - - } Log::debug(sprintf('Going to return user #%d (%s)', $user->id, $user->email)); diff --git a/app/Validation/FireflyValidator.php b/app/Validation/FireflyValidator.php index fa19a099db..a20ee3737f 100644 --- a/app/Validation/FireflyValidator.php +++ b/app/Validation/FireflyValidator.php @@ -35,6 +35,7 @@ use FireflyIII\Repositories\Bill\BillRepositoryInterface; use FireflyIII\Repositories\Budget\BudgetRepositoryInterface; use FireflyIII\Repositories\PiggyBank\PiggyBankRepositoryInterface; use FireflyIII\Services\Password\Verifier; +use FireflyIII\Support\Facades\Preferences; use FireflyIII\Support\ParseDateString; use FireflyIII\TransactionRules\Triggers\TriggerInterface; use FireflyIII\User; @@ -68,8 +69,13 @@ class FireflyValidator extends Validator if (null === $value || !is_string($value) || 6 !== strlen($value)) { return false; } - - $secret = session('two-factor-secret'); + $user = auth()->user(); + if (null === $user) { + Log::error('No user during validate2faCode'); + return false; + } + $secretPreference = Preferences::get('temp-mfa-secret'); + $secret = $secretPreference?->data ?? ''; return Google2FA::verifyKey($secret, $value); } From e420ead9e8aa360759b5b6c2d4a43304d596724d Mon Sep 17 00:00:00 2001 From: James Cole Date: Sun, 4 Sep 2022 13:53:24 +0200 Subject: [PATCH 11/15] Update translations. --- changelog.md | 19 + composer.lock | 312 ++++--------- config/firefly.php | 2 +- public/index.php | 16 +- resources/lang/de_DE/firefly.php | 20 +- resources/lang/es_ES/errors.php | 2 +- resources/lang/es_ES/firefly.php | 10 +- resources/lang/es_ES/form.php | 2 +- resources/lang/fr_FR/errors.php | 2 +- resources/lang/it_IT/config.php | 2 +- resources/lang/it_IT/email.php | 6 +- resources/lang/it_IT/errors.php | 2 +- resources/lang/it_IT/firefly.php | 34 +- resources/lang/pl_PL/config.php | 8 +- resources/lang/pt_BR/breadcrumbs.php | 2 +- resources/lang/pt_BR/config.php | 8 +- resources/lang/pt_BR/errors.php | 2 +- resources/lang/pt_BR/firefly.php | 652 +++++++++++++-------------- resources/lang/pt_BR/form.php | 6 +- resources/lang/pt_BR/list.php | 6 +- resources/lang/pt_BR/validation.php | 6 +- resources/lang/pt_PT/breadcrumbs.php | 4 +- resources/lang/pt_PT/config.php | 4 +- resources/lang/pt_PT/firefly.php | 14 +- resources/lang/pt_PT/list.php | 4 +- resources/lang/ru_RU/errors.php | 2 +- sonar-project.properties | 2 +- 27 files changed, 517 insertions(+), 632 deletions(-) diff --git a/changelog.md b/changelog.md index 17d93546cb..e77bd1b36b 100644 --- a/changelog.md +++ b/changelog.md @@ -2,6 +2,25 @@ All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/). +## 5.7.11 - 2022-09-05 + +### Added +- [Issue 6254](https://github.com/firefly-iii/firefly-iii/issues/6254) Use Piggy Bank's start date in monthly suggestion by @rickdoesdev +- Add best practices badge. +- Various sanity checks on large amounts. + +### Removed +- Service worker is removed. + +### Fixed +- [Issue 6260](https://github.com/firefly-iii/firefly-iii/issues/6260) +- [Issue 6271](https://github.com/firefly-iii/firefly-iii/issues/6271) Improve settings for Redis, by @canoine +- [Issue 6283](https://github.com/firefly-iii/firefly-iii/issues/6283) Convert to deposit means the transaction loses its bill. +- Fix issue with foreign currencies in transaction form. +- Fix various issues with SQLite. +- [Issue 6379](https://github.com/firefly-iii/firefly-iii/issues/6379) Some foreign currencies not list for setting on new transactions +- Make 2FA code + validation more robust. Thanks to @jtmoss3991, @timaschew and @Ottega. + ## 5.7.10 - 2022-07-16 ### Fixed diff --git a/composer.lock b/composer.lock index b8c362f860..177b273521 100644 --- a/composer.lock +++ b/composer.lock @@ -306,16 +306,16 @@ }, { "name": "diglactic/laravel-breadcrumbs", - "version": "v8.0.0", + "version": "v8.0.1", "source": { "type": "git", "url": "https://github.com/diglactic/laravel-breadcrumbs.git", - "reference": "2d213260343690df192fb042bab2ae585731b49a" + "reference": "b2c594e56fd15ef3112436e2067dca13131dd990" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/diglactic/laravel-breadcrumbs/zipball/2d213260343690df192fb042bab2ae585731b49a", - "reference": "2d213260343690df192fb042bab2ae585731b49a", + "url": "https://api.github.com/repos/diglactic/laravel-breadcrumbs/zipball/b2c594e56fd15ef3112436e2067dca13131dd990", + "reference": "b2c594e56fd15ef3112436e2067dca13131dd990", "shasum": "" }, "require": { @@ -371,9 +371,9 @@ ], "support": { "issues": "https://github.com/diglactic/laravel-breadcrumbs/issues", - "source": "https://github.com/diglactic/laravel-breadcrumbs/tree/v8.0.0" + "source": "https://github.com/diglactic/laravel-breadcrumbs/tree/v8.0.1" }, - "time": "2022-07-27T06:50:36+00:00" + "time": "2022-09-02T16:18:17+00:00" }, { "name": "doctrine/cache", @@ -470,16 +470,16 @@ }, { "name": "doctrine/dbal", - "version": "3.4.2", + "version": "3.4.3", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "22de295f10edbe00df74f517612f1fbd711131e2" + "reference": "a24b89d663d8f261199bc0a91c48016042ebda85" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/22de295f10edbe00df74f517612f1fbd711131e2", - "reference": "22de295f10edbe00df74f517612f1fbd711131e2", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/a24b89d663d8f261199bc0a91c48016042ebda85", + "reference": "a24b89d663d8f261199bc0a91c48016042ebda85", "shasum": "" }, "require": { @@ -492,8 +492,8 @@ "psr/log": "^1|^2|^3" }, "require-dev": { - "doctrine/coding-standard": "9.0.0", - "jetbrains/phpstorm-stubs": "2022.1", + "doctrine/coding-standard": "10.0.0", + "jetbrains/phpstorm-stubs": "2022.2", "phpstan/phpstan": "1.8.2", "phpstan/phpstan-strict-rules": "^1.3", "phpunit/phpunit": "9.5.21", @@ -561,7 +561,7 @@ ], "support": { "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/3.4.2" + "source": "https://github.com/doctrine/dbal/tree/3.4.3" }, "funding": [ { @@ -577,7 +577,7 @@ "type": "tidelift" } ], - "time": "2022-08-21T14:21:06+00:00" + "time": "2022-08-28T17:26:36+00:00" }, { "name": "doctrine/deprecations", @@ -1855,16 +1855,16 @@ }, { "name": "laravel/framework", - "version": "v9.26.1", + "version": "v9.27.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "1ccfb91afee7a351b09ba1f1b97739096a3ad1cf" + "reference": "27572f45120fd3977d92651a71d8c711a9aaa790" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/1ccfb91afee7a351b09ba1f1b97739096a3ad1cf", - "reference": "1ccfb91afee7a351b09ba1f1b97739096a3ad1cf", + "url": "https://api.github.com/repos/laravel/framework/zipball/27572f45120fd3977d92651a71d8c711a9aaa790", + "reference": "27572f45120fd3977d92651a71d8c711a9aaa790", "shasum": "" }, "require": { @@ -2031,20 +2031,20 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2022-08-23T19:00:07+00:00" + "time": "2022-08-30T13:34:43+00:00" }, { "name": "laravel/passport", - "version": "v11.0.0", + "version": "v11.0.1", "source": { "type": "git", "url": "https://github.com/laravel/passport.git", - "reference": "dd00df75cc10f14186f71edb39a8839627ef837e" + "reference": "e312f36e35e695877c4f4eee54c9cc1dcca20eef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/passport/zipball/dd00df75cc10f14186f71edb39a8839627ef837e", - "reference": "dd00df75cc10f14186f71edb39a8839627ef837e", + "url": "https://api.github.com/repos/laravel/passport/zipball/e312f36e35e695877c4f4eee54c9cc1dcca20eef", + "reference": "e312f36e35e695877c4f4eee54c9cc1dcca20eef", "shasum": "" }, "require": { @@ -2108,7 +2108,7 @@ "issues": "https://github.com/laravel/passport/issues", "source": "https://github.com/laravel/passport" }, - "time": "2022-08-19T15:05:01+00:00" + "time": "2022-08-29T13:56:25+00:00" }, { "name": "laravel/sanctum", @@ -2177,25 +2177,26 @@ }, { "name": "laravel/serializable-closure", - "version": "v1.2.0", + "version": "v1.2.1", "source": { "type": "git", "url": "https://github.com/laravel/serializable-closure.git", - "reference": "09f0e9fb61829f628205b7c94906c28740ff9540" + "reference": "d78fd36ba031a1a695ea5a406f29996948d7011b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/09f0e9fb61829f628205b7c94906c28740ff9540", - "reference": "09f0e9fb61829f628205b7c94906c28740ff9540", + "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/d78fd36ba031a1a695ea5a406f29996948d7011b", + "reference": "d78fd36ba031a1a695ea5a406f29996948d7011b", "shasum": "" }, "require": { "php": "^7.3|^8.0" }, "require-dev": { - "pestphp/pest": "^1.18", - "phpstan/phpstan": "^0.12.98", - "symfony/var-dumper": "^5.3" + "nesbot/carbon": "^2.61", + "pestphp/pest": "^1.21.3", + "phpstan/phpstan": "^1.8.2", + "symfony/var-dumper": "^5.4.11" }, "type": "library", "extra": { @@ -2232,7 +2233,7 @@ "issues": "https://github.com/laravel/serializable-closure/issues", "source": "https://github.com/laravel/serializable-closure" }, - "time": "2022-05-16T17:09:47+00:00" + "time": "2022-08-26T15:25:27+00:00" }, { "name": "laravel/ui", @@ -3406,16 +3407,16 @@ }, { "name": "nesbot/carbon", - "version": "2.62.0", + "version": "2.62.1", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "7507aec3d626797ce2123cf6c6556683be22b5f8" + "reference": "01bc4cdefe98ef58d1f9cb31bdbbddddf2a88f7a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/7507aec3d626797ce2123cf6c6556683be22b5f8", - "reference": "7507aec3d626797ce2123cf6c6556683be22b5f8", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/01bc4cdefe98ef58d1f9cb31bdbbddddf2a88f7a", + "reference": "01bc4cdefe98ef58d1f9cb31bdbbddddf2a88f7a", "shasum": "" }, "require": { @@ -3504,7 +3505,7 @@ "type": "tidelift" } ], - "time": "2022-08-28T19:48:05+00:00" + "time": "2022-09-02T07:48:13+00:00" }, { "name": "nette/schema", @@ -3655,32 +3656,32 @@ }, { "name": "nunomaduro/collision", - "version": "v6.2.1", + "version": "v6.3.0", "source": { "type": "git", "url": "https://github.com/nunomaduro/collision.git", - "reference": "5f058f7e39278b701e455b3c82ec5298cf001d89" + "reference": "17f600e2e8872856ff2846243efb74ad4b6da531" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/collision/zipball/5f058f7e39278b701e455b3c82ec5298cf001d89", - "reference": "5f058f7e39278b701e455b3c82ec5298cf001d89", + "url": "https://api.github.com/repos/nunomaduro/collision/zipball/17f600e2e8872856ff2846243efb74ad4b6da531", + "reference": "17f600e2e8872856ff2846243efb74ad4b6da531", "shasum": "" }, "require": { - "facade/ignition-contracts": "^1.0.2", "filp/whoops": "^2.14.5", "php": "^8.0.0", "symfony/console": "^6.0.2" }, "require-dev": { "brianium/paratest": "^6.4.1", - "laravel/framework": "^9.7", - "laravel/pint": "^0.2.1", - "nunomaduro/larastan": "^1.0.2", + "laravel/framework": "^9.26.1", + "laravel/pint": "^1.1.1", + "nunomaduro/larastan": "^1.0.3", "nunomaduro/mock-final-classes": "^1.1.0", - "orchestra/testbench": "^7.3.0", - "phpunit/phpunit": "^9.5.11" + "orchestra/testbench": "^7.7", + "phpunit/phpunit": "^9.5.23", + "spatie/ignition": "^1.4.1" }, "type": "library", "extra": { @@ -3739,7 +3740,7 @@ "type": "patreon" } ], - "time": "2022-06-27T16:11:16+00:00" + "time": "2022-08-29T09:11:20+00:00" }, { "name": "nunomaduro/termwind", @@ -4152,16 +4153,16 @@ }, { "name": "phpseclib/phpseclib", - "version": "3.0.14", + "version": "3.0.15", "source": { "type": "git", "url": "https://github.com/phpseclib/phpseclib.git", - "reference": "2f0b7af658cbea265cbb4a791d6c29a6613f98ef" + "reference": "c96e250238e88bf1040e9f7715efab1d6bc7f622" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/2f0b7af658cbea265cbb4a791d6c29a6613f98ef", - "reference": "2f0b7af658cbea265cbb4a791d6c29a6613f98ef", + "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/c96e250238e88bf1040e9f7715efab1d6bc7f622", + "reference": "c96e250238e88bf1040e9f7715efab1d6bc7f622", "shasum": "" }, "require": { @@ -4173,6 +4174,7 @@ "phpunit/phpunit": "*" }, "suggest": { + "ext-dom": "Install the DOM extension to load XML formatted public keys.", "ext-gmp": "Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.", "ext-libsodium": "SSH2/SFTP can make use of some algorithms provided by the libsodium-php extension.", "ext-mcrypt": "Install the Mcrypt extension in order to speed up a few other cryptographic operations.", @@ -4241,7 +4243,7 @@ ], "support": { "issues": "https://github.com/phpseclib/phpseclib/issues", - "source": "https://github.com/phpseclib/phpseclib/tree/3.0.14" + "source": "https://github.com/phpseclib/phpseclib/tree/3.0.15" }, "funding": [ { @@ -4257,7 +4259,7 @@ "type": "tidelift" } ], - "time": "2022-04-04T05:15:45+00:00" + "time": "2022-09-02T17:05:08+00:00" }, { "name": "pragmarx/google2fa", @@ -5487,16 +5489,16 @@ }, { "name": "spatie/laravel-ignition", - "version": "1.4.0", + "version": "1.4.1", "source": { "type": "git", "url": "https://github.com/spatie/laravel-ignition.git", - "reference": "71c627a0838f107562e89bc2b0201a81f26e9011" + "reference": "29deea5d9cf921590184be6956e657c4f4566440" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/71c627a0838f107562e89bc2b0201a81f26e9011", - "reference": "71c627a0838f107562e89bc2b0201a81f26e9011", + "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/29deea5d9cf921590184be6956e657c4f4566440", + "reference": "29deea5d9cf921590184be6956e657c4f4566440", "shasum": "" }, "require": { @@ -5573,7 +5575,7 @@ "type": "github" } ], - "time": "2022-08-26T13:28:24+00:00" + "time": "2022-09-01T11:31:14+00:00" }, { "name": "stella-maris/clock", @@ -8080,16 +8082,16 @@ }, { "name": "twig/twig", - "version": "v3.4.1", + "version": "v3.4.2", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "e939eae92386b69b49cfa4599dd9bead6bf4a342" + "reference": "e07cdd3d430cd7e453c31b36eb5ad6c0c5e43077" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/e939eae92386b69b49cfa4599dd9bead6bf4a342", - "reference": "e939eae92386b69b49cfa4599dd9bead6bf4a342", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/e07cdd3d430cd7e453c31b36eb5ad6c0c5e43077", + "reference": "e07cdd3d430cd7e453c31b36eb5ad6c0c5e43077", "shasum": "" }, "require": { @@ -8140,7 +8142,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.4.1" + "source": "https://github.com/twigphp/Twig/tree/v3.4.2" }, "funding": [ { @@ -8152,7 +8154,7 @@ "type": "tidelift" } ], - "time": "2022-05-17T05:48:52+00:00" + "time": "2022-08-12T06:47:24+00:00" }, { "name": "vlucas/phpdotenv", @@ -8906,16 +8908,16 @@ }, { "name": "nikic/php-parser", - "version": "v4.14.0", + "version": "v4.15.1", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "34bea19b6e03d8153165d8f30bba4c3be86184c1" + "reference": "0ef6c55a3f47f89d7a374e6f835197a0b5fcf900" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/34bea19b6e03d8153165d8f30bba4c3be86184c1", - "reference": "34bea19b6e03d8153165d8f30bba4c3be86184c1", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/0ef6c55a3f47f89d7a374e6f835197a0b5fcf900", + "reference": "0ef6c55a3f47f89d7a374e6f835197a0b5fcf900", "shasum": "" }, "require": { @@ -8956,9 +8958,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.14.0" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.1" }, - "time": "2022-05-31T20:59:12+00:00" + "time": "2022-09-04T07:30:47+00:00" }, { "name": "phar-io/manifest", @@ -9124,63 +9126,6 @@ }, "time": "2020-06-27T09:03:43+00:00" }, - { - "name": "phpdocumentor/reflection-docblock", - "version": "5.3.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "622548b623e81ca6d78b721c5e029f4ce664f170" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170", - "reference": "622548b623e81ca6d78b721c5e029f4ce664f170", - "shasum": "" - }, - "require": { - "ext-filter": "*", - "php": "^7.2 || ^8.0", - "phpdocumentor/reflection-common": "^2.2", - "phpdocumentor/type-resolver": "^1.3", - "webmozart/assert": "^1.9.1" - }, - "require-dev": { - "mockery/mockery": "~1.3.2", - "psalm/phar": "^4.8" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - }, - { - "name": "Jaap van Otterdijk", - "email": "account@ijaap.nl" - } - ], - "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "support": { - "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", - "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.3.0" - }, - "time": "2021-10-19T17:43:47+00:00" - }, { "name": "phpdocumentor/type-resolver", "version": "1.6.1", @@ -9231,85 +9176,18 @@ }, "time": "2022-03-15T21:29:03+00:00" }, - { - "name": "phpspec/prophecy", - "version": "v1.15.0", - "source": { - "type": "git", - "url": "https://github.com/phpspec/prophecy.git", - "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/bbcd7380b0ebf3961ee21409db7b38bc31d69a13", - "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.2", - "php": "^7.2 || ~8.0, <8.2", - "phpdocumentor/reflection-docblock": "^5.2", - "sebastian/comparator": "^3.0 || ^4.0", - "sebastian/recursion-context": "^3.0 || ^4.0" - }, - "require-dev": { - "phpspec/phpspec": "^6.0 || ^7.0", - "phpunit/phpunit": "^8.0 || ^9.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Prophecy\\": "src/Prophecy" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" - }, - { - "name": "Marcello Duarte", - "email": "marcello.duarte@gmail.com" - } - ], - "description": "Highly opinionated mocking framework for PHP 5.3+", - "homepage": "https://github.com/phpspec/prophecy", - "keywords": [ - "Double", - "Dummy", - "fake", - "mock", - "spy", - "stub" - ], - "support": { - "issues": "https://github.com/phpspec/prophecy/issues", - "source": "https://github.com/phpspec/prophecy/tree/v1.15.0" - }, - "time": "2021-12-08T12:19:24+00:00" - }, { "name": "phpunit/php-code-coverage", - "version": "9.2.16", + "version": "9.2.17", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "2593003befdcc10db5e213f9f28814f5aa8ac073" + "reference": "aa94dc41e8661fe90c7316849907cba3007b10d8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/2593003befdcc10db5e213f9f28814f5aa8ac073", - "reference": "2593003befdcc10db5e213f9f28814f5aa8ac073", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/aa94dc41e8661fe90c7316849907cba3007b10d8", + "reference": "aa94dc41e8661fe90c7316849907cba3007b10d8", "shasum": "" }, "require": { @@ -9365,7 +9243,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.16" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.17" }, "funding": [ { @@ -9373,7 +9251,7 @@ "type": "github" } ], - "time": "2022-08-20T05:26:47+00:00" + "time": "2022-08-30T12:24:04+00:00" }, { "name": "phpunit/php-file-iterator", @@ -9618,16 +9496,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.5.22", + "version": "9.5.24", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "e329ac6e8744f461518272612a479fde958752fe" + "reference": "d0aa6097bef9fd42458a9b3c49da32c6ce6129c5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/e329ac6e8744f461518272612a479fde958752fe", - "reference": "e329ac6e8744f461518272612a479fde958752fe", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/d0aa6097bef9fd42458a9b3c49da32c6ce6129c5", + "reference": "d0aa6097bef9fd42458a9b3c49da32c6ce6129c5", "shasum": "" }, "require": { @@ -9642,7 +9520,6 @@ "phar-io/manifest": "^2.0.3", "phar-io/version": "^3.0.2", "php": ">=7.3", - "phpspec/prophecy": "^1.12.1", "phpunit/php-code-coverage": "^9.2.13", "phpunit/php-file-iterator": "^3.0.5", "phpunit/php-invoker": "^3.1.1", @@ -9657,12 +9534,9 @@ "sebastian/global-state": "^5.0.1", "sebastian/object-enumerator": "^4.0.3", "sebastian/resource-operations": "^3.0.3", - "sebastian/type": "^3.0", + "sebastian/type": "^3.1", "sebastian/version": "^3.0.2" }, - "require-dev": { - "phpspec/prophecy-phpunit": "^2.0.1" - }, "suggest": { "ext-soap": "*", "ext-xdebug": "*" @@ -9704,7 +9578,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.22" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.24" }, "funding": [ { @@ -9716,7 +9590,7 @@ "type": "github" } ], - "time": "2022-08-20T08:25:46+00:00" + "time": "2022-08-30T07:42:16+00:00" }, { "name": "sebastian/cli-parser", @@ -10575,16 +10449,16 @@ }, { "name": "sebastian/type", - "version": "3.0.0", + "version": "3.1.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/type.git", - "reference": "b233b84bc4465aff7b57cf1c4bc75c86d00d6dad" + "reference": "fb44e1cc6e557418387ad815780360057e40753e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/b233b84bc4465aff7b57cf1c4bc75c86d00d6dad", - "reference": "b233b84bc4465aff7b57cf1c4bc75c86d00d6dad", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/fb44e1cc6e557418387ad815780360057e40753e", + "reference": "fb44e1cc6e557418387ad815780360057e40753e", "shasum": "" }, "require": { @@ -10596,7 +10470,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "3.1-dev" } }, "autoload": { @@ -10619,7 +10493,7 @@ "homepage": "https://github.com/sebastianbergmann/type", "support": { "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/3.0.0" + "source": "https://github.com/sebastianbergmann/type/tree/3.1.0" }, "funding": [ { @@ -10627,7 +10501,7 @@ "type": "github" } ], - "time": "2022-03-15T09:54:48+00:00" + "time": "2022-08-29T06:55:37+00:00" }, { "name": "sebastian/version", diff --git a/config/firefly.php b/config/firefly.php index a0bf116dd6..7e44461a16 100644 --- a/config/firefly.php +++ b/config/firefly.php @@ -101,7 +101,7 @@ return [ 'webhooks' => false, 'handle_debts' => true, ], - 'version' => '5.7.10', + 'version' => '5.7.11', 'api_version' => '1.5.6', 'db_version' => 18, diff --git a/public/index.php b/public/index.php index c95ad005e2..b664bbeb79 100644 --- a/public/index.php +++ b/public/index.php @@ -26,8 +26,6 @@ * @author Taylor Otwell */ -use Symfony\Component\HttpFoundation\Exception\SuspiciousOperationException; - define('LARAVEL_START', microtime(true)); /* @@ -72,16 +70,10 @@ $app = require_once __DIR__ . '/../bootstrap/app.php'; | */ -$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class); - -try { - $response = $kernel->handle( - $request = Illuminate\Http\Request::capture() - ); -} catch(SuspiciousOperationException $e) { - die('Cannot handle this situation.'); - -} +$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class); +$response = $kernel->handle( + $request = Illuminate\Http\Request::capture() +); $response->send(); $kernel->terminate($request, $response); diff --git a/resources/lang/de_DE/firefly.php b/resources/lang/de_DE/firefly.php index 169b09d9ca..41be8237dc 100644 --- a/resources/lang/de_DE/firefly.php +++ b/resources/lang/de_DE/firefly.php @@ -29,7 +29,7 @@ return [ 'edit' => 'Bearbeiten', 'delete' => 'Löschen', 'split' => 'Teilen', - 'single_split' => 'Teil', + 'single_split' => 'Teilen', 'clone' => 'Duplizieren', 'confirm_action' => 'Aktion bestätigen', 'last_seven_days' => 'Letzte sieben Tage', @@ -363,7 +363,7 @@ return [ 'search_modifier_account_ends' => 'Beide Konten enden mit ":value"', 'search_modifier_account_starts' => 'Beide Konten beginnen mit ":value"', 'search_modifier_account_nr_is' => 'Beide Kontonummern / IBANs sind ":value"', - 'search_modifier_account_nr_contains' => 'Beide Kontonummer / IBAN enthalten ":value"', + 'search_modifier_account_nr_contains' => 'Eine der Kontonummern / IBAN enthaltet ":value"', 'search_modifier_account_nr_ends' => 'Beide Kontonummern /IBANs enden mit ":value"', 'search_modifier_account_nr_starts' => 'Beide Kontonummer / IBAN beginnen mit ":value"', 'search_modifier_category_contains' => 'Kategorie beinhaltet ":value"', @@ -647,7 +647,7 @@ return [ 'rule_trigger_category_is' => 'Kategorie ist ":trigger_value"', 'rule_trigger_amount_less_choice' => 'Betrag ist geringer als..', 'rule_trigger_amount_less' => 'Betrag ist kleiner als :trigger_value', - 'rule_trigger_amount_is_choice' => 'Betrag lautet..', + 'rule_trigger_amount_is_choice' => 'Betrag ist..', 'rule_trigger_amount_is' => 'Betrag lautet :trigger_value', 'rule_trigger_amount_more_choice' => 'Betrag ist mehr als..', 'rule_trigger_amount_more' => 'Betrag ist größer als :trigger_value', @@ -790,12 +790,12 @@ return [ 'rule_trigger_interest_date_before' => 'Das Zinsdatum liegt vor dem „:trigger_value”', 'rule_trigger_interest_date_after_choice' => 'Zinstermin ist nach dem..', 'rule_trigger_interest_date_after' => 'Das Zinsdatum liegt nach dem „:trigger_value”', - 'rule_trigger_book_date_on_choice' => 'Buchungstermin ist am..', - 'rule_trigger_book_date_on' => 'Buchungstermin ist am ":trigger_value"', - 'rule_trigger_book_date_before_choice' => 'Buchungstermin ist vor dem..', - 'rule_trigger_book_date_before' => 'Buchungstermin ist vor dem ":trigger_value"', - 'rule_trigger_book_date_after_choice' => 'Buchungstermin ist nach dem..', - 'rule_trigger_book_date_after' => 'Buchungstermin ist nach dem ":trigger_value"', + 'rule_trigger_book_date_on_choice' => 'Buchungsdatum ist am..', + 'rule_trigger_book_date_on' => 'Buchungsdatum ist am ":trigger_value"', + 'rule_trigger_book_date_before_choice' => 'Buchungsdatum ist vor dem..', + 'rule_trigger_book_date_before' => 'Buchungsdatum ist vor dem ":trigger_value"', + 'rule_trigger_book_date_after_choice' => 'Buchungsdatum ist nach dem..', + 'rule_trigger_book_date_after' => 'Buchungsdatum ist nach dem ":trigger_value"', 'rule_trigger_process_date_on_choice' => 'Erfassungsdatum ist am..', 'rule_trigger_process_date_on' => 'Erfassungsdatum lautet ":trigger_value"', 'rule_trigger_process_date_before_choice' => 'Erfassungsdatum ist vor dem..', @@ -991,7 +991,7 @@ return [ 'optional_tj_other_fields' => 'Andere Felder', 'optional_tj_attachment_fields' => 'Anlage Felder', 'pref_optional_tj_interest_date' => 'Zinstermin', - 'pref_optional_tj_book_date' => 'Buchungstermin', + 'pref_optional_tj_book_date' => 'Buchungsdatum', 'pref_optional_tj_process_date' => 'Erfassungsdatum', 'pref_optional_tj_due_date' => 'Fälligkeitstermin', 'pref_optional_tj_payment_date' => 'Zahlungsdatum', diff --git a/resources/lang/es_ES/errors.php b/resources/lang/es_ES/errors.php index 34f3a80f16..140abc7cb1 100644 --- a/resources/lang/es_ES/errors.php +++ b/resources/lang/es_ES/errors.php @@ -33,7 +33,7 @@ return [ 'be_right_back' => '¡Enseguida vuelvo!', 'check_back' => 'Firefly III está apagado para el mantenimiento necesario. Por favor, vuelva en un segundo.', 'error_occurred' => '¡Uy! un error ha ocurrido.', - 'db_error_occurred' => 'Whoops! A database error occurred.', + 'db_error_occurred' => '¡Ups! Se ha producido un error en la base de datos.', 'error_not_recoverable' => 'Desafortunadamente, este error no se pudo recuperar :(. Firefly III se rompió. El error es:', 'error' => 'Error', 'error_location' => 'Este error ocurrió en el archivo ":file" en línea :line con código :code.', diff --git a/resources/lang/es_ES/firefly.php b/resources/lang/es_ES/firefly.php index 445321d971..b2248f6005 100644 --- a/resources/lang/es_ES/firefly.php +++ b/resources/lang/es_ES/firefly.php @@ -986,7 +986,7 @@ return [ 'list_page_size_label' => 'Tamaño de pagina', 'between_dates' => '(:start y :end)', 'pref_optional_fields_transaction' => 'Campos opcionales para transacciones', - 'pref_optional_fields_transaction_help' => 'Por defecto no todos los campos se habilitan al crear una nueva transacción (debido al desorden). abajo usted puede habilitar estos campos si usted piensa que pueden ser útiles. por supuesto, cualquier campo que este desactivado, pero ya completado, sera visible a pesar de la configuración.', + 'pref_optional_fields_transaction_help' => 'Por defecto no todos los campos se habilitan al crear una nueva transacción (debido al desorden). Aquí puedes habilitar estos campos si crees que pueden ser útiles. Aunque los campos estén desactivados, si los has rellenado serán visibles.', 'optional_tj_date_fields' => 'Campos de fecha', 'optional_tj_other_fields' => 'Otros campos', 'optional_tj_attachment_fields' => 'Campos de datos adjuntos', @@ -1597,10 +1597,10 @@ return [ 'submission' => 'Envío', 'submit_yes_really' => 'Enviar (Se lo que estoy haciendo)', 'getting_started' => 'Comenzando', - 'to_get_started' => 'Es bueno ver que usted ha instalado con éxito Firefly III. Para comenzar con esta regla, por favor ingrese el nombre de su banco y el saldo de su cuenta de cheques principal. No se preocupe todavía si tiene varias cuentas. usted puede agregarlas luego. Es solo que Firefly III necesita algo para empezar.', + 'to_get_started' => 'Felicidades, has instalado con éxito Firefly III. Para empezar en esta herramienta, por favor escribe el nombre de tu banco y el saldo de su cuenta principal. Si tienes más de una cuenta, podrás agregarla más tarde. Firefly III necesita algo por lo que empezar.', 'savings_balance_text' => 'Firefly III creará automáticamente una cuenta de ahorros. Por defecto, no habrá dinero en su cuenta de ahorros, pero si le dice a Firefly III el saldo se almacenará como tal.', - 'finish_up_new_user' => '¡Eso es! Puedes continuar presionando Enviar. Será llevado al inicio de Firefly III.', - 'stored_new_accounts_new_user' => 'Hurra! Sus nuevas cuentas han sido almacenadas.', + 'finish_up_new_user' => '¡Todo listo! Puedes continuar pulsando Enviar. Serás redirigido al inicio de Firefly III.', + 'stored_new_accounts_new_user' => '¡Bien! Tus nuevas cuentas han sido almacenadas.', 'set_preferred_language' => 'Si prefiere usar Firefly III en otro lenguaje, por favor indíquelo aquí.', 'language' => 'Idioma', 'new_savings_account' => ':bank_name Cuenta de ahorros', @@ -1910,7 +1910,7 @@ return [ 'instance_configuration' => 'Configuracion', 'firefly_instance_configuration' => 'Opciones de configuración de Firefly III', 'setting_single_user_mode' => 'Modo de usuario único', - 'setting_single_user_mode_explain' => 'Por defecto, Firefly III solo acepta un (1) registro: Usted. Esta es una medida de seguridad que impide que otros utilicen su instancia a menos que usted lo permita. Los registros futuros están bloqueados. Cuando usted desbloquee esta casilla, otros pueden usar su instancia también, suponiendo que puedan alcanzarla ( cuando este conectada a Internet).', + 'setting_single_user_mode_explain' => 'Por defecto, Firefly III solo acepta un único usuario: tú. Esto es una medida de seguridad para impedir que otros utilicen su instancia a menos que lo permitas. Si desmarcas esta casilla, otros podrán registrarse en esta instancia si tienen acceso a ella.', 'store_configuration' => 'Guardar configuración', 'single_user_administration' => 'Administración de usuarios para :email', 'edit_user' => 'Editar usuario :email', diff --git a/resources/lang/es_ES/form.php b/resources/lang/es_ES/form.php index 75d4cc4310..c3bf030d7e 100644 --- a/resources/lang/es_ES/form.php +++ b/resources/lang/es_ES/form.php @@ -181,7 +181,7 @@ return [ 'login_name' => 'Iniciar sesión', 'is_owner' => '¿Es el administrador?', 'url' => 'URL', - 'bill_end_date' => 'End date', + 'bill_end_date' => 'Fecha final', // import 'apply_rules' => 'Aplicar reglas', diff --git a/resources/lang/fr_FR/errors.php b/resources/lang/fr_FR/errors.php index 7da4b907e5..a6d3702cac 100644 --- a/resources/lang/fr_FR/errors.php +++ b/resources/lang/fr_FR/errors.php @@ -33,7 +33,7 @@ return [ 'be_right_back' => 'Je reviens tout de suite !', 'check_back' => 'Firefly III est fermé pour cause de maintenace. Veuillez revenir dans une seconde.', 'error_occurred' => 'Oups ! Une erreur est survenue.', - 'db_error_occurred' => 'Whoops! A database error occurred.', + 'db_error_occurred' => 'Oups! Une erreur de base de données s\'est produite.', 'error_not_recoverable' => 'Malheureusement, cette erreur n\'a pas pu être récupérée :(. Firefly III s\'est cassé. L\'erreur est :', 'error' => 'Erreur', 'error_location' => 'Cette erreur est survenue dans le fichier ":file" à la ligne :line avec le code :code.', diff --git a/resources/lang/it_IT/config.php b/resources/lang/it_IT/config.php index a1fe53d8d3..bf7be3a477 100644 --- a/resources/lang/it_IT/config.php +++ b/resources/lang/it_IT/config.php @@ -53,7 +53,7 @@ return [ 'year_js' => 'YYYY', //'half_year' => '%B %Y', - 'half_year_js' => '\QQ YYYY', + 'half_year_js' => '\TQ YYYY', 'quarter_fns' => "'T'Q yyyy", 'half_year_fns' => "'S{half}' yyyy", diff --git a/resources/lang/it_IT/email.php b/resources/lang/it_IT/email.php index 49dd79af45..675821e09b 100644 --- a/resources/lang/it_IT/email.php +++ b/resources/lang/it_IT/email.php @@ -52,8 +52,8 @@ return [ 'registered_welcome' => 'Benvenuto in [Firefly III](:address). La tua registrazione è stata completata, e questa è una email di conferma. Olè!', 'registered_pw' => 'Se hai dimenticato la tua password, reimpostala usando [lo strumento di reimpostazione della password](:address/password/reset).', 'registered_help' => 'C\'è un\'icona di aiuto nell\'angolo in alto a destra di ogni pagina. Se hai bisogno di aiuto, clicca su di essa!', - 'registered_doc_html' => 'If you haven\'t already, please read the [grand theory](https://docs.firefly-iii.org/about-firefly-iii/personal-finances).', - 'registered_doc_text' => 'If you haven\'t already, please also read the first use guide and the full description.', + 'registered_doc_html' => 'Se non lo hai già fatto, sei pregato di leggere la [grande teoria](https://docs.firefly-iii.org/about-firefly-iii/personal-finances).', + 'registered_doc_text' => 'Se non lo hai già fatto, sei anche pregato di leggere la prima guida all\'uso e la descrizione completa.', 'registered_closing' => 'Divertiti!', 'registered_firefly_iii_link' => 'Firefly III:', 'registered_pw_reset_link' => 'Reimposta la password:', @@ -62,7 +62,7 @@ return [ // email change 'email_change_subject' => 'Il tuo indirizzo email Firefly III è cambiato', 'email_change_body_to_new' => 'Tu o qualcuno che ha accesso al tuo account Firefly III ha cambiato il tuo indirizzo email. Se non ti aspettavi questo messaggio, ignoralo ed eliminalo.', - 'email_change_body_to_old' => 'You or somebody with access to your Firefly III account has changed your email address. If you did not expect this to happen, you **must** follow the "undo"-link below to protect your account!', + 'email_change_body_to_old' => 'Tu o qualcuno avente accesso al tuo profilo di Firefly III ha cambiato il tuo indirizzo email. Se non ti aspettavi che succedesse, **devi** seguire il link "annulla" di seguito per proteggere il tuo profilo!', 'email_change_ignore' => 'Se hai effettuato tu questa modifica, puoi ignorare questo messaggio.', 'email_change_old' => 'Il vecchio indirizzo email era: :email', 'email_change_old_strong' => 'Il vecchio indirizzo email era: **:email**', diff --git a/resources/lang/it_IT/errors.php b/resources/lang/it_IT/errors.php index fd4f4688b6..ddcd1fc067 100644 --- a/resources/lang/it_IT/errors.php +++ b/resources/lang/it_IT/errors.php @@ -33,7 +33,7 @@ return [ 'be_right_back' => 'Torno subito!', 'check_back' => 'Firefly III non è in funzione per una manutenzione necessaria. Ricontrolla tra qualche secondo.', 'error_occurred' => 'Ops! Si è verificato un errore.', - 'db_error_occurred' => 'Whoops! A database error occurred.', + 'db_error_occurred' => 'Oops! Si è verificato un errore del database.', 'error_not_recoverable' => 'Sfortunatamente questo errore non è riparabile :(. Firefly III è rotto. L\'errore è:', 'error' => 'Errore', 'error_location' => 'Questo errore si è verificato nel file :file alla riga :line con codice :code.', diff --git a/resources/lang/it_IT/firefly.php b/resources/lang/it_IT/firefly.php index 74f03cae09..be32ed79a5 100644 --- a/resources/lang/it_IT/firefly.php +++ b/resources/lang/it_IT/firefly.php @@ -346,7 +346,7 @@ return [ 'search_modifier_tag_is' => 'L\'etichetta è ":value"', 'search_modifier_date_on_year' => 'La transazione è dell\'anno ":value"', 'search_modifier_date_on_month' => 'La transazione è del mese di ":value"', - 'search_modifier_date_on_day' => 'Transaction is on day of month ":value"', + 'search_modifier_date_on_day' => 'La transazione è il giorno del mese ":value"', 'search_modifier_date_before_year' => 'La transazione è precedente all\'anno o dell\'anno ":value"', 'search_modifier_date_before_month' => 'La transazione è precedente o è del mese di ":value"', 'search_modifier_date_before_day' => 'La transazione è precedente o è del giorno ":value"', @@ -356,19 +356,19 @@ return [ // new - 'search_modifier_tag_is_not' => 'No tag is ":value"', + 'search_modifier_tag_is_not' => 'Nessun tag è ":value"', - 'search_modifier_account_is' => 'Either account is ":value"', - 'search_modifier_account_contains' => 'Either account contains ":value"', - 'search_modifier_account_ends' => 'Either account ends with ":value"', - 'search_modifier_account_starts' => 'Either account starts with ":value"', - 'search_modifier_account_nr_is' => 'Either account number / IBAN is ":value"', - 'search_modifier_account_nr_contains' => 'Either account number / IBAN contains ":value"', - 'search_modifier_account_nr_ends' => 'Either account number / IBAN ends with ":value"', - 'search_modifier_account_nr_starts' => 'Either account number / IBAN starts with ":value"', - 'search_modifier_category_contains' => 'Category contains ":value"', - 'search_modifier_category_ends' => 'Category ends with ":value"', - 'search_modifier_category_starts' => 'Category starts with ":value"', + 'search_modifier_account_is' => 'Entrambi i profili sono ":value"', + 'search_modifier_account_contains' => 'Entrambi i profili contengono ":value"', + 'search_modifier_account_ends' => 'Entrambi i profili terminano per ":value"', + 'search_modifier_account_starts' => 'Entrambi i profili iniziano per ":value"', + 'search_modifier_account_nr_is' => 'Entrambi i numeri di conto / IBAN sono ":value"', + 'search_modifier_account_nr_contains' => 'Entrambi i numeri di conto / IBAN contengono ":value"', + 'search_modifier_account_nr_ends' => 'Entrambi i numeri di conto / IBAN terminano per ":value"', + 'search_modifier_account_nr_starts' => 'Entrambi i numeri di conto / IBAN iniziano per ":value"', + 'search_modifier_category_contains' => 'La categoria contiene ":value"', + 'search_modifier_category_ends' => 'La categoria termina per ":value"', + 'search_modifier_category_starts' => 'La categoria inizia per ":value"', 'search_modifier_budget_contains' => 'Budget contains ":value"', 'search_modifier_budget_ends' => 'Budget ends with ":value"', 'search_modifier_budget_starts' => 'Budget starts with ":value"', @@ -780,10 +780,10 @@ return [ 'rule_trigger_external_url_ends' => 'External URL ends with ":trigger_value"', 'rule_trigger_external_url_starts_choice' => 'External URL starts with..', 'rule_trigger_external_url_starts' => 'External URL starts with ":trigger_value"', - 'rule_trigger_has_no_attachments_choice' => 'Has no attachments', - 'rule_trigger_has_no_attachments' => 'Transaction has no attachments', - 'rule_trigger_recurrence_id_choice' => 'Recurring transaction ID is..', - 'rule_trigger_recurrence_id' => 'Recurring transaction ID is ":trigger_value"', + 'rule_trigger_has_no_attachments_choice' => 'Non contiene allegati', + 'rule_trigger_has_no_attachments' => 'La transazione non contiene alcun allegato', + 'rule_trigger_recurrence_id_choice' => 'L\'ID della transazione ricorrente è..', + 'rule_trigger_recurrence_id' => 'L\'ID della transazione ricorrente è ":trigger_value"', 'rule_trigger_interest_date_on_choice' => 'Interest date is on..', 'rule_trigger_interest_date_on' => 'Interest date is on ":trigger_value"', 'rule_trigger_interest_date_before_choice' => 'Interest date is before..', diff --git a/resources/lang/pl_PL/config.php b/resources/lang/pl_PL/config.php index e9ae93a01b..2b41e53c57 100644 --- a/resources/lang/pl_PL/config.php +++ b/resources/lang/pl_PL/config.php @@ -47,16 +47,16 @@ return [ //'week_in_year' => 'Week %V, %G', 'week_in_year_js' => '[Tydzień] w. YYYY', - 'week_in_year_fns' => "w 'tydzień' yyyy", + 'week_in_year_fns' => "'tydzień' w, yyyy", //'year' => '%Y', 'year_js' => 'YYYY', //'half_year' => '%B %Y', - 'half_year_js' => '\QQ YYYY', + 'half_year_js' => '\k\w Q YYYY', - 'quarter_fns' => "Q 'kwartał' yyyy", - 'half_year_fns' => "'{half} połowa' yyyy", + 'quarter_fns' => "'kwartał' Q, yyyy", + 'half_year_fns' => "'{half} półrocze' yyyy", 'dow_1' => 'Poniedziałek', 'dow_2' => 'Wtorek', 'dow_3' => 'Środa', diff --git a/resources/lang/pt_BR/breadcrumbs.php b/resources/lang/pt_BR/breadcrumbs.php index f87f9bfd05..15897f0b49 100644 --- a/resources/lang/pt_BR/breadcrumbs.php +++ b/resources/lang/pt_BR/breadcrumbs.php @@ -66,7 +66,7 @@ return [ 'createTag' => 'Criar nova etiqueta', 'edit_tag' => 'Editar etiqueta ":tag"', 'delete_tag' => 'Apagar etiqueta ":tag"', - 'delete_journal_link' => 'Eliminar ligação entre transações', + 'delete_journal_link' => 'Excluir vínculo entre transações', 'edit_object_group' => 'Editar grupo ":title"', 'delete_object_group' => 'Excluir grupo ":title"', 'logout_others' => 'Sair de outras sessões', diff --git a/resources/lang/pt_BR/config.php b/resources/lang/pt_BR/config.php index ae9c4c7d7f..3257e75962 100644 --- a/resources/lang/pt_BR/config.php +++ b/resources/lang/pt_BR/config.php @@ -30,14 +30,14 @@ return [ //'month_and_day' => '%B %e, %Y', 'month_and_day_moment_js' => 'DD \de MMMM \de YYYY', - 'month_and_day_fns' => 'MMMM d, y', + 'month_and_day_fns' => 'd [de] MMMM [de] y', 'month_and_day_js' => 'MMMM Do, YYYY', //'month_and_date_day' => '%A %B %e, %Y', - 'month_and_date_day_js' => 'dddd MMMM Do, YYYY', + 'month_and_date_day_js' => 'dddd, D [de] MMMM [de] YYYY', //'month_and_day_no_year' => '%B %e', - 'month_and_day_no_year_js' => 'MMMM Do', + 'month_and_day_no_year_js' => 'D [de] MMMM', //'date_time' => '%B %e, %Y, @ %T', 'date_time_js' => 'MMMM Do, YYYY, @ HH:mm:ss', @@ -53,7 +53,7 @@ return [ 'year_js' => 'YYYY', //'half_year' => '%B %Y', - 'half_year_js' => '\QQ YYYY', + 'half_year_js' => '\TQ YYYY', 'quarter_fns' => "'T'Q, yyyy", 'half_year_fns' => "'S{half}', yyyy", diff --git a/resources/lang/pt_BR/errors.php b/resources/lang/pt_BR/errors.php index 74498ddd50..d8d42a0b6d 100644 --- a/resources/lang/pt_BR/errors.php +++ b/resources/lang/pt_BR/errors.php @@ -33,7 +33,7 @@ return [ 'be_right_back' => 'Volto já!', 'check_back' => 'Firefly III está fora do ar devido a manutenção necessária. Acesse novamente em alguns instantes.', 'error_occurred' => 'Ops! Aconteceu um erro.', - 'db_error_occurred' => 'Whoops! A database error occurred.', + 'db_error_occurred' => 'Ops! Ocorreu um erro no banco de dados.', 'error_not_recoverable' => 'Infelizmente este erro não é recuperável :(. Firefly III quebrou. O erro é:', 'error' => 'Erro', 'error_location' => 'Esse erro ocorreu no arquivo ":file", na linha :line com o código :code.', diff --git a/resources/lang/pt_BR/firefly.php b/resources/lang/pt_BR/firefly.php index 9d54b25580..2d2b322e6a 100644 --- a/resources/lang/pt_BR/firefly.php +++ b/resources/lang/pt_BR/firefly.php @@ -31,7 +31,7 @@ return [ 'split' => 'Dividir', 'single_split' => 'Divisão', 'clone' => 'Clonar', - 'confirm_action' => 'Confirm action', + 'confirm_action' => 'Confirmar ação', 'last_seven_days' => 'Últimos sete dias', 'last_thirty_days' => 'Últimos 30 dias', 'last_180_days' => 'Últimos 180 dias', @@ -167,7 +167,7 @@ return [ 'all_journals_for_account' => 'Todas as transações para conta :name', 'chart_all_journals_for_account' => 'Gráfico de todas as transações para conta :name', 'journals_in_period_for_account' => 'Todas as transações para conta :name entre :start e :end', - 'journals_in_period_for_account_js' => 'All transactions for account {title} between {start} and {end}', + 'journals_in_period_for_account_js' => 'Todas as transações para conta {title} entre {start} e {end}', 'transferred' => 'Transferido', 'all_withdrawal' => 'Todas as despesas', 'all_transactions' => 'Todas as transações', @@ -286,14 +286,14 @@ return [ // old - 'search_modifier_date_on' => 'Transaction date is ":value"', + 'search_modifier_date_on' => 'A data da transação é ":value"', 'search_modifier_id' => 'O ID da transação é ":value"', 'search_modifier_date_before' => 'Data da transação é anterior ou em ":value"', 'search_modifier_date_after' => 'Data da transação é posterior ou em ":value"', - 'search_modifier_external_id_is' => 'External ID is ":value"', + 'search_modifier_external_id_is' => 'O ID externo é ":value"', 'search_modifier_no_external_url' => 'A transação não tem URL externa', 'search_modifier_any_external_url' => 'A transação deve ter uma URL externa (qualquer)', - 'search_modifier_internal_reference_is' => 'Internal reference is ":value"', + 'search_modifier_internal_reference_is' => 'A referência interna é ":value"', 'search_modifier_description_starts' => 'Descrição é ":value"', 'search_modifier_description_ends' => 'Descrição termina com ":value"', 'search_modifier_description_contains' => 'Descrição contém ":value"', @@ -309,13 +309,13 @@ return [ 'search_modifier_has_any_bill' => 'A transação deve ter uma conta (qualquer)', 'search_modifier_has_no_tag' => 'A transação não deve ter etiquetas', 'search_modifier_has_any_tag' => 'A transação deve ter uma tag (qualquer)', - 'search_modifier_notes_contains' => 'The transaction notes contain ":value"', - 'search_modifier_notes_starts' => 'The transaction notes start with ":value"', - 'search_modifier_notes_ends' => 'The transaction notes end with ":value"', - 'search_modifier_notes_is' => 'The transaction notes are exactly ":value"', + 'search_modifier_notes_contains' => 'As notas de transação contém ":value"', + 'search_modifier_notes_starts' => 'As notas de transação começam com ":value"', + 'search_modifier_notes_ends' => 'As notas de transação terminam com ":value"', + 'search_modifier_notes_is' => 'As notas de transação são iguais a ":value"', 'search_modifier_no_notes' => 'A transação não tem notas', 'search_modifier_any_notes' => 'A transação deve ter notas', - 'search_modifier_amount_is' => 'Amount is exactly :value', + 'search_modifier_amount_is' => 'Valor é exatamente :value', 'search_modifier_amount_less' => 'Valor é menor ou igual a :value', 'search_modifier_amount_more' => 'Valor é maior ou igual a :value', 'search_modifier_source_account_is' => 'O nome da conta de origem é igual a ":value"', @@ -344,161 +344,161 @@ return [ 'search_modifier_bill_is' => 'Conta é ":value"', 'search_modifier_transaction_type' => 'O tipo da transação é ":value"', 'search_modifier_tag_is' => 'A etiqueta é ":value"', - 'search_modifier_date_on_year' => 'Transaction is in year ":value"', - 'search_modifier_date_on_month' => 'Transaction is in month ":value"', - 'search_modifier_date_on_day' => 'Transaction is on day of month ":value"', - 'search_modifier_date_before_year' => 'Transaction is before or in year ":value"', - 'search_modifier_date_before_month' => 'Transaction is before or in month ":value"', + 'search_modifier_date_on_year' => 'Transação é no ano de ":value"', + 'search_modifier_date_on_month' => 'Transação é no mês de ":value"', + 'search_modifier_date_on_day' => 'Transação é no dia do mês de ":value"', + 'search_modifier_date_before_year' => 'Transação é antes ou no ano de ":value"', + 'search_modifier_date_before_month' => 'Transação é antes ou no mês de ":value"', 'search_modifier_date_before_day' => 'A transação é antes ou no dia do mês ":value"', - 'search_modifier_date_after_year' => 'Transaction is in or after year ":value"', - 'search_modifier_date_after_month' => 'Transaction is in or after month ":value"', - 'search_modifier_date_after_day' => 'Transaction is after or on day of month ":value"', + 'search_modifier_date_after_year' => 'Transação está no ano ou após ":value"', + 'search_modifier_date_after_month' => 'Transação está no mês ou após ":value"', + 'search_modifier_date_after_day' => 'Transação é depois ou no dia do mês de ":value"', // new - 'search_modifier_tag_is_not' => 'No tag is ":value"', + 'search_modifier_tag_is_not' => 'Nenhuma tag é ":value"', - 'search_modifier_account_is' => 'Either account is ":value"', - 'search_modifier_account_contains' => 'Either account contains ":value"', - 'search_modifier_account_ends' => 'Either account ends with ":value"', - 'search_modifier_account_starts' => 'Either account starts with ":value"', - 'search_modifier_account_nr_is' => 'Either account number / IBAN is ":value"', - 'search_modifier_account_nr_contains' => 'Either account number / IBAN contains ":value"', - 'search_modifier_account_nr_ends' => 'Either account number / IBAN ends with ":value"', - 'search_modifier_account_nr_starts' => 'Either account number / IBAN starts with ":value"', - 'search_modifier_category_contains' => 'Category contains ":value"', - 'search_modifier_category_ends' => 'Category ends with ":value"', - 'search_modifier_category_starts' => 'Category starts with ":value"', - 'search_modifier_budget_contains' => 'Budget contains ":value"', - 'search_modifier_budget_ends' => 'Budget ends with ":value"', - 'search_modifier_budget_starts' => 'Budget starts with ":value"', - 'search_modifier_bill_contains' => 'Bill contains ":value"', - 'search_modifier_bill_ends' => 'Bill ends with ":value"', - 'search_modifier_bill_starts' => 'Bill starts with ":value"', - 'search_modifier_external_id_contains' => 'External ID contains ":value"', - 'search_modifier_external_id_ends' => 'External ID ends with ":value"', - 'search_modifier_external_id_starts' => 'External ID starts with ":value"', - 'search_modifier_internal_reference_contains' => 'Internal reference contains ":value"', - 'search_modifier_internal_reference_ends' => 'Internal reference ends with ":value"', - 'search_modifier_internal_reference_starts' => 'Internal reference starts with ":value"', - 'search_modifier_external_url_is' => 'External URL is ":value"', - 'search_modifier_external_url_contains' => 'External URL contains ":value"', - 'search_modifier_external_url_ends' => 'External URL ends with ":value"', - 'search_modifier_external_url_starts' => 'External URL starts with ":value"', - 'search_modifier_has_no_attachments' => 'Transaction has no attachments', - 'search_modifier_account_is_cash' => 'Either account is a cash account.', - 'search_modifier_journal_id' => 'The journal ID is ":value"', - 'search_modifier_recurrence_id' => 'The recurring transaction ID is ":value"', - 'search_modifier_foreign_amount_is' => 'The foreign amount is ":value"', - 'search_modifier_foreign_amount_less' => 'The foreign amount is less than ":value"', - 'search_modifier_foreign_amount_more' => 'The foreign amount is more than ":value"', + 'search_modifier_account_is' => 'Ou a conta é ":value"', + 'search_modifier_account_contains' => 'Ou a conta contém ":value"', + 'search_modifier_account_ends' => 'Ou a conta termina com ":value"', + 'search_modifier_account_starts' => 'Ou a conta começa com ":value"', + 'search_modifier_account_nr_is' => 'Ou número da conta / IBAN é ":value"', + 'search_modifier_account_nr_contains' => 'Ou número da conta / IBAN contém ":value"', + 'search_modifier_account_nr_ends' => 'Ou número de conta / IBAN termina com ":value"', + 'search_modifier_account_nr_starts' => 'Ou número da conta / IBAN começa com ":value"', + 'search_modifier_category_contains' => 'Categoria contém ":value"', + 'search_modifier_category_ends' => 'Categoria termina com ":value"', + 'search_modifier_category_starts' => 'Categoria começa com ":value"', + 'search_modifier_budget_contains' => 'Orçamento contém ":value"', + 'search_modifier_budget_ends' => 'Orçamento termina com ":value"', + 'search_modifier_budget_starts' => 'Orçamento começa com ":value"', + 'search_modifier_bill_contains' => 'Fatura contém ":value"', + 'search_modifier_bill_ends' => 'Fatura termina com ":value"', + 'search_modifier_bill_starts' => 'Fatura começa com ":value"', + 'search_modifier_external_id_contains' => 'ID Externo contém ":value"', + 'search_modifier_external_id_ends' => 'ID Externo termina com ":value"', + 'search_modifier_external_id_starts' => 'ID Externo começa com ":value"', + 'search_modifier_internal_reference_contains' => 'Referência interna contém ":value"', + 'search_modifier_internal_reference_ends' => 'Referência interna termina com ":value"', + 'search_modifier_internal_reference_starts' => 'Referência interna começa com ":value"', + 'search_modifier_external_url_is' => 'URL externa é ":value"', + 'search_modifier_external_url_contains' => 'URL externa contém ":value"', + 'search_modifier_external_url_ends' => 'URL externa termina com ":value"', + 'search_modifier_external_url_starts' => 'URL externa começa com ":value"', + 'search_modifier_has_no_attachments' => 'A transação não tem anexos', + 'search_modifier_account_is_cash' => 'Qualquer outra conta é uma conta em dinheiro.', + 'search_modifier_journal_id' => 'O ID do registro é ":value"', + 'search_modifier_recurrence_id' => 'O ID da transação recorrente é ":value"', + 'search_modifier_foreign_amount_is' => 'A quantidade em moeda estrangeira é ":value"', + 'search_modifier_foreign_amount_less' => 'A quantidade em moeda estrangeira é menor que ":value"', + 'search_modifier_foreign_amount_more' => 'A quantidade em moeda estrangeira é maior que ":value"', // date fields - 'search_modifier_interest_date_on' => 'Transaction interest date is ":value"', - 'search_modifier_interest_date_on_year' => 'Transaction interest date is in year ":value"', - 'search_modifier_interest_date_on_month' => 'Transaction interest date is in month ":value"', - 'search_modifier_interest_date_on_day' => 'Transaction interest date is on day of month ":value"', - 'search_modifier_interest_date_before_year' => 'Transaction interest date is before or in year ":value"', - 'search_modifier_interest_date_before_month' => 'Transaction interest date is before or in month ":value"', - 'search_modifier_interest_date_before_day' => 'Transaction interest date is before or on day of month ":value"', - 'search_modifier_interest_date_after_year' => 'Transaction interest date is after or in year ":value"', - 'search_modifier_interest_date_after_month' => 'Transaction interest date is after or in month ":value"', - 'search_modifier_interest_date_after_day' => 'Transaction interest date is after or on day of month ":value"', - 'search_modifier_book_date_on_year' => 'Transaction book date is in year ":value"', - 'search_modifier_book_date_on_month' => 'Transaction book date is in month ":value"', - 'search_modifier_book_date_on_day' => 'Transaction book date is on day of month ":value"', - 'search_modifier_book_date_before_year' => 'Transaction book date is before or in year ":value"', - 'search_modifier_book_date_before_month' => 'Transaction book date is before or in month ":value"', - 'search_modifier_book_date_before_day' => 'Transaction book date is before or on day of month ":value"', - 'search_modifier_book_date_after_year' => 'Transaction book date is after or in year ":value"', - 'search_modifier_book_date_after_month' => 'Transaction book date is after or in month ":value"', - 'search_modifier_book_date_after_day' => 'Transaction book date is after or on day of month ":value"', - 'search_modifier_process_date_on_year' => 'Transaction process date is in year ":value"', - 'search_modifier_process_date_on_month' => 'Transaction process date is in month ":value"', - 'search_modifier_process_date_on_day' => 'Transaction process date is on day of month ":value"', - 'search_modifier_process_date_before_year' => 'Transaction process date is before or in year ":value"', - 'search_modifier_process_date_before_month' => 'Transaction process date is before or in month ":value"', - 'search_modifier_process_date_before_day' => 'Transaction process date is before or on day of month ":value"', - 'search_modifier_process_date_after_year' => 'Transaction process date is after or in year ":value"', - 'search_modifier_process_date_after_month' => 'Transaction process date is after or in month ":value"', - 'search_modifier_process_date_after_day' => 'Transaction process date is after or on day of month ":value"', - 'search_modifier_due_date_on_year' => 'Transaction due date is in year ":value"', - 'search_modifier_due_date_on_month' => 'Transaction due date is in month ":value"', - 'search_modifier_due_date_on_day' => 'Transaction due date is on day of month ":value"', - 'search_modifier_due_date_before_year' => 'Transaction due date is before or in year ":value"', - 'search_modifier_due_date_before_month' => 'Transaction due date is before or in month ":value"', - 'search_modifier_due_date_before_day' => 'Transaction due date is before or on day of month ":value"', - 'search_modifier_due_date_after_year' => 'Transaction due date is after or in year ":value"', - 'search_modifier_due_date_after_month' => 'Transaction due date is after or in month ":value"', - 'search_modifier_due_date_after_day' => 'Transaction due date is after or on day of month ":value"', - 'search_modifier_payment_date_on_year' => 'Transaction payment date is in year ":value"', - 'search_modifier_payment_date_on_month' => 'Transaction payment date is in month ":value"', - 'search_modifier_payment_date_on_day' => 'Transaction payment date is on day of month ":value"', - 'search_modifier_payment_date_before_year' => 'Transaction payment date is before or in year ":value"', - 'search_modifier_payment_date_before_month' => 'Transaction payment date is before or in month ":value"', - 'search_modifier_payment_date_before_day' => 'Transaction payment date is before or on day of month ":value"', - 'search_modifier_payment_date_after_year' => 'Transaction payment date is after or in year ":value"', - 'search_modifier_payment_date_after_month' => 'Transaction payment date is after or in month ":value"', - 'search_modifier_payment_date_after_day' => 'Transaction payment date is after or on day of month ":value"', - 'search_modifier_invoice_date_on_year' => 'Transaction invoice date is in year ":value"', - 'search_modifier_invoice_date_on_month' => 'Transaction invoice date is in month ":value"', - 'search_modifier_invoice_date_on_day' => 'Transaction invoice date is on day of month ":value"', - 'search_modifier_invoice_date_before_year' => 'Transaction invoice date is before or in year ":value"', - 'search_modifier_invoice_date_before_month' => 'Transaction invoice date is before or in month ":value"', - 'search_modifier_invoice_date_before_day' => 'Transaction invoice date is before or on day of month ":value"', - 'search_modifier_invoice_date_after_year' => 'Transaction invoice date is after or in year ":value"', - 'search_modifier_invoice_date_after_month' => 'Transaction invoice date is after or in month ":value"', - 'search_modifier_invoice_date_after_day' => 'Transaction invoice date is after or on day of month ":value"', + 'search_modifier_interest_date_on' => 'Data de juros da transação é ":value"', + 'search_modifier_interest_date_on_year' => 'Data de juros da transação está no ano de ":value"', + 'search_modifier_interest_date_on_month' => 'Data de juros da transação é no mês de ":value"', + 'search_modifier_interest_date_on_day' => 'Data de juros da transação é no dia do mês de ":value"', + 'search_modifier_interest_date_before_year' => 'Data de juros da transação é antes ou no ano de ":value"', + 'search_modifier_interest_date_before_month' => 'Data de juros da transação é antes ou no mês de ":value"', + 'search_modifier_interest_date_before_day' => 'Data de juros da transação é antes ou no dia do mês de ":value"', + 'search_modifier_interest_date_after_year' => 'Data de juros da transação é após ou no ano de ":value"', + 'search_modifier_interest_date_after_month' => 'Data de juros da transação é posterior ou no mês de ":value"', + 'search_modifier_interest_date_after_day' => 'Data de juros da transação é após ou no dia do mês de ":value"', + 'search_modifier_book_date_on_year' => 'Data de reserva da transação está no ano de ":value"', + 'search_modifier_book_date_on_month' => 'Data de reserva da transação é no mês de ":value"', + 'search_modifier_book_date_on_day' => 'Data de reserva da transação é no dia do mês de ":value"', + 'search_modifier_book_date_before_year' => 'Data de reserva da transação é antes ou no ano de ":value"', + 'search_modifier_book_date_before_month' => 'Data de reserva da transação é antes ou no mês de ":value"', + 'search_modifier_book_date_before_day' => 'Data de reserva da transação é antes ou no dia do mês de ":value"', + 'search_modifier_book_date_after_year' => 'Data de reserva da transação é posterior ou no ano de ":value"', + 'search_modifier_book_date_after_month' => 'Data de reserva da transação é posterior ou no mês de ":value"', + 'search_modifier_book_date_after_day' => 'Data de reserva da transação é posterior ou no dia do mês de ":value"', + 'search_modifier_process_date_on_year' => 'Data de processamento da transação está no ano de ":value"', + 'search_modifier_process_date_on_month' => 'Data de processamento da transação está no mês de ":value"', + 'search_modifier_process_date_on_day' => 'Data de processamento da transação está no dia do mês de ":value"', + 'search_modifier_process_date_before_year' => 'Data de processamento da transação é antes ou no ano de ":value"', + 'search_modifier_process_date_before_month' => 'Data de processamento da transação é antes ou no mês de ":value"', + 'search_modifier_process_date_before_day' => 'Data de processamento da transação é antes ou no dia do mês de ":value"', + 'search_modifier_process_date_after_year' => 'Data de processamento da transação é posterior ou no ano de ":value"', + 'search_modifier_process_date_after_month' => 'Data de processamento da transação é posterior ou no mês de ":value"', + 'search_modifier_process_date_after_day' => 'Data de processamento da transação é posterior ou no dia do mês de ":value"', + 'search_modifier_due_date_on_year' => 'Data de vencimento da transação é no ano de ":value"', + 'search_modifier_due_date_on_month' => 'Data de vencimento da transação é no mês de ":value"', + 'search_modifier_due_date_on_day' => 'Data de vencimento da transação é no dia do mês de ":value"', + 'search_modifier_due_date_before_year' => 'Data de vencimento da transação é antes ou no ano de ":value"', + 'search_modifier_due_date_before_month' => 'Data de vencimento da transação é antes ou no mês de ":value"', + 'search_modifier_due_date_before_day' => 'Data de vencimento da transação é antes ou no dia do mês de ":value"', + 'search_modifier_due_date_after_year' => 'Data de vencimento da transação é posterior ou no ano de ":value"', + 'search_modifier_due_date_after_month' => 'Data de vencimento da transação é posterior ou no mês de ":value"', + 'search_modifier_due_date_after_day' => 'Data de vencimento da transação é posterior ou no dia do mês de ":value"', + 'search_modifier_payment_date_on_year' => 'Data de pagamento da transação é no ano de ":value"', + 'search_modifier_payment_date_on_month' => 'Data de pagamento da transação é no dia do mês de ":value"', + 'search_modifier_payment_date_on_day' => 'Data de pagamento da transação é no dia do mês de ":value"', + 'search_modifier_payment_date_before_year' => 'Data de pagamento da transação é antes ou no ano de ":value"', + 'search_modifier_payment_date_before_month' => 'Data de pagamento da transação é antes ou no mês de ":value"', + 'search_modifier_payment_date_before_day' => 'Data de pagamento da transação é antes ou no dia do mês de ":value"', + 'search_modifier_payment_date_after_year' => 'Data de pagamento da transação é posterior ou no ano de ":value"', + 'search_modifier_payment_date_after_month' => 'Data de pagamento da transação é posterior ou no mês de ":value"', + 'search_modifier_payment_date_after_day' => 'Data de pagamento da transação é posterior ou no dia do mês de ":value"', + 'search_modifier_invoice_date_on_year' => 'Data de fatura da transação está no ano de ":value"', + 'search_modifier_invoice_date_on_month' => 'Data de fatura da transação está no mês de ":value"', + 'search_modifier_invoice_date_on_day' => 'Data de fatura da transação é no dia do mês de ":value"', + 'search_modifier_invoice_date_before_year' => 'Data de fatura da transação é antes ou no ano de ":value"', + 'search_modifier_invoice_date_before_month' => 'Data da fatura da transação é antes ou em no mês de ":value"', + 'search_modifier_invoice_date_before_day' => 'Data de fatura da transação é antes ou no dia do mês de ":value"', + 'search_modifier_invoice_date_after_year' => 'Data de fatura da transação é posterior ou no ano de ":value"', + 'search_modifier_invoice_date_after_month' => 'Data de fatura da transação é antes ou no ano de ":value"', + 'search_modifier_invoice_date_after_day' => 'Data de pagamento da transação é antes ou no dia do mês de ":value"', // other dates - 'search_modifier_updated_at_on_year' => 'Transaction was last updated in year ":value"', - 'search_modifier_updated_at_on_month' => 'Transaction was last updated in month ":value"', - 'search_modifier_updated_at_on_day' => 'Transaction was last updated on day of month ":value"', - 'search_modifier_updated_at_before_year' => 'Transaction was last updated in or before year ":value"', - 'search_modifier_updated_at_before_month' => 'Transaction was last updated in or before month ":value"', - 'search_modifier_updated_at_before_day' => 'Transaction was last updated on or before day of month ":value"', - 'search_modifier_updated_at_after_year' => 'Transaction was last updated in or after year ":value"', - 'search_modifier_updated_at_after_month' => 'Transaction was last updated in or after month ":value"', - 'search_modifier_updated_at_after_day' => 'Transaction was last updated on or after day of month ":value"', - 'search_modifier_created_at_on_year' => 'Transaction was created in year ":value"', - 'search_modifier_created_at_on_month' => 'Transaction was created in month ":value"', - 'search_modifier_created_at_on_day' => 'Transaction was created on day of month ":value"', - 'search_modifier_created_at_before_year' => 'Transaction was created in or before year ":value"', - 'search_modifier_created_at_before_month' => 'Transaction was created in or before month ":value"', - 'search_modifier_created_at_before_day' => 'Transaction was created on or before day of month ":value"', - 'search_modifier_created_at_after_year' => 'Transaction was created in or after year ":value"', - 'search_modifier_created_at_after_month' => 'Transaction was created in or after month ":value"', - 'search_modifier_created_at_after_day' => 'Transaction was created on or after day of month ":value"', - 'search_modifier_interest_date_before' => 'Transaction interest date is on or before ":value"', - 'search_modifier_interest_date_after' => 'Transaction interest date is on or after ":value"', - 'search_modifier_book_date_on' => 'Transaction book date is on ":value"', - 'search_modifier_book_date_before' => 'Transaction book date is on or before ":value"', - 'search_modifier_book_date_after' => 'Transaction book date is on or after ":value"', - 'search_modifier_process_date_on' => 'Transaction process date is on ":value"', - 'search_modifier_process_date_before' => 'Transaction process date is on or before ":value"', - 'search_modifier_process_date_after' => 'Transaction process date is on or after ":value"', - 'search_modifier_due_date_on' => 'Transaction due date is on ":value"', - 'search_modifier_due_date_before' => 'Transaction due date is on or before ":value"', - 'search_modifier_due_date_after' => 'Transaction due date is on or after ":value"', - 'search_modifier_payment_date_on' => 'Transaction payment date is on ":value"', - 'search_modifier_payment_date_before' => 'Transaction payment date is on or before ":value"', - 'search_modifier_payment_date_after' => 'Transaction payment date is on or after ":value"', - 'search_modifier_invoice_date_on' => 'Transaction invoice date is on ":value"', - 'search_modifier_invoice_date_before' => 'Transaction invoice date is on or before ":value"', - 'search_modifier_invoice_date_after' => 'Transaction invoice date is on or after ":value"', - 'search_modifier_created_at_on' => 'Transaction was created on ":value"', - 'search_modifier_created_at_before' => 'Transaction was created on or before ":value"', - 'search_modifier_created_at_after' => 'Transaction was created on or after ":value"', - 'search_modifier_updated_at_on' => 'Transaction was updated on ":value"', - 'search_modifier_updated_at_before' => 'Transaction was updated on or before ":value"', - 'search_modifier_updated_at_after' => 'Transaction was updated on or after ":value"', - 'search_modifier_attachment_name_is' => 'Any attachment\'s name is ":value"', - 'search_modifier_attachment_name_contains' => 'Any attachment\'s name contains ":value"', - 'search_modifier_attachment_name_starts' => 'Any attachment\'s name starts with ":value"', - 'search_modifier_attachment_name_ends' => 'Any attachment\'s name ends with ":value"', - 'search_modifier_attachment_notes_are' => 'Any attachment\'s notes are ":value"', - 'search_modifier_attachment_notes_contains' => 'Any attachment\'s notes contain ":value"', - 'search_modifier_attachment_notes_starts' => 'Any attachment\'s notes start with ":value"', - 'search_modifier_attachment_notes_ends' => 'Any attachment\'s notes end is ":value"', + 'search_modifier_updated_at_on_year' => 'A transação foi atualizada pela última vez no ano de ":value"', + 'search_modifier_updated_at_on_month' => 'A transação foi atualizada pela última vez no mês de ":value"', + 'search_modifier_updated_at_on_day' => 'A transação foi atualizada pela última vez no dia do mês de ":value"', + 'search_modifier_updated_at_before_year' => 'A transação foi atualizada pela última vez no ano, ou antes de ":value"', + 'search_modifier_updated_at_before_month' => 'A transação foi atualizada pela última vez no mês ou antes de ":value"', + 'search_modifier_updated_at_before_day' => 'A transação foi atualizada pela última vez no dia do mês ou antes de ":value"', + 'search_modifier_updated_at_after_year' => 'A transação foi atualizada pela última vez no ano, ou depois de ":value"', + 'search_modifier_updated_at_after_month' => 'A transação foi atualizada pela última vez no mês ou depois de ":value"', + 'search_modifier_updated_at_after_day' => 'A transação foi atualizada pela última vez no dia do mês ou depois de ":value"', + 'search_modifier_created_at_on_year' => 'A transação foi criada no ano de ":value"', + 'search_modifier_created_at_on_month' => 'A transação foi criada no mês de ":value"', + 'search_modifier_created_at_on_day' => 'A transação foi criada no dia do mês de ":value"', + 'search_modifier_created_at_before_year' => 'A transação foi criada em ou antes do ano de ":value"', + 'search_modifier_created_at_before_month' => 'A transação foi criada em ou antes do mês de ":value"', + 'search_modifier_created_at_before_day' => 'A transação foi criada em ou antes do dia do mês de ":value"', + 'search_modifier_created_at_after_year' => 'A transação foi criada em ou após o ano de ":value"', + 'search_modifier_created_at_after_month' => 'A transação foi criada em ou após o mês de ":value"', + 'search_modifier_created_at_after_day' => 'A transação foi criada em ou após o dia do mês de ":value"', + 'search_modifier_interest_date_before' => 'Data de juros da transação é em ou antes de ":value"', + 'search_modifier_interest_date_after' => 'Data de juros da transação é em ou posterior a ":value"', + 'search_modifier_book_date_on' => 'Data de reserva da transação é em:value"', + 'search_modifier_book_date_before' => 'Data de reserva da transação é em ou antes de ":value"', + 'search_modifier_book_date_after' => 'Data de reserva da transação é em ou após ":value"', + 'search_modifier_process_date_on' => 'Data de processamento da transação é em ":value"', + 'search_modifier_process_date_before' => 'Data de processamento da transação é em ou antes de ":value"', + 'search_modifier_process_date_after' => 'Data de processamento da transação é em ou após ":value"', + 'search_modifier_due_date_on' => 'Data de vencimento da transação é em ":value"', + 'search_modifier_due_date_before' => 'Data de vencimento da transação é em ou antes de ":value"', + 'search_modifier_due_date_after' => 'Data de vencimento da transação é em ou após ":value"', + 'search_modifier_payment_date_on' => 'Data de pagamento da transação é em ":value"', + 'search_modifier_payment_date_before' => 'Data de pagamento da transação é em ou antes de ":value"', + 'search_modifier_payment_date_after' => 'Data de pagamento da transação é em ou após ":value"', + 'search_modifier_invoice_date_on' => 'Data de fatura de transação é em ":value"', + 'search_modifier_invoice_date_before' => 'Data da fatura de transação é em ou antes de ":value"', + 'search_modifier_invoice_date_after' => 'Data da fatura de transação é em ou após ":value"', + 'search_modifier_created_at_on' => 'A transação foi criada em ":value"', + 'search_modifier_created_at_before' => 'A transação foi criada em ou antes de ":value"', + 'search_modifier_created_at_after' => 'A transação foi criada em ou após ":value"', + 'search_modifier_updated_at_on' => 'Transação foi atualizada em ":value"', + 'search_modifier_updated_at_before' => 'A transação foi atualizada em ou antes de ":value"', + 'search_modifier_updated_at_after' => 'A transação foi atualizada em ou após ":value"', + 'search_modifier_attachment_name_is' => 'Qualquer nome de anexo é ":value"', + 'search_modifier_attachment_name_contains' => 'Qualquer nome do anexo contém ":value"', + 'search_modifier_attachment_name_starts' => 'Qualquer nome de anexo começa com ":value"', + 'search_modifier_attachment_name_ends' => 'Qualquer nome de anexo termina com ":value"', + 'search_modifier_attachment_notes_are' => 'Qualquer nota de anexo é ":value"', + 'search_modifier_attachment_notes_contains' => 'Qualquer nota de anexo contém ":value"', + 'search_modifier_attachment_notes_starts' => 'Qualquer nota de anexo começa com ":value"', + 'search_modifier_attachment_notes_ends' => 'Qualquer fim de nota de anexo é ":value"', 'update_rule_from_query' => 'Atualizar regra ":rule" da pesquisa', 'create_rule_from_query' => 'Criar nova regra a partir da pesquisa', 'rule_from_search_words' => 'O mecanismo de regra tem dificuldade para tratar ":string". A regra sugerida que se encaixa na sua pesquisa pode retornar resultados diferentes. Por favor, verifique os gatilhos das regras cuidadosamente.', @@ -605,14 +605,14 @@ return [ 'rule_trigger_source_account_is' => 'Nome da conta de origem é ":trigger_value"', 'rule_trigger_source_account_contains_choice' => 'Nome da conta de origem contém..', 'rule_trigger_source_account_contains' => 'Nome da conta de origem contém ":trigger_value"', - 'rule_trigger_account_id_choice' => 'Either account ID is exactly..', - 'rule_trigger_account_id' => 'Either account ID is exactly :trigger_value', + 'rule_trigger_account_id_choice' => 'Ou ID da conta é exatamente..', + 'rule_trigger_account_id' => 'Ou o ID da conta é exatamente :trigger_value', 'rule_trigger_source_account_id_choice' => 'ID da conta de origem é igual a..', 'rule_trigger_source_account_id' => 'ID da conta de origem é igual a :trigger_value', 'rule_trigger_destination_account_id_choice' => 'ID da conta de destino é igual a..', 'rule_trigger_destination_account_id' => 'ID da conta de destino é igual a :trigger_value', - 'rule_trigger_account_is_cash_choice' => 'Either account is cash', - 'rule_trigger_account_is_cash' => 'Either account is cash', + 'rule_trigger_account_is_cash_choice' => 'Ou a conta é dinheiro', + 'rule_trigger_account_is_cash' => 'Ou a conta é dinheiro', 'rule_trigger_source_is_cash_choice' => 'Conta de origem é (dinheiro)', 'rule_trigger_source_is_cash' => 'Conta de origem é (dinheiro)', 'rule_trigger_destination_is_cash_choice' => 'Conta de destino é (dinheiro)', @@ -647,8 +647,8 @@ return [ 'rule_trigger_category_is' => 'A categoria é ":trigger_value"', 'rule_trigger_amount_less_choice' => 'Quantia é inferior a..', 'rule_trigger_amount_less' => 'Quantia é inferior :trigger_value', - 'rule_trigger_amount_is_choice' => 'Amount is..', - 'rule_trigger_amount_is' => 'Amount is :trigger_value', + 'rule_trigger_amount_is_choice' => 'Quantia é..', + 'rule_trigger_amount_is' => 'Quantia é :trigger_value', 'rule_trigger_amount_more_choice' => 'Quantia é mais do que..', 'rule_trigger_amount_more' => 'Quantia é mais de :trigger_value', 'rule_trigger_description_starts_choice' => 'Descrição começa com..', @@ -659,20 +659,20 @@ return [ 'rule_trigger_description_contains' => 'Descrição contém ":trigger_value"', 'rule_trigger_description_is_choice' => 'Descrição é..', 'rule_trigger_description_is' => 'Descrição é ":trigger_value"', - 'rule_trigger_date_on_choice' => 'Transaction date is..', - 'rule_trigger_date_on' => 'Transaction date is ":trigger_value"', + 'rule_trigger_date_on_choice' => 'Data da transação é..', + 'rule_trigger_date_on' => 'Data de transação é ":trigger_value"', 'rule_trigger_date_before_choice' => 'A data da transação é anterior a...', 'rule_trigger_date_before' => 'A data da transação é anterior a ":trigger_value"', 'rule_trigger_date_after_choice' => 'A data da transação é posterior a...', 'rule_trigger_date_after' => 'A data da transação é posterior a ":trigger_value"', - 'rule_trigger_created_at_on_choice' => 'Transaction was made on..', - 'rule_trigger_created_at_on' => 'Transaction was made on ":trigger_value"', - 'rule_trigger_updated_at_on_choice' => 'Transaction was last edited on..', - 'rule_trigger_updated_at_on' => 'Transaction was last edited on ":trigger_value"', + 'rule_trigger_created_at_on_choice' => 'Transação foi feita em..', + 'rule_trigger_created_at_on' => 'A transação foi feita em ":trigger_value"', + 'rule_trigger_updated_at_on_choice' => 'Transação foi editada pela última vez em..', + 'rule_trigger_updated_at_on' => 'Transação foi editada pela última vez em ":trigger_value"', 'rule_trigger_budget_is_choice' => 'O orçamento é..', 'rule_trigger_budget_is' => 'O orçamento é ":trigger_value"', - 'rule_trigger_tag_is_choice' => 'Any tag is..', - 'rule_trigger_tag_is' => 'Any tag is ":trigger_value"', + 'rule_trigger_tag_is_choice' => 'Qualquer tag é..', + 'rule_trigger_tag_is' => 'Qualquer tag é ":trigger_value"', 'rule_trigger_currency_is_choice' => 'A moeda da transação é..', 'rule_trigger_currency_is' => 'A moeda da transação é ":trigger_value"', 'rule_trigger_foreign_currency_is_choice' => 'A moeda estrangeira da transação é...', @@ -699,157 +699,157 @@ return [ 'rule_trigger_any_notes' => 'A transação tem notas (qualquer)', 'rule_trigger_no_notes_choice' => 'Não tem notas', 'rule_trigger_no_notes' => 'A transação não tem notas', - 'rule_trigger_notes_is_choice' => 'Notes are..', - 'rule_trigger_notes_is' => 'Notes are ":trigger_value"', - 'rule_trigger_notes_contains_choice' => 'Notes contain..', - 'rule_trigger_notes_contains' => 'Notes contain ":trigger_value"', - 'rule_trigger_notes_starts_choice' => 'Notes start with..', - 'rule_trigger_notes_starts' => 'Notes start with ":trigger_value"', - 'rule_trigger_notes_ends_choice' => 'Notes end with..', - 'rule_trigger_notes_ends' => 'Notes end with ":trigger_value"', + 'rule_trigger_notes_is_choice' => 'As notas são..', + 'rule_trigger_notes_is' => 'As notas são ":trigger_value"', + 'rule_trigger_notes_contains_choice' => 'As notas contêm..', + 'rule_trigger_notes_contains' => 'As notas contêm ":trigger_value"', + 'rule_trigger_notes_starts_choice' => 'As notas começam com..', + 'rule_trigger_notes_starts' => 'As notas começam com ":trigger_value"', + 'rule_trigger_notes_ends_choice' => 'As notas terminam com..', + 'rule_trigger_notes_ends' => 'Notas terminam com ":trigger_value"', 'rule_trigger_bill_is_choice' => 'Conta é..', 'rule_trigger_bill_is' => 'Conta é ":trigger_value"', - 'rule_trigger_external_id_is_choice' => 'External ID is..', - 'rule_trigger_external_id_is' => 'External ID is ":trigger_value"', - 'rule_trigger_internal_reference_is_choice' => 'Internal reference is..', - 'rule_trigger_internal_reference_is' => 'Internal reference is ":trigger_value"', + 'rule_trigger_external_id_is_choice' => 'ID externo é..', + 'rule_trigger_external_id_is' => 'ID externo é ":trigger_value"', + 'rule_trigger_internal_reference_is_choice' => 'Referência interna é..', + 'rule_trigger_internal_reference_is' => 'Referência interna é ":trigger_value"', 'rule_trigger_journal_id_choice' => 'ID do livro de transação é..', 'rule_trigger_journal_id' => 'ID do livro de transação é ":trigger_value"', - 'rule_trigger_no_external_url' => 'Transaction has no external URL', - 'rule_trigger_any_external_url' => 'Transaction has an external URL', + 'rule_trigger_no_external_url' => 'A transação não tem URL externa', + 'rule_trigger_any_external_url' => 'A transação tem uma URL externa', 'rule_trigger_any_external_url_choice' => 'A transação tem um link externo', 'rule_trigger_no_external_url_choice' => 'A transação não tem um link externo', 'rule_trigger_id_choice' => 'O identificador da transação é..', 'rule_trigger_id' => 'O identificador da transação é ":trigger_value"', // new values: - 'rule_trigger_user_action_choice' => 'User action is ":trigger_value"', - 'rule_trigger_tag_is_not_choice' => 'No tag is ":trigger_value"', - 'rule_trigger_tag_is_not' => 'No tag is..', - 'rule_trigger_account_is_choice' => 'Either account is exactly..', - 'rule_trigger_account_is' => 'Either account is exactly ":trigger_value"', - 'rule_trigger_account_contains_choice' => 'Either account contains..', - 'rule_trigger_account_contains' => 'Either account contains ":trigger_value"', - 'rule_trigger_account_ends_choice' => 'Either account ends with..', - 'rule_trigger_account_ends' => 'Either account ends with ":trigger_value"', - 'rule_trigger_account_starts_choice' => 'Either account starts with..', - 'rule_trigger_account_starts' => 'Either account starts with ":trigger_value"', - 'rule_trigger_account_nr_is_choice' => 'Either account number / IBAN is..', - 'rule_trigger_account_nr_is' => 'Either account number / IBAN is ":trigger_value"', - 'rule_trigger_account_nr_contains_choice' => 'Either account number / IBAN contains..', - 'rule_trigger_account_nr_contains' => 'Either account number / IBAN contains ":trigger_value"', - 'rule_trigger_account_nr_ends_choice' => 'Either account number / IBAN ends with..', - 'rule_trigger_account_nr_ends' => 'Either account number / IBAN ends with ":trigger_value"', - 'rule_trigger_account_nr_starts_choice' => 'Either account number / IBAN starts with..', - 'rule_trigger_account_nr_starts' => 'Either account number / IBAN starts with ":trigger_value"', - 'rule_trigger_category_contains_choice' => 'Category contains..', - 'rule_trigger_category_contains' => 'Category contains ":trigger_value"', - 'rule_trigger_category_ends_choice' => 'Category ends with..', - 'rule_trigger_category_ends' => 'Category ends with ":trigger_value"', - 'rule_trigger_category_starts_choice' => 'Category starts with..', - 'rule_trigger_category_starts' => 'Category starts with ":trigger_value"', - 'rule_trigger_budget_contains_choice' => 'Budget contains..', - 'rule_trigger_budget_contains' => 'Budget contains ":trigger_value"', - 'rule_trigger_budget_ends_choice' => 'Budget ends with..', - 'rule_trigger_budget_ends' => 'Budget ends with ":trigger_value"', - 'rule_trigger_budget_starts_choice' => 'Budget starts with..', - 'rule_trigger_budget_starts' => 'Budget starts with ":trigger_value"', - 'rule_trigger_bill_contains_choice' => 'Bill contains..', - 'rule_trigger_bill_contains' => 'Bill contains ":trigger_value"', - 'rule_trigger_bill_ends_choice' => 'Bill ends with..', - 'rule_trigger_bill_ends' => 'Bill ends with ":trigger_value"', - 'rule_trigger_bill_starts_choice' => 'Bill starts with..', - 'rule_trigger_bill_starts' => 'Bill starts with ":trigger_value"', - 'rule_trigger_external_id_contains_choice' => 'External ID contains..', - 'rule_trigger_external_id_contains' => 'External ID contains ":trigger_value"', - 'rule_trigger_external_id_ends_choice' => 'External ID ends with..', - 'rule_trigger_external_id_ends' => 'External ID ends with ":trigger_value"', - 'rule_trigger_external_id_starts_choice' => 'External ID starts with..', - 'rule_trigger_external_id_starts' => 'External ID starts with ":trigger_value"', - 'rule_trigger_internal_reference_contains_choice' => 'Internal reference contains..', - 'rule_trigger_internal_reference_contains' => 'Internal reference contains ":trigger_value"', - 'rule_trigger_internal_reference_ends_choice' => 'Internal reference ends with..', - 'rule_trigger_internal_reference_ends' => 'Internal reference ends with ":trigger_value"', - 'rule_trigger_internal_reference_starts_choice' => 'Internal reference starts with..', - 'rule_trigger_internal_reference_starts' => 'Internal reference starts with ":trigger_value"', - 'rule_trigger_external_url_is_choice' => 'External URL is..', - 'rule_trigger_external_url_is' => 'External URL is ":trigger_value"', - 'rule_trigger_external_url_contains_choice' => 'External URL contains..', - 'rule_trigger_external_url_contains' => 'External URL contains ":trigger_value"', - 'rule_trigger_external_url_ends_choice' => 'External URL ends with..', - 'rule_trigger_external_url_ends' => 'External URL ends with ":trigger_value"', - 'rule_trigger_external_url_starts_choice' => 'External URL starts with..', - 'rule_trigger_external_url_starts' => 'External URL starts with ":trigger_value"', - 'rule_trigger_has_no_attachments_choice' => 'Has no attachments', - 'rule_trigger_has_no_attachments' => 'Transaction has no attachments', - 'rule_trigger_recurrence_id_choice' => 'Recurring transaction ID is..', - 'rule_trigger_recurrence_id' => 'Recurring transaction ID is ":trigger_value"', - 'rule_trigger_interest_date_on_choice' => 'Interest date is on..', - 'rule_trigger_interest_date_on' => 'Interest date is on ":trigger_value"', - 'rule_trigger_interest_date_before_choice' => 'Interest date is before..', - 'rule_trigger_interest_date_before' => 'Interest date is before ":trigger_value"', - 'rule_trigger_interest_date_after_choice' => 'Interest date is after..', - 'rule_trigger_interest_date_after' => 'Interest date is after ":trigger_value"', - 'rule_trigger_book_date_on_choice' => 'Book date is on..', - 'rule_trigger_book_date_on' => 'Book date is on ":trigger_value"', - 'rule_trigger_book_date_before_choice' => 'Book date is before..', - 'rule_trigger_book_date_before' => 'Book date is before ":trigger_value"', - 'rule_trigger_book_date_after_choice' => 'Book date is after..', - 'rule_trigger_book_date_after' => 'Book date is after ":trigger_value"', - 'rule_trigger_process_date_on_choice' => 'Process date is on..', - 'rule_trigger_process_date_on' => 'Process date is ":trigger_value"', - 'rule_trigger_process_date_before_choice' => 'Process date is before..', - 'rule_trigger_process_date_before' => 'Process date is before ":trigger_value"', - 'rule_trigger_process_date_after_choice' => 'Process date is after..', - 'rule_trigger_process_date_after' => 'Process date is after ":trigger_value"', - 'rule_trigger_due_date_on_choice' => 'Due date is on..', - 'rule_trigger_due_date_on' => 'Due date is on ":trigger_value"', - 'rule_trigger_due_date_before_choice' => 'Due date is before..', - 'rule_trigger_due_date_before' => 'Due date is before ":trigger_value"', - 'rule_trigger_due_date_after_choice' => 'Due date is after..', - 'rule_trigger_due_date_after' => 'Due date is after ":trigger_value"', - 'rule_trigger_payment_date_on_choice' => 'Payment date is on..', - 'rule_trigger_payment_date_on' => 'Payment date is on ":trigger_value"', - 'rule_trigger_payment_date_before_choice' => 'Payment date is before..', - 'rule_trigger_payment_date_before' => 'Payment date is before ":trigger_value"', - 'rule_trigger_payment_date_after_choice' => 'Payment date is after..', - 'rule_trigger_payment_date_after' => 'Payment date is after ":trigger_value"', - 'rule_trigger_invoice_date_on_choice' => 'Invoice date is on..', - 'rule_trigger_invoice_date_on' => 'Invoice date is on ":trigger_value"', - 'rule_trigger_invoice_date_before_choice' => 'Invoice date is before..', - 'rule_trigger_invoice_date_before' => 'Invoice date is before ":trigger_value"', - 'rule_trigger_invoice_date_after_choice' => 'Invoice date is after..', - 'rule_trigger_invoice_date_after' => 'Invoice date is after ":trigger_value"', - 'rule_trigger_created_at_before_choice' => 'Transaction was created before..', - 'rule_trigger_created_at_before' => 'Transaction was created before ":trigger_value"', - 'rule_trigger_created_at_after_choice' => 'Transaction was created after..', - 'rule_trigger_created_at_after' => 'Transaction was created after ":trigger_value"', - 'rule_trigger_updated_at_before_choice' => 'Transaction was last updated before..', - 'rule_trigger_updated_at_before' => 'Transaction was last updated before ":trigger_value"', - 'rule_trigger_updated_at_after_choice' => 'Transaction was last updated after..', - 'rule_trigger_updated_at_after' => 'Transaction was last updated after ":trigger_value"', - 'rule_trigger_foreign_amount_is_choice' => 'Foreign amount is exactly..', - 'rule_trigger_foreign_amount_is' => 'Foreign amount is exactly ":trigger_value"', - 'rule_trigger_foreign_amount_less_choice' => 'Foreign amount is less than..', - 'rule_trigger_foreign_amount_less' => 'Foreign amount is less than ":trigger_value"', - 'rule_trigger_foreign_amount_more_choice' => 'Foreign amount is more than..', - 'rule_trigger_foreign_amount_more' => 'Foreign amount is more than ":trigger_value"', - 'rule_trigger_attachment_name_is_choice' => 'Any attachment\'s name is..', - 'rule_trigger_attachment_name_is' => 'Any attachment\'s name is ":trigger_value"', - 'rule_trigger_attachment_name_contains_choice' => 'Any attachment\'s name contains..', - 'rule_trigger_attachment_name_contains' => 'Any attachment\'s name contains ":trigger_value"', - 'rule_trigger_attachment_name_starts_choice' => 'Any attachment\'s name starts with..', - 'rule_trigger_attachment_name_starts' => 'Any attachment\'s name starts with ":trigger_value"', - 'rule_trigger_attachment_name_ends_choice' => 'Any attachment\'s name ends with..', - 'rule_trigger_attachment_name_ends' => 'Any attachment\'s name ends with ":trigger_value"', - 'rule_trigger_attachment_notes_are_choice' => 'Any attachment\'s notes are..', - 'rule_trigger_attachment_notes_are' => 'Any attachment\'s notes are ":trigger_value"', - 'rule_trigger_attachment_notes_contains_choice' => 'Any attachment\'s notes contain..', - 'rule_trigger_attachment_notes_contains' => 'Any attachment\'s notes contain ":trigger_value"', - 'rule_trigger_attachment_notes_starts_choice' => 'Any attachment\'s notes start with..', - 'rule_trigger_attachment_notes_starts' => 'Any attachment\'s notes start with ":trigger_value"', - 'rule_trigger_attachment_notes_ends_choice' => 'Any attachment\'s notes end with..', - 'rule_trigger_attachment_notes_ends' => 'Any attachment\'s notes end with ":trigger_value"', + 'rule_trigger_user_action_choice' => 'Ação do usuário é ":trigger_value"', + 'rule_trigger_tag_is_not_choice' => 'Nenhuma tag é ":trigger_value"', + 'rule_trigger_tag_is_not' => 'Nenhuma tag é..', + 'rule_trigger_account_is_choice' => 'Ou a conta é exatamente..', + 'rule_trigger_account_is' => 'Ou a conta é exatamente ":trigger_value"', + 'rule_trigger_account_contains_choice' => 'Ou a conta contém..', + 'rule_trigger_account_contains' => 'Ou a conta contém ":trigger_value"', + 'rule_trigger_account_ends_choice' => 'Ou a conta termina com..', + 'rule_trigger_account_ends' => 'Ou a conta termina com ":trigger_value"', + 'rule_trigger_account_starts_choice' => 'Ou a conta começa com..', + 'rule_trigger_account_starts' => 'Ou a conta começa com ":trigger_value"', + 'rule_trigger_account_nr_is_choice' => 'Ou número da conta / IBAN é..', + 'rule_trigger_account_nr_is' => 'Ou número da conta / IBAN é ":trigger_value"', + 'rule_trigger_account_nr_contains_choice' => 'Ou número da conta / IBAN contém..', + 'rule_trigger_account_nr_contains' => 'Ou número da conta / IBAN contém ":trigger_value"', + 'rule_trigger_account_nr_ends_choice' => 'Ou número da conta / IBAN termina com..', + 'rule_trigger_account_nr_ends' => 'Ou número da conta / IBAN termina com ":trigger_value"', + 'rule_trigger_account_nr_starts_choice' => 'Ou número da conta / IBAN começa com..', + 'rule_trigger_account_nr_starts' => 'Ou número da conta / IBAN começa com ":trigger_value"', + 'rule_trigger_category_contains_choice' => 'A categoria contém..', + 'rule_trigger_category_contains' => 'Categoria contém ":trigger_value"', + 'rule_trigger_category_ends_choice' => 'Categoria termina com..', + 'rule_trigger_category_ends' => 'Categoria termina com ":trigger_value"', + 'rule_trigger_category_starts_choice' => 'Categoria começa com..', + 'rule_trigger_category_starts' => 'Categoria começa com ":trigger_value"', + 'rule_trigger_budget_contains_choice' => 'O orçamento contém..', + 'rule_trigger_budget_contains' => 'O orçamento contém ":trigger_value"', + 'rule_trigger_budget_ends_choice' => 'O orçamento termina com..', + 'rule_trigger_budget_ends' => 'Orçamento termina com ":trigger_value"', + 'rule_trigger_budget_starts_choice' => 'O orçamento começa com..', + 'rule_trigger_budget_starts' => 'Orçamento começa com ":trigger_value"', + 'rule_trigger_bill_contains_choice' => 'A fatura contém..', + 'rule_trigger_bill_contains' => 'Fatura contém ":trigger_value"', + 'rule_trigger_bill_ends_choice' => 'Fatura termina com..', + 'rule_trigger_bill_ends' => 'Fatura termina com ":trigger_value"', + 'rule_trigger_bill_starts_choice' => 'Fatura começa com..', + 'rule_trigger_bill_starts' => 'Fatura começa com ":trigger_value"', + 'rule_trigger_external_id_contains_choice' => 'ID Externo contém..', + 'rule_trigger_external_id_contains' => 'ID Externo contém ":trigger_value"', + 'rule_trigger_external_id_ends_choice' => 'ID externo termina com..', + 'rule_trigger_external_id_ends' => 'ID Externo termina com ":trigger_value"', + 'rule_trigger_external_id_starts_choice' => 'ID externo começa com..', + 'rule_trigger_external_id_starts' => 'ID Externo começa com ":trigger_value"', + 'rule_trigger_internal_reference_contains_choice' => 'Referência interna contém..', + 'rule_trigger_internal_reference_contains' => 'Referência interna contém ":trigger_value"', + 'rule_trigger_internal_reference_ends_choice' => 'Referência interna termina com..', + 'rule_trigger_internal_reference_ends' => 'Referência interna termina com ":trigger_value"', + 'rule_trigger_internal_reference_starts_choice' => 'Referência interna começa com..', + 'rule_trigger_internal_reference_starts' => 'Referência interna começa com ":trigger_value"', + 'rule_trigger_external_url_is_choice' => 'URL externa é..', + 'rule_trigger_external_url_is' => 'URL externa é ":trigger_value"', + 'rule_trigger_external_url_contains_choice' => 'URL externa contém..', + 'rule_trigger_external_url_contains' => 'URL externa contém ":trigger_value"', + 'rule_trigger_external_url_ends_choice' => 'URL externa termina com..', + 'rule_trigger_external_url_ends' => 'URL externa termina com ":trigger_value"', + 'rule_trigger_external_url_starts_choice' => 'URL externa começa com..', + 'rule_trigger_external_url_starts' => 'URL externa começa com ":trigger_value"', + 'rule_trigger_has_no_attachments_choice' => 'Não há anexos', + 'rule_trigger_has_no_attachments' => 'A transação não tem anexos', + 'rule_trigger_recurrence_id_choice' => 'O ID da transação recorrente é..', + 'rule_trigger_recurrence_id' => 'ID da transação recorrente é ":trigger_value"', + 'rule_trigger_interest_date_on_choice' => 'Data de juros é em..', + 'rule_trigger_interest_date_on' => 'Data de juros é em ":trigger_value"', + 'rule_trigger_interest_date_before_choice' => 'Data de juros é anterior a..', + 'rule_trigger_interest_date_before' => 'Data de juros é antes de ":trigger_value"', + 'rule_trigger_interest_date_after_choice' => 'Data de juros é após..', + 'rule_trigger_interest_date_after' => 'Data de juros é após ":trigger_value"', + 'rule_trigger_book_date_on_choice' => 'Data de reserva é em..', + 'rule_trigger_book_date_on' => 'Data de reserva é em ":trigger_value"', + 'rule_trigger_book_date_before_choice' => 'A data de reserva é antes de..', + 'rule_trigger_book_date_before' => 'Data de reserva é antes de ":trigger_value"', + 'rule_trigger_book_date_after_choice' => 'A data de reserva é após..', + 'rule_trigger_book_date_after' => 'Data de reserva após ":trigger_value"', + 'rule_trigger_process_date_on_choice' => 'Data de processamento é em..', + 'rule_trigger_process_date_on' => 'Data de processamento é ":trigger_value"', + 'rule_trigger_process_date_before_choice' => 'Data de processamento é antes de..', + 'rule_trigger_process_date_before' => 'Data de processamento é antes de ":trigger_value"', + 'rule_trigger_process_date_after_choice' => 'Data de processamento é após..', + 'rule_trigger_process_date_after' => 'Data de processamento é após ":trigger_value"', + 'rule_trigger_due_date_on_choice' => 'Data de vencimento é em..', + 'rule_trigger_due_date_on' => 'Data de vencimento é em ":trigger_value"', + 'rule_trigger_due_date_before_choice' => 'A data de vencimento é antes de..', + 'rule_trigger_due_date_before' => 'Data de vencimento é antes de ":trigger_value"', + 'rule_trigger_due_date_after_choice' => 'Data de vencimento é após..', + 'rule_trigger_due_date_after' => 'Data de vencimento é após ":trigger_value"', + 'rule_trigger_payment_date_on_choice' => 'Data de pagamento é em..', + 'rule_trigger_payment_date_on' => 'Data do pagamento é em ":trigger_value"', + 'rule_trigger_payment_date_before_choice' => 'Data de pagamento é anterior a..', + 'rule_trigger_payment_date_before' => 'Data do pagamento é antes de ":trigger_value"', + 'rule_trigger_payment_date_after_choice' => 'Data de pagamento é depois de..', + 'rule_trigger_payment_date_after' => 'Data do pagamento é após ":trigger_value"', + 'rule_trigger_invoice_date_on_choice' => 'Data da fatura é em..', + 'rule_trigger_invoice_date_on' => 'A data da fatura é em ":trigger_value"', + 'rule_trigger_invoice_date_before_choice' => 'Data da fatura é antes de..', + 'rule_trigger_invoice_date_before' => 'Data da fatura é antes de ":trigger_value"', + 'rule_trigger_invoice_date_after_choice' => 'Data da fatura é depois de..', + 'rule_trigger_invoice_date_after' => 'Data da fatura é depois de ":trigger_value"', + 'rule_trigger_created_at_before_choice' => 'A transação foi criada antes de..', + 'rule_trigger_created_at_before' => 'A transação foi criada antes de ":trigger_value"', + 'rule_trigger_created_at_after_choice' => 'A transação foi criada depois de..', + 'rule_trigger_created_at_after' => 'A transação foi criada após ":trigger_value"', + 'rule_trigger_updated_at_before_choice' => 'A transação foi atualizada pela última vez..', + 'rule_trigger_updated_at_before' => 'A transação foi atualizada pela última vez antes de ":trigger_value"', + 'rule_trigger_updated_at_after_choice' => 'A transação foi atualizada pela última vez depois de..', + 'rule_trigger_updated_at_after' => 'A transação foi atualizada pela última vez após ":trigger_value"', + 'rule_trigger_foreign_amount_is_choice' => 'Quantidade em moeda estrangeira é exatamente..', + 'rule_trigger_foreign_amount_is' => 'Quantidade em moeda estrangeira é exatamente ":trigger_value"', + 'rule_trigger_foreign_amount_less_choice' => 'Quantidade em moeda estrangeira é menor que..', + 'rule_trigger_foreign_amount_less' => 'Quantia em moeda estrangeira é inferior a ":trigger_value"', + 'rule_trigger_foreign_amount_more_choice' => 'Quantidade em moeda estrangeira é maior que..', + 'rule_trigger_foreign_amount_more' => 'Quantia em moeda estrangeira é maior que ":trigger_value"', + 'rule_trigger_attachment_name_is_choice' => 'Qualquer nome do anexo é..', + 'rule_trigger_attachment_name_is' => 'Qualquer nome de anexo é ":trigger_value"', + 'rule_trigger_attachment_name_contains_choice' => 'Qualquer nome do anexo contém..', + 'rule_trigger_attachment_name_contains' => 'Qualquer nome do anexo contém ":trigger_value"', + 'rule_trigger_attachment_name_starts_choice' => 'Qualquer nome do anexo começa com..', + 'rule_trigger_attachment_name_starts' => 'Qualquer nome de anexo começa com ":trigger_value"', + 'rule_trigger_attachment_name_ends_choice' => 'Qualquer nome de anexo termina com..', + 'rule_trigger_attachment_name_ends' => 'Qualquer nome de anexo termina com ":trigger_value"', + 'rule_trigger_attachment_notes_are_choice' => 'Qualquer nota de anexo é..', + 'rule_trigger_attachment_notes_are' => 'Qualquer nota de anexo é ":trigger_value"', + 'rule_trigger_attachment_notes_contains_choice' => 'Qualquer nota de anexo contém..', + 'rule_trigger_attachment_notes_contains' => 'Qualquer nota de anexo contém ":trigger_value"', + 'rule_trigger_attachment_notes_starts_choice' => 'Qualquer nota de anexo começa com..', + 'rule_trigger_attachment_notes_starts' => 'Qualquer nota de anexo começa com ":trigger_value"', + 'rule_trigger_attachment_notes_ends_choice' => 'Qualquer nota de anexo termina com..', + 'rule_trigger_attachment_notes_ends' => 'Qualquer nota de anexo termina com ":trigger_value"', // actions 'rule_action_delete_transaction_choice' => 'EXCLUIR transação (!)', @@ -999,14 +999,14 @@ return [ 'pref_optional_tj_internal_reference' => 'Referência interna', 'pref_optional_tj_notes' => 'Notas', 'pref_optional_tj_attachments' => 'Anexos', - 'pref_optional_tj_external_url' => 'External URL', + 'pref_optional_tj_external_url' => 'URL externa', 'pref_optional_tj_location' => 'Localização', 'pref_optional_tj_links' => 'Links da transação', 'optional_field_meta_dates' => 'Datas', 'optional_field_meta_business' => 'Negócios', 'optional_field_attachments' => 'Anexos', 'optional_field_meta_data' => 'Meta dados opcionais', - 'external_url' => 'External URL', + 'external_url' => 'URL externa', // profile: 'delete_stuff_header' => 'Apagar dados', @@ -1310,10 +1310,10 @@ return [ 'running_again_loss' => 'Transações previamente vinculadas a esta conta podem perder sua conexão se elas (não mais) corresponderem à(s) regra(s).', 'bill_related_rules' => 'Regras relacionadas a esta conta', 'repeats' => 'Repetições', - 'bill_end_date_help' => 'Optional field. The bill is expected to end on this date.', - 'bill_extension_date_help' => 'Optional field. The bill must be extended (or cancelled) on or before this date.', - 'bill_end_index_line' => 'This bill ends on :date', - 'bill_extension_index_line' => 'This bill must be extended or cancelled on :date', + 'bill_end_date_help' => 'Campo opcional. Espera-se que a fatura termine nesta data.', + 'bill_extension_date_help' => 'Campo opcional. A fatura deve ser renovada (ou cancelada) nesta ou antes desta data.', + 'bill_end_index_line' => 'Esta fatura termina em :date', + 'bill_extension_index_line' => 'Esta fatura deve ser renovada ou cancelada em :date', 'connected_journals' => 'Transações conectadas', 'auto_match_on' => 'Automaticamente correspondente com Firefly III', 'auto_match_off' => 'Não corresponde automaticamente com Firefly III', @@ -1434,7 +1434,7 @@ return [ 'stored_new_account' => 'Nova conta ":name" armazenado!', 'stored_new_account_js' => 'Nova conta "{name}" armazenada!', 'updated_account' => 'Conta ":name" atualizada', - 'updated_account_js' => 'Updated account "{title}".', + 'updated_account_js' => 'Conta atualizada "{title}".', 'credit_card_options' => 'Opções de cartão de crédito', 'no_transactions_account' => 'Não há transações (neste período) para a conta ativa ":name".', 'no_transactions_period' => 'Não há transações (neste período).', @@ -1466,7 +1466,7 @@ return [ 'already_cleared_transactions' => 'Transações já removidas (:count)', 'submitted_end_balance' => 'Saldo final enviado', 'initial_balance_description' => 'Saldo inicial para ":account"', - 'liability_credit_description' => 'Liability credit for ":account"', + 'liability_credit_description' => 'Passivo de crédito para ":account"', 'interest_calc_' => 'desconhecido', 'interest_calc_daily' => 'Por dia', 'interest_calc_monthly' => 'Por mês', @@ -1661,8 +1661,8 @@ return [ 'credit_card_type_monthlyFull' => 'Pagamento completo todo mês', 'liability_direction_credit' => 'Devo este débito', 'liability_direction_debit' => 'Devo este débito a outra pessoa', - 'liability_direction_credit_short' => 'Owed this debt', - 'liability_direction_debit_short' => 'Owe this debt', + 'liability_direction_credit_short' => 'Devia este débito', + 'liability_direction_debit_short' => 'Deve este débito', 'liability_direction__short' => 'Desconhecida', 'liability_direction_null_short' => 'Desconhecida', 'Liability credit' => 'Crédito de passivo', @@ -2052,8 +2052,8 @@ return [ 'no_budgets_title_default' => 'Vamos criar um orçamento', 'no_rules_title_default' => 'Vamos criar uma regra', 'no_budgets_intro_default' => 'Você ainda não tem nenhum orçamento. Eles são utilizados para organizar suas despesas em grupos lógicos, que você pode aplicar para limitar suas despesas.', - 'no_rules_intro_default' => 'You have no rules yet. Rules are powerful automations that can handle transactions for you.', - 'no_rules_imperative_default' => 'Rules can be very useful when you\'re managing transactions. Let\'s create one now:', + 'no_rules_intro_default' => 'Você ainda não tem regras. As regras são poderosas automações que podem gerenciar transações para você.', + 'no_rules_imperative_default' => 'As regras podem ser muito úteis quando você está gerenciando transações. Vamos criar uma agora:', 'no_budgets_imperative_default' => 'Os orçamentos são as ferramentas básicas de gestão financeira. Vamos criar um agora:', 'no_budgets_create_default' => 'Criar orçamento', 'no_rules_create_default' => 'Criar uma regra', @@ -2098,9 +2098,9 @@ return [ 'recurring_daily' => 'Todos os dias', 'recurring_weekly' => ':weekday toda semana', 'recurring_weekly_skip' => 'A cada :skipª semana em :weekday', - 'recurring_monthly' => 'Todos os meses no dia :dayOfMonth(st, nd, rd, th)', + 'recurring_monthly' => 'Todos os meses no dia :dayOfMonth', 'recurring_monthly_skip' => 'A cada mês :skipº no dia :dayOfMonth', - 'recurring_ndom' => 'Todos os meses no(a) :dayOfMonth(st, nd, rd, th) :weekday', + 'recurring_ndom' => 'Todos os meses na(o) :dayOfMonth ª/º :weekday', 'recurring_yearly' => 'Todos os anos em :date', 'overview_for_recurrence' => 'Visão geral da transação recorrente ":title"', 'warning_duplicates_repetitions' => 'Em raras ocasiões, as datas aparecem duas vezes na lista. Isso pode acontecer quando várias repetições colidem. Firefly III sempre irá gerar uma transação por dia.', diff --git a/resources/lang/pt_BR/form.php b/resources/lang/pt_BR/form.php index 947a0c9794..d8a3f7a605 100644 --- a/resources/lang/pt_BR/form.php +++ b/resources/lang/pt_BR/form.php @@ -84,7 +84,7 @@ return [ 'liability_type' => 'Tipo de passivo', 'interest' => 'Juros', 'interest_period' => 'Período de juros', - 'extension_date' => 'Extension date', + 'extension_date' => 'Data de renovação', 'type' => 'Tipo', 'convert_Withdrawal' => 'Converter a retirada', 'convert_Deposit' => 'Converter o depósito', @@ -121,7 +121,7 @@ return [ 'stop_processing' => 'Parar processamento', 'start_date' => 'Início do intervalo', 'end_date' => 'Final do intervalo', - 'enddate' => 'End date', + 'enddate' => 'Data final', 'start' => 'Início do intervalo', 'end' => 'Término do intervalo', 'delete_account' => 'Apagar conta ":name"', @@ -181,7 +181,7 @@ return [ 'login_name' => 'Login', 'is_owner' => 'É administrador(a)?', 'url' => 'link', - 'bill_end_date' => 'End date', + 'bill_end_date' => 'Data final', // import 'apply_rules' => 'Aplicar Regras', diff --git a/resources/lang/pt_BR/list.php b/resources/lang/pt_BR/list.php index 89a1572210..6bb74004af 100644 --- a/resources/lang/pt_BR/list.php +++ b/resources/lang/pt_BR/list.php @@ -46,7 +46,7 @@ return [ 'account_type' => 'Tipo de conta', 'created_at' => 'Criado em', 'account' => 'Conta', - 'external_url' => 'External URL', + 'external_url' => 'URL externa', 'matchingAmount' => 'Total', 'destination' => 'Destino', 'source' => 'Fonte', @@ -76,7 +76,7 @@ return [ 'type' => 'Tipo', 'completed' => 'Completo', 'iban' => 'IBAN', - 'account_number' => 'Account number', + 'account_number' => 'Número da conta', 'paid_current_period' => 'Pago este período', 'email' => 'Email', 'registered_at' => 'Registrado em', @@ -133,7 +133,7 @@ return [ 'interest' => 'Juros', 'interest_period' => 'Período de juros', 'liability_type' => 'Tipo de passivo', - 'liability_direction' => 'Liability in/out', + 'liability_direction' => 'Entrada/saída de passivo', 'end_date' => 'Data final', 'payment_info' => 'Informação de pagamento', 'expected_info' => 'Próxima transação esperada', diff --git a/resources/lang/pt_BR/validation.php b/resources/lang/pt_BR/validation.php index 57a07a732e..382a33f5a3 100644 --- a/resources/lang/pt_BR/validation.php +++ b/resources/lang/pt_BR/validation.php @@ -209,15 +209,15 @@ return [ 'need_id_in_edit' => 'Cada divisão deve ter transaction_journal_id (ID válido ou 0).', 'ob_source_need_data' => 'É necessário obter um ID de uma conta de origem válida e/ou um nome de conta de origem válido para continuar.', - 'lc_source_need_data' => 'Need to get a valid source account ID to continue.', + 'lc_source_need_data' => 'É necessário obter um ID de uma conta de origem válida para continuar.', 'ob_dest_need_data' => 'É necessário obter um ID de uma conta de origem válida e/ou um nome de conta de origem válido para continuar.', 'ob_dest_bad_data' => 'Não foi possível encontrar uma conta de destino válida ao pesquisar por ID ":id" ou nome ":name".', 'generic_invalid_source' => 'Você não pode usar esta conta como conta de origem.', 'generic_invalid_destination' => 'Você não pode usar esta conta como conta de destino.', - 'generic_no_source' => 'You must submit source account information.', - 'generic_no_destination' => 'You must submit destination account information.', + 'generic_no_source' => 'Você precisa enviar as informações da conta de origem.', + 'generic_no_destination' => 'Você precisa enviar as informações da conta de destino.', 'gte.numeric' => ':attribute deve ser maior ou igual a :value.', 'gt.numeric' => 'O campo :attribute deve ser maior que :value.', diff --git a/resources/lang/pt_PT/breadcrumbs.php b/resources/lang/pt_PT/breadcrumbs.php index fbb00bacc1..5a0f19ac3d 100644 --- a/resources/lang/pt_PT/breadcrumbs.php +++ b/resources/lang/pt_PT/breadcrumbs.php @@ -70,8 +70,8 @@ return [ 'edit_object_group' => 'Editar grupo ":title"', 'delete_object_group' => 'Apagar grupo ":title"', 'logout_others' => 'Sair de outras sessões', - 'asset_accounts' => 'Asset accounts', - 'expense_accounts' => 'Expense accounts', + 'asset_accounts' => 'Conta de activos', + 'expense_accounts' => 'Conta de despesas', 'revenue_accounts' => 'Revenue accounts', 'liabilities_accounts' => 'Liabilities', 'placeholder' => '[Placeholder]', diff --git a/resources/lang/pt_PT/config.php b/resources/lang/pt_PT/config.php index abea86f4af..e3915bdb8f 100644 --- a/resources/lang/pt_PT/config.php +++ b/resources/lang/pt_PT/config.php @@ -53,9 +53,9 @@ return [ 'year_js' => 'YYYY', //'half_year' => '%B %Y', - 'half_year_js' => '\QQ YYYY', + 'half_year_js' => '\TQ YYYY', - 'quarter_fns' => "'Trimestre' Q, yyyy", + 'quarter_fns' => "'T' Q, yyyy", 'half_year_fns' => "'H{half}', yyyy", 'dow_1' => 'Segunda', 'dow_2' => 'Terça', diff --git a/resources/lang/pt_PT/firefly.php b/resources/lang/pt_PT/firefly.php index 6028115af6..4b2e667371 100644 --- a/resources/lang/pt_PT/firefly.php +++ b/resources/lang/pt_PT/firefly.php @@ -31,7 +31,7 @@ return [ 'split' => 'Dividir', 'single_split' => 'Dividir', 'clone' => 'Duplicar', - 'confirm_action' => 'Confirm action', + 'confirm_action' => 'Confirmar ação', 'last_seven_days' => 'Últimos sete dias', 'last_thirty_days' => 'Últimos trinta dias', 'last_180_days' => 'Últimos 180 dias', @@ -290,7 +290,7 @@ return [ 'search_modifier_id' => 'O ID da transação é ":value"', 'search_modifier_date_before' => 'A data da transacção é anterior ou a ":value"', 'search_modifier_date_after' => 'A data da transacção é posterior ou a ":value"', - 'search_modifier_external_id_is' => 'External ID is ":value"', + 'search_modifier_external_id_is' => 'ID externo é ":value"', 'search_modifier_no_external_url' => 'The transaction has no external URL', 'search_modifier_any_external_url' => 'The transaction must have a (any) external URL', 'search_modifier_internal_reference_is' => 'Internal reference is ":value"', @@ -315,7 +315,7 @@ return [ 'search_modifier_notes_is' => 'The transaction notes are exactly ":value"', 'search_modifier_no_notes' => 'A transacção não pode tem notas', 'search_modifier_any_notes' => 'A transacção tem que ter notas', - 'search_modifier_amount_is' => 'Amount is exactly :value', + 'search_modifier_amount_is' => 'O valor é exactamente :value', 'search_modifier_amount_less' => 'Valor é menor ou igual a :value', 'search_modifier_amount_more' => 'Valor é maior ou igual a :value', 'search_modifier_source_account_is' => 'O nome da conta de origem é exactamente ":value"', @@ -358,7 +358,7 @@ return [ // new 'search_modifier_tag_is_not' => 'No tag is ":value"', - 'search_modifier_account_is' => 'Either account is ":value"', + 'search_modifier_account_is' => 'Qualquer das contas é ":value"', 'search_modifier_account_contains' => 'Either account contains ":value"', 'search_modifier_account_ends' => 'Either account ends with ":value"', 'search_modifier_account_starts' => 'Either account starts with ":value"', @@ -647,7 +647,7 @@ return [ 'rule_trigger_category_is' => 'A categoria é ":trigger_value"', 'rule_trigger_amount_less_choice' => 'O montante é menos de..', 'rule_trigger_amount_less' => 'Quantia é menor que :trigger_value', - 'rule_trigger_amount_is_choice' => 'Amount is..', + 'rule_trigger_amount_is_choice' => 'O montante é..', 'rule_trigger_amount_is' => 'Amount is :trigger_value', 'rule_trigger_amount_more_choice' => 'O montante é maior que..', 'rule_trigger_amount_more' => 'Quantia é maior que :trigger_value', @@ -709,7 +709,7 @@ return [ 'rule_trigger_notes_ends' => 'Notes end with ":trigger_value"', 'rule_trigger_bill_is_choice' => 'A fatura é..', 'rule_trigger_bill_is' => 'A fatura é ":trigger_value"', - 'rule_trigger_external_id_is_choice' => 'External ID is..', + 'rule_trigger_external_id_is_choice' => 'O ID Externo é..', 'rule_trigger_external_id_is' => 'External ID is ":trigger_value"', 'rule_trigger_internal_reference_is_choice' => 'Internal reference is..', 'rule_trigger_internal_reference_is' => 'Internal reference is ":trigger_value"', @@ -748,7 +748,7 @@ return [ 'rule_trigger_category_ends' => 'Category ends with ":trigger_value"', 'rule_trigger_category_starts_choice' => 'Category starts with..', 'rule_trigger_category_starts' => 'Category starts with ":trigger_value"', - 'rule_trigger_budget_contains_choice' => 'Budget contains..', + 'rule_trigger_budget_contains_choice' => 'O orçamento contém..', 'rule_trigger_budget_contains' => 'Budget contains ":trigger_value"', 'rule_trigger_budget_ends_choice' => 'Budget ends with..', 'rule_trigger_budget_ends' => 'Budget ends with ":trigger_value"', diff --git a/resources/lang/pt_PT/list.php b/resources/lang/pt_PT/list.php index 33c689b293..4bd192970e 100644 --- a/resources/lang/pt_PT/list.php +++ b/resources/lang/pt_PT/list.php @@ -46,7 +46,7 @@ return [ 'account_type' => 'Tipo de conta', 'created_at' => 'Criado em', 'account' => 'Conta', - 'external_url' => 'External URL', + 'external_url' => 'URL Externo', 'matchingAmount' => 'Montante', 'destination' => 'Destino', 'source' => 'Origem', @@ -76,7 +76,7 @@ return [ 'type' => 'Tipo', 'completed' => 'Concluido', 'iban' => 'IBAN', - 'account_number' => 'Account number', + 'account_number' => 'Número de conta', 'paid_current_period' => 'Pago este periodo', 'email' => 'Email', 'registered_at' => 'Registado em', diff --git a/resources/lang/ru_RU/errors.php b/resources/lang/ru_RU/errors.php index 1b87722e01..8e81e7823a 100644 --- a/resources/lang/ru_RU/errors.php +++ b/resources/lang/ru_RU/errors.php @@ -33,7 +33,7 @@ return [ 'be_right_back' => 'Временно недоступен!', 'check_back' => 'Firefly III отключён для необходимого обслуживания. Пожалуйста, зайдите через секунду.', 'error_occurred' => 'Упс! Произошла ошибка.', - 'db_error_occurred' => 'Whoops! A database error occurred.', + 'db_error_occurred' => 'Упс! Произошла ошибка базы данных.', 'error_not_recoverable' => 'К сожалению, эта ошибка не была исправлена :(. Firefly III сломался. Ошибка:', 'error' => 'Ошибка', 'error_location' => 'Эта ошибка произошла в файле :file в строке :line с кодом :code.', diff --git a/sonar-project.properties b/sonar-project.properties index 94b650879b..45b97ac70e 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -12,6 +12,6 @@ sonar.organization=firefly-iii #sonar.sourceEncoding=UTF-8 -sonar.projectVersion=5.7.10 +sonar.projectVersion=5.7.11 sonar.sources=app,bootstrap,database,resources/assets,resources/views,routes,tests sonar.sourceEncoding=UTF-8 From 1d21a8788c7700b31d8e7061e2dc52ecf6df1c6a Mon Sep 17 00:00:00 2001 From: James Cole Date: Sun, 4 Sep 2022 13:58:21 +0200 Subject: [PATCH 12/15] Update packages and meta data. --- frontend/src/i18n/de_DE/index.js | 22 +- frontend/src/i18n/el_GR/index.js | 10 +- frontend/src/i18n/pt_BR/index.js | 32 +- frontend/src/i18n/pt_PT/index.js | 12 +- public/v1/js/app.js | 2 +- public/v1/js/app.js.LICENSE.txt | 4 +- public/v1/js/app_vue.js | 2 +- public/v1/js/app_vue.js.LICENSE.txt | 2 +- public/v1/js/create_transaction.js | 2 +- public/v1/js/edit_transaction.js | 2 +- public/v1/js/profile.js | 2 +- resources/assets/js/locales/de.json | 2 +- resources/assets/js/locales/pt-br.json | 2 +- yarn.lock | 526 +++++++++++++------------ 14 files changed, 313 insertions(+), 309 deletions(-) diff --git a/frontend/src/i18n/de_DE/index.js b/frontend/src/i18n/de_DE/index.js index f3c82617ff..37c98af09a 100644 --- a/frontend/src/i18n/de_DE/index.js +++ b/frontend/src/i18n/de_DE/index.js @@ -61,10 +61,10 @@ export default { "rule_trigger_source_account_ends_choice": "Quellkonto-Name endet mit..", "rule_trigger_source_account_is_choice": "Quellkonto-Name lautet..", "rule_trigger_source_account_contains_choice": "Quellkonto-Name enh\u00e4lt..", - "rule_trigger_account_id_choice": "Either account ID is exactly..", + "rule_trigger_account_id_choice": "Beide Konto IDs sind exakt..", "rule_trigger_source_account_id_choice": "Quellkonto ID ist genau..", "rule_trigger_destination_account_id_choice": "Zielkonto ID ist genau..", - "rule_trigger_account_is_cash_choice": "Either account is cash", + "rule_trigger_account_is_cash_choice": "Beide Konten sind Bargeld", "rule_trigger_source_is_cash_choice": "Quellkonto ist (bar)", "rule_trigger_destination_is_cash_choice": "Zielkonto ist (bar)", "rule_trigger_source_account_nr_starts_choice": "Quellkontonummer\/IBAN beginnt mit..", @@ -82,19 +82,19 @@ export default { "rule_trigger_transaction_type_choice": "Buchung ist vom Typ..", "rule_trigger_category_is_choice": "Kategorie ist..", "rule_trigger_amount_less_choice": "Betrag ist geringer als..", - "rule_trigger_amount_is_choice": "Amount is..", + "rule_trigger_amount_is_choice": "Betrag ist..", "rule_trigger_amount_more_choice": "Betrag ist mehr als..", "rule_trigger_description_starts_choice": "Beschreibung beginnt mit..", "rule_trigger_description_ends_choice": "Beschreibung endet mit..", "rule_trigger_description_contains_choice": "Beschreibung enth\u00e4lt..", "rule_trigger_description_is_choice": "Beschreibung ist..", - "rule_trigger_date_on_choice": "Transaction date is..", + "rule_trigger_date_on_choice": "Buchungsdatum lautet..", "rule_trigger_date_before_choice": "Buchungsdatum ist vor \u2026", "rule_trigger_date_after_choice": "Buchungsdatum ist nach \u2026", - "rule_trigger_created_at_on_choice": "Transaction was made on..", - "rule_trigger_updated_at_on_choice": "Transaction was last edited on..", + "rule_trigger_created_at_on_choice": "Transaktion wurde gemacht am..", + "rule_trigger_updated_at_on_choice": "Transaktion wurde zuletzt bearbeitet am..", "rule_trigger_budget_is_choice": "Budget ist..", - "rule_trigger_tag_is_choice": "Any tag is..", + "rule_trigger_tag_is_choice": "Irgendein Schlagwort lautet..", "rule_trigger_currency_is_choice": "Buchungsw\u00e4hrung ist \u2026", "rule_trigger_foreign_currency_is_choice": "Fremdw\u00e4hrung der Buchung ist \u2026", "rule_trigger_has_attachments_choice": "Hat mindestens so viele Anh\u00e4nge", @@ -108,9 +108,9 @@ export default { "rule_trigger_has_any_tag_choice": "Enth\u00e4lt einen oder mehrere (beliebige) Schlagw\u00f6rter", "rule_trigger_any_notes_choice": "Hat (beliebige) Notizen", "rule_trigger_no_notes_choice": "Hat keine Notizen", - "rule_trigger_notes_is_choice": "Notes are..", - "rule_trigger_notes_contains_choice": "Notes contain..", - "rule_trigger_notes_starts_choice": "Notes start with..", + "rule_trigger_notes_is_choice": "Notizen lauten..", + "rule_trigger_notes_contains_choice": "Notizen beinhalten..", + "rule_trigger_notes_starts_choice": "Notizen beginnen mit..", "rule_trigger_notes_ends_choice": "Notizen enden mit..", "rule_trigger_bill_is_choice": "Rechnung ist..", "rule_trigger_external_id_is_choice": "Externe ID ist..", @@ -157,7 +157,7 @@ export default { "repeat_freq_quarterly": "viertelj\u00e4hrlich", "repeat_freq_monthly": "monatlich", "repeat_freq_weekly": "w\u00f6chentlich", - "single_split": "Teil", + "single_split": "Teilen", "asset_accounts": "Bestandskonten", "expense_accounts": "Ausgabekonten", "liabilities_accounts": "Verbindlichkeiten", diff --git a/frontend/src/i18n/el_GR/index.js b/frontend/src/i18n/el_GR/index.js index 092a07f9e2..1d979b5d59 100644 --- a/frontend/src/i18n/el_GR/index.js +++ b/frontend/src/i18n/el_GR/index.js @@ -45,7 +45,7 @@ export default { "delete": "\u0394\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae", "reconcile": "\u03a4\u03b1\u03ba\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7", "create_new_asset": "\u0394\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03af\u03b1 \u03bd\u03ad\u03bf\u03c5 \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03bf\u03cd \u03ba\u03b5\u03c6\u03b1\u03bb\u03b1\u03af\u03bf\u03c5", - "confirm_action": "Confirm action", + "confirm_action": "\u0395\u03c0\u03b9\u03b2\u03b5\u03b2\u03b1\u03af\u03c9\u03c3\u03b7 \u03b5\u03bd\u03ad\u03c1\u03b3\u03b5\u03b9\u03b1\u03c2", "new_budget": "\u039d\u03ad\u03bf\u03c2 \u03c0\u03c1\u03bf\u03cb\u03c0\u03bf\u03bb\u03bf\u03b3\u03b9\u03c3\u03bc\u03cc\u03c2", "new_asset_account": "\u039d\u03ad\u03bf\u03c2 \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03cc\u03c2 \u03ba\u03b5\u03c6\u03b1\u03bb\u03b1\u03af\u03bf\u03c5", "newTransfer": "\u039d\u03ad\u03b1 \u03bc\u03b5\u03c4\u03b1\u03c6\u03bf\u03c1\u03ac", @@ -94,7 +94,7 @@ export default { "rule_trigger_created_at_on_choice": "Transaction was made on..", "rule_trigger_updated_at_on_choice": "Transaction was last edited on..", "rule_trigger_budget_is_choice": "\u039f \u03c0\u03c1\u03bf\u03cb\u03c0\u03bf\u03bb\u03bf\u03b3\u03b9\u03c3\u03bc\u03cc\u03c2 \u03b5\u03af\u03bd\u03b1\u03b9..", - "rule_trigger_tag_is_choice": "Any tag is..", + "rule_trigger_tag_is_choice": "\u039f\u03c0\u03bf\u03b9\u03b1\u03b4\u03ae\u03c0\u03bf\u03c4\u03b5 \u03b5\u03c4\u03b9\u03ba\u03ad\u03c4\u03b1 \u03b5\u03af\u03bd\u03b1\u03b9..", "rule_trigger_currency_is_choice": "\u03a4\u03bf \u03bd\u03cc\u03bc\u03b9\u03c3\u03bc\u03b1 \u03c4\u03b7\u03c2 \u03c3\u03c5\u03bd\u03b1\u03bb\u03bb\u03b1\u03b3\u03ae\u03c2 \u03b5\u03af\u03bd\u03b1\u03b9..", "rule_trigger_foreign_currency_is_choice": "\u03a4\u03bf \u03be\u03ad\u03bd\u03bf \u03bd\u03cc\u03bc\u03b9\u03c3\u03bc\u03b1 \u03c4\u03b7\u03c2 \u03c3\u03c5\u03bd\u03b1\u03bb\u03bb\u03b1\u03b3\u03ae\u03c2 \u03b5\u03af\u03bd\u03b1\u03b9..", "rule_trigger_has_attachments_choice": "\u0388\u03c7\u03b5\u03b9 \u03c4\u03bf\u03c5\u03bb\u03ac\u03c7\u03b9\u03c3\u03c4\u03bf\u03bd \u03c4\u03cc\u03c3\u03b1 \u03c3\u03c5\u03bd\u03b7\u03bc\u03bc\u03ad\u03bd\u03b1", @@ -108,9 +108,9 @@ export default { "rule_trigger_has_any_tag_choice": "\u0388\u03c7\u03b5\u03b9 \u03c0\u03b5\u03c1\u03b9\u03c3\u03c3\u03cc\u03c4\u03b5\u03c1\u03b5\u03c2 \u03b1\u03c0\u03cc \u03bc\u03af\u03b1 (\u03bf\u03c0\u03bf\u03b9\u03b5\u03c3\u03b4\u03ae\u03c0\u03bf\u03c4\u03b5) \u03b5\u03c4\u03b9\u03ba\u03ad\u03c4\u03b5\u03c2", "rule_trigger_any_notes_choice": "\u0388\u03c7\u03b5\u03b9 (\u03bf\u03c0\u03bf\u03b9\u03b5\u03c3\u03b4\u03ae\u03c0\u03bf\u03c4\u03b5) \u03c3\u03b7\u03bc\u03b5\u03b9\u03ce\u03c3\u03b5\u03b9\u03c2", "rule_trigger_no_notes_choice": "\u0394\u03b5\u03bd \u03ad\u03c7\u03b5\u03b9 \u03c3\u03b7\u03bc\u03b5\u03b9\u03ce\u03c3\u03b5\u03b9\u03c2", - "rule_trigger_notes_is_choice": "Notes are..", - "rule_trigger_notes_contains_choice": "Notes contain..", - "rule_trigger_notes_starts_choice": "Notes start with..", + "rule_trigger_notes_is_choice": "\u039f\u03b9 \u03c3\u03b7\u03bc\u03b5\u03b9\u03ce\u03c3\u03b5\u03b9\u03c2 \u03b5\u03af\u03bd\u03b1\u03b9..", + "rule_trigger_notes_contains_choice": "\u039f\u03b9 \u03c3\u03b7\u03bc\u03b5\u03b9\u03ce\u03c3\u03b5\u03b9\u03c2 \u03c0\u03b5\u03c1\u03b9\u03ad\u03c7\u03bf\u03c5\u03bd..", + "rule_trigger_notes_starts_choice": "\u039f\u03b9 \u03c3\u03b7\u03bc\u03b5\u03b9\u03ce\u03c3\u03b5\u03b9\u03c2 \u03b1\u03c1\u03c7\u03af\u03b6\u03bf\u03c5\u03bd \u03bc\u03b5..", "rule_trigger_notes_ends_choice": "Notes end with..", "rule_trigger_bill_is_choice": "\u03a4\u03bf \u03c0\u03ac\u03b3\u03b9\u03bf \u03ad\u03be\u03bf\u03b4\u03bf \u03b5\u03af\u03bd\u03b1\u03b9..", "rule_trigger_external_id_is_choice": "External ID is..", diff --git a/frontend/src/i18n/pt_BR/index.js b/frontend/src/i18n/pt_BR/index.js index 0959c09144..13d9776e2a 100644 --- a/frontend/src/i18n/pt_BR/index.js +++ b/frontend/src/i18n/pt_BR/index.js @@ -1,7 +1,7 @@ export default { "config": { "html_language": "pt-br", - "month_and_day_fns": "MMMM d, y" + "month_and_day_fns": "d [de] MMMM [de] y" }, "form": { "name": "Nome", @@ -18,7 +18,7 @@ export default { }, "list": { "name": "Nome", - "account_number": "Account number", + "account_number": "N\u00famero da conta", "currentBalance": "Saldo atual", "lastActivity": "\u00daltima atividade", "active": "Est\u00e1 ativo?" @@ -45,7 +45,7 @@ export default { "delete": "Apagar", "reconcile": "Reconciliar", "create_new_asset": "Criar nova conta de ativo", - "confirm_action": "Confirm action", + "confirm_action": "Confirmar a\u00e7\u00e3o", "new_budget": "Novo or\u00e7amento", "new_asset_account": "Nova conta de ativo", "newTransfer": "Nova transfer\u00eancia", @@ -61,10 +61,10 @@ export default { "rule_trigger_source_account_ends_choice": "O nome da conta de origem termina com..", "rule_trigger_source_account_is_choice": "Nome da conta de origem \u00e9..", "rule_trigger_source_account_contains_choice": "Nome da conta de origem cont\u00e9m..", - "rule_trigger_account_id_choice": "Either account ID is exactly..", + "rule_trigger_account_id_choice": "Ou ID da conta \u00e9 exatamente..", "rule_trigger_source_account_id_choice": "ID da conta de origem \u00e9 igual a..", "rule_trigger_destination_account_id_choice": "ID da conta de destino \u00e9 igual a..", - "rule_trigger_account_is_cash_choice": "Either account is cash", + "rule_trigger_account_is_cash_choice": "Ou a conta \u00e9 dinheiro", "rule_trigger_source_is_cash_choice": "Conta de origem \u00e9 (dinheiro)", "rule_trigger_destination_is_cash_choice": "Conta de destino \u00e9 (dinheiro)", "rule_trigger_source_account_nr_starts_choice": "N\u00famero da conta de origem (IBAN) come\u00e7a com..", @@ -82,19 +82,19 @@ export default { "rule_trigger_transaction_type_choice": "Transa\u00e7\u00e3o \u00e9 do tipo..", "rule_trigger_category_is_choice": "A categoria \u00e9..", "rule_trigger_amount_less_choice": "Quantia \u00e9 inferior a..", - "rule_trigger_amount_is_choice": "Amount is..", + "rule_trigger_amount_is_choice": "Quantia \u00e9..", "rule_trigger_amount_more_choice": "Quantia \u00e9 mais do que..", "rule_trigger_description_starts_choice": "Descri\u00e7\u00e3o come\u00e7a com..", "rule_trigger_description_ends_choice": "Descri\u00e7\u00e3o termina com..", "rule_trigger_description_contains_choice": "Descri\u00e7\u00e3o cont\u00e9m..", "rule_trigger_description_is_choice": "Descri\u00e7\u00e3o \u00e9..", - "rule_trigger_date_on_choice": "Transaction date is..", + "rule_trigger_date_on_choice": "Data da transa\u00e7\u00e3o \u00e9..", "rule_trigger_date_before_choice": "A data da transa\u00e7\u00e3o \u00e9 anterior a...", "rule_trigger_date_after_choice": "A data da transa\u00e7\u00e3o \u00e9 posterior a...", - "rule_trigger_created_at_on_choice": "Transaction was made on..", - "rule_trigger_updated_at_on_choice": "Transaction was last edited on..", + "rule_trigger_created_at_on_choice": "Transa\u00e7\u00e3o foi feita em..", + "rule_trigger_updated_at_on_choice": "Transa\u00e7\u00e3o foi editada pela \u00faltima vez em..", "rule_trigger_budget_is_choice": "O or\u00e7amento \u00e9..", - "rule_trigger_tag_is_choice": "Any tag is..", + "rule_trigger_tag_is_choice": "Qualquer tag \u00e9..", "rule_trigger_currency_is_choice": "A moeda da transa\u00e7\u00e3o \u00e9..", "rule_trigger_foreign_currency_is_choice": "A moeda estrangeira da transa\u00e7\u00e3o \u00e9...", "rule_trigger_has_attachments_choice": "Tem pelo menos essa quantidade de anexos", @@ -108,13 +108,13 @@ export default { "rule_trigger_has_any_tag_choice": "Tem uma ou mais tags (qualquer)", "rule_trigger_any_notes_choice": "Tem notas (qualquer)", "rule_trigger_no_notes_choice": "N\u00e3o tem notas", - "rule_trigger_notes_is_choice": "Notes are..", - "rule_trigger_notes_contains_choice": "Notes contain..", - "rule_trigger_notes_starts_choice": "Notes start with..", - "rule_trigger_notes_ends_choice": "Notes end with..", + "rule_trigger_notes_is_choice": "As notas s\u00e3o..", + "rule_trigger_notes_contains_choice": "As notas cont\u00eam..", + "rule_trigger_notes_starts_choice": "As notas come\u00e7am com..", + "rule_trigger_notes_ends_choice": "As notas terminam com..", "rule_trigger_bill_is_choice": "Conta \u00e9..", - "rule_trigger_external_id_is_choice": "External ID is..", - "rule_trigger_internal_reference_is_choice": "Internal reference is..", + "rule_trigger_external_id_is_choice": "ID externo \u00e9..", + "rule_trigger_internal_reference_is_choice": "Refer\u00eancia interna \u00e9..", "rule_trigger_journal_id_choice": "ID do livro de transa\u00e7\u00e3o \u00e9..", "rule_trigger_any_external_url_choice": "A transa\u00e7\u00e3o tem um link externo", "rule_trigger_no_external_url_choice": "A transa\u00e7\u00e3o n\u00e3o tem um link externo", diff --git a/frontend/src/i18n/pt_PT/index.js b/frontend/src/i18n/pt_PT/index.js index a44e961444..a8132a2842 100644 --- a/frontend/src/i18n/pt_PT/index.js +++ b/frontend/src/i18n/pt_PT/index.js @@ -18,7 +18,7 @@ export default { }, "list": { "name": "Nome", - "account_number": "Account number", + "account_number": "N\u00famero de conta", "currentBalance": "Saldo actual", "lastActivity": "Ultima actividade", "active": "Esta activo?" @@ -34,8 +34,8 @@ export default { "title_deposit": "Revenue \/ income", "title_transfer": "Transfer\u00eancias", "title_transfers": "Transfer\u00eancias", - "asset_accounts": "Asset accounts", - "expense_accounts": "Expense accounts", + "asset_accounts": "Conta de activos", + "expense_accounts": "Conta de despesas", "revenue_accounts": "Revenue accounts", "liabilities_accounts": "Liabilities" }, @@ -45,7 +45,7 @@ export default { "delete": "Apagar", "reconcile": "Reconciliar", "create_new_asset": "Criar nova conta de activos", - "confirm_action": "Confirm action", + "confirm_action": "Confirmar a\u00e7\u00e3o", "new_budget": "Novo or\u00e7amento", "new_asset_account": "Nova conta de ativos", "newTransfer": "Nova transfer\u00eancia", @@ -82,7 +82,7 @@ export default { "rule_trigger_transaction_type_choice": "A transa\u00e7\u00e3o \u00e9 do tipo..", "rule_trigger_category_is_choice": "A categoria \u00e9..", "rule_trigger_amount_less_choice": "O montante \u00e9 menos de..", - "rule_trigger_amount_is_choice": "Amount is..", + "rule_trigger_amount_is_choice": "O montante \u00e9..", "rule_trigger_amount_more_choice": "O montante \u00e9 maior que..", "rule_trigger_description_starts_choice": "A descricao comeca com..", "rule_trigger_description_ends_choice": "A descricao termina com..", @@ -113,7 +113,7 @@ export default { "rule_trigger_notes_starts_choice": "Notes start with..", "rule_trigger_notes_ends_choice": "Notes end with..", "rule_trigger_bill_is_choice": "A fatura \u00e9..", - "rule_trigger_external_id_is_choice": "External ID is..", + "rule_trigger_external_id_is_choice": "O ID Externo \u00e9..", "rule_trigger_internal_reference_is_choice": "Internal reference is..", "rule_trigger_journal_id_choice": "O ID do di\u00e1rio de transa\u00e7\u00f5es \u00e9..", "rule_trigger_any_external_url_choice": "Transaction has an external URL", diff --git a/public/v1/js/app.js b/public/v1/js/app.js index 54bf401b01..0a22c9da4e 100644 --- a/public/v1/js/app.js +++ b/public/v1/js/app.js @@ -1,2 +1,2 @@ /*! For license information please see app.js.LICENSE.txt */ -(()=>{var t={3002:()=>{if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");!function(t){"use strict";var e=jQuery.fn.jquery.split(" ")[0].split(".");if(e[0]<2&&e[1]<9||1==e[0]&&9==e[1]&&e[2]<1||e[0]>3)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(),function(t){"use strict";t.fn.emulateTransitionEnd=function(e){var n=!1,i=this;t(this).one("bsTransitionEnd",(function(){n=!0}));return setTimeout((function(){n||t(i).trigger(t.support.transition.end)}),e),this},t((function(){t.support.transition=function(){var t=document.createElement("bootstrap"),e={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var n in e)if(void 0!==t.style[n])return{end:e[n]};return!1}(),t.support.transition&&(t.event.special.bsTransitionEnd={bindType:t.support.transition.end,delegateType:t.support.transition.end,handle:function(e){if(t(e.target).is(this))return e.handleObj.handler.apply(this,arguments)}})}))}(jQuery),function(t){"use strict";var e='[data-dismiss="alert"]',n=function(n){t(n).on("click",e,this.close)};n.VERSION="3.4.1",n.TRANSITION_DURATION=150,n.prototype.close=function(e){var i=t(this),o=i.attr("data-target");o||(o=(o=i.attr("href"))&&o.replace(/.*(?=#[^\s]*$)/,"")),o="#"===o?[]:o;var r=t(document).find(o);function s(){r.detach().trigger("closed.bs.alert").remove()}e&&e.preventDefault(),r.length||(r=i.closest(".alert")),r.trigger(e=t.Event("close.bs.alert")),e.isDefaultPrevented()||(r.removeClass("in"),t.support.transition&&r.hasClass("fade")?r.one("bsTransitionEnd",s).emulateTransitionEnd(n.TRANSITION_DURATION):s())};var i=t.fn.alert;t.fn.alert=function(e){return this.each((function(){var i=t(this),o=i.data("bs.alert");o||i.data("bs.alert",o=new n(this)),"string"==typeof e&&o[e].call(i)}))},t.fn.alert.Constructor=n,t.fn.alert.noConflict=function(){return t.fn.alert=i,this},t(document).on("click.bs.alert.data-api",e,n.prototype.close)}(jQuery),function(t){"use strict";var e=function(n,i){this.$element=t(n),this.options=t.extend({},e.DEFAULTS,i),this.isLoading=!1};function n(n){return this.each((function(){var i=t(this),o=i.data("bs.button"),r="object"==typeof n&&n;o||i.data("bs.button",o=new e(this,r)),"toggle"==n?o.toggle():n&&o.setState(n)}))}e.VERSION="3.4.1",e.DEFAULTS={loadingText:"loading..."},e.prototype.setState=function(e){var n="disabled",i=this.$element,o=i.is("input")?"val":"html",r=i.data();e+="Text",null==r.resetText&&i.data("resetText",i[o]()),setTimeout(t.proxy((function(){i[o](null==r[e]?this.options[e]:r[e]),"loadingText"==e?(this.isLoading=!0,i.addClass(n).attr(n,n).prop(n,!0)):this.isLoading&&(this.isLoading=!1,i.removeClass(n).removeAttr(n).prop(n,!1))}),this),0)},e.prototype.toggle=function(){var t=!0,e=this.$element.closest('[data-toggle="buttons"]');if(e.length){var n=this.$element.find("input");"radio"==n.prop("type")?(n.prop("checked")&&(t=!1),e.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==n.prop("type")&&(n.prop("checked")!==this.$element.hasClass("active")&&(t=!1),this.$element.toggleClass("active")),n.prop("checked",this.$element.hasClass("active")),t&&n.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var i=t.fn.button;t.fn.button=n,t.fn.button.Constructor=e,t.fn.button.noConflict=function(){return t.fn.button=i,this},t(document).on("click.bs.button.data-api",'[data-toggle^="button"]',(function(e){var i=t(e.target).closest(".btn");n.call(i,"toggle"),t(e.target).is('input[type="radio"], input[type="checkbox"]')||(e.preventDefault(),i.is("input,button")?i.trigger("focus"):i.find("input:visible,button:visible").first().trigger("focus"))})).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',(function(e){t(e.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(e.type))}))}(jQuery),function(t){"use strict";var e=function(e,n){this.$element=t(e),this.$indicators=this.$element.find(".carousel-indicators"),this.options=n,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",t.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",t.proxy(this.pause,this)).on("mouseleave.bs.carousel",t.proxy(this.cycle,this))};function n(n){return this.each((function(){var i=t(this),o=i.data("bs.carousel"),r=t.extend({},e.DEFAULTS,i.data(),"object"==typeof n&&n),s="string"==typeof n?n:r.slide;o||i.data("bs.carousel",o=new e(this,r)),"number"==typeof n?o.to(n):s?o[s]():r.interval&&o.pause().cycle()}))}e.VERSION="3.4.1",e.TRANSITION_DURATION=600,e.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},e.prototype.keydown=function(t){if(!/input|textarea/i.test(t.target.tagName)){switch(t.which){case 37:this.prev();break;case 39:this.next();break;default:return}t.preventDefault()}},e.prototype.cycle=function(e){return e||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(t.proxy(this.next,this),this.options.interval)),this},e.prototype.getItemIndex=function(t){return this.$items=t.parent().children(".item"),this.$items.index(t||this.$active)},e.prototype.getItemForDirection=function(t,e){var n=this.getItemIndex(e);if(("prev"==t&&0===n||"next"==t&&n==this.$items.length-1)&&!this.options.wrap)return e;var i=(n+("prev"==t?-1:1))%this.$items.length;return this.$items.eq(i)},e.prototype.to=function(t){var e=this,n=this.getItemIndex(this.$active=this.$element.find(".item.active"));if(!(t>this.$items.length-1||t<0))return this.sliding?this.$element.one("slid.bs.carousel",(function(){e.to(t)})):n==t?this.pause().cycle():this.slide(t>n?"next":"prev",this.$items.eq(t))},e.prototype.pause=function(e){return e||(this.paused=!0),this.$element.find(".next, .prev").length&&t.support.transition&&(this.$element.trigger(t.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},e.prototype.next=function(){if(!this.sliding)return this.slide("next")},e.prototype.prev=function(){if(!this.sliding)return this.slide("prev")},e.prototype.slide=function(n,i){var o=this.$element.find(".item.active"),r=i||this.getItemForDirection(n,o),s=this.interval,a="next"==n?"left":"right",l=this;if(r.hasClass("active"))return this.sliding=!1;var u=r[0],c=t.Event("slide.bs.carousel",{relatedTarget:u,direction:a});if(this.$element.trigger(c),!c.isDefaultPrevented()){if(this.sliding=!0,s&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var f=t(this.$indicators.children()[this.getItemIndex(r)]);f&&f.addClass("active")}var p=t.Event("slid.bs.carousel",{relatedTarget:u,direction:a});return t.support.transition&&this.$element.hasClass("slide")?(r.addClass(n),"object"==typeof r&&r.length&&r[0].offsetWidth,o.addClass(a),r.addClass(a),o.one("bsTransitionEnd",(function(){r.removeClass([n,a].join(" ")).addClass("active"),o.removeClass(["active",a].join(" ")),l.sliding=!1,setTimeout((function(){l.$element.trigger(p)}),0)})).emulateTransitionEnd(e.TRANSITION_DURATION)):(o.removeClass("active"),r.addClass("active"),this.sliding=!1,this.$element.trigger(p)),s&&this.cycle(),this}};var i=t.fn.carousel;t.fn.carousel=n,t.fn.carousel.Constructor=e,t.fn.carousel.noConflict=function(){return t.fn.carousel=i,this};var o=function(e){var i=t(this),o=i.attr("href");o&&(o=o.replace(/.*(?=#[^\s]+$)/,""));var r=i.attr("data-target")||o,s=t(document).find(r);if(s.hasClass("carousel")){var a=t.extend({},s.data(),i.data()),l=i.attr("data-slide-to");l&&(a.interval=!1),n.call(s,a),l&&s.data("bs.carousel").to(l),e.preventDefault()}};t(document).on("click.bs.carousel.data-api","[data-slide]",o).on("click.bs.carousel.data-api","[data-slide-to]",o),t(window).on("load",(function(){t('[data-ride="carousel"]').each((function(){var e=t(this);n.call(e,e.data())}))}))}(jQuery),function(t){"use strict";var e=function(n,i){this.$element=t(n),this.options=t.extend({},e.DEFAULTS,i),this.$trigger=t('[data-toggle="collapse"][href="#'+n.id+'"],[data-toggle="collapse"][data-target="#'+n.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};function n(e){var n,i=e.attr("data-target")||(n=e.attr("href"))&&n.replace(/.*(?=#[^\s]+$)/,"");return t(document).find(i)}function i(n){return this.each((function(){var i=t(this),o=i.data("bs.collapse"),r=t.extend({},e.DEFAULTS,i.data(),"object"==typeof n&&n);!o&&r.toggle&&/show|hide/.test(n)&&(r.toggle=!1),o||i.data("bs.collapse",o=new e(this,r)),"string"==typeof n&&o[n]()}))}e.VERSION="3.4.1",e.TRANSITION_DURATION=350,e.DEFAULTS={toggle:!0},e.prototype.dimension=function(){return this.$element.hasClass("width")?"width":"height"},e.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var n,o=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(o&&o.length&&(n=o.data("bs.collapse"))&&n.transitioning)){var r=t.Event("show.bs.collapse");if(this.$element.trigger(r),!r.isDefaultPrevented()){o&&o.length&&(i.call(o,"hide"),n||o.data("bs.collapse",null));var s=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[s](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var a=function(){this.$element.removeClass("collapsing").addClass("collapse in")[s](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!t.support.transition)return a.call(this);var l=t.camelCase(["scroll",s].join("-"));this.$element.one("bsTransitionEnd",t.proxy(a,this)).emulateTransitionEnd(e.TRANSITION_DURATION)[s](this.$element[0][l])}}}},e.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var n=t.Event("hide.bs.collapse");if(this.$element.trigger(n),!n.isDefaultPrevented()){var i=this.dimension();this.$element[i](this.$element[i]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var o=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};if(!t.support.transition)return o.call(this);this.$element[i](0).one("bsTransitionEnd",t.proxy(o,this)).emulateTransitionEnd(e.TRANSITION_DURATION)}}},e.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},e.prototype.getParent=function(){return t(document).find(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(t.proxy((function(e,i){var o=t(i);this.addAriaAndCollapsedClass(n(o),o)}),this)).end()},e.prototype.addAriaAndCollapsedClass=function(t,e){var n=t.hasClass("in");t.attr("aria-expanded",n),e.toggleClass("collapsed",!n).attr("aria-expanded",n)};var o=t.fn.collapse;t.fn.collapse=i,t.fn.collapse.Constructor=e,t.fn.collapse.noConflict=function(){return t.fn.collapse=o,this},t(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',(function(e){var o=t(this);o.attr("data-target")||e.preventDefault();var r=n(o),s=r.data("bs.collapse")?"toggle":o.data();i.call(r,s)}))}(jQuery),function(t){"use strict";var e='[data-toggle="dropdown"]',n=function(e){t(e).on("click.bs.dropdown",this.toggle)};function i(e){var n=e.attr("data-target");n||(n=(n=e.attr("href"))&&/#[A-Za-z]/.test(n)&&n.replace(/.*(?=#[^\s]*$)/,""));var i="#"!==n?t(document).find(n):null;return i&&i.length?i:e.parent()}function o(n){n&&3===n.which||(t(".dropdown-backdrop").remove(),t(e).each((function(){var e=t(this),o=i(e),r={relatedTarget:this};o.hasClass("open")&&(n&&"click"==n.type&&/input|textarea/i.test(n.target.tagName)&&t.contains(o[0],n.target)||(o.trigger(n=t.Event("hide.bs.dropdown",r)),n.isDefaultPrevented()||(e.attr("aria-expanded","false"),o.removeClass("open").trigger(t.Event("hidden.bs.dropdown",r)))))})))}n.VERSION="3.4.1",n.prototype.toggle=function(e){var n=t(this);if(!n.is(".disabled, :disabled")){var r=i(n),s=r.hasClass("open");if(o(),!s){"ontouchstart"in document.documentElement&&!r.closest(".navbar-nav").length&&t(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(t(this)).on("click",o);var a={relatedTarget:this};if(r.trigger(e=t.Event("show.bs.dropdown",a)),e.isDefaultPrevented())return;n.trigger("focus").attr("aria-expanded","true"),r.toggleClass("open").trigger(t.Event("shown.bs.dropdown",a))}return!1}},n.prototype.keydown=function(n){if(/(38|40|27|32)/.test(n.which)&&!/input|textarea/i.test(n.target.tagName)){var o=t(this);if(n.preventDefault(),n.stopPropagation(),!o.is(".disabled, :disabled")){var r=i(o),s=r.hasClass("open");if(!s&&27!=n.which||s&&27==n.which)return 27==n.which&&r.find(e).trigger("focus"),o.trigger("click");var a=r.find(".dropdown-menu li:not(.disabled):visible a");if(a.length){var l=a.index(n.target);38==n.which&&l>0&&l--,40==n.which&&ldocument.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&t?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!t?this.scrollbarWidth:""})},e.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},e.prototype.checkScrollbar=function(){var t=window.innerWidth;if(!t){var e=document.documentElement.getBoundingClientRect();t=e.right-Math.abs(e.left)}this.bodyIsOverflowing=document.body.clientWidth
',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0},sanitize:!0,sanitizeFn:null,whiteList:i},l.prototype.init=function(e,n,i){if(this.enabled=!0,this.type=e,this.$element=t(n),this.options=this.getOptions(i),this.$viewport=this.options.viewport&&t(document).find(t.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var o=this.options.trigger.split(" "),r=o.length;r--;){var s=o[r];if("click"==s)this.$element.on("click."+this.type,this.options.selector,t.proxy(this.toggle,this));else if("manual"!=s){var a="hover"==s?"mouseenter":"focusin",l="hover"==s?"mouseleave":"focusout";this.$element.on(a+"."+this.type,this.options.selector,t.proxy(this.enter,this)),this.$element.on(l+"."+this.type,this.options.selector,t.proxy(this.leave,this))}}this.options.selector?this._options=t.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},l.prototype.getDefaults=function(){return l.DEFAULTS},l.prototype.getOptions=function(n){var i=this.$element.data();for(var o in i)i.hasOwnProperty(o)&&-1!==t.inArray(o,e)&&delete i[o];return(n=t.extend({},this.getDefaults(),i,n)).delay&&"number"==typeof n.delay&&(n.delay={show:n.delay,hide:n.delay}),n.sanitize&&(n.template=a(n.template,n.whiteList,n.sanitizeFn)),n},l.prototype.getDelegateOptions=function(){var e={},n=this.getDefaults();return this._options&&t.each(this._options,(function(t,i){n[t]!=i&&(e[t]=i)})),e},l.prototype.enter=function(e){var n=e instanceof this.constructor?e:t(e.currentTarget).data("bs."+this.type);if(n||(n=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,n)),e instanceof t.Event&&(n.inState["focusin"==e.type?"focus":"hover"]=!0),n.tip().hasClass("in")||"in"==n.hoverState)n.hoverState="in";else{if(clearTimeout(n.timeout),n.hoverState="in",!n.options.delay||!n.options.delay.show)return n.show();n.timeout=setTimeout((function(){"in"==n.hoverState&&n.show()}),n.options.delay.show)}},l.prototype.isInStateTrue=function(){for(var t in this.inState)if(this.inState[t])return!0;return!1},l.prototype.leave=function(e){var n=e instanceof this.constructor?e:t(e.currentTarget).data("bs."+this.type);if(n||(n=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,n)),e instanceof t.Event&&(n.inState["focusout"==e.type?"focus":"hover"]=!1),!n.isInStateTrue()){if(clearTimeout(n.timeout),n.hoverState="out",!n.options.delay||!n.options.delay.hide)return n.hide();n.timeout=setTimeout((function(){"out"==n.hoverState&&n.hide()}),n.options.delay.hide)}},l.prototype.show=function(){var e=t.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(e);var n=t.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(e.isDefaultPrevented()||!n)return;var i=this,o=this.tip(),r=this.getUID(this.type);this.setContent(),o.attr("id",r),this.$element.attr("aria-describedby",r),this.options.animation&&o.addClass("fade");var s="function"==typeof this.options.placement?this.options.placement.call(this,o[0],this.$element[0]):this.options.placement,a=/\s?auto?\s?/i,u=a.test(s);u&&(s=s.replace(a,"")||"top"),o.detach().css({top:0,left:0,display:"block"}).addClass(s).data("bs."+this.type,this),this.options.container?o.appendTo(t(document).find(this.options.container)):o.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var c=this.getPosition(),f=o[0].offsetWidth,p=o[0].offsetHeight;if(u){var d=s,h=this.getPosition(this.$viewport);s="bottom"==s&&c.bottom+p>h.bottom?"top":"top"==s&&c.top-ph.width?"left":"left"==s&&c.left-fs.top+s.height&&(o.top=s.top+s.height-l)}else{var u=e.left-r,c=e.left+r+n;us.right&&(o.left=s.left+s.width-c)}return o},l.prototype.getTitle=function(){var t=this.$element,e=this.options;return t.attr("data-original-title")||("function"==typeof e.title?e.title.call(t[0]):e.title)},l.prototype.getUID=function(t){do{t+=~~(1e6*Math.random())}while(document.getElementById(t));return t},l.prototype.tip=function(){if(!this.$tip&&(this.$tip=t(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},l.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},l.prototype.enable=function(){this.enabled=!0},l.prototype.disable=function(){this.enabled=!1},l.prototype.toggleEnabled=function(){this.enabled=!this.enabled},l.prototype.toggle=function(e){var n=this;e&&((n=t(e.currentTarget).data("bs."+this.type))||(n=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,n))),e?(n.inState.click=!n.inState.click,n.isInStateTrue()?n.enter(n):n.leave(n)):n.tip().hasClass("in")?n.leave(n):n.enter(n)},l.prototype.destroy=function(){var t=this;clearTimeout(this.timeout),this.hide((function(){t.$element.off("."+t.type).removeData("bs."+t.type),t.$tip&&t.$tip.detach(),t.$tip=null,t.$arrow=null,t.$viewport=null,t.$element=null}))},l.prototype.sanitizeHtml=function(t){return a(t,this.options.whiteList,this.options.sanitizeFn)};var u=t.fn.tooltip;t.fn.tooltip=function(e){return this.each((function(){var n=t(this),i=n.data("bs.tooltip"),o="object"==typeof e&&e;!i&&/destroy|hide/.test(e)||(i||n.data("bs.tooltip",i=new l(this,o)),"string"==typeof e&&i[e]())}))},t.fn.tooltip.Constructor=l,t.fn.tooltip.noConflict=function(){return t.fn.tooltip=u,this}}(jQuery),function(t){"use strict";var e=function(t,e){this.init("popover",t,e)};if(!t.fn.tooltip)throw new Error("Popover requires tooltip.js");e.VERSION="3.4.1",e.DEFAULTS=t.extend({},t.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:''}),(e.prototype=t.extend({},t.fn.tooltip.Constructor.prototype)).constructor=e,e.prototype.getDefaults=function(){return e.DEFAULTS},e.prototype.setContent=function(){var t=this.tip(),e=this.getTitle(),n=this.getContent();if(this.options.html){var i=typeof n;this.options.sanitize&&(e=this.sanitizeHtml(e),"string"===i&&(n=this.sanitizeHtml(n))),t.find(".popover-title").html(e),t.find(".popover-content").children().detach().end()["string"===i?"html":"append"](n)}else t.find(".popover-title").text(e),t.find(".popover-content").children().detach().end().text(n);t.removeClass("fade top bottom left right in"),t.find(".popover-title").html()||t.find(".popover-title").hide()},e.prototype.hasContent=function(){return this.getTitle()||this.getContent()},e.prototype.getContent=function(){var t=this.$element,e=this.options;return t.attr("data-content")||("function"==typeof e.content?e.content.call(t[0]):e.content)},e.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var n=t.fn.popover;t.fn.popover=function(n){return this.each((function(){var i=t(this),o=i.data("bs.popover"),r="object"==typeof n&&n;!o&&/destroy|hide/.test(n)||(o||i.data("bs.popover",o=new e(this,r)),"string"==typeof n&&o[n]())}))},t.fn.popover.Constructor=e,t.fn.popover.noConflict=function(){return t.fn.popover=n,this}}(jQuery),function(t){"use strict";function e(n,i){this.$body=t(document.body),this.$scrollElement=t(n).is(document.body)?t(window):t(n),this.options=t.extend({},e.DEFAULTS,i),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",t.proxy(this.process,this)),this.refresh(),this.process()}function n(n){return this.each((function(){var i=t(this),o=i.data("bs.scrollspy"),r="object"==typeof n&&n;o||i.data("bs.scrollspy",o=new e(this,r)),"string"==typeof n&&o[n]()}))}e.VERSION="3.4.1",e.DEFAULTS={offset:10},e.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},e.prototype.refresh=function(){var e=this,n="offset",i=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),t.isWindow(this.$scrollElement[0])||(n="position",i=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map((function(){var e=t(this),o=e.data("target")||e.attr("href"),r=/^#./.test(o)&&t(o);return r&&r.length&&r.is(":visible")&&[[r[n]().top+i,o]]||null})).sort((function(t,e){return t[0]-e[0]})).each((function(){e.offsets.push(this[0]),e.targets.push(this[1])}))},e.prototype.process=function(){var t,e=this.$scrollElement.scrollTop()+this.options.offset,n=this.getScrollHeight(),i=this.options.offset+n-this.$scrollElement.height(),o=this.offsets,r=this.targets,s=this.activeTarget;if(this.scrollHeight!=n&&this.refresh(),e>=i)return s!=(t=r[r.length-1])&&this.activate(t);if(s&&e=o[t]&&(void 0===o[t+1]||e .active"),s=o&&t.support.transition&&(r.length&&r.hasClass("fade")||!!i.find("> .fade").length);function a(){r.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),n.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),s?(n[0].offsetWidth,n.addClass("in")):n.removeClass("fade"),n.parent(".dropdown-menu").length&&n.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),o&&o()}r.length&&s?r.one("bsTransitionEnd",a).emulateTransitionEnd(e.TRANSITION_DURATION):a(),r.removeClass("in")};var i=t.fn.tab;t.fn.tab=n,t.fn.tab.Constructor=e,t.fn.tab.noConflict=function(){return t.fn.tab=i,this};var o=function(e){e.preventDefault(),n.call(t(this),"show")};t(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',o).on("click.bs.tab.data-api",'[data-toggle="pill"]',o)}(jQuery),function(t){"use strict";var e=function(n,i){this.options=t.extend({},e.DEFAULTS,i);var o=this.options.target===e.DEFAULTS.target?t(this.options.target):t(document).find(this.options.target);this.$target=o.on("scroll.bs.affix.data-api",t.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",t.proxy(this.checkPositionWithEventLoop,this)),this.$element=t(n),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};function n(n){return this.each((function(){var i=t(this),o=i.data("bs.affix"),r="object"==typeof n&&n;o||i.data("bs.affix",o=new e(this,r)),"string"==typeof n&&o[n]()}))}e.VERSION="3.4.1",e.RESET="affix affix-top affix-bottom",e.DEFAULTS={offset:0,target:window},e.prototype.getState=function(t,e,n,i){var o=this.$target.scrollTop(),r=this.$element.offset(),s=this.$target.height();if(null!=n&&"top"==this.affixed)return o=t-i&&"bottom"},e.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(e.RESET).addClass("affix");var t=this.$target.scrollTop(),n=this.$element.offset();return this.pinnedOffset=n.top-t},e.prototype.checkPositionWithEventLoop=function(){setTimeout(t.proxy(this.checkPosition,this),1)},e.prototype.checkPosition=function(){if(this.$element.is(":visible")){var n=this.$element.height(),i=this.options.offset,o=i.top,r=i.bottom,s=Math.max(t(document).height(),t(document.body).height());"object"!=typeof i&&(r=o=i),"function"==typeof o&&(o=i.top(this.$element)),"function"==typeof r&&(r=i.bottom(this.$element));var a=this.getState(s,n,o,r);if(this.affixed!=a){null!=this.unpin&&this.$element.css("top","");var l="affix"+(a?"-"+a:""),u=t.Event(l+".bs.affix");if(this.$element.trigger(u),u.isDefaultPrevented())return;this.affixed=a,this.unpin="bottom"==a?this.getPinnedOffset():null,this.$element.removeClass(e.RESET).addClass(l).trigger(l.replace("affix","affixed")+".bs.affix")}"bottom"==a&&this.$element.offset({top:s-n-r})}};var i=t.fn.affix;t.fn.affix=n,t.fn.affix.Constructor=e,t.fn.affix.noConflict=function(){return t.fn.affix=i,this},t(window).on("load",(function(){t('[data-spy="affix"]').each((function(){var e=t(this),i=e.data();i.offset=i.offset||{},null!=i.offsetBottom&&(i.offset.bottom=i.offsetBottom),null!=i.offsetTop&&(i.offset.top=i.offsetTop),n.call(e,i)}))}))}(jQuery)},9755:function(t,e){var n;!function(e,n){"use strict";"object"==typeof t.exports?t.exports=e.document?n(e,!0):function(t){if(!t.document)throw new Error("jQuery requires a window with a document");return n(t)}:n(e)}("undefined"!=typeof window?window:this,(function(i,o){"use strict";var r=[],s=Object.getPrototypeOf,a=r.slice,l=r.flat?function(t){return r.flat.call(t)}:function(t){return r.concat.apply([],t)},u=r.push,c=r.indexOf,f={},p=f.toString,d=f.hasOwnProperty,h=d.toString,g=h.call(Object),v={},m=function(t){return"function"==typeof t&&"number"!=typeof t.nodeType&&"function"!=typeof t.item},y=function(t){return null!=t&&t===t.window},b=i.document,x={type:!0,src:!0,nonce:!0,noModule:!0};function w(t,e,n){var i,o,r=(n=n||b).createElement("script");if(r.text=t,e)for(i in x)(o=e[i]||e.getAttribute&&e.getAttribute(i))&&r.setAttribute(i,o);n.head.appendChild(r).parentNode.removeChild(r)}function T(t){return null==t?t+"":"object"==typeof t||"function"==typeof t?f[p.call(t)]||"object":typeof t}var C="3.6.0",E=function(t,e){return new E.fn.init(t,e)};function S(t){var e=!!t&&"length"in t&&t.length,n=T(t);return!m(t)&&!y(t)&&("array"===n||0===e||"number"==typeof e&&e>0&&e-1 in t)}E.fn=E.prototype={jquery:C,constructor:E,length:0,toArray:function(){return a.call(this)},get:function(t){return null==t?a.call(this):t<0?this[t+this.length]:this[t]},pushStack:function(t){var e=E.merge(this.constructor(),t);return e.prevObject=this,e},each:function(t){return E.each(this,t)},map:function(t){return this.pushStack(E.map(this,(function(e,n){return t.call(e,n,e)})))},slice:function(){return this.pushStack(a.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(E.grep(this,(function(t,e){return(e+1)%2})))},odd:function(){return this.pushStack(E.grep(this,(function(t,e){return e%2})))},eq:function(t){var e=this.length,n=+t+(t<0?e:0);return this.pushStack(n>=0&&n+~]|[\\x20\\t\\r\\n\\f])[\\x20\\t\\r\\n\\f]*"),z=new RegExp(H+"|>"),V=new RegExp(F),Q=new RegExp("^"+P+"$"),X={ID:new RegExp("^#("+P+")"),CLASS:new RegExp("^\\.("+P+")"),TAG:new RegExp("^("+P+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\([\\x20\\t\\r\\n\\f]*(even|odd|(([+-]|)(\\d*)n|)[\\x20\\t\\r\\n\\f]*(?:([+-]|)[\\x20\\t\\r\\n\\f]*(\\d+)|))[\\x20\\t\\r\\n\\f]*\\)|)","i"),bool:new RegExp("^(?:"+q+")$","i"),needsContext:new RegExp("^[\\x20\\t\\r\\n\\f]*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\([\\x20\\t\\r\\n\\f]*((?:-\\d)?\\d*)[\\x20\\t\\r\\n\\f]*\\)|)(?=[^-]|$)","i")},G=/HTML$/i,Y=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,tt=/[+~]/,et=new RegExp("\\\\[\\da-fA-F]{1,6}[\\x20\\t\\r\\n\\f]?|\\\\([^\\r\\n\\f])","g"),nt=function(t,e){var n="0x"+t.slice(1)-65536;return e||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},it=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ot=function(t,e){return e?"\0"===t?"�":t.slice(0,-1)+"\\"+t.charCodeAt(t.length-1).toString(16)+" ":"\\"+t},rt=function(){p()},st=xt((function(t){return!0===t.disabled&&"fieldset"===t.nodeName.toLowerCase()}),{dir:"parentNode",next:"legend"});try{I.apply(N=L.call(w.childNodes),w.childNodes),N[w.childNodes.length].nodeType}catch(t){I={apply:N.length?function(t,e){O.apply(t,L.call(e))}:function(t,e){for(var n=t.length,i=0;t[n++]=e[i++];);t.length=n-1}}}function at(t,e,i,o){var r,a,u,c,f,h,m,y=e&&e.ownerDocument,w=e?e.nodeType:9;if(i=i||[],"string"!=typeof t||!t||1!==w&&9!==w&&11!==w)return i;if(!o&&(p(e),e=e||d,g)){if(11!==w&&(f=Z.exec(t)))if(r=f[1]){if(9===w){if(!(u=e.getElementById(r)))return i;if(u.id===r)return i.push(u),i}else if(y&&(u=y.getElementById(r))&&b(e,u)&&u.id===r)return i.push(u),i}else{if(f[2])return I.apply(i,e.getElementsByTagName(t)),i;if((r=f[3])&&n.getElementsByClassName&&e.getElementsByClassName)return I.apply(i,e.getElementsByClassName(r)),i}if(n.qsa&&!k[t+" "]&&(!v||!v.test(t))&&(1!==w||"object"!==e.nodeName.toLowerCase())){if(m=t,y=e,1===w&&(z.test(t)||_.test(t))){for((y=tt.test(t)&&mt(e.parentNode)||e)===e&&n.scope||((c=e.getAttribute("id"))?c=c.replace(it,ot):e.setAttribute("id",c=x)),a=(h=s(t)).length;a--;)h[a]=(c?"#"+c:":scope")+" "+bt(h[a]);m=h.join(",")}try{return I.apply(i,y.querySelectorAll(m)),i}catch(e){k(t,!0)}finally{c===x&&e.removeAttribute("id")}}}return l(t.replace(B,"$1"),e,i,o)}function lt(){var t=[];return function e(n,o){return t.push(n+" ")>i.cacheLength&&delete e[t.shift()],e[n+" "]=o}}function ut(t){return t[x]=!0,t}function ct(t){var e=d.createElement("fieldset");try{return!!t(e)}catch(t){return!1}finally{e.parentNode&&e.parentNode.removeChild(e),e=null}}function ft(t,e){for(var n=t.split("|"),o=n.length;o--;)i.attrHandle[n[o]]=e}function pt(t,e){var n=e&&t,i=n&&1===t.nodeType&&1===e.nodeType&&t.sourceIndex-e.sourceIndex;if(i)return i;if(n)for(;n=n.nextSibling;)if(n===e)return-1;return t?1:-1}function dt(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function ht(t){return function(e){var n=e.nodeName.toLowerCase();return("input"===n||"button"===n)&&e.type===t}}function gt(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&st(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function vt(t){return ut((function(e){return e=+e,ut((function(n,i){for(var o,r=t([],n.length,e),s=r.length;s--;)n[o=r[s]]&&(n[o]=!(i[o]=n[o]))}))}))}function mt(t){return t&&void 0!==t.getElementsByTagName&&t}for(e in n=at.support={},r=at.isXML=function(t){var e=t&&t.namespaceURI,n=t&&(t.ownerDocument||t).documentElement;return!G.test(e||n&&n.nodeName||"HTML")},p=at.setDocument=function(t){var e,o,s=t?t.ownerDocument||t:w;return s!=d&&9===s.nodeType&&s.documentElement?(h=(d=s).documentElement,g=!r(d),w!=d&&(o=d.defaultView)&&o.top!==o&&(o.addEventListener?o.addEventListener("unload",rt,!1):o.attachEvent&&o.attachEvent("onunload",rt)),n.scope=ct((function(t){return h.appendChild(t).appendChild(d.createElement("div")),void 0!==t.querySelectorAll&&!t.querySelectorAll(":scope fieldset div").length})),n.attributes=ct((function(t){return t.className="i",!t.getAttribute("className")})),n.getElementsByTagName=ct((function(t){return t.appendChild(d.createComment("")),!t.getElementsByTagName("*").length})),n.getElementsByClassName=K.test(d.getElementsByClassName),n.getById=ct((function(t){return h.appendChild(t).id=x,!d.getElementsByName||!d.getElementsByName(x).length})),n.getById?(i.filter.ID=function(t){var e=t.replace(et,nt);return function(t){return t.getAttribute("id")===e}},i.find.ID=function(t,e){if(void 0!==e.getElementById&&g){var n=e.getElementById(t);return n?[n]:[]}}):(i.filter.ID=function(t){var e=t.replace(et,nt);return function(t){var n=void 0!==t.getAttributeNode&&t.getAttributeNode("id");return n&&n.value===e}},i.find.ID=function(t,e){if(void 0!==e.getElementById&&g){var n,i,o,r=e.getElementById(t);if(r){if((n=r.getAttributeNode("id"))&&n.value===t)return[r];for(o=e.getElementsByName(t),i=0;r=o[i++];)if((n=r.getAttributeNode("id"))&&n.value===t)return[r]}return[]}}),i.find.TAG=n.getElementsByTagName?function(t,e){return void 0!==e.getElementsByTagName?e.getElementsByTagName(t):n.qsa?e.querySelectorAll(t):void 0}:function(t,e){var n,i=[],o=0,r=e.getElementsByTagName(t);if("*"===t){for(;n=r[o++];)1===n.nodeType&&i.push(n);return i}return r},i.find.CLASS=n.getElementsByClassName&&function(t,e){if(void 0!==e.getElementsByClassName&&g)return e.getElementsByClassName(t)},m=[],v=[],(n.qsa=K.test(d.querySelectorAll))&&(ct((function(t){var e;h.appendChild(t).innerHTML="",t.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]=[\\x20\\t\\r\\n\\f]*(?:''|\"\")"),t.querySelectorAll("[selected]").length||v.push("\\[[\\x20\\t\\r\\n\\f]*(?:value|"+q+")"),t.querySelectorAll("[id~="+x+"-]").length||v.push("~="),(e=d.createElement("input")).setAttribute("name",""),t.appendChild(e),t.querySelectorAll("[name='']").length||v.push("\\[[\\x20\\t\\r\\n\\f]*name[\\x20\\t\\r\\n\\f]*=[\\x20\\t\\r\\n\\f]*(?:''|\"\")"),t.querySelectorAll(":checked").length||v.push(":checked"),t.querySelectorAll("a#"+x+"+*").length||v.push(".#.+[+~]"),t.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")})),ct((function(t){t.innerHTML="";var e=d.createElement("input");e.setAttribute("type","hidden"),t.appendChild(e).setAttribute("name","D"),t.querySelectorAll("[name=d]").length&&v.push("name[\\x20\\t\\r\\n\\f]*[*^$|!~]?="),2!==t.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),h.appendChild(t).disabled=!0,2!==t.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),t.querySelectorAll("*,:x"),v.push(",.*:")}))),(n.matchesSelector=K.test(y=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&ct((function(t){n.disconnectedMatch=y.call(t,"*"),y.call(t,"[s!='']:x"),m.push("!=",F)})),v=v.length&&new RegExp(v.join("|")),m=m.length&&new RegExp(m.join("|")),e=K.test(h.compareDocumentPosition),b=e||K.test(h.contains)?function(t,e){var n=9===t.nodeType?t.documentElement:t,i=e&&e.parentNode;return t===i||!(!i||1!==i.nodeType||!(n.contains?n.contains(i):t.compareDocumentPosition&&16&t.compareDocumentPosition(i)))}:function(t,e){if(e)for(;e=e.parentNode;)if(e===t)return!0;return!1},A=e?function(t,e){if(t===e)return f=!0,0;var i=!t.compareDocumentPosition-!e.compareDocumentPosition;return i||(1&(i=(t.ownerDocument||t)==(e.ownerDocument||e)?t.compareDocumentPosition(e):1)||!n.sortDetached&&e.compareDocumentPosition(t)===i?t==d||t.ownerDocument==w&&b(w,t)?-1:e==d||e.ownerDocument==w&&b(w,e)?1:c?R(c,t)-R(c,e):0:4&i?-1:1)}:function(t,e){if(t===e)return f=!0,0;var n,i=0,o=t.parentNode,r=e.parentNode,s=[t],a=[e];if(!o||!r)return t==d?-1:e==d?1:o?-1:r?1:c?R(c,t)-R(c,e):0;if(o===r)return pt(t,e);for(n=t;n=n.parentNode;)s.unshift(n);for(n=e;n=n.parentNode;)a.unshift(n);for(;s[i]===a[i];)i++;return i?pt(s[i],a[i]):s[i]==w?-1:a[i]==w?1:0},d):d},at.matches=function(t,e){return at(t,null,null,e)},at.matchesSelector=function(t,e){if(p(t),n.matchesSelector&&g&&!k[e+" "]&&(!m||!m.test(e))&&(!v||!v.test(e)))try{var i=y.call(t,e);if(i||n.disconnectedMatch||t.document&&11!==t.document.nodeType)return i}catch(t){k(e,!0)}return at(e,d,null,[t]).length>0},at.contains=function(t,e){return(t.ownerDocument||t)!=d&&p(t),b(t,e)},at.attr=function(t,e){(t.ownerDocument||t)!=d&&p(t);var o=i.attrHandle[e.toLowerCase()],r=o&&D.call(i.attrHandle,e.toLowerCase())?o(t,e,!g):void 0;return void 0!==r?r:n.attributes||!g?t.getAttribute(e):(r=t.getAttributeNode(e))&&r.specified?r.value:null},at.escape=function(t){return(t+"").replace(it,ot)},at.error=function(t){throw new Error("Syntax error, unrecognized expression: "+t)},at.uniqueSort=function(t){var e,i=[],o=0,r=0;if(f=!n.detectDuplicates,c=!n.sortStable&&t.slice(0),t.sort(A),f){for(;e=t[r++];)e===t[r]&&(o=i.push(r));for(;o--;)t.splice(i[o],1)}return c=null,t},o=at.getText=function(t){var e,n="",i=0,r=t.nodeType;if(r){if(1===r||9===r||11===r){if("string"==typeof t.textContent)return t.textContent;for(t=t.firstChild;t;t=t.nextSibling)n+=o(t)}else if(3===r||4===r)return t.nodeValue}else for(;e=t[i++];)n+=o(e);return n},i=at.selectors={cacheLength:50,createPseudo:ut,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(t){return t[1]=t[1].replace(et,nt),t[3]=(t[3]||t[4]||t[5]||"").replace(et,nt),"~="===t[2]&&(t[3]=" "+t[3]+" "),t.slice(0,4)},CHILD:function(t){return t[1]=t[1].toLowerCase(),"nth"===t[1].slice(0,3)?(t[3]||at.error(t[0]),t[4]=+(t[4]?t[5]+(t[6]||1):2*("even"===t[3]||"odd"===t[3])),t[5]=+(t[7]+t[8]||"odd"===t[3])):t[3]&&at.error(t[0]),t},PSEUDO:function(t){var e,n=!t[6]&&t[2];return X.CHILD.test(t[0])?null:(t[3]?t[2]=t[4]||t[5]||"":n&&V.test(n)&&(e=s(n,!0))&&(e=n.indexOf(")",n.length-e)-n.length)&&(t[0]=t[0].slice(0,e),t[2]=n.slice(0,e)),t.slice(0,3))}},filter:{TAG:function(t){var e=t.replace(et,nt).toLowerCase();return"*"===t?function(){return!0}:function(t){return t.nodeName&&t.nodeName.toLowerCase()===e}},CLASS:function(t){var e=E[t+" "];return e||(e=new RegExp("(^|[\\x20\\t\\r\\n\\f])"+t+"("+H+"|$)"))&&E(t,(function(t){return e.test("string"==typeof t.className&&t.className||void 0!==t.getAttribute&&t.getAttribute("class")||"")}))},ATTR:function(t,e,n){return function(i){var o=at.attr(i,t);return null==o?"!="===e:!e||(o+="","="===e?o===n:"!="===e?o!==n:"^="===e?n&&0===o.indexOf(n):"*="===e?n&&o.indexOf(n)>-1:"$="===e?n&&o.slice(-n.length)===n:"~="===e?(" "+o.replace(W," ")+" ").indexOf(n)>-1:"|="===e&&(o===n||o.slice(0,n.length+1)===n+"-"))}},CHILD:function(t,e,n,i,o){var r="nth"!==t.slice(0,3),s="last"!==t.slice(-4),a="of-type"===e;return 1===i&&0===o?function(t){return!!t.parentNode}:function(e,n,l){var u,c,f,p,d,h,g=r!==s?"nextSibling":"previousSibling",v=e.parentNode,m=a&&e.nodeName.toLowerCase(),y=!l&&!a,b=!1;if(v){if(r){for(;g;){for(p=e;p=p[g];)if(a?p.nodeName.toLowerCase()===m:1===p.nodeType)return!1;h=g="only"===t&&!h&&"nextSibling"}return!0}if(h=[s?v.firstChild:v.lastChild],s&&y){for(b=(d=(u=(c=(f=(p=v)[x]||(p[x]={}))[p.uniqueID]||(f[p.uniqueID]={}))[t]||[])[0]===T&&u[1])&&u[2],p=d&&v.childNodes[d];p=++d&&p&&p[g]||(b=d=0)||h.pop();)if(1===p.nodeType&&++b&&p===e){c[t]=[T,d,b];break}}else if(y&&(b=d=(u=(c=(f=(p=e)[x]||(p[x]={}))[p.uniqueID]||(f[p.uniqueID]={}))[t]||[])[0]===T&&u[1]),!1===b)for(;(p=++d&&p&&p[g]||(b=d=0)||h.pop())&&((a?p.nodeName.toLowerCase()!==m:1!==p.nodeType)||!++b||(y&&((c=(f=p[x]||(p[x]={}))[p.uniqueID]||(f[p.uniqueID]={}))[t]=[T,b]),p!==e)););return(b-=o)===i||b%i==0&&b/i>=0}}},PSEUDO:function(t,e){var n,o=i.pseudos[t]||i.setFilters[t.toLowerCase()]||at.error("unsupported pseudo: "+t);return o[x]?o(e):o.length>1?(n=[t,t,"",e],i.setFilters.hasOwnProperty(t.toLowerCase())?ut((function(t,n){for(var i,r=o(t,e),s=r.length;s--;)t[i=R(t,r[s])]=!(n[i]=r[s])})):function(t){return o(t,0,n)}):o}},pseudos:{not:ut((function(t){var e=[],n=[],i=a(t.replace(B,"$1"));return i[x]?ut((function(t,e,n,o){for(var r,s=i(t,null,o,[]),a=t.length;a--;)(r=s[a])&&(t[a]=!(e[a]=r))})):function(t,o,r){return e[0]=t,i(e,null,r,n),e[0]=null,!n.pop()}})),has:ut((function(t){return function(e){return at(t,e).length>0}})),contains:ut((function(t){return t=t.replace(et,nt),function(e){return(e.textContent||o(e)).indexOf(t)>-1}})),lang:ut((function(t){return Q.test(t||"")||at.error("unsupported lang: "+t),t=t.replace(et,nt).toLowerCase(),function(e){var n;do{if(n=g?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(n=n.toLowerCase())===t||0===n.indexOf(t+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}})),target:function(e){var n=t.location&&t.location.hash;return n&&n.slice(1)===e.id},root:function(t){return t===h},focus:function(t){return t===d.activeElement&&(!d.hasFocus||d.hasFocus())&&!!(t.type||t.href||~t.tabIndex)},enabled:gt(!1),disabled:gt(!0),checked:function(t){var e=t.nodeName.toLowerCase();return"input"===e&&!!t.checked||"option"===e&&!!t.selected},selected:function(t){return t.parentNode&&t.parentNode.selectedIndex,!0===t.selected},empty:function(t){for(t=t.firstChild;t;t=t.nextSibling)if(t.nodeType<6)return!1;return!0},parent:function(t){return!i.pseudos.empty(t)},header:function(t){return J.test(t.nodeName)},input:function(t){return Y.test(t.nodeName)},button:function(t){var e=t.nodeName.toLowerCase();return"input"===e&&"button"===t.type||"button"===e},text:function(t){var e;return"input"===t.nodeName.toLowerCase()&&"text"===t.type&&(null==(e=t.getAttribute("type"))||"text"===e.toLowerCase())},first:vt((function(){return[0]})),last:vt((function(t,e){return[e-1]})),eq:vt((function(t,e,n){return[n<0?n+e:n]})),even:vt((function(t,e){for(var n=0;ne?e:n;--i>=0;)t.push(i);return t})),gt:vt((function(t,e,n){for(var i=n<0?n+e:n;++i1?function(e,n,i){for(var o=t.length;o--;)if(!t[o](e,n,i))return!1;return!0}:t[0]}function Tt(t,e,n,i,o){for(var r,s=[],a=0,l=t.length,u=null!=e;a-1&&(r[u]=!(s[u]=f))}}else m=Tt(m===s?m.splice(h,m.length):m),o?o(null,s,m,l):I.apply(s,m)}))}function Et(t){for(var e,n,o,r=t.length,s=i.relative[t[0].type],a=s||i.relative[" "],l=s?1:0,c=xt((function(t){return t===e}),a,!0),f=xt((function(t){return R(e,t)>-1}),a,!0),p=[function(t,n,i){var o=!s&&(i||n!==u)||((e=n).nodeType?c(t,n,i):f(t,n,i));return e=null,o}];l1&&wt(p),l>1&&bt(t.slice(0,l-1).concat({value:" "===t[l-2].type?"*":""})).replace(B,"$1"),n,l0,o=t.length>0,r=function(r,s,a,l,c){var f,h,v,m=0,y="0",b=r&&[],x=[],w=u,C=r||o&&i.find.TAG("*",c),E=T+=null==w?1:Math.random()||.1,S=C.length;for(c&&(u=s==d||s||c);y!==S&&null!=(f=C[y]);y++){if(o&&f){for(h=0,s||f.ownerDocument==d||(p(f),a=!g);v=t[h++];)if(v(f,s||d,a)){l.push(f);break}c&&(T=E)}n&&((f=!v&&f)&&m--,r&&b.push(f))}if(m+=y,n&&y!==m){for(h=0;v=e[h++];)v(b,x,s,a);if(r){if(m>0)for(;y--;)b[y]||x[y]||(x[y]=j.call(l));x=Tt(x)}I.apply(l,x),c&&!r&&x.length>0&&m+e.length>1&&at.uniqueSort(l)}return c&&(T=E,u=w),b};return n?ut(r):r}(r,o)),a.selector=t}return a},l=at.select=function(t,e,n,o){var r,l,u,c,f,p="function"==typeof t&&t,d=!o&&s(t=p.selector||t);if(n=n||[],1===d.length){if((l=d[0]=d[0].slice(0)).length>2&&"ID"===(u=l[0]).type&&9===e.nodeType&&g&&i.relative[l[1].type]){if(!(e=(i.find.ID(u.matches[0].replace(et,nt),e)||[])[0]))return n;p&&(e=e.parentNode),t=t.slice(l.shift().value.length)}for(r=X.needsContext.test(t)?0:l.length;r--&&(u=l[r],!i.relative[c=u.type]);)if((f=i.find[c])&&(o=f(u.matches[0].replace(et,nt),tt.test(l[0].type)&&mt(e.parentNode)||e))){if(l.splice(r,1),!(t=o.length&&bt(l)))return I.apply(n,o),n;break}}return(p||a(t,d))(o,e,!g,n,!e||tt.test(t)&&mt(e.parentNode)||e),n},n.sortStable=x.split("").sort(A).join("")===x,n.detectDuplicates=!!f,p(),n.sortDetached=ct((function(t){return 1&t.compareDocumentPosition(d.createElement("fieldset"))})),ct((function(t){return t.innerHTML="","#"===t.firstChild.getAttribute("href")}))||ft("type|href|height|width",(function(t,e,n){if(!n)return t.getAttribute(e,"type"===e.toLowerCase()?1:2)})),n.attributes&&ct((function(t){return t.innerHTML="",t.firstChild.setAttribute("value",""),""===t.firstChild.getAttribute("value")}))||ft("value",(function(t,e,n){if(!n&&"input"===t.nodeName.toLowerCase())return t.defaultValue})),ct((function(t){return null==t.getAttribute("disabled")}))||ft(q,(function(t,e,n){var i;if(!n)return!0===t[e]?e.toLowerCase():(i=t.getAttributeNode(e))&&i.specified?i.value:null})),at}(i);E.find=$,E.expr=$.selectors,E.expr[":"]=E.expr.pseudos,E.uniqueSort=E.unique=$.uniqueSort,E.text=$.getText,E.isXMLDoc=$.isXML,E.contains=$.contains,E.escapeSelector=$.escape;var k=function(t,e,n){for(var i=[],o=void 0!==n;(t=t[e])&&9!==t.nodeType;)if(1===t.nodeType){if(o&&E(t).is(n))break;i.push(t)}return i},A=function(t,e){for(var n=[];t;t=t.nextSibling)1===t.nodeType&&t!==e&&n.push(t);return n},D=E.expr.match.needsContext;function N(t,e){return t.nodeName&&t.nodeName.toLowerCase()===e.toLowerCase()}var j=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function O(t,e,n){return m(e)?E.grep(t,(function(t,i){return!!e.call(t,i,t)!==n})):e.nodeType?E.grep(t,(function(t){return t===e!==n})):"string"!=typeof e?E.grep(t,(function(t){return c.call(e,t)>-1!==n})):E.filter(e,t,n)}E.filter=function(t,e,n){var i=e[0];return n&&(t=":not("+t+")"),1===e.length&&1===i.nodeType?E.find.matchesSelector(i,t)?[i]:[]:E.find.matches(t,E.grep(e,(function(t){return 1===t.nodeType})))},E.fn.extend({find:function(t){var e,n,i=this.length,o=this;if("string"!=typeof t)return this.pushStack(E(t).filter((function(){for(e=0;e1?E.uniqueSort(n):n},filter:function(t){return this.pushStack(O(this,t||[],!1))},not:function(t){return this.pushStack(O(this,t||[],!0))},is:function(t){return!!O(this,"string"==typeof t&&D.test(t)?E(t):t||[],!1).length}});var I,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(E.fn.init=function(t,e,n){var i,o;if(!t)return this;if(n=n||I,"string"==typeof t){if(!(i="<"===t[0]&&">"===t[t.length-1]&&t.length>=3?[null,t,null]:L.exec(t))||!i[1]&&e)return!e||e.jquery?(e||n).find(t):this.constructor(e).find(t);if(i[1]){if(e=e instanceof E?e[0]:e,E.merge(this,E.parseHTML(i[1],e&&e.nodeType?e.ownerDocument||e:b,!0)),j.test(i[1])&&E.isPlainObject(e))for(i in e)m(this[i])?this[i](e[i]):this.attr(i,e[i]);return this}return(o=b.getElementById(i[2]))&&(this[0]=o,this.length=1),this}return t.nodeType?(this[0]=t,this.length=1,this):m(t)?void 0!==n.ready?n.ready(t):t(E):E.makeArray(t,this)}).prototype=E.fn,I=E(b);var R=/^(?:parents|prev(?:Until|All))/,q={children:!0,contents:!0,next:!0,prev:!0};function H(t,e){for(;(t=t[e])&&1!==t.nodeType;);return t}E.fn.extend({has:function(t){var e=E(t,this),n=e.length;return this.filter((function(){for(var t=0;t-1:1===n.nodeType&&E.find.matchesSelector(n,t))){r.push(n);break}return this.pushStack(r.length>1?E.uniqueSort(r):r)},index:function(t){return t?"string"==typeof t?c.call(E(t),this[0]):c.call(this,t.jquery?t[0]:t):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(t,e){return this.pushStack(E.uniqueSort(E.merge(this.get(),E(t,e))))},addBack:function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}}),E.each({parent:function(t){var e=t.parentNode;return e&&11!==e.nodeType?e:null},parents:function(t){return k(t,"parentNode")},parentsUntil:function(t,e,n){return k(t,"parentNode",n)},next:function(t){return H(t,"nextSibling")},prev:function(t){return H(t,"previousSibling")},nextAll:function(t){return k(t,"nextSibling")},prevAll:function(t){return k(t,"previousSibling")},nextUntil:function(t,e,n){return k(t,"nextSibling",n)},prevUntil:function(t,e,n){return k(t,"previousSibling",n)},siblings:function(t){return A((t.parentNode||{}).firstChild,t)},children:function(t){return A(t.firstChild)},contents:function(t){return null!=t.contentDocument&&s(t.contentDocument)?t.contentDocument:(N(t,"template")&&(t=t.content||t),E.merge([],t.childNodes))}},(function(t,e){E.fn[t]=function(n,i){var o=E.map(this,e,n);return"Until"!==t.slice(-5)&&(i=n),i&&"string"==typeof i&&(o=E.filter(i,o)),this.length>1&&(q[t]||E.uniqueSort(o),R.test(t)&&o.reverse()),this.pushStack(o)}}));var P=/[^\x20\t\r\n\f]+/g;function M(t){return t}function F(t){throw t}function W(t,e,n,i){var o;try{t&&m(o=t.promise)?o.call(t).done(e).fail(n):t&&m(o=t.then)?o.call(t,e,n):e.apply(void 0,[t].slice(i))}catch(t){n.apply(void 0,[t])}}E.Callbacks=function(t){t="string"==typeof t?function(t){var e={};return E.each(t.match(P)||[],(function(t,n){e[n]=!0})),e}(t):E.extend({},t);var e,n,i,o,r=[],s=[],a=-1,l=function(){for(o=o||t.once,i=e=!0;s.length;a=-1)for(n=s.shift();++a-1;)r.splice(n,1),n<=a&&a--})),this},has:function(t){return t?E.inArray(t,r)>-1:r.length>0},empty:function(){return r&&(r=[]),this},disable:function(){return o=s=[],r=n="",this},disabled:function(){return!r},lock:function(){return o=s=[],n||e||(r=n=""),this},locked:function(){return!!o},fireWith:function(t,n){return o||(n=[t,(n=n||[]).slice?n.slice():n],s.push(n),e||l()),this},fire:function(){return u.fireWith(this,arguments),this},fired:function(){return!!i}};return u},E.extend({Deferred:function(t){var e=[["notify","progress",E.Callbacks("memory"),E.Callbacks("memory"),2],["resolve","done",E.Callbacks("once memory"),E.Callbacks("once memory"),0,"resolved"],["reject","fail",E.Callbacks("once memory"),E.Callbacks("once memory"),1,"rejected"]],n="pending",o={state:function(){return n},always:function(){return r.done(arguments).fail(arguments),this},catch:function(t){return o.then(null,t)},pipe:function(){var t=arguments;return E.Deferred((function(n){E.each(e,(function(e,i){var o=m(t[i[4]])&&t[i[4]];r[i[1]]((function(){var t=o&&o.apply(this,arguments);t&&m(t.promise)?t.promise().progress(n.notify).done(n.resolve).fail(n.reject):n[i[0]+"With"](this,o?[t]:arguments)}))})),t=null})).promise()},then:function(t,n,o){var r=0;function s(t,e,n,o){return function(){var a=this,l=arguments,u=function(){var i,u;if(!(t=r&&(n!==F&&(a=void 0,l=[i]),e.rejectWith(a,l))}};t?c():(E.Deferred.getStackHook&&(c.stackTrace=E.Deferred.getStackHook()),i.setTimeout(c))}}return E.Deferred((function(i){e[0][3].add(s(0,i,m(o)?o:M,i.notifyWith)),e[1][3].add(s(0,i,m(t)?t:M)),e[2][3].add(s(0,i,m(n)?n:F))})).promise()},promise:function(t){return null!=t?E.extend(t,o):o}},r={};return E.each(e,(function(t,i){var s=i[2],a=i[5];o[i[1]]=s.add,a&&s.add((function(){n=a}),e[3-t][2].disable,e[3-t][3].disable,e[0][2].lock,e[0][3].lock),s.add(i[3].fire),r[i[0]]=function(){return r[i[0]+"With"](this===r?void 0:this,arguments),this},r[i[0]+"With"]=s.fireWith})),o.promise(r),t&&t.call(r,r),r},when:function(t){var e=arguments.length,n=e,i=Array(n),o=a.call(arguments),r=E.Deferred(),s=function(t){return function(n){i[t]=this,o[t]=arguments.length>1?a.call(arguments):n,--e||r.resolveWith(i,o)}};if(e<=1&&(W(t,r.done(s(n)).resolve,r.reject,!e),"pending"===r.state()||m(o[n]&&o[n].then)))return r.then();for(;n--;)W(o[n],s(n),r.reject);return r.promise()}});var B=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;E.Deferred.exceptionHook=function(t,e){i.console&&i.console.warn&&t&&B.test(t.name)&&i.console.warn("jQuery.Deferred exception: "+t.message,t.stack,e)},E.readyException=function(t){i.setTimeout((function(){throw t}))};var U=E.Deferred();function _(){b.removeEventListener("DOMContentLoaded",_),i.removeEventListener("load",_),E.ready()}E.fn.ready=function(t){return U.then(t).catch((function(t){E.readyException(t)})),this},E.extend({isReady:!1,readyWait:1,ready:function(t){(!0===t?--E.readyWait:E.isReady)||(E.isReady=!0,!0!==t&&--E.readyWait>0||U.resolveWith(b,[E]))}}),E.ready.then=U.then,"complete"===b.readyState||"loading"!==b.readyState&&!b.documentElement.doScroll?i.setTimeout(E.ready):(b.addEventListener("DOMContentLoaded",_),i.addEventListener("load",_));var z=function(t,e,n,i,o,r,s){var a=0,l=t.length,u=null==n;if("object"===T(n))for(a in o=!0,n)z(t,e,a,n[a],!0,r,s);else if(void 0!==i&&(o=!0,m(i)||(s=!0),u&&(s?(e.call(t,i),e=null):(u=e,e=function(t,e,n){return u.call(E(t),n)})),e))for(;a1,null,!0)},removeData:function(t){return this.each((function(){Z.remove(this,t)}))}}),E.extend({queue:function(t,e,n){var i;if(t)return e=(e||"fx")+"queue",i=K.get(t,e),n&&(!i||Array.isArray(n)?i=K.access(t,e,E.makeArray(n)):i.push(n)),i||[]},dequeue:function(t,e){e=e||"fx";var n=E.queue(t,e),i=n.length,o=n.shift(),r=E._queueHooks(t,e);"inprogress"===o&&(o=n.shift(),i--),o&&("fx"===e&&n.unshift("inprogress"),delete r.stop,o.call(t,(function(){E.dequeue(t,e)}),r)),!i&&r&&r.empty.fire()},_queueHooks:function(t,e){var n=e+"queueHooks";return K.get(t,n)||K.access(t,n,{empty:E.Callbacks("once memory").add((function(){K.remove(t,[e+"queue",n])}))})}}),E.fn.extend({queue:function(t,e){var n=2;return"string"!=typeof t&&(e=t,t="fx",n--),arguments.length\x20\t\r\n\f]*)/i,yt=/^$|^module$|\/(?:java|ecma)script/i;ht=b.createDocumentFragment().appendChild(b.createElement("div")),(gt=b.createElement("input")).setAttribute("type","radio"),gt.setAttribute("checked","checked"),gt.setAttribute("name","t"),ht.appendChild(gt),v.checkClone=ht.cloneNode(!0).cloneNode(!0).lastChild.checked,ht.innerHTML="",v.noCloneChecked=!!ht.cloneNode(!0).lastChild.defaultValue,ht.innerHTML="",v.option=!!ht.lastChild;var bt={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function xt(t,e){var n;return n=void 0!==t.getElementsByTagName?t.getElementsByTagName(e||"*"):void 0!==t.querySelectorAll?t.querySelectorAll(e||"*"):[],void 0===e||e&&N(t,e)?E.merge([t],n):n}function wt(t,e){for(var n=0,i=t.length;n",""]);var Tt=/<|&#?\w+;/;function Ct(t,e,n,i,o){for(var r,s,a,l,u,c,f=e.createDocumentFragment(),p=[],d=0,h=t.length;d-1)o&&o.push(r);else if(u=at(r),s=xt(f.appendChild(r),"script"),u&&wt(s),n)for(c=0;r=s[c++];)yt.test(r.type||"")&&n.push(r);return f}var Et=/^([^.]*)(?:\.(.+)|)/;function St(){return!0}function $t(){return!1}function kt(t,e){return t===function(){try{return b.activeElement}catch(t){}}()==("focus"===e)}function At(t,e,n,i,o,r){var s,a;if("object"==typeof e){for(a in"string"!=typeof n&&(i=i||n,n=void 0),e)At(t,a,n,i,e[a],r);return t}if(null==i&&null==o?(o=n,i=n=void 0):null==o&&("string"==typeof n?(o=i,i=void 0):(o=i,i=n,n=void 0)),!1===o)o=$t;else if(!o)return t;return 1===r&&(s=o,o=function(t){return E().off(t),s.apply(this,arguments)},o.guid=s.guid||(s.guid=E.guid++)),t.each((function(){E.event.add(this,e,o,i,n)}))}function Dt(t,e,n){n?(K.set(t,e,!1),E.event.add(t,e,{namespace:!1,handler:function(t){var i,o,r=K.get(this,e);if(1&t.isTrigger&&this[e]){if(r.length)(E.event.special[e]||{}).delegateType&&t.stopPropagation();else if(r=a.call(arguments),K.set(this,e,r),i=n(this,e),this[e](),r!==(o=K.get(this,e))||i?K.set(this,e,!1):o={},r!==o)return t.stopImmediatePropagation(),t.preventDefault(),o&&o.value}else r.length&&(K.set(this,e,{value:E.event.trigger(E.extend(r[0],E.Event.prototype),r.slice(1),this)}),t.stopImmediatePropagation())}})):void 0===K.get(t,e)&&E.event.add(t,e,St)}E.event={global:{},add:function(t,e,n,i,o){var r,s,a,l,u,c,f,p,d,h,g,v=K.get(t);if(Y(t))for(n.handler&&(n=(r=n).handler,o=r.selector),o&&E.find.matchesSelector(st,o),n.guid||(n.guid=E.guid++),(l=v.events)||(l=v.events=Object.create(null)),(s=v.handle)||(s=v.handle=function(e){return void 0!==E&&E.event.triggered!==e.type?E.event.dispatch.apply(t,arguments):void 0}),u=(e=(e||"").match(P)||[""]).length;u--;)d=g=(a=Et.exec(e[u])||[])[1],h=(a[2]||"").split(".").sort(),d&&(f=E.event.special[d]||{},d=(o?f.delegateType:f.bindType)||d,f=E.event.special[d]||{},c=E.extend({type:d,origType:g,data:i,handler:n,guid:n.guid,selector:o,needsContext:o&&E.expr.match.needsContext.test(o),namespace:h.join(".")},r),(p=l[d])||((p=l[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,i,h,s)||t.addEventListener&&t.addEventListener(d,s)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),o?p.splice(p.delegateCount++,0,c):p.push(c),E.event.global[d]=!0)},remove:function(t,e,n,i,o){var r,s,a,l,u,c,f,p,d,h,g,v=K.hasData(t)&&K.get(t);if(v&&(l=v.events)){for(u=(e=(e||"").match(P)||[""]).length;u--;)if(d=g=(a=Et.exec(e[u])||[])[1],h=(a[2]||"").split(".").sort(),d){for(f=E.event.special[d]||{},p=l[d=(i?f.delegateType:f.bindType)||d]||[],a=a[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),s=r=p.length;r--;)c=p[r],!o&&g!==c.origType||n&&n.guid!==c.guid||a&&!a.test(c.namespace)||i&&i!==c.selector&&("**"!==i||!c.selector)||(p.splice(r,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(t,c));s&&!p.length&&(f.teardown&&!1!==f.teardown.call(t,h,v.handle)||E.removeEvent(t,d,v.handle),delete l[d])}else for(d in l)E.event.remove(t,d+e[u],n,i,!0);E.isEmptyObject(l)&&K.remove(t,"handle events")}},dispatch:function(t){var e,n,i,o,r,s,a=new Array(arguments.length),l=E.event.fix(t),u=(K.get(this,"events")||Object.create(null))[l.type]||[],c=E.event.special[l.type]||{};for(a[0]=l,e=1;e=1))for(;u!==this;u=u.parentNode||this)if(1===u.nodeType&&("click"!==t.type||!0!==u.disabled)){for(r=[],s={},n=0;n-1:E.find(o,this,null,[u]).length),s[o]&&r.push(i);r.length&&a.push({elem:u,handlers:r})}return u=this,l\s*$/g;function It(t,e){return N(t,"table")&&N(11!==e.nodeType?e:e.firstChild,"tr")&&E(t).children("tbody")[0]||t}function Lt(t){return t.type=(null!==t.getAttribute("type"))+"/"+t.type,t}function Rt(t){return"true/"===(t.type||"").slice(0,5)?t.type=t.type.slice(5):t.removeAttribute("type"),t}function qt(t,e){var n,i,o,r,s,a;if(1===e.nodeType){if(K.hasData(t)&&(a=K.get(t).events))for(o in K.remove(e,"handle events"),a)for(n=0,i=a[o].length;n1&&"string"==typeof h&&!v.checkClone&&jt.test(h))return t.each((function(o){var r=t.eq(o);g&&(e[0]=h.call(this,o,r.html())),Pt(r,e,n,i)}));if(p&&(r=(o=Ct(e,t[0].ownerDocument,!1,t,i)).firstChild,1===o.childNodes.length&&(o=r),r||i)){for(a=(s=E.map(xt(o,"script"),Lt)).length;f0&&wt(s,!l&&xt(t,"script")),a},cleanData:function(t){for(var e,n,i,o=E.event.special,r=0;void 0!==(n=t[r]);r++)if(Y(n)){if(e=n[K.expando]){if(e.events)for(i in e.events)o[i]?E.event.remove(n,i):E.removeEvent(n,i,e.handle);n[K.expando]=void 0}n[Z.expando]&&(n[Z.expando]=void 0)}}}),E.fn.extend({detach:function(t){return Mt(this,t,!0)},remove:function(t){return Mt(this,t)},text:function(t){return z(this,(function(t){return void 0===t?E.text(this):this.empty().each((function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=t)}))}),null,t,arguments.length)},append:function(){return Pt(this,arguments,(function(t){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||It(this,t).appendChild(t)}))},prepend:function(){return Pt(this,arguments,(function(t){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var e=It(this,t);e.insertBefore(t,e.firstChild)}}))},before:function(){return Pt(this,arguments,(function(t){this.parentNode&&this.parentNode.insertBefore(t,this)}))},after:function(){return Pt(this,arguments,(function(t){this.parentNode&&this.parentNode.insertBefore(t,this.nextSibling)}))},empty:function(){for(var t,e=0;null!=(t=this[e]);e++)1===t.nodeType&&(E.cleanData(xt(t,!1)),t.textContent="");return this},clone:function(t,e){return t=null!=t&&t,e=null==e?t:e,this.map((function(){return E.clone(this,t,e)}))},html:function(t){return z(this,(function(t){var e=this[0]||{},n=0,i=this.length;if(void 0===t&&1===e.nodeType)return e.innerHTML;if("string"==typeof t&&!Nt.test(t)&&!bt[(mt.exec(t)||["",""])[1].toLowerCase()]){t=E.htmlPrefilter(t);try{for(;n=0&&(l+=Math.max(0,Math.ceil(t["offset"+e[0].toUpperCase()+e.slice(1)]-r-l-a-.5))||0),l}function ne(t,e,n){var i=Wt(t),o=(!v.boxSizingReliable()||n)&&"border-box"===E.css(t,"boxSizing",!1,i),r=o,s=_t(t,e,i),a="offset"+e[0].toUpperCase()+e.slice(1);if(Ft.test(s)){if(!n)return s;s="auto"}return(!v.boxSizingReliable()&&o||!v.reliableTrDimensions()&&N(t,"tr")||"auto"===s||!parseFloat(s)&&"inline"===E.css(t,"display",!1,i))&&t.getClientRects().length&&(o="border-box"===E.css(t,"boxSizing",!1,i),(r=a in t)&&(s=t[a])),(s=parseFloat(s)||0)+ee(t,e,n||(o?"border":"content"),r,i,s)+"px"}function ie(t,e,n,i,o){return new ie.prototype.init(t,e,n,i,o)}E.extend({cssHooks:{opacity:{get:function(t,e){if(e){var n=_t(t,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(t,e,n,i){if(t&&3!==t.nodeType&&8!==t.nodeType&&t.style){var o,r,s,a=G(e),l=Jt.test(e),u=t.style;if(l||(e=Gt(a)),s=E.cssHooks[e]||E.cssHooks[a],void 0===n)return s&&"get"in s&&void 0!==(o=s.get(t,!1,i))?o:u[e];"string"===(r=typeof n)&&(o=ot.exec(n))&&o[1]&&(n=ct(t,e,o),r="number"),null!=n&&n==n&&("number"!==r||l||(n+=o&&o[3]||(E.cssNumber[a]?"":"px")),v.clearCloneStyle||""!==n||0!==e.indexOf("background")||(u[e]="inherit"),s&&"set"in s&&void 0===(n=s.set(t,n,i))||(l?u.setProperty(e,n):u[e]=n))}},css:function(t,e,n,i){var o,r,s,a=G(e);return Jt.test(e)||(e=Gt(a)),(s=E.cssHooks[e]||E.cssHooks[a])&&"get"in s&&(o=s.get(t,!0,n)),void 0===o&&(o=_t(t,e,i)),"normal"===o&&e in Zt&&(o=Zt[e]),""===n||n?(r=parseFloat(o),!0===n||isFinite(r)?r||0:o):o}}),E.each(["height","width"],(function(t,e){E.cssHooks[e]={get:function(t,n,i){if(n)return!Yt.test(E.css(t,"display"))||t.getClientRects().length&&t.getBoundingClientRect().width?ne(t,e,i):Bt(t,Kt,(function(){return ne(t,e,i)}))},set:function(t,n,i){var o,r=Wt(t),s=!v.scrollboxSize()&&"absolute"===r.position,a=(s||i)&&"border-box"===E.css(t,"boxSizing",!1,r),l=i?ee(t,e,i,a,r):0;return a&&s&&(l-=Math.ceil(t["offset"+e[0].toUpperCase()+e.slice(1)]-parseFloat(r[e])-ee(t,e,"border",!1,r)-.5)),l&&(o=ot.exec(n))&&"px"!==(o[3]||"px")&&(t.style[e]=n,n=E.css(t,e)),te(0,n,l)}}})),E.cssHooks.marginLeft=zt(v.reliableMarginLeft,(function(t,e){if(e)return(parseFloat(_t(t,"marginLeft"))||t.getBoundingClientRect().left-Bt(t,{marginLeft:0},(function(){return t.getBoundingClientRect().left})))+"px"})),E.each({margin:"",padding:"",border:"Width"},(function(t,e){E.cssHooks[t+e]={expand:function(n){for(var i=0,o={},r="string"==typeof n?n.split(" "):[n];i<4;i++)o[t+rt[i]+e]=r[i]||r[i-2]||r[0];return o}},"margin"!==t&&(E.cssHooks[t+e].set=te)})),E.fn.extend({css:function(t,e){return z(this,(function(t,e,n){var i,o,r={},s=0;if(Array.isArray(e)){for(i=Wt(t),o=e.length;s1)}}),E.Tween=ie,ie.prototype={constructor:ie,init:function(t,e,n,i,o,r){this.elem=t,this.prop=n,this.easing=o||E.easing._default,this.options=e,this.start=this.now=this.cur(),this.end=i,this.unit=r||(E.cssNumber[n]?"":"px")},cur:function(){var t=ie.propHooks[this.prop];return t&&t.get?t.get(this):ie.propHooks._default.get(this)},run:function(t){var e,n=ie.propHooks[this.prop];return this.options.duration?this.pos=e=E.easing[this.easing](t,this.options.duration*t,0,1,this.options.duration):this.pos=e=t,this.now=(this.end-this.start)*e+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):ie.propHooks._default.set(this),this}},ie.prototype.init.prototype=ie.prototype,ie.propHooks={_default:{get:function(t){var e;return 1!==t.elem.nodeType||null!=t.elem[t.prop]&&null==t.elem.style[t.prop]?t.elem[t.prop]:(e=E.css(t.elem,t.prop,""))&&"auto"!==e?e:0},set:function(t){E.fx.step[t.prop]?E.fx.step[t.prop](t):1!==t.elem.nodeType||!E.cssHooks[t.prop]&&null==t.elem.style[Gt(t.prop)]?t.elem[t.prop]=t.now:E.style(t.elem,t.prop,t.now+t.unit)}}},ie.propHooks.scrollTop=ie.propHooks.scrollLeft={set:function(t){t.elem.nodeType&&t.elem.parentNode&&(t.elem[t.prop]=t.now)}},E.easing={linear:function(t){return t},swing:function(t){return.5-Math.cos(t*Math.PI)/2},_default:"swing"},E.fx=ie.prototype.init,E.fx.step={};var oe,re,se=/^(?:toggle|show|hide)$/,ae=/queueHooks$/;function le(){re&&(!1===b.hidden&&i.requestAnimationFrame?i.requestAnimationFrame(le):i.setTimeout(le,E.fx.interval),E.fx.tick())}function ue(){return i.setTimeout((function(){oe=void 0})),oe=Date.now()}function ce(t,e){var n,i=0,o={height:t};for(e=e?1:0;i<4;i+=2-e)o["margin"+(n=rt[i])]=o["padding"+n]=t;return e&&(o.opacity=o.width=t),o}function fe(t,e,n){for(var i,o=(pe.tweeners[e]||[]).concat(pe.tweeners["*"]),r=0,s=o.length;r1)},removeAttr:function(t){return this.each((function(){E.removeAttr(this,t)}))}}),E.extend({attr:function(t,e,n){var i,o,r=t.nodeType;if(3!==r&&8!==r&&2!==r)return void 0===t.getAttribute?E.prop(t,e,n):(1===r&&E.isXMLDoc(t)||(o=E.attrHooks[e.toLowerCase()]||(E.expr.match.bool.test(e)?de:void 0)),void 0!==n?null===n?void E.removeAttr(t,e):o&&"set"in o&&void 0!==(i=o.set(t,n,e))?i:(t.setAttribute(e,n+""),n):o&&"get"in o&&null!==(i=o.get(t,e))?i:null==(i=E.find.attr(t,e))?void 0:i)},attrHooks:{type:{set:function(t,e){if(!v.radioValue&&"radio"===e&&N(t,"input")){var n=t.value;return t.setAttribute("type",e),n&&(t.value=n),e}}}},removeAttr:function(t,e){var n,i=0,o=e&&e.match(P);if(o&&1===t.nodeType)for(;n=o[i++];)t.removeAttribute(n)}}),de={set:function(t,e,n){return!1===e?E.removeAttr(t,n):t.setAttribute(n,n),n}},E.each(E.expr.match.bool.source.match(/\w+/g),(function(t,e){var n=he[e]||E.find.attr;he[e]=function(t,e,i){var o,r,s=e.toLowerCase();return i||(r=he[s],he[s]=o,o=null!=n(t,e,i)?s:null,he[s]=r),o}}));var ge=/^(?:input|select|textarea|button)$/i,ve=/^(?:a|area)$/i;function me(t){return(t.match(P)||[]).join(" ")}function ye(t){return t.getAttribute&&t.getAttribute("class")||""}function be(t){return Array.isArray(t)?t:"string"==typeof t&&t.match(P)||[]}E.fn.extend({prop:function(t,e){return z(this,E.prop,t,e,arguments.length>1)},removeProp:function(t){return this.each((function(){delete this[E.propFix[t]||t]}))}}),E.extend({prop:function(t,e,n){var i,o,r=t.nodeType;if(3!==r&&8!==r&&2!==r)return 1===r&&E.isXMLDoc(t)||(e=E.propFix[e]||e,o=E.propHooks[e]),void 0!==n?o&&"set"in o&&void 0!==(i=o.set(t,n,e))?i:t[e]=n:o&&"get"in o&&null!==(i=o.get(t,e))?i:t[e]},propHooks:{tabIndex:{get:function(t){var e=E.find.attr(t,"tabindex");return e?parseInt(e,10):ge.test(t.nodeName)||ve.test(t.nodeName)&&t.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),v.optSelected||(E.propHooks.selected={get:function(t){var e=t.parentNode;return e&&e.parentNode&&e.parentNode.selectedIndex,null},set:function(t){var e=t.parentNode;e&&(e.selectedIndex,e.parentNode&&e.parentNode.selectedIndex)}}),E.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],(function(){E.propFix[this.toLowerCase()]=this})),E.fn.extend({addClass:function(t){var e,n,i,o,r,s,a,l=0;if(m(t))return this.each((function(e){E(this).addClass(t.call(this,e,ye(this)))}));if((e=be(t)).length)for(;n=this[l++];)if(o=ye(n),i=1===n.nodeType&&" "+me(o)+" "){for(s=0;r=e[s++];)i.indexOf(" "+r+" ")<0&&(i+=r+" ");o!==(a=me(i))&&n.setAttribute("class",a)}return this},removeClass:function(t){var e,n,i,o,r,s,a,l=0;if(m(t))return this.each((function(e){E(this).removeClass(t.call(this,e,ye(this)))}));if(!arguments.length)return this.attr("class","");if((e=be(t)).length)for(;n=this[l++];)if(o=ye(n),i=1===n.nodeType&&" "+me(o)+" "){for(s=0;r=e[s++];)for(;i.indexOf(" "+r+" ")>-1;)i=i.replace(" "+r+" "," ");o!==(a=me(i))&&n.setAttribute("class",a)}return this},toggleClass:function(t,e){var n=typeof t,i="string"===n||Array.isArray(t);return"boolean"==typeof e&&i?e?this.addClass(t):this.removeClass(t):m(t)?this.each((function(n){E(this).toggleClass(t.call(this,n,ye(this),e),e)})):this.each((function(){var e,o,r,s;if(i)for(o=0,r=E(this),s=be(t);e=s[o++];)r.hasClass(e)?r.removeClass(e):r.addClass(e);else void 0!==t&&"boolean"!==n||((e=ye(this))&&K.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===t?"":K.get(this,"__className__")||""))}))},hasClass:function(t){var e,n,i=0;for(e=" "+t+" ";n=this[i++];)if(1===n.nodeType&&(" "+me(ye(n))+" ").indexOf(e)>-1)return!0;return!1}});var xe=/\r/g;E.fn.extend({val:function(t){var e,n,i,o=this[0];return arguments.length?(i=m(t),this.each((function(n){var o;1===this.nodeType&&(null==(o=i?t.call(this,n,E(this).val()):t)?o="":"number"==typeof o?o+="":Array.isArray(o)&&(o=E.map(o,(function(t){return null==t?"":t+""}))),(e=E.valHooks[this.type]||E.valHooks[this.nodeName.toLowerCase()])&&"set"in e&&void 0!==e.set(this,o,"value")||(this.value=o))}))):o?(e=E.valHooks[o.type]||E.valHooks[o.nodeName.toLowerCase()])&&"get"in e&&void 0!==(n=e.get(o,"value"))?n:"string"==typeof(n=o.value)?n.replace(xe,""):null==n?"":n:void 0}}),E.extend({valHooks:{option:{get:function(t){var e=E.find.attr(t,"value");return null!=e?e:me(E.text(t))}},select:{get:function(t){var e,n,i,o=t.options,r=t.selectedIndex,s="select-one"===t.type,a=s?null:[],l=s?r+1:o.length;for(i=r<0?l:s?r:0;i-1)&&(n=!0);return n||(t.selectedIndex=-1),r}}}}),E.each(["radio","checkbox"],(function(){E.valHooks[this]={set:function(t,e){if(Array.isArray(e))return t.checked=E.inArray(E(t).val(),e)>-1}},v.checkOn||(E.valHooks[this].get=function(t){return null===t.getAttribute("value")?"on":t.value})})),v.focusin="onfocusin"in i;var we=/^(?:focusinfocus|focusoutblur)$/,Te=function(t){t.stopPropagation()};E.extend(E.event,{trigger:function(t,e,n,o){var r,s,a,l,u,c,f,p,h=[n||b],g=d.call(t,"type")?t.type:t,v=d.call(t,"namespace")?t.namespace.split("."):[];if(s=p=a=n=n||b,3!==n.nodeType&&8!==n.nodeType&&!we.test(g+E.event.triggered)&&(g.indexOf(".")>-1&&(v=g.split("."),g=v.shift(),v.sort()),u=g.indexOf(":")<0&&"on"+g,(t=t[E.expando]?t:new E.Event(g,"object"==typeof t&&t)).isTrigger=o?2:3,t.namespace=v.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+v.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=n),e=null==e?[t]:E.makeArray(e,[t]),f=E.event.special[g]||{},o||!f.trigger||!1!==f.trigger.apply(n,e))){if(!o&&!f.noBubble&&!y(n)){for(l=f.delegateType||g,we.test(l+g)||(s=s.parentNode);s;s=s.parentNode)h.push(s),a=s;a===(n.ownerDocument||b)&&h.push(a.defaultView||a.parentWindow||i)}for(r=0;(s=h[r++])&&!t.isPropagationStopped();)p=s,t.type=r>1?l:f.bindType||g,(c=(K.get(s,"events")||Object.create(null))[t.type]&&K.get(s,"handle"))&&c.apply(s,e),(c=u&&s[u])&&c.apply&&Y(s)&&(t.result=c.apply(s,e),!1===t.result&&t.preventDefault());return t.type=g,o||t.isDefaultPrevented()||f._default&&!1!==f._default.apply(h.pop(),e)||!Y(n)||u&&m(n[g])&&!y(n)&&((a=n[u])&&(n[u]=null),E.event.triggered=g,t.isPropagationStopped()&&p.addEventListener(g,Te),n[g](),t.isPropagationStopped()&&p.removeEventListener(g,Te),E.event.triggered=void 0,a&&(n[u]=a)),t.result}},simulate:function(t,e,n){var i=E.extend(new E.Event,n,{type:t,isSimulated:!0});E.event.trigger(i,null,e)}}),E.fn.extend({trigger:function(t,e){return this.each((function(){E.event.trigger(t,e,this)}))},triggerHandler:function(t,e){var n=this[0];if(n)return E.event.trigger(t,e,n,!0)}}),v.focusin||E.each({focus:"focusin",blur:"focusout"},(function(t,e){var n=function(t){E.event.simulate(e,t.target,E.event.fix(t))};E.event.special[e]={setup:function(){var i=this.ownerDocument||this.document||this,o=K.access(i,e);o||i.addEventListener(t,n,!0),K.access(i,e,(o||0)+1)},teardown:function(){var i=this.ownerDocument||this.document||this,o=K.access(i,e)-1;o?K.access(i,e,o):(i.removeEventListener(t,n,!0),K.remove(i,e))}}}));var Ce=i.location,Ee={guid:Date.now()},Se=/\?/;E.parseXML=function(t){var e,n;if(!t||"string"!=typeof t)return null;try{e=(new i.DOMParser).parseFromString(t,"text/xml")}catch(t){}return n=e&&e.getElementsByTagName("parsererror")[0],e&&!n||E.error("Invalid XML: "+(n?E.map(n.childNodes,(function(t){return t.textContent})).join("\n"):t)),e};var $e=/\[\]$/,ke=/\r?\n/g,Ae=/^(?:submit|button|image|reset|file)$/i,De=/^(?:input|select|textarea|keygen)/i;function Ne(t,e,n,i){var o;if(Array.isArray(e))E.each(e,(function(e,o){n||$e.test(t)?i(t,o):Ne(t+"["+("object"==typeof o&&null!=o?e:"")+"]",o,n,i)}));else if(n||"object"!==T(e))i(t,e);else for(o in e)Ne(t+"["+o+"]",e[o],n,i)}E.param=function(t,e){var n,i=[],o=function(t,e){var n=m(e)?e():e;i[i.length]=encodeURIComponent(t)+"="+encodeURIComponent(null==n?"":n)};if(null==t)return"";if(Array.isArray(t)||t.jquery&&!E.isPlainObject(t))E.each(t,(function(){o(this.name,this.value)}));else for(n in t)Ne(n,t[n],e,o);return i.join("&")},E.fn.extend({serialize:function(){return E.param(this.serializeArray())},serializeArray:function(){return this.map((function(){var t=E.prop(this,"elements");return t?E.makeArray(t):this})).filter((function(){var t=this.type;return this.name&&!E(this).is(":disabled")&&De.test(this.nodeName)&&!Ae.test(t)&&(this.checked||!vt.test(t))})).map((function(t,e){var n=E(this).val();return null==n?null:Array.isArray(n)?E.map(n,(function(t){return{name:e.name,value:t.replace(ke,"\r\n")}})):{name:e.name,value:n.replace(ke,"\r\n")}})).get()}});var je=/%20/g,Oe=/#.*$/,Ie=/([?&])_=[^&]*/,Le=/^(.*?):[ \t]*([^\r\n]*)$/gm,Re=/^(?:GET|HEAD)$/,qe=/^\/\//,He={},Pe={},Me="*/".concat("*"),Fe=b.createElement("a");function We(t){return function(e,n){"string"!=typeof e&&(n=e,e="*");var i,o=0,r=e.toLowerCase().match(P)||[];if(m(n))for(;i=r[o++];)"+"===i[0]?(i=i.slice(1)||"*",(t[i]=t[i]||[]).unshift(n)):(t[i]=t[i]||[]).push(n)}}function Be(t,e,n,i){var o={},r=t===Pe;function s(a){var l;return o[a]=!0,E.each(t[a]||[],(function(t,a){var u=a(e,n,i);return"string"!=typeof u||r||o[u]?r?!(l=u):void 0:(e.dataTypes.unshift(u),s(u),!1)})),l}return s(e.dataTypes[0])||!o["*"]&&s("*")}function Ue(t,e){var n,i,o=E.ajaxSettings.flatOptions||{};for(n in e)void 0!==e[n]&&((o[n]?t:i||(i={}))[n]=e[n]);return i&&E.extend(!0,t,i),t}Fe.href=Ce.href,E.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ce.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Ce.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Me,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":E.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(t,e){return e?Ue(Ue(t,E.ajaxSettings),e):Ue(E.ajaxSettings,t)},ajaxPrefilter:We(He),ajaxTransport:We(Pe),ajax:function(t,e){"object"==typeof t&&(e=t,t=void 0),e=e||{};var n,o,r,s,a,l,u,c,f,p,d=E.ajaxSetup({},e),h=d.context||d,g=d.context&&(h.nodeType||h.jquery)?E(h):E.event,v=E.Deferred(),m=E.Callbacks("once memory"),y=d.statusCode||{},x={},w={},T="canceled",C={readyState:0,getResponseHeader:function(t){var e;if(u){if(!s)for(s={};e=Le.exec(r);)s[e[1].toLowerCase()+" "]=(s[e[1].toLowerCase()+" "]||[]).concat(e[2]);e=s[t.toLowerCase()+" "]}return null==e?null:e.join(", ")},getAllResponseHeaders:function(){return u?r:null},setRequestHeader:function(t,e){return null==u&&(t=w[t.toLowerCase()]=w[t.toLowerCase()]||t,x[t]=e),this},overrideMimeType:function(t){return null==u&&(d.mimeType=t),this},statusCode:function(t){var e;if(t)if(u)C.always(t[C.status]);else for(e in t)y[e]=[y[e],t[e]];return this},abort:function(t){var e=t||T;return n&&n.abort(e),S(0,e),this}};if(v.promise(C),d.url=((t||d.url||Ce.href)+"").replace(qe,Ce.protocol+"//"),d.type=e.method||e.type||d.method||d.type,d.dataTypes=(d.dataType||"*").toLowerCase().match(P)||[""],null==d.crossDomain){l=b.createElement("a");try{l.href=d.url,l.href=l.href,d.crossDomain=Fe.protocol+"//"+Fe.host!=l.protocol+"//"+l.host}catch(t){d.crossDomain=!0}}if(d.data&&d.processData&&"string"!=typeof d.data&&(d.data=E.param(d.data,d.traditional)),Be(He,d,e,C),u)return C;for(f in(c=E.event&&d.global)&&0==E.active++&&E.event.trigger("ajaxStart"),d.type=d.type.toUpperCase(),d.hasContent=!Re.test(d.type),o=d.url.replace(Oe,""),d.hasContent?d.data&&d.processData&&0===(d.contentType||"").indexOf("application/x-www-form-urlencoded")&&(d.data=d.data.replace(je,"+")):(p=d.url.slice(o.length),d.data&&(d.processData||"string"==typeof d.data)&&(o+=(Se.test(o)?"&":"?")+d.data,delete d.data),!1===d.cache&&(o=o.replace(Ie,"$1"),p=(Se.test(o)?"&":"?")+"_="+Ee.guid+++p),d.url=o+p),d.ifModified&&(E.lastModified[o]&&C.setRequestHeader("If-Modified-Since",E.lastModified[o]),E.etag[o]&&C.setRequestHeader("If-None-Match",E.etag[o])),(d.data&&d.hasContent&&!1!==d.contentType||e.contentType)&&C.setRequestHeader("Content-Type",d.contentType),C.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+("*"!==d.dataTypes[0]?", "+Me+"; q=0.01":""):d.accepts["*"]),d.headers)C.setRequestHeader(f,d.headers[f]);if(d.beforeSend&&(!1===d.beforeSend.call(h,C,d)||u))return C.abort();if(T="abort",m.add(d.complete),C.done(d.success),C.fail(d.error),n=Be(Pe,d,e,C)){if(C.readyState=1,c&&g.trigger("ajaxSend",[C,d]),u)return C;d.async&&d.timeout>0&&(a=i.setTimeout((function(){C.abort("timeout")}),d.timeout));try{u=!1,n.send(x,S)}catch(t){if(u)throw t;S(-1,t)}}else S(-1,"No Transport");function S(t,e,s,l){var f,p,b,x,w,T=e;u||(u=!0,a&&i.clearTimeout(a),n=void 0,r=l||"",C.readyState=t>0?4:0,f=t>=200&&t<300||304===t,s&&(x=function(t,e,n){for(var i,o,r,s,a=t.contents,l=t.dataTypes;"*"===l[0];)l.shift(),void 0===i&&(i=t.mimeType||e.getResponseHeader("Content-Type"));if(i)for(o in a)if(a[o]&&a[o].test(i)){l.unshift(o);break}if(l[0]in n)r=l[0];else{for(o in n){if(!l[0]||t.converters[o+" "+l[0]]){r=o;break}s||(s=o)}r=r||s}if(r)return r!==l[0]&&l.unshift(r),n[r]}(d,C,s)),!f&&E.inArray("script",d.dataTypes)>-1&&E.inArray("json",d.dataTypes)<0&&(d.converters["text script"]=function(){}),x=function(t,e,n,i){var o,r,s,a,l,u={},c=t.dataTypes.slice();if(c[1])for(s in t.converters)u[s.toLowerCase()]=t.converters[s];for(r=c.shift();r;)if(t.responseFields[r]&&(n[t.responseFields[r]]=e),!l&&i&&t.dataFilter&&(e=t.dataFilter(e,t.dataType)),l=r,r=c.shift())if("*"===r)r=l;else if("*"!==l&&l!==r){if(!(s=u[l+" "+r]||u["* "+r]))for(o in u)if((a=o.split(" "))[1]===r&&(s=u[l+" "+a[0]]||u["* "+a[0]])){!0===s?s=u[o]:!0!==u[o]&&(r=a[0],c.unshift(a[1]));break}if(!0!==s)if(s&&t.throws)e=s(e);else try{e=s(e)}catch(t){return{state:"parsererror",error:s?t:"No conversion from "+l+" to "+r}}}return{state:"success",data:e}}(d,x,C,f),f?(d.ifModified&&((w=C.getResponseHeader("Last-Modified"))&&(E.lastModified[o]=w),(w=C.getResponseHeader("etag"))&&(E.etag[o]=w)),204===t||"HEAD"===d.type?T="nocontent":304===t?T="notmodified":(T=x.state,p=x.data,f=!(b=x.error))):(b=T,!t&&T||(T="error",t<0&&(t=0))),C.status=t,C.statusText=(e||T)+"",f?v.resolveWith(h,[p,T,C]):v.rejectWith(h,[C,T,b]),C.statusCode(y),y=void 0,c&&g.trigger(f?"ajaxSuccess":"ajaxError",[C,d,f?p:b]),m.fireWith(h,[C,T]),c&&(g.trigger("ajaxComplete",[C,d]),--E.active||E.event.trigger("ajaxStop")))}return C},getJSON:function(t,e,n){return E.get(t,e,n,"json")},getScript:function(t,e){return E.get(t,void 0,e,"script")}}),E.each(["get","post"],(function(t,e){E[e]=function(t,n,i,o){return m(n)&&(o=o||i,i=n,n=void 0),E.ajax(E.extend({url:t,type:e,dataType:o,data:n,success:i},E.isPlainObject(t)&&t))}})),E.ajaxPrefilter((function(t){var e;for(e in t.headers)"content-type"===e.toLowerCase()&&(t.contentType=t.headers[e]||"")})),E._evalUrl=function(t,e,n){return E.ajax({url:t,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(t){E.globalEval(t,e,n)}})},E.fn.extend({wrapAll:function(t){var e;return this[0]&&(m(t)&&(t=t.call(this[0])),e=E(t,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&e.insertBefore(this[0]),e.map((function(){for(var t=this;t.firstElementChild;)t=t.firstElementChild;return t})).append(this)),this},wrapInner:function(t){return m(t)?this.each((function(e){E(this).wrapInner(t.call(this,e))})):this.each((function(){var e=E(this),n=e.contents();n.length?n.wrapAll(t):e.append(t)}))},wrap:function(t){var e=m(t);return this.each((function(n){E(this).wrapAll(e?t.call(this,n):t)}))},unwrap:function(t){return this.parent(t).not("body").each((function(){E(this).replaceWith(this.childNodes)})),this}}),E.expr.pseudos.hidden=function(t){return!E.expr.pseudos.visible(t)},E.expr.pseudos.visible=function(t){return!!(t.offsetWidth||t.offsetHeight||t.getClientRects().length)},E.ajaxSettings.xhr=function(){try{return new i.XMLHttpRequest}catch(t){}};var _e={0:200,1223:204},ze=E.ajaxSettings.xhr();v.cors=!!ze&&"withCredentials"in ze,v.ajax=ze=!!ze,E.ajaxTransport((function(t){var e,n;if(v.cors||ze&&!t.crossDomain)return{send:function(o,r){var s,a=t.xhr();if(a.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(s in t.xhrFields)a[s]=t.xhrFields[s];for(s in t.mimeType&&a.overrideMimeType&&a.overrideMimeType(t.mimeType),t.crossDomain||o["X-Requested-With"]||(o["X-Requested-With"]="XMLHttpRequest"),o)a.setRequestHeader(s,o[s]);e=function(t){return function(){e&&(e=n=a.onload=a.onerror=a.onabort=a.ontimeout=a.onreadystatechange=null,"abort"===t?a.abort():"error"===t?"number"!=typeof a.status?r(0,"error"):r(a.status,a.statusText):r(_e[a.status]||a.status,a.statusText,"text"!==(a.responseType||"text")||"string"!=typeof a.responseText?{binary:a.response}:{text:a.responseText},a.getAllResponseHeaders()))}},a.onload=e(),n=a.onerror=a.ontimeout=e("error"),void 0!==a.onabort?a.onabort=n:a.onreadystatechange=function(){4===a.readyState&&i.setTimeout((function(){e&&n()}))},e=e("abort");try{a.send(t.hasContent&&t.data||null)}catch(t){if(e)throw t}},abort:function(){e&&e()}}})),E.ajaxPrefilter((function(t){t.crossDomain&&(t.contents.script=!1)})),E.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(t){return E.globalEval(t),t}}}),E.ajaxPrefilter("script",(function(t){void 0===t.cache&&(t.cache=!1),t.crossDomain&&(t.type="GET")})),E.ajaxTransport("script",(function(t){var e,n;if(t.crossDomain||t.scriptAttrs)return{send:function(i,o){e=E("