From d9016af2fabbeaa34f19b4f968f97cf485ec66dc Mon Sep 17 00:00:00 2001
From: "Schoenberger, Philipp"
Date: Tue, 2 Jul 2019 17:12:28 +0200
Subject: [PATCH] Initial commit
---
.gitignore | 6 +
README.md | 8 +
content/pages/about.md | 46 +
content/pages/gallery/index.md | 26 +
content/pages/impressum.md | 24 +
content/pages/index.md | 21 +
content/pages/projects/01_3d_printer.md | 11 +
content/pages/projects/projects.md | 13 +
develop_server.sh | 109 ++
pelicanconf.py | 175 ++
plugins/i18n_subsites/README.rst | 165 ++
plugins/i18n_subsites/__init__.py | 1 +
plugins/i18n_subsites/i18n_subsites.py | 462 +++++
.../implementing_language_buttons.rst | 128 ++
.../i18n_subsites/localizing_using_jinja2.rst | 200 +++
.../test_data/content/images/img.png | 0
.../content/pages/hidden-page-cz.rst | 7 +
.../content/pages/hidden-page-de.rst | 7 +
.../content/pages/hidden-page-en.rst | 7 +
.../content/pages/untranslated-page.rst | 5 +
.../content/translated_article-cz.rst | 8 +
.../content/translated_article-de.rst | 8 +
.../content/translated_article-en.rst | 8 +
.../content/untranslated_article-en.rst | 9 +
.../test_data/localized_theme/babel.cfg | 2 +
.../test_data/localized_theme/messages.pot | 23 +
.../localized_theme/static/style.css | 0
.../localized_theme/templates/base.html | 7 +
.../translations/de/LC_MESSAGES/messages.mo | Bin 0 -> 486 bytes
.../translations/de/LC_MESSAGES/messages.po | 23 +
.../i18n_subsites/test_data/pelicanconf.py | 53 +
plugins/i18n_subsites/test_i18n_subsites.py | 139 ++
plugins/lightgallery/__init__.py | 1 +
plugins/lightgallery/lightgallery.py | 217 +++
themes/minimal/static/css/bitter.css | 17 +
themes/minimal/static/css/bootstrap.min.css | 7 +
themes/minimal/static/css/lightgallery.css | 978 ++++++++++
.../minimal/static/css/lightgallery_setup.css | 115 ++
themes/minimal/static/css/minimal.css | 686 +++++++
themes/minimal/static/css/pygments.css | 84 +
.../minimal/static/fonts/Bold/Bitter-Bold.eot | Bin 0 -> 28286 bytes
.../minimal/static/fonts/Bold/Bitter-Bold.svg | 710 ++++++++
.../minimal/static/fonts/Bold/Bitter-Bold.ttf | Bin 0 -> 75484 bytes
.../static/fonts/Bold/Bitter-Bold.woff | Bin 0 -> 35716 bytes
.../fonts/BoldItalic/Bitter-BoldItalic.eot | Bin 0 -> 32383 bytes
.../fonts/BoldItalic/Bitter-BoldItalic.svg | 1067 +++++++++++
.../fonts/BoldItalic/Bitter-BoldItalic.ttf | Bin 0 -> 81104 bytes
.../fonts/BoldItalic/Bitter-BoldItalic.woff | Bin 0 -> 40116 bytes
.../static/fonts/Italic/Bitter-Italic.eot | Bin 0 -> 31641 bytes
.../static/fonts/Italic/Bitter-Italic.svg | 810 +++++++++
.../static/fonts/Italic/Bitter-Italic.ttf | Bin 0 -> 81764 bytes
.../static/fonts/Italic/Bitter-Italic.woff | Bin 0 -> 39256 bytes
.../static/fonts/Regular/Bitter-Regular.eot | Bin 0 -> 29326 bytes
.../static/fonts/Regular/Bitter-Regular.svg | 1358 ++++++++++++++
.../static/fonts/Regular/Bitter-Regular.ttf | Bin 0 -> 79104 bytes
.../static/fonts/Regular/Bitter-Regular.woff | Bin 0 -> 36316 bytes
themes/minimal/static/fonts/lg.eot | Bin 0 -> 4024 bytes
themes/minimal/static/fonts/lg.svg | 47 +
themes/minimal/static/fonts/lg.ttf | Bin 0 -> 3880 bytes
themes/minimal/static/fonts/lg.woff | Bin 0 -> 3956 bytes
.../minimal/static/images/fileicons/file.png | Bin 0 -> 720 bytes
themes/minimal/static/images/fileicons/gz.png | Bin 0 -> 716 bytes
.../minimal/static/images/fileicons/pdf.png | Bin 0 -> 663 bytes
themes/minimal/static/images/loading.gif | Bin 0 -> 3801 bytes
...s-initial-monogram-logo-450w-343390823.jpg | Bin 0 -> 8803 bytes
themes/minimal/static/images/zoom.png | Bin 0 -> 29498 bytes
themes/minimal/static/js/bitter.zip | Bin 0 -> 135423 bytes
.../static/js/jquery.mousewheel.min.js | 8 +
themes/minimal/static/js/lg-autoplay.js | 216 +++
themes/minimal/static/js/lg-fullscreen.js | 131 ++
themes/minimal/static/js/lg-hash.js | 97 +
themes/minimal/static/js/lg-pager.js | 120 ++
themes/minimal/static/js/lg-share.js | 134 ++
themes/minimal/static/js/lg-zoom.js | 568 ++++++
themes/minimal/static/js/lightgallery.js | 1588 +++++++++++++++++
themes/minimal/templates/alternate_index.html | 20 +
themes/minimal/templates/archives.html | 14 +
themes/minimal/templates/article.html | 23 +
themes/minimal/templates/author.html | 17 +
themes/minimal/templates/authors.html | 0
themes/minimal/templates/base.html | 80 +
themes/minimal/templates/galery.html | 11 +
themes/minimal/templates/index.html | 17 +
themes/minimal/templates/page.html | 12 +
themes/minimal/templates/page_discussion.html | 9 +
themes/minimal/templates/page_notitle.html | 9 +
themes/minimal/templates/projects.html | 15 +
themes/minimal/templates/tag.html | 18 +
themes/minimal/templates/tags.html | 14 +
89 files changed, 10919 insertions(+)
create mode 100644 .gitignore
create mode 100644 content/pages/about.md
create mode 100644 content/pages/gallery/index.md
create mode 100644 content/pages/impressum.md
create mode 100644 content/pages/index.md
create mode 100644 content/pages/projects/01_3d_printer.md
create mode 100644 content/pages/projects/projects.md
create mode 100755 develop_server.sh
create mode 100644 pelicanconf.py
create mode 100644 plugins/i18n_subsites/README.rst
create mode 100644 plugins/i18n_subsites/__init__.py
create mode 100644 plugins/i18n_subsites/i18n_subsites.py
create mode 100644 plugins/i18n_subsites/implementing_language_buttons.rst
create mode 100644 plugins/i18n_subsites/localizing_using_jinja2.rst
create mode 100644 plugins/i18n_subsites/test_data/content/images/img.png
create mode 100644 plugins/i18n_subsites/test_data/content/pages/hidden-page-cz.rst
create mode 100644 plugins/i18n_subsites/test_data/content/pages/hidden-page-de.rst
create mode 100644 plugins/i18n_subsites/test_data/content/pages/hidden-page-en.rst
create mode 100644 plugins/i18n_subsites/test_data/content/pages/untranslated-page.rst
create mode 100644 plugins/i18n_subsites/test_data/content/translated_article-cz.rst
create mode 100644 plugins/i18n_subsites/test_data/content/translated_article-de.rst
create mode 100644 plugins/i18n_subsites/test_data/content/translated_article-en.rst
create mode 100644 plugins/i18n_subsites/test_data/content/untranslated_article-en.rst
create mode 100644 plugins/i18n_subsites/test_data/localized_theme/babel.cfg
create mode 100644 plugins/i18n_subsites/test_data/localized_theme/messages.pot
create mode 100644 plugins/i18n_subsites/test_data/localized_theme/static/style.css
create mode 100644 plugins/i18n_subsites/test_data/localized_theme/templates/base.html
create mode 100644 plugins/i18n_subsites/test_data/localized_theme/translations/de/LC_MESSAGES/messages.mo
create mode 100644 plugins/i18n_subsites/test_data/localized_theme/translations/de/LC_MESSAGES/messages.po
create mode 100644 plugins/i18n_subsites/test_data/pelicanconf.py
create mode 100644 plugins/i18n_subsites/test_i18n_subsites.py
create mode 100644 plugins/lightgallery/__init__.py
create mode 100644 plugins/lightgallery/lightgallery.py
create mode 100644 themes/minimal/static/css/bitter.css
create mode 100644 themes/minimal/static/css/bootstrap.min.css
create mode 100644 themes/minimal/static/css/lightgallery.css
create mode 100644 themes/minimal/static/css/lightgallery_setup.css
create mode 100644 themes/minimal/static/css/minimal.css
create mode 100644 themes/minimal/static/css/pygments.css
create mode 100755 themes/minimal/static/fonts/Bold/Bitter-Bold.eot
create mode 100755 themes/minimal/static/fonts/Bold/Bitter-Bold.svg
create mode 100755 themes/minimal/static/fonts/Bold/Bitter-Bold.ttf
create mode 100755 themes/minimal/static/fonts/Bold/Bitter-Bold.woff
create mode 100755 themes/minimal/static/fonts/BoldItalic/Bitter-BoldItalic.eot
create mode 100755 themes/minimal/static/fonts/BoldItalic/Bitter-BoldItalic.svg
create mode 100755 themes/minimal/static/fonts/BoldItalic/Bitter-BoldItalic.ttf
create mode 100755 themes/minimal/static/fonts/BoldItalic/Bitter-BoldItalic.woff
create mode 100755 themes/minimal/static/fonts/Italic/Bitter-Italic.eot
create mode 100755 themes/minimal/static/fonts/Italic/Bitter-Italic.svg
create mode 100755 themes/minimal/static/fonts/Italic/Bitter-Italic.ttf
create mode 100755 themes/minimal/static/fonts/Italic/Bitter-Italic.woff
create mode 100755 themes/minimal/static/fonts/Regular/Bitter-Regular.eot
create mode 100755 themes/minimal/static/fonts/Regular/Bitter-Regular.svg
create mode 100755 themes/minimal/static/fonts/Regular/Bitter-Regular.ttf
create mode 100755 themes/minimal/static/fonts/Regular/Bitter-Regular.woff
create mode 100644 themes/minimal/static/fonts/lg.eot
create mode 100644 themes/minimal/static/fonts/lg.svg
create mode 100644 themes/minimal/static/fonts/lg.ttf
create mode 100644 themes/minimal/static/fonts/lg.woff
create mode 100644 themes/minimal/static/images/fileicons/file.png
create mode 100644 themes/minimal/static/images/fileicons/gz.png
create mode 100644 themes/minimal/static/images/fileicons/pdf.png
create mode 100644 themes/minimal/static/images/loading.gif
create mode 100644 themes/minimal/static/images/ps-initial-monogram-logo-450w-343390823.jpg
create mode 100644 themes/minimal/static/images/zoom.png
create mode 100644 themes/minimal/static/js/bitter.zip
create mode 100644 themes/minimal/static/js/jquery.mousewheel.min.js
create mode 100644 themes/minimal/static/js/lg-autoplay.js
create mode 100644 themes/minimal/static/js/lg-fullscreen.js
create mode 100644 themes/minimal/static/js/lg-hash.js
create mode 100644 themes/minimal/static/js/lg-pager.js
create mode 100644 themes/minimal/static/js/lg-share.js
create mode 100644 themes/minimal/static/js/lg-zoom.js
create mode 100644 themes/minimal/static/js/lightgallery.js
create mode 100644 themes/minimal/templates/alternate_index.html
create mode 100644 themes/minimal/templates/archives.html
create mode 100644 themes/minimal/templates/article.html
create mode 100644 themes/minimal/templates/author.html
create mode 100644 themes/minimal/templates/authors.html
create mode 100644 themes/minimal/templates/base.html
create mode 100644 themes/minimal/templates/galery.html
create mode 100644 themes/minimal/templates/index.html
create mode 100644 themes/minimal/templates/page.html
create mode 100644 themes/minimal/templates/page_discussion.html
create mode 100644 themes/minimal/templates/page_notitle.html
create mode 100644 themes/minimal/templates/projects.html
create mode 100644 themes/minimal/templates/tag.html
create mode 100644 themes/minimal/templates/tags.html
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..0b43490
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,6 @@
+output
+__pycache__
+*.pid
+*.pid
+*.pyc
+*~
diff --git a/README.md b/README.md
index 3a295f2..d963ea3 100644
--- a/README.md
+++ b/README.md
@@ -4,3 +4,11 @@ phschoen.de
install requirements:
pip install -r requirements.txt
+
+resize images
+
+ make img
+
+start devserver
+
+ make devserver
diff --git a/content/pages/about.md b/content/pages/about.md
new file mode 100644
index 0000000..d69c548
--- /dev/null
+++ b/content/pages/about.md
@@ -0,0 +1,46 @@
+title: About me
+date: 2013-03-25 10:20
+authors: Philipp Schönberger
+url: about.html
+save_as: about.html
+
+## Personal Links ##
+
+
+[github](https://www.github.com/phschoen)
+[linkedin](https://www.linkedin.com/in/phschoen)
+[xing](https://www.xing.com/profile/Philipp_Schoenberger5)
+[stackoverflow](https://stackoverflow.com/users/1016564)
+
+## Contact Details ##
+
+Email: mail@phschoen.de
+Address: Check the WHOIS record.
+
+## Press ##
+
+| year | article |
+|------|---------|
+| 2019 | [Loeten-bis-zum-Abheben-So-bauen-Maedchen-in-Markdorf-einen-flugfaehigen-Quadrocopter](https://www.suedkurier.de/region/bodenseekreis/markdorf/Loeten-bis-zum-Abheben-So-bauen-Maedchen-in-Markdorf-einen-flugfaehigen-Quadrocopter;art372484,10125455) |
+| 2019 | [Vier Mädchen bauen ein Fluggerät](https://www.schwaebische.de/landkreis/bodenseekreis/markdorf_artikel,-vier-m%C3%A4dchen-bauen-ein-flugger%C3%A4t-_arid,11042245.html) |
+
+
+## Interests ##
+
+photography,
+programming,
+3d printing and CAD,
+electrical engeneering,
+gardening,
+
+## CV ##
+
+| year | working title |
+|-------------------|------------------------------------------------------|
+| 01/2018 - now | embedded software architect - employee |
+| 07/2015 - 12/2017 | embedded Linux engineer - employee |
+| 03/2014 - 05/2016 | embedded Linux engineer - working student & employee |
+| 05/2013 - 09/2013 | embedded Linux engineer - employee |
+| 01/2013 - 04/2013 | embedded Linux engineer - bachelor thesis |
+| 07/2012 - 12/2012 | embedded Linux engineer - working student |
+| 09/2011 - 03/2012 | embedded Linux engineer - intern |
diff --git a/content/pages/gallery/index.md b/content/pages/gallery/index.md
new file mode 100644
index 0000000..0c6726b
--- /dev/null
+++ b/content/pages/gallery/index.md
@@ -0,0 +1,26 @@
+title: Gallery
+author: Philipp Schönberger
+url: gallery/index.html
+save_as: gallery/index.html
+template: page
+
+Here you find latest pictures i am willing to share. Enjoy the views.
+
+
+[lightgallery
+ /images/gallery/IMG_3184.jpg, Neighbour cat ;
+ /images/gallery/IMG_3364.jpg, Steinhummel an der Kornblume ;
+ /images/gallery/IMG_3386.jpg, Gartenhummel an der Kornblume ;
+ /images/gallery/IMG_3414.jpg, Gartenhummel an der Kornblume ;
+ /images/gallery/IMG_3477.jpg ;
+ /images/gallery/IMG_3483.jpg, Distel ;
+ /images/gallery/IMG_3559.jpg, Windrose in Blüte ;
+ /images/gallery/IMG_8722.jpg, Dänische Südseehaus ;
+ /images/gallery/IMG_9037.jpg, Fisherman Sailingboat ;
+ /images/gallery/IMG_9097.jpg, Sailingboat ;
+ /images/gallery/IMG_9136.jpg, Sunrise in Denmark ;
+ /images/gallery/IMG_9137.jpg, Sunrise in Denmark ;
+ /images/gallery/IMG_9393.jpg, Harbour Grömitz at night;
+lightgalleryend]
+
+this is some gallery:
diff --git a/content/pages/impressum.md b/content/pages/impressum.md
new file mode 100644
index 0000000..03f845d
--- /dev/null
+++ b/content/pages/impressum.md
@@ -0,0 +1,24 @@
+title: Impressum
+authors: Philipp Schönberger
+url: impressum.html
+save_as: impressum.html
+
+Haftungsausschluss (Disclaimer)
+Haftung für Inhalte
+
+Als Diensteanbieter sind wir gemäß § 7 Abs.1 TMG für eigene Inhalte auf diesen Seiten nach den allgemeinen Gesetzen verantwortlich. Nach §§ 8 bis 10 TMG sind wir als Diensteanbieter jedoch nicht verpflichtet, übermittelte oder gespeicherte fremde Informationen zu überwachen oder nach Umständen zu forschen, die auf eine rechtswidrige Tätigkeit hinweisen.
+
+Verpflichtungen zur Entfernung oder Sperrung der Nutzung von Informationen nach den allgemeinen Gesetzen bleiben hiervon unberührt. Eine diesbezügliche Haftung ist jedoch erst ab dem Zeitpunkt der Kenntnis einer konkreten Rechtsverletzung möglich. Bei Bekanntwerden von entsprechenden Rechtsverletzungen werden wir diese Inhalte umgehend entfernen.
+Haftung für Links
+
+Unser Angebot enthält Links zu externen Websites Dritter, auf deren Inhalte wir keinen Einfluss haben. Deshalb können wir für diese fremden Inhalte auch keine Gewähr übernehmen. Für die Inhalte der verlinkten Seiten ist stets der jeweilige Anbieter oder Betreiber der Seiten verantwortlich. Die verlinkten Seiten wurden zum Zeitpunkt der Verlinkung auf mögliche Rechtsverstöße überprüft. Rechtswidrige Inhalte waren zum Zeitpunkt der Verlinkung nicht erkennbar.
+
+Eine permanente inhaltliche Kontrolle der verlinkten Seiten ist jedoch ohne konkrete Anhaltspunkte einer Rechtsverletzung nicht zumutbar. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Links umgehend entfernen.
+Urheberrecht
+
+Die durch die Seitenbetreiber erstellten Inhalte und Werke auf diesen Seiten unterliegen dem deutschen Urheberrecht. Die Vervielfältigung, Bearbeitung, Verbreitung und jede Art der Verwertung außerhalb der Grenzen des Urheberrechtes bedürfen der schriftlichen Zustimmung des jeweiligen Autors bzw. Erstellers. Downloads und Kopien dieser Seite sind nur für den privaten, nicht kommerziellen Gebrauch gestattet.
+
+Soweit die Inhalte auf dieser Seite nicht vom Betreiber erstellt wurden, werden die Urheberrechte Dritter beachtet. Insbesondere werden Inhalte Dritter als solche gekennzeichnet. Sollten Sie trotzdem auf eine Urheberrechtsverletzung aufmerksam werden, bitten wir um einen entsprechenden Hinweis. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Inhalte umgehend entfernen.
+
+Quelle: http://www.e-recht24.de
+
diff --git a/content/pages/index.md b/content/pages/index.md
new file mode 100644
index 0000000..0fe4a73
--- /dev/null
+++ b/content/pages/index.md
@@ -0,0 +1,21 @@
+title: home
+author: Philipp Schönberger
+url: index.html
+save_as: index.html
+template: page
+
+Welcome to my webpage.
+
+It contains things I work or worked on and lot of other things I had fun with.
+
+I’m Philipp Schönberger born in in Zeitz(Germany) within the 1988.
+In Constance I made my bachelor degree within ‘computer engineering‘.
+Afterwards I absolved my master degree within the ‘robotics and intelligent embedded systems‘ in Lübeck.
+Currently I am employed as software engineer/architect for a satellite aided router in Germany near the Lake Constance.
+
+Enjoy your stay.
+
+## Contact ##
+
+* Email: mail@phschoen.de
+* Address: Check the WHOIS record.
diff --git a/content/pages/projects/01_3d_printer.md b/content/pages/projects/01_3d_printer.md
new file mode 100644
index 0000000..938482c
--- /dev/null
+++ b/content/pages/projects/01_3d_printer.md
@@ -0,0 +1,11 @@
+title: Projects
+date: 2019-05-20
+author: Philipp Schönberger
+slug: 3d_printer_en
+template: page
+category: projects
+url: projects/01_3d_printer.html
+save_as: projects/01_3d_printer.html
+
+Here you can view the.. latest projects i've started.
+
diff --git a/content/pages/projects/projects.md b/content/pages/projects/projects.md
new file mode 100644
index 0000000..d9e295b
--- /dev/null
+++ b/content/pages/projects/projects.md
@@ -0,0 +1,13 @@
+title: Projects
+date: 2019-05-20
+author: Philipp Schönberger
+slug: projects
+category: projects
+url: projects/index.html
+save_as: projects/index.html
+
+Here you can view the latest projects i've started.
+
+This page contains tutorials, rough drafts I work on. The articles in here aren't necessarily finished and some of them aren't open to discussion, because they are work in progress (or chaos). Some of them might be turned into self-contained blog posts, some of them will never get out of this dungeon.
+
+
diff --git a/develop_server.sh b/develop_server.sh
new file mode 100755
index 0000000..9e92dc5
--- /dev/null
+++ b/develop_server.sh
@@ -0,0 +1,109 @@
+#!/usr/bin/env bash
+##
+# This section should match your Makefile
+##
+IS_UBUNTU_1404=$(lsb_release -r | grep 14.04 > /dev/null && echo yes || echo no)
+echo is damn old ubuntu $IS_UBUNTU_1404
+if [[ "$IS_UBUNTU_1404" == "yes" ]]
+then
+ PY=python2.7
+else
+ PY=python3
+fi
+echo $PY
+
+PELICAN=pelican
+PELICANOPTS=
+
+BASEDIR=$(pwd)
+INPUTDIR=$BASEDIR/content
+OUTPUTDIR=$BASEDIR/output
+CONFFILE=$BASEDIR/pelicanconf.py
+
+###
+# Don't change stuff below here unless you are sure
+###
+
+SRV_PID=$BASEDIR/srv.pid
+PELICAN_PID=$BASEDIR/pelican.pid
+
+function usage(){
+ echo "usage: $0 (stop) (start) (restart)"
+ echo "This starts pelican in debug and reload mode and then launches"
+ echo "A pelican.server to help site development. It doesn't read"
+ echo "your pelican options so you edit any paths in your Makefile"
+ echo "you will need to edit it as well"
+ exit 3
+}
+
+function alive() {
+ kill -0 $1 >/dev/null 2>&1
+}
+
+function shut_down(){
+ PID=$(cat $SRV_PID)
+ if [[ $? -eq 0 ]]; then
+ if alive $PID; then
+ echo "Killing pelican.server"
+ kill $PID
+ else
+ echo "Stale PID, deleting"
+ fi
+ rm $SRV_PID
+ else
+ echo "pelican.server PIDFile not found"
+ fi
+
+ PID=$(cat $PELICAN_PID)
+ if [[ $? -eq 0 ]]; then
+ if alive $PID; then
+ echo "Killing Pelican"
+ kill $PID
+ else
+ echo "Stale PID, deleting"
+ fi
+ rm $PELICAN_PID
+ else
+ echo "Pelican PIDFile not found"
+ fi
+}
+
+function start_up(){
+ echo "Starting up Pelican and pelican.server"
+ shift
+ mkdir -p $(OUTPUTDIR)
+ $PELICAN --debug --autoreload -r $INPUTDIR -o $OUTPUTDIR -s $CONFFILE $PELICANOPTS &
+ pelican_pid=$!
+ echo $pelican_pid > $PELICAN_PID
+ cd $OUTPUTDIR
+ $PY -m pelican.server &
+ srv_pid=$!
+ echo $srv_pid > $SRV_PID
+ cd $BASEDIR
+ sleep 1
+ if ! alive $pelican_pid ; then
+ echo "Pelican didn't start. Is the pelican package installed?"
+ return 1
+ elif ! alive $srv_pid ; then
+ echo "pelican.server didn't start. Is the pelican package installed?"
+ return 1
+ fi
+ echo 'Pelican and pelican.server processes now running in background.'
+}
+
+###
+# MAIN
+###
+[[ $# -ne 1 ]] && usage
+if [[ $1 == "stop" ]]; then
+ shut_down
+elif [[ $1 == "restart" ]]; then
+ shut_down
+ start_up
+elif [[ $1 == "start" ]]; then
+ if ! start_up; then
+ shut_down
+ fi
+else
+ usage
+fi
diff --git a/pelicanconf.py b/pelicanconf.py
new file mode 100644
index 0000000..eac4b16
--- /dev/null
+++ b/pelicanconf.py
@@ -0,0 +1,175 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*- #
+
+# Probably replace those with simpler methods:
+from __future__ import unicode_literals
+from operator import itemgetter, methodcaller
+
+AUTHOR = 'Philipp Schönberger'
+EMAIL = 'mail AT phschoen.de'
+SITENAME = 'https://phschoen.de'
+OUTPUT_PATH = 'output/DEV/'
+
+# Base URL this page is hosted at:
+SITENAME = 'phschoen.de'
+# SITEURL = 'http://skylx125.ndsatcom.com:8000'
+SITEURL = 'http://localhost:8000'
+
+# Timezone is GMT+1:
+TIMEZONE = 'Europe/Paris'
+# Using a simple date format:
+DEFAULT_DATE_FORMAT = ('%d %b %Y')
+DEFAULT_LANG = 'en'
+DATE_FORMATS = {
+ 'en': '%-d/%b/%Y',
+ 'de': '%-d/%-m/%Y',
+}
+LOCALE = ('usa', 'de', # On Windows
+ 'en_US', 'de_DE' # On Unix/Linux
+ )
+
+# We are using the custom minimal theme:
+THEME = 'themes/minimal'
+# THEME = 'themes/pelican-chunk'
+#THEME = 'themes/pelican-themes/bootstrap4-standard'
+
+DELETE_OUTPUT_DIRECTORY = True
+# MARKUP = ('md',)
+# # Markdown Configuration:
+# MARKDOWN = {
+# 'extension_configs': {
+# 'markdown.extensions.codehilite': {'css_class': 'highlight'},
+# 'markdown.extensions.toc' : {},
+# 'markdown.extensions.extra': {},
+# 'markdown.extensions.meta': {},
+# },
+# 'output_format': 'html5',
+# }
+# We don't use relative URLs:
+RELATIVE_URLS = False
+
+# Edit predefined pathes:
+ARCHIVES_SAVE_AS = 'pages/index.html'
+
+# Generates nice URLs for pages:
+PAGE_URL = '{slug}'
+PAGE_SAVE_AS = '{slug}/index.html'
+
+# Generate nice URLs for articles:
+ARTICLE_EXCLUDES = (('pages',))
+ARTICLE_URL = 'blog/{slug}'
+ARTICLE_SAVE_AS = 'blog/{slug}/index.html'
+
+# Generate nice URLs for tags:
+TAG_URL = 'tag/{name}/'
+TAG_SAVE_AS = 'tag/{name}/index.html'
+TAGS_SAVE_AS = 'tags/index.html'
+
+# Generate nice URLs for categories:
+CATEGORY_URL = 'category/{name}/'
+CATEGORY_SAVE_AS = 'category/{name}/index.html'
+
+# Setup the RSS/ATOM feeds:
+FEED_DOMAIN = SITEURL
+FEED_MAX_ITEMS = 10
+# We only want RSS/ATOM Feeds for all articles, exclude categories:
+FEED_RSS = 'feeds/rss.xml'
+TAG_FEED_RSS = 'feeds/{slug}.rss.xml'
+CATEGORY_FEED_RSS = None
+
+# Feed generation is usually not desired when developing
+FEED_ATOM = 'feeds/atom.xml'
+FEED_ALL_ATOM = None
+TAG_FEED_ATOM = None
+CATEGORY_FEED_ATOM = None
+TRANSLATION_FEED_ATOM = None
+
+
+# Separate page directory and articles directory:
+PAGE_PATHS = ['pages']
+ARTICLE_PATHS = ['blog']
+
+# Save index as blog/index.html instead of index.html:
+INDEX_SAVE_AS = 'blog/index.html'
+
+# Navigation menu:
+SECTIONS = [('blog', '/blog'),
+ ('Projects', '/projects'),
+ ('Gallery', '/gallery'),
+ ('about', '/about'),
+ ('Impressum', '/impressum'),
+ ]
+
+# Links to display in the footer:
+LINKS = [('bsd', 'http://www.opensource.org/licenses/BSD-3-Clause'),
+ ('xhtml', 'http://validator.w3.org/check/referer'),
+ ('css3', 'http://jigsaw.w3.org/css-validator/check/referer?profile=css'),
+ ('pelican', 'https://github.com/getpelican'),
+ ]
+
+# Set some default category:
+DEFAULT_CATEGORY = 'uncategorized'
+
+# Social widget
+# SOCIAL = (('You can add links in your config file', '#'),
+# ('Another social link', '#'),)
+
+# DEFAULT_PAGINATION = 10
+
+PLUGIN_PATHS = ['plugins', ]
+PLUGINS = ['lightgallery', 'i18n_subsites']
+# PLUGIN_PATHS = ['./pelican-plugins/', ]
+
+# PLUGINS = ['i18n_subsites', ]
+# JINJA_ENVIRONMENT = {
+# 'extensions': ['jinja2.ext.i18n'],
+# }
+
+
+GITHUB_SOURCE_PATH = "wooot"
+
+I18N_SUBSITES = {'en': {'SITENAME': 'phschoen.com',
+ },
+ 'de': {'SITENAME': 'phschoen.de',
+ },
+ }
+
+languages_lookup = {'en': 'English',
+ 'de': 'Deutsch',
+ }
+
+
+def lookup_lang_name(lang_code):
+ return languages_lookup[lang_code]
+
+
+def getGitHubPage(source_file):
+ filename = getBasename(source_file)
+ return '{0}/{1}'.format(GITHUB_SOURCE_PATH, filename)
+
+
+def getBasename(path):
+ return "name "
+
+
+def month_name(month_number):
+ return "month_name"
+
+
+def sortTupleByIndex(items, index=0, reverse=True):
+ return sorted(items, key=lambda tup: len(tup[index]), reverse=reverse)
+
+
+def sortDictByKey(items, key, reverse=True, default=None):
+ if default is None:
+ return sorted(items, key=itemgetter(key), reverse=reverse)
+ return sorted(items, key=methodcaller('get', key, default), reverse=reverse)
+
+
+JINJA_FILTERS = {'month_name': month_name,
+ 'sortTupleByIndex': sortTupleByIndex,
+ 'sortDictByKey': sortDictByKey,
+ 'basename': getBasename,
+ 'asGitHubPage': getGitHubPage,
+ 'lookup_lang_name': lookup_lang_name,
+ }
diff --git a/plugins/i18n_subsites/README.rst b/plugins/i18n_subsites/README.rst
new file mode 100644
index 0000000..340109b
--- /dev/null
+++ b/plugins/i18n_subsites/README.rst
@@ -0,0 +1,165 @@
+=======================
+ I18N Sub-sites Plugin
+=======================
+
+This plugin extends the translations functionality by creating
+internationalized sub-sites for the default site.
+
+This plugin is designed for Pelican 3.4 and later.
+
+What it does
+============
+
+1. When the content of the main site is being generated, the settings
+ are saved and the generation stops when content is ready to be
+ written. While reading source files and generating content objects,
+ the output queue is modified in certain ways:
+
+ - translations that will appear as native in a different (sub-)site
+ will be removed
+ - untranslated articles will be transformed to drafts if
+ ``I18N_UNTRANSLATED_ARTICLES`` is ``'hide'`` (default), removed if
+ ``'remove'`` or kept as they are if ``'keep'``.
+ - untranslated pages will be transformed into hidden pages if
+ ``I18N_UNTRANSLATED_PAGES`` is ``'hide'`` (default), removed if
+ ``'remove'`` or kept as they are if ``'keep'``.''
+ - additional content manipulation similar to articles and pages can
+ be specified for custom generators in the ``I18N_GENERATOR_INFO``
+ setting.
+
+2. For each language specified in the ``I18N_SUBSITES`` dictionary the
+ settings overrides are applied to the settings from the main site
+ and a new sub-site is generated in the same way as with the main
+ site until content is ready to be written.
+3. When all (sub-)sites are waiting for content writing, all removed
+ contents, translations and static files are interlinked across the
+ (sub-)sites.
+4. Finally, all the output is written.
+
+Setting it up
+=============
+
+For each extra used language code, a language-specific settings overrides
+dictionary must be given (but can be empty) in the ``I18N_SUBSITES`` dictionary
+
+.. code-block:: python
+
+ PLUGINS = ['i18n_subsites', ...]
+
+ # mapping: language_code -> settings_overrides_dict
+ I18N_SUBSITES = {
+ 'cz': {
+ 'SITENAME': 'Hezkej blog',
+ }
+ }
+
+You must also have the following in your pelican configuration
+
+.. code-block:: python
+ JINJA_ENVIRONMENT = {
+ 'extensions': ['jinja2.ext.i18n'],
+ }
+
+
+
+Default and special overrides
+-----------------------------
+The settings overrides may contain arbitrary settings, however, there
+are some that are handled in a special way:
+
+``SITEURL``
+ Any overrides to this setting should ensure that there is some level
+ of hierarchy between all (sub-)sites, because Pelican makes all URLs
+ relative to ``SITEURL`` and the plugin can only cross-link between
+ the sites using this hierarchy. For instance, with the main site
+ ``http://example.com`` a sub-site ``http://example.com/de`` will
+ work, but ``http://de.example.com`` will not. If not overridden, the
+ language code (the language identifier used in the ``lang``
+ metadata) is appended to the main ``SITEURL`` for each sub-site.
+``OUTPUT_PATH``, ``CACHE_PATH``
+ If not overridden, the language code is appended as with ``SITEURL``.
+ Separate cache paths are required as parser results depend on the locale.
+``STATIC_PATHS``, ``THEME_STATIC_PATHS``
+ If not overridden, they are set to ``[]`` and all links to static
+ files are cross-linked to the main site.
+``THEME``, ``THEME_STATIC_DIR``
+ If overridden, the logic with ``THEME_STATIC_PATHS`` does not apply.
+``DEFAULT_LANG``
+ This should not be overridden as the plugin changes it to the
+ language code of each sub-site to change what is perceived as translations.
+
+Localizing templates
+--------------------
+
+Most importantly, this plugin can use localized templates for each
+sub-site. There are two approaches to having the templates localized:
+
+- You can set a different ``THEME`` override for each language in
+ ``I18N_SUBSITES``, e.g. by making a copy of a theme ``my_theme`` to
+ ``my_theme_lang`` and then editing the templates in the new
+ localized theme. This approach means you don't have to deal with
+ gettext ``*.po`` files, but it is harder to maintain over time.
+- You use only one theme and localize the templates using the
+ `jinja2.ext.i18n Jinja2 extension
+ `_. For a kickstart
+ read this `guide <./localizing_using_jinja2.rst>`_.
+
+Additional context variables
+............................
+
+It may be convenient to add language buttons to your theme in addition
+to the translation links of articles and pages. These buttons could,
+for example, point to the ``SITEURL`` of each (sub-)site. For this
+reason the plugin adds these variables to the template context:
+
+``main_lang``
+ The language of the main site — the original ``DEFAULT_LANG``
+``main_siteurl``
+ The ``SITEURL`` of the main site — the original ``SITEURL``
+``lang_siteurls``
+ An ordered dictionary, mapping all used languages to their
+ ``SITEURL``. The ``main_lang`` is the first key with ``main_siteurl``
+ as the value. This dictionary is useful for implementing global
+ language buttons that show the language of the currently viewed
+ (sub-)site too.
+``extra_siteurls``
+ An ordered dictionary, subset of ``lang_siteurls``, the current
+ ``DEFAULT_LANG`` of the rendered (sub-)site is not included, so for
+ each (sub-)site ``set(extra_siteurls) == set(lang_siteurls) -
+ set([DEFAULT_LANG])``. This dictionary is useful for implementing
+ global language buttons that do not show the current language.
+``relpath_to_site``
+ A function that returns a relative path from the first (sub-)site to
+ the second (sub-)site where the (sub-)sites are identified by the
+ language codes given as two arguments.
+
+If you don't like the default ordering of the ordered dictionaries,
+use a Jinja2 filter to alter the ordering.
+
+All the siteurls above are always absolute even in the case of
+``RELATIVE_URLS == True`` (it would be to complicated to replicate the
+Pelican internals for local siteurls), so you may rather use something
+like ``{{ SITEURL }}/{{ relpath_to_site(DEFAULT_LANG, main_lang }}``
+to link to the main site.
+
+This short `howto <./implementing_language_buttons.rst>`_ shows two
+example implementations of language buttons.
+
+Usage notes
+===========
+- It is **mandatory** to specify ``lang`` metadata for each article
+ and page as ``DEFAULT_LANG`` is later changed for each sub-site, so
+ content without ``lang`` metadata would be rendered in every
+ (sub-)site.
+- As with the original translations functionality, ``slug`` metadata
+ is used to group translations. It is therefore often convenient to
+ compensate for this by overriding the content URL (which defaults to
+ slug) using the ``url`` and ``save_as`` metadata. You could also
+ give articles e.g. ``name`` metadata and use it in ``ARTICLE_URL =
+ '{name}.html'``.
+
+Development
+===========
+
+- A demo and a test site is in the ``gh-pages`` branch and can be seen
+ at http://smartass101.github.io/pelican-plugins/
diff --git a/plugins/i18n_subsites/__init__.py b/plugins/i18n_subsites/__init__.py
new file mode 100644
index 0000000..7dfbde0
--- /dev/null
+++ b/plugins/i18n_subsites/__init__.py
@@ -0,0 +1 @@
+from .i18n_subsites import *
diff --git a/plugins/i18n_subsites/i18n_subsites.py b/plugins/i18n_subsites/i18n_subsites.py
new file mode 100644
index 0000000..dc27799
--- /dev/null
+++ b/plugins/i18n_subsites/i18n_subsites.py
@@ -0,0 +1,462 @@
+"""i18n_subsites plugin creates i18n-ized subsites of the default site
+
+This plugin is designed for Pelican 3.4 and later
+"""
+
+
+import os
+import six
+import logging
+import posixpath
+
+from copy import copy
+from itertools import chain
+from operator import attrgetter
+try:
+ from collections.abc import OrderedDict
+except ImportError:
+ from collections import OrderedDict
+from contextlib import contextmanager
+from six.moves.urllib.parse import urlparse
+
+import gettext
+import locale
+
+from pelican import signals
+from pelican.generators import ArticlesGenerator, PagesGenerator
+from pelican.settings import configure_settings
+try:
+ from pelican.contents import Draft
+except ImportError:
+ from pelican.contents import Article as Draft
+
+
+# Global vars
+_MAIN_SETTINGS = None # settings dict of the main Pelican instance
+_MAIN_LANG = None # lang of the main Pelican instance
+_MAIN_SITEURL = None # siteurl of the main Pelican instance
+_MAIN_STATIC_FILES = None # list of Static instances the main Pelican instance
+_SUBSITE_QUEUE = {} # map: lang -> settings overrides
+_SITE_DB = OrderedDict() # OrderedDict: lang -> siteurl
+_SITES_RELPATH_DB = {} # map: (lang, base_lang) -> relpath
+# map: generator -> list of removed contents that need interlinking
+_GENERATOR_DB = {}
+_NATIVE_CONTENT_URL_DB = {} # map: source_path -> content in its native lang
+_LOGGER = logging.getLogger(__name__)
+
+
+@contextmanager
+def temporary_locale(temp_locale=None):
+ '''Enable code to run in a context with a temporary locale
+
+ Resets the locale back when exiting context.
+ Can set a temporary locale if provided
+ '''
+ orig_locale = locale.setlocale(locale.LC_ALL)
+ if temp_locale is not None:
+ locale.setlocale(locale.LC_ALL, temp_locale)
+ yield
+ locale.setlocale(locale.LC_ALL, orig_locale)
+
+
+def initialize_dbs(settings):
+ '''Initialize internal DBs using the Pelican settings dict
+
+ This clears the DBs for e.g. autoreload mode to work
+ '''
+ global _MAIN_SETTINGS, _MAIN_SITEURL, _MAIN_LANG, _SUBSITE_QUEUE
+ _MAIN_SETTINGS = settings
+ _MAIN_LANG = settings['DEFAULT_LANG']
+ _MAIN_SITEURL = settings['SITEURL']
+ _SUBSITE_QUEUE = settings.get('I18N_SUBSITES', {}).copy()
+ prepare_site_db_and_overrides()
+ # clear databases in case of autoreload mode
+ _SITES_RELPATH_DB.clear()
+ _NATIVE_CONTENT_URL_DB.clear()
+ _GENERATOR_DB.clear()
+
+
+def prepare_site_db_and_overrides():
+ '''Prepare overrides and create _SITE_DB
+
+ _SITE_DB.keys() need to be ready for filter_translations
+ '''
+ _SITE_DB.clear()
+ _SITE_DB[_MAIN_LANG] = _MAIN_SITEURL
+ # make sure it works for both root-relative and absolute
+ main_siteurl = '/' if _MAIN_SITEURL == '' else _MAIN_SITEURL
+ for lang, overrides in _SUBSITE_QUEUE.items():
+ if 'SITEURL' not in overrides:
+ overrides['SITEURL'] = posixpath.join(main_siteurl, lang)
+ _SITE_DB[lang] = overrides['SITEURL']
+ # default subsite hierarchy
+ if 'OUTPUT_PATH' not in overrides:
+ overrides['OUTPUT_PATH'] = os.path.join(
+ _MAIN_SETTINGS['OUTPUT_PATH'], lang)
+ if 'CACHE_PATH' not in overrides:
+ overrides['CACHE_PATH'] = os.path.join(
+ _MAIN_SETTINGS['CACHE_PATH'], lang)
+ if 'STATIC_PATHS' not in overrides:
+ overrides['STATIC_PATHS'] = []
+ if ('THEME' not in overrides and 'THEME_STATIC_DIR' not in overrides and
+ 'THEME_STATIC_PATHS' not in overrides):
+ relpath = relpath_to_site(lang, _MAIN_LANG)
+ overrides['THEME_STATIC_DIR'] = posixpath.join(
+ relpath, _MAIN_SETTINGS['THEME_STATIC_DIR'])
+ overrides['THEME_STATIC_PATHS'] = []
+ # to change what is perceived as translations
+ overrides['DEFAULT_LANG'] = lang
+
+
+def subscribe_filter_to_signals(settings):
+ '''Subscribe content filter to requested signals'''
+ for sig in settings.get('I18N_FILTER_SIGNALS', []):
+ sig.connect(filter_contents_translations)
+
+
+def initialize_plugin(pelican_obj):
+ '''Initialize plugin variables and Pelican settings'''
+ if _MAIN_SETTINGS is None:
+ initialize_dbs(pelican_obj.settings)
+ subscribe_filter_to_signals(pelican_obj.settings)
+
+
+def get_site_path(url):
+ '''Get the path component of an url, excludes siteurl
+
+ also normalizes '' to '/' for relpath to work,
+ otherwise it could be interpreted as a relative filesystem path
+ '''
+ path = urlparse(url).path
+ if path == '':
+ path = '/'
+ return path
+
+
+def relpath_to_site(lang, target_lang):
+ '''Get relative path from siteurl of lang to siteurl of base_lang
+
+ the output is cached in _SITES_RELPATH_DB
+ '''
+ path = _SITES_RELPATH_DB.get((lang, target_lang), None)
+ if path is None:
+ siteurl = _SITE_DB.get(lang, _MAIN_SITEURL)
+ target_siteurl = _SITE_DB.get(target_lang, _MAIN_SITEURL)
+ path = posixpath.relpath(get_site_path(target_siteurl),
+ get_site_path(siteurl))
+ _SITES_RELPATH_DB[(lang, target_lang)] = path
+ return path
+
+
+def save_generator(generator):
+ '''Save the generator for later use
+
+ initialize the removed content list
+ '''
+ _GENERATOR_DB[generator] = []
+
+
+def article2draft(article):
+ '''Transform an Article to Draft'''
+ draft = Draft(article._content, article.metadata, article.settings,
+ article.source_path, article._context)
+ draft.status = 'draft'
+ return draft
+
+
+def page2hidden_page(page):
+ '''Transform a Page to a hidden Page'''
+ page.status = 'hidden'
+ return page
+
+
+class GeneratorInspector(object):
+ '''Inspector of generator instances'''
+
+ generators_info = {
+ ArticlesGenerator: {
+ 'translations_lists': ['translations', 'drafts_translations'],
+ 'contents_lists': [('articles', 'drafts')],
+ 'hiding_func': article2draft,
+ 'policy': 'I18N_UNTRANSLATED_ARTICLES',
+ },
+ PagesGenerator: {
+ 'translations_lists': ['translations', 'hidden_translations'],
+ 'contents_lists': [('pages', 'hidden_pages')],
+ 'hiding_func': page2hidden_page,
+ 'policy': 'I18N_UNTRANSLATED_PAGES',
+ },
+ }
+
+ def __init__(self, generator):
+ '''Identify the best known class of the generator instance
+
+ The class '''
+ self.generator = generator
+ self.generators_info.update(generator.settings.get(
+ 'I18N_GENERATORS_INFO', {}))
+ for cls in generator.__class__.__mro__:
+ if cls in self.generators_info:
+ self.info = self.generators_info[cls]
+ break
+ else:
+ self.info = {}
+
+ def translations_lists(self):
+ '''Iterator over lists of content translations'''
+ return (getattr(self.generator, name) for name in
+ self.info.get('translations_lists', []))
+
+ def contents_list_pairs(self):
+ '''Iterator over pairs of normal and hidden contents'''
+ return (tuple(getattr(self.generator, name) for name in names)
+ for names in self.info.get('contents_lists', []))
+
+ def hiding_function(self):
+ '''Function for transforming content to a hidden version'''
+ hiding_func = self.info.get('hiding_func', lambda x: x)
+ return hiding_func
+
+ def untranslated_policy(self, default):
+ '''Get the policy for untranslated content'''
+ return self.generator.settings.get(self.info.get('policy', None),
+ default)
+
+ def all_contents(self):
+ '''Iterator over all contents'''
+ translations_iterator = chain(*self.translations_lists())
+ return chain(translations_iterator,
+ *(pair[i] for pair in self.contents_list_pairs()
+ for i in (0, 1)))
+
+
+def filter_contents_translations(generator):
+ '''Filter the content and translations lists of a generator
+
+ Filters out
+ 1) translations which will be generated in a different site
+ 2) content that is not in the language of the currently
+ generated site but in that of a different site, content in a
+ language which has no site is generated always. The filtering
+ method bay be modified by the respective untranslated policy
+ '''
+ inspector = GeneratorInspector(generator)
+ current_lang = generator.settings['DEFAULT_LANG']
+ langs_with_sites = _SITE_DB.keys()
+ removed_contents = _GENERATOR_DB[generator]
+
+ for translations in inspector.translations_lists():
+ for translation in translations[:]: # copy to be able to remove
+ if translation.lang in langs_with_sites:
+ translations.remove(translation)
+ removed_contents.append(translation)
+
+ hiding_func = inspector.hiding_function()
+ untrans_policy = inspector.untranslated_policy(default='hide')
+ for (contents, other_contents) in inspector.contents_list_pairs():
+ for content in other_contents: # save any hidden native content first
+ if content.lang == current_lang: # in native lang
+ # save the native URL attr formatted in the current locale
+ _NATIVE_CONTENT_URL_DB[content.source_path] = content.url
+ for content in contents[:]: # copy for removing in loop
+ if content.lang == current_lang: # in native lang
+ # save the native URL attr formatted in the current locale
+ _NATIVE_CONTENT_URL_DB[content.source_path] = content.url
+ elif content.lang in langs_with_sites and untrans_policy != 'keep':
+ contents.remove(content)
+ if untrans_policy == 'hide':
+ other_contents.append(hiding_func(content))
+ elif untrans_policy == 'remove':
+ removed_contents.append(content)
+
+
+def install_templates_translations(generator):
+ '''Install gettext translations in the jinja2.Environment
+
+ Only if the 'jinja2.ext.i18n' jinja2 extension is enabled
+ the translations for the current DEFAULT_LANG are installed.
+ '''
+ if 'JINJA_ENVIRONMENT' in generator.settings: # pelican 3.7+
+ jinja_extensions = generator.settings['JINJA_ENVIRONMENT'].get(
+ 'extensions', [])
+ else:
+ jinja_extensions = generator.settings['JINJA_EXTENSIONS']
+
+ if 'jinja2.ext.i18n' in jinja_extensions:
+ domain = generator.settings.get('I18N_GETTEXT_DOMAIN', 'messages')
+ localedir = generator.settings.get('I18N_GETTEXT_LOCALEDIR')
+ if localedir is None:
+ localedir = os.path.join(generator.theme, 'translations')
+ current_lang = generator.settings['DEFAULT_LANG']
+ if current_lang == generator.settings.get('I18N_TEMPLATES_LANG',
+ _MAIN_LANG):
+ translations = gettext.NullTranslations()
+ else:
+ langs = [current_lang]
+ try:
+ translations = gettext.translation(domain, localedir, langs)
+ except (IOError, OSError):
+ _LOGGER.error((
+ "Cannot find translations for language '{}' in '{}' with "
+ "domain '{}'. Installing NullTranslations.").format(
+ langs[0], localedir, domain))
+ translations = gettext.NullTranslations()
+ newstyle = generator.settings.get('I18N_GETTEXT_NEWSTYLE', True)
+ generator.env.install_gettext_translations(translations, newstyle)
+
+
+def add_variables_to_context(generator):
+ '''Adds useful iterable variables to template context'''
+ context = generator.context # minimize attr lookup
+ context['relpath_to_site'] = relpath_to_site
+ context['main_siteurl'] = _MAIN_SITEURL
+ context['main_lang'] = _MAIN_LANG
+ context['lang_siteurls'] = _SITE_DB
+ current_lang = generator.settings['DEFAULT_LANG']
+ extra_siteurls = _SITE_DB.copy()
+ extra_siteurls.pop(current_lang)
+ context['extra_siteurls'] = extra_siteurls
+
+
+def interlink_translations(content):
+ '''Link content to translations in their main language
+
+ so the URL (including localized month names) of the different subsites
+ will be honored
+ '''
+ lang = content.lang
+ # sort translations by lang
+ content.translations.sort(key=attrgetter('lang'))
+ for translation in content.translations:
+ relpath = relpath_to_site(lang, translation.lang)
+ url = _NATIVE_CONTENT_URL_DB[translation.source_path]
+ translation.override_url = posixpath.join(relpath, url)
+
+
+def interlink_translated_content(generator):
+ '''Make translations link to the native locations
+
+ for generators that may contain translated content
+ '''
+ inspector = GeneratorInspector(generator)
+ for content in inspector.all_contents():
+ interlink_translations(content)
+
+
+def interlink_removed_content(generator):
+ '''For all contents removed from generation queue update interlinks
+
+ link to the native location
+ '''
+ current_lang = generator.settings['DEFAULT_LANG']
+ for content in _GENERATOR_DB[generator]:
+ url = _NATIVE_CONTENT_URL_DB[content.source_path]
+ relpath = relpath_to_site(current_lang, content.lang)
+ content.override_url = posixpath.join(relpath, url)
+
+
+def interlink_static_files(generator):
+ '''Add links to static files in the main site if necessary'''
+ if generator.settings['STATIC_PATHS'] != []:
+ return # customized STATIC_PATHS
+ try: # minimize attr lookup
+ static_content = generator.context['static_content']
+ except KeyError:
+ static_content = generator.context['filenames']
+ relpath = relpath_to_site(generator.settings['DEFAULT_LANG'], _MAIN_LANG)
+ for staticfile in _MAIN_STATIC_FILES:
+ if staticfile.get_relative_source_path() not in static_content:
+ staticfile = copy(staticfile) # prevent override in main site
+ staticfile.override_url = posixpath.join(relpath, staticfile.url)
+ try:
+ generator.add_source_path(staticfile, static=True)
+ except TypeError:
+ generator.add_source_path(staticfile)
+
+
+def save_main_static_files(static_generator):
+ '''Save the static files generated for the main site'''
+ global _MAIN_STATIC_FILES
+ # test just for current lang as settings change in autoreload mode
+ if static_generator.settings['DEFAULT_LANG'] == _MAIN_LANG:
+ _MAIN_STATIC_FILES = static_generator.staticfiles
+
+
+def update_generators():
+ '''Update the context of all generators
+
+ Ads useful variables and translations into the template context
+ and interlink translations
+ '''
+ for generator in _GENERATOR_DB.keys():
+ install_templates_translations(generator)
+ add_variables_to_context(generator)
+ interlink_static_files(generator)
+ interlink_removed_content(generator)
+ interlink_translated_content(generator)
+
+
+def get_pelican_cls(settings):
+ '''Get the Pelican class requested in settings'''
+ cls = settings['PELICAN_CLASS']
+ if isinstance(cls, six.string_types):
+ module, cls_name = cls.rsplit('.', 1)
+ module = __import__(module)
+ cls = getattr(module, cls_name)
+ return cls
+
+
+def create_next_subsite(pelican_obj):
+ '''Create the next subsite using the lang-specific config
+
+ If there are no more subsites in the generation queue, update all
+ the generators (interlink translations and removed content, add
+ variables and translations to template context). Otherwise get the
+ language and overrides for next the subsite in the queue and apply
+ overrides. Then generate the subsite using a PELICAN_CLASS
+ instance and its run method. Finally, restore the previous locale.
+ '''
+ global _MAIN_SETTINGS
+ if len(_SUBSITE_QUEUE) == 0:
+ _LOGGER.debug(
+ 'i18n: Updating cross-site links and context of all generators.')
+ update_generators()
+ _MAIN_SETTINGS = None # to initialize next time
+ else:
+ with temporary_locale():
+ settings = _MAIN_SETTINGS.copy()
+ lang, overrides = _SUBSITE_QUEUE.popitem()
+ settings.update(overrides)
+ settings = configure_settings(settings) # to set LOCALE, etc.
+ cls = get_pelican_cls(settings)
+
+ new_pelican_obj = cls(settings)
+ _LOGGER.debug(("Generating i18n subsite for language '{}' "
+ "using class {}").format(lang, cls))
+ new_pelican_obj.run()
+
+
+# map: signal name -> function name
+_SIGNAL_HANDLERS_DB = {
+ 'get_generators': initialize_plugin,
+ 'article_generator_pretaxonomy': filter_contents_translations,
+ 'page_generator_finalized': filter_contents_translations,
+ 'get_writer': create_next_subsite,
+ 'static_generator_finalized': save_main_static_files,
+ 'generator_init': save_generator,
+}
+
+
+def register():
+ '''Register the plugin only if required signals are available'''
+ for sig_name in _SIGNAL_HANDLERS_DB.keys():
+ if not hasattr(signals, sig_name):
+ _LOGGER.error((
+ 'The i18n_subsites plugin requires the {} '
+ 'signal available for sure in Pelican 3.4.0 and later, '
+ 'plugin will not be used.').format(sig_name))
+ return
+
+ for sig_name, handler in _SIGNAL_HANDLERS_DB.items():
+ sig = getattr(signals, sig_name)
+ sig.connect(handler)
diff --git a/plugins/i18n_subsites/implementing_language_buttons.rst b/plugins/i18n_subsites/implementing_language_buttons.rst
new file mode 100644
index 0000000..55b7bf3
--- /dev/null
+++ b/plugins/i18n_subsites/implementing_language_buttons.rst
@@ -0,0 +1,128 @@
+-----------------------------
+Implementing language buttons
+-----------------------------
+
+Each article with translations has translations links, but that's the
+only way to switch between language subsites.
+
+For this reason it is convenient to add language buttons to the top
+menu bar to make it simple to switch between the language subsites on
+all pages.
+
+Example designs
+---------------
+
+Language buttons showing other available languages
+..................................................
+
+The ``extra_siteurls`` dictionary is a mapping of all other (not the
+``DEFAULT_LANG`` of the current (sub-)site) languages to the
+``SITEURL`` of the respective (sub-)sites
+
+.. code-block:: jinja
+
+
+
+ {% if extra_siteurls %}
+ {% for lang, url in extra_siteurls.items() %}
+ {{ lang }}
+ {% endfor %}
+
+  
+ {% endif %}
+ {% for title, link in MENUITEMS %}
+
+
+Notice the slash ``/`` after ``{{ url }}``, this makes sure it works
+with local development when ``SITEURL == ''``.
+
+Language buttons showing all available languages, current is active
+...................................................................
+
+The ``lang_subsites`` dictionary is a mapping of all languages to the
+``SITEURL`` of the respective (sub-)sites. This template sets the
+language of the current (sub-)site as active.
+
+.. code-block:: jinja
+
+
+
+ {% if lang_siteurls %}
+ {% for lang, url in lang_siteurls.items() %}
+ {{ lang }}
+ {% endfor %}
+
+  
+ {% endif %}
+ {% for title, link in MENUITEMS %}
+
+
+
+Tips and tricks
+---------------
+
+Showing more than language codes
+................................
+
+If you want the language buttons to show e.g. the names of the
+languages or flags [#flags]_, not just the language codes, you can use
+a jinja filter to translate the language codes
+
+
+.. code-block:: python
+
+ languages_lookup = {
+ 'en': 'English',
+ 'cz': 'Čeština',
+ }
+
+ def lookup_lang_name(lang_code):
+ return languages_lookup[lang_code]
+
+ JINJA_FILTERS = {
+ ...
+ 'lookup_lang_name': lookup_lang_name,
+ }
+
+And then the link content becomes
+
+.. code-block:: jinja
+
+
+ {% for lang, siteurl in lang_siteurls.items() %}
+ {{ lang | lookup_lang_name }}
+ {% endfor %}
+
+
+
+Changing the order of language buttons
+......................................
+
+Because ``lang_siteurls`` and ``extra_siteurls`` are instances of
+``OrderedDict`` with ``main_lang`` being always the first key, you can
+change the order through a jinja filter.
+
+.. code-block:: python
+
+ def my_ordered_items(ordered_dict):
+ items = list(ordered_dict.items())
+ # swap first and last using tuple unpacking
+ items[0], items[-1] = items[-1], items[0]
+ return items
+
+ JINJA_FILTERS = {
+ ...
+ 'my_ordered_items': my_ordered_items,
+ }
+
+And then the ``for`` loop line in the template becomes
+
+.. code-block:: jinja
+
+
+ {% for lang, siteurl in lang_siteurls | my_ordered_items %}
+
+
+
+.. [#flags] Although it may look nice, `w3 discourages it
+ `_.
diff --git a/plugins/i18n_subsites/localizing_using_jinja2.rst b/plugins/i18n_subsites/localizing_using_jinja2.rst
new file mode 100644
index 0000000..6ffe654
--- /dev/null
+++ b/plugins/i18n_subsites/localizing_using_jinja2.rst
@@ -0,0 +1,200 @@
+-----------------------------
+Localizing themes with Jinja2
+-----------------------------
+
+1. Localize templates
+---------------------
+
+To enable the |ext| extension in your templates, you must add it to
+``JINJA_EXTENSIONS`` in your Pelican configuration
+
+.. code-block:: python
+
+ JINJA_EXTENSIONS = ['jinja2.ext.i18n', ...]
+
+Then follow the `Jinja2 templating documentation for the I18N plugin
+`_ to make your templates
+localizable. This usually means surrounding strings with the ``{%
+trans %}`` directive or using ``gettext()`` in expressions
+
+.. code-block:: jinja
+
+ {% trans %}translatable content{% endtrans %}
+ {{ gettext('a translatable string') }}
+
+For pluralization support, etc. consult the documentation.
+
+To enable `newstyle gettext calls
+`_ the
+``I18N_GETTEXT_NEWSTYLE`` config variable must be set to ``True``
+(default).
+
+.. |ext| replace:: ``jinja2.ext.i18n``
+
+2. Specify translations location
+--------------------------------
+
+The |ext| extension uses the `Python gettext library
+`_ for translating
+strings.
+
+In your Pelican config you can give the path in which to look for
+translations in the ``I18N_GETTEXT_LOCALEDIR`` variable. If not given,
+it is assumed to be the ``translations`` subfolder in the top folder
+of the theme specified by ``THEME``.
+
+The domain of the translations (the name of each translation file is
+``domain.mo``) is controlled by the ``I18N_GETTEXT_DOMAIN`` config
+variable (defaults to ``messages``).
+
+Example
+.......
+
+With the following in your Pelican settings file
+
+.. code-block:: python
+
+ I18N_GETTEXT_LOCALEDIR = 'some/path/'
+ I18N_GETTEXT_DOMAIN = 'my_domain'
+
+the translation for language 'cz' will be expected to be in
+``some/path/cz/LC_MESSAGES/my_domain.mo``
+
+
+3. Extract translatable strings and translate them
+--------------------------------------------------
+
+There are many ways to extract translatable strings and create
+``gettext`` compatible translations. You can create the ``*.po`` and
+``*.mo`` message catalog files yourself, or you can use some helper
+tool as described in `the Python gettext library tutorial
+`_.
+
+You of course don't need to provide a translation for the language in
+which the templates are written which is assumed to be the original
+``DEFAULT_LANG``. This can be overridden in the
+``I18N_TEMPLATES_LANG`` variable.
+
+Recommended tool: babel
+.......................
+
+`Babel `_ makes it easy to extract
+translatable strings from the localized Jinja2 templates and assists
+with creating translations as documented in this `Jinja2-Babel
+tutorial
+`_
+[#flask]_ on which the following is based.
+
+1. Add babel mapping
+~~~~~~~~~~~~~~~~~~~~
+
+Let's assume that you are localizing a theme in ``themes/my_theme/``
+and that you use the default settings, i.e. the default domain
+``messages`` and will put the translations in the ``translations``
+subdirectory of the theme directory as
+``themes/my_theme/translations/``.
+
+It is up to you where to store babel mappings and translation files
+templates (``*.pot``), but a convenient place is to put them in
+``themes/my_theme/`` and work in that directory. From now on let's
+assume that it will be our current working directory (CWD).
+
+To tell babel to extract translatable strings from the templates
+create a mapping file ``babel.cfg`` with the following line
+
+.. code-block:: cfg
+
+ [jinja2: templates/**.html]
+
+
+2. Extract translatable strings from templates
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Run the following command to create a ``messages.pot`` message catalog
+template file from extracted translatable strings
+
+.. code-block:: bash
+
+ pybabel extract --mapping babel.cfg --output messages.pot ./
+
+
+3. Initialize message catalogs
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+If you want to translate the template to language ``lang``, run the
+following command to create a message catalog
+``translations/lang/LC_MESSAGES/messages.po`` using the template
+``messages.pot``
+
+.. code-block:: bash
+
+ pybabel init --input-file messages.pot --output-dir translations/ --locale lang --domain messages
+
+babel expects ``lang`` to be a valid locale identifier, so if e.g. you
+are translating for language ``cz`` but the corresponding locale is
+``cs``, you have to use the locale identifier. Nevertheless, the
+gettext infrastructure should later correctly find the locale for a
+given language.
+
+4. Fill the message catalogs
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The message catalog files format is quite intuitive, it is fully
+documented in the `GNU gettext manual
+`_. Essentially,
+you fill in the ``msgstr`` strings
+
+
+.. code-block:: po
+
+ msgid "just a simple string"
+ msgstr "jenom jednoduchý řetězec"
+
+ msgid ""
+ "some multiline string"
+ "looks like this"
+ msgstr ""
+ "nějaký více řádkový řetězec"
+ "vypadá takto"
+
+You might also want to remove ``#,fuzzy`` flags once the translation
+is complete and reviewed to show that it can be compiled.
+
+5. Compile the message catalogs
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The message catalogs must be compiled into binary format using this
+command
+
+.. code-block:: bash
+
+ pybabel compile --directory translations/ --domain messages
+
+This command might complain about "fuzzy" translations, which means
+you should review the translations and once done, remove the fuzzy
+flag line.
+
+(6.) Update the catalogs when templates change
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+If you add any translatable patterns into your templates, you have to
+update your message catalogs too. First you extract a new message
+catalog template as described in the 2. step. Then you run the
+following command [#pybabel_error]_
+
+.. code-block:: bash
+
+ pybabel update --input-file messages.pot --output-dir translations/ --domain messages
+
+This will merge the new patterns with the old ones. Once you review
+and fill them, you have to recompile them as described in the 5. step.
+
+.. [#flask] Although the tutorial is focused on Flask-based web
+ applications, the linked translation tutorial is not
+ Flask-specific.
+.. [#pybabel_error] If you get an error ``TypeError: must be str, not
+ bytes`` with Python 3.3, it is likely you are
+ suffering from this `bug
+ `_.
+ Until the fix is released, you can use babel with
+ Python 2.7.
diff --git a/plugins/i18n_subsites/test_data/content/images/img.png b/plugins/i18n_subsites/test_data/content/images/img.png
new file mode 100644
index 0000000..e69de29
diff --git a/plugins/i18n_subsites/test_data/content/pages/hidden-page-cz.rst b/plugins/i18n_subsites/test_data/content/pages/hidden-page-cz.rst
new file mode 100644
index 0000000..c282faa
--- /dev/null
+++ b/plugins/i18n_subsites/test_data/content/pages/hidden-page-cz.rst
@@ -0,0 +1,7 @@
+404 stránka
+===========
+:slug: 404
+:lang: cz
+:status: hidden
+
+Jednoduchá 404 stránka.
diff --git a/plugins/i18n_subsites/test_data/content/pages/hidden-page-de.rst b/plugins/i18n_subsites/test_data/content/pages/hidden-page-de.rst
new file mode 100644
index 0000000..d8410a1
--- /dev/null
+++ b/plugins/i18n_subsites/test_data/content/pages/hidden-page-de.rst
@@ -0,0 +1,7 @@
+Eine 404 Seite
+==============
+:slug: 404
+:lang: de
+:status: hidden
+
+Eine einfache 404 Seite.
diff --git a/plugins/i18n_subsites/test_data/content/pages/hidden-page-en.rst b/plugins/i18n_subsites/test_data/content/pages/hidden-page-en.rst
new file mode 100644
index 0000000..74a97d7
--- /dev/null
+++ b/plugins/i18n_subsites/test_data/content/pages/hidden-page-en.rst
@@ -0,0 +1,7 @@
+A 404 page
+==========
+:slug: 404
+:lang: en
+:status: hidden
+
+A simple 404 page.
diff --git a/plugins/i18n_subsites/test_data/content/pages/untranslated-page.rst b/plugins/i18n_subsites/test_data/content/pages/untranslated-page.rst
new file mode 100644
index 0000000..ae4c2b8
--- /dev/null
+++ b/plugins/i18n_subsites/test_data/content/pages/untranslated-page.rst
@@ -0,0 +1,5 @@
+Untranslated page
+=================
+:lang: en
+
+This page has no translation.
diff --git a/plugins/i18n_subsites/test_data/content/translated_article-cz.rst b/plugins/i18n_subsites/test_data/content/translated_article-cz.rst
new file mode 100644
index 0000000..555a69d
--- /dev/null
+++ b/plugins/i18n_subsites/test_data/content/translated_article-cz.rst
@@ -0,0 +1,8 @@
+Přeložený článek
+================
+:slug: translated-article
+:lang: cz
+:date: 2014-09-15
+
+Jednoduchý článek s překlady.
+Zde je odkaz na `nějaký obrázek <{filename}/images/img.png>`_.
diff --git a/plugins/i18n_subsites/test_data/content/translated_article-de.rst b/plugins/i18n_subsites/test_data/content/translated_article-de.rst
new file mode 100644
index 0000000..01bf565
--- /dev/null
+++ b/plugins/i18n_subsites/test_data/content/translated_article-de.rst
@@ -0,0 +1,8 @@
+Ein übersetzter Artikel
+=======================
+:slug: translated-article
+:lang: de
+:date: 2014-09-14
+
+Ein einfacher Artikel mit einer Übersetzung.
+Hier ist ein Link zur `einigem Bild <{filename}/images/img.png>`_.
diff --git a/plugins/i18n_subsites/test_data/content/translated_article-en.rst b/plugins/i18n_subsites/test_data/content/translated_article-en.rst
new file mode 100644
index 0000000..d7f5dad
--- /dev/null
+++ b/plugins/i18n_subsites/test_data/content/translated_article-en.rst
@@ -0,0 +1,8 @@
+A translated article
+====================
+:slug: translated-article
+:lang: en
+:date: 2014-09-13
+
+A simple article with a translation.
+Here is a link to `some image <{filename}/images/img.png>`_.
diff --git a/plugins/i18n_subsites/test_data/content/untranslated_article-en.rst b/plugins/i18n_subsites/test_data/content/untranslated_article-en.rst
new file mode 100644
index 0000000..867ae5d
--- /dev/null
+++ b/plugins/i18n_subsites/test_data/content/untranslated_article-en.rst
@@ -0,0 +1,9 @@
+An untranslated article
+=======================
+:date: 2014-07-14
+:lang: en
+
+An article without a translation.
+Here is a link to an `untranslated page`_
+
+.. _`untranslated page`: {filename}/pages/untranslated-page.rst
diff --git a/plugins/i18n_subsites/test_data/localized_theme/babel.cfg b/plugins/i18n_subsites/test_data/localized_theme/babel.cfg
new file mode 100644
index 0000000..4406732
--- /dev/null
+++ b/plugins/i18n_subsites/test_data/localized_theme/babel.cfg
@@ -0,0 +1,2 @@
+[jinja2: templates/**.html]
+
diff --git a/plugins/i18n_subsites/test_data/localized_theme/messages.pot b/plugins/i18n_subsites/test_data/localized_theme/messages.pot
new file mode 100644
index 0000000..578917f
--- /dev/null
+++ b/plugins/i18n_subsites/test_data/localized_theme/messages.pot
@@ -0,0 +1,23 @@
+# Translations template for PROJECT.
+# Copyright (C) 2014 ORGANIZATION
+# This file is distributed under the same license as the PROJECT project.
+# FIRST AUTHOR , 2014.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PROJECT VERSION\n"
+"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
+"POT-Creation-Date: 2014-07-13 12:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: LANGUAGE \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 1.3\n"
+
+#: templates/base.html:3
+msgid "Welcome to our"
+msgstr ""
+
diff --git a/plugins/i18n_subsites/test_data/localized_theme/static/style.css b/plugins/i18n_subsites/test_data/localized_theme/static/style.css
new file mode 100644
index 0000000..e69de29
diff --git a/plugins/i18n_subsites/test_data/localized_theme/templates/base.html b/plugins/i18n_subsites/test_data/localized_theme/templates/base.html
new file mode 100644
index 0000000..a24eb1d
--- /dev/null
+++ b/plugins/i18n_subsites/test_data/localized_theme/templates/base.html
@@ -0,0 +1,7 @@
+{% extends "!simple/base.html" %}
+
+{% block title %}{% trans %}Welcome to our{% endtrans %} {{ SITENAME }}{% endblock %}
+{% block head %}
+{{ super() }}
+
+{% endblock %}
diff --git a/plugins/i18n_subsites/test_data/localized_theme/translations/de/LC_MESSAGES/messages.mo b/plugins/i18n_subsites/test_data/localized_theme/translations/de/LC_MESSAGES/messages.mo
new file mode 100644
index 0000000000000000000000000000000000000000..239010221fe789ec007296b700578fd5114ab279
GIT binary patch
literal 486
zcmZvYO-{ow5QPI`l?4lyh{do2flCtpD$^iJo1&tGR%w8>+YZ6t*p=-dV8Jao6?fn)
zxO4$XjP%KGq$khJ`&?Uj_gpPIHXOV2=2x|xUUkHdwwX|zW|2Y^ga;%zCgDDW5seOaf+z@_k>vQq=ac^T9W8t*GnN#ZNh6q5
znnLe7P2sAYCD8ga`qWREENfOGDUekZrU, 2014.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PROJECT VERSION\n"
+"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
+"POT-Creation-Date: 2014-07-13 12:25+0200\n"
+"PO-Revision-Date: 2014-07-13 12:26+0200\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: de \n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 1.3\n"
+
+#: templates/base.html:3
+msgid "Welcome to our"
+msgstr "Willkommen Sie zur unserer"
+
diff --git a/plugins/i18n_subsites/test_data/pelicanconf.py b/plugins/i18n_subsites/test_data/pelicanconf.py
new file mode 100644
index 0000000..55018f2
--- /dev/null
+++ b/plugins/i18n_subsites/test_data/pelicanconf.py
@@ -0,0 +1,53 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*- #
+from __future__ import unicode_literals
+
+AUTHOR = 'The Tester'
+SITENAME = 'Testing site'
+SITEURL = 'http://example.com/test'
+
+# to make the test suite portable
+TIMEZONE = 'UTC'
+
+DEFAULT_LANG = 'en'
+LOCALE = 'en_US.UTF-8'
+
+# Generate only one feed
+FEED_ALL_ATOM = 'feeds_all.atom.xml'
+CATEGORY_FEED_ATOM = None
+TRANSLATION_FEED_ATOM = None
+AUTHOR_FEED_ATOM = None
+AUTHOR_FEED_RSS = None
+
+# Disable unnecessary pages
+CATEGORY_SAVE_AS = ''
+TAG_SAVE_AS = ''
+AUTHOR_SAVE_AS = ''
+ARCHIVES_SAVE_AS = ''
+AUTHORS_SAVE_AS = ''
+CATEGORIES_SAVE_AS = ''
+TAGS_SAVE_AS = ''
+
+PLUGIN_PATHS = ['../../']
+PLUGINS = ['i18n_subsites']
+
+THEME = 'localized_theme'
+JINJA_ENVIRONMENT = {'extensions': ['jinja2.ext.i18n']}
+
+from blinker import signal
+tmpsig = signal('tmpsig')
+I18N_FILTER_SIGNALS = [tmpsig]
+
+I18N_SUBSITES = {
+ 'de': {
+ 'SITENAME': 'Testseite',
+ 'AUTHOR': 'Der Tester',
+ 'LOCALE': 'de_DE.UTF-8',
+ },
+ 'cz': {
+ 'SITENAME': 'Testovací stránka',
+ 'AUTHOR': 'Test Testovič',
+ 'I18N_UNTRANSLATED_PAGES': 'remove',
+ 'I18N_UNTRANSLATED_ARTICLES': 'keep',
+ },
+ }
diff --git a/plugins/i18n_subsites/test_i18n_subsites.py b/plugins/i18n_subsites/test_i18n_subsites.py
new file mode 100644
index 0000000..c6c1d6a
--- /dev/null
+++ b/plugins/i18n_subsites/test_i18n_subsites.py
@@ -0,0 +1,139 @@
+'''Unit tests for the i18n_subsites plugin'''
+
+import os
+import locale
+import unittest
+import subprocess
+from tempfile import mkdtemp
+from shutil import rmtree
+
+from . import i18n_subsites as i18ns
+from pelican import Pelican
+from pelican.tests.support import get_settings
+from pelican.settings import read_settings
+
+
+class TestTemporaryLocale(unittest.TestCase):
+ '''Test the temporary locale context manager'''
+
+ def test_locale_restored(self):
+ '''Test that the locale is restored after exiting context'''
+ orig_locale = locale.setlocale(locale.LC_ALL)
+ with i18ns.temporary_locale():
+ locale.setlocale(locale.LC_ALL, 'C')
+ self.assertEqual(locale.setlocale(locale.LC_ALL), 'C')
+ self.assertEqual(locale.setlocale(locale.LC_ALL), orig_locale)
+
+ def test_temp_locale_set(self):
+ '''Test that the temporary locale is set'''
+ with i18ns.temporary_locale('C'):
+ self.assertEqual(locale.setlocale(locale.LC_ALL), 'C')
+
+
+class TestSettingsManipulation(unittest.TestCase):
+ '''Test operations on settings dict'''
+
+ def setUp(self):
+ '''Prepare default settings'''
+ self.settings = get_settings()
+
+ def test_get_pelican_cls_class(self):
+ '''Test that we get class given as an object'''
+ self.settings['PELICAN_CLASS'] = object
+ cls = i18ns.get_pelican_cls(self.settings)
+ self.assertIs(cls, object)
+
+ def test_get_pelican_cls_str(self):
+ '''Test that we get correct class given by string'''
+ cls = i18ns.get_pelican_cls(self.settings)
+ self.assertIs(cls, Pelican)
+
+
+class TestSitesRelpath(unittest.TestCase):
+ '''Test relative path between sites generation'''
+
+ def setUp(self):
+ '''Generate some sample siteurls'''
+ self.siteurl = 'http://example.com'
+ i18ns._SITE_DB['en'] = self.siteurl
+ i18ns._SITE_DB['de'] = self.siteurl + '/de'
+
+ def tearDown(self):
+ '''Remove sites from db'''
+ i18ns._SITE_DB.clear()
+
+ def test_get_site_path(self):
+ '''Test getting the path within a site'''
+ self.assertEqual(i18ns.get_site_path(self.siteurl), '/')
+ self.assertEqual(i18ns.get_site_path(self.siteurl + '/de'), '/de')
+
+ def test_relpath_to_site(self):
+ '''Test getting relative paths between sites'''
+ self.assertEqual(i18ns.relpath_to_site('en', 'de'), 'de')
+ self.assertEqual(i18ns.relpath_to_site('de', 'en'), '..')
+
+
+class TestRegistration(unittest.TestCase):
+ '''Test plugin registration'''
+
+ def test_return_on_missing_signal(self):
+ '''Test return on missing required signal'''
+ i18ns._SIGNAL_HANDLERS_DB['tmp_sig'] = None
+ i18ns.register()
+ self.assertNotIn(id(i18ns.save_generator),
+ i18ns.signals.generator_init.receivers)
+
+ def test_registration(self):
+ '''Test registration of all signal handlers'''
+ i18ns.register()
+ for sig_name, handler in i18ns._SIGNAL_HANDLERS_DB.items():
+ sig = getattr(i18ns.signals, sig_name)
+ self.assertIn(id(handler), sig.receivers)
+ # clean up
+ sig.disconnect(handler)
+
+
+class TestFullRun(unittest.TestCase):
+ '''Test running Pelican with the Plugin'''
+
+ def setUp(self):
+ '''Create temporary output and cache folders'''
+ self.temp_path = mkdtemp(prefix='pelicantests.')
+ self.temp_cache = mkdtemp(prefix='pelican_cache.')
+
+ def tearDown(self):
+ '''Remove output and cache folders'''
+ rmtree(self.temp_path)
+ rmtree(self.temp_cache)
+
+ def test_sites_generation(self):
+ '''Test generation of sites with the plugin
+
+ Compare with recorded output via ``git diff``.
+ To generate output for comparison run the command
+ ``pelican -o test_data/output -s test_data/pelicanconf.py \
+ test_data/content``
+ Remember to remove the output/ folder before that.
+ '''
+ base_path = os.path.dirname(os.path.abspath(__file__))
+ base_path = os.path.join(base_path, 'test_data')
+ content_path = os.path.join(base_path, 'content')
+ output_path = os.path.join(base_path, 'output')
+ settings_path = os.path.join(base_path, 'pelicanconf.py')
+ settings = read_settings(path=settings_path, override={
+ 'PATH': content_path,
+ 'OUTPUT_PATH': self.temp_path,
+ 'CACHE_PATH': self.temp_cache,
+ 'PLUGINS': [i18ns],
+ }
+ )
+ pelican = Pelican(settings)
+ pelican.run()
+
+ # compare output
+ out, err = subprocess.Popen(
+ ['git', 'diff', '--no-ext-diff', '--exit-code', '-w', output_path,
+ self.temp_path], env={'PAGER': ''},
+ stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()
+ self.assertFalse(out, 'non-empty `diff` stdout:\n{}'.format(out))
+ self.assertFalse(err, 'non-empty `diff` stderr:\n{}'.format(out))
diff --git a/plugins/lightgallery/__init__.py b/plugins/lightgallery/__init__.py
new file mode 100644
index 0000000..3ecc9e2
--- /dev/null
+++ b/plugins/lightgallery/__init__.py
@@ -0,0 +1 @@
+from .lightgallery import *
diff --git a/plugins/lightgallery/lightgallery.py b/plugins/lightgallery/lightgallery.py
new file mode 100644
index 0000000..f9cb035
--- /dev/null
+++ b/plugins/lightgallery/lightgallery.py
@@ -0,0 +1,217 @@
+import logging
+from pelican import signals
+
+from pelican.generators import ArticlesGenerator
+from pelican.generators import PagesGenerator
+from pathlib import Path
+
+logger = logging.getLogger(__name__)
+
+
+IMAGE_PATH = './content/'
+IMAGE_SIZES = [200, 375, 480, 800, 1600]
+
+
+def process_content(article):
+ """
+ Substitute the citations and add a bibliography for an article or
+ page, using the local bib file if specified or the global one otherwise.
+ """
+ content = article._content
+ logger.info("start\n\n")
+ content = "" + content
+
+ i = content.count("[lightgallery")
+ if (i <= 0):
+ pass
+
+ j = content.count("lightgalleryend]")
+ if (j != i):
+ pass
+
+ m = find_between(content, '[lightgallery', 'lightgalleryend]')
+
+ imgs = m.split(';')
+ logger.info("" + article.title + "\n")
+ imgs_text = ""
+ for i in imgs:
+ cont = i.split(',')
+ img_url = cont[0].strip()
+ if img_url == "":
+ continue
+
+ img_text = ""
+ if (len(cont) > 1):
+ img_text = "" + cont[1] + " "
+
+ logger.info("t\'" + img_url + "\'a\'" + img_text + "\'\n")
+ zoom_url = "/theme/images/zoom.png"
+
+ imgs_text += ""
+ imgs_text += create_exif_print(IMAGE_PATH + img_url)
+ imgs_text += "
"
+ imgs_text += "\"> "
+
+ imgs_text += ""
+ imgs_text += " "
+
+ imgs_text += " "
+ imgs_text += "
"
+ imgs_text += "
"
+
+ imgs_text += " "
+ imgs_text += "\n"
+
+ replace_text = " "
+ replace_text += "
"
+ replace_text += imgs_text
+ replace_text += " "
+ replace_text += "
"
+ logger.info("" + replace_text + "\n")
+ content = content.replace('[lightgallery' + m + 'lightgalleryend]', replace_text)
+ article._content = content
+ logger.info("end\n\n")
+ pass
+
+
+def replace_right(source, target, replacement, replacements=None):
+ return replacement.join(source.rsplit(target, replacements))
+
+
+def find_between(s, first, last):
+ try:
+ start = s.rindex(first) + len(first)
+ end = s.rindex(last, start)
+ return s[start:end]
+ except ValueError:
+ return ""
+
+
+def add_gallery(generators):
+ logger.info("add_gallery\n\n")
+
+ # Process the articles and pages
+ for generator in generators:
+ if isinstance(generator, ArticlesGenerator):
+ for article in (generator.articles + generator.translations + generator.drafts):
+ process_content(article)
+ elif isinstance(generator, PagesGenerator):
+ for page in generator.pages:
+ process_content(page)
+
+ pass
+
+
+def create_scaled_image(org_path, new_path, resize_width):
+ import PIL.Image
+ from resizeimage import resizeimage
+ import os
+
+ logger.info("gen " + new_path + "from " + org_path + " size " + str(resize_width) + "\n")
+
+ exists = os.path.isfile(new_path)
+ if exists:
+ logger.info("skip nothing to do\n")
+ return ""
+
+ dir_path = str(Path(new_path).parent)
+ exists = os.path.isdir(dir_path)
+ if not exists:
+ logger.info("create dir " + dir_path)
+ os.mkdir(dir_path)
+
+
+ logger.info("convert \n")
+ img = PIL.Image.open(org_path)
+ width, height = img.size
+ logger.info("" + str(width) + "\n")
+ if (width > resize_width):
+ img = resizeimage.resize_width(img, resize_width)
+ img.save(new_path, img.format)
+ img.close()
+ logger.info("done \n")
+
+
+def create_exif_print(img_path):
+ try:
+ import PIL.Image
+ import os
+ exists = os.path.isfile(img_path)
+ if not exists:
+ return ""
+
+ img = PIL.Image.open(img_path)
+ exif = img._getexif()
+ img.close()
+
+ logger.info("######### exif " + img_path + "\n")
+
+ if exif is None:
+ return ""
+
+ programm_dic = {0: "N", # "Not defined",
+ 1: "M", # "Manual",
+ 2: "N", # "Normal program",
+ 3: "A", # "Aperture priority",
+ 4: "S", # "Shutter priority",
+ 5: "C", # "Creative program",
+ 6: "A", # "Action program",
+ 7: "P", # "Portrait mode",
+ 8: "L", # "Landscape mode",
+ }
+
+ ret = ""
+ if 272 in exif:
+ ret += "" + exif[272]
+ if 42036 in exif:
+ ret += " with " + exif[42036]
+ ret += " "
+
+ if 37386 in exif:
+ ret += "at" + str(exif[37386][0] / exif[37386][1]) + "mm "
+ if 37378 in exif:
+ ret += "f" + str(exif[37378][0] / exif[37378][1]) + " "
+
+ if 34855 in exif:
+ ret += " iso" + str(exif[34855]) + " "
+ if 33434 in exif:
+ ret += " " + str(exif[33434][0])
+ if exif[33434][1] != 1:
+ ret += "/" + str(exif[33434][1])
+ ret += "sec "
+
+ if 34850 in exif:
+ ret += " " + programm_dic[exif[34850]] + " "
+
+ if 315 in exif:
+ ret += " " + exif[315]
+ if 33432 in exif:
+ ret += " (c) " + exif[33432]
+
+ return ret
+ except ValueError:
+ return ""
+
+
+def register():
+ signals.all_generators_finalized.connect(add_gallery)
diff --git a/themes/minimal/static/css/bitter.css b/themes/minimal/static/css/bitter.css
new file mode 100644
index 0000000..eaa53ac
--- /dev/null
+++ b/themes/minimal/static/css/bitter.css
@@ -0,0 +1,17 @@
+/* latin-ext */
+@font-face {
+ font-family: 'Bitter';
+ font-style: normal;
+ font-weight: 400;
+ src: local('Bitter Regular'), local('Bitter-Regular'), url("../fonts/Regular/Bitter-Regular.woff") format('woff');
+ unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+/* latin */
+@font-face {
+ font-family: 'Bitter';
+ font-style: normal;
+ font-weight: 400;
+ src: local('Bitter Regular'), local('Bitter-Regular'), url("../fonts/Regular/Bitter-Regular.woff") format('woff');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+
diff --git a/themes/minimal/static/css/bootstrap.min.css b/themes/minimal/static/css/bootstrap.min.css
new file mode 100644
index 0000000..92e3fe8
--- /dev/null
+++ b/themes/minimal/static/css/bootstrap.min.css
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap v4.3.1 (https://getbootstrap.com/)
+ * Copyright 2011-2019 The Bootstrap Authors
+ * Copyright 2011-2019 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014\00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-break:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover{background-color:#9fcdff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding-top:.375rem;padding-bottom:.375rem;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:center right calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-control.is-valid~.valid-feedback,.form-control.is-valid~.valid-tooltip,.was-validated .form-control:valid~.valid-feedback,.was-validated .form-control:valid~.valid-tooltip{display:block}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc((1em + .75rem) * 3 / 4 + 1.75rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-select.is-valid~.valid-feedback,.custom-select.is-valid~.valid-tooltip,.was-validated .custom-select:valid~.valid-feedback,.was-validated .custom-select:valid~.valid-tooltip{display:block}.form-control-file.is-valid~.valid-feedback,.form-control-file.is-valid~.valid-tooltip,.was-validated .form-control-file:valid~.valid-feedback,.was-validated .form-control-file:valid~.valid-tooltip{display:block}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{border-color:#28a745}.custom-control-input.is-valid~.valid-feedback,.custom-control-input.is-valid~.valid-tooltip,.was-validated .custom-control-input:valid~.valid-feedback,.was-validated .custom-control-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid~.valid-feedback,.custom-file-input.is-valid~.valid-tooltip,.was-validated .custom-file-input:valid~.valid-feedback,.was-validated .custom-file-input:valid~.valid-tooltip{display:block}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E");background-repeat:no-repeat;background-position:center right calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-control.is-invalid~.invalid-feedback,.form-control.is-invalid~.invalid-tooltip,.was-validated .form-control:invalid~.invalid-feedback,.was-validated .form-control:invalid~.invalid-tooltip{display:block}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc((1em + .75rem) * 3 / 4 + 1.75rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-select.is-invalid~.invalid-feedback,.custom-select.is-invalid~.invalid-tooltip,.was-validated .custom-select:invalid~.invalid-feedback,.was-validated .custom-select:invalid~.invalid-tooltip{display:block}.form-control-file.is-invalid~.invalid-feedback,.form-control-file.is-invalid~.invalid-tooltip,.was-validated .form-control-file:invalid~.invalid-feedback,.was-validated .form-control-file:invalid~.invalid-tooltip{display:block}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{border-color:#dc3545}.custom-control-input.is-invalid~.invalid-feedback,.custom-control-input.is-invalid~.invalid-tooltip,.was-validated .custom-control-input:invalid~.invalid-feedback,.was-validated .custom-control-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid~.invalid-feedback,.custom-file-input.is-invalid~.invalid-tooltip,.was-validated .custom-file-input:invalid~.invalid-feedback,.was-validated .custom-file-input:invalid~.invalid-tooltip{display:block}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;-ms-flex-negative:0;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-ms-flex:1 1 auto;flex:1 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-toolbar{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;z-index:-1;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label::before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label::before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#fff;border:#adb5bd solid 1px}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label::after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label::after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label::after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{position:relative;display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.5em + .75rem + 2px);margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]::after{content:attr(data-browse)}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:calc(1rem + .4rem);padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label::before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:.5rem 1rem}.navbar>.container,.navbar>.container-fluid{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat center center;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-ms-flex:1 1 auto;flex:1 1 auto;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img{width:100%;border-radius:calc(.25rem - 1px)}.card-img-top{width:100%;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img-bottom{width:100%;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{display:-ms-flexbox;display:flex;-ms-flex:1 0 0%;flex:1 0 0%;-ms-flex-direction:column;flex-direction:column;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:first-of-type) .card-header:first-child{border-radius:0}.accordion>.card:not(:first-of-type):not(:last-of-type){border-bottom:0;border-radius:0}.accordion>.card:first-of-type{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:last-of-type{border-top-left-radius:0;border-top-right-radius:0}.accordion>.card .card-header{margin-bottom:-1px}.breadcrumb{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:2;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:1;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.media-body{-ms-flex:1;flex:1}.list-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-horizontal{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}@media (min-width:576px){.list-group-horizontal-sm{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-sm .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-sm .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:768px){.list-group-horizontal-md{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-md .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-md .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:992px){.list-group-horizontal-lg{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-lg .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-lg .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:1200px){.list-group-horizontal-xl{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-xl .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-xl .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}.list-group-flush .list-group-item{border-right:0;border-left:0;border-radius:0}.list-group-flush .list-group-item:last-child{margin-bottom:-1px}.list-group-flush:first-child .list-group-item:first-child{border-top:0}.list-group-flush:last-child .list-group-item:last-child{margin-bottom:0;border-bottom:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-50px);transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal-dialog-scrollable{display:-ms-flexbox;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{-ms-flex-negative:0;flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);content:""}.modal-dialog-centered.modal-dialog-scrollable{-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable::before{content:none}.modal-content{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end;padding:1rem;border-top:1px solid #dee2e6;border-bottom-right-radius:.3rem;border-bottom-left-radius:.3rem}.modal-footer>:not(:first-child){margin-left:.25rem}.modal-footer>:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered::before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=top]>.arrow::before,.bs-popover-top>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow::after,.bs-popover-top>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow::before,.bs-popover-right>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow::after,.bs-popover-right>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=bottom]>.arrow::before,.bs-popover-bottom>.arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow::after,.bs-popover-bottom>.arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow::before,.bs-popover-left>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow::after,.bs-popover-left>.arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{-ms-touch-action:pan-y;touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:0s .6s opacity}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.857143%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}
+/*# sourceMappingURL=bootstrap.min.css.map */
\ No newline at end of file
diff --git a/themes/minimal/static/css/lightgallery.css b/themes/minimal/static/css/lightgallery.css
new file mode 100644
index 0000000..ea35129
--- /dev/null
+++ b/themes/minimal/static/css/lightgallery.css
@@ -0,0 +1,978 @@
+@font-face {
+ font-family: 'lg';
+ src: url("../fonts/lg.eot?n1z373");
+ src: url("../fonts/lg.eot?#iefixn1z373") format("embedded-opentype"), url("../fonts/lg.woff?n1z373") format("woff"), url("../fonts/lg.ttf?n1z373") format("truetype"), url("../fonts/lg.svg?n1z373#lg") format("svg");
+ font-weight: normal;
+ font-style: normal;
+}
+.lg-icon {
+ font-family: 'lg';
+ speak: none;
+ font-style: normal;
+ font-weight: normal;
+ font-variant: normal;
+ text-transform: none;
+ line-height: 1;
+ /* Better Font Rendering =========== */
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+.lg-actions .lg-next, .lg-actions .lg-prev {
+ background-color: rgba(0, 0, 0, 0.45);
+ border-radius: 2px;
+ color: #999;
+ cursor: pointer;
+ display: block;
+ font-size: 22px;
+ margin-top: -10px;
+ padding: 8px 10px 9px;
+ position: absolute;
+ top: 50%;
+ z-index: 1080;
+}
+.lg-actions .lg-next.disabled, .lg-actions .lg-prev.disabled {
+ pointer-events: none;
+ opacity: 0.5;
+}
+.lg-actions .lg-next:hover, .lg-actions .lg-prev:hover {
+ color: #FFF;
+}
+.lg-actions .lg-next {
+ right: 20px;
+}
+.lg-actions .lg-next:before {
+ content: "\e095";
+}
+.lg-actions .lg-prev {
+ left: 20px;
+}
+.lg-actions .lg-prev:after {
+ content: "\e094";
+}
+
+@-webkit-keyframes lg-right-end {
+ 0% {
+ left: 0;
+ }
+ 50% {
+ left: -30px;
+ }
+ 100% {
+ left: 0;
+ }
+}
+@-moz-keyframes lg-right-end {
+ 0% {
+ left: 0;
+ }
+ 50% {
+ left: -30px;
+ }
+ 100% {
+ left: 0;
+ }
+}
+@-ms-keyframes lg-right-end {
+ 0% {
+ left: 0;
+ }
+ 50% {
+ left: -30px;
+ }
+ 100% {
+ left: 0;
+ }
+}
+@keyframes lg-right-end {
+ 0% {
+ left: 0;
+ }
+ 50% {
+ left: -30px;
+ }
+ 100% {
+ left: 0;
+ }
+}
+@-webkit-keyframes lg-left-end {
+ 0% {
+ left: 0;
+ }
+ 50% {
+ left: 30px;
+ }
+ 100% {
+ left: 0;
+ }
+}
+@-moz-keyframes lg-left-end {
+ 0% {
+ left: 0;
+ }
+ 50% {
+ left: 30px;
+ }
+ 100% {
+ left: 0;
+ }
+}
+@-ms-keyframes lg-left-end {
+ 0% {
+ left: 0;
+ }
+ 50% {
+ left: 30px;
+ }
+ 100% {
+ left: 0;
+ }
+}
+@keyframes lg-left-end {
+ 0% {
+ left: 0;
+ }
+ 50% {
+ left: 30px;
+ }
+ 100% {
+ left: 0;
+ }
+}
+.lg-outer.lg-right-end .lg-object {
+ -webkit-animation: lg-right-end 0.3s;
+ -o-animation: lg-right-end 0.3s;
+ animation: lg-right-end 0.3s;
+ position: relative;
+}
+.lg-outer.lg-left-end .lg-object {
+ -webkit-animation: lg-left-end 0.3s;
+ -o-animation: lg-left-end 0.3s;
+ animation: lg-left-end 0.3s;
+ position: relative;
+}
+
+.lg-toolbar {
+ z-index: 1082;
+ left: 0;
+ position: absolute;
+ top: 0;
+ width: 100%;
+ background-color: rgba(0, 0, 0, 0.45);
+}
+.lg-toolbar .lg-icon {
+ color: #999;
+ cursor: pointer;
+ float: right;
+ font-size: 24px;
+ height: 47px;
+ line-height: 27px;
+ padding: 10px 0;
+ text-align: center;
+ width: 50px;
+ text-decoration: none !important;
+ outline: medium none;
+ -webkit-transition: color 0.2s linear;
+ -o-transition: color 0.2s linear;
+ transition: color 0.2s linear;
+}
+.lg-toolbar .lg-icon:hover {
+ color: #FFF;
+}
+.lg-toolbar .lg-close:after {
+ content: "\e070";
+}
+.lg-toolbar .lg-download:after {
+ content: "\e0f2";
+}
+
+.lg-sub-html {
+ background-color: rgba(0, 0, 0, 0.45);
+ bottom: 0;
+ color: #EEE;
+ font-size: 16px;
+ left: 0;
+ padding: 10px 40px;
+ position: fixed;
+ right: 0;
+ text-align: center;
+ z-index: 1080;
+}
+.lg-sub-html h4 {
+ margin: 0;
+ font-size: 13px;
+ font-weight: bold;
+}
+.lg-sub-html p {
+ font-size: 12px;
+ margin: 5px 0 0;
+}
+
+#lg-counter {
+ color: #999;
+ display: inline-block;
+ font-size: 16px;
+ padding-left: 20px;
+ padding-top: 12px;
+ vertical-align: middle;
+}
+
+.lg-toolbar, .lg-prev, .lg-next {
+ opacity: 1;
+ -webkit-transition: -webkit-transform 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, color 0.2s linear;
+ -moz-transition: -moz-transform 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, color 0.2s linear;
+ -o-transition: -o-transform 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, color 0.2s linear;
+ transition: transform 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, color 0.2s linear;
+}
+
+.lg-hide-items .lg-prev {
+ opacity: 0;
+ -webkit-transform: translate3d(-10px, 0, 0);
+ transform: translate3d(-10px, 0, 0);
+}
+.lg-hide-items .lg-next {
+ opacity: 0;
+ -webkit-transform: translate3d(10px, 0, 0);
+ transform: translate3d(10px, 0, 0);
+}
+.lg-hide-items .lg-toolbar {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -10px, 0);
+ transform: translate3d(0, -10px, 0);
+}
+
+body:not(.lg-from-hash) .lg-outer.lg-start-zoom .lg-object {
+ -webkit-transform: scale3d(0.5, 0.5, 0.5);
+ transform: scale3d(0.5, 0.5, 0.5);
+ opacity: 0;
+ -webkit-transition: -webkit-transform 250ms cubic-bezier(0, 0, 0.25, 1) 0s, opacity 250ms cubic-bezier(0, 0, 0.25, 1) !important;
+ -moz-transition: -moz-transform 250ms cubic-bezier(0, 0, 0.25, 1) 0s, opacity 250ms cubic-bezier(0, 0, 0.25, 1) !important;
+ -o-transition: -o-transform 250ms cubic-bezier(0, 0, 0.25, 1) 0s, opacity 250ms cubic-bezier(0, 0, 0.25, 1) !important;
+ transition: transform 250ms cubic-bezier(0, 0, 0.25, 1) 0s, opacity 250ms cubic-bezier(0, 0, 0.25, 1) !important;
+ -webkit-transform-origin: 50% 50%;
+ -moz-transform-origin: 50% 50%;
+ -ms-transform-origin: 50% 50%;
+ transform-origin: 50% 50%;
+}
+body:not(.lg-from-hash) .lg-outer.lg-start-zoom .lg-item.lg-complete .lg-object {
+ -webkit-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1);
+ opacity: 1;
+}
+
+.lg-outer .lg-thumb-outer {
+ background-color: #0D0A0A;
+ bottom: 0;
+ position: absolute;
+ width: 100%;
+ z-index: 1080;
+ max-height: 350px;
+ -webkit-transform: translate3d(0, 100%, 0);
+ transform: translate3d(0, 100%, 0);
+ -webkit-transition: -webkit-transform 0.25s cubic-bezier(0, 0, 0.25, 1) 0s;
+ -moz-transition: -moz-transform 0.25s cubic-bezier(0, 0, 0.25, 1) 0s;
+ -o-transition: -o-transform 0.25s cubic-bezier(0, 0, 0.25, 1) 0s;
+ transition: transform 0.25s cubic-bezier(0, 0, 0.25, 1) 0s;
+}
+.lg-outer .lg-thumb-outer.lg-grab .lg-thumb-item {
+ cursor: -webkit-grab;
+ cursor: -moz-grab;
+ cursor: -o-grab;
+ cursor: -ms-grab;
+ cursor: grab;
+}
+.lg-outer .lg-thumb-outer.lg-grabbing .lg-thumb-item {
+ cursor: move;
+ cursor: -webkit-grabbing;
+ cursor: -moz-grabbing;
+ cursor: -o-grabbing;
+ cursor: -ms-grabbing;
+ cursor: grabbing;
+}
+.lg-outer .lg-thumb-outer.lg-dragging .lg-thumb {
+ -webkit-transition-duration: 0s !important;
+ transition-duration: 0s !important;
+}
+.lg-outer.lg-thumb-open .lg-thumb-outer {
+ -webkit-transform: translate3d(0, 0%, 0);
+ transform: translate3d(0, 0%, 0);
+}
+.lg-outer .lg-thumb {
+ padding: 10px 0;
+ height: 100%;
+ margin-bottom: -5px;
+}
+.lg-outer .lg-thumb-item {
+ border-radius: 5px;
+ cursor: pointer;
+ float: left;
+ overflow: hidden;
+ height: 100%;
+ border: 2px solid #FFF;
+ border-radius: 4px;
+ margin-bottom: 5px;
+}
+@media (min-width: 1025px) {
+ .lg-outer .lg-thumb-item {
+ -webkit-transition: border-color 0.25s ease;
+ -o-transition: border-color 0.25s ease;
+ transition: border-color 0.25s ease;
+ }
+}
+.lg-outer .lg-thumb-item.active, .lg-outer .lg-thumb-item:hover {
+ border-color: #a90707;
+}
+.lg-outer .lg-thumb-item img {
+ width: 100%;
+ height: 100%;
+ object-fit: cover;
+}
+.lg-outer.lg-has-thumb .lg-item {
+ padding-bottom: 120px;
+}
+.lg-outer.lg-can-toggle .lg-item {
+ padding-bottom: 0;
+}
+.lg-outer.lg-pull-caption-up .lg-sub-html {
+ -webkit-transition: bottom 0.25s ease;
+ -o-transition: bottom 0.25s ease;
+ transition: bottom 0.25s ease;
+}
+.lg-outer.lg-pull-caption-up.lg-thumb-open .lg-sub-html {
+ bottom: 100px;
+}
+.lg-outer .lg-toggle-thumb {
+ background-color: #0D0A0A;
+ border-radius: 2px 2px 0 0;
+ color: #999;
+ cursor: pointer;
+ font-size: 24px;
+ height: 39px;
+ line-height: 27px;
+ padding: 5px 0;
+ position: absolute;
+ right: 20px;
+ text-align: center;
+ top: -39px;
+ width: 50px;
+}
+.lg-outer .lg-toggle-thumb:after {
+ content: "\e1ff";
+}
+.lg-outer .lg-toggle-thumb:hover {
+ color: #FFF;
+}
+
+.lg-outer .lg-video-cont {
+ display: inline-block;
+ vertical-align: middle;
+ max-width: 1140px;
+ max-height: 100%;
+ width: 100%;
+ padding: 0 5px;
+}
+.lg-outer .lg-video {
+ width: 100%;
+ height: 0;
+ padding-bottom: 56.25%;
+ overflow: hidden;
+ position: relative;
+}
+.lg-outer .lg-video .lg-object {
+ display: inline-block;
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100% !important;
+ height: 100% !important;
+}
+.lg-outer .lg-video .lg-video-play {
+ width: 84px;
+ height: 59px;
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ margin-left: -42px;
+ margin-top: -30px;
+ z-index: 1080;
+ cursor: pointer;
+}
+.lg-outer .lg-has-vimeo .lg-video-play {
+ background: url("../img/vimeo-play.png") no-repeat scroll 0 0 transparent;
+}
+.lg-outer .lg-has-vimeo:hover .lg-video-play {
+ background: url("../img/vimeo-play.png") no-repeat scroll 0 -58px transparent;
+}
+.lg-outer .lg-has-html5 .lg-video-play {
+ background: transparent url("../img/video-play.png") no-repeat scroll 0 0;
+ height: 64px;
+ margin-left: -32px;
+ margin-top: -32px;
+ width: 64px;
+ opacity: 0.8;
+}
+.lg-outer .lg-has-html5:hover .lg-video-play {
+ opacity: 1;
+}
+.lg-outer .lg-has-youtube .lg-video-play {
+ background: url("../img/youtube-play.png") no-repeat scroll 0 0 transparent;
+}
+.lg-outer .lg-has-youtube:hover .lg-video-play {
+ background: url("../img/youtube-play.png") no-repeat scroll 0 -60px transparent;
+}
+.lg-outer .lg-video-object {
+ width: 100% !important;
+ height: 100% !important;
+ position: absolute;
+ top: 0;
+ left: 0;
+}
+.lg-outer .lg-has-video .lg-video-object {
+ visibility: hidden;
+}
+.lg-outer .lg-has-video.lg-video-playing .lg-object, .lg-outer .lg-has-video.lg-video-playing .lg-video-play {
+ display: none;
+}
+.lg-outer .lg-has-video.lg-video-playing .lg-video-object {
+ visibility: visible;
+}
+
+.lg-progress-bar {
+ background-color: #333;
+ height: 5px;
+ left: 0;
+ position: absolute;
+ top: 0;
+ width: 100%;
+ z-index: 1083;
+ opacity: 0;
+ -webkit-transition: opacity 0.08s ease 0s;
+ -moz-transition: opacity 0.08s ease 0s;
+ -o-transition: opacity 0.08s ease 0s;
+ transition: opacity 0.08s ease 0s;
+}
+.lg-progress-bar .lg-progress {
+ background-color: #a90707;
+ height: 5px;
+ width: 0;
+}
+.lg-progress-bar.lg-start .lg-progress {
+ width: 100%;
+}
+.lg-show-autoplay .lg-progress-bar {
+ opacity: 1;
+}
+
+.lg-autoplay-button:after {
+ content: "\e01d";
+}
+.lg-show-autoplay .lg-autoplay-button:after {
+ content: "\e01a";
+}
+
+.lg-outer.lg-css3.lg-zoom-dragging .lg-item.lg-complete.lg-zoomable .lg-img-wrap, .lg-outer.lg-css3.lg-zoom-dragging .lg-item.lg-complete.lg-zoomable .lg-image {
+ -webkit-transition-duration: 0s;
+ transition-duration: 0s;
+}
+.lg-outer.lg-use-transition-for-zoom .lg-item.lg-complete.lg-zoomable .lg-img-wrap {
+ -webkit-transition: -webkit-transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s;
+ -moz-transition: -moz-transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s;
+ -o-transition: -o-transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s;
+ transition: transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s;
+}
+.lg-outer.lg-use-left-for-zoom .lg-item.lg-complete.lg-zoomable .lg-img-wrap {
+ -webkit-transition: left 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, top 0.3s cubic-bezier(0, 0, 0.25, 1) 0s;
+ -moz-transition: left 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, top 0.3s cubic-bezier(0, 0, 0.25, 1) 0s;
+ -o-transition: left 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, top 0.3s cubic-bezier(0, 0, 0.25, 1) 0s;
+ transition: left 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, top 0.3s cubic-bezier(0, 0, 0.25, 1) 0s;
+}
+.lg-outer .lg-item.lg-complete.lg-zoomable .lg-img-wrap {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ -webkit-backface-visibility: hidden;
+ -moz-backface-visibility: hidden;
+ backface-visibility: hidden;
+}
+.lg-outer .lg-item.lg-complete.lg-zoomable .lg-image {
+ -webkit-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1);
+ -webkit-transition: -webkit-transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.15s !important;
+ -moz-transition: -moz-transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.15s !important;
+ -o-transition: -o-transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.15s !important;
+ transition: transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.15s !important;
+ -webkit-transform-origin: 0 0;
+ -moz-transform-origin: 0 0;
+ -ms-transform-origin: 0 0;
+ transform-origin: 0 0;
+ -webkit-backface-visibility: hidden;
+ -moz-backface-visibility: hidden;
+ backface-visibility: hidden;
+}
+
+#lg-zoom-in:after {
+ content: "\e311";
+}
+
+#lg-actual-size {
+ font-size: 20px;
+}
+#lg-actual-size:after {
+ content: "\e033";
+}
+
+#lg-zoom-out {
+ opacity: 0.5;
+ pointer-events: none;
+}
+#lg-zoom-out:after {
+ content: "\e312";
+}
+.lg-zoomed #lg-zoom-out {
+ opacity: 1;
+ pointer-events: auto;
+}
+
+.lg-outer .lg-pager-outer {
+ bottom: 60px;
+ left: 0;
+ position: absolute;
+ right: 0;
+ text-align: center;
+ z-index: 1080;
+ height: 10px;
+}
+.lg-outer .lg-pager-outer.lg-pager-hover .lg-pager-cont {
+ overflow: visible;
+}
+.lg-outer .lg-pager-cont {
+ cursor: pointer;
+ display: inline-block;
+ overflow: hidden;
+ position: relative;
+ vertical-align: top;
+ margin: 0 5px;
+}
+.lg-outer .lg-pager-cont:hover .lg-pager-thumb-cont {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+}
+.lg-outer .lg-pager-cont.lg-pager-active .lg-pager {
+ box-shadow: 0 0 0 2px white inset;
+}
+.lg-outer .lg-pager-thumb-cont {
+ background-color: #fff;
+ color: #FFF;
+ bottom: 100%;
+ height: 83px;
+ left: 0;
+ margin-bottom: 20px;
+ margin-left: -60px;
+ opacity: 0;
+ padding: 5px;
+ position: absolute;
+ width: 120px;
+ border-radius: 3px;
+ -webkit-transition: opacity 0.15s ease 0s, -webkit-transform 0.15s ease 0s;
+ -moz-transition: opacity 0.15s ease 0s, -moz-transform 0.15s ease 0s;
+ -o-transition: opacity 0.15s ease 0s, -o-transform 0.15s ease 0s;
+ transition: opacity 0.15s ease 0s, transform 0.15s ease 0s;
+ -webkit-transform: translate3d(0, 5px, 0);
+ transform: translate3d(0, 5px, 0);
+}
+.lg-outer .lg-pager-thumb-cont img {
+ width: 100%;
+ height: 100%;
+}
+.lg-outer .lg-pager {
+ background-color: rgba(255, 255, 255, 0.5);
+ border-radius: 50%;
+ box-shadow: 0 0 0 8px rgba(255, 255, 255, 0.7) inset;
+ display: block;
+ height: 12px;
+ -webkit-transition: box-shadow 0.3s ease 0s;
+ -o-transition: box-shadow 0.3s ease 0s;
+ transition: box-shadow 0.3s ease 0s;
+ width: 12px;
+}
+.lg-outer .lg-pager:hover, .lg-outer .lg-pager:focus {
+ box-shadow: 0 0 0 8px white inset;
+}
+.lg-outer .lg-caret {
+ border-left: 10px solid transparent;
+ border-right: 10px solid transparent;
+ border-top: 10px dashed;
+ bottom: -10px;
+ display: inline-block;
+ height: 0;
+ left: 50%;
+ margin-left: -5px;
+ position: absolute;
+ vertical-align: middle;
+ width: 0;
+}
+
+.lg-fullscreen:after {
+ content: "\e20c";
+}
+.lg-fullscreen-on .lg-fullscreen:after {
+ content: "\e20d";
+}
+
+.lg-outer #lg-dropdown-overlay {
+ background-color: rgba(0, 0, 0, 0.25);
+ bottom: 0;
+ cursor: default;
+ left: 0;
+ position: fixed;
+ right: 0;
+ top: 0;
+ z-index: 1081;
+ opacity: 0;
+ visibility: hidden;
+ -webkit-transition: visibility 0s linear 0.18s, opacity 0.18s linear 0s;
+ -o-transition: visibility 0s linear 0.18s, opacity 0.18s linear 0s;
+ transition: visibility 0s linear 0.18s, opacity 0.18s linear 0s;
+}
+.lg-outer.lg-dropdown-active .lg-dropdown, .lg-outer.lg-dropdown-active #lg-dropdown-overlay {
+ -webkit-transition-delay: 0s;
+ transition-delay: 0s;
+ -moz-transform: translate3d(0, 0px, 0);
+ -o-transform: translate3d(0, 0px, 0);
+ -ms-transform: translate3d(0, 0px, 0);
+ -webkit-transform: translate3d(0, 0px, 0);
+ transform: translate3d(0, 0px, 0);
+ opacity: 1;
+ visibility: visible;
+}
+.lg-outer.lg-dropdown-active #lg-share {
+ color: #FFF;
+}
+.lg-outer .lg-dropdown {
+ background-color: #fff;
+ border-radius: 2px;
+ font-size: 14px;
+ list-style-type: none;
+ margin: 0;
+ padding: 10px 0;
+ position: absolute;
+ right: 0;
+ text-align: left;
+ top: 50px;
+ opacity: 0;
+ visibility: hidden;
+ -moz-transform: translate3d(0, 5px, 0);
+ -o-transform: translate3d(0, 5px, 0);
+ -ms-transform: translate3d(0, 5px, 0);
+ -webkit-transform: translate3d(0, 5px, 0);
+ transform: translate3d(0, 5px, 0);
+ -webkit-transition: -webkit-transform 0.18s linear 0s, visibility 0s linear 0.5s, opacity 0.18s linear 0s;
+ -moz-transition: -moz-transform 0.18s linear 0s, visibility 0s linear 0.5s, opacity 0.18s linear 0s;
+ -o-transition: -o-transform 0.18s linear 0s, visibility 0s linear 0.5s, opacity 0.18s linear 0s;
+ transition: transform 0.18s linear 0s, visibility 0s linear 0.5s, opacity 0.18s linear 0s;
+}
+.lg-outer .lg-dropdown:after {
+ content: "";
+ display: block;
+ height: 0;
+ width: 0;
+ position: absolute;
+ border: 8px solid transparent;
+ border-bottom-color: #FFF;
+ right: 16px;
+ top: -16px;
+}
+.lg-outer .lg-dropdown > li:last-child {
+ margin-bottom: 0px;
+}
+.lg-outer .lg-dropdown > li:hover a, .lg-outer .lg-dropdown > li:hover .lg-icon {
+ color: #333;
+}
+.lg-outer .lg-dropdown a {
+ color: #333;
+ display: block;
+ white-space: pre;
+ padding: 4px 12px;
+ font-family: "Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;
+ font-size: 12px;
+}
+.lg-outer .lg-dropdown a:hover {
+ background-color: rgba(0, 0, 0, 0.07);
+}
+.lg-outer .lg-dropdown .lg-dropdown-text {
+ display: inline-block;
+ line-height: 1;
+ margin-top: -3px;
+ vertical-align: middle;
+}
+.lg-outer .lg-dropdown .lg-icon {
+ color: #333;
+ display: inline-block;
+ float: none;
+ font-size: 20px;
+ height: auto;
+ line-height: 1;
+ margin-right: 8px;
+ padding: 0;
+ vertical-align: middle;
+ width: auto;
+}
+.lg-outer #lg-share {
+ position: relative;
+}
+.lg-outer #lg-share:after {
+ content: "\e80d";
+}
+.lg-outer #lg-share-facebook .lg-icon {
+ color: #3b5998;
+}
+.lg-outer #lg-share-facebook .lg-icon:after {
+ content: "\e901";
+}
+.lg-outer #lg-share-twitter .lg-icon {
+ color: #00aced;
+}
+.lg-outer #lg-share-twitter .lg-icon:after {
+ content: "\e904";
+}
+.lg-outer #lg-share-googleplus .lg-icon {
+ color: #dd4b39;
+}
+.lg-outer #lg-share-googleplus .lg-icon:after {
+ content: "\e902";
+}
+.lg-outer #lg-share-pinterest .lg-icon {
+ color: #cb2027;
+}
+.lg-outer #lg-share-pinterest .lg-icon:after {
+ content: "\e903";
+}
+
+.group {
+ *zoom: 1;
+}
+
+.group:before, .group:after {
+ display: table;
+ content: "";
+ line-height: 0;
+}
+
+.group:after {
+ clear: both;
+}
+
+.lg-outer {
+ width: 100%;
+ height: 100%;
+ position: fixed;
+ top: 0;
+ left: 0;
+ z-index: 1050;
+ opacity: 0;
+ -webkit-transition: opacity 0.15s ease 0s;
+ -o-transition: opacity 0.15s ease 0s;
+ transition: opacity 0.15s ease 0s;
+}
+.lg-outer * {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+.lg-outer.lg-visible {
+ opacity: 1;
+}
+.lg-outer.lg-css3 .lg-item.lg-prev-slide, .lg-outer.lg-css3 .lg-item.lg-next-slide, .lg-outer.lg-css3 .lg-item.lg-current {
+ -webkit-transition-duration: inherit !important;
+ transition-duration: inherit !important;
+ -webkit-transition-timing-function: inherit !important;
+ transition-timing-function: inherit !important;
+}
+.lg-outer.lg-css3.lg-dragging .lg-item.lg-prev-slide, .lg-outer.lg-css3.lg-dragging .lg-item.lg-next-slide, .lg-outer.lg-css3.lg-dragging .lg-item.lg-current {
+ -webkit-transition-duration: 0s !important;
+ transition-duration: 0s !important;
+ opacity: 1;
+}
+.lg-outer.lg-grab img.lg-object {
+ cursor: -webkit-grab;
+ cursor: -moz-grab;
+ cursor: -o-grab;
+ cursor: -ms-grab;
+ cursor: grab;
+}
+.lg-outer.lg-grabbing img.lg-object {
+ cursor: move;
+ cursor: -webkit-grabbing;
+ cursor: -moz-grabbing;
+ cursor: -o-grabbing;
+ cursor: -ms-grabbing;
+ cursor: grabbing;
+}
+.lg-outer .lg {
+ height: 100%;
+ width: 100%;
+ position: relative;
+ overflow: hidden;
+ margin-left: auto;
+ margin-right: auto;
+ max-width: 100%;
+ max-height: 100%;
+}
+.lg-outer .lg-inner {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ left: 0;
+ top: 0;
+ white-space: nowrap;
+}
+.lg-outer .lg-item {
+ background: url("/theme/images/loading.gif") no-repeat scroll center center transparent;
+ display: none !important;
+}
+.lg-outer.lg-css3 .lg-prev-slide, .lg-outer.lg-css3 .lg-current, .lg-outer.lg-css3 .lg-next-slide {
+ display: inline-block !important;
+}
+.lg-outer.lg-css .lg-current {
+ display: inline-block !important;
+}
+.lg-outer .lg-item, .lg-outer .lg-img-wrap {
+ display: inline-block;
+ text-align: center;
+ position: absolute;
+ width: 100%;
+ height: 100%;
+}
+.lg-outer .lg-item:before, .lg-outer .lg-img-wrap:before {
+ content: "";
+ display: inline-block;
+ height: 50%;
+ width: 1px;
+ margin-right: -1px;
+}
+.lg-outer .lg-img-wrap {
+ position: absolute;
+ padding: 0 5px;
+ left: 0;
+ right: 0;
+ top: 0;
+ bottom: 0;
+}
+.lg-outer .lg-item.lg-complete {
+ background-image: none;
+}
+.lg-outer .lg-item.lg-current {
+ z-index: 1060;
+}
+.lg-outer .lg-image {
+ display: inline-block;
+ vertical-align: middle;
+ max-width: 100%;
+ max-height: 100%;
+ width: auto !important;
+ height: auto !important;
+}
+.lg-outer.lg-show-after-load .lg-item .lg-object, .lg-outer.lg-show-after-load .lg-item .lg-video-play {
+ opacity: 0;
+ -webkit-transition: opacity 0.15s ease 0s;
+ -o-transition: opacity 0.15s ease 0s;
+ transition: opacity 0.15s ease 0s;
+}
+.lg-outer.lg-show-after-load .lg-item.lg-complete .lg-object, .lg-outer.lg-show-after-load .lg-item.lg-complete .lg-video-play {
+ opacity: 1;
+}
+.lg-outer .lg-empty-html {
+ display: none;
+}
+.lg-outer.lg-hide-download #lg-download {
+ display: none;
+}
+
+.lg-backdrop {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ z-index: 1040;
+ background-color: #000;
+ opacity: 0;
+ -webkit-transition: opacity 0.15s ease 0s;
+ -o-transition: opacity 0.15s ease 0s;
+ transition: opacity 0.15s ease 0s;
+}
+.lg-backdrop.in {
+ opacity: 1;
+}
+
+.lg-css3.lg-no-trans .lg-prev-slide, .lg-css3.lg-no-trans .lg-next-slide, .lg-css3.lg-no-trans .lg-current {
+ -webkit-transition: none 0s ease 0s !important;
+ -moz-transition: none 0s ease 0s !important;
+ -o-transition: none 0s ease 0s !important;
+ transition: none 0s ease 0s !important;
+}
+.lg-css3.lg-use-css3 .lg-item {
+ -webkit-backface-visibility: hidden;
+ -moz-backface-visibility: hidden;
+ backface-visibility: hidden;
+}
+.lg-css3.lg-use-left .lg-item {
+ -webkit-backface-visibility: hidden;
+ -moz-backface-visibility: hidden;
+ backface-visibility: hidden;
+}
+.lg-css3.lg-fade .lg-item {
+ opacity: 0;
+}
+.lg-css3.lg-fade .lg-item.lg-current {
+ opacity: 1;
+}
+.lg-css3.lg-fade .lg-item.lg-prev-slide, .lg-css3.lg-fade .lg-item.lg-next-slide, .lg-css3.lg-fade .lg-item.lg-current {
+ -webkit-transition: opacity 0.1s ease 0s;
+ -moz-transition: opacity 0.1s ease 0s;
+ -o-transition: opacity 0.1s ease 0s;
+ transition: opacity 0.1s ease 0s;
+}
+.lg-css3.lg-slide.lg-use-css3 .lg-item {
+ opacity: 0;
+}
+.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-prev-slide {
+ -webkit-transform: translate3d(-100%, 0, 0);
+ transform: translate3d(-100%, 0, 0);
+}
+.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-next-slide {
+ -webkit-transform: translate3d(100%, 0, 0);
+ transform: translate3d(100%, 0, 0);
+}
+.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-current {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ opacity: 1;
+}
+.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-prev-slide, .lg-css3.lg-slide.lg-use-css3 .lg-item.lg-next-slide, .lg-css3.lg-slide.lg-use-css3 .lg-item.lg-current {
+ -webkit-transition: -webkit-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s;
+ -moz-transition: -moz-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s;
+ -o-transition: -o-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s;
+ transition: transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s;
+}
+.lg-css3.lg-slide.lg-use-left .lg-item {
+ opacity: 0;
+ position: absolute;
+ left: 0;
+}
+.lg-css3.lg-slide.lg-use-left .lg-item.lg-prev-slide {
+ left: -100%;
+}
+.lg-css3.lg-slide.lg-use-left .lg-item.lg-next-slide {
+ left: 100%;
+}
+.lg-css3.lg-slide.lg-use-left .lg-item.lg-current {
+ left: 0;
+ opacity: 1;
+}
+.lg-css3.lg-slide.lg-use-left .lg-item.lg-prev-slide, .lg-css3.lg-slide.lg-use-left .lg-item.lg-next-slide, .lg-css3.lg-slide.lg-use-left .lg-item.lg-current {
+ -webkit-transition: left 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s;
+ -moz-transition: left 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s;
+ -o-transition: left 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s;
+ transition: left 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s;
+}
diff --git a/themes/minimal/static/css/lightgallery_setup.css b/themes/minimal/static/css/lightgallery_setup.css
new file mode 100644
index 0000000..b64dcfe
--- /dev/null
+++ b/themes/minimal/static/css/lightgallery_setup.css
@@ -0,0 +1,115 @@
+
+.demo-gallery > ul {
+ margin-bottom: 0;
+}
+.demo-gallery > ul > li {
+ margin-bottom: 15px;
+}
+.demo-gallery > ul > li a {
+ border: 3px solid #FFF;
+ border-radius: 3px;
+ display: block;
+ overflow: hidden;
+ position: relative;
+ float: left;
+}
+.demo-gallery > ul > li a > img {
+ -webkit-transition: -webkit-transform 0.15s ease 0s;
+ -moz-transition: -moz-transform 0.15s ease 0s;
+ -o-transition: -o-transform 0.15s ease 0s;
+ transition: transform 0.15s ease 0s;
+ -webkit-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1);
+ width: 100%;
+}
+.demo-gallery > ul > li a:hover > img {
+ -webkit-transform: scale3d(1.1, 1.1, 1.1);
+ transform: scale3d(1.1, 1.1, 1.1);
+}
+.demo-gallery > ul > li a:hover .demo-gallery-poster > img {
+ opacity: 1;
+}
+.demo-gallery > ul > li a .demo-gallery-poster {
+ background-color: rgba(0, 0, 0, 0.1);
+ bottom: 0;
+ left: 0;
+ position: absolute;
+ right: 0;
+ top: 0;
+ -webkit-transition: background-color 0.15s ease 0s;
+ -o-transition: background-color 0.15s ease 0s;
+ transition: background-color 0.15s ease 0s;
+}
+.demo-gallery > ul > li a .demo-gallery-poster > img {
+ left: 50%;
+ margin-left: -10px;
+ margin-top: -10px;
+ opacity: 0;
+ position: absolute;
+ top: 50%;
+ -webkit-transition: opacity 0.3s ease 0s;
+ -o-transition: opacity 0.3s ease 0s;
+ transition: opacity 0.3s ease 0s;
+}
+.demo-gallery > ul > li a:hover .demo-gallery-poster {
+ background-color: rgba(0, 0, 0, 0.5);
+}
+.demo-gallery .justified-gallery > a > img {
+ -webkit-transition: -webkit-transform 0.15s ease 0s;
+ -moz-transition: -moz-transform 0.15s ease 0s;
+ -o-transition: -o-transform 0.15s ease 0s;
+ transition: transform 0.15s ease 0s;
+ -webkit-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1);
+ height: 100%;
+ width: 100%;
+}
+.demo-gallery .justified-gallery > a:hover > img {
+ -webkit-transform: scale3d(1.1, 1.1, 1.1);
+ transform: scale3d(1.1, 1.1, 1.1);
+}
+.demo-gallery .justified-gallery > a:hover .demo-gallery-poster > img {
+ opacity: 1;
+}
+.demo-gallery .justified-gallery > a .demo-gallery-poster {
+ background-color: rgba(0, 0, 0, 0.1);
+ bottom: 0;
+ left: 0;
+ position: absolute;
+ right: 0;
+ top: 0;
+ -webkit-transition: background-color 0.15s ease 0s;
+ -o-transition: background-color 0.15s ease 0s;
+ transition: background-color 0.15s ease 0s;
+}
+.demo-gallery .justified-gallery > a .demo-gallery-poster > img {
+ left: 50%;
+ margin-left: -10px;
+ margin-top: -10px;
+ opacity: 0;
+ position: absolute;
+ top: 50%;
+ -webkit-transition: opacity 0.3s ease 0s;
+ -o-transition: opacity 0.3s ease 0s;
+ transition: opacity 0.3s ease 0s;
+}
+.demo-gallery .justified-gallery > a:hover .demo-gallery-poster {
+ background-color: rgba(0, 0, 0, 0.5);
+}
+.demo-gallery .video .demo-gallery-poster img {
+ height: 48px;
+ margin-left: -24px;
+ margin-top: -24px;
+ opacity: 0.8;
+ width: 48px;
+}
+.demo-gallery.dark > ul > li a {
+ border: 3px solid #04070a;
+}
+.home .demo-gallery {
+ padding-bottom: 80px;
+}
+#aniimated-thumbnials .demo-gallery a {
+ width: 190px;
+ height: 132px;
+}
diff --git a/themes/minimal/static/css/minimal.css b/themes/minimal/static/css/minimal.css
new file mode 100644
index 0000000..3dfff9e
--- /dev/null
+++ b/themes/minimal/static/css/minimal.css
@@ -0,0 +1,686 @@
+/* minimal.css - A minimalistic style */
+
+/*
+ Reset margins. Leave everything else default.
+*/
+html, body, div, span, applet, object, iframe,
+h1, h2, h3, h4, h5, h6, p, blockquote, pre,
+a, abbr, acronym, address, big, cite, code,
+del, dfn, em, font, ins, kbd, q, s, samp,
+small, strike, strong, sub, sup, tt, var,
+dl, dt, dd, ol, ul, li,
+fieldset, form, label, legend,
+table, caption, tbody, tfoot, thead, tr, th, td {
+ border: 0;
+ font-family: inherit;
+ font-size: 100%;
+ font-style: inherit;
+ font-weight: inherit;
+ margin: 0;
+ outline: 0;
+ padding: 0;
+ vertical-align: baseline;
+}
+
+.bg-light-red {
+ background-color: rgba(255,0,0,.25);
+}
+
+.bg-light-green {
+ background-color: rgba(0,255,0,.25);
+}
+
+
+/*
+ Always display a scrollbar by defining the overflow-y,
+ since we don't want the layout to jump if a scrollbar
+ is available or not.
+*/
+html {
+ overflow-y: scroll;
+ -webkit-text-size-adjust: 100%;
+ -ms-text-size-adjust: 100%;
+}
+
+body {
+ font: 18px Bitter, Georgia, serif;
+ font-weight: 400;
+ line-height: 24px;
+ background-color: #fff;
+ color: #333;
+}
+
+#container {
+ width: 700px;
+ margin: 0 auto;
+}
+
+#links {
+ border: 0;
+}
+
+#links a {
+ color: #a6a6a6;
+ text-decoration: none;
+}
+
+
+
+/*----------------------------*/
+/* Page Title */
+/*----------------------------*/
+
+#header {
+ margin: 0 auto;
+ text-align: center;
+}
+
+.page-title {
+ font-family: Bitter, Georgia, serif;
+}
+
+/*----------------------------*/
+/* Menu */
+/*----------------------------*/
+
+/*
+ Don't style header.
+*/
+#header h1 a,
+#header h1 a:hover,
+#header h1 a:active,
+#header h1 a:visited
+{
+ color: #333;
+ text-decoration: none;
+}
+
+#header a.navigation-link,
+#header a.navigation-link:active,
+#header a.navigation-link:visited
+{
+ color: #333;
+ text-decoration: none;
+}
+
+#header a.navigation-link:hover
+{
+ color: #002fc8;
+ text-decoration: none;
+}
+
+/*
+ If we have a large screen, we want a simple horizontal
+ navigation bar, so the items use display: inline with
+ some padding after each list element.
+
+ This is overriden in the media query below, so for small
+ screens we make a vertical navigation list out of it.
+*/
+
+.navigation {
+ margin: 0;
+ padding: 0;
+}
+
+.navigation-item {
+ display: inline-block;
+}
+
+ .blocklink {
+ display: block;
+}
+
+#links a,
+#links a:visited,
+#links a:active,
+#links a:focus {
+ color: #a6a6a6;
+ text-decoration: none;
+}
+
+#links a:hover {
+ color: #6499ba;
+}
+
+/*------------------------------------------*/
+/* Documents */
+/*------------------------------------------*/
+
+ul.document {
+ list-style-type: none;
+ list-style-image: none;
+ margin: 0 0 1em 0;
+}
+
+li.document-downloads {
+ margin: 0.5em 0 0 0;
+}
+
+/*------------------------------------------*/
+/* Markup */
+/*------------------------------------------*/
+
+b, strong {
+ font-weight: 700;
+}
+dfn, cite, em, i {
+ font-style: italic;
+}
+
+blockquote {
+ padding: 28px 0 1px 45px;
+ quotes: "\201C" "\201D" "\2018" "\2019";
+ clear: both;
+ color: #777;
+}
+
+blockquote:before {
+ content: open-quote;
+ font-size: 4em;
+ float: left;
+ margin-left: -45px;
+ font-family: "times new roman";
+ color: #faa;
+ font-weight: bold;
+}
+
+/*------------------------------------------*/
+/* Archive */
+/*------------------------------------------*/
+
+/*
+ The idea for this simple, but nice design was adapted
+ from:
+
+ * http://hackercodex.com
+*/
+dl {
+ margin-bottom: 1em;
+}
+
+dt.article-date {
+ font-weight: bold;
+ margin-top: 1em;
+}
+
+dd.article-title {
+ margin-left: 1.5em;
+}
+
+/*----------------------------*/
+/* Comments */
+/*----------------------------*/
+#comments {
+ background-color: #dee7ec;
+ padding: 1em;
+ margin-bottom: 1em;
+ clear: both;
+}
+
+.main-column {
+ clear: both;
+ overflow: hidden;
+}
+
+.content {
+ clear: both;
+ overflow: hidden;
+}
+
+div.clearer {
+ clear: both;
+ font-size: 0;
+ line-height: 0;
+ height: 0;
+ overflow: hidden;
+}
+
+em.u {
+ font-style: normal;
+ text-decoration: underline;
+}
+
+em em.u {
+ font-style: italic;
+}
+
+/*----------------------------*/
+/* Tables */
+/*----------------------------*/
+
+table {
+ border-collapse: collapse;
+ padding: 0;
+ margin: 0 0 11px 0;
+ text-align: center;
+}
+
+table th {
+ border: 1px solid #8cacbb;
+ background-color: #dee7ec;
+ vertical-align: bottom;
+ padding: 0 10px 10px 10px;
+}
+
+table td {
+ border: 1px solid #8cacbb;
+ vertical-align: top;
+ padding: 10px;
+ text-align: center;
+}
+
+/*----------------------------*/
+/* Paragraphs */
+/*----------------------------*/
+
+hr {
+ border: 0px;
+ border-top: 1px solid #8cacbb;
+ text-align: center;
+ height: 0px;
+}
+
+/*----------------------------*/
+/* Syntax Highlightning */
+/*----------------------------*/
+
+pre,
+code {
+ font-family: Consolas, "Liberation Mono", Menlo, monospace;
+}
+
+code {
+ font-size: 15px;
+}
+
+pre {
+ background: #f8f8f8;
+ border: 1px dashed #d7d7c8;
+ line-height: 20px;
+ font-size: 14px;
+ overflow: auto; /* Do not reformat code, sorry you have to scroll! */
+ padding: 5px;
+}
+
+/*----------------------------*/
+/* Images */
+/*----------------------------*/
+
+img {
+ border: 0;
+ max-width: 100%;
+}
+
+img.mediacenter {
+ display: block;
+ margin: 0 auto;
+}
+
+img.medialeft {
+ float: left;
+ margin: 0 1.5em 0 0;
+}
+
+img.mediaright {
+ float: right;
+ margin: 0 0 0 1.5em;
+}
+
+/*----------------------------*/
+/* Links */
+/*----------------------------*/
+
+article a {
+ color: #002fc8;
+ text-decoration: none;
+}
+
+article a:visited {
+ color: purple;
+ text-decoration: none;
+}
+
+article a:hover,
+article a:active {
+ color: #333;
+ text-decoration: underline;
+}
+
+/*----------------------------*/
+/* Icons */
+/*----------------------------*/
+
+.mediafile {
+ background: transparent url(../images/fileicons/file.png) 0px 1px no-repeat;
+ padding-left: 18px;
+ padding-bottom: 1px;
+}
+
+.gz {
+ background-image: url(../images/fileicons/gz.png);
+}
+
+.pdf {
+ background-image: url(../images/fileicons/pdf.png);
+}
+
+
+/*----------------------------*/
+/* Headlines */
+/*----------------------------*/
+
+h1,
+h2,
+h3,
+h4,
+h5 {
+ margin-bottom: 0.5em;
+ font-family: Bitter, Georgia, serif;
+}
+
+h1 {
+ font-size: 26px;
+ line-height: 32px;
+ margin-bottom: 24px;
+ margin-top: 28px;
+}
+
+h2 {
+ font-size: 22px;
+ line-height: 28px;
+ margin-bottom: 24px;
+ margin-top: 28px;
+}
+
+h3 {
+ font-size: 18px;
+ line-height: 24px;
+ margin-bottom: 24px;
+ margin-top: 24px;
+}
+
+h4 {
+ font-size: 16px;
+ line-height: 20px;
+ margin-bottom: 12px;
+ margin-top: 24px;
+}
+
+h5 {
+ font-size: 14px;
+ line-height: 18px;
+ margin-bottom: 12px;
+ margin-top: 24px;
+}
+
+h6 {
+ font-size: 12px;
+ line-height: 16px;
+ margin-bottom: 0;
+ margin-top: 24px;
+}
+
+/*
+ Special margins and font for title and byline.
+*/
+.title { margin-bottom: 0.25em; }
+
+.byline {
+ font-size: 15px;
+ color: #666;
+ margin-bottom: 24px;
+}
+
+/*----------------------------*/
+/* Lists */
+/*----------------------------*/
+
+ul {
+ list-style-type: square;
+ list-style-image: none;
+ margin: 0 0 1em 3.5em;
+}
+
+ol {
+ list-style-image: none;
+ margin: 0 0 1em 3.5em;
+}
+
+/*
+ No bottom gap in between and smaller left margin
+ for nested lists
+*/
+li ul,
+li ol {
+ margin: 0 0 0 1.5em;
+}
+
+ol { list-style-type: decimal; }
+ol ol { list-style-type: upper-roman; }
+ol ol ol { list-style-type: lower-alpha; }
+ol ol ol ol { list-style-type: lower-greek; }
+
+ul.posts span {
+ font-family: Monaco, "Courier New", monospace;
+}
+
+/*----------------------------*/
+/* Margins */
+/*----------------------------*/
+
+hr,
+p,
+ul,
+ol,
+dd,
+blockquote,
+address,
+pre,
+table {
+ margin-bottom: 29px;
+}
+
+/*----------------------------*/
+/* Media Queries */
+/*----------------------------*/
+@media screen and (min-width: 780px) {
+
+ #menu {
+ border-top: 1px solid #333;
+ border-bottom: 1px solid #333;
+ line-height: 54px;
+ }
+
+ article {
+ font-size: 17px;
+ line-height: 28px;
+ }
+
+ .byline {
+ font-size: 16px;
+ }
+
+ .title {
+ font-size: 34px;
+ }
+
+ .blocklink {
+ padding-left: 20px;
+ padding-right: 20px;
+ }
+
+ h1 {
+ font-size: 34px;
+ line-height: 44px;
+ margin-bottom: 28px;
+ margin-top: 28px;
+ }
+
+ h2 {
+ font-size: 28px;
+ line-height: 36px;
+ margin-bottom: 28px;
+ margin-top: 28px;
+ }
+
+ h3 {
+ font-size: 24px;
+ line-height: 30px;
+ margin-bottom: 28px;
+ margin-top: 28px;
+ }
+
+ h4 {
+ font-size: 22px;
+ line-height: 28px;
+ margin-bottom: 28px;
+ margin-top: 28px;
+ }
+
+ h5 {
+ font-size: 20px;
+ line-height: 26px;
+ margin-bottom: 14px;
+ margin-top: 28px;
+ }
+
+ h6 {
+ font-size: 18px;
+ line-height: 24px;
+ margin-bottom: 7px;
+ margin-top: 28px;
+ }
+
+
+ hr,
+ p,
+ ul,
+ ol,
+ dd,
+ blockquote,
+ address,
+ pre,
+ table {
+ margin-bottom: 28px;
+ }
+
+}
+
+/*
+ Mobile
+*/
+@media only screen and (max-width: 780px) {
+
+ /* Turn the absolute width into a percentage at this point. */
+ #container {
+ width: 95%;
+ margin: 0 auto;
+ }
+
+ #menu {
+ border-top: 1px solid #333;
+ font-size: 18px;
+ line-height: 36px;
+ }
+
+ .page-title {
+ margin-bottom: 5px;
+ margin-top: 5px;
+ }
+
+ .page-title-link {
+ display: block;
+ padding: 0;
+ top:0px;
+ left:0px;
+ width:100%;
+ height:100%;
+ }
+
+ article {
+ font-size: 18px;
+ line-height: 29px;
+ margin-bottom: 29px
+ }
+
+ /*
+ Don't show the bottom links, since the occupy too much
+ space on small devices (and may look ugly!).
+ */
+ #links {
+ display: none !important;
+ }
+
+ /*
+ Define the blocklink now, which turns the menu items
+ into a block link, which is easy to hit with a touch
+ device.
+ */
+ .blocklink {
+ display: block;
+ padding: 0;
+ top:0px;
+ left:0px;
+ width:100%;
+ height:100%;
+ }
+
+ /*
+ Display the links in the menu as block and remove
+ padding and border for it.
+ */
+ .navigation, .navigation-item {
+ display: block;
+ color: #638c9c;
+ margin: 0;
+ padding: 0;
+ border: 0;
+ }
+
+ /*
+ Center each navigation item.
+ */
+ li.navigation-item {
+ text-align: center;
+ border-bottom: 1px solid black;
+ }
+
+ /*
+ The blog archive looks crap on small devices, so let's
+ display the information centered without floating.
+ */
+ h2.article-year {
+ text-align: center;
+ }
+
+ dt.article-date {
+ text-align: center;
+ }
+
+ dd.article-title {
+ margin-left: 0;
+ text-align: center;
+ }
+}
+
+/* Do not show header/footer for print */
+@media only print {
+
+ /*
+ You don't want the comments, menu, page-title or
+ footer links when printing a page. Don't display
+ them.
+ */
+ #comments, #header, #links {
+ display: none !important;
+ }
+
+ .footer {
+ display: none !important;
+ }
+
+ #container {
+ width: 780px;
+ }
+}
diff --git a/themes/minimal/static/css/pygments.css b/themes/minimal/static/css/pygments.css
new file mode 100644
index 0000000..fb2d77e
--- /dev/null
+++ b/themes/minimal/static/css/pygments.css
@@ -0,0 +1,84 @@
+.highlight {
+ padding: 0px;
+ margin-top: 5px;
+ margin-bottom: 1em;
+}
+
+.highlight pre {
+ padding: 5px;
+ margin: 0;
+ font-size: 12px;
+ line-height: 20px;
+}
+
+/* https://github.com/PhilipTrauner/pygments-github-css/blob/master/github.css */
+
+.highlight .hll { background-color: #ffffcc }
+.highlight { background: #f8f8f8; }
+.highlight .c { color: #6a737d } /* Comment */
+.highlight .err { } /* Error */
+.highlight .k { color: #d73a49 } /* Keyword */
+.highlight .o { } /* Operator */
+.highlight .ch { color: #6a737d } /* Comment.Hashbang */
+.highlight .cm { color: #6a737d } /* Comment.Multiline */
+.highlight .cp { color: #d73a49 } /* Comment.Preproc */
+.highlight .cpf { color: #032f62 } /* Comment.PreprocFile */
+.highlight .c1 { color: #6a737d } /* Comment.Single */
+.highlight .cs { color: #6a737d } /* Comment.Special */
+.highlight .gd { color: #b31d28; background-color: #ffeef0 } /* Generic.Deleted */
+.highlight .ge { } /* Generic.Emph */
+.highlight .gr { } /* Generic.Error */
+.highlight .gh { color: #005cc5 } /* Generic.Heading */
+.highlight .gi { color: #22863a; background-color: #f0fff4 } /* Generic.Inserted */
+.highlight .go { } /* Generic.Output */
+.highlight .gp { } /* Generic.Prompt */
+.highlight .gs { font-weight: bold } /* Generic.Strong */
+.highlight .gu { color: #6f42c1; font-weight: bold } /* Generic.Subheading */
+.highlight .gt { color: #0044DD } /* Generic.Traceback */
+.highlight .kc { color: #005cc5 } /* Keyword.Constant */
+.highlight .kd { color: #d73a49 } /* Keyword.Declaration */
+.highlight .kn { color: #d73a49 } /* Keyword.Namespace */
+.highlight .kp { color: #d73a49 } /* Keyword.Pseudo */
+.highlight .kr { color: #d73a49 } /* Keyword.Reserved */
+.highlight .kt { color: #d73a49 } /* Keyword.Type */
+.highlight .m { color: #666666 } /* Literal.Number */
+.highlight .s { color: #032f62 } /* Literal.String */
+.highlight .na { } /* Name.Attribute */
+.highlight .nb { color: #005cc5 } /* Name.Builtin */
+.highlight .nc { color: #6f42c1 } /* Name.Class */
+.highlight .no { color: #005cc5 } /* Name.Constant */
+.highlight .nd { color: #6f42c1 } /* Name.Decorator */
+.highlight .ni { color: #005cc5 } /* Name.Entity */
+.highlight .ne { color: #005cc5 } /* Name.Exception */
+.highlight .nf { color: #6f42c1 } /* Name.Function */
+.highlight .nl { color: #005cc5 } /* Name.Label */
+.highlight .nn { color: #6f42c1 } /* Name.Namespace */
+.highlight .nt { color: #22863a } /* Name.Tag */
+.highlight .nv { color: #24292e } /* Name.Variable */
+.highlight .ow { color: #d73a49; } /* Operator.Word */
+.highlight .w { color: #bbbbbb } /* Text.Whitespace */
+.highlight .mb { color: #005cc5 } /* Literal.Number.Bin */
+.highlight .mf { color: #005cc5 } /* Literal.Number.Float */
+.highlight .mh { color: #005cc5 } /* Literal.Number.Hex */
+.highlight .mi { color: #005cc5 } /* Literal.Number.Integer */
+.highlight .mo { color: #005cc5 } /* Literal.Number.Oct */
+.highlight .sa { color: #d73a49 } /* Literal.String.Affix */
+.highlight .sb { color: #032f62 } /* Literal.String.Backtick */
+.highlight .sc { color: #032f62 } /* Literal.String.Char */
+.highlight .dl { color: #d73a49 } /* Literal.String.Delimiter */
+.highlight .sd { color: #032f62 } /* Literal.String.Doc */
+.highlight .s2 { color: #032f62 } /* Literal.String.Double */
+.highlight .se { color: #032f62 } /* Literal.String.Escape */
+.highlight .sh { color: #032f62 } /* Literal.String.Heredoc */
+.highlight .si { color: #005cc5 } /* Literal.String.Interpol */
+.highlight .sx { color: #032f62 } /* Literal.String.Other */
+.highlight .sr { color: #032f62 } /* Literal.String.Regex */
+.highlight .s1 { color: #032f62 } /* Literal.String.Single */
+.highlight .ss { color: #005cc5 } /* Literal.String.Symbol */
+.highlight .bp { color: #005cc5 } /* Name.Builtin.Pseudo */
+.highlight .fm { color: #005cc5 } /* Name.Function.Magic */
+.highlight .vc { color: #24292e } /* Name.Variable.Class */
+.highlight .vg { color: #24292e } /* Name.Variable.Global */
+.highlight .vi { color: #24292e } /* Name.Variable.Instance */
+.highlight .vm { color: #005cc5 } /* Name.Variable.Magic */
+.highlight .il { color: #005cc5 } /* Literal.Number.Integer.Long */
\ No newline at end of file
diff --git a/themes/minimal/static/fonts/Bold/Bitter-Bold.eot b/themes/minimal/static/fonts/Bold/Bitter-Bold.eot
new file mode 100755
index 0000000000000000000000000000000000000000..ed2452f40de9bc537a171eec22c913eaf1762fbb
GIT binary patch
literal 28286
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
DS&)Ir
literal 0
HcmV?d00001
diff --git a/themes/minimal/static/fonts/Bold/Bitter-Bold.svg b/themes/minimal/static/fonts/Bold/Bitter-Bold.svg
new file mode 100755
index 0000000..47c9c86
--- /dev/null
+++ b/themes/minimal/static/fonts/Bold/Bitter-Bold.svg
@@ -0,0 +1,710 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/themes/minimal/static/fonts/Bold/Bitter-Bold.ttf b/themes/minimal/static/fonts/Bold/Bitter-Bold.ttf
new file mode 100755
index 0000000000000000000000000000000000000000..b7c265d7d41e8fb2c2e7d2ff5b717afde28289c5
GIT binary patch
literal 75484
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