From 5519f00966559533eba0e8dc3e1bddd708f339aa Mon Sep 17 00:00:00 2001 From: qaqaqaqaowh Date: Wed, 8 Apr 2020 22:49:53 +0800 Subject: [PATCH] first commit --- LISCENSE.txt | 17 + README.md | 1 + setup.cfg | 2 + setup.py | 34 + src/__init__.py | 0 src/__main__.py | 17 + src/files/__init__.py | 15 + src/files/app.py | 32 + src/files/env.py | 8 + src/files/gitignore.py | 11 + src/files/readme.py | 163 + src/files/start.py | 11 + src/files/static/api/__init__.py | 4 + src/files/static/config.py | 31 + src/files/static/database.py | 39 + src/files/static/migrate.py | 20 + src/files/static/models/__init__.py | 6 + src/files/static/models/base_model.py | 28 + src/files/static/requirements.txt | 20 + src/files/static/web/__init__.py | 16 + src/files/static/web/static/css/custom.css | 21 + .../web/static/css/vendor/bootstrap-4.1.3.css | 7 + src/files/static/web/static/js/custom.js | 0 .../web/static/js/vendor/bootstrap-4.1.3.js | 7 + .../web/static/js/vendor/jquery-3.3.1.js | 4313 +++++++++++++++++ .../static/web/static/js/vendor/popper.js | 1165 +++++ src/files/static/web/templates/500.html | 1 + src/files/static/web/templates/home.html | 12 + src/files/static/web/util/assets.py | 30 + src/files/templates_layout.py | 38 + src/templates.py | 33 + src/utils/__init__.py | 0 src/utils/write_file.py | 4 + 33 files changed, 6106 insertions(+) create mode 100644 LISCENSE.txt create mode 100644 README.md create mode 100644 setup.cfg create mode 100644 setup.py create mode 100644 src/__init__.py create mode 100644 src/__main__.py create mode 100644 src/files/__init__.py create mode 100644 src/files/app.py create mode 100644 src/files/env.py create mode 100644 src/files/gitignore.py create mode 100644 src/files/readme.py create mode 100644 src/files/start.py create mode 100644 src/files/static/api/__init__.py create mode 100644 src/files/static/config.py create mode 100644 src/files/static/database.py create mode 100644 src/files/static/migrate.py create mode 100644 src/files/static/models/__init__.py create mode 100644 src/files/static/models/base_model.py create mode 100644 src/files/static/requirements.txt create mode 100644 src/files/static/web/__init__.py create mode 100644 src/files/static/web/static/css/custom.css create mode 100644 src/files/static/web/static/css/vendor/bootstrap-4.1.3.css create mode 100644 src/files/static/web/static/js/custom.js create mode 100644 src/files/static/web/static/js/vendor/bootstrap-4.1.3.js create mode 100644 src/files/static/web/static/js/vendor/jquery-3.3.1.js create mode 100644 src/files/static/web/static/js/vendor/popper.js create mode 100644 src/files/static/web/templates/500.html create mode 100644 src/files/static/web/templates/home.html create mode 100644 src/files/static/web/util/assets.py create mode 100644 src/files/templates_layout.py create mode 100644 src/templates.py create mode 100644 src/utils/__init__.py create mode 100644 src/utils/write_file.py diff --git a/LISCENSE.txt b/LISCENSE.txt new file mode 100644 index 0000000..3754756 --- /dev/null +++ b/LISCENSE.txt @@ -0,0 +1,17 @@ +MIT License +Copyright (c) 2018 YOUR NAME +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..7009a47 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +A package aimed to automate creation of flask app template. \ No newline at end of file diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 0000000..224a779 --- /dev/null +++ b/setup.cfg @@ -0,0 +1,2 @@ +[metadata] +description-file = README.md \ No newline at end of file diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..70ca2d1 --- /dev/null +++ b/setup.py @@ -0,0 +1,34 @@ +from setuptools import setup, find_packages +setup( + name = 'ftg', + packages = find_packages(), + version = '0.5', + license='MIT', + description = 'A generator for a flask app template', + author = 'Nicholas Ong Wei Harn', + author_email = 'nicholasowh@hotmail.com', + url = 'https://github.com/qaqaqaqaowh/ftg', + download_url = 'https://github.com/qaqaqaqaowh/ftg/archive/0.5.tar.gz', + keywords = ['flask', 'template', 'generate'], + install_requires=[ + 'flask', + 'peewee', + 'peewee-db-evolve', + 'python-dotenv', + 'psycopg2-binary', + 'Flask-Assets', + 'cssmin', + 'jsmin', + 'Flask-Cors' + ], + entry_points = { + 'console_scripts': ['ftg=src.__main__:main'], + }, + classifiers=[ + 'Development Status :: 3 - Alpha', + 'Intended Audience :: Developers', + 'Topic :: Software Development :: Build Tools', + 'License :: OSI Approved :: MIT License', + 'Programming Language :: Python :: 3.7' + ], +) \ No newline at end of file diff --git a/src/__init__.py b/src/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/__main__.py b/src/__main__.py new file mode 100644 index 0000000..7177f84 --- /dev/null +++ b/src/__main__.py @@ -0,0 +1,17 @@ +import argparse +from .templates import gen_template + +def main(): + parser = argparse.ArgumentParser(prog='flask-template', description="A flask app template generator.") + + parser.add_argument("command", choices=["new"], help="Commands to run, allowed values are: new => For template generation") + + parser.add_argument("name", help="Name for the resource generation") + + args = parser.parse_args() + + if args.command == "new": + gen_template(args.name) + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/src/files/__init__.py b/src/files/__init__.py new file mode 100644 index 0000000..bc166e9 --- /dev/null +++ b/src/files/__init__.py @@ -0,0 +1,15 @@ +from .readme import readme +from .gitignore import gitignore +from .app import app +from .env import env +from .start import start +from .templates_layout import templates_layout + +__all__ = [ + "readme", + "gitignore", + "app", + "env", + "start", + "templates_layout" +] \ No newline at end of file diff --git a/src/files/app.py b/src/files/app.py new file mode 100644 index 0000000..01fceb0 --- /dev/null +++ b/src/files/app.py @@ -0,0 +1,32 @@ +from textwrap import dedent + +def app(name): + return dedent(f"""\ + import os + import config + from flask import Flask + from models.base_model import db + + web_dir = os.path.join(os.path.dirname( + os.path.abspath(__file__)), '{name}_web') + + app = Flask('{name}', root_path=web_dir) + + if os.getenv('FLASK_ENV') == 'production': + app.config.from_object("config.ProductionConfig") + else: + app.config.from_object("config.DevelopmentConfig") + + + @app.before_request + def before_request(): + db.connect() + + + @app.teardown_request + def _db_close(exc): + if not db.is_closed(): + print(db) + print(db.close()) + return exc + """) \ No newline at end of file diff --git a/src/files/env.py b/src/files/env.py new file mode 100644 index 0000000..04e85a6 --- /dev/null +++ b/src/files/env.py @@ -0,0 +1,8 @@ +from textwrap import dedent + +def env(name): + return dedent(f"""\ + FLASK_ENV=development + FLASK_APP=start + DATABASE_URL=postgres://localhost:5432/{name}_dev + """) \ No newline at end of file diff --git a/src/files/gitignore.py b/src/files/gitignore.py new file mode 100644 index 0000000..bf6d849 --- /dev/null +++ b/src/files/gitignore.py @@ -0,0 +1,11 @@ +from textwrap import dedent + +def gitignore(name): + return dedent(f"""\ + .vscode + *.DS_Store + *__pycache__ + *.env + {name}_web/static/.webassets-cache + {name}_web/static/gen + """) \ No newline at end of file diff --git a/src/files/readme.py b/src/files/readme.py new file mode 100644 index 0000000..f7dbbc3 --- /dev/null +++ b/src/files/readme.py @@ -0,0 +1,163 @@ +from textwrap import dedent + +def readme(name): + return dedent(f"""\ + # Flask {name} Template + + version 0.0.1 (alpha) + + ## Development + + **Make a fork before cloning** + + **Install dependencies** + + - Python 3.7.2 was tested + - Postgresql 10.3 was tested + + 1. Delete `peewee-db-evolve==3.7.0` from `requirements.txt` during the first installation. + Because of how `peewee-db-evolve` created it's build process, we would first need to delete it. + 1. Run: + ``` + pip install -r requirements.txt + ``` + 1. Now add `peewee-db-evolve==3.7.0` back into `requirements.txt` + 1. Run again: + ``` + pip install -r requirements.txt + ``` + + If you're having trouble installing dependencies + + - Remove `certifi==2018.11.29` from requirements.txt + + If you're having trouble starting flask + + - Restart your terminal as well and reactivate conda source + + **Create a `.env` file at the root of the directory** + + This project uses `python-dotenv`. When running commands using `flask`, environment variables from `.env` are automatically loaded. + + When executing `python` scripts directly e.g. `python start.py`, environment variables are not loaded and will not work except `python migrate.py` _(read the script - `migrate.py` to know why it would load the environment variables `.env`)_ + + Minimum environment variables that needs to be set + + ``` + FLASK_APP='start' # based on the name of our entry point script + FLASK_ENV='development' # use this in development, otherwise 'production' or 'test' + DATABASE_URL="postgres://localhost:5432/{name}_dev" + SECRET_KEY= #generate your own key + ``` + + Use `os.urandom(32)` to generate a random secret key and paste that in `.env`. It's important to keep this `SECRET_KEY` private. + + Since this app uses Pooled Connections, you may also want to set: + + ``` + DB_TIMEOUT=300 # 5 minutes + DB_POOL=5 + ``` + + _(see `database.py`)_ + + **Create a Database** + + - this application is configured to use Postgresql + + ``` + createdb {name}_dev + ``` + + _\*if you name your database something else, tweak the settings in `.env`_ + + **Ignoring Files from Git** + + Before git commiting, remember to ignore key files. Here's an example of `.gitignore` + + ``` + .vscode + *.DS_Store + *__pycache__ + *.env + ``` + + --- + + ## Database Migrations + + ``` + python migrate.py + ``` + + \*_this template is configured to use Peewee's PooledConnection, however, migrations using Peewee-DB-Evolve doesn't work well. A hack was used to not use PooledConnection when running migration. Pending investigation. There are no known side effects to run this template in production._ + + ## Starting Server + + ``` + flask run + ``` + + ## Starting Shell + + ``` + flask shell + ``` + + --- + + ## Deploying to Production + + - ensure environment variables are configured appropriately + - migrations will not run in interactive mode when FLASK_ENV is set to 'production' + - It's important to set your own `SECRET_KEY` environment variable and keep that private. + + --- + + ## Architecture + + This template separates out API and Web to separate packages. Both API and Web are configured to use Flask's Blueprints. + + All new models should go into it's own file/script within the models directory. + + The entry point for a Flask server to start is located at `start.py` + + --- + + ## Dependencies + + This template was created against `Python 3.7`. Should work with newer versions of Python. Not tested with older versions. + + `Peewee` is used as ORM along with a database migration library `peewee-db-evolve`. + + This template also comes packaged with Bootstrap 4.1.3 and it's dependencies (jQuery). + + A copy of requirements.txt is included in the repository. + + ``` + autopep8==1.4.3 + certifi==2018.11.29 + Click==7.0 + colorama==0.4.1 + Flask==1.0.2 + Flask-Cors==3.0.7 + itsdangerous==1.1.0 + Jinja2==2.10 + MarkupSafe==1.1.0 + peewee==3.8.2 + peewee-db-evolve==3.7.0 + psycopg2-binary==2.7.7 + pycodestyle==2.5.0 + python-dotenv==0.10.1 + six==1.12.0 + Werkzeug==0.14.1 + ``` + + Remove `certifi==2018.11.29` if you're having trouble installing dependencies. + + --- + + This repository belongs to [NEXT Academy](https://www.nextacademy.com/?utm_source=github&utm_medium=student-challenge&utm_campaign=flask-nextagram) and is a part of NEXT Academy's coding bootcamps. You may find more information about our bootcamp at https://www.nextacademy.com + + If you are already a student, you may find the challenge description at https://code.nextacademy.com/lessons/day-1--starting-template/479 + """) \ No newline at end of file diff --git a/src/files/start.py b/src/files/start.py new file mode 100644 index 0000000..0e34ab9 --- /dev/null +++ b/src/files/start.py @@ -0,0 +1,11 @@ +from textwrap import dedent + +def start(name): + return dedent(f"""\ + from app import app + import {name}_api + import {name}_web + + if __name__ == '__main__': + app.run() + """) \ No newline at end of file diff --git a/src/files/static/api/__init__.py b/src/files/static/api/__init__.py new file mode 100644 index 0000000..2829081 --- /dev/null +++ b/src/files/static/api/__init__.py @@ -0,0 +1,4 @@ +from app import app +from flask_cors import CORS + +cors = CORS(app, resources={r"/api/*": {"origins": "*"}}) \ No newline at end of file diff --git a/src/files/static/config.py b/src/files/static/config.py new file mode 100644 index 0000000..735e8fe --- /dev/null +++ b/src/files/static/config.py @@ -0,0 +1,31 @@ +import os + + +class Config(object): + DEBUG = False + TESTING = False + CSRF_ENABLED = True + SECRET_KEY = os.environ.get( + 'SECRET_KEY') or os.urandom(32) + + +class ProductionConfig(Config): + DEBUG = False + ASSETS_DEBUG = False + + +class StagingConfig(Config): + DEVELOPMENT = False + DEBUG = False + ASSETS_DEBUG = False + + +class DevelopmentConfig(Config): + DEVELOPMENT = True + DEBUG = True + ASSETS_DEBUG = False + +class TestingConfig(Config): + TESTING = True + DEBUG = True + ASSETS_DEBUG = True \ No newline at end of file diff --git a/src/files/static/database.py b/src/files/static/database.py new file mode 100644 index 0000000..f7cb27f --- /dev/null +++ b/src/files/static/database.py @@ -0,0 +1,39 @@ +import os +from urllib.parse import urlparse + +def parse_db_url(database_url): + parsed = urlparse(database_url) + return { + 'user': parsed.username, + 'password': parsed.password, + 'host': parsed.hostname, + 'port': parsed.port, + 'database': parsed.path[1:] + } + +def return_db(): + db_config = parse_db_url(os.environ['DATABASE_URL']) + + if os.getenv('MIGRATION', '0') == '1': + from playhouse.postgres_ext import PostgresqlExtDatabase + + return PostgresqlExtDatabase( + db_config['database'], + user=db_config.get('user', None), + password=db_config.get('password', None), + host=db_config.get('host', 'localhost'), + port=db_config.get('port', '5432')) + + else: + from playhouse.pool import PooledPostgresqlExtDatabase + + return PooledPostgresqlExtDatabase( + db_config['database'], + max_connections=os.getenv('DB_POOL', 5), + stale_timeout=os.getenv('DB_TIMEOUT', 300), # 5 minutes. + user=db_config.get('user', None), + password=db_config.get('password', None), + host=db_config.get('host', 'localhost'), + port=db_config.get('port', '5432')) + +db = return_db() \ No newline at end of file diff --git a/src/files/static/migrate.py b/src/files/static/migrate.py new file mode 100644 index 0000000..8e78aa3 --- /dev/null +++ b/src/files/static/migrate.py @@ -0,0 +1,20 @@ +import os + +os.environ['MIGRATION'] = '1' + +if not os.getenv('FLASK_ENV') == 'production': + print("Loading environment variables from .env") + from dotenv import load_dotenv + load_dotenv() + + +import peeweedbevolve +from models import * +from models.base_model import db + +print("Running Migration") +if os.getenv('FLASK_ENV') == 'production': + db.evolve(ignore_tables={'base_model'}, interactive=False) +else: + db.evolve(ignore_tables={'base_model'}) +print("Finish Migration") \ No newline at end of file diff --git a/src/files/static/models/__init__.py b/src/files/static/models/__init__.py new file mode 100644 index 0000000..5028d1d --- /dev/null +++ b/src/files/static/models/__init__.py @@ -0,0 +1,6 @@ +from os.path import dirname, basename, isfile +import glob + +modules = glob.glob(dirname(__file__)+"/*.py") +__all__ = [basename(f)[:-3] for f in modules if isfile(f) + and not f.endswith('__init__.py') and not f.endswith('base_model.py')] \ No newline at end of file diff --git a/src/files/static/models/base_model.py b/src/files/static/models/base_model.py new file mode 100644 index 0000000..5049fcd --- /dev/null +++ b/src/files/static/models/base_model.py @@ -0,0 +1,28 @@ +import os +import peewee as pw +import datetime +from database import db + + +class BaseModel(pw.Model): + created_at = pw.DateTimeField(default=datetime.datetime.now) + updated_at = pw.DateTimeField(default=datetime.datetime.now) + + def save(self, *args, **kwargs): + self.errors = [] + self.validate() + + if len(self.errors) == 0: + self.updated_at = datetime.datetime.now() + return super(BaseModel, self).save(*args, **kwargs) + else: + return 0 + + def validate(self): + print( + f"Warning validation method not implemented for {str(type(self))}") + return True + + class Meta: + database = db + legacy_table_names = False \ No newline at end of file diff --git a/src/files/static/requirements.txt b/src/files/static/requirements.txt new file mode 100644 index 0000000..cc5ace3 --- /dev/null +++ b/src/files/static/requirements.txt @@ -0,0 +1,20 @@ +autopep8==1.4.3 +certifi==2018.11.29 +Click==7.0 +colorama==0.4.1 +cssmin==0.2.0 +Flask==1.0.2 +Flask-Assets==0.12 +Flask-Cors==3.0.7 +itsdangerous==1.1.0 +Jinja2==2.10 +jsmin==2.2.2 +MarkupSafe==1.1.0 +peewee==3.8.2 +peewee-db-evolve==3.7.0 +psycopg2-binary==2.7.7 +pycodestyle==2.5.0 +python-dotenv==0.10.1 +six==1.12.0 +webassets==0.12.1 +Werkzeug==0.14.1 \ No newline at end of file diff --git a/src/files/static/web/__init__.py b/src/files/static/web/__init__.py new file mode 100644 index 0000000..121ab4b --- /dev/null +++ b/src/files/static/web/__init__.py @@ -0,0 +1,16 @@ +from app import app +from flask import render_template +from flask_assets import Environment, Bundle +from .util.assets import bundles + +assets = Environment(app) +assets.register(bundles) + +@app.errorhandler(500) +def internal_server_error(e): + return render_template('500.html'), 500 + + +@app.route("/") +def home(): + return render_template('home.html') \ No newline at end of file diff --git a/src/files/static/web/static/css/custom.css b/src/files/static/web/static/css/custom.css new file mode 100644 index 0000000..f2fc38e --- /dev/null +++ b/src/files/static/web/static/css/custom.css @@ -0,0 +1,21 @@ +body { + margin: 0; + padding-bottom: 15px; + position: relative; + min-height: 100vh; +} + +footer { + font-size: 11px; + position: absolute; + bottom: 8px; + left: 0; + right: 0; + text-align: center; + color: #303030; +} + +footer a { + text-decoration: none; + color: #303030; +} \ No newline at end of file diff --git a/src/files/static/web/static/css/vendor/bootstrap-4.1.3.css b/src/files/static/web/static/css/vendor/bootstrap-4.1.3.css new file mode 100644 index 0000000..8826912 --- /dev/null +++ b/src/files/static/web/static/css/vendor/bootstrap-4.1.3.css @@ -0,0 +1,7 @@ +/*! + * Bootstrap v4.1.3 (https://getbootstrap.com/) + * Copyright 2011-2018 The Bootstrap Authors + * Copyright 2011-2018 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,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%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}@-ms-viewport{width:device-width}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,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}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}dfn{font-style:italic}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;-webkit-text-decoration-skip:objects}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;-ms-overflow-style:scrollbar}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}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[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-cancel-button,[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-family:inherit;font-weight:500;line-height:1.2;color:inherit}.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%;min-height:1px;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:none}.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:none}.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:none}.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:none}.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:none}.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;background-color:transparent}.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 .table{background-color:#fff}.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{background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.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-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-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-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-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-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-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-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:#212529;border-color:#32383e}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#212529}.table-dark td,.table-dark th,.table-dark thead th{border-color:#32383e}.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{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;-ms-overflow-style:-ms-autohiding-scrollbar}.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;-ms-overflow-style:-ms-autohiding-scrollbar}.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;-ms-overflow-style:-ms-autohiding-scrollbar}.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;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(2.25rem + 2px);padding:.375rem .75rem;font-size:1rem;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 screen and (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.8125rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(2.875rem + 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}.custom-select.is-valid,.form-control.is-valid,.was-validated .custom-select:valid,.was-validated .form-control:valid{border-color:#28a745}.custom-select.is-valid:focus,.form-control.is-valid:focus,.was-validated .custom-select:valid:focus,.was-validated .form-control: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,.form-control.is-valid~.valid-feedback,.form-control.is-valid~.valid-tooltip,.was-validated .custom-select:valid~.valid-feedback,.was-validated .custom-select:valid~.valid-tooltip,.was-validated .form-control:valid~.valid-feedback,.was-validated .form-control: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{background-color:#71dd8a}.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{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 1px #fff,0 0 0 .2rem rgba(40,167,69,.25)}.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~.custom-file-label::after,.was-validated .custom-file-input:valid~.custom-file-label::after{border-color:inherit}.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{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}.custom-select.is-invalid,.form-control.is-invalid,.was-validated .custom-select:invalid,.was-validated .form-control:invalid{border-color:#dc3545}.custom-select.is-invalid:focus,.form-control.is-invalid:focus,.was-validated .custom-select:invalid:focus,.was-validated .form-control: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,.form-control.is-invalid~.invalid-feedback,.form-control.is-invalid~.invalid-tooltip,.was-validated .custom-select:invalid~.invalid-feedback,.was-validated .custom-select:invalid~.invalid-tooltip,.was-validated .form-control:invalid~.invalid-feedback,.was-validated .form-control: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{background-color:#efa2a9}.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{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 1px #fff,0 0 0 .2rem rgba(220,53,69,.25)}.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~.custom-file-label::after,.was-validated .custom-file-input:invalid~.custom-file-label::after{border-color:inherit}.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{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;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;text-align:center;white-space:nowrap;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;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 screen and (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:focus,.btn:hover{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}.btn:not(:disabled):not(.disabled){cursor:pointer}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(0,123,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(0,123,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(108,117,125,.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(108,117,125,.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(40,167,69,.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(40,167,69,.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(23,162,184,.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(23,162,184,.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(255,193,7,.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(255,193,7,.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(220,53,69,.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(220,53,69,.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(248,249,250,.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(248,249,250,.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(52,58,64,.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(52,58,64,.5)}.btn-outline-primary{color:#007bff;background-color:transparent;background-image:none;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;background-color:transparent;background-image:none;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;background-color:transparent;background-image:none;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;background-color:transparent;background-image:none;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;background-color:transparent;background-image:none;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;background-color:transparent;background-image:none;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;background-color:transparent;background-image:none;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;background-color:transparent;background-image:none;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;background-color:transparent}.btn-link:hover{color:#0056b3;text-decoration:underline;background-color:transparent;border-color:transparent}.btn-link.focus,.btn-link:focus{text-decoration:underline;border-color:transparent;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 screen and (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 screen and (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle::after{display:inline-block;width:0;height:0;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-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;width:0;height:0;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;width:0;height:0;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;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;width:0;height:0;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;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:0 1 auto;flex:0 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-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group,.btn-group-vertical .btn+.btn,.btn-group-vertical .btn+.btn-group,.btn-group-vertical .btn-group+.btn,.btn-group-vertical .btn-group+.btn-group{margin-left:-1px}.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:first-child{margin-left:0}.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+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.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{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{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+.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>.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{height:calc(2.875rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.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{height:calc(1.8125rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.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;background-color:#007bff}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:active~.custom-control-label::before{color:#fff;background-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}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#dee2e6}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background-repeat:no-repeat;background-position:center center;background-size:50% 50%}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::before{background-color:#007bff}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%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{background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%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::before{background-color:#007bff}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%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-select{display:inline-block;width:100%;height:calc(2.25rem + 2px);padding:.375rem 1.75rem .375rem .75rem;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml;charset=utf8,%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;background-size:8px 10px;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(128,189,255,.5)}.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{opacity:0}.custom-select-sm{height:calc(1.8125rem + 2px);padding-top:.375rem;padding-bottom:.375rem;font-size:75%}.custom-select-lg{height:calc(2.875rem + 2px);padding-top:.375rem;padding-bottom:.375rem;font-size:125%}.custom-file{position:relative;display:inline-block;width:100%;height:calc(2.25rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(2.25rem + 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:focus~.custom-file-label::after{border-color:#80bdff}.custom-file-input:disabled~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(2.25rem + 2px);padding:.375rem .75rem;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:2.25rem;padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:1px solid #ced4da;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;padding-left: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 screen and (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 screen and (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 screen and (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-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 screen and (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}.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:not(:disabled):not(.disabled){cursor:pointer}.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;charset=utf8,%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;charset=utf8,%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:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:first-child .card-header,.card-group>.card:first-child .card-img-top{border-top-right-radius:0}.card-group>.card:first-child .card-footer,.card-group>.card:first-child .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:last-child .card-header,.card-group>.card:last-child .card-img-top{border-top-left-radius:0}.card-group>.card:last-child .card-footer,.card-group>.card:last-child .card-img-bottom{border-bottom-left-radius:0}.card-group>.card:only-child{border-radius:.25rem}.card-group>.card:only-child .card-header,.card-group>.card:only-child .card-img-top{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card-group>.card:only-child .card-footer,.card-group>.card:only-child .card-img-bottom{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-group>.card:not(:first-child):not(:last-child):not(:only-child){border-radius:0}.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-footer,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-header,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-top{border-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:not(:first-of-type):not(:last-of-type){border-bottom:0;border-radius:0}.accordion .card:not(:first-of-type) .card-header:first-child{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}.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-link:not(:disabled):not(.disabled){cursor:pointer}.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}.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}.badge-primary[href]:focus,.badge-primary[href]:hover{color:#fff;text-decoration:none;background-color:#0062cc}.badge-secondary{color:#fff;background-color:#6c757d}.badge-secondary[href]:focus,.badge-secondary[href]:hover{color:#fff;text-decoration:none;background-color:#545b62}.badge-success{color:#fff;background-color:#28a745}.badge-success[href]:focus,.badge-success[href]:hover{color:#fff;text-decoration:none;background-color:#1e7e34}.badge-info{color:#fff;background-color:#17a2b8}.badge-info[href]:focus,.badge-info[href]:hover{color:#fff;text-decoration:none;background-color:#117a8b}.badge-warning{color:#212529;background-color:#ffc107}.badge-warning[href]:focus,.badge-warning[href]:hover{color:#212529;text-decoration:none;background-color:#d39e00}.badge-danger{color:#fff;background-color:#dc3545}.badge-danger[href]:focus,.badge-danger[href]:hover{color:#fff;text-decoration:none;background-color:#bd2130}.badge-light{color:#212529;background-color:#f8f9fa}.badge-light[href]:focus,.badge-light[href]:hover{color:#212529;text-decoration:none;background-color:#dae0e5}.badge-dark{color:#fff;background-color:#343a40}.badge-dark[href]:focus,.badge-dark[href]:hover{color:#fff;text-decoration:none;background-color:#1d2124}.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 screen and (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{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{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:focus,.list-group-item:hover{z-index:1;text-decoration:none}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-flush .list-group-item{border-right:0;border-left:0;border-radius:0}.list-group-flush:first-child .list-group-item:first-child{border-top:0}.list-group-flush:last-child .list-group-item:last-child{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:not(:disabled):not(.disabled){cursor:pointer}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{color:#000;text-decoration:none;opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;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,-25%);transform:translate(0,-25%)}@media screen and (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:translate(0,0);transform:translate(0,0)}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - (.5rem * 2))}.modal-dialog-centered::before{display:block;height:calc(100vh - (.5rem * 2));content:""}.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;right:0;bottom:0;left:0;z-index:1040;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;border-bottom:1px solid #e9ecef;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header .close{padding: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 #e9ecef}.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-centered{min-height:calc(100% - (1.75rem * 2))}.modal-dialog-centered::before{height:calc(100vh - (1.75rem * 2))}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg{max-width:800px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,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,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::after,.bs-popover-auto[x-placement^=top] .arrow::before,.bs-popover-top .arrow::after,.bs-popover-top .arrow::before{border-width:.5rem .5rem 0}.bs-popover-auto[x-placement^=top] .arrow::before,.bs-popover-top .arrow::before{bottom: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-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::after,.bs-popover-auto[x-placement^=right] .arrow::before,.bs-popover-right .arrow::after,.bs-popover-right .arrow::before{border-width:.5rem .5rem .5rem 0}.bs-popover-auto[x-placement^=right] .arrow::before,.bs-popover-right .arrow::before{left: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-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::after,.bs-popover-auto[x-placement^=bottom] .arrow::before,.bs-popover-bottom .arrow::after,.bs-popover-bottom .arrow::before{border-width:0 .5rem .5rem .5rem}.bs-popover-auto[x-placement^=bottom] .arrow::before,.bs-popover-bottom .arrow::before{top:0;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom] .arrow::after,.bs-popover-bottom .arrow::after{top:1px;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::after,.bs-popover-auto[x-placement^=left] .arrow::before,.bs-popover-left .arrow::after,.bs-popover-left .arrow::before{border-width:.5rem 0 .5rem .5rem}.bs-popover-auto[x-placement^=left] .arrow::before,.bs-popover-left .arrow::before{right:0;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left] .arrow::after,.bs-popover-left .arrow::after{right:1px;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;color:inherit;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-inner{position:relative;width:100%;overflow:hidden}.carousel-item{position:relative;display:none;-ms-flex-align:center;align-items:center;width:100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block;transition:-webkit-transform .6s ease;transition:transform .6s ease;transition:transform .6s ease,-webkit-transform .6s ease}@media screen and (prefers-reduced-motion:reduce){.carousel-item-next,.carousel-item-prev,.carousel-item.active{transition:none}}.carousel-item-next,.carousel-item-prev{position:absolute;top:0}.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{-webkit-transform:translateX(0);transform:translateX(0)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.active.carousel-item-right,.carousel-item-next{-webkit-transform:translateX(100%);transform:translateX(100%)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.active.carousel-item-right,.carousel-item-next{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.active.carousel-item-left,.carousel-item-prev{-webkit-transform:translateX(-100%);transform:translateX(-100%)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.active.carousel-item-left,.carousel-item-prev{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.carousel-fade .carousel-item{opacity:0;transition-duration:.6s;transition-property:opacity}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{opacity:0}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-prev,.carousel-fade .carousel-item-next,.carousel-fade .carousel-item-prev,.carousel-fade .carousel-item.active{-webkit-transform:translateX(0);transform:translateX(0)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-prev,.carousel-fade .carousel-item-next,.carousel-fade .carousel-item-prev,.carousel-fade .carousel-item.active{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;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}.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:transparent no-repeat center center;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml;charset=utf8,%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;charset=utf8,%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:10px;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{position:relative;-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:rgba(255,255,255,.5)}.carousel-indicators li::before{position:absolute;top:-10px;left:0;display:inline-block;width:100%;height:10px;content:""}.carousel-indicators li::after{position:absolute;bottom:-10px;left:0;display:inline-block;width:100%;height:10px;content:""}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}.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{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-circle{border-radius:50%!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}}.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}.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-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-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-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-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-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}.text-justify{text-align:justify!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-normal{font-weight:400!important}.font-weight-bold{font-weight:700!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:#0062cc!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#545b62!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#1e7e34!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#117a8b!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#d39e00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#bd2130!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#dae0e5!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#1d2124!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}.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/src/files/static/web/static/js/custom.js b/src/files/static/web/static/js/custom.js new file mode 100644 index 0000000..e69de29 diff --git a/src/files/static/web/static/js/vendor/bootstrap-4.1.3.js b/src/files/static/web/static/js/vendor/bootstrap-4.1.3.js new file mode 100644 index 0000000..5f33c7d --- /dev/null +++ b/src/files/static/web/static/js/vendor/bootstrap-4.1.3.js @@ -0,0 +1,7 @@ +/*! + * Bootstrap v4.1.3 (https://getbootstrap.com/) + * Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ +!function (t, e) { "object" == typeof exports && "undefined" != typeof module ? e(exports, require("jquery"), require("popper.js")) : "function" == typeof define && define.amd ? define(["exports", "jquery", "popper.js"], e) : e(t.bootstrap = {}, t.jQuery, t.Popper) }(this, function (t, e, h) { "use strict"; function i(t, e) { for (var n = 0; n < e.length; n++) { var i = e[n]; i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(t, i.key, i) } } function s(t, e, n) { return e && i(t.prototype, e), n && i(t, n), t } function l(r) { for (var t = 1; t < arguments.length; t++) { var o = null != arguments[t] ? arguments[t] : {}, e = Object.keys(o); "function" == typeof Object.getOwnPropertySymbols && (e = e.concat(Object.getOwnPropertySymbols(o).filter(function (t) { return Object.getOwnPropertyDescriptor(o, t).enumerable }))), e.forEach(function (t) { var e, n, i; e = r, i = o[n = t], n in e ? Object.defineProperty(e, n, { value: i, enumerable: !0, configurable: !0, writable: !0 }) : e[n] = i }) } return r } e = e && e.hasOwnProperty("default") ? e.default : e, h = h && h.hasOwnProperty("default") ? h.default : h; var r, n, o, a, c, u, f, d, g, _, m, p, v, y, E, C, T, b, S, I, A, D, w, N, O, k, P, j, H, L, R, x, W, U, q, F, K, M, Q, B, V, Y, z, J, Z, G, $, X, tt, et, nt, it, rt, ot, st, at, lt, ct, ht, ut, ft, dt, gt, _t, mt, pt, vt, yt, Et, Ct, Tt, bt, St, It, At, Dt, wt, Nt, Ot, kt, Pt, jt, Ht, Lt, Rt, xt, Wt, Ut, qt, Ft, Kt, Mt, Qt, Bt, Vt, Yt, zt, Jt, Zt, Gt, $t, Xt, te, ee, ne, ie, re, oe, se, ae, le, ce, he, ue, fe, de, ge, _e, me, pe, ve, ye, Ee, Ce, Te, be, Se, Ie, Ae, De, we, Ne, Oe, ke, Pe, je, He, Le, Re, xe, We, Ue, qe, Fe, Ke, Me, Qe, Be, Ve, Ye, ze, Je, Ze, Ge, $e, Xe, tn, en, nn, rn, on, sn, an, ln, cn, hn, un, fn, dn, gn, _n, mn, pn, vn, yn, En, Cn, Tn, bn, Sn, In, An, Dn, wn, Nn, On, kn, Pn, jn, Hn, Ln, Rn, xn, Wn, Un, qn, Fn = function (i) { var e = "transitionend"; function t(t) { var e = this, n = !1; return i(this).one(l.TRANSITION_END, function () { n = !0 }), setTimeout(function () { n || l.triggerTransitionEnd(e) }, t), this } var l = { TRANSITION_END: "bsTransitionEnd", getUID: function (t) { for (; t += ~~(1e6 * Math.random()), document.getElementById(t);); return t }, getSelectorFromElement: function (t) { var e = t.getAttribute("data-target"); e && "#" !== e || (e = t.getAttribute("href") || ""); try { return document.querySelector(e) ? e : null } catch (t) { return null } }, getTransitionDurationFromElement: function (t) { if (!t) return 0; var e = i(t).css("transition-duration"); return parseFloat(e) ? (e = e.split(",")[0], 1e3 * parseFloat(e)) : 0 }, reflow: function (t) { return t.offsetHeight }, triggerTransitionEnd: function (t) { i(t).trigger(e) }, supportsTransitionEnd: function () { return Boolean(e) }, isElement: function (t) { return (t[0] || t).nodeType }, typeCheckConfig: function (t, e, n) { for (var i in n) if (Object.prototype.hasOwnProperty.call(n, i)) { var r = n[i], o = e[i], s = o && l.isElement(o) ? "element" : (a = o, {}.toString.call(a).match(/\s([a-z]+)/i)[1].toLowerCase()); if (!new RegExp(r).test(s)) throw new Error(t.toUpperCase() + ': Option "' + i + '" provided type "' + s + '" but expected type "' + r + '".') } var a } }; return i.fn.emulateTransitionEnd = t, i.event.special[l.TRANSITION_END] = { bindType: e, delegateType: e, handle: function (t) { if (i(t.target).is(this)) return t.handleObj.handler.apply(this, arguments) } }, l }(e), Kn = (n = "alert", a = "." + (o = "bs.alert"), c = (r = e).fn[n], u = { CLOSE: "close" + a, CLOSED: "closed" + a, CLICK_DATA_API: "click" + a + ".data-api" }, f = "alert", d = "fade", g = "show", _ = function () { function i(t) { this._element = t } var t = i.prototype; return t.close = function (t) { var e = this._element; t && (e = this._getRootElement(t)), this._triggerCloseEvent(e).isDefaultPrevented() || this._removeElement(e) }, t.dispose = function () { r.removeData(this._element, o), this._element = null }, t._getRootElement = function (t) { var e = Fn.getSelectorFromElement(t), n = !1; return e && (n = document.querySelector(e)), n || (n = r(t).closest("." + f)[0]), n }, t._triggerCloseEvent = function (t) { var e = r.Event(u.CLOSE); return r(t).trigger(e), e }, t._removeElement = function (e) { var n = this; if (r(e).removeClass(g), r(e).hasClass(d)) { var t = Fn.getTransitionDurationFromElement(e); r(e).one(Fn.TRANSITION_END, function (t) { return n._destroyElement(e, t) }).emulateTransitionEnd(t) } else this._destroyElement(e) }, t._destroyElement = function (t) { r(t).detach().trigger(u.CLOSED).remove() }, i._jQueryInterface = function (n) { return this.each(function () { var t = r(this), e = t.data(o); e || (e = new i(this), t.data(o, e)), "close" === n && e[n](this) }) }, i._handleDismiss = function (e) { return function (t) { t && t.preventDefault(), e.close(this) } }, s(i, null, [{ key: "VERSION", get: function () { return "4.1.3" } }]), i }(), r(document).on(u.CLICK_DATA_API, '[data-dismiss="alert"]', _._handleDismiss(new _)), r.fn[n] = _._jQueryInterface, r.fn[n].Constructor = _, r.fn[n].noConflict = function () { return r.fn[n] = c, _._jQueryInterface }, _), Mn = (p = "button", y = "." + (v = "bs.button"), E = ".data-api", C = (m = e).fn[p], T = "active", b = "btn", I = '[data-toggle^="button"]', A = '[data-toggle="buttons"]', D = "input", w = ".active", N = ".btn", O = { CLICK_DATA_API: "click" + y + E, FOCUS_BLUR_DATA_API: (S = "focus") + y + E + " blur" + y + E }, k = function () { function n(t) { this._element = t } var t = n.prototype; return t.toggle = function () { var t = !0, e = !0, n = m(this._element).closest(A)[0]; if (n) { var i = this._element.querySelector(D); if (i) { if ("radio" === i.type) if (i.checked && this._element.classList.contains(T)) t = !1; else { var r = n.querySelector(w); r && m(r).removeClass(T) } if (t) { if (i.hasAttribute("disabled") || n.hasAttribute("disabled") || i.classList.contains("disabled") || n.classList.contains("disabled")) return; i.checked = !this._element.classList.contains(T), m(i).trigger("change") } i.focus(), e = !1 } } e && this._element.setAttribute("aria-pressed", !this._element.classList.contains(T)), t && m(this._element).toggleClass(T) }, t.dispose = function () { m.removeData(this._element, v), this._element = null }, n._jQueryInterface = function (e) { return this.each(function () { var t = m(this).data(v); t || (t = new n(this), m(this).data(v, t)), "toggle" === e && t[e]() }) }, s(n, null, [{ key: "VERSION", get: function () { return "4.1.3" } }]), n }(), m(document).on(O.CLICK_DATA_API, I, function (t) { t.preventDefault(); var e = t.target; m(e).hasClass(b) || (e = m(e).closest(N)), k._jQueryInterface.call(m(e), "toggle") }).on(O.FOCUS_BLUR_DATA_API, I, function (t) { var e = m(t.target).closest(N)[0]; m(e).toggleClass(S, /^focus(in)?$/.test(t.type)) }), m.fn[p] = k._jQueryInterface, m.fn[p].Constructor = k, m.fn[p].noConflict = function () { return m.fn[p] = C, k._jQueryInterface }, k), Qn = (j = "carousel", L = "." + (H = "bs.carousel"), R = ".data-api", x = (P = e).fn[j], W = { interval: 5e3, keyboard: !0, slide: !1, pause: "hover", wrap: !0 }, U = { interval: "(number|boolean)", keyboard: "boolean", slide: "(boolean|string)", pause: "(string|boolean)", wrap: "boolean" }, q = "next", F = "prev", K = "left", M = "right", Q = { SLIDE: "slide" + L, SLID: "slid" + L, KEYDOWN: "keydown" + L, MOUSEENTER: "mouseenter" + L, MOUSELEAVE: "mouseleave" + L, TOUCHEND: "touchend" + L, LOAD_DATA_API: "load" + L + R, CLICK_DATA_API: "click" + L + R }, B = "carousel", V = "active", Y = "slide", z = "carousel-item-right", J = "carousel-item-left", Z = "carousel-item-next", G = "carousel-item-prev", $ = ".active", X = ".active.carousel-item", tt = ".carousel-item", et = ".carousel-item-next, .carousel-item-prev", nt = ".carousel-indicators", it = "[data-slide], [data-slide-to]", rt = '[data-ride="carousel"]', ot = function () { function o(t, e) { this._items = null, this._interval = null, this._activeElement = null, this._isPaused = !1, this._isSliding = !1, this.touchTimeout = null, this._config = this._getConfig(e), this._element = P(t)[0], this._indicatorsElement = this._element.querySelector(nt), this._addEventListeners() } var t = o.prototype; return t.next = function () { this._isSliding || this._slide(q) }, t.nextWhenVisible = function () { !document.hidden && P(this._element).is(":visible") && "hidden" !== P(this._element).css("visibility") && this.next() }, t.prev = function () { this._isSliding || this._slide(F) }, t.pause = function (t) { t || (this._isPaused = !0), this._element.querySelector(et) && (Fn.triggerTransitionEnd(this._element), this.cycle(!0)), clearInterval(this._interval), this._interval = null }, t.cycle = function (t) { t || (this._isPaused = !1), this._interval && (clearInterval(this._interval), this._interval = null), this._config.interval && !this._isPaused && (this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval)) }, t.to = function (t) { var e = this; this._activeElement = this._element.querySelector(X); var n = this._getItemIndex(this._activeElement); if (!(t > this._items.length - 1 || t < 0)) if (this._isSliding) P(this._element).one(Q.SLID, function () { return e.to(t) }); else { if (n === t) return this.pause(), void this.cycle(); var i = n < t ? q : F; this._slide(i, this._items[t]) } }, t.dispose = function () { P(this._element).off(L), P.removeData(this._element, H), this._items = null, this._config = null, this._element = null, this._interval = null, this._isPaused = null, this._isSliding = null, this._activeElement = null, this._indicatorsElement = null }, t._getConfig = function (t) { return t = l({}, W, t), Fn.typeCheckConfig(j, t, U), t }, t._addEventListeners = function () { var e = this; this._config.keyboard && P(this._element).on(Q.KEYDOWN, function (t) { return e._keydown(t) }), "hover" === this._config.pause && (P(this._element).on(Q.MOUSEENTER, function (t) { return e.pause(t) }).on(Q.MOUSELEAVE, function (t) { return e.cycle(t) }), "ontouchstart" in document.documentElement && P(this._element).on(Q.TOUCHEND, function () { e.pause(), e.touchTimeout && clearTimeout(e.touchTimeout), e.touchTimeout = setTimeout(function (t) { return e.cycle(t) }, 500 + e._config.interval) })) }, t._keydown = function (t) { if (!/input|textarea/i.test(t.target.tagName)) switch (t.which) { case 37: t.preventDefault(), this.prev(); break; case 39: t.preventDefault(), this.next() } }, t._getItemIndex = function (t) { return this._items = t && t.parentNode ? [].slice.call(t.parentNode.querySelectorAll(tt)) : [], this._items.indexOf(t) }, t._getItemByDirection = function (t, e) { var n = t === q, i = t === F, r = this._getItemIndex(e), o = this._items.length - 1; if ((i && 0 === r || n && r === o) && !this._config.wrap) return e; var s = (r + (t === F ? -1 : 1)) % this._items.length; return -1 === s ? this._items[this._items.length - 1] : this._items[s] }, t._triggerSlideEvent = function (t, e) { var n = this._getItemIndex(t), i = this._getItemIndex(this._element.querySelector(X)), r = P.Event(Q.SLIDE, { relatedTarget: t, direction: e, from: i, to: n }); return P(this._element).trigger(r), r }, t._setActiveIndicatorElement = function (t) { if (this._indicatorsElement) { var e = [].slice.call(this._indicatorsElement.querySelectorAll($)); P(e).removeClass(V); var n = this._indicatorsElement.children[this._getItemIndex(t)]; n && P(n).addClass(V) } }, t._slide = function (t, e) { var n, i, r, o = this, s = this._element.querySelector(X), a = this._getItemIndex(s), l = e || s && this._getItemByDirection(t, s), c = this._getItemIndex(l), h = Boolean(this._interval); if (t === q ? (n = J, i = Z, r = K) : (n = z, i = G, r = M), l && P(l).hasClass(V)) this._isSliding = !1; else if (!this._triggerSlideEvent(l, r).isDefaultPrevented() && s && l) { this._isSliding = !0, h && this.pause(), this._setActiveIndicatorElement(l); var u = P.Event(Q.SLID, { relatedTarget: l, direction: r, from: a, to: c }); if (P(this._element).hasClass(Y)) { P(l).addClass(i), Fn.reflow(l), P(s).addClass(n), P(l).addClass(n); var f = Fn.getTransitionDurationFromElement(s); P(s).one(Fn.TRANSITION_END, function () { P(l).removeClass(n + " " + i).addClass(V), P(s).removeClass(V + " " + i + " " + n), o._isSliding = !1, setTimeout(function () { return P(o._element).trigger(u) }, 0) }).emulateTransitionEnd(f) } else P(s).removeClass(V), P(l).addClass(V), this._isSliding = !1, P(this._element).trigger(u); h && this.cycle() } }, o._jQueryInterface = function (i) { return this.each(function () { var t = P(this).data(H), e = l({}, W, P(this).data()); "object" == typeof i && (e = l({}, e, i)); var n = "string" == typeof i ? i : e.slide; if (t || (t = new o(this, e), P(this).data(H, t)), "number" == typeof i) t.to(i); else if ("string" == typeof n) { if ("undefined" == typeof t[n]) throw new TypeError('No method named "' + n + '"'); t[n]() } else e.interval && (t.pause(), t.cycle()) }) }, o._dataApiClickHandler = function (t) { var e = Fn.getSelectorFromElement(this); if (e) { var n = P(e)[0]; if (n && P(n).hasClass(B)) { var i = l({}, P(n).data(), P(this).data()), r = this.getAttribute("data-slide-to"); r && (i.interval = !1), o._jQueryInterface.call(P(n), i), r && P(n).data(H).to(r), t.preventDefault() } } }, s(o, null, [{ key: "VERSION", get: function () { return "4.1.3" } }, { key: "Default", get: function () { return W } }]), o }(), P(document).on(Q.CLICK_DATA_API, it, ot._dataApiClickHandler), P(window).on(Q.LOAD_DATA_API, function () { for (var t = [].slice.call(document.querySelectorAll(rt)), e = 0, n = t.length; e < n; e++) { var i = P(t[e]); ot._jQueryInterface.call(i, i.data()) } }), P.fn[j] = ot._jQueryInterface, P.fn[j].Constructor = ot, P.fn[j].noConflict = function () { return P.fn[j] = x, ot._jQueryInterface }, ot), Bn = (at = "collapse", ct = "." + (lt = "bs.collapse"), ht = (st = e).fn[at], ut = { toggle: !0, parent: "" }, ft = { toggle: "boolean", parent: "(string|element)" }, dt = { SHOW: "show" + ct, SHOWN: "shown" + ct, HIDE: "hide" + ct, HIDDEN: "hidden" + ct, CLICK_DATA_API: "click" + ct + ".data-api" }, gt = "show", _t = "collapse", mt = "collapsing", pt = "collapsed", vt = "width", yt = "height", Et = ".show, .collapsing", Ct = '[data-toggle="collapse"]', Tt = function () { function a(e, t) { this._isTransitioning = !1, this._element = e, this._config = this._getConfig(t), this._triggerArray = st.makeArray(document.querySelectorAll('[data-toggle="collapse"][href="#' + e.id + '"],[data-toggle="collapse"][data-target="#' + e.id + '"]')); for (var n = [].slice.call(document.querySelectorAll(Ct)), i = 0, r = n.length; i < r; i++) { var o = n[i], s = Fn.getSelectorFromElement(o), a = [].slice.call(document.querySelectorAll(s)).filter(function (t) { return t === e }); null !== s && 0 < a.length && (this._selector = s, this._triggerArray.push(o)) } this._parent = this._config.parent ? this._getParent() : null, this._config.parent || this._addAriaAndCollapsedClass(this._element, this._triggerArray), this._config.toggle && this.toggle() } var t = a.prototype; return t.toggle = function () { st(this._element).hasClass(gt) ? this.hide() : this.show() }, t.show = function () { var t, e, n = this; if (!this._isTransitioning && !st(this._element).hasClass(gt) && (this._parent && 0 === (t = [].slice.call(this._parent.querySelectorAll(Et)).filter(function (t) { return t.getAttribute("data-parent") === n._config.parent })).length && (t = null), !(t && (e = st(t).not(this._selector).data(lt)) && e._isTransitioning))) { var i = st.Event(dt.SHOW); if (st(this._element).trigger(i), !i.isDefaultPrevented()) { t && (a._jQueryInterface.call(st(t).not(this._selector), "hide"), e || st(t).data(lt, null)); var r = this._getDimension(); st(this._element).removeClass(_t).addClass(mt), this._element.style[r] = 0, this._triggerArray.length && st(this._triggerArray).removeClass(pt).attr("aria-expanded", !0), this.setTransitioning(!0); var o = "scroll" + (r[0].toUpperCase() + r.slice(1)), s = Fn.getTransitionDurationFromElement(this._element); st(this._element).one(Fn.TRANSITION_END, function () { st(n._element).removeClass(mt).addClass(_t).addClass(gt), n._element.style[r] = "", n.setTransitioning(!1), st(n._element).trigger(dt.SHOWN) }).emulateTransitionEnd(s), this._element.style[r] = this._element[o] + "px" } } }, t.hide = function () { var t = this; if (!this._isTransitioning && st(this._element).hasClass(gt)) { var e = st.Event(dt.HIDE); if (st(this._element).trigger(e), !e.isDefaultPrevented()) { var n = this._getDimension(); this._element.style[n] = this._element.getBoundingClientRect()[n] + "px", Fn.reflow(this._element), st(this._element).addClass(mt).removeClass(_t).removeClass(gt); var i = this._triggerArray.length; if (0 < i) for (var r = 0; r < i; r++) { var o = this._triggerArray[r], s = Fn.getSelectorFromElement(o); if (null !== s) st([].slice.call(document.querySelectorAll(s))).hasClass(gt) || st(o).addClass(pt).attr("aria-expanded", !1) } this.setTransitioning(!0); this._element.style[n] = ""; var a = Fn.getTransitionDurationFromElement(this._element); st(this._element).one(Fn.TRANSITION_END, function () { t.setTransitioning(!1), st(t._element).removeClass(mt).addClass(_t).trigger(dt.HIDDEN) }).emulateTransitionEnd(a) } } }, t.setTransitioning = function (t) { this._isTransitioning = t }, t.dispose = function () { st.removeData(this._element, lt), this._config = null, this._parent = null, this._element = null, this._triggerArray = null, this._isTransitioning = null }, t._getConfig = function (t) { return (t = l({}, ut, t)).toggle = Boolean(t.toggle), Fn.typeCheckConfig(at, t, ft), t }, t._getDimension = function () { return st(this._element).hasClass(vt) ? vt : yt }, t._getParent = function () { var n = this, t = null; Fn.isElement(this._config.parent) ? (t = this._config.parent, "undefined" != typeof this._config.parent.jquery && (t = this._config.parent[0])) : t = document.querySelector(this._config.parent); var e = '[data-toggle="collapse"][data-parent="' + this._config.parent + '"]', i = [].slice.call(t.querySelectorAll(e)); return st(i).each(function (t, e) { n._addAriaAndCollapsedClass(a._getTargetFromElement(e), [e]) }), t }, t._addAriaAndCollapsedClass = function (t, e) { if (t) { var n = st(t).hasClass(gt); e.length && st(e).toggleClass(pt, !n).attr("aria-expanded", n) } }, a._getTargetFromElement = function (t) { var e = Fn.getSelectorFromElement(t); return e ? document.querySelector(e) : null }, a._jQueryInterface = function (i) { return this.each(function () { var t = st(this), e = t.data(lt), n = l({}, ut, t.data(), "object" == typeof i && i ? i : {}); if (!e && n.toggle && /show|hide/.test(i) && (n.toggle = !1), e || (e = new a(this, n), t.data(lt, e)), "string" == typeof i) { if ("undefined" == typeof e[i]) throw new TypeError('No method named "' + i + '"'); e[i]() } }) }, s(a, null, [{ key: "VERSION", get: function () { return "4.1.3" } }, { key: "Default", get: function () { return ut } }]), a }(), st(document).on(dt.CLICK_DATA_API, Ct, function (t) { "A" === t.currentTarget.tagName && t.preventDefault(); var n = st(this), e = Fn.getSelectorFromElement(this), i = [].slice.call(document.querySelectorAll(e)); st(i).each(function () { var t = st(this), e = t.data(lt) ? "toggle" : n.data(); Tt._jQueryInterface.call(t, e) }) }), st.fn[at] = Tt._jQueryInterface, st.fn[at].Constructor = Tt, st.fn[at].noConflict = function () { return st.fn[at] = ht, Tt._jQueryInterface }, Tt), Vn = (St = "dropdown", At = "." + (It = "bs.dropdown"), Dt = ".data-api", wt = (bt = e).fn[St], Nt = new RegExp("38|40|27"), Ot = { HIDE: "hide" + At, HIDDEN: "hidden" + At, SHOW: "show" + At, SHOWN: "shown" + At, CLICK: "click" + At, CLICK_DATA_API: "click" + At + Dt, KEYDOWN_DATA_API: "keydown" + At + Dt, KEYUP_DATA_API: "keyup" + At + Dt }, kt = "disabled", Pt = "show", jt = "dropup", Ht = "dropright", Lt = "dropleft", Rt = "dropdown-menu-right", xt = "position-static", Wt = '[data-toggle="dropdown"]', Ut = ".dropdown form", qt = ".dropdown-menu", Ft = ".navbar-nav", Kt = ".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)", Mt = "top-start", Qt = "top-end", Bt = "bottom-start", Vt = "bottom-end", Yt = "right-start", zt = "left-start", Jt = { offset: 0, flip: !0, boundary: "scrollParent", reference: "toggle", display: "dynamic" }, Zt = { offset: "(number|string|function)", flip: "boolean", boundary: "(string|element)", reference: "(string|element)", display: "string" }, Gt = function () { function c(t, e) { this._element = t, this._popper = null, this._config = this._getConfig(e), this._menu = this._getMenuElement(), this._inNavbar = this._detectNavbar(), this._addEventListeners() } var t = c.prototype; return t.toggle = function () { if (!this._element.disabled && !bt(this._element).hasClass(kt)) { var t = c._getParentFromElement(this._element), e = bt(this._menu).hasClass(Pt); if (c._clearMenus(), !e) { var n = { relatedTarget: this._element }, i = bt.Event(Ot.SHOW, n); if (bt(t).trigger(i), !i.isDefaultPrevented()) { if (!this._inNavbar) { if ("undefined" == typeof h) throw new TypeError("Bootstrap dropdown require Popper.js (https://popper.js.org)"); var r = this._element; "parent" === this._config.reference ? r = t : Fn.isElement(this._config.reference) && (r = this._config.reference, "undefined" != typeof this._config.reference.jquery && (r = this._config.reference[0])), "scrollParent" !== this._config.boundary && bt(t).addClass(xt), this._popper = new h(r, this._menu, this._getPopperConfig()) } "ontouchstart" in document.documentElement && 0 === bt(t).closest(Ft).length && bt(document.body).children().on("mouseover", null, bt.noop), this._element.focus(), this._element.setAttribute("aria-expanded", !0), bt(this._menu).toggleClass(Pt), bt(t).toggleClass(Pt).trigger(bt.Event(Ot.SHOWN, n)) } } } }, t.dispose = function () { bt.removeData(this._element, It), bt(this._element).off(At), this._element = null, (this._menu = null) !== this._popper && (this._popper.destroy(), this._popper = null) }, t.update = function () { this._inNavbar = this._detectNavbar(), null !== this._popper && this._popper.scheduleUpdate() }, t._addEventListeners = function () { var e = this; bt(this._element).on(Ot.CLICK, function (t) { t.preventDefault(), t.stopPropagation(), e.toggle() }) }, t._getConfig = function (t) { return t = l({}, this.constructor.Default, bt(this._element).data(), t), Fn.typeCheckConfig(St, t, this.constructor.DefaultType), t }, t._getMenuElement = function () { if (!this._menu) { var t = c._getParentFromElement(this._element); t && (this._menu = t.querySelector(qt)) } return this._menu }, t._getPlacement = function () { var t = bt(this._element.parentNode), e = Bt; return t.hasClass(jt) ? (e = Mt, bt(this._menu).hasClass(Rt) && (e = Qt)) : t.hasClass(Ht) ? e = Yt : t.hasClass(Lt) ? e = zt : bt(this._menu).hasClass(Rt) && (e = Vt), e }, t._detectNavbar = function () { return 0 < bt(this._element).closest(".navbar").length }, t._getPopperConfig = function () { var e = this, t = {}; "function" == typeof this._config.offset ? t.fn = function (t) { return t.offsets = l({}, t.offsets, e._config.offset(t.offsets) || {}), t } : t.offset = this._config.offset; var n = { placement: this._getPlacement(), modifiers: { offset: t, flip: { enabled: this._config.flip }, preventOverflow: { boundariesElement: this._config.boundary } } }; return "static" === this._config.display && (n.modifiers.applyStyle = { enabled: !1 }), n }, c._jQueryInterface = function (e) { return this.each(function () { var t = bt(this).data(It); if (t || (t = new c(this, "object" == typeof e ? e : null), bt(this).data(It, t)), "string" == typeof e) { if ("undefined" == typeof t[e]) throw new TypeError('No method named "' + e + '"'); t[e]() } }) }, c._clearMenus = function (t) { if (!t || 3 !== t.which && ("keyup" !== t.type || 9 === t.which)) for (var e = [].slice.call(document.querySelectorAll(Wt)), n = 0, i = e.length; n < i; n++) { var r = c._getParentFromElement(e[n]), o = bt(e[n]).data(It), s = { relatedTarget: e[n] }; if (t && "click" === t.type && (s.clickEvent = t), o) { var a = o._menu; if (bt(r).hasClass(Pt) && !(t && ("click" === t.type && /input|textarea/i.test(t.target.tagName) || "keyup" === t.type && 9 === t.which) && bt.contains(r, t.target))) { var l = bt.Event(Ot.HIDE, s); bt(r).trigger(l), l.isDefaultPrevented() || ("ontouchstart" in document.documentElement && bt(document.body).children().off("mouseover", null, bt.noop), e[n].setAttribute("aria-expanded", "false"), bt(a).removeClass(Pt), bt(r).removeClass(Pt).trigger(bt.Event(Ot.HIDDEN, s))) } } } }, c._getParentFromElement = function (t) { var e, n = Fn.getSelectorFromElement(t); return n && (e = document.querySelector(n)), e || t.parentNode }, c._dataApiKeydownHandler = function (t) { if ((/input|textarea/i.test(t.target.tagName) ? !(32 === t.which || 27 !== t.which && (40 !== t.which && 38 !== t.which || bt(t.target).closest(qt).length)) : Nt.test(t.which)) && (t.preventDefault(), t.stopPropagation(), !this.disabled && !bt(this).hasClass(kt))) { var e = c._getParentFromElement(this), n = bt(e).hasClass(Pt); if ((n || 27 === t.which && 32 === t.which) && (!n || 27 !== t.which && 32 !== t.which)) { var i = [].slice.call(e.querySelectorAll(Kt)); if (0 !== i.length) { var r = i.indexOf(t.target); 38 === t.which && 0 < r && r-- , 40 === t.which && r < i.length - 1 && r++ , r < 0 && (r = 0), i[r].focus() } } else { if (27 === t.which) { var o = e.querySelector(Wt); bt(o).trigger("focus") } bt(this).trigger("click") } } }, s(c, null, [{ key: "VERSION", get: function () { return "4.1.3" } }, { key: "Default", get: function () { return Jt } }, { key: "DefaultType", get: function () { return Zt } }]), c }(), bt(document).on(Ot.KEYDOWN_DATA_API, Wt, Gt._dataApiKeydownHandler).on(Ot.KEYDOWN_DATA_API, qt, Gt._dataApiKeydownHandler).on(Ot.CLICK_DATA_API + " " + Ot.KEYUP_DATA_API, Gt._clearMenus).on(Ot.CLICK_DATA_API, Wt, function (t) { t.preventDefault(), t.stopPropagation(), Gt._jQueryInterface.call(bt(this), "toggle") }).on(Ot.CLICK_DATA_API, Ut, function (t) { t.stopPropagation() }), bt.fn[St] = Gt._jQueryInterface, bt.fn[St].Constructor = Gt, bt.fn[St].noConflict = function () { return bt.fn[St] = wt, Gt._jQueryInterface }, Gt), Yn = (Xt = "modal", ee = "." + (te = "bs.modal"), ne = ($t = e).fn[Xt], ie = { backdrop: !0, keyboard: !0, focus: !0, show: !0 }, re = { backdrop: "(boolean|string)", keyboard: "boolean", focus: "boolean", show: "boolean" }, oe = { HIDE: "hide" + ee, HIDDEN: "hidden" + ee, SHOW: "show" + ee, SHOWN: "shown" + ee, FOCUSIN: "focusin" + ee, RESIZE: "resize" + ee, CLICK_DISMISS: "click.dismiss" + ee, KEYDOWN_DISMISS: "keydown.dismiss" + ee, MOUSEUP_DISMISS: "mouseup.dismiss" + ee, MOUSEDOWN_DISMISS: "mousedown.dismiss" + ee, CLICK_DATA_API: "click" + ee + ".data-api" }, se = "modal-scrollbar-measure", ae = "modal-backdrop", le = "modal-open", ce = "fade", he = "show", ue = ".modal-dialog", fe = '[data-toggle="modal"]', de = '[data-dismiss="modal"]', ge = ".fixed-top, .fixed-bottom, .is-fixed, .sticky-top", _e = ".sticky-top", me = function () { function r(t, e) { this._config = this._getConfig(e), this._element = t, this._dialog = t.querySelector(ue), this._backdrop = null, this._isShown = !1, this._isBodyOverflowing = !1, this._ignoreBackdropClick = !1, this._scrollbarWidth = 0 } var t = r.prototype; return t.toggle = function (t) { return this._isShown ? this.hide() : this.show(t) }, t.show = function (t) { var e = this; if (!this._isTransitioning && !this._isShown) { $t(this._element).hasClass(ce) && (this._isTransitioning = !0); var n = $t.Event(oe.SHOW, { relatedTarget: t }); $t(this._element).trigger(n), this._isShown || n.isDefaultPrevented() || (this._isShown = !0, this._checkScrollbar(), this._setScrollbar(), this._adjustDialog(), $t(document.body).addClass(le), this._setEscapeEvent(), this._setResizeEvent(), $t(this._element).on(oe.CLICK_DISMISS, de, function (t) { return e.hide(t) }), $t(this._dialog).on(oe.MOUSEDOWN_DISMISS, function () { $t(e._element).one(oe.MOUSEUP_DISMISS, function (t) { $t(t.target).is(e._element) && (e._ignoreBackdropClick = !0) }) }), this._showBackdrop(function () { return e._showElement(t) })) } }, t.hide = function (t) { var e = this; if (t && t.preventDefault(), !this._isTransitioning && this._isShown) { var n = $t.Event(oe.HIDE); if ($t(this._element).trigger(n), this._isShown && !n.isDefaultPrevented()) { this._isShown = !1; var i = $t(this._element).hasClass(ce); if (i && (this._isTransitioning = !0), this._setEscapeEvent(), this._setResizeEvent(), $t(document).off(oe.FOCUSIN), $t(this._element).removeClass(he), $t(this._element).off(oe.CLICK_DISMISS), $t(this._dialog).off(oe.MOUSEDOWN_DISMISS), i) { var r = Fn.getTransitionDurationFromElement(this._element); $t(this._element).one(Fn.TRANSITION_END, function (t) { return e._hideModal(t) }).emulateTransitionEnd(r) } else this._hideModal() } } }, t.dispose = function () { $t.removeData(this._element, te), $t(window, document, this._element, this._backdrop).off(ee), this._config = null, this._element = null, this._dialog = null, this._backdrop = null, this._isShown = null, this._isBodyOverflowing = null, this._ignoreBackdropClick = null, this._scrollbarWidth = null }, t.handleUpdate = function () { this._adjustDialog() }, t._getConfig = function (t) { return t = l({}, ie, t), Fn.typeCheckConfig(Xt, t, re), t }, t._showElement = function (t) { var e = this, n = $t(this._element).hasClass(ce); this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE || document.body.appendChild(this._element), this._element.style.display = "block", this._element.removeAttribute("aria-hidden"), this._element.scrollTop = 0, n && Fn.reflow(this._element), $t(this._element).addClass(he), this._config.focus && this._enforceFocus(); var i = $t.Event(oe.SHOWN, { relatedTarget: t }), r = function () { e._config.focus && e._element.focus(), e._isTransitioning = !1, $t(e._element).trigger(i) }; if (n) { var o = Fn.getTransitionDurationFromElement(this._element); $t(this._dialog).one(Fn.TRANSITION_END, r).emulateTransitionEnd(o) } else r() }, t._enforceFocus = function () { var e = this; $t(document).off(oe.FOCUSIN).on(oe.FOCUSIN, function (t) { document !== t.target && e._element !== t.target && 0 === $t(e._element).has(t.target).length && e._element.focus() }) }, t._setEscapeEvent = function () { var e = this; this._isShown && this._config.keyboard ? $t(this._element).on(oe.KEYDOWN_DISMISS, function (t) { 27 === t.which && (t.preventDefault(), e.hide()) }) : this._isShown || $t(this._element).off(oe.KEYDOWN_DISMISS) }, t._setResizeEvent = function () { var e = this; this._isShown ? $t(window).on(oe.RESIZE, function (t) { return e.handleUpdate(t) }) : $t(window).off(oe.RESIZE) }, t._hideModal = function () { var t = this; this._element.style.display = "none", this._element.setAttribute("aria-hidden", !0), this._isTransitioning = !1, this._showBackdrop(function () { $t(document.body).removeClass(le), t._resetAdjustments(), t._resetScrollbar(), $t(t._element).trigger(oe.HIDDEN) }) }, t._removeBackdrop = function () { this._backdrop && ($t(this._backdrop).remove(), this._backdrop = null) }, t._showBackdrop = function (t) { var e = this, n = $t(this._element).hasClass(ce) ? ce : ""; if (this._isShown && this._config.backdrop) { if (this._backdrop = document.createElement("div"), this._backdrop.className = ae, n && this._backdrop.classList.add(n), $t(this._backdrop).appendTo(document.body), $t(this._element).on(oe.CLICK_DISMISS, function (t) { e._ignoreBackdropClick ? e._ignoreBackdropClick = !1 : t.target === t.currentTarget && ("static" === e._config.backdrop ? e._element.focus() : e.hide()) }), n && Fn.reflow(this._backdrop), $t(this._backdrop).addClass(he), !t) return; if (!n) return void t(); var i = Fn.getTransitionDurationFromElement(this._backdrop); $t(this._backdrop).one(Fn.TRANSITION_END, t).emulateTransitionEnd(i) } else if (!this._isShown && this._backdrop) { $t(this._backdrop).removeClass(he); var r = function () { e._removeBackdrop(), t && t() }; if ($t(this._element).hasClass(ce)) { var o = Fn.getTransitionDurationFromElement(this._backdrop); $t(this._backdrop).one(Fn.TRANSITION_END, r).emulateTransitionEnd(o) } else r() } else t && t() }, t._adjustDialog = function () { var t = this._element.scrollHeight > document.documentElement.clientHeight; !this._isBodyOverflowing && t && (this._element.style.paddingLeft = this._scrollbarWidth + "px"), this._isBodyOverflowing && !t && (this._element.style.paddingRight = this._scrollbarWidth + "px") }, t._resetAdjustments = function () { this._element.style.paddingLeft = "", this._element.style.paddingRight = "" }, t._checkScrollbar = function () { var t = document.body.getBoundingClientRect(); this._isBodyOverflowing = t.left + t.right < window.innerWidth, this._scrollbarWidth = this._getScrollbarWidth() }, t._setScrollbar = function () { var r = this; if (this._isBodyOverflowing) { var t = [].slice.call(document.querySelectorAll(ge)), e = [].slice.call(document.querySelectorAll(_e)); $t(t).each(function (t, e) { var n = e.style.paddingRight, i = $t(e).css("padding-right"); $t(e).data("padding-right", n).css("padding-right", parseFloat(i) + r._scrollbarWidth + "px") }), $t(e).each(function (t, e) { var n = e.style.marginRight, i = $t(e).css("margin-right"); $t(e).data("margin-right", n).css("margin-right", parseFloat(i) - r._scrollbarWidth + "px") }); var n = document.body.style.paddingRight, i = $t(document.body).css("padding-right"); $t(document.body).data("padding-right", n).css("padding-right", parseFloat(i) + this._scrollbarWidth + "px") } }, t._resetScrollbar = function () { var t = [].slice.call(document.querySelectorAll(ge)); $t(t).each(function (t, e) { var n = $t(e).data("padding-right"); $t(e).removeData("padding-right"), e.style.paddingRight = n || "" }); var e = [].slice.call(document.querySelectorAll("" + _e)); $t(e).each(function (t, e) { var n = $t(e).data("margin-right"); "undefined" != typeof n && $t(e).css("margin-right", n).removeData("margin-right") }); var n = $t(document.body).data("padding-right"); $t(document.body).removeData("padding-right"), document.body.style.paddingRight = n || "" }, t._getScrollbarWidth = function () { var t = document.createElement("div"); t.className = se, document.body.appendChild(t); var e = t.getBoundingClientRect().width - t.clientWidth; return document.body.removeChild(t), e }, r._jQueryInterface = function (n, i) { return this.each(function () { var t = $t(this).data(te), e = l({}, ie, $t(this).data(), "object" == typeof n && n ? n : {}); if (t || (t = new r(this, e), $t(this).data(te, t)), "string" == typeof n) { if ("undefined" == typeof t[n]) throw new TypeError('No method named "' + n + '"'); t[n](i) } else e.show && t.show(i) }) }, s(r, null, [{ key: "VERSION", get: function () { return "4.1.3" } }, { key: "Default", get: function () { return ie } }]), r }(), $t(document).on(oe.CLICK_DATA_API, fe, function (t) { var e, n = this, i = Fn.getSelectorFromElement(this); i && (e = document.querySelector(i)); var r = $t(e).data(te) ? "toggle" : l({}, $t(e).data(), $t(this).data()); "A" !== this.tagName && "AREA" !== this.tagName || t.preventDefault(); var o = $t(e).one(oe.SHOW, function (t) { t.isDefaultPrevented() || o.one(oe.HIDDEN, function () { $t(n).is(":visible") && n.focus() }) }); me._jQueryInterface.call($t(e), r, this) }), $t.fn[Xt] = me._jQueryInterface, $t.fn[Xt].Constructor = me, $t.fn[Xt].noConflict = function () { return $t.fn[Xt] = ne, me._jQueryInterface }, me), zn = (ve = "tooltip", Ee = "." + (ye = "bs.tooltip"), Ce = (pe = e).fn[ve], Te = "bs-tooltip", be = new RegExp("(^|\\s)" + Te + "\\S+", "g"), Ae = { animation: !0, template: '', trigger: "hover focus", title: "", delay: 0, html: !(Ie = { AUTO: "auto", TOP: "top", RIGHT: "right", BOTTOM: "bottom", LEFT: "left" }), selector: !(Se = { animation: "boolean", template: "string", title: "(string|element|function)", trigger: "string", delay: "(number|object)", html: "boolean", selector: "(string|boolean)", placement: "(string|function)", offset: "(number|string)", container: "(string|element|boolean)", fallbackPlacement: "(string|array)", boundary: "(string|element)" }), placement: "top", offset: 0, container: !1, fallbackPlacement: "flip", boundary: "scrollParent" }, we = "out", Ne = { HIDE: "hide" + Ee, HIDDEN: "hidden" + Ee, SHOW: (De = "show") + Ee, SHOWN: "shown" + Ee, INSERTED: "inserted" + Ee, CLICK: "click" + Ee, FOCUSIN: "focusin" + Ee, FOCUSOUT: "focusout" + Ee, MOUSEENTER: "mouseenter" + Ee, MOUSELEAVE: "mouseleave" + Ee }, Oe = "fade", ke = "show", Pe = ".tooltip-inner", je = ".arrow", He = "hover", Le = "focus", Re = "click", xe = "manual", We = function () { function i(t, e) { if ("undefined" == typeof h) throw new TypeError("Bootstrap tooltips require Popper.js (https://popper.js.org)"); this._isEnabled = !0, this._timeout = 0, this._hoverState = "", this._activeTrigger = {}, this._popper = null, this.element = t, this.config = this._getConfig(e), this.tip = null, this._setListeners() } var t = i.prototype; return t.enable = function () { this._isEnabled = !0 }, t.disable = function () { this._isEnabled = !1 }, t.toggleEnabled = function () { this._isEnabled = !this._isEnabled }, t.toggle = function (t) { if (this._isEnabled) if (t) { var e = this.constructor.DATA_KEY, n = pe(t.currentTarget).data(e); n || (n = new this.constructor(t.currentTarget, this._getDelegateConfig()), pe(t.currentTarget).data(e, n)), n._activeTrigger.click = !n._activeTrigger.click, n._isWithActiveTrigger() ? n._enter(null, n) : n._leave(null, n) } else { if (pe(this.getTipElement()).hasClass(ke)) return void this._leave(null, this); this._enter(null, this) } }, t.dispose = function () { clearTimeout(this._timeout), pe.removeData(this.element, this.constructor.DATA_KEY), pe(this.element).off(this.constructor.EVENT_KEY), pe(this.element).closest(".modal").off("hide.bs.modal"), this.tip && pe(this.tip).remove(), this._isEnabled = null, this._timeout = null, this._hoverState = null, (this._activeTrigger = null) !== this._popper && this._popper.destroy(), this._popper = null, this.element = null, this.config = null, this.tip = null }, t.show = function () { var e = this; if ("none" === pe(this.element).css("display")) throw new Error("Please use show on visible elements"); var t = pe.Event(this.constructor.Event.SHOW); if (this.isWithContent() && this._isEnabled) { pe(this.element).trigger(t); var n = pe.contains(this.element.ownerDocument.documentElement, this.element); if (t.isDefaultPrevented() || !n) return; var i = this.getTipElement(), r = Fn.getUID(this.constructor.NAME); i.setAttribute("id", r), this.element.setAttribute("aria-describedby", r), this.setContent(), this.config.animation && pe(i).addClass(Oe); var o = "function" == typeof this.config.placement ? this.config.placement.call(this, i, this.element) : this.config.placement, s = this._getAttachment(o); this.addAttachmentClass(s); var a = !1 === this.config.container ? document.body : pe(document).find(this.config.container); pe(i).data(this.constructor.DATA_KEY, this), pe.contains(this.element.ownerDocument.documentElement, this.tip) || pe(i).appendTo(a), pe(this.element).trigger(this.constructor.Event.INSERTED), this._popper = new h(this.element, i, { placement: s, modifiers: { offset: { offset: this.config.offset }, flip: { behavior: this.config.fallbackPlacement }, arrow: { element: je }, preventOverflow: { boundariesElement: this.config.boundary } }, onCreate: function (t) { t.originalPlacement !== t.placement && e._handlePopperPlacementChange(t) }, onUpdate: function (t) { e._handlePopperPlacementChange(t) } }), pe(i).addClass(ke), "ontouchstart" in document.documentElement && pe(document.body).children().on("mouseover", null, pe.noop); var l = function () { e.config.animation && e._fixTransition(); var t = e._hoverState; e._hoverState = null, pe(e.element).trigger(e.constructor.Event.SHOWN), t === we && e._leave(null, e) }; if (pe(this.tip).hasClass(Oe)) { var c = Fn.getTransitionDurationFromElement(this.tip); pe(this.tip).one(Fn.TRANSITION_END, l).emulateTransitionEnd(c) } else l() } }, t.hide = function (t) { var e = this, n = this.getTipElement(), i = pe.Event(this.constructor.Event.HIDE), r = function () { e._hoverState !== De && n.parentNode && n.parentNode.removeChild(n), e._cleanTipClass(), e.element.removeAttribute("aria-describedby"), pe(e.element).trigger(e.constructor.Event.HIDDEN), null !== e._popper && e._popper.destroy(), t && t() }; if (pe(this.element).trigger(i), !i.isDefaultPrevented()) { if (pe(n).removeClass(ke), "ontouchstart" in document.documentElement && pe(document.body).children().off("mouseover", null, pe.noop), this._activeTrigger[Re] = !1, this._activeTrigger[Le] = !1, this._activeTrigger[He] = !1, pe(this.tip).hasClass(Oe)) { var o = Fn.getTransitionDurationFromElement(n); pe(n).one(Fn.TRANSITION_END, r).emulateTransitionEnd(o) } else r(); this._hoverState = "" } }, t.update = function () { null !== this._popper && this._popper.scheduleUpdate() }, t.isWithContent = function () { return Boolean(this.getTitle()) }, t.addAttachmentClass = function (t) { pe(this.getTipElement()).addClass(Te + "-" + t) }, t.getTipElement = function () { return this.tip = this.tip || pe(this.config.template)[0], this.tip }, t.setContent = function () { var t = this.getTipElement(); this.setElementContent(pe(t.querySelectorAll(Pe)), this.getTitle()), pe(t).removeClass(Oe + " " + ke) }, t.setElementContent = function (t, e) { var n = this.config.html; "object" == typeof e && (e.nodeType || e.jquery) ? n ? pe(e).parent().is(t) || t.empty().append(e) : t.text(pe(e).text()) : t[n ? "html" : "text"](e) }, t.getTitle = function () { var t = this.element.getAttribute("data-original-title"); return t || (t = "function" == typeof this.config.title ? this.config.title.call(this.element) : this.config.title), t }, t._getAttachment = function (t) { return Ie[t.toUpperCase()] }, t._setListeners = function () { var i = this; this.config.trigger.split(" ").forEach(function (t) { if ("click" === t) pe(i.element).on(i.constructor.Event.CLICK, i.config.selector, function (t) { return i.toggle(t) }); else if (t !== xe) { var e = t === He ? i.constructor.Event.MOUSEENTER : i.constructor.Event.FOCUSIN, n = t === He ? i.constructor.Event.MOUSELEAVE : i.constructor.Event.FOCUSOUT; pe(i.element).on(e, i.config.selector, function (t) { return i._enter(t) }).on(n, i.config.selector, function (t) { return i._leave(t) }) } pe(i.element).closest(".modal").on("hide.bs.modal", function () { return i.hide() }) }), this.config.selector ? this.config = l({}, this.config, { trigger: "manual", selector: "" }) : this._fixTitle() }, t._fixTitle = function () { var t = typeof this.element.getAttribute("data-original-title"); (this.element.getAttribute("title") || "string" !== t) && (this.element.setAttribute("data-original-title", this.element.getAttribute("title") || ""), this.element.setAttribute("title", "")) }, t._enter = function (t, e) { var n = this.constructor.DATA_KEY; (e = e || pe(t.currentTarget).data(n)) || (e = new this.constructor(t.currentTarget, this._getDelegateConfig()), pe(t.currentTarget).data(n, e)), t && (e._activeTrigger["focusin" === t.type ? Le : He] = !0), pe(e.getTipElement()).hasClass(ke) || e._hoverState === De ? e._hoverState = De : (clearTimeout(e._timeout), e._hoverState = De, e.config.delay && e.config.delay.show ? e._timeout = setTimeout(function () { e._hoverState === De && e.show() }, e.config.delay.show) : e.show()) }, t._leave = function (t, e) { var n = this.constructor.DATA_KEY; (e = e || pe(t.currentTarget).data(n)) || (e = new this.constructor(t.currentTarget, this._getDelegateConfig()), pe(t.currentTarget).data(n, e)), t && (e._activeTrigger["focusout" === t.type ? Le : He] = !1), e._isWithActiveTrigger() || (clearTimeout(e._timeout), e._hoverState = we, e.config.delay && e.config.delay.hide ? e._timeout = setTimeout(function () { e._hoverState === we && e.hide() }, e.config.delay.hide) : e.hide()) }, t._isWithActiveTrigger = function () { for (var t in this._activeTrigger) if (this._activeTrigger[t]) return !0; return !1 }, t._getConfig = function (t) { return "number" == typeof (t = l({}, this.constructor.Default, pe(this.element).data(), "object" == typeof t && t ? t : {})).delay && (t.delay = { show: t.delay, hide: t.delay }), "number" == typeof t.title && (t.title = t.title.toString()), "number" == typeof t.content && (t.content = t.content.toString()), Fn.typeCheckConfig(ve, t, this.constructor.DefaultType), t }, t._getDelegateConfig = function () { var t = {}; if (this.config) for (var e in this.config) this.constructor.Default[e] !== this.config[e] && (t[e] = this.config[e]); return t }, t._cleanTipClass = function () { var t = pe(this.getTipElement()), e = t.attr("class").match(be); null !== e && e.length && t.removeClass(e.join("")) }, t._handlePopperPlacementChange = function (t) { var e = t.instance; this.tip = e.popper, this._cleanTipClass(), this.addAttachmentClass(this._getAttachment(t.placement)) }, t._fixTransition = function () { var t = this.getTipElement(), e = this.config.animation; null === t.getAttribute("x-placement") && (pe(t).removeClass(Oe), this.config.animation = !1, this.hide(), this.show(), this.config.animation = e) }, i._jQueryInterface = function (n) { return this.each(function () { var t = pe(this).data(ye), e = "object" == typeof n && n; if ((t || !/dispose|hide/.test(n)) && (t || (t = new i(this, e), pe(this).data(ye, t)), "string" == typeof n)) { if ("undefined" == typeof t[n]) throw new TypeError('No method named "' + n + '"'); t[n]() } }) }, s(i, null, [{ key: "VERSION", get: function () { return "4.1.3" } }, { key: "Default", get: function () { return Ae } }, { key: "NAME", get: function () { return ve } }, { key: "DATA_KEY", get: function () { return ye } }, { key: "Event", get: function () { return Ne } }, { key: "EVENT_KEY", get: function () { return Ee } }, { key: "DefaultType", get: function () { return Se } }]), i }(), pe.fn[ve] = We._jQueryInterface, pe.fn[ve].Constructor = We, pe.fn[ve].noConflict = function () { return pe.fn[ve] = Ce, We._jQueryInterface }, We), Jn = (qe = "popover", Ke = "." + (Fe = "bs.popover"), Me = (Ue = e).fn[qe], Qe = "bs-popover", Be = new RegExp("(^|\\s)" + Qe + "\\S+", "g"), Ve = l({}, zn.Default, { placement: "right", trigger: "click", content: "", template: '' }), Ye = l({}, zn.DefaultType, { content: "(string|element|function)" }), ze = "fade", Ze = ".popover-header", Ge = ".popover-body", $e = { HIDE: "hide" + Ke, HIDDEN: "hidden" + Ke, SHOW: (Je = "show") + Ke, SHOWN: "shown" + Ke, INSERTED: "inserted" + Ke, CLICK: "click" + Ke, FOCUSIN: "focusin" + Ke, FOCUSOUT: "focusout" + Ke, MOUSEENTER: "mouseenter" + Ke, MOUSELEAVE: "mouseleave" + Ke }, Xe = function (t) { var e, n; function i() { return t.apply(this, arguments) || this } n = t, (e = i).prototype = Object.create(n.prototype), (e.prototype.constructor = e).__proto__ = n; var r = i.prototype; return r.isWithContent = function () { return this.getTitle() || this._getContent() }, r.addAttachmentClass = function (t) { Ue(this.getTipElement()).addClass(Qe + "-" + t) }, r.getTipElement = function () { return this.tip = this.tip || Ue(this.config.template)[0], this.tip }, r.setContent = function () { var t = Ue(this.getTipElement()); this.setElementContent(t.find(Ze), this.getTitle()); var e = this._getContent(); "function" == typeof e && (e = e.call(this.element)), this.setElementContent(t.find(Ge), e), t.removeClass(ze + " " + Je) }, r._getContent = function () { return this.element.getAttribute("data-content") || this.config.content }, r._cleanTipClass = function () { var t = Ue(this.getTipElement()), e = t.attr("class").match(Be); null !== e && 0 < e.length && t.removeClass(e.join("")) }, i._jQueryInterface = function (n) { return this.each(function () { var t = Ue(this).data(Fe), e = "object" == typeof n ? n : null; if ((t || !/destroy|hide/.test(n)) && (t || (t = new i(this, e), Ue(this).data(Fe, t)), "string" == typeof n)) { if ("undefined" == typeof t[n]) throw new TypeError('No method named "' + n + '"'); t[n]() } }) }, s(i, null, [{ key: "VERSION", get: function () { return "4.1.3" } }, { key: "Default", get: function () { return Ve } }, { key: "NAME", get: function () { return qe } }, { key: "DATA_KEY", get: function () { return Fe } }, { key: "Event", get: function () { return $e } }, { key: "EVENT_KEY", get: function () { return Ke } }, { key: "DefaultType", get: function () { return Ye } }]), i }(zn), Ue.fn[qe] = Xe._jQueryInterface, Ue.fn[qe].Constructor = Xe, Ue.fn[qe].noConflict = function () { return Ue.fn[qe] = Me, Xe._jQueryInterface }, Xe), Zn = (en = "scrollspy", rn = "." + (nn = "bs.scrollspy"), on = (tn = e).fn[en], sn = { offset: 10, method: "auto", target: "" }, an = { offset: "number", method: "string", target: "(string|element)" }, ln = { ACTIVATE: "activate" + rn, SCROLL: "scroll" + rn, LOAD_DATA_API: "load" + rn + ".data-api" }, cn = "dropdown-item", hn = "active", un = '[data-spy="scroll"]', fn = ".active", dn = ".nav, .list-group", gn = ".nav-link", _n = ".nav-item", mn = ".list-group-item", pn = ".dropdown", vn = ".dropdown-item", yn = ".dropdown-toggle", En = "offset", Cn = "position", Tn = function () { function n(t, e) { var n = this; this._element = t, this._scrollElement = "BODY" === t.tagName ? window : t, this._config = this._getConfig(e), this._selector = this._config.target + " " + gn + "," + this._config.target + " " + mn + "," + this._config.target + " " + vn, this._offsets = [], this._targets = [], this._activeTarget = null, this._scrollHeight = 0, tn(this._scrollElement).on(ln.SCROLL, function (t) { return n._process(t) }), this.refresh(), this._process() } var t = n.prototype; return t.refresh = function () { var e = this, t = this._scrollElement === this._scrollElement.window ? En : Cn, r = "auto" === this._config.method ? t : this._config.method, o = r === Cn ? this._getScrollTop() : 0; this._offsets = [], this._targets = [], this._scrollHeight = this._getScrollHeight(), [].slice.call(document.querySelectorAll(this._selector)).map(function (t) { var e, n = Fn.getSelectorFromElement(t); if (n && (e = document.querySelector(n)), e) { var i = e.getBoundingClientRect(); if (i.width || i.height) return [tn(e)[r]().top + o, n] } return null }).filter(function (t) { return t }).sort(function (t, e) { return t[0] - e[0] }).forEach(function (t) { e._offsets.push(t[0]), e._targets.push(t[1]) }) }, t.dispose = function () { tn.removeData(this._element, nn), tn(this._scrollElement).off(rn), this._element = null, this._scrollElement = null, this._config = null, this._selector = null, this._offsets = null, this._targets = null, this._activeTarget = null, this._scrollHeight = null }, t._getConfig = function (t) { if ("string" != typeof (t = l({}, sn, "object" == typeof t && t ? t : {})).target) { var e = tn(t.target).attr("id"); e || (e = Fn.getUID(en), tn(t.target).attr("id", e)), t.target = "#" + e } return Fn.typeCheckConfig(en, t, an), t }, t._getScrollTop = function () { return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop }, t._getScrollHeight = function () { return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight) }, t._getOffsetHeight = function () { return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height }, t._process = function () { var t = this._getScrollTop() + this._config.offset, e = this._getScrollHeight(), n = this._config.offset + e - this._getOffsetHeight(); if (this._scrollHeight !== e && this.refresh(), n <= t) { var i = this._targets[this._targets.length - 1]; this._activeTarget !== i && this._activate(i) } else { if (this._activeTarget && t < this._offsets[0] && 0 < this._offsets[0]) return this._activeTarget = null, void this._clear(); for (var r = this._offsets.length; r--;) { this._activeTarget !== this._targets[r] && t >= this._offsets[r] && ("undefined" == typeof this._offsets[r + 1] || t < this._offsets[r + 1]) && this._activate(this._targets[r]) } } }, t._activate = function (e) { this._activeTarget = e, this._clear(); var t = this._selector.split(","); t = t.map(function (t) { return t + '[data-target="' + e + '"],' + t + '[href="' + e + '"]' }); var n = tn([].slice.call(document.querySelectorAll(t.join(",")))); n.hasClass(cn) ? (n.closest(pn).find(yn).addClass(hn), n.addClass(hn)) : (n.addClass(hn), n.parents(dn).prev(gn + ", " + mn).addClass(hn), n.parents(dn).prev(_n).children(gn).addClass(hn)), tn(this._scrollElement).trigger(ln.ACTIVATE, { relatedTarget: e }) }, t._clear = function () { var t = [].slice.call(document.querySelectorAll(this._selector)); tn(t).filter(fn).removeClass(hn) }, n._jQueryInterface = function (e) { return this.each(function () { var t = tn(this).data(nn); if (t || (t = new n(this, "object" == typeof e && e), tn(this).data(nn, t)), "string" == typeof e) { if ("undefined" == typeof t[e]) throw new TypeError('No method named "' + e + '"'); t[e]() } }) }, s(n, null, [{ key: "VERSION", get: function () { return "4.1.3" } }, { key: "Default", get: function () { return sn } }]), n }(), tn(window).on(ln.LOAD_DATA_API, function () { for (var t = [].slice.call(document.querySelectorAll(un)), e = t.length; e--;) { var n = tn(t[e]); Tn._jQueryInterface.call(n, n.data()) } }), tn.fn[en] = Tn._jQueryInterface, tn.fn[en].Constructor = Tn, tn.fn[en].noConflict = function () { return tn.fn[en] = on, Tn._jQueryInterface }, Tn), Gn = (In = "." + (Sn = "bs.tab"), An = (bn = e).fn.tab, Dn = { HIDE: "hide" + In, HIDDEN: "hidden" + In, SHOW: "show" + In, SHOWN: "shown" + In, CLICK_DATA_API: "click" + In + ".data-api" }, wn = "dropdown-menu", Nn = "active", On = "disabled", kn = "fade", Pn = "show", jn = ".dropdown", Hn = ".nav, .list-group", Ln = ".active", Rn = "> li > .active", xn = '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]', Wn = ".dropdown-toggle", Un = "> .dropdown-menu .active", qn = function () { function i(t) { this._element = t } var t = i.prototype; return t.show = function () { var n = this; if (!(this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && bn(this._element).hasClass(Nn) || bn(this._element).hasClass(On))) { var t, i, e = bn(this._element).closest(Hn)[0], r = Fn.getSelectorFromElement(this._element); if (e) { var o = "UL" === e.nodeName ? Rn : Ln; i = (i = bn.makeArray(bn(e).find(o)))[i.length - 1] } var s = bn.Event(Dn.HIDE, { relatedTarget: this._element }), a = bn.Event(Dn.SHOW, { relatedTarget: i }); if (i && bn(i).trigger(s), bn(this._element).trigger(a), !a.isDefaultPrevented() && !s.isDefaultPrevented()) { r && (t = document.querySelector(r)), this._activate(this._element, e); var l = function () { var t = bn.Event(Dn.HIDDEN, { relatedTarget: n._element }), e = bn.Event(Dn.SHOWN, { relatedTarget: i }); bn(i).trigger(t), bn(n._element).trigger(e) }; t ? this._activate(t, t.parentNode, l) : l() } } }, t.dispose = function () { bn.removeData(this._element, Sn), this._element = null }, t._activate = function (t, e, n) { var i = this, r = ("UL" === e.nodeName ? bn(e).find(Rn) : bn(e).children(Ln))[0], o = n && r && bn(r).hasClass(kn), s = function () { return i._transitionComplete(t, r, n) }; if (r && o) { var a = Fn.getTransitionDurationFromElement(r); bn(r).one(Fn.TRANSITION_END, s).emulateTransitionEnd(a) } else s() }, t._transitionComplete = function (t, e, n) { if (e) { bn(e).removeClass(Pn + " " + Nn); var i = bn(e.parentNode).find(Un)[0]; i && bn(i).removeClass(Nn), "tab" === e.getAttribute("role") && e.setAttribute("aria-selected", !1) } if (bn(t).addClass(Nn), "tab" === t.getAttribute("role") && t.setAttribute("aria-selected", !0), Fn.reflow(t), bn(t).addClass(Pn), t.parentNode && bn(t.parentNode).hasClass(wn)) { var r = bn(t).closest(jn)[0]; if (r) { var o = [].slice.call(r.querySelectorAll(Wn)); bn(o).addClass(Nn) } t.setAttribute("aria-expanded", !0) } n && n() }, i._jQueryInterface = function (n) { return this.each(function () { var t = bn(this), e = t.data(Sn); if (e || (e = new i(this), t.data(Sn, e)), "string" == typeof n) { if ("undefined" == typeof e[n]) throw new TypeError('No method named "' + n + '"'); e[n]() } }) }, s(i, null, [{ key: "VERSION", get: function () { return "4.1.3" } }]), i }(), bn(document).on(Dn.CLICK_DATA_API, xn, function (t) { t.preventDefault(), qn._jQueryInterface.call(bn(this), "show") }), bn.fn.tab = qn._jQueryInterface, bn.fn.tab.Constructor = qn, bn.fn.tab.noConflict = function () { return bn.fn.tab = An, qn._jQueryInterface }, qn); !function (t) { if ("undefined" == typeof t) throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript."); var e = t.fn.jquery.split(" ")[0].split("."); if (e[0] < 2 && e[1] < 9 || 1 === e[0] && 9 === e[1] && e[2] < 1 || 4 <= e[0]) throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0") }(e), t.Util = Fn, t.Alert = Kn, t.Button = Mn, t.Carousel = Qn, t.Collapse = Bn, t.Dropdown = Vn, t.Modal = Yn, t.Popover = Jn, t.Scrollspy = Zn, t.Tab = Gn, t.Tooltip = zn, Object.defineProperty(t, "__esModule", { value: !0 }) }); + //# sourceMappingURL=bootstrap.min.js.map \ No newline at end of file diff --git a/src/files/static/web/static/js/vendor/jquery-3.3.1.js b/src/files/static/web/static/js/vendor/jquery-3.3.1.js new file mode 100644 index 0000000..9a104d6 --- /dev/null +++ b/src/files/static/web/static/js/vendor/jquery-3.3.1.js @@ -0,0 +1,4313 @@ +/*! jQuery v3.3.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector | (c) JS Foundation and other contributors | jquery.org/license */ +!(function (e, t) { + "use strict"; + "object" == typeof module && "object" == typeof module.exports + ? (module.exports = e.document + ? t(e, !0) + : function (e) { + if (!e.document) + throw new Error("jQuery requires a window with a document"); + return t(e); + }) + : t(e); +})("undefined" != typeof window ? window : this, function (e, t) { + "use strict"; + var n = [], + r = e.document, + i = Object.getPrototypeOf, + o = n.slice, + a = n.concat, + u = n.push, + s = n.indexOf, + l = {}, + c = l.toString, + f = l.hasOwnProperty, + d = f.toString, + p = d.call(Object), + h = {}, + g = function e(t) { + return "function" == typeof t && "number" != typeof t.nodeType; + }, + v = function e(t) { + return null != t && t === t.window; + }, + y = { type: !0, src: !0, noModule: !0 }; + function m(e, t, n) { + var i, + o = (t = t || r).createElement("script"); + if (((o.text = e), n)) for (i in y) n[i] && (o[i] = n[i]); + t.head.appendChild(o).parentNode.removeChild(o); + } + function b(e) { + return null == e + ? e + "" + : "object" == typeof e || "function" == typeof e + ? l[c.call(e)] || "object" + : typeof e; + } + var x = + "3.3.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector", + w = function (e, t) { + return new w.fn.init(e, t); + }, + C = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; + (w.fn = w.prototype = { + jquery: x, + constructor: w, + length: 0, + toArray: function () { + return o.call(this); + }, + get: function (e) { + return null == e ? o.call(this) : e < 0 ? this[e + this.length] : this[e]; + }, + pushStack: function (e) { + var t = w.merge(this.constructor(), e); + return (t.prevObject = this), t; + }, + each: function (e) { + return w.each(this, e); + }, + map: function (e) { + return this.pushStack( + w.map(this, function (t, n) { + return e.call(t, n, t); + }) + ); + }, + slice: function () { + return this.pushStack(o.apply(this, arguments)); + }, + first: function () { + return this.eq(0); + }, + last: function () { + return this.eq(-1); + }, + eq: function (e) { + var t = this.length, + n = +e + (e < 0 ? t : 0); + return this.pushStack(n >= 0 && n < t ? [this[n]] : []); + }, + end: function () { + return this.prevObject || this.constructor(); + }, + push: u, + sort: n.sort, + splice: n.splice + }), + (w.extend = w.fn.extend = function () { + var e, + t, + n, + r, + i, + o, + a = arguments[0] || {}, + u = 1, + s = arguments.length, + l = !1; + for ( + "boolean" == typeof a && ((l = a), (a = arguments[u] || {}), u++), + "object" == typeof a || g(a) || (a = {}), + u === s && ((a = this), u--); + u < s; + u++ + ) + if (null != (e = arguments[u])) + for (t in e) + (n = a[t]), + a !== (r = e[t]) && + (l && r && (w.isPlainObject(r) || (i = Array.isArray(r))) + ? (i + ? ((i = !1), (o = n && Array.isArray(n) ? n : [])) + : (o = n && w.isPlainObject(n) ? n : {}), + (a[t] = w.extend(l, o, r))) + : void 0 !== r && (a[t] = r)); + return a; + }), + w.extend({ + expando: "jQuery" + (x + Math.random()).replace(/\D/g, ""), + isReady: !0, + error: function (e) { + throw new Error(e); + }, + noop: function () { }, + isPlainObject: function (e) { + var t, n; + return ( + !(!e || "[object Object]" !== c.call(e)) && + (!(t = i(e)) || + ("function" == + typeof (n = f.call(t, "constructor") && t.constructor) && + d.call(n) === p)) + ); + }, + isEmptyObject: function (e) { + var t; + for (t in e) return !1; + return !0; + }, + globalEval: function (e) { + m(e); + }, + each: function (e, t) { + var n, + r = 0; + if (T(e)) { + for (n = e.length; r < n; r++) + if (!1 === t.call(e[r], r, e[r])) break; + } else for (r in e) if (!1 === t.call(e[r], r, e[r])) break; + return e; + }, + trim: function (e) { + return null == e ? "" : (e + "").replace(C, ""); + }, + makeArray: function (e, t) { + var n = t || []; + return ( + null != e && + (T(Object(e)) + ? w.merge(n, "string" == typeof e ? [e] : e) + : u.call(n, e)), + n + ); + }, + inArray: function (e, t, n) { + return null == t ? -1 : s.call(t, e, n); + }, + merge: function (e, t) { + for (var n = +t.length, r = 0, i = e.length; r < n; r++) e[i++] = t[r]; + return (e.length = i), e; + }, + grep: function (e, t, n) { + for (var r, i = [], o = 0, a = e.length, u = !n; o < a; o++) + (r = !t(e[o], o)) !== u && i.push(e[o]); + return i; + }, + map: function (e, t, n) { + var r, + i, + o = 0, + u = []; + if (T(e)) + for (r = e.length; o < r; o++) + null != (i = t(e[o], o, n)) && u.push(i); + else for (o in e) null != (i = t(e[o], o, n)) && u.push(i); + return a.apply([], u); + }, + guid: 1, + support: h + }), + "function" == typeof Symbol && (w.fn[Symbol.iterator] = n[Symbol.iterator]), + w.each( + "Boolean Number String Function Array Date RegExp Object Error Symbol".split( + " " + ), + function (e, t) { + l["[object " + t + "]"] = t.toLowerCase(); + } + ); + function T(e) { + var t = !!e && "length" in e && e.length, + n = b(e); + return ( + !g(e) && + !v(e) && + ("array" === n || + 0 === t || + ("number" == typeof t && t > 0 && t - 1 in e)) + ); + } + var E = (function (e) { + var t, + n, + r, + i, + o, + a, + u, + s, + l, + c, + f, + d, + p, + h, + g, + v, + y, + m, + b, + x = "sizzle" + 1 * new Date(), + w = e.document, + C = 0, + T = 0, + E = ae(), + N = ae(), + k = ae(), + A = function (e, t) { + return e === t && (f = !0), 0; + }, + D = {}.hasOwnProperty, + S = [], + L = S.pop, + j = S.push, + q = S.push, + O = S.slice, + P = function (e, t) { + for (var n = 0, r = e.length; n < r; n++) if (e[n] === t) return n; + return -1; + }, + H = + "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", + I = "[\\x20\\t\\r\\n\\f]", + R = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", + B = + "\\[" + + I + + "*(" + + R + + ")(?:" + + I + + "*([*^$|!~]?=)" + + I + + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + + R + + "))|)" + + I + + "*\\]", + M = + ":(" + + R + + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + + B + + ")*)|.*)\\)|)", + W = new RegExp(I + "+", "g"), + $ = new RegExp("^" + I + "+|((?:^|[^\\\\])(?:\\\\.)*)" + I + "+$", "g"), + F = new RegExp("^" + I + "*," + I + "*"), + z = new RegExp("^" + I + "*([>+~]|" + I + ")" + I + "*"), + _ = new RegExp("=" + I + "*([^\\]'\"]*?)" + I + "*\\]", "g"), + U = new RegExp(M), + V = new RegExp("^" + R + "$"), + X = { + ID: new RegExp("^#(" + R + ")"), + CLASS: new RegExp("^\\.(" + R + ")"), + TAG: new RegExp("^(" + R + "|[*])"), + ATTR: new RegExp("^" + B), + PSEUDO: new RegExp("^" + M), + CHILD: new RegExp( + "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + + I + + "*(even|odd|(([+-]|)(\\d*)n|)" + + I + + "*(?:([+-]|)" + + I + + "*(\\d+)|))" + + I + + "*\\)|)", + "i" + ), + bool: new RegExp("^(?:" + H + ")$", "i"), + needsContext: new RegExp( + "^" + + I + + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + + I + + "*((?:-\\d)?\\d*)" + + I + + "*\\)|)(?=[^-]|$)", + "i" + ) + }, + Q = /^(?:input|select|textarea|button)$/i, + Y = /^h\d$/i, + G = /^[^{]+\{\s*\[native \w/, + K = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + J = /[+~]/, + Z = new RegExp("\\\\([\\da-f]{1,6}" + I + "?|(" + I + ")|.)", "ig"), + ee = function (e, t, n) { + var r = "0x" + t - 65536; + return r !== r || n + ? t + : r < 0 + ? String.fromCharCode(r + 65536) + : String.fromCharCode((r >> 10) | 55296, (1023 & r) | 56320); + }, + te = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, + ne = function (e, t) { + return t + ? "\0" === e + ? "\ufffd" + : e.slice(0, -1) + + "\\" + + e.charCodeAt(e.length - 1).toString(16) + + " " + : "\\" + e; + }, + re = function () { + d(); + }, + ie = me( + function (e) { + return !0 === e.disabled && ("form" in e || "label" in e); + }, + { dir: "parentNode", next: "legend" } + ); + try { + q.apply((S = O.call(w.childNodes)), w.childNodes), + S[w.childNodes.length].nodeType; + } catch (e) { + q = { + apply: S.length + ? function (e, t) { + j.apply(e, O.call(t)); + } + : function (e, t) { + var n = e.length, + r = 0; + while ((e[n++] = t[r++])); + e.length = n - 1; + } + }; + } + function oe(e, t, r, i) { + var o, + u, + l, + c, + f, + h, + y, + m = t && t.ownerDocument, + C = t ? t.nodeType : 9; + if ( + ((r = r || []), + "string" != typeof e || !e || (1 !== C && 9 !== C && 11 !== C)) + ) + return r; + if ( + !i && + ((t ? t.ownerDocument || t : w) !== p && d(t), (t = t || p), g) + ) { + if (11 !== C && (f = K.exec(e))) + if ((o = f[1])) { + if (9 === C) { + if (!(l = t.getElementById(o))) return r; + if (l.id === o) return r.push(l), r; + } else if (m && (l = m.getElementById(o)) && b(t, l) && l.id === o) + return r.push(l), r; + } else { + if (f[2]) return q.apply(r, t.getElementsByTagName(e)), r; + if ( + (o = f[3]) && + n.getElementsByClassName && + t.getElementsByClassName + ) + return q.apply(r, t.getElementsByClassName(o)), r; + } + if (n.qsa && !k[e + " "] && (!v || !v.test(e))) { + if (1 !== C) (m = t), (y = e); + else if ("object" !== t.nodeName.toLowerCase()) { + (c = t.getAttribute("id")) + ? (c = c.replace(te, ne)) + : t.setAttribute("id", (c = x)), + (u = (h = a(e)).length); + while (u--) h[u] = "#" + c + " " + ye(h[u]); + (y = h.join(",")), (m = (J.test(e) && ge(t.parentNode)) || t); + } + if (y) + try { + return q.apply(r, m.querySelectorAll(y)), r; + } catch (e) { + } finally { + c === x && t.removeAttribute("id"); + } + } + } + return s(e.replace($, "$1"), t, r, i); + } + function ae() { + var e = []; + function t(n, i) { + return ( + e.push(n + " ") > r.cacheLength && delete t[e.shift()], + (t[n + " "] = i) + ); + } + return t; + } + function ue(e) { + return (e[x] = !0), e; + } + function se(e) { + var t = p.createElement("fieldset"); + try { + return !!e(t); + } catch (e) { + return !1; + } finally { + t.parentNode && t.parentNode.removeChild(t), (t = null); + } + } + function le(e, t) { + var n = e.split("|"), + i = n.length; + while (i--) r.attrHandle[n[i]] = t; + } + function ce(e, t) { + var n = t && e, + r = + n && + 1 === e.nodeType && + 1 === t.nodeType && + e.sourceIndex - t.sourceIndex; + if (r) return r; + if (n) while ((n = n.nextSibling)) if (n === t) return -1; + return e ? 1 : -1; + } + function fe(e) { + return function (t) { + return "input" === t.nodeName.toLowerCase() && t.type === e; + }; + } + function de(e) { + return function (t) { + var n = t.nodeName.toLowerCase(); + return ("input" === n || "button" === n) && t.type === e; + }; + } + function pe(e) { + return function (t) { + return "form" in t + ? t.parentNode && !1 === t.disabled + ? "label" in t + ? "label" in t.parentNode + ? t.parentNode.disabled === e + : t.disabled === e + : t.isDisabled === e || (t.isDisabled !== !e && ie(t) === e) + : t.disabled === e + : "label" in t && t.disabled === e; + }; + } + function he(e) { + return ue(function (t) { + return ( + (t = +t), + ue(function (n, r) { + var i, + o = e([], n.length, t), + a = o.length; + while (a--) n[(i = o[a])] && (n[i] = !(r[i] = n[i])); + }) + ); + }); + } + function ge(e) { + return e && "undefined" != typeof e.getElementsByTagName && e; + } + (n = oe.support = {}), + (o = oe.isXML = function (e) { + var t = e && (e.ownerDocument || e).documentElement; + return !!t && "HTML" !== t.nodeName; + }), + (d = oe.setDocument = function (e) { + var t, + i, + a = e ? e.ownerDocument || e : w; + return a !== p && 9 === a.nodeType && a.documentElement + ? ((p = a), + (h = p.documentElement), + (g = !o(p)), + w !== p && + (i = p.defaultView) && + i.top !== i && + (i.addEventListener + ? i.addEventListener("unload", re, !1) + : i.attachEvent && i.attachEvent("onunload", re)), + (n.attributes = se(function (e) { + return (e.className = "i"), !e.getAttribute("className"); + })), + (n.getElementsByTagName = se(function (e) { + return ( + e.appendChild(p.createComment("")), + !e.getElementsByTagName("*").length + ); + })), + (n.getElementsByClassName = G.test(p.getElementsByClassName)), + (n.getById = se(function (e) { + return ( + (h.appendChild(e).id = x), + !p.getElementsByName || !p.getElementsByName(x).length + ); + })), + n.getById + ? ((r.filter.ID = function (e) { + var t = e.replace(Z, ee); + return function (e) { + return e.getAttribute("id") === t; + }; + }), + (r.find.ID = function (e, t) { + if ("undefined" != typeof t.getElementById && g) { + var n = t.getElementById(e); + return n ? [n] : []; + } + })) + : ((r.filter.ID = function (e) { + var t = e.replace(Z, ee); + return function (e) { + var n = + "undefined" != typeof e.getAttributeNode && + e.getAttributeNode("id"); + return n && n.value === t; + }; + }), + (r.find.ID = function (e, t) { + if ("undefined" != typeof t.getElementById && g) { + var n, + r, + i, + o = t.getElementById(e); + if (o) { + if ((n = o.getAttributeNode("id")) && n.value === e) + return [o]; + (i = t.getElementsByName(e)), (r = 0); + while ((o = i[r++])) + if ((n = o.getAttributeNode("id")) && n.value === e) + return [o]; + } + return []; + } + })), + (r.find.TAG = n.getElementsByTagName + ? function (e, t) { + return "undefined" != typeof t.getElementsByTagName + ? t.getElementsByTagName(e) + : n.qsa + ? t.querySelectorAll(e) + : void 0; + } + : function (e, t) { + var n, + r = [], + i = 0, + o = t.getElementsByTagName(e); + if ("*" === e) { + while ((n = o[i++])) 1 === n.nodeType && r.push(n); + return r; + } + return o; + }), + (r.find.CLASS = + n.getElementsByClassName && + function (e, t) { + if ("undefined" != typeof t.getElementsByClassName && g) + return t.getElementsByClassName(e); + }), + (y = []), + (v = []), + (n.qsa = G.test(p.querySelectorAll)) && + (se(function (e) { + (h.appendChild(e).innerHTML = + ""), + e.querySelectorAll("[msallowcapture^='']").length && + v.push("[*^$]=" + I + "*(?:''|\"\")"), + e.querySelectorAll("[selected]").length || + v.push("\\[" + I + "*(?:value|" + H + ")"), + e.querySelectorAll("[id~=" + x + "-]").length || v.push("~="), + e.querySelectorAll(":checked").length || v.push(":checked"), + e.querySelectorAll("a#" + x + "+*").length || + v.push(".#.+[+~]"); + }), + se(function (e) { + e.innerHTML = + ""; + var t = p.createElement("input"); + t.setAttribute("type", "hidden"), + e.appendChild(t).setAttribute("name", "D"), + e.querySelectorAll("[name=d]").length && + v.push("name" + I + "*[*^$|!~]?="), + 2 !== e.querySelectorAll(":enabled").length && + v.push(":enabled", ":disabled"), + (h.appendChild(e).disabled = !0), + 2 !== e.querySelectorAll(":disabled").length && + v.push(":enabled", ":disabled"), + e.querySelectorAll("*,:x"), + v.push(",.*:"); + })), + (n.matchesSelector = G.test( + (m = + h.matches || + h.webkitMatchesSelector || + h.mozMatchesSelector || + h.oMatchesSelector || + h.msMatchesSelector) + )) && + se(function (e) { + (n.disconnectedMatch = m.call(e, "*")), + m.call(e, "[s!='']:x"), + y.push("!=", M); + }), + (v = v.length && new RegExp(v.join("|"))), + (y = y.length && new RegExp(y.join("|"))), + (t = G.test(h.compareDocumentPosition)), + (b = + t || G.test(h.contains) + ? function (e, t) { + var n = 9 === e.nodeType ? e.documentElement : e, + r = t && t.parentNode; + return ( + e === r || + !( + !r || + 1 !== r.nodeType || + !(n.contains + ? n.contains(r) + : e.compareDocumentPosition && + 16 & e.compareDocumentPosition(r)) + ) + ); + } + : function (e, t) { + if (t) while ((t = t.parentNode)) if (t === e) return !0; + return !1; + }), + (A = t + ? function (e, t) { + if (e === t) return (f = !0), 0; + var r = + !e.compareDocumentPosition - !t.compareDocumentPosition; + return ( + r || + (1 & + (r = + (e.ownerDocument || e) === (t.ownerDocument || t) + ? e.compareDocumentPosition(t) + : 1) || + (!n.sortDetached && t.compareDocumentPosition(e) === r) + ? e === p || (e.ownerDocument === w && b(w, e)) + ? -1 + : t === p || (t.ownerDocument === w && b(w, t)) + ? 1 + : c + ? P(c, e) - P(c, t) + : 0 + : 4 & r + ? -1 + : 1) + ); + } + : function (e, t) { + if (e === t) return (f = !0), 0; + var n, + r = 0, + i = e.parentNode, + o = t.parentNode, + a = [e], + u = [t]; + if (!i || !o) + return e === p + ? -1 + : t === p + ? 1 + : i + ? -1 + : o + ? 1 + : c + ? P(c, e) - P(c, t) + : 0; + if (i === o) return ce(e, t); + n = e; + while ((n = n.parentNode)) a.unshift(n); + n = t; + while ((n = n.parentNode)) u.unshift(n); + while (a[r] === u[r]) r++; + return r + ? ce(a[r], u[r]) + : a[r] === w + ? -1 + : u[r] === w + ? 1 + : 0; + }), + p) + : p; + }), + (oe.matches = function (e, t) { + return oe(e, null, null, t); + }), + (oe.matchesSelector = function (e, t) { + if ( + ((e.ownerDocument || e) !== p && d(e), + (t = t.replace(_, "='$1']")), + n.matchesSelector && + g && + !k[t + " "] && + (!y || !y.test(t)) && + (!v || !v.test(t))) + ) + try { + var r = m.call(e, t); + if ( + r || + n.disconnectedMatch || + (e.document && 11 !== e.document.nodeType) + ) + return r; + } catch (e) { } + return oe(t, p, null, [e]).length > 0; + }), + (oe.contains = function (e, t) { + return (e.ownerDocument || e) !== p && d(e), b(e, t); + }), + (oe.attr = function (e, t) { + (e.ownerDocument || e) !== p && d(e); + var i = r.attrHandle[t.toLowerCase()], + o = i && D.call(r.attrHandle, t.toLowerCase()) ? i(e, t, !g) : void 0; + return void 0 !== o + ? o + : n.attributes || !g + ? e.getAttribute(t) + : (o = e.getAttributeNode(t)) && o.specified + ? o.value + : null; + }), + (oe.escape = function (e) { + return (e + "").replace(te, ne); + }), + (oe.error = function (e) { + throw new Error("Syntax error, unrecognized expression: " + e); + }), + (oe.uniqueSort = function (e) { + var t, + r = [], + i = 0, + o = 0; + if ( + ((f = !n.detectDuplicates), + (c = !n.sortStable && e.slice(0)), + e.sort(A), + f) + ) { + while ((t = e[o++])) t === e[o] && (i = r.push(o)); + while (i--) e.splice(r[i], 1); + } + return (c = null), e; + }), + (i = oe.getText = function (e) { + var t, + n = "", + r = 0, + o = e.nodeType; + if (o) { + if (1 === o || 9 === o || 11 === o) { + if ("string" == typeof e.textContent) return e.textContent; + for (e = e.firstChild; e; e = e.nextSibling) n += i(e); + } else if (3 === o || 4 === o) return e.nodeValue; + } else while ((t = e[r++])) n += i(t); + return n; + }), + ((r = oe.selectors = { + cacheLength: 50, + createPseudo: ue, + match: X, + attrHandle: {}, + find: {}, + relative: { + ">": { dir: "parentNode", first: !0 }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: !0 }, + "~": { dir: "previousSibling" } + }, + preFilter: { + ATTR: function (e) { + return ( + (e[1] = e[1].replace(Z, ee)), + (e[3] = (e[3] || e[4] || e[5] || "").replace(Z, ee)), + "~=" === e[2] && (e[3] = " " + e[3] + " "), + e.slice(0, 4) + ); + }, + CHILD: function (e) { + return ( + (e[1] = e[1].toLowerCase()), + "nth" === e[1].slice(0, 3) + ? (e[3] || oe.error(e[0]), + (e[4] = +(e[4] + ? e[5] + (e[6] || 1) + : 2 * ("even" === e[3] || "odd" === e[3]))), + (e[5] = +(e[7] + e[8] || "odd" === e[3]))) + : e[3] && oe.error(e[0]), + e + ); + }, + PSEUDO: function (e) { + var t, + n = !e[6] && e[2]; + return X.CHILD.test(e[0]) + ? null + : (e[3] + ? (e[2] = e[4] || e[5] || "") + : n && + U.test(n) && + (t = a(n, !0)) && + (t = n.indexOf(")", n.length - t) - n.length) && + ((e[0] = e[0].slice(0, t)), (e[2] = n.slice(0, t))), + e.slice(0, 3)); + } + }, + filter: { + TAG: function (e) { + var t = e.replace(Z, ee).toLowerCase(); + return "*" === e + ? function () { + return !0; + } + : function (e) { + return e.nodeName && e.nodeName.toLowerCase() === t; + }; + }, + CLASS: function (e) { + var t = E[e + " "]; + return ( + t || + ((t = new RegExp("(^|" + I + ")" + e + "(" + I + "|$)")) && + E(e, function (e) { + return t.test( + ("string" == typeof e.className && e.className) || + ("undefined" != typeof e.getAttribute && + e.getAttribute("class")) || + "" + ); + })) + ); + }, + ATTR: function (e, t, n) { + return function (r) { + var i = oe.attr(r, e); + return null == i + ? "!=" === t + : !t || + ((i += ""), + "=" === t + ? i === n + : "!=" === t + ? i !== n + : "^=" === t + ? n && 0 === i.indexOf(n) + : "*=" === t + ? n && i.indexOf(n) > -1 + : "$=" === t + ? n && i.slice(-n.length) === n + : "~=" === t + ? (" " + i.replace(W, " ") + " ").indexOf(n) > + -1 + : "|=" === t && + (i === n || + i.slice(0, n.length + 1) === n + "-")); + }; + }, + CHILD: function (e, t, n, r, i) { + var o = "nth" !== e.slice(0, 3), + a = "last" !== e.slice(-4), + u = "of-type" === t; + return 1 === r && 0 === i + ? function (e) { + return !!e.parentNode; + } + : function (t, n, s) { + var l, + c, + f, + d, + p, + h, + g = o !== a ? "nextSibling" : "previousSibling", + v = t.parentNode, + y = u && t.nodeName.toLowerCase(), + m = !s && !u, + b = !1; + if (v) { + if (o) { + while (g) { + d = t; + while ((d = d[g])) + if ( + u + ? d.nodeName.toLowerCase() === y + : 1 === d.nodeType + ) + return !1; + h = g = "only" === e && !h && "nextSibling"; + } + return !0; + } + if (((h = [a ? v.firstChild : v.lastChild]), a && m)) { + (b = + (p = + (l = + (c = + (f = (d = v)[x] || (d[x] = {}))[d.uniqueID] || + (f[d.uniqueID] = {}))[e] || [])[0] === C && + l[1]) && l[2]), + (d = p && v.childNodes[p]); + while ((d = (++p && d && d[g]) || (b = p = 0) || h.pop())) + if (1 === d.nodeType && ++b && d === t) { + c[e] = [C, p, b]; + break; + } + } else if ( + (m && + (b = p = + (l = + (c = + (f = (d = t)[x] || (d[x] = {}))[d.uniqueID] || + (f[d.uniqueID] = {}))[e] || [])[0] === C && l[1]), + !1 === b) + ) + while ((d = (++p && d && d[g]) || (b = p = 0) || h.pop())) + if ( + (u + ? d.nodeName.toLowerCase() === y + : 1 === d.nodeType) && + ++b && + (m && + ((c = + (f = d[x] || (d[x] = {}))[d.uniqueID] || + (f[d.uniqueID] = {}))[e] = [C, b]), + d === t) + ) + break; + return (b -= i) === r || (b % r == 0 && b / r >= 0); + } + }; + }, + PSEUDO: function (e, t) { + var n, + i = + r.pseudos[e] || + r.setFilters[e.toLowerCase()] || + oe.error("unsupported pseudo: " + e); + return i[x] + ? i(t) + : i.length > 1 + ? ((n = [e, e, "", t]), + r.setFilters.hasOwnProperty(e.toLowerCase()) + ? ue(function (e, n) { + var r, + o = i(e, t), + a = o.length; + while (a--) e[(r = P(e, o[a]))] = !(n[r] = o[a]); + }) + : function (e) { + return i(e, 0, n); + }) + : i; + } + }, + pseudos: { + not: ue(function (e) { + var t = [], + n = [], + r = u(e.replace($, "$1")); + return r[x] + ? ue(function (e, t, n, i) { + var o, + a = r(e, null, i, []), + u = e.length; + while (u--) (o = a[u]) && (e[u] = !(t[u] = o)); + }) + : function (e, i, o) { + return (t[0] = e), r(t, null, o, n), (t[0] = null), !n.pop(); + }; + }), + has: ue(function (e) { + return function (t) { + return oe(e, t).length > 0; + }; + }), + contains: ue(function (e) { + return ( + (e = e.replace(Z, ee)), + function (t) { + return (t.textContent || t.innerText || i(t)).indexOf(e) > -1; + } + ); + }), + lang: ue(function (e) { + return ( + V.test(e || "") || oe.error("unsupported lang: " + e), + (e = e.replace(Z, ee).toLowerCase()), + function (t) { + var n; + do { + if ( + (n = g + ? t.lang + : t.getAttribute("xml:lang") || t.getAttribute("lang")) + ) + return ( + (n = n.toLowerCase()) === e || 0 === n.indexOf(e + "-") + ); + } while ((t = t.parentNode) && 1 === t.nodeType); + return !1; + } + ); + }), + target: function (t) { + var n = e.location && e.location.hash; + return n && n.slice(1) === t.id; + }, + root: function (e) { + return e === h; + }, + focus: function (e) { + return ( + e === p.activeElement && + (!p.hasFocus || p.hasFocus()) && + !!(e.type || e.href || ~e.tabIndex) + ); + }, + enabled: pe(!1), + disabled: pe(!0), + checked: function (e) { + var t = e.nodeName.toLowerCase(); + return ( + ("input" === t && !!e.checked) || ("option" === t && !!e.selected) + ); + }, + selected: function (e) { + return ( + e.parentNode && e.parentNode.selectedIndex, !0 === e.selected + ); + }, + empty: function (e) { + for (e = e.firstChild; e; e = e.nextSibling) + if (e.nodeType < 6) return !1; + return !0; + }, + parent: function (e) { + return !r.pseudos.empty(e); + }, + header: function (e) { + return Y.test(e.nodeName); + }, + input: function (e) { + return Q.test(e.nodeName); + }, + button: function (e) { + var t = e.nodeName.toLowerCase(); + return ("input" === t && "button" === e.type) || "button" === t; + }, + text: function (e) { + var t; + return ( + "input" === e.nodeName.toLowerCase() && + "text" === e.type && + (null == (t = e.getAttribute("type")) || + "text" === t.toLowerCase()) + ); + }, + first: he(function () { + return [0]; + }), + last: he(function (e, t) { + return [t - 1]; + }), + eq: he(function (e, t, n) { + return [n < 0 ? n + t : n]; + }), + even: he(function (e, t) { + for (var n = 0; n < t; n += 2) e.push(n); + return e; + }), + odd: he(function (e, t) { + for (var n = 1; n < t; n += 2) e.push(n); + return e; + }), + lt: he(function (e, t, n) { + for (var r = n < 0 ? n + t : n; --r >= 0;) e.push(r); + return e; + }), + gt: he(function (e, t, n) { + for (var r = n < 0 ? n + t : n; ++r < t;) e.push(r); + return e; + }) + } + }).pseudos.nth = r.pseudos.eq); + for (t in { radio: !0, checkbox: !0, file: !0, password: !0, image: !0 }) + r.pseudos[t] = fe(t); + for (t in { submit: !0, reset: !0 }) r.pseudos[t] = de(t); + function ve() { } + (ve.prototype = r.filters = r.pseudos), + (r.setFilters = new ve()), + (a = oe.tokenize = function (e, t) { + var n, + i, + o, + a, + u, + s, + l, + c = N[e + " "]; + if (c) return t ? 0 : c.slice(0); + (u = e), (s = []), (l = r.preFilter); + while (u) { + (n && !(i = F.exec(u))) || + (i && (u = u.slice(i[0].length) || u), s.push((o = []))), + (n = !1), + (i = z.exec(u)) && + ((n = i.shift()), + o.push({ value: n, type: i[0].replace($, " ") }), + (u = u.slice(n.length))); + for (a in r.filter) + !(i = X[a].exec(u)) || + (l[a] && !(i = l[a](i))) || + ((n = i.shift()), + o.push({ value: n, type: a, matches: i }), + (u = u.slice(n.length))); + if (!n) break; + } + return t ? u.length : u ? oe.error(e) : N(e, s).slice(0); + }); + function ye(e) { + for (var t = 0, n = e.length, r = ""; t < n; t++) r += e[t].value; + return r; + } + function me(e, t, n) { + var r = t.dir, + i = t.next, + o = i || r, + a = n && "parentNode" === o, + u = T++; + return t.first + ? function (t, n, i) { + while ((t = t[r])) if (1 === t.nodeType || a) return e(t, n, i); + return !1; + } + : function (t, n, s) { + var l, + c, + f, + d = [C, u]; + if (s) { + while ((t = t[r])) + if ((1 === t.nodeType || a) && e(t, n, s)) return !0; + } else + while ((t = t[r])) + if (1 === t.nodeType || a) + if ( + ((f = t[x] || (t[x] = {})), + (c = f[t.uniqueID] || (f[t.uniqueID] = {})), + i && i === t.nodeName.toLowerCase()) + ) + t = t[r] || t; + else { + if ((l = c[o]) && l[0] === C && l[1] === u) + return (d[2] = l[2]); + if (((c[o] = d), (d[2] = e(t, n, s)))) return !0; + } + return !1; + }; + } + function be(e) { + return e.length > 1 + ? function (t, n, r) { + var i = e.length; + while (i--) if (!e[i](t, n, r)) return !1; + return !0; + } + : e[0]; + } + function xe(e, t, n) { + for (var r = 0, i = t.length; r < i; r++) oe(e, t[r], n); + return n; + } + function we(e, t, n, r, i) { + for (var o, a = [], u = 0, s = e.length, l = null != t; u < s; u++) + (o = e[u]) && ((n && !n(o, r, i)) || (a.push(o), l && t.push(u))); + return a; + } + function Ce(e, t, n, r, i, o) { + return ( + r && !r[x] && (r = Ce(r)), + i && !i[x] && (i = Ce(i, o)), + ue(function (o, a, u, s) { + var l, + c, + f, + d = [], + p = [], + h = a.length, + g = o || xe(t || "*", u.nodeType ? [u] : u, []), + v = !e || (!o && t) ? g : we(g, d, e, u, s), + y = n ? (i || (o ? e : h || r) ? [] : a) : v; + if ((n && n(v, y, u, s), r)) { + (l = we(y, p)), r(l, [], u, s), (c = l.length); + while (c--) (f = l[c]) && (y[p[c]] = !(v[p[c]] = f)); + } + if (o) { + if (i || e) { + if (i) { + (l = []), (c = y.length); + while (c--) (f = y[c]) && l.push((v[c] = f)); + i(null, (y = []), l, s); + } + c = y.length; + while (c--) + (f = y[c]) && + (l = i ? P(o, f) : d[c]) > -1 && + (o[l] = !(a[l] = f)); + } + } else (y = we(y === a ? y.splice(h, y.length) : y)), i ? i(null, a, y, s) : q.apply(a, y); + }) + ); + } + function Te(e) { + for ( + var t, + n, + i, + o = e.length, + a = r.relative[e[0].type], + u = a || r.relative[" "], + s = a ? 1 : 0, + c = me( + function (e) { + return e === t; + }, + u, + !0 + ), + f = me( + function (e) { + return P(t, e) > -1; + }, + u, + !0 + ), + d = [ + function (e, n, r) { + var i = + (!a && (r || n !== l)) || + ((t = n).nodeType ? c(e, n, r) : f(e, n, r)); + return (t = null), i; + } + ]; + s < o; + s++ + ) + if ((n = r.relative[e[s].type])) d = [me(be(d), n)]; + else { + if ((n = r.filter[e[s].type].apply(null, e[s].matches))[x]) { + for (i = ++s; i < o; i++) if (r.relative[e[i].type]) break; + return Ce( + s > 1 && be(d), + s > 1 && + ye( + e + .slice(0, s - 1) + .concat({ value: " " === e[s - 2].type ? "*" : "" }) + ).replace($, "$1"), + n, + s < i && Te(e.slice(s, i)), + i < o && Te((e = e.slice(i))), + i < o && ye(e) + ); + } + d.push(n); + } + return be(d); + } + function Ee(e, t) { + var n = t.length > 0, + i = e.length > 0, + o = function (o, a, u, s, c) { + var f, + h, + v, + y = 0, + m = "0", + b = o && [], + x = [], + w = l, + T = o || (i && r.find.TAG("*", c)), + E = (C += null == w ? 1 : Math.random() || 0.1), + N = T.length; + for ( + c && (l = a === p || a || c); + m !== N && null != (f = T[m]); + m++ + ) { + if (i && f) { + (h = 0), a || f.ownerDocument === p || (d(f), (u = !g)); + while ((v = e[h++])) + if (v(f, a || p, u)) { + s.push(f); + break; + } + c && (C = E); + } + n && ((f = !v && f) && y-- , o && b.push(f)); + } + if (((y += m), n && m !== y)) { + h = 0; + while ((v = t[h++])) v(b, x, a, u); + if (o) { + if (y > 0) while (m--) b[m] || x[m] || (x[m] = L.call(s)); + x = we(x); + } + q.apply(s, x), + c && !o && x.length > 0 && y + t.length > 1 && oe.uniqueSort(s); + } + return c && ((C = E), (l = w)), b; + }; + return n ? ue(o) : o; + } + return ( + (u = oe.compile = function (e, t) { + var n, + r = [], + i = [], + o = k[e + " "]; + if (!o) { + t || (t = a(e)), (n = t.length); + while (n--) (o = Te(t[n]))[x] ? r.push(o) : i.push(o); + (o = k(e, Ee(i, r))).selector = e; + } + return o; + }), + (s = oe.select = function (e, t, n, i) { + var o, + s, + l, + c, + f, + d = "function" == typeof e && e, + p = !i && a((e = d.selector || e)); + if (((n = n || []), 1 === p.length)) { + if ( + (s = p[0] = p[0].slice(0)).length > 2 && + "ID" === (l = s[0]).type && + 9 === t.nodeType && + g && + r.relative[s[1].type] + ) { + if (!(t = (r.find.ID(l.matches[0].replace(Z, ee), t) || [])[0])) + return n; + d && (t = t.parentNode), (e = e.slice(s.shift().value.length)); + } + o = X.needsContext.test(e) ? 0 : s.length; + while (o--) { + if (((l = s[o]), r.relative[(c = l.type)])) break; + if ( + (f = r.find[c]) && + (i = f( + l.matches[0].replace(Z, ee), + (J.test(s[0].type) && ge(t.parentNode)) || t + )) + ) { + if ((s.splice(o, 1), !(e = i.length && ye(s)))) + return q.apply(n, i), n; + break; + } + } + } + return ( + (d || u(e, p))( + i, + t, + !g, + n, + !t || (J.test(e) && ge(t.parentNode)) || t + ), + n + ); + }), + (n.sortStable = + x + .split("") + .sort(A) + .join("") === x), + (n.detectDuplicates = !!f), + d(), + (n.sortDetached = se(function (e) { + return 1 & e.compareDocumentPosition(p.createElement("fieldset")); + })), + se(function (e) { + return ( + (e.innerHTML = ""), + "#" === e.firstChild.getAttribute("href") + ); + }) || + le("type|href|height|width", function (e, t, n) { + if (!n) return e.getAttribute(t, "type" === t.toLowerCase() ? 1 : 2); + }), + (n.attributes && + se(function (e) { + return ( + (e.innerHTML = ""), + e.firstChild.setAttribute("value", ""), + "" === e.firstChild.getAttribute("value") + ); + })) || + le("value", function (e, t, n) { + if (!n && "input" === e.nodeName.toLowerCase()) return e.defaultValue; + }), + se(function (e) { + return null == e.getAttribute("disabled"); + }) || + le(H, function (e, t, n) { + var r; + if (!n) + return !0 === e[t] + ? t.toLowerCase() + : (r = e.getAttributeNode(t)) && r.specified + ? r.value + : null; + }), + oe + ); + })(e); + (w.find = E), + (w.expr = E.selectors), + (w.expr[":"] = w.expr.pseudos), + (w.uniqueSort = w.unique = E.uniqueSort), + (w.text = E.getText), + (w.isXMLDoc = E.isXML), + (w.contains = E.contains), + (w.escapeSelector = E.escape); + var N = function (e, t, n) { + var r = [], + i = void 0 !== n; + while ((e = e[t]) && 9 !== e.nodeType) + if (1 === e.nodeType) { + if (i && w(e).is(n)) break; + r.push(e); + } + return r; + }, + k = function (e, t) { + for (var n = []; e; e = e.nextSibling) + 1 === e.nodeType && e !== t && n.push(e); + return n; + }, + A = w.expr.match.needsContext; + function D(e, t) { + return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase(); + } + var S = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i; + function L(e, t, n) { + return g(t) + ? w.grep(e, function (e, r) { + return !!t.call(e, r, e) !== n; + }) + : t.nodeType + ? w.grep(e, function (e) { + return (e === t) !== n; + }) + : "string" != typeof t + ? w.grep(e, function (e) { + return s.call(t, e) > -1 !== n; + }) + : w.filter(t, e, n); + } + (w.filter = function (e, t, n) { + var r = t[0]; + return ( + n && (e = ":not(" + e + ")"), + 1 === t.length && 1 === r.nodeType + ? w.find.matchesSelector(r, e) + ? [r] + : [] + : w.find.matches( + e, + w.grep(t, function (e) { + return 1 === e.nodeType; + }) + ) + ); + }), + w.fn.extend({ + find: function (e) { + var t, + n, + r = this.length, + i = this; + if ("string" != typeof e) + return this.pushStack( + w(e).filter(function () { + for (t = 0; t < r; t++) if (w.contains(i[t], this)) return !0; + }) + ); + for (n = this.pushStack([]), t = 0; t < r; t++) w.find(e, i[t], n); + return r > 1 ? w.uniqueSort(n) : n; + }, + filter: function (e) { + return this.pushStack(L(this, e || [], !1)); + }, + not: function (e) { + return this.pushStack(L(this, e || [], !0)); + }, + is: function (e) { + return !!L(this, "string" == typeof e && A.test(e) ? w(e) : e || [], !1) + .length; + } + }); + var j, + q = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/; + ((w.fn.init = function (e, t, n) { + var i, o; + if (!e) return this; + if (((n = n || j), "string" == typeof e)) { + if ( + !(i = + "<" === e[0] && ">" === e[e.length - 1] && e.length >= 3 + ? [null, e, null] + : q.exec(e)) || + (!i[1] && t) + ) + return !t || t.jquery ? (t || n).find(e) : this.constructor(t).find(e); + if (i[1]) { + if ( + ((t = t instanceof w ? t[0] : t), + w.merge( + this, + w.parseHTML(i[1], t && t.nodeType ? t.ownerDocument || t : r, !0) + ), + S.test(i[1]) && w.isPlainObject(t)) + ) + for (i in t) g(this[i]) ? this[i](t[i]) : this.attr(i, t[i]); + return this; + } + return ( + (o = r.getElementById(i[2])) && ((this[0] = o), (this.length = 1)), this + ); + } + return e.nodeType + ? ((this[0] = e), (this.length = 1), this) + : g(e) + ? void 0 !== n.ready + ? n.ready(e) + : e(w) + : w.makeArray(e, this); + }).prototype = w.fn), + (j = w(r)); + var O = /^(?:parents|prev(?:Until|All))/, + P = { children: !0, contents: !0, next: !0, prev: !0 }; + w.fn.extend({ + has: function (e) { + var t = w(e, this), + n = t.length; + return this.filter(function () { + for (var e = 0; e < n; e++) if (w.contains(this, t[e])) return !0; + }); + }, + closest: function (e, t) { + var n, + r = 0, + i = this.length, + o = [], + a = "string" != typeof e && w(e); + if (!A.test(e)) + for (; r < i; r++) + for (n = this[r]; n && n !== t; n = n.parentNode) + if ( + n.nodeType < 11 && + (a + ? a.index(n) > -1 + : 1 === n.nodeType && w.find.matchesSelector(n, e)) + ) { + o.push(n); + break; + } + return this.pushStack(o.length > 1 ? w.uniqueSort(o) : o); + }, + index: function (e) { + return e + ? "string" == typeof e + ? s.call(w(e), this[0]) + : s.call(this, e.jquery ? e[0] : e) + : this[0] && this[0].parentNode + ? this.first().prevAll().length + : -1; + }, + add: function (e, t) { + return this.pushStack(w.uniqueSort(w.merge(this.get(), w(e, t)))); + }, + addBack: function (e) { + return this.add(null == e ? this.prevObject : this.prevObject.filter(e)); + } + }); + function H(e, t) { + while ((e = e[t]) && 1 !== e.nodeType); + return e; + } + w.each( + { + parent: function (e) { + var t = e.parentNode; + return t && 11 !== t.nodeType ? t : null; + }, + parents: function (e) { + return N(e, "parentNode"); + }, + parentsUntil: function (e, t, n) { + return N(e, "parentNode", n); + }, + next: function (e) { + return H(e, "nextSibling"); + }, + prev: function (e) { + return H(e, "previousSibling"); + }, + nextAll: function (e) { + return N(e, "nextSibling"); + }, + prevAll: function (e) { + return N(e, "previousSibling"); + }, + nextUntil: function (e, t, n) { + return N(e, "nextSibling", n); + }, + prevUntil: function (e, t, n) { + return N(e, "previousSibling", n); + }, + siblings: function (e) { + return k((e.parentNode || {}).firstChild, e); + }, + children: function (e) { + return k(e.firstChild); + }, + contents: function (e) { + return D(e, "iframe") + ? e.contentDocument + : (D(e, "template") && (e = e.content || e), + w.merge([], e.childNodes)); + } + }, + function (e, t) { + w.fn[e] = function (n, r) { + var i = w.map(this, t, n); + return ( + "Until" !== e.slice(-5) && (r = n), + r && "string" == typeof r && (i = w.filter(r, i)), + this.length > 1 && + (P[e] || w.uniqueSort(i), O.test(e) && i.reverse()), + this.pushStack(i) + ); + }; + } + ); + var I = /[^\x20\t\r\n\f]+/g; + function R(e) { + var t = {}; + return ( + w.each(e.match(I) || [], function (e, n) { + t[n] = !0; + }), + t + ); + } + w.Callbacks = function (e) { + e = "string" == typeof e ? R(e) : w.extend({}, e); + var t, + n, + r, + i, + o = [], + a = [], + u = -1, + s = function () { + for (i = i || e.once, r = t = !0; a.length; u = -1) { + n = a.shift(); + while (++u < o.length) + !1 === o[u].apply(n[0], n[1]) && + e.stopOnFalse && + ((u = o.length), (n = !1)); + } + e.memory || (n = !1), (t = !1), i && (o = n ? [] : ""); + }, + l = { + add: function () { + return ( + o && + (n && !t && ((u = o.length - 1), a.push(n)), + (function t(n) { + w.each(n, function (n, r) { + g(r) + ? (e.unique && l.has(r)) || o.push(r) + : r && r.length && "string" !== b(r) && t(r); + }); + })(arguments), + n && !t && s()), + this + ); + }, + remove: function () { + return ( + w.each(arguments, function (e, t) { + var n; + while ((n = w.inArray(t, o, n)) > -1) + o.splice(n, 1), n <= u && u--; + }), + this + ); + }, + has: function (e) { + return e ? w.inArray(e, o) > -1 : o.length > 0; + }, + empty: function () { + return o && (o = []), this; + }, + disable: function () { + return (i = a = []), (o = n = ""), this; + }, + disabled: function () { + return !o; + }, + lock: function () { + return (i = a = []), n || t || (o = n = ""), this; + }, + locked: function () { + return !!i; + }, + fireWith: function (e, n) { + return ( + i || + ((n = [e, (n = n || []).slice ? n.slice() : n]), + a.push(n), + t || s()), + this + ); + }, + fire: function () { + return l.fireWith(this, arguments), this; + }, + fired: function () { + return !!r; + } + }; + return l; + }; + function B(e) { + return e; + } + function M(e) { + throw e; + } + function W(e, t, n, r) { + var i; + try { + e && g((i = e.promise)) + ? i + .call(e) + .done(t) + .fail(n) + : e && g((i = e.then)) + ? i.call(e, t, n) + : t.apply(void 0, [e].slice(r)); + } catch (e) { + n.apply(void 0, [e]); + } + } + w.extend({ + Deferred: function (t) { + var n = [ + [ + "notify", + "progress", + w.Callbacks("memory"), + w.Callbacks("memory"), + 2 + ], + [ + "resolve", + "done", + w.Callbacks("once memory"), + w.Callbacks("once memory"), + 0, + "resolved" + ], + [ + "reject", + "fail", + w.Callbacks("once memory"), + w.Callbacks("once memory"), + 1, + "rejected" + ] + ], + r = "pending", + i = { + state: function () { + return r; + }, + always: function () { + return o.done(arguments).fail(arguments), this; + }, + catch: function (e) { + return i.then(null, e); + }, + pipe: function () { + var e = arguments; + return w + .Deferred(function (t) { + w.each(n, function (n, r) { + var i = g(e[r[4]]) && e[r[4]]; + o[r[1]](function () { + var e = i && i.apply(this, arguments); + e && g(e.promise) + ? e + .promise() + .progress(t.notify) + .done(t.resolve) + .fail(t.reject) + : t[r[0] + "With"](this, i ? [e] : arguments); + }); + }), + (e = null); + }) + .promise(); + }, + then: function (t, r, i) { + var o = 0; + function a(t, n, r, i) { + return function () { + var u = this, + s = arguments, + l = function () { + var e, l; + if (!(t < o)) { + if ((e = r.apply(u, s)) === n.promise()) + throw new TypeError("Thenable self-resolution"); + (l = + e && + ("object" == typeof e || "function" == typeof e) && + e.then), + g(l) + ? i + ? l.call(e, a(o, n, B, i), a(o, n, M, i)) + : (o++ , + l.call( + e, + a(o, n, B, i), + a(o, n, M, i), + a(o, n, B, n.notifyWith) + )) + : (r !== B && ((u = void 0), (s = [e])), + (i || n.resolveWith)(u, s)); + } + }, + c = i + ? l + : function () { + try { + l(); + } catch (e) { + w.Deferred.exceptionHook && + w.Deferred.exceptionHook(e, c.stackTrace), + t + 1 >= o && + (r !== M && ((u = void 0), (s = [e])), + n.rejectWith(u, s)); + } + }; + t + ? c() + : (w.Deferred.getStackHook && + (c.stackTrace = w.Deferred.getStackHook()), + e.setTimeout(c)); + }; + } + return w + .Deferred(function (e) { + n[0][3].add(a(0, e, g(i) ? i : B, e.notifyWith)), + n[1][3].add(a(0, e, g(t) ? t : B)), + n[2][3].add(a(0, e, g(r) ? r : M)); + }) + .promise(); + }, + promise: function (e) { + return null != e ? w.extend(e, i) : i; + } + }, + o = {}; + return ( + w.each(n, function (e, t) { + var a = t[2], + u = t[5]; + (i[t[1]] = a.add), + u && + a.add( + function () { + r = u; + }, + n[3 - e][2].disable, + n[3 - e][3].disable, + n[0][2].lock, + n[0][3].lock + ), + a.add(t[3].fire), + (o[t[0]] = function () { + return ( + o[t[0] + "With"](this === o ? void 0 : this, arguments), this + ); + }), + (o[t[0] + "With"] = a.fireWith); + }), + i.promise(o), + t && t.call(o, o), + o + ); + }, + when: function (e) { + var t = arguments.length, + n = t, + r = Array(n), + i = o.call(arguments), + a = w.Deferred(), + u = function (e) { + return function (n) { + (r[e] = this), + (i[e] = arguments.length > 1 ? o.call(arguments) : n), + --t || a.resolveWith(r, i); + }; + }; + if ( + t <= 1 && + (W(e, a.done(u(n)).resolve, a.reject, !t), + "pending" === a.state() || g(i[n] && i[n].then)) + ) + return a.then(); + while (n--) W(i[n], u(n), a.reject); + return a.promise(); + } + }); + var $ = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; + (w.Deferred.exceptionHook = function (t, n) { + e.console && + e.console.warn && + t && + $.test(t.name) && + e.console.warn("jQuery.Deferred exception: " + t.message, t.stack, n); + }), + (w.readyException = function (t) { + e.setTimeout(function () { + throw t; + }); + }); + var F = w.Deferred(); + (w.fn.ready = function (e) { + return ( + F.then(e)["catch"](function (e) { + w.readyException(e); + }), + this + ); + }), + w.extend({ + isReady: !1, + readyWait: 1, + ready: function (e) { + (!0 === e ? --w.readyWait : w.isReady) || + ((w.isReady = !0), + (!0 !== e && --w.readyWait > 0) || F.resolveWith(r, [w])); + } + }), + (w.ready.then = F.then); + function z() { + r.removeEventListener("DOMContentLoaded", z), + e.removeEventListener("load", z), + w.ready(); + } + "complete" === r.readyState || + ("loading" !== r.readyState && !r.documentElement.doScroll) + ? e.setTimeout(w.ready) + : (r.addEventListener("DOMContentLoaded", z), + e.addEventListener("load", z)); + var _ = function (e, t, n, r, i, o, a) { + var u = 0, + s = e.length, + l = null == n; + if ("object" === b(n)) { + i = !0; + for (u in n) _(e, t, u, n[u], !0, o, a); + } else if ( + void 0 !== r && + ((i = !0), + g(r) || (a = !0), + l && + (a + ? (t.call(e, r), (t = null)) + : ((l = t), + (t = function (e, t, n) { + return l.call(w(e), n); + }))), + t) + ) + for (; u < s; u++) t(e[u], n, a ? r : r.call(e[u], u, t(e[u], n))); + return i ? e : l ? t.call(e) : s ? t(e[0], n) : o; + }, + U = /^-ms-/, + V = /-([a-z])/g; + function X(e, t) { + return t.toUpperCase(); + } + function Q(e) { + return e.replace(U, "ms-").replace(V, X); + } + var Y = function (e) { + return 1 === e.nodeType || 9 === e.nodeType || !+e.nodeType; + }; + function G() { + this.expando = w.expando + G.uid++; + } + (G.uid = 1), + (G.prototype = { + cache: function (e) { + var t = e[this.expando]; + return ( + t || + ((t = {}), + Y(e) && + (e.nodeType + ? (e[this.expando] = t) + : Object.defineProperty(e, this.expando, { + value: t, + configurable: !0 + }))), + t + ); + }, + set: function (e, t, n) { + var r, + i = this.cache(e); + if ("string" == typeof t) i[Q(t)] = n; + else for (r in t) i[Q(r)] = t[r]; + return i; + }, + get: function (e, t) { + return void 0 === t + ? this.cache(e) + : e[this.expando] && e[this.expando][Q(t)]; + }, + access: function (e, t, n) { + return void 0 === t || (t && "string" == typeof t && void 0 === n) + ? this.get(e, t) + : (this.set(e, t, n), void 0 !== n ? n : t); + }, + remove: function (e, t) { + var n, + r = e[this.expando]; + if (void 0 !== r) { + if (void 0 !== t) { + n = (t = Array.isArray(t) + ? t.map(Q) + : (t = Q(t)) in r + ? [t] + : t.match(I) || []).length; + while (n--) delete r[t[n]]; + } + (void 0 === t || w.isEmptyObject(r)) && + (e.nodeType ? (e[this.expando] = void 0) : delete e[this.expando]); + } + }, + hasData: function (e) { + var t = e[this.expando]; + return void 0 !== t && !w.isEmptyObject(t); + } + }); + var K = new G(), + J = new G(), + Z = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, + ee = /[A-Z]/g; + function te(e) { + return ( + "true" === e || + ("false" !== e && + ("null" === e + ? null + : e === +e + "" + ? +e + : Z.test(e) + ? JSON.parse(e) + : e)) + ); + } + function ne(e, t, n) { + var r; + if (void 0 === n && 1 === e.nodeType) + if ( + ((r = "data-" + t.replace(ee, "-$&").toLowerCase()), + "string" == typeof (n = e.getAttribute(r))) + ) { + try { + n = te(n); + } catch (e) { } + J.set(e, t, n); + } else n = void 0; + return n; + } + w.extend({ + hasData: function (e) { + return J.hasData(e) || K.hasData(e); + }, + data: function (e, t, n) { + return J.access(e, t, n); + }, + removeData: function (e, t) { + J.remove(e, t); + }, + _data: function (e, t, n) { + return K.access(e, t, n); + }, + _removeData: function (e, t) { + K.remove(e, t); + } + }), + w.fn.extend({ + data: function (e, t) { + var n, + r, + i, + o = this[0], + a = o && o.attributes; + if (void 0 === e) { + if ( + this.length && + ((i = J.get(o)), 1 === o.nodeType && !K.get(o, "hasDataAttrs")) + ) { + n = a.length; + while (n--) + a[n] && + 0 === (r = a[n].name).indexOf("data-") && + ((r = Q(r.slice(5))), ne(o, r, i[r])); + K.set(o, "hasDataAttrs", !0); + } + return i; + } + return "object" == typeof e + ? this.each(function () { + J.set(this, e); + }) + : _( + this, + function (t) { + var n; + if (o && void 0 === t) { + if (void 0 !== (n = J.get(o, e))) return n; + if (void 0 !== (n = ne(o, e))) return n; + } else + this.each(function () { + J.set(this, e, t); + }); + }, + null, + t, + arguments.length > 1, + null, + !0 + ); + }, + removeData: function (e) { + return this.each(function () { + J.remove(this, e); + }); + } + }), + w.extend({ + queue: function (e, t, n) { + var r; + if (e) + return ( + (t = (t || "fx") + "queue"), + (r = K.get(e, t)), + n && + (!r || Array.isArray(n) + ? (r = K.access(e, t, w.makeArray(n))) + : r.push(n)), + r || [] + ); + }, + dequeue: function (e, t) { + t = t || "fx"; + var n = w.queue(e, t), + r = n.length, + i = n.shift(), + o = w._queueHooks(e, t), + a = function () { + w.dequeue(e, t); + }; + "inprogress" === i && ((i = n.shift()), r--), + i && + ("fx" === t && n.unshift("inprogress"), + delete o.stop, + i.call(e, a, o)), + !r && o && o.empty.fire(); + }, + _queueHooks: function (e, t) { + var n = t + "queueHooks"; + return ( + K.get(e, n) || + K.access(e, n, { + empty: w.Callbacks("once memory").add(function () { + K.remove(e, [t + "queue", n]); + }) + }) + ); + } + }), + w.fn.extend({ + queue: function (e, t) { + var n = 2; + return ( + "string" != typeof e && ((t = e), (e = "fx"), n--), + arguments.length < n + ? w.queue(this[0], e) + : void 0 === t + ? this + : this.each(function () { + var n = w.queue(this, e, t); + w._queueHooks(this, e), + "fx" === e && "inprogress" !== n[0] && w.dequeue(this, e); + }) + ); + }, + dequeue: function (e) { + return this.each(function () { + w.dequeue(this, e); + }); + }, + clearQueue: function (e) { + return this.queue(e || "fx", []); + }, + promise: function (e, t) { + var n, + r = 1, + i = w.Deferred(), + o = this, + a = this.length, + u = function () { + --r || i.resolveWith(o, [o]); + }; + "string" != typeof e && ((t = e), (e = void 0)), (e = e || "fx"); + while (a--) + (n = K.get(o[a], e + "queueHooks")) && + n.empty && + (r++ , n.empty.add(u)); + return u(), i.promise(t); + } + }); + var re = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, + ie = new RegExp("^(?:([+-])=|)(" + re + ")([a-z%]*)$", "i"), + oe = ["Top", "Right", "Bottom", "Left"], + ae = function (e, t) { + return ( + "none" === (e = t || e).style.display || + ("" === e.style.display && + w.contains(e.ownerDocument, e) && + "none" === w.css(e, "display")) + ); + }, + ue = function (e, t, n, r) { + var i, + o, + a = {}; + for (o in t) (a[o] = e.style[o]), (e.style[o] = t[o]); + i = n.apply(e, r || []); + for (o in t) e.style[o] = a[o]; + return i; + }; + function se(e, t, n, r) { + var i, + o, + a = 20, + u = r + ? function () { + return r.cur(); + } + : function () { + return w.css(e, t, ""); + }, + s = u(), + l = (n && n[3]) || (w.cssNumber[t] ? "" : "px"), + c = (w.cssNumber[t] || ("px" !== l && +s)) && ie.exec(w.css(e, t)); + if (c && c[3] !== l) { + (s /= 2), (l = l || c[3]), (c = +s || 1); + while (a--) + w.style(e, t, c + l), + (1 - o) * (1 - (o = u() / s || 0.5)) <= 0 && (a = 0), + (c /= o); + (c *= 2), w.style(e, t, c + l), (n = n || []); + } + return ( + n && + ((c = +c || +s || 0), + (i = n[1] ? c + (n[1] + 1) * n[2] : +n[2]), + r && ((r.unit = l), (r.start = c), (r.end = i))), + i + ); + } + var le = {}; + function ce(e) { + var t, + n = e.ownerDocument, + r = e.nodeName, + i = le[r]; + return ( + i || + ((t = n.body.appendChild(n.createElement(r))), + (i = w.css(t, "display")), + t.parentNode.removeChild(t), + "none" === i && (i = "block"), + (le[r] = i), + i) + ); + } + function fe(e, t) { + for (var n, r, i = [], o = 0, a = e.length; o < a; o++) + (r = e[o]).style && + ((n = r.style.display), + t + ? ("none" === n && + ((i[o] = K.get(r, "display") || null), + i[o] || (r.style.display = "")), + "" === r.style.display && ae(r) && (i[o] = ce(r))) + : "none" !== n && ((i[o] = "none"), K.set(r, "display", n))); + for (o = 0; o < a; o++) null != i[o] && (e[o].style.display = i[o]); + return e; + } + w.fn.extend({ + show: function () { + return fe(this, !0); + }, + hide: function () { + return fe(this); + }, + toggle: function (e) { + return "boolean" == typeof e + ? e + ? this.show() + : this.hide() + : this.each(function () { + ae(this) ? w(this).show() : w(this).hide(); + }); + } + }); + var de = /^(?:checkbox|radio)$/i, + pe = /<([a-z][^\/\0>\x20\t\r\n\f]+)/i, + he = /^$|^module$|\/(?:java|ecma)script/i, + ge = { + option: [1, ""], + thead: [1, "", "
"], + col: [2, "", "
"], + tr: [2, "", "
"], + td: [3, "", "
"], + _default: [0, "", ""] + }; + (ge.optgroup = ge.option), + (ge.tbody = ge.tfoot = ge.colgroup = ge.caption = ge.thead), + (ge.th = ge.td); + function ve(e, t) { + var n; + return ( + (n = + "undefined" != typeof e.getElementsByTagName + ? e.getElementsByTagName(t || "*") + : "undefined" != typeof e.querySelectorAll + ? e.querySelectorAll(t || "*") + : []), + void 0 === t || (t && D(e, t)) ? w.merge([e], n) : n + ); + } + function ye(e, t) { + for (var n = 0, r = e.length; n < r; n++) + K.set(e[n], "globalEval", !t || K.get(t[n], "globalEval")); + } + var me = /<|&#?\w+;/; + function be(e, t, n, r, i) { + for ( + var o, + a, + u, + s, + l, + c, + f = t.createDocumentFragment(), + d = [], + p = 0, + h = e.length; + p < h; + p++ + ) + if ((o = e[p]) || 0 === o) + if ("object" === b(o)) w.merge(d, o.nodeType ? [o] : o); + else if (me.test(o)) { + (a = a || f.appendChild(t.createElement("div"))), + (u = (pe.exec(o) || ["", ""])[1].toLowerCase()), + (s = ge[u] || ge._default), + (a.innerHTML = s[1] + w.htmlPrefilter(o) + s[2]), + (c = s[0]); + while (c--) a = a.lastChild; + w.merge(d, a.childNodes), ((a = f.firstChild).textContent = ""); + } else d.push(t.createTextNode(o)); + (f.textContent = ""), (p = 0); + while ((o = d[p++])) + if (r && w.inArray(o, r) > -1) i && i.push(o); + else if ( + ((l = w.contains(o.ownerDocument, o)), + (a = ve(f.appendChild(o), "script")), + l && ye(a), + n) + ) { + c = 0; + while ((o = a[c++])) he.test(o.type || "") && n.push(o); + } + return f; + } + !(function () { + var e = r.createDocumentFragment().appendChild(r.createElement("div")), + t = r.createElement("input"); + t.setAttribute("type", "radio"), + t.setAttribute("checked", "checked"), + t.setAttribute("name", "t"), + e.appendChild(t), + (h.checkClone = e.cloneNode(!0).cloneNode(!0).lastChild.checked), + (e.innerHTML = ""), + (h.noCloneChecked = !!e.cloneNode(!0).lastChild.defaultValue); + })(); + var xe = r.documentElement, + we = /^key/, + Ce = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, + Te = /^([^.]*)(?:\.(.+)|)/; + function Ee() { + return !0; + } + function Ne() { + return !1; + } + function ke() { + try { + return r.activeElement; + } catch (e) { } + } + function Ae(e, t, n, r, i, o) { + var a, u; + if ("object" == typeof t) { + "string" != typeof n && ((r = r || n), (n = void 0)); + for (u in t) Ae(e, u, n, r, t[u], o); + return e; + } + if ( + (null == r && null == i + ? ((i = n), (r = n = void 0)) + : null == i && + ("string" == typeof n + ? ((i = r), (r = void 0)) + : ((i = r), (r = n), (n = void 0))), + !1 === i) + ) + i = Ne; + else if (!i) return e; + return ( + 1 === o && + ((a = i), + ((i = function (e) { + return w().off(e), a.apply(this, arguments); + }).guid = a.guid || (a.guid = w.guid++))), + e.each(function () { + w.event.add(this, t, i, r, n); + }) + ); + } + (w.event = { + global: {}, + add: function (e, t, n, r, i) { + var o, + a, + u, + s, + l, + c, + f, + d, + p, + h, + g, + v = K.get(e); + if (v) { + n.handler && ((n = (o = n).handler), (i = o.selector)), + i && w.find.matchesSelector(xe, i), + n.guid || (n.guid = w.guid++), + (s = v.events) || (s = v.events = {}), + (a = v.handle) || + (a = v.handle = function (t) { + return "undefined" != typeof w && w.event.triggered !== t.type + ? w.event.dispatch.apply(e, arguments) + : void 0; + }), + (l = (t = (t || "").match(I) || [""]).length); + while (l--) + (p = g = (u = Te.exec(t[l]) || [])[1]), + (h = (u[2] || "").split(".").sort()), + p && + ((f = w.event.special[p] || {}), + (p = (i ? f.delegateType : f.bindType) || p), + (f = w.event.special[p] || {}), + (c = w.extend( + { + type: p, + origType: g, + data: r, + handler: n, + guid: n.guid, + selector: i, + needsContext: i && w.expr.match.needsContext.test(i), + namespace: h.join(".") + }, + o + )), + (d = s[p]) || + (((d = s[p] = []).delegateCount = 0), + (f.setup && !1 !== f.setup.call(e, r, h, a)) || + (e.addEventListener && e.addEventListener(p, a))), + f.add && + (f.add.call(e, c), c.handler.guid || (c.handler.guid = n.guid)), + i ? d.splice(d.delegateCount++, 0, c) : d.push(c), + (w.event.global[p] = !0)); + } + }, + remove: function (e, t, n, r, i) { + var o, + a, + u, + s, + l, + c, + f, + d, + p, + h, + g, + v = K.hasData(e) && K.get(e); + if (v && (s = v.events)) { + l = (t = (t || "").match(I) || [""]).length; + while (l--) + if ( + ((u = Te.exec(t[l]) || []), + (p = g = u[1]), + (h = (u[2] || "").split(".").sort()), + p) + ) { + (f = w.event.special[p] || {}), + (d = s[(p = (r ? f.delegateType : f.bindType) || p)] || []), + (u = + u[2] && + new RegExp("(^|\\.)" + h.join("\\.(?:.*\\.|)") + "(\\.|$)")), + (a = o = d.length); + while (o--) + (c = d[o]), + (!i && g !== c.origType) || + (n && n.guid !== c.guid) || + (u && !u.test(c.namespace)) || + (r && r !== c.selector && ("**" !== r || !c.selector)) || + (d.splice(o, 1), + c.selector && d.delegateCount-- , + f.remove && f.remove.call(e, c)); + a && + !d.length && + ((f.teardown && !1 !== f.teardown.call(e, h, v.handle)) || + w.removeEvent(e, p, v.handle), + delete s[p]); + } else for (p in s) w.event.remove(e, p + t[l], n, r, !0); + w.isEmptyObject(s) && K.remove(e, "handle events"); + } + }, + dispatch: function (e) { + var t = w.event.fix(e), + n, + r, + i, + o, + a, + u, + s = new Array(arguments.length), + l = (K.get(this, "events") || {})[t.type] || [], + c = w.event.special[t.type] || {}; + for (s[0] = t, n = 1; n < arguments.length; n++) s[n] = arguments[n]; + if ( + ((t.delegateTarget = this), + !c.preDispatch || !1 !== c.preDispatch.call(this, t)) + ) { + (u = w.event.handlers.call(this, t, l)), (n = 0); + while ((o = u[n++]) && !t.isPropagationStopped()) { + (t.currentTarget = o.elem), (r = 0); + while ((a = o.handlers[r++]) && !t.isImmediatePropagationStopped()) + (t.rnamespace && !t.rnamespace.test(a.namespace)) || + ((t.handleObj = a), + (t.data = a.data), + void 0 !== + (i = ( + (w.event.special[a.origType] || {}).handle || a.handler + ).apply(o.elem, s)) && + !1 === (t.result = i) && + (t.preventDefault(), t.stopPropagation())); + } + return c.postDispatch && c.postDispatch.call(this, t), t.result; + } + }, + handlers: function (e, t) { + var n, + r, + i, + o, + a, + u = [], + s = t.delegateCount, + l = e.target; + if (s && l.nodeType && !("click" === e.type && e.button >= 1)) + for (; l !== this; l = l.parentNode || this) + if (1 === l.nodeType && ("click" !== e.type || !0 !== l.disabled)) { + for (o = [], a = {}, n = 0; n < s; n++) + void 0 === a[(i = (r = t[n]).selector + " ")] && + (a[i] = r.needsContext + ? w(i, this).index(l) > -1 + : w.find(i, this, null, [l]).length), + a[i] && o.push(r); + o.length && u.push({ elem: l, handlers: o }); + } + return ( + (l = this), s < t.length && u.push({ elem: l, handlers: t.slice(s) }), u + ); + }, + addProp: function (e, t) { + Object.defineProperty(w.Event.prototype, e, { + enumerable: !0, + configurable: !0, + get: g(t) + ? function () { + if (this.originalEvent) return t(this.originalEvent); + } + : function () { + if (this.originalEvent) return this.originalEvent[e]; + }, + set: function (t) { + Object.defineProperty(this, e, { + enumerable: !0, + configurable: !0, + writable: !0, + value: t + }); + } + }); + }, + fix: function (e) { + return e[w.expando] ? e : new w.Event(e); + }, + special: { + load: { noBubble: !0 }, + focus: { + trigger: function () { + if (this !== ke() && this.focus) return this.focus(), !1; + }, + delegateType: "focusin" + }, + blur: { + trigger: function () { + if (this === ke() && this.blur) return this.blur(), !1; + }, + delegateType: "focusout" + }, + click: { + trigger: function () { + if ("checkbox" === this.type && this.click && D(this, "input")) + return this.click(), !1; + }, + _default: function (e) { + return D(e.target, "a"); + } + }, + beforeunload: { + postDispatch: function (e) { + void 0 !== e.result && + e.originalEvent && + (e.originalEvent.returnValue = e.result); + } + } + } + }), + (w.removeEvent = function (e, t, n) { + e.removeEventListener && e.removeEventListener(t, n); + }), + (w.Event = function (e, t) { + if (!(this instanceof w.Event)) return new w.Event(e, t); + e && e.type + ? ((this.originalEvent = e), + (this.type = e.type), + (this.isDefaultPrevented = + e.defaultPrevented || + (void 0 === e.defaultPrevented && !1 === e.returnValue) + ? Ee + : Ne), + (this.target = + e.target && 3 === e.target.nodeType + ? e.target.parentNode + : e.target), + (this.currentTarget = e.currentTarget), + (this.relatedTarget = e.relatedTarget)) + : (this.type = e), + t && w.extend(this, t), + (this.timeStamp = (e && e.timeStamp) || Date.now()), + (this[w.expando] = !0); + }), + (w.Event.prototype = { + constructor: w.Event, + isDefaultPrevented: Ne, + isPropagationStopped: Ne, + isImmediatePropagationStopped: Ne, + isSimulated: !1, + preventDefault: function () { + var e = this.originalEvent; + (this.isDefaultPrevented = Ee), + e && !this.isSimulated && e.preventDefault(); + }, + stopPropagation: function () { + var e = this.originalEvent; + (this.isPropagationStopped = Ee), + e && !this.isSimulated && e.stopPropagation(); + }, + stopImmediatePropagation: function () { + var e = this.originalEvent; + (this.isImmediatePropagationStopped = Ee), + e && !this.isSimulated && e.stopImmediatePropagation(), + this.stopPropagation(); + } + }), + w.each( + { + altKey: !0, + bubbles: !0, + cancelable: !0, + changedTouches: !0, + ctrlKey: !0, + detail: !0, + eventPhase: !0, + metaKey: !0, + pageX: !0, + pageY: !0, + shiftKey: !0, + view: !0, + char: !0, + charCode: !0, + key: !0, + keyCode: !0, + button: !0, + buttons: !0, + clientX: !0, + clientY: !0, + offsetX: !0, + offsetY: !0, + pointerId: !0, + pointerType: !0, + screenX: !0, + screenY: !0, + targetTouches: !0, + toElement: !0, + touches: !0, + which: function (e) { + var t = e.button; + return null == e.which && we.test(e.type) + ? null != e.charCode + ? e.charCode + : e.keyCode + : !e.which && void 0 !== t && Ce.test(e.type) + ? 1 & t + ? 1 + : 2 & t + ? 3 + : 4 & t + ? 2 + : 0 + : e.which; + } + }, + w.event.addProp + ), + w.each( + { + mouseenter: "mouseover", + mouseleave: "mouseout", + pointerenter: "pointerover", + pointerleave: "pointerout" + }, + function (e, t) { + w.event.special[e] = { + delegateType: t, + bindType: t, + handle: function (e) { + var n, + r = this, + i = e.relatedTarget, + o = e.handleObj; + return ( + (i && (i === r || w.contains(r, i))) || + ((e.type = o.origType), + (n = o.handler.apply(this, arguments)), + (e.type = t)), + n + ); + } + }; + } + ), + w.fn.extend({ + on: function (e, t, n, r) { + return Ae(this, e, t, n, r); + }, + one: function (e, t, n, r) { + return Ae(this, e, t, n, r, 1); + }, + off: function (e, t, n) { + var r, i; + if (e && e.preventDefault && e.handleObj) + return ( + (r = e.handleObj), + w(e.delegateTarget).off( + r.namespace ? r.origType + "." + r.namespace : r.origType, + r.selector, + r.handler + ), + this + ); + if ("object" == typeof e) { + for (i in e) this.off(i, t, e[i]); + return this; + } + return ( + (!1 !== t && "function" != typeof t) || ((n = t), (t = void 0)), + !1 === n && (n = Ne), + this.each(function () { + w.event.remove(this, e, n, t); + }) + ); + } + }); + var De = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi, + Se = /\s*$/g; + function qe(e, t) { + return D(e, "table") && D(11 !== t.nodeType ? t : t.firstChild, "tr") + ? w(e).children("tbody")[0] || e + : e; + } + function Oe(e) { + return (e.type = (null !== e.getAttribute("type")) + "/" + e.type), e; + } + function Pe(e) { + return ( + "true/" === (e.type || "").slice(0, 5) + ? (e.type = e.type.slice(5)) + : e.removeAttribute("type"), + e + ); + } + function He(e, t) { + var n, r, i, o, a, u, s, l; + if (1 === t.nodeType) { + if ( + K.hasData(e) && + ((o = K.access(e)), (a = K.set(t, o)), (l = o.events)) + ) { + delete a.handle, (a.events = {}); + for (i in l) + for (n = 0, r = l[i].length; n < r; n++) w.event.add(t, i, l[i][n]); + } + J.hasData(e) && ((u = J.access(e)), (s = w.extend({}, u)), J.set(t, s)); + } + } + function Ie(e, t) { + var n = t.nodeName.toLowerCase(); + "input" === n && de.test(e.type) + ? (t.checked = e.checked) + : ("input" !== n && "textarea" !== n) || + (t.defaultValue = e.defaultValue); + } + function Re(e, t, n, r) { + t = a.apply([], t); + var i, + o, + u, + s, + l, + c, + f = 0, + d = e.length, + p = d - 1, + v = t[0], + y = g(v); + if (y || (d > 1 && "string" == typeof v && !h.checkClone && Le.test(v))) + return e.each(function (i) { + var o = e.eq(i); + y && (t[0] = v.call(this, i, o.html())), Re(o, t, n, r); + }); + if ( + d && + ((i = be(t, e[0].ownerDocument, !1, e, r)), + (o = i.firstChild), + 1 === i.childNodes.length && (i = o), + o || r) + ) { + for (s = (u = w.map(ve(i, "script"), Oe)).length; f < d; f++) + (l = i), + f !== p && + ((l = w.clone(l, !0, !0)), s && w.merge(u, ve(l, "script"))), + n.call(e[f], l, f); + if (s) + for (c = u[u.length - 1].ownerDocument, w.map(u, Pe), f = 0; f < s; f++) + (l = u[f]), + he.test(l.type || "") && + !K.access(l, "globalEval") && + w.contains(c, l) && + (l.src && "module" !== (l.type || "").toLowerCase() + ? w._evalUrl && w._evalUrl(l.src) + : m(l.textContent.replace(je, ""), c, l)); + } + return e; + } + function Be(e, t, n) { + for (var r, i = t ? w.filter(t, e) : e, o = 0; null != (r = i[o]); o++) + n || 1 !== r.nodeType || w.cleanData(ve(r)), + r.parentNode && + (n && w.contains(r.ownerDocument, r) && ye(ve(r, "script")), + r.parentNode.removeChild(r)); + return e; + } + w.extend({ + htmlPrefilter: function (e) { + return e.replace(De, "<$1>"); + }, + clone: function (e, t, n) { + var r, + i, + o, + a, + u = e.cloneNode(!0), + s = w.contains(e.ownerDocument, e); + if ( + !( + h.noCloneChecked || + (1 !== e.nodeType && 11 !== e.nodeType) || + w.isXMLDoc(e) + ) + ) + for (a = ve(u), r = 0, i = (o = ve(e)).length; r < i; r++) + Ie(o[r], a[r]); + if (t) + if (n) + for (o = o || ve(e), a = a || ve(u), r = 0, i = o.length; r < i; r++) + He(o[r], a[r]); + else He(e, u); + return ( + (a = ve(u, "script")).length > 0 && ye(a, !s && ve(e, "script")), u + ); + }, + cleanData: function (e) { + for (var t, n, r, i = w.event.special, o = 0; void 0 !== (n = e[o]); o++) + if (Y(n)) { + if ((t = n[K.expando])) { + if (t.events) + for (r in t.events) + i[r] ? w.event.remove(n, r) : w.removeEvent(n, r, t.handle); + n[K.expando] = void 0; + } + n[J.expando] && (n[J.expando] = void 0); + } + } + }), + w.fn.extend({ + detach: function (e) { + return Be(this, e, !0); + }, + remove: function (e) { + return Be(this, e); + }, + text: function (e) { + return _( + this, + function (e) { + return void 0 === e + ? w.text(this) + : this.empty().each(function () { + (1 !== this.nodeType && + 11 !== this.nodeType && + 9 !== this.nodeType) || + (this.textContent = e); + }); + }, + null, + e, + arguments.length + ); + }, + append: function () { + return Re(this, arguments, function (e) { + (1 !== this.nodeType && + 11 !== this.nodeType && + 9 !== this.nodeType) || + qe(this, e).appendChild(e); + }); + }, + prepend: function () { + return Re(this, arguments, function (e) { + if ( + 1 === this.nodeType || + 11 === this.nodeType || + 9 === this.nodeType + ) { + var t = qe(this, e); + t.insertBefore(e, t.firstChild); + } + }); + }, + before: function () { + return Re(this, arguments, function (e) { + this.parentNode && this.parentNode.insertBefore(e, this); + }); + }, + after: function () { + return Re(this, arguments, function (e) { + this.parentNode && this.parentNode.insertBefore(e, this.nextSibling); + }); + }, + empty: function () { + for (var e, t = 0; null != (e = this[t]); t++) + 1 === e.nodeType && (w.cleanData(ve(e, !1)), (e.textContent = "")); + return this; + }, + clone: function (e, t) { + return ( + (e = null != e && e), + (t = null == t ? e : t), + this.map(function () { + return w.clone(this, e, t); + }) + ); + }, + html: function (e) { + return _( + this, + function (e) { + var t = this[0] || {}, + n = 0, + r = this.length; + if (void 0 === e && 1 === t.nodeType) return t.innerHTML; + if ( + "string" == typeof e && + !Se.test(e) && + !ge[(pe.exec(e) || ["", ""])[1].toLowerCase()] + ) { + e = w.htmlPrefilter(e); + try { + for (; n < r; n++) + 1 === (t = this[n] || {}).nodeType && + (w.cleanData(ve(t, !1)), (t.innerHTML = e)); + t = 0; + } catch (e) { } + } + t && this.empty().append(e); + }, + null, + e, + arguments.length + ); + }, + replaceWith: function () { + var e = []; + return Re( + this, + arguments, + function (t) { + var n = this.parentNode; + w.inArray(this, e) < 0 && + (w.cleanData(ve(this)), n && n.replaceChild(t, this)); + }, + e + ); + } + }), + w.each( + { + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" + }, + function (e, t) { + w.fn[e] = function (e) { + for (var n, r = [], i = w(e), o = i.length - 1, a = 0; a <= o; a++) + (n = a === o ? this : this.clone(!0)), + w(i[a])[t](n), + u.apply(r, n.get()); + return this.pushStack(r); + }; + } + ); + var Me = new RegExp("^(" + re + ")(?!px)[a-z%]+$", "i"), + We = function (t) { + var n = t.ownerDocument.defaultView; + return (n && n.opener) || (n = e), n.getComputedStyle(t); + }, + $e = new RegExp(oe.join("|"), "i"); + !(function () { + function t() { + if (c) { + (l.style.cssText = + "position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0"), + (c.style.cssText = + "position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%"), + xe.appendChild(l).appendChild(c); + var t = e.getComputedStyle(c); + (i = "1%" !== t.top), + (s = 12 === n(t.marginLeft)), + (c.style.right = "60%"), + (u = 36 === n(t.right)), + (o = 36 === n(t.width)), + (c.style.position = "absolute"), + (a = 36 === c.offsetWidth || "absolute"), + xe.removeChild(l), + (c = null); + } + } + function n(e) { + return Math.round(parseFloat(e)); + } + var i, + o, + a, + u, + s, + l = r.createElement("div"), + c = r.createElement("div"); + c.style && + ((c.style.backgroundClip = "content-box"), + (c.cloneNode(!0).style.backgroundClip = ""), + (h.clearCloneStyle = "content-box" === c.style.backgroundClip), + w.extend(h, { + boxSizingReliable: function () { + return t(), o; + }, + pixelBoxStyles: function () { + return t(), u; + }, + pixelPosition: function () { + return t(), i; + }, + reliableMarginLeft: function () { + return t(), s; + }, + scrollboxSize: function () { + return t(), a; + } + })); + })(); + function Fe(e, t, n) { + var r, + i, + o, + a, + u = e.style; + return ( + (n = n || We(e)) && + ("" !== (a = n.getPropertyValue(t) || n[t]) || + w.contains(e.ownerDocument, e) || + (a = w.style(e, t)), + !h.pixelBoxStyles() && + Me.test(a) && + $e.test(t) && + ((r = u.width), + (i = u.minWidth), + (o = u.maxWidth), + (u.minWidth = u.maxWidth = u.width = a), + (a = n.width), + (u.width = r), + (u.minWidth = i), + (u.maxWidth = o))), + void 0 !== a ? a + "" : a + ); + } + function ze(e, t) { + return { + get: function () { + if (!e()) return (this.get = t).apply(this, arguments); + delete this.get; + } + }; + } + var _e = /^(none|table(?!-c[ea]).+)/, + Ue = /^--/, + Ve = { position: "absolute", visibility: "hidden", display: "block" }, + Xe = { letterSpacing: "0", fontWeight: "400" }, + Qe = ["Webkit", "Moz", "ms"], + Ye = r.createElement("div").style; + function Ge(e) { + if (e in Ye) return e; + var t = e[0].toUpperCase() + e.slice(1), + n = Qe.length; + while (n--) if ((e = Qe[n] + t) in Ye) return e; + } + function Ke(e) { + var t = w.cssProps[e]; + return t || (t = w.cssProps[e] = Ge(e) || e), t; + } + function Je(e, t, n) { + var r = ie.exec(t); + return r ? Math.max(0, r[2] - (n || 0)) + (r[3] || "px") : t; + } + function Ze(e, t, n, r, i, o) { + var a = "width" === t ? 1 : 0, + u = 0, + s = 0; + if (n === (r ? "border" : "content")) return 0; + for (; a < 4; a += 2) + "margin" === n && (s += w.css(e, n + oe[a], !0, i)), + r + ? ("content" === n && (s -= w.css(e, "padding" + oe[a], !0, i)), + "margin" !== n && + (s -= w.css(e, "border" + oe[a] + "Width", !0, i))) + : ((s += w.css(e, "padding" + oe[a], !0, i)), + "padding" !== n + ? (s += w.css(e, "border" + oe[a] + "Width", !0, i)) + : (u += w.css(e, "border" + oe[a] + "Width", !0, i))); + return ( + !r && + o >= 0 && + (s += Math.max( + 0, + Math.ceil( + e["offset" + t[0].toUpperCase() + t.slice(1)] - o - s - u - 0.5 + ) + )), + s + ); + } + function et(e, t, n) { + var r = We(e), + i = Fe(e, t, r), + o = "border-box" === w.css(e, "boxSizing", !1, r), + a = o; + if (Me.test(i)) { + if (!n) return i; + i = "auto"; + } + return ( + (a = a && (h.boxSizingReliable() || i === e.style[t])), + ("auto" === i || + (!parseFloat(i) && "inline" === w.css(e, "display", !1, r))) && + ((i = e["offset" + t[0].toUpperCase() + t.slice(1)]), (a = !0)), + (i = parseFloat(i) || 0) + + Ze(e, t, n || (o ? "border" : "content"), a, r, i) + + "px" + ); + } + w.extend({ + cssHooks: { + opacity: { + get: function (e, t) { + if (t) { + var n = Fe(e, "opacity"); + return "" === n ? "1" : n; + } + } + } + }, + cssNumber: { + animationIterationCount: !0, + columnCount: !0, + fillOpacity: !0, + flexGrow: !0, + flexShrink: !0, + fontWeight: !0, + lineHeight: !0, + opacity: !0, + order: !0, + orphans: !0, + widows: !0, + zIndex: !0, + zoom: !0 + }, + cssProps: {}, + style: function (e, t, n, r) { + if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) { + var i, + o, + a, + u = Q(t), + s = Ue.test(t), + l = e.style; + if ( + (s || (t = Ke(u)), (a = w.cssHooks[t] || w.cssHooks[u]), void 0 === n) + ) + return a && "get" in a && void 0 !== (i = a.get(e, !1, r)) ? i : l[t]; + "string" == (o = typeof n) && + (i = ie.exec(n)) && + i[1] && + ((n = se(e, t, i)), (o = "number")), + null != n && + n === n && + ("number" === o && + (n += (i && i[3]) || (w.cssNumber[u] ? "" : "px")), + h.clearCloneStyle || + "" !== n || + 0 !== t.indexOf("background") || + (l[t] = "inherit"), + (a && "set" in a && void 0 === (n = a.set(e, n, r))) || + (s ? l.setProperty(t, n) : (l[t] = n))); + } + }, + css: function (e, t, n, r) { + var i, + o, + a, + u = Q(t); + return ( + Ue.test(t) || (t = Ke(u)), + (a = w.cssHooks[t] || w.cssHooks[u]) && + "get" in a && + (i = a.get(e, !0, n)), + void 0 === i && (i = Fe(e, t, r)), + "normal" === i && t in Xe && (i = Xe[t]), + "" === n || n + ? ((o = parseFloat(i)), !0 === n || isFinite(o) ? o || 0 : i) + : i + ); + } + }), + w.each(["height", "width"], function (e, t) { + w.cssHooks[t] = { + get: function (e, n, r) { + if (n) + return !_e.test(w.css(e, "display")) || + (e.getClientRects().length && e.getBoundingClientRect().width) + ? et(e, t, r) + : ue(e, Ve, function () { + return et(e, t, r); + }); + }, + set: function (e, n, r) { + var i, + o = We(e), + a = "border-box" === w.css(e, "boxSizing", !1, o), + u = r && Ze(e, t, r, a, o); + return ( + a && + h.scrollboxSize() === o.position && + (u -= Math.ceil( + e["offset" + t[0].toUpperCase() + t.slice(1)] - + parseFloat(o[t]) - + Ze(e, t, "border", !1, o) - + 0.5 + )), + u && + (i = ie.exec(n)) && + "px" !== (i[3] || "px") && + ((e.style[t] = n), (n = w.css(e, t))), + Je(e, n, u) + ); + } + }; + }), + (w.cssHooks.marginLeft = ze(h.reliableMarginLeft, function (e, t) { + if (t) + return ( + (parseFloat(Fe(e, "marginLeft")) || + e.getBoundingClientRect().left - + ue(e, { marginLeft: 0 }, function () { + return e.getBoundingClientRect().left; + })) + "px" + ); + })), + w.each({ margin: "", padding: "", border: "Width" }, function (e, t) { + (w.cssHooks[e + t] = { + expand: function (n) { + for ( + var r = 0, i = {}, o = "string" == typeof n ? n.split(" ") : [n]; + r < 4; + r++ + ) + i[e + oe[r] + t] = o[r] || o[r - 2] || o[0]; + return i; + } + }), + "margin" !== e && (w.cssHooks[e + t].set = Je); + }), + w.fn.extend({ + css: function (e, t) { + return _( + this, + function (e, t, n) { + var r, + i, + o = {}, + a = 0; + if (Array.isArray(t)) { + for (r = We(e), i = t.length; a < i; a++) + o[t[a]] = w.css(e, t[a], !1, r); + return o; + } + return void 0 !== n ? w.style(e, t, n) : w.css(e, t); + }, + e, + t, + arguments.length > 1 + ); + } + }), + (w.fn.delay = function (t, n) { + return ( + (t = w.fx ? w.fx.speeds[t] || t : t), + (n = n || "fx"), + this.queue(n, function (n, r) { + var i = e.setTimeout(n, t); + r.stop = function () { + e.clearTimeout(i); + }; + }) + ); + }), + (function () { + var e = r.createElement("input"), + t = r.createElement("select").appendChild(r.createElement("option")); + (e.type = "checkbox"), + (h.checkOn = "" !== e.value), + (h.optSelected = t.selected), + ((e = r.createElement("input")).value = "t"), + (e.type = "radio"), + (h.radioValue = "t" === e.value); + })(); + var tt, + nt = w.expr.attrHandle; + w.fn.extend({ + attr: function (e, t) { + return _(this, w.attr, e, t, arguments.length > 1); + }, + removeAttr: function (e) { + return this.each(function () { + w.removeAttr(this, e); + }); + } + }), + w.extend({ + attr: function (e, t, n) { + var r, + i, + o = e.nodeType; + if (3 !== o && 8 !== o && 2 !== o) + return "undefined" == typeof e.getAttribute + ? w.prop(e, t, n) + : ((1 === o && w.isXMLDoc(e)) || + (i = + w.attrHooks[t.toLowerCase()] || + (w.expr.match.bool.test(t) ? tt : void 0)), + void 0 !== n + ? null === n + ? void w.removeAttr(e, t) + : i && "set" in i && void 0 !== (r = i.set(e, n, t)) + ? r + : (e.setAttribute(t, n + ""), n) + : i && "get" in i && null !== (r = i.get(e, t)) + ? r + : null == (r = w.find.attr(e, t)) + ? void 0 + : r); + }, + attrHooks: { + type: { + set: function (e, t) { + if (!h.radioValue && "radio" === t && D(e, "input")) { + var n = e.value; + return e.setAttribute("type", t), n && (e.value = n), t; + } + } + } + }, + removeAttr: function (e, t) { + var n, + r = 0, + i = t && t.match(I); + if (i && 1 === e.nodeType) while ((n = i[r++])) e.removeAttribute(n); + } + }), + (tt = { + set: function (e, t, n) { + return !1 === t ? w.removeAttr(e, n) : e.setAttribute(n, n), n; + } + }), + w.each(w.expr.match.bool.source.match(/\w+/g), function (e, t) { + var n = nt[t] || w.find.attr; + nt[t] = function (e, t, r) { + var i, + o, + a = t.toLowerCase(); + return ( + r || + ((o = nt[a]), + (nt[a] = i), + (i = null != n(e, t, r) ? a : null), + (nt[a] = o)), + i + ); + }; + }); + var rt = /^(?:input|select|textarea|button)$/i, + it = /^(?:a|area)$/i; + w.fn.extend({ + prop: function (e, t) { + return _(this, w.prop, e, t, arguments.length > 1); + }, + removeProp: function (e) { + return this.each(function () { + delete this[w.propFix[e] || e]; + }); + } + }), + w.extend({ + prop: function (e, t, n) { + var r, + i, + o = e.nodeType; + if (3 !== o && 8 !== o && 2 !== o) + return ( + (1 === o && w.isXMLDoc(e)) || + ((t = w.propFix[t] || t), (i = w.propHooks[t])), + void 0 !== n + ? i && "set" in i && void 0 !== (r = i.set(e, n, t)) + ? r + : (e[t] = n) + : i && "get" in i && null !== (r = i.get(e, t)) + ? r + : e[t] + ); + }, + propHooks: { + tabIndex: { + get: function (e) { + var t = w.find.attr(e, "tabindex"); + return t + ? parseInt(t, 10) + : rt.test(e.nodeName) || (it.test(e.nodeName) && e.href) + ? 0 + : -1; + } + } + }, + propFix: { for: "htmlFor", class: "className" } + }), + h.optSelected || + (w.propHooks.selected = { + get: function (e) { + var t = e.parentNode; + return t && t.parentNode && t.parentNode.selectedIndex, null; + }, + set: function (e) { + var t = e.parentNode; + t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex); + } + }), + w.each( + [ + "tabIndex", + "readOnly", + "maxLength", + "cellSpacing", + "cellPadding", + "rowSpan", + "colSpan", + "useMap", + "frameBorder", + "contentEditable" + ], + function () { + w.propFix[this.toLowerCase()] = this; + } + ); + function ot(e) { + return (e.match(I) || []).join(" "); + } + function at(e) { + return (e.getAttribute && e.getAttribute("class")) || ""; + } + function ut(e) { + return Array.isArray(e) ? e : "string" == typeof e ? e.match(I) || [] : []; + } + w.fn.extend({ + addClass: function (e) { + var t, + n, + r, + i, + o, + a, + u, + s = 0; + if (g(e)) + return this.each(function (t) { + w(this).addClass(e.call(this, t, at(this))); + }); + if ((t = ut(e)).length) + while ((n = this[s++])) + if (((i = at(n)), (r = 1 === n.nodeType && " " + ot(i) + " "))) { + a = 0; + while ((o = t[a++])) r.indexOf(" " + o + " ") < 0 && (r += o + " "); + i !== (u = ot(r)) && n.setAttribute("class", u); + } + return this; + }, + removeClass: function (e) { + var t, + n, + r, + i, + o, + a, + u, + s = 0; + if (g(e)) + return this.each(function (t) { + w(this).removeClass(e.call(this, t, at(this))); + }); + if (!arguments.length) return this.attr("class", ""); + if ((t = ut(e)).length) + while ((n = this[s++])) + if (((i = at(n)), (r = 1 === n.nodeType && " " + ot(i) + " "))) { + a = 0; + while ((o = t[a++])) + while (r.indexOf(" " + o + " ") > -1) + r = r.replace(" " + o + " ", " "); + i !== (u = ot(r)) && n.setAttribute("class", u); + } + return this; + }, + toggleClass: function (e, t) { + var n = typeof e, + r = "string" === n || Array.isArray(e); + return "boolean" == typeof t && r + ? t + ? this.addClass(e) + : this.removeClass(e) + : g(e) + ? this.each(function (n) { + w(this).toggleClass(e.call(this, n, at(this), t), t); + }) + : this.each(function () { + var t, i, o, a; + if (r) { + (i = 0), (o = w(this)), (a = ut(e)); + while ((t = a[i++])) + o.hasClass(t) ? o.removeClass(t) : o.addClass(t); + } else (void 0 !== e && "boolean" !== n) || ((t = at(this)) && K.set(this, "__className__", t), this.setAttribute && this.setAttribute("class", t || !1 === e ? "" : K.get(this, "__className__") || "")); + }); + }, + hasClass: function (e) { + var t, + n, + r = 0; + t = " " + e + " "; + while ((n = this[r++])) + if (1 === n.nodeType && (" " + ot(at(n)) + " ").indexOf(t) > -1) + return !0; + return !1; + } + }); + var st = /\r/g; + w.fn.extend({ + val: function (e) { + var t, + n, + r, + i = this[0]; + { + if (arguments.length) + return ( + (r = g(e)), + this.each(function (n) { + var i; + 1 === this.nodeType && + (null == (i = r ? e.call(this, n, w(this).val()) : e) + ? (i = "") + : "number" == typeof i + ? (i += "") + : Array.isArray(i) && + (i = w.map(i, function (e) { + return null == e ? "" : e + ""; + })), + ((t = + w.valHooks[this.type] || + w.valHooks[this.nodeName.toLowerCase()]) && + "set" in t && + void 0 !== t.set(this, i, "value")) || + (this.value = i)); + }) + ); + if (i) + return (t = + w.valHooks[i.type] || w.valHooks[i.nodeName.toLowerCase()]) && + "get" in t && + void 0 !== (n = t.get(i, "value")) + ? n + : "string" == typeof (n = i.value) + ? n.replace(st, "") + : null == n + ? "" + : n; + } + } + }), + w.extend({ + valHooks: { + option: { + get: function (e) { + var t = w.find.attr(e, "value"); + return null != t ? t : ot(w.text(e)); + } + }, + select: { + get: function (e) { + var t, + n, + r, + i = e.options, + o = e.selectedIndex, + a = "select-one" === e.type, + u = a ? null : [], + s = a ? o + 1 : i.length; + for (r = o < 0 ? s : a ? o : 0; r < s; r++) + if ( + ((n = i[r]).selected || r === o) && + !n.disabled && + (!n.parentNode.disabled || !D(n.parentNode, "optgroup")) + ) { + if (((t = w(n).val()), a)) return t; + u.push(t); + } + return u; + }, + set: function (e, t) { + var n, + r, + i = e.options, + o = w.makeArray(t), + a = i.length; + while (a--) + ((r = i[a]).selected = + w.inArray(w.valHooks.option.get(r), o) > -1) && (n = !0); + return n || (e.selectedIndex = -1), o; + } + } + } + }), + w.each(["radio", "checkbox"], function () { + (w.valHooks[this] = { + set: function (e, t) { + if (Array.isArray(t)) + return (e.checked = w.inArray(w(e).val(), t) > -1); + } + }), + h.checkOn || + (w.valHooks[this].get = function (e) { + return null === e.getAttribute("value") ? "on" : e.value; + }); + }), + (h.focusin = "onfocusin" in e); + var lt = /^(?:focusinfocus|focusoutblur)$/, + ct = function (e) { + e.stopPropagation(); + }; + w.extend(w.event, { + trigger: function (t, n, i, o) { + var a, + u, + s, + l, + c, + d, + p, + h, + y = [i || r], + m = f.call(t, "type") ? t.type : t, + b = f.call(t, "namespace") ? t.namespace.split(".") : []; + if ( + ((u = h = s = i = i || r), + 3 !== i.nodeType && + 8 !== i.nodeType && + !lt.test(m + w.event.triggered) && + (m.indexOf(".") > -1 && ((m = (b = m.split(".")).shift()), b.sort()), + (c = m.indexOf(":") < 0 && "on" + m), + (t = t[w.expando] ? t : new w.Event(m, "object" == typeof t && t)), + (t.isTrigger = o ? 2 : 3), + (t.namespace = b.join(".")), + (t.rnamespace = t.namespace + ? new RegExp("(^|\\.)" + b.join("\\.(?:.*\\.|)") + "(\\.|$)") + : null), + (t.result = void 0), + t.target || (t.target = i), + (n = null == n ? [t] : w.makeArray(n, [t])), + (p = w.event.special[m] || {}), + o || !p.trigger || !1 !== p.trigger.apply(i, n))) + ) { + if (!o && !p.noBubble && !v(i)) { + for ( + l = p.delegateType || m, lt.test(l + m) || (u = u.parentNode); + u; + u = u.parentNode + ) + y.push(u), (s = u); + s === (i.ownerDocument || r) && + y.push(s.defaultView || s.parentWindow || e); + } + a = 0; + while ((u = y[a++]) && !t.isPropagationStopped()) + (h = u), + (t.type = a > 1 ? l : p.bindType || m), + (d = (K.get(u, "events") || {})[t.type] && K.get(u, "handle")) && + d.apply(u, n), + (d = c && u[c]) && + d.apply && + Y(u) && + ((t.result = d.apply(u, n)), + !1 === t.result && t.preventDefault()); + return ( + (t.type = m), + o || + t.isDefaultPrevented() || + (p._default && !1 !== p._default.apply(y.pop(), n)) || + !Y(i) || + (c && + g(i[m]) && + !v(i) && + ((s = i[c]) && (i[c] = null), + (w.event.triggered = m), + t.isPropagationStopped() && h.addEventListener(m, ct), + i[m](), + t.isPropagationStopped() && h.removeEventListener(m, ct), + (w.event.triggered = void 0), + s && (i[c] = s))), + t.result + ); + } + }, + simulate: function (e, t, n) { + var r = w.extend(new w.Event(), n, { type: e, isSimulated: !0 }); + w.event.trigger(r, null, t); + } + }), + w.fn.extend({ + trigger: function (e, t) { + return this.each(function () { + w.event.trigger(e, t, this); + }); + }, + triggerHandler: function (e, t) { + var n = this[0]; + if (n) return w.event.trigger(e, t, n, !0); + } + }), + h.focusin || + w.each({ focus: "focusin", blur: "focusout" }, function (e, t) { + var n = function (e) { + w.event.simulate(t, e.target, w.event.fix(e)); + }; + w.event.special[t] = { + setup: function () { + var r = this.ownerDocument || this, + i = K.access(r, t); + i || r.addEventListener(e, n, !0), K.access(r, t, (i || 0) + 1); + }, + teardown: function () { + var r = this.ownerDocument || this, + i = K.access(r, t) - 1; + i + ? K.access(r, t, i) + : (r.removeEventListener(e, n, !0), K.remove(r, t)); + } + }; + }); + var ft = /\[\]$/, + dt = /\r?\n/g, + pt = /^(?:submit|button|image|reset|file)$/i, + ht = /^(?:input|select|textarea|keygen)/i; + function gt(e, t, n, r) { + var i; + if (Array.isArray(t)) + w.each(t, function (t, i) { + n || ft.test(e) + ? r(e, i) + : gt( + e + "[" + ("object" == typeof i && null != i ? t : "") + "]", + i, + n, + r + ); + }); + else if (n || "object" !== b(t)) r(e, t); + else for (i in t) gt(e + "[" + i + "]", t[i], n, r); + } + (w.param = function (e, t) { + var n, + r = [], + i = function (e, t) { + var n = g(t) ? t() : t; + r[r.length] = + encodeURIComponent(e) + "=" + encodeURIComponent(null == n ? "" : n); + }; + if (Array.isArray(e) || (e.jquery && !w.isPlainObject(e))) + w.each(e, function () { + i(this.name, this.value); + }); + else for (n in e) gt(n, e[n], t, i); + return r.join("&"); + }), + w.fn.extend({ + serialize: function () { + return w.param(this.serializeArray()); + }, + serializeArray: function () { + return this.map(function () { + var e = w.prop(this, "elements"); + return e ? w.makeArray(e) : this; + }) + .filter(function () { + var e = this.type; + return ( + this.name && + !w(this).is(":disabled") && + ht.test(this.nodeName) && + !pt.test(e) && + (this.checked || !de.test(e)) + ); + }) + .map(function (e, t) { + var n = w(this).val(); + return null == n + ? null + : Array.isArray(n) + ? w.map(n, function (e) { + return { name: t.name, value: e.replace(dt, "\r\n") }; + }) + : { name: t.name, value: n.replace(dt, "\r\n") }; + }) + .get(); + } + }), + w.fn.extend({ + wrapAll: function (e) { + var t; + return ( + this[0] && + (g(e) && (e = e.call(this[0])), + (t = w(e, this[0].ownerDocument) + .eq(0) + .clone(!0)), + this[0].parentNode && t.insertBefore(this[0]), + t + .map(function () { + var e = this; + while (e.firstElementChild) e = e.firstElementChild; + return e; + }) + .append(this)), + this + ); + }, + wrapInner: function (e) { + return g(e) + ? this.each(function (t) { + w(this).wrapInner(e.call(this, t)); + }) + : this.each(function () { + var t = w(this), + n = t.contents(); + n.length ? n.wrapAll(e) : t.append(e); + }); + }, + wrap: function (e) { + var t = g(e); + return this.each(function (n) { + w(this).wrapAll(t ? e.call(this, n) : e); + }); + }, + unwrap: function (e) { + return ( + this.parent(e) + .not("body") + .each(function () { + w(this).replaceWith(this.childNodes); + }), + this + ); + } + }), + (w.expr.pseudos.hidden = function (e) { + return !w.expr.pseudos.visible(e); + }), + (w.expr.pseudos.visible = function (e) { + return !!(e.offsetWidth || e.offsetHeight || e.getClientRects().length); + }), + (h.createHTMLDocument = (function () { + var e = r.implementation.createHTMLDocument("").body; + return ( + (e.innerHTML = "
"), 2 === e.childNodes.length + ); + })()), + (w.parseHTML = function (e, t, n) { + if ("string" != typeof e) return []; + "boolean" == typeof t && ((n = t), (t = !1)); + var i, o, a; + return ( + t || + (h.createHTMLDocument + ? (((i = (t = r.implementation.createHTMLDocument( + "" + )).createElement("base")).href = r.location.href), + t.head.appendChild(i)) + : (t = r)), + (o = S.exec(e)), + (a = !n && []), + o + ? [t.createElement(o[1])] + : ((o = be([e], t, a)), + a && a.length && w(a).remove(), + w.merge([], o.childNodes)) + ); + }), + (w.offset = { + setOffset: function (e, t, n) { + var r, + i, + o, + a, + u, + s, + l, + c = w.css(e, "position"), + f = w(e), + d = {}; + "static" === c && (e.style.position = "relative"), + (u = f.offset()), + (o = w.css(e, "top")), + (s = w.css(e, "left")), + (l = + ("absolute" === c || "fixed" === c) && (o + s).indexOf("auto") > -1) + ? ((a = (r = f.position()).top), (i = r.left)) + : ((a = parseFloat(o) || 0), (i = parseFloat(s) || 0)), + g(t) && (t = t.call(e, n, w.extend({}, u))), + null != t.top && (d.top = t.top - u.top + a), + null != t.left && (d.left = t.left - u.left + i), + "using" in t ? t.using.call(e, d) : f.css(d); + } + }), + w.fn.extend({ + offset: function (e) { + if (arguments.length) + return void 0 === e + ? this + : this.each(function (t) { + w.offset.setOffset(this, e, t); + }); + var t, + n, + r = this[0]; + if (r) + return r.getClientRects().length + ? ((t = r.getBoundingClientRect()), + (n = r.ownerDocument.defaultView), + { top: t.top + n.pageYOffset, left: t.left + n.pageXOffset }) + : { top: 0, left: 0 }; + }, + position: function () { + if (this[0]) { + var e, + t, + n, + r = this[0], + i = { top: 0, left: 0 }; + if ("fixed" === w.css(r, "position")) t = r.getBoundingClientRect(); + else { + (t = this.offset()), + (n = r.ownerDocument), + (e = r.offsetParent || n.documentElement); + while ( + e && + (e === n.body || e === n.documentElement) && + "static" === w.css(e, "position") + ) + e = e.parentNode; + e && + e !== r && + 1 === e.nodeType && + (((i = w(e).offset()).top += w.css(e, "borderTopWidth", !0)), + (i.left += w.css(e, "borderLeftWidth", !0))); + } + return { + top: t.top - i.top - w.css(r, "marginTop", !0), + left: t.left - i.left - w.css(r, "marginLeft", !0) + }; + } + }, + offsetParent: function () { + return this.map(function () { + var e = this.offsetParent; + while (e && "static" === w.css(e, "position")) e = e.offsetParent; + return e || xe; + }); + } + }), + w.each({ scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function ( + e, + t + ) { + var n = "pageYOffset" === t; + w.fn[e] = function (r) { + return _( + this, + function (e, r, i) { + var o; + if ( + (v(e) ? (o = e) : 9 === e.nodeType && (o = e.defaultView), + void 0 === i) + ) + return o ? o[t] : e[r]; + o + ? o.scrollTo(n ? o.pageXOffset : i, n ? i : o.pageYOffset) + : (e[r] = i); + }, + e, + r, + arguments.length + ); + }; + }), + w.each(["top", "left"], function (e, t) { + w.cssHooks[t] = ze(h.pixelPosition, function (e, n) { + if (n) + return (n = Fe(e, t)), Me.test(n) ? w(e).position()[t] + "px" : n; + }); + }), + w.each({ Height: "height", Width: "width" }, function (e, t) { + w.each({ padding: "inner" + e, content: t, "": "outer" + e }, function ( + n, + r + ) { + w.fn[r] = function (i, o) { + var a = arguments.length && (n || "boolean" != typeof i), + u = n || (!0 === i || !0 === o ? "margin" : "border"); + return _( + this, + function (t, n, i) { + var o; + return v(t) + ? 0 === r.indexOf("outer") + ? t["inner" + e] + : t.document.documentElement["client" + e] + : 9 === t.nodeType + ? ((o = t.documentElement), + Math.max( + t.body["scroll" + e], + o["scroll" + e], + t.body["offset" + e], + o["offset" + e], + o["client" + e] + )) + : void 0 === i + ? w.css(t, n, u) + : w.style(t, n, i, u); + }, + t, + a ? i : void 0, + a + ); + }; + }); + }), + w.each( + "blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split( + " " + ), + function (e, t) { + w.fn[t] = function (e, n) { + return arguments.length > 0 + ? this.on(t, null, e, n) + : this.trigger(t); + }; + } + ), + w.fn.extend({ + hover: function (e, t) { + return this.mouseenter(e).mouseleave(t || e); + } + }), + w.fn.extend({ + bind: function (e, t, n) { + return this.on(e, null, t, n); + }, + unbind: function (e, t) { + return this.off(e, null, t); + }, + delegate: function (e, t, n, r) { + return this.on(t, e, n, r); + }, + undelegate: function (e, t, n) { + return 1 === arguments.length + ? this.off(e, "**") + : this.off(t, e || "**", n); + } + }), + (w.proxy = function (e, t) { + var n, r, i; + if (("string" == typeof t && ((n = e[t]), (t = e), (e = n)), g(e))) + return ( + (r = o.call(arguments, 2)), + (i = function () { + return e.apply(t || this, r.concat(o.call(arguments))); + }), + (i.guid = e.guid = e.guid || w.guid++), + i + ); + }), + (w.holdReady = function (e) { + e ? w.readyWait++ : w.ready(!0); + }), + (w.isArray = Array.isArray), + (w.parseJSON = JSON.parse), + (w.nodeName = D), + (w.isFunction = g), + (w.isWindow = v), + (w.camelCase = Q), + (w.type = b), + (w.now = Date.now), + (w.isNumeric = function (e) { + var t = w.type(e); + return ("number" === t || "string" === t) && !isNaN(e - parseFloat(e)); + }), + "function" == typeof define && + define.amd && + define("jquery", [], function () { + return w; + }); + var vt = e.jQuery, + yt = e.$; + return ( + (w.noConflict = function (t) { + return e.$ === w && (e.$ = yt), t && e.jQuery === w && (e.jQuery = vt), w; + }), + t || (e.jQuery = e.$ = w), + w + ); +}); diff --git a/src/files/static/web/static/js/vendor/popper.js b/src/files/static/web/static/js/vendor/popper.js new file mode 100644 index 0000000..f2de87a --- /dev/null +++ b/src/files/static/web/static/js/vendor/popper.js @@ -0,0 +1,1165 @@ +/* + Copyright (C) Federico Zivolo 2018 + Distributed under the MIT License (license terms are at http://opensource.org/licenses/MIT). + */ (function( + e, + t +) { + "object" == typeof exports && "undefined" != typeof module + ? (module.exports = t()) + : "function" == typeof define && define.amd + ? define(t) + : (e.Popper = t()); +})(this, function() { + "use strict"; + function e(e) { + return e && "[object Function]" === {}.toString.call(e); + } + function t(e, t) { + if (1 !== e.nodeType) return []; + var o = getComputedStyle(e, null); + return t ? o[t] : o; + } + function o(e) { + return "HTML" === e.nodeName ? e : e.parentNode || e.host; + } + function n(e) { + if (!e) return document.body; + switch (e.nodeName) { + case "HTML": + case "BODY": + return e.ownerDocument.body; + case "#document": + return e.body; + } + var i = t(e), + r = i.overflow, + p = i.overflowX, + s = i.overflowY; + return /(auto|scroll|overlay)/.test(r + s + p) ? e : n(o(e)); + } + function r(e) { + return 11 === e ? re : 10 === e ? pe : re || pe; + } + function p(e) { + if (!e) return document.documentElement; + for ( + var o = r(10) ? document.body : null, n = e.offsetParent; + n === o && e.nextElementSibling; + + ) + n = (e = e.nextElementSibling).offsetParent; + var i = n && n.nodeName; + return i && "BODY" !== i && "HTML" !== i + ? -1 !== ["TD", "TABLE"].indexOf(n.nodeName) && + "static" === t(n, "position") + ? p(n) + : n + : e + ? e.ownerDocument.documentElement + : document.documentElement; + } + function s(e) { + var t = e.nodeName; + return "BODY" !== t && ("HTML" === t || p(e.firstElementChild) === e); + } + function d(e) { + return null === e.parentNode ? e : d(e.parentNode); + } + function a(e, t) { + if (!e || !e.nodeType || !t || !t.nodeType) return document.documentElement; + var o = e.compareDocumentPosition(t) & Node.DOCUMENT_POSITION_FOLLOWING, + n = o ? e : t, + i = o ? t : e, + r = document.createRange(); + r.setStart(n, 0), r.setEnd(i, 0); + var l = r.commonAncestorContainer; + if ((e !== l && t !== l) || n.contains(i)) return s(l) ? l : p(l); + var f = d(e); + return f.host ? a(f.host, t) : a(e, d(t).host); + } + function l(e) { + var t = + 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : "top", + o = "top" === t ? "scrollTop" : "scrollLeft", + n = e.nodeName; + if ("BODY" === n || "HTML" === n) { + var i = e.ownerDocument.documentElement, + r = e.ownerDocument.scrollingElement || i; + return r[o]; + } + return e[o]; + } + function f(e, t) { + var o = 2 < arguments.length && void 0 !== arguments[2] && arguments[2], + n = l(t, "top"), + i = l(t, "left"), + r = o ? -1 : 1; + return ( + (e.top += n * r), + (e.bottom += n * r), + (e.left += i * r), + (e.right += i * r), + e + ); + } + function m(e, t) { + var o = "x" === t ? "Left" : "Top", + n = "Left" == o ? "Right" : "Bottom"; + return ( + parseFloat(e["border" + o + "Width"], 10) + + parseFloat(e["border" + n + "Width"], 10) + ); + } + function h(e, t, o, n) { + return $( + t["offset" + e], + t["scroll" + e], + o["client" + e], + o["offset" + e], + o["scroll" + e], + r(10) + ? o["offset" + e] + + n["margin" + ("Height" === e ? "Top" : "Left")] + + n["margin" + ("Height" === e ? "Bottom" : "Right")] + : 0 + ); + } + function c() { + var e = document.body, + t = document.documentElement, + o = r(10) && getComputedStyle(t); + return { height: h("Height", e, t, o), width: h("Width", e, t, o) }; + } + function g(e) { + return le({}, e, { right: e.left + e.width, bottom: e.top + e.height }); + } + function u(e) { + var o = {}; + try { + if (r(10)) { + o = e.getBoundingClientRect(); + var n = l(e, "top"), + i = l(e, "left"); + (o.top += n), (o.left += i), (o.bottom += n), (o.right += i); + } else o = e.getBoundingClientRect(); + } catch (t) {} + var p = { + left: o.left, + top: o.top, + width: o.right - o.left, + height: o.bottom - o.top + }, + s = "HTML" === e.nodeName ? c() : {}, + d = s.width || e.clientWidth || p.right - p.left, + a = s.height || e.clientHeight || p.bottom - p.top, + f = e.offsetWidth - d, + h = e.offsetHeight - a; + if (f || h) { + var u = t(e); + (f -= m(u, "x")), (h -= m(u, "y")), (p.width -= f), (p.height -= h); + } + return g(p); + } + function b(e, o) { + var i = 2 < arguments.length && void 0 !== arguments[2] && arguments[2], + p = r(10), + s = "HTML" === o.nodeName, + d = u(e), + a = u(o), + l = n(e), + m = t(o), + h = parseFloat(m.borderTopWidth, 10), + c = parseFloat(m.borderLeftWidth, 10); + i && + "HTML" === o.nodeName && + ((a.top = $(a.top, 0)), (a.left = $(a.left, 0))); + var b = g({ + top: d.top - a.top - h, + left: d.left - a.left - c, + width: d.width, + height: d.height + }); + if (((b.marginTop = 0), (b.marginLeft = 0), !p && s)) { + var y = parseFloat(m.marginTop, 10), + w = parseFloat(m.marginLeft, 10); + (b.top -= h - y), + (b.bottom -= h - y), + (b.left -= c - w), + (b.right -= c - w), + (b.marginTop = y), + (b.marginLeft = w); + } + return ( + (p && !i ? o.contains(l) : o === l && "BODY" !== l.nodeName) && + (b = f(b, o)), + b + ); + } + function y(e) { + var t = 1 < arguments.length && void 0 !== arguments[1] && arguments[1], + o = e.ownerDocument.documentElement, + n = b(e, o), + i = $(o.clientWidth, window.innerWidth || 0), + r = $(o.clientHeight, window.innerHeight || 0), + p = t ? 0 : l(o), + s = t ? 0 : l(o, "left"), + d = { + top: p - n.top + n.marginTop, + left: s - n.left + n.marginLeft, + width: i, + height: r + }; + return g(d); + } + function w(e) { + var n = e.nodeName; + return "BODY" === n || "HTML" === n + ? !1 + : "fixed" === t(e, "position") || w(o(e)); + } + function E(e) { + if (!e || !e.parentElement || r()) return document.documentElement; + for (var o = e.parentElement; o && "none" === t(o, "transform"); ) + o = o.parentElement; + return o || document.documentElement; + } + function v(e, t, i, r) { + var p = 4 < arguments.length && void 0 !== arguments[4] && arguments[4], + s = { top: 0, left: 0 }, + d = p ? E(e) : a(e, t); + if ("viewport" === r) s = y(d, p); + else { + var l; + "scrollParent" === r + ? ((l = n(o(t))), + "BODY" === l.nodeName && (l = e.ownerDocument.documentElement)) + : "window" === r + ? (l = e.ownerDocument.documentElement) + : (l = r); + var f = b(l, d, p); + if ("HTML" === l.nodeName && !w(d)) { + var m = c(), + h = m.height, + g = m.width; + (s.top += f.top - f.marginTop), + (s.bottom = h + f.top), + (s.left += f.left - f.marginLeft), + (s.right = g + f.left); + } else s = f; + } + return (s.left += i), (s.top += i), (s.right -= i), (s.bottom -= i), s; + } + function x(e) { + var t = e.width, + o = e.height; + return t * o; + } + function O(e, t, o, n, i) { + var r = 5 < arguments.length && void 0 !== arguments[5] ? arguments[5] : 0; + if (-1 === e.indexOf("auto")) return e; + var p = v(o, n, r, i), + s = { + top: { width: p.width, height: t.top - p.top }, + right: { width: p.right - t.right, height: p.height }, + bottom: { width: p.width, height: p.bottom - t.bottom }, + left: { width: t.left - p.left, height: p.height } + }, + d = Object.keys(s) + .map(function(e) { + return le({ key: e }, s[e], { area: x(s[e]) }); + }) + .sort(function(e, t) { + return t.area - e.area; + }), + a = d.filter(function(e) { + var t = e.width, + n = e.height; + return t >= o.clientWidth && n >= o.clientHeight; + }), + l = 0 < a.length ? a[0].key : d[0].key, + f = e.split("-")[1]; + return l + (f ? "-" + f : ""); + } + function L(e, t, o) { + var n = + 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null, + i = n ? E(t) : a(t, o); + return b(o, i, n); + } + function S(e) { + var t = getComputedStyle(e), + o = parseFloat(t.marginTop) + parseFloat(t.marginBottom), + n = parseFloat(t.marginLeft) + parseFloat(t.marginRight), + i = { width: e.offsetWidth + n, height: e.offsetHeight + o }; + return i; + } + function T(e) { + var t = { left: "right", right: "left", bottom: "top", top: "bottom" }; + return e.replace(/left|right|bottom|top/g, function(e) { + return t[e]; + }); + } + function C(e, t, o) { + o = o.split("-")[0]; + var n = S(e), + i = { width: n.width, height: n.height }, + r = -1 !== ["right", "left"].indexOf(o), + p = r ? "top" : "left", + s = r ? "left" : "top", + d = r ? "height" : "width", + a = r ? "width" : "height"; + return ( + (i[p] = t[p] + t[d] / 2 - n[d] / 2), + (i[s] = o === s ? t[s] - n[a] : t[T(s)]), + i + ); + } + function D(e, t) { + return Array.prototype.find ? e.find(t) : e.filter(t)[0]; + } + function N(e, t, o) { + if (Array.prototype.findIndex) + return e.findIndex(function(e) { + return e[t] === o; + }); + var n = D(e, function(e) { + return e[t] === o; + }); + return e.indexOf(n); + } + function P(t, o, n) { + var i = void 0 === n ? t : t.slice(0, N(t, "name", n)); + return ( + i.forEach(function(t) { + t["function"] && + console.warn("`modifier.function` is deprecated, use `modifier.fn`!"); + var n = t["function"] || t.fn; + t.enabled && + e(n) && + ((o.offsets.popper = g(o.offsets.popper)), + (o.offsets.reference = g(o.offsets.reference)), + (o = n(o, t))); + }), + o + ); + } + function k() { + if (!this.state.isDestroyed) { + var e = { + instance: this, + styles: {}, + arrowStyles: {}, + attributes: {}, + flipped: !1, + offsets: {} + }; + (e.offsets.reference = L( + this.state, + this.popper, + this.reference, + this.options.positionFixed + )), + (e.placement = O( + this.options.placement, + e.offsets.reference, + this.popper, + this.reference, + this.options.modifiers.flip.boundariesElement, + this.options.modifiers.flip.padding + )), + (e.originalPlacement = e.placement), + (e.positionFixed = this.options.positionFixed), + (e.offsets.popper = C(this.popper, e.offsets.reference, e.placement)), + (e.offsets.popper.position = this.options.positionFixed + ? "fixed" + : "absolute"), + (e = P(this.modifiers, e)), + this.state.isCreated + ? this.options.onUpdate(e) + : ((this.state.isCreated = !0), this.options.onCreate(e)); + } + } + function W(e, t) { + return e.some(function(e) { + var o = e.name, + n = e.enabled; + return n && o === t; + }); + } + function B(e) { + for ( + var t = [!1, "ms", "Webkit", "Moz", "O"], + o = e.charAt(0).toUpperCase() + e.slice(1), + n = 0; + n < t.length; + n++ + ) { + var i = t[n], + r = i ? "" + i + o : e; + if ("undefined" != typeof document.body.style[r]) return r; + } + return null; + } + function H() { + return ( + (this.state.isDestroyed = !0), + W(this.modifiers, "applyStyle") && + (this.popper.removeAttribute("x-placement"), + (this.popper.style.position = ""), + (this.popper.style.top = ""), + (this.popper.style.left = ""), + (this.popper.style.right = ""), + (this.popper.style.bottom = ""), + (this.popper.style.willChange = ""), + (this.popper.style[B("transform")] = "")), + this.disableEventListeners(), + this.options.removeOnDestroy && + this.popper.parentNode.removeChild(this.popper), + this + ); + } + function A(e) { + var t = e.ownerDocument; + return t ? t.defaultView : window; + } + function M(e, t, o, i) { + var r = "BODY" === e.nodeName, + p = r ? e.ownerDocument.defaultView : e; + p.addEventListener(t, o, { passive: !0 }), + r || M(n(p.parentNode), t, o, i), + i.push(p); + } + function I(e, t, o, i) { + (o.updateBound = i), + A(e).addEventListener("resize", o.updateBound, { passive: !0 }); + var r = n(e); + return ( + M(r, "scroll", o.updateBound, o.scrollParents), + (o.scrollElement = r), + (o.eventsEnabled = !0), + o + ); + } + function F() { + this.state.eventsEnabled || + (this.state = I( + this.reference, + this.options, + this.state, + this.scheduleUpdate + )); + } + function R(e, t) { + return ( + A(e).removeEventListener("resize", t.updateBound), + t.scrollParents.forEach(function(e) { + e.removeEventListener("scroll", t.updateBound); + }), + (t.updateBound = null), + (t.scrollParents = []), + (t.scrollElement = null), + (t.eventsEnabled = !1), + t + ); + } + function U() { + this.state.eventsEnabled && + (cancelAnimationFrame(this.scheduleUpdate), + (this.state = R(this.reference, this.state))); + } + function Y(e) { + return "" !== e && !isNaN(parseFloat(e)) && isFinite(e); + } + function j(e, t) { + Object.keys(t).forEach(function(o) { + var n = ""; + -1 !== ["width", "height", "top", "right", "bottom", "left"].indexOf(o) && + Y(t[o]) && + (n = "px"), + (e.style[o] = t[o] + n); + }); + } + function K(e, t) { + Object.keys(t).forEach(function(o) { + var n = t[o]; + !1 === n ? e.removeAttribute(o) : e.setAttribute(o, t[o]); + }); + } + function q(e, t, o) { + var n = D(e, function(e) { + var o = e.name; + return o === t; + }), + i = + !!n && + e.some(function(e) { + return e.name === o && e.enabled && e.order < n.order; + }); + if (!i) { + var r = "`" + t + "`"; + console.warn( + "`" + + o + + "`" + + " modifier is required by " + + r + + " modifier in order to work, be sure to include it before " + + r + + "!" + ); + } + return i; + } + function G(e) { + return "end" === e ? "start" : "start" === e ? "end" : e; + } + function z(e) { + var t = 1 < arguments.length && void 0 !== arguments[1] && arguments[1], + o = me.indexOf(e), + n = me.slice(o + 1).concat(me.slice(0, o)); + return t ? n.reverse() : n; + } + function V(e, t, o, n) { + var i = e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/), + r = +i[1], + p = i[2]; + if (!r) return e; + if (0 === p.indexOf("%")) { + var s; + switch (p) { + case "%p": + s = o; + break; + case "%": + case "%r": + default: + s = n; + } + var d = g(s); + return (d[t] / 100) * r; + } + if ("vh" === p || "vw" === p) { + var a; + return ( + (a = + "vh" === p + ? $(document.documentElement.clientHeight, window.innerHeight || 0) + : $(document.documentElement.clientWidth, window.innerWidth || 0)), + (a / 100) * r + ); + } + return r; + } + function _(e, t, o, n) { + var i = [0, 0], + r = -1 !== ["right", "left"].indexOf(n), + p = e.split(/(\+|\-)/).map(function(e) { + return e.trim(); + }), + s = p.indexOf( + D(p, function(e) { + return -1 !== e.search(/,|\s/); + }) + ); + p[s] && + -1 === p[s].indexOf(",") && + console.warn( + "Offsets separated by white space(s) are deprecated, use a comma (,) instead." + ); + var d = /\s*,\s*|\s+/, + a = + -1 === s + ? [p] + : [ + p.slice(0, s).concat([p[s].split(d)[0]]), + [p[s].split(d)[1]].concat(p.slice(s + 1)) + ]; + return ( + (a = a.map(function(e, n) { + var i = (1 === n ? !r : r) ? "height" : "width", + p = !1; + return e + .reduce(function(e, t) { + return "" === e[e.length - 1] && -1 !== ["+", "-"].indexOf(t) + ? ((e[e.length - 1] = t), (p = !0), e) + : p + ? ((e[e.length - 1] += t), (p = !1), e) + : e.concat(t); + }, []) + .map(function(e) { + return V(e, i, t, o); + }); + })), + a.forEach(function(e, t) { + e.forEach(function(o, n) { + Y(o) && (i[t] += o * ("-" === e[n - 1] ? -1 : 1)); + }); + }), + i + ); + } + function X(e, t) { + var o, + n = t.offset, + i = e.placement, + r = e.offsets, + p = r.popper, + s = r.reference, + d = i.split("-")[0]; + return ( + (o = Y(+n) ? [+n, 0] : _(n, p, s, d)), + "left" === d + ? ((p.top += o[0]), (p.left -= o[1])) + : "right" === d + ? ((p.top += o[0]), (p.left += o[1])) + : "top" === d + ? ((p.left += o[0]), (p.top -= o[1])) + : "bottom" === d && ((p.left += o[0]), (p.top += o[1])), + (e.popper = p), + e + ); + } + for ( + var J = Math.min, + Q = Math.round, + Z = Math.floor, + $ = Math.max, + ee = "undefined" != typeof window && "undefined" != typeof document, + te = ["Edge", "Trident", "Firefox"], + oe = 0, + ne = 0; + ne < te.length; + ne += 1 + ) + if (ee && 0 <= navigator.userAgent.indexOf(te[ne])) { + oe = 1; + break; + } + var i = ee && window.Promise, + ie = i + ? function(e) { + var t = !1; + return function() { + t || + ((t = !0), + window.Promise.resolve().then(function() { + (t = !1), e(); + })); + }; + } + : function(e) { + var t = !1; + return function() { + t || + ((t = !0), + setTimeout(function() { + (t = !1), e(); + }, oe)); + }; + }, + re = ee && !!(window.MSInputMethodContext && document.documentMode), + pe = ee && /MSIE 10/.test(navigator.userAgent), + se = function(e, t) { + if (!(e instanceof t)) + throw new TypeError("Cannot call a class as a function"); + }, + de = (function() { + function e(e, t) { + for (var o, n = 0; n < t.length; n++) + (o = t[n]), + (o.enumerable = o.enumerable || !1), + (o.configurable = !0), + "value" in o && (o.writable = !0), + Object.defineProperty(e, o.key, o); + } + return function(t, o, n) { + return o && e(t.prototype, o), n && e(t, n), t; + }; + })(), + ae = function(e, t, o) { + return ( + t in e + ? Object.defineProperty(e, t, { + value: o, + enumerable: !0, + configurable: !0, + writable: !0 + }) + : (e[t] = o), + e + ); + }, + le = + Object.assign || + function(e) { + for (var t, o = 1; o < arguments.length; o++) + for (var n in ((t = arguments[o]), t)) + Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]); + return e; + }, + fe = [ + "auto-start", + "auto", + "auto-end", + "top-start", + "top", + "top-end", + "right-start", + "right", + "right-end", + "bottom-end", + "bottom", + "bottom-start", + "left-end", + "left", + "left-start" + ], + me = fe.slice(3), + he = { + FLIP: "flip", + CLOCKWISE: "clockwise", + COUNTERCLOCKWISE: "counterclockwise" + }, + ce = (function() { + function t(o, n) { + var i = this, + r = + 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : {}; + se(this, t), + (this.scheduleUpdate = function() { + return requestAnimationFrame(i.update); + }), + (this.update = ie(this.update.bind(this))), + (this.options = le({}, t.Defaults, r)), + (this.state = { isDestroyed: !1, isCreated: !1, scrollParents: [] }), + (this.reference = o && o.jquery ? o[0] : o), + (this.popper = n && n.jquery ? n[0] : n), + (this.options.modifiers = {}), + Object.keys(le({}, t.Defaults.modifiers, r.modifiers)).forEach( + function(e) { + i.options.modifiers[e] = le( + {}, + t.Defaults.modifiers[e] || {}, + r.modifiers ? r.modifiers[e] : {} + ); + } + ), + (this.modifiers = Object.keys(this.options.modifiers) + .map(function(e) { + return le({ name: e }, i.options.modifiers[e]); + }) + .sort(function(e, t) { + return e.order - t.order; + })), + this.modifiers.forEach(function(t) { + t.enabled && + e(t.onLoad) && + t.onLoad(i.reference, i.popper, i.options, t, i.state); + }), + this.update(); + var p = this.options.eventsEnabled; + p && this.enableEventListeners(), (this.state.eventsEnabled = p); + } + return ( + de(t, [ + { + key: "update", + value: function() { + return k.call(this); + } + }, + { + key: "destroy", + value: function() { + return H.call(this); + } + }, + { + key: "enableEventListeners", + value: function() { + return F.call(this); + } + }, + { + key: "disableEventListeners", + value: function() { + return U.call(this); + } + } + ]), + t + ); + })(); + return ( + (ce.Utils = ("undefined" == typeof window ? global : window).PopperUtils), + (ce.placements = fe), + (ce.Defaults = { + placement: "bottom", + positionFixed: !1, + eventsEnabled: !0, + removeOnDestroy: !1, + onCreate: function() {}, + onUpdate: function() {}, + modifiers: { + shift: { + order: 100, + enabled: !0, + fn: function(e) { + var t = e.placement, + o = t.split("-")[0], + n = t.split("-")[1]; + if (n) { + var i = e.offsets, + r = i.reference, + p = i.popper, + s = -1 !== ["bottom", "top"].indexOf(o), + d = s ? "left" : "top", + a = s ? "width" : "height", + l = { + start: ae({}, d, r[d]), + end: ae({}, d, r[d] + r[a] - p[a]) + }; + e.offsets.popper = le({}, p, l[n]); + } + return e; + } + }, + offset: { order: 200, enabled: !0, fn: X, offset: 0 }, + preventOverflow: { + order: 300, + enabled: !0, + fn: function(e, t) { + var o = t.boundariesElement || p(e.instance.popper); + e.instance.reference === o && (o = p(o)); + var n = B("transform"), + i = e.instance.popper.style, + r = i.top, + s = i.left, + d = i[n]; + (i.top = ""), (i.left = ""), (i[n] = ""); + var a = v( + e.instance.popper, + e.instance.reference, + t.padding, + o, + e.positionFixed + ); + (i.top = r), (i.left = s), (i[n] = d), (t.boundaries = a); + var l = t.priority, + f = e.offsets.popper, + m = { + primary: function(e) { + var o = f[e]; + return ( + f[e] < a[e] && + !t.escapeWithReference && + (o = $(f[e], a[e])), + ae({}, e, o) + ); + }, + secondary: function(e) { + var o = "right" === e ? "left" : "top", + n = f[o]; + return ( + f[e] > a[e] && + !t.escapeWithReference && + (n = J( + f[o], + a[e] - ("right" === e ? f.width : f.height) + )), + ae({}, o, n) + ); + } + }; + return ( + l.forEach(function(e) { + var t = + -1 === ["left", "top"].indexOf(e) ? "secondary" : "primary"; + f = le({}, f, m[t](e)); + }), + (e.offsets.popper = f), + e + ); + }, + priority: ["left", "right", "top", "bottom"], + padding: 5, + boundariesElement: "scrollParent" + }, + keepTogether: { + order: 400, + enabled: !0, + fn: function(e) { + var t = e.offsets, + o = t.popper, + n = t.reference, + i = e.placement.split("-")[0], + r = Z, + p = -1 !== ["top", "bottom"].indexOf(i), + s = p ? "right" : "bottom", + d = p ? "left" : "top", + a = p ? "width" : "height"; + return ( + o[s] < r(n[d]) && (e.offsets.popper[d] = r(n[d]) - o[a]), + o[d] > r(n[s]) && (e.offsets.popper[d] = r(n[s])), + e + ); + } + }, + arrow: { + order: 500, + enabled: !0, + fn: function(e, o) { + var n; + if (!q(e.instance.modifiers, "arrow", "keepTogether")) return e; + var i = o.element; + if ("string" == typeof i) { + if (((i = e.instance.popper.querySelector(i)), !i)) return e; + } else if (!e.instance.popper.contains(i)) + return ( + console.warn( + "WARNING: `arrow.element` must be child of its popper element!" + ), + e + ); + var r = e.placement.split("-")[0], + p = e.offsets, + s = p.popper, + d = p.reference, + a = -1 !== ["left", "right"].indexOf(r), + l = a ? "height" : "width", + f = a ? "Top" : "Left", + m = f.toLowerCase(), + h = a ? "left" : "top", + c = a ? "bottom" : "right", + u = S(i)[l]; + d[c] - u < s[m] && (e.offsets.popper[m] -= s[m] - (d[c] - u)), + d[m] + u > s[c] && (e.offsets.popper[m] += d[m] + u - s[c]), + (e.offsets.popper = g(e.offsets.popper)); + var b = d[m] + d[l] / 2 - u / 2, + y = t(e.instance.popper), + w = parseFloat(y["margin" + f], 10), + E = parseFloat(y["border" + f + "Width"], 10), + v = b - e.offsets.popper[m] - w - E; + return ( + (v = $(J(s[l] - u, v), 0)), + (e.arrowElement = i), + (e.offsets.arrow = ((n = {}), ae(n, m, Q(v)), ae(n, h, ""), n)), + e + ); + }, + element: "[x-arrow]" + }, + flip: { + order: 600, + enabled: !0, + fn: function(e, t) { + if (W(e.instance.modifiers, "inner")) return e; + if (e.flipped && e.placement === e.originalPlacement) return e; + var o = v( + e.instance.popper, + e.instance.reference, + t.padding, + t.boundariesElement, + e.positionFixed + ), + n = e.placement.split("-")[0], + i = T(n), + r = e.placement.split("-")[1] || "", + p = []; + switch (t.behavior) { + case he.FLIP: + p = [n, i]; + break; + case he.CLOCKWISE: + p = z(n); + break; + case he.COUNTERCLOCKWISE: + p = z(n, !0); + break; + default: + p = t.behavior; + } + return ( + p.forEach(function(s, d) { + if (n !== s || p.length === d + 1) return e; + (n = e.placement.split("-")[0]), (i = T(n)); + var a = e.offsets.popper, + l = e.offsets.reference, + f = Z, + m = + ("left" === n && f(a.right) > f(l.left)) || + ("right" === n && f(a.left) < f(l.right)) || + ("top" === n && f(a.bottom) > f(l.top)) || + ("bottom" === n && f(a.top) < f(l.bottom)), + h = f(a.left) < f(o.left), + c = f(a.right) > f(o.right), + g = f(a.top) < f(o.top), + u = f(a.bottom) > f(o.bottom), + b = + ("left" === n && h) || + ("right" === n && c) || + ("top" === n && g) || + ("bottom" === n && u), + y = -1 !== ["top", "bottom"].indexOf(n), + w = + !!t.flipVariations && + ((y && "start" === r && h) || + (y && "end" === r && c) || + (!y && "start" === r && g) || + (!y && "end" === r && u)); + (m || b || w) && + ((e.flipped = !0), + (m || b) && (n = p[d + 1]), + w && (r = G(r)), + (e.placement = n + (r ? "-" + r : "")), + (e.offsets.popper = le( + {}, + e.offsets.popper, + C(e.instance.popper, e.offsets.reference, e.placement) + )), + (e = P(e.instance.modifiers, e, "flip"))); + }), + e + ); + }, + behavior: "flip", + padding: 5, + boundariesElement: "viewport" + }, + inner: { + order: 700, + enabled: !1, + fn: function(e) { + var t = e.placement, + o = t.split("-")[0], + n = e.offsets, + i = n.popper, + r = n.reference, + p = -1 !== ["left", "right"].indexOf(o), + s = -1 === ["top", "left"].indexOf(o); + return ( + (i[p ? "left" : "top"] = + r[o] - (s ? i[p ? "width" : "height"] : 0)), + (e.placement = T(t)), + (e.offsets.popper = g(i)), + e + ); + } + }, + hide: { + order: 800, + enabled: !0, + fn: function(e) { + if (!q(e.instance.modifiers, "hide", "preventOverflow")) return e; + var t = e.offsets.reference, + o = D(e.instance.modifiers, function(e) { + return "preventOverflow" === e.name; + }).boundaries; + if ( + t.bottom < o.top || + t.left > o.right || + t.top > o.bottom || + t.right < o.left + ) { + if (!0 === e.hide) return e; + (e.hide = !0), (e.attributes["x-out-of-boundaries"] = ""); + } else { + if (!1 === e.hide) return e; + (e.hide = !1), (e.attributes["x-out-of-boundaries"] = !1); + } + return e; + } + }, + computeStyle: { + order: 850, + enabled: !0, + fn: function(e, t) { + var o = t.x, + n = t.y, + i = e.offsets.popper, + r = D(e.instance.modifiers, function(e) { + return "applyStyle" === e.name; + }).gpuAcceleration; + void 0 !== r && + console.warn( + "WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!" + ); + var s, + d, + a = void 0 === r ? t.gpuAcceleration : r, + l = p(e.instance.popper), + f = u(l), + m = { position: i.position }, + h = { + left: Z(i.left), + top: Q(i.top), + bottom: Q(i.bottom), + right: Z(i.right) + }, + c = "bottom" === o ? "top" : "bottom", + g = "right" === n ? "left" : "right", + b = B("transform"); + if ( + ((d = "bottom" == c ? -f.height + h.bottom : h.top), + (s = "right" == g ? -f.width + h.right : h.left), + a && b) + ) + (m[b] = "translate3d(" + s + "px, " + d + "px, 0)"), + (m[c] = 0), + (m[g] = 0), + (m.willChange = "transform"); + else { + var y = "bottom" == c ? -1 : 1, + w = "right" == g ? -1 : 1; + (m[c] = d * y), (m[g] = s * w), (m.willChange = c + ", " + g); + } + var E = { "x-placement": e.placement }; + return ( + (e.attributes = le({}, E, e.attributes)), + (e.styles = le({}, m, e.styles)), + (e.arrowStyles = le({}, e.offsets.arrow, e.arrowStyles)), + e + ); + }, + gpuAcceleration: !0, + x: "bottom", + y: "right" + }, + applyStyle: { + order: 900, + enabled: !0, + fn: function(e) { + return ( + j(e.instance.popper, e.styles), + K(e.instance.popper, e.attributes), + e.arrowElement && + Object.keys(e.arrowStyles).length && + j(e.arrowElement, e.arrowStyles), + e + ); + }, + onLoad: function(e, t, o, n, i) { + var r = L(i, t, e, o.positionFixed), + p = O( + o.placement, + r, + t, + e, + o.modifiers.flip.boundariesElement, + o.modifiers.flip.padding + ); + return ( + t.setAttribute("x-placement", p), + j(t, { position: o.positionFixed ? "fixed" : "absolute" }), + o + ); + }, + gpuAcceleration: void 0 + } + } + }), + ce + ); +}); +//# sourceMappingURL=popper.min.js.map diff --git a/src/files/static/web/templates/500.html b/src/files/static/web/templates/500.html new file mode 100644 index 0000000..80cf44c --- /dev/null +++ b/src/files/static/web/templates/500.html @@ -0,0 +1 @@ +

This is an HTTP 500 page

\ No newline at end of file diff --git a/src/files/static/web/templates/home.html b/src/files/static/web/templates/home.html new file mode 100644 index 0000000..6c6df22 --- /dev/null +++ b/src/files/static/web/templates/home.html @@ -0,0 +1,12 @@ +{% extends "_layout.html" %} + +{% block title %} + Homepage +{% endblock %} + +{% block header %} +{% endblock %} + +{% block content %} +

Homepage

+{% endblock %} \ No newline at end of file diff --git a/src/files/static/web/util/assets.py b/src/files/static/web/util/assets.py new file mode 100644 index 0000000..660ee66 --- /dev/null +++ b/src/files/static/web/util/assets.py @@ -0,0 +1,30 @@ +from flask_assets import Bundle + +bundles = { + + 'home_js': Bundle( + 'js/vendor/jquery-3.3.1.js', + 'js/vendor/popper.js', + 'js/vendor/bootstrap-4.1.3.js', + 'js/custom.js', + filters='jsmin', + output='gen/home.%(version)s.js'), + + 'home_css': Bundle( + 'css/vendor/bootstrap-4.1.3.css', + 'css/custom.css', + filters='cssmin', + output='gen/home.%(version)s.css'), + + # 'admin_js': Bundle( + # 'js/lib/jquery-1.10.2.js', + # 'js/lib/Chart.js', + # 'js/admin.js', + # output='gen/admin.js'), + + # 'admin_css': Bundle( + # 'css/lib/reset.css', + # 'css/common.css', + # 'css/admin.css', + # output='gen/admin.css') +} \ No newline at end of file diff --git a/src/files/templates_layout.py b/src/files/templates_layout.py new file mode 100644 index 0000000..ba36a6a --- /dev/null +++ b/src/files/templates_layout.py @@ -0,0 +1,38 @@ +from textwrap import dedent + +def templates_layout(name): + return dedent(f"""\ + + + + + + + + + {{% assets "home_css" %}} + + {{% endassets %}} + + {{% assets "home_js" %}} + + {{% endassets %}} + + {{% block header %}} + {{% endblock %}} + + + {{% block title %}} + {{% endblock %}}{name} + + + + + {{% block content %}} + {{% endblock %}} + + + + """) \ No newline at end of file diff --git a/src/templates.py b/src/templates.py new file mode 100644 index 0000000..cf10729 --- /dev/null +++ b/src/templates.py @@ -0,0 +1,33 @@ +import os +from os.path import dirname, abspath, isfile, join +from .utils.write_file import write_file +from shutil import copytree, copy +from .files import ( + readme, + gitignore, + app, + env, + start, + templates_layout +) + +def gen_template(name): + os.mkdir(name) + web_path = name + f"/{name}_web" + api_path = name + f"/{name}_api" + root = dirname(abspath(__file__)) + static_path = root + "/files/static" + static_files = [join(static_path, f) for f in os.listdir(static_path) if isfile(join(static_path, f))] + for f in static_files: + copy(f, name) + copytree(static_path + "/web", web_path) + copytree(static_path + "/api", api_path) + os.makedirs(api_path + "/blueprints") + os.makedirs(web_path + "/blueprints") + write_file(name + "/.gitignore", gitignore(name)) + write_file(name + "/README.md", readme(name)) + write_file(name + "/app.py", app(name)) + write_file(name + "/.env", env(name)) + write_file(name + "/start.py", start(name)) + write_file(name + f"/{name}_web/templates/_layout.html", templates_layout(name)) + diff --git a/src/utils/__init__.py b/src/utils/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/utils/write_file.py b/src/utils/write_file.py new file mode 100644 index 0000000..0d21728 --- /dev/null +++ b/src/utils/write_file.py @@ -0,0 +1,4 @@ +def write_file(loc, cont): + f = open(loc, "w+") + f.write(cont) + f.close() \ No newline at end of file