--- /dev/null
+<!doctype html>
+{% load pipeline %}
+{% load static %}
+{% load choose_cite from social_tags %}
+{% load choose_fragment license_icon from catalogue_tags %}
+{% load catalogue_tags %}
+
+
+<html class="no-js">
+ <head>
+ <meta charset="utf-8">
+ <meta name="description" content="">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ <title>WolneLektury.pl</title>
+ <link rel="apple-touch-icon" href="apple-touch-icon.png">
+
+ {% stylesheet '2021' %}
+ <script src="scripts/modernizr.js"></script>
+
+ <link rel="preconnect" href="https://fonts.googleapis.com">
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
+ <link href="https://fonts.googleapis.com/css2?family=Merriweather:wght@300&family=Roboto:wght@400;700&display=swap" rel="stylesheet">
+ </head>
+ <body>
+
+ <nav class="l-navigation">
+ <a href="/" class="l-navigation__logo">
+ <img src="{% static '2021/images/logo.png' %}" alt="WolneLektury.pl">
+ </a>
+ <button class="l-navigation__button js-menu" aria-label="Menu">
+ <span class="c-hamburger">
+ <span class="bar"></span>
+ </span>
+ </button>
+ </nav>
+
+ <header class="l-header">
+ <figure class="l-header__img">
+ <img src="{% if book.cover_thumb %}{{ book.cover_thumb.url }}{% endif %}" alt="{{ book.pretty_title }}">
+ </figure>
+ <div class="l-header__content">
+ <p>
+ {% for author in book.authors %}
+ <a href="{{ author.get_absolute_url }}">{{ author }}</a>{% if not forloop.last %}, {% endif %}
+ {% endfor %}
+ {% if book.translators %}
+ (tłum. {% for translator in book.translators %}{{ translator }}{% endfor %})
+ {% endif %}
+ </p>
+ <h1>{{ book.title }}</h1>
+ <ul>
+ {# Wielkość liter zmieniona sztucznie. Docelowo należy ustalić. #}
+ {% for tag in book.kinds %}
+ <li><a href="{{ tag.get_absolute_url }}">{{ tag|lower }}</a></li>
+ {% endfor %}
+ {% for tag in book.genres %}
+ <li><a href="{{ tag.get_absolute_url }}">{{ tag|lower }}</a></li>
+ {% endfor %}
+ {% for tag in book.epochs %}
+ <li><a href="{{ tag.get_absolute_url }}">{{ tag|lower }}</a></li>
+ {% endfor %}
+ </ul>
+ </div>
+ <div class="l-header__actions">
+ <button class="l-button l-button--fav">
+ <img src="{% static '2021/images/fav.svg' %}" alt="Dodaj do ulubionych">
+ </button>
+ </div>
+ </header>
+
+ <main class="l-main">
+ <section class="l-section">
+ <aside class="l-aside">
+ {% if book.parent or book.children.all %}
+ <h3>należy do zbiorów</h3>
+
+ {% if book.parent %}
+ <ul>
+ {% for b in book.ancestor.all %}
+ <li>
+ <a href="{{ b.get_absolute_url }}">{{ b.title }}</a>
+ <ul>
+ {% endfor %}
+ {% for b in book.get_siblings %}
+ <li>
+ {% if b == book %}
+ <strong>{{ b.title }}</strong>
+ <ul>
+ {% for c in book.children.all %}
+ <li>
+ <a href="{{ c.get_absolute_url }}">{{ c.title }}</a>
+ </li>
+ {% endfor %}
+ </ul>
+ {% else %}
+ <a href="{{ b.get_absolute_url }}">{{ b.title }}</a>
+ {% endif %}
+ </li>
+ {% endfor %}
+
+ {% for b in book.ancestor.all %}
+ </ul>
+ </li>
+ {% endfor %}
+ </ul>
+
+ {% else %}
+ <ul>
+ <li>
+ <strong>{{ book.title }}</strong>
+ <ul>
+ {% for c in book.children.all %}
+ <li>
+ <a href="{{ c.get_absolute_url }}">{{ c.title }}</a>
+ </li>
+ {% endfor %}
+ </ul>
+ </li>
+ </ul>
+ {% endif %}
+
+
+ {% endif %}
+
+
+ <ul class="c-externals">
+ <li><a href="{{ book.xml_file.url }}" target="_blank">źródłowy plik XML</a></li>
+ <li><a href="{% url 'poem_from_book' book.slug %}" target="_blank">miksuj treść utworu</a></li>
+
+ <li><a href="{{ book.get_extra_info_json.about }}" target="_blank">utwór na Platformie Redakcyjnej</a></li>
+ </ul>
+ </aside>
+ <article class="l-article">
+
+ <div class="quote l-article__lead">
+ {% choose_cite book as cite_promo %}
+ {% if cite_promo %}
+ {{ cite.promo_box }}
+ {% else %}
+ {% choose_fragment book as fragment_promo %}
+ {% if fragment_promo %}
+ {{ fragment_promo.get_short_text|safe }}
+ {% endif %}
+ {% endif %}
+ </div>
+
+ <div class="c-media">
+ <div class="c-media__actions">
+ <div class="c-media__btn">
+ <div class="l-button l-button--media">
+ pobierz audiobook
+ </div>
+ <ul>
+ <li>mp3</li>
+ <li>ogg</li>
+ <li>DAISY</li>
+ </ul>
+ </div>
+ <div class="c-media__btn">
+ <div class="l-button l-button--media">
+ pobierz książkę
+ </div>
+ <ul>
+ <li>PDF</li>
+ <li>epub</li>
+ <li>mobi</li>
+ </ul>
+ </div>
+ <div class="c-media__btn">
+ {#% if book.get_first_text %#}
+ <a href="{#% url 'book_text' book.get_first_text.slug %#}">
+ <div class="l-button l-button--media l-button--media--full">
+ czytaj
+ </div>
+ </a>
+ <!-- ul>
+ <li>PDF</li>
+ <li>epub</li>
+ <li>mobi</li>
+ </ul-->
+ {#% endif %#}
+ </div>
+ </div>
+ <div class="c-media__player">
+ <h2>słuchaj audiobooka w naszym serwisie</h2>
+ <div class="c-player">
+ <button class="c-player__btn">
+ <img src="{% static '2021/images/play.svg' %}" alt="słuchaj audiobooka w naszym serwisie">
+ </button>
+ <div class="c-player__timeline">
+ <span></span>
+ <time class="c-player__length">1h 20m</time>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ {{ book.abstract|safe }}
+
+ </article>
+ </section>
+
+
+ <section class="l-section">
+ <div class="c-support">
+ <h2>Ta książka jest dostępna dla tysięcy dzieciaków dzięki darowiznom od osób takich jak Ty!</h2>
+ <a href="/towarzystwo/">DORZUĆ SIĘ!</a>
+ </div>
+ </section>
+
+
+ {% for author in book.authors %}
+ <section class="l-section">
+ <div class="l-author">
+ <article class="l-author__info">
+ <h3>
+ <a href="{{ author.get_absolute_url }}">
+ {{ author.name }}
+ </a>
+ </h3>
+
+ {{ author.description|safe }}
+
+ </article>
+ {% if HAVE_AUTHOR_PHOTO %}
+ <figure class="l-author__photo">
+ <img src="{% static '2021/images/author.jpg' %}" alt="Adam Mickiewicz">
+ <figcaption>
+ Wikipedia
+ </figcaption>
+ </figure>
+ {% endif %}
+ </div>
+ </section>
+ {% endfor %}
+
+ {% with book.related_themes as themes %}
+ {% if themes %}
+ <section class="l-section">
+ <div class="l-themes__wrapper">
+ <h2>motywy występujące w tym utworze</h2>
+ <div class="l-themes">
+ <ul>
+ {% for item in themes %}
+ <li><a href="{% url 'book_fragments' book.slug item.slug %}">{{ item|lower }} ({{ item.count}})</a></li>
+ {% endfor %}
+ </ul>
+ <a class="button" href="{% url 'theme_catalogue' %}">zobacz wszystkie motywy</a>
+ </div>
+ </div>
+ </section>
+ {% endif %}
+ {% endwith %}
+
+
+ <section class="l-section">
+ <div class="l-books__wrapper">
+ <h2>inne tytuły w naszej bibliotece</h2>
+ <div class="l-books">
+
+ {% if book.other_versions %}
+ {% for rel in book.other_versions %}
+
+ <article class="l-books__item">
+ <figure class="l-books__item__img">
+ <a href="{{ rel.get_absolute_url }}">
+ <img src="{% if rel.cover %}{{ rel.cover.url }}{% endif %}" alt="{{ rel.pretty_title }}">
+ </a>
+ </figure>
+ <h3>
+ {% for author in rel.authors %}
+ <a href="{{ author.get_absolute_url }}">{{ author|upper }}</a>
+ {% endfor %}
+ </h3>
+ <h2><a href="{{ rel.get_absolute_url }}">{{ rel.title }}</a></h2>
+ </article>
+ {% endfor %}
+ {% endif %}
+
+ {% related_books_2021 book taken=book.other_versions|length as related_books %}
+ {% for rel in related_books %}
+ <article class="l-books__item">
+ <figure class="l-books__item__img">
+ <a href="{{ rel.get_absolute_url }}">
+ <img src="{% if rel.cover %}{{ rel.cover.url }}{% endif %}" alt="{{ rel.pretty_title }}">
+ </a>
+ </figure>
+ <h3>
+ {% for author in rel.authors %}
+ <a href="{{ author.get_absolute_url }}">{{ author|upper }}</a>
+ {% endfor %}
+ </h3>
+ <h2><a href="{{ rel.get_absolute_url }}">{{ rel.title }}</a></h2>
+ </article>
+ {% endfor %}
+
+
+ </div>
+ </div>
+ </section>
+ </main>
+
+ <div class="l-footer">
+ <div class="l-footer__row">
+ <div class="l-footer__col">
+ <p>Wolne Lektury to projekt prowadzony przez fundację Nowoczesna Polska.</p>
+ <p>Reprodukcje cyfrowe wykonane przez Bibliotekę Narodową, Bibliotekę Śląską i Bibliotekę Elbląską z egzemplarzy pochodzących ze zbiorów BN, BŚ i BE.</p>
+ <p>Hosting: ICM.</p>
+ </div>
+ <div class="l-footer__col">
+ <ul>
+ <li>Fundacja Nowoczesna Polska</li>
+ <li>ul. Marszałkowska 84/92 lok. 125</li>
+ <li>00-514 Warszawa</li>
+ </ul>
+ <ul>
+ <li>tel: <a href="tel:+48226213017">(22) 621-30-17</a></li>
+ <li>e-mail: <a href="mailto:fundacja@nowoczesnapolska.org.pl">fundacja@nowoczesnapolska.org.pl</a></li>
+ </ul>
+ </div>
+ </div>
+ <div class="l-footer__row">
+ <p>
+ Nowa strona biblioteki Wolne Lektury powstała dzięki środkom otrzymanym w ramach Programu Operacyjnego Fundusz
+ Inicjatyw Obywatelskich, Senatu RP (zadanie realizowane w ramach zlecania przez Kancelarię Senatu zadań
+ w zakresie opieki nad Polonią i Polakami za granicą w 2011 r.) oraz Narodowego Instytutu Audiowizualnego
+ w ramach programu Dziedzictwo Cyfrowe.
+ </p>
+ </div>
+ </div>
+
+ <script src="{% static '2021/scripts/vendor.js' %}"></script>
+ <script src="{% static '2021/scripts/main.js' %}"></script>
+ </body>
+</html>
}
+@register.simple_tag
+def related_books_2021(instance, limit=4, taken=0):
+ limit -= taken
+ max_books = limit
+
+ books_qs = Book.objects.filter(findable=True)
+ books_qs = books_qs.exclude(common_slug=instance.common_slug).exclude(ancestor=instance)
+ books = Book.tagged.related_to(instance, books_qs)[:max_books]
+
+ return books
+
+
@register.simple_tag
def download_audio(book, daisy=True, mp3=True):
links = []
return render(
request,
- 'catalogue/book_detail.html',
+ 'catalogue/2021/book_detail.html' if request.EXPERIMENTS['layout'] == 'new' else 'catalogue/book_detail.html',
{
'book': book,
'book_children': book.children.all().order_by('parent_number', 'sort_key'),
'active_menu_item': 'books',
'club_form': ScheduleForm() if book.preview else None,
'club': Club.objects.first() if book.preview else None,
+
+ 'EXPERIMENTS_SWITCHABLE_layout': True,
})
--- /dev/null
+from django.apps import AppConfig
+
+
+class ExperimentsConfig(AppConfig):
+ name = 'experiments'
--- /dev/null
+import hashlib
+from django.conf import settings
+
+
+def experiments_middleware(get_response):
+ def middleware(request):
+ exps = {}
+
+ overrides = getattr(settings, 'EXPERIMENTS_OVERRIDES', {})
+ for exp in settings.EXPERIMENTS:
+ slug = exp['slug']
+ if slug in overrides:
+ exps[slug] = overrides[slug]
+ continue
+
+ cookie_value = request.COOKIES.get(f'EXPERIMENT_{slug}')
+ if cookie_value is not None:
+ for cohort in exp.get('cohorts', []):
+ if cohort['value'] == cookie_value:
+ exps[slug] = cookie_value
+ break
+
+ if slug not in exps:
+ number = int(
+ # TODO sth else?
+ hashlib.md5(
+ (slug + request.META['REMOTE_ADDR']).encode('utf-8')
+ ).hexdigest(),
+ 16
+ ) % 10e6 / 10e6
+ for cohort in exp.get('cohorts', []):
+ number -= cohort.get('size', 1)
+ if number < 0:
+ exps[slug] = cohort['value']
+ break
+
+ request.EXPERIMENTS = exps
+ response = get_response(request)
+ return response
+
+ return middleware
--- /dev/null
+{% extends "base/base.html" %}
+
+
+{% block body %}
+ <img src="https://upload.wikimedia.org/wikipedia/commons/c/c8/MH1Asimulator.JPG" style="width:100">
+
+ {% for exp in experiments %}
+ <div class="experiment" data-slug="{{ exp.config.slug }}">
+ {{ exp.config.name }}
+ {% for cohort in exp.config.cohorts %}
+ <button
+ {% if exp.value == cohort.value %}
+ disabled class="active"
+ {% endif %}
+ data-value="{{ cohort.value }}">{{ cohort.name }}</button>
+ {% endfor %}
+ </div>
+
+ <script>
+ </script>
+
+ {% endfor %}
+{% endblock %}
+
+{% block extrabody %}
+ <style>
+ .experiment {
+ margin: 1em 0;
+ font-size: 1.5em;
+ }
+ .experiment button {
+ margin: 0 1em;
+ padding: .5em;
+ font-size: 1em;
+
+ }
+ </style>
+ <script>
+ $(".experiment button").click(function() {
+ document.cookie = 'EXPERIMENT_' + $(this).parent().data('slug') + '=' + $(this).data('value') + '; path=/';
+ window.location.reload(true);
+ });
+ </script>
+{% endblock %}
--- /dev/null
+{% if tests %}
+ <div id="test-switcher" class="{% if explicit %}test-switcher-explicit{% endif %}">
+ <div class="test-switcher-content">
+ {% for test, currval in tests %}
+ {% for cohort in test.cohorts %}
+ {% if cohort.value != currval %}
+ <a onclick="document.cookie='AB_{{test.slug}}={{cohort.value}}; path=/'; window.location.reload(true);">{{ cohort.name }}</a>
+ {% endif %}
+ {% endfor %}
+ {% endfor %}
+ </div>
+ </div>
+
+
+ <style>
+ #test-switcher {
+ background: white;
+ color: black;
+ position: absolute;
+ top: 0;
+ left: 0;
+ padding-left: 1.5em;
+ height: 2em;
+ }
+ #test-switcher:before {
+ content: ">";
+ display: inline-block;
+ vertical-align: top;
+ margin-left: -1em;
+ transition: opacity .2s;
+ line-height: 2em;
+ }
+ #test-switcher:hover .test-switcher-content {
+ width: 200px;
+ }
+ #test-switcher:hover:before,
+ .test-switcher-explicit:before {
+ opacity: 0;
+ }
+ .test-switcher-content {
+ width: 0;
+ overflow: hidden;
+ transition: width .2s;
+ display: inline-block;
+ line-height: 2em;
+ white-space: nowrap;
+ }
+ .test-switcher-explicit .test-switcher-content {
+ width: 200px;
+ }
+ .test-switcher-content a {
+ cursor: pointer;
+ }
+ </style>
+{% endif %}
--- /dev/null
+from django.conf import settings
+from django.template import Library
+
+
+register = Library()
+
+
+@register.inclusion_tag('experiments/switch.html', takes_context=True)
+def experiments_switcher(context):
+ tests = []
+ explicit = False
+ for exp in settings.EXPERIMENTS:
+ currval = context['request'].EXPERIMENTS.get(exp['slug'])
+ if exp.get('switchable') or context.get('EXPERIMENTS_SWITCHABLE_' + test['slug']):
+ tests.append((exp, currval))
+ for cohort in exp.get('cohorts'):
+ if cohort.get('explicit') and cohort.get('value') == currval:
+ explicit = True
+ return {
+ 'tests': tests,
+ 'explicit': explicit,
+ }
--- /dev/null
+from django.urls import path
+from . import views
+
+
+urlpatterns = [
+ path('', views.MainSwitchView.as_view()),
+]
--- /dev/null
+from django.views.generic import TemplateView
+from django.conf import settings
+
+
+class MainSwitchView(TemplateView):
+ template_name = 'experiments/main_switch.html'
+
+ def get_context_data(self):
+ ctx = super().get_context_data()
+ ctx['experiments'] = [
+ {
+ "config": conf,
+ "value": self.request.EXPERIMENTS.get(conf['slug'])
+ }
+ for conf in settings.EXPERIMENTS
+ ]
+ return ctx
+++ /dev/null
-import hashlib
-from django.conf import settings
-
-
-def context_processor(request):
- ab = {}
- overrides = getattr(settings, 'AB_TESTS_OVERRIDES', {})
- for abtest, nvalues in settings.AB_TESTS.items():
- ab[abtest] = overrides.get(
- abtest,
- hashlib.md5(
- (abtest + request.META['REMOTE_ADDR']).encode('utf-8')
- ).digest()[0] % nvalues
- )
- return {'AB': ab}
'catalogue',
'chunks',
'dictionary',
+ 'experiments',
'infopages',
'lesmianator',
'messaging',
'django.template.context_processors.media',
'django.template.context_processors.request',
'wolnelektury.context_processors.extra_settings',
- 'wolnelektury.abtests.context_processor',
'search.context_processors.search_form',
'machina.core.context_processors.metadata',
),
'fnpdjango.middleware.SetRemoteAddrFromXRealIP',
'django.middleware.cache.FetchFromCacheMiddleware',
'machina.apps.forum_permission.middleware.ForumPermissionMiddleware',
+ 'experiments.middleware.experiments_middleware',
]
ROOT_URLCONF = 'wolnelektury.urls'
CLUB_PAYU_RECURRING_POS = '300746'
CLUB_APP_HOST = None
-AB_TESTS = {
-}
+
+EXPERIMENTS = [
+ {
+ "name": "Eksperymentalny układ strony utworu",
+ "slug": "layout",
+ "cohorts": [
+ {"size": 0, "value": "new", "name": "eksperymentalny układ", "explicit": True},
+ { "value": "old", "name": "stary układ"},
+ ],
+ },
+]
MESSAGING_MIN_DAYS = 2
PIPELINE = {
'STYLESHEETS': {
+ '2021': {
+ 'source_filenames': [
+ '2021/css/main.scss',
+ ],
+ 'output_filename': 'css/compressed/2021.css',
+ },
'main': {
# styles both for mobile and for big screen
'source_filenames': [
--- /dev/null
+@font-face {
+ font-family: "Futura PT";
+ src: url('#{$font-path}/subset-FuturaPT-Book.ttf?20uhbq') format('truetype'),
+ url('#{$font-path}/subset-FuturaPT-Book.woff?20uhbq') format('woff'),
+ url('#{$font-path}/subset-FuturaPT-Book.woff2?20uhbq') format('woff2');
+ font-weight: $regular;
+ font-style: normal;
+ font-display: swap;
+}
+
+@font-face {
+ font-family: "Canela";
+ src: url('#{$font-path}/subset-Canela-Light.ttf?20uhbq') format('truetype'),
+ url('#{$font-path}/subset-Canela-Light.woff?20uhbq') format('woff'),
+ url('#{$font-path}/subset-Canela-Light.woff2?20uhbq') format('woff2');
+ font-weight: $light;
+ font-style: normal;
+ font-display: swap;
+}
+
+@font-face {
+ font-family: "Canela";
+ src: url('#{$font-path}/subset-Canela-LightItalic.ttf?20uhbq') format('truetype'),
+ url('#{$font-path}/subset-Canela-LightItalic.woff') format('woff'),
+ url('#{$font-path}/subset-Canela-LightItalic.woff2') format('woff2');
+ font-weight: $light;
+ font-style: italic;
+ font-display: swap;
+}
--- /dev/null
+/* ------------------------------
+ Base: Global
+------------------------------ */
+
+*, *:after, *:before {
+ box-sizing: border-box;
+}
+
+:focus {
+ outline: $color-black auto 2px;
+ outline-offset: 2px;
+}
+
+html,
+body {
+ -webkit-overflow-scrolling: auto;
+}
+
+body {
+ color: $color-black;
+ background-color: $color-white;
+
+ &.using-mouse {
+ *:focus {
+ outline: 0 !important;
+ }
+ }
+}
+
+.visibility-hidden {
+ visibility: hidden !important;
+}
+
+.simpleParallax {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
--- /dev/null
+/* ------------------------------
+ Base: Icons
+------------------------------ */
+
+$icon-minus: "\e900";
+$icon-plus: "\e901";
+$icon-pin: "\e902";
+$icon-linkedin: "\e903";
+$icon-arrow-up: "\e904";
+$icon-arrow-down: "\e905";
+$icon-arrow-left: "\e906";
+$icon-arrow-right: "\e907";
+
+@font-face {
+ font-family: '#{$icomoon-font-family}';
+ src:
+ url('#{$icomoon-font-path}/#{$icomoon-font-family}.ttf?20uhbq') format('truetype'),
+ url('#{$icomoon-font-path}/#{$icomoon-font-family}.woff?20uhbq') format('woff'),
+ url('#{$icomoon-font-path}/#{$icomoon-font-family}.svg?20uhbq##{$icomoon-font-family}') format('svg');
+ font-weight: normal;
+ font-style: normal;
+ font-display: block;
+}
+
+[class^="icon-"], [class*=" icon-"] {
+ /* use !important to prevent issues with browser extensions that change fonts */
+ font-family: '#{$icomoon-font-family}' !important;
+ speak: never;
+ font-style: normal;
+ font-weight: normal;
+ font-variant: normal;
+ text-transform: none;
+ line-height: 1;
+
+ /* Better Font Rendering =========== */
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+.icon-minus {
+ &:before {
+ content: $icon-minus;
+ }
+}
+.icon-plus {
+ &:before {
+ content: $icon-plus;
+ }
+}
+.icon-pin {
+ &:before {
+ content: $icon-pin;
+ }
+}
+.icon-linkedin {
+ &:before {
+ content: $icon-linkedin;
+ }
+}
+.icon-arrow-up {
+ &:before {
+ content: $icon-arrow-up;
+ }
+}
+.icon-arrow-down {
+ &:before {
+ content: $icon-arrow-down;
+ }
+}
+.icon-arrow-left {
+ &:before {
+ content: $icon-arrow-left;
+ }
+}
+.icon-arrow-right {
+ &:before {
+ content: $icon-arrow-right;
+ }
+}
--- /dev/null
+/*! ------------------------------
+ Base Module
+------------------------------ */
+
+/*!*/
+
+@import "global";
+@import "icons";
+@import "fonts";
--- /dev/null
+/* ------------------------------
+ Component: Hamburger
+------------------------------ */
+
+$bar-width: 35px;
+$bar-height: 3px;
+$bar-spacing: 8px;
+$bar-color: $color-gray;
+
+.c-hamburger {
+ display: flex;
+ height: $bar-height + $bar-spacing*2;
+ transition: transform $ease-out 400ms;
+ backface-visibility: hidden;
+ position: relative;
+ cursor: pointer;
+
+ @include rwd(tablet) {
+ margin-right: 0;
+ }
+
+ border: 0;
+ margin: 0; padding: 0;
+ background-color: transparent;
+ appearance: none;
+
+ &:after {
+ content: attr(data-label);
+ transform: translateX(50%);
+ @include font-size(18px);
+ top: -3px; left: -7px;
+ font-weight: $medium;
+ padding-left: 17px;
+ position: absolute;
+ transition: color 300ms $ease-out;
+ }
+
+ &.is-clicked {
+ z-index: $master-layer + 2;
+
+ @include rwd(tablet) {
+ position: fixed;
+ top: 2rem; right: 1rem;
+ }
+
+ &:after {
+ color: $color-black;
+ }
+ }
+
+ .bar,
+ .bar:after,
+ .bar:before {
+ width: $bar-width;
+ height: $bar-height;
+ border-radius: 10px;
+ }
+
+ .bar {
+ position: relative;
+ transform: translateY($bar-spacing);
+ background-color: rgba($bar-color, 1);
+ transition: all 0ms 300ms;
+
+ &:before,
+ &:after {
+ left: 0;
+ content: "";
+ position: absolute;
+ bottom: $bar-spacing;
+ background-color: rgba($bar-color, 1);
+ }
+
+ &:before {
+ bottom: $bar-spacing;
+ transition: bottom 300ms 300ms $ease-out,
+ transform 300ms $ease-out,
+ background-color 300ms $ease-out;
+ }
+
+ &:after {
+ top: $bar-spacing;
+ transition: top 300ms 300ms $ease-out,
+ transform 300ms $ease-out,
+ background-color 300ms $ease-out;
+ }
+
+ &.animate {
+ background-color: rgba(255, 255, 255, 0);
+
+ &:before {
+ bottom: 0;
+ transform: rotate(-45deg);
+ transition: bottom 300ms $ease-out,
+ transform 300ms 300ms $ease-out;
+ }
+
+ &:after {
+ top: 0;
+ transform: rotate(45deg);
+ transition: top 300ms $ease-out,
+ transform 300ms 300ms $ease-out;
+ }
+ }
+ }
+}
--- /dev/null
+.c-media {
+ margin: 31px auto;
+ border: 1px solid $color-light-gray;
+}
+
+.c-media__actions {
+ display: flex;
+ padding: 30px;
+ border-bottom: 1px solid $color-light-gray;
+}
+
+.c-media__btn {
+ width: 100%;
+ text-align: center;
+
+ &:first-child {
+ padding-right: 35px;
+ }
+
+ &:nth-child(2) {
+ padding: 0 35px;
+ border-left: 1px solid #ccc;
+ border-right: 1px solid #ccc;
+ }
+
+ &:last-child {
+ padding-left: 35px;
+ }
+
+ .l-button {}
+
+ ul {
+ @include font-size(16px);
+ line-height: 19px;
+ text-align: center;
+ letter-spacing: 0.01em;
+ padding: 0;
+ list-style: none;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ font-weight: $bold;
+ margin: 0;
+
+ li {
+ margin-right: 6px;
+ &:not(:last-child):after { content: "|"; margin-left: 6px; }
+ }
+ }
+}
+
+.c-media__player {
+ padding: 25px 30px;
+
+ h2 {
+ font-weight: $bold;
+ @include font-size(16px);
+ line-height: 19px;
+ text-align: center;
+ letter-spacing: 0.01em;
+ color: $color-gray;
+ margin: 0;
+ }
+}
--- /dev/null
+/*! ------------------------------
+ Components Module
+------------------------------ */
+
+/*!*/
+
+@import "hamburger";
+@import "media";
+@import "player";
+@import "support";
--- /dev/null
+.c-player {
+ display: flex;
+ width: 100%;
+ align-items: center;
+ position: relative;
+}
+
+.c-player__btn {
+ background: $color-primary;
+ border: 0;
+ outline: 0;
+ border-radius: 50%;
+ padding: 0;
+ width: 60px;
+ height: 60px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ cursor: pointer;
+
+ img {}
+}
+
+.c-player__timeline {
+ width: calc(100% - 60px);
+
+ span {
+ height: 5px;
+ width: 100%;
+ background: $color-primary;
+ display: block;
+ }
+}
+
+.c-player__length {
+ position: absolute;
+ right: 0;
+ padding-top: 3px;
+ font-weight: bold;
+ @include font-size(16px);
+ line-height: 19px;
+ text-align: right;
+ letter-spacing: 0.01em;
+}
--- /dev/null
+.c-support {
+ display: flex;
+ margin-top: 100px;
+ flex-direction: column;
+ border-top: 4px solid $color-light-gray;
+ border-bottom: 4px solid $color-light-gray;
+ padding: 90px 0 40px 0;
+
+ h2 {
+ margin: 0;
+ font-weight: $bold;
+ @include font-size(64px);
+ letter-spacing: -0.02em;
+ color: $color-primary;
+ line-height: 64px;
+ }
+ a {
+ font-weight: $bold;
+ @include font-size(48px);
+ line-height: 56px;
+ text-align: center;
+ letter-spacing: 0.01em;
+ color: $color-primary;
+ border: 12px solid $color-yellow;
+ box-sizing: border-box;
+ border-radius: 40px;
+ width: 550px;
+ display: inline-block;
+ padding: 33px 23px 33px 193px;
+ margin-right: 0;
+ margin-left: auto;
+ position: relative;
+ top: -50px;
+ transition: all $ease-dynamic 350ms;
+
+ &:hover {
+ background: $color-yellow;
+ }
+ }
+}
--- /dev/null
+.l-article {
+ color: $color-gray;
+ border-left: 2px solid $color-light-gray;
+ padding-bottom: 30px;
+ padding-left: 21px;
+ margin-left: 15px;
+
+ h2 {}
+ h3 {}
+ h4 {}
+ p {
+ font-style: normal;
+ font-weight: $regular;
+ @include font-size(18px);
+ line-height: 166%;
+ letter-spacing: -0.005em;
+ }
+ ul {}
+ ol {}
+}
+
+.l-article__lead {
+ margin-top: 0;
+ font-weight: $light;
+ @include font-size(24px);
+ font-family: $secondary-font;
+ line-height: 166%;
+}
+
+
+
+.quote p {
+
+ margin-top: inherit;
+}
--- /dev/null
+.l-aside {
+ color: $color-gray;
+ max-width: 350px;
+ width: 100%;
+
+ h3 {
+ font-weight: $bold;
+ @include font-size(18px);
+ line-height: 21px;
+ letter-spacing: 0.01em;
+ margin-top: 0;
+ }
+
+ & > ul {
+ padding-left: 0;
+ }
+
+ ul {
+ list-style: none;
+ padding-left: 30px;
+ li {
+ a {
+ text-decoration: underline;
+ }
+ }
+ }
+
+ ul:not(.c-externals) {
+ font-weight: $bold;
+ @include font-size(24px);
+ line-height: 28px;
+
+ li {
+ margin: 8px 0;
+ a {}
+ }
+ }
+
+ .c-externals {
+ margin-top: 2rem;
+ border-top: 2px solid $color-light-gray;
+ padding-top: 0.5rem;
+
+ li {
+ a {}
+ }
+ }
+}
--- /dev/null
+.l-author {
+ display: flex;
+ padding: 60px;
+ margin-top: 100px;
+ justify-content: space-between;
+ border: 8px solid $color-light-gray;
+}
+
+.l-author__info {
+ max-width: 755px;
+
+ h3 {
+ margin: 0;
+ @include font-size(32px);
+ letter-spacing: -0.02em;
+ color: $color-primary;
+ font-weight: $bold;
+ line-height: 100%;
+ }
+ p, dl, ul {
+ font-weight: $regular;
+ @include font-size(18px);
+ letter-spacing: -0.005em;
+ color: $color-gray;
+ line-height: 166%;
+ font-size: 18px;
+ }
+
+ ul.meta {
+ list-style: none;
+ margin: 1em 0 0 0;
+ padding: 0;
+ text-align: right;
+
+ }
+ dt {
+ float: left;
+ }
+
+}
+
+.l-author__photo {
+ margin: 0;
+ img {}
+ figcaption {
+ font-weight: 500;
+ @include font-size(14px);
+ line-height: 140%;
+ letter-spacing: 0.0015em;
+ color: $color-gray;
+ }
+}
--- /dev/null
+.l-books__wrapper {
+ border-top: 4px solid $color-light-gray;
+ margin-top: 100px;
+ width: 100%;
+
+ h2 {
+ font-weight: $bold;
+ @include font-size(32px);
+ letter-spacing: -0.02em;
+ color: $color-primary;
+ line-height: 100%;
+ margin-top: 53px;
+ }
+}
+
+.l-books__wrapper
+
+.l-books {
+ display: flex;
+ flex-wrap: wrap;
+ margin-top: 30px;
+}
+
+.l-books__item {
+ width: 25%;
+
+ h2 {
+ font-weight: $bold;
+ @include font-size(18px);
+ line-height: 21px;
+ letter-spacing: -0.01em;
+ color: $color-gray;
+ margin: 0;
+ }
+ h3 {
+ font-weight: $bold;
+ @include font-size(14px);
+ line-height: 16px;
+ letter-spacing: 0.01em;
+ color: $color-gray;
+ margin: 0;
+ }
+}
+
+.l-books__item__img {
+ margin: 0;
+ font-size: 0;
+ margin-bottom: 25px;
+
+ a {}
+ img {
+ width: 194px;
+ height: 280px;
+ }
+}
--- /dev/null
+.l-button {
+ &.l-button--media {
+ letter-spacing: -0.01em;
+ color: $color-primary;
+ font-weight: $bold;
+ @include font-size(16px);
+ line-height: 19px;
+ border: 4px solid $color-primary;
+ border-radius: 10px;
+ padding: 19px 20px;
+ cursor: pointer;
+ transition: all $ease-dynamic 350ms;
+
+ &:hover,
+ &.l-button--media--full {
+ color: $color-white;
+ background: $color-primary;
+ }
+ }
+}
--- /dev/null
+.l-footer {}
+
+.l-footer__row {}
+
+.l-footer__col {
+ p {}
+}
+
+.l-footer {
+ max-width: 1140px;
+ margin: 0 auto;
+ padding-top: 60px;
+ border-top: 4px solid #CCCCCC;
+ margin-top: 100px;
+}
+
+.l-footer__row {
+ display: flex;
+}
+
+
+.l-footer__col {
+ width: 100%;
+}
+
+.l-footer p {
+ font-weight: normal;
+ font-size: 16px;
+ line-height: 19px;
+ /* identical to box height */
+ letter-spacing: 0.01em;
+ color: #666666;
+ margin-top: 22px;
+}
+
+.l-footer__col p:not(:last-child) {
+ padding-bottom: 37px;
+ border-bottom: 1px solid #CCCCCC;
+}
+
+.l-footer__row .l-footer__col:first-child {
+ border-right: 1px solid #ccc;
+ padding-right: 10px;
+}
+
+.l-footer__col ul {
+ font-weight: bold;
+ font-size: 24px;
+ line-height: 125%;
+ /* or 30px */
+ letter-spacing: -0.01em;
+ color: #666666;
+ list-style: none;
+ padding-left: 10px;
+}
+
+.l-footer__col ul:first-child {
+ margin-top: 0;
+}
+
+.l-footer__col p:first-child {
+ margin-top: 5px;
+}
+
+.l-footer__col p:last-child {
+ padding-bottom: 10px;
+}
+
+.l-footer__row:last-child {
+ margin-top: 20px;
+ border-top: 1px solid #ccc;
+ border-bottom: 12px solid #CCCCCC;
+}
+
+.l-footer__row:last-child p {
+ margin-top: 64px;
+ margin-bottom: 64px;
+}
--- /dev/null
+.l-header {
+ max-width: 1140px;
+ margin: 0 auto;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 40px 36px;
+ border-bottom: 4px solid $color-light-gray;
+}
+
+.l-header__img {
+ margin: 0;
+ font-size: 0;
+ width: 200px;
+ height: 200px;
+ overflow: hidden;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ border-radius: 50%;
+
+ img {
+ width: 200px;
+ height: auto;
+ }
+}
+
+.l-header__content {
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ margin-left: 58px;
+ margin-right: auto;
+
+ p {
+ letter-spacing: -0.02em;
+ font-weight: $bold;
+ @include font-size(32px);
+ line-height: 100%;
+ color: $color-primary;
+ margin: 0;
+ }
+
+ h1 {
+ letter-spacing: -0.02em;
+ color: $color-primary;
+ font-weight: $bold;
+ @include font-size(64px);
+ line-height: 100%;
+ margin: 0;
+ }
+
+ ul {
+ letter-spacing: -0.02em;
+ color: $color-secondary;
+ font-weight: $bold;
+ @include font-size(24px);
+ list-style: none;
+ line-height: 100%;
+ display: flex;
+ padding: 0;
+ margin: 0;
+
+ li {
+ margin-right: 10px;
+ &:not(:last-child):after { content: "/";margin-left: 10px; }
+ }
+ }
+}
+
+.l-header__actions {
+ .l-button {
+ appearance: none;
+ border: 0;
+ padding: 0;
+ background: transparent;
+ cursor: pointer;
+ }
+}
--- /dev/null
+.l-main {
+ margin: 0 auto;
+ max-width: 1140px;
+ padding-top: 60px;
+}
--- /dev/null
+/*! ------------------------------
+ Layout Module
+------------------------------ */
+
+/*!*/
+
+@import "navigation";
+@import "header";
+@import "main";
+@import "aside";
+@import "article";
+@import "section";
+@import "author";
+@import "themes";
+@import "books";
+@import "button";
+@import "footer";
--- /dev/null
+.l-navigation {
+ max-width: 1140px;
+ margin: 0 auto;
+ border-bottom: 2px solid #CCCCCC;
+ padding: 35px 0;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+}
+
+.l-navigation__button {
+ appearance: none;
+ border: 0;
+ background: 0;
+ padding: 0;
+ margin: 0;
+ outline: 0;
+}
--- /dev/null
+.l-section {
+ display: flex;
+
+ & > h2 {}
+}
--- /dev/null
+.l-themes__wrapper {
+ border-top: 4px solid $color-light-gray;
+ margin-top: 100px;
+ width: 100%;
+
+ h2 {
+ font-weight: bold;
+ @include font-size(32px);
+ letter-spacing: -0.02em;
+ color: $color-primary;
+ line-height: 100%;
+ margin-top: 53px;
+ }
+}
+
+.l-themes {
+ margin-top: 52px;
+
+ ul {
+ padding: 0;
+ margin: 0;
+ list-style: none;
+ font-weight: $bold;
+ @include font-size(18px);
+ line-height: 21px;
+ letter-spacing: 0.01em;
+
+ color: $color-gray;
+ display: flex;
+ flex-wrap: wrap;
+
+ li {
+ width: 16.66666666666667%;
+ margin-bottom: 17px;
+
+ a {
+ text-decoration: none;
+ &:hover {
+ text-decoration: underline;
+ }
+ }
+ }
+ }
+
+ a.button {
+ font-weight: $bold;
+ @include font-size(24px);
+ line-height: 28px;
+ text-align: center;
+ text-decoration-line: underline;
+ color: $color-gray;
+ appearance: none;
+ background: transparent;
+ padding: 0;
+ border: 0;
+ cursor: pointer;
+ display: block;
+ margin: 43px auto 0;
+ }
+}
--- /dev/null
+/*==============================================================================
+ Main Sass
+==============================================================================*/
+
+/*! -------------------------------------------*\
+*
+* Project Info
+*
+* @name WolneLektury.pl
+* @version 0.0.1
+* @updated 13.10.2021
+*
+* @website #
+*
+* @author intui.eu
+*
+\*-------------------------------------------*/
+
+/*!*/
+
+/*==============================================================================
+ Imports
+==============================================================================*/
+
+@import "utils/module";
+@import "vendors/module";
+@import "base/module";
+@import "components/module";
+@import "layout/module";
+@import "pages/module";
--- /dev/null
+/*! ------------------------------
+ Pages Module
+------------------------------ */
+
+/*!*/
+
--- /dev/null
+// Bourbon 5.0.0
+// https://www.bourbon.io/
+// Copyright 2011-2018 thoughtbot, inc.
+// MIT License
+
+@import "bourbon/helpers/buttons-list";
+@import "bourbon/helpers/scales";
+@import "bourbon/helpers/text-inputs-list";
+
+@import "bourbon/settings/settings";
+
+@import "bourbon/validators/contains";
+@import "bourbon/validators/contains-falsy";
+@import "bourbon/validators/is-color";
+@import "bourbon/validators/is-length";
+@import "bourbon/validators/is-number";
+@import "bourbon/validators/is-size";
+
+@import "bourbon/utilities/assign-inputs";
+@import "bourbon/utilities/compact-shorthand";
+@import "bourbon/utilities/directional-property";
+@import "bourbon/utilities/fetch-bourbon-setting";
+@import "bourbon/utilities/font-source-declaration";
+@import "bourbon/utilities/gamma";
+@import "bourbon/utilities/lightness";
+@import "bourbon/utilities/contrast-ratio";
+@import "bourbon/utilities/unpack-shorthand";
+
+@import "bourbon/library/border-color";
+@import "bourbon/library/border-radius";
+@import "bourbon/library/border-style";
+@import "bourbon/library/border-width";
+@import "bourbon/library/buttons";
+@import "bourbon/library/clearfix";
+@import "bourbon/library/contrast-switch";
+@import "bourbon/library/ellipsis";
+@import "bourbon/library/font-face";
+@import "bourbon/library/font-stacks";
+@import "bourbon/library/hide-text";
+@import "bourbon/library/hide-visually";
+@import "bourbon/library/margin";
+@import "bourbon/library/modular-scale";
+@import "bourbon/library/overflow-wrap";
+@import "bourbon/library/padding";
+@import "bourbon/library/position";
+@import "bourbon/library/prefixer";
+@import "bourbon/library/shade";
+@import "bourbon/library/size";
+@import "bourbon/library/strip-unit";
+@import "bourbon/library/text-inputs";
+@import "bourbon/library/timing-functions";
+@import "bourbon/library/tint";
+@import "bourbon/library/triangle";
+@import "bourbon/library/value-prefixer";
--- /dev/null
+/* ------------------------------
+ Util: Mixins
+------------------------------ */
+
+/* Calculate px to rem */
+@function calculateRem($size) {
+ $remSize: $size / $base-font-size;
+ @return $remSize * 1rem;
+}
+
+@mixin font-size($size) {
+ font-size: $size;
+ font-size: calculateRem($size);
+}
+
+/* Photoshop letter spacing */
+@function tracking($target) {
+ @return ($target / 1000) * 1rem;
+}
+
+@mixin tracking($target) {
+ letter-spacing: tracking($target);
+}
+
+/* Float fix */
+@mixin clearfix {
+ &:after {
+ content: "";
+ display: table;
+ clear: both;
+ }
+}
+
+/* Input placeholder selector */
+@mixin placeholder {
+ $placeholders: ":-webkit-input" ":-moz" "-moz" "-ms-input";
+ @each $placeholder in $placeholders {
+ &:#{$placeholder}-placeholder {
+ @content;
+ }
+ }
+}
+
+@mixin keyframes($animation-name) {
+ @keyframes #{$animation-name} {
+ @content;
+ }
+}
+
+@keyframes slide-up {
+ from {
+ opacity: 0;
+ }
+ to {
+ opacity: 1;
+ transform: translate(0,0);
+ }
+}
+
+@mixin cascading {
+ @for $i from 1 through 14 {
+ &:nth-child(#{$i}) {
+ animation: slide-up 250ms cubic-bezier(0.645, 0.045, 0.355, 1) forwards #{$i * 0.1}s;
+ }
+ }
+}
+
+$scrimStops: 0% 0%, 26.2% 19%, 45.9% 34%, 61.8% 47%, 72.2% 56.5%, 80.6% 65%, 87.4% 73%, 92.5% 80.2%, 95.8% 86.1%, 97.9% 91%, 99.2% 95.2%, 99.8% 98.2%, 100% 100%;
+
+@function getColorStop($colorTo, $colorFrom, $weight, $stop) {
+ @return mix($colorFrom, $colorTo, $weight) $stop;
+}
+
+@function getColorStops($colorTo, $colorFrom) {
+ $stops: ();
+ @each $scrimStop in $scrimStops {
+ $stops: append($stops, getColorStop($colorTo, $colorFrom, nth($scrimStop, 1), nth($scrimStop, 2)), comma)
+ }
+ @return $stops;
+}
+
+@function scrim-linear-gradient($args...) {
+ @if (length($args) == 2) {
+ @return linear-gradient(#{getColorStops(nth($args, 1), nth($args, 2))});
+ }
+ @return linear-gradient(#{nth($args, 1)}, #{getColorStops(nth($args, 2), nth($args, 3))});
+}
+
+@function unicode($str) {
+ @return unquote("\"") + $str + unquote("\"");
+}
+
+/* Breakpoints */
+$phone: 450px;
+$smartphone: 767px;
+$tablet: 1024px;
+$only-desktop: 1025px;
+$screen-xs: 1280px;
+$screen-sm: 1368px;
+$screen-md: 1418px;
+$screen-xl: 1680px;
+
+
+@mixin mq($breakpoint) {
+ @media only screen and (max-width: $breakpoint) {
+ @content;
+ }
+
+}
+@mixin rwd($canvas) {
+
+ // Really Small devices
+ @if $canvas == 'phone' {
+ @media only screen and (max-width: $phone) {
+ @content;
+ }
+ }
+
+ // Smartphones
+ @else if $canvas == 'smartphone' {
+ @media only screen and (max-width: $smartphone) {
+ @content;
+ }
+ }
+ @else if $canvas == 'smartphone-portrait' {
+ @media only screen and (max-width: $smartphone) and (orientation: portrait) {
+ @content;
+ }
+ }
+ @else if $canvas == 'smartphone-landscape' {
+ @media only screen and (max-width: $smartphone) and (orientation: landscape) {
+ @content;
+ }
+ }
+
+ // Tablets
+ @else if $canvas == 'tablet' {
+ @media only screen and (max-width: $tablet) {
+ @content;
+ }
+ }
+ @else if $canvas == 'tablet-portrait' {
+ @media only screen and (max-width: $tablet) and (orientation: portrait) {
+ @content;
+ }
+ }
+ @else if $canvas == 'tablet-landscape' {
+ @media only screen and (max-width: $tablet) and (orientation: landscape) {
+ @content;
+ }
+ }
+
+ // Screens
+ @else if $canvas == 'screen-xs' {
+ @media only screen and (max-width: $screen-xs) {
+ @content;
+ }
+ }
+ @else if $canvas == 'screen-sm' {
+ @media only screen and (max-width: $screen-sm) {
+ @content;
+ }
+ }
+ @else if $canvas == 'screen-md' {
+ @media only screen and (max-width: $screen-md) {
+ @content;
+ }
+ }
+ @else if $canvas == 'screen-xl' {
+ @media only screen and (max-width: $screen-xl) {
+ @content;
+ }
+ }
+
+ // More than tablets
+ @else if $canvas == 'only-desktop' {
+ @media only screen and (min-width: 1025px) {
+ @content;
+ }
+ }
+
+ // Print styles
+ @else if $canvas == 'print' {
+ @media print {
+ @content;
+ }
+ }
+
+}
--- /dev/null
+/*! ------------------------------
+ Utils Module
+------------------------------ */
+
+/*!*/
+
+@import "vars";
+@import "mixins";
+@import "bourbon";
\ No newline at end of file
--- /dev/null
+/* ------------------------------
+ Util: Vars
+------------------------------ */
+
+/* Env */
+$production: false;
+
+$images-path: "/images" !default;
+
+@if $production == true {
+ $images-path: "/images";
+} @else {
+ $images-path: "../images";
+}
+
+/* Colors */
+$color-primary: #018189;
+$color-secondary: #96C13D;
+
+$color-white: #ffffff;
+$color-black: #000000;
+$color-darker: #0e0f0f;
+$color-dark: #3E3E3E;
+$color-gray: #666666;
+$color-light-gray: #CCCCCC;
+
+$color-light-blue: #E5F4FF;
+$color-yellow: #FBC40F;
+
+
+$color-action: #3498db;
+$color-error: #e33147;
+$color-success: #2ecc71;
+
+/* Typography */
+$base-font-size: 16px;
+$base-font: "Roboto", sans-serif;
+$secondary-font: "Merriweather", serif;
+$font-path: "../fonts" !default;
+
+$light: 300;
+$regular: 400;
+$medium: 500;
+$semibold: 600;
+$bold: 700;
+
+/* Layers */
+$master-layer: 15;
+$top-layer: 10;
+$middle-layer: 5;
+$default-layer: 0;
+$bottom-layer: -5;
+
+/* Animations */
+$ease: cubic-bezier(.4, 0, .2, 1);
+$ease-in: cubic-bezier(.4, 0, 1, 1);
+$ease-out: cubic-bezier(.0, 0, .2, 1);
+$ease-dynamic: cubic-bezier(0.25, 1, 0.5, 1);
+$duration: 250ms;
+
+/* Icons */
+$icomoon-font-family: "kancelaria" !default;
+$icomoon-font-path: "../fonts" !default;
+
--- /dev/null
+@charset "UTF-8";
+
+/// A list of all HTML button elements.
+///
+/// @type list
+///
+/// @access private
+
+$_buttons-list: (
+ "button",
+ "[type='button']",
+ "[type='reset']",
+ "[type='submit']",
+);
--- /dev/null
+@charset "UTF-8";
+
+////
+/// Pre-defined scales for use with the `modular-scale` function.
+///
+/// @type number (unitless)
+///
+/// @see {function} modular-scale
+////
+
+$minor-second: 1.067;
+$major-second: 1.125;
+$minor-third: 1.2;
+$major-third: 1.25;
+$perfect-fourth: 1.333;
+$augmented-fourth: 1.414;
+$perfect-fifth: 1.5;
+$minor-sixth: 1.6;
+$golden: 1.618;
+$major-sixth: 1.667;
+$minor-seventh: 1.778;
+$major-seventh: 1.875;
+$octave: 2;
+$major-tenth: 2.5;
+$major-eleventh: 2.667;
+$major-twelfth: 3;
+$double-octave: 4;
--- /dev/null
+@charset "UTF-8";
+
+/// A list of all _text-based_ HTML inputs.
+///
+/// @type list
+///
+/// @access private
+
+$_text-inputs-list: (
+ "[type='color']",
+ "[type='date']",
+ "[type='datetime']",
+ "[type='datetime-local']",
+ "[type='email']",
+ "[type='month']",
+ "[type='number']",
+ "[type='password']",
+ "[type='search']",
+ "[type='tel']",
+ "[type='text']",
+ "[type='time']",
+ "[type='url']",
+ "[type='week']",
+ "input:not([type])",
+ "textarea",
+);
--- /dev/null
+@charset "UTF-8";
+
+/// Provides a concise, one-line method for setting `border-color` on specific
+/// edges of a box. Use a `null` value to “skip” edges of the box with standard
+/// CSS shorthand.
+///
+/// @argument {list} $values
+/// List of colors; accepts CSS shorthand.
+///
+/// @example scss
+/// .element {
+/// @include border-color(#a60b55 #76cd9c null #e8ae1a);
+/// }
+///
+/// // CSS Output
+/// .element {
+/// border-left-color: #e8ae1a;
+/// border-right-color: #76cd9c;
+/// border-top-color: #a60b55;
+/// }
+///
+/// @require {mixin} _directional-property
+
+@mixin border-color($values) {
+ @include _directional-property(border, color, $values);
+}
--- /dev/null
+@charset "UTF-8";
+
+/// Provides a concise, one-line method for setting `border-radius` on both the
+/// top-left and top-right of a box.
+///
+/// @argument {number (with unit)} $radii
+///
+/// @example scss
+/// .element {
+/// @include border-top-radius(4px);
+/// }
+///
+/// // CSS Output
+/// .element {
+/// border-top-left-radius: 4px;
+/// border-top-right-radius: 4px;
+/// }
+
+@mixin border-top-radius($radii) {
+ border-top-left-radius: $radii;
+ border-top-right-radius: $radii;
+}
+
+/// Provides a concise, one-line method for setting `border-radius` on both the
+/// top-right and bottom-right of a box.
+///
+/// @argument {number (with unit)} $radii
+///
+/// @example scss
+/// .element {
+/// @include border-right-radius(3px);
+/// }
+///
+/// // CSS Output
+/// .element {
+/// border-bottom-right-radius: 3px;
+/// border-top-right-radius: 3px;
+/// }
+
+@mixin border-right-radius($radii) {
+ border-bottom-right-radius: $radii;
+ border-top-right-radius: $radii;
+}
+
+/// Provides a concise, one-line method for setting `border-radius` on both the
+/// bottom-left and bottom-right of a box.
+///
+/// @argument {number (with unit)} $radii
+///
+/// @example scss
+/// .element {
+/// @include border-bottom-radius(2px);
+/// }
+///
+/// // CSS Output
+/// .element {
+/// border-bottom-left-radius: 2px;
+/// border-bottom-right-radius: 2px;
+/// }
+
+@mixin border-bottom-radius($radii) {
+ border-bottom-left-radius: $radii;
+ border-bottom-right-radius: $radii;
+}
+
+/// Provides a concise, one-line method for setting `border-radius` on both the
+/// top-left and bottom-left of a box.
+///
+/// @argument {number (with unit)} $radii
+///
+/// @example scss
+/// .element {
+/// @include border-left-radius(1px);
+/// }
+///
+/// // CSS Output
+/// .element {
+/// border-bottom-left-radius: 1px;
+/// border-top-left-radius: 1px;
+/// }
+
+@mixin border-left-radius($radii) {
+ border-bottom-left-radius: $radii;
+ border-top-left-radius: $radii;
+}
--- /dev/null
+@charset "UTF-8";
+
+/// Provides a concise, one-line method for setting `border-style` on specific
+/// edges of a box. Use a `null` value to “skip” edges of the box with standard
+/// CSS shorthand.
+///
+/// @argument {list} $values
+/// List of border styles; accepts CSS shorthand.
+///
+/// @example scss
+/// .element {
+/// @include border-style(dashed null solid);
+/// }
+///
+/// // CSS Output
+/// .element {
+/// border-bottom-style: solid;
+/// border-top-style: dashed;
+/// }
+///
+/// @require {mixin} _directional-property
+
+@mixin border-style($values) {
+ @include _directional-property(border, style, $values);
+}
--- /dev/null
+@charset "UTF-8";
+
+/// Provides a concise, one-line method for setting `border-width` on specific
+/// edges of a box. Use a `null` value to “skip” edges of the box with standard
+/// CSS shorthand.
+///
+/// @argument {list} $values
+/// List of border widths; accepts CSS shorthand.
+///
+/// @example scss
+/// .element {
+/// @include border-width(1em null 20px);
+/// }
+///
+/// // CSS Output
+/// .element {
+/// border-bottom-width: 20px;
+/// border-top-width: 1em;
+/// }
+///
+/// @require {mixin} _directional-property
+
+@mixin border-width($values) {
+ @include _directional-property(border, width, $values);
+}
--- /dev/null
+@charset "UTF-8";
+
+////
+/// @type list
+///
+/// @require {function} _assign-inputs
+///
+/// @require {variable} $_buttons-list
+////
+
+/// A list of all HTML button elements. Please note that you must interpolate
+/// the variable (`#{}`) to use it as a selector.
+///
+/// @example scss
+/// #{$all-buttons} {
+/// background-color: #f00;
+/// }
+///
+/// // CSS Output
+/// button,
+/// [type='button'],
+/// [type='reset'],
+/// [type='submit'] {
+/// background-color: #f00;
+/// }
+
+$all-buttons: _assign-inputs($_buttons-list);
+
+/// A list of all HTML button elements with the `:active` pseudo-class applied.
+/// Please note that you must interpolate the variable (`#{}`) to use it as a
+/// selector.
+///
+/// @example scss
+/// #{$all-buttons-active} {
+/// background-color: #00f;
+/// }
+///
+/// // CSS Output
+/// button:active,
+/// [type='button']:active,
+/// [type='reset']:active,
+/// [type='submit']:active {
+/// background-color: #00f;
+/// }
+
+$all-buttons-active: _assign-inputs($_buttons-list, active);
+
+/// A list of all HTML button elements with the `:focus` pseudo-class applied.
+/// Please note that you must interpolate the variable (`#{}`) to use it as a
+/// selector.
+///
+/// @example scss
+/// #{$all-buttons-focus} {
+/// background-color: #0f0;
+/// }
+///
+/// // CSS Output
+/// button:focus,
+/// [type='button']:focus,
+/// [type='reset']:focus,
+/// [type='submit']:focus {
+/// background-color: #0f0;
+/// }
+
+$all-buttons-focus: _assign-inputs($_buttons-list, focus);
+
+/// A list of all HTML button elements with the `:hover` pseudo-class applied.
+/// Please note that you must interpolate the variable (`#{}`) to use it as a
+/// selector.
+///
+/// @example scss
+/// #{$all-buttons-hover} {
+/// background-color: #0f0;
+/// }
+///
+/// // CSS Output
+/// button:hover,
+/// [type='button']:hover,
+/// [type='reset']:hover,
+/// [type='submit']:hover {
+/// background-color: #0f0;
+/// }
+
+$all-buttons-hover: _assign-inputs($_buttons-list, hover);
--- /dev/null
+@charset "UTF-8";
+
+/// Provides an easy way to include a clearfix for containing floats.
+///
+/// @link https://goo.gl/yP5hiZ
+///
+/// @example scss
+/// .element {
+/// @include clearfix;
+/// }
+///
+/// // CSS Output
+/// .element::after {
+/// clear: both;
+/// content: "";
+/// display: block;
+/// }
+
+@mixin clearfix {
+ &::after {
+ clear: both;
+ content: "";
+ display: block;
+ }
+}
--- /dev/null
+@charset "UTF-8";
+
+/// Switches between two colors based on the contrast to another color. It’s
+/// like a [ternary operator] for color contrast and can be useful for building
+/// a button system.
+///
+/// The calculation of the contrast ratio is based on the [WCAG 2.0
+/// specification]. However, we cannot guarantee full compliance, though all of
+/// our manual testing passed.
+///
+/// [ternary operator]: https://goo.gl/ccfLqi
+/// [WCAG 2.0 specification]: https://goo.gl/zhQuYA
+///
+/// @argument {color} $base-color
+/// The color to evaluate lightness against.
+///
+/// @argument {color} $dark-color [#000]
+/// The color to be output when `$base-color` is light. Can also be set
+/// globally using the `contrast-switch-dark-color` key in the
+/// Bourbon settings.
+///
+/// @argument {color} $light-color [#fff]
+/// The color to be output when `$base-color` is dark. Can also be set
+/// globally using the `contrast-switch-light-color` key in the
+/// Bourbon settings.
+///
+/// @return {color}
+///
+/// @example scss
+/// .element {
+/// color: contrast-switch(#bae6e6);
+/// }
+///
+/// // CSS Output
+/// .element {
+/// color: #000;
+/// }
+///
+/// @example scss
+/// .element {
+/// $button-color: #2d72d9;
+/// background-color: $button-color;
+/// color: contrast-switch($button-color, #222, #eee);
+/// }
+///
+/// // CSS Output
+/// .element {
+/// background-color: #2d72d9;
+/// color: #eee;
+/// }
+///
+/// @require {function} _fetch-bourbon-setting
+///
+/// @require {function} _is-color
+///
+/// @require {function} _contrast-ratio
+///
+/// @since 5.0.0
+
+@function contrast-switch(
+ $base-color,
+ $dark-color: _fetch-bourbon-setting("contrast-switch-dark-color"),
+ $light-color: _fetch-bourbon-setting("contrast-switch-light-color")
+) {
+ @if not _is-color($base-color) {
+ @error "`#{$base-color}` is not a valid color for the `$base-color` " +
+ "argument in the `contrast-switch` function.";
+ } @else if not _is-color($dark-color) {
+ @error "`#{$dark-color}` is not a valid color for the `$dark-color` " +
+ "argument in the `contrast-switch` function.";
+ } @else if not _is-color($light-color) {
+ @error "`#{$light-color}` is not a valid color for the `$light-color` " +
+ "argument in the `contrast-switch` function.";
+ } @else {
+ $-contrast-to-dark: _contrast-ratio($base-color, $dark-color);
+ $-contrast-to-light: _contrast-ratio($base-color, $light-color);
+ $-prefer-dark: $-contrast-to-dark >= $-contrast-to-light;
+
+ @return if($-prefer-dark, $dark-color, $light-color);
+ }
+}
--- /dev/null
+@charset "UTF-8";
+
+/// Truncates text and adds an ellipsis to represent overflow.
+///
+/// @argument {number} $width [100%]
+/// The `max-width` for the string to respect before being truncated.
+///
+/// @argument {string} $display [inline-block]
+/// Sets the display-value of the element.
+///
+/// @example scss
+/// .element {
+/// @include ellipsis;
+/// }
+///
+/// // CSS Output
+/// .element {
+/// display: inline-block;
+/// max-width: 100%;
+/// overflow: hidden;
+/// text-overflow: ellipsis;
+/// white-space: nowrap;
+/// word-wrap: normal;
+/// }
+
+@mixin ellipsis(
+ $width: 100%,
+ $display: inline-block
+) {
+ display: $display;
+ max-width: $width;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ word-wrap: normal;
+}
--- /dev/null
+@charset "UTF-8";
+
+/// Generates an `@font-face` declaration. You can choose the specific file
+/// formats you need to output; the mixin supports `eot`, `ttf`, `svg`, `woff2`
+/// and `woff`. The mixin also supports usage with the Rails Asset Pipeline,
+/// which you can enable per use, or globally in the `$bourbon()` settings.
+///
+/// @argument {string} $font-family
+///
+/// @argument {string} $file-path
+///
+/// @argument {string} $asset-pipeline [false]
+/// Set to `true` if you’re using the Rails Asset Pipeline (place the fonts
+/// in `app/assets/fonts/`). Can also be set globally using the
+/// `rails-asset-pipeline` key in the Bourbon settings.
+///
+/// @argument {string | list} $file-formats [("ttf", "woff2", "woff")]
+/// List of the font file formats to include. Can also be set globally using
+/// the `global-font-file-formats` key in the Bourbon settings.
+///
+/// @content
+/// Any additional CSS properties that are included in the `@include`
+/// directive will be output within the `@font-face` declaration, e.g. you can
+/// pass in `font-weight`, `font-style` and/or `unicode-range`.
+///
+/// @example scss
+/// @include font-face(
+/// "source-sans-pro",
+/// "fonts/source-sans-pro-regular",
+/// ("woff2", "woff")
+/// ) {
+/// font-style: normal;
+/// font-weight: 400;
+/// }
+///
+/// // CSS Output
+/// @font-face {
+/// font-family: "source-sans-pro";
+/// src: url("fonts/source-sans-pro-regular.woff2") format("woff2"),
+/// url("fonts/source-sans-pro-regular.woff") format("woff");
+/// font-style: normal;
+/// font-weight: 400;
+/// }
+///
+/// @require {function} _font-source-declaration
+///
+/// @require {function} _fetch-bourbon-setting
+
+@mixin font-face(
+ $font-family,
+ $file-path,
+ $file-formats: _fetch-bourbon-setting("global-font-file-formats"),
+ $asset-pipeline: _fetch-bourbon-setting("rails-asset-pipeline")
+) {
+ @font-face {
+ font-family: $font-family;
+ src: _font-source-declaration(
+ $font-family,
+ $file-path,
+ $asset-pipeline,
+ $file-formats
+ );
+ @content;
+ }
+}
--- /dev/null
+@charset "UTF-8";
+
+/// A variable that outputs a Helvetica font stack.
+///
+/// @link https://goo.gl/uSJvZe
+///
+/// @type list
+///
+/// @example scss
+/// .element {
+/// font-family: $font-stack-helvetica;
+/// }
+///
+/// // CSS Output
+/// .element {
+/// font-family: "Helvetica Neue", "Helvetica", "Arial", sans-serif;
+/// }
+
+$font-stack-helvetica: (
+ "Helvetica Neue",
+ "Helvetica",
+ "Arial",
+ sans-serif,
+);
+
+/// A variable that outputs a Lucida Grande font stack.
+///
+/// @link https://goo.gl/R5UyYE
+///
+/// @type list
+///
+/// @example scss
+/// .element {
+/// font-family: $font-stack-lucida-grande;
+/// }
+///
+/// // CSS Output
+/// .element {
+/// font-family: "Lucida Grande", "Lucida Sans Unicode", "Geneva", "Verdana", sans-serif;
+/// }
+
+$font-stack-lucida-grande: (
+ "Lucida Grande",
+ "Lucida Sans Unicode",
+ "Geneva",
+ "Verdana",
+ sans-serif,
+);
+
+/// A variable that outputs a Verdana font stack.
+///
+/// @link https://goo.gl/yGXWSS
+///
+/// @type list
+///
+/// @example scss
+/// .element {
+/// font-family: $font-stack-verdana;
+/// }
+///
+/// // CSS Output
+/// .element {
+/// font-family: "Verdana", "Geneva", sans-serif;
+/// }
+
+$font-stack-verdana: (
+ "Verdana",
+ "Geneva",
+ sans-serif,
+);
+
+/// A variable that outputs a system font stack.
+///
+/// @link https://goo.gl/LHRZIf
+///
+/// @type list
+///
+/// @example scss
+/// .element {
+/// font-family: $font-stack-system;
+/// }
+///
+/// // CSS Output
+/// .element {
+/// font-family: -apple-system, BlinkMacSystemFont, "Avenir Next", "Avenir", "Segoe UI", "Lucida Grande", "Helvetica Neue", "Helvetica", "Fira Sans", "Roboto", "Noto", "Droid Sans", "Cantarell", "Oxygen", "Ubuntu", "Franklin Gothic Medium", "Century Gothic", "Liberation Sans", sans-serif;
+/// }
+
+$font-stack-system: (
+ -apple-system,
+ BlinkMacSystemFont,
+ "Avenir Next",
+ "Avenir",
+ "Segoe UI",
+ "Lucida Grande",
+ "Helvetica Neue",
+ "Helvetica",
+ "Fira Sans",
+ "Roboto",
+ "Noto",
+ "Droid Sans",
+ "Cantarell",
+ "Oxygen",
+ "Ubuntu",
+ "Franklin Gothic Medium",
+ "Century Gothic",
+ "Liberation Sans",
+ sans-serif,
+);
+
+/// A variable that outputs a Garamond font stack.
+///
+/// @link https://goo.gl/QQFEkV
+///
+/// @type list
+///
+/// @example scss
+/// .element {
+/// font-family: $font-stack-garamond;
+/// }
+///
+/// // CSS Output
+/// .element {
+/// font-family: "Garamond", "Baskerville", "Baskerville Old Face", "Hoefler Text", "Times New Roman", serif;
+/// }
+
+$font-stack-garamond: (
+ "Garamond",
+ "Baskerville",
+ "Baskerville Old Face",
+ "Hoefler Text",
+ "Times New Roman",
+ serif,
+);
+
+/// A variable that outputs a Georgia font stack.
+///
+/// @link https://goo.gl/wtzVPy
+///
+/// @type list
+///
+/// @example scss
+/// .element {
+/// font-family: $font-stack-georgia;
+/// }
+///
+/// // CSS Output
+/// .element {
+/// font-family: "Georgia", "Times", "Times New Roman", serif;
+/// }
+
+$font-stack-georgia: (
+ "Georgia",
+ "Times",
+ "Times New Roman",
+ serif,
+);
+
+/// A variable that outputs a Hoefler Text font stack.
+///
+/// @link https://goo.gl/n7U7zx
+///
+/// @type list
+///
+/// @example scss
+/// .element {
+/// font-family: $font-stack-hoefler-text;
+/// }
+///
+/// // CSS Output
+/// .element {
+/// font-family: "Hoefler Text", "Baskerville Old Face", "Garamond", "Times New Roman", serif;
+/// }
+
+$font-stack-hoefler-text: (
+ "Hoefler Text",
+ "Baskerville Old Face",
+ "Garamond",
+ "Times New Roman",
+ serif,
+);
+
+/// A variable that outputs a Consolas font stack.
+///
+/// @link https://goo.gl/iKrtqv
+///
+/// @type list
+///
+/// @example scss
+/// .element {
+/// font-family: $font-stack-consolas;
+/// }
+///
+/// // CSS Output
+/// .element {
+/// font-family: "Consolas", "monaco", monospace;
+/// }
+
+$font-stack-consolas: (
+ "Consolas",
+ "monaco",
+ monospace,
+);
+
+/// A variable that outputs a Courier New font stack.
+///
+/// @link https://goo.gl/bHfWMP
+///
+/// @type list
+///
+/// @example scss
+/// .element {
+/// font-family: $font-stack-courier-new;
+/// }
+///
+/// // CSS Output
+/// .element {
+/// font-family: "Courier New", "Courier", "Lucida Sans Typewriter", "Lucida Typewriter", monospace;
+/// }
+
+$font-stack-courier-new: (
+ "Courier New",
+ "Courier",
+ "Lucida Sans Typewriter",
+ "Lucida Typewriter",
+ monospace,
+);
+
+/// A variable that outputs a Monaco font stack.
+///
+/// @link https://goo.gl/9PgKDO
+///
+/// @type list
+///
+/// @example scss
+/// .element {
+/// font-family: $font-stack-monaco;
+/// }
+///
+/// // CSS Output
+/// .element {
+/// font-family: "Monaco", "Consolas", "Lucida Console", monospace;
+/// }
+
+$font-stack-monaco: (
+ "Monaco",
+ "Consolas",
+ "Lucida Console",
+ monospace,
+);
--- /dev/null
+@charset "UTF-8";
+
+/// Hides the text in an element, commonly used to show an image instead. Some
+/// elements will need block-level styles applied.
+///
+/// @link https://goo.gl/EvLRIu
+///
+/// @example scss
+/// .element {
+/// @include hide-text;
+/// }
+///
+/// // CSS Output
+/// .element {
+/// overflow: hidden;
+/// text-indent: 101%;
+/// white-space: nowrap;
+/// }
+
+@mixin hide-text {
+ overflow: hidden;
+ text-indent: 101%;
+ white-space: nowrap;
+}
--- /dev/null
+@charset "UTF-8";
+
+/// Hides an element visually while still allowing the content to be accessible
+/// to assistive technology, e.g. screen readers. Passing `unhide` will reverse
+/// the affects of the hiding, which is handy for showing the element on focus,
+/// for example.
+///
+/// @link https://goo.gl/Vf1TGn
+///
+/// @argument {string} $toggle [hide]
+/// Accepts `hide` or `unhide`. `unhide` reverses the affects of `hide`.
+///
+/// @example scss
+/// .element {
+/// @include hide-visually;
+///
+/// &:active,
+/// &:focus {
+/// @include hide-visually("unhide");
+/// }
+/// }
+///
+/// // CSS Output
+/// .element {
+/// border: 0;
+/// clip: rect(1px, 1px, 1px, 1px);
+/// clip-path: inset(100%);
+/// height: 1px;
+/// overflow: hidden;
+/// padding: 0;
+/// position: absolute;
+/// width: 1px;
+/// }
+///
+/// .hide-visually:active,
+/// .hide-visually:focus {
+/// clip: auto;
+/// clip-path: none;
+/// height: auto;
+/// overflow: visible;
+/// position: static;
+/// width: auto;
+/// }
+///
+/// @since 5.0.0
+
+@mixin hide-visually($toggle: "hide") {
+ @if not index("hide" "unhide", $toggle) {
+ @error "`#{$toggle}` is not a valid value for the `$toggle` argument in " +
+ "the `hide-visually` mixin. Must be either `hide` or `unhide`.";
+ } @else if $toggle == "hide" {
+ border: 0;
+ clip: rect(1px, 1px, 1px, 1px);
+ clip-path: inset(100%);
+ height: 1px;
+ overflow: hidden;
+ padding: 0;
+ position: absolute;
+ white-space: nowrap;
+ width: 1px;
+ } @else if $toggle == "unhide" {
+ clip: auto;
+ clip-path: none;
+ height: auto;
+ overflow: visible;
+ position: static;
+ white-space: inherit;
+ width: auto;
+ }
+}
--- /dev/null
+@charset "UTF-8";
+
+/// Provides a concise, one-line method for setting `margin` on specific edges
+/// of a box. Use a `null` value to “skip” edges of the box with standard
+/// CSS shorthand.
+///
+/// @argument {list} $values
+/// List of margin values; accepts CSS shorthand.
+///
+/// @example scss
+/// .element {
+/// @include margin(null auto);
+/// }
+///
+/// // CSS Output
+/// .element {
+/// margin-left: auto;
+/// margin-right: auto;
+/// }
+///
+/// @example scss
+/// .element {
+/// @include margin(10px 3em 20vh null);
+/// }
+///
+/// // CSS Output
+/// .element {
+/// margin-bottom: 20vh;
+/// margin-right: 3em;
+/// margin-top: 10px;
+/// }
+///
+/// @require {mixin} _directional-property
+
+@mixin margin($values) {
+ @include _directional-property(margin, null, $values);
+}
--- /dev/null
+@charset "UTF-8";
+
+/// Increments up or down a defined scale and returns an adjusted value. This
+/// helps establish consistent measurements and spacial relationships throughout
+/// your project. We provide a list of commonly used scales as
+/// [pre-defined variables][scales].
+///
+/// [scales]: https://github.com/thoughtbot/bourbon/blob/master/core/bourbon/settings/_scales.scss
+///
+/// @argument {number (unitless)} $increment
+/// How many steps to increment up or down the scale.
+///
+/// @argument {number (with unit) | list} $value [1em]
+/// The base value the scale starts at. Can also be set globally using the
+/// `modular-scale-base` key in the Bourbon settings.
+///
+/// @argument {number (unitless)} $ratio [1.25]
+/// The ratio the scale is built on. Can also be set globally using the
+/// `modular-scale-ratio` key in the Bourbon settings.
+///
+/// @return {number (with unit)}
+///
+/// @example scss
+/// .element {
+/// font-size: modular-scale(2);
+/// }
+///
+/// // CSS Output
+/// .element {
+/// font-size: 1.5625em;
+/// }
+///
+/// @example scss
+/// .element {
+/// margin-right: modular-scale(3, 2em);
+/// }
+///
+/// // CSS Output
+/// .element {
+/// margin-right: 3.90625em;
+/// }
+///
+/// @example scss
+/// .element {
+/// font-size: modular-scale(3, 1em 1.6em, $major-seventh);
+/// }
+///
+/// // CSS Output
+/// .element {
+/// font-size: 3em;
+/// }
+///
+/// @example scss
+/// // Globally change the base ratio
+/// $bourbon: (
+/// "modular-scale-ratio": 1.2,
+/// );
+///
+/// .element {
+/// font-size: modular-scale(3);
+/// }
+///
+/// // CSS Output
+/// .element {
+/// font-size: 1.728em;
+/// }
+///
+/// @require {function} _fetch-bourbon-setting
+
+@function modular-scale(
+ $increment,
+ $value: _fetch-bourbon-setting("modular-scale-base"),
+ $ratio: _fetch-bourbon-setting("modular-scale-ratio")
+) {
+ $v1: nth($value, 1);
+ $v2: nth($value, length($value));
+ $value: $v1;
+
+ // scale $v2 to just above $v1
+ @while $v2 > $v1 {
+ $v2: ($v2 / $ratio); // will be off-by-1
+ }
+ @while $v2 < $v1 {
+ $v2: ($v2 * $ratio); // will fix off-by-1
+ }
+
+ // check AFTER scaling $v2 to prevent double-counting corner-case
+ $double-stranded: $v2 > $v1;
+
+ @if $increment > 0 {
+ @for $i from 1 through $increment {
+ @if $double-stranded and ($v1 * $ratio) > $v2 {
+ $value: $v2;
+ $v2: ($v2 * $ratio);
+ } @else {
+ $v1: ($v1 * $ratio);
+ $value: $v1;
+ }
+ }
+ }
+
+ @if $increment < 0 {
+ // adjust $v2 to just below $v1
+ @if $double-stranded {
+ $v2: ($v2 / $ratio);
+ }
+
+ @for $i from $increment through -1 {
+ @if $double-stranded and ($v1 / $ratio) < $v2 {
+ $value: $v2;
+ $v2: ($v2 / $ratio);
+ } @else {
+ $v1: ($v1 / $ratio);
+ $value: $v1;
+ }
+ }
+ }
+
+ @return $value;
+}
--- /dev/null
+@charset "UTF-8";
+
+/// Outputs the `overflow-wrap` property and its legacy name `word-wrap` to
+/// support browsers that do not yet use `overflow-wrap`.
+///
+/// @argument {string} $wrap [break-word]
+/// Accepted CSS values are `normal`, `break-word`, `inherit`, `initial`,
+/// or `unset`.
+///
+/// @example scss
+/// .wrapper {
+/// @include overflow-wrap;
+/// }
+///
+/// // CSS Output
+/// .wrapper {
+/// word-wrap: break-word;
+/// overflow-wrap: break-word;
+/// }
+
+@mixin overflow-wrap($wrap: break-word) {
+ word-wrap: $wrap;
+ overflow-wrap: $wrap;
+}
--- /dev/null
+@charset "UTF-8";
+
+/// Provides a concise method for targeting `padding` on specific sides of a
+/// box. Use a `null` value to “skip” a side.
+///
+/// @argument {list} $values
+/// List of padding values; accepts CSS shorthand.
+///
+/// @example scss
+/// .element-one {
+/// @include padding(null 1rem);
+/// }
+///
+/// // CSS Output
+/// .element-one {
+/// padding-left: 1rem;
+/// padding-right: 1rem;
+/// }
+///
+/// @example scss
+/// .element-two {
+/// @include padding(10vh null 10px 5%);
+/// }
+///
+/// // CSS Output
+/// .element-two {
+/// padding-bottom: 10px;
+/// padding-left: 5%;
+/// padding-top: 10vh;
+/// }
+///
+/// @require {mixin} _directional-property
+
+@mixin padding($values) {
+ @include _directional-property(padding, null, $values);
+}
--- /dev/null
+@charset "UTF-8";
+
+/// Provides a concise, one-line method for setting an element’s positioning
+/// properties: `position`, `top`, `right`, `bottom` and `left`. Use a `null`
+/// value to “skip” an edge of the box.
+///
+/// @argument {string} $position
+/// A CSS position value.
+///
+/// @argument {list} $box-edge-values
+/// List of lengths; accepts CSS shorthand.
+///
+/// @example scss
+/// .element {
+/// @include position(relative, 0 null null 10em);
+/// }
+///
+/// // CSS Output
+/// .element {
+/// left: 10em;
+/// position: relative;
+/// top: 0;
+/// }
+///
+/// @example scss
+/// .element {
+/// @include position(absolute, 0);
+/// }
+///
+/// // CSS Output
+/// .element {
+/// position: absolute;
+/// top: 0;
+/// right: 0;
+/// bottom: 0;
+/// left: 0;
+/// }
+///
+/// @require {function} _is-length
+///
+/// @require {function} _unpack-shorthand
+
+@mixin position(
+ $position,
+ $box-edge-values
+) {
+ $box-edge-values: _unpack-shorthand($box-edge-values);
+ $offsets: (
+ top: nth($box-edge-values, 1),
+ right: nth($box-edge-values, 2),
+ bottom: nth($box-edge-values, 3),
+ left: nth($box-edge-values, 4),
+ );
+
+ position: $position;
+
+ @each $offset, $value in $offsets {
+ @if _is-length($value) {
+ #{$offset}: $value;
+ }
+ }
+}
--- /dev/null
+@charset "UTF-8";
+
+/// Generates vendor prefixes.
+///
+/// @argument {string} $property
+/// Property to prefix.
+///
+/// @argument {string} $value
+/// Value to use.
+///
+/// @argument {list} $prefixes
+/// Vendor prefixes to output.
+///
+/// @example scss
+/// .element {
+/// @include prefixer(appearance, none, ("webkit", "moz"));
+/// }
+///
+/// // CSS Output
+/// .element {
+/// -webkit-appearance: none;
+/// -moz-appearance: none;
+/// appearance: none;
+/// }
+///
+/// @author Hugo Giraudel
+
+@mixin prefixer(
+ $property,
+ $value,
+ $prefixes: ()
+) {
+ @each $prefix in $prefixes {
+ #{"-" + $prefix + "-" + $property}: $value;
+ }
+ #{$property}: $value;
+}
--- /dev/null
+@charset "UTF-8";
+
+/// Mixes a color with black.
+///
+/// @argument {color} $color
+///
+/// @argument {number (percentage)} $percent
+/// The amount of black to be mixed in.
+///
+/// @return {color}
+///
+/// @example scss
+/// .element {
+/// background-color: shade(#ffbb52, 60%);
+/// }
+///
+/// // CSS Output
+/// .element {
+/// background-color: #664a20;
+/// }
+
+@function shade(
+ $color,
+ $percent
+) {
+ @if not _is-color($color) {
+ @error "`#{$color}` is not a valid color for the `$color` argument in " +
+ "the `shade` mixin.";
+ } @else {
+ @return mix(#000, $color, $percent);
+ }
+}
--- /dev/null
+@charset "UTF-8";
+
+/// Sets the `width` and `height` of the element in one statement.
+///
+/// @argument {number (with unit) | string} $width
+///
+/// @argument {number (with unit) | string} $height [$width]
+///
+/// @example scss
+/// .first-element {
+/// @include size(2em);
+/// }
+///
+/// // CSS Output
+/// .first-element {
+/// width: 2em;
+/// height: 2em;
+/// }
+///
+/// @example scss
+/// .second-element {
+/// @include size(auto, 10em);
+/// }
+///
+/// // CSS Output
+/// .second-element {
+/// width: auto;
+/// height: 10em;
+/// }
+///
+/// @require {function} _is-size
+
+@mixin size(
+ $width,
+ $height: $width
+) {
+ @if _is-size($height) {
+ height: $height;
+ } @else {
+ @error "`#{$height}` is not a valid length for the `$height` argument " +
+ "in the `size` mixin.";
+ }
+
+ @if _is-size($width) {
+ width: $width;
+ } @else {
+ @error "`#{$width}` is not a valid length for the `$width` argument " +
+ "in the `size` mixin.";
+ }
+}
--- /dev/null
+@charset "UTF-8";
+
+/// Strips the unit from a number.
+///
+/// @argument {number} $value
+///
+/// @return {number (unitless)}
+///
+/// @example scss
+/// $dimension: strip-unit(10em);
+///
+/// // Output
+/// $dimension: 10;
+
+@function strip-unit($value) {
+ @return ($value / ($value * 0 + 1));
+}
--- /dev/null
+@charset "UTF-8";
+
+////
+/// @type list
+///
+/// @require {function} _assign-inputs
+///
+/// @require {variable} $_text-inputs-list
+////
+
+/// A list of all _text-based_ HTML inputs. Please note that you must
+/// interpolate the variable (`#{}`) to use it as a selector.
+///
+/// @example scss
+/// #{$all-text-inputs} {
+/// border: 1px solid #ccc;
+/// }
+///
+/// // CSS Output
+/// [type='color'],
+/// [type='date'],
+/// [type='datetime'],
+/// [type='datetime-local'],
+/// [type='email'],
+/// [type='month'],
+/// [type='number'],
+/// [type='password'],
+/// [type='search'],
+/// [type='tel'],
+/// [type='text'],
+/// [type='time'],
+/// [type='url'],
+/// [type='week'],
+/// input:not([type]),
+/// textarea {
+/// border: 1px solid #ccc;
+/// }
+
+$all-text-inputs: _assign-inputs($_text-inputs-list);
+
+/// A list of all _text-based_ HTML inputs with the `:active` pseudo-class
+/// applied. Please note that you must interpolate the variable (`#{}`) to use
+/// it as a selector.
+///
+/// @example scss
+/// #{$all-text-inputs-active} {
+/// border: 1px solid #aaa;
+/// }
+///
+/// // CSS Output
+/// [type='color']:active,
+/// [type='date']:active,
+/// [type='datetime']:active,
+/// [type='datetime-local']:active,
+/// [type='email']:active,
+/// [type='month']:active,
+/// [type='number']:active,
+/// [type='password']:active,
+/// [type='search']:active,
+/// [type='tel']:active,
+/// [type='text']:active,
+/// [type='time']:active,
+/// [type='url']:active,
+/// [type='week']:active,
+/// input:not([type]):active,
+/// textarea:active {
+/// border: 1px solid #aaa;
+/// }
+
+$all-text-inputs-active: _assign-inputs($_text-inputs-list, active);
+
+/// A list of all _text-based_ HTML inputs with the `:focus` pseudo-class
+/// applied. Please note that you must interpolate the variable (`#{}`) to use
+/// it as a selector.
+///
+/// @example scss
+/// #{$all-text-inputs-focus} {
+/// border: 1px solid #1565c0;
+/// }
+///
+/// // CSS Output
+/// [type='color']:focus,
+/// [type='date']:focus,
+/// [type='datetime']:focus,
+/// [type='datetime-local']:focus,
+/// [type='email']:focus,
+/// [type='month']:focus,
+/// [type='number']:focus,
+/// [type='password']:focus,
+/// [type='search']:focus,
+/// [type='tel']:focus,
+/// [type='text']:focus,
+/// [type='time']:focus,
+/// [type='url']:focus,
+/// [type='week']:focus,
+/// input:not([type]):focus,
+/// textarea:focus {
+/// border: 1px solid #1565c0;
+/// }
+
+$all-text-inputs-focus: _assign-inputs($_text-inputs-list, focus);
+
+/// A list of all _text-based_ HTML inputs with the `:hover` pseudo-class
+/// applied. Please note that you must interpolate the variable (`#{}`) to use
+/// it as a selector.
+///
+/// @example scss
+/// #{$all-text-inputs-hover} {
+/// border: 1px solid #aaa;
+/// }
+///
+/// // CSS Output
+/// [type='color']:hover,
+/// [type='date']:hover,
+/// [type='datetime']:hover,
+/// [type='datetime-local']:hover,
+/// [type='email']:hover,
+/// [type='month']:hover,
+/// [type='number']:hover,
+/// [type='password']:hover,
+/// [type='search']:hover,
+/// [type='tel']:hover,
+/// [type='text']:hover,
+/// [type='time']:hover,
+/// [type='url']:hover,
+/// [type='week']:hover,
+/// input:not([type]):hover,
+/// textarea:hover {
+/// border: 1px solid #aaa;
+/// }
+
+$all-text-inputs-hover: _assign-inputs($_text-inputs-list, hover);
+
+/// A list of all _text-based_ HTML inputs with the `:invalid` pseudo-class
+/// applied. Please note that you must interpolate the variable (`#{}`) to use
+/// it as a selector.
+///
+/// @example scss
+/// #{$all-text-inputs-invalid} {
+/// border: 1px solid #00f;
+/// }
+///
+/// // CSS Output
+/// [type='color']:invalid,
+/// [type='date']:invalid,
+/// [type='datetime']:invalid,
+/// [type='datetime-local']:invalid,
+/// [type='email']:invalid,
+/// [type='month']:invalid,
+/// [type='number']:invalid,
+/// [type='password']:invalid,
+/// [type='search']:invalid,
+/// [type='tel']:invalid,
+/// [type='text']:invalid,
+/// [type='time']:invalid,
+/// [type='url']:invalid,
+/// [type='week']:invalid,
+/// input:not([type]):invalid,
+/// textarea:invalid {
+/// border: 1px solid #00f;
+/// }
+
+$all-text-inputs-invalid: _assign-inputs($_text-inputs-list, invalid);
--- /dev/null
+@charset "UTF-8";
+
+// scss-lint:disable SpaceAfterComma, UnnecessaryMantissa, TrailingZero
+
+////
+/// CSS cubic-bezier timing functions.
+///
+/// @link https://goo.gl/p8u6SK
+///
+/// @type string
+////
+
+$ease-in-quad: cubic-bezier(0.550, 0.085, 0.680, 0.530);
+$ease-in-cubic: cubic-bezier(0.550, 0.055, 0.675, 0.190);
+$ease-in-quart: cubic-bezier(0.895, 0.030, 0.685, 0.220);
+$ease-in-quint: cubic-bezier(0.755, 0.050, 0.855, 0.060);
+$ease-in-sine: cubic-bezier(0.470, 0.000, 0.745, 0.715);
+$ease-in-expo: cubic-bezier(0.950, 0.050, 0.795, 0.035);
+$ease-in-circ: cubic-bezier(0.600, 0.040, 0.980, 0.335);
+$ease-in-back: cubic-bezier(0.600, -0.280, 0.735, 0.045);
+
+$ease-out-quad: cubic-bezier(0.250, 0.460, 0.450, 0.940);
+$ease-out-cubic: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+$ease-out-quart: cubic-bezier(0.165, 0.840, 0.440, 1.000);
+$ease-out-quint: cubic-bezier(0.230, 1.000, 0.320, 1.000);
+$ease-out-sine: cubic-bezier(0.390, 0.575, 0.565, 1.000);
+$ease-out-expo: cubic-bezier(0.190, 1.000, 0.220, 1.000);
+$ease-out-circ: cubic-bezier(0.075, 0.820, 0.165, 1.000);
+$ease-out-back: cubic-bezier(0.175, 0.885, 0.320, 1.275);
+
+$ease-in-out-quad: cubic-bezier(0.455, 0.030, 0.515, 0.955);
+$ease-in-out-cubic: cubic-bezier(0.645, 0.045, 0.355, 1.000);
+$ease-in-out-quart: cubic-bezier(0.770, 0.000, 0.175, 1.000);
+$ease-in-out-quint: cubic-bezier(0.860, 0.000, 0.070, 1.000);
+$ease-in-out-sine: cubic-bezier(0.445, 0.050, 0.550, 0.950);
+$ease-in-out-expo: cubic-bezier(1.000, 0.000, 0.000, 1.000);
+$ease-in-out-circ: cubic-bezier(0.785, 0.135, 0.150, 0.860);
+$ease-in-out-back: cubic-bezier(0.680, -0.550, 0.265, 1.550);
--- /dev/null
+@charset "UTF-8";
+
+/// Mixes a color with white.
+///
+/// @argument {color} $color
+///
+/// @argument {number (percentage)} $percent
+/// The amount of white to be mixed in.
+///
+/// @return {color}
+///
+/// @example scss
+/// .element {
+/// background-color: tint(#6ecaa6, 40%);
+/// }
+///
+/// // CSS Output
+/// .element {
+/// background-color: #a8dfc9;
+/// }
+
+@function tint(
+ $color,
+ $percent
+) {
+ @if not _is-color($color) {
+ @error "`#{$color}` is not a valid color for the `$color` argument in " +
+ "the `tint` mixin.";
+ } @else {
+ @return mix(#fff, $color, $percent);
+ }
+}
--- /dev/null
+@charset "UTF-8";
+
+/// Generates a triangle pointing in a specified direction.
+///
+/// @argument {string} $direction
+/// The direction the triangle should point. Accepts `up`, `up-right`,
+/// `right`, `down-right`, `down`, `down-left`, `left` or `up-left`.
+///
+/// @argument {number (with unit)} $width
+/// Width of the triangle.
+///
+/// @argument {number (with unit)} $height
+/// Height of the triangle.
+///
+/// @argument {color} $color
+/// Color of the triangle.
+///
+/// @example scss
+/// .element {
+/// &::before {
+/// @include triangle("up", 2rem, 1rem, #b25c9c);
+/// content: "";
+/// }
+/// }
+///
+/// // CSS Output
+/// .element::before {
+/// border-style: solid;
+/// height: 0;
+/// width: 0;
+/// border-color: transparent transparent #b25c9c;
+/// border-width: 0 1rem 1rem;
+/// content: "";
+/// }
+
+@mixin triangle(
+ $direction,
+ $width,
+ $height,
+ $color
+) {
+ @if not index(
+ "up" "up-right" "right" "down-right" "down" "down-left" "left" "up-left",
+ $direction
+ ) {
+ @error "Direction must be `up`, `up-right`, `right`, `down-right`, " +
+ "`down`, `down-left`, `left` or `up-left`.";
+ } @else if not _is-color($color) {
+ @error "`#{$color}` is not a valid color for the `$color` argument in " +
+ "the `triangle` mixin.";
+ } @else {
+ border-style: solid;
+ height: 0;
+ width: 0;
+
+ @if $direction == "up" {
+ border-color: transparent transparent $color;
+ border-width: 0 ($width / 2) $height;
+ } @else if $direction == "up-right" {
+ border-color: transparent $color transparent transparent;
+ border-width: 0 $width $width 0;
+ } @else if $direction == "right" {
+ border-color: transparent transparent transparent $color;
+ border-width: ($height / 2) 0 ($height / 2) $width;
+ } @else if $direction == "down-right" {
+ border-color: transparent transparent $color;
+ border-width: 0 0 $width $width;
+ } @else if $direction == "down" {
+ border-color: $color transparent transparent;
+ border-width: $height ($width / 2) 0;
+ } @else if $direction == "down-left" {
+ border-color: transparent transparent transparent $color;
+ border-width: $width 0 0 $width;
+ } @else if $direction == "left" {
+ border-color: transparent $color transparent transparent;
+ border-width: ($height / 2) $width ($height / 2) 0;
+ } @else if $direction == "up-left" {
+ border-color: $color transparent transparent;
+ border-width: $width $width 0 0;
+ }
+ }
+}
--- /dev/null
+@charset "UTF-8";
+
+/// Generates vendor prefixes for values.
+///
+/// @argument {string} $property
+/// Property to use.
+///
+/// @argument {string} $value
+/// Value to prefix.
+///
+/// @argument {list} $prefixes
+/// Vendor prefixes to output.
+///
+/// @example scss
+/// .element {
+/// @include value-prefixer(cursor, grab, ("webkit", "moz"));
+/// }
+///
+/// // CSS Output
+/// .element {
+/// cursor: -webkit-grab;
+/// cursor: -moz-grab;
+/// cursor: grab;
+/// }
+///
+/// @author Matthew Tobiasz
+
+@mixin value-prefixer(
+ $property,
+ $value,
+ $prefixes: ()
+) {
+ @each $prefix in $prefixes {
+ #{$property}: #{"-" + $prefix + "-" + $value};
+ }
+ #{$property}: $value;
+}
--- /dev/null
+@charset "UTF-8";
+
+/// Default global Bourbon settings. Values in this map are overwritten by any
+/// values set in the `$bourbon` map.
+///
+/// @type map
+///
+/// @property {color} contrast-switch-dark-color [#000]
+/// Global dark color for the `contrast-switch` function.
+///
+/// @property {color} contrast-switch-light-color [#fff]
+/// Global light color for the `contrast-switch` function.
+///
+/// @property {list} global-font-file-formats [("ttf", "woff2", "woff")]
+/// Global font file formats for the `font-face` mixin.
+///
+/// @property {number (with unit)} modular-scale-base [1em]
+/// Global base value for the `modular-scale` function.
+///
+/// @property {number (unitless)} modular-scale-ratio [$major-third (1.25)]
+/// Global base ratio for the `modular-scale` function.
+///
+/// @property {boolean} rails-asset-pipeline [false]
+/// Set this to `true` when using the Rails Asset Pipeline and Bourbon will
+/// write asset paths using
+/// [sass-rails’ asset helpers](https://github.com/rails/sass-rails#asset-helpers).
+///
+/// @access private
+
+$_bourbon-defaults: (
+ "contrast-switch-dark-color": #000,
+ "contrast-switch-light-color": #fff,
+ "global-font-file-formats": ("ttf", "woff2", "woff"),
+ "modular-scale-base": 1em,
+ "modular-scale-ratio": $major-third,
+ "rails-asset-pipeline": false,
+);
+
+/// Global Bourbon settings.
+///
+/// @name Settings
+///
+/// @type map
+///
+/// @property {color} contrast-switch-dark-color [#000]
+/// Global dark color for the `contrast-switch` function.
+///
+/// @property {color} contrast-switch-light-color [#fff]
+/// Global light color for the `contrast-switch` function.
+///
+/// @property {list} global-font-file-formats [("ttf", "woff2", "woff")]
+/// Global font file formats for the `font-face` mixin.
+///
+/// @property {number (with unit)} modular-scale-base [1em]
+/// Global base value for the `modular-scale` function.
+///
+/// @property {number (unitless)} modular-scale-ratio [$major-third (1.25)]
+/// Global base ratio for the `modular-scale` function.
+///
+/// @property {boolean} rails-asset-pipeline [false]
+/// Set this to `true` when using the Rails Asset Pipeline and Bourbon will
+/// write asset paths using
+/// [sass-rails’ asset helpers](https://github.com/rails/sass-rails#asset-helpers).
+///
+/// @example scss
+/// $bourbon: (
+/// "contrast-switch-dark-color": #000,
+/// "contrast-switch-light-color": #fff,
+/// "global-font-file-formats": ("ttf", "woff2", "woff"),
+/// "modular-scale-base": 1em,
+/// "modular-scale-ratio": $major-third,
+/// "rails-asset-pipeline": false,
+/// );
+
+$bourbon: () !default;
--- /dev/null
+@charset "UTF-8";
+
+/// Append pseudo-classes to a selector(s).
+///
+/// @argument {list | string} $inputs
+/// A selector, or list of selectors, to apply the pseudo-class to.
+///
+/// @argument {pseudo-class} $pseudo [null]
+/// The pseudo-class to be appended.
+///
+/// @return {list}
+///
+/// @access private
+
+@function _assign-inputs(
+ $inputs,
+ $pseudo: null
+) {
+ $list: ();
+
+ @each $input in $inputs {
+ $input: unquote($input);
+ $input: if($pseudo, $input + ":" + $pseudo, $input);
+ $list: append($list, $input, comma);
+ }
+
+ @return $list;
+}
--- /dev/null
+@charset "UTF-8";
+
+// scss-lint:disable ElsePlacement
+
+/// Transforms shorthand to its shortest possible form.
+///
+/// @argument {list} $values
+/// List of directional values.
+///
+/// @example scss
+/// $values: _compact-shorthand(10px 20px 10px 20px);
+///
+/// // Output
+/// $values: 10px 20px;
+///
+/// @return {list}
+///
+/// @access private
+
+@function _compact-shorthand($values) {
+ $output: null;
+
+ $a: nth($values, 1);
+ $b: if(length($values) < 2, $a, nth($values, 2));
+ $c: if(length($values) < 3, $a, nth($values, 3));
+ $d: if(length($values) < 2, $a, nth($values, if(length($values) < 4, 2, 4)));
+
+ @if $a == 0 { $a: 0; }
+ @if $b == 0 { $b: 0; }
+ @if $c == 0 { $c: 0; }
+ @if $d == 0 { $d: 0; }
+
+ @if $a == $b and $a == $c and $a == $d { $output: $a; }
+ @else if $a == $c and $b == $d { $output: $a $b; }
+ @else if $b == $d { $output: $a $b $c; }
+ @else { $output: $a $b $c $d; }
+
+ @return $output;
+}
--- /dev/null
+@charset "UTF-8";
+
+/// Programatically determines the contrast ratio between two colors.
+///
+/// Note that the alpha channel is ignored.
+///
+/// @link https://goo.gl/54htLV
+///
+/// @argument {color (hex)} $color-1
+///
+/// @argument {color (hex)} $color-2
+///
+/// @return {number (1-21)}
+///
+/// @example scss
+/// _contrast-ratio(black, white)
+///
+/// @require {function} _lightness
+///
+/// @access private
+
+@function _contrast-ratio($color-1, $color-2) {
+ $-local-lightness-1: _lightness($color-1) + 0.05;
+ $-local-lightness-2: _lightness($color-2) + 0.05;
+
+ @if $-local-lightness-1 > $-local-lightness-2 {
+ @return $-local-lightness-1 / $-local-lightness-2;
+ } @else {
+ @return $-local-lightness-2 / $-local-lightness-1;
+ }
+}
--- /dev/null
+@charset "UTF-8";
+
+// scss-lint:disable SpaceAroundOperator
+
+/// Builds directional properties by parsing CSS shorthand values. For example,
+/// a value of `10px null` will output top and bottom directional properties,
+/// but the `null` skips left and right from being output.
+///
+/// @argument {string} $property
+/// Base property.
+///
+/// @argument {string} $suffix
+/// Suffix to append. Use `null` to omit.
+///
+/// @argument {list} $values
+/// List of values to set for the property.
+///
+/// @example scss
+/// .element {
+/// @include _directional-property(border, width, null 5px);
+/// }
+///
+/// // CSS Output
+/// .element {
+/// border-right-width: 5px;
+/// border-left-width: 5px;
+/// }
+///
+/// @require {function} _compact-shorthand
+///
+/// @require {function} _contains-falsy
+///
+/// @access private
+
+@mixin _directional-property(
+ $property,
+ $suffix,
+ $values
+) {
+ $top: $property + "-top" + if($suffix, "-#{$suffix}", "");
+ $bottom: $property + "-bottom" + if($suffix, "-#{$suffix}", "");
+ $left: $property + "-left" + if($suffix, "-#{$suffix}", "");
+ $right: $property + "-right" + if($suffix, "-#{$suffix}", "");
+ $all: $property + if($suffix, "-#{$suffix}", "");
+
+ $values: _compact-shorthand($values);
+
+ @if _contains-falsy($values) {
+ @if nth($values, 1) { #{$top}: nth($values, 1); }
+
+ @if length($values) == 1 {
+ @if nth($values, 1) { #{$right}: nth($values, 1); }
+ } @else {
+ @if nth($values, 2) { #{$right}: nth($values, 2); }
+ }
+
+ @if length($values) == 2 {
+ @if nth($values, 1) { #{$bottom}: nth($values, 1); }
+ @if nth($values, 2) { #{$left}: nth($values, 2); }
+ } @else if length($values) == 3 {
+ @if nth($values, 3) { #{$bottom}: nth($values, 3); }
+ @if nth($values, 2) { #{$left}: nth($values, 2); }
+ } @else if length($values) == 4 {
+ @if nth($values, 3) { #{$bottom}: nth($values, 3); }
+ @if nth($values, 4) { #{$left}: nth($values, 4); }
+ }
+ } @else {
+ #{$all}: $values;
+ }
+}
--- /dev/null
+@charset "UTF-8";
+
+/// Return a Bourbon setting.
+///
+/// @argument {string} $setting
+///
+/// @return {boolean | color | list | number | string}
+///
+/// @example scss
+/// _fetch-bourbon-setting(rails-asset-pipeline)
+///
+/// @access private
+
+@function _fetch-bourbon-setting($setting) {
+ @return map-get(map-merge($_bourbon-defaults, $bourbon), $setting);
+}
--- /dev/null
+@charset "UTF-8";
+
+/// Builds the `src` list for an `@font-face` declaration.
+///
+/// @link https://goo.gl/Ru1bKP
+///
+/// @argument {string} $font-family
+///
+/// @argument {string} $file-path
+///
+/// @argument {boolean} $asset-pipeline
+///
+/// @argument {list} $file-formats
+///
+/// @return {list}
+///
+/// @require {function} _contains
+///
+/// @access private
+
+@function _font-source-declaration(
+ $font-family,
+ $file-path,
+ $asset-pipeline,
+ $file-formats
+) {
+ $src: ();
+
+ $formats-map: (
+ eot: "#{$file-path}.eot?#iefix" format("embedded-opentype"),
+ woff2: "#{$file-path}.woff2" format("woff2"),
+ woff: "#{$file-path}.woff" format("woff"),
+ ttf: "#{$file-path}.ttf" format("truetype"),
+ svg: "#{$file-path}.svg##{$font-family}" format("svg"),
+ );
+
+ @each $key, $values in $formats-map {
+ @if _contains($file-formats, $key) {
+ $file-path: nth($values, 1);
+ $font-format: nth($values, 2);
+
+ @if $asset-pipeline == true {
+ $src: append($src, font-url($file-path) $font-format, comma);
+ } @else {
+ $src: append($src, url($file-path) $font-format, comma);
+ }
+ }
+ }
+
+ @return $src;
+}
--- /dev/null
+@charset "UTF-8";
+
+/// Performs gamma correction on a single color channel.
+///
+/// Note that Sass does not have a `pow()` function, so the calculation
+/// is approximate.
+///
+/// @argument {number (0-1)} $channel
+///
+/// @return {number (0-1)}
+///
+/// @access private
+
+@function _gamma($channel) {
+ @if $channel < 0.03928 {
+ @return $channel / 12.92;
+ } @else {
+ $c: ($channel + 0.055) / 1.055;
+ @return (133 * $c * $c * $c + 155 * $c * $c) / 288;
+ }
+}
--- /dev/null
+@charset "UTF-8";
+
+/// Programatically determines the lightness of a color.
+///
+/// @argument {color (hex)} $hex-color
+///
+/// @return {number (0-1)}
+///
+/// @example scss
+/// _lightness($color)
+///
+/// @access private
+
+@function _lightness($hex-color) {
+ $-local-red-raw: red(rgba($hex-color, 1));
+ $-local-green-raw: green(rgba($hex-color, 1));
+ $-local-blue-raw: blue(rgba($hex-color, 1));
+
+ $-local-red: _gamma($-local-red-raw / 255);
+ $-local-green: _gamma($-local-green-raw / 255);
+ $-local-blue: _gamma($-local-blue-raw / 255);
+
+ @return $-local-red * 0.2126 + $-local-green * 0.7152 + $-local-blue * 0.0722;
+}
--- /dev/null
+@charset "UTF-8";
+
+/// Transforms shorthand that can range from 1-to-4 values to be 4 values.
+///
+/// @argument {list} $shorthand
+///
+/// @example scss
+/// .element {
+/// margin: _unpack-shorthand(1em 2em);
+/// }
+///
+/// // CSS Output
+/// .element {
+/// margin: 1em 2em 1em 2em;
+/// }
+///
+/// @access private
+
+@function _unpack-shorthand($shorthand) {
+ @if length($shorthand) == 1 {
+ @return nth($shorthand, 1) nth($shorthand, 1) nth($shorthand, 1) nth($shorthand, 1);
+ } @else if length($shorthand) == 2 {
+ @return nth($shorthand, 1) nth($shorthand, 2) nth($shorthand, 1) nth($shorthand, 2);
+ } @else if length($shorthand) == 3 {
+ @return nth($shorthand, 1) nth($shorthand, 2) nth($shorthand, 3) nth($shorthand, 2);
+ } @else {
+ @return $shorthand;
+ }
+}
--- /dev/null
+@charset "UTF-8";
+
+/// Checks if a list does not contain any values.
+///
+/// @argument {list} $list
+/// The list to check against.
+///
+/// @return {boolean}
+///
+/// @access private
+
+@function _contains-falsy($list) {
+ @each $item in $list {
+ @if not $item {
+ @return true;
+ }
+ }
+
+ @return false;
+}
--- /dev/null
+@charset "UTF-8";
+
+/// Checks if a list contains a value(s).
+///
+/// @argument {list} $list
+/// The list to check against.
+///
+/// @argument {list} $values
+/// A single value or list of values to check for.
+///
+/// @return {boolean}
+///
+/// @access private
+
+@function _contains(
+ $list,
+ $values...
+) {
+ @each $value in $values {
+ @if type-of(index($list, $value)) != "number" {
+ @return false;
+ }
+ }
+
+ @return true;
+}
--- /dev/null
+@charset "UTF-8";
+
+/// Checks for a valid CSS color.
+///
+/// @argument {string} $color
+///
+/// @return {boolean}
+///
+/// @access private
+
+@function _is-color($color) {
+ @return (type-of($color) == color) or ($color == "currentColor");
+}
--- /dev/null
+@charset "UTF-8";
+
+/// Checks for a valid CSS length.
+///
+/// @argument {string} $value
+///
+/// @return {boolean}
+///
+/// @access private
+
+@function _is-length($value) {
+ @return type-of($value) != "null" and (str-slice($value + "", 1, 4) == "calc"
+ or index(auto inherit initial 0, $value)
+ or (type-of($value) == "number" and not(unitless($value))));
+}
--- /dev/null
+@charset "UTF-8";
+
+/// Checks for a valid number.
+///
+/// @argument {number} $value
+///
+/// @require {function} _contains
+///
+/// @return {boolean}
+///
+/// @access private
+
+@function _is-number($value) {
+ @return _contains("0" "1" "2" "3" "4" "5" "6" "7" "8" "9" 0 1 2 3 4 5 6 7 8 9, $value);
+}
--- /dev/null
+@charset "UTF-8";
+
+/// Checks for a valid CSS size.
+///
+/// @argument {string} $value
+///
+/// @return {boolean}
+///
+/// @require {function} _contains
+///
+/// @require {function} _is-length
+///
+/// @access private
+
+@function _is-size($value) {
+ @return _is-length($value)
+ or _contains("fill" "fit-content" "min-content" "max-content", $value);
+}
--- /dev/null
+/*! ------------------------------
+ Vendors Module
+------------------------------ */
+
+/*!*/
+
+@import "normalize";
+@import "typebase";
--- /dev/null
+/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */
+
+/* Document
+ ========================================================================== */
+
+/**
+ * 1. Correct the line height in all browsers.
+ * 2. Prevent adjustments of font size after orientation changes in
+ * IE on Windows Phone and in iOS.
+ */
+
+html {
+ line-height: 1.15; /* 1 */
+ -ms-text-size-adjust: 100%; /* 2 */
+ -webkit-text-size-adjust: 100%; /* 2 */
+}
+
+/* Sections
+ ========================================================================== */
+
+/**
+ * Remove the margin in all browsers (opinionated).
+ */
+
+body {
+ margin: 0;
+}
+
+/**
+ * Add the correct display in IE 9-.
+ */
+
+article,
+aside,
+footer,
+header,
+nav,
+section {
+ display: block;
+}
+
+/**
+ * Correct the font size and margin on `h1` elements within `section` and
+ * `article` contexts in Chrome, Firefox, and Safari.
+ */
+
+h1 {
+ font-size: 2em;
+ margin: 0.67em 0;
+}
+
+/* Grouping content
+ ========================================================================== */
+
+/**
+ * Add the correct display in IE 9-.
+ * 1. Add the correct display in IE.
+ */
+
+figcaption,
+figure,
+main { /* 1 */
+ display: block;
+}
+
+/**
+ * Add the correct margin in IE 8.
+ */
+
+figure {
+ margin: 1em 40px;
+}
+
+/**
+ * 1. Add the correct box sizing in Firefox.
+ * 2. Show the overflow in Edge and IE.
+ */
+
+hr {
+ box-sizing: content-box; /* 1 */
+ height: 0; /* 1 */
+ overflow: visible; /* 2 */
+}
+
+/**
+ * 1. Correct the inheritance and scaling of font size in all browsers.
+ * 2. Correct the odd `em` font sizing in all browsers.
+ */
+
+pre {
+ font-family: monospace, monospace; /* 1 */
+ font-size: 1em; /* 2 */
+}
+
+/* Text-level semantics
+ ========================================================================== */
+
+/**
+ * 1. Remove the gray background on active links in IE 10.
+ * 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
+ */
+
+a {
+ color: currentColor;
+ text-decoration: none;
+ background-color: transparent; /* 1 */
+ -webkit-text-decoration-skip: objects; /* 2 */
+ transition: color $ease-out 350ms, border-bottom-color $ease-out 350ms;
+ &:hover {
+ border-bottom-color: transparent;
+ color: $color-primary;
+ }
+}
+
+/**
+ * 1. Remove the bottom border in Chrome 57- and Firefox 39-.
+ * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
+ */
+
+abbr[title] {
+ border-bottom: none; /* 1 */
+ text-decoration: underline; /* 2 */
+ text-decoration: underline dotted; /* 2 */
+}
+
+/**
+ * Prevent the duplicate application of `bolder` by the next rule in Safari 6.
+ */
+
+b,
+strong {
+ font-weight: inherit;
+}
+
+/**
+ * Add the correct font weight in Chrome, Edge, and Safari.
+ */
+
+b,
+strong {
+ font-weight: bolder;
+}
+
+/**
+ * 1. Correct the inheritance and scaling of font size in all browsers.
+ * 2. Correct the odd `em` font sizing in all browsers.
+ */
+
+code,
+kbd,
+samp {
+ font-family: monospace, monospace; /* 1 */
+ font-size: 1em; /* 2 */
+}
+
+/**
+ * Add the correct font style in Android 4.3-.
+ */
+
+dfn {
+ font-style: italic;
+}
+
+/**
+ * Add the correct background and color in IE 9-.
+ */
+
+mark {
+ background-color: #ff0;
+ color: #000;
+}
+
+/**
+ * Add the correct font size in all browsers.
+ */
+
+small {
+ font-size: 80%;
+}
+
+/**
+ * Prevent `sub` and `sup` elements from affecting the line height in
+ * all browsers.
+ */
+
+sub,
+sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline;
+}
+
+sub {
+ bottom: -0.25em;
+}
+
+sup {
+ top: -0.5em;
+}
+
+/* Embedded content
+ ========================================================================== */
+
+/**
+ * Add the correct display in IE 9-.
+ */
+
+audio,
+video {
+ display: inline-block;
+}
+
+/**
+ * Add the correct display in iOS 4-7.
+ */
+
+audio:not([controls]) {
+ display: none;
+ height: 0;
+}
+
+/**
+ * Remove the border on images inside links in IE 10-.
+ */
+
+img {
+ border-style: none;
+}
+
+/**
+ * Hide the overflow in IE.
+ */
+
+svg:not(:root) {
+ overflow: hidden;
+}
+
+/* Forms
+ ========================================================================== */
+
+/**
+ * 1. Change the font styles in all browsers (opinionated).
+ * 2. Remove the margin in Firefox and Safari.
+ */
+
+button,
+input,
+optgroup,
+select,
+textarea {
+ font-family: sans-serif; /* 1 */
+ font-size: 100%; /* 1 */
+ line-height: 1.15; /* 1 */
+ margin: 0; /* 2 */
+}
+
+/**
+ * Show the overflow in IE.
+ * 1. Show the overflow in Edge.
+ */
+
+button,
+input { /* 1 */
+ overflow: visible;
+}
+
+/**
+ * Remove the inheritance of text transform in Edge, Firefox, and IE.
+ * 1. Remove the inheritance of text transform in Firefox.
+ */
+
+button,
+select { /* 1 */
+ text-transform: none;
+}
+
+/**
+ * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
+ * controls in Android 4.
+ * 2. Correct the inability to style clickable types in iOS and Safari.
+ */
+
+button,
+html [type="button"], /* 1 */
+[type="reset"],
+[type="submit"] {
+ -webkit-appearance: button; /* 2 */
+}
+
+/**
+ * Remove the inner border and padding in Firefox.
+ */
+
+button::-moz-focus-inner,
+[type="button"]::-moz-focus-inner,
+[type="reset"]::-moz-focus-inner,
+[type="submit"]::-moz-focus-inner {
+ border-style: none;
+ padding: 0;
+}
+
+/**
+ * Restore the focus styles unset by the previous rule.
+ */
+
+button:-moz-focusring,
+[type="button"]:-moz-focusring,
+[type="reset"]:-moz-focusring,
+[type="submit"]:-moz-focusring {
+ outline: 1px dotted ButtonText;
+}
+
+/**
+ * Correct the padding in Firefox.
+ */
+
+fieldset {
+ padding: 0.35em 0.75em 0.625em;
+}
+
+/**
+ * 1. Correct the text wrapping in Edge and IE.
+ * 2. Correct the color inheritance from `fieldset` elements in IE.
+ * 3. Remove the padding so developers are not caught out when they zero out
+ * `fieldset` elements in all browsers.
+ */
+
+legend {
+ box-sizing: border-box; /* 1 */
+ color: inherit; /* 2 */
+ display: table; /* 1 */
+ max-width: 100%; /* 1 */
+ padding: 0; /* 3 */
+ white-space: normal; /* 1 */
+}
+
+/**
+ * 1. Add the correct display in IE 9-.
+ * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera.
+ */
+
+progress {
+ display: inline-block; /* 1 */
+ vertical-align: baseline; /* 2 */
+}
+
+/**
+ * Remove the default vertical scrollbar in IE.
+ */
+
+textarea {
+ overflow: auto;
+}
+
+/**
+ * 1. Add the correct box sizing in IE 10-.
+ * 2. Remove the padding in IE 10-.
+ */
+
+[type="checkbox"],
+[type="radio"] {
+ box-sizing: border-box; /* 1 */
+ padding: 0; /* 2 */
+}
+
+/**
+ * Correct the cursor style of increment and decrement buttons in Chrome.
+ */
+
+[type="number"]::-webkit-inner-spin-button,
+[type="number"]::-webkit-outer-spin-button {
+ height: auto;
+}
+
+/**
+ * 1. Correct the odd appearance in Chrome and Safari.
+ * 2. Correct the outline style in Safari.
+ */
+
+[type="search"] {
+ -webkit-appearance: textfield; /* 1 */
+ outline-offset: -2px; /* 2 */
+}
+
+/**
+ * Remove the inner padding and cancel buttons in Chrome and Safari on macOS.
+ */
+
+[type="search"]::-webkit-search-cancel-button,
+[type="search"]::-webkit-search-decoration {
+ -webkit-appearance: none;
+}
+
+/**
+ * 1. Correct the inability to style clickable types in iOS and Safari.
+ * 2. Change font properties to `inherit` in Safari.
+ */
+
+::-webkit-file-upload-button {
+ -webkit-appearance: button; /* 1 */
+ font: inherit; /* 2 */
+}
+
+/* Interactive
+ ========================================================================== */
+
+/*
+ * Add the correct display in IE 9-.
+ * 1. Add the correct display in Edge, IE, and Firefox.
+ */
+
+details, /* 1 */
+menu {
+ display: block;
+}
+
+/*
+ * Add the correct display in all browsers.
+ */
+
+summary {
+ display: list-item;
+}
+
+/* Scripting
+ ========================================================================== */
+
+/**
+ * Add the correct display in IE 9-.
+ */
+
+canvas {
+ display: inline-block;
+}
+
+/**
+ * Add the correct display in IE.
+ */
+
+template {
+ display: none;
+}
+
+/* Hidden
+ ========================================================================== */
+
+/**
+ * Add the correct display in IE 10-.
+ */
+
+[hidden] {
+ display: none;
+}
--- /dev/null
+/* ------------------------------
+ Typebase
+------------------------------ */
+
+/* Setup */
+html {
+ font-weight: $regular;
+ font-family: $base-font;
+ font-size: $base-font-size;
+ -webkit-font-smoothing: antialiased;
+}
+/* Copy & Lists */
+p {
+ line-height: 1.35;
+ margin-top: 1.5rem;
+ font-size: 1.125rem;
+ margin-bottom: 0;
+}
+ul,
+ol {
+ margin-top: 1.5rem;
+ margin-bottom: 1.5rem;
+}
+ul li,
+ol li {
+ line-height: 30px;
+}
+ul ul,
+ol ul,
+ul ol,
+ol ol {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+blockquote {
+ line-height: 1.35;
+ margin-top: 1.5rem;
+ margin-bottom: 1.5rem;
+}
+/* Headings */
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ font-family: $base-font;
+ font-weight: $regular;
+ margin-top: 1.5rem;
+ margin-bottom: 0;
+ line-height: 1.35;
+}
+h1, .h1 {
+ @include font-size(72px);
+ margin-top: 3rem;
+}
+h2, .h2 {
+ @include font-size(52px);
+ font-size: 2.625rem;
+ margin-top: 3rem;
+}
+h3, .h3 {
+
+ @include font-size(38px);
+ font-size: 2.000rem;
+}
+h4, .h4 {
+ font-size: 1.500rem;
+}
+h5 {
+ font-size: 0.4713333333333333rem;
+}
+h6 {
+ font-size: 0.3535rem;
+}
+/* Tables */
+table {
+ margin-top: 1.5rem;
+ border-spacing: 0;
+ border-collapse: collapse;
+}
+table td,
+table th {
+ padding: 0;
+ line-height: 1.35;
+}
+/* Code blocks */
+code {
+ vertical-align: bottom;
+}
+/* Leading paragraph text */
+.lead {
+ font-size: 1.414rem;
+}
+/* Hug the block above you */
+.hug {
+ margin-top: 0;
+}
+a {
+ -webkit-tap-highlight-color: rgba(0,0,0,0);
+ -webkit-tap-highlight-color: transparent;
+}
--- /dev/null
+<svg width="44" height="44" viewBox="0 0 44 44" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M12.8333 5.5C7.77146 5.5 3.66663 9.56267 3.66663 14.575C3.66663 18.6212 5.27079 28.2242 21.0613 37.9317C21.3441 38.1038 21.6689 38.1948 22 38.1948C22.3311 38.1948 22.6558 38.1038 22.9386 37.9317C38.7291 28.2242 40.3333 18.6212 40.3333 14.575C40.3333 9.56267 36.2285 5.5 31.1666 5.5C26.1048 5.5 22 11 22 11C22 11 17.8951 5.5 12.8333 5.5Z" stroke="#666666" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
+</svg>
--- /dev/null
+<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M19.9946 36.6667C29.1971 36.6667 36.6572 29.2048 36.6572 20C36.6572 10.7953 29.1971 3.33337 19.9946 3.33337C10.7921 3.33337 3.33203 10.7953 3.33203 20C3.33203 29.2048 10.7921 36.6667 19.9946 36.6667Z" stroke="white" stroke-width="4"/>
+<path d="M26.6597 20L16.6621 13.3334V26.6667L26.6597 20Z" stroke="white" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
+</svg>
--- /dev/null
+// JS Menu
+(function () {
+ let button = $('.js-menu');
+ let menu = $('.l-navigation__menu');
+ let menuLinks = menu.find('a');
+
+ button.on('click', function() {
+ if(!$(this).hasClass('is-active')) {
+ $(this).addClass('is-active');
+ menu.addClass('is-open');
+ button.find('.bar').addClass('animate');
+ menuLinks.attr('tabindex', 0);
+ } else {
+ $(this).removeClass('is-active');
+ menu.removeClass('is-open');
+ button.find('.bar').removeClass('animate');
+ menuLinks.attr('tabindex', -1);
+ }
+ });
+
+ $(document).keyup(function(e) {
+ if (e.keyCode === 27) {
+ button.removeClass('is-active');
+ menu.removeClass('is-open');
+ button.find('.bar').removeClass('animate');
+ menuLinks.attr('tabindex', -1);
+ }
+ });
+})();
--- /dev/null
+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(T,e){"use strict";function g(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item}function y(e){return null!=e&&e===e.window}var t=[],n=Object.getPrototypeOf,s=t.slice,m=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,r={},o=r.toString,v=r.hasOwnProperty,a=v.toString,l=a.call(Object),x={},C=T.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||C).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function h(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?r[o.call(e)]||"object":typeof e}var f="3.6.0",E=function(e,t){return new E.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=h(e);return!g(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}E.fn=E.prototype={jquery:f,constructor:E,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){e=E.merge(this.constructor(),e);return e.prevObject=this,e},each:function(e){return E.each(this,e)},map:function(n){return this.pushStack(E.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(E.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(E.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,e=+e+(e<0?t:0);return this.pushStack(0<=e&&e<t?[this[e]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},E.extend=E.fn.extend=function(){var e,t,n,r,i,o=arguments[0]||{},a=1,s=arguments.length,u=!1;for("boolean"==typeof o&&(u=o,o=arguments[a]||{},a++),"object"==typeof o||g(o)||(o={}),a===s&&(o=this,a--);a<s;a++)if(null!=(e=arguments[a]))for(t in e)n=e[t],"__proto__"!==t&&o!==n&&(u&&n&&(E.isPlainObject(n)||(r=Array.isArray(n)))?(i=o[t],i=r&&!Array.isArray(i)?[]:r||E.isPlainObject(i)?i:{},r=!1,o[t]=E.extend(u,i,n)):void 0!==n&&(o[t]=n));return o},E.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){return!(!e||"[object Object]"!==o.call(e)||(e=n(e))&&("function"!=typeof(e=v.call(e,"constructor")&&e.constructor)||a.call(e)!==l))},isEmptyObject:function(e){for(var t in e)return!1;return!0},globalEval:function(e,t,n){b(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(p(e))for(n=e.length;r<n&&!1!==t.call(e[r],r,e[r]);r++);else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},makeArray:function(e,t){t=t||[];return null!=e&&(p(Object(e))?E.merge(t,"string"==typeof e?[e]:e):u.call(t,e)),t},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!=a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(p(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return m(a)},guid:1,support:x}),"function"==typeof Symbol&&(E.fn[Symbol.iterator]=t[Symbol.iterator]),E.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){r["[object "+t+"]"]=t.toLowerCase()});var d=function(n){function f(e,t){return e="0x"+e.slice(1)-65536,t||(e<0?String.fromCharCode(65536+e):String.fromCharCode(e>>10|55296,1023&e|56320))}function p(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e}function r(){T()}var e,d,b,o,i,h,g,y,w,u,l,T,C,a,E,m,s,c,v,S="sizzle"+ +new Date,x=n.document,k=0,A=0,N=ue(),j=ue(),D=ue(),q=ue(),L=function(e,t){return e===t&&(l=!0),0},H={}.hasOwnProperty,t=[],O=t.pop,P=t.push,R=t.push,M=t.slice,I=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},W="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",F="[\\x20\\t\\r\\n\\f]",B="(?:\\\\[\\da-fA-F]{1,6}"+F+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",$="\\["+F+"*("+B+")(?:"+F+"*([*^$|!~]?=)"+F+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+B+"))|)"+F+"*\\]",_=":("+B+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+$+")*)|.*)\\)|)",z=new RegExp(F+"+","g"),U=new RegExp("^"+F+"+|((?:^|[^\\\\])(?:\\\\.)*)"+F+"+$","g"),X=new RegExp("^"+F+"*,"+F+"*"),V=new RegExp("^"+F+"*([>+~]|"+F+")"+F+"*"),G=new RegExp(F+"|>"),Y=new RegExp(_),Q=new RegExp("^"+B+"$"),J={ID:new RegExp("^#("+B+")"),CLASS:new RegExp("^\\.("+B+")"),TAG:new RegExp("^("+B+"|[*])"),ATTR:new RegExp("^"+$),PSEUDO:new RegExp("^"+_),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+F+"*(even|odd|(([+-]|)(\\d*)n|)"+F+"*(?:([+-]|)"+F+"*(\\d+)|))"+F+"*\\)|)","i"),bool:new RegExp("^(?:"+W+")$","i"),needsContext:new RegExp("^"+F+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+F+"*((?:-\\d)?\\d*)"+F+"*\\)|)(?=[^-]|$)","i")},K=/HTML$/i,Z=/^(?:input|select|textarea|button)$/i,ee=/^h\d$/i,te=/^[^{]+\{\s*\[native \w/,ne=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,re=/[+~]/,ie=new RegExp("\\\\[\\da-fA-F]{1,6}"+F+"?|\\\\([^\\r\\n\\f])","g"),oe=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ae=ve(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{R.apply(t=M.call(x.childNodes),x.childNodes),t[x.childNodes.length].nodeType}catch(e){R={apply:t.length?function(e,t){P.apply(e,M.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}function se(e,t,n,r){var i,o,a,s,u,l,c=t&&t.ownerDocument,f=t?t.nodeType:9;if(n=n||[],"string"!=typeof e||!e||1!==f&&9!==f&&11!==f)return n;if(!r&&(T(t),t=t||C,E)){if(11!==f&&(s=ne.exec(e)))if(l=s[1]){if(9===f){if(!(o=t.getElementById(l)))return n;if(o.id===l)return n.push(o),n}else if(c&&(o=c.getElementById(l))&&v(t,o)&&o.id===l)return n.push(o),n}else{if(s[2])return R.apply(n,t.getElementsByTagName(e)),n;if((l=s[3])&&d.getElementsByClassName&&t.getElementsByClassName)return R.apply(n,t.getElementsByClassName(l)),n}if(d.qsa&&!q[e+" "]&&(!m||!m.test(e))&&(1!==f||"object"!==t.nodeName.toLowerCase())){if(l=e,c=t,1===f&&(G.test(e)||V.test(e))){for((c=re.test(e)&&ge(t.parentNode)||t)===t&&d.scope||((a=t.getAttribute("id"))?a=a.replace(oe,p):t.setAttribute("id",a=S)),i=(u=h(e)).length;i--;)u[i]=(a?"#"+a:":scope")+" "+me(u[i]);l=u.join(",")}try{return R.apply(n,c.querySelectorAll(l)),n}catch(t){q(e,!0)}finally{a===S&&t.removeAttribute("id")}}}return y(e.replace(U,"$1"),t,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t)}}function fe(e,t){for(var n=e.split("|"),r=n.length;r--;)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function he(a){return le(function(o){return o=+o,le(function(e,t){for(var n,r=a([],e.length,o),i=r.length;i--;)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ge(e){return e&&void 0!==e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,e=e&&(e.ownerDocument||e).documentElement;return!K.test(t||e&&e.nodeName||"HTML")},T=se.setDocument=function(e){var t,e=e?e.ownerDocument||e:x;return e!=C&&9===e.nodeType&&e.documentElement&&(a=(C=e).documentElement,E=!i(C),x!=C&&(t=C.defaultView)&&t.top!==t&&(t.addEventListener?t.addEventListener("unload",r,!1):t.attachEvent&&t.attachEvent("onunload",r)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),void 0!==e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=te.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(ie,f);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if(void 0!==t.getElementById&&E){e=t.getElementById(e);return e?[e]:[]}}):(b.filter.ID=function(e){var t=e.replace(ie,f);return function(e){e=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return e&&e.value===t}},b.find.ID=function(e,t){if(void 0!==t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];for(i=t.getElementsByName(e),r=0;o=i[r++];)if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"!==e)return o;for(;n=o[i++];)1===n.nodeType&&r.push(n);return r},b.find.CLASS=d.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],m=[],(d.qsa=te.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="<a id='"+S+"'></a><select id='"+S+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&m.push("[*^$]="+F+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||m.push("\\["+F+"*(?:value|"+W+")"),e.querySelectorAll("[id~="+S+"-]").length||m.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||m.push("\\["+F+"*name"+F+"*="+F+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||m.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||m.push(".#.+[+~]"),e.querySelectorAll("\\\f"),m.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&m.push("name"+F+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&m.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&m.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),m.push(",.*:")})),(d.matchesSelector=te.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",_)}),m=m.length&&new RegExp(m.join("|")),s=s.length&&new RegExp(s.join("|")),t=te.test(a.compareDocumentPosition),v=t||te.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,t=t&&t.parentNode;return e===t||!(!t||1!==t.nodeType||!(n.contains?n.contains(t):e.compareDocumentPosition&&16&e.compareDocumentPosition(t)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},L=t?function(e,t){return e===t?(l=!0,0):(n=!e.compareDocumentPosition-!t.compareDocumentPosition)||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==x&&v(x,e)?-1:t==C||t.ownerDocument==x&&v(x,t)?1:u?I(u,e)-I(u,t):0:4&n?-1:1);var n}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?I(u,e)-I(u,t):0;if(i===o)return pe(e,t);for(n=e;n=n.parentNode;)a.unshift(n);for(n=t;n=n.parentNode;)s.unshift(n);for(;a[r]===s[r];)r++;return r?pe(a[r],s[r]):a[r]==x?-1:s[r]==x?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!q[t+" "]&&(!s||!s.test(t))&&(!m||!m.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){q(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!=C&&T(e),v(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!=C&&T(e);var n=b.attrHandle[t.toLowerCase()],n=n&&H.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==n?n:d.attributes||!E?e.getAttribute(t):(n=e.getAttributeNode(t))&&n.specified?n.value:null},se.escape=function(e){return(e+"").replace(oe,p)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(L),l){for(;t=e[i++];)t===e[i]&&(r=n.push(i));for(;r--;)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r++];)n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:J,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(ie,f),e[3]=(e[3]||e[4]||e[5]||"").replace(ie,f),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return J.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&Y.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(ie,f).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=N[e+" "];return t||(t=new RegExp("(^|"+F+")"+e+"("+F+"|$)"))&&N(e,function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(t,n,r){return function(e){e=se.attr(e,t);return null==e?"!="===n:!n||(e+="","="===n?e===r:"!="===n?e!==r:"^="===n?r&&0===e.indexOf(r):"*="===n?r&&-1<e.indexOf(r):"$="===n?r&&e.slice(-r.length)===r:"~="===n?-1<(" "+e.replace(z," ")+" ").indexOf(r):"|="===n&&(e===r||e.slice(0,r.length+1)===r+"-"))}},CHILD:function(h,e,t,g,y){var m="nth"!==h.slice(0,3),v="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===y?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=m!=v?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(m){for(;l;){for(a=e;a=a[l];)if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[v?c.firstChild:c.lastChild],v&&p){for(d=(s=(r=(i=(o=(a=c)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1])&&r[2],a=s&&c.childNodes[s];a=++s&&a&&a[l]||(d=s=0)||u.pop();)if(1===a.nodeType&&++d&&a===e){i[h]=[k,s,d];break}}else if(!1===(d=p?s=(r=(i=(o=(a=e)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1]:d))for(;(a=++s&&a&&a[l]||(d=s=0)||u.pop())&&((x?a.nodeName.toLowerCase()!==f:1!==a.nodeType)||!++d||(p&&((i=(o=a[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[k,d]),a!==e)););return(d-=y)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[S]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){for(var n,r=a(e,o),i=r.length;i--;)e[n=I(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=g(e.replace(U,"$1"));return s[S]?le(function(e,t,n,r){for(var i,o=s(e,null,r,[]),a=e.length;a--;)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(ie,f),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return Q.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(ie,f).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:de(!1),disabled:de(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return ee.test(e.nodeName)},input:function(e){return Z.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(e=e.getAttribute("type"))||"text"===e.toLowerCase())},first:he(function(){return[0]}),last:he(function(e,t){return[t-1]}),eq:he(function(e,t,n){return[n<0?n+t:n]}),even:he(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:he(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:he(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:he(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=function(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=function(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}(e);function ye(){}function me(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function ve(a,e,t){var s=e.dir,u=e.next,l=u||s,c=t&&"parentNode"===l,f=A++;return e.first?function(e,t,n){for(;e=e[s];)if(1===e.nodeType||c)return a(e,t,n);return!1}:function(e,t,n){var r,i,o=[k,f];if(n){for(;e=e[s];)if((1===e.nodeType||c)&&a(e,t,n))return!0}else for(;e=e[s];)if(1===e.nodeType||c)if(r=(i=e[S]||(e[S]={}))[e.uniqueID]||(i[e.uniqueID]={}),u&&u===e.nodeName.toLowerCase())e=e[s]||e;else{if((i=r[l])&&i[0]===k&&i[1]===f)return o[2]=i[2];if((r[l]=o)[2]=a(e,t,n))return!0}return!1}}function xe(i){return 1<i.length?function(e,t,n){for(var r=i.length;r--;)if(!i[r](e,t,n))return!1;return!0}:i[0]}function be(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function we(e){for(var r,t,n,i=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=ve(function(e){return e===r},a,!0),l=ve(function(e){return-1<I(r,e)},a,!0),c=[function(e,t,n){n=!o&&(n||t!==w)||((r=t).nodeType?u:l)(e,t,n);return r=null,n}];s<i;s++)if(t=b.relative[e[s].type])c=[ve(xe(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[S]){for(n=++s;n<i&&!b.relative[e[n].type];n++);return function e(d,h,g,y,m,t){return y&&!y[S]&&(y=e(y)),m&&!m[S]&&(m=e(m,t)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:be(c,s,d,n,r),p=g?m||(e?d:l||y)?[]:t:f;if(g&&g(f,p,n,r),y)for(i=be(p,u),y(i,[],n,r),o=i.length;o--;)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a));if(e){if(m||d){if(m){for(i=[],o=p.length;o--;)(a=p[o])&&i.push(f[o]=a);m(null,p=[],i,r)}for(o=p.length;o--;)(a=p[o])&&-1<(i=m?I(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=be(p===t?p.splice(l,p.length):p),m?m(null,t,p,r):R.apply(t,p)})}(1<s&&xe(c),1<s&&me(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(U,"$1"),t,s<n&&we(e.slice(s,n)),n<i&&we(e=e.slice(n)),n<i&&me(e))}c.push(t)}return xe(c)}return ye.prototype=b.filters=b.pseudos,b.setFilters=new ye,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=j[e+" "];if(l)return t?0:l.slice(0);for(a=e,s=[],u=b.preFilter;a;){for(o in n&&!(r=X.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=V.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(U," ")}),a=a.slice(n.length)),b.filter)!(r=J[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):j(e,s).slice(0)},g=se.compile=function(e,t){var n,y,m,v,x,r,i=[],o=[],a=D[e+" "];if(!a){for(n=(t=t||h(e)).length;n--;)((a=we(t[n]))[S]?i:o).push(a);(a=D(e,(v=0<(m=i).length,x=0<(y=o).length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=k+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t==C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){for(a=0,t||o.ownerDocument==C||(T(o),n=!E);s=y[a++];)if(s(o,t||C,n)){r.push(o);break}i&&(k=h)}v&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,v&&l!==u){for(a=0;s=m[a++];)s(c,f,t,n);if(e){if(0<u)for(;l--;)c[l]||f[l]||(f[l]=O.call(r));f=be(f)}R.apply(r,f),i&&!e&&0<f.length&&1<u+m.length&&se.uniqueSort(r)}return i&&(k=h,w=p),c},v?le(r):r))).selector=e}return a},y=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(ie,f),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}for(i=J.needsContext.test(e)?0:o.length;i--&&(a=o[i],!b.relative[s=a.type]);)if((u=b.find[s])&&(r=u(a.matches[0].replace(ie,f),re.test(o[0].type)&&ge(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&me(o)))return R.apply(n,r),n;break}}return(l||g(e,c))(r,t,!E,n,!t||re.test(e)&&ge(t.parentNode)||t),n},d.sortStable=S.split("").sort(L).join("")===S,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(W,function(e,t,n){if(!n)return!0===e[t]?t.toLowerCase():(t=e.getAttributeNode(t))&&t.specified?t.value:null}),se}(T);E.find=d,E.expr=d.selectors,E.expr[":"]=E.expr.pseudos,E.uniqueSort=E.unique=d.uniqueSort,E.text=d.getText,E.isXMLDoc=d.isXML,E.contains=d.contains,E.escapeSelector=d.escape;function w(e,t,n){for(var r=[],i=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&E(e).is(n))break;r.push(e)}return r}function S(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}var k=E.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var N=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return g(n)?E.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?E.grep(e,function(e){return e===n!==r}):"string"!=typeof n?E.grep(e,function(e){return-1<i.call(n,e)!==r}):E.filter(n,e,r)}E.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?E.find.matchesSelector(r,e)?[r]:[]:E.find.matches(e,E.grep(t,function(e){return 1===e.nodeType}))},E.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(E(e).filter(function(){for(t=0;t<r;t++)if(E.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)E.find(e,i[t],n);return 1<r?E.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&k.test(e)?E(e):e||[],!1).length}});var D=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(E.fn.init=function(e,t,n){if(!e)return this;if(n=n||q,"string"!=typeof e)return e.nodeType?(this[0]=e,this.length=1,this):g(e)?void 0!==n.ready?n.ready(e):e(E):E.makeArray(e,this);if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:D.exec(e))||!r[1]&&t)return(!t||t.jquery?t||n:this.constructor(t)).find(e);if(r[1]){if(t=t instanceof E?t[0]:t,E.merge(this,E.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:C,!0)),N.test(r[1])&&E.isPlainObject(t))for(var r in t)g(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(e=C.getElementById(r[2]))&&(this[0]=e,this.length=1),this}).prototype=E.fn;var q=E(C),L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}E.fn.extend({has:function(e){var t=E(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(E.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&E(e);if(!k.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&E.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?E.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(E(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(E.uniqueSort(E.merge(this.get(),E(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),E.each({parent:function(e){e=e.parentNode;return e&&11!==e.nodeType?e:null},parents:function(e){return w(e,"parentNode")},parentsUntil:function(e,t,n){return w(e,"parentNode",n)},next:function(e){return O(e,"nextSibling")},prev:function(e){return O(e,"previousSibling")},nextAll:function(e){return w(e,"nextSibling")},prevAll:function(e){return w(e,"previousSibling")},nextUntil:function(e,t,n){return w(e,"nextSibling",n)},prevUntil:function(e,t,n){return w(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return null!=e.contentDocument&&n(e.contentDocument)?e.contentDocument:(A(e,"template")&&(e=e.content||e),E.merge([],e.childNodes))}},function(r,i){E.fn[r]=function(e,t){var n=E.map(this,i,e);return(t="Until"!==r.slice(-5)?e:t)&&"string"==typeof t&&(n=E.filter(t,n)),1<this.length&&(H[r]||E.uniqueSort(n),L.test(r)&&n.reverse()),this.pushStack(n)}});var P=/[^\x20\t\r\n\f]+/g;function R(e){return e}function M(e){throw e}function I(e,t,n,r){var i;try{e&&g(i=e.promise)?i.call(e).done(t).fail(n):e&&g(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}E.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},E.each(e.match(P)||[],function(e,t){n[t]=!0}),n):E.extend({},r);function i(){for(s=s||r.once,a=o=!0;l.length;c=-1)for(t=l.shift();++c<u.length;)!1===u[c].apply(t[0],t[1])&&r.stopOnFalse&&(c=u.length,t=!1);r.memory||(t=!1),o=!1,s&&(u=t?[]:"")}var o,t,a,s,u=[],l=[],c=-1,f={add:function(){return u&&(t&&!o&&(c=u.length-1,l.push(t)),function n(e){E.each(e,function(e,t){g(t)?r.unique&&f.has(t)||u.push(t):t&&t.length&&"string"!==h(t)&&n(t)})}(arguments),t&&!o&&i()),this},remove:function(){return E.each(arguments,function(e,t){for(var n;-1<(n=E.inArray(t,u,n));)u.splice(n,1),n<=c&&c--}),this},has:function(e){return e?-1<E.inArray(e,u):0<u.length},empty:function(){return u=u&&[],this},disable:function(){return s=l=[],u=t="",this},disabled:function(){return!u},lock:function(){return s=l=[],t||o||(u=t=""),this},locked:function(){return!!s},fireWith:function(e,t){return s||(t=[e,(t=t||[]).slice?t.slice():t],l.push(t),o||i()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!a}};return f},E.extend({Deferred:function(e){var o=[["notify","progress",E.Callbacks("memory"),E.Callbacks("memory"),2],["resolve","done",E.Callbacks("once memory"),E.Callbacks("once memory"),0,"resolved"],["reject","fail",E.Callbacks("once memory"),E.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},catch:function(e){return a.then(null,e)},pipe:function(){var i=arguments;return E.Deferred(function(r){E.each(o,function(e,t){var n=g(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&g(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){function e(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,g(t)?s?t.call(e,l(u,o,R,s),l(u,o,M,s)):(u++,t.call(e,l(u,o,R,s),l(u,o,M,s),l(u,o,R,o.notifyWith))):(a!==R&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}}var n=this,r=arguments,t=s?e:function(){try{e()}catch(e){E.Deferred.exceptionHook&&E.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==M&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(E.Deferred.getStackHook&&(t.stackTrace=E.Deferred.getStackHook()),T.setTimeout(t))}}return E.Deferred(function(e){o[0][3].add(l(0,e,g(r)?r:R,e.notifyWith)),o[1][3].add(l(0,e,g(t)?t:R)),o[2][3].add(l(0,e,g(n)?n:M))}).promise()},promise:function(e){return null!=e?E.extend(e,a):a}},s={};return E.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){function t(t){return function(e){i[t]=this,o[t]=1<arguments.length?s.call(arguments):e,--n||a.resolveWith(i,o)}}var n=arguments.length,r=n,i=Array(r),o=s.call(arguments),a=E.Deferred();if(n<=1&&(I(e,a.done(t(r)).resolve,a.reject,!n),"pending"===a.state()||g(o[r]&&o[r].then)))return a.then();for(;r--;)I(o[r],t(r),a.reject);return a.promise()}});var W=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;E.Deferred.exceptionHook=function(e,t){T.console&&T.console.warn&&e&&W.test(e.name)&&T.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},E.readyException=function(e){T.setTimeout(function(){throw e})};var F=E.Deferred();function B(){C.removeEventListener("DOMContentLoaded",B),T.removeEventListener("load",B),E.ready()}E.fn.ready=function(e){return F.then(e).catch(function(e){E.readyException(e)}),this},E.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--E.readyWait:E.isReady)||(E.isReady=!0)!==e&&0<--E.readyWait||F.resolveWith(C,[E])}}),E.ready.then=F.then,"complete"===C.readyState||"loading"!==C.readyState&&!C.documentElement.doScroll?T.setTimeout(E.ready):(C.addEventListener("DOMContentLoaded",B),T.addEventListener("load",B));function $(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===h(n))for(s in i=!0,n)$(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,g(r)||(a=!0),t=l?a?(t.call(e,r),null):(l=t,function(e,t,n){return l.call(E(e),n)}):t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o}var _=/^-ms-/,z=/-([a-z])/g;function U(e,t){return t.toUpperCase()}function X(e){return e.replace(_,"ms-").replace(z,U)}function V(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType}function G(){this.expando=E.expando+G.uid++}G.uid=1,G.prototype={cache:function(e){var t=e[this.expando];return t||(t={},V(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[X(t)]=n;else for(r in t)i[X(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][X(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(X):(t=X(t))in r?[t]:t.match(P)||[]).length;for(;n--;)delete r[t[n]]}void 0!==t&&!E.isEmptyObject(r)||(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){e=e[this.expando];return void 0!==e&&!E.isEmptyObject(e)}};var Y=new G,Q=new G,J=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,K=/[A-Z]/g;function Z(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(K,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:J.test(i)?JSON.parse(i):i)}catch(e){}Q.set(e,t,n)}else n=void 0;return n}E.extend({hasData:function(e){return Q.hasData(e)||Y.hasData(e)},data:function(e,t,n){return Q.access(e,t,n)},removeData:function(e,t){Q.remove(e,t)},_data:function(e,t,n){return Y.access(e,t,n)},_removeData:function(e,t){Y.remove(e,t)}}),E.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0!==n)return"object"==typeof n?this.each(function(){Q.set(this,n)}):$(this,function(e){var t;return o&&void 0===e?void 0!==(t=Q.get(o,n))||void 0!==(t=Z(o,n))?t:void 0:void this.each(function(){Q.set(this,n,e)})},null,e,1<arguments.length,null,!0);if(this.length&&(i=Q.get(o),1===o.nodeType&&!Y.get(o,"hasDataAttrs"))){for(t=a.length;t--;)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=X(r.slice(5)),Z(o,r,i[r]));Y.set(o,"hasDataAttrs",!0)}return i},removeData:function(e){return this.each(function(){Q.remove(this,e)})}}),E.extend({queue:function(e,t,n){var r;if(e)return r=Y.get(e,t=(t||"fx")+"queue"),n&&(!r||Array.isArray(n)?r=Y.access(e,t,E.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=E.queue(e,t),r=n.length,i=n.shift(),o=E._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){E.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Y.get(e,n)||Y.access(e,n,{empty:E.Callbacks("once memory").add(function(){Y.remove(e,[t+"queue",n])})})}}),E.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?E.queue(this[0],t):void 0===n?this:this.each(function(){var e=E.queue(this,t,n);E._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&E.dequeue(this,t)})},dequeue:function(e){return this.each(function(){E.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){function n(){--i||o.resolveWith(a,[a])}var r,i=1,o=E.Deferred(),a=this,s=this.length;for("string"!=typeof e&&(t=e,e=void 0),e=e||"fx";s--;)(r=Y.get(a[s],e+"queueHooks"))&&r.empty&&(i++,r.empty.add(n));return n(),o.promise(t)}});var ee=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,te=new RegExp("^(?:([+-])=|)("+ee+")([a-z%]*)$","i"),ne=["Top","Right","Bottom","Left"],re=C.documentElement,ie=function(e){return E.contains(e.ownerDocument,e)},oe={composed:!0};re.getRootNode&&(ie=function(e){return E.contains(e.ownerDocument,e)||e.getRootNode(oe)===e.ownerDocument});function ae(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&ie(e)&&"none"===E.css(e,"display")}function se(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return E.css(e,t,"")},u=s(),l=n&&n[3]||(E.cssNumber[t]?"":"px"),c=e.nodeType&&(E.cssNumber[t]||"px"!==l&&+u)&&te.exec(E.css(e,t));if(c&&c[3]!==l){for(l=l||c[3],c=+(u/=2)||1;a--;)E.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;E.style(e,t,(c*=2)+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ue={};function le(e,t){for(var n,r,i,o,a,s,u=[],l=0,c=e.length;l<c;l++)(r=e[l]).style&&(n=r.style.display,t?("none"===n&&(u[l]=Y.get(r,"display")||null,u[l]||(r.style.display="")),""===r.style.display&&ae(r)&&(u[l]=(s=o=i=void 0,o=r.ownerDocument,a=r.nodeName,(s=ue[a])||(i=o.body.appendChild(o.createElement(a)),s=E.css(i,"display"),i.parentNode.removeChild(i),ue[a]=s="none"===s?"block":s)))):"none"!==n&&(u[l]="none",Y.set(r,"display",n)));for(l=0;l<c;l++)null!=u[l]&&(e[l].style.display=u[l]);return e}E.fn.extend({show:function(){return le(this,!0)},hide:function(){return le(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?E(this).show():E(this).hide()})}});var ce=/^(?:checkbox|radio)$/i,fe=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,pe=/^$|^module$|\/(?:java|ecma)script/i,f=C.createDocumentFragment().appendChild(C.createElement("div"));(d=C.createElement("input")).setAttribute("type","radio"),d.setAttribute("checked","checked"),d.setAttribute("name","t"),f.appendChild(d),x.checkClone=f.cloneNode(!0).cloneNode(!0).lastChild.checked,f.innerHTML="<textarea>x</textarea>",x.noCloneChecked=!!f.cloneNode(!0).lastChild.defaultValue,f.innerHTML="<option></option>",x.option=!!f.lastChild;var de={thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function he(e,t){var n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[];return void 0===t||t&&A(e,t)?E.merge([e],n):n}function ge(e,t){for(var n=0,r=e.length;n<r;n++)Y.set(e[n],"globalEval",!t||Y.get(t[n],"globalEval"))}de.tbody=de.tfoot=de.colgroup=de.caption=de.thead,de.th=de.td,x.option||(de.optgroup=de.option=[1,"<select multiple='multiple'>","</select>"]);var ye=/<|&#?\w+;/;function me(e,t,n,r,i){for(var o,a,s,u,l,c=t.createDocumentFragment(),f=[],p=0,d=e.length;p<d;p++)if((o=e[p])||0===o)if("object"===h(o))E.merge(f,o.nodeType?[o]:o);else if(ye.test(o)){for(a=a||c.appendChild(t.createElement("div")),s=(fe.exec(o)||["",""])[1].toLowerCase(),s=de[s]||de._default,a.innerHTML=s[1]+E.htmlPrefilter(o)+s[2],l=s[0];l--;)a=a.lastChild;E.merge(f,a.childNodes),(a=c.firstChild).textContent=""}else f.push(t.createTextNode(o));for(c.textContent="",p=0;o=f[p++];)if(r&&-1<E.inArray(o,r))i&&i.push(o);else if(u=ie(o),a=he(c.appendChild(o),"script"),u&&ge(a),n)for(l=0;o=a[l++];)pe.test(o.type||"")&&n.push(o);return c}var ve=/^([^.]*)(?:\.(.+)|)/;function xe(){return!0}function be(){return!1}function we(e,t){return e===function(){try{return C.activeElement}catch(e){}}()==("focus"===t)}function Te(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Te(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=be;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return E().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=E.guid++)),e.each(function(){E.event.add(this,t,i,r,n)})}function Ce(e,i,o){o?(Y.set(e,i,!1),E.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Y.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(E.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Y.set(this,i,r),t=o(this,i),this[i](),r!==(n=Y.get(this,i))||t?Y.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n&&n.value}else r.length&&(Y.set(this,i,{value:E.event.trigger(E.extend(r[0],E.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Y.get(e,i)&&E.event.add(e,i,xe)}E.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h=Y.get(t);if(V(t))for(n.handler&&(n=(o=n).handler,i=o.selector),i&&E.find.matchesSelector(re,i),n.guid||(n.guid=E.guid++),(s=h.events)||(s=h.events=Object.create(null)),(a=h.handle)||(a=h.handle=function(e){return void 0!==E&&E.event.triggered!==e.type?E.event.dispatch.apply(t,arguments):void 0}),u=(e=(e||"").match(P)||[""]).length;u--;)f=d=(l=ve.exec(e[u])||[])[1],p=(l[2]||"").split(".").sort(),f&&(c=E.event.special[f]||{},f=(i?c.delegateType:c.bindType)||f,c=E.event.special[f]||{},l=E.extend({type:f,origType:d,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&E.expr.match.needsContext.test(i),namespace:p.join(".")},o),(d=s[f])||((d=s[f]=[]).delegateCount=0,c.setup&&!1!==c.setup.call(t,r,p,a)||t.addEventListener&&t.addEventListener(f,a)),c.add&&(c.add.call(t,l),l.handler.guid||(l.handler.guid=n.guid)),i?d.splice(d.delegateCount++,0,l):d.push(l),E.event.global[f]=!0)},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=Y.hasData(e)&&Y.get(e);if(y&&(u=y.events)){for(l=(t=(t||"").match(P)||[""]).length;l--;)if(d=g=(s=ve.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){for(f=E.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;o--;)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,y.handle)||E.removeEvent(e,d,y.handle),delete u[d])}else for(d in u)E.event.remove(e,d+t[l],n,r,!0);E.isEmptyObject(u)&&Y.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a=new Array(arguments.length),s=E.event.fix(e),u=(Y.get(this,"events")||Object.create(null))[s.type]||[],e=E.event.special[s.type]||{};for(a[0]=s,t=1;t<arguments.length;t++)a[t]=arguments[t];if(s.delegateTarget=this,!e.preDispatch||!1!==e.preDispatch.call(this,s)){for(o=E.event.handlers.call(this,s,u),t=0;(r=o[t++])&&!s.isPropagationStopped();)for(s.currentTarget=r.elem,n=0;(i=r.handlers[n++])&&!s.isImmediatePropagationStopped();)s.rnamespace&&!1!==i.namespace&&!s.rnamespace.test(i.namespace)||(s.handleObj=i,s.data=i.data,void 0!==(i=((E.event.special[i.origType]||{}).handle||i.handler).apply(r.elem,a))&&!1===(s.result=i)&&(s.preventDefault(),s.stopPropagation()));return e.postDispatch&&e.postDispatch.call(this,s),s.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<E(i,this).index(l):E.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(E.Event.prototype,t,{enumerable:!0,configurable:!0,get:g(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[E.expando]?e:new E.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){e=this||e;return ce.test(e.type)&&e.click&&A(e,"input")&&Ce(e,"click",xe),!1},trigger:function(e){e=this||e;return ce.test(e.type)&&e.click&&A(e,"input")&&Ce(e,"click"),!0},_default:function(e){e=e.target;return ce.test(e.type)&&e.click&&A(e,"input")&&Y.get(e,"click")||A(e,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},E.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},E.Event=function(e,t){if(!(this instanceof E.Event))return new E.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?xe:be,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&E.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[E.expando]=!0},E.Event.prototype={constructor:E.Event,isDefaultPrevented:be,isPropagationStopped:be,isImmediatePropagationStopped:be,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=xe,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=xe,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=xe,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},E.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,char:!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:!0},E.event.addProp),E.each({focus:"focusin",blur:"focusout"},function(e,t){E.event.special[e]={setup:function(){return Ce(this,e,we),!1},trigger:function(){return Ce(this,e),!0},_default:function(){return!0},delegateType:t}}),E.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){E.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||E.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),E.fn.extend({on:function(e,t,n,r){return Te(this,e,t,n,r)},one:function(e,t,n,r){return Te(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,E(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"!=typeof e)return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=be),this.each(function(){E.event.remove(this,e,n,t)});for(i in e)this.off(i,t,e[i]);return this}});var Ee=/<script|<style|<link/i,Se=/checked\s*(?:[^=]|=\s*.checked.)/i,ke=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Ae(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&E(e).children("tbody")[0]||e}function Ne(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function je(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function De(e,t){var n,r,i,o;if(1===t.nodeType){if(Y.hasData(e)&&(o=Y.get(e).events))for(i in Y.remove(t,"handle events"),o)for(n=0,r=o[i].length;n<r;n++)E.event.add(t,i,o[i][n]);Q.hasData(e)&&(e=Q.access(e),e=E.extend({},e),Q.set(t,e))}}function qe(n,r,i,o){r=m(r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=g(d);if(h||1<f&&"string"==typeof d&&!x.checkClone&&Se.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),qe(t,r,i,o)});if(f&&(t=(e=me(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=E.map(he(e,"script"),Ne)).length;c<f;c++)u=e,c!==p&&(u=E.clone(u,!0,!0),s&&E.merge(a,he(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,E.map(a,je),c=0;c<s;c++)u=a[c],pe.test(u.type||"")&&!Y.access(u,"globalEval")&&E.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?E._evalUrl&&!u.noModule&&E._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")},l):b(u.textContent.replace(ke,""),u,l))}return n}function Le(e,t,n){for(var r,i=t?E.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||E.cleanData(he(r)),r.parentNode&&(n&&ie(r)&&ge(he(r,"script")),r.parentNode.removeChild(r));return e}E.extend({htmlPrefilter:function(e){return e},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=ie(e);if(!(x.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||E.isXMLDoc(e)))for(a=he(c),r=0,i=(o=he(e)).length;r<i;r++)s=o[r],"input"===(l=(u=a[r]).nodeName.toLowerCase())&&ce.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||he(e),a=a||he(c),r=0,i=o.length;r<i;r++)De(o[r],a[r]);else De(e,c);return 0<(a=he(c,"script")).length&&ge(a,!f&&he(e,"script")),c},cleanData:function(e){for(var t,n,r,i=E.event.special,o=0;void 0!==(n=e[o]);o++)if(V(n)){if(t=n[Y.expando]){if(t.events)for(r in t.events)i[r]?E.event.remove(n,r):E.removeEvent(n,r,t.handle);n[Y.expando]=void 0}n[Q.expando]&&(n[Q.expando]=void 0)}}}),E.fn.extend({detach:function(e){return Le(this,e,!0)},remove:function(e){return Le(this,e)},text:function(e){return $(this,function(e){return void 0===e?E.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return qe(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Ae(this,e).appendChild(e)})},prepend:function(){return qe(this,arguments,function(e){var t;1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(t=Ae(this,e)).insertBefore(e,t.firstChild)})},before:function(){return qe(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return qe(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(E.cleanData(he(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return E.clone(this,e,t)})},html:function(e){return $(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Ee.test(e)&&!de[(fe.exec(e)||["",""])[1].toLowerCase()]){e=E.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(E.cleanData(he(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return qe(this,arguments,function(e){var t=this.parentNode;E.inArray(this,n)<0&&(E.cleanData(he(this)),t&&t.replaceChild(e,this))},n)}}),E.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){E.fn[e]=function(e){for(var t,n=[],r=E(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),E(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});function He(e){var t=e.ownerDocument.defaultView;return(t=!t||!t.opener?T:t).getComputedStyle(e)}function Oe(e,t,n){var r,i={};for(r in t)i[r]=e.style[r],e.style[r]=t[r];for(r in n=n.call(e),t)e.style[r]=i[r];return n}var Pe,Re,Me,Ie,We,Fe,Be,$e,_e=new RegExp("^("+ee+")(?!px)[a-z%]+$","i"),ze=new RegExp(ne.join("|"),"i");function Ue(e,t,n){var r,i,o=e.style;return(n=n||He(e))&&(""!==(i=n.getPropertyValue(t)||n[t])||ie(e)||(i=E.style(e,t)),!x.pixelBoxStyles()&&_e.test(i)&&ze.test(t)&&(r=o.width,e=o.minWidth,t=o.maxWidth,o.minWidth=o.maxWidth=o.width=i,i=n.width,o.width=r,o.minWidth=e,o.maxWidth=t)),void 0!==i?i+"":i}function Xe(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}function Ve(){var e;$e&&(Be.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",$e.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",re.appendChild(Be).appendChild($e),e=T.getComputedStyle($e),Pe="1%"!==e.top,Fe=12===Ge(e.marginLeft),$e.style.right="60%",Ie=36===Ge(e.right),Re=36===Ge(e.width),$e.style.position="absolute",Me=12===Ge($e.offsetWidth/3),re.removeChild(Be),$e=null)}function Ge(e){return Math.round(parseFloat(e))}Be=C.createElement("div"),($e=C.createElement("div")).style&&($e.style.backgroundClip="content-box",$e.cloneNode(!0).style.backgroundClip="",x.clearCloneStyle="content-box"===$e.style.backgroundClip,E.extend(x,{boxSizingReliable:function(){return Ve(),Re},pixelBoxStyles:function(){return Ve(),Ie},pixelPosition:function(){return Ve(),Pe},reliableMarginLeft:function(){return Ve(),Fe},scrollboxSize:function(){return Ve(),Me},reliableTrDimensions:function(){var e,t,n;return null==We&&(e=C.createElement("table"),t=C.createElement("tr"),n=C.createElement("div"),e.style.cssText="position:absolute;left:-11111px;border-collapse:separate",t.style.cssText="border:1px solid",t.style.height="1px",n.style.height="9px",n.style.display="block",re.appendChild(e).appendChild(t).appendChild(n),n=T.getComputedStyle(t),We=parseInt(n.height,10)+parseInt(n.borderTopWidth,10)+parseInt(n.borderBottomWidth,10)===t.offsetHeight,re.removeChild(e)),We}}));var Ye=["Webkit","Moz","ms"],Qe=C.createElement("div").style,Je={};function Ke(e){return E.cssProps[e]||Je[e]||(e in Qe?e:Je[e]=function(e){for(var t=e[0].toUpperCase()+e.slice(1),n=Ye.length;n--;)if((e=Ye[n]+t)in Qe)return e}(e)||e)}var Ze=/^(none|table(?!-c[ea]).+)/,et=/^--/,tt={position:"absolute",visibility:"hidden",display:"block"},nt={letterSpacing:"0",fontWeight:"400"};function rt(e,t,n){var r=te.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function it(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=E.css(e,n+ne[a],!0,i)),r?("content"===n&&(u-=E.css(e,"padding"+ne[a],!0,i)),"margin"!==n&&(u-=E.css(e,"border"+ne[a]+"Width",!0,i))):(u+=E.css(e,"padding"+ne[a],!0,i),"padding"!==n?u+=E.css(e,"border"+ne[a]+"Width",!0,i):s+=E.css(e,"border"+ne[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function ot(e,t,n){var r=He(e),i=(!x.boxSizingReliable()||n)&&"border-box"===E.css(e,"boxSizing",!1,r),o=i,a=Ue(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(_e.test(a)){if(!n)return a;a="auto"}return(!x.boxSizingReliable()&&i||!x.reliableTrDimensions()&&A(e,"tr")||"auto"===a||!parseFloat(a)&&"inline"===E.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===E.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+it(e,t,n||(i?"border":"content"),o,r,a)+"px"}function at(e,t,n,r,i){return new at.prototype.init(e,t,n,r,i)}E.extend({cssHooks:{opacity:{get:function(e,t){if(t){e=Ue(e,"opacity");return""===e?"1":e}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=X(t),u=et.test(t),l=e.style;if(u||(t=Ke(s)),a=E.cssHooks[t]||E.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"==(o=typeof n)&&(i=te.exec(n))&&i[1]&&(n=se(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(E.cssNumber[s]?"":"px")),x.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o=X(t);return et.test(t)||(t=Ke(o)),"normal"===(i=void 0===(i=(o=E.cssHooks[t]||E.cssHooks[o])&&"get"in o?o.get(e,!0,n):i)?Ue(e,t,r):i)&&t in nt&&(i=nt[t]),""===n||n?(t=parseFloat(i),!0===n||isFinite(t)?t||0:i):i}}),E.each(["height","width"],function(e,s){E.cssHooks[s]={get:function(e,t,n){if(t)return!Ze.test(E.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?ot(e,s,n):Oe(e,tt,function(){return ot(e,s,n)})},set:function(e,t,n){var r,i=He(e),o=!x.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===E.css(e,"boxSizing",!1,i),n=n?it(e,s,n,a,i):0;return a&&o&&(n-=Math.ceil(e["offset"+s[0].toUpperCase()+s.slice(1)]-parseFloat(i[s])-it(e,s,"border",!1,i)-.5)),n&&(r=te.exec(t))&&"px"!==(r[3]||"px")&&(e.style[s]=t,t=E.css(e,s)),rt(0,t,n)}}}),E.cssHooks.marginLeft=Xe(x.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Ue(e,"marginLeft"))||e.getBoundingClientRect().left-Oe(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),E.each({margin:"",padding:"",border:"Width"},function(i,o){E.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+ne[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(E.cssHooks[i+o].set=rt)}),E.fn.extend({css:function(e,t){return $(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=He(e),i=t.length;a<i;a++)o[t[a]]=E.css(e,t[a],!1,r);return o}return void 0!==n?E.style(e,t,n):E.css(e,t)},e,t,1<arguments.length)}}),((E.Tween=at).prototype={constructor:at,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||E.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(E.cssNumber[n]?"":"px")},cur:function(){var e=at.propHooks[this.prop];return(e&&e.get?e:at.propHooks._default).get(this)},run:function(e){var t,n=at.propHooks[this.prop];return this.options.duration?this.pos=t=E.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),(n&&n.set?n:at.propHooks._default).set(this),this}}).init.prototype=at.prototype,(at.propHooks={_default:{get:function(e){return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(e=E.css(e.elem,e.prop,""))&&"auto"!==e?e:0},set:function(e){E.fx.step[e.prop]?E.fx.step[e.prop](e):1!==e.elem.nodeType||!E.cssHooks[e.prop]&&null==e.elem.style[Ke(e.prop)]?e.elem[e.prop]=e.now:E.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=at.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},E.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},E.fx=at.prototype.init,E.fx.step={};var st,ut,lt=/^(?:toggle|show|hide)$/,ct=/queueHooks$/;function ft(){ut&&(!1===C.hidden&&T.requestAnimationFrame?T.requestAnimationFrame(ft):T.setTimeout(ft,E.fx.interval),E.fx.tick())}function pt(){return T.setTimeout(function(){st=void 0}),st=Date.now()}function dt(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=ne[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function ht(e,t,n){for(var r,i=(gt.tweeners[t]||[]).concat(gt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function gt(i,e,t){var n,o,r=0,a=gt.prefilters.length,s=E.Deferred().always(function(){delete u.elem}),u=function(){if(o)return!1;for(var e=st||pt(),e=Math.max(0,l.startTime+l.duration-e),t=1-(e/l.duration||0),n=0,r=l.tweens.length;n<r;n++)l.tweens[n].run(t);return s.notifyWith(i,[l,t,e]),t<1&&r?e:(r||s.notifyWith(i,[l,1,0]),s.resolveWith(i,[l]),!1)},l=s.promise({elem:i,props:E.extend({},e),opts:E.extend(!0,{specialEasing:{},easing:E.easing._default},t),originalProperties:e,originalOptions:t,startTime:st||pt(),duration:t.duration,tweens:[],createTween:function(e,t){e=E.Tween(i,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(e),e},stop:function(e){var t=0,n=e?l.tweens.length:0;if(o)return this;for(o=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(i,[l,1,0]),s.resolveWith(i,[l,e])):s.rejectWith(i,[l,e]),this}}),c=l.props;for(function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=X(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=E.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<a;r++)if(n=gt.prefilters[r].call(l,i,c,l.opts))return g(n.stop)&&(E._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return E.map(c,ht,l),g(l.opts.start)&&l.opts.start.call(i,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),E.fx.timer(E.extend(u,{elem:i,anim:l,queue:l.opts.queue})),l}E.Animation=E.extend(gt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return se(n.elem,e,te.exec(t),n),n}]},tweener:function(e,t){for(var n,r=0,i=(e=g(e)?(t=e,["*"]):e.match(P)).length;r<i;r++)n=e[r],gt.tweeners[n]=gt.tweeners[n]||[],gt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c="width"in t||"height"in t,f=this,p={},d=e.style,h=e.nodeType&&ae(e),g=Y.get(e,"fxshow");for(r in n.queue||(null==(a=E._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,f.always(function(){f.always(function(){a.unqueued--,E.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],lt.test(i)){if(delete t[r],o=o||"toggle"===i,i===(h?"hide":"show")){if("show"!==i||!g||void 0===g[r])continue;h=!0}p[r]=g&&g[r]||E.style(e,r)}if((u=!E.isEmptyObject(t))||!E.isEmptyObject(p))for(r in c&&1===e.nodeType&&(n.overflow=[d.overflow,d.overflowX,d.overflowY],null==(l=g&&g.display)&&(l=Y.get(e,"display")),"none"===(c=E.css(e,"display"))&&(l?c=l:(le([e],!0),l=e.style.display||l,c=E.css(e,"display"),le([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===E.css(e,"float")&&(u||(f.done(function(){d.display=l}),null==l&&(c=d.display,l="none"===c?"":c)),d.display="inline-block")),n.overflow&&(d.overflow="hidden",f.always(function(){d.overflow=n.overflow[0],d.overflowX=n.overflow[1],d.overflowY=n.overflow[2]})),u=!1,p)u||(g?"hidden"in g&&(h=g.hidden):g=Y.access(e,"fxshow",{display:l}),o&&(g.hidden=!h),h&&le([e],!0),f.done(function(){for(r in h||le([e]),Y.remove(e,"fxshow"),p)E.style(e,r,p[r])})),u=ht(h?g[r]:0,r,f),r in g||(g[r]=u.start,h&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?gt.prefilters.unshift(e):gt.prefilters.push(e)}}),E.speed=function(e,t,n){var r=e&&"object"==typeof e?E.extend({},e):{complete:n||!n&&t||g(e)&&e,duration:e,easing:n&&t||t&&!g(t)&&t};return E.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in E.fx.speeds?r.duration=E.fx.speeds[r.duration]:r.duration=E.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){g(r.old)&&r.old.call(this),r.queue&&E.dequeue(this,r.queue)},r},E.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=E.isEmptyObject(t),o=E.speed(e,n,r),r=function(){var e=gt(this,E.extend({},t),o);(i||Y.get(this,"finish"))&&e.stop(!0)};return r.finish=r,i||!1===o.queue?this.each(r):this.queue(o.queue,r)},stop:function(i,e,o){function a(e){var t=e.stop;delete e.stop,t(o)}return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=E.timers,r=Y.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&ct.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||E.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Y.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=E.timers,o=n?n.length:0;for(t.finish=!0,E.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),E.each(["toggle","show","hide"],function(e,r){var i=E.fn[r];E.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(dt(r,!0),e,t,n)}}),E.each({slideDown:dt("show"),slideUp:dt("hide"),slideToggle:dt("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){E.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),E.timers=[],E.fx.tick=function(){var e,t=0,n=E.timers;for(st=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||E.fx.stop(),st=void 0},E.fx.timer=function(e){E.timers.push(e),E.fx.start()},E.fx.interval=13,E.fx.start=function(){ut||(ut=!0,ft())},E.fx.stop=function(){ut=null},E.fx.speeds={slow:600,fast:200,_default:400},E.fn.delay=function(r,e){return r=E.fx&&E.fx.speeds[r]||r,this.queue(e=e||"fx",function(e,t){var n=T.setTimeout(e,r);t.stop=function(){T.clearTimeout(n)}})},f=C.createElement("input"),ee=C.createElement("select").appendChild(C.createElement("option")),f.type="checkbox",x.checkOn=""!==f.value,x.optSelected=ee.selected,(f=C.createElement("input")).value="t",f.type="radio",x.radioValue="t"===f.value;var yt,mt=E.expr.attrHandle;E.fn.extend({attr:function(e,t){return $(this,E.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){E.removeAttr(this,e)})}}),E.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return void 0===e.getAttribute?E.prop(e,t,n):(1===o&&E.isXMLDoc(e)||(i=E.attrHooks[t.toLowerCase()]||(E.expr.match.bool.test(t)?yt:void 0)),void 0!==n?null===n?void E.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):!(i&&"get"in i&&null!==(r=i.get(e,t)))&&null==(r=E.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!x.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(P);if(i&&1===e.nodeType)for(;n=i[r++];)e.removeAttribute(n)}}),yt={set:function(e,t,n){return!1===t?E.removeAttr(e,n):e.setAttribute(n,n),n}},E.each(E.expr.match.bool.source.match(/\w+/g),function(e,t){var a=mt[t]||E.find.attr;mt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=mt[o],mt[o]=r,r=null!=a(e,t,n)?o:null,mt[o]=i),r}});var vt=/^(?:input|select|textarea|button)$/i,xt=/^(?:a|area)$/i;function bt(e){return(e.match(P)||[]).join(" ")}function wt(e){return e.getAttribute&&e.getAttribute("class")||""}function Tt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(P)||[]}E.fn.extend({prop:function(e,t){return $(this,E.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[E.propFix[e]||e]})}}),E.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&E.isXMLDoc(e)||(t=E.propFix[t]||t,i=E.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=E.find.attr(e,"tabindex");return t?parseInt(t,10):vt.test(e.nodeName)||xt.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),x.optSelected||(E.propHooks.selected={get:function(e){e=e.parentNode;return e&&e.parentNode&&e.parentNode.selectedIndex,null},set:function(e){e=e.parentNode;e&&(e.selectedIndex,e.parentNode&&e.parentNode.selectedIndex)}}),E.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){E.propFix[this.toLowerCase()]=this}),E.fn.extend({addClass:function(t){var e,n,r,i,o,a,s=0;if(g(t))return this.each(function(e){E(this).addClass(t.call(this,e,wt(this)))});if((e=Tt(t)).length)for(;n=this[s++];)if(a=wt(n),r=1===n.nodeType&&" "+bt(a)+" "){for(o=0;i=e[o++];)r.indexOf(" "+i+" ")<0&&(r+=i+" ");a!==(a=bt(r))&&n.setAttribute("class",a)}return this},removeClass:function(t){var e,n,r,i,o,a,s=0;if(g(t))return this.each(function(e){E(this).removeClass(t.call(this,e,wt(this)))});if(!arguments.length)return this.attr("class","");if((e=Tt(t)).length)for(;n=this[s++];)if(a=wt(n),r=1===n.nodeType&&" "+bt(a)+" "){for(o=0;i=e[o++];)for(;-1<r.indexOf(" "+i+" ");)r=r.replace(" "+i+" "," ");a!==(a=bt(r))&&n.setAttribute("class",a)}return this},toggleClass:function(i,t){var o=typeof i,a="string"==o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):g(i)?this.each(function(e){E(this).toggleClass(i.call(this,e,wt(this),t),t)}):this.each(function(){var e,t,n,r;if(a)for(t=0,n=E(this),r=Tt(i);e=r[t++];)n.hasClass(e)?n.removeClass(e):n.addClass(e);else void 0!==i&&"boolean"!=o||((e=wt(this))&&Y.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",!e&&!1!==i&&Y.get(this,"__className__")||""))})},hasClass:function(e){for(var t,n=0,r=" "+e+" ";t=this[n++];)if(1===t.nodeType&&-1<(" "+bt(wt(t))+" ").indexOf(r))return!0;return!1}});var Ct=/\r/g;E.fn.extend({val:function(t){var n,e,r,i=this[0];return arguments.length?(r=g(t),this.each(function(e){1===this.nodeType&&(null==(e=r?t.call(this,e,E(this).val()):t)?e="":"number"==typeof e?e+="":Array.isArray(e)&&(e=E.map(e,function(e){return null==e?"":e+""})),(n=E.valHooks[this.type]||E.valHooks[this.nodeName.toLowerCase()])&&"set"in n&&void 0!==n.set(this,e,"value")||(this.value=e))})):i?(n=E.valHooks[i.type]||E.valHooks[i.nodeName.toLowerCase()])&&"get"in n&&void 0!==(e=n.get(i,"value"))?e:"string"==typeof(e=i.value)?e.replace(Ct,""):null==e?"":e:void 0}}),E.extend({valHooks:{option:{get:function(e){var t=E.find.attr(e,"value");return null!=t?t:bt(E.text(e))}},select:{get:function(e){for(var t,n=e.options,r=e.selectedIndex,i="select-one"===e.type,o=i?null:[],a=i?r+1:n.length,s=r<0?a:i?r:0;s<a;s++)if(((t=n[s]).selected||s===r)&&!t.disabled&&(!t.parentNode.disabled||!A(t.parentNode,"optgroup"))){if(t=E(t).val(),i)return t;o.push(t)}return o},set:function(e,t){for(var n,r,i=e.options,o=E.makeArray(t),a=i.length;a--;)((r=i[a]).selected=-1<E.inArray(E.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),E.each(["radio","checkbox"],function(){E.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<E.inArray(E(e).val(),t)}},x.checkOn||(E.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),x.focusin="onfocusin"in T;function Et(e){e.stopPropagation()}var St=/^(?:focusinfocus|focusoutblur)$/;E.extend(E.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f=[n||C],p=v.call(e,"type")?e.type:e,d=v.call(e,"namespace")?e.namespace.split("."):[],h=c=o=n=n||C;if(3!==n.nodeType&&8!==n.nodeType&&!St.test(p+E.event.triggered)&&(-1<p.indexOf(".")&&(p=(d=p.split(".")).shift(),d.sort()),s=p.indexOf(":")<0&&"on"+p,(e=e[E.expando]?e:new E.Event(p,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=d.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+d.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:E.makeArray(t,[e]),l=E.event.special[p]||{},r||!l.trigger||!1!==l.trigger.apply(n,t))){if(!r&&!l.noBubble&&!y(n)){for(a=l.delegateType||p,St.test(a+p)||(h=h.parentNode);h;h=h.parentNode)f.push(h),o=h;o===(n.ownerDocument||C)&&f.push(o.defaultView||o.parentWindow||T)}for(i=0;(h=f[i++])&&!e.isPropagationStopped();)c=h,e.type=1<i?a:l.bindType||p,(u=(Y.get(h,"events")||Object.create(null))[e.type]&&Y.get(h,"handle"))&&u.apply(h,t),(u=s&&h[s])&&u.apply&&V(h)&&(e.result=u.apply(h,t),!1===e.result&&e.preventDefault());return e.type=p,r||e.isDefaultPrevented()||l._default&&!1!==l._default.apply(f.pop(),t)||!V(n)||s&&g(n[p])&&!y(n)&&((o=n[s])&&(n[s]=null),E.event.triggered=p,e.isPropagationStopped()&&c.addEventListener(p,Et),n[p](),e.isPropagationStopped()&&c.removeEventListener(p,Et),E.event.triggered=void 0,o&&(n[s]=o)),e.result}},simulate:function(e,t,n){e=E.extend(new E.Event,n,{type:e,isSimulated:!0});E.event.trigger(e,null,t)}}),E.fn.extend({trigger:function(e,t){return this.each(function(){E.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return E.event.trigger(e,t,n,!0)}}),x.focusin||E.each({focus:"focusin",blur:"focusout"},function(n,r){function i(e){E.event.simulate(r,e.target,E.event.fix(e))}E.event.special[r]={setup:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r);t||e.addEventListener(n,i,!0),Y.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r)-1;t?Y.access(e,r,t):(e.removeEventListener(n,i,!0),Y.remove(e,r))}}});var kt=T.location,At={guid:Date.now()},Nt=/\?/;E.parseXML=function(e){var t,n;if(!e||"string"!=typeof e)return null;try{t=(new T.DOMParser).parseFromString(e,"text/xml")}catch(e){}return n=t&&t.getElementsByTagName("parsererror")[0],t&&!n||E.error("Invalid XML: "+(n?E.map(n.childNodes,function(e){return e.textContent}).join("\n"):e)),t};var jt=/\[\]$/,Dt=/\r?\n/g,qt=/^(?:submit|button|image|reset|file)$/i,Lt=/^(?:input|select|textarea|keygen)/i;E.param=function(e,t){function n(e,t){t=g(t)?t():t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==t?"":t)}var r,i=[];if(null==e)return"";if(Array.isArray(e)||e.jquery&&!E.isPlainObject(e))E.each(e,function(){n(this.name,this.value)});else for(r in e)!function n(r,e,i,o){if(Array.isArray(e))E.each(e,function(e,t){i||jt.test(r)?o(r,t):n(r+"["+("object"==typeof t&&null!=t?e:"")+"]",t,i,o)});else if(i||"object"!==h(e))o(r,e);else for(var t in e)n(r+"["+t+"]",e[t],i,o)}(r,e[r],t,n);return i.join("&")},E.fn.extend({serialize:function(){return E.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=E.prop(this,"elements");return e?E.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!E(this).is(":disabled")&&Lt.test(this.nodeName)&&!qt.test(e)&&(this.checked||!ce.test(e))}).map(function(e,t){var n=E(this).val();return null==n?null:Array.isArray(n)?E.map(n,function(e){return{name:t.name,value:e.replace(Dt,"\r\n")}}):{name:t.name,value:n.replace(Dt,"\r\n")}}).get()}});var Ht=/%20/g,Ot=/#.*$/,Pt=/([?&])_=[^&]*/,Rt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Mt=/^(?:GET|HEAD)$/,It=/^\/\//,Wt={},Ft={},Bt="*/".concat("*"),$t=C.createElement("a");function _t(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(P)||[];if(g(t))for(;n=i[r++];)"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function zt(t,r,i,o){var a={},s=t===Ft;function u(e){var n;return a[e]=!0,E.each(t[e]||[],function(e,t){t=t(r,i,o);return"string"!=typeof t||s||a[t]?s?!(n=t):void 0:(r.dataTypes.unshift(t),u(t),!1)}),n}return u(r.dataTypes[0])||!a["*"]&&u("*")}function Ut(e,t){var n,r,i=E.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r=r||{})[n]=t[n]);return r&&E.extend(!0,e,r),e}$t.href=kt.href,E.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:kt.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(kt.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Bt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":E.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Ut(Ut(e,E.ajaxSettings),t):Ut(E.ajaxSettings,e)},ajaxPrefilter:_t(Wt),ajaxTransport:_t(Ft),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0);var u,l,c,n,f,p,d,r,i,h=E.ajaxSetup({},t=t||{}),g=h.context||h,y=h.context&&(g.nodeType||g.jquery)?E(g):E.event,m=E.Deferred(),v=E.Callbacks("once memory"),x=h.statusCode||{},o={},a={},s="canceled",b={readyState:0,getResponseHeader:function(e){var t;if(p){if(!n)for(n={};t=Rt.exec(c);)n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2]);t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return p?c:null},setRequestHeader:function(e,t){return null==p&&(e=a[e.toLowerCase()]=a[e.toLowerCase()]||e,o[e]=t),this},overrideMimeType:function(e){return null==p&&(h.mimeType=e),this},statusCode:function(e){if(e)if(p)b.always(e[b.status]);else for(var t in e)x[t]=[x[t],e[t]];return this},abort:function(e){e=e||s;return u&&u.abort(e),w(0,e),this}};if(m.promise(b),h.url=((e||h.url||kt.href)+"").replace(It,kt.protocol+"//"),h.type=t.method||t.type||h.method||h.type,h.dataTypes=(h.dataType||"*").toLowerCase().match(P)||[""],null==h.crossDomain){i=C.createElement("a");try{i.href=h.url,i.href=i.href,h.crossDomain=$t.protocol+"//"+$t.host!=i.protocol+"//"+i.host}catch(e){h.crossDomain=!0}}if(h.data&&h.processData&&"string"!=typeof h.data&&(h.data=E.param(h.data,h.traditional)),zt(Wt,h,t,b),p)return b;for(r in(d=E.event&&h.global)&&0==E.active++&&E.event.trigger("ajaxStart"),h.type=h.type.toUpperCase(),h.hasContent=!Mt.test(h.type),l=h.url.replace(Ot,""),h.hasContent?h.data&&h.processData&&0===(h.contentType||"").indexOf("application/x-www-form-urlencoded")&&(h.data=h.data.replace(Ht,"+")):(i=h.url.slice(l.length),h.data&&(h.processData||"string"==typeof h.data)&&(l+=(Nt.test(l)?"&":"?")+h.data,delete h.data),!1===h.cache&&(l=l.replace(Pt,"$1"),i=(Nt.test(l)?"&":"?")+"_="+At.guid+++i),h.url=l+i),h.ifModified&&(E.lastModified[l]&&b.setRequestHeader("If-Modified-Since",E.lastModified[l]),E.etag[l]&&b.setRequestHeader("If-None-Match",E.etag[l])),(h.data&&h.hasContent&&!1!==h.contentType||t.contentType)&&b.setRequestHeader("Content-Type",h.contentType),b.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", "+Bt+"; q=0.01":""):h.accepts["*"]),h.headers)b.setRequestHeader(r,h.headers[r]);if(h.beforeSend&&(!1===h.beforeSend.call(g,b,h)||p))return b.abort();if(s="abort",v.add(h.complete),b.done(h.success),b.fail(h.error),u=zt(Ft,h,t,b)){if(b.readyState=1,d&&y.trigger("ajaxSend",[b,h]),p)return b;h.async&&0<h.timeout&&(f=T.setTimeout(function(){b.abort("timeout")},h.timeout));try{p=!1,u.send(o,w)}catch(e){if(p)throw e;w(-1,e)}}else w(-1,"No Transport");function w(e,t,n,r){var i,o,a,s=t;p||(p=!0,f&&T.clearTimeout(f),u=void 0,c=r||"",b.readyState=0<e?4:0,r=200<=e&&e<300||304===e,n&&(a=function(e,t,n){for(var r,i,o,a,s=e.contents,u=e.dataTypes;"*"===u[0];)u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a=a||i}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(h,b,n)),!r&&-1<E.inArray("script",h.dataTypes)&&E.inArray("json",h.dataTypes)<0&&(h.converters["text script"]=function(){}),a=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];for(o=c.shift();o;)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e.throws)t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(h,a,b,r),r?(h.ifModified&&((n=b.getResponseHeader("Last-Modified"))&&(E.lastModified[l]=n),(n=b.getResponseHeader("etag"))&&(E.etag[l]=n)),204===e||"HEAD"===h.type?s="nocontent":304===e?s="notmodified":(s=a.state,i=a.data,r=!(o=a.error))):(o=s,!e&&s||(s="error",e<0&&(e=0))),b.status=e,b.statusText=(t||s)+"",r?m.resolveWith(g,[i,s,b]):m.rejectWith(g,[b,s,o]),b.statusCode(x),x=void 0,d&&y.trigger(r?"ajaxSuccess":"ajaxError",[b,h,r?i:o]),v.fireWith(g,[b,s]),d&&(y.trigger("ajaxComplete",[b,h]),--E.active||E.event.trigger("ajaxStop")))}return b},getJSON:function(e,t,n){return E.get(e,t,n,"json")},getScript:function(e,t){return E.get(e,void 0,t,"script")}}),E.each(["get","post"],function(e,i){E[i]=function(e,t,n,r){return g(t)&&(r=r||n,n=t,t=void 0),E.ajax(E.extend({url:e,type:i,dataType:r,data:t,success:n},E.isPlainObject(e)&&e))}}),E.ajaxPrefilter(function(e){for(var t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")}),E._evalUrl=function(e,t,n){return E.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){E.globalEval(e,t,n)}})},E.fn.extend({wrapAll:function(e){return this[0]&&(g(e)&&(e=e.call(this[0])),e=E(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&e.insertBefore(this[0]),e.map(function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return g(n)?this.each(function(e){E(this).wrapInner(n.call(this,e))}):this.each(function(){var e=E(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=g(t);return this.each(function(e){E(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){E(this).replaceWith(this.childNodes)}),this}}),E.expr.pseudos.hidden=function(e){return!E.expr.pseudos.visible(e)},E.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},E.ajaxSettings.xhr=function(){try{return new T.XMLHttpRequest}catch(e){}};var Xt={0:200,1223:204},Vt=E.ajaxSettings.xhr();x.cors=!!Vt&&"withCredentials"in Vt,x.ajax=Vt=!!Vt,E.ajaxTransport(function(i){var o,a;if(x.cors||Vt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Xt[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&T.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),E.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),E.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return E.globalEval(e),e}}}),E.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),E.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=E("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),C.head.appendChild(r[0])},abort:function(){i&&i()}}});var Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;E.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||E.expando+"_"+At.guid++;return this[e]=!0,e}}),E.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=g(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(Nt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||E.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=T[r],T[r]=function(){o=arguments},n.always(function(){void 0===i?E(T).removeProp(r):T[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&g(i)&&i(o[0]),o=i=void 0}),"script"}),x.createHTMLDocument=((f=C.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===f.childNodes.length),E.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(x.createHTMLDocument?((r=(t=C.implementation.createHTMLDocument("")).createElement("base")).href=C.location.href,t.head.appendChild(r)):t=C),r=!n&&[],(n=N.exec(e))?[t.createElement(n[1])]:(n=me([e],t,r),r&&r.length&&E(r).remove(),E.merge([],n.childNodes)));var r},E.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=bt(e.slice(s)),e=e.slice(0,s)),g(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&E.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?E("<div>").append(E.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},E.expr.pseudos.animated=function(t){return E.grep(E.timers,function(e){return t===e.elem}).length},E.offset={setOffset:function(e,t,n){var r,i,o,a,s=E.css(e,"position"),u=E(e),l={};"static"===s&&(e.style.position="relative"),o=u.offset(),r=E.css(e,"top"),a=E.css(e,"left"),a=("absolute"===s||"fixed"===s)&&-1<(r+a).indexOf("auto")?(i=(s=u.position()).top,s.left):(i=parseFloat(r)||0,parseFloat(a)||0),null!=(t=g(t)?t.call(e,n,E.extend({},o)):t).top&&(l.top=t.top-o.top+i),null!=t.left&&(l.left=t.left-o.left+a),"using"in t?t.using.call(e,l):u.css(l)}},E.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){E.offset.setOffset(this,t,e)});var e,n=this[0];return n?n.getClientRects().length?(e=n.getBoundingClientRect(),n=n.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===E.css(r,"position"))t=r.getBoundingClientRect();else{for(t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;e&&(e===n.body||e===n.documentElement)&&"static"===E.css(e,"position");)e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=E(e).offset()).top+=E.css(e,"borderTopWidth",!0),i.left+=E.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-E.css(r,"marginTop",!0),left:t.left-i.left-E.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent;e&&"static"===E.css(e,"position");)e=e.offsetParent;return e||re})}}),E.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;E.fn[t]=function(e){return $(this,function(e,t,n){var r;return y(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n?r?r[i]:e[t]:void(r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n)},t,e,arguments.length)}}),E.each(["top","left"],function(e,n){E.cssHooks[n]=Xe(x.pixelPosition,function(e,t){if(t)return t=Ue(e,n),_e.test(t)?E(e).position()[n]+"px":t})}),E.each({Height:"height",Width:"width"},function(a,s){E.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){E.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return y(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?E.css(e,t,i):E.style(e,t,n,i)},s,n?e:void 0,n)}})}),E.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){E.fn[t]=function(e){return this.on(t,e)}}),E.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),E.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){E.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}});var Qt=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;E.proxy=function(e,t){var n,r;if("string"==typeof t&&(r=e[t],t=e,e=r),g(e))return n=s.call(arguments,2),(r=function(){return e.apply(t||this,n.concat(s.call(arguments)))}).guid=e.guid=e.guid||E.guid++,r},E.holdReady=function(e){e?E.readyWait++:E.ready(!0)},E.isArray=Array.isArray,E.parseJSON=JSON.parse,E.nodeName=A,E.isFunction=g,E.isWindow=y,E.camelCase=X,E.type=h,E.now=Date.now,E.isNumeric=function(e){var t=E.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},E.trim=function(e){return null==e?"":(e+"").replace(Qt,"")},"function"==typeof define&&define.amd&&define("jquery",[],function(){return E});var Jt=T.jQuery,Kt=T.$;return E.noConflict=function(e){return T.$===E&&(T.$=Kt),e&&T.jQuery===E&&(T.jQuery=Jt),E},void 0===e&&(T.jQuery=T.$=E),E});
\ No newline at end of file
<!-- Matomo -->
<script type="text/javascript">
var _paq = window._paq || [];
- {% for ab, abval in AB.items %}
- _paq.push(['setCustomVariable', '{{ forloop.counter }}', "{{ ab }}", "{{ abval }}", "visit"]);
+ {% for experiment, value in request.EXPERIMENTS.items %}
+ _paq.push(['setCustomVariable', '{{ forloop.counter }}', "{{ experiment }}", "{{ value }}", "visit"]);
{% endfor %}
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
]
urlpatterns += [
+ path('eksperymenty/', include('experiments.urls')),
path('katalog/', include('catalogue.urls')),
path('opds/', include('opds.urls')),
path('sugestia/', include('suggest.urls')),