diff --git a/.gitignore b/.gitignore index 6f4c82ec..b0a9e7ef 100644 --- a/.gitignore +++ b/.gitignore @@ -8,7 +8,7 @@ Makefile.custom.config __pycache__ uploads .cache -.coverage +.coverage* coverage.xml .env .mypy_cache diff --git a/CHANGELOG.md b/CHANGELOG.md index b96fe8b0..813372fc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,26 @@ # Change log +## Version 0.7.7 (2022/11/27) + +### Features and enhancements + +* [#258](https://github.com/SamR1/FitTrackee/issues/258) - Request: parse links in notes area (thanks to @jat255) + +### Bugs Fixed + +* [PR#271](https://github.com/SamR1/FitTrackee/pull/271) - Fix workouts creation + +### Translations + +* [PR#273](https://github.com/SamR1/FitTrackee/pull/273) - Init Dutch translations files + +### Misc + +* [PR#274](https://github.com/SamR1/FitTrackee/pull/274) - Tests parallelization +* [PR#275](https://github.com/SamR1/FitTrackee/pull/275) - Disable worker entry point + +**Note:** `fittrackee_worker` command is disabled, please use existing flask-dramatiq CLI (see [documentation](https://samr1.github.io/FitTrackee/installation.html#from-pypi)) + ## Version 0.7.6 (2022/11/09) ### Translations diff --git a/Makefile b/Makefile index e623b095..b3c5190b 100644 --- a/Makefile +++ b/Makefile @@ -203,19 +203,24 @@ run-workers: $(FLASK) worker --processes=$(WORKERS_PROCESSES) >> dramatiq.log 2>&1 serve: + # for dev environments $(MAKE) P="serve-client serve-python" make-p serve-dev: + # for dev environments $(MAKE) P="serve-client serve-python-dev" make-p serve-client: + # for dev environments cd fittrackee_client && PORT=3000 $(NPM) serve serve-python: + # for dev environments echo 'Running on http://$(HOST):$(PORT)' $(FLASK) run --with-threads -h $(HOST) -p $(PORT) serve-python-dev: + # for dev environments ( echo 'Running on https://$(HOST):$(PORT)' $(FLASK) run --with-threads -h $(HOST) -p $(PORT) --cert=adhoc @@ -232,10 +237,12 @@ test-e2e-client: E2E_ARGS=client $(PYTEST) e2e --driver firefox $(PYTEST_ARGS) test-python: + # for tests parallelization: 4 workers max. + # make test-python PYTEST_ARGS="-p no:warnings -n auto --maxprocesses=4" $(PYTEST) fittrackee --cov-config .coveragerc --cov=fittrackee --cov-report term-missing $(PYTEST_ARGS) test-client: - cd fittrackee_client && $(NPM) test:unit + cd fittrackee_client && $(NPM) test:unit $(MOCHA_ARGS) type-check: echo 'Running mypy...' diff --git a/Makefile.config b/Makefile.config index c4b5f7c2..e66fe461 100644 --- a/Makefile.config +++ b/Makefile.config @@ -7,7 +7,7 @@ export APP_WORKERS = 1 export WORKERS_PROCESSES = 1 # for dev env -export FLASK_ENV = development +export FLASK_DEBUG = 1 export DATABASE_TEST_URL = postgresql://fittrackee:fittrackee@$(HOST):5432/fittrackee_test export TEST_APP_URL = http://$(HOST):$(PORT) export TEST_CLIENT_URL = http://$(HOST):$(CLIENT_PORT) diff --git a/VERSION b/VERSION index c0062185..879be8a9 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.7.6 +0.7.7 diff --git a/db/create.sql b/db/create.sql index f393a9f7..05c59d7e 100644 --- a/db/create.sql +++ b/db/create.sql @@ -1,5 +1,9 @@ DROP DATABASE IF EXISTS fittrackee; DROP DATABASE IF EXISTS fittrackee_test; +DROP DATABASE IF EXISTS fittrackee_test_gw0; +DROP DATABASE IF EXISTS fittrackee_test_gw1; +DROP DATABASE IF EXISTS fittrackee_test_gw2; +DROP DATABASE IF EXISTS fittrackee_test_gw3; DROP SCHEMA IF EXISTS fittrackee; DROP USER IF EXISTS fittrackee; @@ -7,3 +11,7 @@ CREATE USER fittrackee WITH PASSWORD 'fittrackee'; CREATE SCHEMA fittrackee AUTHORIZATION fittrackee; CREATE DATABASE fittrackee OWNER fittrackee; CREATE DATABASE fittrackee_test OWNER fittrackee; +CREATE DATABASE fittrackee_test_gw0 OWNER fittrackee; +CREATE DATABASE fittrackee_test_gw1 OWNER fittrackee; +CREATE DATABASE fittrackee_test_gw2 OWNER fittrackee; +CREATE DATABASE fittrackee_test_gw3 OWNER fittrackee; diff --git a/docs/.buildinfo b/docs/.buildinfo index 087c12f5..691cbdea 100644 --- a/docs/.buildinfo +++ b/docs/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 7a319e6b5c7607babcbd1c24c3d01358 +config: 29d50ceb48218bde929c0e0bec0613ad tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/_images/fittrackee_screenshot-01.png b/docs/_images/fittrackee_screenshot-01.png index f076e33a..ac3e03ee 100644 Binary files a/docs/_images/fittrackee_screenshot-01.png and b/docs/_images/fittrackee_screenshot-01.png differ diff --git a/docs/_images/fittrackee_screenshot-02.png b/docs/_images/fittrackee_screenshot-02.png index f91b97c5..59dd15a5 100644 Binary files a/docs/_images/fittrackee_screenshot-02.png and b/docs/_images/fittrackee_screenshot-02.png differ diff --git a/docs/_images/fittrackee_screenshot-03.png b/docs/_images/fittrackee_screenshot-03.png index 84761f5b..413cf7e8 100644 Binary files a/docs/_images/fittrackee_screenshot-03.png and b/docs/_images/fittrackee_screenshot-03.png differ diff --git a/docs/_images/fittrackee_screenshot-04.png b/docs/_images/fittrackee_screenshot-04.png index 53338160..767f0f24 100644 Binary files a/docs/_images/fittrackee_screenshot-04.png and b/docs/_images/fittrackee_screenshot-04.png differ diff --git a/docs/_images/fittrackee_screenshot-05.png b/docs/_images/fittrackee_screenshot-05.png index 418737d0..c6a09063 100644 Binary files a/docs/_images/fittrackee_screenshot-05.png and b/docs/_images/fittrackee_screenshot-05.png differ diff --git a/docs/_images/fittrackee_screenshot-06.png b/docs/_images/fittrackee_screenshot-06.png index 875261bf..e3da62bf 100644 Binary files a/docs/_images/fittrackee_screenshot-06.png and b/docs/_images/fittrackee_screenshot-06.png differ diff --git a/docs/_images/fittrackee_screenshot-07.png b/docs/_images/fittrackee_screenshot-07.png index d6b6a50d..50eb69c2 100644 Binary files a/docs/_images/fittrackee_screenshot-07.png and b/docs/_images/fittrackee_screenshot-07.png differ diff --git a/docs/_images/fittrackee_screenshot-08.png b/docs/_images/fittrackee_screenshot-08.png index 0b5fa02b..8899de59 100644 Binary files a/docs/_images/fittrackee_screenshot-08.png and b/docs/_images/fittrackee_screenshot-08.png differ diff --git a/docs/_sources/changelog.md.txt b/docs/_sources/changelog.md.txt index b96fe8b0..813372fc 100644 --- a/docs/_sources/changelog.md.txt +++ b/docs/_sources/changelog.md.txt @@ -1,5 +1,26 @@ # Change log +## Version 0.7.7 (2022/11/27) + +### Features and enhancements + +* [#258](https://github.com/SamR1/FitTrackee/issues/258) - Request: parse links in notes area (thanks to @jat255) + +### Bugs Fixed + +* [PR#271](https://github.com/SamR1/FitTrackee/pull/271) - Fix workouts creation + +### Translations + +* [PR#273](https://github.com/SamR1/FitTrackee/pull/273) - Init Dutch translations files + +### Misc + +* [PR#274](https://github.com/SamR1/FitTrackee/pull/274) - Tests parallelization +* [PR#275](https://github.com/SamR1/FitTrackee/pull/275) - Disable worker entry point + +**Note:** `fittrackee_worker` command is disabled, please use existing flask-dramatiq CLI (see [documentation](https://samr1.github.io/FitTrackee/installation.html#from-pypi)) + ## Version 0.7.6 (2022/11/09) ### Translations diff --git a/docs/_sources/cli.rst.txt b/docs/_sources/cli.rst.txt index a10e35b6..bf349fee 100644 --- a/docs/_sources/cli.rst.txt +++ b/docs/_sources/cli.rst.txt @@ -22,6 +22,7 @@ A command line interface (CLI) is available to manage database, OAuth2 tokens an | The following commands are now deprecated and will be removed in a next version: | - ``fittrackee_set_admin`` | - ``fittrackee_upgrade_db`` + | - ``fittrackee_worker`` (disabled) Database diff --git a/docs/_sources/installation.rst.txt b/docs/_sources/installation.rst.txt index 694fadc0..1796c11b 100644 --- a/docs/_sources/installation.rst.txt +++ b/docs/_sources/installation.rst.txt @@ -392,11 +392,11 @@ For instance, copy and update ``.env`` file from ``.env.example`` and source the $ fittrackee -- Start task queue workers if email sending is enabled. +- Start task queue workers if email sending is enabled, with flask-dramatiq CLI: .. code-block:: bash - $ fittrackee_worker --processes 2 + $ flask worker --processes 2 .. note:: | To start application and workers with **systemd** service, see `Deployment `__ @@ -480,13 +480,13 @@ Production environment .. warning:: | Note that FitTrackee is under heavy development, some features may be unstable. -- Download the last release (for now, it is the release v0.7.6): +- Download the last release (for now, it is the release v0.7.7): .. code:: bash - $ wget https://github.com/SamR1/FitTrackee/archive/v0.7.6.tar.gz - $ tar -xzf v0.7.6.tar.gz - $ mv FitTrackee-0.7.6 FitTrackee + $ wget https://github.com/SamR1/FitTrackee/archive/v0.7.7.tar.gz + $ tar -xzf v0.7.7.tar.gz + $ mv FitTrackee-0.7.7 FitTrackee $ cd FitTrackee - Create **.env** from example and update it @@ -606,13 +606,13 @@ Prod environment - Change to the directory where FitTrackee directory is located -- Download the last release (for now, it is the release v0.7.6) and overwrite existing files: +- Download the last release (for now, it is the release v0.7.7) and overwrite existing files: .. code:: bash - $ wget https://github.com/SamR1/FitTrackee/archive/v0.7.6.tar.gz - $ tar -xzf v0.7.6.tar.gz - $ cp -R FitTrackee-0.7.6/* FitTrackee/ + $ wget https://github.com/SamR1/FitTrackee/archive/v0.7.7.tar.gz + $ tar -xzf v0.7.7.tar.gz + $ cp -R FitTrackee-0.7.7/* FitTrackee/ $ cd FitTrackee - Update **.env** if needed (see `Environment variables `__). diff --git a/docs/_static/css/custom.css b/docs/_static/css/custom.css new file mode 100644 index 00000000..456f2634 --- /dev/null +++ b/docs/_static/css/custom.css @@ -0,0 +1,100 @@ +/* lato-regular - latin */ +@font-face { + font-family: 'Lato'; + font-style: normal; + font-weight: 400; + src: url('../fonts/lato-v15-latin-regular.eot'); /* IE9 Compat Modes */ + src: local('Lato Regular'), local('Lato-Regular'), + url('../fonts/lato-v15-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('../fonts/lato-v15-latin-regular.woff2') format('woff2'), /* Super Modern Browsers */ + url('../fonts/lato-v15-latin-regular.woff') format('woff'), /* Modern Browsers */ + url('../fonts/lato-v15-latin-regular.ttf') format('truetype'), /* Safari, Android, iOS */ + url('../fonts/lato-v15-latin-regular.svg#Lato') format('svg'); /* Legacy iOS */ +} + +/* lato-700 - latin */ +@font-face { + font-family: 'Lato'; + font-style: normal; + font-weight: 700; + src: url('../fonts/lato-v15-latin-700.eot'); /* IE9 Compat Modes */ + src: local('Lato Bold'), local('Lato-Bold'), + url('../fonts/lato-v15-latin-700.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('../fonts/lato-v15-latin-700.woff2') format('woff2'), /* Super Modern Browsers */ + url('../fonts/lato-v15-latin-700.woff') format('woff'), /* Modern Browsers */ + url('../fonts/lato-v15-latin-700.ttf') format('truetype'), /* Safari, Android, iOS */ + url('../fonts/lato-v15-latin-700.svg#Lato') format('svg'); /* Legacy iOS */ +} + +/* lato-italic - latin */ +@font-face { + font-family: 'Lato'; + font-style: italic; + font-weight: 400; + src: url('../fonts/lato-v15-latin-italic.eot'); /* IE9 Compat Modes */ + src: local('Lato Italic'), local('Lato-Italic'), + url('../fonts/lato-v15-latin-italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('../fonts/lato-v15-latin-italic.woff2') format('woff2'), /* Super Modern Browsers */ + url('../fonts/lato-v15-latin-italic.woff') format('woff'), /* Modern Browsers */ + url('../fonts/lato-v15-latin-italic.ttf') format('truetype'), /* Safari, Android, iOS */ + url('../fonts/lato-v15-latin-italic.svg#Lato') format('svg'); /* Legacy iOS */ +} + + +html { + font-family: "Lato", sans-serif; + height: 100vh; +} + +body { + margin: 0; + min-height: 100vh; + padding-bottom: 65px; + position: relative; +} + +.alert-danger { + background-color: #f2dede; + border-color: #dca7a7; + color: #a94442; +} + +.alert-info { + background-color: #d9edf7; + border-color: #9acfea; + color: #31708f; +} + +.alert-warning { + background-color: #fcf8e3; + border-color: #f5e79e; + color: #8a6d3b; +} + +.descname { + border-top: solid 3px #a18bac; + border-radius: unset; + padding: 6px; +} + +dl.field-list > dt { + background: #f0f0f0; + border-left: solid 3px #ccc; + color: #555; +} + +.envvar { + margin-top: 30px; +} + +.footer { + bottom: 0; + height: 65px; + position: absolute; +} + + +img { + border: 1px solid #cecdcd; + margin: 5px 0; +} \ No newline at end of file diff --git a/docs/_static/css/fork-awesome.min.css b/docs/_static/css/fork-awesome.min.css new file mode 100644 index 00000000..fd154dc3 --- /dev/null +++ b/docs/_static/css/fork-awesome.min.css @@ -0,0 +1,12 @@ +/*! +Fork Awesome 1.2.0 +License - https://forkaweso.me/Fork-Awesome/license + +Copyright 2018 Dave Gandy & Fork Awesome + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */@font-face{font-family:ForkAwesome;src:url(../fonts/forkawesome-webfont.eot?v=1.2.0);src:url(../fonts/forkawesome-webfont.eot?#iefix&v=1.2.0) format('embedded-opentype'),url(../fonts/forkawesome-webfont.woff2?v=1.2.0) format('woff2'),url(../fonts/forkawesome-webfont.woff?v=1.2.0) format('woff'),url(../fonts/forkawesome-webfont.ttf?v=1.2.0) format('truetype'),url(../fonts/forkawesome-webfont.svg?v=1.2.0#forkawesomeregular) format('svg');font-weight:400;font-style:normal;font-display:block}.fa{display:inline-block;font:normal normal normal 14px/1 ForkAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-close:before,.fa-remove:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-repeat:before,.fa-rotate-right:before{content:"\f01e"}.fa-refresh:before,.fa-sync:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before,.fa-video:before{content:"\f03d"}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-exclamation-triangle:before,.fa-warning:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell-o:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-globe-e:before{content:"\f304"}.fa-globe-w:before{content:"\f305"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-community:before,.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-floppy-o:before,.fa-save:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus-g:before,.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-bolt:before,.fa-flash:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before,.fa-utensils:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-chain-broken:before,.fa-unlink:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:"\f150"}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:"\f151"}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:"\f152"}.fa-eur:before,.fa-euro:before{content:"\f153"}.fa-gbp:before,.fa-pound:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-inr:before,.fa-rupee:before{content:"\f156"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:"\f158"}.fa-krw:before,.fa-won:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before,.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-desc:before,.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-amount-asc:before,.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-desc:before,.fa-sort-amount-up:before{content:"\f161"}.fa-sort-numeric-asc:before,.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-desc:before,.fa-sort-numeric-up:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-try:before,.fa-turkish-lira:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-bank:before,.fa-institution:before,.fa-university:before{content:"\f19c"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before,.fa-utensil-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:"\f1c5"}.fa-file-archive-o:before,.fa-file-zip-o:before{content:"\f1c6"}.fa-file-audio-o:before,.fa-file-sound-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before,.fa-resistance:before{content:"\f1d0"}.fa-empire:before,.fa-ge:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-paper-plane:before,.fa-send:before{content:"\f1d8"}.fa-paper-plane-o:before,.fa-send-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before,.fa-heading:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before,.fa-closed-captioning:before{content:"\f20a"}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before,.fa-gem:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-bed:before,.fa-hotel:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-medium-square:before{content:"\f2f8"}.fa-y-combinator:before,.fa-yc:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery-full:before,.fa-battery:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-television:before,.fa-tv:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo-v:before,.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-phone-volume:before,.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before{content:"\f2a3"}.fa-deaf:before,.fa-deafness:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-address-card:before,.fa-vcard:before{content:"\f2bb"}.fa-address-card-o:before,.fa-vcard-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer-full:before,.fa-thermometer:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bath:before,.fa-bathtub:before,.fa-s15:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.fa-mastodon:before{content:"\f2e1"}.fa-mastodon-alt:before{content:"\f2e2"}.fa-fork-awesome:before,.fa-fork-circle:before{content:"\f2e3"}.fa-peertube:before{content:"\f2e4"}.fa-diaspora:before{content:"\f2e5"}.fa-friendica:before{content:"\f2e6"}.fa-gnu-social:before{content:"\f2e7"}.fa-liberapay-square:before{content:"\f2e8"}.fa-liberapay:before{content:"\f2e9"}.fa-scuttlebutt:before,.fa-ssb:before{content:"\f2ea"}.fa-hubzilla:before{content:"\f2eb"}.fa-social-home:before{content:"\f2ec"}.fa-artstation:before{content:"\f2ed"}.fa-discord:before{content:"\f2ee"}.fa-discord-alt:before{content:"\f2ef"}.fa-patreon:before{content:"\f2f0"}.fa-snowdrift:before{content:"\f2f1"}.fa-activitypub:before{content:"\f2f2"}.fa-ethereum:before{content:"\f2f3"}.fa-keybase:before{content:"\f2f4"}.fa-shaarli:before{content:"\f2f5"}.fa-shaarli-o:before{content:"\f2f6"}.fa-cut-key:before,.fa-key-modern:before{content:"\f2f7"}.fa-xmpp:before{content:"\f2f9"}.fa-archive-org:before{content:"\f2fc"}.fa-freedombox:before{content:"\f2fd"}.fa-facebook-messenger:before{content:"\f2fe"}.fa-debian:before{content:"\f2ff"}.fa-mastodon-square:before{content:"\f300"}.fa-tipeee:before{content:"\f301"}.fa-react:before{content:"\f302"}.fa-dogmazic:before{content:"\f303"}.fa-zotero:before{content:"\f309"}.fa-nodejs:before{content:"\f308"}.fa-nextcloud:before{content:"\f306"}.fa-nextcloud-square:before{content:"\f307"}.fa-hackaday:before{content:"\f30a"}.fa-laravel:before{content:"\f30b"}.fa-signalapp:before{content:"\f30c"}.fa-gnupg:before{content:"\f30d"}.fa-php:before{content:"\f30e"}.fa-ffmpeg:before{content:"\f30f"}.fa-joplin:before{content:"\f310"}.fa-syncthing:before{content:"\f311"}.fa-inkscape:before{content:"\f312"}.fa-matrix-org:before{content:"\f313"}.fa-pixelfed:before{content:"\f314"}.fa-bootstrap:before{content:"\f315"}.fa-dev-to:before{content:"\f316"}.fa-hashnode:before{content:"\f317"}.fa-jirafeau:before{content:"\f318"}.fa-emby:before{content:"\f319"}.fa-wikidata:before{content:"\f31a"}.fa-gimp:before{content:"\f31b"}.fa-c:before{content:"\f31c"}.fa-digitalocean:before{content:"\f31d"}.fa-att:before{content:"\f31e"}.fa-gitea:before{content:"\f31f"}.fa-file-epub:before{content:"\f321"}.fa-python:before{content:"\f322"}.fa-archlinux:before{content:"\f323"}.fa-pleroma:before{content:"\f324"}.fa-unsplash:before{content:"\f325"}.fa-hackster:before{content:"\f326"}.fa-spell-check:before{content:"\f327"}.fa-moon:before{content:"\f328"}.fa-sun:before{content:"\f329"}.fa-f-droid:before{content:"\f32a"}.fa-biometric:before{content:"\f32b"}.fa-wire:before{content:"\f32c"}.fa-tor-onion:before{content:"\f32e"}.fa-volume-mute:before{content:"\f32f"}.fa-bell-ringing:before{content:"\f32d"}.fa-bell-ringing-o:before{content:"\f330"}.fa-hal:before{content:"\f333"}.fa-jupyter:before{content:"\f335"}.fa-julia:before{content:"\f334"}.fa-classicpress:before{content:"\f331"}.fa-classicpress-circle:before{content:"\f332"}.fa-open-collective:before{content:"\f336"}.fa-orcid:before{content:"\f337"}.fa-researchgate:before{content:"\f338"}.fa-funkwhale:before{content:"\f339"}.fa-askfm:before{content:"\f33a"}.fa-blockstack:before{content:"\f33b"}.fa-boardgamegeek:before{content:"\f33c"}.fa-bunny:before{content:"\f35f"}.fa-buymeacoffee:before{content:"\f33d"}.fa-cc-by:before{content:"\f33e"}.fa-cc-cc:before,.fa-creative-commons-alt:before{content:"\f33f"}.fa-cc-nc-eu:before{content:"\f341"}.fa-cc-nc-jp:before{content:"\f342"}.fa-cc-nc:before{content:"\f340"}.fa-cc-nd:before{content:"\f343"}.fa-cc-pd:before{content:"\f344"}.fa-cc-remix:before{content:"\f345"}.fa-cc-sa:before{content:"\f346"}.fa-cc-share:before{content:"\f347"}.fa-cc-zero:before{content:"\f348"}.fa-conway-glider:before,.fa-conway-hacker:before{content:"\f349"}.fa-csharp:before{content:"\f34a"}.fa-email-bulk:before{content:"\f34b"}.fa-email-bulk-o:before{content:"\f34c"}.fa-gnu:before{content:"\f34d"}.fa-google-play:before{content:"\f34e"}.fa-heroku:before{content:"\f34f"}.fa-hassio:before,.fa-home-assistant:before{content:"\f350"}.fa-java:before{content:"\f351"}.fa-mariadb:before{content:"\f352"}.fa-markdown:before{content:"\f353"}.fa-mysql:before{content:"\f354"}.fa-nordcast:before{content:"\f355"}.fa-plume:before{content:"\f356"}.fa-postgresql:before{content:"\f357"}.fa-sass-alt:before{content:"\f359"}.fa-sass:before{content:"\f358"}.fa-skate:before{content:"\f35a"}.fa-sketchfab:before{content:"\f35b"}.fa-tex:before{content:"\f35c"}.fa-textpattern:before{content:"\f35d"}.fa-unity:before{content:"\f35e"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}/*# sourceMappingURL=fork-awesome.min.css.map */ \ No newline at end of file diff --git a/docs/_static/custom.css b/docs/_static/custom.css deleted file mode 100644 index 7dd2ea95..00000000 --- a/docs/_static/custom.css +++ /dev/null @@ -1,100 +0,0 @@ -/* lato-regular - latin */ -@font-face { - font-family: 'Lato'; - font-style: normal; - font-weight: 400; - src: url('fonts/lato-v15-latin-regular.eot'); /* IE9 Compat Modes */ - src: local('Lato Regular'), local('Lato-Regular'), - url('fonts/lato-v15-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ - url('fonts/lato-v15-latin-regular.woff2') format('woff2'), /* Super Modern Browsers */ - url('fonts/lato-v15-latin-regular.woff') format('woff'), /* Modern Browsers */ - url('fonts/lato-v15-latin-regular.ttf') format('truetype'), /* Safari, Android, iOS */ - url('fonts/lato-v15-latin-regular.svg#Lato') format('svg'); /* Legacy iOS */ -} - -/* lato-700 - latin */ -@font-face { - font-family: 'Lato'; - font-style: normal; - font-weight: 700; - src: url('fonts/lato-v15-latin-700.eot'); /* IE9 Compat Modes */ - src: local('Lato Bold'), local('Lato-Bold'), - url('fonts/lato-v15-latin-700.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ - url('fonts/lato-v15-latin-700.woff2') format('woff2'), /* Super Modern Browsers */ - url('fonts/lato-v15-latin-700.woff') format('woff'), /* Modern Browsers */ - url('fonts/lato-v15-latin-700.ttf') format('truetype'), /* Safari, Android, iOS */ - url('fonts/lato-v15-latin-700.svg#Lato') format('svg'); /* Legacy iOS */ -} - -/* lato-italic - latin */ -@font-face { - font-family: 'Lato'; - font-style: italic; - font-weight: 400; - src: url('fonts/lato-v15-latin-italic.eot'); /* IE9 Compat Modes */ - src: local('Lato Italic'), local('Lato-Italic'), - url('fonts/lato-v15-latin-italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ - url('fonts/lato-v15-latin-italic.woff2') format('woff2'), /* Super Modern Browsers */ - url('fonts/lato-v15-latin-italic.woff') format('woff'), /* Modern Browsers */ - url('fonts/lato-v15-latin-italic.ttf') format('truetype'), /* Safari, Android, iOS */ - url('fonts/lato-v15-latin-italic.svg#Lato') format('svg'); /* Legacy iOS */ -} - - -html { - font-family: "Lato", sans-serif; - height: 100vh; -} - -body { - margin: 0; - min-height: 100vh; - padding-bottom: 65px; - position: relative; -} - -.alert-danger { - background-color: #f2dede; - border-color: #dca7a7; - color: #a94442; -} - -.alert-info { - background-color: #d9edf7; - border-color: #9acfea; - color: #31708f; -} - -.alert-warning { - background-color: #fcf8e3; - border-color: #f5e79e; - color: #8a6d3b; -} - -.descname { - border-top: solid 3px #a18bac; - border-radius: unset; - padding: 6px; -} - -dl.field-list > dt { - background: #f0f0f0; - border-left: solid 3px #ccc; - color: #555; -} - -.envvar { - margin-top: 30px; -} - -.footer { - bottom: 0; - height: 65px; - position: absolute; -} - - -img { - border: 1px solid #cecdcd; - margin: 5px 0; -} \ No newline at end of file diff --git a/docs/_static/documentation_options.js b/docs/_static/documentation_options.js index c24828c5..ae86f72c 100644 --- a/docs/_static/documentation_options.js +++ b/docs/_static/documentation_options.js @@ -1,6 +1,6 @@ var DOCUMENTATION_OPTIONS = { URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), - VERSION: '0.7.6', + VERSION: '0.7.7', LANGUAGE: 'en', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/docs/_static/fonts/forkawesome-webfont.eot b/docs/_static/fonts/forkawesome-webfont.eot new file mode 100644 index 00000000..c2c24b41 Binary files /dev/null and b/docs/_static/fonts/forkawesome-webfont.eot differ diff --git a/docs/_static/fonts/forkawesome-webfont.svg b/docs/_static/fonts/forkawesome-webfont.svg new file mode 100644 index 00000000..bd45b304 --- /dev/null +++ b/docs/_static/fonts/forkawesome-webfont.svg @@ -0,0 +1,3232 @@ + + + + + +Created by FontForge 20190801 at Fri Aug 27 00:07:49 2021 + By shine +The Fork Awesome font is licensed under the SIL OFL 1.1 (http://scripts.sil.org/OFL). Fork Awesome is a fork based of off Font Awesome 4.7.0 by Dave Gandy. More info on licenses at https://forkawesome.github.io + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/_static/fonts/forkawesome-webfont.ttf b/docs/_static/fonts/forkawesome-webfont.ttf new file mode 100644 index 00000000..1f1d8f34 Binary files /dev/null and b/docs/_static/fonts/forkawesome-webfont.ttf differ diff --git a/docs/_static/fonts/forkawesome-webfont.woff b/docs/_static/fonts/forkawesome-webfont.woff new file mode 100644 index 00000000..cca43af4 Binary files /dev/null and b/docs/_static/fonts/forkawesome-webfont.woff differ diff --git a/docs/_static/fonts/forkawesome-webfont.woff2 b/docs/_static/fonts/forkawesome-webfont.woff2 new file mode 100644 index 00000000..c96e5bf1 Binary files /dev/null and b/docs/_static/fonts/forkawesome-webfont.woff2 differ diff --git a/docs/api/auth.html b/docs/api/auth.html index cbfa024e..0680d448 100644 --- a/docs/api/auth.html +++ b/docs/api/auth.html @@ -5,11 +5,12 @@ - Authentication — FitTrackee 0.7.6 + <title>Authentication — FitTrackee 0.7.7 documentation - + + @@ -42,7 +43,7 @@ FitTrackee - 0.7.6 + 0.7.7 @@ -426,7 +427,7 @@ character “_” allowed

Request Headers:
Status Codes:
@@ -549,7 +550,7 @@ character “_” allowed

Request Headers:
Status Codes:
@@ -692,7 +693,7 @@ character “_” allowed

Request Headers:
Status Codes:
@@ -752,7 +753,7 @@ character “_” allowed

Request Headers:
Status Codes:
@@ -802,7 +803,7 @@ character “_” allowed

Request Headers:
Status Codes:
@@ -852,7 +853,7 @@ character “_” allowed

Request Headers:
Status Codes:
@@ -896,7 +897,7 @@ character “_” allowed

Request Headers:
Status Codes:
@@ -1064,7 +1065,7 @@ character “_” allowed

Request Headers:
Status Codes:
@@ -1202,7 +1203,7 @@ If a valid token is provided, it will be blacklisted.

Request Headers:
Status Codes:
@@ -1237,10 +1238,12 @@ for other reasons.

- © Copyright 2018 - 2022, SamR1.
+ © Copyright 2018 - 2022, SamR1 . + Last updated on Nov 27, 2022.
Created using Sphinx 5.3.0.

+ \ No newline at end of file diff --git a/docs/api/configuration.html b/docs/api/configuration.html index a2ea2914..ab7d37cd 100644 --- a/docs/api/configuration.html +++ b/docs/api/configuration.html @@ -5,11 +5,12 @@ - Configuration — FitTrackee 0.7.6 + <title>Configuration — FitTrackee 0.7.7 documentation - + + @@ -42,7 +43,7 @@ FitTrackee - 0.7.6 + 0.7.7 @@ -154,7 +155,7 @@ "max_users": 0, "max_zip_file_size": 10485760, "map_attribution": "&copy; <a href=http://www.openstreetmap.org/copyright>OpenStreetMap</a> contributors" - "version": "0.7.6" + "version": "0.7.7" }, "status": "success" } @@ -195,7 +196,7 @@ "max_users": 10, "max_zip_file_size": 10485760, "map_attribution": "&copy; <a href=http://www.openstreetmap.org/copyright>OpenStreetMap</a> contributors" - "version": "0.7.6" + "version": "0.7.7" }, "status": "success" } @@ -214,7 +215,7 @@
Request Headers:
Status Codes:
@@ -277,10 +278,12 @@

- © Copyright 2018 - 2022, SamR1.
+ © Copyright 2018 - 2022, SamR1 . + Last updated on Nov 27, 2022.
Created using Sphinx 5.3.0.

+ \ No newline at end of file diff --git a/docs/api/index.html b/docs/api/index.html index 746635d8..8f05d419 100644 --- a/docs/api/index.html +++ b/docs/api/index.html @@ -5,11 +5,12 @@ - API documentation — FitTrackee 0.7.6 + <title>API documentation — FitTrackee 0.7.7 documentation - + + @@ -42,7 +43,7 @@ FitTrackee - 0.7.6 + 0.7.7 @@ -158,10 +159,12 @@

- © Copyright 2018 - 2022, SamR1.
+ © Copyright 2018 - 2022, SamR1 . + Last updated on Nov 27, 2022.
Created using Sphinx 5.3.0.

+ \ No newline at end of file diff --git a/docs/api/oauth2.html b/docs/api/oauth2.html index e0f119ff..4c6a0e65 100644 --- a/docs/api/oauth2.html +++ b/docs/api/oauth2.html @@ -5,11 +5,12 @@ - OAuth2 — FitTrackee 0.7.6 + <title>OAuth2 — FitTrackee 0.7.7 documentation - + + @@ -42,7 +43,7 @@ FitTrackee - 0.7.6 + 0.7.7 @@ -193,7 +194,7 @@ application).

Request Headers:
Status Codes:
@@ -257,7 +258,7 @@ application).

Request Headers:
Status Codes:
@@ -335,7 +336,7 @@ application).

Request Headers:
Status Codes:
@@ -410,7 +411,7 @@ application).

Request Headers:
Status Codes:
@@ -452,7 +453,7 @@ application).

Request Headers:
Status Codes:
@@ -498,7 +499,7 @@ application).

Request Headers:
Status Codes:
@@ -557,7 +558,7 @@ provided)

Request Headers:
Status Codes:
@@ -692,10 +693,12 @@ are supported by FitTrackee)

- © Copyright 2018 - 2022, SamR1.
+ © Copyright 2018 - 2022, SamR1 . + Last updated on Nov 27, 2022.
Created using Sphinx 5.3.0.

+ \ No newline at end of file diff --git a/docs/api/records.html b/docs/api/records.html index ca22ecd2..ab8c9140 100644 --- a/docs/api/records.html +++ b/docs/api/records.html @@ -5,11 +5,12 @@ - Records — FitTrackee 0.7.6 + <title>Records — FitTrackee 0.7.7 documentation - + + @@ -42,7 +43,7 @@ FitTrackee - 0.7.6 + 0.7.7 @@ -229,7 +230,7 @@
Request Headers:
Status Codes:
@@ -260,10 +261,12 @@

- © Copyright 2018 - 2022, SamR1.
+ © Copyright 2018 - 2022, SamR1 . + Last updated on Nov 27, 2022.
Created using Sphinx 5.3.0.

+ \ No newline at end of file diff --git a/docs/api/sports.html b/docs/api/sports.html index dfa41e6b..11bf52af 100644 --- a/docs/api/sports.html +++ b/docs/api/sports.html @@ -5,11 +5,12 @@ - Sports — FitTrackee 0.7.6 + <title>Sports — FitTrackee 0.7.7 documentation - + + @@ -42,7 +43,7 @@ FitTrackee - 0.7.6 + 0.7.7 @@ -277,7 +278,7 @@
Request Headers:
Status Codes:
@@ -374,7 +375,7 @@
Request Headers:
Status Codes:
@@ -455,7 +456,7 @@
Request Headers:
Status Codes:
@@ -490,10 +491,12 @@

- © Copyright 2018 - 2022, SamR1.
+ © Copyright 2018 - 2022, SamR1 . + Last updated on Nov 27, 2022.
Created using Sphinx 5.3.0.

+ \ No newline at end of file diff --git a/docs/api/stats.html b/docs/api/stats.html index d6004495..67113d7e 100644 --- a/docs/api/stats.html +++ b/docs/api/stats.html @@ -5,11 +5,12 @@ - Statistics — FitTrackee 0.7.6 + <title>Statistics — FitTrackee 0.7.7 documentation - + + @@ -42,7 +43,7 @@ FitTrackee - 0.7.6 + 0.7.7 @@ -230,7 +231,7 @@
Request Headers:
Status Codes:
@@ -336,7 +337,7 @@
Request Headers:
Status Codes:
@@ -385,7 +386,7 @@
Request Headers:
Status Codes:
@@ -417,10 +418,12 @@

- © Copyright 2018 - 2022, SamR1.
+ © Copyright 2018 - 2022, SamR1 . + Last updated on Nov 27, 2022.
Created using Sphinx 5.3.0.

+ \ No newline at end of file diff --git a/docs/api/users.html b/docs/api/users.html index c66300f7..29b454fd 100644 --- a/docs/api/users.html +++ b/docs/api/users.html @@ -5,11 +5,12 @@ - Users — FitTrackee 0.7.6 + <title>Users — FitTrackee 0.7.7 documentation - + + @@ -42,7 +43,7 @@ FitTrackee - 0.7.6 + 0.7.7 @@ -274,7 +275,7 @@ has admin rights.

Request Headers:
Status Codes:
@@ -394,7 +395,7 @@ details.

Request Headers:
Status Codes:
@@ -565,7 +566,7 @@ if sending enabled)

Request Headers:
Status Codes:
@@ -620,7 +621,7 @@ one admin.

Request Headers:
Status Codes:
@@ -661,10 +662,12 @@ one admin.

- © Copyright 2018 - 2022, SamR1.
+ © Copyright 2018 - 2022, SamR1 . + Last updated on Nov 27, 2022.
Created using Sphinx 5.3.0.

+ \ No newline at end of file diff --git a/docs/api/workouts.html b/docs/api/workouts.html index 2fde79c1..ee3df202 100644 --- a/docs/api/workouts.html +++ b/docs/api/workouts.html @@ -5,11 +5,12 @@ - Workouts — FitTrackee 0.7.6 + <title>Workouts — FitTrackee 0.7.7 documentation - + + @@ -42,7 +43,7 @@ FitTrackee - 0.7.6 + 0.7.7 @@ -279,7 +280,7 @@
Request Headers:
Status Codes:
@@ -373,7 +374,7 @@
Request Headers:
Status Codes:
@@ -423,7 +424,7 @@
Request Headers:
Status Codes:
@@ -496,7 +497,7 @@
Request Headers:
Status Codes:
@@ -570,7 +571,7 @@
Request Headers:
Status Codes:
@@ -622,7 +623,7 @@
Request Headers:
Status Codes:
@@ -836,12 +837,13 @@
Form Parameters:
  • file – gpx file (allowed extensions: .gpx, .zip)

  • -
  • data – sport id and notes (example: {"sport_id": 1, "notes": ""})

  • +
  • data – sport id and notes (example: {"sport_id": 1, "notes": ""}). +Double quotes in notes must be escaped.

Request Headers:
Status Codes:
@@ -970,7 +972,7 @@
Request Headers:
Status Codes:
@@ -1100,7 +1102,7 @@
Request Headers:
Status Codes:
@@ -1143,7 +1145,7 @@
Request Headers:
Status Codes:
@@ -1176,10 +1178,12 @@

- © Copyright 2018 - 2022, SamR1.
+ © Copyright 2018 - 2022, SamR1 . + Last updated on Nov 27, 2022.
Created using Sphinx 5.3.0.

+ \ No newline at end of file diff --git a/docs/apps.html b/docs/apps.html index e050849b..73df1acb 100644 --- a/docs/apps.html +++ b/docs/apps.html @@ -5,11 +5,12 @@ - Third-party applications — FitTrackee 0.7.6 + <title>Third-party applications — FitTrackee 0.7.7 documentation - + + @@ -42,7 +43,7 @@ FitTrackee - 0.7.6 + 0.7.7 @@ -257,10 +258,12 @@ It is recommended to use PKCE to provide a better security.

- © Copyright 2018 - 2022, SamR1.
+ © Copyright 2018 - 2022, SamR1 . + Last updated on Nov 27, 2022.
Created using Sphinx 5.3.0.

+ \ No newline at end of file diff --git a/docs/changelog.html b/docs/changelog.html index 2aade233..417152da 100644 --- a/docs/changelog.html +++ b/docs/changelog.html @@ -5,11 +5,12 @@ - Change log — FitTrackee 0.7.6 + <title>Change log — FitTrackee 0.7.7 documentation - + + @@ -41,7 +42,7 @@ FitTrackee - 0.7.6 + 0.7.7 @@ -81,347 +82,354 @@ role="menu" aria-labelledby="dLabelLocalToc">
  • Change log
      -
    • Version 0.7.6 (2022/11/09)
        +
      • Version 0.7.7 (2022/11/27)
      • -
      • Version 0.7.5 (2022/11/09)
          -
        • Bugs Fixed
        • +
        • Version 0.7.6 (2022/11/09) +
        • +
        • Version 0.7.5 (2022/11/09)
        • Version 0.7.4 (2022/11/05)
        • Version 0.7.3 (2022/11/01)
        • Version 0.7.2 (2022/09/21)
        • Version 0.7.1 (2022/09/21)
        • Version 0.7.0 (2022/09/19)
        • Version 0.6.12 (2022/09/14)
        • Version 0.6.11 (2022/07/27)
            -
          • Issues Closed
              -
            • Bugs Fixed
            • +
            • Issues Closed
            • -
            • Pull Requests
                +
              • Pull Requests
              • Version 0.6.10 (2022/07/13)
              • -
              • Issues Closed
                  -
                • Bugs Fixed
                • +
                • Issues Closed
                • -
                • Pull Requests
                • Version 0.6.9 (2022/07/03)
                    -
                  • Issues Closed
                  • Version 0.6.8 (2022/06/22)
                      -
                    • Issues Closed
                    • Version 0.6.7 (2022/06/11)
                        -
                      • Issues Closed
                      • Version 0.6.6 (2022/05/29)
                      • Version 0.6.5 (2022/04/24)
                          -
                        • Issues Closed
                        • Version 0.6.4 (2022/04/23) -
                        • -
                        • Version 0.6.3 (2022/04/09) -
                        • -
                        • Version 0.6.2 (2022/04/03)
                        • -
                        • Version 0.6.1 (2022/03/27)
                            -
                          • Issues Closed
                              +
                            • Version 0.6.3 (2022/04/09)
                            • -
                            • Version 0.6.0 (2022/03/27)
                                +
                              • Version 0.6.2 (2022/04/03)
                                • Issues Closed
                                • -
                                • Pull Requests +
                                • +
                                • Version 0.6.1 (2022/03/27) +
                                • +
                                • Version 0.6.0 (2022/03/27)
                                • Version 0.5.7 (2022/02/13)
                                    -
                                  • Issues Closed
                                      -
                                    • Misc
                                    • +
                                    • Issues Closed
                                    • -
                                    • Pull Requests
                                    • Version 0.5.6 (2022/02/05)
                                        -
                                      • Issues Closed
                                      • Version 0.5.5 (2022/01/19) -
                                      • -
                                      • Version 0.5.4 (2022/01/01) -
                                      • -
                                      • Version 0.5.3 (2022/01/01)
                                      • -
                                      • Version 0.5.2 (2021/12/19)
                                          +
                                        • Version 0.5.4 (2022/01/01) +
                                        • +
                                        • Version 0.5.3 (2022/01/01) +
                                        • +
                                        • Version 0.5.2 (2021/12/19)
                                        • Version 0.5.1 (2021/11/30)
                                            -
                                          • Issues Closed
                                          • Version 0.5.0 (2021/11/14)
                                              -
                                            • Issues Closed
                                            • Version 0.4.9 (2021/07/16)
                                                -
                                              • Issues Closed
                                              • Version 0.4.8 (2021/07/03)
                                                  -
                                                • Issues Closed
                                                • Version 0.4.7 (2021/04/07)
                                                    -
                                                  • Issues Closed
                                                  • Version 0.4.6 (2021/02/21)
                                                      -
                                                    • Issues Closed
                                                    • Version 0.4.5 (2021/02/17)
                                                        -
                                                      • Issues Closed
                                                      • Version 0.4.4 (2021/01/31)
                                                          -
                                                        • Issues Closed
                                                        • Version 0.4.3 (2021/01/10)
                                                            -
                                                          • Issues Closed
                                                          • Version 0.4.2 (2021/01/03)
                                                          • Version 0.4.1 (2020/12/31) -
                                                          • -
                                                          • Version 0.4.0 - FitTrackee on PyPI (2020/09/19) -
                                                          • -
                                                          • Version 0.3.0 - Administration (2020/07/15)
                                                          • +
                                                          • Version 0.4.0 - FitTrackee on PyPI (2020/09/19) +
                                                          • +
                                                          • Version 0.3.0 - Administration (2020/07/15) +
                                                          • Version 0.2.5 - Fix and improvements (2020/01/31)
                                                          • Version 0.2.4 - Minor fix (2020/01/30)
                                                              -
                                                            • Issues Closed
                                                            • Version 0.2.3 - FitTrackee available in French (2019/12/29)
                                                                -
                                                              • Issues Closed
                                                              • Version 0.2.2 - Statistics fix (2019/09/23)
                                                                  -
                                                                • Issues Closed
                                                                • Version 0.2.1 - Fix and improvements (2019/09/01)
                                                                    -
                                                                  • Issues Closed
                                                                  • Version 0.2.0 - Statistics (2019/07/07)
                                                                      -
                                                                    • Issues Closed
                                                                    • Version 0.1.1 - Fix and improvements (2019/02/07)
                                                                        -
                                                                      • Issues Closed
                                                                      • Version 0.1.0 - First release 🎉 (2018-07-04)
                                                                          -
                                                                        • Issues Closed @@ -473,31 +481,60 @@

                                                                          Change log

                                                                          -
                                                                          -

                                                                          Version 0.7.6 (2022/11/09)

                                                                          +
                                                                          +

                                                                          Version 0.7.7 (2022/11/27)

                                                                          +
                                                                          +

                                                                          Features and enhancements

                                                                          +
                                                                            +
                                                                          • #258 - Request: parse links in notes area (thanks to @jat255)

                                                                          • +
                                                                          +
                                                                          +
                                                                          +

                                                                          Bugs Fixed

                                                                          +
                                                                            +
                                                                          • PR#271 - Fix workouts creation

                                                                          • +
                                                                          +

                                                                          Translations

                                                                            -
                                                                          • 3c8d9c2 - fix api locale file (remove trailing comma)

                                                                          • +
                                                                          • PR#273 - Init Dutch translations files

                                                                          Misc

                                                                            +
                                                                          • PR#274 - Tests parallelization

                                                                          • +
                                                                          • PR#275 - Disable worker entry point

                                                                          • +
                                                                          +

                                                                          Note: fittrackee_worker command is disabled, please use existing flask-dramatiq CLI (see documentation)

                                                                          +
                                                                          +
                                                                          +
                                                                          +

                                                                          Version 0.7.6 (2022/11/09)

                                                                          +
                                                                          +

                                                                          Translations

                                                                          +
                                                                            +
                                                                          • 3c8d9c2 - fix api locale file (remove trailing comma)

                                                                          • +
                                                                          +
                                                                          +
                                                                          +

                                                                          Misc

                                                                          +
                                                                          • dev dependencies update

                                                                          Version 0.7.5 (2022/11/09)

                                                                          -
                                                                          -

                                                                          Bugs Fixed

                                                                          +
                                                                          +

                                                                          Bugs Fixed

                                                                          • #264 - UI has white and gray background

                                                                          -
                                                                          -

                                                                          Translations

                                                                          +
                                                                          +

                                                                          Translations

                                                                          • #266 - Translations update from Hosted Weblate (German, thanks to @qwerty287)

                                                                          @@ -505,16 +542,16 @@

                                                                          Version 0.7.4 (2022/11/05)

                                                                          -
                                                                          -

                                                                          Bugs Fixed

                                                                          +
                                                                          +

                                                                          Bugs Fixed

                                                                          • #260 - Files size is not checked in zip archive

                                                                          • #261 - The API should return an error when the number of files in an archive exceeds the limit

                                                                          Note: archive import still needs some improvements (see #89)

                                                                          -
                                                                          -

                                                                          Translations

                                                                          +
                                                                          +

                                                                          Translations

                                                                          • b1536fc - fix french translations in administration

                                                                          @@ -529,23 +566,23 @@

                                                                          Version 0.7.3 (2022/11/01)

                                                                          -
                                                                          -

                                                                          Features and enhancements

                                                                          +
                                                                          +

                                                                          Features and enhancements

                                                                          • #112 - allow user to change date format

                                                                          • #244 - New sport type: “Virtual Ride”

                                                                          Thanks to @jat255

                                                                          -
                                                                          -

                                                                          Bugs Fixed

                                                                          +
                                                                          +

                                                                          Bugs Fixed

                                                                          • #246 - Add support to PostgreSQL 15

                                                                          • #247 - Segments duration is displayed with microseconds

                                                                          -
                                                                          -

                                                                          Translations

                                                                          +
                                                                          +

                                                                          Translations

                                                                          • PR#252 - init Norwegian Bokmål translations files

                                                                          @@ -554,8 +591,8 @@

                                                                          Version 0.7.2 (2022/09/21)

                                                                          -
                                                                          -

                                                                          Translations

                                                                          +
                                                                          +

                                                                          Translations

                                                                          • PR#242 - Translations update from Weblate (German, thanks to @qwerty287)

                                                                          @@ -563,14 +600,14 @@

                                                                          Version 0.7.1 (2022/09/21)

                                                                          -
                                                                          -

                                                                          Bugs Fixed

                                                                          +
                                                                          +

                                                                          Bugs Fixed

                                                                          • PR#241 - Add missing password strength estimation package (german)

                                                                          -
                                                                          -

                                                                          Translations

                                                                          +
                                                                          +

                                                                          Translations

                                                                          • PR#239 - Translations update from Weblate (German, thanks to @qwerty287)

                                                                          • cb9d02f - Update OAuth 2.0 translations (English & French)

                                                                          • @@ -579,23 +616,23 @@

                                                                          Version 0.7.0 (2022/09/19)

                                                                          -
                                                                          -

                                                                          Features and enhancements

                                                                          +
                                                                          +

                                                                          Features and enhancements

                                                                          • #88 - OAuth 2.0 access token for api access

                                                                          • #231 - Invalidate token on logout

                                                                          • PR#236 - Add API rate limits

                                                                          -
                                                                          -

                                                                          Bugs Fixed

                                                                          +
                                                                          +

                                                                          Bugs Fixed

                                                                          • #232 - Speed chart can not be hidden

                                                                          • #237 - Can not edit a workout when notes value is null

                                                                          -
                                                                          -

                                                                          Translations

                                                                          +
                                                                          +

                                                                          Translations

                                                                          • PR#212 - Translations update from Hosted Weblate (thanks to J. Lavoie)

                                                                          @@ -606,8 +643,8 @@

                                                                          Version 0.6.12 (2022/09/14)

                                                                          Issues Closed

                                                                          -
                                                                          -

                                                                          Bugs Fixed

                                                                          +
                                                                          +

                                                                          Bugs Fixed

                                                                          • #230 - Database problem after upgrade to 0.6.11

                                                                          @@ -615,8 +652,8 @@

                                                                          Pull Requests

                                                                          -
                                                                          -

                                                                          Misc

                                                                          +
                                                                          +

                                                                          Misc

                                                                          • #225 - Fix grammar issue

                                                                          @@ -627,17 +664,17 @@

                                                                          Version 0.6.11 (2022/07/27)

                                                                          -
                                                                          -

                                                                          Issues Closed

                                                                          -
                                                                          -

                                                                          Bugs Fixed

                                                                          +
                                                                          +

                                                                          Issues Closed

                                                                          +
                                                                          +

                                                                          Bugs Fixed

                                                                          • #213 - Statistics - When using imperial measurements, ascent/descent should be in ft not mi

                                                                          -
                                                                          -

                                                                          Pull Requests

                                                                          +
                                                                          +

                                                                          Pull Requests

                                                                          Features

                                                                            @@ -652,19 +689,19 @@

                                                                            Version 0.6.10 (2022/07/13)

                                                                            -
                                                                            -

                                                                            Issues Closed

                                                                            -
                                                                            -

                                                                            Bugs Fixed

                                                                            +
                                                                            +

                                                                            Issues Closed

                                                                            +
                                                                            +

                                                                            Bugs Fixed

                                                                            • #210 - ERROR - could not download 6 tiles
                                                                              Note: for tile server requiring subdomains, see the new environment variable STATICMAP_SUBDOMAINS

                                                                            -
                                                                            -

                                                                            Pull Requests

                                                                            -
                                                                            -

                                                                            Bugs Fixed

                                                                            +
                                                                            +

                                                                            Pull Requests

                                                                            +
                                                                            +

                                                                            Bugs Fixed

                                                                            • #209 - Incorrect duration with track containing multiple segments

                                                                            @@ -676,23 +713,23 @@

                                                                            Version 0.6.9 (2022/07/03)

                                                                            FitTrackee is now available in German (thanks to @gorgobacka).
                                                                            And translations can be updated on Weblate.

                                                                            -
                                                                            -

                                                                            Issues Closed

                                                                            -
                                                                            -

                                                                            Features

                                                                            +
                                                                            +

                                                                            Issues Closed

                                                                            +
                                                                            +

                                                                            Features

                                                                            • #200 - Detect browser language to use matching translation if available

                                                                            -
                                                                            -

                                                                            Bugs Fixed

                                                                            +
                                                                            +

                                                                            Bugs Fixed

                                                                            • PR#208 - fix order on records cards

                                                                            • #201 - html lang attribute is not updated when changing language

                                                                            -
                                                                            -

                                                                            Translations

                                                                            +
                                                                            +

                                                                            Translations

                                                                            • PR#197 - Translations update from Weblate (French)

                                                                            • #196 - Use translation management tool

                                                                            • @@ -709,10 +746,10 @@

                                                                            Version 0.6.8 (2022/06/22)

                                                                            -
                                                                            -

                                                                            Issues Closed

                                                                            -
                                                                            -

                                                                            Bugs Fixed

                                                                            +
                                                                            +

                                                                            Issues Closed

                                                                            +
                                                                            +

                                                                            Bugs Fixed

                                                                            • #193 - Allow deleting a workout when files are missing

                                                                            • #192 - Returns 404 instead of 500 when map file not found

                                                                            • @@ -720,8 +757,8 @@
                                                                            -
                                                                            -

                                                                            Misc

                                                                            +
                                                                            +

                                                                            Misc

                                                                            • change gpx and map file naming (included in PR#195)
                                                                              Note: it does not affect previously imported files

                                                                            • cc4287e - Fix docker env file

                                                                            • @@ -731,10 +768,10 @@

                                                                            Version 0.6.7 (2022/06/11)

                                                                            -
                                                                            -

                                                                            Issues Closed

                                                                            -
                                                                            -

                                                                            Bugs Fixed

                                                                            +
                                                                            +

                                                                            Issues Closed

                                                                            +
                                                                            +

                                                                            Bugs Fixed

                                                                            • #156 - Process gpx file with offset

                                                                            @@ -744,8 +781,8 @@

                                                                            Version 0.6.6 (2022/05/29)

                                                                            -
                                                                            -

                                                                            Misc

                                                                            +
                                                                            +

                                                                            Misc

                                                                            No new features in this release, only dependencies update and code refacto before introducing new features.

                                                                            @@ -754,10 +791,10 @@

                                                                            It is now possible to start FitTrackee without a configured SMTP provider (see documentation). It reduces pre-requisites for single-user instances.

                                                                            To manage users, a new CLI is available.

                                                                            -
                                                                            -

                                                                            Issues Closed

                                                                            -
                                                                            -

                                                                            Features

                                                                            +
                                                                            +

                                                                            Issues Closed

                                                                            +
                                                                            +

                                                                            Features

                                                                            • #180 - allow using FitTrackee without SMTP server

                                                                            @@ -767,10 +804,10 @@ It reduces pre-requisites for single-user instances.

                                                                            Version 0.6.4 (2022/04/23)

                                                                            -
                                                                            -

                                                                            Issues Closed

                                                                            -
                                                                            -

                                                                            Bugs Fixed

                                                                            +
                                                                            +

                                                                            Issues Closed

                                                                            +
                                                                            +

                                                                            Bugs Fixed

                                                                            • #178 - cannot send email with TLS

                                                                            @@ -780,10 +817,10 @@ It reduces pre-requisites for single-user instances.

                                                                            Version 0.6.3 (2022/04/09)

                                                                            -
                                                                            -

                                                                            Pull Requests

                                                                            -
                                                                            -

                                                                            Bugs Fixed

                                                                            +
                                                                            +

                                                                            Pull Requests

                                                                            +
                                                                            +

                                                                            Bugs Fixed

                                                                            • #177 - Minor fixes

                                                                                @@ -797,10 +834,10 @@ It reduces pre-requisites for single-user instances.

                                                                            Version 0.6.2 (2022/04/03)

                                                                            -
                                                                            -

                                                                            Issues Closed

                                                                            -
                                                                            -

                                                                            Bugs Fixed

                                                                            +
                                                                            +

                                                                            Issues Closed

                                                                            +
                                                                            +

                                                                            Bugs Fixed

                                                                            • #175 - Distance card on dashboard is not refreshed

                                                                            • #173 - link to user profile in workout card is incorrect

                                                                            • @@ -811,10 +848,10 @@ It reduces pre-requisites for single-user instances.

                                                                            Version 0.6.1 (2022/03/27)

                                                                            -
                                                                            -

                                                                            Issues Closed

                                                                            -
                                                                            -

                                                                            Bugs Fixed

                                                                            +
                                                                            +

                                                                            Issues Closed

                                                                            +
                                                                            +

                                                                            Bugs Fixed

                                                                            • #171 - Stats chart is not updated correctly

                                                                            @@ -825,26 +862,26 @@ It reduces pre-requisites for single-user instances.

                                                                            Version 0.6.0 (2022/03/27)

                                                                            This version introduces some changes on user registration.
                                                                            From now on, a user needs to confirm his account after registration (an email with confirmation instructions is sent after registration).

                                                                            -
                                                                            -

                                                                            Issues Closed

                                                                            -
                                                                            -

                                                                            Features

                                                                            +
                                                                            +

                                                                            Issues Closed

                                                                            +
                                                                            +

                                                                            Features

                                                                            • #155 - Improve user registration

                                                                            • #106 - Allow user to update email

                                                                            -
                                                                            -

                                                                            Bugs Fixed

                                                                            +
                                                                            +

                                                                            Bugs Fixed

                                                                            • #169 - user picture is not refreshed after update

                                                                            -
                                                                            -

                                                                            Pull Requests

                                                                            -
                                                                            -

                                                                            Bugs Fixed

                                                                            +
                                                                            +

                                                                            Pull Requests

                                                                            +
                                                                            +

                                                                            Bugs Fixed

                                                                            • #161 - Minor translation issue on ‘Farthest’

                                                                            • #160 - Minor translation issue on APP_ERROR

                                                                            • @@ -859,17 +896,17 @@ It reduces pre-requisites for single-user instances.

                                                                              This release contains several fixes including security fixes.
                                                                              Thanks to @DanielSiersleben for the report.

                                                                              And from now on, admin account is not created on application initialization.
                                                                              A new command is added to set administration rights on the account created after registration (see documentation)

                                                                              -
                                                                              -

                                                                              Issues Closed

                                                                              -
                                                                              -

                                                                              Misc

                                                                              +
                                                                              +

                                                                              Issues Closed

                                                                              +
                                                                              +

                                                                              Misc

                                                                              • #149 - improve database initialisation

                                                                              -
                                                                              -

                                                                              Pull Requests

                                                                              +
                                                                              +

                                                                              Pull Requests

                                                                              Security

                                                                                @@ -887,8 +924,8 @@ It reduces pre-requisites for single-user instances.

                                                                              -
                                                                              -

                                                                              Misc

                                                                              +
                                                                              +

                                                                              Misc

                                                                              • #152 - Fixes and improvements:

                                                                                  @@ -904,17 +941,17 @@ It reduces pre-requisites for single-user instances.

                                                                              Version 0.5.6 (2022/02/05)

                                                                              -
                                                                              -

                                                                              Issues Closed

                                                                              -
                                                                              -

                                                                              Bugs Fixed

                                                                              +
                                                                              +

                                                                              Issues Closed

                                                                              +
                                                                              +

                                                                              Bugs Fixed

                                                                              • #146 - incorrect label on workouts filters

                                                                              -
                                                                              -

                                                                              Pull Requests

                                                                              +
                                                                              +

                                                                              Pull Requests

                                                                              • #145 - fix on database models

                                                                              @@ -923,8 +960,8 @@ It reduces pre-requisites for single-user instances.

                                                                              Version 0.5.5 (2022/01/19)

                                                                              -
                                                                              -

                                                                              Issues Closed

                                                                              +
                                                                              +

                                                                              Issues Closed

                                                                              New Features

                                                                                @@ -934,8 +971,8 @@ It reduces pre-requisites for single-user instances.

                                                                              • #134 - Wind direction

                                                                              -
                                                                              -

                                                                              Bugs Fixed

                                                                              +
                                                                              +

                                                                              Bugs Fixed

                                                                              • 877fa0f - fix sport icon color (when changed) on calendar on small resolutions

                                                                              @@ -945,10 +982,10 @@ It reduces pre-requisites for single-user instances.

                                                                              Version 0.5.4 (2022/01/01)

                                                                              -
                                                                              -

                                                                              Issues Closed

                                                                              -
                                                                              -

                                                                              Bugs Fixed

                                                                              +
                                                                              +

                                                                              Issues Closed

                                                                              +
                                                                              +

                                                                              Bugs Fixed

                                                                              • #131 - No workouts displayed on calendar

                                                                              @@ -958,10 +995,10 @@ It reduces pre-requisites for single-user instances.

                                                                              Version 0.5.3 (2022/01/01)

                                                                              -
                                                                              -

                                                                              Issues Closed

                                                                              -
                                                                              -

                                                                              Bugs Fixed

                                                                              +
                                                                              +

                                                                              Issues Closed

                                                                              +
                                                                              +

                                                                              Bugs Fixed

                                                                              • #129 - Display only active sports when editing a workout

                                                                              • #127 - parse_email_url() can’t validate a legitimate EMAIL_URI such as “smtp://localhost:25”

                                                                              • @@ -972,10 +1009,10 @@ It reduces pre-requisites for single-user instances.

                                                                              Version 0.5.2 (2021/12/19)

                                                                              -
                                                                              -

                                                                              Issues Closed

                                                                              -
                                                                              -

                                                                              New Features

                                                                              +
                                                                              +

                                                                              Issues Closed

                                                                              +
                                                                              +

                                                                              New Features

                                                                              • #123 - Allow user to reset preferences for a sport

                                                                              • #121 - Add activity : snowshoes

                                                                              • @@ -986,10 +1023,10 @@ It reduces pre-requisites for single-user instances.

                                                                              Version 0.5.1 (2021/11/30)

                                                                              -
                                                                              -

                                                                              Issues Closed

                                                                              -
                                                                              -

                                                                              New Features

                                                                              +
                                                                              +

                                                                              Issues Closed

                                                                              +
                                                                              +

                                                                              New Features

                                                                              • #116 - Better UI for Speed and Elevation buttons in the graph of the Workout screen

                                                                              • #115 - Add option to download the GPX file of a Workout

                                                                              • @@ -1001,10 +1038,10 @@ It reduces pre-requisites for single-user instances.

                                                                              Version 0.5.0 (2021/11/14)

                                                                              -
                                                                              -

                                                                              Issues Closed

                                                                              -
                                                                              -

                                                                              New Features

                                                                              +
                                                                              +

                                                                              Issues Closed

                                                                              +
                                                                              +

                                                                              New Features

                                                                              • #99 - Display workout with imperial units

                                                                              • #91 - Display elevation chart with min and max altitude of workout

                                                                              • @@ -1012,21 +1049,21 @@ It reduces pre-requisites for single-user instances.

                                                                              • #18 - Better UI

                                                                              -
                                                                              -

                                                                              Bugs Fixed

                                                                              +
                                                                              +

                                                                              Bugs Fixed

                                                                              • #95 - Some workouts seem to be missing on statistics chart

                                                                              -
                                                                              -

                                                                              Misc

                                                                              +
                                                                              +

                                                                              Misc

                                                                              • #104 - Switch to AGPLv3 license

                                                                              -
                                                                              -

                                                                              Pull Requests

                                                                              +
                                                                              +

                                                                              Pull Requests

                                                                              • #101 - Docker updates for full files

                                                                              • #100 - Add client application in docker for development

                                                                              • @@ -1043,17 +1080,17 @@ It reduces pre-requisites for single-user instances.

                                                                              Version 0.4.9 (2021/07/16)

                                                                              -
                                                                              -

                                                                              Issues Closed

                                                                              -
                                                                              -

                                                                              New Features

                                                                              +
                                                                              +

                                                                              Issues Closed

                                                                              +
                                                                              +

                                                                              New Features

                                                                              • #83 - allow using configured tile server to generate static maps
                                                                                Note: to keep using the default tile server, set environment variable DEFAULT_STATICMAP to True

                                                                              • #81 - display remaining characters in textarea

                                                                              -
                                                                              -

                                                                              Bugs Fixed

                                                                              +
                                                                              +

                                                                              Bugs Fixed

                                                                              • #82 - a user can not modify his birth day

                                                                              • #80 - can not save notes with control characters

                                                                              • @@ -1064,10 +1101,10 @@ It reduces pre-requisites for single-user instances.

                                                                              Version 0.4.8 (2021/07/03)

                                                                              -
                                                                              -

                                                                              Issues Closed

                                                                              -
                                                                              -

                                                                              Bugs Fixed

                                                                              +
                                                                              +

                                                                              Issues Closed

                                                                              +
                                                                              +

                                                                              Bugs Fixed

                                                                              • #79 - Fails to start after make rebuild

                                                                              @@ -1077,17 +1114,17 @@ It reduces pre-requisites for single-user instances.

                                                                              Version 0.4.7 (2021/04/07)

                                                                              -
                                                                              -

                                                                              Issues Closed

                                                                              -
                                                                              -

                                                                              Bugs Fixed

                                                                              +
                                                                              +

                                                                              Issues Closed

                                                                              +
                                                                              +

                                                                              Bugs Fixed

                                                                              • #75 - Workouts on the same day are not displayed in right order

                                                                              -
                                                                              -

                                                                              Misc

                                                                              +
                                                                              +

                                                                              Misc

                                                                              • Update Python and Javascript dependencies
                                                                                IMPORTANT: Due to SQLAlchemy update (1.4+), engine URLs starting with postgres:// are no longer supported. Please update DATABASE_URL with postgresql://.

                                                                              @@ -1096,10 +1133,10 @@ It reduces pre-requisites for single-user instances.

                                                                              Version 0.4.6 (2021/02/21)

                                                                              -
                                                                              -

                                                                              Issues Closed

                                                                              -
                                                                              -

                                                                              Bugs Fixed

                                                                              +
                                                                              +

                                                                              Issues Closed

                                                                              +
                                                                              +

                                                                              Bugs Fixed

                                                                              • #72 - Error message when file exceeding size is incorrect

                                                                              • #71 - max size or max number of files must be greater than 0

                                                                              • @@ -1111,10 +1148,10 @@ It reduces pre-requisites for single-user instances.

                                                                              Version 0.4.5 (2021/02/17)

                                                                              -
                                                                              -

                                                                              Issues Closed

                                                                              -
                                                                              -

                                                                              Bugs Fixed

                                                                              +
                                                                              +

                                                                              Issues Closed

                                                                              +
                                                                              +

                                                                              Bugs Fixed

                                                                              • #66 - invalid gpx limit used when importing zip archive

                                                                              • #64 - Only 50 workouts per month shown in calendar

                                                                              • @@ -1125,17 +1162,17 @@ It reduces pre-requisites for single-user instances.

                                                                              Version 0.4.4 (2021/01/31)

                                                                              -
                                                                              -

                                                                              Issues Closed

                                                                              -
                                                                              -

                                                                              Bugs Fixed

                                                                              +
                                                                              +

                                                                              Issues Closed

                                                                              +
                                                                              +

                                                                              Bugs Fixed

                                                                              • #62 - Error when sending reset password email

                                                                              -
                                                                              -

                                                                              Misc

                                                                              +
                                                                              +

                                                                              Misc

                                                                              • Refactoring before introducing new features.

                                                                              • Add docker files for evaluation purposes.

                                                                              • @@ -1145,16 +1182,16 @@ It reduces pre-requisites for single-user instances.

                                                                              Version 0.4.3 (2021/01/10)

                                                                              -
                                                                              -

                                                                              Issues Closed

                                                                              -
                                                                              -

                                                                              New Features

                                                                              +
                                                                              +

                                                                              Issues Closed

                                                                              +
                                                                              +

                                                                              New Features

                                                                              • #58 - Standardize terms used for workouts
                                                                                Note: Database model, upload directory for workouts and API endpoints are also updated.

                                                                              -
                                                                              -

                                                                              Bugs Fixed

                                                                              +
                                                                              +

                                                                              Bugs Fixed

                                                                              • #59 - No message displayed on uploading image error

                                                                              @@ -1164,18 +1201,18 @@ It reduces pre-requisites for single-user instances.

                                                                              Version 0.4.2 (2021/01/03)

                                                                              -
                                                                              -

                                                                              Misc

                                                                              +
                                                                              +

                                                                              Misc

                                                                              No new features in this release, only some refactorings before introducing new features.

                                                                              Version 0.4.1 (2020/12/31)

                                                                              -
                                                                              -

                                                                              Issues Closed

                                                                              -
                                                                              -

                                                                              New Features

                                                                              +
                                                                              +

                                                                              Issues Closed

                                                                              +
                                                                              +

                                                                              New Features

                                                                              • #57 - Use uuid for activities

                                                                              @@ -1191,10 +1228,10 @@ new features.

                                                                            • It’s now possible to change the tile provider for maps. The default tile server is now OpenStreetMap’s standard tile layer (replacing ThunderForest Outdoors), see Map tile server in documentation.

                                                                            -
                                                                            -

                                                                            Issues Closed

                                                                            -
                                                                            -

                                                                            New Features

                                                                            +
                                                                            +

                                                                            Issues Closed

                                                                            +
                                                                            +

                                                                            New Features

                                                                            • #54 - Tile server can be changed

                                                                            • #53 - Simplify FitTrackee installation

                                                                            • @@ -1210,10 +1247,10 @@ see documentation)
                                                                              ⚠️ Warning: some application parameters move from environment variables to database (see installation).

                                                                            • in order to send emails, Redis is now a mandatory dependency

                                                                            -
                                                                            -

                                                                            Issues Closed

                                                                            -
                                                                            -

                                                                            New Features

                                                                            +
                                                                            +

                                                                            Issues Closed

                                                                            +
                                                                            +

                                                                            New Features

                                                                            • #50 - A user can reset his password

                                                                            • #17 - A user can delete his account

                                                                            • @@ -1225,8 +1262,8 @@ see

                                                                              Version 0.2.5 - Fix and improvements (2020/01/31)

                                                                              -
                                                                              -

                                                                              Misc

                                                                              +
                                                                              +

                                                                              Misc

                                                                              This version contains minor fix and improvements on client side:

                                                                              • 4c3fc34 - empty user data on logout

                                                                              • @@ -1239,10 +1276,10 @@ add URL interceptors to simplify routes definition

                                                                              Version 0.2.4 - Minor fix (2020/01/30)

                                                                              -
                                                                              -

                                                                              Issues Closed

                                                                              -
                                                                              -

                                                                              Bugs Fixed

                                                                              +
                                                                              +

                                                                              Issues Closed

                                                                              +
                                                                              +

                                                                              Bugs Fixed

                                                                              • #47 - timezone drop-down is not displayed correctly

                                                                              • #46 - calendar cannot display more than 5 or 6 activities on the same day

                                                                              • @@ -1253,17 +1290,17 @@ add URL interceptors to simplify routes definition

                                                                              Version 0.2.3 - FitTrackee available in French (2019/12/29)

                                                                              -
                                                                              -

                                                                              Issues Closed

                                                                              -
                                                                              -

                                                                              New Features

                                                                              +
                                                                              +

                                                                              Issues Closed

                                                                              +
                                                                              +

                                                                              New Features

                                                                              • #43 - Display weekend days with a different background color on calendar

                                                                              • #40 - Localize FitTrackee (i18n)

                                                                              -
                                                                              -

                                                                              Bugs Fixed

                                                                              +
                                                                              +

                                                                              Bugs Fixed

                                                                              • #44 - Cannot edit an activity that does not have a gpx file

                                                                              @@ -1273,10 +1310,10 @@ add URL interceptors to simplify routes definition

                                                                              Version 0.2.2 - Statistics fix (2019/09/23)

                                                                              -
                                                                              -

                                                                              Issues Closed

                                                                              -
                                                                              -

                                                                              Bugs Fixed

                                                                              +
                                                                              +

                                                                              Issues Closed

                                                                              +
                                                                              +

                                                                              Bugs Fixed

                                                                              • #41 - User statistics are incorrect

                                                                              @@ -1286,10 +1323,10 @@ add URL interceptors to simplify routes definition

                                                                              Version 0.2.1 - Fix and improvements (2019/09/01)

                                                                              -
                                                                              -

                                                                              Issues Closed

                                                                              -
                                                                              -

                                                                              New Features

                                                                              +
                                                                              +

                                                                              Issues Closed

                                                                              +
                                                                              +

                                                                              New Features

                                                                              • #4 - Show points on the map when mouse over the chart

                                                                              • #14 - Display segments informations

                                                                              • @@ -1300,15 +1337,15 @@ add URL interceptors to simplify routes definition

                                                                              • #37 - Display map on activities list

                                                                              -
                                                                              -

                                                                              Bugs Fixed

                                                                              +
                                                                              +

                                                                              Bugs Fixed

                                                                              • #34 - Weather is not displayed anymore

                                                                              -
                                                                              -

                                                                              Misc

                                                                              +
                                                                              +

                                                                              Misc

                                                                              @@ -1317,17 +1354,17 @@ add URL interceptors to simplify routes definition

                                                                              Version 0.2.0 - Statistics (2019/07/07)

                                                                              -
                                                                              -

                                                                              Issues Closed

                                                                              -
                                                                              -

                                                                              New Features

                                                                              +
                                                                              +

                                                                              Issues Closed

                                                                              +
                                                                              +

                                                                              New Features

                                                                              • #13 - Detailed statistics

                                                                              -
                                                                              -

                                                                              Misc

                                                                              +
                                                                              +

                                                                              Misc

                                                                              • Update dependencies

                                                                              @@ -1336,17 +1373,17 @@ add URL interceptors to simplify routes definition

                                                                              Version 0.1.1 - Fix and improvements (2019/02/07)

                                                                              -
                                                                              -

                                                                              Issues Closed

                                                                              -
                                                                              -

                                                                              New Features

                                                                              +
                                                                              +

                                                                              Issues Closed

                                                                              +
                                                                              +

                                                                              New Features

                                                                              • #25 - Display records on calendar

                                                                              • #22 - Add a total on current month statistics

                                                                              -
                                                                              -

                                                                              Bugs Fixed

                                                                              +
                                                                              +

                                                                              Bugs Fixed

                                                                              • #31 - Use moving duration for stats

                                                                              • #29 - Pause duration calculation with segments

                                                                              • @@ -1395,10 +1432,10 @@ add URL interceptors to simplify routes definition

                                                                              • no administration for now

                                                                              ➡️ more informations: see documentation and current issues

                                                                              -
                                                                              -

                                                                              Issues Closed

                                                                              -
                                                                              -

                                                                              New Features

                                                                              +
                                                                              +

                                                                              Issues Closed

                                                                              +
                                                                              +

                                                                              New Features

                                                                              • #11 - Timezone support

                                                                              • #10 - Add a note to an activity

                                                                              • @@ -1425,10 +1462,12 @@ add URL interceptors to simplify routes definition

                                                                                - © Copyright 2018 - 2022, SamR1.
                                                                                + © Copyright 2018 - 2022, SamR1 . + Last updated on Nov 27, 2022.
                                                                                Created using Sphinx 5.3.0.

                                                                                + \ No newline at end of file diff --git a/docs/cli.html b/docs/cli.html index 4a10abfb..d22b1574 100644 --- a/docs/cli.html +++ b/docs/cli.html @@ -5,11 +5,12 @@ - Command line interface — FitTrackee 0.7.6 + <title>Command line interface — FitTrackee 0.7.7 documentation - + + @@ -42,7 +43,7 @@ FitTrackee - 0.7.6 + 0.7.7 @@ -168,6 +169,7 @@ Commands:
                                                                                The following commands are now deprecated and will be removed in a next version:
                                                                                - fittrackee_set_admin
                                                                                - fittrackee_upgrade_db
                                                                                +
                                                                                - fittrackee_worker (disabled)
                                                                                @@ -285,10 +287,12 @@ Commands:

                                                                                - © Copyright 2018 - 2022, SamR1.
                                                                                + © Copyright 2018 - 2022, SamR1 . + Last updated on Nov 27, 2022.
                                                                                Created using Sphinx 5.3.0.

                                                                                + \ No newline at end of file diff --git a/docs/features.html b/docs/features.html index 442a73e8..3831765c 100644 --- a/docs/features.html +++ b/docs/features.html @@ -5,11 +5,12 @@ - Features — FitTrackee 0.7.6 + <title>Features — FitTrackee 0.7.7 documentation - + + @@ -42,7 +43,7 @@ FitTrackee - 0.7.6 + 0.7.7 @@ -383,10 +384,12 @@ A user with an inactive account cannot log in. (new in 0.6.0)

                                                                                - © Copyright 2018 - 2022, SamR1.
                                                                                + © Copyright 2018 - 2022, SamR1 . + Last updated on Nov 27, 2022.
                                                                                Created using Sphinx 5.3.0.

                                                                                + \ No newline at end of file diff --git a/docs/genindex.html b/docs/genindex.html index c85eac41..e976b539 100644 --- a/docs/genindex.html +++ b/docs/genindex.html @@ -4,11 +4,12 @@ - Index — FitTrackee 0.7.6 + <title>Index — FitTrackee 0.7.7 documentation - + + @@ -39,7 +40,7 @@ FitTrackee - 0.7.6 + 0.7.7 @@ -186,10 +187,12 @@

                                                                                - © Copyright 2018 - 2022, SamR1.
                                                                                + © Copyright 2018 - 2022, SamR1 . + Last updated on Nov 27, 2022.
                                                                                Created using Sphinx 5.3.0.

                                                                                + \ No newline at end of file diff --git a/docs/http-routingtable.html b/docs/http-routingtable.html index 17cca228..b7046b3b 100644 --- a/docs/http-routingtable.html +++ b/docs/http-routingtable.html @@ -4,11 +4,12 @@ - HTTP Routing Table — FitTrackee 0.7.6 + <title>HTTP Routing Table — FitTrackee 0.7.7 documentation - + + @@ -46,7 +47,7 @@ FitTrackee - 0.7.6 + 0.7.7 @@ -408,10 +409,12 @@

                                                                                - © Copyright 2018 - 2022, SamR1.
                                                                                + © Copyright 2018 - 2022, SamR1 . + Last updated on Nov 27, 2022.
                                                                                Created using Sphinx 5.3.0.

                                                                                + \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index c2dc4392..8695e9e0 100644 --- a/docs/index.html +++ b/docs/index.html @@ -5,11 +5,12 @@ - FitTrackee — FitTrackee 0.7.6 + <title>FitTrackee — FitTrackee 0.7.7 documentation - + + @@ -41,7 +42,7 @@ FitTrackee - 0.7.6 + 0.7.7 @@ -178,10 +179,12 @@ Map.

                                                                                - © Copyright 2018 - 2022, SamR1.
                                                                                + © Copyright 2018 - 2022, SamR1 . + Last updated on Nov 27, 2022.
                                                                                Created using Sphinx 5.3.0.

                                                                                + \ No newline at end of file diff --git a/docs/installation.html b/docs/installation.html index 70519d6e..4cc1a734 100644 --- a/docs/installation.html +++ b/docs/installation.html @@ -5,11 +5,12 @@ - Installation — FitTrackee 0.7.6 + <title>Installation — FitTrackee 0.7.7 documentation - + + @@ -42,7 +43,7 @@ FitTrackee - 0.7.6 + 0.7.7 @@ -701,9 +702,9 @@ $ source .env
                                                                                  -
                                                                                • Start task queue workers if email sending is enabled.

                                                                                • +
                                                                                • Start task queue workers if email sending is enabled, with flask-dramatiq CLI:

                                                                                -
                                                                                $ fittrackee_worker --processes 2
                                                                                +
                                                                                $ flask worker --processes 2
                                                                                 
                                                                                @@ -794,11 +795,11 @@ $ make install-db
                                                                                  -
                                                                                • Download the last release (for now, it is the release v0.7.6):

                                                                                • +
                                                                                • Download the last release (for now, it is the release v0.7.7):

                                                                                -
                                                                                $ wget https://github.com/SamR1/FitTrackee/archive/v0.7.6.tar.gz
                                                                                -$ tar -xzf v0.7.6.tar.gz
                                                                                -$ mv FitTrackee-0.7.6 FitTrackee
                                                                                +
                                                                                $ wget https://github.com/SamR1/FitTrackee/archive/v0.7.7.tar.gz
                                                                                +$ tar -xzf v0.7.7.tar.gz
                                                                                +$ mv FitTrackee-0.7.7 FitTrackee
                                                                                 $ cd FitTrackee
                                                                                 
                                                                                @@ -918,11 +919,11 @@ $ source .env
                                                                                • Stop the application

                                                                                • Change to the directory where FitTrackee directory is located

                                                                                • -
                                                                                • Download the last release (for now, it is the release v0.7.6) and overwrite existing files:

                                                                                • +
                                                                                • Download the last release (for now, it is the release v0.7.7) and overwrite existing files:

                                                                                -
                                                                                $ wget https://github.com/SamR1/FitTrackee/archive/v0.7.6.tar.gz
                                                                                -$ tar -xzf v0.7.6.tar.gz
                                                                                -$ cp -R FitTrackee-0.7.6/* FitTrackee/
                                                                                +
                                                                                $ wget https://github.com/SamR1/FitTrackee/archive/v0.7.7.tar.gz
                                                                                +$ tar -xzf v0.7.7.tar.gz
                                                                                +$ cp -R FitTrackee-0.7.7/* FitTrackee/
                                                                                 $ cd FitTrackee
                                                                                 
                                                                                @@ -1180,10 +1181,12 @@ $ make docker-test-python # run unit tests on API

                                                                                - © Copyright 2018 - 2022, SamR1.
                                                                                + © Copyright 2018 - 2022, SamR1 . + Last updated on Nov 27, 2022.
                                                                                Created using Sphinx 5.3.0.

                                                                                + \ No newline at end of file diff --git a/docs/objects.inv b/docs/objects.inv index 422cdb7a..e244fe09 100644 Binary files a/docs/objects.inv and b/docs/objects.inv differ diff --git a/docs/search.html b/docs/search.html index 61fe89e1..48ab0143 100644 --- a/docs/search.html +++ b/docs/search.html @@ -4,11 +4,12 @@ - Search — FitTrackee 0.7.6 + <title>Search — FitTrackee 0.7.7 documentation - + + @@ -46,7 +47,7 @@ FitTrackee - 0.7.6 + 0.7.7
                                                                                @@ -152,10 +153,12 @@

                                                                                - © Copyright 2018 - 2022, SamR1.
                                                                                + © Copyright 2018 - 2022, SamR1 . + Last updated on Nov 27, 2022.
                                                                                Created using Sphinx 5.3.0.

                                                                                + \ No newline at end of file diff --git a/docs/searchindex.js b/docs/searchindex.js index 5d022816..19e58928 100644 --- a/docs/searchindex.js +++ b/docs/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["api/auth", "api/configuration", "api/index", "api/oauth2", "api/records", "api/sports", "api/stats", "api/users", "api/workouts", "apps", "changelog", "cli", "features", "index", "installation", "troubleshooting/administrator", "troubleshooting/index", "troubleshooting/user"], "filenames": ["api/auth.rst", "api/configuration.rst", "api/index.rst", "api/oauth2.rst", "api/records.rst", "api/sports.rst", "api/stats.rst", "api/users.rst", "api/workouts.rst", "apps.rst", "changelog.md", "cli.rst", "features.rst", "index.rst", "installation.rst", "troubleshooting/administrator.rst", "troubleshooting/index.rst", "troubleshooting/user.rst"], "titles": ["Authentication", "Configuration", "API documentation", "OAuth2", "Records", "Sports", "Statistics", "Users", "Workouts", "Third-party applications", "Change log", "Command line interface", "Features", "FitTrackee", "Installation", "Administrator", "Troubleshooting", "User"], "terms": {"post": [0, 3, 8, 9], "api": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13], "auth": [0, 1, 3, 4, 5, 6, 7, 8, 9, 14], "regist": [0, 1, 12, 14], "user": [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 14, 16], "send": [0, 7, 10, 12, 14], "confirm": [0, 3, 10, 12, 14], "email": [0, 1, 7, 10, 11, 12, 15], "The": [0, 9, 10, 11, 12, 14], "newli": [0, 14], "creat": [0, 3, 8, 9, 10, 12, 14], "account": [0, 7, 10, 11, 14], "i": [0, 1, 3, 9, 10, 11, 12, 13, 14, 16], "inact": [0, 7, 12, 14], "must": [0, 1, 3, 5, 7, 9, 10, 12, 14, 15], "hi": [0, 7, 10, 12], "activ": [0, 5, 7, 10, 11, 12, 13, 14], "exampl": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 13, 14], "request": [0, 1, 3, 4, 5, 6, 7, 8, 9, 14], "http": [0, 1, 3, 4, 5, 6, 7, 8, 9, 14], "1": [0, 1, 3, 4, 5, 6, 7, 8, 12, 14], "content": [0, 1, 3, 4, 5, 6, 7, 8], "type": [0, 1, 3, 4, 5, 6, 7, 8, 10, 14], "applic": [0, 1, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14], "json": [0, 1, 3, 4, 5, 6, 7, 8], "respons": [0, 1, 3, 4, 5, 6, 7, 8], "success": [0, 1, 3, 4, 5, 6, 7, 8], "200": [0, 1, 3, 4, 5, 6, 7, 8, 10, 14], "statu": [0, 1, 3, 4, 5, 6, 7, 8, 11], "error": [0, 1, 3, 5, 7, 8, 10, 14, 15], "registr": [0, 1, 9, 10, 12, 14], "400": [0, 1, 3, 5, 7, 8], "bad": [0, 1, 3, 5, 7, 8], "messag": [0, 1, 3, 8, 10, 11, 14], "valid": [0, 1, 3, 4, 5, 6, 7, 8, 10, 14, 15], "provid": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15], "n": 0, "object": [0, 1, 5, 7, 8], "usernam": [0, 6, 7, 10, 14], "string": [0, 1, 3, 5, 6, 7, 8, 9, 14], "3": [0, 5, 6, 7, 8, 12, 14], "30": [0, 6], "charact": [0, 10], "requir": [0, 9, 10, 14], "password": [0, 7, 10, 11, 12, 14], "8": [0, 8], "lang": [0, 10], "languag": [0, 7, 10, 12], "prefer": [0, 7, 10], "invalid": [0, 1, 3, 4, 5, 6, 7, 8, 10, 14], "fallback": 0, "en": [0, 7], "english": [0, 10], "code": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10], "ok": [0, 1, 3, 4, 5, 6, 7, 8], "payload": [0, 1, 3, 5, 7, 8], "sorri": 0, "alreadi": 0, "taken": 0, "onli": [0, 3, 7, 8, 9, 10, 11, 12, 14], "alphanumer": [0, 10], "underscor": 0, "_": [0, 10], "allow": [0, 1, 8, 9, 10, 12, 13, 14], "403": [0, 1, 5, 6, 7, 8], "forbidden": [0, 1, 5, 6, 7, 8], "disabl": [0, 10, 12, 14], "500": [0, 1, 5, 7, 8, 10], "intern": [0, 1, 5, 7, 8], "server": [0, 1, 5, 7, 8, 10, 12, 13], "pleas": [0, 1, 3, 4, 5, 6, 7, 8, 10], "try": [0, 7, 8], "again": [0, 1, 3, 4, 5, 6, 7, 8], "contact": [0, 1, 7, 8, 12], "administr": [0, 1, 7, 8, 9, 16], "after": [0, 3, 9, 10, 12, 14], "auth_token": 0, "web": [0, 9, 13, 14], "token": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11], "resend": 0, "instruct": [0, 10, 12, 14], "If": [0, 3, 9, 12, 14], "thi": [0, 3, 8, 10, 11, 12, 13, 14], "endpoint": [0, 1, 3, 9, 10, 14], "avail": [0, 4, 9, 11, 12, 14], "resent": 0, "404": [0, 3, 5, 6, 7, 8, 10], "Not": [0, 3, 5, 6, 7, 8], "found": [0, 3, 5, 6, 7, 8, 10], "url": [0, 3, 9, 10, 14, 15], "wa": [0, 10], "login": 0, "an": [0, 1, 3, 5, 7, 9, 10, 12, 14, 15], "can": [0, 7, 9, 10, 12, 13, 14, 15], "log": [0, 1, 3, 4, 5, 6, 7, 8, 12, 13, 14, 15], "successfulli": 0, "401": [0, 1, 3, 4, 5, 6, 7, 8], "unauthor": [0, 1, 3, 4, 5, 6, 7, 8], "credenti": [0, 14], "get": [0, 1, 3, 4, 5, 6, 7, 8, 9], "profil": [0, 3, 9, 10], "info": 0, "scope": [0, 1, 3, 4, 5, 6, 7, 8], "read": [0, 3, 4, 5, 6, 7, 8, 9, 10], "data": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14], "admin": [0, 1, 4, 5, 6, 7, 8, 10, 11, 12, 14], "fals": [0, 1, 3, 5, 7, 8, 14], "bio": [0, 7], "null": [0, 5, 7, 8, 10], "birth_dat": [0, 7], "created_at": [0, 7], "sun": [0, 4, 7, 8], "14": [0, 3, 7, 8], "jul": [0, 4, 7, 8], "2019": [0, 4, 6, 7, 8], "09": [0, 7], "58": [0, 7, 10], "gmt": [0, 3, 4, 7, 8], "display_asc": 0, "true": [0, 1, 3, 5, 7, 10, 14], "sam": [0, 4, 7, 8], "com": [0, 1, 3, 7, 9, 14], "first_nam": [0, 7], "imperial_unit": [0, 7], "is_act": [0, 5, 7], "last_nam": [0, 7], "locat": [0, 7, 14], "nb_sport": [0, 7], "nb_workout": [0, 6, 7], "6": [0, 1, 5, 7, 8, 11, 12, 14], "pictur": [0, 7, 8, 10], "record": [0, 2, 7, 8, 10, 12], "id": [0, 3, 4, 5, 6, 7, 8, 9], "9": [0, 4, 7, 12, 14], "record_typ": [0, 4, 7, 8], "AS": [0, 4, 7, 8], "sport_id": [0, 4, 5, 6, 7, 8], "valu": [0, 3, 4, 7, 8, 9, 10, 14], "18": [0, 4, 7, 8, 10], "workout_d": [0, 4, 7, 8], "07": [0, 4, 7, 8], "08": [0, 4, 7, 8], "00": [0, 4, 7, 8], "workout_id": [0, 4, 7, 8], "hvybqybra7wwxpastwr4v2": [0, 4, 7, 8], "10": [0, 1, 4, 7, 8, 14], "fd": [0, 4, 7, 8], "13": [0, 4, 7, 8], "ha": [0, 4, 7, 8, 10, 12, 13], "43": [0, 4, 7, 8, 10], "97": [0, 4, 7, 8], "11": [0, 4, 7, 12], "ld": [0, 4, 7, 8], "01": [0, 4, 6, 7, 8], "12": [0, 4, 7, 8, 12], "m": [0, 4, 6, 7, 8], "sports_list": [0, 7], "4": [0, 5, 6, 7, 8, 12, 14], "timezon": [0, 7, 8, 10, 12], "europ": [0, 7], "pari": [0, 7], "total_dist": [0, 6, 7], "67": [0, 7], "895": [0, 7], "total_dur": [0, 6, 7], "50": [0, 7, 10, 14], "27": [0, 3, 7], "weekm": [0, 6, 7], "header": [0, 1, 3, 4, 5, 6, 7, 8, 9], "author": [0, 1, 3, 4, 5, 6, 7, 8, 9, 14], "oauth": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 14], "2": [0, 1, 3, 4, 5, 6, 7, 8, 9, 12, 14], "0": [0, 1, 3, 4, 5, 6, 7, 8, 9, 11, 12, 14], "bearer": [0, 1, 3, 4, 5, 6, 7, 8], "signatur": [0, 1, 3, 4, 5, 6, 7, 8], "expir": [0, 1, 3, 4, 5, 6, 7, 8, 11], "edit": [0, 10, 12], "write": [0, 1, 3, 5, 7, 8, 9], "updat": [0, 1, 5, 7, 8, 10, 12, 14], "first": [0, 3, 9, 12], "name": [0, 3, 7, 10, 14], "last": [0, 10, 14], "biographi": 0, "birth": [0, 10], "date": [0, 6, 8, 10, 12], "format": [0, 6, 8, 10, 12], "y": [0, 6, 8, 14], "d": [0, 6, 8], "support": [0, 3, 9, 10, 12, 14, 15], "mm": 0, "dd": 0, "yyyi": 0, "default": [0, 3, 6, 7, 8, 10, 12, 14], "date_str": 0, "correspond": 0, "client": [0, 3, 9, 10, 12, 14], "mmm": 0, "do": [0, 1, 5, 6, 7, 8], "local": [0, 10, 13, 14], "fr": [0, 7, 14], "de": [0, 14], "date_format": 0, "us": [0, 3, 7, 8, 9, 10, 12, 13, 14], "displai": [0, 8, 9, 10, 11, 12, 13, 14, 16], "app": [0, 3, 9, 10, 12, 13], "boolean": [0, 1, 3, 7, 11], "highest": [0, 4, 12], "ascent": [0, 4, 8, 10, 12], "total": [0, 3, 10, 12], "distanc": [0, 4, 8, 10, 12], "imperi": [0, 10, 12], "unit": [0, 10, 14], "time": [0, 6, 8, 10, 12], "zone": 0, "doe": [0, 6, 7, 8, 10], "week": [0, 6, 10, 12], "start": [0, 6, 8, 10, 12, 14, 16], "mondai": [0, 6, 12], "don": 0, "t": [0, 10, 15], "match": [0, 10], "sport": [0, 2, 6, 8, 10, 12, 14], "color": [0, 5, 10, 12], "000000": 0, "stopped_speed_threshold": [0, 5], "user_id": 0, "hexadecim": 0, "when": [0, 1, 10, 11, 12, 14], "ad": [0, 10, 11, 12], "workout": [0, 2, 3, 4, 5, 6, 9, 10, 13, 16], "float": [0, 8], "stop": [0, 10, 12, 14], "speed": [0, 4, 8, 10, 12, 14], "threshold": [0, 10, 12], "gpxpy": [0, 12, 14], "exist": [0, 6, 7, 8, 12, 13, 14], "delet": [0, 3, 7, 8, 10, 11, 12], "reset": [0, 7, 10, 11, 12, 14], "given": [0, 3, 14], "204": [0, 3, 7, 8], "paramet": [0, 3, 5, 6, 7, 8, 9, 10, 12, 14], "No": [0, 3, 7, 8, 10, 13], "multipart": [0, 3, 8], "form": [0, 3, 8], "file": [0, 1, 8, 10, 11, 12, 13, 14], "imag": [0, 7, 8, 10, 12, 14, 16], "extens": [0, 8, 14], "jpg": 0, "png": [0, 8, 14], "gif": 0, "part": [0, 8], "select": [0, 8, 12], "413": [0, 8], "entiti": [0, 8], "too": [0, 8], "larg": [0, 8, 12, 14], "dure": [0, 8], "size": [0, 1, 8, 10, 12, 14], "exce": [0, 8, 10], "0mb": [0, 8], "NO": [0, 3, 7, 8], "handl": [0, 12, 14], "process": [0, 10, 14], "patch": [0, 1, 5, 7, 8], "It": [0, 7, 9, 10, 12, 13, 15], "enabl": [0, 1, 7, 12, 14], "chang": [0, 12, 13, 14], "one": [0, 7, 8, 12], "current": [0, 10], "address": [0, 12, 14], "inform": [0, 10, 13, 14], "anoth": [0, 7, 14], "new": [0, 7, 9, 11, 12, 14], "new_password": 0, "miss": [0, 10], "logout": [0, 10], "blacklist": [0, 11], "out": 0, "access": [0, 3, 9, 10, 14], "revok": [0, 3], "malform": 0, "other": [0, 7, 14], "reason": 0, "config": [1, 10, 14], "admin_contact": 1, "gpx_limit_import": 1, "is_email_sending_en": 1, "is_registration_en": 1, "max_single_file_s": 1, "1048576": 1, "max_us": 1, "max_zip_file_s": 1, "10485760": 1, "map_attribut": [1, 14], "copi": [1, 14], "href": [1, 14], "www": [1, 14], "openstreetmap": [1, 10, 14], "org": [1, 14], "copyright": [1, 14], "contributor": [1, 10, 14], "version": [1, 11, 14], "7": [1, 8, 9, 11, 12, 14], "authent": [1, 2, 3, 4, 5, 7, 8, 9], "integ": [1, 3, 5, 6, 7, 8], "max": [1, 7, 8, 10], "number": [1, 7, 8, 10, 11, 12, 14], "zip": [1, 8, 10, 12], "archiv": [1, 10, 12, 14], "singl": [1, 7, 10, 12, 14], "instanc": [1, 3, 9, 10, 12, 14], "you": [1, 5, 6, 7, 8, 12, 13, 14], "have": [1, 5, 6, 7, 8, 10], "permiss": [1, 5, 6, 7, 8], "ping": 1, "health": 1, "check": [1, 10, 14, 15], "pong": 1, "configur": [2, 9, 10, 12, 14], "oauth2": [2, 9], "statist": 2, "pagin": [3, 7, 8], "5": [3, 5, 6, 7, 8, 11, 12, 14], "page": [3, 7, 8, 10], "fittracke": [3, 9, 11, 12, 14, 16], "parti": [3, 12, 13], "without": [3, 6, 7, 8, 10, 12, 13], "client_descript": 3, "client_id": [3, 9], "o22a27s2abpuoxjbxv3ujdox": 3, "issued_at": 3, "thu": 3, "juli": 3, "2022": 3, "06": [3, 6], "53": [3, 10], "gpx": [3, 8, 10, 12, 13, 14], "import": [3, 10, 14], "redirect_uri": 3, "callback": [3, 9], "websit": 3, "has_next": 3, "has_prev": 3, "queri": [3, 6, 7, 8], "client_secret": 3, "secret": [3, 9, 14], "client_nam": 3, "client_uri": 3, "arrai": 3, "list": [3, 10, 13, 14], "redirect": [3, 9], "descript": [3, 11, 14], "option": [3, 9, 10, 11, 14], "client_client_id": 3, "NOT": [3, 5, 8], "int": [3, 5, 8], "by_id": 3, "all": [3, 4, 5, 6, 7, 14], "associ": 3, "issu": [3, 13, 14], "response_typ": [3, 9], "state": [3, 9], "uniqu": [3, 9], "prevent": [3, 9, 14], "cross": [3, 9, 12], "site": [3, 9], "forgeri": [3, 9], "mandatori": [3, 8, 9, 10, 14], "recommend": [3, 9, 14], "code_challeng": [3, 9], "gener": [3, 9, 10, 12, 14], "from": [3, 6, 8, 9, 10, 12, 13], "verifi": [3, 9], "pkce": [3, 9], "code_challenge_method": [3, 9], "method": [3, 9, 14], "challeng": [3, 9], "s256": [3, 9], "return": [3, 4, 7, 8, 10, 14], "authlib": [3, 9, 14], "librari": [3, 9, 14], "refresh": [3, 10], "access_token": 3, "roehv64thcg28wcewzhrnvlusoduvw8nvnhkcml57": 3, "expires_in": 3, "864000": 3, "refresh_token": 3, "nuv9cy8vqonrqkhtz5pqaq2zw7msh0mornpjr14amswd6f6i": 3, "token_typ": 3, "expires_at": 3, "1658660147": 3, "0667062": 3, "grant_typ": 3, "grant": [3, 9], "authorization_cod": [3, 9], "ar": [3, 4, 8, 9, 10, 11, 12, 13, 14, 16], "code_verifi": 3, "follow": [4, 9, 11, 12, 14, 15], "averag": [4, 8, 10, 12], "farthest": [4, 10, 12], "longest": [4, 10, 12], "durat": [4, 8, 10, 12], "maximum": [4, 10, 12], "non": [5, 13], "is_active_for_us": 5, "label": [5, 10], "cycl": [5, 10, 12], "transport": [5, 10, 12], "hike": [5, 10, 12], "mountain": [5, 12], "bike": [5, 8, 10, 12], "run": [5, 9, 10, 12, 14], "walk": [5, 10, 12], "has_workout": 5, "stat": [6, 10], "user_nam": [6, 7], "by_tim": 6, "2018": [6, 8], "2017": [6, 8], "average_spe": 6, "48": 6, "total_asc": 6, "203": 6, "156": [6, 10], "15": [6, 8], "282": 6, "12341": 6, "16": [6, 8], "99": [6, 10], "150": 6, "178": [6, 10], "47": [6, 8, 10], "9960": 6, "95": [6, 10], "46": [6, 10], "78": 6, "613": 6, "1267": 6, "end": [6, 8], "frame": 6, "sundai": [6, 8, 12], "month": [6, 10, 12], "year": [6, 12], "by_sport": 6, "uploads_dir_s": 6, "1000": 6, "regardless": 7, "right": [7, 9, 10, 11, 12, 14], "some": [7, 8, 9, 10, 12, 13, 14], "order_bi": [7, 8], "workouts_count": 7, "par_pag": 7, "is_admin": 7, "sat": 7, "20": 7, "03": [7, 8], "per_pag": [7, 8], "per": [7, 8, 10, 14], "q": 7, "order": [7, 8, 9, 10], "sort": [7, 8], "asc": [7, 8], "desc": [7, 8], "criteria": [7, 8], "detail": [7, 10, 14, 16], "jpeg": 7, "add": [7, 10, 11, 12, 13], "remov": [7, 10, 11, 12], "modifi": [7, 10, 11, 14], "new_email": 7, "reset_password": 7, "differ": [7, 10, 12], "than": [7, 10, 11], "curent": 7, "A": [7, 10, 11, 12, 14, 15], "own": [7, 12, 13], "except": [7, 14, 15], "he": 7, "": [7, 8, 10, 14], "john_do": 7, "your": [7, 12, 13, 14], "02": 8, "31": 8, "least": 8, "ave_spe": 8, "bound": 8, "creation_d": 8, "51": 8, "descent": [8, 10, 12], "17": [8, 14], "04": 8, "kjxavsturjvoah2wvcegef": 8, "map": [8, 10, 12, 13, 16], "max_alt": 8, "max_spe": 8, "min_alt": 8, "modification_d": 8, "move": [8, 10], "next_workout": 8, "note": [8, 10, 12, 14], "paus": [8, 10], "previous_workout": 8, "mon": 8, "jan": 8, "segment": [8, 10, 12], "titl": 8, "weather_end": 8, "weather_start": 8, "with_gpx": 8, "100": [8, 10, 12], "distance_from": 8, "minim": [8, 9], "distance_to": 8, "maxim": 8, "duration_from": 8, "h": [8, 12], "duration_to": 8, "ave_speed_from": 8, "ave_speed_to": 8, "max_speed_from": 8, "max_speed_to": 8, "workout_short_id": 8, "57": [8, 10], "45": 8, "22": 8, "morn": 8, "short": 8, "leaflet": [8, 14], "chart_data": 8, "chart": [8, 10, 12, 14], "j": [8, 10, 14], "elev": [8, 10, 12, 14], "279": 8, "latitud": 8, "5078118": 8, "longitud": 8, "1232004": 8, "63": 8, "fri": 8, "44": [8, 10], "7380": 8, "280": 8, "5079733": 8, "1234538": 8, "39": 8, "segment_id": 8, "rechart": 8, "map_id": 8, "fa33f4d996844a5c73ecd1ae24456ab8": 8, "1563529507772": 8, "map_til": 8, "z": [8, 14], "x": [8, 9, 14], "tile": [8, 10, 12], "c": [8, 14], "4109": 8, "2930": 8, "subdomain": [8, 10, 14], "zoom": 8, "index": 8, "along": 8, "axi": 8, "download": [8, 10, 12, 14], "xml": 8, "201": [8, 10], "no_gpx": 8, "uuid": [8, 10], "km": [8, 12], "second": 8, "rest": 9, "see": [9, 10, 12, 13, 14, 15], "document": [9, 13, 14], "whose": 9, "most": 9, "To": [9, 10, 14], "interact": 9, "set": [9, 10, 11, 12, 14, 15], "tab": 9, "exchang": 9, "sent": [9, 10, 12, 14], "bodi": [9, 10, 14], "better": [9, 10], "secur": 9, "relat": [9, 12, 14], "shown": [9, 10, 16], "thei": [9, 14], "store": [9, 12, 13], "3rd": 9, "need": [9, 10, 14], "fittrackee_host": 9, "sinc": [9, 14], "separ": [9, 14], "space": 9, "For": [9, 12, 14], "3aread": 9, "3awrit": 9, "so": 9, "fetch": [9, 14], "implement": 9, "behind": 9, "proxi": [9, 14], "forward": [9, 14], "proto": [9, 14], "nginx": [9, 10, 12, 14], "proxy_set_head": [9, 14], "scheme": [9, 14], "about": [9, 14], "simplifi": [9, 10], "aaron": 9, "parecki": 9, "oauthlib": 9, "python": [9, 10, 14], "session": 9, "3c8d9c2": 10, "trail": [10, 12], "comma": [10, 14], "dev": 10, "depend": [10, 14], "264": 10, "ui": 10, "white": 10, "grai": 10, "background": 10, "266": 10, "host": [10, 14], "weblat": 10, "german": 10, "thank": 10, "qwerty287": 10, "260": 10, "261": 10, "should": [10, 14], "limit": [10, 12], "still": [10, 12, 13, 14], "89": 10, "b1536fc": 10, "257": 10, "jat255": 10, "112": 10, "244": 10, "virtual": [10, 12], "ride": 10, "246": 10, "postgresql": [10, 14, 15], "247": 10, "microsecond": 10, "pr": 10, "252": 10, "init": [10, 14], "norwegian": 10, "bokm\u00e5l": 10, "contain": [10, 14], "databas": [10, 12, 14, 15], "migrat": [10, 11, 14], "upgrad": 10, "242": 10, "241": 10, "strength": 10, "estim": 10, "packag": [10, 14], "239": 10, "cb9d02f": 10, "88": 10, "231": 10, "236": 10, "rate": 10, "232": 10, "hidden": [10, 12], "237": 10, "212": 10, "lavoi": 10, "230": 10, "problem": 10, "225": 10, "grammar": 10, "skylan0916": 10, "In": [10, 12], "execut": 10, "lower": 10, "v0": [10, 14], "postgr": [10, 15], "213": 10, "measur": 10, "ft": 10, "mi": 10, "223": 10, "icon": [10, 14], "167": 10, "dashboard": 10, "162": 10, "fmstrat": 10, "210": 10, "could": 10, "environ": [10, 11, 15], "variabl": [10, 15], "staticmap_subdomain": [10, 14], "209": 10, "incorrect": 10, "track": [10, 13], "multipl": 10, "gorgobacka": 10, "now": [10, 11, 12, 14], "And": 10, "detect": 10, "browser": 10, "208": 10, "card": 10, "html": 10, "attribut": [10, 14], "197": 10, "196": 10, "manag": [10, 11, 14], "tool": [10, 14], "190": 10, "were": 10, "193": 10, "192": 10, "instead": [10, 12], "191": 10, "layout": 10, "includ": 10, "195": 10, "affect": 10, "previous": 10, "cc4287e": 10, "docker": 10, "env": [10, 14], "offset": 10, "refacto": 10, "befor": [10, 14], "introduc": 10, "possibl": [10, 12, 13, 14], "smtp": [10, 14], "reduc": 10, "pre": 10, "requisit": 10, "cli": [10, 11, 12, 14], "180": 10, "cannot": [10, 12], "tl": [10, 14], "177": 10, "posit": [10, 12], "small": 10, "screen": [10, 12], "175": 10, "173": 10, "link": [10, 14], "171": 10, "correctli": 10, "155": 10, "106": 10, "169": 10, "161": 10, "160": 10, "sever": [10, 12, 13, 14], "danielsiersleben": 10, "report": 10, "initi": [10, 14], "command": [10, 12, 13, 14], "149": 10, "initialis": [10, 14], "152": 10, "autoescap": 10, "jinja": 10, "templat": 10, "151": 10, "sanit": 10, "input": 10, "serv": [10, 14], "dramatiq": [10, 14], "warn": [10, 12], "launch": 10, "worker": [10, 14], "w": 10, "script": 10, "entrypoint": 10, "drop": 10, "avoid": 10, "product": 10, "dotenv": 10, "146": 10, "filter": [10, 12], "145": 10, "model": 10, "140": 10, "fullscreen": 10, "control": [10, 12, 14], "138": 10, "135": 10, "finish": 10, "marker": 10, "134": 10, "wind": [10, 12], "direct": [10, 12], "877fa0f": 10, "calendar": [10, 12], "resolut": 10, "131": 10, "129": 10, "127": [10, 14], "pars": [10, 14], "legitim": 10, "uri": 10, "localhost": [10, 14], "25": [10, 14], "123": 10, "121": 10, "snowsho": [10, 12], "116": 10, "button": 10, "graph": 10, "115": 10, "91": 10, "min": 10, "altitud": 10, "90": 10, "seem": 10, "104": 10, "switch": 10, "agplv3": 10, "licens": [10, 13, 14], "101": 10, "full": [10, 12], "develop": [10, 11, 13], "98": 10, "109": 10, "slow": 10, "movement": 10, "84": 10, "93": 10, "paf38": 10, "83": 10, "static": [10, 12, 14], "keep": [10, 13, 14], "default_staticmap": [10, 14], "81": 10, "remain": 10, "textarea": 10, "82": 10, "dai": [10, 11, 12, 14], "80": [10, 14], "save": [10, 12], "79": 10, "fail": [10, 16], "make": [10, 14], "rebuild": 10, "75": 10, "same": 10, "javascript": [10, 14], "due": 10, "sqlalchemi": [10, 14, 15], "engin": [10, 14, 15], "longer": [10, 15], "database_url": [10, 14], "72": 10, "exceed": 10, "71": 10, "greater": 10, "70": 10, "less": 10, "upload": [10, 11, 12, 14], "66": 10, "64": 10, "62": 10, "refactor": 10, "evalu": [10, 14], "purpos": [10, 14], "standard": [10, 14], "term": [10, 14], "directori": [10, 12, 14], "also": [10, 11, 13, 14], "59": 10, "major": 10, "instal": [10, 13], "becom": 10, "more": [10, 11, 13, 14], "easi": 10, "been": [10, 13], "renam": 10, "layer": [10, 14], "replac": [10, 14], "thunderforest": [10, 14], "outdoor": [10, 12, 13, 14], "54": 10, "redi": [10, 14], "complet": 10, "side": 10, "4c3fc34": 10, "empti": [10, 11, 14], "34614d5": 10, "spinner": 10, "load": [10, 15], "b862a77": 10, "2e1ee2c": 10, "interceptor": 10, "rout": [10, 14], "definit": 10, "down": 10, "weekend": 10, "40": 10, "i18n": 10, "41": 10, "show": [10, 11, 14], "point": [10, 14], "mous": 10, "over": 10, "choos": [10, 12], "36": 10, "33": 10, "37": 10, "34": 10, "weather": [10, 12, 14], "anymor": 10, "poetri": [10, 14], "pipenv": 10, "calcul": 10, "28": 10, "26": 10, "tooltip": [10, 12], "creation": [10, 12], "montain": 10, "even": [10, 12], "enter": [10, 12], "darkski": [10, 12], "kei": [10, 12, 14], "farest": 10, "search": 10, "owner": [10, 12, 14], "view": [10, 12, 14], "usag": [11, 14], "arg": [11, 14], "help": [11, 14], "exit": [11, 14], "deprec": 11, "next": [11, 12], "fittrackee_set_admin": 11, "fittrackee_upgrade_db": 11, "appli": 11, "kind": 12, "encrypt": 12, "With": [12, 14], "open": [12, 13, 14], "street": [12, 13], "electr": 12, "row": 12, "ski": 12, "alpin": 12, "countri": 12, "overridden": 12, "which": 12, "up": [12, 13], "metric": 12, "system": [12, 14], "arrow": 12, "indic": 12, "come": 12, "period": 12, "mai": [12, 13, 14], "origin": 12, "dropdown": 12, "On": [12, 14], "case": [12, 14], "line": [12, 13, 14], "between": 12, "hide": 12, "overrid": 12, "appear": 12, "third": [12, 13], "defin": 12, "individu": 12, "necessari": [12, 14], "like": [12, 14], "lock": 12, "via": 12, "mobil": 13, "yet": 13, "export": [13, 14], "them": 13, "android": 13, "exhaust": 13, "runner": 13, "gpl": 13, "v3": 13, "forrunn": 13, "opentrack": 13, "apach": 13, "fitotrack": 13, "under": [13, 14], "heavi": [13, 14], "featur": [13, 14], "unstabl": [13, 14], "interfac": [13, 14], "troubleshoot": 13, "written": 14, "typescript": 14, "flask": 14, "staticmap": 14, "coordin": 14, "forecast": 14, "io": 14, "dark": 14, "sky": 14, "former": 14, "task": 14, "queue": 14, "vue3": 14, "vuex": 14, "logo": 14, "made": 14, "freepik": 14, "flaticon": 14, "fork": 14, "awesom": 14, "yarn": 14, "compos": 14, "step": 14, "describ": 14, "linux": 14, "test": 14, "debian": 14, "arch": 14, "o": 14, "encount": 14, "adapt": 14, "makefil": 14, "custom": 14, "flask_app": 14, "modul": 14, "pwd": 14, "__main__": 14, "py": 14, "els": 14, "port": 14, "5000": 14, "app_set": 14, "productionconfig": 14, "app_secret_kei": 14, "strong": 14, "jwt": 14, "app_work": 14, "spawn": 14, "gunicorn": [14, 15], "app_log": 14, "path": [14, 15], "upload_fold": [14, 15], "absolut": [14, 15], "where": 14, "folder": 14, "application_directori": 14, "virtualenv": 14, "5432": 14, "begin": 14, "database_disable_pool": 14, "pool": 14, "entri": 14, "directli": 14, "ui_url": 14, "email_url": [14, 15], "sender_email": 14, "sender": 14, "redis_url": 14, "workers_process": 14, "api_rate_limit": 14, "300": 14, "minut": 14, "tile_server_url": 14, "b": 14, "osm": 14, "franc": 14, "target": 14, "_blank": 14, "rel": 14, "noopen": 14, "noreferr": 14, "komoot": 14, "otherwis": 14, "insensit": 14, "weather_api_kei": 14, "weather_api": 14, "vue_app_api_url": 14, "unencrypt": 14, "ssl": 14, "465": 14, "starttl": 14, "587": 14, "office365": 14, "work": 14, "omit": 14, "old": 14, "adress": 14, "apikei": 14, "xxxx": 14, "servic": 14, "expect": 14, "osmfr": 14, "fond": 14, "cart": 14, "par": 14, "mention": 14, "legal": 14, "nofollow": 14, "sou": 14, "nbsp": 14, "creativecommon": 14, "sa": 14, "licenc": 14, "cc": 14, "BY": 14, "chosen": 14, "randomli": 14, "base": 14, "ip": 14, "fix": 14, "window": 14, "strategi": 14, "subject": 14, "asset": 14, "notat": 14, "hour": 14, "mainten": 14, "diagnost": 14, "util": 14, "commmand": 14, "clear": 14, "specif": 14, "enumer": 14, "wai": 14, "pip": 14, "WITH": 14, "schema": 14, "privileg": 14, "nano": 14, "ftcli": 14, "db": 14, "fittrackee_work": 14, "systemd": 14, "3000": 14, "archlinux": 14, "yai": 14, "project": 14, "clone": 14, "repo": 14, "git": 14, "github": 14, "samr1": 14, "cd": 14, "vue": 14, "releas": 14, "wget": 14, "tar": 14, "gz": 14, "xzf": 14, "mv": 14, "sql": 14, "backup": 14, "pg_dump": 14, "u": 14, "changelog": 14, "restart": 14, "pull": 14, "repositori": 14, "overwrit": 14, "cp": 14, "r": 14, "There": 14, "One": 14, "pass": 14, "distribut": 14, "network": 14, "startlimitintervalsec": 14, "simpl": 14, "alwai": 14, "restartsec": 14, "standardoutput": 14, "syslog": 14, "standarderror": 14, "syslogidentifi": 14, "workingdirectori": 14, "home": 14, "execstart": 14, "venv": 14, "bin": 14, "create_app": 14, "logfil": 14, "wantedbi": 14, "multi": 14, "OF": 14, "listen": 14, "443": 14, "http2": 14, "server_nam": 14, "ssl_certif": 14, "fullchain": 14, "pem": 14, "ssl_certificate_kei": 14, "privkei": 14, "how": 14, "1mb": 14, "larger": 14, "ll": 14, "uncom": 14, "below": 14, "want": 14, "client_max_body_s": 14, "1m": 14, "proxy_pass": 14, "proxy_redirect": 14, "real": 14, "remote_addr": 14, "proxy_add_x_forwarded_for": 14, "301": 14, "request_uri": 14, "build": 14, "8025": 14, "mailhog": 14, "shell": 14, "insid": 14, "addit": 14, "fittrackee_cli": 14, "lint": 14, "exc": 15, "nosuchmoduleerror": 15, "plugin": 15, "dialect": 15, "invalidemailurlschem": 15, "todo": 17}, "objects": {"": [[0, 0, 1, "post--api-auth-account-confirm", "/api/auth/account/confirm"], [0, 0, 1, "post--api-auth-account-resend-confirmation", "/api/auth/account/resend-confirmation"], [0, 0, 1, "post--api-auth-email-update", "/api/auth/email/update"], [0, 0, 1, "post--api-auth-login", "/api/auth/login"], [0, 0, 1, "post--api-auth-logout", "/api/auth/logout"], [0, 0, 1, "post--api-auth-password-reset-request", "/api/auth/password/reset-request"], [0, 0, 1, "post--api-auth-password-update", "/api/auth/password/update"], [0, 1, 1, "delete--api-auth-picture", "/api/auth/picture"], [0, 0, 1, "post--api-auth-picture", "/api/auth/picture"], [0, 2, 1, "get--api-auth-profile", "/api/auth/profile"], [0, 0, 1, "post--api-auth-profile-edit", "/api/auth/profile/edit"], [0, 3, 1, "patch--api-auth-profile-edit-account", "/api/auth/profile/edit/account"], [0, 0, 1, "post--api-auth-profile-edit-preferences", "/api/auth/profile/edit/preferences"], [0, 0, 1, "post--api-auth-profile-edit-sports", "/api/auth/profile/edit/sports"], [0, 1, 1, "delete--api-auth-profile-reset-sports-(sport_id)", "/api/auth/profile/reset/sports/(sport_id)"], [0, 0, 1, "post--api-auth-register", "/api/auth/register"], [1, 2, 1, "get--api-config", "/api/config"], [1, 3, 1, "patch--api-config", "/api/config"], [3, 2, 1, "get--api-oauth-apps", "/api/oauth/apps"], [3, 0, 1, "post--api-oauth-apps", "/api/oauth/apps"], [3, 1, 1, "delete--api-oauth-apps-(int-client_id)", "/api/oauth/apps/(int:client_id)"], [3, 2, 1, "get--api-oauth-apps-(int-client_id)-by_id", "/api/oauth/apps/(int:client_id)/by_id"], [3, 0, 1, "post--api-oauth-apps-(int-client_id)-revoke", "/api/oauth/apps/(int:client_id)/revoke"], [3, 2, 1, "get--api-oauth-apps-(string-client_client_id)", "/api/oauth/apps/(string:client_client_id)"], [3, 0, 1, "post--api-oauth-authorize", "/api/oauth/authorize"], [3, 0, 1, "post--api-oauth-revoke", "/api/oauth/revoke"], [3, 0, 1, "post--api-oauth-token", "/api/oauth/token"], [1, 2, 1, "get--api-ping", "/api/ping"], [4, 2, 1, "get--api-records", "/api/records"], [5, 2, 1, "get--api-sports", "/api/sports"], [5, 2, 1, "get--api-sports-(int-sport_id)", "/api/sports/(int:sport_id)"], [5, 3, 1, "patch--api-sports-(int-sport_id)", "/api/sports/(int:sport_id)"], [6, 2, 1, "get--api-stats-(user_name)-by_sport", "/api/stats/(user_name)/by_sport"], [6, 2, 1, "get--api-stats-(user_name)-by_time", "/api/stats/(user_name)/by_time"], [6, 2, 1, "get--api-stats-all", "/api/stats/all"], [7, 2, 1, "get--api-users", "/api/users"], [7, 1, 1, "delete--api-users-(user_name)", "/api/users/(user_name)"], [7, 2, 1, "get--api-users-(user_name)", "/api/users/(user_name)"], [7, 3, 1, "patch--api-users-(user_name)", "/api/users/(user_name)"], [7, 2, 1, "get--api-users-(user_name)-picture", "/api/users/(user_name)/picture"], [8, 2, 1, "get--api-workouts", "/api/workouts"], [8, 0, 1, "post--api-workouts", "/api/workouts"], [8, 1, 1, "delete--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [8, 2, 1, "get--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [8, 3, 1, "patch--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [8, 2, 1, "get--api-workouts-(string-workout_short_id)-chart_data", "/api/workouts/(string:workout_short_id)/chart_data"], [8, 2, 1, "get--api-workouts-(string-workout_short_id)-chart_data-segment-(int-segment_id)", "/api/workouts/(string:workout_short_id)/chart_data/segment/(int:segment_id)"], [8, 2, 1, "get--api-workouts-(string-workout_short_id)-gpx", "/api/workouts/(string:workout_short_id)/gpx"], [8, 2, 1, "get--api-workouts-(string-workout_short_id)-gpx-download", "/api/workouts/(string:workout_short_id)/gpx/download"], [8, 2, 1, "get--api-workouts-(string-workout_short_id)-gpx-segment-(int-segment_id)", "/api/workouts/(string:workout_short_id)/gpx/segment/(int:segment_id)"], [8, 2, 1, "get--api-workouts-map-(map_id)", "/api/workouts/map/(map_id)"], [8, 0, 1, "post--api-workouts-no_gpx", "/api/workouts/no_gpx"], [14, 4, 1, "envvar-API_RATE_LIMITS", "API_RATE_LIMITS \ud83c\udd95"], [14, 4, 1, "-", "APP_LOG"], [14, 4, 1, "-", "APP_SECRET_KEY"], [14, 4, 1, "-", "APP_SETTINGS"], [14, 4, 1, "-", "APP_WORKERS"], [14, 4, 1, "-", "DATABASE_DISABLE_POOLING"], [14, 4, 1, "-", "DATABASE_URL"], [14, 4, 1, "-", "DEFAULT_STATICMAP"], [14, 4, 1, "-", "EMAIL_URL"], [14, 4, 1, "-", "FLASK_APP"], [14, 4, 1, "-", "HOST"], [14, 4, 1, "-", "MAP_ATTRIBUTION"], [14, 4, 1, "-", "PORT"], [14, 4, 1, "-", "REDIS_URL"], [14, 4, 1, "-", "SENDER_EMAIL"], [14, 4, 1, "-", "STATICMAP_SUBDOMAINS"], [14, 4, 1, "-", "TILE_SERVER_URL"], [14, 4, 1, "-", "UI_URL"], [14, 4, 1, "-", "UPLOAD_FOLDER"], [14, 4, 1, "-", "VUE_APP_API_URL"], [14, 4, 1, "-", "WEATHER_API_KEY"], [14, 4, 1, "-", "WORKERS_PROCESSES"]], "/api/workouts/map_tile/(s)/(z)/(x)/(y)": [[8, 2, 1, "get--api-workouts-map_tile-(s)-(z)-(x)-(y).png", "png"]]}, "objtypes": {"0": "http:post", "1": "http:delete", "2": "http:get", "3": "http:patch", "4": "std:envvar"}, "objnames": {"0": ["http", "post", "HTTP post"], "1": ["http", "delete", "HTTP delete"], "2": ["http", "get", "HTTP get"], "3": ["http", "patch", "HTTP patch"], "4": ["std", "envvar", "environment variable"]}, "titleterms": {"authent": 0, "configur": 1, "api": [2, 14], "document": [2, 10], "endpoint": 2, "oauth2": [3, 11], "record": 4, "sport": 5, "statist": [6, 10, 12], "user": [7, 11, 17], "workout": [8, 12, 15], "third": 9, "parti": 9, "applic": 9, "scope": 9, "flow": 9, "resourc": 9, "chang": 10, "log": 10, "version": 10, "0": 10, "7": 10, "6": 10, "2022": 10, "11": 10, "09": 10, "translat": [10, 12], "misc": 10, "5": 10, "bug": 10, "fix": 10, "4": 10, "05": 10, "3": 10, "01": 10, "featur": [10, 12], "enhanc": 10, "2": 10, "21": 10, "1": 10, "19": 10, "12": 10, "14": 10, "issu": 10, "close": 10, "pull": 10, "request": 10, "07": 10, "27": 10, "10": 10, "13": 10, "9": 10, "03": 10, "8": 10, "06": 10, "22": 10, "29": 10, "04": 10, "24": 10, "23": 10, "02": 10, "secur": 10, "new": 10, "2021": 10, "30": 10, "16": 10, "17": 10, "31": 10, "2020": 10, "fittracke": [10, 13, 15], "pypi": [10, 14], "administr": [10, 12, 15], "15": 10, "improv": 10, "minor": 10, "avail": 10, "french": 10, "2019": 10, "first": 10, "releas": 10, "2018": 10, "command": 11, "line": 11, "interfac": 11, "databas": 11, "ftcli": 11, "db": 11, "upgrad": [11, 14], "drop": 11, "clean": 11, "clean_token": 11, "updat": 11, "account": 12, "prefer": 12, "screenshot": 12, "dashboard": 12, "detail": [12, 15], "list": 12, "tabl": 13, "content": 13, "instal": 14, "prerequisit": 14, "environ": 14, "variabl": 14, "email": 14, "map": [14, 15], "tile": 14, "server": 14, "rate": 14, "limit": 14, "from": 14, "sourc": 14, "dev": 14, "product": 14, "prod": 14, "deploy": 14, "docker": 14, "develop": 14, "fail": 15, "start": 15, "imag": 15, "ar": 15, "displai": 15, "i": 15, "shown": 15, "troubleshoot": 16}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 57}, "alltitles": {"Authentication": [[0, "authentication"]], "Configuration": [[1, "configuration"]], "API documentation": [[2, "api-documentation"]], "Endpoints:": [[2, null]], "OAuth2": [[3, "oauth2"], [11, "oauth2"]], "Records": [[4, "records"]], "Sports": [[5, "sports"]], "Statistics": [[6, "statistics"], [12, "statistics"]], "Users": [[7, "users"], [11, "users"]], "Workouts": [[8, "workouts"], [12, "workouts"]], "Third-party applications": [[9, "third-party-applications"]], "Scopes": [[9, "scopes"]], "Flow": [[9, "flow"]], "Resources": [[9, "resources"]], "Change log": [[10, "change-log"]], "Version 0.7.6 (2022/11/09)": [[10, "version-0-7-6-2022-11-09"]], "Translations": [[10, "translations"], [10, "id1"], [10, "id3"], [10, "id5"], [10, "id6"], [10, "id8"], [10, "id11"], [10, "id24"], [12, "translations"]], "Misc": [[10, "misc"], [10, "id13"], [10, "id27"], [10, "id30"], [10, "id47"], [10, "id49"], [10, "id66"], [10, "id75"], [10, "id82"], [10, "id86"], [10, "id93"], [10, "id104"], [10, "id107"]], "Version 0.7.5 (2022/11/09)": [[10, "version-0-7-5-2022-11-09"]], "Bugs Fixed": [[10, "bugs-fixed"], [10, "id2"], [10, "id4"], [10, "id7"], [10, "id10"], [10, "id12"], [10, "id15"], [10, "id18"], [10, "id20"], [10, "id23"], [10, "id26"], [10, "id29"], [10, "id34"], [10, "id36"], [10, "id38"], [10, "id40"], [10, "id43"], [10, "id45"], [10, "id51"], [10, "id54"], [10, "id56"], [10, "id58"], [10, "id65"], [10, "id70"], [10, "id72"], [10, "id74"], [10, "id77"], [10, "id79"], [10, "id81"], [10, "id85"], [10, "id95"], [10, "id98"], [10, "id100"], [10, "id103"], [10, "id110"]], "Version 0.7.4 (2022/11/05)": [[10, "version-0-7-4-2022-11-05"]], "Documentation": [[10, "documentation"]], "Version 0.7.3 (2022/11/01)": [[10, "version-0-7-3-2022-11-01"]], "Features and enhancements": [[10, "features-and-enhancements"], [10, "id9"]], "Version 0.7.2 (2022/09/21)": [[10, "version-0-7-2-2022-09-21"]], "Version 0.7.1 (2022/09/21)": [[10, "version-0-7-1-2022-09-21"]], "Version 0.7.0 (2022/09/19)": [[10, "version-0-7-0-2022-09-19"]], "Version 0.6.12 (2022/09/14)": [[10, "version-0-6-12-2022-09-14"]], "Issues Closed": [[10, "issues-closed"], [10, "id14"], [10, "id17"], [10, "id21"], [10, "id25"], [10, "id28"], [10, "id31"], [10, "id33"], [10, "id37"], [10, "id39"], [10, "id41"], [10, "id46"], [10, "id50"], [10, "id53"], [10, "id55"], [10, "id57"], [10, "id59"], [10, "id61"], [10, "id63"], [10, "id68"], [10, "id71"], [10, "id73"], [10, "id76"], [10, "id78"], [10, "id80"], [10, "id83"], [10, "id87"], [10, "id89"], [10, "id91"], [10, "id94"], [10, "id96"], [10, "id99"], [10, "id101"], [10, "id105"], [10, "id108"], [10, "id111"]], "Pull Requests": [[10, "pull-requests"], [10, "id16"], [10, "id19"], [10, "id35"], [10, "id44"], [10, "id48"], [10, "id52"], [10, "id67"]], "Version 0.6.11 (2022/07/27)": [[10, "version-0-6-11-2022-07-27"]], "Features": [[10, "features"], [10, "id22"], [10, "id32"], [10, "id42"], [12, "features"]], "Version 0.6.10 (2022/07/13)": [[10, "version-0-6-10-2022-07-13"]], "Version 0.6.9 (2022/07/03)": [[10, "version-0-6-9-2022-07-03"]], "Version 0.6.8 (2022/06/22)": [[10, "version-0-6-8-2022-06-22"]], "Version 0.6.7 (2022/06/11)": [[10, "version-0-6-7-2022-06-11"]], "Version 0.6.6 (2022/05/29)": [[10, "version-0-6-6-2022-05-29"]], "Version 0.6.5 (2022/04/24)": [[10, "version-0-6-5-2022-04-24"]], "Version 0.6.4 (2022/04/23)": [[10, "version-0-6-4-2022-04-23"]], "Version 0.6.3 (2022/04/09)": [[10, "version-0-6-3-2022-04-09"]], "Version 0.6.2 (2022/04/03)": [[10, "version-0-6-2-2022-04-03"]], "Version 0.6.1 (2022/03/27)": [[10, "version-0-6-1-2022-03-27"]], "Version 0.6.0 (2022/03/27)": [[10, "version-0-6-0-2022-03-27"]], "Version 0.5.7 (2022/02/13)": [[10, "version-0-5-7-2022-02-13"]], "Security": [[10, "security"]], "Version 0.5.6 (2022/02/05)": [[10, "version-0-5-6-2022-02-05"]], "Version 0.5.5 (2022/01/19)": [[10, "version-0-5-5-2022-01-19"]], "New Features": [[10, "new-features"], [10, "id60"], [10, "id62"], [10, "id64"], [10, "id69"], [10, "id84"], [10, "id88"], [10, "id90"], [10, "id92"], [10, "id97"], [10, "id102"], [10, "id106"], [10, "id109"], [10, "id112"]], "Version 0.5.4 (2022/01/01)": [[10, "version-0-5-4-2022-01-01"]], "Version 0.5.3 (2022/01/01)": [[10, "version-0-5-3-2022-01-01"]], "Version 0.5.2 (2021/12/19)": [[10, "version-0-5-2-2021-12-19"]], "Version 0.5.1 (2021/11/30)": [[10, "version-0-5-1-2021-11-30"]], "Version 0.5.0 (2021/11/14)": [[10, "version-0-5-0-2021-11-14"]], "Version 0.4.9 (2021/07/16)": [[10, "version-0-4-9-2021-07-16"]], "Version 0.4.8 (2021/07/03)": [[10, "version-0-4-8-2021-07-03"]], "Version 0.4.7 (2021/04/07)": [[10, "version-0-4-7-2021-04-07"]], "Version 0.4.6 (2021/02/21)": [[10, "version-0-4-6-2021-02-21"]], "Version 0.4.5 (2021/02/17)": [[10, "version-0-4-5-2021-02-17"]], "Version 0.4.4 (2021/01/31)": [[10, "version-0-4-4-2021-01-31"]], "Version 0.4.3 (2021/01/10)": [[10, "version-0-4-3-2021-01-10"]], "Version 0.4.2 (2021/01/03)": [[10, "version-0-4-2-2021-01-03"]], "Version 0.4.1 (2020/12/31)": [[10, "version-0-4-1-2020-12-31"]], "Version 0.4.0 - FitTrackee on PyPI (2020/09/19)": [[10, "version-0-4-0-fittrackee-on-pypi-2020-09-19"]], "Version 0.3.0 - Administration (2020/07/15)": [[10, "version-0-3-0-administration-2020-07-15"]], "Version 0.2.5 - Fix and improvements (2020/01/31)": [[10, "version-0-2-5-fix-and-improvements-2020-01-31"]], "Version 0.2.4 - Minor fix (2020/01/30)": [[10, "version-0-2-4-minor-fix-2020-01-30"]], "Version 0.2.3 - FitTrackee available in French (2019/12/29)": [[10, "version-0-2-3-fittrackee-available-in-french-2019-12-29"]], "Version 0.2.2 - Statistics fix (2019/09/23)": [[10, "version-0-2-2-statistics-fix-2019-09-23"]], "Version 0.2.1 - Fix and improvements (2019/09/01)": [[10, "version-0-2-1-fix-and-improvements-2019-09-01"]], "Version 0.2.0 - Statistics (2019/07/07)": [[10, "version-0-2-0-statistics-2019-07-07"]], "Version 0.1.1 - Fix and improvements (2019/02/07)": [[10, "version-0-1-1-fix-and-improvements-2019-02-07"]], "Version 0.1.0 - First release \ud83c\udf89 (2018-07-04)": [[10, "version-0-1-0-first-release-2018-07-04"]], "Command line interface": [[11, "command-line-interface"]], "Database": [[11, "database"]], "ftcli db upgrade": [[11, "ftcli-db-upgrade"]], "ftcli db drop": [[11, "ftcli-db-drop"]], "ftcli oauth2 clean": [[11, "ftcli-oauth2-clean"]], "ftcli users clean_tokens": [[11, "ftcli-users-clean-tokens"]], "ftcli users update": [[11, "ftcli-users-update"]], "Account & preferences": [[12, "account-preferences"]], "Administration": [[12, "administration"], [12, "id1"]], "Screenshots": [[12, "screenshots"]], "Dashboard": [[12, "dashboard"]], "Workout detail": [[12, "workout-detail"]], "Workouts list": [[12, "workouts-list"]], "FitTrackee": [[13, "fittrackee"]], "Table of contents": [[13, "table-of-contents"]], "Installation": [[14, "installation"], [14, "id2"], [14, "id6"]], "Prerequisites": [[14, "prerequisites"]], "Environment variables": [[14, "environment-variables"]], "Emails": [[14, "emails"]], "Map tile server": [[14, "map-tile-server"]], "API rate limits \ud83c\udd95": [[14, "api-rate-limits"]], "From PyPI": [[14, "from-pypi"], [14, "id3"]], "From sources": [[14, "from-sources"], [14, "id4"]], "Dev environment": [[14, "dev-environment"], [14, "id5"]], "Production environment": [[14, "production-environment"]], "Upgrade": [[14, "upgrade"]], "Prod environment": [[14, "prod-environment"]], "Deployment": [[14, "deployment"]], "Docker": [[14, "docker"]], "Development": [[14, "development"]], "Administrator": [[15, "administrator"]], "FitTrackee fails to start": [[15, "fittrackee-fails-to-start"]], "Map images are not displayed but map is shown in Workout detail": [[15, "map-images-are-not-displayed-but-map-is-shown-in-workout-detail"]], "Troubleshooting": [[16, "troubleshooting"]], "User": [[17, "user"]]}, "indexentries": {"api_rate_limits \ud83c\udd95": [[14, "envvar-API_RATE_LIMITS"]], "app_log": [[14, "envvar-APP_LOG"]], "app_secret_key": [[14, "envvar-APP_SECRET_KEY"]], "app_settings": [[14, "envvar-APP_SETTINGS"]], "app_workers": [[14, "envvar-APP_WORKERS"]], "database_disable_pooling": [[14, "envvar-DATABASE_DISABLE_POOLING"]], "database_url": [[14, "envvar-DATABASE_URL"]], "default_staticmap": [[14, "envvar-DEFAULT_STATICMAP"]], "email_url": [[14, "envvar-EMAIL_URL"]], "flask_app": [[14, "envvar-FLASK_APP"]], "host": [[14, "envvar-HOST"]], "map_attribution": [[14, "envvar-MAP_ATTRIBUTION"]], "port": [[14, "envvar-PORT"]], "redis_url": [[14, "envvar-REDIS_URL"]], "sender_email": [[14, "envvar-SENDER_EMAIL"]], "staticmap_subdomains": [[14, "envvar-STATICMAP_SUBDOMAINS"]], "tile_server_url": [[14, "envvar-TILE_SERVER_URL"]], "ui_url": [[14, "envvar-UI_URL"]], "upload_folder": [[14, "envvar-UPLOAD_FOLDER"]], "vue_app_api_url": [[14, "envvar-VUE_APP_API_URL"]], "weather_api_key": [[14, "envvar-WEATHER_API_KEY"]], "workers_processes": [[14, "envvar-WORKERS_PROCESSES"]], "environment variable": [[14, "envvar-API_RATE_LIMITS"], [14, "envvar-APP_LOG"], [14, "envvar-APP_SECRET_KEY"], [14, "envvar-APP_SETTINGS"], [14, "envvar-APP_WORKERS"], [14, "envvar-DATABASE_DISABLE_POOLING"], [14, "envvar-DATABASE_URL"], [14, "envvar-DEFAULT_STATICMAP"], [14, "envvar-EMAIL_URL"], [14, "envvar-FLASK_APP"], [14, "envvar-HOST"], [14, "envvar-MAP_ATTRIBUTION"], [14, "envvar-PORT"], [14, "envvar-REDIS_URL"], [14, "envvar-SENDER_EMAIL"], [14, "envvar-STATICMAP_SUBDOMAINS"], [14, "envvar-TILE_SERVER_URL"], [14, "envvar-UI_URL"], [14, "envvar-UPLOAD_FOLDER"], [14, "envvar-VUE_APP_API_URL"], [14, "envvar-WEATHER_API_KEY"], [14, "envvar-WORKERS_PROCESSES"]]}}) \ No newline at end of file +Search.setIndex({"docnames": ["api/auth", "api/configuration", "api/index", "api/oauth2", "api/records", "api/sports", "api/stats", "api/users", "api/workouts", "apps", "changelog", "cli", "features", "index", "installation", "troubleshooting/administrator", "troubleshooting/index", "troubleshooting/user"], "filenames": ["api/auth.rst", "api/configuration.rst", "api/index.rst", "api/oauth2.rst", "api/records.rst", "api/sports.rst", "api/stats.rst", "api/users.rst", "api/workouts.rst", "apps.rst", "changelog.md", "cli.rst", "features.rst", "index.rst", "installation.rst", "troubleshooting/administrator.rst", "troubleshooting/index.rst", "troubleshooting/user.rst"], "titles": ["Authentication", "Configuration", "API documentation", "OAuth2", "Records", "Sports", "Statistics", "Users", "Workouts", "Third-party applications", "Change log", "Command line interface", "Features", "FitTrackee", "Installation", "Administrator", "Troubleshooting", "User"], "terms": {"post": [0, 3, 8, 9], "api": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13], "auth": [0, 1, 3, 4, 5, 6, 7, 8, 9, 14], "regist": [0, 1, 12, 14], "user": [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 14, 16], "send": [0, 7, 10, 12, 14], "confirm": [0, 3, 10, 12, 14], "email": [0, 1, 7, 10, 11, 12, 15], "The": [0, 9, 10, 11, 12, 14], "newli": [0, 14], "creat": [0, 3, 8, 9, 10, 12, 14], "account": [0, 7, 10, 11, 14], "i": [0, 1, 3, 9, 10, 11, 12, 13, 14, 16], "inact": [0, 7, 12, 14], "must": [0, 1, 3, 5, 7, 8, 9, 10, 12, 14, 15], "hi": [0, 7, 10, 12], "activ": [0, 5, 7, 10, 11, 12, 13, 14], "exampl": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 13, 14], "request": [0, 1, 3, 4, 5, 6, 7, 8, 9, 14], "http": [0, 1, 3, 4, 5, 6, 7, 8, 9, 14], "1": [0, 1, 3, 4, 5, 6, 7, 8, 12, 14], "content": [0, 1, 3, 4, 5, 6, 7, 8], "type": [0, 1, 3, 4, 5, 6, 7, 8, 10, 14], "applic": [0, 1, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14], "json": [0, 1, 3, 4, 5, 6, 7, 8], "respons": [0, 1, 3, 4, 5, 6, 7, 8], "success": [0, 1, 3, 4, 5, 6, 7, 8], "200": [0, 1, 3, 4, 5, 6, 7, 8, 10, 14], "statu": [0, 1, 3, 4, 5, 6, 7, 8, 11], "error": [0, 1, 3, 5, 7, 8, 10, 14, 15], "registr": [0, 1, 9, 10, 12, 14], "400": [0, 1, 3, 5, 7, 8], "bad": [0, 1, 3, 5, 7, 8], "messag": [0, 1, 3, 8, 10, 11, 14], "valid": [0, 1, 3, 4, 5, 6, 7, 8, 10, 14, 15], "provid": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15], "n": 0, "object": [0, 1, 5, 7, 8], "usernam": [0, 6, 7, 10, 14], "string": [0, 1, 3, 5, 6, 7, 8, 9, 14], "3": [0, 5, 6, 7, 8, 12, 14], "30": [0, 6], "charact": [0, 10], "requir": [0, 9, 10, 14], "password": [0, 7, 10, 11, 12, 14], "8": [0, 8], "lang": [0, 10], "languag": [0, 7, 10, 12], "prefer": [0, 7, 10], "invalid": [0, 1, 3, 4, 5, 6, 7, 8, 10, 14], "fallback": 0, "en": [0, 7], "english": [0, 10], "code": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10], "ok": [0, 1, 3, 4, 5, 6, 7, 8], "payload": [0, 1, 3, 5, 7, 8], "sorri": 0, "alreadi": 0, "taken": 0, "onli": [0, 3, 7, 8, 9, 10, 11, 12, 14], "alphanumer": [0, 10], "underscor": 0, "_": [0, 10], "allow": [0, 1, 8, 9, 10, 12, 13, 14], "403": [0, 1, 5, 6, 7, 8], "forbidden": [0, 1, 5, 6, 7, 8], "disabl": [0, 10, 11, 12, 14], "500": [0, 1, 5, 7, 8, 10], "intern": [0, 1, 5, 7, 8], "server": [0, 1, 5, 7, 8, 10, 12, 13], "pleas": [0, 1, 3, 4, 5, 6, 7, 8, 10], "try": [0, 7, 8], "again": [0, 1, 3, 4, 5, 6, 7, 8], "contact": [0, 1, 7, 8, 12], "administr": [0, 1, 7, 8, 9, 16], "after": [0, 3, 9, 10, 12, 14], "auth_token": 0, "web": [0, 9, 13, 14], "token": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11], "resend": 0, "instruct": [0, 10, 12, 14], "If": [0, 3, 9, 12, 14], "thi": [0, 3, 8, 10, 11, 12, 13, 14], "endpoint": [0, 1, 3, 9, 10, 14], "avail": [0, 4, 9, 11, 12, 14], "resent": 0, "404": [0, 3, 5, 6, 7, 8, 10], "Not": [0, 3, 5, 6, 7, 8], "found": [0, 3, 5, 6, 7, 8, 10], "url": [0, 3, 9, 10, 14, 15], "wa": [0, 10], "login": 0, "an": [0, 1, 3, 5, 7, 9, 10, 12, 14, 15], "can": [0, 7, 9, 10, 12, 13, 14, 15], "log": [0, 1, 3, 4, 5, 6, 7, 8, 12, 13, 14, 15], "successfulli": 0, "401": [0, 1, 3, 4, 5, 6, 7, 8], "unauthor": [0, 1, 3, 4, 5, 6, 7, 8], "credenti": [0, 14], "get": [0, 1, 3, 4, 5, 6, 7, 8, 9], "profil": [0, 3, 9, 10], "info": 0, "scope": [0, 1, 3, 4, 5, 6, 7, 8], "read": [0, 3, 4, 5, 6, 7, 8, 9, 10], "data": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14], "admin": [0, 1, 4, 5, 6, 7, 8, 10, 11, 12, 14], "fals": [0, 1, 3, 5, 7, 8, 14], "bio": [0, 7], "null": [0, 5, 7, 8, 10], "birth_dat": [0, 7], "created_at": [0, 7], "sun": [0, 4, 7, 8], "14": [0, 3, 7, 8], "jul": [0, 4, 7, 8], "2019": [0, 4, 6, 7, 8], "09": [0, 7], "58": [0, 7, 10], "gmt": [0, 3, 4, 7, 8], "display_asc": 0, "true": [0, 1, 3, 5, 7, 10, 14], "sam": [0, 4, 7, 8], "com": [0, 1, 3, 7, 9, 14], "first_nam": [0, 7], "imperial_unit": [0, 7], "is_act": [0, 5, 7], "last_nam": [0, 7], "locat": [0, 7, 14], "nb_sport": [0, 7], "nb_workout": [0, 6, 7], "6": [0, 5, 7, 8, 11, 12, 14], "pictur": [0, 7, 8, 10], "record": [0, 2, 7, 8, 10, 12], "id": [0, 3, 4, 5, 6, 7, 8, 9], "9": [0, 4, 7, 12, 14], "record_typ": [0, 4, 7, 8], "AS": [0, 4, 7, 8], "sport_id": [0, 4, 5, 6, 7, 8], "valu": [0, 3, 4, 7, 8, 9, 10, 14], "18": [0, 4, 7, 8, 10], "workout_d": [0, 4, 7, 8], "07": [0, 4, 7, 8], "08": [0, 4, 7, 8], "00": [0, 4, 7, 8], "workout_id": [0, 4, 7, 8], "hvybqybra7wwxpastwr4v2": [0, 4, 7, 8], "10": [0, 1, 4, 7, 8, 14], "fd": [0, 4, 7, 8], "13": [0, 4, 7, 8], "ha": [0, 4, 7, 8, 10, 12, 13], "43": [0, 4, 7, 8, 10], "97": [0, 4, 7, 8], "11": [0, 4, 7, 12], "ld": [0, 4, 7, 8], "01": [0, 4, 6, 7, 8], "12": [0, 4, 7, 8, 12], "m": [0, 4, 6, 7, 8], "sports_list": [0, 7], "4": [0, 5, 6, 7, 8, 12, 14], "timezon": [0, 7, 8, 10, 12], "europ": [0, 7], "pari": [0, 7], "total_dist": [0, 6, 7], "67": [0, 7], "895": [0, 7], "total_dur": [0, 6, 7], "50": [0, 7, 10, 14], "27": [0, 3, 7], "weekm": [0, 6, 7], "header": [0, 1, 3, 4, 5, 6, 7, 8, 9], "author": [0, 1, 3, 4, 5, 6, 7, 8, 9, 14], "oauth": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 14], "2": [0, 1, 3, 4, 5, 6, 7, 8, 9, 12, 14], "0": [0, 1, 3, 4, 5, 6, 7, 8, 9, 11, 12, 14], "bearer": [0, 1, 3, 4, 5, 6, 7, 8], "signatur": [0, 1, 3, 4, 5, 6, 7, 8], "expir": [0, 1, 3, 4, 5, 6, 7, 8, 11], "edit": [0, 10, 12], "write": [0, 1, 3, 5, 7, 8, 9], "updat": [0, 1, 5, 7, 8, 10, 12, 14], "first": [0, 3, 9, 12], "name": [0, 3, 7, 10, 14], "last": [0, 10, 14], "biographi": 0, "birth": [0, 10], "date": [0, 6, 8, 10, 12], "format": [0, 6, 8, 10, 12], "y": [0, 6, 8, 14], "d": [0, 6, 8], "support": [0, 3, 9, 10, 12, 14, 15], "mm": 0, "dd": 0, "yyyi": 0, "default": [0, 3, 6, 7, 8, 10, 12, 14], "date_str": 0, "correspond": 0, "client": [0, 3, 9, 10, 12, 14], "mmm": 0, "do": [0, 1, 5, 6, 7, 8], "local": [0, 10, 13, 14], "fr": [0, 7, 14], "de": [0, 14], "date_format": 0, "us": [0, 3, 7, 8, 9, 10, 12, 13, 14], "displai": [0, 8, 9, 10, 11, 12, 13, 14, 16], "app": [0, 3, 9, 10, 12, 13], "boolean": [0, 1, 3, 7, 11], "highest": [0, 4, 12], "ascent": [0, 4, 8, 10, 12], "total": [0, 3, 10, 12], "distanc": [0, 4, 8, 10, 12], "imperi": [0, 10, 12], "unit": [0, 10, 14], "time": [0, 6, 8, 10, 12], "zone": 0, "doe": [0, 6, 7, 8, 10], "week": [0, 6, 10, 12], "start": [0, 6, 8, 10, 12, 14, 16], "mondai": [0, 6, 12], "don": 0, "t": [0, 10, 15], "match": [0, 10], "sport": [0, 2, 6, 8, 10, 12, 14], "color": [0, 5, 10, 12], "000000": 0, "stopped_speed_threshold": [0, 5], "user_id": 0, "hexadecim": 0, "when": [0, 1, 10, 11, 12, 14], "ad": [0, 10, 11, 12], "workout": [0, 2, 3, 4, 5, 6, 9, 10, 13, 16], "float": [0, 8], "stop": [0, 10, 12, 14], "speed": [0, 4, 8, 10, 12, 14], "threshold": [0, 10, 12], "gpxpy": [0, 12, 14], "exist": [0, 6, 7, 8, 10, 12, 13, 14], "delet": [0, 3, 7, 8, 10, 11, 12], "reset": [0, 7, 10, 11, 12, 14], "given": [0, 3, 14], "204": [0, 3, 7, 8], "paramet": [0, 3, 5, 6, 7, 8, 9, 10, 12, 14], "No": [0, 3, 7, 8, 10, 13], "multipart": [0, 3, 8], "form": [0, 3, 8], "file": [0, 1, 8, 10, 11, 12, 13, 14], "imag": [0, 7, 8, 10, 12, 14, 16], "extens": [0, 8, 14], "jpg": 0, "png": [0, 8, 14], "gif": 0, "part": [0, 8], "select": [0, 8, 12], "413": [0, 8], "entiti": [0, 8], "too": [0, 8], "larg": [0, 8, 12, 14], "dure": [0, 8], "size": [0, 1, 8, 10, 12, 14], "exce": [0, 8, 10], "0mb": [0, 8], "NO": [0, 3, 7, 8], "handl": [0, 12, 14], "process": [0, 10, 14], "patch": [0, 1, 5, 7, 8], "It": [0, 7, 9, 10, 12, 13, 15], "enabl": [0, 1, 7, 12, 14], "chang": [0, 12, 13, 14], "one": [0, 7, 8, 12], "current": [0, 10], "address": [0, 12, 14], "inform": [0, 10, 13, 14], "anoth": [0, 7, 14], "new": [0, 7, 9, 11, 12, 14], "new_password": 0, "miss": [0, 10], "logout": [0, 10], "blacklist": [0, 11], "out": 0, "access": [0, 3, 9, 10, 14], "revok": [0, 3], "malform": 0, "other": [0, 7, 14], "reason": 0, "config": [1, 10, 14], "admin_contact": 1, "gpx_limit_import": 1, "is_email_sending_en": 1, "is_registration_en": 1, "max_single_file_s": 1, "1048576": 1, "max_us": 1, "max_zip_file_s": 1, "10485760": 1, "map_attribut": [1, 14], "copi": [1, 14], "href": [1, 14], "www": [1, 14], "openstreetmap": [1, 10, 14], "org": [1, 14], "copyright": [1, 14], "contributor": [1, 10, 14], "version": [1, 11, 14], "7": [1, 8, 9, 11, 12, 14], "authent": [1, 2, 3, 4, 5, 7, 8, 9], "integ": [1, 3, 5, 6, 7, 8], "max": [1, 7, 8, 10], "number": [1, 7, 8, 10, 11, 12, 14], "zip": [1, 8, 10, 12], "archiv": [1, 10, 12, 14], "singl": [1, 7, 10, 12, 14], "instanc": [1, 3, 9, 10, 12, 14], "you": [1, 5, 6, 7, 8, 12, 13, 14], "have": [1, 5, 6, 7, 8, 10], "permiss": [1, 5, 6, 7, 8], "ping": 1, "health": 1, "check": [1, 10, 14, 15], "pong": 1, "configur": [2, 9, 10, 12, 14], "oauth2": [2, 9], "statist": 2, "pagin": [3, 7, 8], "5": [3, 5, 6, 7, 8, 11, 12, 14], "page": [3, 7, 8, 10], "fittracke": [3, 9, 11, 12, 14, 16], "parti": [3, 12, 13], "without": [3, 6, 7, 8, 10, 12, 13], "client_descript": 3, "client_id": [3, 9], "o22a27s2abpuoxjbxv3ujdox": 3, "issued_at": 3, "thu": 3, "juli": 3, "2022": 3, "06": [3, 6], "53": [3, 10], "gpx": [3, 8, 10, 12, 13, 14], "import": [3, 10, 14], "redirect_uri": 3, "callback": [3, 9], "websit": 3, "has_next": 3, "has_prev": 3, "queri": [3, 6, 7, 8], "client_secret": 3, "secret": [3, 9, 14], "client_nam": 3, "client_uri": 3, "arrai": 3, "list": [3, 10, 13, 14], "redirect": [3, 9], "descript": [3, 11, 14], "option": [3, 9, 10, 11, 14], "client_client_id": 3, "NOT": [3, 5, 8], "int": [3, 5, 8], "by_id": 3, "all": [3, 4, 5, 6, 7, 14], "associ": 3, "issu": [3, 13, 14], "response_typ": [3, 9], "state": [3, 9], "uniqu": [3, 9], "prevent": [3, 9, 14], "cross": [3, 9, 12], "site": [3, 9], "forgeri": [3, 9], "mandatori": [3, 8, 9, 10, 14], "recommend": [3, 9, 14], "code_challeng": [3, 9], "gener": [3, 9, 10, 12, 14], "from": [3, 6, 8, 9, 10, 12, 13], "verifi": [3, 9], "pkce": [3, 9], "code_challenge_method": [3, 9], "method": [3, 9, 14], "challeng": [3, 9], "s256": [3, 9], "return": [3, 4, 7, 8, 10, 14], "authlib": [3, 9, 14], "librari": [3, 9, 14], "refresh": [3, 10], "access_token": 3, "roehv64thcg28wcewzhrnvlusoduvw8nvnhkcml57": 3, "expires_in": 3, "864000": 3, "refresh_token": 3, "nuv9cy8vqonrqkhtz5pqaq2zw7msh0mornpjr14amswd6f6i": 3, "token_typ": 3, "expires_at": 3, "1658660147": 3, "0667062": 3, "grant_typ": 3, "grant": [3, 9], "authorization_cod": [3, 9], "ar": [3, 4, 8, 9, 10, 11, 12, 13, 14, 16], "code_verifi": 3, "follow": [4, 9, 11, 12, 14, 15], "averag": [4, 8, 10, 12], "farthest": [4, 10, 12], "longest": [4, 10, 12], "durat": [4, 8, 10, 12], "maximum": [4, 10, 12], "non": [5, 13], "is_active_for_us": 5, "label": [5, 10], "cycl": [5, 10, 12], "transport": [5, 10, 12], "hike": [5, 10, 12], "mountain": [5, 12], "bike": [5, 8, 10, 12], "run": [5, 9, 10, 12, 14], "walk": [5, 10, 12], "has_workout": 5, "stat": [6, 10], "user_nam": [6, 7], "by_tim": 6, "2018": [6, 8], "2017": [6, 8], "average_spe": 6, "48": 6, "total_asc": 6, "203": 6, "156": [6, 10], "15": [6, 8], "282": 6, "12341": 6, "16": [6, 8], "99": [6, 10], "150": 6, "178": [6, 10], "47": [6, 8, 10], "9960": 6, "95": [6, 10], "46": [6, 10], "78": 6, "613": 6, "1267": 6, "end": [6, 8], "frame": 6, "sundai": [6, 8, 12], "month": [6, 10, 12], "year": [6, 12], "by_sport": 6, "uploads_dir_s": 6, "1000": 6, "regardless": 7, "right": [7, 9, 10, 11, 12, 14], "some": [7, 8, 9, 10, 12, 13, 14], "order_bi": [7, 8], "workouts_count": 7, "par_pag": 7, "is_admin": 7, "sat": 7, "20": 7, "03": [7, 8], "per_pag": [7, 8], "per": [7, 8, 10, 14], "q": 7, "order": [7, 8, 9, 10], "sort": [7, 8], "asc": [7, 8], "desc": [7, 8], "criteria": [7, 8], "detail": [7, 10, 14, 16], "jpeg": 7, "add": [7, 10, 11, 12, 13], "remov": [7, 10, 11, 12], "modifi": [7, 10, 11, 14], "new_email": 7, "reset_password": 7, "differ": [7, 10, 12], "than": [7, 10, 11], "curent": 7, "A": [7, 10, 11, 12, 14, 15], "own": [7, 12, 13], "except": [7, 14, 15], "he": 7, "": [7, 8, 10, 14], "john_do": 7, "your": [7, 12, 13, 14], "02": 8, "31": 8, "least": 8, "ave_spe": 8, "bound": 8, "creation_d": 8, "51": 8, "descent": [8, 10, 12], "17": [8, 14], "04": 8, "kjxavsturjvoah2wvcegef": 8, "map": [8, 10, 12, 13, 16], "max_alt": 8, "max_spe": 8, "min_alt": 8, "modification_d": 8, "move": [8, 10], "next_workout": 8, "note": [8, 10, 12, 14], "paus": [8, 10], "previous_workout": 8, "mon": 8, "jan": 8, "segment": [8, 10, 12], "titl": 8, "weather_end": 8, "weather_start": 8, "with_gpx": 8, "100": [8, 10, 12], "distance_from": 8, "minim": [8, 9], "distance_to": 8, "maxim": 8, "duration_from": 8, "h": [8, 12], "duration_to": 8, "ave_speed_from": 8, "ave_speed_to": 8, "max_speed_from": 8, "max_speed_to": 8, "workout_short_id": 8, "57": [8, 10], "45": 8, "22": 8, "morn": 8, "short": 8, "leaflet": [8, 14], "chart_data": 8, "chart": [8, 10, 12, 14], "j": [8, 10, 14], "elev": [8, 10, 12, 14], "279": 8, "latitud": 8, "5078118": 8, "longitud": 8, "1232004": 8, "63": 8, "fri": 8, "44": [8, 10], "7380": 8, "280": 8, "5079733": 8, "1234538": 8, "39": 8, "segment_id": 8, "rechart": 8, "map_id": 8, "fa33f4d996844a5c73ecd1ae24456ab8": 8, "1563529507772": 8, "map_til": 8, "z": [8, 14], "x": [8, 9, 14], "tile": [8, 10, 12], "c": [8, 14], "4109": 8, "2930": 8, "subdomain": [8, 10, 14], "zoom": 8, "index": 8, "along": 8, "axi": 8, "download": [8, 10, 12, 14], "xml": 8, "201": [8, 10], "doubl": 8, "quot": 8, "escap": 8, "no_gpx": 8, "uuid": [8, 10], "km": [8, 12], "second": 8, "rest": 9, "see": [9, 10, 12, 13, 14, 15], "document": [9, 13, 14], "whose": 9, "most": 9, "To": [9, 10, 14], "interact": 9, "set": [9, 10, 11, 12, 14, 15], "tab": 9, "exchang": 9, "sent": [9, 10, 12, 14], "bodi": [9, 10, 14], "better": [9, 10], "secur": 9, "relat": [9, 12, 14], "shown": [9, 10, 16], "thei": [9, 14], "store": [9, 12, 13], "3rd": 9, "need": [9, 10, 14], "fittrackee_host": 9, "sinc": [9, 14], "separ": [9, 14], "space": 9, "For": [9, 12, 14], "3aread": 9, "3awrit": 9, "so": 9, "fetch": [9, 14], "implement": 9, "behind": 9, "proxi": [9, 14], "forward": [9, 14], "proto": [9, 14], "nginx": [9, 10, 12, 14], "proxy_set_head": [9, 14], "scheme": [9, 14], "about": [9, 14], "simplifi": [9, 10], "aaron": 9, "parecki": 9, "oauthlib": 9, "python": [9, 10, 14], "session": 9, "258": 10, "pars": [10, 14], "link": [10, 14], "area": 10, "thank": 10, "jat255": 10, "pr": 10, "271": 10, "creation": [10, 12], "273": 10, "init": [10, 14], "dutch": 10, "274": 10, "test": [10, 14], "parallel": 10, "275": 10, "worker": [10, 14], "entri": [10, 14], "point": [10, 14], "fittrackee_work": [10, 11, 14], "command": [10, 12, 13, 14], "flask": [10, 14], "dramatiq": [10, 14], "cli": [10, 11, 12, 14], "3c8d9c2": 10, "trail": [10, 12], "comma": [10, 14], "dev": 10, "depend": [10, 14], "264": 10, "ui": 10, "white": 10, "grai": 10, "background": 10, "266": 10, "host": [10, 14], "weblat": 10, "german": 10, "qwerty287": 10, "260": 10, "261": 10, "should": [10, 14], "limit": [10, 12], "still": [10, 12, 13, 14], "89": 10, "b1536fc": 10, "257": 10, "112": 10, "244": 10, "virtual": [10, 12], "ride": 10, "246": 10, "postgresql": [10, 14, 15], "247": 10, "microsecond": 10, "252": 10, "norwegian": 10, "bokm\u00e5l": 10, "contain": [10, 14], "databas": [10, 12, 14, 15], "migrat": [10, 11, 14], "upgrad": 10, "242": 10, "241": 10, "strength": 10, "estim": 10, "packag": [10, 14], "239": 10, "cb9d02f": 10, "88": 10, "231": 10, "236": 10, "rate": 10, "232": 10, "hidden": [10, 12], "237": 10, "212": 10, "lavoi": 10, "230": 10, "problem": 10, "225": 10, "grammar": 10, "skylan0916": 10, "In": [10, 12], "execut": 10, "lower": 10, "v0": [10, 14], "postgr": [10, 15], "213": 10, "measur": 10, "ft": 10, "mi": 10, "223": 10, "icon": [10, 14], "167": 10, "dashboard": 10, "162": 10, "fmstrat": 10, "210": 10, "could": 10, "environ": [10, 11, 15], "variabl": [10, 15], "staticmap_subdomain": [10, 14], "209": 10, "incorrect": 10, "track": [10, 13], "multipl": 10, "gorgobacka": 10, "now": [10, 11, 12, 14], "And": 10, "detect": 10, "browser": 10, "208": 10, "card": 10, "html": 10, "attribut": [10, 14], "197": 10, "196": 10, "manag": [10, 11, 14], "tool": [10, 14], "190": 10, "were": 10, "193": 10, "192": 10, "instead": [10, 12], "191": 10, "layout": 10, "includ": 10, "195": 10, "affect": 10, "previous": 10, "cc4287e": 10, "docker": 10, "env": [10, 14], "offset": 10, "refacto": 10, "befor": [10, 14], "introduc": 10, "possibl": [10, 12, 13, 14], "smtp": [10, 14], "reduc": 10, "pre": 10, "requisit": 10, "180": 10, "cannot": [10, 12], "tl": [10, 14], "177": 10, "posit": [10, 12], "small": 10, "screen": [10, 12], "175": 10, "173": 10, "171": 10, "correctli": 10, "155": 10, "106": 10, "169": 10, "161": 10, "160": 10, "sever": [10, 12, 13, 14], "danielsiersleben": 10, "report": 10, "initi": [10, 14], "149": 10, "initialis": [10, 14], "152": 10, "autoescap": 10, "jinja": 10, "templat": 10, "151": 10, "sanit": 10, "input": 10, "serv": [10, 14], "warn": [10, 12], "launch": 10, "w": 10, "script": 10, "entrypoint": 10, "drop": 10, "avoid": 10, "product": 10, "dotenv": 10, "146": 10, "filter": [10, 12], "145": 10, "model": 10, "140": 10, "fullscreen": 10, "control": [10, 12, 14], "138": 10, "135": 10, "finish": 10, "marker": 10, "134": 10, "wind": [10, 12], "direct": [10, 12], "877fa0f": 10, "calendar": [10, 12], "resolut": 10, "131": 10, "129": 10, "127": [10, 14], "legitim": 10, "uri": 10, "localhost": [10, 14], "25": [10, 14], "123": 10, "121": 10, "snowsho": [10, 12], "116": 10, "button": 10, "graph": 10, "115": 10, "91": 10, "min": 10, "altitud": 10, "90": 10, "seem": 10, "104": 10, "switch": 10, "agplv3": 10, "licens": [10, 13, 14], "101": 10, "full": [10, 12], "develop": [10, 11, 13], "98": 10, "109": 10, "slow": 10, "movement": 10, "84": 10, "93": 10, "paf38": 10, "83": 10, "static": [10, 12, 14], "keep": [10, 13, 14], "default_staticmap": [10, 14], "81": 10, "remain": 10, "textarea": 10, "82": 10, "dai": [10, 11, 12, 14], "80": [10, 14], "save": [10, 12], "79": 10, "fail": [10, 16], "make": [10, 14], "rebuild": 10, "75": 10, "same": 10, "javascript": [10, 14], "due": 10, "sqlalchemi": [10, 14, 15], "engin": [10, 14, 15], "longer": [10, 15], "database_url": [10, 14], "72": 10, "exceed": 10, "71": 10, "greater": 10, "70": 10, "less": 10, "upload": [10, 11, 12, 14], "66": 10, "64": 10, "62": 10, "refactor": 10, "evalu": [10, 14], "purpos": [10, 14], "standard": [10, 14], "term": [10, 14], "directori": [10, 12, 14], "also": [10, 11, 13, 14], "59": 10, "major": 10, "instal": [10, 13], "becom": 10, "more": [10, 11, 13, 14], "easi": 10, "been": [10, 13], "renam": 10, "layer": [10, 14], "replac": [10, 14], "thunderforest": [10, 14], "outdoor": [10, 12, 13, 14], "54": 10, "redi": [10, 14], "complet": 10, "side": 10, "4c3fc34": 10, "empti": [10, 11, 14], "34614d5": 10, "spinner": 10, "load": [10, 15], "b862a77": 10, "2e1ee2c": 10, "interceptor": 10, "rout": [10, 14], "definit": 10, "down": 10, "weekend": 10, "40": 10, "i18n": 10, "41": 10, "show": [10, 11, 14], "mous": 10, "over": 10, "choos": [10, 12], "36": 10, "33": 10, "37": 10, "34": 10, "weather": [10, 12, 14], "anymor": 10, "poetri": [10, 14], "pipenv": 10, "calcul": 10, "28": 10, "26": 10, "tooltip": [10, 12], "montain": 10, "even": [10, 12], "enter": [10, 12], "darkski": [10, 12], "kei": [10, 12, 14], "farest": 10, "search": 10, "owner": [10, 12, 14], "view": [10, 12, 14], "usag": [11, 14], "arg": [11, 14], "help": [11, 14], "exit": [11, 14], "deprec": 11, "next": [11, 12], "fittrackee_set_admin": 11, "fittrackee_upgrade_db": 11, "appli": 11, "kind": 12, "encrypt": 12, "With": [12, 14], "open": [12, 13, 14], "street": [12, 13], "electr": 12, "row": 12, "ski": 12, "alpin": 12, "countri": 12, "overridden": 12, "which": 12, "up": [12, 13], "metric": 12, "system": [12, 14], "arrow": 12, "indic": 12, "come": 12, "period": 12, "mai": [12, 13, 14], "origin": 12, "dropdown": 12, "On": [12, 14], "case": [12, 14], "line": [12, 13, 14], "between": 12, "hide": 12, "overrid": 12, "appear": 12, "third": [12, 13], "defin": 12, "individu": 12, "necessari": [12, 14], "like": [12, 14], "lock": 12, "via": 12, "mobil": 13, "yet": 13, "export": [13, 14], "them": 13, "android": 13, "exhaust": 13, "runner": 13, "gpl": 13, "v3": 13, "forrunn": 13, "opentrack": 13, "apach": 13, "fitotrack": 13, "under": [13, 14], "heavi": [13, 14], "featur": [13, 14], "unstabl": [13, 14], "interfac": [13, 14], "troubleshoot": 13, "written": 14, "typescript": 14, "staticmap": 14, "coordin": 14, "forecast": 14, "io": 14, "dark": 14, "sky": 14, "former": 14, "task": 14, "queue": 14, "vue3": 14, "vuex": 14, "logo": 14, "made": 14, "freepik": 14, "flaticon": 14, "fork": 14, "awesom": 14, "yarn": 14, "compos": 14, "step": 14, "describ": 14, "linux": 14, "debian": 14, "arch": 14, "o": 14, "encount": 14, "adapt": 14, "makefil": 14, "custom": 14, "flask_app": 14, "modul": 14, "pwd": 14, "__main__": 14, "py": 14, "els": 14, "port": 14, "5000": 14, "app_set": 14, "productionconfig": 14, "app_secret_kei": 14, "strong": 14, "jwt": 14, "app_work": 14, "spawn": 14, "gunicorn": [14, 15], "app_log": 14, "path": [14, 15], "upload_fold": [14, 15], "absolut": [14, 15], "where": 14, "folder": 14, "application_directori": 14, "virtualenv": 14, "5432": 14, "begin": 14, "database_disable_pool": 14, "pool": 14, "directli": 14, "ui_url": 14, "email_url": [14, 15], "sender_email": 14, "sender": 14, "redis_url": 14, "workers_process": 14, "api_rate_limit": 14, "300": 14, "minut": 14, "tile_server_url": 14, "b": 14, "osm": 14, "franc": 14, "target": 14, "_blank": 14, "rel": 14, "noopen": 14, "noreferr": 14, "komoot": 14, "otherwis": 14, "insensit": 14, "weather_api_kei": 14, "weather_api": 14, "vue_app_api_url": 14, "unencrypt": 14, "ssl": 14, "465": 14, "starttl": 14, "587": 14, "office365": 14, "work": 14, "omit": 14, "old": 14, "adress": 14, "apikei": 14, "xxxx": 14, "servic": 14, "expect": 14, "osmfr": 14, "fond": 14, "cart": 14, "par": 14, "mention": 14, "legal": 14, "nofollow": 14, "sou": 14, "nbsp": 14, "creativecommon": 14, "sa": 14, "licenc": 14, "cc": 14, "BY": 14, "chosen": 14, "randomli": 14, "base": 14, "ip": 14, "fix": 14, "window": 14, "strategi": 14, "subject": 14, "asset": 14, "notat": 14, "hour": 14, "mainten": 14, "diagnost": 14, "util": 14, "commmand": 14, "clear": 14, "specif": 14, "enumer": 14, "wai": 14, "pip": 14, "WITH": 14, "schema": 14, "privileg": 14, "nano": 14, "ftcli": 14, "db": 14, "systemd": 14, "3000": 14, "archlinux": 14, "yai": 14, "project": 14, "clone": 14, "repo": 14, "git": 14, "github": 14, "samr1": 14, "cd": 14, "vue": 14, "releas": 14, "wget": 14, "tar": 14, "gz": 14, "xzf": 14, "mv": 14, "sql": 14, "backup": 14, "pg_dump": 14, "u": 14, "changelog": 14, "restart": 14, "pull": 14, "repositori": 14, "overwrit": 14, "cp": 14, "r": 14, "There": 14, "One": 14, "pass": 14, "distribut": 14, "network": 14, "startlimitintervalsec": 14, "simpl": 14, "alwai": 14, "restartsec": 14, "standardoutput": 14, "syslog": 14, "standarderror": 14, "syslogidentifi": 14, "workingdirectori": 14, "home": 14, "execstart": 14, "venv": 14, "bin": 14, "create_app": 14, "logfil": 14, "wantedbi": 14, "multi": 14, "OF": 14, "listen": 14, "443": 14, "http2": 14, "server_nam": 14, "ssl_certif": 14, "fullchain": 14, "pem": 14, "ssl_certificate_kei": 14, "privkei": 14, "how": 14, "1mb": 14, "larger": 14, "ll": 14, "uncom": 14, "below": 14, "want": 14, "client_max_body_s": 14, "1m": 14, "proxy_pass": 14, "proxy_redirect": 14, "real": 14, "remote_addr": 14, "proxy_add_x_forwarded_for": 14, "301": 14, "request_uri": 14, "build": 14, "8025": 14, "mailhog": 14, "shell": 14, "insid": 14, "addit": 14, "fittrackee_cli": 14, "lint": 14, "exc": 15, "nosuchmoduleerror": 15, "plugin": 15, "dialect": 15, "invalidemailurlschem": 15, "todo": 17}, "objects": {"": [[0, 0, 1, "post--api-auth-account-confirm", "/api/auth/account/confirm"], [0, 0, 1, "post--api-auth-account-resend-confirmation", "/api/auth/account/resend-confirmation"], [0, 0, 1, "post--api-auth-email-update", "/api/auth/email/update"], [0, 0, 1, "post--api-auth-login", "/api/auth/login"], [0, 0, 1, "post--api-auth-logout", "/api/auth/logout"], [0, 0, 1, "post--api-auth-password-reset-request", "/api/auth/password/reset-request"], [0, 0, 1, "post--api-auth-password-update", "/api/auth/password/update"], [0, 1, 1, "delete--api-auth-picture", "/api/auth/picture"], [0, 0, 1, "post--api-auth-picture", "/api/auth/picture"], [0, 2, 1, "get--api-auth-profile", "/api/auth/profile"], [0, 0, 1, "post--api-auth-profile-edit", "/api/auth/profile/edit"], [0, 3, 1, "patch--api-auth-profile-edit-account", "/api/auth/profile/edit/account"], [0, 0, 1, "post--api-auth-profile-edit-preferences", "/api/auth/profile/edit/preferences"], [0, 0, 1, "post--api-auth-profile-edit-sports", "/api/auth/profile/edit/sports"], [0, 1, 1, "delete--api-auth-profile-reset-sports-(sport_id)", "/api/auth/profile/reset/sports/(sport_id)"], [0, 0, 1, "post--api-auth-register", "/api/auth/register"], [1, 2, 1, "get--api-config", "/api/config"], [1, 3, 1, "patch--api-config", "/api/config"], [3, 2, 1, "get--api-oauth-apps", "/api/oauth/apps"], [3, 0, 1, "post--api-oauth-apps", "/api/oauth/apps"], [3, 1, 1, "delete--api-oauth-apps-(int-client_id)", "/api/oauth/apps/(int:client_id)"], [3, 2, 1, "get--api-oauth-apps-(int-client_id)-by_id", "/api/oauth/apps/(int:client_id)/by_id"], [3, 0, 1, "post--api-oauth-apps-(int-client_id)-revoke", "/api/oauth/apps/(int:client_id)/revoke"], [3, 2, 1, "get--api-oauth-apps-(string-client_client_id)", "/api/oauth/apps/(string:client_client_id)"], [3, 0, 1, "post--api-oauth-authorize", "/api/oauth/authorize"], [3, 0, 1, "post--api-oauth-revoke", "/api/oauth/revoke"], [3, 0, 1, "post--api-oauth-token", "/api/oauth/token"], [1, 2, 1, "get--api-ping", "/api/ping"], [4, 2, 1, "get--api-records", "/api/records"], [5, 2, 1, "get--api-sports", "/api/sports"], [5, 2, 1, "get--api-sports-(int-sport_id)", "/api/sports/(int:sport_id)"], [5, 3, 1, "patch--api-sports-(int-sport_id)", "/api/sports/(int:sport_id)"], [6, 2, 1, "get--api-stats-(user_name)-by_sport", "/api/stats/(user_name)/by_sport"], [6, 2, 1, "get--api-stats-(user_name)-by_time", "/api/stats/(user_name)/by_time"], [6, 2, 1, "get--api-stats-all", "/api/stats/all"], [7, 2, 1, "get--api-users", "/api/users"], [7, 1, 1, "delete--api-users-(user_name)", "/api/users/(user_name)"], [7, 2, 1, "get--api-users-(user_name)", "/api/users/(user_name)"], [7, 3, 1, "patch--api-users-(user_name)", "/api/users/(user_name)"], [7, 2, 1, "get--api-users-(user_name)-picture", "/api/users/(user_name)/picture"], [8, 2, 1, "get--api-workouts", "/api/workouts"], [8, 0, 1, "post--api-workouts", "/api/workouts"], [8, 1, 1, "delete--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [8, 2, 1, "get--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [8, 3, 1, "patch--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [8, 2, 1, "get--api-workouts-(string-workout_short_id)-chart_data", "/api/workouts/(string:workout_short_id)/chart_data"], [8, 2, 1, "get--api-workouts-(string-workout_short_id)-chart_data-segment-(int-segment_id)", "/api/workouts/(string:workout_short_id)/chart_data/segment/(int:segment_id)"], [8, 2, 1, "get--api-workouts-(string-workout_short_id)-gpx", "/api/workouts/(string:workout_short_id)/gpx"], [8, 2, 1, "get--api-workouts-(string-workout_short_id)-gpx-download", "/api/workouts/(string:workout_short_id)/gpx/download"], [8, 2, 1, "get--api-workouts-(string-workout_short_id)-gpx-segment-(int-segment_id)", "/api/workouts/(string:workout_short_id)/gpx/segment/(int:segment_id)"], [8, 2, 1, "get--api-workouts-map-(map_id)", "/api/workouts/map/(map_id)"], [8, 0, 1, "post--api-workouts-no_gpx", "/api/workouts/no_gpx"], [14, 4, 1, "envvar-API_RATE_LIMITS", "API_RATE_LIMITS \ud83c\udd95"], [14, 4, 1, "-", "APP_LOG"], [14, 4, 1, "-", "APP_SECRET_KEY"], [14, 4, 1, "-", "APP_SETTINGS"], [14, 4, 1, "-", "APP_WORKERS"], [14, 4, 1, "-", "DATABASE_DISABLE_POOLING"], [14, 4, 1, "-", "DATABASE_URL"], [14, 4, 1, "-", "DEFAULT_STATICMAP"], [14, 4, 1, "-", "EMAIL_URL"], [14, 4, 1, "-", "FLASK_APP"], [14, 4, 1, "-", "HOST"], [14, 4, 1, "-", "MAP_ATTRIBUTION"], [14, 4, 1, "-", "PORT"], [14, 4, 1, "-", "REDIS_URL"], [14, 4, 1, "-", "SENDER_EMAIL"], [14, 4, 1, "-", "STATICMAP_SUBDOMAINS"], [14, 4, 1, "-", "TILE_SERVER_URL"], [14, 4, 1, "-", "UI_URL"], [14, 4, 1, "-", "UPLOAD_FOLDER"], [14, 4, 1, "-", "VUE_APP_API_URL"], [14, 4, 1, "-", "WEATHER_API_KEY"], [14, 4, 1, "-", "WORKERS_PROCESSES"]], "/api/workouts/map_tile/(s)/(z)/(x)/(y)": [[8, 2, 1, "get--api-workouts-map_tile-(s)-(z)-(x)-(y).png", "png"]]}, "objtypes": {"0": "http:post", "1": "http:delete", "2": "http:get", "3": "http:patch", "4": "std:envvar"}, "objnames": {"0": ["http", "post", "HTTP post"], "1": ["http", "delete", "HTTP delete"], "2": ["http", "get", "HTTP get"], "3": ["http", "patch", "HTTP patch"], "4": ["std", "envvar", "environment variable"]}, "titleterms": {"authent": 0, "configur": 1, "api": [2, 14], "document": [2, 10], "endpoint": 2, "oauth2": [3, 11], "record": 4, "sport": 5, "statist": [6, 10, 12], "user": [7, 11, 17], "workout": [8, 12, 15], "third": 9, "parti": 9, "applic": 9, "scope": 9, "flow": 9, "resourc": 9, "chang": 10, "log": 10, "version": 10, "0": 10, "7": 10, "2022": 10, "11": 10, "27": 10, "featur": [10, 12], "enhanc": 10, "bug": 10, "fix": 10, "translat": [10, 12], "misc": 10, "6": 10, "09": 10, "5": 10, "4": 10, "05": 10, "3": 10, "01": 10, "2": 10, "21": 10, "1": 10, "19": 10, "12": 10, "14": 10, "issu": 10, "close": 10, "pull": 10, "request": 10, "07": 10, "10": 10, "13": 10, "9": 10, "03": 10, "8": 10, "06": 10, "22": 10, "29": 10, "04": 10, "24": 10, "23": 10, "02": 10, "secur": 10, "new": 10, "2021": 10, "30": 10, "16": 10, "17": 10, "31": 10, "2020": 10, "fittracke": [10, 13, 15], "pypi": [10, 14], "administr": [10, 12, 15], "15": 10, "improv": 10, "minor": 10, "avail": 10, "french": 10, "2019": 10, "first": 10, "releas": 10, "2018": 10, "command": 11, "line": 11, "interfac": 11, "databas": 11, "ftcli": 11, "db": 11, "upgrad": [11, 14], "drop": 11, "clean": 11, "clean_token": 11, "updat": 11, "account": 12, "prefer": 12, "screenshot": 12, "dashboard": 12, "detail": [12, 15], "list": 12, "tabl": 13, "content": 13, "instal": 14, "prerequisit": 14, "environ": 14, "variabl": 14, "email": 14, "map": [14, 15], "tile": 14, "server": 14, "rate": 14, "limit": 14, "from": 14, "sourc": 14, "dev": 14, "product": 14, "prod": 14, "deploy": 14, "docker": 14, "develop": 14, "fail": 15, "start": 15, "imag": 15, "ar": 15, "displai": 15, "i": 15, "shown": 15, "troubleshoot": 16}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 57}, "alltitles": {"Authentication": [[0, "authentication"]], "Configuration": [[1, "configuration"]], "API documentation": [[2, "api-documentation"]], "Endpoints:": [[2, null]], "OAuth2": [[3, "oauth2"], [11, "oauth2"]], "Records": [[4, "records"]], "Sports": [[5, "sports"]], "Statistics": [[6, "statistics"], [12, "statistics"]], "Users": [[7, "users"], [11, "users"]], "Workouts": [[8, "workouts"], [12, "workouts"]], "Third-party applications": [[9, "third-party-applications"]], "Scopes": [[9, "scopes"]], "Flow": [[9, "flow"]], "Resources": [[9, "resources"]], "Change log": [[10, "change-log"]], "Version 0.7.7 (2022/11/27)": [[10, "version-0-7-7-2022-11-27"]], "Features and enhancements": [[10, "features-and-enhancements"], [10, "id7"], [10, "id13"]], "Bugs Fixed": [[10, "bugs-fixed"], [10, "id3"], [10, "id5"], [10, "id8"], [10, "id11"], [10, "id14"], [10, "id16"], [10, "id19"], [10, "id22"], [10, "id24"], [10, "id27"], [10, "id30"], [10, "id33"], [10, "id38"], [10, "id40"], [10, "id42"], [10, "id44"], [10, "id47"], [10, "id49"], [10, "id55"], [10, "id58"], [10, "id60"], [10, "id62"], [10, "id69"], [10, "id74"], [10, "id76"], [10, "id78"], [10, "id81"], [10, "id83"], [10, "id85"], [10, "id89"], [10, "id99"], [10, "id102"], [10, "id104"], [10, "id107"], [10, "id114"]], "Translations": [[10, "translations"], [10, "id1"], [10, "id4"], [10, "id6"], [10, "id9"], [10, "id10"], [10, "id12"], [10, "id15"], [10, "id28"], [12, "translations"]], "Misc": [[10, "misc"], [10, "id2"], [10, "id17"], [10, "id31"], [10, "id34"], [10, "id51"], [10, "id53"], [10, "id70"], [10, "id79"], [10, "id86"], [10, "id90"], [10, "id97"], [10, "id108"], [10, "id111"]], "Version 0.7.6 (2022/11/09)": [[10, "version-0-7-6-2022-11-09"]], "Version 0.7.5 (2022/11/09)": [[10, "version-0-7-5-2022-11-09"]], "Version 0.7.4 (2022/11/05)": [[10, "version-0-7-4-2022-11-05"]], "Documentation": [[10, "documentation"]], "Version 0.7.3 (2022/11/01)": [[10, "version-0-7-3-2022-11-01"]], "Version 0.7.2 (2022/09/21)": [[10, "version-0-7-2-2022-09-21"]], "Version 0.7.1 (2022/09/21)": [[10, "version-0-7-1-2022-09-21"]], "Version 0.7.0 (2022/09/19)": [[10, "version-0-7-0-2022-09-19"]], "Version 0.6.12 (2022/09/14)": [[10, "version-0-6-12-2022-09-14"]], "Issues Closed": [[10, "issues-closed"], [10, "id18"], [10, "id21"], [10, "id25"], [10, "id29"], [10, "id32"], [10, "id35"], [10, "id37"], [10, "id41"], [10, "id43"], [10, "id45"], [10, "id50"], [10, "id54"], [10, "id57"], [10, "id59"], [10, "id61"], [10, "id63"], [10, "id65"], [10, "id67"], [10, "id72"], [10, "id75"], [10, "id77"], [10, "id80"], [10, "id82"], [10, "id84"], [10, "id87"], [10, "id91"], [10, "id93"], [10, "id95"], [10, "id98"], [10, "id100"], [10, "id103"], [10, "id105"], [10, "id109"], [10, "id112"], [10, "id115"]], "Pull Requests": [[10, "pull-requests"], [10, "id20"], [10, "id23"], [10, "id39"], [10, "id48"], [10, "id52"], [10, "id56"], [10, "id71"]], "Version 0.6.11 (2022/07/27)": [[10, "version-0-6-11-2022-07-27"]], "Features": [[10, "features"], [10, "id26"], [10, "id36"], [10, "id46"], [12, "features"]], "Version 0.6.10 (2022/07/13)": [[10, "version-0-6-10-2022-07-13"]], "Version 0.6.9 (2022/07/03)": [[10, "version-0-6-9-2022-07-03"]], "Version 0.6.8 (2022/06/22)": [[10, "version-0-6-8-2022-06-22"]], "Version 0.6.7 (2022/06/11)": [[10, "version-0-6-7-2022-06-11"]], "Version 0.6.6 (2022/05/29)": [[10, "version-0-6-6-2022-05-29"]], "Version 0.6.5 (2022/04/24)": [[10, "version-0-6-5-2022-04-24"]], "Version 0.6.4 (2022/04/23)": [[10, "version-0-6-4-2022-04-23"]], "Version 0.6.3 (2022/04/09)": [[10, "version-0-6-3-2022-04-09"]], "Version 0.6.2 (2022/04/03)": [[10, "version-0-6-2-2022-04-03"]], "Version 0.6.1 (2022/03/27)": [[10, "version-0-6-1-2022-03-27"]], "Version 0.6.0 (2022/03/27)": [[10, "version-0-6-0-2022-03-27"]], "Version 0.5.7 (2022/02/13)": [[10, "version-0-5-7-2022-02-13"]], "Security": [[10, "security"]], "Version 0.5.6 (2022/02/05)": [[10, "version-0-5-6-2022-02-05"]], "Version 0.5.5 (2022/01/19)": [[10, "version-0-5-5-2022-01-19"]], "New Features": [[10, "new-features"], [10, "id64"], [10, "id66"], [10, "id68"], [10, "id73"], [10, "id88"], [10, "id92"], [10, "id94"], [10, "id96"], [10, "id101"], [10, "id106"], [10, "id110"], [10, "id113"], [10, "id116"]], "Version 0.5.4 (2022/01/01)": [[10, "version-0-5-4-2022-01-01"]], "Version 0.5.3 (2022/01/01)": [[10, "version-0-5-3-2022-01-01"]], "Version 0.5.2 (2021/12/19)": [[10, "version-0-5-2-2021-12-19"]], "Version 0.5.1 (2021/11/30)": [[10, "version-0-5-1-2021-11-30"]], "Version 0.5.0 (2021/11/14)": [[10, "version-0-5-0-2021-11-14"]], "Version 0.4.9 (2021/07/16)": [[10, "version-0-4-9-2021-07-16"]], "Version 0.4.8 (2021/07/03)": [[10, "version-0-4-8-2021-07-03"]], "Version 0.4.7 (2021/04/07)": [[10, "version-0-4-7-2021-04-07"]], "Version 0.4.6 (2021/02/21)": [[10, "version-0-4-6-2021-02-21"]], "Version 0.4.5 (2021/02/17)": [[10, "version-0-4-5-2021-02-17"]], "Version 0.4.4 (2021/01/31)": [[10, "version-0-4-4-2021-01-31"]], "Version 0.4.3 (2021/01/10)": [[10, "version-0-4-3-2021-01-10"]], "Version 0.4.2 (2021/01/03)": [[10, "version-0-4-2-2021-01-03"]], "Version 0.4.1 (2020/12/31)": [[10, "version-0-4-1-2020-12-31"]], "Version 0.4.0 - FitTrackee on PyPI (2020/09/19)": [[10, "version-0-4-0-fittrackee-on-pypi-2020-09-19"]], "Version 0.3.0 - Administration (2020/07/15)": [[10, "version-0-3-0-administration-2020-07-15"]], "Version 0.2.5 - Fix and improvements (2020/01/31)": [[10, "version-0-2-5-fix-and-improvements-2020-01-31"]], "Version 0.2.4 - Minor fix (2020/01/30)": [[10, "version-0-2-4-minor-fix-2020-01-30"]], "Version 0.2.3 - FitTrackee available in French (2019/12/29)": [[10, "version-0-2-3-fittrackee-available-in-french-2019-12-29"]], "Version 0.2.2 - Statistics fix (2019/09/23)": [[10, "version-0-2-2-statistics-fix-2019-09-23"]], "Version 0.2.1 - Fix and improvements (2019/09/01)": [[10, "version-0-2-1-fix-and-improvements-2019-09-01"]], "Version 0.2.0 - Statistics (2019/07/07)": [[10, "version-0-2-0-statistics-2019-07-07"]], "Version 0.1.1 - Fix and improvements (2019/02/07)": [[10, "version-0-1-1-fix-and-improvements-2019-02-07"]], "Version 0.1.0 - First release \ud83c\udf89 (2018-07-04)": [[10, "version-0-1-0-first-release-2018-07-04"]], "Command line interface": [[11, "command-line-interface"]], "Database": [[11, "database"]], "ftcli db upgrade": [[11, "ftcli-db-upgrade"]], "ftcli db drop": [[11, "ftcli-db-drop"]], "ftcli oauth2 clean": [[11, "ftcli-oauth2-clean"]], "ftcli users clean_tokens": [[11, "ftcli-users-clean-tokens"]], "ftcli users update": [[11, "ftcli-users-update"]], "Account & preferences": [[12, "account-preferences"]], "Administration": [[12, "administration"], [12, "id1"]], "Screenshots": [[12, "screenshots"]], "Dashboard": [[12, "dashboard"]], "Workout detail": [[12, "workout-detail"]], "Workouts list": [[12, "workouts-list"]], "FitTrackee": [[13, "fittrackee"]], "Table of contents": [[13, "table-of-contents"]], "Installation": [[14, "installation"], [14, "id2"], [14, "id6"]], "Prerequisites": [[14, "prerequisites"]], "Environment variables": [[14, "environment-variables"]], "Emails": [[14, "emails"]], "Map tile server": [[14, "map-tile-server"]], "API rate limits \ud83c\udd95": [[14, "api-rate-limits"]], "From PyPI": [[14, "from-pypi"], [14, "id3"]], "From sources": [[14, "from-sources"], [14, "id4"]], "Dev environment": [[14, "dev-environment"], [14, "id5"]], "Production environment": [[14, "production-environment"]], "Upgrade": [[14, "upgrade"]], "Prod environment": [[14, "prod-environment"]], "Deployment": [[14, "deployment"]], "Docker": [[14, "docker"]], "Development": [[14, "development"]], "Administrator": [[15, "administrator"]], "FitTrackee fails to start": [[15, "fittrackee-fails-to-start"]], "Map images are not displayed but map is shown in Workout detail": [[15, "map-images-are-not-displayed-but-map-is-shown-in-workout-detail"]], "Troubleshooting": [[16, "troubleshooting"]], "User": [[17, "user"]]}, "indexentries": {"api_rate_limits \ud83c\udd95": [[14, "envvar-API_RATE_LIMITS"]], "app_log": [[14, "envvar-APP_LOG"]], "app_secret_key": [[14, "envvar-APP_SECRET_KEY"]], "app_settings": [[14, "envvar-APP_SETTINGS"]], "app_workers": [[14, "envvar-APP_WORKERS"]], "database_disable_pooling": [[14, "envvar-DATABASE_DISABLE_POOLING"]], "database_url": [[14, "envvar-DATABASE_URL"]], "default_staticmap": [[14, "envvar-DEFAULT_STATICMAP"]], "email_url": [[14, "envvar-EMAIL_URL"]], "flask_app": [[14, "envvar-FLASK_APP"]], "host": [[14, "envvar-HOST"]], "map_attribution": [[14, "envvar-MAP_ATTRIBUTION"]], "port": [[14, "envvar-PORT"]], "redis_url": [[14, "envvar-REDIS_URL"]], "sender_email": [[14, "envvar-SENDER_EMAIL"]], "staticmap_subdomains": [[14, "envvar-STATICMAP_SUBDOMAINS"]], "tile_server_url": [[14, "envvar-TILE_SERVER_URL"]], "ui_url": [[14, "envvar-UI_URL"]], "upload_folder": [[14, "envvar-UPLOAD_FOLDER"]], "vue_app_api_url": [[14, "envvar-VUE_APP_API_URL"]], "weather_api_key": [[14, "envvar-WEATHER_API_KEY"]], "workers_processes": [[14, "envvar-WORKERS_PROCESSES"]], "environment variable": [[14, "envvar-API_RATE_LIMITS"], [14, "envvar-APP_LOG"], [14, "envvar-APP_SECRET_KEY"], [14, "envvar-APP_SETTINGS"], [14, "envvar-APP_WORKERS"], [14, "envvar-DATABASE_DISABLE_POOLING"], [14, "envvar-DATABASE_URL"], [14, "envvar-DEFAULT_STATICMAP"], [14, "envvar-EMAIL_URL"], [14, "envvar-FLASK_APP"], [14, "envvar-HOST"], [14, "envvar-MAP_ATTRIBUTION"], [14, "envvar-PORT"], [14, "envvar-REDIS_URL"], [14, "envvar-SENDER_EMAIL"], [14, "envvar-STATICMAP_SUBDOMAINS"], [14, "envvar-TILE_SERVER_URL"], [14, "envvar-UI_URL"], [14, "envvar-UPLOAD_FOLDER"], [14, "envvar-VUE_APP_API_URL"], [14, "envvar-WEATHER_API_KEY"], [14, "envvar-WORKERS_PROCESSES"]]}}) \ No newline at end of file diff --git a/docs/troubleshooting/administrator.html b/docs/troubleshooting/administrator.html index fb913a23..91798de6 100644 --- a/docs/troubleshooting/administrator.html +++ b/docs/troubleshooting/administrator.html @@ -5,11 +5,12 @@ - Administrator — FitTrackee 0.7.6 + <title>Administrator — FitTrackee 0.7.7 documentation - + + @@ -42,7 +43,7 @@ FitTrackee - 0.7.6 + 0.7.7
                                                                                @@ -172,10 +173,12 @@

                                                                                - © Copyright 2018 - 2022, SamR1.
                                                                                + © Copyright 2018 - 2022, SamR1 . + Last updated on Nov 27, 2022.
                                                                                Created using Sphinx 5.3.0.

                                                                                + \ No newline at end of file diff --git a/docs/troubleshooting/index.html b/docs/troubleshooting/index.html index 1a0a54e2..df1998fc 100644 --- a/docs/troubleshooting/index.html +++ b/docs/troubleshooting/index.html @@ -5,11 +5,12 @@ - Troubleshooting — FitTrackee 0.7.6 + <title>Troubleshooting — FitTrackee 0.7.7 documentation - + + @@ -42,7 +43,7 @@ FitTrackee - 0.7.6 + 0.7.7 @@ -155,10 +156,12 @@

                                                                                - © Copyright 2018 - 2022, SamR1.
                                                                                + © Copyright 2018 - 2022, SamR1 . + Last updated on Nov 27, 2022.
                                                                                Created using Sphinx 5.3.0.

                                                                                + \ No newline at end of file diff --git a/docs/troubleshooting/user.html b/docs/troubleshooting/user.html index 58fec7c3..d44527a3 100644 --- a/docs/troubleshooting/user.html +++ b/docs/troubleshooting/user.html @@ -5,11 +5,12 @@ - User — FitTrackee 0.7.6 + <title>User — FitTrackee 0.7.7 documentation - + + @@ -42,7 +43,7 @@ FitTrackee - 0.7.6 + 0.7.7 @@ -146,10 +147,12 @@

                                                                                - © Copyright 2018 - 2022, SamR1.
                                                                                + © Copyright 2018 - 2022, SamR1 . + Last updated on Nov 27, 2022.
                                                                                Created using Sphinx 5.3.0.

                                                                                + \ No newline at end of file diff --git a/docsrc/source/_images/fittrackee_screenshot-01.png b/docsrc/source/_images/fittrackee_screenshot-01.png index f076e33a..ac3e03ee 100644 Binary files a/docsrc/source/_images/fittrackee_screenshot-01.png and b/docsrc/source/_images/fittrackee_screenshot-01.png differ diff --git a/docsrc/source/_images/fittrackee_screenshot-02.png b/docsrc/source/_images/fittrackee_screenshot-02.png index f91b97c5..59dd15a5 100644 Binary files a/docsrc/source/_images/fittrackee_screenshot-02.png and b/docsrc/source/_images/fittrackee_screenshot-02.png differ diff --git a/docsrc/source/_images/fittrackee_screenshot-03.png b/docsrc/source/_images/fittrackee_screenshot-03.png index 84761f5b..413cf7e8 100644 Binary files a/docsrc/source/_images/fittrackee_screenshot-03.png and b/docsrc/source/_images/fittrackee_screenshot-03.png differ diff --git a/docsrc/source/_images/fittrackee_screenshot-04.png b/docsrc/source/_images/fittrackee_screenshot-04.png index 53338160..767f0f24 100644 Binary files a/docsrc/source/_images/fittrackee_screenshot-04.png and b/docsrc/source/_images/fittrackee_screenshot-04.png differ diff --git a/docsrc/source/_images/fittrackee_screenshot-05.png b/docsrc/source/_images/fittrackee_screenshot-05.png index 418737d0..c6a09063 100644 Binary files a/docsrc/source/_images/fittrackee_screenshot-05.png and b/docsrc/source/_images/fittrackee_screenshot-05.png differ diff --git a/docsrc/source/_images/fittrackee_screenshot-06.png b/docsrc/source/_images/fittrackee_screenshot-06.png index 875261bf..e3da62bf 100644 Binary files a/docsrc/source/_images/fittrackee_screenshot-06.png and b/docsrc/source/_images/fittrackee_screenshot-06.png differ diff --git a/docsrc/source/_images/fittrackee_screenshot-07.png b/docsrc/source/_images/fittrackee_screenshot-07.png index d6b6a50d..50eb69c2 100644 Binary files a/docsrc/source/_images/fittrackee_screenshot-07.png and b/docsrc/source/_images/fittrackee_screenshot-07.png differ diff --git a/docsrc/source/_images/fittrackee_screenshot-08.png b/docsrc/source/_images/fittrackee_screenshot-08.png index 0b5fa02b..8899de59 100644 Binary files a/docsrc/source/_images/fittrackee_screenshot-08.png and b/docsrc/source/_images/fittrackee_screenshot-08.png differ diff --git a/docsrc/source/_static/css/custom.css b/docsrc/source/_static/css/custom.css new file mode 100644 index 00000000..456f2634 --- /dev/null +++ b/docsrc/source/_static/css/custom.css @@ -0,0 +1,100 @@ +/* lato-regular - latin */ +@font-face { + font-family: 'Lato'; + font-style: normal; + font-weight: 400; + src: url('../fonts/lato-v15-latin-regular.eot'); /* IE9 Compat Modes */ + src: local('Lato Regular'), local('Lato-Regular'), + url('../fonts/lato-v15-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('../fonts/lato-v15-latin-regular.woff2') format('woff2'), /* Super Modern Browsers */ + url('../fonts/lato-v15-latin-regular.woff') format('woff'), /* Modern Browsers */ + url('../fonts/lato-v15-latin-regular.ttf') format('truetype'), /* Safari, Android, iOS */ + url('../fonts/lato-v15-latin-regular.svg#Lato') format('svg'); /* Legacy iOS */ +} + +/* lato-700 - latin */ +@font-face { + font-family: 'Lato'; + font-style: normal; + font-weight: 700; + src: url('../fonts/lato-v15-latin-700.eot'); /* IE9 Compat Modes */ + src: local('Lato Bold'), local('Lato-Bold'), + url('../fonts/lato-v15-latin-700.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('../fonts/lato-v15-latin-700.woff2') format('woff2'), /* Super Modern Browsers */ + url('../fonts/lato-v15-latin-700.woff') format('woff'), /* Modern Browsers */ + url('../fonts/lato-v15-latin-700.ttf') format('truetype'), /* Safari, Android, iOS */ + url('../fonts/lato-v15-latin-700.svg#Lato') format('svg'); /* Legacy iOS */ +} + +/* lato-italic - latin */ +@font-face { + font-family: 'Lato'; + font-style: italic; + font-weight: 400; + src: url('../fonts/lato-v15-latin-italic.eot'); /* IE9 Compat Modes */ + src: local('Lato Italic'), local('Lato-Italic'), + url('../fonts/lato-v15-latin-italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('../fonts/lato-v15-latin-italic.woff2') format('woff2'), /* Super Modern Browsers */ + url('../fonts/lato-v15-latin-italic.woff') format('woff'), /* Modern Browsers */ + url('../fonts/lato-v15-latin-italic.ttf') format('truetype'), /* Safari, Android, iOS */ + url('../fonts/lato-v15-latin-italic.svg#Lato') format('svg'); /* Legacy iOS */ +} + + +html { + font-family: "Lato", sans-serif; + height: 100vh; +} + +body { + margin: 0; + min-height: 100vh; + padding-bottom: 65px; + position: relative; +} + +.alert-danger { + background-color: #f2dede; + border-color: #dca7a7; + color: #a94442; +} + +.alert-info { + background-color: #d9edf7; + border-color: #9acfea; + color: #31708f; +} + +.alert-warning { + background-color: #fcf8e3; + border-color: #f5e79e; + color: #8a6d3b; +} + +.descname { + border-top: solid 3px #a18bac; + border-radius: unset; + padding: 6px; +} + +dl.field-list > dt { + background: #f0f0f0; + border-left: solid 3px #ccc; + color: #555; +} + +.envvar { + margin-top: 30px; +} + +.footer { + bottom: 0; + height: 65px; + position: absolute; +} + + +img { + border: 1px solid #cecdcd; + margin: 5px 0; +} \ No newline at end of file diff --git a/docsrc/source/_static/css/fork-awesome.min.css b/docsrc/source/_static/css/fork-awesome.min.css new file mode 100644 index 00000000..fd154dc3 --- /dev/null +++ b/docsrc/source/_static/css/fork-awesome.min.css @@ -0,0 +1,12 @@ +/*! +Fork Awesome 1.2.0 +License - https://forkaweso.me/Fork-Awesome/license + +Copyright 2018 Dave Gandy & Fork Awesome + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */@font-face{font-family:ForkAwesome;src:url(../fonts/forkawesome-webfont.eot?v=1.2.0);src:url(../fonts/forkawesome-webfont.eot?#iefix&v=1.2.0) format('embedded-opentype'),url(../fonts/forkawesome-webfont.woff2?v=1.2.0) format('woff2'),url(../fonts/forkawesome-webfont.woff?v=1.2.0) format('woff'),url(../fonts/forkawesome-webfont.ttf?v=1.2.0) format('truetype'),url(../fonts/forkawesome-webfont.svg?v=1.2.0#forkawesomeregular) format('svg');font-weight:400;font-style:normal;font-display:block}.fa{display:inline-block;font:normal normal normal 14px/1 ForkAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-close:before,.fa-remove:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-repeat:before,.fa-rotate-right:before{content:"\f01e"}.fa-refresh:before,.fa-sync:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before,.fa-video:before{content:"\f03d"}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-exclamation-triangle:before,.fa-warning:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell-o:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-globe-e:before{content:"\f304"}.fa-globe-w:before{content:"\f305"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-community:before,.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-floppy-o:before,.fa-save:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus-g:before,.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-bolt:before,.fa-flash:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before,.fa-utensils:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-chain-broken:before,.fa-unlink:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:"\f150"}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:"\f151"}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:"\f152"}.fa-eur:before,.fa-euro:before{content:"\f153"}.fa-gbp:before,.fa-pound:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-inr:before,.fa-rupee:before{content:"\f156"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:"\f158"}.fa-krw:before,.fa-won:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before,.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-desc:before,.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-amount-asc:before,.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-desc:before,.fa-sort-amount-up:before{content:"\f161"}.fa-sort-numeric-asc:before,.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-desc:before,.fa-sort-numeric-up:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-try:before,.fa-turkish-lira:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-bank:before,.fa-institution:before,.fa-university:before{content:"\f19c"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before,.fa-utensil-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:"\f1c5"}.fa-file-archive-o:before,.fa-file-zip-o:before{content:"\f1c6"}.fa-file-audio-o:before,.fa-file-sound-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before,.fa-resistance:before{content:"\f1d0"}.fa-empire:before,.fa-ge:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-paper-plane:before,.fa-send:before{content:"\f1d8"}.fa-paper-plane-o:before,.fa-send-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before,.fa-heading:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before,.fa-closed-captioning:before{content:"\f20a"}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before,.fa-gem:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-bed:before,.fa-hotel:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-medium-square:before{content:"\f2f8"}.fa-y-combinator:before,.fa-yc:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery-full:before,.fa-battery:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-television:before,.fa-tv:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo-v:before,.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-phone-volume:before,.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before{content:"\f2a3"}.fa-deaf:before,.fa-deafness:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-address-card:before,.fa-vcard:before{content:"\f2bb"}.fa-address-card-o:before,.fa-vcard-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer-full:before,.fa-thermometer:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bath:before,.fa-bathtub:before,.fa-s15:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.fa-mastodon:before{content:"\f2e1"}.fa-mastodon-alt:before{content:"\f2e2"}.fa-fork-awesome:before,.fa-fork-circle:before{content:"\f2e3"}.fa-peertube:before{content:"\f2e4"}.fa-diaspora:before{content:"\f2e5"}.fa-friendica:before{content:"\f2e6"}.fa-gnu-social:before{content:"\f2e7"}.fa-liberapay-square:before{content:"\f2e8"}.fa-liberapay:before{content:"\f2e9"}.fa-scuttlebutt:before,.fa-ssb:before{content:"\f2ea"}.fa-hubzilla:before{content:"\f2eb"}.fa-social-home:before{content:"\f2ec"}.fa-artstation:before{content:"\f2ed"}.fa-discord:before{content:"\f2ee"}.fa-discord-alt:before{content:"\f2ef"}.fa-patreon:before{content:"\f2f0"}.fa-snowdrift:before{content:"\f2f1"}.fa-activitypub:before{content:"\f2f2"}.fa-ethereum:before{content:"\f2f3"}.fa-keybase:before{content:"\f2f4"}.fa-shaarli:before{content:"\f2f5"}.fa-shaarli-o:before{content:"\f2f6"}.fa-cut-key:before,.fa-key-modern:before{content:"\f2f7"}.fa-xmpp:before{content:"\f2f9"}.fa-archive-org:before{content:"\f2fc"}.fa-freedombox:before{content:"\f2fd"}.fa-facebook-messenger:before{content:"\f2fe"}.fa-debian:before{content:"\f2ff"}.fa-mastodon-square:before{content:"\f300"}.fa-tipeee:before{content:"\f301"}.fa-react:before{content:"\f302"}.fa-dogmazic:before{content:"\f303"}.fa-zotero:before{content:"\f309"}.fa-nodejs:before{content:"\f308"}.fa-nextcloud:before{content:"\f306"}.fa-nextcloud-square:before{content:"\f307"}.fa-hackaday:before{content:"\f30a"}.fa-laravel:before{content:"\f30b"}.fa-signalapp:before{content:"\f30c"}.fa-gnupg:before{content:"\f30d"}.fa-php:before{content:"\f30e"}.fa-ffmpeg:before{content:"\f30f"}.fa-joplin:before{content:"\f310"}.fa-syncthing:before{content:"\f311"}.fa-inkscape:before{content:"\f312"}.fa-matrix-org:before{content:"\f313"}.fa-pixelfed:before{content:"\f314"}.fa-bootstrap:before{content:"\f315"}.fa-dev-to:before{content:"\f316"}.fa-hashnode:before{content:"\f317"}.fa-jirafeau:before{content:"\f318"}.fa-emby:before{content:"\f319"}.fa-wikidata:before{content:"\f31a"}.fa-gimp:before{content:"\f31b"}.fa-c:before{content:"\f31c"}.fa-digitalocean:before{content:"\f31d"}.fa-att:before{content:"\f31e"}.fa-gitea:before{content:"\f31f"}.fa-file-epub:before{content:"\f321"}.fa-python:before{content:"\f322"}.fa-archlinux:before{content:"\f323"}.fa-pleroma:before{content:"\f324"}.fa-unsplash:before{content:"\f325"}.fa-hackster:before{content:"\f326"}.fa-spell-check:before{content:"\f327"}.fa-moon:before{content:"\f328"}.fa-sun:before{content:"\f329"}.fa-f-droid:before{content:"\f32a"}.fa-biometric:before{content:"\f32b"}.fa-wire:before{content:"\f32c"}.fa-tor-onion:before{content:"\f32e"}.fa-volume-mute:before{content:"\f32f"}.fa-bell-ringing:before{content:"\f32d"}.fa-bell-ringing-o:before{content:"\f330"}.fa-hal:before{content:"\f333"}.fa-jupyter:before{content:"\f335"}.fa-julia:before{content:"\f334"}.fa-classicpress:before{content:"\f331"}.fa-classicpress-circle:before{content:"\f332"}.fa-open-collective:before{content:"\f336"}.fa-orcid:before{content:"\f337"}.fa-researchgate:before{content:"\f338"}.fa-funkwhale:before{content:"\f339"}.fa-askfm:before{content:"\f33a"}.fa-blockstack:before{content:"\f33b"}.fa-boardgamegeek:before{content:"\f33c"}.fa-bunny:before{content:"\f35f"}.fa-buymeacoffee:before{content:"\f33d"}.fa-cc-by:before{content:"\f33e"}.fa-cc-cc:before,.fa-creative-commons-alt:before{content:"\f33f"}.fa-cc-nc-eu:before{content:"\f341"}.fa-cc-nc-jp:before{content:"\f342"}.fa-cc-nc:before{content:"\f340"}.fa-cc-nd:before{content:"\f343"}.fa-cc-pd:before{content:"\f344"}.fa-cc-remix:before{content:"\f345"}.fa-cc-sa:before{content:"\f346"}.fa-cc-share:before{content:"\f347"}.fa-cc-zero:before{content:"\f348"}.fa-conway-glider:before,.fa-conway-hacker:before{content:"\f349"}.fa-csharp:before{content:"\f34a"}.fa-email-bulk:before{content:"\f34b"}.fa-email-bulk-o:before{content:"\f34c"}.fa-gnu:before{content:"\f34d"}.fa-google-play:before{content:"\f34e"}.fa-heroku:before{content:"\f34f"}.fa-hassio:before,.fa-home-assistant:before{content:"\f350"}.fa-java:before{content:"\f351"}.fa-mariadb:before{content:"\f352"}.fa-markdown:before{content:"\f353"}.fa-mysql:before{content:"\f354"}.fa-nordcast:before{content:"\f355"}.fa-plume:before{content:"\f356"}.fa-postgresql:before{content:"\f357"}.fa-sass-alt:before{content:"\f359"}.fa-sass:before{content:"\f358"}.fa-skate:before{content:"\f35a"}.fa-sketchfab:before{content:"\f35b"}.fa-tex:before{content:"\f35c"}.fa-textpattern:before{content:"\f35d"}.fa-unity:before{content:"\f35e"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}/*# sourceMappingURL=fork-awesome.min.css.map */ \ No newline at end of file diff --git a/docsrc/source/_static/custom.css b/docsrc/source/_static/custom.css deleted file mode 100644 index 7dd2ea95..00000000 --- a/docsrc/source/_static/custom.css +++ /dev/null @@ -1,100 +0,0 @@ -/* lato-regular - latin */ -@font-face { - font-family: 'Lato'; - font-style: normal; - font-weight: 400; - src: url('fonts/lato-v15-latin-regular.eot'); /* IE9 Compat Modes */ - src: local('Lato Regular'), local('Lato-Regular'), - url('fonts/lato-v15-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ - url('fonts/lato-v15-latin-regular.woff2') format('woff2'), /* Super Modern Browsers */ - url('fonts/lato-v15-latin-regular.woff') format('woff'), /* Modern Browsers */ - url('fonts/lato-v15-latin-regular.ttf') format('truetype'), /* Safari, Android, iOS */ - url('fonts/lato-v15-latin-regular.svg#Lato') format('svg'); /* Legacy iOS */ -} - -/* lato-700 - latin */ -@font-face { - font-family: 'Lato'; - font-style: normal; - font-weight: 700; - src: url('fonts/lato-v15-latin-700.eot'); /* IE9 Compat Modes */ - src: local('Lato Bold'), local('Lato-Bold'), - url('fonts/lato-v15-latin-700.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ - url('fonts/lato-v15-latin-700.woff2') format('woff2'), /* Super Modern Browsers */ - url('fonts/lato-v15-latin-700.woff') format('woff'), /* Modern Browsers */ - url('fonts/lato-v15-latin-700.ttf') format('truetype'), /* Safari, Android, iOS */ - url('fonts/lato-v15-latin-700.svg#Lato') format('svg'); /* Legacy iOS */ -} - -/* lato-italic - latin */ -@font-face { - font-family: 'Lato'; - font-style: italic; - font-weight: 400; - src: url('fonts/lato-v15-latin-italic.eot'); /* IE9 Compat Modes */ - src: local('Lato Italic'), local('Lato-Italic'), - url('fonts/lato-v15-latin-italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ - url('fonts/lato-v15-latin-italic.woff2') format('woff2'), /* Super Modern Browsers */ - url('fonts/lato-v15-latin-italic.woff') format('woff'), /* Modern Browsers */ - url('fonts/lato-v15-latin-italic.ttf') format('truetype'), /* Safari, Android, iOS */ - url('fonts/lato-v15-latin-italic.svg#Lato') format('svg'); /* Legacy iOS */ -} - - -html { - font-family: "Lato", sans-serif; - height: 100vh; -} - -body { - margin: 0; - min-height: 100vh; - padding-bottom: 65px; - position: relative; -} - -.alert-danger { - background-color: #f2dede; - border-color: #dca7a7; - color: #a94442; -} - -.alert-info { - background-color: #d9edf7; - border-color: #9acfea; - color: #31708f; -} - -.alert-warning { - background-color: #fcf8e3; - border-color: #f5e79e; - color: #8a6d3b; -} - -.descname { - border-top: solid 3px #a18bac; - border-radius: unset; - padding: 6px; -} - -dl.field-list > dt { - background: #f0f0f0; - border-left: solid 3px #ccc; - color: #555; -} - -.envvar { - margin-top: 30px; -} - -.footer { - bottom: 0; - height: 65px; - position: absolute; -} - - -img { - border: 1px solid #cecdcd; - margin: 5px 0; -} \ No newline at end of file diff --git a/docsrc/source/_static/fonts/forkawesome-webfont.eot b/docsrc/source/_static/fonts/forkawesome-webfont.eot new file mode 100644 index 00000000..c2c24b41 Binary files /dev/null and b/docsrc/source/_static/fonts/forkawesome-webfont.eot differ diff --git a/docsrc/source/_static/fonts/forkawesome-webfont.svg b/docsrc/source/_static/fonts/forkawesome-webfont.svg new file mode 100644 index 00000000..bd45b304 --- /dev/null +++ b/docsrc/source/_static/fonts/forkawesome-webfont.svg @@ -0,0 +1,3232 @@ + + + + + +Created by FontForge 20190801 at Fri Aug 27 00:07:49 2021 + By shine +The Fork Awesome font is licensed under the SIL OFL 1.1 (http://scripts.sil.org/OFL). Fork Awesome is a fork based of off Font Awesome 4.7.0 by Dave Gandy. More info on licenses at https://forkawesome.github.io + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docsrc/source/_static/fonts/forkawesome-webfont.ttf b/docsrc/source/_static/fonts/forkawesome-webfont.ttf new file mode 100644 index 00000000..1f1d8f34 Binary files /dev/null and b/docsrc/source/_static/fonts/forkawesome-webfont.ttf differ diff --git a/docsrc/source/_static/fonts/forkawesome-webfont.woff b/docsrc/source/_static/fonts/forkawesome-webfont.woff new file mode 100644 index 00000000..cca43af4 Binary files /dev/null and b/docsrc/source/_static/fonts/forkawesome-webfont.woff differ diff --git a/docsrc/source/_static/fonts/forkawesome-webfont.woff2 b/docsrc/source/_static/fonts/forkawesome-webfont.woff2 new file mode 100644 index 00000000..c96e5bf1 Binary files /dev/null and b/docsrc/source/_static/fonts/forkawesome-webfont.woff2 differ diff --git a/docsrc/source/_templates/layout.html b/docsrc/source/_templates/layout.html new file mode 100644 index 00000000..1bfc5645 --- /dev/null +++ b/docsrc/source/_templates/layout.html @@ -0,0 +1,30 @@ +{% extends '!layout.html' %} + +{% block footer %} +
                                                                                +
                                                                                +

                                                                                + Back to top + {% if theme_source_link_position == "footer" %} +
                                                                                + {% include "sourcelink.html" %} + {% endif %} +

                                                                                +

                                                                                + {%- if show_copyright %} + {%- if hasdoc('copyright') %} + {% trans path=pathto('copyright'), copyright=copyright|e %}© Copyright {{ copyright }}.{% endtrans %}
                                                                                + {%- else %} + {% trans copyright=copyright|e %}© Copyright {{ copyright }} .{% endtrans %} + {%- endif %} + {%- endif %} + {%- if last_updated %} + {% trans last_updated=last_updated|e %}Last updated on {{ last_updated }}.{% endtrans %}
                                                                                + {%- endif %} + {%- if show_sphinx %} + {% trans sphinx_version=sphinx_version|e %}Created using Sphinx {{ sphinx_version }}.{% endtrans %}
                                                                                + {%- endif %} +

                                                                                +
                                                                                +
                                                                                +{% endblock %} \ No newline at end of file diff --git a/docsrc/source/cli.rst b/docsrc/source/cli.rst index a10e35b6..bf349fee 100644 --- a/docsrc/source/cli.rst +++ b/docsrc/source/cli.rst @@ -22,6 +22,7 @@ A command line interface (CLI) is available to manage database, OAuth2 tokens an | The following commands are now deprecated and will be removed in a next version: | - ``fittrackee_set_admin`` | - ``fittrackee_upgrade_db`` + | - ``fittrackee_worker`` (disabled) Database diff --git a/docsrc/source/conf.py b/docsrc/source/conf.py index 6087be34..2390d88b 100644 --- a/docsrc/source/conf.py +++ b/docsrc/source/conf.py @@ -19,10 +19,6 @@ import sphinx_bootstrap_theme sys.path.insert(0, os.path.abspath('../../fittrackee')) -def setup(app): - app.add_css_file("custom.css") - - # -- Project information ----------------------------------------------------- project = 'FitTrackee' @@ -75,6 +71,12 @@ html_theme_options = { ], } +html_css_files = [ + 'css/fork-awesome.min.css', + 'css/custom.css', +] + +html_last_updated_fmt = '' # -- Sources configuration --------------------------------------------------- diff --git a/docsrc/source/installation.rst b/docsrc/source/installation.rst index 694fadc0..1796c11b 100644 --- a/docsrc/source/installation.rst +++ b/docsrc/source/installation.rst @@ -392,11 +392,11 @@ For instance, copy and update ``.env`` file from ``.env.example`` and source the $ fittrackee -- Start task queue workers if email sending is enabled. +- Start task queue workers if email sending is enabled, with flask-dramatiq CLI: .. code-block:: bash - $ fittrackee_worker --processes 2 + $ flask worker --processes 2 .. note:: | To start application and workers with **systemd** service, see `Deployment `__ @@ -480,13 +480,13 @@ Production environment .. warning:: | Note that FitTrackee is under heavy development, some features may be unstable. -- Download the last release (for now, it is the release v0.7.6): +- Download the last release (for now, it is the release v0.7.7): .. code:: bash - $ wget https://github.com/SamR1/FitTrackee/archive/v0.7.6.tar.gz - $ tar -xzf v0.7.6.tar.gz - $ mv FitTrackee-0.7.6 FitTrackee + $ wget https://github.com/SamR1/FitTrackee/archive/v0.7.7.tar.gz + $ tar -xzf v0.7.7.tar.gz + $ mv FitTrackee-0.7.7 FitTrackee $ cd FitTrackee - Create **.env** from example and update it @@ -606,13 +606,13 @@ Prod environment - Change to the directory where FitTrackee directory is located -- Download the last release (for now, it is the release v0.7.6) and overwrite existing files: +- Download the last release (for now, it is the release v0.7.7) and overwrite existing files: .. code:: bash - $ wget https://github.com/SamR1/FitTrackee/archive/v0.7.6.tar.gz - $ tar -xzf v0.7.6.tar.gz - $ cp -R FitTrackee-0.7.6/* FitTrackee/ + $ wget https://github.com/SamR1/FitTrackee/archive/v0.7.7.tar.gz + $ tar -xzf v0.7.7.tar.gz + $ cp -R FitTrackee-0.7.7/* FitTrackee/ $ cd FitTrackee - Update **.env** if needed (see `Environment variables `__). diff --git a/fittrackee/__init__.py b/fittrackee/__init__.py index b15f51d6..be76c67a 100644 --- a/fittrackee/__init__.py +++ b/fittrackee/__init__.py @@ -25,7 +25,7 @@ from werkzeug.middleware.proxy_fix import ProxyFix from fittrackee.emails.email import EmailService from fittrackee.request import CustomRequest -VERSION = __version__ = '0.7.6' +VERSION = __version__ = '0.7.7' REDIS_URL = os.getenv('REDIS_URL', 'redis://') API_RATE_LIMITS = os.environ.get('API_RATE_LIMITS', '300 per 5 minutes').split( ',' diff --git a/fittrackee/__main__.py b/fittrackee/__main__.py index dc9d6b75..bf0598cf 100644 --- a/fittrackee/__main__.py +++ b/fittrackee/__main__.py @@ -81,6 +81,14 @@ def upgrade_db() -> None: upgrade(directory=BASEDIR + '/migrations') +def worker() -> None: + raise SystemExit( + "Error: this command is disabled, " + "it will be removed in a next version.\n" + "Please use flask-dramatiq CLI instead ('flask worker')." + ) + + def main() -> None: options = {'bind': f'{HOST}:{PORT}', 'workers': WORKERS} StandaloneApplication(app, options).run() diff --git a/fittrackee/application/app_config.py b/fittrackee/application/app_config.py index 03a8465a..1a57598b 100644 --- a/fittrackee/application/app_config.py +++ b/fittrackee/application/app_config.py @@ -48,7 +48,7 @@ def get_application_config() -> Union[Dict, HttpResponse]: "max_users": 0, "max_zip_file_size": 10485760, "map_attribution": "© OpenStreetMap contributors" - "version": "0.7.6" + "version": "0.7.7" }, "status": "success" } @@ -100,7 +100,7 @@ def update_application_config(auth_user: User) -> Union[Dict, HttpResponse]: "max_users": 10, "max_zip_file_size": 10485760, "map_attribution": "© OpenStreetMap contributors" - "version": "0.7.6" + "version": "0.7.7" }, "status": "success" } diff --git a/fittrackee/config.py b/fittrackee/config.py index fa053049..faac7e58 100644 --- a/fittrackee/config.py +++ b/fittrackee/config.py @@ -10,6 +10,12 @@ if os.getenv('APP_SETTINGS') == 'fittrackee.config.TestingConfig': else: broker = RedisBroker +XDIST_WORKER = ( + f"_{os.getenv('PYTEST_XDIST_WORKER')}" + if os.getenv('PYTEST_XDIST_WORKER') + else '' +) + class BaseConfig: @@ -55,6 +61,7 @@ class BaseConfig: 'fr', 'de', # 'nb', # disabled for now + # 'nl', # disabled for now ] OAUTH2_TOKEN_EXPIRES_IN = { 'authorization_code': 864000, # 10 days @@ -73,7 +80,13 @@ class DevelopmentConfig(BaseConfig): class TestingConfig(BaseConfig): DEBUG = True TESTING = True - SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_TEST_URL') + SQLALCHEMY_DATABASE_URI = ( + os.environ.get('DATABASE_TEST_URL', '') + XDIST_WORKER + ) + UPLOAD_FOLDER = os.path.join( + os.getenv('UPLOAD_FOLDER', current_app.root_path), + 'uploads' + XDIST_WORKER, + ) SECRET_KEY = 'test key' # nosec BCRYPT_LOG_ROUNDS = 4 TOKEN_EXPIRATION_DAYS = 0 diff --git a/fittrackee/dist/index.html b/fittrackee/dist/index.html index 01242ede..543e8c17 100644 --- a/fittrackee/dist/index.html +++ b/fittrackee/dist/index.html @@ -1 +1 @@ -FitTrackee
                                                                                \ No newline at end of file +FitTrackee
                                                                                \ No newline at end of file diff --git a/fittrackee/dist/service-worker.js b/fittrackee/dist/service-worker.js index 358f91c3..ff1423fd 100644 --- a/fittrackee/dist/service-worker.js +++ b/fittrackee/dist/service-worker.js @@ -1,2 +1,2 @@ -if(!self.define){let s,e={};const i=(i,t)=>(i=new URL(i+".js",t).href,e[i]||new Promise((e=>{if("document"in self){const s=document.createElement("script");s.src=i,s.onload=e,document.head.appendChild(s)}else s=i,importScripts(i),e()})).then((()=>{let s=e[i];if(!s)throw new Error(`Module ${i} didn’t register its module`);return s})));self.define=(t,r)=>{const a=s||("document"in self?document.currentScript.src:"")||location.href;if(e[a])return;let n={};const l=s=>i(s,a),c={module:{uri:a},exports:n,require:l};e[a]=Promise.all(t.map((s=>c[s]||l(s)))).then((s=>(r(...s),n)))}}define(["./workbox-db5fc017"],(function(s){"use strict";s.setCacheNameDetails({prefix:"fittrackee_client"}),self.addEventListener("message",(s=>{s.data&&"SKIP_WAITING"===s.data.type&&self.skipWaiting()})),s.precacheAndRoute([{url:"/img/bike.svg",revision:"ab4faed007625b209af72b9b8dce84db"},{url:"/img/weather/breeze.svg",revision:"428c6ccb838f8e91dc4826c5b650a98b"},{url:"/img/weather/clear-day.svg",revision:"f3e8628de2e5089f508f03944f8be951"},{url:"/img/weather/clear-night.svg",revision:"6a0d6579a93e89fdf1a2a95b398e0935"},{url:"/img/weather/cloudy.svg",revision:"c52fe62c9d9fea2cdf5ae2813b3df366"},{url:"/img/weather/fog.svg",revision:"9f4d74289594eb83f9c175d13167a0eb"},{url:"/img/weather/partly-cloudy-day.svg",revision:"f730c2e4f4c014e8b49c9d4a0a141b90"},{url:"/img/weather/partly-cloudy-night.svg",revision:"0d9270901c4dffbc05f3998d835171c8"},{url:"/img/weather/pour-rain.svg",revision:"91eb3159ba8781d258d8c384a8ef987c"},{url:"/img/weather/rain.svg",revision:"c52ca88ce0ddf4de0fc29167e578b2be"},{url:"/img/weather/sleet.svg",revision:"97d61d89332f912c1ec27bcbe077b7bd"},{url:"/img/weather/snow.svg",revision:"9e88c89c0d6d14174e9665e98932dd80"},{url:"/img/weather/temperature.svg",revision:"d42b62d0b57d5d326506277d87b70435"},{url:"/img/weather/wind.svg",revision:"d75fbe559220d7b2b9577a98a91f38d0"},{url:"/img/workouts/finish.svg",revision:"375196b7ade7c07c3b64ac4cb8b850a8"},{url:"/img/workouts/mountains.svg",revision:"0b94f1d4a050a86ca5ac89ab3ed60f9c"},{url:"/img/workouts/start.svg",revision:"97f6a197b6c2869e0cb2ff0e7697af86"},{url:"/index.html",revision:"209fcc38f5e2ffdde052e98715c1bbff"},{url:"/manifest.json",revision:"c61028ca6e9f81bf958e6b66238e2d7c"},{url:"/robots.txt",revision:"b6216d61c03e6ce0c9aea6ca7808f7ca"},{url:"/static/css/admin.73df498d.css",revision:null},{url:"/static/css/app.b6bd588e.css",revision:null},{url:"/static/css/fork-awesome.min.css",revision:"82c1118c918377daaa71a320ab8eea42"},{url:"/static/css/leaflet.css",revision:"5c761a156eea82263d8bacf1718fe04d"},{url:"/static/css/profile.9f83730d.css",revision:null},{url:"/static/css/reset.e2527ec6.css",revision:null},{url:"/static/css/statistics.40e24e75.css",revision:null},{url:"/static/css/workouts.babda0d5.css",revision:null},{url:"/static/fonts/forkawesome-webfont.eot",revision:"e719f9244c69e28e7d00e725ca1e280e"},{url:"/static/fonts/forkawesome-webfont.svg",revision:"d58987a18774d859d98af95281c1dee5"},{url:"/static/fonts/forkawesome-webfont.ttf",revision:"fe45770c6c277da3921355d971045ea5"},{url:"/static/fonts/forkawesome-webfont.woff",revision:"92cd4d8328b2ae614386a01ff935a9f3"},{url:"/static/fonts/forkawesome-webfont.woff2",revision:"12ee76445f0383c58529169d700b6650"},{url:"/static/fonts/pt-sans-v9-latin-700.01a58da9.eot",revision:null},{url:"/static/fonts/pt-sans-v9-latin-700.51b1613b.woff2",revision:null},{url:"/static/fonts/pt-sans-v9-latin-700.5ff2a2d7.woff",revision:null},{url:"/static/fonts/pt-sans-v9-latin-700.6514157e.ttf",revision:null},{url:"/static/fonts/pt-sans-v9-latin-italic.10011d51.woff2",revision:null},{url:"/static/fonts/pt-sans-v9-latin-italic.6206408d.ttf",revision:null},{url:"/static/fonts/pt-sans-v9-latin-italic.8293436e.eot",revision:null},{url:"/static/fonts/pt-sans-v9-latin-italic.fe36f54f.woff",revision:null},{url:"/static/fonts/pt-sans-v9-latin-regular.b5b74f16.woff",revision:null},{url:"/static/fonts/pt-sans-v9-latin-regular.c43bc0a2.ttf",revision:null},{url:"/static/fonts/pt-sans-v9-latin-regular.c5a514ae.eot",revision:null},{url:"/static/fonts/pt-sans-v9-latin-regular.e7867499.woff2",revision:null},{url:"/static/img/map.5b26d82b.svg",revision:null},{url:"/static/img/pt-sans-v9-latin-700.b8a7047e.svg",revision:null},{url:"/static/img/pt-sans-v9-latin-italic.0b285c83.svg",revision:null},{url:"/static/img/pt-sans-v9-latin-regular.59a385b4.svg",revision:null},{url:"/static/js/243.e551248f.js",revision:null},{url:"/static/js/431.e5102e07.js",revision:null},{url:"/static/js/633.81a8ddc8.js",revision:null},{url:"/static/js/858.3f2a93f2.js",revision:null},{url:"/static/js/93.02cf293c.js",revision:null},{url:"/static/js/admin.4b3687ad.js",revision:null},{url:"/static/js/app.81fed7e5.js",revision:null},{url:"/static/js/chunk-vendors.d575ea61.js",revision:null},{url:"/static/js/profile.6c65e34f.js",revision:null},{url:"/static/js/reset.f95630ef.js",revision:null},{url:"/static/js/statistics.71389307.js",revision:null},{url:"/static/js/workouts.5d4c1679.js",revision:null}],{})})); +if(!self.define){let s,i={};const e=(e,t)=>(e=new URL(e+".js",t).href,i[e]||new Promise((i=>{if("document"in self){const s=document.createElement("script");s.src=e,s.onload=i,document.head.appendChild(s)}else s=e,importScripts(e),i()})).then((()=>{let s=i[e];if(!s)throw new Error(`Module ${e} didn’t register its module`);return s})));self.define=(t,r)=>{const a=s||("document"in self?document.currentScript.src:"")||location.href;if(i[a])return;let n={};const l=s=>e(s,a),c={module:{uri:a},exports:n,require:l};i[a]=Promise.all(t.map((s=>c[s]||l(s)))).then((s=>(r(...s),n)))}}define(["./workbox-db5fc017"],(function(s){"use strict";s.setCacheNameDetails({prefix:"fittrackee_client"}),self.addEventListener("message",(s=>{s.data&&"SKIP_WAITING"===s.data.type&&self.skipWaiting()})),s.precacheAndRoute([{url:"/img/bike.svg",revision:"ab4faed007625b209af72b9b8dce84db"},{url:"/img/weather/breeze.svg",revision:"428c6ccb838f8e91dc4826c5b650a98b"},{url:"/img/weather/clear-day.svg",revision:"f3e8628de2e5089f508f03944f8be951"},{url:"/img/weather/clear-night.svg",revision:"6a0d6579a93e89fdf1a2a95b398e0935"},{url:"/img/weather/cloudy.svg",revision:"c52fe62c9d9fea2cdf5ae2813b3df366"},{url:"/img/weather/fog.svg",revision:"9f4d74289594eb83f9c175d13167a0eb"},{url:"/img/weather/partly-cloudy-day.svg",revision:"f730c2e4f4c014e8b49c9d4a0a141b90"},{url:"/img/weather/partly-cloudy-night.svg",revision:"0d9270901c4dffbc05f3998d835171c8"},{url:"/img/weather/pour-rain.svg",revision:"91eb3159ba8781d258d8c384a8ef987c"},{url:"/img/weather/rain.svg",revision:"c52ca88ce0ddf4de0fc29167e578b2be"},{url:"/img/weather/sleet.svg",revision:"97d61d89332f912c1ec27bcbe077b7bd"},{url:"/img/weather/snow.svg",revision:"9e88c89c0d6d14174e9665e98932dd80"},{url:"/img/weather/temperature.svg",revision:"d42b62d0b57d5d326506277d87b70435"},{url:"/img/weather/wind.svg",revision:"d75fbe559220d7b2b9577a98a91f38d0"},{url:"/img/workouts/finish.svg",revision:"375196b7ade7c07c3b64ac4cb8b850a8"},{url:"/img/workouts/mountains.svg",revision:"0b94f1d4a050a86ca5ac89ab3ed60f9c"},{url:"/img/workouts/start.svg",revision:"97f6a197b6c2869e0cb2ff0e7697af86"},{url:"/index.html",revision:"153e07c4cd9b9f3bd45377ced37366a4"},{url:"/manifest.json",revision:"c61028ca6e9f81bf958e6b66238e2d7c"},{url:"/robots.txt",revision:"b6216d61c03e6ce0c9aea6ca7808f7ca"},{url:"/static/css/admin.73df498d.css",revision:null},{url:"/static/css/app.6b717ec5.css",revision:null},{url:"/static/css/fork-awesome.min.css",revision:"82c1118c918377daaa71a320ab8eea42"},{url:"/static/css/leaflet.css",revision:"5c761a156eea82263d8bacf1718fe04d"},{url:"/static/css/profile.9f83730d.css",revision:null},{url:"/static/css/reset.e2527ec6.css",revision:null},{url:"/static/css/statistics.40e24e75.css",revision:null},{url:"/static/css/workouts.9970f29e.css",revision:null},{url:"/static/fonts/forkawesome-webfont.eot",revision:"e719f9244c69e28e7d00e725ca1e280e"},{url:"/static/fonts/forkawesome-webfont.svg",revision:"d58987a18774d859d98af95281c1dee5"},{url:"/static/fonts/forkawesome-webfont.ttf",revision:"fe45770c6c277da3921355d971045ea5"},{url:"/static/fonts/forkawesome-webfont.woff",revision:"92cd4d8328b2ae614386a01ff935a9f3"},{url:"/static/fonts/forkawesome-webfont.woff2",revision:"12ee76445f0383c58529169d700b6650"},{url:"/static/fonts/pt-sans-v9-latin-700.01a58da9.eot",revision:null},{url:"/static/fonts/pt-sans-v9-latin-700.51b1613b.woff2",revision:null},{url:"/static/fonts/pt-sans-v9-latin-700.5ff2a2d7.woff",revision:null},{url:"/static/fonts/pt-sans-v9-latin-700.6514157e.ttf",revision:null},{url:"/static/fonts/pt-sans-v9-latin-italic.10011d51.woff2",revision:null},{url:"/static/fonts/pt-sans-v9-latin-italic.6206408d.ttf",revision:null},{url:"/static/fonts/pt-sans-v9-latin-italic.8293436e.eot",revision:null},{url:"/static/fonts/pt-sans-v9-latin-italic.fe36f54f.woff",revision:null},{url:"/static/fonts/pt-sans-v9-latin-regular.b5b74f16.woff",revision:null},{url:"/static/fonts/pt-sans-v9-latin-regular.c43bc0a2.ttf",revision:null},{url:"/static/fonts/pt-sans-v9-latin-regular.c5a514ae.eot",revision:null},{url:"/static/fonts/pt-sans-v9-latin-regular.e7867499.woff2",revision:null},{url:"/static/img/map.5b26d82b.svg",revision:null},{url:"/static/img/pt-sans-v9-latin-700.b8a7047e.svg",revision:null},{url:"/static/img/pt-sans-v9-latin-italic.0b285c83.svg",revision:null},{url:"/static/img/pt-sans-v9-latin-regular.59a385b4.svg",revision:null},{url:"/static/js/243.d3fff3a7.js",revision:null},{url:"/static/js/431.52f71cad.js",revision:null},{url:"/static/js/633.5eb61510.js",revision:null},{url:"/static/js/858.ec3b00a9.js",revision:null},{url:"/static/js/93.611a4415.js",revision:null},{url:"/static/js/admin.c4231dfb.js",revision:null},{url:"/static/js/app.29b99fd4.js",revision:null},{url:"/static/js/chunk-vendors.561352b4.js",revision:null},{url:"/static/js/profile.984aa6f4.js",revision:null},{url:"/static/js/reset.c81f6622.js",revision:null},{url:"/static/js/statistics.5231fa2f.js",revision:null},{url:"/static/js/workouts.6988dc66.js",revision:null}],{})})); //# sourceMappingURL=service-worker.js.map diff --git a/fittrackee/dist/service-worker.js.map b/fittrackee/dist/service-worker.js.map index 2074b555..5bb7f090 100644 --- a/fittrackee/dist/service-worker.js.map +++ b/fittrackee/dist/service-worker.js.map @@ -1 +1 @@ -{"version":3,"file":"service-worker.js","sources":["../../../../../../tmp/6d073f638d08f6ec32ad00407551b471/service-worker.js"],"sourcesContent":["import {setCacheNameDetails as workbox_core_setCacheNameDetails} from '/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/workbox-core/setCacheNameDetails.mjs';\nimport {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/workbox-precaching/precacheAndRoute.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\n\nworkbox_core_setCacheNameDetails({prefix: \"fittrackee_client\"});\n\n\nself.addEventListener('message', (event) => {\n if (event.data && event.data.type === 'SKIP_WAITING') {\n self.skipWaiting();\n }\n});\n\n\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"/img/bike.svg\",\n \"revision\": \"ab4faed007625b209af72b9b8dce84db\"\n },\n {\n \"url\": \"/img/weather/breeze.svg\",\n \"revision\": \"428c6ccb838f8e91dc4826c5b650a98b\"\n },\n {\n \"url\": \"/img/weather/clear-day.svg\",\n \"revision\": \"f3e8628de2e5089f508f03944f8be951\"\n },\n {\n \"url\": \"/img/weather/clear-night.svg\",\n \"revision\": \"6a0d6579a93e89fdf1a2a95b398e0935\"\n },\n {\n \"url\": \"/img/weather/cloudy.svg\",\n \"revision\": \"c52fe62c9d9fea2cdf5ae2813b3df366\"\n },\n {\n \"url\": \"/img/weather/fog.svg\",\n \"revision\": \"9f4d74289594eb83f9c175d13167a0eb\"\n },\n {\n \"url\": \"/img/weather/partly-cloudy-day.svg\",\n \"revision\": \"f730c2e4f4c014e8b49c9d4a0a141b90\"\n },\n {\n \"url\": \"/img/weather/partly-cloudy-night.svg\",\n \"revision\": \"0d9270901c4dffbc05f3998d835171c8\"\n },\n {\n \"url\": \"/img/weather/pour-rain.svg\",\n \"revision\": \"91eb3159ba8781d258d8c384a8ef987c\"\n },\n {\n \"url\": \"/img/weather/rain.svg\",\n \"revision\": \"c52ca88ce0ddf4de0fc29167e578b2be\"\n },\n {\n \"url\": \"/img/weather/sleet.svg\",\n \"revision\": \"97d61d89332f912c1ec27bcbe077b7bd\"\n },\n {\n \"url\": \"/img/weather/snow.svg\",\n \"revision\": \"9e88c89c0d6d14174e9665e98932dd80\"\n },\n {\n \"url\": \"/img/weather/temperature.svg\",\n \"revision\": \"d42b62d0b57d5d326506277d87b70435\"\n },\n {\n \"url\": \"/img/weather/wind.svg\",\n \"revision\": \"d75fbe559220d7b2b9577a98a91f38d0\"\n },\n {\n \"url\": \"/img/workouts/finish.svg\",\n \"revision\": \"375196b7ade7c07c3b64ac4cb8b850a8\"\n },\n {\n \"url\": \"/img/workouts/mountains.svg\",\n \"revision\": \"0b94f1d4a050a86ca5ac89ab3ed60f9c\"\n },\n {\n \"url\": \"/img/workouts/start.svg\",\n \"revision\": \"97f6a197b6c2869e0cb2ff0e7697af86\"\n },\n {\n \"url\": \"/index.html\",\n \"revision\": \"209fcc38f5e2ffdde052e98715c1bbff\"\n },\n {\n \"url\": \"/manifest.json\",\n \"revision\": \"c61028ca6e9f81bf958e6b66238e2d7c\"\n },\n {\n \"url\": \"/robots.txt\",\n \"revision\": \"b6216d61c03e6ce0c9aea6ca7808f7ca\"\n },\n {\n \"url\": \"/static/css/admin.73df498d.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/app.b6bd588e.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/fork-awesome.min.css\",\n \"revision\": \"82c1118c918377daaa71a320ab8eea42\"\n },\n {\n \"url\": \"/static/css/leaflet.css\",\n \"revision\": \"5c761a156eea82263d8bacf1718fe04d\"\n },\n {\n \"url\": \"/static/css/profile.9f83730d.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/reset.e2527ec6.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/statistics.40e24e75.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/workouts.babda0d5.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/forkawesome-webfont.eot\",\n \"revision\": \"e719f9244c69e28e7d00e725ca1e280e\"\n },\n {\n \"url\": \"/static/fonts/forkawesome-webfont.svg\",\n \"revision\": \"d58987a18774d859d98af95281c1dee5\"\n },\n {\n \"url\": \"/static/fonts/forkawesome-webfont.ttf\",\n \"revision\": \"fe45770c6c277da3921355d971045ea5\"\n },\n {\n \"url\": \"/static/fonts/forkawesome-webfont.woff\",\n \"revision\": \"92cd4d8328b2ae614386a01ff935a9f3\"\n },\n {\n \"url\": \"/static/fonts/forkawesome-webfont.woff2\",\n \"revision\": \"12ee76445f0383c58529169d700b6650\"\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-700.01a58da9.eot\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-700.51b1613b.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-700.5ff2a2d7.woff\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-700.6514157e.ttf\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-italic.10011d51.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-italic.6206408d.ttf\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-italic.8293436e.eot\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-italic.fe36f54f.woff\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-regular.b5b74f16.woff\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-regular.c43bc0a2.ttf\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-regular.c5a514ae.eot\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-regular.e7867499.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"/static/img/map.5b26d82b.svg\",\n \"revision\": null\n },\n {\n \"url\": \"/static/img/pt-sans-v9-latin-700.b8a7047e.svg\",\n \"revision\": null\n },\n {\n \"url\": \"/static/img/pt-sans-v9-latin-italic.0b285c83.svg\",\n \"revision\": null\n },\n {\n \"url\": \"/static/img/pt-sans-v9-latin-regular.59a385b4.svg\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/243.e551248f.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/431.e5102e07.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/633.81a8ddc8.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/858.3f2a93f2.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/93.02cf293c.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/admin.4b3687ad.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/app.81fed7e5.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/chunk-vendors.d575ea61.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/profile.6c65e34f.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/reset.f95630ef.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/statistics.71389307.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/workouts.5d4c1679.js\",\n \"revision\": null\n }\n], {});\n\n\n\n\n\n\n\n\n"],"names":["workbox_core_setCacheNameDetails","prefix","self","addEventListener","event","data","type","skipWaiting","workbox_precaching_precacheAndRoute","url","revision"],"mappings":"0nBAiBAA,EAAAA,oBAAiC,CAACC,OAAQ,sBAG1CC,KAAKC,iBAAiB,WAAYC,IAC5BA,EAAMC,MAA4B,iBAApBD,EAAMC,KAAKC,MAC3BJ,KAAKK,aACP,IAWFC,EAAAA,iBAAoC,CAClC,CACEC,IAAO,gBACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,6BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,6BACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,cACPC,SAAY,oCAEd,CACED,IAAO,iBACPC,SAAY,oCAEd,CACED,IAAO,cACPC,SAAY,oCAEd,CACED,IAAO,iCACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,mCACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,mCACPC,SAAY,MAEd,CACED,IAAO,iCACPC,SAAY,MAEd,CACED,IAAO,sCACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,0CACPC,SAAY,oCAEd,CACED,IAAO,kDACPC,SAAY,MAEd,CACED,IAAO,oDACPC,SAAY,MAEd,CACED,IAAO,mDACPC,SAAY,MAEd,CACED,IAAO,kDACPC,SAAY,MAEd,CACED,IAAO,uDACPC,SAAY,MAEd,CACED,IAAO,qDACPC,SAAY,MAEd,CACED,IAAO,qDACPC,SAAY,MAEd,CACED,IAAO,sDACPC,SAAY,MAEd,CACED,IAAO,uDACPC,SAAY,MAEd,CACED,IAAO,sDACPC,SAAY,MAEd,CACED,IAAO,sDACPC,SAAY,MAEd,CACED,IAAO,wDACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,gDACPC,SAAY,MAEd,CACED,IAAO,mDACPC,SAAY,MAEd,CACED,IAAO,oDACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,4BACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,uCACPC,SAAY,MAEd,CACED,IAAO,iCACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,kCACPC,SAAY,OAEb,CAAA"} \ No newline at end of file +{"version":3,"file":"service-worker.js","sources":["../../../../../../tmp/f78bfd6267f3f8e7e97f809f0f10b3c9/service-worker.js"],"sourcesContent":["import {setCacheNameDetails as workbox_core_setCacheNameDetails} from '/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/workbox-core/setCacheNameDetails.mjs';\nimport {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/workbox-precaching/precacheAndRoute.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\n\nworkbox_core_setCacheNameDetails({prefix: \"fittrackee_client\"});\n\n\nself.addEventListener('message', (event) => {\n if (event.data && event.data.type === 'SKIP_WAITING') {\n self.skipWaiting();\n }\n});\n\n\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"/img/bike.svg\",\n \"revision\": \"ab4faed007625b209af72b9b8dce84db\"\n },\n {\n \"url\": \"/img/weather/breeze.svg\",\n \"revision\": \"428c6ccb838f8e91dc4826c5b650a98b\"\n },\n {\n \"url\": \"/img/weather/clear-day.svg\",\n \"revision\": \"f3e8628de2e5089f508f03944f8be951\"\n },\n {\n \"url\": \"/img/weather/clear-night.svg\",\n \"revision\": \"6a0d6579a93e89fdf1a2a95b398e0935\"\n },\n {\n \"url\": \"/img/weather/cloudy.svg\",\n \"revision\": \"c52fe62c9d9fea2cdf5ae2813b3df366\"\n },\n {\n \"url\": \"/img/weather/fog.svg\",\n \"revision\": \"9f4d74289594eb83f9c175d13167a0eb\"\n },\n {\n \"url\": \"/img/weather/partly-cloudy-day.svg\",\n \"revision\": \"f730c2e4f4c014e8b49c9d4a0a141b90\"\n },\n {\n \"url\": \"/img/weather/partly-cloudy-night.svg\",\n \"revision\": \"0d9270901c4dffbc05f3998d835171c8\"\n },\n {\n \"url\": \"/img/weather/pour-rain.svg\",\n \"revision\": \"91eb3159ba8781d258d8c384a8ef987c\"\n },\n {\n \"url\": \"/img/weather/rain.svg\",\n \"revision\": \"c52ca88ce0ddf4de0fc29167e578b2be\"\n },\n {\n \"url\": \"/img/weather/sleet.svg\",\n \"revision\": \"97d61d89332f912c1ec27bcbe077b7bd\"\n },\n {\n \"url\": \"/img/weather/snow.svg\",\n \"revision\": \"9e88c89c0d6d14174e9665e98932dd80\"\n },\n {\n \"url\": \"/img/weather/temperature.svg\",\n \"revision\": \"d42b62d0b57d5d326506277d87b70435\"\n },\n {\n \"url\": \"/img/weather/wind.svg\",\n \"revision\": \"d75fbe559220d7b2b9577a98a91f38d0\"\n },\n {\n \"url\": \"/img/workouts/finish.svg\",\n \"revision\": \"375196b7ade7c07c3b64ac4cb8b850a8\"\n },\n {\n \"url\": \"/img/workouts/mountains.svg\",\n \"revision\": \"0b94f1d4a050a86ca5ac89ab3ed60f9c\"\n },\n {\n \"url\": \"/img/workouts/start.svg\",\n \"revision\": \"97f6a197b6c2869e0cb2ff0e7697af86\"\n },\n {\n \"url\": \"/index.html\",\n \"revision\": \"153e07c4cd9b9f3bd45377ced37366a4\"\n },\n {\n \"url\": \"/manifest.json\",\n \"revision\": \"c61028ca6e9f81bf958e6b66238e2d7c\"\n },\n {\n \"url\": \"/robots.txt\",\n \"revision\": \"b6216d61c03e6ce0c9aea6ca7808f7ca\"\n },\n {\n \"url\": \"/static/css/admin.73df498d.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/app.6b717ec5.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/fork-awesome.min.css\",\n \"revision\": \"82c1118c918377daaa71a320ab8eea42\"\n },\n {\n \"url\": \"/static/css/leaflet.css\",\n \"revision\": \"5c761a156eea82263d8bacf1718fe04d\"\n },\n {\n \"url\": \"/static/css/profile.9f83730d.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/reset.e2527ec6.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/statistics.40e24e75.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/workouts.9970f29e.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/forkawesome-webfont.eot\",\n \"revision\": \"e719f9244c69e28e7d00e725ca1e280e\"\n },\n {\n \"url\": \"/static/fonts/forkawesome-webfont.svg\",\n \"revision\": \"d58987a18774d859d98af95281c1dee5\"\n },\n {\n \"url\": \"/static/fonts/forkawesome-webfont.ttf\",\n \"revision\": \"fe45770c6c277da3921355d971045ea5\"\n },\n {\n \"url\": \"/static/fonts/forkawesome-webfont.woff\",\n \"revision\": \"92cd4d8328b2ae614386a01ff935a9f3\"\n },\n {\n \"url\": \"/static/fonts/forkawesome-webfont.woff2\",\n \"revision\": \"12ee76445f0383c58529169d700b6650\"\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-700.01a58da9.eot\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-700.51b1613b.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-700.5ff2a2d7.woff\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-700.6514157e.ttf\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-italic.10011d51.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-italic.6206408d.ttf\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-italic.8293436e.eot\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-italic.fe36f54f.woff\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-regular.b5b74f16.woff\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-regular.c43bc0a2.ttf\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-regular.c5a514ae.eot\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-regular.e7867499.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"/static/img/map.5b26d82b.svg\",\n \"revision\": null\n },\n {\n \"url\": \"/static/img/pt-sans-v9-latin-700.b8a7047e.svg\",\n \"revision\": null\n },\n {\n \"url\": \"/static/img/pt-sans-v9-latin-italic.0b285c83.svg\",\n \"revision\": null\n },\n {\n \"url\": \"/static/img/pt-sans-v9-latin-regular.59a385b4.svg\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/243.d3fff3a7.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/431.52f71cad.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/633.5eb61510.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/858.ec3b00a9.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/93.611a4415.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/admin.c4231dfb.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/app.29b99fd4.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/chunk-vendors.561352b4.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/profile.984aa6f4.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/reset.c81f6622.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/statistics.5231fa2f.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/workouts.6988dc66.js\",\n \"revision\": null\n }\n], {});\n\n\n\n\n\n\n\n\n"],"names":["workbox_core_setCacheNameDetails","prefix","self","addEventListener","event","data","type","skipWaiting","workbox_precaching_precacheAndRoute","url","revision"],"mappings":"0nBAiBAA,EAAAA,oBAAiC,CAACC,OAAQ,sBAG1CC,KAAKC,iBAAiB,WAAYC,IAC5BA,EAAMC,MAA4B,iBAApBD,EAAMC,KAAKC,MAC3BJ,KAAKK,aACP,IAWFC,EAAAA,iBAAoC,CAClC,CACEC,IAAO,gBACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,6BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,6BACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,cACPC,SAAY,oCAEd,CACED,IAAO,iBACPC,SAAY,oCAEd,CACED,IAAO,cACPC,SAAY,oCAEd,CACED,IAAO,iCACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,mCACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,mCACPC,SAAY,MAEd,CACED,IAAO,iCACPC,SAAY,MAEd,CACED,IAAO,sCACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,0CACPC,SAAY,oCAEd,CACED,IAAO,kDACPC,SAAY,MAEd,CACED,IAAO,oDACPC,SAAY,MAEd,CACED,IAAO,mDACPC,SAAY,MAEd,CACED,IAAO,kDACPC,SAAY,MAEd,CACED,IAAO,uDACPC,SAAY,MAEd,CACED,IAAO,qDACPC,SAAY,MAEd,CACED,IAAO,qDACPC,SAAY,MAEd,CACED,IAAO,sDACPC,SAAY,MAEd,CACED,IAAO,uDACPC,SAAY,MAEd,CACED,IAAO,sDACPC,SAAY,MAEd,CACED,IAAO,sDACPC,SAAY,MAEd,CACED,IAAO,wDACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,gDACPC,SAAY,MAEd,CACED,IAAO,mDACPC,SAAY,MAEd,CACED,IAAO,oDACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,4BACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,uCACPC,SAAY,MAEd,CACED,IAAO,iCACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,kCACPC,SAAY,OAEb,CAAA"} \ No newline at end of file diff --git a/fittrackee/dist/static/css/app.6b717ec5.css b/fittrackee/dist/static/css/app.6b717ec5.css new file mode 100644 index 00000000..1b94566e --- /dev/null +++ b/fittrackee/dist/static/css/app.6b717ec5.css @@ -0,0 +1 @@ +#footer[data-v-2c73279e]{display:flex;bottom:0;position:fixed;width:100%;background:var(--footer-background-color);color:var(--footer-color);font-size:.9em}#footer a[data-v-2c73279e]{text-decoration:none}#footer .footer-items[data-v-2c73279e]{display:flex;align-content:center;justify-content:center;width:100%}#footer .footer-items .footer-item[data-v-2c73279e]{padding:10px 10px;border-top:solid 1px var(--footer-border-color);text-align:center}@media screen and (max-width:500px){#footer .footer-items[data-v-2c73279e]{font-size:.85em}#footer .footer-items .footer-item[data-v-2c73279e]{padding:5px 5px}#footer .footer-items .bullet[data-v-2c73279e]{padding:5px 0}}.user-picture{display:flex;justify-content:center;align-items:center;min-width:30%;line-height:1.2em}.user-picture img{border-radius:50%;height:90px;width:90px}.user-picture .no-picture{color:var(--app-a-color);font-size:5.5em}[data-v-95c1cc02]:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#d6dde3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--success-background-color:#d9ecd9;--success-color:#306430;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--disabled-sport-color:#616161;--scroll-button-bg-color:hsla(0,0%,100%,.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color));--password-bg-color:#d7dadf;--password-color-weak:#e46d6e;--password-color-medium:#f8bc4a;--password-color-good:#acc578;--password-color-strong:#57c255}#nav[data-v-95c1cc02]{background:var(--nav-bar-background-color);display:flex;padding:15px 10px}#nav .nav-container[data-v-95c1cc02]{display:flex;margin-left:auto;margin-right:auto;padding:0 15px 15px 15px;max-width:1140px;width:100%;border-bottom:solid 1px var(--nav-border-color)}#nav a.router-link-exact-active[data-v-95c1cc02]{color:var(--nav-bar-link-active);font-weight:700}#nav .app-name[data-v-95c1cc02]{font-size:1.2em;font-weight:700;margin-right:10px}#nav .app-name[data-v-95c1cc02]:hover{cursor:pointer}#nav .fa[data-v-95c1cc02]{font-size:1.2em}#nav .close-icon[data-v-95c1cc02],#nav .hamburger-icon[data-v-95c1cc02],#nav .nav-icon-open[data-v-95c1cc02]{display:none}#nav .nav-items[data-v-95c1cc02]{display:flex;flex:1;justify-content:space-between;line-height:1.8em;width:100%}#nav .nav-items .nav-items-close[data-v-95c1cc02]{display:none}#nav .nav-items .nav-items-app-menu[data-v-95c1cc02],#nav .nav-items .nav-items-user-menu[data-v-95c1cc02]{display:flex;margin:0;padding:0}#nav .nav-items .nav-items-group[data-v-95c1cc02]{display:flex}#nav .nav-items .nav-item[data-v-95c1cc02]{padding:0 10px}#nav .nav-items .nav-item.dropdown-wrapper[data-v-95c1cc02]{width:60px}#nav .nav-items .nav-item[data-v-95c1cc02] .dropdown-list{margin-left:-10px;padding-left:10px;width:75px}#nav .nav-items .nav-link[data-v-95c1cc02]{color:var(--app-a-color);cursor:pointer}#nav .nav-items .nav-profile-img[data-v-95c1cc02]{margin-bottom:-10px}#nav .nav-items .nav-profile-img[data-v-95c1cc02] .user-picture img{height:32px;width:32px;-o-object-fit:cover;object-fit:cover}#nav .nav-items .nav-profile-img[data-v-95c1cc02] .user-picture .no-picture{font-size:1.7em}#nav .nav-items .nav-separator[data-v-95c1cc02]{display:none}@media screen and (max-width:1000px){#nav .hamburger-icon[data-v-95c1cc02]{display:block}#nav .nav-icon-open[data-v-95c1cc02]{display:block;text-align:right;width:100%}#nav .nav-icon-open.menu-open[data-v-95c1cc02]{display:none}#nav .close-icon[data-v-95c1cc02]{display:block}#nav .close-icon.menu-closed[data-v-95c1cc02],#nav .nav-items[data-v-95c1cc02]{display:none}#nav .nav-items.menu-open[data-v-95c1cc02]{display:flex;flex-direction:column;justify-content:flex-start;z-index:1001;position:absolute;top:0;right:0;bottom:0;left:0;background:var(--nav-bar-background-color)}#nav .nav-items.menu-open .nav-items-app-menu[data-v-95c1cc02],#nav .nav-items.menu-open .nav-items-close[data-v-95c1cc02],#nav .nav-items.menu-open .nav-items-user-menu[data-v-95c1cc02]{display:flex;flex-direction:column}#nav .nav-items.menu-open .nav-items-close[data-v-95c1cc02]{align-items:center;display:flex;flex-direction:row;justify-content:space-between}#nav .nav-items.menu-open .nav-items-close .app-name[data-v-95c1cc02]{padding:15px 25px}#nav .nav-items.menu-open .nav-items-group[data-v-95c1cc02]{display:flex;flex-direction:column}#nav .nav-items.menu-open .nav-item[data-v-95c1cc02]{padding:7px 25px}#nav .nav-items.menu-open .nav-profile-img[data-v-95c1cc02]{display:none}#nav .nav-items.menu-open .nav-separator[data-v-95c1cc02]{display:flex;border-top:solid 1px var(--nav-border-color);margin:0 20px;padding:0}}#no-config[data-v-47759238]{display:flex;align-items:center;justify-content:space-around;padding:10px;height:100%}#no-config .error-page[data-v-47759238]{display:flex;flex-direction:column;align-items:center;max-width:100%}#no-config .error-page .error-img[data-v-47759238]{width:150px}#no-config .error-page .error-img svg[data-v-47759238]{stroke:none;fill-rule:nonzero;fill:var(--app-color);filter:var(--svg-filter)}#no-config .error-page .error-message[data-v-47759238]{font-size:1.2em;text-align:center}@media screen and (max-width:1000px){#no-config .error-page .error-message[data-v-47759238]{font-size:1em}}:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#d6dde3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--success-background-color:#d9ecd9;--success-color:#306430;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--disabled-sport-color:#616161;--scroll-button-bg-color:hsla(0,0%,100%,.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color));--password-bg-color:#d7dadf;--password-color-weak:#e46d6e;--password-color-medium:#f8bc4a;--password-color-good:#acc578;--password-color-strong:#57c255}#app,body{margin:0}#app{font-family:PT Sans,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--app-color);background-color:var(--app-background-color);min-height:100vh}a{color:var(--app-a-color);text-decoration:none}img{max-width:100%}input,select,textarea{background-color:var(--input-bg-color);border-radius:4px;border:solid 1px var(--input-border-color);padding:10px}input:disabled,select:disabled,textarea:disabled{background-color:var(--disabled-background-color);border-color:var(--disabled-color)}form.errors :invalid{outline:2px solid var(--input-error-color)}label{font-weight:700}button{background:var(--app-background-color);border:solid 1px var(--input-border-color);border-radius:4px;box-shadow:2px 2px 2px var(--app-shadow-color);color:var(--app-color);padding:6px 14px}button:hover{background:var(--app-color);color:var(--button-hover-color)}button:enabled:active{box-shadow:2px 0 2px var(--app-shadow-color);transform:translateY(2px)}button.confirm:disabled,button:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}button.cancel{background:var(--button-cancel-bg-color);color:var(--button-cancel-color)}button.cancel:hover{background:var(--app-color);color:var(--button-hover-color)}button.confirm{background:var(--button-confirm-bg-color);color:var(--button-confirm-color)}button.confirm:hover{background:var(--app-color);color:var(--button-hover-color)}button.danger{background:var(--button-danger-bg-color);color:var(--button-danger-color)}button.danger:hover{background:var(--button-danger-hover-bg-color);color:var(--button-danger-hover-color)}button.danger:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}.box{border:solid 1px var(--card-border-color);margin:10px}.box,.info-box{border-radius:4px;padding:10px}.info-box{background-color:var(--info-background-color);color:var(--info-color);font-size:.8em}.container{display:flex;margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px;max-width:1140px}.form-box .form-items{display:flex;flex-direction:column}.form-box .form-items input{margin:10px;padding:5px}.form-info{color:var(--alert-color);font-size:.8em;margin-top:-2px;padding:0 15px}.success-message{margin:20px 0;background-color:var(--success-background-color);color:var(--success-color)}.upper{text-transform:uppercase}.view{padding-bottom:35px;background-color:var(--app-background-color)}.fa-trophy{color:var(--workout-trophy-color)}.mountains{margin-bottom:-3px;height:16px;filter:var(--workout-img-color)}.section-title{font-weight:700;padding-top:15px;padding-left:10px;text-transform:capitalize}.no-map{background-color:var(--workout-no-map-bg-color);background-image:url(/static/img/map.5b26d82b.svg);background-size:contain;background-repeat:no-repeat;background-position:50%;color:var(--workout-no-map-color);font-style:italic;font-weight:700;text-align:center;vertical-align:center}.custom-checkboxes-group{display:flex;justify-content:space-around}.custom-checkboxes-group .custom-checkboxes{display:inline-flex}@media screen and (max-width:300px){.custom-checkboxes-group .custom-checkboxes{display:flex;flex-direction:column;align-items:center;gap:5px}}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label{font-weight:400;float:left;padding:0 5px;cursor:pointer}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label input{display:none}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label span{border:solid 1px var(--custom-checkbox-border-color);border-radius:5px;display:block;font-size:.9em;padding:2px 6px;text-align:center}.custom-checkboxes-group .custom-checkboxes .custom-checkbox input:checked+span{background-color:var(--custom-checkbox-checked-bg-color);color:var(--custom-checkbox-checked-color)}.description-list dl{display:flex;flex-direction:column;width:100%}.description-list dl dt{font-weight:700}.description-list dl dd{margin-bottom:10px}.center-card{margin:0 auto;width:700px}.center-card.with-margin{margin-top:100px}@media screen and (max-width:1000px){.center-card{width:100%;margin:0 auto 50px auto}}.text-center{text-align:center}.text-left{text-align:left}.responsive-table{margin-bottom:15px}.responsive-table table{width:100%;padding:10px;font-size:.9em;border-collapse:collapse}.responsive-table table thead th{vertical-align:center;padding:10px;border-bottom:2px solid var(--card-border-color)}.responsive-table table tbody{font-size:.95em}.responsive-table table tbody td{padding:10px;border-bottom:1px solid var(--card-border-color)}.responsive-table table tbody tr:last-child td{border:none}.responsive-table table .cell-heading{background:var(--cell-heading-bg-color);color:var(--cell-heading-color);display:none;font-size:10px;font-weight:700;padding:5px;position:absolute;text-transform:uppercase;top:0;left:0}@media screen and (max-width:700px){.responsive-table table thead{left:-9999px;position:absolute;visibility:hidden}.responsive-table table tr{border-bottom:0;display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:40px}.responsive-table table td{margin:0 -1px -1px 0;padding-top:25px!important;position:relative;text-align:center;width:45%}.responsive-table table tbody tr:last-child td,.responsive-table table td{border:1px solid var(--card-border-color)}.responsive-table table .cell-heading{display:flex}}@media screen and (max-width:500px){.responsive-table table td{width:100%}}.profile-buttons{display:flex;gap:10px}.medium-sport-img{height:35px;width:35px;margin:0 auto}.app-container{height:calc(100vh - 130px)}.app-container.hide-scroll{overflow:hidden}.app-container .app-loading{display:flex;align-items:center;height:100%}.scroll{display:flex;justify-content:flex-end;position:fixed;bottom:42px;right:-15px;padding:0 25px}.scroll .scroll-button{background-color:var(--scroll-button-bg-color);border-radius:4px;box-shadow:1px 1px 3px #d3d3d3;display:none;padding:0 10px}.scroll .scroll-button.display-button{display:block}.user-limit-help[data-v-24ec93e2]{display:flex}.user-limit-help span[data-v-24ec93e2]{font-style:italic}.user-limit-help .fa-info-circle[data-v-24ec93e2]{margin-right:10px}.no-contact[data-v-24ec93e2]{font-style:italic}.stat-card{flex:1;max-width:25%}@media screen and (max-width:700px){.stat-card{flex:1 0 50%;max-width:49%}}.stat-card .stat-content{display:flex;flex-direction:row;justify-content:space-between;padding:10px 20px}.stat-card .stat-content .stat-icon{width:30%;text-align:center;vertical-align:center}@media screen and (max-width:1000px){.stat-card .stat-content .stat-icon{width:50%;text-align:left}}.stat-card .stat-content .stat-icon .fa{font-size:3em}@media screen and (max-width:1000px){.stat-card .stat-content .stat-icon .fa{font-size:2em}}@media screen and (max-width:500px){.stat-card .stat-content .stat-icon .fa{font-size:1.5em}}.stat-card .stat-content .stat-details{width:70%;text-align:right}@media screen and (max-width:1000px){.stat-card .stat-content .stat-details{width:100%}}.stat-card .stat-content .stat-details .stat-huge{font-size:1.7em;font-weight:700}@media screen and (max-width:1000px){.stat-card .stat-content .stat-details .stat-huge{font-size:1.3em}}@media screen and (max-width:500px){.stat-card .stat-content .stat-details .stat-huge{font-size:1em}}.stat-card .stat-content .stat-details .stat{font-size:1em}@media screen and (max-width:1000px){.stat-card .stat-content .stat-details .stat{font-size:.9em}}@media screen and (max-width:500px){.stat-card .stat-content .stat-details .stat{font-size:.8em}}.card{border:solid 1px var(--card-border-color);border-radius:4px;margin:10px}.card .card-title{font-weight:700;border-bottom:solid 1px var(--card-border-color);padding:10px 20px}.card .card-content{padding:10px 20px}#admin-menu[data-v-0dd66f89]{display:flex}#admin-menu.center-card[data-v-0dd66f89]{width:100%}#admin-menu[data-v-0dd66f89] .card{flex-grow:1}#admin-menu[data-v-0dd66f89] .card .admin-menu{padding:0 10px}#admin-menu[data-v-0dd66f89] .card .admin-menu dd{margin-bottom:30px}#admin-menu[data-v-0dd66f89] .card .admin-menu .application-config-details{display:flex;flex-direction:column}#admin-menu[data-v-0dd66f89] .card .admin-menu .application-config-details .email-sending-status,#admin-menu[data-v-0dd66f89] .card .admin-menu .application-config-details .registration-status{font-weight:700}#admin-sports table td[data-v-6d62af67]{font-size:1.1em}#admin-sports .sport-img[data-v-6d62af67]{height:35px;width:35px;margin:0 auto}#admin-sports .has-workouts[data-v-6d62af67]{font-size:.95em;font-style:italic;padding:0 10px}#admin-sports .sport-action[data-v-6d62af67]{padding-left:40px}#admin-sports .action-button[data-v-6d62af67]{display:block}#admin-sports .top-button[data-v-6d62af67]{display:none}@media screen and (max-width:700px){#admin-sports .sport-action[data-v-6d62af67]{padding-left:10px}#admin-sports .has-workouts[data-v-6d62af67]{padding-top:5px}#admin-sports .action-button[data-v-6d62af67]{display:flex;align-items:center;flex-wrap:wrap;flex-direction:column}#admin-sports .top-button[data-v-6d62af67]{display:block;margin-bottom:20px}}.table-selects[data-v-72463173]{display:flex;justify-content:space-between;margin:10px 0}.table-selects label select[data-v-72463173]{margin-left:10px;padding:5px}@media screen and (max-width:700px){.table-selects[data-v-72463173]{flex-wrap:wrap}.table-selects label[data-v-72463173]{margin-bottom:10px}.table-selects label select[data-v-72463173]{margin-left:0}}.pagination-center[data-v-3a9a4a65]{display:flex;justify-content:center;font-size:.9em}.pagination-center .pagination[data-v-3a9a4a65]{display:flex;padding-left:0;list-style:none;border-radius:.25rem}.pagination-center .pagination .page-next[data-v-3a9a4a65],.pagination-center .pagination .page-prev[data-v-3a9a4a65],.pagination-center .pagination .page[data-v-3a9a4a65]{border:solid 1px var(--card-border-color);padding:10px 15px}.pagination-center .pagination .page-next.active[data-v-3a9a4a65],.pagination-center .pagination .page-prev.active[data-v-3a9a4a65],.pagination-center .pagination .page.active[data-v-3a9a4a65]{font-weight:700}.pagination-center .pagination .page-next.disabled[data-v-3a9a4a65],.pagination-center .pagination .page-prev.disabled[data-v-3a9a4a65],.pagination-center .pagination .page.disabled[data-v-3a9a4a65]{cursor:default}.pagination-center .pagination .page-next.disabled a[data-v-3a9a4a65],.pagination-center .pagination .page-prev.disabled a[data-v-3a9a4a65],.pagination-center .pagination .page.disabled a[data-v-3a9a4a65]{cursor:default;pointer-events:none;color:var(--disabled-color)}.pagination-center .pagination .page[data-v-3a9a4a65]{margin-left:-1px}.pagination-center .pagination .page-prev[data-v-3a9a4a65]{border-top-left-radius:5px;border-bottom-left-radius:5px}.pagination-center .pagination .page-next[data-v-3a9a4a65]{border-top-right-radius:5px;border-bottom-right-radius:5px;margin-left:-1px}.pagination-center .pagination .fa[data-v-3a9a4a65]{font-size:.8em;padding:0 5px}@media screen and (max-width:1000px){.pagination-center .pagination .page[data-v-3a9a4a65]{display:none}}.users-filters[data-v-627a8e91]{display:flex;align-items:center;padding:10px 0;gap:10px}.users-filters .fa[data-v-627a8e91]{font-size:1.5em}.users-filters .fa-disabled[data-v-627a8e91]{color:var(--disabled-color)}.users-filters .search-username[data-v-627a8e91]{display:flex;align-items:center;justify-content:space-between;gap:10px;border:solid 1px var(--card-border-color);border-radius:4px;color:var(--info-color);width:45%}.users-filters .search-username input[data-v-627a8e91]{border:none;height:12px;width:90%}.users-filters .search-username input[data-v-627a8e91]:focus{outline:none}.users-filters .search-username .fa-times[data-v-627a8e91]{padding-right:10px}@media screen and (max-width:700px){.users-filters .search-username[data-v-627a8e91]{width:400px}}@media screen and (max-width:500px){.users-filters .search-username[data-v-627a8e91]{width:90%}}#admin-users .top-button[data-v-dc12ff78]{display:none}#admin-users .no-users[data-v-dc12ff78]{display:flex;justify-content:center;padding:20px 0;font-weight:700}#admin-users table td[data-v-dc12ff78]{font-size:1.1em}#admin-users .left-text[data-v-dc12ff78]{text-align:left}#admin-users[data-v-dc12ff78] .user-picture img{height:30px;width:30px}#admin-users[data-v-dc12ff78] .user-picture .no-picture{font-size:2em}@media screen and (max-width:700px){#admin-users .top-button[data-v-dc12ff78]{display:block;margin-bottom:20px}#admin-users .pagination-center[data-v-dc12ff78]{margin-top:-30px}}.user-header[data-v-20291951]{display:flex;align-items:stretch}.user-header .user-details[data-v-20291951]{flex-grow:1;padding:10px;display:flex;flex-direction:column;align-items:center}.user-header .user-details .user-name[data-v-20291951]{font-size:2em;height:60%}.user-header .user-details .user-stats[data-v-20291951]{display:flex;gap:40px}.user-header .user-details .user-stats .user-stat[data-v-20291951]{display:flex;flex-direction:column;align-items:center;padding-top:10px}.user-header .user-details .user-stats .user-stat .stat-label[data-v-20291951],.user-header .user-details .user-stats .user-stat .stat-number[data-v-20291951]{padding:0 5px}.user-header .user-details .user-stats .user-stat .stat-number[data-v-20291951],.user-header .user-details .user-stats .user-stat[data-v-20291951] .distance{font-weight:700;font-size:1.5em}@media screen and (max-width:500px){.user-header .user-details .user-name[data-v-20291951]{font-size:1.5em}.user-header .user-details .user-stats[data-v-20291951]{gap:20px}.user-header .user-details .user-stats .user-stat .stat-number[data-v-20291951],.user-header .user-details .user-stats .user-stat[data-v-20291951] .distance{font-weight:700;font-size:1.2em}.user-header .user-details .user-stats .user-stat.hide-small[data-v-20291951]{display:none}}.profile-tabs-checkboxes{display:flex;justify-content:center;flex-wrap:wrap;gap:5px}#user-profile[data-v-9729cba4]{margin:auto;width:700px}@media screen and (max-width:1000px){#user-profile[data-v-9729cba4]{width:100%;margin:0 auto 50px auto}}#user-infos .user-bio[data-v-217519af]{white-space:pre-wrap}#user-infos .alert-message[data-v-217519af]{margin:0}#user-infos .profile-buttons[data-v-217519af]{display:flex;flex-wrap:wrap}#user-infos .email-form[data-v-217519af]{display:flex}#user-infos .email-form form[data-v-217519af]{width:100%}#user-infos .email-form .form-buttons[data-v-217519af]{display:flex;gap:10px;margin-top:10px}.password-strength[data-v-74e71df5]{cursor:default;display:flex;flex-direction:column}.password-strength .password-slider[data-v-74e71df5]{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;border-radius:8px;height:5px;outline:none;padding:0}.password-strength .strength-0[data-v-74e71df5],.password-strength .strength-1[data-v-74e71df5]{background:var(--password-bg-color);background-image:linear-gradient(to right,var(--password-color-weak) 0,var(--password-color-weak) 100%);background-repeat:no-repeat}.password-strength .strength-2[data-v-74e71df5]{background:var(--password-bg-color);background-image:linear-gradient(to right,var(--password-color-medium) 0,var(--password-color-medium) 100%);background-repeat:no-repeat}.password-strength .strength-3[data-v-74e71df5]{background:var(--password-bg-color);background-image:linear-gradient(to right,var(--password-color-good) 0,var(--password-color-good) 100%);background-repeat:no-repeat}.password-strength .strength-4[data-v-74e71df5]{background:var(--password-bg-color);background-image:linear-gradient(to right,var(--password-color-strong) 0,var(--password-color-strong) 100%);background-repeat:no-repeat}.password-strength .password-slider[data-v-74e71df5]::-moz-range-thumb,.password-strength .password-slider[data-v-74e71df5]::-webkit-slider-thumb{opacity:0}.password-strength .password-slider[data-v-74e71df5]::-webkit-slider-thumb{-webkit-appearance:none}.password-strength .password-slider[data-v-74e71df5]::-moz-range-thumb{-moz-appearance:none;appearance:none}.password-strength .password-strength-details[data-v-74e71df5]{margin-bottom:5px;margin-top:-10px;padding:0 10px}.password-strength .password-strength-details .password-strength-value[data-v-74e71df5]{font-size:.85em}.password-strength .password-strength-details .info-box[data-v-74e71df5]{padding:1px 10px}.password-strength .password-strength-details .info-box .password-feedback[data-v-74e71df5]{padding-left:20px}.password-input[data-v-5a126514]{display:flex;flex-direction:column}.password-input .show-password[data-v-5a126514]{font-style:italic;font-size:.85em;text-align:right;margin-top:-7.5px;padding-right:10px;cursor:pointer}.form-items .password-input[data-v-37b8c4c8] .show-password{font-weight:400;font-size:.8em;margin-top:-4px;padding-left:0}.form-items .password-input[data-v-37b8c4c8] .form-info{font-weight:400;padding-left:10px}.form-items .password-input[data-v-37b8c4c8] .password-strength-details{font-weight:400;margin-top:0}.form-buttons[data-v-37b8c4c8]{flex-direction:row}@media screen and (max-width:500px){.form-buttons[data-v-37b8c4c8]{flex-direction:column}}.form-items .password-input[data-v-5e5a4552] .show-password{font-weight:400;font-size:.8em;margin-top:-4px;padding-left:0}.form-buttons[data-v-5e5a4552]{flex-direction:row}@media screen and (max-width:500px){.form-buttons[data-v-5e5a4552]{flex-direction:column}}#user-picture-edition .user-picture-form[data-v-687e9604]{display:flex;flex-direction:column;margin-top:10px}#user-picture-edition .user-picture-form form[data-v-687e9604]{display:flex;flex-direction:column;gap:10px;justify-content:flex-start}#user-picture-edition .user-picture-form form input[data-v-687e9604]{margin-top:10px;padding:5px}#user-picture-edition .user-picture-form form span[data-v-687e9604]{font-style:italic;font-size:.9em;padding-left:5px}#user-picture-edition .user-picture-form form .picture-help[data-v-687e9604]{display:flex}#user-picture-edition .user-picture-form form .picture-help span[data-v-687e9604]{font-style:italic;padding:10px}#user-picture-edition .user-picture-form form .picture-help .fa-info-circle[data-v-687e9604]{margin-right:10px}#user-picture-edition .user-picture-form .picture-buttons[data-v-687e9604]{display:flex;flex-direction:row;align-items:center;gap:10px}@media screen and (max-width:500px){#user-picture-edition .user-picture-form .picture-buttons[data-v-687e9604],#user-picture-edition .user-picture-form .picture-help[data-v-687e9604]{flex-direction:column;align-items:stretch}}#tz-dropdown[data-v-47ea2903]{display:flex;flex-direction:column;position:relative}#tz-dropdown .tz-dropdown-list[data-v-47ea2903]{background-color:var(--input-bg-color);border-radius:4px;border:solid 1px var(--input-border-color);padding:5px 0;position:absolute;overflow-y:auto;top:20px;left:0;right:0;max-height:200px;width:inherit}#tz-dropdown .tz-dropdown-item[data-v-47ea2903]{cursor:pointer;font-size:.9em;font-weight:400;padding:5px}#tz-dropdown .tz-dropdown-item.focus[data-v-47ea2903]{background-color:var(--dropdown-hover-color)}#user-preferences-edition .form-items[data-v-3b8a9a12]{padding-top:5px}#user-preferences-edition .form-checkboxes .checkboxes-label[data-v-3b8a9a12]{font-weight:700}#user-preferences-edition .form-checkboxes .checkboxes[data-v-3b8a9a12]{display:flex;gap:10px;flex-wrap:wrap}#user-preferences-edition .form-checkboxes .checkboxes .checkbox-label[data-v-3b8a9a12]{padding-left:5px}#user-preferences-edition .form-checkboxes .checkboxes label[data-v-3b8a9a12]{font-weight:400}#user-preferences-edition #date_format[data-v-3b8a9a12],#user-preferences-edition #language[data-v-3b8a9a12]{padding:5px}#new-oauth2-app #new-oauth2-title[data-v-0657ee77]{font-size:1.05em;font-weight:700;padding:0 10px}#new-oauth2-app #apps-form .form-items[data-v-0657ee77]{display:flex;flex-direction:column}#new-oauth2-app #apps-form .form-items input[type=text][data-v-0657ee77]{height:20px}#new-oauth2-app #apps-form .form-items .form-item-scope[data-v-0657ee77]{padding:10px}#new-oauth2-app #apps-form .form-items .form-item-scope .form-item-scope-label[data-v-0657ee77]{font-weight:700}#new-oauth2-app #apps-form .form-items .form-item-scope .form-item-scope-checkboxes[data-v-0657ee77]{padding-bottom:10px}#new-oauth2-app #apps-form .form-items .form-item-scope .form-item-scope-checkboxes .scope-label[data-v-0657ee77]{height:inherit}#new-oauth2-app #apps-form .form-items .form-item-scope .form-item-scope-checkboxes .scope-description[data-v-0657ee77]{font-style:italic;margin:0 5px}#new-oauth2-app #apps-form .form-items .form-item[data-v-0657ee77]{display:flex;flex-direction:column;padding:10px}#new-oauth2-app #apps-form .form-buttons[data-v-0657ee77]{display:flex;justify-content:flex-end}#new-oauth2-app #apps-form .form-buttons button[data-v-0657ee77]{margin:5px}#authorize-oauth2-app #authorize-oauth2-title[data-v-3b2fe9ed]{font-size:1.05em;font-weight:700;padding:0 10px}#authorize-oauth2-app .oauth2-access[data-v-3b2fe9ed]{padding:0 10px}#authorize-oauth2-app .authorize-oauth2-buttons[data-v-3b2fe9ed]{display:flex}#authorize-oauth2-app .authorize-oauth2-buttons button[data-v-3b2fe9ed]{margin:5px}#oauth2-app .app-buttons[data-v-3a844fa2]{display:flex;flex-wrap:wrap;gap:10px}#oauth2-app .app-secret[data-v-3a844fa2]{word-break:break-word}#oauth2-app .client-scopes[data-v-3a844fa2]{display:flex;flex-wrap:wrap}#oauth2-app .client-scopes .client-scope[data-v-3a844fa2]{padding-right:15px}#oauth2-app .fa-copy[data-v-3a844fa2]{font-size:.9em}#oauth2-app .no-description[data-v-3a844fa2]{font-style:italic}#oauth2-app .no-app[data-v-3a844fa2]{font-style:italic;padding:10px 0}#oauth2-apps-list ul[data-v-efa45ea0]{list-style:square}#oauth2-apps-list ul li[data-v-efa45ea0]{padding-bottom:10px}#oauth2-apps-list .app-issued-at[data-v-efa45ea0]{font-size:.85em;font-style:italic;padding-left:10px}#oauth2-apps-list .apps-list[data-v-efa45ea0]{font-size:1.05em;font-weight:700}#oauth2-apps-list .app-list-buttons[data-v-efa45ea0]{display:flex;gap:10px}#oauth2-apps-list .no-apps[data-v-efa45ea0]{font-style:italic;padding-bottom:20px}#user-sport-preferences .sport-img[data-v-74e52489]{height:35px;width:35px;margin:0 auto}#user-sport-preferences .sport-color[data-v-74e52489]{border:none;margin:6px 1px 6px 0;padding:0;width:40px}#user-sport-preferences .sport-label[data-v-74e52489]{width:170px}#user-sport-preferences .disabled-sport[data-v-74e52489]{font-style:italic;color:var(--disabled-sport-color)}#user-sport-preferences .disabled-sport .disabled-message[data-v-74e52489]{font-size:.9em}#user-sport-preferences .disabled-sport .cell-heading[data-v-74e52489]{font-style:normal}#user-sport-preferences .action-buttons[data-v-74e52489]{width:70px}#user-sport-preferences .edition-buttons[data-v-74e52489]{display:flex;flex-wrap:wrap;gap:5px;line-height:1.3em}#user-sport-preferences .edition-buttons button[data-v-74e52489]{text-align:center;min-width:80px}#user-sport-preferences .threshold-input[data-v-74e52489]{padding:5px;width:50px}#user-sport-preferences .mobile-display[data-v-74e52489]{display:none}#user-sport-preferences div.error-message[data-v-74e52489]{margin:0}@media screen and (max-width:700px){#user-sport-preferences .action-buttons[data-v-74e52489],#user-sport-preferences .sport-label[data-v-74e52489]{width:45%}#user-sport-preferences .edition-buttons[data-v-74e52489]{justify-content:center}#user-sport-preferences .mobile-display[data-v-74e52489]{display:flex;margin:20px 0 10px}}@media screen and (max-width:500px){#user-sport-preferences .action-buttons[data-v-74e52489],#user-sport-preferences .sport-label[data-v-74e52489]{width:100%}}[data-v-74257266]:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#d6dde3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--success-background-color:#d9ecd9;--success-color:#306430;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--disabled-sport-color:#616161;--scroll-button-bg-color:hsla(0,0%,100%,.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color));--password-bg-color:#d7dadf;--password-color-weak:#e46d6e;--password-color-medium:#f8bc4a;--password-color-good:#acc578;--password-color-strong:#57c255}@font-face{font-family:PT Sans;font-style:normal;font-weight:400;src:url(/static/fonts/pt-sans-v9-latin-regular.c5a514ae.eot);src:local("PT Sans"),local("PTSans-Regular"),url(/static/fonts/pt-sans-v9-latin-regular.c5a514ae.eot?#iefix) format("embedded-opentype"),url(/static/fonts/pt-sans-v9-latin-regular.e7867499.woff2) format("woff2"),url(/static/fonts/pt-sans-v9-latin-regular.b5b74f16.woff) format("woff"),url(/static/fonts/pt-sans-v9-latin-regular.c43bc0a2.ttf) format("truetype"),url(/static/img/pt-sans-v9-latin-regular.59a385b4.svg#PTSans) format("svg")}@font-face{font-family:PT Sans;font-style:italic;font-weight:400;src:url(/static/fonts/pt-sans-v9-latin-italic.8293436e.eot);src:local("PT Sans Italic"),local("PTSans-Italic"),url(/static/fonts/pt-sans-v9-latin-italic.8293436e.eot?#iefix) format("embedded-opentype"),url(/static/fonts/pt-sans-v9-latin-italic.10011d51.woff2) format("woff2"),url(/static/fonts/pt-sans-v9-latin-italic.fe36f54f.woff) format("woff"),url(/static/fonts/pt-sans-v9-latin-italic.6206408d.ttf) format("truetype"),url(/static/img/pt-sans-v9-latin-italic.0b285c83.svg#PTSans) format("svg")}@font-face{font-family:PT Sans;font-style:normal;font-weight:700;src:url(/static/fonts/pt-sans-v9-latin-700.01a58da9.eot);src:local("PT Sans Bold"),local("PTSans-Bold"),url(/static/fonts/pt-sans-v9-latin-700.01a58da9.eot?#iefix) format("embedded-opentype"),url(/static/fonts/pt-sans-v9-latin-700.51b1613b.woff2) format("woff2"),url(/static/fonts/pt-sans-v9-latin-700.5ff2a2d7.woff) format("woff"),url(/static/fonts/pt-sans-v9-latin-700.6514157e.ttf) format("truetype"),url(/static/img/pt-sans-v9-latin-700.b8a7047e.svg#PTSans) format("svg")}body[data-v-74257266]{margin:0}#app[data-v-74257266]{font-family:PT Sans,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--app-color);background-color:var(--app-background-color);margin:0;min-height:100vh}a[data-v-74257266]{color:var(--app-a-color);text-decoration:none}img[data-v-74257266]{max-width:100%}input[data-v-74257266],select[data-v-74257266],textarea[data-v-74257266]{background-color:var(--input-bg-color);border-radius:4px;border:solid 1px var(--input-border-color);padding:10px}input[data-v-74257266]:disabled,select[data-v-74257266]:disabled,textarea[data-v-74257266]:disabled{background-color:var(--disabled-background-color);border-color:var(--disabled-color)}form.errors[data-v-74257266] :invalid{outline:2px solid var(--input-error-color)}label[data-v-74257266]{font-weight:700}button[data-v-74257266]{background:var(--app-background-color);border:solid 1px var(--input-border-color);border-radius:4px;box-shadow:2px 2px 2px var(--app-shadow-color);color:var(--app-color);padding:6px 14px}button[data-v-74257266]:hover{background:var(--app-color);color:var(--button-hover-color)}button[data-v-74257266]:enabled:active{box-shadow:2px 0 2px var(--app-shadow-color);transform:translateY(2px)}button.confirm[data-v-74257266]:disabled,button[data-v-74257266]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}button.cancel[data-v-74257266]{background:var(--button-cancel-bg-color);color:var(--button-cancel-color)}button.cancel[data-v-74257266]:hover{background:var(--app-color);color:var(--button-hover-color)}button.confirm[data-v-74257266]{background:var(--button-confirm-bg-color);color:var(--button-confirm-color)}button.confirm[data-v-74257266]:hover{background:var(--app-color);color:var(--button-hover-color)}button.danger[data-v-74257266]{background:var(--button-danger-bg-color);color:var(--button-danger-color)}button.danger[data-v-74257266]:hover{background:var(--button-danger-hover-bg-color);color:var(--button-danger-hover-color)}button.danger[data-v-74257266]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}.box[data-v-74257266]{border:solid 1px var(--card-border-color);border-radius:4px;padding:10px;margin:10px}.info-box[data-v-74257266]{background-color:var(--info-background-color);border-radius:4px;color:var(--info-color);font-size:.8em;padding:10px}.container[data-v-74257266]{display:flex;margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px;max-width:1140px}.form-box .form-items[data-v-74257266]{display:flex;flex-direction:column}.form-box .form-items input[data-v-74257266]{margin:10px;padding:5px}.form-info[data-v-74257266]{color:var(--alert-color);font-size:.8em;margin-top:-2px;padding:0 15px}.success-message[data-v-74257266]{margin:20px 0;background-color:var(--success-background-color);color:var(--success-color)}.upper[data-v-74257266]{text-transform:uppercase}.view[data-v-74257266]{padding-bottom:35px;background-color:var(--app-background-color)}.fa-trophy[data-v-74257266]{color:var(--workout-trophy-color)}.mountains[data-v-74257266]{margin-bottom:-3px;height:16px;filter:var(--workout-img-color)}.section-title[data-v-74257266]{font-weight:700;padding-top:15px;padding-left:10px;text-transform:capitalize}.no-map[data-v-74257266]{background-color:var(--workout-no-map-bg-color);background-image:url(/static/img/map.5b26d82b.svg);background-size:contain;background-repeat:no-repeat;background-position:50%;color:var(--workout-no-map-color);font-style:italic;font-weight:700;text-align:center;vertical-align:center}.custom-checkboxes-group[data-v-74257266]{display:flex;justify-content:space-around}.custom-checkboxes-group .custom-checkboxes[data-v-74257266]{display:inline-flex}@media screen and (max-width:300px){.custom-checkboxes-group .custom-checkboxes[data-v-74257266]{display:flex;flex-direction:column;align-items:center;gap:5px}}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label[data-v-74257266]{font-weight:400;float:left;padding:0 5px;cursor:pointer}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label input[data-v-74257266]{display:none}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label span[data-v-74257266]{border:solid 1px var(--custom-checkbox-border-color);border-radius:5px;display:block;font-size:.9em;padding:2px 6px;text-align:center}.custom-checkboxes-group .custom-checkboxes .custom-checkbox input:checked+span[data-v-74257266]{background-color:var(--custom-checkbox-checked-bg-color);color:var(--custom-checkbox-checked-color)}.description-list dl[data-v-74257266]{display:flex;flex-direction:column;width:100%}.description-list dl dt[data-v-74257266]{font-weight:700}.description-list dl dd[data-v-74257266]{margin-bottom:10px}.center-card[data-v-74257266]{margin:0 auto;width:700px}.center-card.with-margin[data-v-74257266]{margin-top:100px}@media screen and (max-width:1000px){.center-card[data-v-74257266]{width:100%;margin:0 auto 50px auto}}.text-center[data-v-74257266]{text-align:center}.text-left[data-v-74257266]{text-align:left}.responsive-table[data-v-74257266]{margin-bottom:15px}.responsive-table table[data-v-74257266]{width:100%;padding:10px;font-size:.9em;border-collapse:collapse}.responsive-table table thead th[data-v-74257266]{vertical-align:center;padding:10px;border-bottom:2px solid var(--card-border-color)}.responsive-table table tbody[data-v-74257266]{font-size:.95em}.responsive-table table tbody td[data-v-74257266]{padding:10px;border-bottom:1px solid var(--card-border-color)}.responsive-table table tbody tr:last-child td[data-v-74257266]{border:none}.responsive-table table .cell-heading[data-v-74257266]{background:var(--cell-heading-bg-color);color:var(--cell-heading-color);display:none;font-size:10px;font-weight:700;padding:5px;position:absolute;text-transform:uppercase;top:0;left:0}@media screen and (max-width:700px){.responsive-table table thead[data-v-74257266]{left:-9999px;position:absolute;visibility:hidden}.responsive-table table tr[data-v-74257266]{border-bottom:0;display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:40px}.responsive-table table td[data-v-74257266]{border:1px solid var(--card-border-color);margin:0 -1px -1px 0;padding-top:25px!important;position:relative;text-align:center;width:45%}.responsive-table table tbody tr:last-child td[data-v-74257266]{border:1px solid var(--card-border-color)}.responsive-table table .cell-heading[data-v-74257266]{display:flex}}@media screen and (max-width:500px){.responsive-table table td[data-v-74257266]{width:100%}}.profile-buttons[data-v-74257266]{display:flex;gap:10px}.medium-sport-img[data-v-74257266]{height:35px;width:35px;margin:0 auto}.about-text[data-v-74257266]{margin-top:200px}@media screen and (max-width:700px){.about-text[data-v-74257266]{margin-top:0}}.about-text .fa-padding[data-v-74257266]{padding-right:10px}#bike[data-v-795f7f5f]{display:flex;justify-content:center;margin-top:180px;padding:10px}#bike .bike-img[data-v-795f7f5f]{max-width:200px}@media screen and (max-width:700px){#bike[data-v-795f7f5f]{margin-top:10px}#bike .bike-img[data-v-795f7f5f]{max-width:150px}}#about[data-v-bffb50d0]{display:flex;height:100%}#about .container[data-v-bffb50d0]{display:flex;flex-direction:row;justify-content:space-evenly;margin-bottom:20px;width:100%}#about .container .container-sub[data-v-bffb50d0]{min-width:50%;height:100%}#about .container .about-details[data-v-bffb50d0]{width:100%}@media screen and (max-width:1000px){#about[data-v-bffb50d0]{height:auto}#about .container .container-sub[data-v-bffb50d0]{align-items:center}#about .container .container-sub .bike-img[data-v-bffb50d0]{max-width:60%}}@media screen and (max-width:700px){#about .container[data-v-bffb50d0]{flex-direction:column}}.static-map{display:flex;position:relative}.static-map.display-hover{position:absolute;margin-left:20px;margin-top:3px;width:400px;height:225px;z-index:100}.static-map .bg-map-image{background-size:cover;background-position:50%;opacity:.6;height:200px;width:100%}.static-map .map-attribution{top:0;right:0;font-size:11px;position:absolute}.static-map .map-attribution-text{background-color:hsla(0,0%,100%,.7)}.mountains[data-v-96abcc38]{padding-right:5px}.timeline-workout[data-v-96abcc38]{margin-bottom:20px}.timeline-workout .box[data-v-96abcc38]{flex-direction:column;padding:0}.timeline-workout .box .workout-user-date[data-v-96abcc38]{display:flex;justify-content:space-between;align-items:flex-start;padding:5px 10px}.timeline-workout .box .workout-user-date .workout-user[data-v-96abcc38]{display:flex}.timeline-workout .box .workout-user-date .workout-user[data-v-96abcc38] .user-picture img{height:25px;width:25px}.timeline-workout .box .workout-user-date .workout-user[data-v-96abcc38] .user-picture .no-picture{font-size:1.5em}.timeline-workout .box .workout-user-date .workout-user .workout-user-name[data-v-96abcc38]{white-space:nowrap;padding-left:5px}.timeline-workout .box .workout-user-date .workout-date[data-v-96abcc38]{font-size:.85em;font-style:italic;white-space:nowrap}.timeline-workout .box .workout-user-date .workout-title[data-v-96abcc38]{display:block;text-align:center;padding:0 10px}@media screen and (max-width:500px){.timeline-workout .box .workout-user-date .workout-title[data-v-96abcc38]{display:none}}.timeline-workout .box .workout-map[data-v-96abcc38]{background-color:var(--workout-no-map-bg-color);height:150px}.timeline-workout .box .workout-map .no-map[data-v-96abcc38]{line-height:150px}.timeline-workout .box .workout-map[data-v-96abcc38] .bg-map-image{height:150px}.timeline-workout .box .workout-data[data-v-96abcc38]{display:flex;padding:5px;font-size:.9em}.timeline-workout .box .workout-data .sport-img[data-v-96abcc38]{height:25px;width:25px}.timeline-workout .box .workout-data .data[data-v-96abcc38],.timeline-workout .box .workout-data .img[data-v-96abcc38]{display:flex;align-items:center}.timeline-workout .box .workout-data .data .data-values[data-v-96abcc38],.timeline-workout .box .workout-data .img .data-values[data-v-96abcc38]{display:flex;flex-wrap:wrap}.timeline-workout .box .workout-data .img[data-v-96abcc38]{justify-content:flex-end;width:10%}.timeline-workout .box .workout-data .data[data-v-96abcc38]{justify-content:center;width:22%}@media screen and (max-width:500px){.timeline-workout .box .workout-data .img[data-v-96abcc38]{justify-content:center;width:20%}.timeline-workout .box .workout-data .data[data-v-96abcc38]{justify-content:center;width:40%}.timeline-workout .box .workout-data .altitude[data-v-96abcc38],.timeline-workout .box .workout-data .elevation[data-v-96abcc38]{display:none}}.timeline-workout .box .workout-data.without-gpx .data[data-v-96abcc38],.timeline-workout .box .workout-data.without-gpx .img[data-v-96abcc38]{justify-content:center;width:33%}.timeline-workout .box .workout-data[data-v-96abcc38],.timeline-workout .box .workout-map[data-v-96abcc38]{cursor:pointer}.timeline-workout .box .no-cursor[data-v-96abcc38]{cursor:default}.timeline-workout .box .fa[data-v-96abcc38]{padding-right:10px}.no-workouts[data-v-4b4d15fb]{display:flex;justify-content:center}#timeline[data-v-35567bf2]{margin-bottom:20px}#timeline .more-workouts[data-v-35567bf2]{display:flex;justify-content:center}.calendar-workout{display:flex;padding:1px;cursor:pointer}.calendar-workout .sport-img{width:18px;height:18px}.calendar-workout sup{position:relative;top:-8px;left:-3px;width:2px}.calendar-workout sup .custom-fa-small{font-size:.7em}@media screen and (max-width:700px){.calendar-workout .sport-img{padding:3px;width:20px;height:20px}.calendar-workout sup .custom-fa-small{font-size:.6em}}.calendar-workouts-chart[data-v-52d4310a]{display:flex}.calendar-workouts-chart .workouts-chart[data-v-52d4310a]{position:relative}.calendar-workouts-chart .workouts-chart .workouts-count[data-v-52d4310a]{display:flex;justify-content:center;position:absolute;top:4px;left:6px;width:20px;font-size:1.1em;font-weight:700}@media screen and (max-width:700px){.calendar-workouts-chart .workouts-chart .workouts-count[data-v-52d4310a]{top:16px;left:6px}.calendar-workouts-chart .workouts-chart[data-v-52d4310a] .donut-chart{padding-top:12px}.calendar-workouts-chart .workouts-chart[data-v-52d4310a] .donut-chart svg g circle{stroke-width:2;stroke-opacity:.8}}.calendar-workouts-chart .workouts-pane[data-v-52d4310a]{display:flex;padding-left:40px}.calendar-workouts-chart .workouts-pane .more-workouts[data-v-52d4310a]{background:#f5f5f5;border-radius:4px;box-shadow:0 4px 8px 0 rgba(0,0,0,.2),0 6px 20px 0 rgba(0,0,0,.19);position:absolute;top:52px;left:0;min-width:60px;margin-bottom:20px;padding:10px 10px;display:flex;flex-wrap:wrap;z-index:1000}@media screen and (max-width:700px){.calendar-workouts-chart .workouts-pane .more-workouts[data-v-52d4310a]{min-width:70px}}.calendar-workouts-chart .workouts-pane .more-workouts .calendar-more[data-v-52d4310a]{position:absolute;font-size:.9em;top:5px;right:5px}.calendar-workouts .desktop-display{display:flex}.calendar-workouts .mobile-display{display:none}.calendar-workouts .workouts-display{display:flex;flex-wrap:wrap;position:relative;margin:0 10px 0 0}.calendar-workouts .donut-display{display:flex;height:34px;width:34px}@media screen and (max-width:700px){.calendar-workouts .desktop-display{display:none}.calendar-workouts .mobile-display{display:flex}}.calendar-cells{display:flex;flex-direction:column;width:100%}.calendar-cells .calendar-row{display:flex;flex-wrap:wrap;border-top:solid 1px var(--calendar-border-color)}.calendar-cells .calendar-row .calendar-cell{border-right:solid 1px var(--calendar-border-color);height:40px;flex-grow:1;flex-basis:8%;padding:5px 10px 5px 5px;width:8%;position:relative}.calendar-cells .calendar-row .calendar-cell .calendar-cell-day{position:absolute;font-size:.8em;line-height:1;top:.5em;right:.5em;font-weight:700}.calendar-cells .calendar-row .calendar-cell:last-child{border-right:0}@media screen and (max-width:700px){.calendar-cells .calendar-row .calendar-cell:last-child .calendar-workouts .more-workouts{left:-45px}}.calendar-cells .calendar-row .disabled-cell{color:var(--app-color-light)}.calendar-cells .calendar-row .week-end{background:var(--calendar-week-end-color)}.calendar-cells .calendar-row .today{background:var(--calendar-today-color)}@media screen and (max-width:700px){.calendar-cells .calendar-row:last-child .calendar-workouts .more-workouts{top:inherit;bottom:20px}}.calendar-days{display:flex;flex-direction:row;border-top:solid 1px var(--calendar-border-color)}.calendar-days .calendar-day{flex-grow:1;padding:5px;text-align:center;text-transform:uppercase;color:var(--app-color-light)}.calendar-header{display:flex;flex-direction:row}.calendar-header .calendar-arrow,.calendar-header .calendar-month{flex-grow:1;padding:10px}.calendar-header .calendar-arrow-left{text-align:left;cursor:pointer}.calendar-header .calendar-arrow-right{text-align:right;cursor:pointer}.calendar-header .calendar-month{font-weight:700;text-align:center;text-transform:uppercase}#user-calendar .calendar-card,#user-calendar .calendar-card .card-content{padding:0}.start-chart .chart-radio[data-v-d5e9b348]{display:flex;justify-content:space-between;flex-wrap:wrap;padding:10px}.start-chart .chart-radio label[data-v-d5e9b348]{font-size:.85em;font-weight:400}@media screen and (max-width:700px){.start-chart .chart-radio label[data-v-d5e9b348]{padding-bottom:10px}}.user-month-stats[data-v-1bcddc12] .card-content{padding:10px}.records-card[data-v-8d17c606]{width:100%;padding-bottom:3px}.records-card[data-v-8d17c606] .card{font-size:.9em}.records-card[data-v-8d17c606] .card .card-title{display:flex;font-size:.9em}.records-card[data-v-8d17c606] .card .card-title .sport-img{padding-right:10px;height:20px;width:20px}.records-card[data-v-8d17c606] .card .card-content{font-size:.9em;padding:10px}.records-card[data-v-8d17c606] .card .card-content .record{display:flex;align-items:center;justify-content:space-between}.records-card[data-v-8d17c606] .card .card-content .record span{padding:2px}.records-card[data-v-8d17c606] .card .card-content .record .record-type{flex-grow:1}.records-card[data-v-8d17c606] .card .card-content .record .record-value{font-weight:700;white-space:nowrap;padding-right:10px}.records-card[data-v-8d17c606] .card .card-content .record .record-date{white-space:nowrap;min-width:30%;text-align:right}@media screen and (max-width:1000px){.records-card[data-v-8d17c606] .card,.records-card[data-v-8d17c606] .card .card-title{font-size:1em}.records-card[data-v-8d17c606] .card .card-title .sport-img{height:22px;width:22px}}.user-records .no-records[data-v-f0c85cb8]{border:solid 1px var(--card-border-color);border-radius:4px;padding:10px;margin:10px}#user-stats{display:flex;flex:1 0 25%;justify-content:space-around;flex-wrap:wrap}#dashboard .dashboard-container[data-v-4c0893c1]{display:flex;flex-direction:row}#dashboard .dashboard-container .dashboard-sub-container[data-v-4c0893c1]{display:flex;flex-direction:column}#dashboard .dashboard-container .left-container[data-v-4c0893c1]{width:32%}#dashboard .dashboard-container .right-container[data-v-4c0893c1]{width:68%}#dashboard .mobile-menu[data-v-4c0893c1]{display:none}@media screen and (max-width:1000px){#dashboard[data-v-4c0893c1]{padding-bottom:60px}#dashboard .dashboard-container[data-v-4c0893c1]{display:flex;flex-direction:column}#dashboard .dashboard-container .left-container[data-v-4c0893c1],#dashboard .dashboard-container .right-container[data-v-4c0893c1]{width:100%}#dashboard .mobile-menu[data-v-4c0893c1]{display:flex}#dashboard .mobile-menu .box[data-v-4c0893c1]{display:flex;justify-content:space-between;padding:0;width:100%}#dashboard .mobile-menu .box .mobile-menu-item[data-v-4c0893c1]{display:flex;justify-content:space-around;border:none;border-radius:4px;box-shadow:none;font-size:.95em;padding:10px;width:25%}#dashboard .mobile-menu .box .mobile-menu-item .fa-trophy[data-v-4c0893c1]{color:var(--app-color)}#dashboard .mobile-menu .box .mobile-menu-item.is-selected[data-v-4c0893c1]{color:var(--mobile-menu-selected-color);background-color:var(--mobile-menu-selected-bgcolor)}#dashboard .mobile-menu .box .mobile-menu-item.is-selected .fa-trophy[data-v-4c0893c1]{color:var(--mobile-menu-selected-color)}#dashboard .is-hidden[data-v-4c0893c1]{display:none}}#error[data-v-b60bfa80]{display:flex;align-items:center;justify-content:center;height:75vh;text-align:center}#error .error-content[data-v-b60bfa80]{margin-top:50px}#error .error-content h1[data-v-b60bfa80]{font-size:6em;text-shadow:4px 4px 0 var(--app-shadow-color)}#error .error-content p[data-v-b60bfa80]{font-size:1.2em;margin:30px 0}[data-v-b3c885de]:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#d6dde3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--success-background-color:#d9ecd9;--success-color:#306430;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--disabled-sport-color:#616161;--scroll-button-bg-color:hsla(0,0%,100%,.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color));--password-bg-color:#d7dadf;--password-color-weak:#e46d6e;--password-color-medium:#f8bc4a;--password-color-good:#acc578;--password-color-strong:#57c255}#user-auth-form[data-v-b3c885de]{display:flex}#user-auth-form #user-form[data-v-b3c885de]{width:60%}#user-auth-form #user-form .account[data-v-b3c885de]{font-size:.9em;padding-left:10px}#user-auth-form #user-form .links[data-v-b3c885de]{font-size:.9em;font-style:italic;padding:0 10px}#user-auth-form #user-form button[data-v-b3c885de]{margin:10px;border:solid 1px var(--app-color)}#user-auth-form #user-form button[data-v-b3c885de]:disabled{border-color:var(--disabled-color)}#user-auth-form #user-form .success-message[data-v-b3c885de]{margin:10px}@media screen and (max-width:1000px){#user-auth-form[data-v-b3c885de]{margin-bottom:50px}#user-auth-form #user-form[data-v-b3c885de]{width:100%}}.user-form[data-v-b3c885de]{margin-top:200px}@media screen and (max-width:700px){.user-form[data-v-b3c885de]{margin-top:10px}}#loginOrRegister[data-v-58043acb]{display:flex}#loginOrRegister .container[data-v-58043acb]{display:flex;flex-direction:row;justify-content:space-evenly;margin-bottom:20px;width:100%}#loginOrRegister .container .container-sub[data-v-58043acb]{min-width:50%;height:100%}@media screen and (max-width:1000px){#loginOrRegister[data-v-58043acb]{height:auto}#loginOrRegister .container .container-sub[data-v-58043acb]{align-items:center}#loginOrRegister .container .container-sub .bike-img[data-v-58043acb]{max-width:60%}}@media screen and (max-width:700px){#loginOrRegister .container[data-v-58043acb]{flex-direction:column}}.alert-message[data-v-69d7e4ff]{background:var(--alert-background-color);color:var(--alert-color);border-radius:4px;margin:10px;padding:10px}.custom-textarea[data-v-8cf5cc64]{display:flex;flex-direction:column}.custom-textarea .remaining-chars[data-v-8cf5cc64]{font-size:.8em;font-style:italic}.strong[data-v-f46ff1d6]{font-weight:700}.dropdown-list[data-v-2d3b4eac]{list-style-type:none;background-color:#fff;padding:0;margin-top:5px;margin-left:-20px!important;position:absolute;text-align:left;border:1px solid #d3d3d3;box-shadow:2px 2px 5px #d3d3d3;width:auto!important}.dropdown-list li[data-v-2d3b4eac]{padding-top:5px;padding-right:5px}.dropdown-list li[data-v-2d3b4eac]:last-child{padding-bottom:5px}.dropdown-item[data-v-2d3b4eac]{cursor:default}.dropdown-item.selected[data-v-2d3b4eac]{font-weight:700}.dropdown-item.selected[data-v-2d3b4eac]:after{content:" ✔"}.error-message[data-v-2659a79a]{background:var(--error-background-color);color:var(--error-color);border-radius:4px;margin:10px;padding:10px}.loader[data-v-4c9921ee]{animation:spin-4c9921ee 2s linear infinite;border:14px solid var(--app-loading-color);border-top:14px solid var(--app-loading-top-color);border-radius:50%;height:60px;margin-left:41%;width:60px}@keyframes spin-4c9921ee{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}#modal[data-v-e8fcfaba]{position:fixed;top:0;bottom:0;left:0;right:0;background-color:var(--modal-background-color);padding:10px;z-index:1240}#modal .custom-modal[data-v-e8fcfaba]{background-color:var(--app-background-color);border-radius:4px;max-width:500px;margin:25% auto;z-index:1250}@media screen and (max-width:1000px){#modal .custom-modal[data-v-e8fcfaba]{margin:15% auto;width:100%}}@media screen and (max-width:700px){#modal .custom-modal[data-v-e8fcfaba]{margin:50% 0;width:100%}}#modal .custom-modal[data-v-e8fcfaba] .card{border:0;margin:0}#modal .custom-modal[data-v-e8fcfaba] .card .card-content{display:flex;flex-direction:column}#modal .custom-modal[data-v-e8fcfaba] .card .card-content .modal-message{padding:10px}#modal .custom-modal[data-v-e8fcfaba] .card .card-content .modal-message span{font-weight:700}#modal .custom-modal[data-v-e8fcfaba] .card .card-content .modal-buttons{display:flex;justify-content:flex-end}#modal .custom-modal[data-v-e8fcfaba] .card .card-content .modal-buttons button{margin:5px} \ No newline at end of file diff --git a/fittrackee/dist/static/css/app.b6bd588e.css b/fittrackee/dist/static/css/app.b6bd588e.css deleted file mode 100644 index 60c9d394..00000000 --- a/fittrackee/dist/static/css/app.b6bd588e.css +++ /dev/null @@ -1 +0,0 @@ -#footer[data-v-2c73279e]{display:flex;bottom:0;position:fixed;width:100%;background:var(--footer-background-color);color:var(--footer-color);font-size:.9em}#footer a[data-v-2c73279e]{text-decoration:none}#footer .footer-items[data-v-2c73279e]{display:flex;align-content:center;justify-content:center;width:100%}#footer .footer-items .footer-item[data-v-2c73279e]{padding:10px 10px;border-top:solid 1px var(--footer-border-color);text-align:center}@media screen and (max-width:500px){#footer .footer-items[data-v-2c73279e]{font-size:.85em}#footer .footer-items .footer-item[data-v-2c73279e]{padding:5px 5px}#footer .footer-items .bullet[data-v-2c73279e]{padding:5px 0}}.user-picture{display:flex;justify-content:center;align-items:center;min-width:30%;line-height:1.2em}.user-picture img{border-radius:50%;height:90px;width:90px}.user-picture .no-picture{color:var(--app-a-color);font-size:5.5em}[data-v-95c1cc02]:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#d6dde3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--success-background-color:#d9ecd9;--success-color:#306430;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--disabled-sport-color:#616161;--scroll-button-bg-color:hsla(0,0%,100%,.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color));--password-bg-color:#d7dadf;--password-color-weak:#e46d6e;--password-color-medium:#f8bc4a;--password-color-good:#acc578;--password-color-strong:#57c255}#nav[data-v-95c1cc02]{background:var(--nav-bar-background-color);display:flex;padding:15px 10px}#nav .nav-container[data-v-95c1cc02]{display:flex;margin-left:auto;margin-right:auto;padding:0 15px 15px 15px;max-width:1140px;width:100%;border-bottom:solid 1px var(--nav-border-color)}#nav a.router-link-exact-active[data-v-95c1cc02]{color:var(--nav-bar-link-active);font-weight:700}#nav .app-name[data-v-95c1cc02]{font-size:1.2em;font-weight:700;margin-right:10px}#nav .app-name[data-v-95c1cc02]:hover{cursor:pointer}#nav .fa[data-v-95c1cc02]{font-size:1.2em}#nav .close-icon[data-v-95c1cc02],#nav .hamburger-icon[data-v-95c1cc02],#nav .nav-icon-open[data-v-95c1cc02]{display:none}#nav .nav-items[data-v-95c1cc02]{display:flex;flex:1;justify-content:space-between;line-height:1.8em;width:100%}#nav .nav-items .nav-items-close[data-v-95c1cc02]{display:none}#nav .nav-items .nav-items-app-menu[data-v-95c1cc02],#nav .nav-items .nav-items-user-menu[data-v-95c1cc02]{display:flex;margin:0;padding:0}#nav .nav-items .nav-items-group[data-v-95c1cc02]{display:flex}#nav .nav-items .nav-item[data-v-95c1cc02]{padding:0 10px}#nav .nav-items .nav-item.dropdown-wrapper[data-v-95c1cc02]{width:60px}#nav .nav-items .nav-item[data-v-95c1cc02] .dropdown-list{margin-left:-10px;padding-left:10px;width:75px}#nav .nav-items .nav-link[data-v-95c1cc02]{color:var(--app-a-color);cursor:pointer}#nav .nav-items .nav-profile-img[data-v-95c1cc02]{margin-bottom:-10px}#nav .nav-items .nav-profile-img[data-v-95c1cc02] .user-picture img{height:32px;width:32px;-o-object-fit:cover;object-fit:cover}#nav .nav-items .nav-profile-img[data-v-95c1cc02] .user-picture .no-picture{font-size:1.7em}#nav .nav-items .nav-separator[data-v-95c1cc02]{display:none}@media screen and (max-width:1000px){#nav .hamburger-icon[data-v-95c1cc02]{display:block}#nav .nav-icon-open[data-v-95c1cc02]{display:block;text-align:right;width:100%}#nav .nav-icon-open.menu-open[data-v-95c1cc02]{display:none}#nav .close-icon[data-v-95c1cc02]{display:block}#nav .close-icon.menu-closed[data-v-95c1cc02],#nav .nav-items[data-v-95c1cc02]{display:none}#nav .nav-items.menu-open[data-v-95c1cc02]{display:flex;flex-direction:column;justify-content:flex-start;z-index:1001;position:absolute;top:0;right:0;bottom:0;left:0;background:var(--nav-bar-background-color)}#nav .nav-items.menu-open .nav-items-app-menu[data-v-95c1cc02],#nav .nav-items.menu-open .nav-items-close[data-v-95c1cc02],#nav .nav-items.menu-open .nav-items-user-menu[data-v-95c1cc02]{display:flex;flex-direction:column}#nav .nav-items.menu-open .nav-items-close[data-v-95c1cc02]{align-items:center;display:flex;flex-direction:row;justify-content:space-between}#nav .nav-items.menu-open .nav-items-close .app-name[data-v-95c1cc02]{padding:15px 25px}#nav .nav-items.menu-open .nav-items-group[data-v-95c1cc02]{display:flex;flex-direction:column}#nav .nav-items.menu-open .nav-item[data-v-95c1cc02]{padding:7px 25px}#nav .nav-items.menu-open .nav-profile-img[data-v-95c1cc02]{display:none}#nav .nav-items.menu-open .nav-separator[data-v-95c1cc02]{display:flex;border-top:solid 1px var(--nav-border-color);margin:0 20px;padding:0}}#no-config[data-v-47759238]{display:flex;align-items:center;justify-content:space-around;padding:10px;height:100%}#no-config .error-page[data-v-47759238]{display:flex;flex-direction:column;align-items:center;max-width:100%}#no-config .error-page .error-img[data-v-47759238]{width:150px}#no-config .error-page .error-img svg[data-v-47759238]{stroke:none;fill-rule:nonzero;fill:var(--app-color);filter:var(--svg-filter)}#no-config .error-page .error-message[data-v-47759238]{font-size:1.2em;text-align:center}@media screen and (max-width:1000px){#no-config .error-page .error-message[data-v-47759238]{font-size:1em}}:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#d6dde3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--success-background-color:#d9ecd9;--success-color:#306430;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--disabled-sport-color:#616161;--scroll-button-bg-color:hsla(0,0%,100%,.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color));--password-bg-color:#d7dadf;--password-color-weak:#e46d6e;--password-color-medium:#f8bc4a;--password-color-good:#acc578;--password-color-strong:#57c255}#app,body{margin:0}#app{font-family:PT Sans,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--app-color);background-color:var(--app-background-color);min-height:100vh}a{color:var(--app-a-color);text-decoration:none}img{max-width:100%}input,select,textarea{background-color:var(--input-bg-color);border-radius:4px;border:solid 1px var(--input-border-color);padding:10px}input:disabled,select:disabled,textarea:disabled{background-color:var(--disabled-background-color);border-color:var(--disabled-color)}form.errors :invalid{outline:2px solid var(--input-error-color)}label{font-weight:700}button{background:var(--app-background-color);border:solid 1px var(--input-border-color);border-radius:4px;box-shadow:2px 2px 2px var(--app-shadow-color);color:var(--app-color);padding:6px 14px}button:hover{background:var(--app-color);color:var(--button-hover-color)}button:enabled:active{box-shadow:2px 0 2px var(--app-shadow-color);transform:translateY(2px)}button.confirm:disabled,button:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}button.cancel{background:var(--button-cancel-bg-color);color:var(--button-cancel-color)}button.cancel:hover{background:var(--app-color);color:var(--button-hover-color)}button.confirm{background:var(--button-confirm-bg-color);color:var(--button-confirm-color)}button.confirm:hover{background:var(--app-color);color:var(--button-hover-color)}button.danger{background:var(--button-danger-bg-color);color:var(--button-danger-color)}button.danger:hover{background:var(--button-danger-hover-bg-color);color:var(--button-danger-hover-color)}button.danger:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}.box{border:solid 1px var(--card-border-color);margin:10px}.box,.info-box{border-radius:4px;padding:10px}.info-box{background-color:var(--info-background-color);color:var(--info-color);font-size:.8em}.container{display:flex;margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px;max-width:1140px}.form-box .form-items{display:flex;flex-direction:column}.form-box .form-items input{margin:10px;padding:5px}.form-info{color:var(--alert-color);font-size:.8em;margin-top:-2px;padding:0 15px}.success-message{margin:20px 0;background-color:var(--success-background-color);color:var(--success-color)}.upper{text-transform:uppercase}.view{padding-bottom:35px;background-color:var(--app-background-color)}.fa-trophy{color:var(--workout-trophy-color)}.mountains{margin-bottom:-3px;height:16px;filter:var(--workout-img-color)}.section-title{font-weight:700;padding-top:15px;padding-left:10px;text-transform:capitalize}.no-map{background-color:var(--workout-no-map-bg-color);background-image:url(/static/img/map.5b26d82b.svg);background-size:contain;background-repeat:no-repeat;background-position:50%;color:var(--workout-no-map-color);font-style:italic;font-weight:700;text-align:center;vertical-align:center}.custom-checkboxes-group{display:flex;justify-content:space-around}.custom-checkboxes-group .custom-checkboxes{display:inline-flex}@media screen and (max-width:300px){.custom-checkboxes-group .custom-checkboxes{display:flex;flex-direction:column;align-items:center;gap:5px}}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label{font-weight:400;float:left;padding:0 5px;cursor:pointer}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label input{display:none}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label span{border:solid 1px var(--custom-checkbox-border-color);border-radius:5px;display:block;font-size:.9em;padding:2px 6px;text-align:center}.custom-checkboxes-group .custom-checkboxes .custom-checkbox input:checked+span{background-color:var(--custom-checkbox-checked-bg-color);color:var(--custom-checkbox-checked-color)}.description-list dl{display:flex;flex-direction:column;width:100%}.description-list dl dt{font-weight:700}.description-list dl dd{margin-bottom:10px}.center-card{margin:0 auto;width:700px}.center-card.with-margin{margin-top:100px}@media screen and (max-width:1000px){.center-card{width:100%;margin:0 auto 50px auto}}.text-center{text-align:center}.text-left{text-align:left}.responsive-table{margin-bottom:15px}.responsive-table table{width:100%;padding:10px;font-size:.9em;border-collapse:collapse}.responsive-table table thead th{vertical-align:center;padding:10px;border-bottom:2px solid var(--card-border-color)}.responsive-table table tbody{font-size:.95em}.responsive-table table tbody td{padding:10px;border-bottom:1px solid var(--card-border-color)}.responsive-table table tbody tr:last-child td{border:none}.responsive-table table .cell-heading{background:var(--cell-heading-bg-color);color:var(--cell-heading-color);display:none;font-size:10px;font-weight:700;padding:5px;position:absolute;text-transform:uppercase;top:0;left:0}@media screen and (max-width:700px){.responsive-table table thead{left:-9999px;position:absolute;visibility:hidden}.responsive-table table tr{border-bottom:0;display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:40px}.responsive-table table td{margin:0 -1px -1px 0;padding-top:25px!important;position:relative;text-align:center;width:45%}.responsive-table table tbody tr:last-child td,.responsive-table table td{border:1px solid var(--card-border-color)}.responsive-table table .cell-heading{display:flex}}@media screen and (max-width:500px){.responsive-table table td{width:100%}}.profile-buttons{display:flex;gap:10px}.medium-sport-img{height:35px;width:35px;margin:0 auto}.app-container{height:calc(100vh - 130px)}.app-container.hide-scroll{overflow:hidden}.app-container .app-loading{display:flex;align-items:center;height:100%}.scroll{display:flex;justify-content:flex-end;position:fixed;bottom:42px;right:-15px;padding:0 25px}.scroll .scroll-button{background-color:var(--scroll-button-bg-color);border-radius:4px;box-shadow:1px 1px 3px #d3d3d3;display:none;padding:0 10px}.scroll .scroll-button.display-button{display:block}.user-limit-help[data-v-24ec93e2]{display:flex}.user-limit-help span[data-v-24ec93e2]{font-style:italic}.user-limit-help .fa-info-circle[data-v-24ec93e2]{margin-right:10px}.no-contact[data-v-24ec93e2]{font-style:italic}.stat-card{flex:1;max-width:25%}@media screen and (max-width:700px){.stat-card{flex:1 0 50%;max-width:49%}}.stat-card .stat-content{display:flex;flex-direction:row;justify-content:space-between;padding:10px 20px}.stat-card .stat-content .stat-icon{width:30%;text-align:center;vertical-align:center}@media screen and (max-width:1000px){.stat-card .stat-content .stat-icon{width:50%;text-align:left}}.stat-card .stat-content .stat-icon .fa{font-size:3em}@media screen and (max-width:1000px){.stat-card .stat-content .stat-icon .fa{font-size:2em}}@media screen and (max-width:500px){.stat-card .stat-content .stat-icon .fa{font-size:1.5em}}.stat-card .stat-content .stat-details{width:70%;text-align:right}@media screen and (max-width:1000px){.stat-card .stat-content .stat-details{width:100%}}.stat-card .stat-content .stat-details .stat-huge{font-size:1.7em;font-weight:700}@media screen and (max-width:1000px){.stat-card .stat-content .stat-details .stat-huge{font-size:1.3em}}@media screen and (max-width:500px){.stat-card .stat-content .stat-details .stat-huge{font-size:1em}}.stat-card .stat-content .stat-details .stat{font-size:1em}@media screen and (max-width:1000px){.stat-card .stat-content .stat-details .stat{font-size:.9em}}@media screen and (max-width:500px){.stat-card .stat-content .stat-details .stat{font-size:.8em}}.card{border:solid 1px var(--card-border-color);border-radius:4px;margin:10px}.card .card-title{font-weight:700;border-bottom:solid 1px var(--card-border-color);padding:10px 20px}.card .card-content{padding:10px 20px}#admin-menu[data-v-0dd66f89]{display:flex}#admin-menu.center-card[data-v-0dd66f89]{width:100%}#admin-menu[data-v-0dd66f89] .card{flex-grow:1}#admin-menu[data-v-0dd66f89] .card .admin-menu{padding:0 10px}#admin-menu[data-v-0dd66f89] .card .admin-menu dd{margin-bottom:30px}#admin-menu[data-v-0dd66f89] .card .admin-menu .application-config-details{display:flex;flex-direction:column}#admin-menu[data-v-0dd66f89] .card .admin-menu .application-config-details .email-sending-status,#admin-menu[data-v-0dd66f89] .card .admin-menu .application-config-details .registration-status{font-weight:700}#admin-sports table td[data-v-6d62af67]{font-size:1.1em}#admin-sports .sport-img[data-v-6d62af67]{height:35px;width:35px;margin:0 auto}#admin-sports .has-workouts[data-v-6d62af67]{font-size:.95em;font-style:italic;padding:0 10px}#admin-sports .sport-action[data-v-6d62af67]{padding-left:40px}#admin-sports .action-button[data-v-6d62af67]{display:block}#admin-sports .top-button[data-v-6d62af67]{display:none}@media screen and (max-width:700px){#admin-sports .sport-action[data-v-6d62af67]{padding-left:10px}#admin-sports .has-workouts[data-v-6d62af67]{padding-top:5px}#admin-sports .action-button[data-v-6d62af67]{display:flex;align-items:center;flex-wrap:wrap;flex-direction:column}#admin-sports .top-button[data-v-6d62af67]{display:block;margin-bottom:20px}}.table-selects[data-v-72463173]{display:flex;justify-content:space-between;margin:10px 0}.table-selects label select[data-v-72463173]{margin-left:10px;padding:5px}@media screen and (max-width:700px){.table-selects[data-v-72463173]{flex-wrap:wrap}.table-selects label[data-v-72463173]{margin-bottom:10px}.table-selects label select[data-v-72463173]{margin-left:0}}.pagination-center[data-v-3a9a4a65]{display:flex;justify-content:center;font-size:.9em}.pagination-center .pagination[data-v-3a9a4a65]{display:flex;padding-left:0;list-style:none;border-radius:.25rem}.pagination-center .pagination .page-next[data-v-3a9a4a65],.pagination-center .pagination .page-prev[data-v-3a9a4a65],.pagination-center .pagination .page[data-v-3a9a4a65]{border:solid 1px var(--card-border-color);padding:10px 15px}.pagination-center .pagination .page-next.active[data-v-3a9a4a65],.pagination-center .pagination .page-prev.active[data-v-3a9a4a65],.pagination-center .pagination .page.active[data-v-3a9a4a65]{font-weight:700}.pagination-center .pagination .page-next.disabled[data-v-3a9a4a65],.pagination-center .pagination .page-prev.disabled[data-v-3a9a4a65],.pagination-center .pagination .page.disabled[data-v-3a9a4a65]{cursor:default}.pagination-center .pagination .page-next.disabled a[data-v-3a9a4a65],.pagination-center .pagination .page-prev.disabled a[data-v-3a9a4a65],.pagination-center .pagination .page.disabled a[data-v-3a9a4a65]{cursor:default;pointer-events:none;color:var(--disabled-color)}.pagination-center .pagination .page[data-v-3a9a4a65]{margin-left:-1px}.pagination-center .pagination .page-prev[data-v-3a9a4a65]{border-top-left-radius:5px;border-bottom-left-radius:5px}.pagination-center .pagination .page-next[data-v-3a9a4a65]{border-top-right-radius:5px;border-bottom-right-radius:5px;margin-left:-1px}.pagination-center .pagination .fa[data-v-3a9a4a65]{font-size:.8em;padding:0 5px}@media screen and (max-width:1000px){.pagination-center .pagination .page[data-v-3a9a4a65]{display:none}}.users-filters[data-v-627a8e91]{display:flex;align-items:center;padding:10px 0;gap:10px}.users-filters .fa[data-v-627a8e91]{font-size:1.5em}.users-filters .fa-disabled[data-v-627a8e91]{color:var(--disabled-color)}.users-filters .search-username[data-v-627a8e91]{display:flex;align-items:center;justify-content:space-between;gap:10px;border:solid 1px var(--card-border-color);border-radius:4px;color:var(--info-color);width:45%}.users-filters .search-username input[data-v-627a8e91]{border:none;height:12px;width:90%}.users-filters .search-username input[data-v-627a8e91]:focus{outline:none}.users-filters .search-username .fa-times[data-v-627a8e91]{padding-right:10px}@media screen and (max-width:700px){.users-filters .search-username[data-v-627a8e91]{width:400px}}@media screen and (max-width:500px){.users-filters .search-username[data-v-627a8e91]{width:90%}}#admin-users .top-button[data-v-dc12ff78]{display:none}#admin-users .no-users[data-v-dc12ff78]{display:flex;justify-content:center;padding:20px 0;font-weight:700}#admin-users table td[data-v-dc12ff78]{font-size:1.1em}#admin-users .left-text[data-v-dc12ff78]{text-align:left}#admin-users[data-v-dc12ff78] .user-picture img{height:30px;width:30px}#admin-users[data-v-dc12ff78] .user-picture .no-picture{font-size:2em}@media screen and (max-width:700px){#admin-users .top-button[data-v-dc12ff78]{display:block;margin-bottom:20px}#admin-users .pagination-center[data-v-dc12ff78]{margin-top:-30px}}.user-header[data-v-20291951]{display:flex;align-items:stretch}.user-header .user-details[data-v-20291951]{flex-grow:1;padding:10px;display:flex;flex-direction:column;align-items:center}.user-header .user-details .user-name[data-v-20291951]{font-size:2em;height:60%}.user-header .user-details .user-stats[data-v-20291951]{display:flex;gap:40px}.user-header .user-details .user-stats .user-stat[data-v-20291951]{display:flex;flex-direction:column;align-items:center;padding-top:10px}.user-header .user-details .user-stats .user-stat .stat-label[data-v-20291951],.user-header .user-details .user-stats .user-stat .stat-number[data-v-20291951]{padding:0 5px}.user-header .user-details .user-stats .user-stat .stat-number[data-v-20291951],.user-header .user-details .user-stats .user-stat[data-v-20291951] .distance{font-weight:700;font-size:1.5em}@media screen and (max-width:500px){.user-header .user-details .user-name[data-v-20291951]{font-size:1.5em}.user-header .user-details .user-stats[data-v-20291951]{gap:20px}.user-header .user-details .user-stats .user-stat .stat-number[data-v-20291951],.user-header .user-details .user-stats .user-stat[data-v-20291951] .distance{font-weight:700;font-size:1.2em}.user-header .user-details .user-stats .user-stat.hide-small[data-v-20291951]{display:none}}.profile-tabs-checkboxes{display:flex;justify-content:center;flex-wrap:wrap;gap:5px}#user-profile[data-v-9729cba4]{margin:auto;width:700px}@media screen and (max-width:1000px){#user-profile[data-v-9729cba4]{width:100%;margin:0 auto 50px auto}}#user-infos .user-bio[data-v-217519af]{white-space:pre-wrap}#user-infos .alert-message[data-v-217519af]{margin:0}#user-infos .profile-buttons[data-v-217519af]{display:flex;flex-wrap:wrap}#user-infos .email-form[data-v-217519af]{display:flex}#user-infos .email-form form[data-v-217519af]{width:100%}#user-infos .email-form .form-buttons[data-v-217519af]{display:flex;gap:10px;margin-top:10px}.password-strength[data-v-74e71df5]{cursor:default;display:flex;flex-direction:column}.password-strength .password-slider[data-v-74e71df5]{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;border-radius:8px;height:5px;outline:none;padding:0}.password-strength .strength-0[data-v-74e71df5],.password-strength .strength-1[data-v-74e71df5]{background:var(--password-bg-color);background-image:linear-gradient(to right,var(--password-color-weak) 0,var(--password-color-weak) 100%);background-repeat:no-repeat}.password-strength .strength-2[data-v-74e71df5]{background:var(--password-bg-color);background-image:linear-gradient(to right,var(--password-color-medium) 0,var(--password-color-medium) 100%);background-repeat:no-repeat}.password-strength .strength-3[data-v-74e71df5]{background:var(--password-bg-color);background-image:linear-gradient(to right,var(--password-color-good) 0,var(--password-color-good) 100%);background-repeat:no-repeat}.password-strength .strength-4[data-v-74e71df5]{background:var(--password-bg-color);background-image:linear-gradient(to right,var(--password-color-strong) 0,var(--password-color-strong) 100%);background-repeat:no-repeat}.password-strength .password-slider[data-v-74e71df5]::-moz-range-thumb,.password-strength .password-slider[data-v-74e71df5]::-webkit-slider-thumb{opacity:0}.password-strength .password-slider[data-v-74e71df5]::-webkit-slider-thumb{-webkit-appearance:none}.password-strength .password-slider[data-v-74e71df5]::-moz-range-thumb{-moz-appearance:none;appearance:none}.password-strength .password-strength-details[data-v-74e71df5]{margin-bottom:5px;margin-top:-10px;padding:0 10px}.password-strength .password-strength-details .password-strength-value[data-v-74e71df5]{font-size:.85em}.password-strength .password-strength-details .info-box[data-v-74e71df5]{padding:1px 10px}.password-strength .password-strength-details .info-box .password-feedback[data-v-74e71df5]{padding-left:20px}.password-input[data-v-5a126514]{display:flex;flex-direction:column}.password-input .show-password[data-v-5a126514]{font-style:italic;font-size:.85em;text-align:right;margin-top:-7.5px;padding-right:10px;cursor:pointer}.form-items .password-input[data-v-37b8c4c8] .show-password{font-weight:400;font-size:.8em;margin-top:-4px;padding-left:0}.form-items .password-input[data-v-37b8c4c8] .form-info{font-weight:400;padding-left:10px}.form-items .password-input[data-v-37b8c4c8] .password-strength-details{font-weight:400;margin-top:0}.form-buttons[data-v-37b8c4c8]{flex-direction:row}@media screen and (max-width:500px){.form-buttons[data-v-37b8c4c8]{flex-direction:column}}.form-items .password-input[data-v-5e5a4552] .show-password{font-weight:400;font-size:.8em;margin-top:-4px;padding-left:0}.form-buttons[data-v-5e5a4552]{flex-direction:row}@media screen and (max-width:500px){.form-buttons[data-v-5e5a4552]{flex-direction:column}}#user-picture-edition .user-picture-form[data-v-687e9604]{display:flex;flex-direction:column;margin-top:10px}#user-picture-edition .user-picture-form form[data-v-687e9604]{display:flex;flex-direction:column;gap:10px;justify-content:flex-start}#user-picture-edition .user-picture-form form input[data-v-687e9604]{margin-top:10px;padding:5px}#user-picture-edition .user-picture-form form span[data-v-687e9604]{font-style:italic;font-size:.9em;padding-left:5px}#user-picture-edition .user-picture-form form .picture-help[data-v-687e9604]{display:flex}#user-picture-edition .user-picture-form form .picture-help span[data-v-687e9604]{font-style:italic;padding:10px}#user-picture-edition .user-picture-form form .picture-help .fa-info-circle[data-v-687e9604]{margin-right:10px}#user-picture-edition .user-picture-form .picture-buttons[data-v-687e9604]{display:flex;flex-direction:row;align-items:center;gap:10px}@media screen and (max-width:500px){#user-picture-edition .user-picture-form .picture-buttons[data-v-687e9604],#user-picture-edition .user-picture-form .picture-help[data-v-687e9604]{flex-direction:column;align-items:stretch}}#tz-dropdown[data-v-47ea2903]{display:flex;flex-direction:column;position:relative}#tz-dropdown .tz-dropdown-list[data-v-47ea2903]{background-color:var(--input-bg-color);border-radius:4px;border:solid 1px var(--input-border-color);padding:5px 0;position:absolute;overflow-y:auto;top:20px;left:0;right:0;max-height:200px;width:inherit}#tz-dropdown .tz-dropdown-item[data-v-47ea2903]{cursor:pointer;font-size:.9em;font-weight:400;padding:5px}#tz-dropdown .tz-dropdown-item.focus[data-v-47ea2903]{background-color:var(--dropdown-hover-color)}#user-preferences-edition .form-items[data-v-065d5e6c]{padding-top:5px}#user-preferences-edition .form-checkboxes .checkboxes-label[data-v-065d5e6c]{font-weight:700}#user-preferences-edition .form-checkboxes .checkboxes[data-v-065d5e6c]{display:flex;gap:10px;flex-wrap:wrap}#user-preferences-edition .form-checkboxes .checkboxes .checkbox-label[data-v-065d5e6c]{padding-left:5px}#user-preferences-edition .form-checkboxes .checkboxes label[data-v-065d5e6c]{font-weight:400}#new-oauth2-app #new-oauth2-title[data-v-0657ee77]{font-size:1.05em;font-weight:700;padding:0 10px}#new-oauth2-app #apps-form .form-items[data-v-0657ee77]{display:flex;flex-direction:column}#new-oauth2-app #apps-form .form-items input[type=text][data-v-0657ee77]{height:20px}#new-oauth2-app #apps-form .form-items .form-item-scope[data-v-0657ee77]{padding:10px}#new-oauth2-app #apps-form .form-items .form-item-scope .form-item-scope-label[data-v-0657ee77]{font-weight:700}#new-oauth2-app #apps-form .form-items .form-item-scope .form-item-scope-checkboxes[data-v-0657ee77]{padding-bottom:10px}#new-oauth2-app #apps-form .form-items .form-item-scope .form-item-scope-checkboxes .scope-label[data-v-0657ee77]{height:inherit}#new-oauth2-app #apps-form .form-items .form-item-scope .form-item-scope-checkboxes .scope-description[data-v-0657ee77]{font-style:italic;margin:0 5px}#new-oauth2-app #apps-form .form-items .form-item[data-v-0657ee77]{display:flex;flex-direction:column;padding:10px}#new-oauth2-app #apps-form .form-buttons[data-v-0657ee77]{display:flex;justify-content:flex-end}#new-oauth2-app #apps-form .form-buttons button[data-v-0657ee77]{margin:5px}#authorize-oauth2-app #authorize-oauth2-title[data-v-3b2fe9ed]{font-size:1.05em;font-weight:700;padding:0 10px}#authorize-oauth2-app .oauth2-access[data-v-3b2fe9ed]{padding:0 10px}#authorize-oauth2-app .authorize-oauth2-buttons[data-v-3b2fe9ed]{display:flex}#authorize-oauth2-app .authorize-oauth2-buttons button[data-v-3b2fe9ed]{margin:5px}#oauth2-app .app-buttons[data-v-3a844fa2]{display:flex;flex-wrap:wrap;gap:10px}#oauth2-app .app-secret[data-v-3a844fa2]{word-break:break-word}#oauth2-app .client-scopes[data-v-3a844fa2]{display:flex;flex-wrap:wrap}#oauth2-app .client-scopes .client-scope[data-v-3a844fa2]{padding-right:15px}#oauth2-app .fa-copy[data-v-3a844fa2]{font-size:.9em}#oauth2-app .no-description[data-v-3a844fa2]{font-style:italic}#oauth2-app .no-app[data-v-3a844fa2]{font-style:italic;padding:10px 0}#oauth2-apps-list ul[data-v-efa45ea0]{list-style:square}#oauth2-apps-list ul li[data-v-efa45ea0]{padding-bottom:10px}#oauth2-apps-list .app-issued-at[data-v-efa45ea0]{font-size:.85em;font-style:italic;padding-left:10px}#oauth2-apps-list .apps-list[data-v-efa45ea0]{font-size:1.05em;font-weight:700}#oauth2-apps-list .app-list-buttons[data-v-efa45ea0]{display:flex;gap:10px}#oauth2-apps-list .no-apps[data-v-efa45ea0]{font-style:italic;padding-bottom:20px}#user-sport-preferences .sport-img[data-v-74e52489]{height:35px;width:35px;margin:0 auto}#user-sport-preferences .sport-color[data-v-74e52489]{border:none;margin:6px 1px 6px 0;padding:0;width:40px}#user-sport-preferences .sport-label[data-v-74e52489]{width:170px}#user-sport-preferences .disabled-sport[data-v-74e52489]{font-style:italic;color:var(--disabled-sport-color)}#user-sport-preferences .disabled-sport .disabled-message[data-v-74e52489]{font-size:.9em}#user-sport-preferences .disabled-sport .cell-heading[data-v-74e52489]{font-style:normal}#user-sport-preferences .action-buttons[data-v-74e52489]{width:70px}#user-sport-preferences .edition-buttons[data-v-74e52489]{display:flex;flex-wrap:wrap;gap:5px;line-height:1.3em}#user-sport-preferences .edition-buttons button[data-v-74e52489]{text-align:center;min-width:80px}#user-sport-preferences .threshold-input[data-v-74e52489]{padding:5px;width:50px}#user-sport-preferences .mobile-display[data-v-74e52489]{display:none}#user-sport-preferences div.error-message[data-v-74e52489]{margin:0}@media screen and (max-width:700px){#user-sport-preferences .action-buttons[data-v-74e52489],#user-sport-preferences .sport-label[data-v-74e52489]{width:45%}#user-sport-preferences .edition-buttons[data-v-74e52489]{justify-content:center}#user-sport-preferences .mobile-display[data-v-74e52489]{display:flex;margin:20px 0 10px}}@media screen and (max-width:500px){#user-sport-preferences .action-buttons[data-v-74e52489],#user-sport-preferences .sport-label[data-v-74e52489]{width:100%}}[data-v-74257266]:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#d6dde3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--success-background-color:#d9ecd9;--success-color:#306430;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--disabled-sport-color:#616161;--scroll-button-bg-color:hsla(0,0%,100%,.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color));--password-bg-color:#d7dadf;--password-color-weak:#e46d6e;--password-color-medium:#f8bc4a;--password-color-good:#acc578;--password-color-strong:#57c255}@font-face{font-family:PT Sans;font-style:normal;font-weight:400;src:url(/static/fonts/pt-sans-v9-latin-regular.c5a514ae.eot);src:local("PT Sans"),local("PTSans-Regular"),url(/static/fonts/pt-sans-v9-latin-regular.c5a514ae.eot?#iefix) format("embedded-opentype"),url(/static/fonts/pt-sans-v9-latin-regular.e7867499.woff2) format("woff2"),url(/static/fonts/pt-sans-v9-latin-regular.b5b74f16.woff) format("woff"),url(/static/fonts/pt-sans-v9-latin-regular.c43bc0a2.ttf) format("truetype"),url(/static/img/pt-sans-v9-latin-regular.59a385b4.svg#PTSans) format("svg")}@font-face{font-family:PT Sans;font-style:italic;font-weight:400;src:url(/static/fonts/pt-sans-v9-latin-italic.8293436e.eot);src:local("PT Sans Italic"),local("PTSans-Italic"),url(/static/fonts/pt-sans-v9-latin-italic.8293436e.eot?#iefix) format("embedded-opentype"),url(/static/fonts/pt-sans-v9-latin-italic.10011d51.woff2) format("woff2"),url(/static/fonts/pt-sans-v9-latin-italic.fe36f54f.woff) format("woff"),url(/static/fonts/pt-sans-v9-latin-italic.6206408d.ttf) format("truetype"),url(/static/img/pt-sans-v9-latin-italic.0b285c83.svg#PTSans) format("svg")}@font-face{font-family:PT Sans;font-style:normal;font-weight:700;src:url(/static/fonts/pt-sans-v9-latin-700.01a58da9.eot);src:local("PT Sans Bold"),local("PTSans-Bold"),url(/static/fonts/pt-sans-v9-latin-700.01a58da9.eot?#iefix) format("embedded-opentype"),url(/static/fonts/pt-sans-v9-latin-700.51b1613b.woff2) format("woff2"),url(/static/fonts/pt-sans-v9-latin-700.5ff2a2d7.woff) format("woff"),url(/static/fonts/pt-sans-v9-latin-700.6514157e.ttf) format("truetype"),url(/static/img/pt-sans-v9-latin-700.b8a7047e.svg#PTSans) format("svg")}body[data-v-74257266]{margin:0}#app[data-v-74257266]{font-family:PT Sans,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--app-color);background-color:var(--app-background-color);margin:0;min-height:100vh}a[data-v-74257266]{color:var(--app-a-color);text-decoration:none}img[data-v-74257266]{max-width:100%}input[data-v-74257266],select[data-v-74257266],textarea[data-v-74257266]{background-color:var(--input-bg-color);border-radius:4px;border:solid 1px var(--input-border-color);padding:10px}input[data-v-74257266]:disabled,select[data-v-74257266]:disabled,textarea[data-v-74257266]:disabled{background-color:var(--disabled-background-color);border-color:var(--disabled-color)}form.errors[data-v-74257266] :invalid{outline:2px solid var(--input-error-color)}label[data-v-74257266]{font-weight:700}button[data-v-74257266]{background:var(--app-background-color);border:solid 1px var(--input-border-color);border-radius:4px;box-shadow:2px 2px 2px var(--app-shadow-color);color:var(--app-color);padding:6px 14px}button[data-v-74257266]:hover{background:var(--app-color);color:var(--button-hover-color)}button[data-v-74257266]:enabled:active{box-shadow:2px 0 2px var(--app-shadow-color);transform:translateY(2px)}button.confirm[data-v-74257266]:disabled,button[data-v-74257266]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}button.cancel[data-v-74257266]{background:var(--button-cancel-bg-color);color:var(--button-cancel-color)}button.cancel[data-v-74257266]:hover{background:var(--app-color);color:var(--button-hover-color)}button.confirm[data-v-74257266]{background:var(--button-confirm-bg-color);color:var(--button-confirm-color)}button.confirm[data-v-74257266]:hover{background:var(--app-color);color:var(--button-hover-color)}button.danger[data-v-74257266]{background:var(--button-danger-bg-color);color:var(--button-danger-color)}button.danger[data-v-74257266]:hover{background:var(--button-danger-hover-bg-color);color:var(--button-danger-hover-color)}button.danger[data-v-74257266]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}.box[data-v-74257266]{border:solid 1px var(--card-border-color);border-radius:4px;padding:10px;margin:10px}.info-box[data-v-74257266]{background-color:var(--info-background-color);border-radius:4px;color:var(--info-color);font-size:.8em;padding:10px}.container[data-v-74257266]{display:flex;margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px;max-width:1140px}.form-box .form-items[data-v-74257266]{display:flex;flex-direction:column}.form-box .form-items input[data-v-74257266]{margin:10px;padding:5px}.form-info[data-v-74257266]{color:var(--alert-color);font-size:.8em;margin-top:-2px;padding:0 15px}.success-message[data-v-74257266]{margin:20px 0;background-color:var(--success-background-color);color:var(--success-color)}.upper[data-v-74257266]{text-transform:uppercase}.view[data-v-74257266]{padding-bottom:35px;background-color:var(--app-background-color)}.fa-trophy[data-v-74257266]{color:var(--workout-trophy-color)}.mountains[data-v-74257266]{margin-bottom:-3px;height:16px;filter:var(--workout-img-color)}.section-title[data-v-74257266]{font-weight:700;padding-top:15px;padding-left:10px;text-transform:capitalize}.no-map[data-v-74257266]{background-color:var(--workout-no-map-bg-color);background-image:url(/static/img/map.5b26d82b.svg);background-size:contain;background-repeat:no-repeat;background-position:50%;color:var(--workout-no-map-color);font-style:italic;font-weight:700;text-align:center;vertical-align:center}.custom-checkboxes-group[data-v-74257266]{display:flex;justify-content:space-around}.custom-checkboxes-group .custom-checkboxes[data-v-74257266]{display:inline-flex}@media screen and (max-width:300px){.custom-checkboxes-group .custom-checkboxes[data-v-74257266]{display:flex;flex-direction:column;align-items:center;gap:5px}}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label[data-v-74257266]{font-weight:400;float:left;padding:0 5px;cursor:pointer}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label input[data-v-74257266]{display:none}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label span[data-v-74257266]{border:solid 1px var(--custom-checkbox-border-color);border-radius:5px;display:block;font-size:.9em;padding:2px 6px;text-align:center}.custom-checkboxes-group .custom-checkboxes .custom-checkbox input:checked+span[data-v-74257266]{background-color:var(--custom-checkbox-checked-bg-color);color:var(--custom-checkbox-checked-color)}.description-list dl[data-v-74257266]{display:flex;flex-direction:column;width:100%}.description-list dl dt[data-v-74257266]{font-weight:700}.description-list dl dd[data-v-74257266]{margin-bottom:10px}.center-card[data-v-74257266]{margin:0 auto;width:700px}.center-card.with-margin[data-v-74257266]{margin-top:100px}@media screen and (max-width:1000px){.center-card[data-v-74257266]{width:100%;margin:0 auto 50px auto}}.text-center[data-v-74257266]{text-align:center}.text-left[data-v-74257266]{text-align:left}.responsive-table[data-v-74257266]{margin-bottom:15px}.responsive-table table[data-v-74257266]{width:100%;padding:10px;font-size:.9em;border-collapse:collapse}.responsive-table table thead th[data-v-74257266]{vertical-align:center;padding:10px;border-bottom:2px solid var(--card-border-color)}.responsive-table table tbody[data-v-74257266]{font-size:.95em}.responsive-table table tbody td[data-v-74257266]{padding:10px;border-bottom:1px solid var(--card-border-color)}.responsive-table table tbody tr:last-child td[data-v-74257266]{border:none}.responsive-table table .cell-heading[data-v-74257266]{background:var(--cell-heading-bg-color);color:var(--cell-heading-color);display:none;font-size:10px;font-weight:700;padding:5px;position:absolute;text-transform:uppercase;top:0;left:0}@media screen and (max-width:700px){.responsive-table table thead[data-v-74257266]{left:-9999px;position:absolute;visibility:hidden}.responsive-table table tr[data-v-74257266]{border-bottom:0;display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:40px}.responsive-table table td[data-v-74257266]{border:1px solid var(--card-border-color);margin:0 -1px -1px 0;padding-top:25px!important;position:relative;text-align:center;width:45%}.responsive-table table tbody tr:last-child td[data-v-74257266]{border:1px solid var(--card-border-color)}.responsive-table table .cell-heading[data-v-74257266]{display:flex}}@media screen and (max-width:500px){.responsive-table table td[data-v-74257266]{width:100%}}.profile-buttons[data-v-74257266]{display:flex;gap:10px}.medium-sport-img[data-v-74257266]{height:35px;width:35px;margin:0 auto}.about-text[data-v-74257266]{margin-top:200px}@media screen and (max-width:700px){.about-text[data-v-74257266]{margin-top:0}}.about-text .fa-padding[data-v-74257266]{padding-right:10px}#bike[data-v-795f7f5f]{display:flex;justify-content:center;margin-top:180px;padding:10px}#bike .bike-img[data-v-795f7f5f]{max-width:200px}@media screen and (max-width:700px){#bike[data-v-795f7f5f]{margin-top:10px}#bike .bike-img[data-v-795f7f5f]{max-width:150px}}#about[data-v-bffb50d0]{display:flex;height:100%}#about .container[data-v-bffb50d0]{display:flex;flex-direction:row;justify-content:space-evenly;margin-bottom:20px;width:100%}#about .container .container-sub[data-v-bffb50d0]{min-width:50%;height:100%}#about .container .about-details[data-v-bffb50d0]{width:100%}@media screen and (max-width:1000px){#about[data-v-bffb50d0]{height:auto}#about .container .container-sub[data-v-bffb50d0]{align-items:center}#about .container .container-sub .bike-img[data-v-bffb50d0]{max-width:60%}}@media screen and (max-width:700px){#about .container[data-v-bffb50d0]{flex-direction:column}}.static-map{display:flex;position:relative}.static-map.display-hover{position:absolute;margin-left:20px;margin-top:3px;width:400px;height:225px;z-index:100}.static-map .bg-map-image{background-size:cover;background-position:50%;opacity:.6;height:200px;width:100%}.static-map .map-attribution{top:0;right:0;font-size:11px;position:absolute}.static-map .map-attribution-text{background-color:hsla(0,0%,100%,.7)}.mountains[data-v-96abcc38]{padding-right:5px}.timeline-workout[data-v-96abcc38]{margin-bottom:20px}.timeline-workout .box[data-v-96abcc38]{flex-direction:column;padding:0}.timeline-workout .box .workout-user-date[data-v-96abcc38]{display:flex;justify-content:space-between;align-items:flex-start;padding:5px 10px}.timeline-workout .box .workout-user-date .workout-user[data-v-96abcc38]{display:flex}.timeline-workout .box .workout-user-date .workout-user[data-v-96abcc38] .user-picture img{height:25px;width:25px}.timeline-workout .box .workout-user-date .workout-user[data-v-96abcc38] .user-picture .no-picture{font-size:1.5em}.timeline-workout .box .workout-user-date .workout-user .workout-user-name[data-v-96abcc38]{white-space:nowrap;padding-left:5px}.timeline-workout .box .workout-user-date .workout-date[data-v-96abcc38]{font-size:.85em;font-style:italic;white-space:nowrap}.timeline-workout .box .workout-user-date .workout-title[data-v-96abcc38]{display:block;text-align:center;padding:0 10px}@media screen and (max-width:500px){.timeline-workout .box .workout-user-date .workout-title[data-v-96abcc38]{display:none}}.timeline-workout .box .workout-map[data-v-96abcc38]{background-color:var(--workout-no-map-bg-color);height:150px}.timeline-workout .box .workout-map .no-map[data-v-96abcc38]{line-height:150px}.timeline-workout .box .workout-map[data-v-96abcc38] .bg-map-image{height:150px}.timeline-workout .box .workout-data[data-v-96abcc38]{display:flex;padding:5px;font-size:.9em}.timeline-workout .box .workout-data .sport-img[data-v-96abcc38]{height:25px;width:25px}.timeline-workout .box .workout-data .data[data-v-96abcc38],.timeline-workout .box .workout-data .img[data-v-96abcc38]{display:flex;align-items:center}.timeline-workout .box .workout-data .data .data-values[data-v-96abcc38],.timeline-workout .box .workout-data .img .data-values[data-v-96abcc38]{display:flex;flex-wrap:wrap}.timeline-workout .box .workout-data .img[data-v-96abcc38]{justify-content:flex-end;width:10%}.timeline-workout .box .workout-data .data[data-v-96abcc38]{justify-content:center;width:22%}@media screen and (max-width:500px){.timeline-workout .box .workout-data .img[data-v-96abcc38]{justify-content:center;width:20%}.timeline-workout .box .workout-data .data[data-v-96abcc38]{justify-content:center;width:40%}.timeline-workout .box .workout-data .altitude[data-v-96abcc38],.timeline-workout .box .workout-data .elevation[data-v-96abcc38]{display:none}}.timeline-workout .box .workout-data.without-gpx .data[data-v-96abcc38],.timeline-workout .box .workout-data.without-gpx .img[data-v-96abcc38]{justify-content:center;width:33%}.timeline-workout .box .workout-data[data-v-96abcc38],.timeline-workout .box .workout-map[data-v-96abcc38]{cursor:pointer}.timeline-workout .box .no-cursor[data-v-96abcc38]{cursor:default}.timeline-workout .box .fa[data-v-96abcc38]{padding-right:10px}.no-workouts[data-v-4b4d15fb]{display:flex;justify-content:center}#timeline[data-v-35567bf2]{margin-bottom:20px}#timeline .more-workouts[data-v-35567bf2]{display:flex;justify-content:center}.calendar-workout{display:flex;padding:1px;cursor:pointer}.calendar-workout .sport-img{width:18px;height:18px}.calendar-workout sup{position:relative;top:-8px;left:-3px;width:2px}.calendar-workout sup .custom-fa-small{font-size:.7em}@media screen and (max-width:700px){.calendar-workout .sport-img{padding:3px;width:20px;height:20px}.calendar-workout sup .custom-fa-small{font-size:.6em}}.calendar-workouts-chart[data-v-52d4310a]{display:flex}.calendar-workouts-chart .workouts-chart[data-v-52d4310a]{position:relative}.calendar-workouts-chart .workouts-chart .workouts-count[data-v-52d4310a]{display:flex;justify-content:center;position:absolute;top:4px;left:6px;width:20px;font-size:1.1em;font-weight:700}@media screen and (max-width:700px){.calendar-workouts-chart .workouts-chart .workouts-count[data-v-52d4310a]{top:16px;left:6px}.calendar-workouts-chart .workouts-chart[data-v-52d4310a] .donut-chart{padding-top:12px}.calendar-workouts-chart .workouts-chart[data-v-52d4310a] .donut-chart svg g circle{stroke-width:2;stroke-opacity:.8}}.calendar-workouts-chart .workouts-pane[data-v-52d4310a]{display:flex;padding-left:40px}.calendar-workouts-chart .workouts-pane .more-workouts[data-v-52d4310a]{background:#f5f5f5;border-radius:4px;box-shadow:0 4px 8px 0 rgba(0,0,0,.2),0 6px 20px 0 rgba(0,0,0,.19);position:absolute;top:52px;left:0;min-width:60px;margin-bottom:20px;padding:10px 10px;display:flex;flex-wrap:wrap;z-index:1000}@media screen and (max-width:700px){.calendar-workouts-chart .workouts-pane .more-workouts[data-v-52d4310a]{min-width:70px}}.calendar-workouts-chart .workouts-pane .more-workouts .calendar-more[data-v-52d4310a]{position:absolute;font-size:.9em;top:5px;right:5px}.calendar-workouts .desktop-display{display:flex}.calendar-workouts .mobile-display{display:none}.calendar-workouts .workouts-display{display:flex;flex-wrap:wrap;position:relative;margin:0 10px 0 0}.calendar-workouts .donut-display{display:flex;height:34px;width:34px}@media screen and (max-width:700px){.calendar-workouts .desktop-display{display:none}.calendar-workouts .mobile-display{display:flex}}.calendar-cells{display:flex;flex-direction:column;width:100%}.calendar-cells .calendar-row{display:flex;flex-wrap:wrap;border-top:solid 1px var(--calendar-border-color)}.calendar-cells .calendar-row .calendar-cell{border-right:solid 1px var(--calendar-border-color);height:40px;flex-grow:1;flex-basis:8%;padding:5px 10px 5px 5px;width:8%;position:relative}.calendar-cells .calendar-row .calendar-cell .calendar-cell-day{position:absolute;font-size:.8em;line-height:1;top:.5em;right:.5em;font-weight:700}.calendar-cells .calendar-row .calendar-cell:last-child{border-right:0}@media screen and (max-width:700px){.calendar-cells .calendar-row .calendar-cell:last-child .calendar-workouts .more-workouts{left:-45px}}.calendar-cells .calendar-row .disabled-cell{color:var(--app-color-light)}.calendar-cells .calendar-row .week-end{background:var(--calendar-week-end-color)}.calendar-cells .calendar-row .today{background:var(--calendar-today-color)}@media screen and (max-width:700px){.calendar-cells .calendar-row:last-child .calendar-workouts .more-workouts{top:inherit;bottom:20px}}.calendar-days{display:flex;flex-direction:row;border-top:solid 1px var(--calendar-border-color)}.calendar-days .calendar-day{flex-grow:1;padding:5px;text-align:center;text-transform:uppercase;color:var(--app-color-light)}.calendar-header{display:flex;flex-direction:row}.calendar-header .calendar-arrow,.calendar-header .calendar-month{flex-grow:1;padding:10px}.calendar-header .calendar-arrow-left{text-align:left;cursor:pointer}.calendar-header .calendar-arrow-right{text-align:right;cursor:pointer}.calendar-header .calendar-month{font-weight:700;text-align:center;text-transform:uppercase}#user-calendar .calendar-card,#user-calendar .calendar-card .card-content{padding:0}.start-chart .chart-radio[data-v-d5e9b348]{display:flex;justify-content:space-between;flex-wrap:wrap;padding:10px}.start-chart .chart-radio label[data-v-d5e9b348]{font-size:.85em;font-weight:400}@media screen and (max-width:700px){.start-chart .chart-radio label[data-v-d5e9b348]{padding-bottom:10px}}.user-month-stats[data-v-1bcddc12] .card-content{padding:10px}.records-card[data-v-8d17c606]{width:100%;padding-bottom:3px}.records-card[data-v-8d17c606] .card{font-size:.9em}.records-card[data-v-8d17c606] .card .card-title{display:flex;font-size:.9em}.records-card[data-v-8d17c606] .card .card-title .sport-img{padding-right:10px;height:20px;width:20px}.records-card[data-v-8d17c606] .card .card-content{font-size:.9em;padding:10px}.records-card[data-v-8d17c606] .card .card-content .record{display:flex;align-items:center;justify-content:space-between}.records-card[data-v-8d17c606] .card .card-content .record span{padding:2px}.records-card[data-v-8d17c606] .card .card-content .record .record-type{flex-grow:1}.records-card[data-v-8d17c606] .card .card-content .record .record-value{font-weight:700;white-space:nowrap;padding-right:10px}.records-card[data-v-8d17c606] .card .card-content .record .record-date{white-space:nowrap;min-width:30%;text-align:right}@media screen and (max-width:1000px){.records-card[data-v-8d17c606] .card,.records-card[data-v-8d17c606] .card .card-title{font-size:1em}.records-card[data-v-8d17c606] .card .card-title .sport-img{height:22px;width:22px}}.user-records .no-records[data-v-f0c85cb8]{border:solid 1px var(--card-border-color);border-radius:4px;padding:10px;margin:10px}#user-stats{display:flex;flex:1 0 25%;justify-content:space-around;flex-wrap:wrap}#dashboard .dashboard-container[data-v-4c0893c1]{display:flex;flex-direction:row}#dashboard .dashboard-container .dashboard-sub-container[data-v-4c0893c1]{display:flex;flex-direction:column}#dashboard .dashboard-container .left-container[data-v-4c0893c1]{width:32%}#dashboard .dashboard-container .right-container[data-v-4c0893c1]{width:68%}#dashboard .mobile-menu[data-v-4c0893c1]{display:none}@media screen and (max-width:1000px){#dashboard[data-v-4c0893c1]{padding-bottom:60px}#dashboard .dashboard-container[data-v-4c0893c1]{display:flex;flex-direction:column}#dashboard .dashboard-container .left-container[data-v-4c0893c1],#dashboard .dashboard-container .right-container[data-v-4c0893c1]{width:100%}#dashboard .mobile-menu[data-v-4c0893c1]{display:flex}#dashboard .mobile-menu .box[data-v-4c0893c1]{display:flex;justify-content:space-between;padding:0;width:100%}#dashboard .mobile-menu .box .mobile-menu-item[data-v-4c0893c1]{display:flex;justify-content:space-around;border:none;border-radius:4px;box-shadow:none;font-size:.95em;padding:10px;width:25%}#dashboard .mobile-menu .box .mobile-menu-item .fa-trophy[data-v-4c0893c1]{color:var(--app-color)}#dashboard .mobile-menu .box .mobile-menu-item.is-selected[data-v-4c0893c1]{color:var(--mobile-menu-selected-color);background-color:var(--mobile-menu-selected-bgcolor)}#dashboard .mobile-menu .box .mobile-menu-item.is-selected .fa-trophy[data-v-4c0893c1]{color:var(--mobile-menu-selected-color)}#dashboard .is-hidden[data-v-4c0893c1]{display:none}}#error[data-v-b60bfa80]{display:flex;align-items:center;justify-content:center;height:75vh;text-align:center}#error .error-content[data-v-b60bfa80]{margin-top:50px}#error .error-content h1[data-v-b60bfa80]{font-size:6em;text-shadow:4px 4px 0 var(--app-shadow-color)}#error .error-content p[data-v-b60bfa80]{font-size:1.2em;margin:30px 0}[data-v-b3c885de]:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#d6dde3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--success-background-color:#d9ecd9;--success-color:#306430;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--disabled-sport-color:#616161;--scroll-button-bg-color:hsla(0,0%,100%,.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color));--password-bg-color:#d7dadf;--password-color-weak:#e46d6e;--password-color-medium:#f8bc4a;--password-color-good:#acc578;--password-color-strong:#57c255}#user-auth-form[data-v-b3c885de]{display:flex}#user-auth-form #user-form[data-v-b3c885de]{width:60%}#user-auth-form #user-form .account[data-v-b3c885de]{font-size:.9em;padding-left:10px}#user-auth-form #user-form .links[data-v-b3c885de]{font-size:.9em;font-style:italic;padding:0 10px}#user-auth-form #user-form button[data-v-b3c885de]{margin:10px;border:solid 1px var(--app-color)}#user-auth-form #user-form button[data-v-b3c885de]:disabled{border-color:var(--disabled-color)}#user-auth-form #user-form .success-message[data-v-b3c885de]{margin:10px}@media screen and (max-width:1000px){#user-auth-form[data-v-b3c885de]{margin-bottom:50px}#user-auth-form #user-form[data-v-b3c885de]{width:100%}}.user-form[data-v-b3c885de]{margin-top:200px}@media screen and (max-width:700px){.user-form[data-v-b3c885de]{margin-top:10px}}#loginOrRegister[data-v-58043acb]{display:flex}#loginOrRegister .container[data-v-58043acb]{display:flex;flex-direction:row;justify-content:space-evenly;margin-bottom:20px;width:100%}#loginOrRegister .container .container-sub[data-v-58043acb]{min-width:50%;height:100%}@media screen and (max-width:1000px){#loginOrRegister[data-v-58043acb]{height:auto}#loginOrRegister .container .container-sub[data-v-58043acb]{align-items:center}#loginOrRegister .container .container-sub .bike-img[data-v-58043acb]{max-width:60%}}@media screen and (max-width:700px){#loginOrRegister .container[data-v-58043acb]{flex-direction:column}}.alert-message[data-v-69d7e4ff]{background:var(--alert-background-color);color:var(--alert-color);border-radius:4px;margin:10px;padding:10px}.custom-textarea[data-v-8cf5cc64]{display:flex;flex-direction:column}.custom-textarea .remaining-chars[data-v-8cf5cc64]{font-size:.8em;font-style:italic}.strong[data-v-f46ff1d6]{font-weight:700}.dropdown-list[data-v-2d3b4eac]{list-style-type:none;background-color:#fff;padding:0;margin-top:5px;margin-left:-20px!important;position:absolute;text-align:left;border:1px solid #d3d3d3;box-shadow:2px 2px 5px #d3d3d3;width:auto!important}.dropdown-list li[data-v-2d3b4eac]{padding-top:5px;padding-right:5px}.dropdown-list li[data-v-2d3b4eac]:last-child{padding-bottom:5px}.dropdown-item[data-v-2d3b4eac]{cursor:default}.dropdown-item.selected[data-v-2d3b4eac]{font-weight:700}.dropdown-item.selected[data-v-2d3b4eac]:after{content:" ✔"}.error-message[data-v-2659a79a]{background:var(--error-background-color);color:var(--error-color);border-radius:4px;margin:10px;padding:10px}.loader[data-v-4c9921ee]{animation:spin-4c9921ee 2s linear infinite;border:14px solid var(--app-loading-color);border-top:14px solid var(--app-loading-top-color);border-radius:50%;height:60px;margin-left:41%;width:60px}@keyframes spin-4c9921ee{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}#modal[data-v-e8fcfaba]{position:fixed;top:0;bottom:0;left:0;right:0;background-color:var(--modal-background-color);padding:10px;z-index:1240}#modal .custom-modal[data-v-e8fcfaba]{background-color:var(--app-background-color);border-radius:4px;max-width:500px;margin:25% auto;z-index:1250}@media screen and (max-width:1000px){#modal .custom-modal[data-v-e8fcfaba]{margin:15% auto;width:100%}}@media screen and (max-width:700px){#modal .custom-modal[data-v-e8fcfaba]{margin:50% 0;width:100%}}#modal .custom-modal[data-v-e8fcfaba] .card{border:0;margin:0}#modal .custom-modal[data-v-e8fcfaba] .card .card-content{display:flex;flex-direction:column}#modal .custom-modal[data-v-e8fcfaba] .card .card-content .modal-message{padding:10px}#modal .custom-modal[data-v-e8fcfaba] .card .card-content .modal-message span{font-weight:700}#modal .custom-modal[data-v-e8fcfaba] .card .card-content .modal-buttons{display:flex;justify-content:flex-end}#modal .custom-modal[data-v-e8fcfaba] .card .card-content .modal-buttons button{margin:5px} \ No newline at end of file diff --git a/fittrackee/dist/static/css/workouts.babda0d5.css b/fittrackee/dist/static/css/workouts.9970f29e.css similarity index 68% rename from fittrackee/dist/static/css/workouts.babda0d5.css rename to fittrackee/dist/static/css/workouts.9970f29e.css index ed376cf4..28fe62ee 100644 --- a/fittrackee/dist/static/css/workouts.babda0d5.css +++ b/fittrackee/dist/static/css/workouts.9970f29e.css @@ -1 +1 @@ -.workouts-filters .form[data-v-6c38593a]{display:flex;flex-direction:column;padding-top:0}.workouts-filters .form .form-items-group[data-v-6c38593a]{display:flex;flex-direction:column;padding:5px}.workouts-filters .form .form-items-group .form-item[data-v-6c38593a]{display:flex;flex-direction:column}.workouts-filters .form .form-items-group .form-item .form-inputs-group[data-v-6c38593a]{display:flex;flex-direction:row;justify-content:space-around;align-items:center}.workouts-filters .form .form-items-group .form-item .form-inputs-group input[data-v-6c38593a]{width:34%}.workouts-filters .form .form-items-group .form-item .form-inputs-group span[data-v-6c38593a]{padding:5px}.workouts-filters .form .form-items-group .form-item input[data-v-6c38593a]{height:16px}.workouts-filters .form .form-items-group .form-item select[data-v-6c38593a]{height:36px;padding:0 5px}.workouts-filters .form-button[data-v-6c38593a]{display:flex;justify-content:center;flex-wrap:wrap;margin:5px}.workouts-filters .form-button button[data-v-6c38593a]{margin-top:10px;width:100%}@media screen and (max-width:1000px){.workouts-filters .form[data-v-6c38593a]{flex-direction:row;padding-top:5px}.workouts-filters .form .form-items-group[data-v-6c38593a]{padding:0 5px;height:100%}.workouts-filters .form .form-items-group .form-item label[data-v-6c38593a]{font-size:.9em}.workouts-filters .form .form-items-group .form-item .form-inputs-group[data-v-6c38593a]{flex-direction:column;justify-content:normal;padding:0}.workouts-filters .form .form-items-group .form-item .form-inputs-group input[data-v-6c38593a]{width:75%}.workouts-filters .form-button[data-v-6c38593a]{flex-wrap:nowrap}.workouts-filters .form-button button[data-v-6c38593a]{margin:10px 5px;width:100%}}@media screen and (max-width:700px){.workouts-filters .form[data-v-6c38593a]{flex-direction:column;padding-top:0}.workouts-filters .form .form-items-group[data-v-6c38593a]{padding:5px}.workouts-filters .form .form-items-group .form-item label[data-v-6c38593a]{font-size:1em}.workouts-filters .form .form-items-group .form-item .form-inputs-group[data-v-6c38593a]{flex-direction:row;justify-content:space-around;align-items:center}.workouts-filters .form .form-items-group .form-item .form-inputs-group input[data-v-6c38593a]{width:50%}.workouts-filters .form .form-items-group .form-item .form-inputs-group span[data-v-6c38593a]{padding:5px}.workouts-filters .form-button[data-v-6c38593a]{flex-wrap:nowrap}.workouts-filters .form-button button[data-v-6c38593a]{margin:10px 5px}}@media screen and (max-width:500px){.workouts-filters .form-button[data-v-6c38593a]{flex-wrap:wrap}}.workouts-list[data-v-0f8ea7b0]{display:flex;flex-direction:column;margin-bottom:50px;width:100%}.workouts-list .box[data-v-0f8ea7b0]{padding:10px 15px}@media screen and (max-width:700px){.workouts-list .box.empty-table[data-v-0f8ea7b0]{display:none}}.workouts-list .box .total[data-v-0f8ea7b0]{display:flex;gap:5px}.workouts-list .box .total .total-label[data-v-0f8ea7b0]{font-weight:700}.workouts-list .box .top-pagination[data-v-0f8ea7b0]{display:none}@media screen and (max-width:700px){.workouts-list .box .top-pagination[data-v-0f8ea7b0]{display:flex}.workouts-list .box[data-v-0f8ea7b0] .pagination-center ul{margin-top:0}}.workouts-list .box .workouts-table .smaller th[data-v-0f8ea7b0]{font-size:.95em;padding:10px 0;max-width:100px}.workouts-list .box .workouts-table td[data-v-0f8ea7b0]{text-align:right}.workouts-list .box .workouts-table .sport-col[data-v-0f8ea7b0]{padding:0}.workouts-list .box .workouts-table .workout-title[data-v-0f8ea7b0]{text-align:left;width:100px;position:relative}.workouts-list .box .workouts-table .workout-title .fa-map-o[data-v-0f8ea7b0]{font-size:.75em;padding-right:5px}.workouts-list .box .workouts-table .workout-title .nav-item[data-v-0f8ea7b0]{white-space:nowrap}.workouts-list .box .workouts-table .workout-title .nav-item .title[data-v-0f8ea7b0]{word-break:break-word;white-space:normal}.workouts-list .box .workouts-table .workout-title .static-map[data-v-0f8ea7b0]{display:none;box-shadow:3px 3px 3px 1px #d3d3d3}.workouts-list .box .workouts-table .workout-title:hover .static-map[data-v-0f8ea7b0]{display:block}.workouts-list .box .workouts-table .sport-img[data-v-0f8ea7b0]{height:20px;width:20px}.workouts-list .box .workouts-table .workout-date[data-v-0f8ea7b0]{max-width:60px;text-align:left}@media screen and (max-width:700px){.workouts-list .box .workouts-table .workout-date[data-v-0f8ea7b0],.workouts-list .box .workouts-table .workout-title[data-v-0f8ea7b0],.workouts-list .box .workouts-table td[data-v-0f8ea7b0]{text-align:center}.workouts-list .box .workouts-table .sport-col[data-v-0f8ea7b0]{display:flex;justify-content:center;padding:10px}.workouts-list .box .workouts-table .workout-date[data-v-0f8ea7b0]{max-width:none}.workouts-list .box .workouts-table .workout-title[data-v-0f8ea7b0]{max-width:none;width:100%}.workouts-list .box .workouts-table .workout-title:hover .static-map[data-v-0f8ea7b0]{display:none}}.workouts-list .more-workouts[data-v-0f8ea7b0]{display:flex;justify-content:center;padding:10px}#workouts .workouts-container[data-v-57ec0168]{display:flex;flex-direction:row}@media screen and (max-width:1000px){#workouts .workouts-container[data-v-57ec0168]{flex-direction:column}}#workouts .workouts-container .filters-container[data-v-57ec0168],#workouts .workouts-container .list-container[data-v-57ec0168]{display:flex;flex-direction:column}#workouts .workouts-container .filters-container[data-v-57ec0168]{width:25%}@media screen and (max-width:1000px){#workouts .workouts-container .filters-container[data-v-57ec0168]{width:100%}}@media screen and (max-width:1000px)and (max-width:700px){#workouts .workouts-container .filters-container.hidden[data-v-57ec0168]{display:none}}#workouts .workouts-container .display-filters[data-v-57ec0168]{display:none;font-size:.8em;padding:0 20px}#workouts .workouts-container .display-filters span[data-v-57ec0168]{cursor:pointer;font-weight:700;padding-left:5px}#workouts .workouts-container .display-filters .fa[data-v-57ec0168]{cursor:pointer}@media screen and (max-width:700px){#workouts .workouts-container .display-filters[data-v-57ec0168]{display:flex;justify-content:flex-end;align-items:center}}#workouts .workouts-container .list-container[data-v-57ec0168]{width:75%}@media screen and (max-width:1000px){#workouts .workouts-container .list-container[data-v-57ec0168]{width:100%}}#workout-card-title[data-v-4d9f9a8a]{display:flex;justify-content:space-between;align-items:center}#workout-card-title .workout-arrow[data-v-4d9f9a8a]{cursor:pointer}#workout-card-title .workout-arrow.inactive[data-v-4d9f9a8a]{color:var(--disabled-color);cursor:default}#workout-card-title .workout-card-title[data-v-4d9f9a8a]{display:flex;flex-grow:1;align-items:center}#workout-card-title .workout-card-title .sport-img[data-v-4d9f9a8a]{padding:0 10px}#workout-card-title .workout-card-title .sport-img[data-v-4d9f9a8a] svg{height:35px;width:35px}#workout-card-title .workout-card-title .workout-title span[data-v-4d9f9a8a]{margin-right:5px}#workout-card-title .workout-card-title .workout-date[data-v-4d9f9a8a]{font-size:.8em;font-weight:400}#workout-card-title .workout-card-title .workout-segment[data-v-4d9f9a8a]{font-weight:400}#workout-card-title .workout-card-title .workout-link[data-v-4d9f9a8a]{padding-left:10px}#workout-card-title .workout-card-title .fa[data-v-4d9f9a8a]{cursor:pointer;padding:0 3px}@media screen and (max-width:700px){#workout-card-title .workout-card-title .fa-download[data-v-4d9f9a8a],#workout-card-title .workout-card-title .fa-edit[data-v-4d9f9a8a],#workout-card-title .workout-card-title .fa-trash[data-v-4d9f9a8a]{padding:0 7px}}.workout-record sup[data-v-1a5282f6]{font-size:75%;line-height:0}.wind[data-v-46a7c31c]{display:flex;justify-content:center}.wind .wind-bearing[data-v-46a7c31c]{padding-left:5px}#workout-weather[data-v-76e9ab62]{padding-top:10px}#workout-weather .weather-img[data-v-76e9ab62]{height:30px;filter:var(--workout-img-color)}#workout-weather .weather-img-small[data-v-76e9ab62]{height:20px}#workout-weather .weather-table[data-v-76e9ab62]{width:100%;text-align:center}#workout-weather .weather-table .weather-th[data-v-76e9ab62]{display:flex;flex-direction:column;text-transform:capitalize}#workout-weather .weather-table tbody[data-v-76e9ab62]{font-size:.8em}#workout-info[data-v-74c5993b]{display:flex;flex-direction:column;padding:10px 20px;width:100%}#workout-info .fa[data-v-74c5993b],#workout-info .mountains[data-v-74c5993b]{padding-right:5px}#workout-info .workout-data[data-v-74c5993b]{padding:5px 0}#workout-info .workout-data .label[data-v-74c5993b]{text-transform:capitalize}#workout-info .workout-data .value[data-v-74c5993b]{font-weight:700;text-transform:lowercase}@media screen and (max-width:700px){#workout-info[data-v-74c5993b]{padding:10px}}.leaflet-image-layer,.leaflet-layer,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-pane,.leaflet-pane>canvas,.leaflet-pane>svg,.leaflet-tile,.leaflet-tile-container,.leaflet-zoom-box{position:absolute;left:0;top:0}.leaflet-container{overflow:hidden}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::-moz-selection{background:transparent}.leaflet-tile::selection{background:transparent}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;-webkit-transform-origin:0 0}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer{max-width:none!important;max-height:none!important;width:auto;padding:0}.leaflet-container.leaflet-touch-zoom{touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:rgba(51,181,229,.4)}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0;box-sizing:border-box;z-index:800}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:800;pointer-events:visiblePainted;pointer-events:auto}.leaflet-bottom,.leaflet-top{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-pan-anim .leaflet-tile,.leaflet-zoom-anim .leaflet-tile{transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-control,.leaflet-popup-pane{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:grabbing}.leaflet-image-layer,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-image-layer.leaflet-interactive,.leaflet-marker-icon.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{background:#ddd;outline-offset:1px}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{border:2px dotted #38f;background:hsla(0,0%,100%,.5)}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:12px;font-size:.75rem;line-height:1.5}.leaflet-bar{box-shadow:0 1px 5px rgba(0,0,0,.65);border-radius:4px}.leaflet-bar a{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:focus,.leaflet-bar a:hover{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px Lucida Console,Monaco,monospace;text-indent:1px}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{box-shadow:0 1px 5px rgba(0,0,0,.4);background:#fff;border-radius:5px}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-scrollbar{overflow-y:scroll;overflow-x:hidden;padding-right:5px}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block;font-size:13px;font-size:1.08333em}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=)}.leaflet-container .leaflet-control-attribution{background:#fff;background:hsla(0,0%,100%,.8);margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{padding:0 5px;color:#333;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:focus,.leaflet-control-attribution a:hover{text-decoration:underline}.leaflet-attribution-flag{display:inline!important;vertical-align:baseline!important;width:1em;height:.6669em}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;white-space:nowrap;overflow:hidden;box-sizing:border-box;background:#fff;background:hsla(0,0%,100%,.5)}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-bar,.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers{box-shadow:none}.leaflet-touch .leaflet-bar,.leaflet-touch .leaflet-control-layers{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.leaflet-popup-content{margin:13px 24px 13px 20px;line-height:1.3;font-size:13px;font-size:1.08333em;min-height:1px}.leaflet-popup-content p{margin:17px 0;margin:1.3em 0}.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-top:-1px;margin-left:-20px;overflow:hidden;pointer-events:none}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;pointer-events:auto;transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;color:#333;box-shadow:0 3px 14px rgba(0,0,0,.4)}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;border:none;text-align:center;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;color:#757575;text-decoration:none;background:transparent}.leaflet-container a.leaflet-popup-close-button:focus,.leaflet-container a.leaflet-popup-close-button:hover{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678,M12=0.70710678,M21=-0.70710678,M22=0.70710678)}.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{position:absolute;padding:6px;background-color:#fff;border:1px solid #fff;border-radius:3px;color:#222;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none;box-shadow:0 1px 3px rgba(0,0,0,.4)}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before,.leaflet-tooltip-top:before{position:absolute;pointer-events:none;border:6px solid transparent;background:transparent;content:""}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px}.leaflet-tooltip-top:before{bottom:0;margin-bottom:-12px;border-top-color:#fff}.leaflet-tooltip-bottom:before{top:0;margin-top:-12px;margin-left:-6px;border-bottom-color:#fff}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{top:50%;margin-top:-6px}.leaflet-tooltip-left:before{right:0;margin-right:-12px;border-left-color:#fff}.leaflet-tooltip-right:before{left:0;margin-left:-12px;border-right-color:#fff}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}#workout-map[data-v-6b490f5d]{padding:10px 0}#workout-map .leaflet-container[data-v-6b490f5d],#workout-map .no-map[data-v-6b490f5d]{height:400px;width:600px}#workout-map .no-map[data-v-6b490f5d]{line-height:400px}#workout-map .map-control[data-v-6b490f5d]{background:#fff;padding:5px 10px;border:2px solid #bfc0ab;border-radius:3px;color:#000}#workout-map[data-v-6b490f5d] .fullscreen{display:flex;align-items:center;z-index:1000}#workout-map[data-v-6b490f5d] .fullscreen .fullscreen-map{height:100%;width:100%}@media screen and (max-width:700px){#workout-map[data-v-6b490f5d]{padding:0}#workout-map .leaflet-container[data-v-6b490f5d]{width:100%;height:300px}#workout-map .no-map[data-v-6b490f5d]{display:none}}.workout-detail[data-v-9fc0bab8]{display:flex}.workout-detail[data-v-9fc0bab8] .card{width:100%}.workout-detail[data-v-9fc0bab8] .card .card-content{display:flex;flex-direction:row}@media screen and (max-width:1000px){.workout-detail[data-v-9fc0bab8] .card .card-content{flex-direction:column}}#workout-chart[data-v-dcea1168] .card .card-title{text-transform:capitalize}#workout-chart[data-v-dcea1168] .card .card-content{display:flex;flex-direction:column}#workout-chart[data-v-dcea1168] .card .card-content .chart-radio{width:100%;display:flex;justify-content:center}#workout-chart[data-v-dcea1168] .card .card-content .chart-radio label{padding:0 10px}#workout-chart[data-v-dcea1168] .card .card-content .chart-info{display:flex;justify-content:space-between;font-size:.85em;font-style:italic}#workout-chart[data-v-dcea1168] .card .card-content #chart-legend{display:flex;justify-content:center}#workout-chart[data-v-dcea1168] .card .card-content #chart-legend ul{display:flex;margin-bottom:0;padding:0}#workout-chart[data-v-dcea1168] .card .card-content #chart-legend ul li{cursor:pointer;display:flex;font-size:.85em;padding:0 5px}#workout-chart[data-v-dcea1168] .card .card-content #chart-legend ul li span{border-radius:5%;border-style:solid;border-width:1.5px;height:10px;margin-top:4px;margin-left:2px;width:20px}@media screen and (max-width:700px){#workout-chart[data-v-dcea1168] .card .card-content{padding:10px 0}#workout-chart[data-v-dcea1168] .card .card-content .chart-info{display:flex;flex-direction:column-reverse}#workout-chart[data-v-dcea1168] .card .card-content .chart-info .elevation-start{padding:10px 15px 0}#workout-chart[data-v-dcea1168] .card .card-content .chart-info .no-data-cleaning{padding:0 20px}}#workout-note[data-v-028ad527] .card-content{font-style:italic;white-space:pre-wrap}#workout-segments[data-v-6b8a27cd] .card .card-title{text-transform:capitalize}#workout-segments[data-v-6b8a27cd] .card .card-content{padding-bottom:0;padding-top:0}#workout-segments[data-v-6b8a27cd] .card .card-content a{font-weight:700}#workout-segments[data-v-6b8a27cd] .card .card-content ul{padding:0 10px;list-style:square}#workout[data-v-53c4e53a]{display:flex}#workout .container[data-v-53c4e53a]{width:100%;padding:0}#workout .container .workout-container[data-v-53c4e53a]{width:100%}#workout .container .workout-loading[data-v-53c4e53a]{height:calc(100vh - 130px);width:100%}#workout .container .workout-loading .loading[data-v-53c4e53a]{display:flex;align-items:center;height:100%}#workout-edition[data-v-886f93f6] .card .card-title{text-align:center;text-transform:uppercase}@media screen and (max-width:1000px){#workout-edition[data-v-886f93f6] .card .card-content{padding:10px 0}}#workout-edition[data-v-886f93f6] .card .card-content #workout-form .form-items{display:flex;flex-direction:column}#workout-edition[data-v-886f93f6] .card .card-content #workout-form .form-items input{height:20px}#workout-edition[data-v-886f93f6] .card .card-content #workout-form .form-items .workout-date-duration{display:flex;flex-direction:row;justify-content:space-between}@media screen and (max-width:1000px){#workout-edition[data-v-886f93f6] .card .card-content #workout-form .form-items .workout-date-duration{flex-direction:column}}#workout-edition[data-v-886f93f6] .card .card-content #workout-form .form-items .form-item{display:flex;flex-direction:column;padding:10px}#workout-edition[data-v-886f93f6] .card .card-content #workout-form .form-items .form-item .workout-date-time{display:flex}#workout-edition[data-v-886f93f6] .card .card-content #workout-form .form-items .form-item .workout-date-time #workout-date{margin-right:10px}#workout-edition[data-v-886f93f6] .card .card-content #workout-form .form-items .form-item .workout-duration{width:25px}#workout-edition[data-v-886f93f6] .card .card-content #workout-form .form-items .form-item-radio{display:flex;justify-content:space-around}#workout-edition[data-v-886f93f6] .card .card-content #workout-form .form-items .form-item-radio label{font-weight:400}@media screen and (max-width:1000px){#workout-edition[data-v-886f93f6] .card .card-content #workout-form .form-items .form-item-radio label{font-size:.9em}}#workout-edition[data-v-886f93f6] .card .card-content #workout-form .form-items .form-item-radio input{margin-top:-2px;vertical-align:middle}#workout-edition[data-v-886f93f6] .card .card-content #workout-form .form-buttons{display:flex;justify-content:flex-end}#workout-edition[data-v-886f93f6] .card .card-content #workout-form .form-buttons button{margin:5px}#workout-edition[data-v-886f93f6] .card .card-content #workout-form .files-help{display:flex;justify-content:space-around;margin-top:10px}#workout-edition[data-v-886f93f6] .card .card-content #workout-form .files-help div{display:flex}@media screen and (max-width:1000px){#workout-edition[data-v-886f93f6] .card .card-content #workout-form .files-help div{flex-direction:column}}#workout-edition[data-v-886f93f6] .card .card-content #workout-form .files-help div ul{margin:0;padding:0 20px}@media screen and (max-width:700px){#workout-edition[data-v-886f93f6]{margin-bottom:0}#workout-edition.center-form[data-v-886f93f6]{margin:50px auto}#workout-edition.with-margin[data-v-886f93f6]{margin-top:0}} \ No newline at end of file +.workouts-filters .form[data-v-6c38593a]{display:flex;flex-direction:column;padding-top:0}.workouts-filters .form .form-items-group[data-v-6c38593a]{display:flex;flex-direction:column;padding:5px}.workouts-filters .form .form-items-group .form-item[data-v-6c38593a]{display:flex;flex-direction:column}.workouts-filters .form .form-items-group .form-item .form-inputs-group[data-v-6c38593a]{display:flex;flex-direction:row;justify-content:space-around;align-items:center}.workouts-filters .form .form-items-group .form-item .form-inputs-group input[data-v-6c38593a]{width:34%}.workouts-filters .form .form-items-group .form-item .form-inputs-group span[data-v-6c38593a]{padding:5px}.workouts-filters .form .form-items-group .form-item input[data-v-6c38593a]{height:16px}.workouts-filters .form .form-items-group .form-item select[data-v-6c38593a]{height:36px;padding:0 5px}.workouts-filters .form-button[data-v-6c38593a]{display:flex;justify-content:center;flex-wrap:wrap;margin:5px}.workouts-filters .form-button button[data-v-6c38593a]{margin-top:10px;width:100%}@media screen and (max-width:1000px){.workouts-filters .form[data-v-6c38593a]{flex-direction:row;padding-top:5px}.workouts-filters .form .form-items-group[data-v-6c38593a]{padding:0 5px;height:100%}.workouts-filters .form .form-items-group .form-item label[data-v-6c38593a]{font-size:.9em}.workouts-filters .form .form-items-group .form-item .form-inputs-group[data-v-6c38593a]{flex-direction:column;justify-content:normal;padding:0}.workouts-filters .form .form-items-group .form-item .form-inputs-group input[data-v-6c38593a]{width:75%}.workouts-filters .form-button[data-v-6c38593a]{flex-wrap:nowrap}.workouts-filters .form-button button[data-v-6c38593a]{margin:10px 5px;width:100%}}@media screen and (max-width:700px){.workouts-filters .form[data-v-6c38593a]{flex-direction:column;padding-top:0}.workouts-filters .form .form-items-group[data-v-6c38593a]{padding:5px}.workouts-filters .form .form-items-group .form-item label[data-v-6c38593a]{font-size:1em}.workouts-filters .form .form-items-group .form-item .form-inputs-group[data-v-6c38593a]{flex-direction:row;justify-content:space-around;align-items:center}.workouts-filters .form .form-items-group .form-item .form-inputs-group input[data-v-6c38593a]{width:50%}.workouts-filters .form .form-items-group .form-item .form-inputs-group span[data-v-6c38593a]{padding:5px}.workouts-filters .form-button[data-v-6c38593a]{flex-wrap:nowrap}.workouts-filters .form-button button[data-v-6c38593a]{margin:10px 5px}}@media screen and (max-width:500px){.workouts-filters .form-button[data-v-6c38593a]{flex-wrap:wrap}}.workouts-list[data-v-0f8ea7b0]{display:flex;flex-direction:column;margin-bottom:50px;width:100%}.workouts-list .box[data-v-0f8ea7b0]{padding:10px 15px}@media screen and (max-width:700px){.workouts-list .box.empty-table[data-v-0f8ea7b0]{display:none}}.workouts-list .box .total[data-v-0f8ea7b0]{display:flex;gap:5px}.workouts-list .box .total .total-label[data-v-0f8ea7b0]{font-weight:700}.workouts-list .box .top-pagination[data-v-0f8ea7b0]{display:none}@media screen and (max-width:700px){.workouts-list .box .top-pagination[data-v-0f8ea7b0]{display:flex}.workouts-list .box[data-v-0f8ea7b0] .pagination-center ul{margin-top:0}}.workouts-list .box .workouts-table .smaller th[data-v-0f8ea7b0]{font-size:.95em;padding:10px 0;max-width:100px}.workouts-list .box .workouts-table td[data-v-0f8ea7b0]{text-align:right}.workouts-list .box .workouts-table .sport-col[data-v-0f8ea7b0]{padding:0}.workouts-list .box .workouts-table .workout-title[data-v-0f8ea7b0]{text-align:left;width:100px;position:relative}.workouts-list .box .workouts-table .workout-title .fa-map-o[data-v-0f8ea7b0]{font-size:.75em;padding-right:5px}.workouts-list .box .workouts-table .workout-title .nav-item[data-v-0f8ea7b0]{white-space:nowrap}.workouts-list .box .workouts-table .workout-title .nav-item .title[data-v-0f8ea7b0]{word-break:break-word;white-space:normal}.workouts-list .box .workouts-table .workout-title .static-map[data-v-0f8ea7b0]{display:none;box-shadow:3px 3px 3px 1px #d3d3d3}.workouts-list .box .workouts-table .workout-title:hover .static-map[data-v-0f8ea7b0]{display:block}.workouts-list .box .workouts-table .sport-img[data-v-0f8ea7b0]{height:20px;width:20px}.workouts-list .box .workouts-table .workout-date[data-v-0f8ea7b0]{max-width:60px;text-align:left}@media screen and (max-width:700px){.workouts-list .box .workouts-table .workout-date[data-v-0f8ea7b0],.workouts-list .box .workouts-table .workout-title[data-v-0f8ea7b0],.workouts-list .box .workouts-table td[data-v-0f8ea7b0]{text-align:center}.workouts-list .box .workouts-table .sport-col[data-v-0f8ea7b0]{display:flex;justify-content:center;padding:10px}.workouts-list .box .workouts-table .workout-date[data-v-0f8ea7b0]{max-width:none}.workouts-list .box .workouts-table .workout-title[data-v-0f8ea7b0]{max-width:none;width:100%}.workouts-list .box .workouts-table .workout-title:hover .static-map[data-v-0f8ea7b0]{display:none}}.workouts-list .more-workouts[data-v-0f8ea7b0]{display:flex;justify-content:center;padding:10px}#workouts .workouts-container[data-v-57ec0168]{display:flex;flex-direction:row}@media screen and (max-width:1000px){#workouts .workouts-container[data-v-57ec0168]{flex-direction:column}}#workouts .workouts-container .filters-container[data-v-57ec0168],#workouts .workouts-container .list-container[data-v-57ec0168]{display:flex;flex-direction:column}#workouts .workouts-container .filters-container[data-v-57ec0168]{width:25%}@media screen and (max-width:1000px){#workouts .workouts-container .filters-container[data-v-57ec0168]{width:100%}}@media screen and (max-width:1000px)and (max-width:700px){#workouts .workouts-container .filters-container.hidden[data-v-57ec0168]{display:none}}#workouts .workouts-container .display-filters[data-v-57ec0168]{display:none;font-size:.8em;padding:0 20px}#workouts .workouts-container .display-filters span[data-v-57ec0168]{cursor:pointer;font-weight:700;padding-left:5px}#workouts .workouts-container .display-filters .fa[data-v-57ec0168]{cursor:pointer}@media screen and (max-width:700px){#workouts .workouts-container .display-filters[data-v-57ec0168]{display:flex;justify-content:flex-end;align-items:center}}#workouts .workouts-container .list-container[data-v-57ec0168]{width:75%}@media screen and (max-width:1000px){#workouts .workouts-container .list-container[data-v-57ec0168]{width:100%}}#workout-card-title[data-v-4d9f9a8a]{display:flex;justify-content:space-between;align-items:center}#workout-card-title .workout-arrow[data-v-4d9f9a8a]{cursor:pointer}#workout-card-title .workout-arrow.inactive[data-v-4d9f9a8a]{color:var(--disabled-color);cursor:default}#workout-card-title .workout-card-title[data-v-4d9f9a8a]{display:flex;flex-grow:1;align-items:center}#workout-card-title .workout-card-title .sport-img[data-v-4d9f9a8a]{padding:0 10px}#workout-card-title .workout-card-title .sport-img[data-v-4d9f9a8a] svg{height:35px;width:35px}#workout-card-title .workout-card-title .workout-title span[data-v-4d9f9a8a]{margin-right:5px}#workout-card-title .workout-card-title .workout-date[data-v-4d9f9a8a]{font-size:.8em;font-weight:400}#workout-card-title .workout-card-title .workout-segment[data-v-4d9f9a8a]{font-weight:400}#workout-card-title .workout-card-title .workout-link[data-v-4d9f9a8a]{padding-left:10px}#workout-card-title .workout-card-title .fa[data-v-4d9f9a8a]{cursor:pointer;padding:0 3px}@media screen and (max-width:700px){#workout-card-title .workout-card-title .fa-download[data-v-4d9f9a8a],#workout-card-title .workout-card-title .fa-edit[data-v-4d9f9a8a],#workout-card-title .workout-card-title .fa-trash[data-v-4d9f9a8a]{padding:0 7px}}.workout-record sup[data-v-1a5282f6]{font-size:75%;line-height:0}.wind[data-v-46a7c31c]{display:flex;justify-content:center}.wind .wind-bearing[data-v-46a7c31c]{padding-left:5px}#workout-weather[data-v-76e9ab62]{padding-top:10px}#workout-weather .weather-img[data-v-76e9ab62]{height:30px;filter:var(--workout-img-color)}#workout-weather .weather-img-small[data-v-76e9ab62]{height:20px}#workout-weather .weather-table[data-v-76e9ab62]{width:100%;text-align:center}#workout-weather .weather-table .weather-th[data-v-76e9ab62]{display:flex;flex-direction:column;text-transform:capitalize}#workout-weather .weather-table tbody[data-v-76e9ab62]{font-size:.8em}#workout-info[data-v-74c5993b]{display:flex;flex-direction:column;padding:10px 20px;width:100%}#workout-info .fa[data-v-74c5993b],#workout-info .mountains[data-v-74c5993b]{padding-right:5px}#workout-info .workout-data[data-v-74c5993b]{padding:5px 0}#workout-info .workout-data .label[data-v-74c5993b]{text-transform:capitalize}#workout-info .workout-data .value[data-v-74c5993b]{font-weight:700;text-transform:lowercase}@media screen and (max-width:700px){#workout-info[data-v-74c5993b]{padding:10px}}.leaflet-image-layer,.leaflet-layer,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-pane,.leaflet-pane>canvas,.leaflet-pane>svg,.leaflet-tile,.leaflet-tile-container,.leaflet-zoom-box{position:absolute;left:0;top:0}.leaflet-container{overflow:hidden}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::-moz-selection{background:transparent}.leaflet-tile::selection{background:transparent}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;-webkit-transform-origin:0 0}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer{max-width:none!important;max-height:none!important;width:auto;padding:0}.leaflet-container.leaflet-touch-zoom{touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:rgba(51,181,229,.4)}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0;box-sizing:border-box;z-index:800}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:800;pointer-events:visiblePainted;pointer-events:auto}.leaflet-bottom,.leaflet-top{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-pan-anim .leaflet-tile,.leaflet-zoom-anim .leaflet-tile{transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-control,.leaflet-popup-pane{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:grabbing}.leaflet-image-layer,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-image-layer.leaflet-interactive,.leaflet-marker-icon.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{background:#ddd;outline-offset:1px}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{border:2px dotted #38f;background:hsla(0,0%,100%,.5)}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:12px;font-size:.75rem;line-height:1.5}.leaflet-bar{box-shadow:0 1px 5px rgba(0,0,0,.65);border-radius:4px}.leaflet-bar a{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:focus,.leaflet-bar a:hover{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px Lucida Console,Monaco,monospace;text-indent:1px}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{box-shadow:0 1px 5px rgba(0,0,0,.4);background:#fff;border-radius:5px}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-scrollbar{overflow-y:scroll;overflow-x:hidden;padding-right:5px}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block;font-size:13px;font-size:1.08333em}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=)}.leaflet-container .leaflet-control-attribution{background:#fff;background:hsla(0,0%,100%,.8);margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{padding:0 5px;color:#333;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:focus,.leaflet-control-attribution a:hover{text-decoration:underline}.leaflet-attribution-flag{display:inline!important;vertical-align:baseline!important;width:1em;height:.6669em}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;white-space:nowrap;box-sizing:border-box;background:hsla(0,0%,100%,.8);text-shadow:1px 1px #fff}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-bar,.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers{box-shadow:none}.leaflet-touch .leaflet-bar,.leaflet-touch .leaflet-control-layers{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.leaflet-popup-content{margin:13px 24px 13px 20px;line-height:1.3;font-size:13px;font-size:1.08333em;min-height:1px}.leaflet-popup-content p{margin:17px 0;margin:1.3em 0}.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-top:-1px;margin-left:-20px;overflow:hidden;pointer-events:none}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;pointer-events:auto;transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;color:#333;box-shadow:0 3px 14px rgba(0,0,0,.4)}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;border:none;text-align:center;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;color:#757575;text-decoration:none;background:transparent}.leaflet-container a.leaflet-popup-close-button:focus,.leaflet-container a.leaflet-popup-close-button:hover{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678,M12=0.70710678,M21=-0.70710678,M22=0.70710678)}.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{position:absolute;padding:6px;background-color:#fff;border:1px solid #fff;border-radius:3px;color:#222;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none;box-shadow:0 1px 3px rgba(0,0,0,.4)}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before,.leaflet-tooltip-top:before{position:absolute;pointer-events:none;border:6px solid transparent;background:transparent;content:""}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px}.leaflet-tooltip-top:before{bottom:0;margin-bottom:-12px;border-top-color:#fff}.leaflet-tooltip-bottom:before{top:0;margin-top:-12px;margin-left:-6px;border-bottom-color:#fff}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{top:50%;margin-top:-6px}.leaflet-tooltip-left:before{right:0;margin-right:-12px;border-left-color:#fff}.leaflet-tooltip-right:before{left:0;margin-left:-12px;border-right-color:#fff}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}#workout-map[data-v-6b490f5d]{padding:10px 0}#workout-map .leaflet-container[data-v-6b490f5d],#workout-map .no-map[data-v-6b490f5d]{height:400px;width:600px}#workout-map .no-map[data-v-6b490f5d]{line-height:400px}#workout-map .map-control[data-v-6b490f5d]{background:#fff;padding:5px 10px;border:2px solid #bfc0ab;border-radius:3px;color:#000}#workout-map[data-v-6b490f5d] .fullscreen{display:flex;align-items:center;z-index:1000}#workout-map[data-v-6b490f5d] .fullscreen .fullscreen-map{height:100%;width:100%}@media screen and (max-width:700px){#workout-map[data-v-6b490f5d]{padding:0}#workout-map .leaflet-container[data-v-6b490f5d]{width:100%;height:300px}#workout-map .no-map[data-v-6b490f5d]{display:none}}.workout-detail[data-v-9fc0bab8]{display:flex}.workout-detail[data-v-9fc0bab8] .card{width:100%}.workout-detail[data-v-9fc0bab8] .card .card-content{display:flex;flex-direction:row}@media screen and (max-width:1000px){.workout-detail[data-v-9fc0bab8] .card .card-content{flex-direction:column}}#workout-chart[data-v-0b68c436] .card .card-title{text-transform:capitalize}#workout-chart[data-v-0b68c436] .card .card-content{display:flex;flex-direction:column}#workout-chart[data-v-0b68c436] .card .card-content .chart-radio{width:100%;display:flex;justify-content:center}#workout-chart[data-v-0b68c436] .card .card-content .chart-radio label{padding:0 10px}#workout-chart[data-v-0b68c436] .card .card-content .chart-info{display:flex;justify-content:space-between;font-size:.85em;font-style:italic}#workout-chart[data-v-0b68c436] .card .card-content #chart-legend{display:flex;justify-content:center}#workout-chart[data-v-0b68c436] .card .card-content #chart-legend ul{display:flex;margin-bottom:0;padding:0}#workout-chart[data-v-0b68c436] .card .card-content #chart-legend ul li{cursor:pointer;display:flex;font-size:.85em;padding:0 5px}#workout-chart[data-v-0b68c436] .card .card-content #chart-legend ul li span{border-radius:5%;border-style:solid;border-width:1.5px;height:10px;margin-top:4px;margin-left:2px;width:20px}@media screen and (max-width:700px){#workout-chart[data-v-0b68c436] .card .card-content{padding:10px 0}#workout-chart[data-v-0b68c436] .card .card-content .chart-info{display:flex;flex-direction:column-reverse}#workout-chart[data-v-0b68c436] .card .card-content .chart-info .elevation-start{padding:10px 15px 0}#workout-chart[data-v-0b68c436] .card .card-content .chart-info .no-data-cleaning{padding:0 20px}}#workout-note[data-v-f6b59442] .card-content{font-style:italic;white-space:pre-wrap}#workout-segments[data-v-6b8a27cd] .card .card-title{text-transform:capitalize}#workout-segments[data-v-6b8a27cd] .card .card-content{padding-bottom:0;padding-top:0}#workout-segments[data-v-6b8a27cd] .card .card-content a{font-weight:700}#workout-segments[data-v-6b8a27cd] .card .card-content ul{padding:0 10px;list-style:square}#workout[data-v-53c4e53a]{display:flex}#workout .container[data-v-53c4e53a]{width:100%;padding:0}#workout .container .workout-container[data-v-53c4e53a]{width:100%}#workout .container .workout-loading[data-v-53c4e53a]{height:calc(100vh - 130px);width:100%}#workout .container .workout-loading .loading[data-v-53c4e53a]{display:flex;align-items:center;height:100%}#workout-edition[data-v-4657c3ad] .card .card-title{text-align:center;text-transform:uppercase}@media screen and (max-width:1000px){#workout-edition[data-v-4657c3ad] .card .card-content{padding:10px 0}}#workout-edition[data-v-4657c3ad] .card .card-content #workout-form .form-items{display:flex;flex-direction:column}#workout-edition[data-v-4657c3ad] .card .card-content #workout-form .form-items input{height:20px}#workout-edition[data-v-4657c3ad] .card .card-content #workout-form .form-items .workout-date-duration{display:flex;flex-direction:row;justify-content:space-between}@media screen and (max-width:1000px){#workout-edition[data-v-4657c3ad] .card .card-content #workout-form .form-items .workout-date-duration{flex-direction:column}}#workout-edition[data-v-4657c3ad] .card .card-content #workout-form .form-items .form-item{display:flex;flex-direction:column;padding:10px}#workout-edition[data-v-4657c3ad] .card .card-content #workout-form .form-items .form-item .workout-date-time{display:flex}#workout-edition[data-v-4657c3ad] .card .card-content #workout-form .form-items .form-item .workout-date-time #workout-date{margin-right:10px}#workout-edition[data-v-4657c3ad] .card .card-content #workout-form .form-items .form-item .workout-duration{width:25px}#workout-edition[data-v-4657c3ad] .card .card-content #workout-form .form-items .form-item-radio{display:flex;justify-content:space-around}#workout-edition[data-v-4657c3ad] .card .card-content #workout-form .form-items .form-item-radio label{font-weight:400}@media screen and (max-width:1000px){#workout-edition[data-v-4657c3ad] .card .card-content #workout-form .form-items .form-item-radio label{font-size:.9em}}#workout-edition[data-v-4657c3ad] .card .card-content #workout-form .form-items .form-item-radio input{margin-top:-2px;vertical-align:middle}#workout-edition[data-v-4657c3ad] .card .card-content #workout-form .form-buttons{display:flex;justify-content:flex-end}#workout-edition[data-v-4657c3ad] .card .card-content #workout-form .form-buttons button{margin:5px}#workout-edition[data-v-4657c3ad] .card .card-content #workout-form .files-help{display:flex;justify-content:space-around;margin-top:10px}#workout-edition[data-v-4657c3ad] .card .card-content #workout-form .files-help div{display:flex}@media screen and (max-width:1000px){#workout-edition[data-v-4657c3ad] .card .card-content #workout-form .files-help div{flex-direction:column}}#workout-edition[data-v-4657c3ad] .card .card-content #workout-form .files-help div ul{margin:0;padding:0 20px}@media screen and (max-width:700px){#workout-edition[data-v-4657c3ad]{margin-bottom:0}#workout-edition.center-form[data-v-4657c3ad]{margin:50px auto}#workout-edition.with-margin[data-v-4657c3ad]{margin-top:0}}#workout-edition .errored[data-v-4657c3ad]{outline:2px solid var(--input-error-color)} \ No newline at end of file diff --git a/fittrackee/dist/static/js/243.d3fff3a7.js b/fittrackee/dist/static/js/243.d3fff3a7.js new file mode 100644 index 00000000..10994d76 --- /dev/null +++ b/fittrackee/dist/static/js/243.d3fff3a7.js @@ -0,0 +1,7 @@ +(self["webpackChunkfittrackee_client"]=self["webpackChunkfittrackee_client"]||[]).push([[243],{5243:function(t,i){ +/* @preserve + * Leaflet 1.9.3, a JS library for interactive maps. https://leafletjs.com + * (c) 2010-2022 Vladimir Agafonkin, (c) 2010-2011 CloudMade + */ +(function(t,e){e(i)})(0,(function(t){"use strict";var i="1.9.3";function e(t){var i,e,n,o;for(e=1,n=arguments.length;e0?Math.floor(t):Math.ceil(t)};function B(t,i,e){return t instanceof O?t:g(t)?new O(t[0],t[1]):void 0===t||null===t?t:"object"===typeof t&&"x"in t&&"y"in t?new O(t.x,t.y):new O(t,i,e)}function I(t,i){if(t)for(var e=i?[t,i]:t,n=0,o=e.length;n=this.min.x&&e.x<=this.max.x&&i.y>=this.min.y&&e.y<=this.max.y},intersects:function(t){t=R(t);var i=this.min,e=this.max,n=t.min,o=t.max,s=o.x>=i.x&&n.x<=e.x,r=o.y>=i.y&&n.y<=e.y;return s&&r},overlaps:function(t){t=R(t);var i=this.min,e=this.max,n=t.min,o=t.max,s=o.x>i.x&&n.xi.y&&n.y=n.lat&&e.lat<=o.lat&&i.lng>=n.lng&&e.lng<=o.lng},intersects:function(t){t=D(t);var i=this._southWest,e=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>=i.lat&&n.lat<=e.lat,r=o.lng>=i.lng&&n.lng<=e.lng;return s&&r},overlaps:function(t){t=D(t);var i=this._southWest,e=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>i.lat&&n.lati.lng&&n.lng1,Ct=function(){var t=!1;try{var i=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("testPassiveEventSupport",l,i),window.removeEventListener("testPassiveEventSupport",l,i)}catch(e){}return t}(),Zt=function(){return!!document.createElement("canvas").getContext}(),St=!(!document.createElementNS||!X("svg").createSVGRect),kt=!!St&&function(){var t=document.createElement("div");return t.innerHTML="","http://www.w3.org/2000/svg"===(t.firstChild&&t.firstChild.namespaceURI)}(),Et=!St&&function(){try{var t=document.createElement("div");t.innerHTML='';var i=t.firstChild;return i.style.behavior="url(#default#VML)",i&&"object"===typeof i.adj}catch(e){return!1}}(),Ot=0===navigator.platform.indexOf("Mac"),At=0===navigator.platform.indexOf("Linux");function Bt(t){return navigator.userAgent.toLowerCase().indexOf(t)>=0}var It={ie:Q,ielt9:tt,edge:it,webkit:et,android:nt,android23:ot,androidStock:rt,opera:at,chrome:ht,gecko:lt,safari:ut,phantom:ct,opera12:dt,win:_t,ie3d:pt,webkit3d:mt,gecko3d:ft,any3d:gt,mobile:vt,mobileWebkit:yt,mobileWebkit3d:xt,msPointer:wt,pointer:bt,touch:Lt,touchNative:Pt,mobileOpera:Tt,mobileGecko:Mt,retina:zt,passiveEvents:Ct,canvas:Zt,svg:St,vml:Et,inlineSvg:kt,mac:Ot,linux:At},Rt=It.msPointer?"MSPointerDown":"pointerdown",Nt=It.msPointer?"MSPointerMove":"pointermove",Dt=It.msPointer?"MSPointerUp":"pointerup",jt=It.msPointer?"MSPointerCancel":"pointercancel",Ht={touchstart:Rt,touchmove:Nt,touchend:Dt,touchcancel:jt},Ft={touchstart:$t,touchmove:Jt,touchend:Jt,touchcancel:Jt},Wt={},Ut=!1;function Vt(t,i,e){return"touchstart"===i&&Xt(),Ft[i]?(e=Ft[i].bind(this,e),t.addEventListener(Ht[i],e,!1),e):(console.warn("wrong event specified:",i),l)}function qt(t,i,e){Ht[i]?t.removeEventListener(Ht[i],e,!1):console.warn("wrong event specified:",i)}function Gt(t){Wt[t.pointerId]=t}function Kt(t){Wt[t.pointerId]&&(Wt[t.pointerId]=t)}function Yt(t){delete Wt[t.pointerId]}function Xt(){Ut||(document.addEventListener(Rt,Gt,!0),document.addEventListener(Nt,Kt,!0),document.addEventListener(Dt,Yt,!0),document.addEventListener(jt,Yt,!0),Ut=!0)}function Jt(t,i){if(i.pointerType!==(i.MSPOINTER_TYPE_MOUSE||"mouse")){for(var e in i.touches=[],Wt)i.touches.push(Wt[e]);i.changedTouches=[i],t(i)}}function $t(t,i){i.MSPOINTER_TYPE_TOUCH&&i.pointerType===i.MSPOINTER_TYPE_TOUCH&&Gi(i),Jt(t,i)}function Qt(t){var i,e,n={};for(e in t)i=t[e],n[e]=i&&i.bind?i.bind(t):i;return t=n,n.type="dblclick",n.detail=2,n.isTrusted=!1,n._simulated=!0,n}var ti=200;function ii(t,i){t.addEventListener("dblclick",i);var e,n=0;function o(t){if(1===t.detail){if("mouse"!==t.pointerType&&(!t.sourceCapabilities||t.sourceCapabilities.firesTouchEvents)){var o=Yi(t);if(!o.some((function(t){return t instanceof HTMLLabelElement&&t.attributes.for}))||o.some((function(t){return t instanceof HTMLInputElement||t instanceof HTMLSelectElement}))){var s=Date.now();s-n<=ti?(e++,2===e&&i(Qt(t))):e=1,n=s}}}else e=t.detail}return t.addEventListener("click",o),{dblclick:i,simDblclick:o}}function ei(t,i){t.removeEventListener("dblclick",i.dblclick),t.removeEventListener("click",i.simDblclick)}var ni,oi,si,ri,ai,hi=Ti(["transform","webkitTransform","OTransform","MozTransform","msTransform"]),li=Ti(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),ui="webkitTransition"===li||"OTransition"===li?li+"End":"transitionend";function ci(t){return"string"===typeof t?document.getElementById(t):t}function di(t,i){var e=t.style[i]||t.currentStyle&&t.currentStyle[i];if((!e||"auto"===e)&&document.defaultView){var n=document.defaultView.getComputedStyle(t,null);e=n?n[i]:null}return"auto"===e?null:e}function _i(t,i,e){var n=document.createElement(t);return n.className=i||"",e&&e.appendChild(n),n}function pi(t){var i=t.parentNode;i&&i.removeChild(t)}function mi(t){while(t.firstChild)t.removeChild(t.firstChild)}function fi(t){var i=t.parentNode;i&&i.lastChild!==t&&i.appendChild(t)}function gi(t){var i=t.parentNode;i&&i.firstChild!==t&&i.insertBefore(t,i.firstChild)}function vi(t,i){if(void 0!==t.classList)return t.classList.contains(i);var e=bi(t);return e.length>0&&new RegExp("(^|\\s)"+i+"(\\s|$)").test(e)}function yi(t,i){if(void 0!==t.classList)for(var e=d(i),n=0,o=e.length;n0?2*window.devicePixelRatio:1;function $i(t){return It.edge?t.wheelDeltaY/2:t.deltaY&&0===t.deltaMode?-t.deltaY/Ji:t.deltaY&&1===t.deltaMode?20*-t.deltaY:t.deltaY&&2===t.deltaMode?60*-t.deltaY:t.deltaX||t.deltaZ?0:t.wheelDelta?(t.wheelDeltaY||t.wheelDelta)/2:t.detail&&Math.abs(t.detail)<32765?20*-t.detail:t.detail?t.detail/-32765*60:0}function Qi(t,i){var e=i.relatedTarget;if(!e)return!0;try{while(e&&e!==t)e=e.parentNode}catch(n){return!1}return e!==t}var te={__proto__:null,on:Ri,off:Di,stopPropagation:Ui,disableScrollPropagation:Vi,disableClickPropagation:qi,preventDefault:Gi,stop:Ki,getPropagationPath:Yi,getMousePosition:Xi,getWheelDelta:$i,isExternalTarget:Qi,addListener:Ri,removeListener:Di},ie=E.extend({run:function(t,i,e,n){this.stop(),this._el=t,this._inProgress=!0,this._duration=e||.25,this._easeOutPower=1/Math.max(n||.5,.2),this._startPos=Ci(t),this._offset=i.subtract(this._startPos),this._startTime=+new Date,this.fire("start"),this._animate()},stop:function(){this._inProgress&&(this._step(!0),this._complete())},_animate:function(){this._animId=M(this._animate,this),this._step()},_step:function(t){var i=+new Date-this._startTime,e=1e3*this._duration;ithis.options.maxZoom)?this.setZoom(t):this},panInsideBounds:function(t,i){this._enforcingBounds=!0;var e=this.getCenter(),n=this._limitCenter(e,this._zoom,D(t));return e.equals(n)||this.panTo(n,i),this._enforcingBounds=!1,this},panInside:function(t,i){i=i||{};var e=B(i.paddingTopLeft||i.padding||[0,0]),n=B(i.paddingBottomRight||i.padding||[0,0]),o=this.project(this.getCenter()),s=this.project(t),r=this.getPixelBounds(),a=R([r.min.add(e),r.max.subtract(n)]),h=a.getSize();if(!a.contains(s)){this._enforcingBounds=!0;var l=s.subtract(a.getCenter()),u=a.extend(s).getSize().subtract(h);o.x+=l.x<0?-u.x:u.x,o.y+=l.y<0?-u.y:u.y,this.panTo(this.unproject(o),i),this._enforcingBounds=!1}return this},invalidateSize:function(t){if(!this._loaded)return this;t=e({animate:!1,pan:!0},!0===t?{animate:!0}:t);var i=this.getSize();this._sizeChanged=!0,this._lastCenter=null;var n=this.getSize(),s=i.divideBy(2).round(),r=n.divideBy(2).round(),a=s.subtract(r);return a.x||a.y?(t.animate&&t.pan?this.panBy(a):(t.pan&&this._rawPanBy(a),this.fire("move"),t.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(o(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:i,newSize:n})):this},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire("viewreset"),this._stop()},locate:function(t){if(t=this._locateOptions=e({timeout:1e4,watch:!1},t),!("geolocation"in navigator))return this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this;var i=o(this._handleGeolocationResponse,this),n=o(this._handleGeolocationError,this);return t.watch?this._locationWatchId=navigator.geolocation.watchPosition(i,n,t):navigator.geolocation.getCurrentPosition(i,n,t),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(t){if(this._container._leaflet_id){var i=t.code,e=t.message||(1===i?"permission denied":2===i?"position unavailable":"timeout");this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:i,message:"Geolocation error: "+e+"."})}},_handleGeolocationResponse:function(t){if(this._container._leaflet_id){var i=t.coords.latitude,e=t.coords.longitude,n=new j(i,e),o=n.toBounds(2*t.coords.accuracy),s=this._locateOptions;if(s.setView){var r=this.getBoundsZoom(o);this.setView(n,s.maxZoom?Math.min(r,s.maxZoom):r)}var a={latlng:n,bounds:o,timestamp:t.timestamp};for(var h in t.coords)"number"===typeof t.coords[h]&&(a[h]=t.coords[h]);this.fire("locationfound",a)}},addHandler:function(t,i){if(!i)return this;var e=this[t]=new i(this);return this._handlers.push(e),this.options[t]&&e.enable(),this},remove:function(){if(this._initEvents(!0),this.options.maxBounds&&this.off("moveend",this._panInsideMaxBounds),this._containerId!==this._container._leaflet_id)throw new Error("Map container is being reused by another instance");try{delete this._container._leaflet_id,delete this._containerId}catch(i){this._container._leaflet_id=void 0,this._containerId=void 0}var t;for(t in void 0!==this._locationWatchId&&this.stopLocate(),this._stop(),pi(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._resizeRequest&&(z(this._resizeRequest),this._resizeRequest=null),this._clearHandlers(),this._loaded&&this.fire("unload"),this._layers)this._layers[t].remove();for(t in this._panes)pi(this._panes[t]);return this._layers=[],this._panes=[],delete this._mapPane,delete this._renderer,this},createPane:function(t,i){var e="leaflet-pane"+(t?" leaflet-"+t.replace("Pane","")+"-pane":""),n=_i("div",e,i||this._mapPane);return t&&(this._panes[t]=n),n},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter.clone():this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var t=this.getPixelBounds(),i=this.unproject(t.getBottomLeft()),e=this.unproject(t.getTopRight());return new N(i,e)},getMinZoom:function(){return void 0===this.options.minZoom?this._layersMinZoom||0:this.options.minZoom},getMaxZoom:function(){return void 0===this.options.maxZoom?void 0===this._layersMaxZoom?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(t,i,e){t=D(t),e=B(e||[0,0]);var n=this.getZoom()||0,o=this.getMinZoom(),s=this.getMaxZoom(),r=t.getNorthWest(),a=t.getSouthEast(),h=this.getSize().subtract(e),l=R(this.project(a,n),this.project(r,n)).getSize(),u=It.any3d?this.options.zoomSnap:1,c=h.x/l.x,d=h.y/l.y,_=i?Math.max(c,d):Math.min(c,d);return n=this.getScaleZoom(_,n),u&&(n=Math.round(n/(u/100))*(u/100),n=i?Math.ceil(n/u)*u:Math.floor(n/u)*u),Math.max(o,Math.min(s,n))},getSize:function(){return this._size&&!this._sizeChanged||(this._size=new O(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(t,i){var e=this._getTopLeftPoint(t,i);return new I(e,e.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(t){return this.options.crs.getProjectedBounds(void 0===t?this.getZoom():t)},getPane:function(t){return"string"===typeof t?this._panes[t]:t},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(t,i){var e=this.options.crs;return i=void 0===i?this._zoom:i,e.scale(t)/e.scale(i)},getScaleZoom:function(t,i){var e=this.options.crs;i=void 0===i?this._zoom:i;var n=e.zoom(t*e.scale(i));return isNaN(n)?1/0:n},project:function(t,i){return i=void 0===i?this._zoom:i,this.options.crs.latLngToPoint(H(t),i)},unproject:function(t,i){return i=void 0===i?this._zoom:i,this.options.crs.pointToLatLng(B(t),i)},layerPointToLatLng:function(t){var i=B(t).add(this.getPixelOrigin());return this.unproject(i)},latLngToLayerPoint:function(t){var i=this.project(H(t))._round();return i._subtract(this.getPixelOrigin())},wrapLatLng:function(t){return this.options.crs.wrapLatLng(H(t))},wrapLatLngBounds:function(t){return this.options.crs.wrapLatLngBounds(D(t))},distance:function(t,i){return this.options.crs.distance(H(t),H(i))},containerPointToLayerPoint:function(t){return B(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return B(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){var i=this.containerPointToLayerPoint(B(t));return this.layerPointToLatLng(i)},latLngToContainerPoint:function(t){return this.layerPointToContainerPoint(this.latLngToLayerPoint(H(t)))},mouseEventToContainerPoint:function(t){return Xi(t,this._container)},mouseEventToLayerPoint:function(t){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t))},mouseEventToLatLng:function(t){return this.layerPointToLatLng(this.mouseEventToLayerPoint(t))},_initContainer:function(t){var i=this._container=ci(t);if(!i)throw new Error("Map container not found.");if(i._leaflet_id)throw new Error("Map container is already initialized.");Ri(i,"scroll",this._onScroll,this),this._containerId=r(i)},_initLayout:function(){var t=this._container;this._fadeAnimated=this.options.fadeAnimation&&It.any3d,yi(t,"leaflet-container"+(It.touch?" leaflet-touch":"")+(It.retina?" leaflet-retina":"")+(It.ielt9?" leaflet-oldie":"")+(It.safari?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":""));var i=di(t,"position");"absolute"!==i&&"relative"!==i&&"fixed"!==i&&"sticky"!==i&&(t.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var t=this._panes={};this._paneRenderers={},this._mapPane=this.createPane("mapPane",this._container),zi(this._mapPane,new O(0,0)),this.createPane("tilePane"),this.createPane("overlayPane"),this.createPane("shadowPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||(yi(t.markerPane,"leaflet-zoom-hide"),yi(t.shadowPane,"leaflet-zoom-hide"))},_resetView:function(t,i,e){zi(this._mapPane,new O(0,0));var n=!this._loaded;this._loaded=!0,i=this._limitZoom(i),this.fire("viewprereset");var o=this._zoom!==i;this._moveStart(o,e)._move(t,i)._moveEnd(o),this.fire("viewreset"),n&&this.fire("load")},_moveStart:function(t,i){return t&&this.fire("zoomstart"),i||this.fire("movestart"),this},_move:function(t,i,e,n){void 0===i&&(i=this._zoom);var o=this._zoom!==i;return this._zoom=i,this._lastCenter=t,this._pixelOrigin=this._getNewPixelOrigin(t),n?e&&e.pinch&&this.fire("zoom",e):((o||e&&e.pinch)&&this.fire("zoom",e),this.fire("move",e)),this},_moveEnd:function(t){return t&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return z(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(t){zi(this._mapPane,this._getMapPanePos().subtract(t))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_panInsideMaxBounds:function(){this._enforcingBounds||this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(t){this._targets={},this._targets[r(this._container)]=this;var i=t?Di:Ri;i(this._container,"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress keydown keyup",this._handleDOMEvent,this),this.options.trackResize&&i(window,"resize",this._onResize,this),It.any3d&&this.options.transform3DLimit&&(t?this.off:this.on).call(this,"moveend",this._onMoveEnd)},_onResize:function(){z(this._resizeRequest),this._resizeRequest=M((function(){this.invalidateSize({debounceMoveend:!0})}),this)},_onScroll:function(){this._container.scrollTop=0,this._container.scrollLeft=0},_onMoveEnd:function(){var t=this._getMapPanePos();Math.max(Math.abs(t.x),Math.abs(t.y))>=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(t,i){var e,n=[],o="mouseout"===i||"mouseover"===i,s=t.target||t.srcElement,a=!1;while(s){if(e=this._targets[r(s)],e&&("click"===i||"preclick"===i)&&this._draggableMoved(e)){a=!0;break}if(e&&e.listens(i,!0)){if(o&&!Qi(s,t))break;if(n.push(e),o)break}if(s===this._container)break;s=s.parentNode}return n.length||a||o||!this.listens(i,!0)||(n=[this]),n},_isClickDisabled:function(t){while(t&&t!==this._container){if(t["_leaflet_disable_click"])return!0;t=t.parentNode}},_handleDOMEvent:function(t){var i=t.target||t.srcElement;if(!(!this._loaded||i["_leaflet_disable_events"]||"click"===t.type&&this._isClickDisabled(i))){var e=t.type;"mousedown"===e&&Ei(i),this._fireDOMEvent(t,e)}},_mouseEvents:["click","dblclick","mouseover","mouseout","contextmenu"],_fireDOMEvent:function(t,i,n){if("click"===t.type){var o=e({},t);o.type="preclick",this._fireDOMEvent(o,o.type,n)}var s=this._findEventTargets(t,i);if(n){for(var r=[],a=0;a0?Math.round(t-i)/2:Math.max(0,Math.ceil(t))-Math.max(0,Math.floor(i))},_limitZoom:function(t){var i=this.getMinZoom(),e=this.getMaxZoom(),n=It.any3d?this.options.zoomSnap:1;return n&&(t=Math.round(t/n)*n),Math.max(i,Math.min(e,t))},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){xi(this._mapPane,"leaflet-pan-anim"),this.fire("moveend")},_tryAnimatedPan:function(t,i){var e=this._getCenterOffset(t)._trunc();return!(!0!==(i&&i.animate)&&!this.getSize().contains(e))&&(this.panBy(e,i),!0)},_createAnimProxy:function(){var t=this._proxy=_i("div","leaflet-proxy leaflet-zoom-animated");this._panes.mapPane.appendChild(t),this.on("zoomanim",(function(t){var i=hi,e=this._proxy.style[i];Mi(this._proxy,this.project(t.center,t.zoom),this.getZoomScale(t.zoom,1)),e===this._proxy.style[i]&&this._animatingZoom&&this._onZoomTransitionEnd()}),this),this.on("load moveend",this._animMoveEnd,this),this._on("unload",this._destroyAnimProxy,this)},_destroyAnimProxy:function(){pi(this._proxy),this.off("load moveend",this._animMoveEnd,this),delete this._proxy},_animMoveEnd:function(){var t=this.getCenter(),i=this.getZoom();Mi(this._proxy,this.project(t,i),this.getZoomScale(i,1))},_catchTransitionEnd:function(t){this._animatingZoom&&t.propertyName.indexOf("transform")>=0&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(t,i,e){if(this._animatingZoom)return!0;if(e=e||{},!this._zoomAnimated||!1===e.animate||this._nothingToAnimate()||Math.abs(i-this._zoom)>this.options.zoomAnimationThreshold)return!1;var n=this.getZoomScale(i),o=this._getCenterOffset(t)._divideBy(1-1/n);return!(!0!==e.animate&&!this.getSize().contains(o))&&(M((function(){this._moveStart(!0,!1)._animateZoom(t,i,!0)}),this),!0)},_animateZoom:function(t,i,e,n){this._mapPane&&(e&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=i,yi(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:t,zoom:i,noUpdate:n}),this._tempFireZoomEvent||(this._tempFireZoomEvent=this._zoom!==this._animateToZoom),this._move(this._animateToCenter,this._animateToZoom,void 0,!0),setTimeout(o(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._mapPane&&xi(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom,void 0,!0),this._tempFireZoomEvent&&this.fire("zoom"),delete this._tempFireZoomEvent,this.fire("move"),this._moveEnd(!0))}});function ne(t,i){return new ee(t,i)}var oe=Z.extend({options:{position:"topright"},initialize:function(t){_(this,t)},getPosition:function(){return this.options.position},setPosition:function(t){var i=this._map;return i&&i.removeControl(this),this.options.position=t,i&&i.addControl(this),this},getContainer:function(){return this._container},addTo:function(t){this.remove(),this._map=t;var i=this._container=this.onAdd(t),e=this.getPosition(),n=t._controlCorners[e];return yi(i,"leaflet-control"),-1!==e.indexOf("bottom")?n.insertBefore(i,n.firstChild):n.appendChild(i),this._map.on("unload",this.remove,this),this},remove:function(){return this._map?(pi(this._container),this.onRemove&&this.onRemove(this._map),this._map.off("unload",this.remove,this),this._map=null,this):this},_refocusOnMap:function(t){this._map&&t&&t.screenX>0&&t.screenY>0&&this._map.getContainer().focus()}}),se=function(t){return new oe(t)};ee.include({addControl:function(t){return t.addTo(this),this},removeControl:function(t){return t.remove(),this},_initControlPos:function(){var t=this._controlCorners={},i="leaflet-",e=this._controlContainer=_i("div",i+"control-container",this._container);function n(n,o){var s=i+n+" "+i+o;t[n+o]=_i("div",s,e)}n("top","left"),n("top","right"),n("bottom","left"),n("bottom","right")},_clearControlPos:function(){for(var t in this._controlCorners)pi(this._controlCorners[t]);pi(this._controlContainer),delete this._controlCorners,delete this._controlContainer}});var re=oe.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0,hideSingleBase:!1,sortLayers:!1,sortFunction:function(t,i,e,n){return e1,this._baseLayersList.style.display=t?"":"none"),this._separator.style.display=i&&t?"":"none",this},_onLayerChange:function(t){this._handlingClick||this._update();var i=this._getLayer(r(t.target)),e=i.overlay?"add"===t.type?"overlayadd":"overlayremove":"add"===t.type?"baselayerchange":null;e&&this._map.fire(e,i)},_createRadioElement:function(t,i){var e='",n=document.createElement("div");return n.innerHTML=e,n.firstChild},_addItem:function(t){var i,e=document.createElement("label"),n=this._map.hasLayer(t.layer);t.overlay?(i=document.createElement("input"),i.type="checkbox",i.className="leaflet-control-layers-selector",i.defaultChecked=n):i=this._createRadioElement("leaflet-base-layers_"+r(this),n),this._layerControlInputs.push(i),i.layerId=r(t.layer),Ri(i,"click",this._onInputClick,this);var o=document.createElement("span");o.innerHTML=" "+t.name;var s=document.createElement("span");e.appendChild(s),s.appendChild(i),s.appendChild(o);var a=t.overlay?this._overlaysList:this._baseLayersList;return a.appendChild(e),this._checkDisabledLayers(),e},_onInputClick:function(){var t,i,e=this._layerControlInputs,n=[],o=[];this._handlingClick=!0;for(var s=e.length-1;s>=0;s--)t=e[s],i=this._getLayer(t.layerId).layer,t.checked?n.push(i):t.checked||o.push(i);for(s=0;s=0;o--)t=e[o],i=this._getLayer(t.layerId).layer,t.disabled=void 0!==i.options.minZoom&&ni.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this},_expandSafely:function(){var t=this._section;Ri(t,"click",Gi),this.expand(),setTimeout((function(){Di(t,"click",Gi)}))}}),ae=function(t,i,e){return new re(t,i,e)},he=oe.extend({options:{position:"topleft",zoomInText:'',zoomInTitle:"Zoom in",zoomOutText:'',zoomOutTitle:"Zoom out"},onAdd:function(t){var i="leaflet-control-zoom",e=_i("div",i+" leaflet-bar"),n=this.options;return this._zoomInButton=this._createButton(n.zoomInText,n.zoomInTitle,i+"-in",e,this._zoomIn),this._zoomOutButton=this._createButton(n.zoomOutText,n.zoomOutTitle,i+"-out",e,this._zoomOut),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),e},onRemove:function(t){t.off("zoomend zoomlevelschange",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(t){!this._disabled&&this._map._zoomthis._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,i,e,n,o){var s=_i("a",e,n);return s.innerHTML=t,s.href="#",s.title=i,s.setAttribute("role","button"),s.setAttribute("aria-label",i),qi(s),Ri(s,"click",Ki),Ri(s,"click",o,this),Ri(s,"click",this._refocusOnMap,this),s},_updateDisabled:function(){var t=this._map,i="leaflet-disabled";xi(this._zoomInButton,i),xi(this._zoomOutButton,i),this._zoomInButton.setAttribute("aria-disabled","false"),this._zoomOutButton.setAttribute("aria-disabled","false"),(this._disabled||t._zoom===t.getMinZoom())&&(yi(this._zoomOutButton,i),this._zoomOutButton.setAttribute("aria-disabled","true")),(this._disabled||t._zoom===t.getMaxZoom())&&(yi(this._zoomInButton,i),this._zoomInButton.setAttribute("aria-disabled","true"))}});ee.mergeOptions({zoomControl:!0}),ee.addInitHook((function(){this.options.zoomControl&&(this.zoomControl=new he,this.addControl(this.zoomControl))}));var le=function(t){return new he(t)},ue=oe.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var i="leaflet-control-scale",e=_i("div",i),n=this.options;return this._addScales(n,i+"-line",e),t.on(n.updateWhenIdle?"moveend":"move",this._update,this),t.whenReady(this._update,this),e},onRemove:function(t){t.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(t,i,e){t.metric&&(this._mScale=_i("div",i,e)),t.imperial&&(this._iScale=_i("div",i,e))},_update:function(){var t=this._map,i=t.getSize().y/2,e=t.distance(t.containerPointToLatLng([0,i]),t.containerPointToLatLng([this.options.maxWidth,i]));this._updateScales(e)},_updateScales:function(t){this.options.metric&&t&&this._updateMetric(t),this.options.imperial&&t&&this._updateImperial(t)},_updateMetric:function(t){var i=this._getRoundNum(t),e=i<1e3?i+" m":i/1e3+" km";this._updateScale(this._mScale,e,i/t)},_updateImperial:function(t){var i,e,n,o=3.2808399*t;o>5280?(i=o/5280,e=this._getRoundNum(i),this._updateScale(this._iScale,e+" mi",e/i)):(n=this._getRoundNum(o),this._updateScale(this._iScale,n+" ft",n/o))},_updateScale:function(t,i,e){t.style.width=Math.round(this.options.maxWidth*e)+"px",t.innerHTML=i},_getRoundNum:function(t){var i=Math.pow(10,(Math.floor(t)+"").length-1),e=t/i;return e=e>=10?10:e>=5?5:e>=3?3:e>=2?2:1,i*e}}),ce=function(t){return new ue(t)},de='',_e=oe.extend({options:{position:"bottomright",prefix:''+(It.inlineSvg?de+" ":"")+"Leaflet"},initialize:function(t){_(this,t),this._attributions={}},onAdd:function(t){for(var i in t.attributionControl=this,this._container=_i("div","leaflet-control-attribution"),qi(this._container),t._layers)t._layers[i].getAttribution&&this.addAttribution(t._layers[i].getAttribution());return this._update(),t.on("layeradd",this._addAttribution,this),this._container},onRemove:function(t){t.off("layeradd",this._addAttribution,this)},_addAttribution:function(t){t.layer.getAttribution&&(this.addAttribution(t.layer.getAttribution()),t.layer.once("remove",(function(){this.removeAttribution(t.layer.getAttribution())}),this))},setPrefix:function(t){return this.options.prefix=t,this._update(),this},addAttribution:function(t){return t?(this._attributions[t]||(this._attributions[t]=0),this._attributions[t]++,this._update(),this):this},removeAttribution:function(t){return t?(this._attributions[t]&&(this._attributions[t]--,this._update()),this):this},_update:function(){if(this._map){var t=[];for(var i in this._attributions)this._attributions[i]&&t.push(i);var e=[];this.options.prefix&&e.push(this.options.prefix),t.length&&e.push(t.join(", ")),this._container.innerHTML=e.join(' ')}}});ee.mergeOptions({attributionControl:!0}),ee.addInitHook((function(){this.options.attributionControl&&(new _e).addTo(this)}));var pe=function(t){return new _e(t)};oe.Layers=re,oe.Zoom=he,oe.Scale=ue,oe.Attribution=_e,se.layers=ae,se.zoom=le,se.scale=ce,se.attribution=pe;var me=Z.extend({initialize:function(t){this._map=t},enable:function(){return this._enabled||(this._enabled=!0,this.addHooks()),this},disable:function(){return this._enabled?(this._enabled=!1,this.removeHooks(),this):this},enabled:function(){return!!this._enabled}});me.addTo=function(t,i){return t.addHandler(i,this),this};var fe,ge={Events:k},ve=It.touch?"touchstart mousedown":"mousedown",ye=E.extend({options:{clickTolerance:3},initialize:function(t,i,e,n){_(this,n),this._element=t,this._dragStartTarget=i||t,this._preventOutline=e},enable:function(){this._enabled||(Ri(this._dragStartTarget,ve,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(ye._dragging===this&&this.finishDrag(!0),Di(this._dragStartTarget,ve,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(t){if(this._enabled&&(this._moved=!1,!vi(this._element,"leaflet-zoom-anim")))if(t.touches&&1!==t.touches.length)ye._dragging===this&&this.finishDrag();else if(!(ye._dragging||t.shiftKey||1!==t.which&&1!==t.button&&!t.touches)&&(ye._dragging=this,this._preventOutline&&Ei(this._element),Si(),ni(),!this._moving)){this.fire("down");var i=t.touches?t.touches[0]:t,e=Ai(this._element);this._startPoint=new O(i.clientX,i.clientY),this._startPos=Ci(this._element),this._parentScale=Bi(e);var n="mousedown"===t.type;Ri(document,n?"mousemove":"touchmove",this._onMove,this),Ri(document,n?"mouseup":"touchend touchcancel",this._onUp,this)}},_onMove:function(t){if(this._enabled)if(t.touches&&t.touches.length>1)this._moved=!0;else{var i=t.touches&&1===t.touches.length?t.touches[0]:t,e=new O(i.clientX,i.clientY)._subtract(this._startPoint);(e.x||e.y)&&(Math.abs(e.x)+Math.abs(e.y)h&&(s=r,h=a);h>e&&(i[s]=1,Le(t,i,e,n,s),Le(t,i,e,s,o))}function Te(t,i){for(var e=[t[0]],n=1,o=0,s=t.length;ni&&(e.push(t[n]),o=n);return oi.max.x&&(e|=2),t.yi.max.y&&(e|=8),e}function Ze(t,i){var e=i.x-t.x,n=i.y-t.y;return e*e+n*n}function Se(t,i,e,n){var o,s=i.x,r=i.y,a=e.x-s,h=e.y-r,l=a*a+h*h;return l>0&&(o=((t.x-s)*a+(t.y-r)*h)/l,o>1?(s=e.x,r=e.y):o>0&&(s+=a*o,r+=h*o)),a=t.x-s,h=t.y-r,n?a*a+h*h:new O(s,r)}function ke(t){return!g(t[0])||"object"!==typeof t[0][0]&&"undefined"!==typeof t[0][0]}function Ee(t){return console.warn("Deprecated use of _flat, please use L.LineUtil.isFlat instead."),ke(t)}function Oe(t,i){var e,n,o,s,r,a,h,l;if(!t||0===t.length)throw new Error("latlngs not passed");ke(t)||(console.warn("latlngs are not flat! Only the first ring will be used"),t=t[0]);var u=[];for(var c in t)u.push(i.project(H(t[c])));var d=u.length;for(e=0,n=0;en){h=(s-n)/o,l=[a.x-h*(a.x-r.x),a.y-h*(a.y-r.y)];break}return i.unproject(B(l))}var Ae={__proto__:null,simplify:xe,pointToSegmentDistance:we,closestPointOnSegment:be,clipSegment:Me,_getEdgeIntersection:ze,_getBitCode:Ce,_sqClosestPointOnSegment:Se,isFlat:ke,_flat:Ee,polylineCenter:Oe};function Be(t,i,e){var n,o,s,r,a,h,l,u,c,d=[1,4,2,8];for(o=0,l=t.length;o1e-7;h++)i=s*Math.sin(a),i=Math.pow((1-i)/(1+i),s/2),l=Math.PI/2-2*Math.atan(r*i)-a,a+=l;return new j(a*e,t.x*e/n)}},je={__proto__:null,LonLat:Ne,Mercator:De,SphericalMercator:V},He=e({},W,{code:"EPSG:3395",projection:De,transformation:function(){var t=.5/(Math.PI*De.R);return G(t,.5,-t,.5)}()}),Fe=e({},W,{code:"EPSG:4326",projection:Ne,transformation:G(1/180,1,-1/180,.5)}),We=e({},F,{projection:Ne,transformation:G(1,0,-1,0),scale:function(t){return Math.pow(2,t)},zoom:function(t){return Math.log(t)/Math.LN2},distance:function(t,i){var e=i.lng-t.lng,n=i.lat-t.lat;return Math.sqrt(e*e+n*n)},infinite:!0});F.Earth=W,F.EPSG3395=He,F.EPSG3857=K,F.EPSG900913=Y,F.EPSG4326=Fe,F.Simple=We;var Ue=E.extend({options:{pane:"overlayPane",attribution:null,bubblingMouseEvents:!0},addTo:function(t){return t.addLayer(this),this},remove:function(){return this.removeFrom(this._map||this._mapToAdd)},removeFrom:function(t){return t&&t.removeLayer(this),this},getPane:function(t){return this._map.getPane(t?this.options[t]||t:this.options.pane)},addInteractiveTarget:function(t){return this._map._targets[r(t)]=this,this},removeInteractiveTarget:function(t){return delete this._map._targets[r(t)],this},getAttribution:function(){return this.options.attribution},_layerAdd:function(t){var i=t.target;if(i.hasLayer(this)){if(this._map=i,this._zoomAnimated=i._zoomAnimated,this.getEvents){var e=this.getEvents();i.on(e,this),this.once("remove",(function(){i.off(e,this)}),this)}this.onAdd(i),this.fire("add"),i.fire("layeradd",{layer:this})}}});ee.include({addLayer:function(t){if(!t._layerAdd)throw new Error("The provided object is not a Layer.");var i=r(t);return this._layers[i]||(this._layers[i]=t,t._mapToAdd=this,t.beforeAdd&&t.beforeAdd(this),this.whenReady(t._layerAdd,t)),this},removeLayer:function(t){var i=r(t);return this._layers[i]?(this._loaded&&t.onRemove(this),delete this._layers[i],this._loaded&&(this.fire("layerremove",{layer:t}),t.fire("remove")),t._map=t._mapToAdd=null,this):this},hasLayer:function(t){return r(t)in this._layers},eachLayer:function(t,i){for(var e in this._layers)t.call(i,this._layers[e]);return this},_addLayers:function(t){t=t?g(t)?t:[t]:[];for(var i=0,e=t.length;ithis._layersMaxZoom&&this.setZoom(this._layersMaxZoom),void 0===this.options.minZoom&&this._layersMinZoom&&this.getZoom()=2&&i[0]instanceof j&&i[0].equals(i[e-1])&&i.pop(),i},_setLatLngs:function(t){an.prototype._setLatLngs.call(this,t),ke(this._latlngs)&&(this._latlngs=[this._latlngs])},_defaultShape:function(){return ke(this._latlngs[0])?this._latlngs[0]:this._latlngs[0][0]},_clipPoints:function(){var t=this._renderer._bounds,i=this.options.weight,e=new O(i,i);if(t=new I(t.min.subtract(e),t.max.add(e)),this._parts=[],this._pxBounds&&this._pxBounds.intersects(t))if(this.options.noClip)this._parts=this._rings;else for(var n,o=0,s=this._rings.length;ot.y!==n.y>t.y&&t.x<(n.x-e.x)*(t.y-e.y)/(n.y-e.y)+e.x&&(l=!l);return l||an.prototype._containsPoint.call(this,t,!0)}});function un(t,i){return new ln(t,i)}var cn=Ge.extend({initialize:function(t,i){_(this,i),this._layers={},t&&this.addData(t)},addData:function(t){var i,e,n,o=g(t)?t:t.features;if(o){for(i=0,e=o.length;i0?n:[i.src]}else{g(this._url)||(this._url=[this._url]),!this.options.keepAspectRatio&&Object.prototype.hasOwnProperty.call(i.style,"objectFit")&&(i.style["objectFit"]="fill"),i.autoplay=!!this.options.autoplay,i.loop=!!this.options.loop,i.muted=!!this.options.muted,i.playsInline=!!this.options.playsInline;for(var r=0;ro?(i.height=o+"px",yi(t,s)):xi(t,s),this._containerWidth=this._container.offsetWidth},_animateZoom:function(t){var i=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center),e=this._getAnchor();zi(this._container,i.add(e))},_adjustPan:function(){if(this.options.autoPan)if(this._map._panAnim&&this._map._panAnim.stop(),this._autopanning)this._autopanning=!1;else{var t=this._map,i=parseInt(di(this._container,"marginBottom"),10)||0,e=this._container.offsetHeight+i,n=this._containerWidth,o=new O(this._containerLeft,-e-this._containerBottom);o._add(Ci(this._container));var s=t.layerPointToContainerPoint(o),r=B(this.options.autoPanPadding),a=B(this.options.autoPanPaddingTopLeft||r),h=B(this.options.autoPanPaddingBottomRight||r),l=t.getSize(),u=0,c=0;s.x+n+h.x>l.x&&(u=s.x+n-l.x+h.x),s.x-u-a.x<0&&(u=s.x-a.x),s.y+e+h.y>l.y&&(c=s.y+e-l.y+h.y),s.y-c-a.y<0&&(c=s.y-a.y),(u||c)&&(this.options.keepInView&&(this._autopanning=!0),t.fire("autopanstart").panBy([u,c]))}},_getAnchor:function(){return B(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}}),kn=function(t,i){return new Sn(t,i)};ee.mergeOptions({closePopupOnClick:!0}),ee.include({openPopup:function(t,i,e){return this._initOverlay(Sn,t,i,e).openOn(this),this},closePopup:function(t){return t=arguments.length?t:this._popup,t&&t.close(),this}}),Ue.include({bindPopup:function(t,i){return this._popup=this._initOverlay(Sn,this._popup,t,i),this._popupHandlersAdded||(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(t){return this._popup&&(this instanceof Ge||(this._popup._source=this),this._popup._prepareOpen(t||this._latlng)&&this._popup.openOn(this._map)),this},closePopup:function(){return this._popup&&this._popup.close(),this},togglePopup:function(){return this._popup&&this._popup.toggle(this),this},isPopupOpen:function(){return!!this._popup&&this._popup.isOpen()},setPopupContent:function(t){return this._popup&&this._popup.setContent(t),this},getPopup:function(){return this._popup},_openPopup:function(t){if(this._popup&&this._map){Ki(t);var i=t.layer||t.target;this._popup._source!==i||i instanceof en?(this._popup._source=i,this.openPopup(t.latlng)):this._map.hasLayer(this._popup)?this.closePopup():this.openPopup(t.latlng)}},_movePopup:function(t){this._popup.setLatLng(t.latlng)},_onKeyPress:function(t){13===t.originalEvent.keyCode&&this._openPopup(t)}});var En=Zn.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,opacity:.9},onAdd:function(t){Zn.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire("tooltipopen",{tooltip:this}),this._source&&(this.addEventParent(this._source),this._source.fire("tooltipopen",{tooltip:this},!0))},onRemove:function(t){Zn.prototype.onRemove.call(this,t),t.fire("tooltipclose",{tooltip:this}),this._source&&(this.removeEventParent(this._source),this._source.fire("tooltipclose",{tooltip:this},!0))},getEvents:function(){var t=Zn.prototype.getEvents.call(this);return this.options.permanent||(t.preclick=this.close),t},_initLayout:function(){var t="leaflet-tooltip",i=t+" "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide");this._contentNode=this._container=_i("div",i),this._container.setAttribute("role","tooltip"),this._container.setAttribute("id","leaflet-tooltip-"+r(this))},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var i,e,n=this._map,o=this._container,s=n.latLngToContainerPoint(n.getCenter()),r=n.layerPointToContainerPoint(t),a=this.options.direction,h=o.offsetWidth,l=o.offsetHeight,u=B(this.options.offset),c=this._getAnchor();"top"===a?(i=h/2,e=l):"bottom"===a?(i=h/2,e=0):"center"===a?(i=h/2,e=l/2):"right"===a?(i=0,e=l/2):"left"===a?(i=h,e=l/2):r.xthis.options.maxZoom||en&&this._retainParent(o,s,r,n))},_retainChildren:function(t,i,e,n){for(var o=2*t;o<2*t+2;o++)for(var s=2*i;s<2*i+2;s++){var r=new O(o,s);r.z=e+1;var a=this._tileCoordsToKey(r),h=this._tiles[a];h&&h.active?h.retain=!0:(h&&h.loaded&&(h.retain=!0),e+1this.options.maxZoom||void 0!==this.options.minZoom&&o1)this._setView(t,e);else{for(var c=o.min.y;c<=o.max.y;c++)for(var d=o.min.x;d<=o.max.x;d++){var _=new O(d,c);if(_.z=this._tileZoom,this._isValidTile(_)){var p=this._tiles[this._tileCoordsToKey(_)];p?p.current=!0:r.push(_)}}if(r.sort((function(t,i){return t.distanceTo(s)-i.distanceTo(s)})),0!==r.length){this._loading||(this._loading=!0,this.fire("loading"));var m=document.createDocumentFragment();for(d=0;de.max.x)||!i.wrapLat&&(t.ye.max.y))return!1}if(!this.options.bounds)return!0;var n=this._tileCoordsToBounds(t);return D(this.options.bounds).overlaps(n)},_keyToBounds:function(t){return this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToNwSe:function(t){var i=this._map,e=this.getTileSize(),n=t.scaleBy(e),o=n.add(e),s=i.unproject(n,t.z),r=i.unproject(o,t.z);return[s,r]},_tileCoordsToBounds:function(t){var i=this._tileCoordsToNwSe(t),e=new N(i[0],i[1]);return this.options.noWrap||(e=this._map.wrapLatLngBounds(e)),e},_tileCoordsToKey:function(t){return t.x+":"+t.y+":"+t.z},_keyToTileCoords:function(t){var i=t.split(":"),e=new O(+i[0],+i[1]);return e.z=+i[2],e},_removeTile:function(t){var i=this._tiles[t];i&&(pi(i.el),delete this._tiles[t],this.fire("tileunload",{tile:i.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){yi(t,"leaflet-tile");var i=this.getTileSize();t.style.width=i.x+"px",t.style.height=i.y+"px",t.onselectstart=l,t.onmousemove=l,It.ielt9&&this.options.opacity<1&&Pi(t,this.options.opacity)},_addTile:function(t,i){var e=this._getTilePos(t),n=this._tileCoordsToKey(t),s=this.createTile(this._wrapCoords(t),o(this._tileReady,this,t));this._initTile(s),this.createTile.length<2&&M(o(this._tileReady,this,t,null,s)),zi(s,e),this._tiles[n]={el:s,coords:t,current:!0},i.appendChild(s),this.fire("tileloadstart",{tile:s,coords:t})},_tileReady:function(t,i,e){i&&this.fire("tileerror",{error:i,tile:e,coords:t});var n=this._tileCoordsToKey(t);e=this._tiles[n],e&&(e.loaded=+new Date,this._map._fadeAnimated?(Pi(e.el,0),z(this._fadeFrame),this._fadeFrame=M(this._updateOpacity,this)):(e.active=!0,this._pruneTiles()),i||(yi(e.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:e.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),It.ielt9||!this._map._fadeAnimated?M(this._pruneTiles,this):setTimeout(o(this._pruneTiles,this),250)))},_getTilePos:function(t){return t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var i=new O(this._wrapX?h(t.x,this._wrapX):t.x,this._wrapY?h(t.y,this._wrapY):t.y);return i.z=t.z,i},_pxBoundsToTileRange:function(t){var i=this.getTileSize();return new I(t.min.unscaleBy(i).floor(),t.max.unscaleBy(i).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var t in this._tiles)if(!this._tiles[t].loaded)return!1;return!0}});function Rn(t){return new In(t)}var Nn=In.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1,referrerPolicy:!1},initialize:function(t,i){this._url=t,i=_(this,i),i.detectRetina&&It.retina&&i.maxZoom>0?(i.tileSize=Math.floor(i.tileSize/2),i.zoomReverse?(i.zoomOffset--,i.minZoom=Math.min(i.maxZoom,i.minZoom+1)):(i.zoomOffset++,i.maxZoom=Math.max(i.minZoom,i.maxZoom-1)),i.minZoom=Math.max(0,i.minZoom)):i.zoomReverse?i.minZoom=Math.min(i.maxZoom,i.minZoom):i.maxZoom=Math.max(i.minZoom,i.maxZoom),"string"===typeof i.subdomains&&(i.subdomains=i.subdomains.split("")),this.on("tileunload",this._onTileRemove)},setUrl:function(t,i){return this._url===t&&void 0===i&&(i=!0),this._url=t,i||this.redraw(),this},createTile:function(t,i){var e=document.createElement("img");return Ri(e,"load",o(this._tileOnLoad,this,i,e)),Ri(e,"error",o(this._tileOnError,this,i,e)),(this.options.crossOrigin||""===this.options.crossOrigin)&&(e.crossOrigin=!0===this.options.crossOrigin?"":this.options.crossOrigin),"string"===typeof this.options.referrerPolicy&&(e.referrerPolicy=this.options.referrerPolicy),e.alt="",e.src=this.getTileUrl(t),e},getTileUrl:function(t){var i={r:It.retina?"@2x":"",s:this._getSubdomain(t),x:t.x,y:t.y,z:this._getZoomForUrl()};if(this._map&&!this._map.options.crs.infinite){var n=this._globalTileRange.max.y-t.y;this.options.tms&&(i["y"]=n),i["-y"]=n}return f(this._url,e(i,this.options))},_tileOnLoad:function(t,i){It.ielt9?setTimeout(o(t,this,null,i),0):t(null,i)},_tileOnError:function(t,i,e){var n=this.options.errorTileUrl;n&&i.getAttribute("src")!==n&&(i.src=n),t(e,i)},_onTileRemove:function(t){t.tile.onload=null},_getZoomForUrl:function(){var t=this._tileZoom,i=this.options.maxZoom,e=this.options.zoomReverse,n=this.options.zoomOffset;return e&&(t=i-t),t+n},_getSubdomain:function(t){var i=Math.abs(t.x+t.y)%this.options.subdomains.length;return this.options.subdomains[i]},_abortLoading:function(){var t,i;for(t in this._tiles)if(this._tiles[t].coords.z!==this._tileZoom&&(i=this._tiles[t].el,i.onload=l,i.onerror=l,!i.complete)){i.src=y;var e=this._tiles[t].coords;pi(i),delete this._tiles[t],this.fire("tileabort",{tile:i,coords:e})}},_removeTile:function(t){var i=this._tiles[t];if(i)return i.el.setAttribute("src",y),In.prototype._removeTile.call(this,t)},_tileReady:function(t,i,e){if(this._map&&(!e||e.getAttribute("src")!==y))return In.prototype._tileReady.call(this,t,i,e)}});function Dn(t,i){return new Nn(t,i)}var jn=Nn.extend({defaultWmsParams:{service:"WMS",request:"GetMap",layers:"",styles:"",format:"image/jpeg",transparent:!1,version:"1.1.1"},options:{crs:null,uppercase:!1},initialize:function(t,i){this._url=t;var n=e({},this.defaultWmsParams);for(var o in i)o in this.options||(n[o]=i[o]);i=_(this,i);var s=i.detectRetina&&It.retina?2:1,r=this.getTileSize();n.width=r.x*s,n.height=r.y*s,this.wmsParams=n},onAdd:function(t){this._crs=this.options.crs||t.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var i=this._wmsVersion>=1.3?"crs":"srs";this.wmsParams[i]=this._crs.code,Nn.prototype.onAdd.call(this,t)},getTileUrl:function(t){var i=this._tileCoordsToNwSe(t),e=this._crs,n=R(e.project(i[0]),e.project(i[1])),o=n.min,s=n.max,r=(this._wmsVersion>=1.3&&this._crs===Fe?[o.y,o.x,s.y,s.x]:[o.x,o.y,s.x,s.y]).join(","),a=Nn.prototype.getTileUrl.call(this,t);return a+p(this.wmsParams,a,this.options.uppercase)+(this.options.uppercase?"&BBOX=":"&bbox=")+r},setParams:function(t,i){return e(this.wmsParams,t),i||this.redraw(),this}});function Hn(t,i){return new jn(t,i)}Nn.WMS=jn,Dn.wms=Hn;var Fn=Ue.extend({options:{padding:.1},initialize:function(t){_(this,t),r(this),this._layers=this._layers||{}},onAdd:function(){this._container||(this._initContainer(),this._zoomAnimated&&yi(this._container,"leaflet-zoom-animated")),this.getPane().appendChild(this._container),this._update(),this.on("update",this._updatePaths,this)},onRemove:function(){this.off("update",this._updatePaths,this),this._destroyContainer()},getEvents:function(){var t={viewreset:this._reset,zoom:this._onZoom,moveend:this._update,zoomend:this._onZoomEnd};return this._zoomAnimated&&(t.zoomanim=this._onAnimZoom),t},_onAnimZoom:function(t){this._updateTransform(t.center,t.zoom)},_onZoom:function(){this._updateTransform(this._map.getCenter(),this._map.getZoom())},_updateTransform:function(t,i){var e=this._map.getZoomScale(i,this._zoom),n=this._map.getSize().multiplyBy(.5+this.options.padding),o=this._map.project(this._center,i),s=n.multiplyBy(-e).add(o).subtract(this._map._getNewPixelOrigin(t,i));It.any3d?Mi(this._container,s,e):zi(this._container,s)},_reset:function(){for(var t in this._update(),this._updateTransform(this._center,this._zoom),this._layers)this._layers[t]._reset()},_onZoomEnd:function(){for(var t in this._layers)this._layers[t]._project()},_updatePaths:function(){for(var t in this._layers)this._layers[t]._update()},_update:function(){var t=this.options.padding,i=this._map.getSize(),e=this._map.containerPointToLayerPoint(i.multiplyBy(-t)).round();this._bounds=new I(e,e.add(i.multiplyBy(1+2*t)).round()),this._center=this._map.getCenter(),this._zoom=this._map.getZoom()}}),Wn=Fn.extend({options:{tolerance:0},getEvents:function(){var t=Fn.prototype.getEvents.call(this);return t.viewprereset=this._onViewPreReset,t},_onViewPreReset:function(){this._postponeUpdatePaths=!0},onAdd:function(){Fn.prototype.onAdd.call(this),this._draw()},_initContainer:function(){var t=this._container=document.createElement("canvas");Ri(t,"mousemove",this._onMouseMove,this),Ri(t,"click dblclick mousedown mouseup contextmenu",this._onClick,this),Ri(t,"mouseout",this._handleMouseOut,this),t["_leaflet_disable_events"]=!0,this._ctx=t.getContext("2d")},_destroyContainer:function(){z(this._redrawRequest),delete this._ctx,pi(this._container),Di(this._container),delete this._container},_updatePaths:function(){if(!this._postponeUpdatePaths){var t;for(var i in this._redrawBounds=null,this._layers)t=this._layers[i],t._update();this._redraw()}},_update:function(){if(!this._map._animatingZoom||!this._bounds){Fn.prototype._update.call(this);var t=this._bounds,i=this._container,e=t.getSize(),n=It.retina?2:1;zi(i,t.min),i.width=n*e.x,i.height=n*e.y,i.style.width=e.x+"px",i.style.height=e.y+"px",It.retina&&this._ctx.scale(2,2),this._ctx.translate(-t.min.x,-t.min.y),this.fire("update")}},_reset:function(){Fn.prototype._reset.call(this),this._postponeUpdatePaths&&(this._postponeUpdatePaths=!1,this._updatePaths())},_initPath:function(t){this._updateDashArray(t),this._layers[r(t)]=t;var i=t._order={layer:t,prev:this._drawLast,next:null};this._drawLast&&(this._drawLast.next=i),this._drawLast=i,this._drawFirst=this._drawFirst||this._drawLast},_addPath:function(t){this._requestRedraw(t)},_removePath:function(t){var i=t._order,e=i.next,n=i.prev;e?e.prev=n:this._drawLast=n,n?n.next=e:this._drawFirst=e,delete t._order,delete this._layers[r(t)],this._requestRedraw(t)},_updatePath:function(t){this._extendRedrawBounds(t),t._project(),t._update(),this._requestRedraw(t)},_updateStyle:function(t){this._updateDashArray(t),this._requestRedraw(t)},_updateDashArray:function(t){if("string"===typeof t.options.dashArray){var i,e,n=t.options.dashArray.split(/[, ]+/),o=[];for(e=0;e')}}catch(t){}return function(t){return document.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}(),qn={_initContainer:function(){this._container=_i("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(Fn.prototype._update.call(this),this.fire("update"))},_initPath:function(t){var i=t._container=Vn("shape");yi(i,"leaflet-vml-shape "+(this.options.className||"")),i.coordsize="1 1",t._path=Vn("path"),i.appendChild(t._path),this._updateStyle(t),this._layers[r(t)]=t},_addPath:function(t){var i=t._container;this._container.appendChild(i),t.options.interactive&&t.addInteractiveTarget(i)},_removePath:function(t){var i=t._container;pi(i),t.removeInteractiveTarget(i),delete this._layers[r(t)]},_updateStyle:function(t){var i=t._stroke,e=t._fill,n=t.options,o=t._container;o.stroked=!!n.stroke,o.filled=!!n.fill,n.stroke?(i||(i=t._stroke=Vn("stroke")),o.appendChild(i),i.weight=n.weight+"px",i.color=n.color,i.opacity=n.opacity,n.dashArray?i.dashStyle=g(n.dashArray)?n.dashArray.join(" "):n.dashArray.replace(/( *, *)/g," "):i.dashStyle="",i.endcap=n.lineCap.replace("butt","flat"),i.joinstyle=n.lineJoin):i&&(o.removeChild(i),t._stroke=null),n.fill?(e||(e=t._fill=Vn("fill")),o.appendChild(e),e.color=n.fillColor||n.color,e.opacity=n.fillOpacity):e&&(o.removeChild(e),t._fill=null)},_updateCircle:function(t){var i=t._point.round(),e=Math.round(t._radius),n=Math.round(t._radiusY||e);this._setPath(t,t._empty()?"M0 0":"AL "+i.x+","+i.y+" "+e+","+n+" 0,23592600")},_setPath:function(t,i){t._path.v=i},_bringToFront:function(t){fi(t._container)},_bringToBack:function(t){gi(t._container)}},Gn=It.vml?Vn:X,Kn=Fn.extend({_initContainer:function(){this._container=Gn("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=Gn("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){pi(this._container),Di(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_update:function(){if(!this._map._animatingZoom||!this._bounds){Fn.prototype._update.call(this);var t=this._bounds,i=t.getSize(),e=this._container;this._svgSize&&this._svgSize.equals(i)||(this._svgSize=i,e.setAttribute("width",i.x),e.setAttribute("height",i.y)),zi(e,t.min),e.setAttribute("viewBox",[t.min.x,t.min.y,i.x,i.y].join(" ")),this.fire("update")}},_initPath:function(t){var i=t._path=Gn("path");t.options.className&&yi(i,t.options.className),t.options.interactive&&yi(i,"leaflet-interactive"),this._updateStyle(t),this._layers[r(t)]=t},_addPath:function(t){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(t._path),t.addInteractiveTarget(t._path)},_removePath:function(t){pi(t._path),t.removeInteractiveTarget(t._path),delete this._layers[r(t)]},_updatePath:function(t){t._project(),t._update()},_updateStyle:function(t){var i=t._path,e=t.options;i&&(e.stroke?(i.setAttribute("stroke",e.color),i.setAttribute("stroke-opacity",e.opacity),i.setAttribute("stroke-width",e.weight),i.setAttribute("stroke-linecap",e.lineCap),i.setAttribute("stroke-linejoin",e.lineJoin),e.dashArray?i.setAttribute("stroke-dasharray",e.dashArray):i.removeAttribute("stroke-dasharray"),e.dashOffset?i.setAttribute("stroke-dashoffset",e.dashOffset):i.removeAttribute("stroke-dashoffset")):i.setAttribute("stroke","none"),e.fill?(i.setAttribute("fill",e.fillColor||e.color),i.setAttribute("fill-opacity",e.fillOpacity),i.setAttribute("fill-rule",e.fillRule||"evenodd")):i.setAttribute("fill","none"))},_updatePoly:function(t,i){this._setPath(t,J(t._parts,i))},_updateCircle:function(t){var i=t._point,e=Math.max(Math.round(t._radius),1),n=Math.max(Math.round(t._radiusY),1)||e,o="a"+e+","+n+" 0 1,0 ",s=t._empty()?"M0 0":"M"+(i.x-e)+","+i.y+o+2*e+",0 "+o+2*-e+",0 ";this._setPath(t,s)},_setPath:function(t,i){t._path.setAttribute("d",i)},_bringToFront:function(t){fi(t._path)},_bringToBack:function(t){gi(t._path)}});function Yn(t){return It.svg||It.vml?new Kn(t):null}It.vml&&Kn.include(qn),ee.include({getRenderer:function(t){var i=t.options.renderer||this._getPaneRenderer(t.options.pane)||this.options.renderer||this._renderer;return i||(i=this._renderer=this._createRenderer()),this.hasLayer(i)||this.addLayer(i),i},_getPaneRenderer:function(t){if("overlayPane"===t||void 0===t)return!1;var i=this._paneRenderers[t];return void 0===i&&(i=this._createRenderer({pane:t}),this._paneRenderers[t]=i),i},_createRenderer:function(t){return this.options.preferCanvas&&Un(t)||Yn(t)}});var Xn=ln.extend({initialize:function(t,i){ln.prototype.initialize.call(this,this._boundsToLatLngs(t),i)},setBounds:function(t){return this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return t=D(t),[t.getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}});function Jn(t,i){return new Xn(t,i)}Kn.create=Gn,Kn.pointsToPath=J,cn.geometryToLayer=dn,cn.coordsToLatLng=pn,cn.coordsToLatLngs=mn,cn.latLngToCoords=fn,cn.latLngsToCoords=gn,cn.getFeature=vn,cn.asFeature=yn,ee.mergeOptions({boxZoom:!0});var $n=me.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane,this._resetStateTimeout=0,t.on("unload",this._destroy,this)},addHooks:function(){Ri(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){Di(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){pi(this._pane),delete this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){0!==this._resetStateTimeout&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(t){if(!t.shiftKey||1!==t.which&&1!==t.button)return!1;this._clearDeferredResetState(),this._resetState(),ni(),Si(),this._startPoint=this._map.mouseEventToContainerPoint(t),Ri(document,{contextmenu:Ki,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=_i("div","leaflet-zoom-box",this._container),yi(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(t);var i=new I(this._point,this._startPoint),e=i.getSize();zi(this._box,i.min),this._box.style.width=e.x+"px",this._box.style.height=e.y+"px"},_finish:function(){this._moved&&(pi(this._box),xi(this._container,"leaflet-crosshair")),oi(),ki(),Di(document,{contextmenu:Ki,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(t){if((1===t.which||1===t.button)&&(this._finish(),this._moved)){this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(o(this._resetState,this),0);var i=new N(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point));this._map.fitBounds(i).fire("boxzoomend",{boxZoomBounds:i})}},_onKeyDown:function(t){27===t.keyCode&&(this._finish(),this._clearDeferredResetState(),this._resetState())}});ee.addInitHook("addHandler","boxZoom",$n),ee.mergeOptions({doubleClickZoom:!0});var Qn=me.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(t){var i=this._map,e=i.getZoom(),n=i.options.zoomDelta,o=t.originalEvent.shiftKey?e-n:e+n;"center"===i.options.doubleClickZoom?i.setZoom(o):i.setZoomAround(t.containerPoint,o)}});ee.addInitHook("addHandler","doubleClickZoom",Qn),ee.mergeOptions({dragging:!0,inertia:!0,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0});var to=me.extend({addHooks:function(){if(!this._draggable){var t=this._map;this._draggable=new ye(t._mapPane,t._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on("predrag",this._onPreDragLimit,this),t.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDragWrap,this),t.on("zoomend",this._onZoomEnd,this),t.whenReady(this._onZoomEnd,this))}yi(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){xi(this._map._container,"leaflet-grab"),xi(this._map._container,"leaflet-touch-drag"),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDragStart:function(){var t=this._map;if(t._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity){var i=D(this._map.options.maxBounds);this._offsetLimit=R(this._map.latLngToContainerPoint(i.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(i.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))}else this._offsetLimit=null;t.fire("movestart").fire("dragstart"),t.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(t){if(this._map.options.inertia){var i=this._lastTime=+new Date,e=this._lastPos=this._draggable._absPos||this._draggable._newPos;this._positions.push(e),this._times.push(i),this._prunePositions(i)}this._map.fire("move",t).fire("drag",t)},_prunePositions:function(t){while(this._positions.length>1&&t-this._times[0]>50)this._positions.shift(),this._times.shift()},_onZoomEnd:function(){var t=this._map.getSize().divideBy(2),i=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=i.subtract(t).x,this._worldWidth=this._map.getPixelWorldBounds().getSize().x},_viscousLimit:function(t,i){return t-(t-i)*this._viscosity},_onPreDragLimit:function(){if(this._viscosity&&this._offsetLimit){var t=this._draggable._newPos.subtract(this._draggable._startPos),i=this._offsetLimit;t.xi.max.x&&(t.x=this._viscousLimit(t.x,i.max.x)),t.y>i.max.y&&(t.y=this._viscousLimit(t.y,i.max.y)),this._draggable._newPos=this._draggable._startPos.add(t)}},_onPreDragWrap:function(){var t=this._worldWidth,i=Math.round(t/2),e=this._initialWorldOffset,n=this._draggable._newPos.x,o=(n-i+e)%t+i-e,s=(n+i+e)%t-i-e,r=Math.abs(o+e)0?s:-s))-i;this._delta=0,this._startTime=null,r&&("center"===t.options.scrollWheelZoom?t.setZoom(i+r):t.setZoomAround(this._lastMousePos,i+r))}});ee.addInitHook("addHandler","scrollWheelZoom",eo);var no=600;ee.mergeOptions({tapHold:It.touchNative&&It.safari&&It.mobile,tapTolerance:15});var oo=me.extend({addHooks:function(){Ri(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){Di(this._map._container,"touchstart",this._onDown,this)},_onDown:function(t){if(clearTimeout(this._holdTimeout),1===t.touches.length){var i=t.touches[0];this._startPos=this._newPos=new O(i.clientX,i.clientY),this._holdTimeout=setTimeout(o((function(){this._cancel(),this._isTapValid()&&(Ri(document,"touchend",Gi),Ri(document,"touchend touchcancel",this._cancelClickPrevent),this._simulateEvent("contextmenu",i))}),this),no),Ri(document,"touchend touchcancel contextmenu",this._cancel,this),Ri(document,"touchmove",this._onMove,this)}},_cancelClickPrevent:function t(){Di(document,"touchend",Gi),Di(document,"touchend touchcancel",t)},_cancel:function(){clearTimeout(this._holdTimeout),Di(document,"touchend touchcancel contextmenu",this._cancel,this),Di(document,"touchmove",this._onMove,this)},_onMove:function(t){var i=t.touches[0];this._newPos=new O(i.clientX,i.clientY)},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_simulateEvent:function(t,i){var e=new MouseEvent(t,{bubbles:!0,cancelable:!0,view:window,screenX:i.screenX,screenY:i.screenY,clientX:i.clientX,clientY:i.clientY});e._simulated=!0,i.target.dispatchEvent(e)}});ee.addInitHook("addHandler","tapHold",oo),ee.mergeOptions({touchZoom:It.touch,bounceAtZoomLimits:!0});var so=me.extend({addHooks:function(){yi(this._map._container,"leaflet-touch-zoom"),Ri(this._map._container,"touchstart",this._onTouchStart,this)},removeHooks:function(){xi(this._map._container,"leaflet-touch-zoom"),Di(this._map._container,"touchstart",this._onTouchStart,this)},_onTouchStart:function(t){var i=this._map;if(t.touches&&2===t.touches.length&&!i._animatingZoom&&!this._zooming){var e=i.mouseEventToContainerPoint(t.touches[0]),n=i.mouseEventToContainerPoint(t.touches[1]);this._centerPoint=i.getSize()._divideBy(2),this._startLatLng=i.containerPointToLatLng(this._centerPoint),"center"!==i.options.touchZoom&&(this._pinchStartLatLng=i.containerPointToLatLng(e.add(n)._divideBy(2))),this._startDist=e.distanceTo(n),this._startZoom=i.getZoom(),this._moved=!1,this._zooming=!0,i._stop(),Ri(document,"touchmove",this._onTouchMove,this),Ri(document,"touchend touchcancel",this._onTouchEnd,this),Gi(t)}},_onTouchMove:function(t){if(t.touches&&2===t.touches.length&&this._zooming){var i=this._map,e=i.mouseEventToContainerPoint(t.touches[0]),n=i.mouseEventToContainerPoint(t.touches[1]),s=e.distanceTo(n)/this._startDist;if(this._zoom=i.getScaleZoom(s,this._startZoom),!i.options.bounceAtZoomLimits&&(this._zoomi.getMaxZoom()&&s>1)&&(this._zoom=i._limitZoom(this._zoom)),"center"===i.options.touchZoom){if(this._center=this._startLatLng,1===s)return}else{var r=e._add(n)._divideBy(2)._subtract(this._centerPoint);if(1===s&&0===r.x&&0===r.y)return;this._center=i.unproject(i.project(this._pinchStartLatLng,this._zoom).subtract(r),this._zoom)}this._moved||(i._moveStart(!0,!1),this._moved=!0),z(this._animRequest);var a=o(i._move,i,this._center,this._zoom,{pinch:!0,round:!1},void 0);this._animRequest=M(a,this,!0),Gi(t)}},_onTouchEnd:function(){this._moved&&this._zooming?(this._zooming=!1,z(this._animRequest),Di(document,"touchmove",this._onTouchMove,this),Di(document,"touchend touchcancel",this._onTouchEnd,this),this._map.options.zoomAnimation?this._map._animateZoom(this._center,this._map._limitZoom(this._zoom),!0,this._map.options.zoomSnap):this._map._resetView(this._center,this._map._limitZoom(this._zoom))):this._zooming=!1}});ee.addInitHook("addHandler","touchZoom",so),ee.BoxZoom=$n,ee.DoubleClickZoom=Qn,ee.Drag=to,ee.Keyboard=io,ee.ScrollWheelZoom=eo,ee.TapHold=oo,ee.TouchZoom=so,t.Bounds=I,t.Browser=It,t.CRS=F,t.Canvas=Wn,t.Circle=sn,t.CircleMarker=nn,t.Class=Z,t.Control=oe,t.DivIcon=An,t.DivOverlay=Zn,t.DomEvent=te,t.DomUtil=Ii,t.Draggable=ye,t.Evented=E,t.FeatureGroup=Ge,t.GeoJSON=cn,t.GridLayer=In,t.Handler=me,t.Icon=Ye,t.ImageOverlay=Pn,t.LatLng=j,t.LatLngBounds=N,t.Layer=Ue,t.LayerGroup=Ve,t.LineUtil=Ae,t.Map=ee,t.Marker=Qe,t.Mixin=ge,t.Path=en,t.Point=O,t.PolyUtil=Re,t.Polygon=ln,t.Polyline=an,t.Popup=Sn,t.PosAnimation=ie,t.Projection=je,t.Rectangle=Xn,t.Renderer=Fn,t.SVG=Kn,t.SVGOverlay=zn,t.TileLayer=Nn,t.Tooltip=En,t.Transformation=q,t.Util=C,t.VideoOverlay=Tn,t.bind=o,t.bounds=R,t.canvas=Un,t.circle=rn,t.circleMarker=on,t.control=se,t.divIcon=Bn,t.extend=e,t.featureGroup=Ke,t.geoJSON=wn,t.geoJson=bn,t.gridLayer=Rn,t.icon=Xe,t.imageOverlay=Ln,t.latLng=H,t.latLngBounds=D,t.layerGroup=qe,t.map=ne,t.marker=tn,t.point=B,t.polygon=un,t.polyline=hn,t.popup=kn,t.rectangle=Jn,t.setOptions=_,t.stamp=r,t.svg=Yn,t.svgOverlay=Cn,t.tileLayer=Dn,t.tooltip=On,t.transformation=G,t.version=i,t.videoOverlay=Mn;var ro=window.L;t.noConflict=function(){return window.L=ro,this},window.L=t}))}}]); +//# sourceMappingURL=243.d3fff3a7.js.map \ No newline at end of file diff --git a/fittrackee/dist/static/js/243.d3fff3a7.js.map b/fittrackee/dist/static/js/243.d3fff3a7.js.map new file mode 100644 index 00000000..92b48e37 --- /dev/null +++ b/fittrackee/dist/static/js/243.d3fff3a7.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/243.d3fff3a7.js","mappings":"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","sources":["webpack://fittrackee_client/./node_modules/leaflet/dist/leaflet-src.js"],"sourcesContent":["/* @preserve\n * Leaflet 1.9.3, a JS library for interactive maps. https://leafletjs.com\n * (c) 2010-2022 Vladimir Agafonkin, (c) 2010-2011 CloudMade\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.leaflet = {}));\n})(this, (function (exports) { 'use strict';\n\n var version = \"1.9.3\";\n\n /*\r\n * @namespace Util\r\n *\r\n * Various utility functions, used by Leaflet internally.\r\n */\r\n\r\n // @function extend(dest: Object, src?: Object): Object\r\n // Merges the properties of the `src` object (or multiple objects) into `dest` object and returns the latter. Has an `L.extend` shortcut.\r\n function extend(dest) {\r\n \tvar i, j, len, src;\r\n\r\n \tfor (j = 1, len = arguments.length; j < len; j++) {\r\n \t\tsrc = arguments[j];\r\n \t\tfor (i in src) {\r\n \t\t\tdest[i] = src[i];\r\n \t\t}\r\n \t}\r\n \treturn dest;\r\n }\r\n\r\n // @function create(proto: Object, properties?: Object): Object\r\n // Compatibility polyfill for [Object.create](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/create)\r\n var create$2 = Object.create || (function () {\r\n \tfunction F() {}\r\n \treturn function (proto) {\r\n \t\tF.prototype = proto;\r\n \t\treturn new F();\r\n \t};\r\n })();\r\n\r\n // @function bind(fn: Function, …): Function\r\n // Returns a new function bound to the arguments passed, like [Function.prototype.bind](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Function/bind).\r\n // Has a `L.bind()` shortcut.\r\n function bind(fn, obj) {\r\n \tvar slice = Array.prototype.slice;\r\n\r\n \tif (fn.bind) {\r\n \t\treturn fn.bind.apply(fn, slice.call(arguments, 1));\r\n \t}\r\n\r\n \tvar args = slice.call(arguments, 2);\r\n\r\n \treturn function () {\r\n \t\treturn fn.apply(obj, args.length ? args.concat(slice.call(arguments)) : arguments);\r\n \t};\r\n }\r\n\r\n // @property lastId: Number\r\n // Last unique ID used by [`stamp()`](#util-stamp)\r\n var lastId = 0;\r\n\r\n // @function stamp(obj: Object): Number\r\n // Returns the unique ID of an object, assigning it one if it doesn't have it.\r\n function stamp(obj) {\r\n \tif (!('_leaflet_id' in obj)) {\r\n \t\tobj['_leaflet_id'] = ++lastId;\r\n \t}\r\n \treturn obj._leaflet_id;\r\n }\r\n\r\n // @function throttle(fn: Function, time: Number, context: Object): Function\r\n // Returns a function which executes function `fn` with the given scope `context`\r\n // (so that the `this` keyword refers to `context` inside `fn`'s code). The function\r\n // `fn` will be called no more than one time per given amount of `time`. The arguments\r\n // received by the bound function will be any arguments passed when binding the\r\n // function, followed by any arguments passed when invoking the bound function.\r\n // Has an `L.throttle` shortcut.\r\n function throttle(fn, time, context) {\r\n \tvar lock, args, wrapperFn, later;\r\n\r\n \tlater = function () {\r\n \t\t// reset lock and call if queued\r\n \t\tlock = false;\r\n \t\tif (args) {\r\n \t\t\twrapperFn.apply(context, args);\r\n \t\t\targs = false;\r\n \t\t}\r\n \t};\r\n\r\n \twrapperFn = function () {\r\n \t\tif (lock) {\r\n \t\t\t// called too soon, queue to call later\r\n \t\t\targs = arguments;\r\n\r\n \t\t} else {\r\n \t\t\t// call and lock until later\r\n \t\t\tfn.apply(context, arguments);\r\n \t\t\tsetTimeout(later, time);\r\n \t\t\tlock = true;\r\n \t\t}\r\n \t};\r\n\r\n \treturn wrapperFn;\r\n }\r\n\r\n // @function wrapNum(num: Number, range: Number[], includeMax?: Boolean): Number\r\n // Returns the number `num` modulo `range` in such a way so it lies within\r\n // `range[0]` and `range[1]`. The returned value will be always smaller than\r\n // `range[1]` unless `includeMax` is set to `true`.\r\n function wrapNum(x, range, includeMax) {\r\n \tvar max = range[1],\r\n \t min = range[0],\r\n \t d = max - min;\r\n \treturn x === max && includeMax ? x : ((x - min) % d + d) % d + min;\r\n }\r\n\r\n // @function falseFn(): Function\r\n // Returns a function which always returns `false`.\r\n function falseFn() { return false; }\r\n\r\n // @function formatNum(num: Number, precision?: Number|false): Number\r\n // Returns the number `num` rounded with specified `precision`.\r\n // The default `precision` value is 6 decimal places.\r\n // `false` can be passed to skip any processing (can be useful to avoid round-off errors).\r\n function formatNum(num, precision) {\r\n \tif (precision === false) { return num; }\r\n \tvar pow = Math.pow(10, precision === undefined ? 6 : precision);\r\n \treturn Math.round(num * pow) / pow;\r\n }\r\n\r\n // @function trim(str: String): String\r\n // Compatibility polyfill for [String.prototype.trim](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim)\r\n function trim(str) {\r\n \treturn str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\r\n }\r\n\r\n // @function splitWords(str: String): String[]\r\n // Trims and splits the string on whitespace and returns the array of parts.\r\n function splitWords(str) {\r\n \treturn trim(str).split(/\\s+/);\r\n }\r\n\r\n // @function setOptions(obj: Object, options: Object): Object\r\n // Merges the given properties to the `options` of the `obj` object, returning the resulting options. See `Class options`. Has an `L.setOptions` shortcut.\r\n function setOptions(obj, options) {\r\n \tif (!Object.prototype.hasOwnProperty.call(obj, 'options')) {\r\n \t\tobj.options = obj.options ? create$2(obj.options) : {};\r\n \t}\r\n \tfor (var i in options) {\r\n \t\tobj.options[i] = options[i];\r\n \t}\r\n \treturn obj.options;\r\n }\r\n\r\n // @function getParamString(obj: Object, existingUrl?: String, uppercase?: Boolean): String\r\n // Converts an object into a parameter URL string, e.g. `{a: \"foo\", b: \"bar\"}`\r\n // translates to `'?a=foo&b=bar'`. If `existingUrl` is set, the parameters will\r\n // be appended at the end. If `uppercase` is `true`, the parameter names will\r\n // be uppercased (e.g. `'?A=foo&B=bar'`)\r\n function getParamString(obj, existingUrl, uppercase) {\r\n \tvar params = [];\r\n \tfor (var i in obj) {\r\n \t\tparams.push(encodeURIComponent(uppercase ? i.toUpperCase() : i) + '=' + encodeURIComponent(obj[i]));\r\n \t}\r\n \treturn ((!existingUrl || existingUrl.indexOf('?') === -1) ? '?' : '&') + params.join('&');\r\n }\r\n\r\n var templateRe = /\\{ *([\\w_ -]+) *\\}/g;\r\n\r\n // @function template(str: String, data: Object): String\r\n // Simple templating facility, accepts a template string of the form `'Hello {a}, {b}'`\r\n // and a data object like `{a: 'foo', b: 'bar'}`, returns evaluated string\r\n // `('Hello foo, bar')`. You can also specify functions instead of strings for\r\n // data values — they will be evaluated passing `data` as an argument.\r\n function template(str, data) {\r\n \treturn str.replace(templateRe, function (str, key) {\r\n \t\tvar value = data[key];\r\n\r\n \t\tif (value === undefined) {\r\n \t\t\tthrow new Error('No value provided for variable ' + str);\r\n\r\n \t\t} else if (typeof value === 'function') {\r\n \t\t\tvalue = value(data);\r\n \t\t}\r\n \t\treturn value;\r\n \t});\r\n }\r\n\r\n // @function isArray(obj): Boolean\r\n // Compatibility polyfill for [Array.isArray](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray)\r\n var isArray = Array.isArray || function (obj) {\r\n \treturn (Object.prototype.toString.call(obj) === '[object Array]');\r\n };\r\n\r\n // @function indexOf(array: Array, el: Object): Number\r\n // Compatibility polyfill for [Array.prototype.indexOf](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf)\r\n function indexOf(array, el) {\r\n \tfor (var i = 0; i < array.length; i++) {\r\n \t\tif (array[i] === el) { return i; }\r\n \t}\r\n \treturn -1;\r\n }\r\n\r\n // @property emptyImageUrl: String\r\n // Data URI string containing a base64-encoded empty GIF image.\r\n // Used as a hack to free memory from unused images on WebKit-powered\r\n // mobile devices (by setting image `src` to this string).\r\n var emptyImageUrl = 'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=';\r\n\r\n // inspired by https://paulirish.com/2011/requestanimationframe-for-smart-animating/\r\n\r\n function getPrefixed(name) {\r\n \treturn window['webkit' + name] || window['moz' + name] || window['ms' + name];\r\n }\r\n\r\n var lastTime = 0;\r\n\r\n // fallback for IE 7-8\r\n function timeoutDefer(fn) {\r\n \tvar time = +new Date(),\r\n \t timeToCall = Math.max(0, 16 - (time - lastTime));\r\n\r\n \tlastTime = time + timeToCall;\r\n \treturn window.setTimeout(fn, timeToCall);\r\n }\r\n\r\n var requestFn = window.requestAnimationFrame || getPrefixed('RequestAnimationFrame') || timeoutDefer;\r\n var cancelFn = window.cancelAnimationFrame || getPrefixed('CancelAnimationFrame') ||\r\n \t\tgetPrefixed('CancelRequestAnimationFrame') || function (id) { window.clearTimeout(id); };\r\n\r\n // @function requestAnimFrame(fn: Function, context?: Object, immediate?: Boolean): Number\r\n // Schedules `fn` to be executed when the browser repaints. `fn` is bound to\r\n // `context` if given. When `immediate` is set, `fn` is called immediately if\r\n // the browser doesn't have native support for\r\n // [`window.requestAnimationFrame`](https://developer.mozilla.org/docs/Web/API/window/requestAnimationFrame),\r\n // otherwise it's delayed. Returns a request ID that can be used to cancel the request.\r\n function requestAnimFrame(fn, context, immediate) {\r\n \tif (immediate && requestFn === timeoutDefer) {\r\n \t\tfn.call(context);\r\n \t} else {\r\n \t\treturn requestFn.call(window, bind(fn, context));\r\n \t}\r\n }\r\n\r\n // @function cancelAnimFrame(id: Number): undefined\r\n // Cancels a previous `requestAnimFrame`. See also [window.cancelAnimationFrame](https://developer.mozilla.org/docs/Web/API/window/cancelAnimationFrame).\r\n function cancelAnimFrame(id) {\r\n \tif (id) {\r\n \t\tcancelFn.call(window, id);\r\n \t}\r\n }\n\n var Util = {\n __proto__: null,\n extend: extend,\n create: create$2,\n bind: bind,\n get lastId () { return lastId; },\n stamp: stamp,\n throttle: throttle,\n wrapNum: wrapNum,\n falseFn: falseFn,\n formatNum: formatNum,\n trim: trim,\n splitWords: splitWords,\n setOptions: setOptions,\n getParamString: getParamString,\n template: template,\n isArray: isArray,\n indexOf: indexOf,\n emptyImageUrl: emptyImageUrl,\n requestFn: requestFn,\n cancelFn: cancelFn,\n requestAnimFrame: requestAnimFrame,\n cancelAnimFrame: cancelAnimFrame\n };\n\n // @class Class\r\n // @aka L.Class\r\n\r\n // @section\r\n // @uninheritable\r\n\r\n // Thanks to John Resig and Dean Edwards for inspiration!\r\n\r\n function Class() {}\r\n\r\n Class.extend = function (props) {\r\n\r\n \t// @function extend(props: Object): Function\r\n \t// [Extends the current class](#class-inheritance) given the properties to be included.\r\n \t// Returns a Javascript function that is a class constructor (to be called with `new`).\r\n \tvar NewClass = function () {\r\n\r\n \t\tsetOptions(this);\r\n\r\n \t\t// call the constructor\r\n \t\tif (this.initialize) {\r\n \t\t\tthis.initialize.apply(this, arguments);\r\n \t\t}\r\n\r\n \t\t// call all constructor hooks\r\n \t\tthis.callInitHooks();\r\n \t};\r\n\r\n \tvar parentProto = NewClass.__super__ = this.prototype;\r\n\r\n \tvar proto = create$2(parentProto);\r\n \tproto.constructor = NewClass;\r\n\r\n \tNewClass.prototype = proto;\r\n\r\n \t// inherit parent's statics\r\n \tfor (var i in this) {\r\n \t\tif (Object.prototype.hasOwnProperty.call(this, i) && i !== 'prototype' && i !== '__super__') {\r\n \t\t\tNewClass[i] = this[i];\r\n \t\t}\r\n \t}\r\n\r\n \t// mix static properties into the class\r\n \tif (props.statics) {\r\n \t\textend(NewClass, props.statics);\r\n \t}\r\n\r\n \t// mix includes into the prototype\r\n \tif (props.includes) {\r\n \t\tcheckDeprecatedMixinEvents(props.includes);\r\n \t\textend.apply(null, [proto].concat(props.includes));\r\n \t}\r\n\r\n \t// mix given properties into the prototype\r\n \textend(proto, props);\r\n \tdelete proto.statics;\r\n \tdelete proto.includes;\r\n\r\n \t// merge options\r\n \tif (proto.options) {\r\n \t\tproto.options = parentProto.options ? create$2(parentProto.options) : {};\r\n \t\textend(proto.options, props.options);\r\n \t}\r\n\r\n \tproto._initHooks = [];\r\n\r\n \t// add method for calling all hooks\r\n \tproto.callInitHooks = function () {\r\n\r\n \t\tif (this._initHooksCalled) { return; }\r\n\r\n \t\tif (parentProto.callInitHooks) {\r\n \t\t\tparentProto.callInitHooks.call(this);\r\n \t\t}\r\n\r\n \t\tthis._initHooksCalled = true;\r\n\r\n \t\tfor (var i = 0, len = proto._initHooks.length; i < len; i++) {\r\n \t\t\tproto._initHooks[i].call(this);\r\n \t\t}\r\n \t};\r\n\r\n \treturn NewClass;\r\n };\r\n\r\n\r\n // @function include(properties: Object): this\r\n // [Includes a mixin](#class-includes) into the current class.\r\n Class.include = function (props) {\r\n \tvar parentOptions = this.prototype.options;\r\n \textend(this.prototype, props);\r\n \tif (props.options) {\r\n \t\tthis.prototype.options = parentOptions;\r\n \t\tthis.mergeOptions(props.options);\r\n \t}\r\n \treturn this;\r\n };\r\n\r\n // @function mergeOptions(options: Object): this\r\n // [Merges `options`](#class-options) into the defaults of the class.\r\n Class.mergeOptions = function (options) {\r\n \textend(this.prototype.options, options);\r\n \treturn this;\r\n };\r\n\r\n // @function addInitHook(fn: Function): this\r\n // Adds a [constructor hook](#class-constructor-hooks) to the class.\r\n Class.addInitHook = function (fn) { // (Function) || (String, args...)\r\n \tvar args = Array.prototype.slice.call(arguments, 1);\r\n\r\n \tvar init = typeof fn === 'function' ? fn : function () {\r\n \t\tthis[fn].apply(this, args);\r\n \t};\r\n\r\n \tthis.prototype._initHooks = this.prototype._initHooks || [];\r\n \tthis.prototype._initHooks.push(init);\r\n \treturn this;\r\n };\r\n\r\n function checkDeprecatedMixinEvents(includes) {\r\n \t/* global L: true */\r\n \tif (typeof L === 'undefined' || !L || !L.Mixin) { return; }\r\n\r\n \tincludes = isArray(includes) ? includes : [includes];\r\n\r\n \tfor (var i = 0; i < includes.length; i++) {\r\n \t\tif (includes[i] === L.Mixin.Events) {\r\n \t\t\tconsole.warn('Deprecated include of L.Mixin.Events: ' +\r\n \t\t\t\t'this property will be removed in future releases, ' +\r\n \t\t\t\t'please inherit from L.Evented instead.', new Error().stack);\r\n \t\t}\r\n \t}\r\n }\n\n /*\r\n * @class Evented\r\n * @aka L.Evented\r\n * @inherits Class\r\n *\r\n * A set of methods shared between event-powered classes (like `Map` and `Marker`). Generally, events allow you to execute some function when something happens with an object (e.g. the user clicks on the map, causing the map to fire `'click'` event).\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * map.on('click', function(e) {\r\n * \talert(e.latlng);\r\n * } );\r\n * ```\r\n *\r\n * Leaflet deals with event listeners by reference, so if you want to add a listener and then remove it, define it as a function:\r\n *\r\n * ```js\r\n * function onClick(e) { ... }\r\n *\r\n * map.on('click', onClick);\r\n * map.off('click', onClick);\r\n * ```\r\n */\r\n\r\n var Events = {\r\n \t/* @method on(type: String, fn: Function, context?: Object): this\r\n \t * Adds a listener function (`fn`) to a particular event type of the object. You can optionally specify the context of the listener (object the this keyword will point to). You can also pass several space-separated types (e.g. `'click dblclick'`).\r\n \t *\r\n \t * @alternative\r\n \t * @method on(eventMap: Object): this\r\n \t * Adds a set of type/listener pairs, e.g. `{click: onClick, mousemove: onMouseMove}`\r\n \t */\r\n \ton: function (types, fn, context) {\r\n\r\n \t\t// types can be a map of types/handlers\r\n \t\tif (typeof types === 'object') {\r\n \t\t\tfor (var type in types) {\r\n \t\t\t\t// we don't process space-separated events here for performance;\r\n \t\t\t\t// it's a hot path since Layer uses the on(obj) syntax\r\n \t\t\t\tthis._on(type, types[type], fn);\r\n \t\t\t}\r\n\r\n \t\t} else {\r\n \t\t\t// types can be a string of space-separated words\r\n \t\t\ttypes = splitWords(types);\r\n\r\n \t\t\tfor (var i = 0, len = types.length; i < len; i++) {\r\n \t\t\t\tthis._on(types[i], fn, context);\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t/* @method off(type: String, fn?: Function, context?: Object): this\r\n \t * Removes a previously added listener function. If no function is specified, it will remove all the listeners of that particular event from the object. Note that if you passed a custom context to `on`, you must pass the same context to `off` in order to remove the listener.\r\n \t *\r\n \t * @alternative\r\n \t * @method off(eventMap: Object): this\r\n \t * Removes a set of type/listener pairs.\r\n \t *\r\n \t * @alternative\r\n \t * @method off: this\r\n \t * Removes all listeners to all events on the object. This includes implicitly attached events.\r\n \t */\r\n \toff: function (types, fn, context) {\r\n\r\n \t\tif (!arguments.length) {\r\n \t\t\t// clear all listeners if called without arguments\r\n \t\t\tdelete this._events;\r\n\r\n \t\t} else if (typeof types === 'object') {\r\n \t\t\tfor (var type in types) {\r\n \t\t\t\tthis._off(type, types[type], fn);\r\n \t\t\t}\r\n\r\n \t\t} else {\r\n \t\t\ttypes = splitWords(types);\r\n\r\n \t\t\tvar removeAll = arguments.length === 1;\r\n \t\t\tfor (var i = 0, len = types.length; i < len; i++) {\r\n \t\t\t\tif (removeAll) {\r\n \t\t\t\t\tthis._off(types[i]);\r\n \t\t\t\t} else {\r\n \t\t\t\t\tthis._off(types[i], fn, context);\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// attach listener (without syntactic sugar now)\r\n \t_on: function (type, fn, context, _once) {\r\n \t\tif (typeof fn !== 'function') {\r\n \t\t\tconsole.warn('wrong listener type: ' + typeof fn);\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\t// check if fn already there\r\n \t\tif (this._listens(type, fn, context) !== false) {\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\tif (context === this) {\r\n \t\t\t// Less memory footprint.\r\n \t\t\tcontext = undefined;\r\n \t\t}\r\n\r\n \t\tvar newListener = {fn: fn, ctx: context};\r\n \t\tif (_once) {\r\n \t\t\tnewListener.once = true;\r\n \t\t}\r\n\r\n \t\tthis._events = this._events || {};\r\n \t\tthis._events[type] = this._events[type] || [];\r\n \t\tthis._events[type].push(newListener);\r\n \t},\r\n\r\n \t_off: function (type, fn, context) {\r\n \t\tvar listeners,\r\n \t\t i,\r\n \t\t len;\r\n\r\n \t\tif (!this._events) {\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\tlisteners = this._events[type];\r\n \t\tif (!listeners) {\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\tif (arguments.length === 1) { // remove all\r\n \t\t\tif (this._firingCount) {\r\n \t\t\t\t// Set all removed listeners to noop\r\n \t\t\t\t// so they are not called if remove happens in fire\r\n \t\t\t\tfor (i = 0, len = listeners.length; i < len; i++) {\r\n \t\t\t\t\tlisteners[i].fn = falseFn;\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t\t// clear all listeners for a type if function isn't specified\r\n \t\t\tdelete this._events[type];\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\tif (typeof fn !== 'function') {\r\n \t\t\tconsole.warn('wrong listener type: ' + typeof fn);\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\t// find fn and remove it\r\n \t\tvar index = this._listens(type, fn, context);\r\n \t\tif (index !== false) {\r\n \t\t\tvar listener = listeners[index];\r\n \t\t\tif (this._firingCount) {\r\n \t\t\t\t// set the removed listener to noop so that's not called if remove happens in fire\r\n \t\t\t\tlistener.fn = falseFn;\r\n\r\n \t\t\t\t/* copy array in case events are being fired */\r\n \t\t\t\tthis._events[type] = listeners = listeners.slice();\r\n \t\t\t}\r\n \t\t\tlisteners.splice(index, 1);\r\n \t\t}\r\n \t},\r\n\r\n \t// @method fire(type: String, data?: Object, propagate?: Boolean): this\r\n \t// Fires an event of the specified type. You can optionally provide a data\r\n \t// object — the first argument of the listener function will contain its\r\n \t// properties. The event can optionally be propagated to event parents.\r\n \tfire: function (type, data, propagate) {\r\n \t\tif (!this.listens(type, propagate)) { return this; }\r\n\r\n \t\tvar event = extend({}, data, {\r\n \t\t\ttype: type,\r\n \t\t\ttarget: this,\r\n \t\t\tsourceTarget: data && data.sourceTarget || this\r\n \t\t});\r\n\r\n \t\tif (this._events) {\r\n \t\t\tvar listeners = this._events[type];\r\n \t\t\tif (listeners) {\r\n \t\t\t\tthis._firingCount = (this._firingCount + 1) || 1;\r\n \t\t\t\tfor (var i = 0, len = listeners.length; i < len; i++) {\r\n \t\t\t\t\tvar l = listeners[i];\r\n \t\t\t\t\t// off overwrites l.fn, so we need to copy fn to a var\r\n \t\t\t\t\tvar fn = l.fn;\r\n \t\t\t\t\tif (l.once) {\r\n \t\t\t\t\t\tthis.off(type, fn, l.ctx);\r\n \t\t\t\t\t}\r\n \t\t\t\t\tfn.call(l.ctx || this, event);\r\n \t\t\t\t}\r\n\r\n \t\t\t\tthis._firingCount--;\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\tif (propagate) {\r\n \t\t\t// propagate the event to parents (set with addEventParent)\r\n \t\t\tthis._propagateEvent(event);\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method listens(type: String, propagate?: Boolean): Boolean\r\n \t// @method listens(type: String, fn: Function, context?: Object, propagate?: Boolean): Boolean\r\n \t// Returns `true` if a particular event type has any listeners attached to it.\r\n \t// The verification can optionally be propagated, it will return `true` if parents have the listener attached to it.\r\n \tlistens: function (type, fn, context, propagate) {\r\n \t\tif (typeof type !== 'string') {\r\n \t\t\tconsole.warn('\"string\" type argument expected');\r\n \t\t}\r\n\r\n \t\t// we don't overwrite the input `fn` value, because we need to use it for propagation\r\n \t\tvar _fn = fn;\r\n \t\tif (typeof fn !== 'function') {\r\n \t\t\tpropagate = !!fn;\r\n \t\t\t_fn = undefined;\r\n \t\t\tcontext = undefined;\r\n \t\t}\r\n\r\n \t\tvar listeners = this._events && this._events[type];\r\n \t\tif (listeners && listeners.length) {\r\n \t\t\tif (this._listens(type, _fn, context) !== false) {\r\n \t\t\t\treturn true;\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\tif (propagate) {\r\n \t\t\t// also check parents for listeners if event propagates\r\n \t\t\tfor (var id in this._eventParents) {\r\n \t\t\t\tif (this._eventParents[id].listens(type, fn, context, propagate)) { return true; }\r\n \t\t\t}\r\n \t\t}\r\n \t\treturn false;\r\n \t},\r\n\r\n \t// returns the index (number) or false\r\n \t_listens: function (type, fn, context) {\r\n \t\tif (!this._events) {\r\n \t\t\treturn false;\r\n \t\t}\r\n\r\n \t\tvar listeners = this._events[type] || [];\r\n \t\tif (!fn) {\r\n \t\t\treturn !!listeners.length;\r\n \t\t}\r\n\r\n \t\tif (context === this) {\r\n \t\t\t// Less memory footprint.\r\n \t\t\tcontext = undefined;\r\n \t\t}\r\n\r\n \t\tfor (var i = 0, len = listeners.length; i < len; i++) {\r\n \t\t\tif (listeners[i].fn === fn && listeners[i].ctx === context) {\r\n \t\t\t\treturn i;\r\n \t\t\t}\r\n \t\t}\r\n \t\treturn false;\r\n\r\n \t},\r\n\r\n \t// @method once(…): this\r\n \t// Behaves as [`on(…)`](#evented-on), except the listener will only get fired once and then removed.\r\n \tonce: function (types, fn, context) {\r\n\r\n \t\t// types can be a map of types/handlers\r\n \t\tif (typeof types === 'object') {\r\n \t\t\tfor (var type in types) {\r\n \t\t\t\t// we don't process space-separated events here for performance;\r\n \t\t\t\t// it's a hot path since Layer uses the on(obj) syntax\r\n \t\t\t\tthis._on(type, types[type], fn, true);\r\n \t\t\t}\r\n\r\n \t\t} else {\r\n \t\t\t// types can be a string of space-separated words\r\n \t\t\ttypes = splitWords(types);\r\n\r\n \t\t\tfor (var i = 0, len = types.length; i < len; i++) {\r\n \t\t\t\tthis._on(types[i], fn, context, true);\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method addEventParent(obj: Evented): this\r\n \t// Adds an event parent - an `Evented` that will receive propagated events\r\n \taddEventParent: function (obj) {\r\n \t\tthis._eventParents = this._eventParents || {};\r\n \t\tthis._eventParents[stamp(obj)] = obj;\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method removeEventParent(obj: Evented): this\r\n \t// Removes an event parent, so it will stop receiving propagated events\r\n \tremoveEventParent: function (obj) {\r\n \t\tif (this._eventParents) {\r\n \t\t\tdelete this._eventParents[stamp(obj)];\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \t_propagateEvent: function (e) {\r\n \t\tfor (var id in this._eventParents) {\r\n \t\t\tthis._eventParents[id].fire(e.type, extend({\r\n \t\t\t\tlayer: e.target,\r\n \t\t\t\tpropagatedFrom: e.target\r\n \t\t\t}, e), true);\r\n \t\t}\r\n \t}\r\n };\r\n\r\n // aliases; we should ditch those eventually\r\n\r\n // @method addEventListener(…): this\r\n // Alias to [`on(…)`](#evented-on)\r\n Events.addEventListener = Events.on;\r\n\r\n // @method removeEventListener(…): this\r\n // Alias to [`off(…)`](#evented-off)\r\n\r\n // @method clearAllEventListeners(…): this\r\n // Alias to [`off()`](#evented-off)\r\n Events.removeEventListener = Events.clearAllEventListeners = Events.off;\r\n\r\n // @method addOneTimeEventListener(…): this\r\n // Alias to [`once(…)`](#evented-once)\r\n Events.addOneTimeEventListener = Events.once;\r\n\r\n // @method fireEvent(…): this\r\n // Alias to [`fire(…)`](#evented-fire)\r\n Events.fireEvent = Events.fire;\r\n\r\n // @method hasEventListeners(…): Boolean\r\n // Alias to [`listens(…)`](#evented-listens)\r\n Events.hasEventListeners = Events.listens;\r\n\r\n var Evented = Class.extend(Events);\n\n /*\r\n * @class Point\r\n * @aka L.Point\r\n *\r\n * Represents a point with `x` and `y` coordinates in pixels.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var point = L.point(200, 300);\r\n * ```\r\n *\r\n * All Leaflet methods and options that accept `Point` objects also accept them in a simple Array form (unless noted otherwise), so these lines are equivalent:\r\n *\r\n * ```js\r\n * map.panBy([200, 300]);\r\n * map.panBy(L.point(200, 300));\r\n * ```\r\n *\r\n * Note that `Point` does not inherit from Leaflet's `Class` object,\r\n * which means new classes can't inherit from it, and new methods\r\n * can't be added to it with the `include` function.\r\n */\r\n\r\n function Point(x, y, round) {\r\n \t// @property x: Number; The `x` coordinate of the point\r\n \tthis.x = (round ? Math.round(x) : x);\r\n \t// @property y: Number; The `y` coordinate of the point\r\n \tthis.y = (round ? Math.round(y) : y);\r\n }\r\n\r\n var trunc = Math.trunc || function (v) {\r\n \treturn v > 0 ? Math.floor(v) : Math.ceil(v);\r\n };\r\n\r\n Point.prototype = {\r\n\r\n \t// @method clone(): Point\r\n \t// Returns a copy of the current point.\r\n \tclone: function () {\r\n \t\treturn new Point(this.x, this.y);\r\n \t},\r\n\r\n \t// @method add(otherPoint: Point): Point\r\n \t// Returns the result of addition of the current and the given points.\r\n \tadd: function (point) {\r\n \t\t// non-destructive, returns a new point\r\n \t\treturn this.clone()._add(toPoint(point));\r\n \t},\r\n\r\n \t_add: function (point) {\r\n \t\t// destructive, used directly for performance in situations where it's safe to modify existing point\r\n \t\tthis.x += point.x;\r\n \t\tthis.y += point.y;\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method subtract(otherPoint: Point): Point\r\n \t// Returns the result of subtraction of the given point from the current.\r\n \tsubtract: function (point) {\r\n \t\treturn this.clone()._subtract(toPoint(point));\r\n \t},\r\n\r\n \t_subtract: function (point) {\r\n \t\tthis.x -= point.x;\r\n \t\tthis.y -= point.y;\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method divideBy(num: Number): Point\r\n \t// Returns the result of division of the current point by the given number.\r\n \tdivideBy: function (num) {\r\n \t\treturn this.clone()._divideBy(num);\r\n \t},\r\n\r\n \t_divideBy: function (num) {\r\n \t\tthis.x /= num;\r\n \t\tthis.y /= num;\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method multiplyBy(num: Number): Point\r\n \t// Returns the result of multiplication of the current point by the given number.\r\n \tmultiplyBy: function (num) {\r\n \t\treturn this.clone()._multiplyBy(num);\r\n \t},\r\n\r\n \t_multiplyBy: function (num) {\r\n \t\tthis.x *= num;\r\n \t\tthis.y *= num;\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method scaleBy(scale: Point): Point\r\n \t// Multiply each coordinate of the current point by each coordinate of\r\n \t// `scale`. In linear algebra terms, multiply the point by the\r\n \t// [scaling matrix](https://en.wikipedia.org/wiki/Scaling_%28geometry%29#Matrix_representation)\r\n \t// defined by `scale`.\r\n \tscaleBy: function (point) {\r\n \t\treturn new Point(this.x * point.x, this.y * point.y);\r\n \t},\r\n\r\n \t// @method unscaleBy(scale: Point): Point\r\n \t// Inverse of `scaleBy`. Divide each coordinate of the current point by\r\n \t// each coordinate of `scale`.\r\n \tunscaleBy: function (point) {\r\n \t\treturn new Point(this.x / point.x, this.y / point.y);\r\n \t},\r\n\r\n \t// @method round(): Point\r\n \t// Returns a copy of the current point with rounded coordinates.\r\n \tround: function () {\r\n \t\treturn this.clone()._round();\r\n \t},\r\n\r\n \t_round: function () {\r\n \t\tthis.x = Math.round(this.x);\r\n \t\tthis.y = Math.round(this.y);\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method floor(): Point\r\n \t// Returns a copy of the current point with floored coordinates (rounded down).\r\n \tfloor: function () {\r\n \t\treturn this.clone()._floor();\r\n \t},\r\n\r\n \t_floor: function () {\r\n \t\tthis.x = Math.floor(this.x);\r\n \t\tthis.y = Math.floor(this.y);\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method ceil(): Point\r\n \t// Returns a copy of the current point with ceiled coordinates (rounded up).\r\n \tceil: function () {\r\n \t\treturn this.clone()._ceil();\r\n \t},\r\n\r\n \t_ceil: function () {\r\n \t\tthis.x = Math.ceil(this.x);\r\n \t\tthis.y = Math.ceil(this.y);\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method trunc(): Point\r\n \t// Returns a copy of the current point with truncated coordinates (rounded towards zero).\r\n \ttrunc: function () {\r\n \t\treturn this.clone()._trunc();\r\n \t},\r\n\r\n \t_trunc: function () {\r\n \t\tthis.x = trunc(this.x);\r\n \t\tthis.y = trunc(this.y);\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method distanceTo(otherPoint: Point): Number\r\n \t// Returns the cartesian distance between the current and the given points.\r\n \tdistanceTo: function (point) {\r\n \t\tpoint = toPoint(point);\r\n\r\n \t\tvar x = point.x - this.x,\r\n \t\t y = point.y - this.y;\r\n\r\n \t\treturn Math.sqrt(x * x + y * y);\r\n \t},\r\n\r\n \t// @method equals(otherPoint: Point): Boolean\r\n \t// Returns `true` if the given point has the same coordinates.\r\n \tequals: function (point) {\r\n \t\tpoint = toPoint(point);\r\n\r\n \t\treturn point.x === this.x &&\r\n \t\t point.y === this.y;\r\n \t},\r\n\r\n \t// @method contains(otherPoint: Point): Boolean\r\n \t// Returns `true` if both coordinates of the given point are less than the corresponding current point coordinates (in absolute values).\r\n \tcontains: function (point) {\r\n \t\tpoint = toPoint(point);\r\n\r\n \t\treturn Math.abs(point.x) <= Math.abs(this.x) &&\r\n \t\t Math.abs(point.y) <= Math.abs(this.y);\r\n \t},\r\n\r\n \t// @method toString(): String\r\n \t// Returns a string representation of the point for debugging purposes.\r\n \ttoString: function () {\r\n \t\treturn 'Point(' +\r\n \t\t formatNum(this.x) + ', ' +\r\n \t\t formatNum(this.y) + ')';\r\n \t}\r\n };\r\n\r\n // @factory L.point(x: Number, y: Number, round?: Boolean)\r\n // Creates a Point object with the given `x` and `y` coordinates. If optional `round` is set to true, rounds the `x` and `y` values.\r\n\r\n // @alternative\r\n // @factory L.point(coords: Number[])\r\n // Expects an array of the form `[x, y]` instead.\r\n\r\n // @alternative\r\n // @factory L.point(coords: Object)\r\n // Expects a plain object of the form `{x: Number, y: Number}` instead.\r\n function toPoint(x, y, round) {\r\n \tif (x instanceof Point) {\r\n \t\treturn x;\r\n \t}\r\n \tif (isArray(x)) {\r\n \t\treturn new Point(x[0], x[1]);\r\n \t}\r\n \tif (x === undefined || x === null) {\r\n \t\treturn x;\r\n \t}\r\n \tif (typeof x === 'object' && 'x' in x && 'y' in x) {\r\n \t\treturn new Point(x.x, x.y);\r\n \t}\r\n \treturn new Point(x, y, round);\r\n }\n\n /*\r\n * @class Bounds\r\n * @aka L.Bounds\r\n *\r\n * Represents a rectangular area in pixel coordinates.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var p1 = L.point(10, 10),\r\n * p2 = L.point(40, 60),\r\n * bounds = L.bounds(p1, p2);\r\n * ```\r\n *\r\n * All Leaflet methods that accept `Bounds` objects also accept them in a simple Array form (unless noted otherwise), so the bounds example above can be passed like this:\r\n *\r\n * ```js\r\n * otherBounds.intersects([[10, 10], [40, 60]]);\r\n * ```\r\n *\r\n * Note that `Bounds` does not inherit from Leaflet's `Class` object,\r\n * which means new classes can't inherit from it, and new methods\r\n * can't be added to it with the `include` function.\r\n */\r\n\r\n function Bounds(a, b) {\r\n \tif (!a) { return; }\r\n\r\n \tvar points = b ? [a, b] : a;\r\n\r\n \tfor (var i = 0, len = points.length; i < len; i++) {\r\n \t\tthis.extend(points[i]);\r\n \t}\r\n }\r\n\r\n Bounds.prototype = {\r\n \t// @method extend(point: Point): this\r\n \t// Extends the bounds to contain the given point.\r\n\r\n \t// @alternative\r\n \t// @method extend(otherBounds: Bounds): this\r\n \t// Extend the bounds to contain the given bounds\r\n \textend: function (obj) {\r\n \t\tvar min2, max2;\r\n \t\tif (!obj) { return this; }\r\n\r\n \t\tif (obj instanceof Point || typeof obj[0] === 'number' || 'x' in obj) {\r\n \t\t\tmin2 = max2 = toPoint(obj);\r\n \t\t} else {\r\n \t\t\tobj = toBounds(obj);\r\n \t\t\tmin2 = obj.min;\r\n \t\t\tmax2 = obj.max;\r\n\r\n \t\t\tif (!min2 || !max2) { return this; }\r\n \t\t}\r\n\r\n \t\t// @property min: Point\r\n \t\t// The top left corner of the rectangle.\r\n \t\t// @property max: Point\r\n \t\t// The bottom right corner of the rectangle.\r\n \t\tif (!this.min && !this.max) {\r\n \t\t\tthis.min = min2.clone();\r\n \t\t\tthis.max = max2.clone();\r\n \t\t} else {\r\n \t\t\tthis.min.x = Math.min(min2.x, this.min.x);\r\n \t\t\tthis.max.x = Math.max(max2.x, this.max.x);\r\n \t\t\tthis.min.y = Math.min(min2.y, this.min.y);\r\n \t\t\tthis.max.y = Math.max(max2.y, this.max.y);\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method getCenter(round?: Boolean): Point\r\n \t// Returns the center point of the bounds.\r\n \tgetCenter: function (round) {\r\n \t\treturn toPoint(\r\n \t\t (this.min.x + this.max.x) / 2,\r\n \t\t (this.min.y + this.max.y) / 2, round);\r\n \t},\r\n\r\n \t// @method getBottomLeft(): Point\r\n \t// Returns the bottom-left point of the bounds.\r\n \tgetBottomLeft: function () {\r\n \t\treturn toPoint(this.min.x, this.max.y);\r\n \t},\r\n\r\n \t// @method getTopRight(): Point\r\n \t// Returns the top-right point of the bounds.\r\n \tgetTopRight: function () { // -> Point\r\n \t\treturn toPoint(this.max.x, this.min.y);\r\n \t},\r\n\r\n \t// @method getTopLeft(): Point\r\n \t// Returns the top-left point of the bounds (i.e. [`this.min`](#bounds-min)).\r\n \tgetTopLeft: function () {\r\n \t\treturn this.min; // left, top\r\n \t},\r\n\r\n \t// @method getBottomRight(): Point\r\n \t// Returns the bottom-right point of the bounds (i.e. [`this.max`](#bounds-max)).\r\n \tgetBottomRight: function () {\r\n \t\treturn this.max; // right, bottom\r\n \t},\r\n\r\n \t// @method getSize(): Point\r\n \t// Returns the size of the given bounds\r\n \tgetSize: function () {\r\n \t\treturn this.max.subtract(this.min);\r\n \t},\r\n\r\n \t// @method contains(otherBounds: Bounds): Boolean\r\n \t// Returns `true` if the rectangle contains the given one.\r\n \t// @alternative\r\n \t// @method contains(point: Point): Boolean\r\n \t// Returns `true` if the rectangle contains the given point.\r\n \tcontains: function (obj) {\r\n \t\tvar min, max;\r\n\r\n \t\tif (typeof obj[0] === 'number' || obj instanceof Point) {\r\n \t\t\tobj = toPoint(obj);\r\n \t\t} else {\r\n \t\t\tobj = toBounds(obj);\r\n \t\t}\r\n\r\n \t\tif (obj instanceof Bounds) {\r\n \t\t\tmin = obj.min;\r\n \t\t\tmax = obj.max;\r\n \t\t} else {\r\n \t\t\tmin = max = obj;\r\n \t\t}\r\n\r\n \t\treturn (min.x >= this.min.x) &&\r\n \t\t (max.x <= this.max.x) &&\r\n \t\t (min.y >= this.min.y) &&\r\n \t\t (max.y <= this.max.y);\r\n \t},\r\n\r\n \t// @method intersects(otherBounds: Bounds): Boolean\r\n \t// Returns `true` if the rectangle intersects the given bounds. Two bounds\r\n \t// intersect if they have at least one point in common.\r\n \tintersects: function (bounds) { // (Bounds) -> Boolean\r\n \t\tbounds = toBounds(bounds);\r\n\r\n \t\tvar min = this.min,\r\n \t\t max = this.max,\r\n \t\t min2 = bounds.min,\r\n \t\t max2 = bounds.max,\r\n \t\t xIntersects = (max2.x >= min.x) && (min2.x <= max.x),\r\n \t\t yIntersects = (max2.y >= min.y) && (min2.y <= max.y);\r\n\r\n \t\treturn xIntersects && yIntersects;\r\n \t},\r\n\r\n \t// @method overlaps(otherBounds: Bounds): Boolean\r\n \t// Returns `true` if the rectangle overlaps the given bounds. Two bounds\r\n \t// overlap if their intersection is an area.\r\n \toverlaps: function (bounds) { // (Bounds) -> Boolean\r\n \t\tbounds = toBounds(bounds);\r\n\r\n \t\tvar min = this.min,\r\n \t\t max = this.max,\r\n \t\t min2 = bounds.min,\r\n \t\t max2 = bounds.max,\r\n \t\t xOverlaps = (max2.x > min.x) && (min2.x < max.x),\r\n \t\t yOverlaps = (max2.y > min.y) && (min2.y < max.y);\r\n\r\n \t\treturn xOverlaps && yOverlaps;\r\n \t},\r\n\r\n \t// @method isValid(): Boolean\r\n \t// Returns `true` if the bounds are properly initialized.\r\n \tisValid: function () {\r\n \t\treturn !!(this.min && this.max);\r\n \t},\r\n\r\n\r\n \t// @method pad(bufferRatio: Number): Bounds\r\n \t// Returns bounds created by extending or retracting the current bounds by a given ratio in each direction.\r\n \t// For example, a ratio of 0.5 extends the bounds by 50% in each direction.\r\n \t// Negative values will retract the bounds.\r\n \tpad: function (bufferRatio) {\r\n \t\tvar min = this.min,\r\n \t\tmax = this.max,\r\n \t\theightBuffer = Math.abs(min.x - max.x) * bufferRatio,\r\n \t\twidthBuffer = Math.abs(min.y - max.y) * bufferRatio;\r\n\r\n\r\n \t\treturn toBounds(\r\n \t\t\ttoPoint(min.x - heightBuffer, min.y - widthBuffer),\r\n \t\t\ttoPoint(max.x + heightBuffer, max.y + widthBuffer));\r\n \t},\r\n\r\n\r\n \t// @method equals(otherBounds: Bounds): Boolean\r\n \t// Returns `true` if the rectangle is equivalent to the given bounds.\r\n \tequals: function (bounds) {\r\n \t\tif (!bounds) { return false; }\r\n\r\n \t\tbounds = toBounds(bounds);\r\n\r\n \t\treturn this.min.equals(bounds.getTopLeft()) &&\r\n \t\t\tthis.max.equals(bounds.getBottomRight());\r\n \t},\r\n };\r\n\r\n\r\n // @factory L.bounds(corner1: Point, corner2: Point)\r\n // Creates a Bounds object from two corners coordinate pairs.\r\n // @alternative\r\n // @factory L.bounds(points: Point[])\r\n // Creates a Bounds object from the given array of points.\r\n function toBounds(a, b) {\r\n \tif (!a || a instanceof Bounds) {\r\n \t\treturn a;\r\n \t}\r\n \treturn new Bounds(a, b);\r\n }\n\n /*\r\n * @class LatLngBounds\r\n * @aka L.LatLngBounds\r\n *\r\n * Represents a rectangular geographical area on a map.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var corner1 = L.latLng(40.712, -74.227),\r\n * corner2 = L.latLng(40.774, -74.125),\r\n * bounds = L.latLngBounds(corner1, corner2);\r\n * ```\r\n *\r\n * All Leaflet methods that accept LatLngBounds objects also accept them in a simple Array form (unless noted otherwise), so the bounds example above can be passed like this:\r\n *\r\n * ```js\r\n * map.fitBounds([\r\n * \t[40.712, -74.227],\r\n * \t[40.774, -74.125]\r\n * ]);\r\n * ```\r\n *\r\n * Caution: if the area crosses the antimeridian (often confused with the International Date Line), you must specify corners _outside_ the [-180, 180] degrees longitude range.\r\n *\r\n * Note that `LatLngBounds` does not inherit from Leaflet's `Class` object,\r\n * which means new classes can't inherit from it, and new methods\r\n * can't be added to it with the `include` function.\r\n */\r\n\r\n function LatLngBounds(corner1, corner2) { // (LatLng, LatLng) or (LatLng[])\r\n \tif (!corner1) { return; }\r\n\r\n \tvar latlngs = corner2 ? [corner1, corner2] : corner1;\r\n\r\n \tfor (var i = 0, len = latlngs.length; i < len; i++) {\r\n \t\tthis.extend(latlngs[i]);\r\n \t}\r\n }\r\n\r\n LatLngBounds.prototype = {\r\n\r\n \t// @method extend(latlng: LatLng): this\r\n \t// Extend the bounds to contain the given point\r\n\r\n \t// @alternative\r\n \t// @method extend(otherBounds: LatLngBounds): this\r\n \t// Extend the bounds to contain the given bounds\r\n \textend: function (obj) {\r\n \t\tvar sw = this._southWest,\r\n \t\t ne = this._northEast,\r\n \t\t sw2, ne2;\r\n\r\n \t\tif (obj instanceof LatLng) {\r\n \t\t\tsw2 = obj;\r\n \t\t\tne2 = obj;\r\n\r\n \t\t} else if (obj instanceof LatLngBounds) {\r\n \t\t\tsw2 = obj._southWest;\r\n \t\t\tne2 = obj._northEast;\r\n\r\n \t\t\tif (!sw2 || !ne2) { return this; }\r\n\r\n \t\t} else {\r\n \t\t\treturn obj ? this.extend(toLatLng(obj) || toLatLngBounds(obj)) : this;\r\n \t\t}\r\n\r\n \t\tif (!sw && !ne) {\r\n \t\t\tthis._southWest = new LatLng(sw2.lat, sw2.lng);\r\n \t\t\tthis._northEast = new LatLng(ne2.lat, ne2.lng);\r\n \t\t} else {\r\n \t\t\tsw.lat = Math.min(sw2.lat, sw.lat);\r\n \t\t\tsw.lng = Math.min(sw2.lng, sw.lng);\r\n \t\t\tne.lat = Math.max(ne2.lat, ne.lat);\r\n \t\t\tne.lng = Math.max(ne2.lng, ne.lng);\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method pad(bufferRatio: Number): LatLngBounds\r\n \t// Returns bounds created by extending or retracting the current bounds by a given ratio in each direction.\r\n \t// For example, a ratio of 0.5 extends the bounds by 50% in each direction.\r\n \t// Negative values will retract the bounds.\r\n \tpad: function (bufferRatio) {\r\n \t\tvar sw = this._southWest,\r\n \t\t ne = this._northEast,\r\n \t\t heightBuffer = Math.abs(sw.lat - ne.lat) * bufferRatio,\r\n \t\t widthBuffer = Math.abs(sw.lng - ne.lng) * bufferRatio;\r\n\r\n \t\treturn new LatLngBounds(\r\n \t\t new LatLng(sw.lat - heightBuffer, sw.lng - widthBuffer),\r\n \t\t new LatLng(ne.lat + heightBuffer, ne.lng + widthBuffer));\r\n \t},\r\n\r\n \t// @method getCenter(): LatLng\r\n \t// Returns the center point of the bounds.\r\n \tgetCenter: function () {\r\n \t\treturn new LatLng(\r\n \t\t (this._southWest.lat + this._northEast.lat) / 2,\r\n \t\t (this._southWest.lng + this._northEast.lng) / 2);\r\n \t},\r\n\r\n \t// @method getSouthWest(): LatLng\r\n \t// Returns the south-west point of the bounds.\r\n \tgetSouthWest: function () {\r\n \t\treturn this._southWest;\r\n \t},\r\n\r\n \t// @method getNorthEast(): LatLng\r\n \t// Returns the north-east point of the bounds.\r\n \tgetNorthEast: function () {\r\n \t\treturn this._northEast;\r\n \t},\r\n\r\n \t// @method getNorthWest(): LatLng\r\n \t// Returns the north-west point of the bounds.\r\n \tgetNorthWest: function () {\r\n \t\treturn new LatLng(this.getNorth(), this.getWest());\r\n \t},\r\n\r\n \t// @method getSouthEast(): LatLng\r\n \t// Returns the south-east point of the bounds.\r\n \tgetSouthEast: function () {\r\n \t\treturn new LatLng(this.getSouth(), this.getEast());\r\n \t},\r\n\r\n \t// @method getWest(): Number\r\n \t// Returns the west longitude of the bounds\r\n \tgetWest: function () {\r\n \t\treturn this._southWest.lng;\r\n \t},\r\n\r\n \t// @method getSouth(): Number\r\n \t// Returns the south latitude of the bounds\r\n \tgetSouth: function () {\r\n \t\treturn this._southWest.lat;\r\n \t},\r\n\r\n \t// @method getEast(): Number\r\n \t// Returns the east longitude of the bounds\r\n \tgetEast: function () {\r\n \t\treturn this._northEast.lng;\r\n \t},\r\n\r\n \t// @method getNorth(): Number\r\n \t// Returns the north latitude of the bounds\r\n \tgetNorth: function () {\r\n \t\treturn this._northEast.lat;\r\n \t},\r\n\r\n \t// @method contains(otherBounds: LatLngBounds): Boolean\r\n \t// Returns `true` if the rectangle contains the given one.\r\n\r\n \t// @alternative\r\n \t// @method contains (latlng: LatLng): Boolean\r\n \t// Returns `true` if the rectangle contains the given point.\r\n \tcontains: function (obj) { // (LatLngBounds) or (LatLng) -> Boolean\r\n \t\tif (typeof obj[0] === 'number' || obj instanceof LatLng || 'lat' in obj) {\r\n \t\t\tobj = toLatLng(obj);\r\n \t\t} else {\r\n \t\t\tobj = toLatLngBounds(obj);\r\n \t\t}\r\n\r\n \t\tvar sw = this._southWest,\r\n \t\t ne = this._northEast,\r\n \t\t sw2, ne2;\r\n\r\n \t\tif (obj instanceof LatLngBounds) {\r\n \t\t\tsw2 = obj.getSouthWest();\r\n \t\t\tne2 = obj.getNorthEast();\r\n \t\t} else {\r\n \t\t\tsw2 = ne2 = obj;\r\n \t\t}\r\n\r\n \t\treturn (sw2.lat >= sw.lat) && (ne2.lat <= ne.lat) &&\r\n \t\t (sw2.lng >= sw.lng) && (ne2.lng <= ne.lng);\r\n \t},\r\n\r\n \t// @method intersects(otherBounds: LatLngBounds): Boolean\r\n \t// Returns `true` if the rectangle intersects the given bounds. Two bounds intersect if they have at least one point in common.\r\n \tintersects: function (bounds) {\r\n \t\tbounds = toLatLngBounds(bounds);\r\n\r\n \t\tvar sw = this._southWest,\r\n \t\t ne = this._northEast,\r\n \t\t sw2 = bounds.getSouthWest(),\r\n \t\t ne2 = bounds.getNorthEast(),\r\n\r\n \t\t latIntersects = (ne2.lat >= sw.lat) && (sw2.lat <= ne.lat),\r\n \t\t lngIntersects = (ne2.lng >= sw.lng) && (sw2.lng <= ne.lng);\r\n\r\n \t\treturn latIntersects && lngIntersects;\r\n \t},\r\n\r\n \t// @method overlaps(otherBounds: LatLngBounds): Boolean\r\n \t// Returns `true` if the rectangle overlaps the given bounds. Two bounds overlap if their intersection is an area.\r\n \toverlaps: function (bounds) {\r\n \t\tbounds = toLatLngBounds(bounds);\r\n\r\n \t\tvar sw = this._southWest,\r\n \t\t ne = this._northEast,\r\n \t\t sw2 = bounds.getSouthWest(),\r\n \t\t ne2 = bounds.getNorthEast(),\r\n\r\n \t\t latOverlaps = (ne2.lat > sw.lat) && (sw2.lat < ne.lat),\r\n \t\t lngOverlaps = (ne2.lng > sw.lng) && (sw2.lng < ne.lng);\r\n\r\n \t\treturn latOverlaps && lngOverlaps;\r\n \t},\r\n\r\n \t// @method toBBoxString(): String\r\n \t// Returns a string with bounding box coordinates in a 'southwest_lng,southwest_lat,northeast_lng,northeast_lat' format. Useful for sending requests to web services that return geo data.\r\n \ttoBBoxString: function () {\r\n \t\treturn [this.getWest(), this.getSouth(), this.getEast(), this.getNorth()].join(',');\r\n \t},\r\n\r\n \t// @method equals(otherBounds: LatLngBounds, maxMargin?: Number): Boolean\r\n \t// Returns `true` if the rectangle is equivalent (within a small margin of error) to the given bounds. The margin of error can be overridden by setting `maxMargin` to a small number.\r\n \tequals: function (bounds, maxMargin) {\r\n \t\tif (!bounds) { return false; }\r\n\r\n \t\tbounds = toLatLngBounds(bounds);\r\n\r\n \t\treturn this._southWest.equals(bounds.getSouthWest(), maxMargin) &&\r\n \t\t this._northEast.equals(bounds.getNorthEast(), maxMargin);\r\n \t},\r\n\r\n \t// @method isValid(): Boolean\r\n \t// Returns `true` if the bounds are properly initialized.\r\n \tisValid: function () {\r\n \t\treturn !!(this._southWest && this._northEast);\r\n \t}\r\n };\r\n\r\n // TODO International date line?\r\n\r\n // @factory L.latLngBounds(corner1: LatLng, corner2: LatLng)\r\n // Creates a `LatLngBounds` object by defining two diagonally opposite corners of the rectangle.\r\n\r\n // @alternative\r\n // @factory L.latLngBounds(latlngs: LatLng[])\r\n // Creates a `LatLngBounds` object defined by the geographical points it contains. Very useful for zooming the map to fit a particular set of locations with [`fitBounds`](#map-fitbounds).\r\n function toLatLngBounds(a, b) {\r\n \tif (a instanceof LatLngBounds) {\r\n \t\treturn a;\r\n \t}\r\n \treturn new LatLngBounds(a, b);\r\n }\n\n /* @class LatLng\r\n * @aka L.LatLng\r\n *\r\n * Represents a geographical point with a certain latitude and longitude.\r\n *\r\n * @example\r\n *\r\n * ```\r\n * var latlng = L.latLng(50.5, 30.5);\r\n * ```\r\n *\r\n * All Leaflet methods that accept LatLng objects also accept them in a simple Array form and simple object form (unless noted otherwise), so these lines are equivalent:\r\n *\r\n * ```\r\n * map.panTo([50, 30]);\r\n * map.panTo({lon: 30, lat: 50});\r\n * map.panTo({lat: 50, lng: 30});\r\n * map.panTo(L.latLng(50, 30));\r\n * ```\r\n *\r\n * Note that `LatLng` does not inherit from Leaflet's `Class` object,\r\n * which means new classes can't inherit from it, and new methods\r\n * can't be added to it with the `include` function.\r\n */\r\n\r\n function LatLng(lat, lng, alt) {\r\n \tif (isNaN(lat) || isNaN(lng)) {\r\n \t\tthrow new Error('Invalid LatLng object: (' + lat + ', ' + lng + ')');\r\n \t}\r\n\r\n \t// @property lat: Number\r\n \t// Latitude in degrees\r\n \tthis.lat = +lat;\r\n\r\n \t// @property lng: Number\r\n \t// Longitude in degrees\r\n \tthis.lng = +lng;\r\n\r\n \t// @property alt: Number\r\n \t// Altitude in meters (optional)\r\n \tif (alt !== undefined) {\r\n \t\tthis.alt = +alt;\r\n \t}\r\n }\r\n\r\n LatLng.prototype = {\r\n \t// @method equals(otherLatLng: LatLng, maxMargin?: Number): Boolean\r\n \t// Returns `true` if the given `LatLng` point is at the same position (within a small margin of error). The margin of error can be overridden by setting `maxMargin` to a small number.\r\n \tequals: function (obj, maxMargin) {\r\n \t\tif (!obj) { return false; }\r\n\r\n \t\tobj = toLatLng(obj);\r\n\r\n \t\tvar margin = Math.max(\r\n \t\t Math.abs(this.lat - obj.lat),\r\n \t\t Math.abs(this.lng - obj.lng));\r\n\r\n \t\treturn margin <= (maxMargin === undefined ? 1.0E-9 : maxMargin);\r\n \t},\r\n\r\n \t// @method toString(): String\r\n \t// Returns a string representation of the point (for debugging purposes).\r\n \ttoString: function (precision) {\r\n \t\treturn 'LatLng(' +\r\n \t\t formatNum(this.lat, precision) + ', ' +\r\n \t\t formatNum(this.lng, precision) + ')';\r\n \t},\r\n\r\n \t// @method distanceTo(otherLatLng: LatLng): Number\r\n \t// Returns the distance (in meters) to the given `LatLng` calculated using the [Spherical Law of Cosines](https://en.wikipedia.org/wiki/Spherical_law_of_cosines).\r\n \tdistanceTo: function (other) {\r\n \t\treturn Earth.distance(this, toLatLng(other));\r\n \t},\r\n\r\n \t// @method wrap(): LatLng\r\n \t// Returns a new `LatLng` object with the longitude wrapped so it's always between -180 and +180 degrees.\r\n \twrap: function () {\r\n \t\treturn Earth.wrapLatLng(this);\r\n \t},\r\n\r\n \t// @method toBounds(sizeInMeters: Number): LatLngBounds\r\n \t// Returns a new `LatLngBounds` object in which each boundary is `sizeInMeters/2` meters apart from the `LatLng`.\r\n \ttoBounds: function (sizeInMeters) {\r\n \t\tvar latAccuracy = 180 * sizeInMeters / 40075017,\r\n \t\t lngAccuracy = latAccuracy / Math.cos((Math.PI / 180) * this.lat);\r\n\r\n \t\treturn toLatLngBounds(\r\n \t\t [this.lat - latAccuracy, this.lng - lngAccuracy],\r\n \t\t [this.lat + latAccuracy, this.lng + lngAccuracy]);\r\n \t},\r\n\r\n \tclone: function () {\r\n \t\treturn new LatLng(this.lat, this.lng, this.alt);\r\n \t}\r\n };\r\n\r\n\r\n\r\n // @factory L.latLng(latitude: Number, longitude: Number, altitude?: Number): LatLng\r\n // Creates an object representing a geographical point with the given latitude and longitude (and optionally altitude).\r\n\r\n // @alternative\r\n // @factory L.latLng(coords: Array): LatLng\r\n // Expects an array of the form `[Number, Number]` or `[Number, Number, Number]` instead.\r\n\r\n // @alternative\r\n // @factory L.latLng(coords: Object): LatLng\r\n // Expects an plain object of the form `{lat: Number, lng: Number}` or `{lat: Number, lng: Number, alt: Number}` instead.\r\n\r\n function toLatLng(a, b, c) {\r\n \tif (a instanceof LatLng) {\r\n \t\treturn a;\r\n \t}\r\n \tif (isArray(a) && typeof a[0] !== 'object') {\r\n \t\tif (a.length === 3) {\r\n \t\t\treturn new LatLng(a[0], a[1], a[2]);\r\n \t\t}\r\n \t\tif (a.length === 2) {\r\n \t\t\treturn new LatLng(a[0], a[1]);\r\n \t\t}\r\n \t\treturn null;\r\n \t}\r\n \tif (a === undefined || a === null) {\r\n \t\treturn a;\r\n \t}\r\n \tif (typeof a === 'object' && 'lat' in a) {\r\n \t\treturn new LatLng(a.lat, 'lng' in a ? a.lng : a.lon, a.alt);\r\n \t}\r\n \tif (b === undefined) {\r\n \t\treturn null;\r\n \t}\r\n \treturn new LatLng(a, b, c);\r\n }\n\n /*\r\n * @namespace CRS\r\n * @crs L.CRS.Base\r\n * Object that defines coordinate reference systems for projecting\r\n * geographical points into pixel (screen) coordinates and back (and to\r\n * coordinates in other units for [WMS](https://en.wikipedia.org/wiki/Web_Map_Service) services). See\r\n * [spatial reference system](https://en.wikipedia.org/wiki/Spatial_reference_system).\r\n *\r\n * Leaflet defines the most usual CRSs by default. If you want to use a\r\n * CRS not defined by default, take a look at the\r\n * [Proj4Leaflet](https://github.com/kartena/Proj4Leaflet) plugin.\r\n *\r\n * Note that the CRS instances do not inherit from Leaflet's `Class` object,\r\n * and can't be instantiated. Also, new classes can't inherit from them,\r\n * and methods can't be added to them with the `include` function.\r\n */\r\n\r\n var CRS = {\r\n \t// @method latLngToPoint(latlng: LatLng, zoom: Number): Point\r\n \t// Projects geographical coordinates into pixel coordinates for a given zoom.\r\n \tlatLngToPoint: function (latlng, zoom) {\r\n \t\tvar projectedPoint = this.projection.project(latlng),\r\n \t\t scale = this.scale(zoom);\r\n\r\n \t\treturn this.transformation._transform(projectedPoint, scale);\r\n \t},\r\n\r\n \t// @method pointToLatLng(point: Point, zoom: Number): LatLng\r\n \t// The inverse of `latLngToPoint`. Projects pixel coordinates on a given\r\n \t// zoom into geographical coordinates.\r\n \tpointToLatLng: function (point, zoom) {\r\n \t\tvar scale = this.scale(zoom),\r\n \t\t untransformedPoint = this.transformation.untransform(point, scale);\r\n\r\n \t\treturn this.projection.unproject(untransformedPoint);\r\n \t},\r\n\r\n \t// @method project(latlng: LatLng): Point\r\n \t// Projects geographical coordinates into coordinates in units accepted for\r\n \t// this CRS (e.g. meters for EPSG:3857, for passing it to WMS services).\r\n \tproject: function (latlng) {\r\n \t\treturn this.projection.project(latlng);\r\n \t},\r\n\r\n \t// @method unproject(point: Point): LatLng\r\n \t// Given a projected coordinate returns the corresponding LatLng.\r\n \t// The inverse of `project`.\r\n \tunproject: function (point) {\r\n \t\treturn this.projection.unproject(point);\r\n \t},\r\n\r\n \t// @method scale(zoom: Number): Number\r\n \t// Returns the scale used when transforming projected coordinates into\r\n \t// pixel coordinates for a particular zoom. For example, it returns\r\n \t// `256 * 2^zoom` for Mercator-based CRS.\r\n \tscale: function (zoom) {\r\n \t\treturn 256 * Math.pow(2, zoom);\r\n \t},\r\n\r\n \t// @method zoom(scale: Number): Number\r\n \t// Inverse of `scale()`, returns the zoom level corresponding to a scale\r\n \t// factor of `scale`.\r\n \tzoom: function (scale) {\r\n \t\treturn Math.log(scale / 256) / Math.LN2;\r\n \t},\r\n\r\n \t// @method getProjectedBounds(zoom: Number): Bounds\r\n \t// Returns the projection's bounds scaled and transformed for the provided `zoom`.\r\n \tgetProjectedBounds: function (zoom) {\r\n \t\tif (this.infinite) { return null; }\r\n\r\n \t\tvar b = this.projection.bounds,\r\n \t\t s = this.scale(zoom),\r\n \t\t min = this.transformation.transform(b.min, s),\r\n \t\t max = this.transformation.transform(b.max, s);\r\n\r\n \t\treturn new Bounds(min, max);\r\n \t},\r\n\r\n \t// @method distance(latlng1: LatLng, latlng2: LatLng): Number\r\n \t// Returns the distance between two geographical coordinates.\r\n\r\n \t// @property code: String\r\n \t// Standard code name of the CRS passed into WMS services (e.g. `'EPSG:3857'`)\r\n \t//\r\n \t// @property wrapLng: Number[]\r\n \t// An array of two numbers defining whether the longitude (horizontal) coordinate\r\n \t// axis wraps around a given range and how. Defaults to `[-180, 180]` in most\r\n \t// geographical CRSs. If `undefined`, the longitude axis does not wrap around.\r\n \t//\r\n \t// @property wrapLat: Number[]\r\n \t// Like `wrapLng`, but for the latitude (vertical) axis.\r\n\r\n \t// wrapLng: [min, max],\r\n \t// wrapLat: [min, max],\r\n\r\n \t// @property infinite: Boolean\r\n \t// If true, the coordinate space will be unbounded (infinite in both axes)\r\n \tinfinite: false,\r\n\r\n \t// @method wrapLatLng(latlng: LatLng): LatLng\r\n \t// Returns a `LatLng` where lat and lng has been wrapped according to the\r\n \t// CRS's `wrapLat` and `wrapLng` properties, if they are outside the CRS's bounds.\r\n \twrapLatLng: function (latlng) {\r\n \t\tvar lng = this.wrapLng ? wrapNum(latlng.lng, this.wrapLng, true) : latlng.lng,\r\n \t\t lat = this.wrapLat ? wrapNum(latlng.lat, this.wrapLat, true) : latlng.lat,\r\n \t\t alt = latlng.alt;\r\n\r\n \t\treturn new LatLng(lat, lng, alt);\r\n \t},\r\n\r\n \t// @method wrapLatLngBounds(bounds: LatLngBounds): LatLngBounds\r\n \t// Returns a `LatLngBounds` with the same size as the given one, ensuring\r\n \t// that its center is within the CRS's bounds.\r\n \t// Only accepts actual `L.LatLngBounds` instances, not arrays.\r\n \twrapLatLngBounds: function (bounds) {\r\n \t\tvar center = bounds.getCenter(),\r\n \t\t newCenter = this.wrapLatLng(center),\r\n \t\t latShift = center.lat - newCenter.lat,\r\n \t\t lngShift = center.lng - newCenter.lng;\r\n\r\n \t\tif (latShift === 0 && lngShift === 0) {\r\n \t\t\treturn bounds;\r\n \t\t}\r\n\r\n \t\tvar sw = bounds.getSouthWest(),\r\n \t\t ne = bounds.getNorthEast(),\r\n \t\t newSw = new LatLng(sw.lat - latShift, sw.lng - lngShift),\r\n \t\t newNe = new LatLng(ne.lat - latShift, ne.lng - lngShift);\r\n\r\n \t\treturn new LatLngBounds(newSw, newNe);\r\n \t}\r\n };\n\n /*\n * @namespace CRS\n * @crs L.CRS.Earth\n *\n * Serves as the base for CRS that are global such that they cover the earth.\n * Can only be used as the base for other CRS and cannot be used directly,\n * since it does not have a `code`, `projection` or `transformation`. `distance()` returns\n * meters.\n */\n\n var Earth = extend({}, CRS, {\n \twrapLng: [-180, 180],\n\n \t// Mean Earth Radius, as recommended for use by\n \t// the International Union of Geodesy and Geophysics,\n \t// see https://rosettacode.org/wiki/Haversine_formula\n \tR: 6371000,\n\n \t// distance between two geographical points using spherical law of cosines approximation\n \tdistance: function (latlng1, latlng2) {\n \t\tvar rad = Math.PI / 180,\n \t\t lat1 = latlng1.lat * rad,\n \t\t lat2 = latlng2.lat * rad,\n \t\t sinDLat = Math.sin((latlng2.lat - latlng1.lat) * rad / 2),\n \t\t sinDLon = Math.sin((latlng2.lng - latlng1.lng) * rad / 2),\n \t\t a = sinDLat * sinDLat + Math.cos(lat1) * Math.cos(lat2) * sinDLon * sinDLon,\n \t\t c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n \t\treturn this.R * c;\n \t}\n });\n\n /*\r\n * @namespace Projection\r\n * @projection L.Projection.SphericalMercator\r\n *\r\n * Spherical Mercator projection — the most common projection for online maps,\r\n * used by almost all free and commercial tile providers. Assumes that Earth is\r\n * a sphere. Used by the `EPSG:3857` CRS.\r\n */\r\n\r\n var earthRadius = 6378137;\r\n\r\n var SphericalMercator = {\r\n\r\n \tR: earthRadius,\r\n \tMAX_LATITUDE: 85.0511287798,\r\n\r\n \tproject: function (latlng) {\r\n \t\tvar d = Math.PI / 180,\r\n \t\t max = this.MAX_LATITUDE,\r\n \t\t lat = Math.max(Math.min(max, latlng.lat), -max),\r\n \t\t sin = Math.sin(lat * d);\r\n\r\n \t\treturn new Point(\r\n \t\t\tthis.R * latlng.lng * d,\r\n \t\t\tthis.R * Math.log((1 + sin) / (1 - sin)) / 2);\r\n \t},\r\n\r\n \tunproject: function (point) {\r\n \t\tvar d = 180 / Math.PI;\r\n\r\n \t\treturn new LatLng(\r\n \t\t\t(2 * Math.atan(Math.exp(point.y / this.R)) - (Math.PI / 2)) * d,\r\n \t\t\tpoint.x * d / this.R);\r\n \t},\r\n\r\n \tbounds: (function () {\r\n \t\tvar d = earthRadius * Math.PI;\r\n \t\treturn new Bounds([-d, -d], [d, d]);\r\n \t})()\r\n };\n\n /*\r\n * @class Transformation\r\n * @aka L.Transformation\r\n *\r\n * Represents an affine transformation: a set of coefficients `a`, `b`, `c`, `d`\r\n * for transforming a point of a form `(x, y)` into `(a*x + b, c*y + d)` and doing\r\n * the reverse. Used by Leaflet in its projections code.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var transformation = L.transformation(2, 5, -1, 10),\r\n * \tp = L.point(1, 2),\r\n * \tp2 = transformation.transform(p), // L.point(7, 8)\r\n * \tp3 = transformation.untransform(p2); // L.point(1, 2)\r\n * ```\r\n */\r\n\r\n\r\n // factory new L.Transformation(a: Number, b: Number, c: Number, d: Number)\r\n // Creates a `Transformation` object with the given coefficients.\r\n function Transformation(a, b, c, d) {\r\n \tif (isArray(a)) {\r\n \t\t// use array properties\r\n \t\tthis._a = a[0];\r\n \t\tthis._b = a[1];\r\n \t\tthis._c = a[2];\r\n \t\tthis._d = a[3];\r\n \t\treturn;\r\n \t}\r\n \tthis._a = a;\r\n \tthis._b = b;\r\n \tthis._c = c;\r\n \tthis._d = d;\r\n }\r\n\r\n Transformation.prototype = {\r\n \t// @method transform(point: Point, scale?: Number): Point\r\n \t// Returns a transformed point, optionally multiplied by the given scale.\r\n \t// Only accepts actual `L.Point` instances, not arrays.\r\n \ttransform: function (point, scale) { // (Point, Number) -> Point\r\n \t\treturn this._transform(point.clone(), scale);\r\n \t},\r\n\r\n \t// destructive transform (faster)\r\n \t_transform: function (point, scale) {\r\n \t\tscale = scale || 1;\r\n \t\tpoint.x = scale * (this._a * point.x + this._b);\r\n \t\tpoint.y = scale * (this._c * point.y + this._d);\r\n \t\treturn point;\r\n \t},\r\n\r\n \t// @method untransform(point: Point, scale?: Number): Point\r\n \t// Returns the reverse transformation of the given point, optionally divided\r\n \t// by the given scale. Only accepts actual `L.Point` instances, not arrays.\r\n \tuntransform: function (point, scale) {\r\n \t\tscale = scale || 1;\r\n \t\treturn new Point(\r\n \t\t (point.x / scale - this._b) / this._a,\r\n \t\t (point.y / scale - this._d) / this._c);\r\n \t}\r\n };\r\n\r\n // factory L.transformation(a: Number, b: Number, c: Number, d: Number)\r\n\r\n // @factory L.transformation(a: Number, b: Number, c: Number, d: Number)\r\n // Instantiates a Transformation object with the given coefficients.\r\n\r\n // @alternative\r\n // @factory L.transformation(coefficients: Array): Transformation\r\n // Expects an coefficients array of the form\r\n // `[a: Number, b: Number, c: Number, d: Number]`.\r\n\r\n function toTransformation(a, b, c, d) {\r\n \treturn new Transformation(a, b, c, d);\r\n }\n\n /*\r\n * @namespace CRS\r\n * @crs L.CRS.EPSG3857\r\n *\r\n * The most common CRS for online maps, used by almost all free and commercial\r\n * tile providers. Uses Spherical Mercator projection. Set in by default in\r\n * Map's `crs` option.\r\n */\r\n\r\n var EPSG3857 = extend({}, Earth, {\r\n \tcode: 'EPSG:3857',\r\n \tprojection: SphericalMercator,\r\n\r\n \ttransformation: (function () {\r\n \t\tvar scale = 0.5 / (Math.PI * SphericalMercator.R);\r\n \t\treturn toTransformation(scale, 0.5, -scale, 0.5);\r\n \t}())\r\n });\r\n\r\n var EPSG900913 = extend({}, EPSG3857, {\r\n \tcode: 'EPSG:900913'\r\n });\n\n // @namespace SVG; @section\n // There are several static functions which can be called without instantiating L.SVG:\n\n // @function create(name: String): SVGElement\n // Returns a instance of [SVGElement](https://developer.mozilla.org/docs/Web/API/SVGElement),\n // corresponding to the class name passed. For example, using 'line' will return\n // an instance of [SVGLineElement](https://developer.mozilla.org/docs/Web/API/SVGLineElement).\n function svgCreate(name) {\n \treturn document.createElementNS('http://www.w3.org/2000/svg', name);\n }\n\n // @function pointsToPath(rings: Point[], closed: Boolean): String\n // Generates a SVG path string for multiple rings, with each ring turning\n // into \"M..L..L..\" instructions\n function pointsToPath(rings, closed) {\n \tvar str = '',\n \ti, j, len, len2, points, p;\n\n \tfor (i = 0, len = rings.length; i < len; i++) {\n \t\tpoints = rings[i];\n\n \t\tfor (j = 0, len2 = points.length; j < len2; j++) {\n \t\t\tp = points[j];\n \t\t\tstr += (j ? 'L' : 'M') + p.x + ' ' + p.y;\n \t\t}\n\n \t\t// closes the ring for polygons; \"x\" is VML syntax\n \t\tstr += closed ? (Browser.svg ? 'z' : 'x') : '';\n \t}\n\n \t// SVG complains about empty path strings\n \treturn str || 'M0 0';\n }\n\n /*\r\n * @namespace Browser\r\n * @aka L.Browser\r\n *\r\n * A namespace with static properties for browser/feature detection used by Leaflet internally.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * if (L.Browser.ielt9) {\r\n * alert('Upgrade your browser, dude!');\r\n * }\r\n * ```\r\n */\r\n\r\n var style = document.documentElement.style;\r\n\r\n // @property ie: Boolean; `true` for all Internet Explorer versions (not Edge).\r\n var ie = 'ActiveXObject' in window;\r\n\r\n // @property ielt9: Boolean; `true` for Internet Explorer versions less than 9.\r\n var ielt9 = ie && !document.addEventListener;\r\n\r\n // @property edge: Boolean; `true` for the Edge web browser.\r\n var edge = 'msLaunchUri' in navigator && !('documentMode' in document);\r\n\r\n // @property webkit: Boolean;\r\n // `true` for webkit-based browsers like Chrome and Safari (including mobile versions).\r\n var webkit = userAgentContains('webkit');\r\n\r\n // @property android: Boolean\r\n // **Deprecated.** `true` for any browser running on an Android platform.\r\n var android = userAgentContains('android');\r\n\r\n // @property android23: Boolean; **Deprecated.** `true` for browsers running on Android 2 or Android 3.\r\n var android23 = userAgentContains('android 2') || userAgentContains('android 3');\r\n\r\n /* See https://stackoverflow.com/a/17961266 for details on detecting stock Android */\r\n var webkitVer = parseInt(/WebKit\\/([0-9]+)|$/.exec(navigator.userAgent)[1], 10); // also matches AppleWebKit\r\n // @property androidStock: Boolean; **Deprecated.** `true` for the Android stock browser (i.e. not Chrome)\r\n var androidStock = android && userAgentContains('Google') && webkitVer < 537 && !('AudioNode' in window);\r\n\r\n // @property opera: Boolean; `true` for the Opera browser\r\n var opera = !!window.opera;\r\n\r\n // @property chrome: Boolean; `true` for the Chrome browser.\r\n var chrome = !edge && userAgentContains('chrome');\r\n\r\n // @property gecko: Boolean; `true` for gecko-based browsers like Firefox.\r\n var gecko = userAgentContains('gecko') && !webkit && !opera && !ie;\r\n\r\n // @property safari: Boolean; `true` for the Safari browser.\r\n var safari = !chrome && userAgentContains('safari');\r\n\r\n var phantom = userAgentContains('phantom');\r\n\r\n // @property opera12: Boolean\r\n // `true` for the Opera browser supporting CSS transforms (version 12 or later).\r\n var opera12 = 'OTransition' in style;\r\n\r\n // @property win: Boolean; `true` when the browser is running in a Windows platform\r\n var win = navigator.platform.indexOf('Win') === 0;\r\n\r\n // @property ie3d: Boolean; `true` for all Internet Explorer versions supporting CSS transforms.\r\n var ie3d = ie && ('transition' in style);\r\n\r\n // @property webkit3d: Boolean; `true` for webkit-based browsers supporting CSS transforms.\r\n var webkit3d = ('WebKitCSSMatrix' in window) && ('m11' in new window.WebKitCSSMatrix()) && !android23;\r\n\r\n // @property gecko3d: Boolean; `true` for gecko-based browsers supporting CSS transforms.\r\n var gecko3d = 'MozPerspective' in style;\r\n\r\n // @property any3d: Boolean\r\n // `true` for all browsers supporting CSS transforms.\r\n var any3d = !window.L_DISABLE_3D && (ie3d || webkit3d || gecko3d) && !opera12 && !phantom;\r\n\r\n // @property mobile: Boolean; `true` for all browsers running in a mobile device.\r\n var mobile = typeof orientation !== 'undefined' || userAgentContains('mobile');\r\n\r\n // @property mobileWebkit: Boolean; `true` for all webkit-based browsers in a mobile device.\r\n var mobileWebkit = mobile && webkit;\r\n\r\n // @property mobileWebkit3d: Boolean\r\n // `true` for all webkit-based browsers in a mobile device supporting CSS transforms.\r\n var mobileWebkit3d = mobile && webkit3d;\r\n\r\n // @property msPointer: Boolean\r\n // `true` for browsers implementing the Microsoft touch events model (notably IE10).\r\n var msPointer = !window.PointerEvent && window.MSPointerEvent;\r\n\r\n // @property pointer: Boolean\r\n // `true` for all browsers supporting [pointer events](https://msdn.microsoft.com/en-us/library/dn433244%28v=vs.85%29.aspx).\r\n var pointer = !!(window.PointerEvent || msPointer);\r\n\r\n // @property touchNative: Boolean\r\n // `true` for all browsers supporting [touch events](https://developer.mozilla.org/docs/Web/API/Touch_events).\r\n // **This does not necessarily mean** that the browser is running in a computer with\r\n // a touchscreen, it only means that the browser is capable of understanding\r\n // touch events.\r\n var touchNative = 'ontouchstart' in window || !!window.TouchEvent;\r\n\r\n // @property touch: Boolean\r\n // `true` for all browsers supporting either [touch](#browser-touch) or [pointer](#browser-pointer) events.\r\n // Note: pointer events will be preferred (if available), and processed for all `touch*` listeners.\r\n var touch = !window.L_NO_TOUCH && (touchNative || pointer);\r\n\r\n // @property mobileOpera: Boolean; `true` for the Opera browser in a mobile device.\r\n var mobileOpera = mobile && opera;\r\n\r\n // @property mobileGecko: Boolean\r\n // `true` for gecko-based browsers running in a mobile device.\r\n var mobileGecko = mobile && gecko;\r\n\r\n // @property retina: Boolean\r\n // `true` for browsers on a high-resolution \"retina\" screen or on any screen when browser's display zoom is more than 100%.\r\n var retina = (window.devicePixelRatio || (window.screen.deviceXDPI / window.screen.logicalXDPI)) > 1;\r\n\r\n // @property passiveEvents: Boolean\r\n // `true` for browsers that support passive events.\r\n var passiveEvents = (function () {\r\n \tvar supportsPassiveOption = false;\r\n \ttry {\r\n \t\tvar opts = Object.defineProperty({}, 'passive', {\r\n \t\t\tget: function () { // eslint-disable-line getter-return\r\n \t\t\t\tsupportsPassiveOption = true;\r\n \t\t\t}\r\n \t\t});\r\n \t\twindow.addEventListener('testPassiveEventSupport', falseFn, opts);\r\n \t\twindow.removeEventListener('testPassiveEventSupport', falseFn, opts);\r\n \t} catch (e) {\r\n \t\t// Errors can safely be ignored since this is only a browser support test.\r\n \t}\r\n \treturn supportsPassiveOption;\r\n }());\r\n\r\n // @property canvas: Boolean\r\n // `true` when the browser supports [``](https://developer.mozilla.org/docs/Web/API/Canvas_API).\r\n var canvas$1 = (function () {\r\n \treturn !!document.createElement('canvas').getContext;\r\n }());\r\n\r\n // @property svg: Boolean\r\n // `true` when the browser supports [SVG](https://developer.mozilla.org/docs/Web/SVG).\r\n var svg$1 = !!(document.createElementNS && svgCreate('svg').createSVGRect);\r\n\r\n var inlineSvg = !!svg$1 && (function () {\r\n \tvar div = document.createElement('div');\r\n \tdiv.innerHTML = '';\r\n \treturn (div.firstChild && div.firstChild.namespaceURI) === 'http://www.w3.org/2000/svg';\r\n })();\r\n\r\n // @property vml: Boolean\r\n // `true` if the browser supports [VML](https://en.wikipedia.org/wiki/Vector_Markup_Language).\r\n var vml = !svg$1 && (function () {\r\n \ttry {\r\n \t\tvar div = document.createElement('div');\r\n \t\tdiv.innerHTML = '';\r\n\r\n \t\tvar shape = div.firstChild;\r\n \t\tshape.style.behavior = 'url(#default#VML)';\r\n\r\n \t\treturn shape && (typeof shape.adj === 'object');\r\n\r\n \t} catch (e) {\r\n \t\treturn false;\r\n \t}\r\n }());\r\n\r\n\r\n // @property mac: Boolean; `true` when the browser is running in a Mac platform\r\n var mac = navigator.platform.indexOf('Mac') === 0;\r\n\r\n // @property mac: Boolean; `true` when the browser is running in a Linux platform\r\n var linux = navigator.platform.indexOf('Linux') === 0;\r\n\r\n function userAgentContains(str) {\r\n \treturn navigator.userAgent.toLowerCase().indexOf(str) >= 0;\r\n }\r\n\r\n\r\n var Browser = {\r\n \tie: ie,\r\n \tielt9: ielt9,\r\n \tedge: edge,\r\n \twebkit: webkit,\r\n \tandroid: android,\r\n \tandroid23: android23,\r\n \tandroidStock: androidStock,\r\n \topera: opera,\r\n \tchrome: chrome,\r\n \tgecko: gecko,\r\n \tsafari: safari,\r\n \tphantom: phantom,\r\n \topera12: opera12,\r\n \twin: win,\r\n \tie3d: ie3d,\r\n \twebkit3d: webkit3d,\r\n \tgecko3d: gecko3d,\r\n \tany3d: any3d,\r\n \tmobile: mobile,\r\n \tmobileWebkit: mobileWebkit,\r\n \tmobileWebkit3d: mobileWebkit3d,\r\n \tmsPointer: msPointer,\r\n \tpointer: pointer,\r\n \ttouch: touch,\r\n \ttouchNative: touchNative,\r\n \tmobileOpera: mobileOpera,\r\n \tmobileGecko: mobileGecko,\r\n \tretina: retina,\r\n \tpassiveEvents: passiveEvents,\r\n \tcanvas: canvas$1,\r\n \tsvg: svg$1,\r\n \tvml: vml,\r\n \tinlineSvg: inlineSvg,\r\n \tmac: mac,\r\n \tlinux: linux\r\n };\n\n /*\n * Extends L.DomEvent to provide touch support for Internet Explorer and Windows-based devices.\n */\n\n var POINTER_DOWN = Browser.msPointer ? 'MSPointerDown' : 'pointerdown';\n var POINTER_MOVE = Browser.msPointer ? 'MSPointerMove' : 'pointermove';\n var POINTER_UP = Browser.msPointer ? 'MSPointerUp' : 'pointerup';\n var POINTER_CANCEL = Browser.msPointer ? 'MSPointerCancel' : 'pointercancel';\n var pEvent = {\n \ttouchstart : POINTER_DOWN,\n \ttouchmove : POINTER_MOVE,\n \ttouchend : POINTER_UP,\n \ttouchcancel : POINTER_CANCEL\n };\n var handle = {\n \ttouchstart : _onPointerStart,\n \ttouchmove : _handlePointer,\n \ttouchend : _handlePointer,\n \ttouchcancel : _handlePointer\n };\n var _pointers = {};\n var _pointerDocListener = false;\n\n // Provides a touch events wrapper for (ms)pointer events.\n // ref https://www.w3.org/TR/pointerevents/ https://www.w3.org/Bugs/Public/show_bug.cgi?id=22890\n\n function addPointerListener(obj, type, handler) {\n \tif (type === 'touchstart') {\n \t\t_addPointerDocListener();\n \t}\n \tif (!handle[type]) {\n \t\tconsole.warn('wrong event specified:', type);\n \t\treturn falseFn;\n \t}\n \thandler = handle[type].bind(this, handler);\n \tobj.addEventListener(pEvent[type], handler, false);\n \treturn handler;\n }\n\n function removePointerListener(obj, type, handler) {\n \tif (!pEvent[type]) {\n \t\tconsole.warn('wrong event specified:', type);\n \t\treturn;\n \t}\n \tobj.removeEventListener(pEvent[type], handler, false);\n }\n\n function _globalPointerDown(e) {\n \t_pointers[e.pointerId] = e;\n }\n\n function _globalPointerMove(e) {\n \tif (_pointers[e.pointerId]) {\n \t\t_pointers[e.pointerId] = e;\n \t}\n }\n\n function _globalPointerUp(e) {\n \tdelete _pointers[e.pointerId];\n }\n\n function _addPointerDocListener() {\n \t// need to keep track of what pointers and how many are active to provide e.touches emulation\n \tif (!_pointerDocListener) {\n \t\t// we listen document as any drags that end by moving the touch off the screen get fired there\n \t\tdocument.addEventListener(POINTER_DOWN, _globalPointerDown, true);\n \t\tdocument.addEventListener(POINTER_MOVE, _globalPointerMove, true);\n \t\tdocument.addEventListener(POINTER_UP, _globalPointerUp, true);\n \t\tdocument.addEventListener(POINTER_CANCEL, _globalPointerUp, true);\n\n \t\t_pointerDocListener = true;\n \t}\n }\n\n function _handlePointer(handler, e) {\n \tif (e.pointerType === (e.MSPOINTER_TYPE_MOUSE || 'mouse')) { return; }\n\n \te.touches = [];\n \tfor (var i in _pointers) {\n \t\te.touches.push(_pointers[i]);\n \t}\n \te.changedTouches = [e];\n\n \thandler(e);\n }\n\n function _onPointerStart(handler, e) {\n \t// IE10 specific: MsTouch needs preventDefault. See #2000\n \tif (e.MSPOINTER_TYPE_TOUCH && e.pointerType === e.MSPOINTER_TYPE_TOUCH) {\n \t\tpreventDefault(e);\n \t}\n \t_handlePointer(handler, e);\n }\n\n /*\r\n * Extends the event handling code with double tap support for mobile browsers.\r\n *\r\n * Note: currently most browsers fire native dblclick, with only a few exceptions\r\n * (see https://github.com/Leaflet/Leaflet/issues/7012#issuecomment-595087386)\r\n */\r\n\r\n function makeDblclick(event) {\r\n \t// in modern browsers `type` cannot be just overridden:\r\n \t// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Getter_only\r\n \tvar newEvent = {},\r\n \t prop, i;\r\n \tfor (i in event) {\r\n \t\tprop = event[i];\r\n \t\tnewEvent[i] = prop && prop.bind ? prop.bind(event) : prop;\r\n \t}\r\n \tevent = newEvent;\r\n \tnewEvent.type = 'dblclick';\r\n \tnewEvent.detail = 2;\r\n \tnewEvent.isTrusted = false;\r\n \tnewEvent._simulated = true; // for debug purposes\r\n \treturn newEvent;\r\n }\r\n\r\n var delay = 200;\r\n function addDoubleTapListener(obj, handler) {\r\n \t// Most browsers handle double tap natively\r\n \tobj.addEventListener('dblclick', handler);\r\n\r\n \t// On some platforms the browser doesn't fire native dblclicks for touch events.\r\n \t// It seems that in all such cases `detail` property of `click` event is always `1`.\r\n \t// So here we rely on that fact to avoid excessive 'dblclick' simulation when not needed.\r\n \tvar last = 0,\r\n \t detail;\r\n \tfunction simDblclick(e) {\r\n \t\tif (e.detail !== 1) {\r\n \t\t\tdetail = e.detail; // keep in sync to avoid false dblclick in some cases\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\tif (e.pointerType === 'mouse' ||\r\n \t\t\t(e.sourceCapabilities && !e.sourceCapabilities.firesTouchEvents)) {\r\n\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\t// When clicking on an , the browser generates a click on its\r\n \t\t//