├── runtime.txt ├── Procfile ├── .gitignore ├── requirements.txt ├── settings.py ├── README.md ├── models.py ├── utilities.py ├── bots.py ├── site_interface.py ├── twitter_tools.py ├── static ├── css │ ├── bootstrap-reboot.min.css │ ├── bootstrap-reboot.css │ ├── bootstrap-grid.min.css │ ├── bootstrap-reboot.min.css.map │ └── bootstrap-grid.css └── js │ ├── popper.min.js │ └── bootstrap.min.js └── templates ├── index.html └── new_story.html /runtime.txt: -------------------------------------------------------------------------------- 1 | python-3.6.2 -------------------------------------------------------------------------------- /Procfile: -------------------------------------------------------------------------------- 1 | web: gunicorn site_interface:app -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Leave out Python notebooks 2 | *.ipynb 3 | 4 | # Random cached stuff 5 | .DS_Store 6 | __pycache__/ 7 | 8 | # Create one to store your credentials: 9 | .env 10 | 11 | # For Facebook SDK 12 | src/ -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | tweepy 2 | gunicorn 3 | Jinja2 4 | pendulum 5 | python-dotenv 6 | BeautifulSoup4 7 | mongoengine 8 | Flask 9 | flask-mongoengine 10 | -e git+https://github.com/mobolic/facebook-sdk.git#egg=facebook-sdk 11 | -------------------------------------------------------------------------------- /settings.py: -------------------------------------------------------------------------------- 1 | import os 2 | import pathlib 3 | from dotenv import load_dotenv 4 | 5 | BASE_DIR = pathlib.Path(os.path.dirname(__file__)) 6 | TIMEZONE = 'America/Sao_Paulo' 7 | 8 | # Load environment variables from `.env` file (if exists) 9 | ENV_FILE = BASE_DIR / '.env' 10 | if ENV_FILE.exists(): 11 | load_dotenv(ENV_FILE) 12 | 13 | # Database 14 | MONGODB_URI = os.environ['MONGODB_URI'] 15 | # On Mlab, the URI has the Default DB already 16 | DEFAULT_DB = MONGODB_URI.split('/')[-1] 17 | 18 | # Twitter 19 | ACCESS_KEY = os.environ['ACCESS_KEY'] 20 | ACCESS_SECRET = os.environ['ACCESS_SECRET'] 21 | CONSUMER_KEY = os.environ['CONSUMER_KEY'] 22 | CONSUMER_SECRET = os.environ['CONSUMER_SECRET'] 23 | 24 | # Bit.ly 25 | BITLY_TOKEN = os.environ['BITLY_TOKEN'] 26 | 27 | # Facebook 28 | FACEBOOK_TOKEN = os.environ['FACEBOOK_TOKEN'] 29 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Fact-checking Twitter-bot 2 | 3 | ## Intro 4 | 5 | A simple Python mini-app to correct people who share inaccurate information on Twitter. You can run this [Flask app](flask.pocoo.org/docs/0.12/quickstart/) locally to input links of fake stories and to their respective debunking on an online spreadsheet. Not much coding required. You just need to put the variables on a .env file, install the requirements and type `flask run`. 6 | 7 | 8 | ## Installation 9 | 10 | The easiest way to run online: clone (download) this repository and get it running on Heroku. You'll need: 11 | 12 | * A [free Heroku account](https://www.heroku.com/); 13 | * [Github account](https://github.com/); 14 | * Access to a [Twitter](https://twitter.com/) account (you can use your own); 15 | * A Bit.ly account. 16 | * [Python 3.6+](https://www.python.org/downloads/) installed on your machine (to run tests locally); 17 | 18 | Store all the variables (Twitter access keys, Bit.ly, atc) in the Heroku app. Connect your Git repository to Heroku and you’re almost set! You’ll need to schedule a couple of commands to run from time to time. 19 | 20 | Step by step instructions TK. -------------------------------------------------------------------------------- /models.py: -------------------------------------------------------------------------------- 1 | import settings 2 | from pendulum import now 3 | import mongoengine as mongo 4 | 5 | # Initiates the database connection 6 | mongo.connect( 7 | db=settings.DEFAULT_DB, 8 | host=settings.MONGODB_URI 9 | ) 10 | 11 | 12 | class TwitterUser(mongo.EmbeddedDocument): 13 | description = mongo.StringField() 14 | followers_count = mongo.IntField() 15 | friends_count = mongo.IntField() 16 | id_str = mongo.StringField() 17 | location = mongo.StringField() 18 | name = mongo.StringField() 19 | screen_name = mongo.StringField() 20 | verified = mongo.BooleanField() 21 | 22 | 23 | class Tweet(mongo.Document): 24 | created_at = mongo.DateTimeField() 25 | id_str = mongo.StringField(unique=True) 26 | favorite_count = mongo.IntField() 27 | text = mongo.StringField() 28 | retweeted = mongo.BooleanField() 29 | retweet_count = mongo.IntField() 30 | link_url = mongo.URLField() 31 | fake_news_url = mongo.URLField() 32 | user = mongo.EmbeddedDocumentField(TwitterUser) 33 | fact_checked = mongo.BooleanField(default=False) 34 | 35 | 36 | class TweetFactCheck(mongo.Document): 37 | fake_news_url = mongo.URLField() 38 | clicks = mongo.IntField(default=0) 39 | created_at = mongo.DateTimeField(default=now()) 40 | id_str = mongo.StringField(unique=True) 41 | replied = mongo.BooleanField(default=False) 42 | text = mongo.StringField() 43 | 44 | 45 | class FakeNews(mongo.Document): 46 | fake_news_url = mongo.URLField(unique=True) 47 | title = mongo.StringField() 48 | thumbnail = mongo.URLField() 49 | facebook_shares = mongo.IntField() 50 | source = mongo.StringField() 51 | message_1 = mongo.StringField() 52 | message_2 = mongo.StringField() 53 | tweets = mongo.IntField() 54 | clicks = mongo.IntField() 55 | replies = mongo.ListField() 56 | correct_url = mongo.URLField() 57 | shortened_url = mongo.URLField() 58 | -------------------------------------------------------------------------------- /utilities.py: -------------------------------------------------------------------------------- 1 | from facebook import GraphAPI 2 | from urllib.parse import quote 3 | import requests 4 | import settings 5 | 6 | 7 | # Creates a Bit.ly link, add utm info 8 | def build_link(link): 9 | link = link.split('?')[0] 10 | link += '?utm_source=fact_checking_bot' 11 | url = link.replace(':', '%3A').replace('/', '%2F') 12 | token = settings.BITLY_TOKEN 13 | bitly_request = f'https://api-ssl.bitly.com/v3/shorten?access_token={token}&longUrl={url}' 14 | try: 15 | return requests.get(bitly_request).json()['data']['url'] 16 | except KeyError: 17 | return link 18 | 19 | 20 | def get_url_info(url): 21 | ''' 22 | Capture opengraph data from links. 23 | It tries to get everything from Facebook. 24 | TO DO: Have a default image when no image is found 25 | ''' 26 | token = settings.FACEBOOK_TOKEN 27 | fb_graph = GraphAPI(access_token=token, version='2.10') 28 | fb_info = fb_graph.get_object( 29 | id=quote(url), 30 | fields=['engagement,og_object{image,description,title,updated_time}'] 31 | ) 32 | if fb_info: 33 | try: 34 | return dict( 35 | thumbnail=fb_info['og_object']['image'][0]['url'], 36 | facebook_shares=fb_info['engagement']['share_count'], 37 | title=fb_info['og_object']['title'], 38 | description=fb_info['og_object']['description'], 39 | source=url.split('/')[2] 40 | ) 41 | except KeyError: 42 | from webpreview import web_preview 43 | metadata = web_preview(url) 44 | return dict( 45 | thumbnail=metadata[2], 46 | facebook_shares=fb_info['engagement']['share_count'], 47 | title=metadata[0], 48 | description=metadata[1], 49 | source=url.split('/')[2] 50 | ) 51 | else: 52 | return dict( 53 | thumbnail='', facebook_shares=0, title='', 54 | description='', source=url.split('/')[2] 55 | ) 56 | -------------------------------------------------------------------------------- /bots.py: -------------------------------------------------------------------------------- 1 | import settings 2 | from twitter_tools import TwitterBot 3 | from models import Tweet, TweetFactCheck, FakeNews 4 | 5 | 6 | ''' 7 | Updates FakeNews Database 8 | Look at TweetFactCheck database, see what was latest message/url 9 | Create list of what was tweeted (not to repeat) 10 | Look at FakeNews database, select recent posts (with more followers / retweets) 11 | tweet at a person 12 | ''' 13 | 14 | 15 | def update_story_db(url): 16 | bot = TwitterBot( 17 | settings.ACCESS_KEY, settings.ACCESS_SECRET, 18 | settings.CONSUMER_KEY, settings.CONSUMER_SECRET 19 | ) 20 | bot.search(url) 21 | total_added = Tweet.objects(fake_news_url=url).count() 22 | print(f'{total_added} tweets mentioning {url} added.') 23 | 24 | 25 | def update_fakenews_db(): 26 | urls = FakeNews.objects(fake_news_url__exists=1).values_list('fake_news_url', 'tweets') 27 | for fake_story, tweets in urls: 28 | update_story_db(fake_story) 29 | data_object = FakeNews.objects.get(fake_news_url=fake_story) 30 | data_object.tweets = Tweet.objects(fake_news_url=fake_story).count() 31 | data_object.save() 32 | 33 | 34 | def tweet_fact_check(): 35 | bot = TwitterBot( 36 | settings.ACCESS_KEY, settings.ACCESS_SECRET, 37 | settings.CONSUMER_KEY, settings.CONSUMER_SECRET 38 | ) 39 | query = Tweet.objects(fact_checked=False).order_by( 40 | '-user__followers_count').values_list( 41 | 'id_str', 'fake_news_url', 'user__screen_name').first() 42 | fake_story = FakeNews.objects.get(fake_news_url=query[1]) 43 | correct_link = fake_story.shortened_url 44 | message = fake_story.message_1 45 | fc_tweet = bot.tweet_factcheck(query[0], query[2], message, correct_link) 46 | return query 47 | 48 | 49 | # Different method of getting specific 50 | def specific_tweet_fact_check(fake_news_url): 51 | from mongoengine.queryset.visitor import Q 52 | query = Tweet.objects( 53 | Q(fake_news_url=fake_news_url) & 54 | Q(fact_checked=False)).order_by( 55 | '-user__followers_count').values_list( 56 | 'id_str', 'fake_news_url', 'user__screen_name').first() 57 | return query 58 | 59 | 60 | 61 | #Tweet.objects(fake_news_url=fake_news_url).order_by('-user__followers_count').values_list('id_str', 'user__followers_count') 62 | -------------------------------------------------------------------------------- /site_interface.py: -------------------------------------------------------------------------------- 1 | from flask import Flask, render_template, request, redirect, url_for 2 | from utilities import get_url_info, build_link 3 | from mongoengine.errors import ValidationError 4 | from models import FakeNews 5 | from bots import tweet_fact_check, update_fakenews_db 6 | 7 | app = Flask(__name__) 8 | 9 | 10 | @app.route('/', methods=['GET', 'POST']) 11 | def home(): 12 | if request.method == 'GET': 13 | fake_stories = FakeNews.objects() 14 | return render_template('index.html', stories=fake_stories) 15 | else: 16 | fake_url = request.form['run'] 17 | #story = FakeNews.objects.get(fake_news_url=fake_url).fake_news_url 18 | tweet_fact_check() 19 | return redirect(url_for('home')) 20 | 21 | 22 | @app.route('/edit/', methods=['GET', 'POST']) 23 | def edit_story(storyid=None): 24 | story = FakeNews.objects.get(id=storyid) 25 | if request.method == 'POST': 26 | for field in request.form: 27 | if request.form[field] == '': 28 | story[field] = None 29 | else: 30 | story[field] = request.form[field] 31 | try: 32 | story.save() 33 | 34 | return redirect(url_for('home')) 35 | except ValidationError: 36 | return redirect(url_for('home')) 37 | else: 38 | return render_template('new_story.html', story=story) 39 | 40 | 41 | @app.route('/new/', methods=['GET', 'POST']) 42 | def new_story(): 43 | if request.method == 'POST': 44 | story = FakeNews() 45 | for field in request.form: 46 | if request.form[field] == '': 47 | story[field] = None 48 | else: 49 | story[field] = request.form[field] 50 | metadata = get_url_info(request.form['fake_news_url']) 51 | print(metadata) 52 | story.title = metadata['title'] 53 | story.thumbnail = metadata['thumbnail'] 54 | story.facebook_shares = metadata['facebook_shares'] 55 | story.source = metadata['source'] 56 | story.shortened_url = build_link(request.form['correct_url']) 57 | try: 58 | story.save() 59 | update_fakenews_db() 60 | return redirect(url_for('home')) 61 | except ValidationError: 62 | return 'There was an error in the form. Try again.' 63 | else: 64 | return render_template('new_story.html', story=FakeNews()) 65 | -------------------------------------------------------------------------------- /twitter_tools.py: -------------------------------------------------------------------------------- 1 | import tweepy 2 | import time 3 | from mongoengine import NotUniqueError 4 | import pendulum 5 | from models import Tweet, TwitterUser 6 | 7 | 8 | def parse_tweet_url(tweet_json): 9 | try: 10 | url = tweet_json['entities']['urls'][0]['expanded_url'] 11 | cleaned_url = url.split('?')[0] 12 | except IndexError: 13 | cleaned_url = 'https://www.twitter.com' 14 | return cleaned_url 15 | 16 | 17 | # Returns the last tweet stored in the database related to a given URL 18 | def last_tweet_id(link): 19 | if Tweet.objects(fake_news_url=link).count() == 0: 20 | return None 21 | else: 22 | return Tweet.objects(fake_news_url=link).order_by('-created_at')[0].id_str 23 | 24 | 25 | # Helper function to find users with the most followings that shared the story 26 | def find_top_hoaxers(fake_news_url): 27 | Tweet.objects(fake_news_url=fake_news_url).order_by('-followers_count') 28 | 29 | 30 | class TwitterBot: 31 | 32 | 'Interacts with the Twitter API and the Tweets database' 33 | 34 | def __init__(self, access_token, access_token_secret, 35 | consumer_key, consumer_secret): 36 | auth = tweepy.OAuthHandler(consumer_key, consumer_secret) 37 | auth.set_access_token(access_token, access_token_secret) 38 | self._api = tweepy.API(auth) 39 | 40 | def search(self, link): 41 | search_link = link.split('://')[1] 42 | response = tweepy.Cursor(self._api.search, q=search_link) 43 | # TO DO: Investigate why Twitter doesn't like https:// links 44 | last_tweet = last_tweet_id(link) 45 | found = False 46 | for page in response.pages(): 47 | while not found: 48 | for status in page: 49 | try: 50 | tweet = self.read_status(status, link) 51 | if tweet.id_str == last_tweet: 52 | found = True 53 | else: 54 | try: 55 | tweet.save() 56 | except NotUniqueError: 57 | found = True 58 | except tweepy.TweepError: 59 | # api limit exceeded. Waiting 15 minutes 60 | time.sleep(60 * 15) 61 | continue 62 | 63 | def read_status(self, status, search_url): 64 | # A better way to process Tweepy individual results 65 | nt = status._json 66 | new_twitter_user = TwitterUser( 67 | description=nt['user']['description'], 68 | followers_count=nt['user']['followers_count'], 69 | friends_count=nt['user']['friends_count'], 70 | id_str=nt['user']['id_str'], 71 | location=nt['user']['location'], 72 | name=nt['user']['name'], 73 | screen_name=nt['user']['screen_name'], 74 | verified=nt['user']['verified'], 75 | ) 76 | new_tweet = Tweet( 77 | created_at=pendulum.parse(nt['created_at']), 78 | id_str=nt['id_str'], 79 | favorite_count=nt['favorite_count'], 80 | text=nt['text'], 81 | retweeted=nt['retweeted'], 82 | retweet_count=nt['retweet_count'], 83 | link_url=parse_tweet_url(nt), 84 | fake_news_url=search_url, 85 | user=new_twitter_user 86 | ) 87 | return new_tweet 88 | 89 | def tweet_factcheck(self, tweet_id_str, user, message, correct_link): 90 | message = f'@{user} {message} {correct_link}' 91 | new = self._api.update_status(message, in_reply_to_status_id=tweet_id_str) 92 | print('success') 93 | return new 94 | -------------------------------------------------------------------------------- /static/css/bootstrap-reboot.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Reboot v4.0.0-beta.2 (https://getbootstrap.com) 3 | * Copyright 2011-2017 The Bootstrap Authors 4 | * Copyright 2011-2017 Twitter, Inc. 5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 6 | * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md) 7 | */*,::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,dialog,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";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:monospace,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:not(:root){overflow:hidden}[role=button],a,area,button,input:not([type=range]),label,select,summary,textarea{-ms-touch-action:manipulation;touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#868e96;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}template{display:none}[hidden]{display:none!important} 8 | /*# sourceMappingURL=bootstrap-reboot.min.css.map */ -------------------------------------------------------------------------------- /templates/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Fact-checking Twitter Bot 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 40 | 41 |
42 |
43 |

Fact-Checking bot

44 |

A simple way to redirect people that share falsehoods on Twitter to 45 | real journalism.

46 |
47 |
48 | 49 | 50 | 51 |
52 |

Latest fake stories:

53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | {% for story in stories %} 66 | 67 | 70 | 76 | 77 | 78 | 84 | 85 | {% endfor %} 86 | 87 |
Story# Twitter Shares# Facebook SharesTwitterBot Action
68 | 69 | {{ story.title }} 71 |
72 |

{{ story.description }}

73 |
74 | via {{ story.source }} 75 |
{{ story.tweets }}{{ story.facebook_shares }} 79 |
80 | 82 |
83 |
88 |
89 | 90 |
91 | Add new Fake Story 92 |
93 | 94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 | 102 | 103 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | -------------------------------------------------------------------------------- /templates/new_story.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Fact-checking Twitter Bot 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 40 | 41 |
42 |
43 |

Fact-Checking bot

44 |

A simple way to redirect people that share falsehoods on Twitter to 45 | real journalism.

46 |
47 |
48 | 49 | 50 | 51 |
52 | 53 |
54 | 55 | 56 |
57 | 58 | 60 | Give preference to sites with really "fake" stories. 61 |
62 | 63 | 64 |
65 | 66 |
67 | 68 | 69 |
70 | 71 | 72 |
73 | 74 |
75 | 76 |
77 | 78 | 79 |
80 | 81 | 86 |
87 | 88 | 89 |
90 | 91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 | 100 |
101 | 102 | 103 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | -------------------------------------------------------------------------------- /static/css/bootstrap-reboot.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Reboot v4.0.0-beta.2 (https://getbootstrap.com) 3 | * Copyright 2011-2017 The Bootstrap Authors 4 | * Copyright 2011-2017 Twitter, Inc. 5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 6 | * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md) 7 | */ 8 | *, 9 | *::before, 10 | *::after { 11 | box-sizing: border-box; 12 | } 13 | 14 | html { 15 | font-family: sans-serif; 16 | line-height: 1.15; 17 | -webkit-text-size-adjust: 100%; 18 | -ms-text-size-adjust: 100%; 19 | -ms-overflow-style: scrollbar; 20 | -webkit-tap-highlight-color: transparent; 21 | } 22 | 23 | @-ms-viewport { 24 | width: device-width; 25 | } 26 | 27 | article, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section { 28 | display: block; 29 | } 30 | 31 | body { 32 | margin: 0; 33 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; 34 | font-size: 1rem; 35 | font-weight: 400; 36 | line-height: 1.5; 37 | color: #212529; 38 | text-align: left; 39 | background-color: #fff; 40 | } 41 | 42 | [tabindex="-1"]:focus { 43 | outline: none !important; 44 | } 45 | 46 | hr { 47 | box-sizing: content-box; 48 | height: 0; 49 | overflow: visible; 50 | } 51 | 52 | h1, h2, h3, h4, h5, h6 { 53 | margin-top: 0; 54 | margin-bottom: 0.5rem; 55 | } 56 | 57 | p { 58 | margin-top: 0; 59 | margin-bottom: 1rem; 60 | } 61 | 62 | abbr[title], 63 | abbr[data-original-title] { 64 | text-decoration: underline; 65 | -webkit-text-decoration: underline dotted; 66 | text-decoration: underline dotted; 67 | cursor: help; 68 | border-bottom: 0; 69 | } 70 | 71 | address { 72 | margin-bottom: 1rem; 73 | font-style: normal; 74 | line-height: inherit; 75 | } 76 | 77 | ol, 78 | ul, 79 | dl { 80 | margin-top: 0; 81 | margin-bottom: 1rem; 82 | } 83 | 84 | ol ol, 85 | ul ul, 86 | ol ul, 87 | ul ol { 88 | margin-bottom: 0; 89 | } 90 | 91 | dt { 92 | font-weight: 700; 93 | } 94 | 95 | dd { 96 | margin-bottom: .5rem; 97 | margin-left: 0; 98 | } 99 | 100 | blockquote { 101 | margin: 0 0 1rem; 102 | } 103 | 104 | dfn { 105 | font-style: italic; 106 | } 107 | 108 | b, 109 | strong { 110 | font-weight: bolder; 111 | } 112 | 113 | small { 114 | font-size: 80%; 115 | } 116 | 117 | sub, 118 | sup { 119 | position: relative; 120 | font-size: 75%; 121 | line-height: 0; 122 | vertical-align: baseline; 123 | } 124 | 125 | sub { 126 | bottom: -.25em; 127 | } 128 | 129 | sup { 130 | top: -.5em; 131 | } 132 | 133 | a { 134 | color: #007bff; 135 | text-decoration: none; 136 | background-color: transparent; 137 | -webkit-text-decoration-skip: objects; 138 | } 139 | 140 | a:hover { 141 | color: #0056b3; 142 | text-decoration: underline; 143 | } 144 | 145 | a:not([href]):not([tabindex]) { 146 | color: inherit; 147 | text-decoration: none; 148 | } 149 | 150 | a:not([href]):not([tabindex]):focus, a:not([href]):not([tabindex]):hover { 151 | color: inherit; 152 | text-decoration: none; 153 | } 154 | 155 | a:not([href]):not([tabindex]):focus { 156 | outline: 0; 157 | } 158 | 159 | pre, 160 | code, 161 | kbd, 162 | samp { 163 | font-family: monospace, monospace; 164 | font-size: 1em; 165 | } 166 | 167 | pre { 168 | margin-top: 0; 169 | margin-bottom: 1rem; 170 | overflow: auto; 171 | -ms-overflow-style: scrollbar; 172 | } 173 | 174 | figure { 175 | margin: 0 0 1rem; 176 | } 177 | 178 | img { 179 | vertical-align: middle; 180 | border-style: none; 181 | } 182 | 183 | svg:not(:root) { 184 | overflow: hidden; 185 | } 186 | 187 | a, 188 | area, 189 | button, 190 | [role="button"], 191 | input:not([type="range"]), 192 | label, 193 | select, 194 | summary, 195 | textarea { 196 | -ms-touch-action: manipulation; 197 | touch-action: manipulation; 198 | } 199 | 200 | table { 201 | border-collapse: collapse; 202 | } 203 | 204 | caption { 205 | padding-top: 0.75rem; 206 | padding-bottom: 0.75rem; 207 | color: #868e96; 208 | text-align: left; 209 | caption-side: bottom; 210 | } 211 | 212 | th { 213 | text-align: inherit; 214 | } 215 | 216 | label { 217 | display: inline-block; 218 | margin-bottom: .5rem; 219 | } 220 | 221 | button { 222 | border-radius: 0; 223 | } 224 | 225 | button:focus { 226 | outline: 1px dotted; 227 | outline: 5px auto -webkit-focus-ring-color; 228 | } 229 | 230 | input, 231 | button, 232 | select, 233 | optgroup, 234 | textarea { 235 | margin: 0; 236 | font-family: inherit; 237 | font-size: inherit; 238 | line-height: inherit; 239 | } 240 | 241 | button, 242 | input { 243 | overflow: visible; 244 | } 245 | 246 | button, 247 | select { 248 | text-transform: none; 249 | } 250 | 251 | button, 252 | html [type="button"], 253 | [type="reset"], 254 | [type="submit"] { 255 | -webkit-appearance: button; 256 | } 257 | 258 | button::-moz-focus-inner, 259 | [type="button"]::-moz-focus-inner, 260 | [type="reset"]::-moz-focus-inner, 261 | [type="submit"]::-moz-focus-inner { 262 | padding: 0; 263 | border-style: none; 264 | } 265 | 266 | input[type="radio"], 267 | input[type="checkbox"] { 268 | box-sizing: border-box; 269 | padding: 0; 270 | } 271 | 272 | input[type="date"], 273 | input[type="time"], 274 | input[type="datetime-local"], 275 | input[type="month"] { 276 | -webkit-appearance: listbox; 277 | } 278 | 279 | textarea { 280 | overflow: auto; 281 | resize: vertical; 282 | } 283 | 284 | fieldset { 285 | min-width: 0; 286 | padding: 0; 287 | margin: 0; 288 | border: 0; 289 | } 290 | 291 | legend { 292 | display: block; 293 | width: 100%; 294 | max-width: 100%; 295 | padding: 0; 296 | margin-bottom: .5rem; 297 | font-size: 1.5rem; 298 | line-height: inherit; 299 | color: inherit; 300 | white-space: normal; 301 | } 302 | 303 | progress { 304 | vertical-align: baseline; 305 | } 306 | 307 | [type="number"]::-webkit-inner-spin-button, 308 | [type="number"]::-webkit-outer-spin-button { 309 | height: auto; 310 | } 311 | 312 | [type="search"] { 313 | outline-offset: -2px; 314 | -webkit-appearance: none; 315 | } 316 | 317 | [type="search"]::-webkit-search-cancel-button, 318 | [type="search"]::-webkit-search-decoration { 319 | -webkit-appearance: none; 320 | } 321 | 322 | ::-webkit-file-upload-button { 323 | font: inherit; 324 | -webkit-appearance: button; 325 | } 326 | 327 | output { 328 | display: inline-block; 329 | } 330 | 331 | summary { 332 | display: list-item; 333 | } 334 | 335 | template { 336 | display: none; 337 | } 338 | 339 | [hidden] { 340 | display: none !important; 341 | } 342 | /*# sourceMappingURL=bootstrap-reboot.css.map */ -------------------------------------------------------------------------------- /static/js/popper.min.js: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (C) Federico Zivolo 2017 3 | Distributed under the MIT License (license terms are at http://opensource.org/licenses/MIT). 4 | */(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=window.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||-1!==['HTML','BODY','#document'].indexOf(e.nodeName))return window.document.body;var i=t(e),r=i.overflow,p=i.overflowX,s=i.overflowY;return /(auto|scroll)/.test(r+s+p)?e:n(o(e))}function r(e){var o=e&&e.offsetParent,i=o&&o.nodeName;return i&&'BODY'!==i&&'HTML'!==i?-1!==['TD','TABLE'].indexOf(o.nodeName)&&'static'===t(o,'position')?r(o):o:window.document.documentElement}function p(e){var t=e.nodeName;return'BODY'!==t&&('HTML'===t||r(e.firstElementChild)===e)}function s(e){return null===e.parentNode?e:s(e.parentNode)}function d(e,t){if(!e||!e.nodeType||!t||!t.nodeType)return window.document.documentElement;var o=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,i=o?e:t,n=o?t:e,a=document.createRange();a.setStart(i,0),a.setEnd(n,0);var l=a.commonAncestorContainer;if(e!==l&&t!==l||i.contains(n))return p(l)?l:r(l);var f=s(e);return f.host?d(f.host,t):d(e,s(t).host)}function a(e){var t=1=o.clientWidth&&i>=o.clientHeight}),l=0i[e]&&!t.escapeWithReference&&(n=V(p[o],i[e]-('right'===e?p.width:p.height))),se({},o,n)}};return n.forEach(function(e){var t=-1===['left','top'].indexOf(e)?'secondary':'primary';p=de({},p,s[t](e))}),e.offsets.popper=p,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,i=t.reference,n=e.placement.split('-')[0],r=_,p=-1!==['top','bottom'].indexOf(n),s=p?'right':'bottom',d=p?'left':'top',a=p?'width':'height';return o[s]r(i[s])&&(e.offsets.popper[d]=r(i[s])),e}},arrow:{order:500,enabled:!0,fn:function(e,o){if(!F(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 n=e.placement.split('-')[0],r=e.offsets,p=r.popper,s=r.reference,d=-1!==['left','right'].indexOf(n),a=d?'height':'width',l=d?'Top':'Left',f=l.toLowerCase(),m=d?'left':'top',c=d?'bottom':'right',g=O(i)[a];s[c]-gp[c]&&(e.offsets.popper[f]+=s[f]+g-p[c]);var u=s[f]+s[a]/2-g/2,b=t(e.instance.popper,'margin'+l).replace('px',''),y=u-h(e.offsets.popper)[f]-b;return y=X(V(p[a]-g,y),0),e.arrowElement=i,e.offsets.arrow={},e.offsets.arrow[f]=Math.round(y),e.offsets.arrow[m]='',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=w(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement),i=e.placement.split('-')[0],n=L(i),r=e.placement.split('-')[1]||'',p=[];switch(t.behavior){case fe.FLIP:p=[i,n];break;case fe.CLOCKWISE:p=K(i);break;case fe.COUNTERCLOCKWISE:p=K(i,!0);break;default:p=t.behavior;}return p.forEach(function(s,d){if(i!==s||p.length===d+1)return e;i=e.placement.split('-')[0],n=L(i);var a=e.offsets.popper,l=e.offsets.reference,f=_,m='left'===i&&f(a.right)>f(l.left)||'right'===i&&f(a.left)f(l.top)||'bottom'===i&&f(a.top)f(o.right),g=f(a.top)f(o.bottom),b='left'===i&&c||'right'===i&&h||'top'===i&&g||'bottom'===i&&u,y=-1!==['top','bottom'].indexOf(i),w=!!t.flipVariations&&(y&&'start'===r&&c||y&&'end'===r&&h||!y&&'start'===r&&g||!y&&'end'===r&&u);(m||b||w)&&(e.flipped=!0,(m||b)&&(i=p[d+1]),w&&(r=j(r)),e.placement=i+(r?'-'+r:''),e.offsets.popper=de({},e.offsets.popper,S(e.instance.popper,e.offsets.reference,e.placement)),e=N(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],i=e.offsets,n=i.popper,r=i.reference,p=-1!==['left','right'].indexOf(o),s=-1===['top','left'].indexOf(o);return n[p?'left':'top']=r[o]-(s?n[p?'width':'height']:0),e.placement=L(t),e.offsets.popper=h(n),e}},hide:{order:800,enabled:!0,fn:function(e){if(!F(e.instance.modifiers,'hide','preventOverflow'))return e;var t=e.offsets.reference,o=T(e.instance.modifiers,function(e){return'preventOverflow'===e.name}).boundaries;if(t.bottomo.right||t.top>o.bottom||t.right.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-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-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-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-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-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%}}.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}.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}.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}.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}.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}.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}} 7 | /*# sourceMappingURL=bootstrap-grid.min.css.map */ -------------------------------------------------------------------------------- /static/css/bootstrap-reboot.min.css.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["../../scss/bootstrap-reboot.scss","../../scss/_reboot.scss","dist/css/bootstrap-reboot.css","bootstrap-reboot.css","../../scss/mixins/_hover.scss"],"names":[],"mappings":"AAAA;;;;;;ACoBA,ECXA,QADA,SDeE,WAAA,WAGF,KACE,YAAA,WACA,YAAA,KACA,yBAAA,KACA,qBAAA,KACA,mBAAA,UACA,4BAAA,YAKA,cACE,MAAA,aAMJ,QAAA,MAAA,OAAA,WAAA,OAAA,OAAA,OAAA,OAAA,KAAA,IAAA,QACE,QAAA,MAWF,KACE,OAAA,EACA,YAAA,aAAA,CAAA,kBAAA,CAAA,UAAA,CAAA,MAAA,CAAA,gBAAA,CAAA,KAAA,CAAA,UAAA,CAAA,mBAAA,CAAA,gBAAA,CAAA,kBACA,UAAA,KACA,YAAA,IACA,YAAA,IACA,MAAA,QACA,WAAA,KACA,iBAAA,KEvBF,sBFgCE,QAAA,YASF,GACE,WAAA,YACA,OAAA,EACA,SAAA,QAaF,GAAA,GAAA,GAAA,GAAA,GAAA,GACE,WAAA,EACA,cAAA,MAQF,EACE,WAAA,EACA,cAAA,KChDF,0BD0DA,YAEE,gBAAA,UACA,wBAAA,UAAA,OAAA,gBAAA,UAAA,OACA,OAAA,KACA,cAAA,EAGF,QACE,cAAA,KACA,WAAA,OACA,YAAA,QCrDF,GDwDA,GCzDA,GD4DE,WAAA,EACA,cAAA,KAGF,MCxDA,MACA,MAFA,MD6DE,cAAA,EAGF,GACE,YAAA,IAGF,GACE,cAAA,MACA,YAAA,EAGF,WACE,OAAA,EAAA,EAAA,KAGF,IACE,WAAA,OAIF,EC1DA,OD4DE,YAAA,OAIF,MACE,UAAA,IAQF,IChEA,IDkEE,SAAA,SACA,UAAA,IACA,YAAA,EACA,eAAA,SAGF,IAAM,OAAA,OACN,IAAM,IAAA,MAON,EACE,MAAA,QACA,gBAAA,KACA,iBAAA,YACA,6BAAA,QG9LE,QHiMA,MAAA,QACA,gBAAA,UAUJ,8BACE,MAAA,QACA,gBAAA,KGlME,oCAAA,oCHqMA,MAAA,QACA,gBAAA,KANJ,oCAUI,QAAA,EClEJ,KACA,ID2EA,IC1EA,KD8EE,YAAA,SAAA,CAAA,UACA,UAAA,IAIF,IAEE,WAAA,EAEA,cAAA,KAEA,SAAA,KAGA,mBAAA,UAQF,OAEE,OAAA,EAAA,EAAA,KAQF,IACE,eAAA,OACA,aAAA,KAGF,eACE,SAAA,OCxFF,cDsGA,ECxGA,KACA,OAEA,wBACA,MACA,OACA,QACA,SD0GE,iBAAA,aAAA,aAAA,aAQF,MACE,gBAAA,SAGF,QACE,YAAA,OACA,eAAA,OACA,MAAA,QACA,WAAA,KACA,aAAA,OAGF,GAGE,WAAA,QAQF,MAEE,QAAA,aACA,cAAA,MAMF,OACE,cAAA,EAOF,aACE,QAAA,IAAA,OACA,QAAA,IAAA,KAAA,yBCxHF,OD2HA,MCzHA,SADA,OAEA,SD6HE,OAAA,EACA,YAAA,QACA,UAAA,QACA,YAAA,QAGF,OC3HA,MD6HE,SAAA,QAGF,OC3HA,OD6HE,eAAA,KCvHF,aACA,cD4HA,OC9HA,mBDkIE,mBAAA,OC3HF,gCACA,+BACA,gCD6HA,yBAIE,QAAA,EACA,aAAA,KC5HF,qBD+HA,kBAEE,WAAA,WACA,QAAA,EAIF,iBC/HA,2BACA,kBAFA,iBDyIE,mBAAA,QAGF,SACE,SAAA,KAEA,OAAA,SAGF,SAME,UAAA,EAEA,QAAA,EACA,OAAA,EACA,OAAA,EAKF,OACE,QAAA,MACA,MAAA,KACA,UAAA,KACA,QAAA,EACA,cAAA,MACA,UAAA,OACA,YAAA,QACA,MAAA,QACA,YAAA,OAGF,SACE,eAAA,SE9IF,yCDGA,yCDiJE,OAAA,KE/IF,cFuJE,eAAA,KACA,mBAAA,KEnJF,4CDGA,yCDyJE,mBAAA,KAQF,6BACE,KAAA,QACA,mBAAA,OAOF,OACE,QAAA,aAGF,QACE,QAAA,UAGF,SACE,QAAA,KEhKF,SFsKE,QAAA","sourcesContent":["/*!\n * Bootstrap Reboot v4.0.0-beta.2 (https://getbootstrap.com)\n * Copyright 2011-2017 The Bootstrap Authors\n * Copyright 2011-2017 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"reboot\";\n","// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Setting @viewport causes scrollbars to overlap content in IE11 and Edge, so\n// we force a non-overlapping, non-auto-hiding scrollbar to counteract.\n// 6. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; // 1\n}\n\nhtml {\n font-family: sans-serif; // 2\n line-height: 1.15; // 3\n -webkit-text-size-adjust: 100%; // 4\n -ms-text-size-adjust: 100%; // 4\n -ms-overflow-style: scrollbar; // 5\n -webkit-tap-highlight-color: rgba(0,0,0,0); // 6\n}\n\n// IE10+ doesn't honor `` in some cases.\n@at-root {\n @-ms-viewport {\n width: device-width;\n }\n}\n\n// stylelint-disable selector-list-comma-newline-after\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\narticle, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n// stylelint-enable selector-list-comma-newline-after\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use the\n// the `inherit` value on things like `` elements.\n\nbody {\n margin: 0; // 1\n font-family: $font-family-base;\n font-size: $font-size-base;\n font-weight: $font-weight-base;\n line-height: $line-height-base;\n color: $body-color;\n text-align: left; // 3\n background-color: $body-bg; // 2\n}\n\n// Suppress the focus outline on elements that cannot be accessed via keyboard.\n// This prevents an unwanted focus outline from appearing around elements that\n// might still respond to pointer events.\n//\n// Credit: https://github.com/suitcss/base\n[tabindex=\"-1\"]:focus {\n outline: none !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n box-sizing: content-box; // 1\n height: 0; // 1\n overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `

`-`

` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: $headings-margin-bottom;\n}\n// stylelint-enable selector-list-comma-newline-after\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `

`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Remove the bottom border in Firefox 39-.\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Duplicate behavior to the data-* attribute for our tooltip plugin\n\nabbr[title],\nabbr[data-original-title] { // 4\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n border-bottom: 0; // 1\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\ndfn {\n font-style: italic; // Add the correct font style in Android 4.3-\n}\n\n// stylelint-disable font-weight-notation\nb,\nstrong {\n font-weight: bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n// stylelint-enable font-weight-notation\n\nsmall {\n font-size: 80%; // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n background-color: transparent; // Remove the gray background on active links in IE 10.\n -webkit-text-decoration-skip: objects; // Remove gaps in links underline in iOS 8+ and Safari 8+.\n\n @include hover {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href)\n// which have not been made explicitly keyboard-focusable (without tabindex).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n\n @include hover-focus {\n color: inherit;\n text-decoration: none;\n }\n\n &:focus {\n outline: 0;\n }\n}\n\n\n//\n// Code\n//\n\n// stylelint-disable font-family-no-duplicate-names\npre,\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; // Correct the inheritance and scaling of font size in all browsers.\n font-size: 1em; // Correct the odd `em` font sizing in all browsers.\n}\n// stylelint-enable font-family-no-duplicate-names\n\npre {\n // Remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `rem`s\n margin-bottom: 1rem;\n // Don't allow content to break outside\n overflow: auto;\n // We have @viewport set which causes scrollbars to overlap content in IE11 and Edge, so\n // we force a non-overlapping, non-auto-hiding scrollbar to counteract.\n -ms-overflow-style: scrollbar;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg:not(:root) {\n overflow: hidden; // Hide the overflow in IE\n}\n\n\n// Avoid 300ms click delay on touch devices that support the `touch-action` CSS property.\n//\n// In particular, unlike most other browsers, IE11+Edge on Windows 10 on touch devices and IE Mobile 10-11\n// DON'T remove the click delay when `` is present.\n// However, they DO support removing the click delay via `touch-action: manipulation`.\n// See:\n// * https://getbootstrap.com/docs/4.0/content/reboot/#click-delay-optimization-for-touch\n// * https://caniuse.com/#feat=css-touch-action\n// * https://patrickhlauke.github.io/touch/tests/results/#suppressing-300ms-delay\n\na,\narea,\nbutton,\n[role=\"button\"],\ninput:not([type=\"range\"]),\nlabel,\nselect,\nsummary,\ntextarea {\n touch-action: manipulation;\n}\n\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: $table-cell-padding;\n padding-bottom: $table-cell-padding;\n color: $text-muted;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n // Matches default `` alignment by inheriting from the ``, or the\n // closest parent with a set `text-align`.\n text-align: inherit;\n}\n\n\n//\n// Forms\n//\n\nlabel {\n // Allow labels to use `margin` for spacing.\n display: inline-block;\n margin-bottom: .5rem;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n border-radius: 0;\n}\n\n// Work around a Firefox/IE bug where the transparent `button` background\n// results in a loss of the default `button` focus styles.\n//\n// Credit: https://github.com/suitcss/base/\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // Remove the margin in Firefox and Safari\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n// controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\nbutton,\nhtml [type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; // 2\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box; // 1. Add the correct box sizing in IE 10-\n padding: 0; // 2. Remove the padding in IE 10-\n}\n\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n // Remove the default appearance of temporal inputs to avoid a Mobile Safari\n // bug where setting a custom line-height prevents text from being vertically\n // centered within the input.\n // See https://bugs.webkit.org/show_bug.cgi?id=139848\n // and https://github.com/twbs/bootstrap/issues/11266\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto; // Remove the default vertical scrollbar in IE.\n // Textareas should really only resize vertically so they don't break their (horizontal) containers.\n resize: vertical;\n}\n\nfieldset {\n // Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `

`s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n min-width: 0;\n // Reset the default outline behavior of fieldsets so they don't affect page layout.\n padding: 0;\n margin: 0;\n border: 0;\n}\n\n// 1. Correct the text wrapping in Edge and IE.\n// 2. Correct the color inheritance from `fieldset` elements in IE.\nlegend {\n display: block;\n width: 100%;\n max-width: 100%; // 1\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit; // 2\n white-space: normal; // 1\n}\n\nprogress {\n vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n}\n\n// Correct the cursor style of increment and decrement buttons in Chrome.\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n // This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n outline-offset: -2px; // 2. Correct the outline style in Safari.\n -webkit-appearance: none;\n}\n\n//\n// Remove the inner padding and cancel buttons in Chrome and Safari on macOS.\n//\n\n[type=\"search\"]::-webkit-search-cancel-button,\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// 1. Correct the inability to style clickable types in iOS and Safari.\n// 2. Change font properties to `inherit` in Safari.\n//\n\n::-webkit-file-upload-button {\n font: inherit; // 2\n -webkit-appearance: button; // 1\n}\n\n//\n// Correct element displays\n//\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item; // Add the correct display in all browsers\n}\n\ntemplate {\n display: none; // Add the correct display in IE\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n// Needed for proper display in IE 10-.\n[hidden] {\n display: none !important;\n}\n","/*!\n * Bootstrap Reboot v4.0.0-beta.2 (https://getbootstrap.com)\n * Copyright 2011-2017 The Bootstrap Authors\n * Copyright 2011-2017 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -ms-text-size-adjust: 100%;\n -ms-overflow-style: scrollbar;\n -webkit-tap-highlight-color: transparent;\n}\n\n@-ms-viewport {\n width: device-width;\n}\n\narticle, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus {\n outline: none !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\ndfn {\n font-style: italic;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n -webkit-text-decoration-skip: objects;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus, a:not([href]):not([tabindex]):hover {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus {\n outline: 0;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n -ms-overflow-style: scrollbar;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\na,\narea,\nbutton,\n[role=\"button\"],\ninput:not([type=\"range\"]),\nlabel,\nselect,\nsummary,\ntextarea {\n -ms-touch-action: manipulation;\n touch-action: manipulation;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #868e96;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: .5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nbutton,\nhtml [type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-cancel-button,\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n/*# sourceMappingURL=bootstrap-reboot.css.map */","/*!\n * Bootstrap Reboot v4.0.0-beta.2 (https://getbootstrap.com)\n * Copyright 2011-2017 The Bootstrap Authors\n * Copyright 2011-2017 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -ms-text-size-adjust: 100%;\n -ms-overflow-style: scrollbar;\n -webkit-tap-highlight-color: transparent;\n}\n\n@-ms-viewport {\n width: device-width;\n}\n\narticle, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus {\n outline: none !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\ndfn {\n font-style: italic;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n -webkit-text-decoration-skip: objects;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus, a:not([href]):not([tabindex]):hover {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus {\n outline: 0;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n -ms-overflow-style: scrollbar;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\na,\narea,\nbutton,\n[role=\"button\"],\ninput:not([type=\"range\"]),\nlabel,\nselect,\nsummary,\ntextarea {\n touch-action: manipulation;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #868e96;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: .5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nbutton,\nhtml [type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-cancel-button,\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\n/*# sourceMappingURL=bootstrap-reboot.css.map */","// stylelint-disable indentation\n@mixin hover {\n // TODO: re-enable along with mq4-hover-shim\n// @if $enable-hover-media-query {\n// // See Media Queries Level 4: https://drafts.csswg.org/mediaqueries/#hover\n// // Currently shimmed by https://github.com/twbs/mq4-hover-shim\n// @media (hover: hover) {\n// &:hover { @content }\n// }\n// }\n// @else {\n &:hover { @content; }\n// }\n}\n\n\n@mixin hover-focus {\n @if $enable-hover-media-query {\n &:focus {\n @content;\n }\n @include hover { @content; }\n } @else {\n &:focus,\n &:hover {\n @content;\n }\n }\n}\n\n@mixin plain-hover-focus {\n @if $enable-hover-media-query {\n &,\n &:focus {\n @content;\n }\n @include hover { @content; }\n } @else {\n &,\n &:focus,\n &:hover {\n @content;\n }\n }\n}\n\n@mixin hover-focus-active {\n @if $enable-hover-media-query {\n &:focus,\n &:active {\n @content;\n }\n @include hover { @content; }\n } @else {\n &:focus,\n &:active,\n &:hover {\n @content;\n }\n }\n}\n"]} -------------------------------------------------------------------------------- /static/css/bootstrap-grid.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Grid v4.0.0-beta.2 (https://getbootstrap.com) 3 | * Copyright 2011-2017 The Bootstrap Authors 4 | * Copyright 2011-2017 Twitter, Inc. 5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 6 | */ 7 | @-ms-viewport { 8 | width: device-width; 9 | } 10 | 11 | html { 12 | box-sizing: border-box; 13 | -ms-overflow-style: scrollbar; 14 | } 15 | 16 | *, 17 | *::before, 18 | *::after { 19 | box-sizing: inherit; 20 | } 21 | 22 | .container { 23 | width: 100%; 24 | padding-right: 15px; 25 | padding-left: 15px; 26 | margin-right: auto; 27 | margin-left: auto; 28 | } 29 | 30 | @media (min-width: 576px) { 31 | .container { 32 | max-width: 540px; 33 | } 34 | } 35 | 36 | @media (min-width: 768px) { 37 | .container { 38 | max-width: 720px; 39 | } 40 | } 41 | 42 | @media (min-width: 992px) { 43 | .container { 44 | max-width: 960px; 45 | } 46 | } 47 | 48 | @media (min-width: 1200px) { 49 | .container { 50 | max-width: 1140px; 51 | } 52 | } 53 | 54 | .container-fluid { 55 | width: 100%; 56 | padding-right: 15px; 57 | padding-left: 15px; 58 | margin-right: auto; 59 | margin-left: auto; 60 | } 61 | 62 | .row { 63 | display: -ms-flexbox; 64 | display: flex; 65 | -ms-flex-wrap: wrap; 66 | flex-wrap: wrap; 67 | margin-right: -15px; 68 | margin-left: -15px; 69 | } 70 | 71 | .no-gutters { 72 | margin-right: 0; 73 | margin-left: 0; 74 | } 75 | 76 | .no-gutters > .col, 77 | .no-gutters > [class*="col-"] { 78 | padding-right: 0; 79 | padding-left: 0; 80 | } 81 | 82 | .col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, 83 | .col-auto, .col-sm-1, .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-10, .col-sm-11, .col-sm-12, .col-sm, 84 | .col-sm-auto, .col-md-1, .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-10, .col-md-11, .col-md-12, .col-md, 85 | .col-md-auto, .col-lg-1, .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-10, .col-lg-11, .col-lg-12, .col-lg, 86 | .col-lg-auto, .col-xl-1, .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-10, .col-xl-11, .col-xl-12, .col-xl, 87 | .col-xl-auto { 88 | position: relative; 89 | width: 100%; 90 | min-height: 1px; 91 | padding-right: 15px; 92 | padding-left: 15px; 93 | } 94 | 95 | .col { 96 | -ms-flex-preferred-size: 0; 97 | flex-basis: 0; 98 | -ms-flex-positive: 1; 99 | flex-grow: 1; 100 | max-width: 100%; 101 | } 102 | 103 | .col-auto { 104 | -ms-flex: 0 0 auto; 105 | flex: 0 0 auto; 106 | width: auto; 107 | max-width: none; 108 | } 109 | 110 | .col-1 { 111 | -ms-flex: 0 0 8.333333%; 112 | flex: 0 0 8.333333%; 113 | max-width: 8.333333%; 114 | } 115 | 116 | .col-2 { 117 | -ms-flex: 0 0 16.666667%; 118 | flex: 0 0 16.666667%; 119 | max-width: 16.666667%; 120 | } 121 | 122 | .col-3 { 123 | -ms-flex: 0 0 25%; 124 | flex: 0 0 25%; 125 | max-width: 25%; 126 | } 127 | 128 | .col-4 { 129 | -ms-flex: 0 0 33.333333%; 130 | flex: 0 0 33.333333%; 131 | max-width: 33.333333%; 132 | } 133 | 134 | .col-5 { 135 | -ms-flex: 0 0 41.666667%; 136 | flex: 0 0 41.666667%; 137 | max-width: 41.666667%; 138 | } 139 | 140 | .col-6 { 141 | -ms-flex: 0 0 50%; 142 | flex: 0 0 50%; 143 | max-width: 50%; 144 | } 145 | 146 | .col-7 { 147 | -ms-flex: 0 0 58.333333%; 148 | flex: 0 0 58.333333%; 149 | max-width: 58.333333%; 150 | } 151 | 152 | .col-8 { 153 | -ms-flex: 0 0 66.666667%; 154 | flex: 0 0 66.666667%; 155 | max-width: 66.666667%; 156 | } 157 | 158 | .col-9 { 159 | -ms-flex: 0 0 75%; 160 | flex: 0 0 75%; 161 | max-width: 75%; 162 | } 163 | 164 | .col-10 { 165 | -ms-flex: 0 0 83.333333%; 166 | flex: 0 0 83.333333%; 167 | max-width: 83.333333%; 168 | } 169 | 170 | .col-11 { 171 | -ms-flex: 0 0 91.666667%; 172 | flex: 0 0 91.666667%; 173 | max-width: 91.666667%; 174 | } 175 | 176 | .col-12 { 177 | -ms-flex: 0 0 100%; 178 | flex: 0 0 100%; 179 | max-width: 100%; 180 | } 181 | 182 | .order-first { 183 | -ms-flex-order: -1; 184 | order: -1; 185 | } 186 | 187 | .order-1 { 188 | -ms-flex-order: 1; 189 | order: 1; 190 | } 191 | 192 | .order-2 { 193 | -ms-flex-order: 2; 194 | order: 2; 195 | } 196 | 197 | .order-3 { 198 | -ms-flex-order: 3; 199 | order: 3; 200 | } 201 | 202 | .order-4 { 203 | -ms-flex-order: 4; 204 | order: 4; 205 | } 206 | 207 | .order-5 { 208 | -ms-flex-order: 5; 209 | order: 5; 210 | } 211 | 212 | .order-6 { 213 | -ms-flex-order: 6; 214 | order: 6; 215 | } 216 | 217 | .order-7 { 218 | -ms-flex-order: 7; 219 | order: 7; 220 | } 221 | 222 | .order-8 { 223 | -ms-flex-order: 8; 224 | order: 8; 225 | } 226 | 227 | .order-9 { 228 | -ms-flex-order: 9; 229 | order: 9; 230 | } 231 | 232 | .order-10 { 233 | -ms-flex-order: 10; 234 | order: 10; 235 | } 236 | 237 | .order-11 { 238 | -ms-flex-order: 11; 239 | order: 11; 240 | } 241 | 242 | .order-12 { 243 | -ms-flex-order: 12; 244 | order: 12; 245 | } 246 | 247 | .offset-1 { 248 | margin-left: 8.333333%; 249 | } 250 | 251 | .offset-2 { 252 | margin-left: 16.666667%; 253 | } 254 | 255 | .offset-3 { 256 | margin-left: 25%; 257 | } 258 | 259 | .offset-4 { 260 | margin-left: 33.333333%; 261 | } 262 | 263 | .offset-5 { 264 | margin-left: 41.666667%; 265 | } 266 | 267 | .offset-6 { 268 | margin-left: 50%; 269 | } 270 | 271 | .offset-7 { 272 | margin-left: 58.333333%; 273 | } 274 | 275 | .offset-8 { 276 | margin-left: 66.666667%; 277 | } 278 | 279 | .offset-9 { 280 | margin-left: 75%; 281 | } 282 | 283 | .offset-10 { 284 | margin-left: 83.333333%; 285 | } 286 | 287 | .offset-11 { 288 | margin-left: 91.666667%; 289 | } 290 | 291 | @media (min-width: 576px) { 292 | .col-sm { 293 | -ms-flex-preferred-size: 0; 294 | flex-basis: 0; 295 | -ms-flex-positive: 1; 296 | flex-grow: 1; 297 | max-width: 100%; 298 | } 299 | .col-sm-auto { 300 | -ms-flex: 0 0 auto; 301 | flex: 0 0 auto; 302 | width: auto; 303 | max-width: none; 304 | } 305 | .col-sm-1 { 306 | -ms-flex: 0 0 8.333333%; 307 | flex: 0 0 8.333333%; 308 | max-width: 8.333333%; 309 | } 310 | .col-sm-2 { 311 | -ms-flex: 0 0 16.666667%; 312 | flex: 0 0 16.666667%; 313 | max-width: 16.666667%; 314 | } 315 | .col-sm-3 { 316 | -ms-flex: 0 0 25%; 317 | flex: 0 0 25%; 318 | max-width: 25%; 319 | } 320 | .col-sm-4 { 321 | -ms-flex: 0 0 33.333333%; 322 | flex: 0 0 33.333333%; 323 | max-width: 33.333333%; 324 | } 325 | .col-sm-5 { 326 | -ms-flex: 0 0 41.666667%; 327 | flex: 0 0 41.666667%; 328 | max-width: 41.666667%; 329 | } 330 | .col-sm-6 { 331 | -ms-flex: 0 0 50%; 332 | flex: 0 0 50%; 333 | max-width: 50%; 334 | } 335 | .col-sm-7 { 336 | -ms-flex: 0 0 58.333333%; 337 | flex: 0 0 58.333333%; 338 | max-width: 58.333333%; 339 | } 340 | .col-sm-8 { 341 | -ms-flex: 0 0 66.666667%; 342 | flex: 0 0 66.666667%; 343 | max-width: 66.666667%; 344 | } 345 | .col-sm-9 { 346 | -ms-flex: 0 0 75%; 347 | flex: 0 0 75%; 348 | max-width: 75%; 349 | } 350 | .col-sm-10 { 351 | -ms-flex: 0 0 83.333333%; 352 | flex: 0 0 83.333333%; 353 | max-width: 83.333333%; 354 | } 355 | .col-sm-11 { 356 | -ms-flex: 0 0 91.666667%; 357 | flex: 0 0 91.666667%; 358 | max-width: 91.666667%; 359 | } 360 | .col-sm-12 { 361 | -ms-flex: 0 0 100%; 362 | flex: 0 0 100%; 363 | max-width: 100%; 364 | } 365 | .order-sm-first { 366 | -ms-flex-order: -1; 367 | order: -1; 368 | } 369 | .order-sm-1 { 370 | -ms-flex-order: 1; 371 | order: 1; 372 | } 373 | .order-sm-2 { 374 | -ms-flex-order: 2; 375 | order: 2; 376 | } 377 | .order-sm-3 { 378 | -ms-flex-order: 3; 379 | order: 3; 380 | } 381 | .order-sm-4 { 382 | -ms-flex-order: 4; 383 | order: 4; 384 | } 385 | .order-sm-5 { 386 | -ms-flex-order: 5; 387 | order: 5; 388 | } 389 | .order-sm-6 { 390 | -ms-flex-order: 6; 391 | order: 6; 392 | } 393 | .order-sm-7 { 394 | -ms-flex-order: 7; 395 | order: 7; 396 | } 397 | .order-sm-8 { 398 | -ms-flex-order: 8; 399 | order: 8; 400 | } 401 | .order-sm-9 { 402 | -ms-flex-order: 9; 403 | order: 9; 404 | } 405 | .order-sm-10 { 406 | -ms-flex-order: 10; 407 | order: 10; 408 | } 409 | .order-sm-11 { 410 | -ms-flex-order: 11; 411 | order: 11; 412 | } 413 | .order-sm-12 { 414 | -ms-flex-order: 12; 415 | order: 12; 416 | } 417 | .offset-sm-0 { 418 | margin-left: 0; 419 | } 420 | .offset-sm-1 { 421 | margin-left: 8.333333%; 422 | } 423 | .offset-sm-2 { 424 | margin-left: 16.666667%; 425 | } 426 | .offset-sm-3 { 427 | margin-left: 25%; 428 | } 429 | .offset-sm-4 { 430 | margin-left: 33.333333%; 431 | } 432 | .offset-sm-5 { 433 | margin-left: 41.666667%; 434 | } 435 | .offset-sm-6 { 436 | margin-left: 50%; 437 | } 438 | .offset-sm-7 { 439 | margin-left: 58.333333%; 440 | } 441 | .offset-sm-8 { 442 | margin-left: 66.666667%; 443 | } 444 | .offset-sm-9 { 445 | margin-left: 75%; 446 | } 447 | .offset-sm-10 { 448 | margin-left: 83.333333%; 449 | } 450 | .offset-sm-11 { 451 | margin-left: 91.666667%; 452 | } 453 | } 454 | 455 | @media (min-width: 768px) { 456 | .col-md { 457 | -ms-flex-preferred-size: 0; 458 | flex-basis: 0; 459 | -ms-flex-positive: 1; 460 | flex-grow: 1; 461 | max-width: 100%; 462 | } 463 | .col-md-auto { 464 | -ms-flex: 0 0 auto; 465 | flex: 0 0 auto; 466 | width: auto; 467 | max-width: none; 468 | } 469 | .col-md-1 { 470 | -ms-flex: 0 0 8.333333%; 471 | flex: 0 0 8.333333%; 472 | max-width: 8.333333%; 473 | } 474 | .col-md-2 { 475 | -ms-flex: 0 0 16.666667%; 476 | flex: 0 0 16.666667%; 477 | max-width: 16.666667%; 478 | } 479 | .col-md-3 { 480 | -ms-flex: 0 0 25%; 481 | flex: 0 0 25%; 482 | max-width: 25%; 483 | } 484 | .col-md-4 { 485 | -ms-flex: 0 0 33.333333%; 486 | flex: 0 0 33.333333%; 487 | max-width: 33.333333%; 488 | } 489 | .col-md-5 { 490 | -ms-flex: 0 0 41.666667%; 491 | flex: 0 0 41.666667%; 492 | max-width: 41.666667%; 493 | } 494 | .col-md-6 { 495 | -ms-flex: 0 0 50%; 496 | flex: 0 0 50%; 497 | max-width: 50%; 498 | } 499 | .col-md-7 { 500 | -ms-flex: 0 0 58.333333%; 501 | flex: 0 0 58.333333%; 502 | max-width: 58.333333%; 503 | } 504 | .col-md-8 { 505 | -ms-flex: 0 0 66.666667%; 506 | flex: 0 0 66.666667%; 507 | max-width: 66.666667%; 508 | } 509 | .col-md-9 { 510 | -ms-flex: 0 0 75%; 511 | flex: 0 0 75%; 512 | max-width: 75%; 513 | } 514 | .col-md-10 { 515 | -ms-flex: 0 0 83.333333%; 516 | flex: 0 0 83.333333%; 517 | max-width: 83.333333%; 518 | } 519 | .col-md-11 { 520 | -ms-flex: 0 0 91.666667%; 521 | flex: 0 0 91.666667%; 522 | max-width: 91.666667%; 523 | } 524 | .col-md-12 { 525 | -ms-flex: 0 0 100%; 526 | flex: 0 0 100%; 527 | max-width: 100%; 528 | } 529 | .order-md-first { 530 | -ms-flex-order: -1; 531 | order: -1; 532 | } 533 | .order-md-1 { 534 | -ms-flex-order: 1; 535 | order: 1; 536 | } 537 | .order-md-2 { 538 | -ms-flex-order: 2; 539 | order: 2; 540 | } 541 | .order-md-3 { 542 | -ms-flex-order: 3; 543 | order: 3; 544 | } 545 | .order-md-4 { 546 | -ms-flex-order: 4; 547 | order: 4; 548 | } 549 | .order-md-5 { 550 | -ms-flex-order: 5; 551 | order: 5; 552 | } 553 | .order-md-6 { 554 | -ms-flex-order: 6; 555 | order: 6; 556 | } 557 | .order-md-7 { 558 | -ms-flex-order: 7; 559 | order: 7; 560 | } 561 | .order-md-8 { 562 | -ms-flex-order: 8; 563 | order: 8; 564 | } 565 | .order-md-9 { 566 | -ms-flex-order: 9; 567 | order: 9; 568 | } 569 | .order-md-10 { 570 | -ms-flex-order: 10; 571 | order: 10; 572 | } 573 | .order-md-11 { 574 | -ms-flex-order: 11; 575 | order: 11; 576 | } 577 | .order-md-12 { 578 | -ms-flex-order: 12; 579 | order: 12; 580 | } 581 | .offset-md-0 { 582 | margin-left: 0; 583 | } 584 | .offset-md-1 { 585 | margin-left: 8.333333%; 586 | } 587 | .offset-md-2 { 588 | margin-left: 16.666667%; 589 | } 590 | .offset-md-3 { 591 | margin-left: 25%; 592 | } 593 | .offset-md-4 { 594 | margin-left: 33.333333%; 595 | } 596 | .offset-md-5 { 597 | margin-left: 41.666667%; 598 | } 599 | .offset-md-6 { 600 | margin-left: 50%; 601 | } 602 | .offset-md-7 { 603 | margin-left: 58.333333%; 604 | } 605 | .offset-md-8 { 606 | margin-left: 66.666667%; 607 | } 608 | .offset-md-9 { 609 | margin-left: 75%; 610 | } 611 | .offset-md-10 { 612 | margin-left: 83.333333%; 613 | } 614 | .offset-md-11 { 615 | margin-left: 91.666667%; 616 | } 617 | } 618 | 619 | @media (min-width: 992px) { 620 | .col-lg { 621 | -ms-flex-preferred-size: 0; 622 | flex-basis: 0; 623 | -ms-flex-positive: 1; 624 | flex-grow: 1; 625 | max-width: 100%; 626 | } 627 | .col-lg-auto { 628 | -ms-flex: 0 0 auto; 629 | flex: 0 0 auto; 630 | width: auto; 631 | max-width: none; 632 | } 633 | .col-lg-1 { 634 | -ms-flex: 0 0 8.333333%; 635 | flex: 0 0 8.333333%; 636 | max-width: 8.333333%; 637 | } 638 | .col-lg-2 { 639 | -ms-flex: 0 0 16.666667%; 640 | flex: 0 0 16.666667%; 641 | max-width: 16.666667%; 642 | } 643 | .col-lg-3 { 644 | -ms-flex: 0 0 25%; 645 | flex: 0 0 25%; 646 | max-width: 25%; 647 | } 648 | .col-lg-4 { 649 | -ms-flex: 0 0 33.333333%; 650 | flex: 0 0 33.333333%; 651 | max-width: 33.333333%; 652 | } 653 | .col-lg-5 { 654 | -ms-flex: 0 0 41.666667%; 655 | flex: 0 0 41.666667%; 656 | max-width: 41.666667%; 657 | } 658 | .col-lg-6 { 659 | -ms-flex: 0 0 50%; 660 | flex: 0 0 50%; 661 | max-width: 50%; 662 | } 663 | .col-lg-7 { 664 | -ms-flex: 0 0 58.333333%; 665 | flex: 0 0 58.333333%; 666 | max-width: 58.333333%; 667 | } 668 | .col-lg-8 { 669 | -ms-flex: 0 0 66.666667%; 670 | flex: 0 0 66.666667%; 671 | max-width: 66.666667%; 672 | } 673 | .col-lg-9 { 674 | -ms-flex: 0 0 75%; 675 | flex: 0 0 75%; 676 | max-width: 75%; 677 | } 678 | .col-lg-10 { 679 | -ms-flex: 0 0 83.333333%; 680 | flex: 0 0 83.333333%; 681 | max-width: 83.333333%; 682 | } 683 | .col-lg-11 { 684 | -ms-flex: 0 0 91.666667%; 685 | flex: 0 0 91.666667%; 686 | max-width: 91.666667%; 687 | } 688 | .col-lg-12 { 689 | -ms-flex: 0 0 100%; 690 | flex: 0 0 100%; 691 | max-width: 100%; 692 | } 693 | .order-lg-first { 694 | -ms-flex-order: -1; 695 | order: -1; 696 | } 697 | .order-lg-1 { 698 | -ms-flex-order: 1; 699 | order: 1; 700 | } 701 | .order-lg-2 { 702 | -ms-flex-order: 2; 703 | order: 2; 704 | } 705 | .order-lg-3 { 706 | -ms-flex-order: 3; 707 | order: 3; 708 | } 709 | .order-lg-4 { 710 | -ms-flex-order: 4; 711 | order: 4; 712 | } 713 | .order-lg-5 { 714 | -ms-flex-order: 5; 715 | order: 5; 716 | } 717 | .order-lg-6 { 718 | -ms-flex-order: 6; 719 | order: 6; 720 | } 721 | .order-lg-7 { 722 | -ms-flex-order: 7; 723 | order: 7; 724 | } 725 | .order-lg-8 { 726 | -ms-flex-order: 8; 727 | order: 8; 728 | } 729 | .order-lg-9 { 730 | -ms-flex-order: 9; 731 | order: 9; 732 | } 733 | .order-lg-10 { 734 | -ms-flex-order: 10; 735 | order: 10; 736 | } 737 | .order-lg-11 { 738 | -ms-flex-order: 11; 739 | order: 11; 740 | } 741 | .order-lg-12 { 742 | -ms-flex-order: 12; 743 | order: 12; 744 | } 745 | .offset-lg-0 { 746 | margin-left: 0; 747 | } 748 | .offset-lg-1 { 749 | margin-left: 8.333333%; 750 | } 751 | .offset-lg-2 { 752 | margin-left: 16.666667%; 753 | } 754 | .offset-lg-3 { 755 | margin-left: 25%; 756 | } 757 | .offset-lg-4 { 758 | margin-left: 33.333333%; 759 | } 760 | .offset-lg-5 { 761 | margin-left: 41.666667%; 762 | } 763 | .offset-lg-6 { 764 | margin-left: 50%; 765 | } 766 | .offset-lg-7 { 767 | margin-left: 58.333333%; 768 | } 769 | .offset-lg-8 { 770 | margin-left: 66.666667%; 771 | } 772 | .offset-lg-9 { 773 | margin-left: 75%; 774 | } 775 | .offset-lg-10 { 776 | margin-left: 83.333333%; 777 | } 778 | .offset-lg-11 { 779 | margin-left: 91.666667%; 780 | } 781 | } 782 | 783 | @media (min-width: 1200px) { 784 | .col-xl { 785 | -ms-flex-preferred-size: 0; 786 | flex-basis: 0; 787 | -ms-flex-positive: 1; 788 | flex-grow: 1; 789 | max-width: 100%; 790 | } 791 | .col-xl-auto { 792 | -ms-flex: 0 0 auto; 793 | flex: 0 0 auto; 794 | width: auto; 795 | max-width: none; 796 | } 797 | .col-xl-1 { 798 | -ms-flex: 0 0 8.333333%; 799 | flex: 0 0 8.333333%; 800 | max-width: 8.333333%; 801 | } 802 | .col-xl-2 { 803 | -ms-flex: 0 0 16.666667%; 804 | flex: 0 0 16.666667%; 805 | max-width: 16.666667%; 806 | } 807 | .col-xl-3 { 808 | -ms-flex: 0 0 25%; 809 | flex: 0 0 25%; 810 | max-width: 25%; 811 | } 812 | .col-xl-4 { 813 | -ms-flex: 0 0 33.333333%; 814 | flex: 0 0 33.333333%; 815 | max-width: 33.333333%; 816 | } 817 | .col-xl-5 { 818 | -ms-flex: 0 0 41.666667%; 819 | flex: 0 0 41.666667%; 820 | max-width: 41.666667%; 821 | } 822 | .col-xl-6 { 823 | -ms-flex: 0 0 50%; 824 | flex: 0 0 50%; 825 | max-width: 50%; 826 | } 827 | .col-xl-7 { 828 | -ms-flex: 0 0 58.333333%; 829 | flex: 0 0 58.333333%; 830 | max-width: 58.333333%; 831 | } 832 | .col-xl-8 { 833 | -ms-flex: 0 0 66.666667%; 834 | flex: 0 0 66.666667%; 835 | max-width: 66.666667%; 836 | } 837 | .col-xl-9 { 838 | -ms-flex: 0 0 75%; 839 | flex: 0 0 75%; 840 | max-width: 75%; 841 | } 842 | .col-xl-10 { 843 | -ms-flex: 0 0 83.333333%; 844 | flex: 0 0 83.333333%; 845 | max-width: 83.333333%; 846 | } 847 | .col-xl-11 { 848 | -ms-flex: 0 0 91.666667%; 849 | flex: 0 0 91.666667%; 850 | max-width: 91.666667%; 851 | } 852 | .col-xl-12 { 853 | -ms-flex: 0 0 100%; 854 | flex: 0 0 100%; 855 | max-width: 100%; 856 | } 857 | .order-xl-first { 858 | -ms-flex-order: -1; 859 | order: -1; 860 | } 861 | .order-xl-1 { 862 | -ms-flex-order: 1; 863 | order: 1; 864 | } 865 | .order-xl-2 { 866 | -ms-flex-order: 2; 867 | order: 2; 868 | } 869 | .order-xl-3 { 870 | -ms-flex-order: 3; 871 | order: 3; 872 | } 873 | .order-xl-4 { 874 | -ms-flex-order: 4; 875 | order: 4; 876 | } 877 | .order-xl-5 { 878 | -ms-flex-order: 5; 879 | order: 5; 880 | } 881 | .order-xl-6 { 882 | -ms-flex-order: 6; 883 | order: 6; 884 | } 885 | .order-xl-7 { 886 | -ms-flex-order: 7; 887 | order: 7; 888 | } 889 | .order-xl-8 { 890 | -ms-flex-order: 8; 891 | order: 8; 892 | } 893 | .order-xl-9 { 894 | -ms-flex-order: 9; 895 | order: 9; 896 | } 897 | .order-xl-10 { 898 | -ms-flex-order: 10; 899 | order: 10; 900 | } 901 | .order-xl-11 { 902 | -ms-flex-order: 11; 903 | order: 11; 904 | } 905 | .order-xl-12 { 906 | -ms-flex-order: 12; 907 | order: 12; 908 | } 909 | .offset-xl-0 { 910 | margin-left: 0; 911 | } 912 | .offset-xl-1 { 913 | margin-left: 8.333333%; 914 | } 915 | .offset-xl-2 { 916 | margin-left: 16.666667%; 917 | } 918 | .offset-xl-3 { 919 | margin-left: 25%; 920 | } 921 | .offset-xl-4 { 922 | margin-left: 33.333333%; 923 | } 924 | .offset-xl-5 { 925 | margin-left: 41.666667%; 926 | } 927 | .offset-xl-6 { 928 | margin-left: 50%; 929 | } 930 | .offset-xl-7 { 931 | margin-left: 58.333333%; 932 | } 933 | .offset-xl-8 { 934 | margin-left: 66.666667%; 935 | } 936 | .offset-xl-9 { 937 | margin-left: 75%; 938 | } 939 | .offset-xl-10 { 940 | margin-left: 83.333333%; 941 | } 942 | .offset-xl-11 { 943 | margin-left: 91.666667%; 944 | } 945 | } 946 | 947 | .flex-row { 948 | -ms-flex-direction: row !important; 949 | flex-direction: row !important; 950 | } 951 | 952 | .flex-column { 953 | -ms-flex-direction: column !important; 954 | flex-direction: column !important; 955 | } 956 | 957 | .flex-row-reverse { 958 | -ms-flex-direction: row-reverse !important; 959 | flex-direction: row-reverse !important; 960 | } 961 | 962 | .flex-column-reverse { 963 | -ms-flex-direction: column-reverse !important; 964 | flex-direction: column-reverse !important; 965 | } 966 | 967 | .flex-wrap { 968 | -ms-flex-wrap: wrap !important; 969 | flex-wrap: wrap !important; 970 | } 971 | 972 | .flex-nowrap { 973 | -ms-flex-wrap: nowrap !important; 974 | flex-wrap: nowrap !important; 975 | } 976 | 977 | .flex-wrap-reverse { 978 | -ms-flex-wrap: wrap-reverse !important; 979 | flex-wrap: wrap-reverse !important; 980 | } 981 | 982 | .justify-content-start { 983 | -ms-flex-pack: start !important; 984 | justify-content: flex-start !important; 985 | } 986 | 987 | .justify-content-end { 988 | -ms-flex-pack: end !important; 989 | justify-content: flex-end !important; 990 | } 991 | 992 | .justify-content-center { 993 | -ms-flex-pack: center !important; 994 | justify-content: center !important; 995 | } 996 | 997 | .justify-content-between { 998 | -ms-flex-pack: justify !important; 999 | justify-content: space-between !important; 1000 | } 1001 | 1002 | .justify-content-around { 1003 | -ms-flex-pack: distribute !important; 1004 | justify-content: space-around !important; 1005 | } 1006 | 1007 | .align-items-start { 1008 | -ms-flex-align: start !important; 1009 | align-items: flex-start !important; 1010 | } 1011 | 1012 | .align-items-end { 1013 | -ms-flex-align: end !important; 1014 | align-items: flex-end !important; 1015 | } 1016 | 1017 | .align-items-center { 1018 | -ms-flex-align: center !important; 1019 | align-items: center !important; 1020 | } 1021 | 1022 | .align-items-baseline { 1023 | -ms-flex-align: baseline !important; 1024 | align-items: baseline !important; 1025 | } 1026 | 1027 | .align-items-stretch { 1028 | -ms-flex-align: stretch !important; 1029 | align-items: stretch !important; 1030 | } 1031 | 1032 | .align-content-start { 1033 | -ms-flex-line-pack: start !important; 1034 | align-content: flex-start !important; 1035 | } 1036 | 1037 | .align-content-end { 1038 | -ms-flex-line-pack: end !important; 1039 | align-content: flex-end !important; 1040 | } 1041 | 1042 | .align-content-center { 1043 | -ms-flex-line-pack: center !important; 1044 | align-content: center !important; 1045 | } 1046 | 1047 | .align-content-between { 1048 | -ms-flex-line-pack: justify !important; 1049 | align-content: space-between !important; 1050 | } 1051 | 1052 | .align-content-around { 1053 | -ms-flex-line-pack: distribute !important; 1054 | align-content: space-around !important; 1055 | } 1056 | 1057 | .align-content-stretch { 1058 | -ms-flex-line-pack: stretch !important; 1059 | align-content: stretch !important; 1060 | } 1061 | 1062 | .align-self-auto { 1063 | -ms-flex-item-align: auto !important; 1064 | align-self: auto !important; 1065 | } 1066 | 1067 | .align-self-start { 1068 | -ms-flex-item-align: start !important; 1069 | align-self: flex-start !important; 1070 | } 1071 | 1072 | .align-self-end { 1073 | -ms-flex-item-align: end !important; 1074 | align-self: flex-end !important; 1075 | } 1076 | 1077 | .align-self-center { 1078 | -ms-flex-item-align: center !important; 1079 | align-self: center !important; 1080 | } 1081 | 1082 | .align-self-baseline { 1083 | -ms-flex-item-align: baseline !important; 1084 | align-self: baseline !important; 1085 | } 1086 | 1087 | .align-self-stretch { 1088 | -ms-flex-item-align: stretch !important; 1089 | align-self: stretch !important; 1090 | } 1091 | 1092 | @media (min-width: 576px) { 1093 | .flex-sm-row { 1094 | -ms-flex-direction: row !important; 1095 | flex-direction: row !important; 1096 | } 1097 | .flex-sm-column { 1098 | -ms-flex-direction: column !important; 1099 | flex-direction: column !important; 1100 | } 1101 | .flex-sm-row-reverse { 1102 | -ms-flex-direction: row-reverse !important; 1103 | flex-direction: row-reverse !important; 1104 | } 1105 | .flex-sm-column-reverse { 1106 | -ms-flex-direction: column-reverse !important; 1107 | flex-direction: column-reverse !important; 1108 | } 1109 | .flex-sm-wrap { 1110 | -ms-flex-wrap: wrap !important; 1111 | flex-wrap: wrap !important; 1112 | } 1113 | .flex-sm-nowrap { 1114 | -ms-flex-wrap: nowrap !important; 1115 | flex-wrap: nowrap !important; 1116 | } 1117 | .flex-sm-wrap-reverse { 1118 | -ms-flex-wrap: wrap-reverse !important; 1119 | flex-wrap: wrap-reverse !important; 1120 | } 1121 | .justify-content-sm-start { 1122 | -ms-flex-pack: start !important; 1123 | justify-content: flex-start !important; 1124 | } 1125 | .justify-content-sm-end { 1126 | -ms-flex-pack: end !important; 1127 | justify-content: flex-end !important; 1128 | } 1129 | .justify-content-sm-center { 1130 | -ms-flex-pack: center !important; 1131 | justify-content: center !important; 1132 | } 1133 | .justify-content-sm-between { 1134 | -ms-flex-pack: justify !important; 1135 | justify-content: space-between !important; 1136 | } 1137 | .justify-content-sm-around { 1138 | -ms-flex-pack: distribute !important; 1139 | justify-content: space-around !important; 1140 | } 1141 | .align-items-sm-start { 1142 | -ms-flex-align: start !important; 1143 | align-items: flex-start !important; 1144 | } 1145 | .align-items-sm-end { 1146 | -ms-flex-align: end !important; 1147 | align-items: flex-end !important; 1148 | } 1149 | .align-items-sm-center { 1150 | -ms-flex-align: center !important; 1151 | align-items: center !important; 1152 | } 1153 | .align-items-sm-baseline { 1154 | -ms-flex-align: baseline !important; 1155 | align-items: baseline !important; 1156 | } 1157 | .align-items-sm-stretch { 1158 | -ms-flex-align: stretch !important; 1159 | align-items: stretch !important; 1160 | } 1161 | .align-content-sm-start { 1162 | -ms-flex-line-pack: start !important; 1163 | align-content: flex-start !important; 1164 | } 1165 | .align-content-sm-end { 1166 | -ms-flex-line-pack: end !important; 1167 | align-content: flex-end !important; 1168 | } 1169 | .align-content-sm-center { 1170 | -ms-flex-line-pack: center !important; 1171 | align-content: center !important; 1172 | } 1173 | .align-content-sm-between { 1174 | -ms-flex-line-pack: justify !important; 1175 | align-content: space-between !important; 1176 | } 1177 | .align-content-sm-around { 1178 | -ms-flex-line-pack: distribute !important; 1179 | align-content: space-around !important; 1180 | } 1181 | .align-content-sm-stretch { 1182 | -ms-flex-line-pack: stretch !important; 1183 | align-content: stretch !important; 1184 | } 1185 | .align-self-sm-auto { 1186 | -ms-flex-item-align: auto !important; 1187 | align-self: auto !important; 1188 | } 1189 | .align-self-sm-start { 1190 | -ms-flex-item-align: start !important; 1191 | align-self: flex-start !important; 1192 | } 1193 | .align-self-sm-end { 1194 | -ms-flex-item-align: end !important; 1195 | align-self: flex-end !important; 1196 | } 1197 | .align-self-sm-center { 1198 | -ms-flex-item-align: center !important; 1199 | align-self: center !important; 1200 | } 1201 | .align-self-sm-baseline { 1202 | -ms-flex-item-align: baseline !important; 1203 | align-self: baseline !important; 1204 | } 1205 | .align-self-sm-stretch { 1206 | -ms-flex-item-align: stretch !important; 1207 | align-self: stretch !important; 1208 | } 1209 | } 1210 | 1211 | @media (min-width: 768px) { 1212 | .flex-md-row { 1213 | -ms-flex-direction: row !important; 1214 | flex-direction: row !important; 1215 | } 1216 | .flex-md-column { 1217 | -ms-flex-direction: column !important; 1218 | flex-direction: column !important; 1219 | } 1220 | .flex-md-row-reverse { 1221 | -ms-flex-direction: row-reverse !important; 1222 | flex-direction: row-reverse !important; 1223 | } 1224 | .flex-md-column-reverse { 1225 | -ms-flex-direction: column-reverse !important; 1226 | flex-direction: column-reverse !important; 1227 | } 1228 | .flex-md-wrap { 1229 | -ms-flex-wrap: wrap !important; 1230 | flex-wrap: wrap !important; 1231 | } 1232 | .flex-md-nowrap { 1233 | -ms-flex-wrap: nowrap !important; 1234 | flex-wrap: nowrap !important; 1235 | } 1236 | .flex-md-wrap-reverse { 1237 | -ms-flex-wrap: wrap-reverse !important; 1238 | flex-wrap: wrap-reverse !important; 1239 | } 1240 | .justify-content-md-start { 1241 | -ms-flex-pack: start !important; 1242 | justify-content: flex-start !important; 1243 | } 1244 | .justify-content-md-end { 1245 | -ms-flex-pack: end !important; 1246 | justify-content: flex-end !important; 1247 | } 1248 | .justify-content-md-center { 1249 | -ms-flex-pack: center !important; 1250 | justify-content: center !important; 1251 | } 1252 | .justify-content-md-between { 1253 | -ms-flex-pack: justify !important; 1254 | justify-content: space-between !important; 1255 | } 1256 | .justify-content-md-around { 1257 | -ms-flex-pack: distribute !important; 1258 | justify-content: space-around !important; 1259 | } 1260 | .align-items-md-start { 1261 | -ms-flex-align: start !important; 1262 | align-items: flex-start !important; 1263 | } 1264 | .align-items-md-end { 1265 | -ms-flex-align: end !important; 1266 | align-items: flex-end !important; 1267 | } 1268 | .align-items-md-center { 1269 | -ms-flex-align: center !important; 1270 | align-items: center !important; 1271 | } 1272 | .align-items-md-baseline { 1273 | -ms-flex-align: baseline !important; 1274 | align-items: baseline !important; 1275 | } 1276 | .align-items-md-stretch { 1277 | -ms-flex-align: stretch !important; 1278 | align-items: stretch !important; 1279 | } 1280 | .align-content-md-start { 1281 | -ms-flex-line-pack: start !important; 1282 | align-content: flex-start !important; 1283 | } 1284 | .align-content-md-end { 1285 | -ms-flex-line-pack: end !important; 1286 | align-content: flex-end !important; 1287 | } 1288 | .align-content-md-center { 1289 | -ms-flex-line-pack: center !important; 1290 | align-content: center !important; 1291 | } 1292 | .align-content-md-between { 1293 | -ms-flex-line-pack: justify !important; 1294 | align-content: space-between !important; 1295 | } 1296 | .align-content-md-around { 1297 | -ms-flex-line-pack: distribute !important; 1298 | align-content: space-around !important; 1299 | } 1300 | .align-content-md-stretch { 1301 | -ms-flex-line-pack: stretch !important; 1302 | align-content: stretch !important; 1303 | } 1304 | .align-self-md-auto { 1305 | -ms-flex-item-align: auto !important; 1306 | align-self: auto !important; 1307 | } 1308 | .align-self-md-start { 1309 | -ms-flex-item-align: start !important; 1310 | align-self: flex-start !important; 1311 | } 1312 | .align-self-md-end { 1313 | -ms-flex-item-align: end !important; 1314 | align-self: flex-end !important; 1315 | } 1316 | .align-self-md-center { 1317 | -ms-flex-item-align: center !important; 1318 | align-self: center !important; 1319 | } 1320 | .align-self-md-baseline { 1321 | -ms-flex-item-align: baseline !important; 1322 | align-self: baseline !important; 1323 | } 1324 | .align-self-md-stretch { 1325 | -ms-flex-item-align: stretch !important; 1326 | align-self: stretch !important; 1327 | } 1328 | } 1329 | 1330 | @media (min-width: 992px) { 1331 | .flex-lg-row { 1332 | -ms-flex-direction: row !important; 1333 | flex-direction: row !important; 1334 | } 1335 | .flex-lg-column { 1336 | -ms-flex-direction: column !important; 1337 | flex-direction: column !important; 1338 | } 1339 | .flex-lg-row-reverse { 1340 | -ms-flex-direction: row-reverse !important; 1341 | flex-direction: row-reverse !important; 1342 | } 1343 | .flex-lg-column-reverse { 1344 | -ms-flex-direction: column-reverse !important; 1345 | flex-direction: column-reverse !important; 1346 | } 1347 | .flex-lg-wrap { 1348 | -ms-flex-wrap: wrap !important; 1349 | flex-wrap: wrap !important; 1350 | } 1351 | .flex-lg-nowrap { 1352 | -ms-flex-wrap: nowrap !important; 1353 | flex-wrap: nowrap !important; 1354 | } 1355 | .flex-lg-wrap-reverse { 1356 | -ms-flex-wrap: wrap-reverse !important; 1357 | flex-wrap: wrap-reverse !important; 1358 | } 1359 | .justify-content-lg-start { 1360 | -ms-flex-pack: start !important; 1361 | justify-content: flex-start !important; 1362 | } 1363 | .justify-content-lg-end { 1364 | -ms-flex-pack: end !important; 1365 | justify-content: flex-end !important; 1366 | } 1367 | .justify-content-lg-center { 1368 | -ms-flex-pack: center !important; 1369 | justify-content: center !important; 1370 | } 1371 | .justify-content-lg-between { 1372 | -ms-flex-pack: justify !important; 1373 | justify-content: space-between !important; 1374 | } 1375 | .justify-content-lg-around { 1376 | -ms-flex-pack: distribute !important; 1377 | justify-content: space-around !important; 1378 | } 1379 | .align-items-lg-start { 1380 | -ms-flex-align: start !important; 1381 | align-items: flex-start !important; 1382 | } 1383 | .align-items-lg-end { 1384 | -ms-flex-align: end !important; 1385 | align-items: flex-end !important; 1386 | } 1387 | .align-items-lg-center { 1388 | -ms-flex-align: center !important; 1389 | align-items: center !important; 1390 | } 1391 | .align-items-lg-baseline { 1392 | -ms-flex-align: baseline !important; 1393 | align-items: baseline !important; 1394 | } 1395 | .align-items-lg-stretch { 1396 | -ms-flex-align: stretch !important; 1397 | align-items: stretch !important; 1398 | } 1399 | .align-content-lg-start { 1400 | -ms-flex-line-pack: start !important; 1401 | align-content: flex-start !important; 1402 | } 1403 | .align-content-lg-end { 1404 | -ms-flex-line-pack: end !important; 1405 | align-content: flex-end !important; 1406 | } 1407 | .align-content-lg-center { 1408 | -ms-flex-line-pack: center !important; 1409 | align-content: center !important; 1410 | } 1411 | .align-content-lg-between { 1412 | -ms-flex-line-pack: justify !important; 1413 | align-content: space-between !important; 1414 | } 1415 | .align-content-lg-around { 1416 | -ms-flex-line-pack: distribute !important; 1417 | align-content: space-around !important; 1418 | } 1419 | .align-content-lg-stretch { 1420 | -ms-flex-line-pack: stretch !important; 1421 | align-content: stretch !important; 1422 | } 1423 | .align-self-lg-auto { 1424 | -ms-flex-item-align: auto !important; 1425 | align-self: auto !important; 1426 | } 1427 | .align-self-lg-start { 1428 | -ms-flex-item-align: start !important; 1429 | align-self: flex-start !important; 1430 | } 1431 | .align-self-lg-end { 1432 | -ms-flex-item-align: end !important; 1433 | align-self: flex-end !important; 1434 | } 1435 | .align-self-lg-center { 1436 | -ms-flex-item-align: center !important; 1437 | align-self: center !important; 1438 | } 1439 | .align-self-lg-baseline { 1440 | -ms-flex-item-align: baseline !important; 1441 | align-self: baseline !important; 1442 | } 1443 | .align-self-lg-stretch { 1444 | -ms-flex-item-align: stretch !important; 1445 | align-self: stretch !important; 1446 | } 1447 | } 1448 | 1449 | @media (min-width: 1200px) { 1450 | .flex-xl-row { 1451 | -ms-flex-direction: row !important; 1452 | flex-direction: row !important; 1453 | } 1454 | .flex-xl-column { 1455 | -ms-flex-direction: column !important; 1456 | flex-direction: column !important; 1457 | } 1458 | .flex-xl-row-reverse { 1459 | -ms-flex-direction: row-reverse !important; 1460 | flex-direction: row-reverse !important; 1461 | } 1462 | .flex-xl-column-reverse { 1463 | -ms-flex-direction: column-reverse !important; 1464 | flex-direction: column-reverse !important; 1465 | } 1466 | .flex-xl-wrap { 1467 | -ms-flex-wrap: wrap !important; 1468 | flex-wrap: wrap !important; 1469 | } 1470 | .flex-xl-nowrap { 1471 | -ms-flex-wrap: nowrap !important; 1472 | flex-wrap: nowrap !important; 1473 | } 1474 | .flex-xl-wrap-reverse { 1475 | -ms-flex-wrap: wrap-reverse !important; 1476 | flex-wrap: wrap-reverse !important; 1477 | } 1478 | .justify-content-xl-start { 1479 | -ms-flex-pack: start !important; 1480 | justify-content: flex-start !important; 1481 | } 1482 | .justify-content-xl-end { 1483 | -ms-flex-pack: end !important; 1484 | justify-content: flex-end !important; 1485 | } 1486 | .justify-content-xl-center { 1487 | -ms-flex-pack: center !important; 1488 | justify-content: center !important; 1489 | } 1490 | .justify-content-xl-between { 1491 | -ms-flex-pack: justify !important; 1492 | justify-content: space-between !important; 1493 | } 1494 | .justify-content-xl-around { 1495 | -ms-flex-pack: distribute !important; 1496 | justify-content: space-around !important; 1497 | } 1498 | .align-items-xl-start { 1499 | -ms-flex-align: start !important; 1500 | align-items: flex-start !important; 1501 | } 1502 | .align-items-xl-end { 1503 | -ms-flex-align: end !important; 1504 | align-items: flex-end !important; 1505 | } 1506 | .align-items-xl-center { 1507 | -ms-flex-align: center !important; 1508 | align-items: center !important; 1509 | } 1510 | .align-items-xl-baseline { 1511 | -ms-flex-align: baseline !important; 1512 | align-items: baseline !important; 1513 | } 1514 | .align-items-xl-stretch { 1515 | -ms-flex-align: stretch !important; 1516 | align-items: stretch !important; 1517 | } 1518 | .align-content-xl-start { 1519 | -ms-flex-line-pack: start !important; 1520 | align-content: flex-start !important; 1521 | } 1522 | .align-content-xl-end { 1523 | -ms-flex-line-pack: end !important; 1524 | align-content: flex-end !important; 1525 | } 1526 | .align-content-xl-center { 1527 | -ms-flex-line-pack: center !important; 1528 | align-content: center !important; 1529 | } 1530 | .align-content-xl-between { 1531 | -ms-flex-line-pack: justify !important; 1532 | align-content: space-between !important; 1533 | } 1534 | .align-content-xl-around { 1535 | -ms-flex-line-pack: distribute !important; 1536 | align-content: space-around !important; 1537 | } 1538 | .align-content-xl-stretch { 1539 | -ms-flex-line-pack: stretch !important; 1540 | align-content: stretch !important; 1541 | } 1542 | .align-self-xl-auto { 1543 | -ms-flex-item-align: auto !important; 1544 | align-self: auto !important; 1545 | } 1546 | .align-self-xl-start { 1547 | -ms-flex-item-align: start !important; 1548 | align-self: flex-start !important; 1549 | } 1550 | .align-self-xl-end { 1551 | -ms-flex-item-align: end !important; 1552 | align-self: flex-end !important; 1553 | } 1554 | .align-self-xl-center { 1555 | -ms-flex-item-align: center !important; 1556 | align-self: center !important; 1557 | } 1558 | .align-self-xl-baseline { 1559 | -ms-flex-item-align: baseline !important; 1560 | align-self: baseline !important; 1561 | } 1562 | .align-self-xl-stretch { 1563 | -ms-flex-item-align: stretch !important; 1564 | align-self: stretch !important; 1565 | } 1566 | } 1567 | /*# sourceMappingURL=bootstrap-grid.css.map */ -------------------------------------------------------------------------------- /static/js/bootstrap.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap v4.0.0-beta.2 (https://getbootstrap.com) 3 | * Copyright 2011-2017 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) 4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 5 | */ 6 | var bootstrap=function(t,e,n){"use strict";function i(t,e){for(var n=0;n0?n:null}catch(t){return null}},reflow:function(t){return t.offsetHeight},triggerTransitionEnd:function(t){e(t).trigger(r.end)},supportsTransitionEnd:function(){return Boolean(r)},isElement:function(t){return(t[0]||t).nodeType},typeCheckConfig:function(e,n,i){for(var s in i)if(Object.prototype.hasOwnProperty.call(i,s)){var r=i[s],o=n[s],l=o&&a.isElement(o)?"element":t(o);if(!new RegExp(r).test(l))throw new Error(e.toUpperCase()+': Option "'+s+'" provided type "'+l+'" but expected type "'+r+'".')}}};return r=i(),e.fn.emulateTransitionEnd=s,a.supportsTransitionEnd()&&(e.event.special[a.TRANSITION_END]=n()),a}(),r=function(t,e,n){return e&&i(t.prototype,e),n&&i(t,n),t},o=function(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e},a=function(){var t="alert",n=e.fn[t],i={CLOSE:"close.bs.alert",CLOSED:"closed.bs.alert",CLICK_DATA_API:"click.bs.alert.data-api"},o={ALERT:"alert",FADE:"fade",SHOW:"show"},a=function(){function t(t){this._element=t}var n=t.prototype;return n.close=function(t){t=t||this._element;var e=this._getRootElement(t);this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)},n.dispose=function(){e.removeData(this._element,"bs.alert"),this._element=null},n._getRootElement=function(t){var n=s.getSelectorFromElement(t),i=!1;return n&&(i=e(n)[0]),i||(i=e(t).closest("."+o.ALERT)[0]),i},n._triggerCloseEvent=function(t){var n=e.Event(i.CLOSE);return e(t).trigger(n),n},n._removeElement=function(t){var n=this;e(t).removeClass(o.SHOW),s.supportsTransitionEnd()&&e(t).hasClass(o.FADE)?e(t).one(s.TRANSITION_END,function(e){return n._destroyElement(t,e)}).emulateTransitionEnd(150):this._destroyElement(t)},n._destroyElement=function(t){e(t).detach().trigger(i.CLOSED).remove()},t._jQueryInterface=function(n){return this.each(function(){var i=e(this),s=i.data("bs.alert");s||(s=new t(this),i.data("bs.alert",s)),"close"===n&&s[n](this)})},t._handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},r(t,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}}]),t}();return e(document).on(i.CLICK_DATA_API,{DISMISS:'[data-dismiss="alert"]'}.DISMISS,a._handleDismiss(new a)),e.fn[t]=a._jQueryInterface,e.fn[t].Constructor=a,e.fn[t].noConflict=function(){return e.fn[t]=n,a._jQueryInterface},a}(),l=function(){var t="button",n=e.fn[t],i={ACTIVE:"active",BUTTON:"btn",FOCUS:"focus"},s={DATA_TOGGLE_CARROT:'[data-toggle^="button"]',DATA_TOGGLE:'[data-toggle="buttons"]',INPUT:"input",ACTIVE:".active",BUTTON:".btn"},o={CLICK_DATA_API:"click.bs.button.data-api",FOCUS_BLUR_DATA_API:"focus.bs.button.data-api blur.bs.button.data-api"},a=function(){function t(t){this._element=t}var n=t.prototype;return n.toggle=function(){var t=!0,n=!0,r=e(this._element).closest(s.DATA_TOGGLE)[0];if(r){var o=e(this._element).find(s.INPUT)[0];if(o){if("radio"===o.type)if(o.checked&&e(this._element).hasClass(i.ACTIVE))t=!1;else{var a=e(r).find(s.ACTIVE)[0];a&&e(a).removeClass(i.ACTIVE)}if(t){if(o.hasAttribute("disabled")||r.hasAttribute("disabled")||o.classList.contains("disabled")||r.classList.contains("disabled"))return;o.checked=!e(this._element).hasClass(i.ACTIVE),e(o).trigger("change")}o.focus(),n=!1}}n&&this._element.setAttribute("aria-pressed",!e(this._element).hasClass(i.ACTIVE)),t&&e(this._element).toggleClass(i.ACTIVE)},n.dispose=function(){e.removeData(this._element,"bs.button"),this._element=null},t._jQueryInterface=function(n){return this.each(function(){var i=e(this).data("bs.button");i||(i=new t(this),e(this).data("bs.button",i)),"toggle"===n&&i[n]()})},r(t,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}}]),t}();return e(document).on(o.CLICK_DATA_API,s.DATA_TOGGLE_CARROT,function(t){t.preventDefault();var n=t.target;e(n).hasClass(i.BUTTON)||(n=e(n).closest(s.BUTTON)),a._jQueryInterface.call(e(n),"toggle")}).on(o.FOCUS_BLUR_DATA_API,s.DATA_TOGGLE_CARROT,function(t){var n=e(t.target).closest(s.BUTTON)[0];e(n).toggleClass(i.FOCUS,/^focus(in)?$/.test(t.type))}),e.fn[t]=a._jQueryInterface,e.fn[t].Constructor=a,e.fn[t].noConflict=function(){return e.fn[t]=n,a._jQueryInterface},a}(),h=function(){var t="carousel",n="bs.carousel",i="."+n,o=e.fn[t],a={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0},l={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean"},h={NEXT:"next",PREV:"prev",LEFT:"left",RIGHT:"right"},c={SLIDE:"slide"+i,SLID:"slid"+i,KEYDOWN:"keydown"+i,MOUSEENTER:"mouseenter"+i,MOUSELEAVE:"mouseleave"+i,TOUCHEND:"touchend"+i,LOAD_DATA_API:"load.bs.carousel.data-api",CLICK_DATA_API:"click.bs.carousel.data-api"},u={CAROUSEL:"carousel",ACTIVE:"active",SLIDE:"slide",RIGHT:"carousel-item-right",LEFT:"carousel-item-left",NEXT:"carousel-item-next",PREV:"carousel-item-prev",ITEM:"carousel-item"},d={ACTIVE:".active",ACTIVE_ITEM:".active.carousel-item",ITEM:".carousel-item",NEXT_PREV:".carousel-item-next, .carousel-item-prev",INDICATORS:".carousel-indicators",DATA_SLIDE:"[data-slide], [data-slide-to]",DATA_RIDE:'[data-ride="carousel"]'},f=function(){function o(t,n){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this._config=this._getConfig(n),this._element=e(t)[0],this._indicatorsElement=e(this._element).find(d.INDICATORS)[0],this._addEventListeners()}var f=o.prototype;return f.next=function(){this._isSliding||this._slide(h.NEXT)},f.nextWhenVisible=function(){!document.hidden&&e(this._element).is(":visible")&&"hidden"!==e(this._element).css("visibility")&&this.next()},f.prev=function(){this._isSliding||this._slide(h.PREV)},f.pause=function(t){t||(this._isPaused=!0),e(this._element).find(d.NEXT_PREV)[0]&&s.supportsTransitionEnd()&&(s.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},f.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))},f.to=function(t){var n=this;this._activeElement=e(this._element).find(d.ACTIVE_ITEM)[0];var i=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)e(this._element).one(c.SLID,function(){return n.to(t)});else{if(i===t)return this.pause(),void this.cycle();var s=t>i?h.NEXT:h.PREV;this._slide(s,this._items[t])}},f.dispose=function(){e(this._element).off(i),e.removeData(this._element,n),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},f._getConfig=function(n){return n=e.extend({},a,n),s.typeCheckConfig(t,n,l),n},f._addEventListeners=function(){var t=this;this._config.keyboard&&e(this._element).on(c.KEYDOWN,function(e){return t._keydown(e)}),"hover"===this._config.pause&&(e(this._element).on(c.MOUSEENTER,function(e){return t.pause(e)}).on(c.MOUSELEAVE,function(e){return t.cycle(e)}),"ontouchstart"in document.documentElement&&e(this._element).on(c.TOUCHEND,function(){t.pause(),t.touchTimeout&&clearTimeout(t.touchTimeout),t.touchTimeout=setTimeout(function(e){return t.cycle(e)},500+t._config.interval)}))},f._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();break;default:return}},f._getItemIndex=function(t){return this._items=e.makeArray(e(t).parent().find(d.ITEM)),this._items.indexOf(t)},f._getItemByDirection=function(t,e){var n=t===h.NEXT,i=t===h.PREV,s=this._getItemIndex(e),r=this._items.length-1;if((i&&0===s||n&&s===r)&&!this._config.wrap)return e;var o=(s+(t===h.PREV?-1:1))%this._items.length;return-1===o?this._items[this._items.length-1]:this._items[o]},f._triggerSlideEvent=function(t,n){var i=this._getItemIndex(t),s=this._getItemIndex(e(this._element).find(d.ACTIVE_ITEM)[0]),r=e.Event(c.SLIDE,{relatedTarget:t,direction:n,from:s,to:i});return e(this._element).trigger(r),r},f._setActiveIndicatorElement=function(t){if(this._indicatorsElement){e(this._indicatorsElement).find(d.ACTIVE).removeClass(u.ACTIVE);var n=this._indicatorsElement.children[this._getItemIndex(t)];n&&e(n).addClass(u.ACTIVE)}},f._slide=function(t,n){var i,r,o,a=this,l=e(this._element).find(d.ACTIVE_ITEM)[0],f=this._getItemIndex(l),_=n||l&&this._getItemByDirection(t,l),g=this._getItemIndex(_),m=Boolean(this._interval);if(t===h.NEXT?(i=u.LEFT,r=u.NEXT,o=h.LEFT):(i=u.RIGHT,r=u.PREV,o=h.RIGHT),_&&e(_).hasClass(u.ACTIVE))this._isSliding=!1;else if(!this._triggerSlideEvent(_,o).isDefaultPrevented()&&l&&_){this._isSliding=!0,m&&this.pause(),this._setActiveIndicatorElement(_);var p=e.Event(c.SLID,{relatedTarget:_,direction:o,from:f,to:g});s.supportsTransitionEnd()&&e(this._element).hasClass(u.SLIDE)?(e(_).addClass(r),s.reflow(_),e(l).addClass(i),e(_).addClass(i),e(l).one(s.TRANSITION_END,function(){e(_).removeClass(i+" "+r).addClass(u.ACTIVE),e(l).removeClass(u.ACTIVE+" "+r+" "+i),a._isSliding=!1,setTimeout(function(){return e(a._element).trigger(p)},0)}).emulateTransitionEnd(600)):(e(l).removeClass(u.ACTIVE),e(_).addClass(u.ACTIVE),this._isSliding=!1,e(this._element).trigger(p)),m&&this.cycle()}},o._jQueryInterface=function(t){return this.each(function(){var i=e(this).data(n),s=e.extend({},a,e(this).data());"object"==typeof t&&e.extend(s,t);var r="string"==typeof t?t:s.slide;if(i||(i=new o(this,s),e(this).data(n,i)),"number"==typeof t)i.to(t);else if("string"==typeof r){if("undefined"==typeof i[r])throw new Error('No method named "'+r+'"');i[r]()}else s.interval&&(i.pause(),i.cycle())})},o._dataApiClickHandler=function(t){var i=s.getSelectorFromElement(this);if(i){var r=e(i)[0];if(r&&e(r).hasClass(u.CAROUSEL)){var a=e.extend({},e(r).data(),e(this).data()),l=this.getAttribute("data-slide-to");l&&(a.interval=!1),o._jQueryInterface.call(e(r),a),l&&e(r).data(n).to(l),t.preventDefault()}}},r(o,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}},{key:"Default",get:function(){return a}}]),o}();return e(document).on(c.CLICK_DATA_API,d.DATA_SLIDE,f._dataApiClickHandler),e(window).on(c.LOAD_DATA_API,function(){e(d.DATA_RIDE).each(function(){var t=e(this);f._jQueryInterface.call(t,t.data())})}),e.fn[t]=f._jQueryInterface,e.fn[t].Constructor=f,e.fn[t].noConflict=function(){return e.fn[t]=o,f._jQueryInterface},f}(),c=function(){var t="collapse",n="bs.collapse",i=e.fn[t],o={toggle:!0,parent:""},a={toggle:"boolean",parent:"(string|element)"},l={SHOW:"show.bs.collapse",SHOWN:"shown.bs.collapse",HIDE:"hide.bs.collapse",HIDDEN:"hidden.bs.collapse",CLICK_DATA_API:"click.bs.collapse.data-api"},h={SHOW:"show",COLLAPSE:"collapse",COLLAPSING:"collapsing",COLLAPSED:"collapsed"},c={WIDTH:"width",HEIGHT:"height"},u={ACTIVES:".show, .collapsing",DATA_TOGGLE:'[data-toggle="collapse"]'},d=function(){function i(t,n){this._isTransitioning=!1,this._element=t,this._config=this._getConfig(n),this._triggerArray=e.makeArray(e('[data-toggle="collapse"][href="#'+t.id+'"],[data-toggle="collapse"][data-target="#'+t.id+'"]'));for(var i=e(u.DATA_TOGGLE),r=0;r0&&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 d=i.prototype;return d.toggle=function(){e(this._element).hasClass(h.SHOW)?this.hide():this.show()},d.show=function(){var t=this;if(!this._isTransitioning&&!e(this._element).hasClass(h.SHOW)){var r,o;if(this._parent&&((r=e.makeArray(e(this._parent).children().children(u.ACTIVES))).length||(r=null)),!(r&&(o=e(r).data(n))&&o._isTransitioning)){var a=e.Event(l.SHOW);if(e(this._element).trigger(a),!a.isDefaultPrevented()){r&&(i._jQueryInterface.call(e(r),"hide"),o||e(r).data(n,null));var c=this._getDimension();e(this._element).removeClass(h.COLLAPSE).addClass(h.COLLAPSING),this._element.style[c]=0,this._triggerArray.length&&e(this._triggerArray).removeClass(h.COLLAPSED).attr("aria-expanded",!0),this.setTransitioning(!0);var d=function(){e(t._element).removeClass(h.COLLAPSING).addClass(h.COLLAPSE).addClass(h.SHOW),t._element.style[c]="",t.setTransitioning(!1),e(t._element).trigger(l.SHOWN)};if(s.supportsTransitionEnd()){var f="scroll"+(c[0].toUpperCase()+c.slice(1));e(this._element).one(s.TRANSITION_END,d).emulateTransitionEnd(600),this._element.style[c]=this._element[f]+"px"}else d()}}}},d.hide=function(){var t=this;if(!this._isTransitioning&&e(this._element).hasClass(h.SHOW)){var n=e.Event(l.HIDE);if(e(this._element).trigger(n),!n.isDefaultPrevented()){var i=this._getDimension();if(this._element.style[i]=this._element.getBoundingClientRect()[i]+"px",s.reflow(this._element),e(this._element).addClass(h.COLLAPSING).removeClass(h.COLLAPSE).removeClass(h.SHOW),this._triggerArray.length)for(var r=0;r0},g._getPopperConfig=function(){var t=this,n={};"function"==typeof this._config.offset?n.fn=function(n){return n.offsets=e.extend({},n.offsets,t._config.offset(n.offsets)||{}),n}:n.offset=this._config.offset;var i={placement:this._getPlacement(),modifiers:{offset:n,flip:{enabled:this._config.flip}}};return this._inNavbar&&(i.modifiers.applyStyle={enabled:!this._inNavbar}),i},a._jQueryInterface=function(t){return this.each(function(){var n=e(this).data(i),s="object"==typeof t?t:null;if(n||(n=new a(this,s),e(this).data(i,n)),"string"==typeof t){if("undefined"==typeof n[t])throw new Error('No method named "'+t+'"');n[t]()}})},a._clearMenus=function(t){if(!t||3!==t.which&&("keyup"!==t.type||9===t.which))for(var n=e.makeArray(e(u.DATA_TOGGLE)),s=0;s0&&r--,40===t.which&&rdocument.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},u._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},u._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right
',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip"},u={SHOW:"show",OUT:"out"},d={HIDE:"hide"+i,HIDDEN:"hidden"+i,SHOW:"show"+i,SHOWN:"shown"+i,INSERTED:"inserted"+i,CLICK:"click"+i,FOCUSIN:"focusin"+i,FOCUSOUT:"focusout"+i,MOUSEENTER:"mouseenter"+i,MOUSELEAVE:"mouseleave"+i},f={FADE:"fade",SHOW:"show"},_={TOOLTIP:".tooltip",TOOLTIP_INNER:".tooltip-inner",ARROW:".arrow"},g={HOVER:"hover",FOCUS:"focus",CLICK:"click",MANUAL:"manual"},m=function(){function o(t,e){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 m=o.prototype;return m.enable=function(){this._isEnabled=!0},m.disable=function(){this._isEnabled=!1},m.toggleEnabled=function(){this._isEnabled=!this._isEnabled},m.toggle=function(t){if(this._isEnabled)if(t){var n=this.constructor.DATA_KEY,i=e(t.currentTarget).data(n);i||(i=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(n,i)),i._activeTrigger.click=!i._activeTrigger.click,i._isWithActiveTrigger()?i._enter(null,i):i._leave(null,i)}else{if(e(this.getTipElement()).hasClass(f.SHOW))return void this._leave(null,this);this._enter(null,this)}},m.dispose=function(){clearTimeout(this._timeout),e.removeData(this.element,this.constructor.DATA_KEY),e(this.element).off(this.constructor.EVENT_KEY),e(this.element).closest(".modal").off("hide.bs.modal"),this.tip&&e(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,null!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},m.show=function(){var t=this;if("none"===e(this.element).css("display"))throw new Error("Please use show on visible elements");var i=e.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){e(this.element).trigger(i);var r=e.contains(this.element.ownerDocument.documentElement,this.element);if(i.isDefaultPrevented()||!r)return;var a=this.getTipElement(),l=s.getUID(this.constructor.NAME);a.setAttribute("id",l),this.element.setAttribute("aria-describedby",l),this.setContent(),this.config.animation&&e(a).addClass(f.FADE);var h="function"==typeof this.config.placement?this.config.placement.call(this,a,this.element):this.config.placement,c=this._getAttachment(h);this.addAttachmentClass(c);var d=!1===this.config.container?document.body:e(this.config.container);e(a).data(this.constructor.DATA_KEY,this),e.contains(this.element.ownerDocument.documentElement,this.tip)||e(a).appendTo(d),e(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new n(this.element,a,{placement:c,modifiers:{offset:{offset:this.config.offset},flip:{behavior:this.config.fallbackPlacement},arrow:{element:_.ARROW}},onCreate:function(e){e.originalPlacement!==e.placement&&t._handlePopperPlacementChange(e)},onUpdate:function(e){t._handlePopperPlacementChange(e)}}),e(a).addClass(f.SHOW),"ontouchstart"in document.documentElement&&e("body").children().on("mouseover",null,e.noop);var g=function(){t.config.animation&&t._fixTransition();var n=t._hoverState;t._hoverState=null,e(t.element).trigger(t.constructor.Event.SHOWN),n===u.OUT&&t._leave(null,t)};s.supportsTransitionEnd()&&e(this.tip).hasClass(f.FADE)?e(this.tip).one(s.TRANSITION_END,g).emulateTransitionEnd(o._TRANSITION_DURATION):g()}},m.hide=function(t){var n=this,i=this.getTipElement(),r=e.Event(this.constructor.Event.HIDE),o=function(){n._hoverState!==u.SHOW&&i.parentNode&&i.parentNode.removeChild(i),n._cleanTipClass(),n.element.removeAttribute("aria-describedby"),e(n.element).trigger(n.constructor.Event.HIDDEN),null!==n._popper&&n._popper.destroy(),t&&t()};e(this.element).trigger(r),r.isDefaultPrevented()||(e(i).removeClass(f.SHOW),"ontouchstart"in document.documentElement&&e("body").children().off("mouseover",null,e.noop),this._activeTrigger[g.CLICK]=!1,this._activeTrigger[g.FOCUS]=!1,this._activeTrigger[g.HOVER]=!1,s.supportsTransitionEnd()&&e(this.tip).hasClass(f.FADE)?e(i).one(s.TRANSITION_END,o).emulateTransitionEnd(150):o(),this._hoverState="")},m.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},m.isWithContent=function(){return Boolean(this.getTitle())},m.addAttachmentClass=function(t){e(this.getTipElement()).addClass("bs-tooltip-"+t)},m.getTipElement=function(){return this.tip=this.tip||e(this.config.template)[0],this.tip},m.setContent=function(){var t=e(this.getTipElement());this.setElementContent(t.find(_.TOOLTIP_INNER),this.getTitle()),t.removeClass(f.FADE+" "+f.SHOW)},m.setElementContent=function(t,n){var i=this.config.html;"object"==typeof n&&(n.nodeType||n.jquery)?i?e(n).parent().is(t)||t.empty().append(n):t.text(e(n).text()):t[i?"html":"text"](n)},m.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},m._getAttachment=function(t){return h[t.toUpperCase()]},m._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach(function(n){if("click"===n)e(t.element).on(t.constructor.Event.CLICK,t.config.selector,function(e){return t.toggle(e)});else if(n!==g.MANUAL){var i=n===g.HOVER?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,s=n===g.HOVER?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;e(t.element).on(i,t.config.selector,function(e){return t._enter(e)}).on(s,t.config.selector,function(e){return t._leave(e)})}e(t.element).closest(".modal").on("hide.bs.modal",function(){return t.hide()})}),this.config.selector?this.config=e.extend({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},m._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",""))},m._enter=function(t,n){var i=this.constructor.DATA_KEY;(n=n||e(t.currentTarget).data(i))||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(i,n)),t&&(n._activeTrigger["focusin"===t.type?g.FOCUS:g.HOVER]=!0),e(n.getTipElement()).hasClass(f.SHOW)||n._hoverState===u.SHOW?n._hoverState=u.SHOW:(clearTimeout(n._timeout),n._hoverState=u.SHOW,n.config.delay&&n.config.delay.show?n._timeout=setTimeout(function(){n._hoverState===u.SHOW&&n.show()},n.config.delay.show):n.show())},m._leave=function(t,n){var i=this.constructor.DATA_KEY;(n=n||e(t.currentTarget).data(i))||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(i,n)),t&&(n._activeTrigger["focusout"===t.type?g.FOCUS:g.HOVER]=!1),n._isWithActiveTrigger()||(clearTimeout(n._timeout),n._hoverState=u.OUT,n.config.delay&&n.config.delay.hide?n._timeout=setTimeout(function(){n._hoverState===u.OUT&&n.hide()},n.config.delay.hide):n.hide())},m._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},m._getConfig=function(n){return"number"==typeof(n=e.extend({},this.constructor.Default,e(this.element).data(),n)).delay&&(n.delay={show:n.delay,hide:n.delay}),"number"==typeof n.title&&(n.title=n.title.toString()),"number"==typeof n.content&&(n.content=n.content.toString()),s.typeCheckConfig(t,n,this.constructor.DefaultType),n},m._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},m._cleanTipClass=function(){var t=e(this.getTipElement()),n=t.attr("class").match(a);null!==n&&n.length>0&&t.removeClass(n.join(""))},m._handlePopperPlacementChange=function(t){this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},m._fixTransition=function(){var t=this.getTipElement(),n=this.config.animation;null===t.getAttribute("x-placement")&&(e(t).removeClass(f.FADE),this.config.animation=!1,this.hide(),this.show(),this.config.animation=n)},o._jQueryInterface=function(t){return this.each(function(){var n=e(this).data("bs.tooltip"),i="object"==typeof t&&t;if((n||!/dispose|hide/.test(t))&&(n||(n=new o(this,i),e(this).data("bs.tooltip",n)),"string"==typeof t)){if("undefined"==typeof n[t])throw new Error('No method named "'+t+'"');n[t]()}})},r(o,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}},{key:"Default",get:function(){return c}},{key:"NAME",get:function(){return t}},{key:"DATA_KEY",get:function(){return"bs.tooltip"}},{key:"Event",get:function(){return d}},{key:"EVENT_KEY",get:function(){return i}},{key:"DefaultType",get:function(){return l}}]),o}();return e.fn[t]=m._jQueryInterface,e.fn[t].Constructor=m,e.fn[t].noConflict=function(){return e.fn[t]=o,m._jQueryInterface},m}(),_=function(){var t="popover",n=".bs.popover",i=e.fn[t],s=new RegExp("(^|\\s)bs-popover\\S+","g"),a=e.extend({},f.Default,{placement:"right",trigger:"click",content:"",template:''}),l=e.extend({},f.DefaultType,{content:"(string|element|function)"}),h={FADE:"fade",SHOW:"show"},c={TITLE:".popover-header",CONTENT:".popover-body"},u={HIDE:"hide"+n,HIDDEN:"hidden"+n,SHOW:"show"+n,SHOWN:"shown"+n,INSERTED:"inserted"+n,CLICK:"click"+n,FOCUSIN:"focusin"+n,FOCUSOUT:"focusout"+n,MOUSEENTER:"mouseenter"+n,MOUSELEAVE:"mouseleave"+n},d=function(i){function d(){return i.apply(this,arguments)||this}o(d,i);var f=d.prototype;return f.isWithContent=function(){return this.getTitle()||this._getContent()},f.addAttachmentClass=function(t){e(this.getTipElement()).addClass("bs-popover-"+t)},f.getTipElement=function(){return this.tip=this.tip||e(this.config.template)[0],this.tip},f.setContent=function(){var t=e(this.getTipElement());this.setElementContent(t.find(c.TITLE),this.getTitle()),this.setElementContent(t.find(c.CONTENT),this._getContent()),t.removeClass(h.FADE+" "+h.SHOW)},f._getContent=function(){return this.element.getAttribute("data-content")||("function"==typeof this.config.content?this.config.content.call(this.element):this.config.content)},f._cleanTipClass=function(){var t=e(this.getTipElement()),n=t.attr("class").match(s);null!==n&&n.length>0&&t.removeClass(n.join(""))},d._jQueryInterface=function(t){return this.each(function(){var n=e(this).data("bs.popover"),i="object"==typeof t?t:null;if((n||!/destroy|hide/.test(t))&&(n||(n=new d(this,i),e(this).data("bs.popover",n)),"string"==typeof t)){if("undefined"==typeof n[t])throw new Error('No method named "'+t+'"');n[t]()}})},r(d,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}},{key:"Default",get:function(){return a}},{key:"NAME",get:function(){return t}},{key:"DATA_KEY",get:function(){return"bs.popover"}},{key:"Event",get:function(){return u}},{key:"EVENT_KEY",get:function(){return n}},{key:"DefaultType",get:function(){return l}}]),d}(f);return e.fn[t]=d._jQueryInterface,e.fn[t].Constructor=d,e.fn[t].noConflict=function(){return e.fn[t]=i,d._jQueryInterface},d}(),g=function(){var t="scrollspy",n=e.fn[t],i={offset:10,method:"auto",target:""},o={offset:"number",method:"string",target:"(string|element)"},a={ACTIVATE:"activate.bs.scrollspy",SCROLL:"scroll.bs.scrollspy",LOAD_DATA_API:"load.bs.scrollspy.data-api"},l={DROPDOWN_ITEM:"dropdown-item",DROPDOWN_MENU:"dropdown-menu",ACTIVE:"active"},h={DATA_SPY:'[data-spy="scroll"]',ACTIVE:".active",NAV_LIST_GROUP:".nav, .list-group",NAV_LINKS:".nav-link",NAV_ITEMS:".nav-item",LIST_ITEMS:".list-group-item",DROPDOWN:".dropdown",DROPDOWN_ITEMS:".dropdown-item",DROPDOWN_TOGGLE:".dropdown-toggle"},c={OFFSET:"offset",POSITION:"position"},u=function(){function n(t,n){var i=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(n),this._selector=this._config.target+" "+h.NAV_LINKS+","+this._config.target+" "+h.LIST_ITEMS+","+this._config.target+" "+h.DROPDOWN_ITEMS,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,e(this._scrollElement).on(a.SCROLL,function(t){return i._process(t)}),this.refresh(),this._process()}var u=n.prototype;return u.refresh=function(){var t=this,n=this._scrollElement!==this._scrollElement.window?c.POSITION:c.OFFSET,i="auto"===this._config.method?n:this._config.method,r=i===c.POSITION?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),e.makeArray(e(this._selector)).map(function(t){var n,o=s.getSelectorFromElement(t);if(o&&(n=e(o)[0]),n){var a=n.getBoundingClientRect();if(a.width||a.height)return[e(n)[i]().top+r,o]}return null}).filter(function(t){return t}).sort(function(t,e){return t[0]-e[0]}).forEach(function(e){t._offsets.push(e[0]),t._targets.push(e[1])})},u.dispose=function(){e.removeData(this._element,"bs.scrollspy"),e(this._scrollElement).off(".bs.scrollspy"),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},u._getConfig=function(n){if("string"!=typeof(n=e.extend({},i,n)).target){var r=e(n.target).attr("id");r||(r=s.getUID(t),e(n.target).attr("id",r)),n.target="#"+r}return s.typeCheckConfig(t,n,o),n},u._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},u._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},u._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},u._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(),t>=n){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t0)return this._activeTarget=null,void this._clear();for(var s=this._offsets.length;s--;)this._activeTarget!==this._targets[s]&&t>=this._offsets[s]&&("undefined"==typeof this._offsets[s+1]||t li > .active",DATA_TOGGLE:'[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',DROPDOWN_TOGGLE:".dropdown-toggle",DROPDOWN_ACTIVE_CHILD:"> .dropdown-menu .active"},a=function(){function t(t){this._element=t}var a=t.prototype;return a.show=function(){var t=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&e(this._element).hasClass(i.ACTIVE)||e(this._element).hasClass(i.DISABLED))){var r,a,l=e(this._element).closest(o.NAV_LIST_GROUP)[0],h=s.getSelectorFromElement(this._element);if(l){var c="UL"===l.nodeName?o.ACTIVE_UL:o.ACTIVE;a=e.makeArray(e(l).find(c)),a=a[a.length-1]}var u=e.Event(n.HIDE,{relatedTarget:this._element}),d=e.Event(n.SHOW,{relatedTarget:a});if(a&&e(a).trigger(u),e(this._element).trigger(d),!d.isDefaultPrevented()&&!u.isDefaultPrevented()){h&&(r=e(h)[0]),this._activate(this._element,l);var f=function(){var i=e.Event(n.HIDDEN,{relatedTarget:t._element}),s=e.Event(n.SHOWN,{relatedTarget:a});e(a).trigger(i),e(t._element).trigger(s)};r?this._activate(r,r.parentNode,f):f()}}},a.dispose=function(){e.removeData(this._element,"bs.tab"),this._element=null},a._activate=function(t,n,r){var a,l=this,h=(a="UL"===n.nodeName?e(n).find(o.ACTIVE_UL):e(n).children(o.ACTIVE))[0],c=r&&s.supportsTransitionEnd()&&h&&e(h).hasClass(i.FADE),u=function(){return l._transitionComplete(t,h,c,r)};h&&c?e(h).one(s.TRANSITION_END,u).emulateTransitionEnd(150):u(),h&&e(h).removeClass(i.SHOW)},a._transitionComplete=function(t,n,r,a){if(n){e(n).removeClass(i.ACTIVE);var l=e(n.parentNode).find(o.DROPDOWN_ACTIVE_CHILD)[0];l&&e(l).removeClass(i.ACTIVE),"tab"===n.getAttribute("role")&&n.setAttribute("aria-selected",!1)}if(e(t).addClass(i.ACTIVE),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),r?(s.reflow(t),e(t).addClass(i.SHOW)):e(t).removeClass(i.FADE),t.parentNode&&e(t.parentNode).hasClass(i.DROPDOWN_MENU)){var h=e(t).closest(o.DROPDOWN)[0];h&&e(h).find(o.DROPDOWN_TOGGLE).addClass(i.ACTIVE),t.setAttribute("aria-expanded",!0)}a&&a()},t._jQueryInterface=function(n){return this.each(function(){var i=e(this),s=i.data("bs.tab");if(s||(s=new t(this),i.data("bs.tab",s)),"string"==typeof n){if("undefined"==typeof s[n])throw new Error('No method named "'+n+'"');s[n]()}})},r(t,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}}]),t}();return e(document).on(n.CLICK_DATA_API,o.DATA_TOGGLE,function(t){t.preventDefault(),a._jQueryInterface.call(e(this),"show")}),e.fn.tab=a._jQueryInterface,e.fn.tab.Constructor=a,e.fn.tab.noConflict=function(){return e.fn.tab=t,a._jQueryInterface},a}();return function(){if("undefined"==typeof e)throw new Error("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.");var t=e.fn.jquery.split(" ")[0].split(".");if(t[0]<2&&t[1]<9||1===t[0]&&9===t[1]&&t[2]<1||t[0]>=4)throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}(),t.Util=s,t.Alert=a,t.Button=l,t.Carousel=h,t.Collapse=c,t.Dropdown=u,t.Modal=d,t.Popover=_,t.Scrollspy=g,t.Tab=m,t.Tooltip=f,t}({},$,Popper); 7 | //# sourceMappingURL=bootstrap.min.js.map --------------------------------------------------------------------------------