diff --git a/.gitignore b/.gitignore deleted file mode 100644 index bde1b9d..0000000 --- a/.gitignore +++ /dev/null @@ -1,18 +0,0 @@ -.coverage -covhtml/ - -*.pyc -__pycache__/ - -env/ -demo/db.sqlite3 -dist/ -drfdocs.egg-info/ - -site/ - -demo/node_modules/ -rest_framework_docs/static/rest_framework_docs/js/dist.min.js - -rest_framework_docs/static/node_modules/ -rest_framework_docs/static/rest_framework_docs/js/dist.min.js.map diff --git a/demo/project/__init__.py b/.nojekyll similarity index 100% rename from demo/project/__init__.py rename to .nojekyll diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 8a61d83..0000000 --- a/.travis.yml +++ /dev/null @@ -1,36 +0,0 @@ -language: python - -sudo: false - -python: - - "2.7" - - "3.4" - - "3.5" - -env: - - DJANGO_VERSION=1.8 - - DJANGO_VERSION=1.9 - -cache: - - pip - - directories: - - rest_framework_docs/static/node_modules/ - -before_install: - - nvm install 5 - -install: - - cd rest_framework_docs/static/ && npm install && cd ../../ - - pip install -r requirements.txt - - pip install -U Django==$DJANGO_VERSION - - pip install codecov - -script: - - python runtests.py - -after_success: - - codecov - -notifications: - slack: - secure: ZTzxh+tXuf7uaFMBQtrjupS+qqtM3dsnYgHptErsg3SjH0q1jH+HpKD+1RlqGqN36mREB1wSlOhGMzfyGNeNhl0PHQLEtZhs3dRLdzR1xMZWKm7xtCe4TcFoSPh5SoLOHrQVaSEyHeE53gkbOfI7Q5SqVRJOlJv9iCCD8TM+KVdDubCeByevunFSzGFwdLvtk7QpRwXivOGJdJHXXWgVl6ieviQKun5Z03woiLr5L4p37szVkbD60T5lFYAhCL1PzLQ6hVhDn7L4J06LIaQ+l+Jp6cunB1iJtR1Rz+C7g/r2VGgJ5G3sHB3QyFqw9Q/E3oBB81xQTwjL7WSfDuKctW2CPWHac0T9VhidQDoq7uR0EYPMkZXnc+iZa5wmL8IfjEadse0rxdfiIOE+mev+i5BrzHBq/+tZV/D+HKzsRXUEf3BZaRpq7gQHWbj0dusX+R504BQtKqYaGqBFdWJ0+Dry739R4xTeWk10Xa3wpzSFQ1c0yUQbY+3W/DNSYKcRV+Z9eGhMSO1QfBlGzqTlkWkVDnD9OYIpo5iJOkDouJVtzPOyyFBoNGqkvUHiKBO6ohuh48S3xXrjhihkz8xuOSrU1W7xGhCG2RA/vHZh8Fm20l1oIJ/p/Gn6kTLT33XZsxnF9C0Qmgvr6f96MKNPJjNKp0zYj4tJaZr9Xi4rsD8= diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 875f5c1..0000000 --- a/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -Copyright (c) 2015 Emmanouil Konstantinidis -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/MANIFEST.in b/MANIFEST.in deleted file mode 100644 index 5be0ea4..0000000 --- a/MANIFEST.in +++ /dev/null @@ -1,16 +0,0 @@ -include README.md -include LICENSE -include MANIFEST.in - -global-exclude __pycache__ -global-exclude *.py[co] -global-exclude package.json - -prune docs -prune rest_framework_docs/static/node_modules - -graft rest_framework_docs/static/rest_framework_docs -graft rest_framework_docs/templates/rest_framework_docs - -recursive-exclude rest_framework_docs/static/rest_framework_docs dist.min.js.map index.js -recursive-exclude rest_framework_docs/static/rest_framework_docs/*/* * diff --git a/README.md b/README.md deleted file mode 100644 index 3bfde01..0000000 --- a/README.md +++ /dev/null @@ -1,81 +0,0 @@ -# [DRF Docs](http://www.drfdocs.com/) [![travis][travis-image]][travis-url] [![codecov][codecov-image]][codecov-url] [![pypi][pypi-image]][pypi-url] [![slack][slack-image]][slack-url] - -Document Web APIs made with Django Rest Framework. [View Demo](http://demo.drfdocs.com/) - -> **Contributors Wanted**: Do you like this project? Using it? Let's make it better! - -![DRFdocs](https://cloud.githubusercontent.com/assets/6333409/13193861/69e82aec-d778-11e5-95c4-77f4ef29e6e5.png) - -### Supports - - - Python (2.7, 3.3, 3.4, 3.5) - - Django (1.8, 1.9) - - Django Rest Framework (3+) - - -### Documentation - Table of contents - - - [Installation](http://drfdocs.com/installation/) - - [Settings](http://drfdocs.com/settings/) - - [Extending the template](http://drfdocs.com/templates/) - - [Live API Endpoints](http://drfdocs.com/live-api/) - - [Contributing & Development](http://drfdocs.com/contributing/) - - [Changelog](http://drfdocs.com/changelog/) - - -### Development & Demo Project -If you are looking to develop this package with one of your own django projects: - - pyvenv env - env/bin/pip install -r requirements.txt - pip install -e ~/Projects/drf-docs/ - -If you want to use the demo app to work on this package: -Included in this repo you can find the demo project(at `/demo`). It is a project with *Django* & *Django Rest Framework* that will allow you to work with this project. For more information on how you can set it up please check the [README.md](demo/README.md) of the demo project. - -For more information visit [the docs](http://drfdocs.com/contributing/). - -### Installation - -Install using pip: - - pip install drfdocs - -Add 'rest_framework_docs' to your `INSTALLED_APPS` setting: - - INSTALLED_APPS = ( - ... - 'rest_framework_docs', - ) - -Finally include the `rest_framework_docs` urls in your `urls.py`: - - urlpatterns = [ - ... - url(r'^docs/', include('rest_framework_docs.urls')), - ] - - -### Settings -You can find detailed information about the package's settings at [the docs](http://drfdocs.com/settings/). - - REST_FRAMEWORK_DOCS = { - 'HIDE_DOCS': True # Default: False - } - - -### Credits - -First of all thanks to the [Django](http://www.djangoproject.com/) core team and to all the contributors of [Django REST Framework](http://www.django-rest-framework.org/) for their amazing work. Also I would like to thank [Marc Gibbons](https://github.com/marcgibbons) for his *django-rest-framework-docs* project. Both projects share the same idea, it is just that Marc's is not maintained anymore and does not support DRF 3+ & Python 3. - -[travis-image]: https://travis-ci.org/manosim/django-rest-framework-docs.svg?branch=master -[travis-url]: https://travis-ci.org/manosim/django-rest-framework-docs - -[pypi-image]: https://badge.fury.io/py/drfdocs.svg -[pypi-url]: https://pypi.python.org/pypi/drfdocs/ - -[codecov-image]: https://codecov.io/github/manosim/django-rest-framework-docs/coverage.svg?branch=master -[codecov-url]:https://codecov.io/github/manosim/django-rest-framework-docs?branch=master - -[slack-image]: https://img.shields.io/badge/slack-pythondev/drfdocs-e01563.svg -[slack-url]: https://pythondev.slack.com diff --git a/demo/project/accounts/__init__.py b/__init__.py old mode 100644 new mode 100755 similarity index 100% rename from demo/project/accounts/__init__.py rename to __init__.py diff --git a/docs/template/base.html b/base.html similarity index 98% rename from docs/template/base.html rename to base.html index 0db72a9..8ab2199 100755 --- a/docs/template/base.html +++ b/base.html @@ -58,7 +58,7 @@ {% if copyright %}
{{ copyright }}
diff --git a/changelog/index.html b/changelog/index.html new file mode 100644 index 0000000..d7f69db --- /dev/null +++ b/changelog/index.html @@ -0,0 +1,322 @@ + + + + + + + + + + + + + + + Changelog - DRF Docs + + + + + + + + + + + + + + + + + + + +
+
+
+

DRF Docs Badge

+ PyPI version +

Document Web APIs made with Django REST Framework.

+
+
+
+ +
+
+
+ +
+

Changelog

+

Release 0.0.10

+
    +
  • Use get_serializer_class for Views without serlaizer_class attribute #92
  • +
+

Release 0.0.9

+
    +
  • Support for more types of ROOT_URLCONF
  • +
  • Move docs to MKDocs
  • +
+

Release 0.0.7

+
    +
  • Fix methods in Live API Endpoints (now compatible with Python 2.7)
  • +
  • Remove .<format> from urls
  • +
  • Fixed a bug that removes double slashes from the endpoint's url
  • +
+

Release 0.0.6

+
    +
  • Introducing Live API Endpoints - Test your endpoints from within the docs
  • +
  • Setting HIDDEN is now HIDE_DOCS
  • +
+

Release 0.0.5

+
    +
  • Support both common types of ROOT_URLCONF
  • +
+

Release 0.0.4

+
    +
  • Allow templates overrides
  • +
  • More template blocks to be overridden
  • +
  • Improved MANIFEST.in
  • +
  • Exclude node_modules/
  • +
+

Release 0.0.3

+
    +
  • Fixes a bug where Django's collectstatic command was failing because of Glyphicons
  • +
+

Release 0.0.2

+
    +
  • Search between endpoint paths
  • +
  • Display docstring for each endpoint
  • +
+

Release 0.0.1

+

First release of the project to pypi. Features include:

+
    +
  • List all endpoints that inherit from DRF's APIView
  • +
  • Settings to hide docs view (ie. in Production)
  • +
  • Override Templates
  • +
  • Support for Python 2.7, 3.3, 3.4, 3.5
  • +
  • Support for Django 1.8, 1.9
  • +
  • Support for Django REST Framework 3 and above
  • +
+ + + Edit on Github + +
+
+ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/codecov.yml b/codecov.yml deleted file mode 100644 index 4106c3e..0000000 --- a/codecov.yml +++ /dev/null @@ -1,11 +0,0 @@ -coverage: - precision: 2 - round: down - range: "70...100" - - status: - project: false - patch: false - changes: false - -comment: off diff --git a/docs/template/content.html b/content.html similarity index 100% rename from docs/template/content.html rename to content.html diff --git a/contributing/index.html b/contributing/index.html new file mode 100644 index 0000000..9461878 --- /dev/null +++ b/contributing/index.html @@ -0,0 +1,330 @@ + + + + + + + + + + + + + + + Contributing - DRF Docs + + + + + + + + + + + + + + + + + + + +
+
+
+

DRF Docs Badge

+ PyPI version +

Document Web APIs made with Django REST Framework.

+
+
+
+ +
+
+
+ +
+

Contributing

+

Development

+

If you want to use the demo app to work on this package:

+

In the project repository you can find the demo app(at /demo). It is a project with Django & Django Rest Framework that will allow you to work with this project.

+

From the root of the repository:

+
# Create the virtual environment
+pyvenv env
+
+# Install requirements
+env/bin/pip install -r requirements.txt
+
+# Activate the environment
+source env/bin/activate
+
+# Cd Into the demo
+cd demo/
+
+# Install Django Rest Framework Docs
+pip install -e ../
+
+# Run the project
+python manage.py runserver
+
+

Note: You do not need a database or to run migrate.

+

If you are looking to develop this package with one of your own django projects:

+
pyvenv env
+env/bin/pip install -r requirements.txt
+pip install -e ~/Projects/drf-docs/
+
+

Contributing to the project

+
    +
  1. Fork it!
  2. +
  3. Create your feature branch: git checkout -b my-new-feature
  4. +
  5. Commit your changes: git commit -am 'Add some feature'
  6. +
  7. Push to the branch: git push origin my-new-feature
  8. +
  9. Submit a pull request
  10. +
  11. Make sure tests are passing
  12. +
+

Code of Conduct

+

As contributors and maintainers of this project, and in the interest of +fostering an open and welcoming community, we pledge to respect all people who +contribute through reporting issues, posting feature requests, updating +documentation, submitting pull requests or patches, and other activities.

+

We are committed to making participation in this project a harassment-free +experience for everyone, regardless of level of experience, gender, gender +identity and expression, sexual orientation, disability, personal appearance, +body size, race, ethnicity, age, religion, or nationality.

+

Examples of unacceptable behavior by participants include:

+
    +
  • The use of sexualized language or imagery
  • +
  • Personal attacks
  • +
  • Trolling or insulting/derogatory comments
  • +
  • Public or private harassment
  • +
  • Publishing other's private information, such as physical or electronic + addresses, without explicit permission
  • +
  • Other unethical or unprofessional conduct
  • +
+

Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful.

+

By adopting this Code of Conduct, project maintainers commit themselves to +fairly and consistently applying these principles to every aspect of managing +this project. Project maintainers who do not follow or enforce the Code of +Conduct may be permanently removed from the project team.

+

This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community.

+

Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting a project maintainer at manos@iamemmanouil.com. All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. Maintainers are +obligated to maintain confidentiality with regard to the reporter of an +incident.

+

This Code of Conduct is adapted from the Contributor Covenant, +version 1.3.0, available at +http://contributor-covenant.org/version/1/3/0/

+ + + Edit on Github + +
+
+ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/template/css/base.css b/css/base.css similarity index 100% rename from docs/template/css/base.css rename to css/base.css diff --git a/docs/template/css/bootstrap-custom.min.css b/css/bootstrap-custom.min.css similarity index 100% rename from docs/template/css/bootstrap-custom.min.css rename to css/bootstrap-custom.min.css diff --git a/docs/template/css/font-awesome.min.css b/css/font-awesome.min.css similarity index 100% rename from docs/template/css/font-awesome.min.css rename to css/font-awesome.min.css diff --git a/docs/template/css/highlight.css b/css/highlight.css similarity index 100% rename from docs/template/css/highlight.css rename to css/highlight.css diff --git a/docs/css/styles.css b/css/styles.css similarity index 100% rename from docs/css/styles.css rename to css/styles.css diff --git a/demo/README.md b/demo/README.md deleted file mode 100644 index b9de1a0..0000000 --- a/demo/README.md +++ /dev/null @@ -1,34 +0,0 @@ -## Setting up the demo project -A demo project to get you started with DRF docs development. - - -### Installation -From the route of the repository: - - # Create the virtual environment - pyvenv env - - # Install requirements - env/bin/pip install -r requirements.txt - - # Activate the environment - source env/bin/activate - - # Cd Into the demo - cd demo/ - - # Install Django Rest Framework Docs - pip install -e ../ - - # Run the project - python manage.py runserver - -**Note**: You **do not** need a database or to run `migrate`. - - -### Viewing DRF Docs -Once you install and run the project go to [http://0.0.0.0:8000/docs/](http://0.0.0.0:8000/docs/). - - -### Note -The demo project has no functionality at all. Its purpose is **only** for viewing the docs and developing DRF docs further. diff --git a/demo/manage.py b/demo/manage.py deleted file mode 100755 index 82cfa83..0000000 --- a/demo/manage.py +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/env python -import os -import sys - -if __name__ == "__main__": - os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project.settings") - - from django.core.management import execute_from_command_line - - execute_from_command_line(sys.argv) diff --git a/demo/project/accounts/models.py b/demo/project/accounts/models.py deleted file mode 100644 index 069a0c6..0000000 --- a/demo/project/accounts/models.py +++ /dev/null @@ -1,16 +0,0 @@ -from django.db import models -from django.contrib.auth.models import AbstractBaseUser - - -class User(AbstractBaseUser): - created = models.DateTimeField(auto_now_add=True, db_index=True) - modified = models.DateTimeField(auto_now=True) - - email = models.EmailField(unique=True, verbose_name='email address', max_length=255) - full_name = models.CharField(max_length=255) - - is_active = models.BooleanField(default=False) - is_admin = models.BooleanField(default=False) - - USERNAME_FIELD = 'email' - REQUIRED_FIELDS = ['email', 'full_name'] diff --git a/demo/project/accounts/serializers.py b/demo/project/accounts/serializers.py deleted file mode 100644 index e4b4cb8..0000000 --- a/demo/project/accounts/serializers.py +++ /dev/null @@ -1,32 +0,0 @@ -from rest_framework import serializers -from project.accounts.models import User - - -class UserRegistrationSerializer(serializers.ModelSerializer): - - class Meta: - model = User - fields = ('email', 'full_name', 'password',) - extra_kwargs = {'password': {'write_only': True}} - - -class UserProfileSerializer(serializers.ModelSerializer): - - class Meta: - model = User - fields = ('email', 'full_name', 'password', 'is_active') - extra_kwargs = { - 'password': {'write_only': True} - } - read_only_fields = ('is_active',) - - -class ResetPasswordSerializer(serializers.ModelSerializer): - - id = serializers.CharField() - token = serializers.CharField() - - class Meta: - model = User - fields = ('id', 'token', 'password',) - extra_kwargs = {'password': {'write_only': True}} diff --git a/demo/project/accounts/urls.py b/demo/project/accounts/urls.py deleted file mode 100644 index 1486675..0000000 --- a/demo/project/accounts/urls.py +++ /dev/null @@ -1,15 +0,0 @@ -from django.conf.urls import url -from project.accounts import views - - -urlpatterns = [ - url(r'^test/$', views.TestView.as_view(), name="test-view"), - - url(r'^login/$', views.LoginView.as_view(), name="login"), - url(r'^register/$', views.UserRegistrationView.as_view(), name="register"), - url(r'^reset-password/$', view=views.PasswordResetView.as_view(), name="reset-password"), - url(r'^reset-password/confirm/$', views.PasswordResetConfirmView.as_view(), name="reset-password-confirm"), - - url(r'^user/profile/$', views.UserProfileView.as_view(), name="profile"), - -] diff --git a/demo/project/accounts/views.py b/demo/project/accounts/views.py deleted file mode 100644 index e1bd9c0..0000000 --- a/demo/project/accounts/views.py +++ /dev/null @@ -1,83 +0,0 @@ -from django.shortcuts import get_object_or_404 -from django.views.generic.base import TemplateView -from rest_framework import parsers, renderers, generics, status -from rest_framework.authtoken.models import Token -from rest_framework.authtoken.serializers import AuthTokenSerializer -from rest_framework.permissions import AllowAny -from rest_framework.response import Response -from rest_framework.views import APIView -from project.accounts.models import User -from project.accounts.serializers import ( - UserRegistrationSerializer, UserProfileSerializer, ResetPasswordSerializer -) - - -class TestView(TemplateView): - """ - This view should not be included in DRF Docs. - """ - template_name = "a_test.html" - - -class LoginView(APIView): - """ - A view that allows users to login providing their username and password. - """ - - throttle_classes = () - permission_classes = () - parser_classes = (parsers.FormParser, parsers.MultiPartParser, parsers.JSONParser,) - renderer_classes = (renderers.JSONRenderer,) - serializer_class = AuthTokenSerializer - - def post(self, request): - serializer = self.serializer_class(data=request.data) - serializer.is_valid(raise_exception=True) - user = serializer.validated_data['user'] - token, created = Token.objects.get_or_create(user=user) - return Response({'token': token.key}) - - -class UserRegistrationView(generics.CreateAPIView): - - permission_classes = (AllowAny,) - serializer_class = UserRegistrationSerializer - - -class UserProfileView(generics.RetrieveUpdateAPIView): - """ - An endpoint for users to view and update their profile information. - """ - - serializer_class = UserProfileSerializer - - def get_object(self): - return self.request.user - - -class PasswordResetView(APIView): - - permission_classes = (AllowAny,) - queryset = User.objects.all() - - def get_object(self): - email = self.request.data.get('email') - obj = get_object_or_404(self.queryset, email=email) - return obj - - def post(self, request, *args, **kwargs): - user = self.get_object() - user.send_reset_password_email() - return Response({}, status=status.HTTP_200_OK) - - -class PasswordResetConfirmView(APIView): - - permission_classes = (AllowAny,) - serializer_class = ResetPasswordSerializer - - def post(self, request, *args, **kwargs): - serializer = ResetPasswordSerializer(data=request.data) - if not serializer.is_valid(): - return Response({'errors': serializer.errors}, status=status.HTTP_400_BAD_REQUEST) - return Response({"msg": "Password updated successfully."}, status=status.HTTP_200_OK) diff --git a/demo/project/organisations/models.py b/demo/project/organisations/models.py deleted file mode 100644 index fcb0cba..0000000 --- a/demo/project/organisations/models.py +++ /dev/null @@ -1,35 +0,0 @@ -import uuid -from django.db import models -from project.accounts.models import User - - -class Organisation(models.Model): - - id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) - created = models.DateTimeField(auto_now_add=True) - modified = models.DateTimeField(auto_now=True) - - name = models.CharField(unique=True, max_length=100) - slug = models.SlugField(unique=True, null=True, blank=True) - members = models.ManyToManyField(User, through='Membership', through_fields=('organisation', 'user')) - - is_active = models.BooleanField(default=False) - - -class Membership(models.Model): - - class Meta: - unique_together = ("organisation", "user") - - MEMBER_ROLES = ( - ("ADMIN", "Admin"), - ("USER", "User") - ) - - id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) - joined = models.DateTimeField(auto_now_add=True) - - organisation = models.ForeignKey(Organisation) - user = models.ForeignKey(User) - role = models.CharField(choices=MEMBER_ROLES, max_length=20, default="USER") - is_owner = models.BooleanField(default=False) diff --git a/demo/project/organisations/serializers.py b/demo/project/organisations/serializers.py deleted file mode 100644 index 07cbfb8..0000000 --- a/demo/project/organisations/serializers.py +++ /dev/null @@ -1,44 +0,0 @@ -from rest_framework import serializers -from project.organisations.models import Organisation, Membership -from project.accounts.serializers import UserProfileSerializer - - -class MembershipSerializer(serializers.ModelSerializer): - class Meta: - model = Membership - fields = ('joined', 'is_owner', 'role') - - -class CreateOrganisationSerializer(serializers.ModelSerializer): - membership_set = MembershipSerializer(many=True) - - class Meta: - model = Organisation - fields = ('name', 'slug', 'membership_set') - - -class OrganisationMembersSerializer(serializers.ModelSerializer): - user = serializers.SerializerMethodField() - - class Meta: - model = Membership - fields = ('joined', 'user', 'is_owner', 'role') - - def get_user(self, obj): - serializer = UserProfileSerializer(obj.user) - return serializer.data - - -class OrganisationDetailSerializer(serializers.ModelSerializer): - - class Meta: - model = Organisation - fields = ('name', 'slug', 'is_active') - - -class RetrieveOrganisationSerializer(serializers.ModelSerializer): - membership_set = MembershipSerializer() - - class Meta: - model = Organisation - fields = ('name', 'slug', 'is_active', 'membership_set') diff --git a/demo/project/organisations/urls.py b/demo/project/organisations/urls.py deleted file mode 100644 index 4d0311e..0000000 --- a/demo/project/organisations/urls.py +++ /dev/null @@ -1,12 +0,0 @@ -from django.conf.urls import url -from project.organisations import views - - -urlpatterns = [ - - url(r'^create/$', view=views.CreateOrganisationView.as_view(), name="create"), - url(r'^(?P[\w-]+)/$', view=views.RetrieveOrganisationView.as_view(), name="organisation"), - url(r'^(?P[\w-]+)/members/$', view=views.OrganisationMembersView.as_view(), name="members"), - url(r'^(?P[\w-]+)/leave/$', view=views.LeaveOrganisationView.as_view(), name="leave") - -] diff --git a/demo/project/organisations/views.py b/demo/project/organisations/views.py deleted file mode 100644 index 1e2d5fb..0000000 --- a/demo/project/organisations/views.py +++ /dev/null @@ -1,36 +0,0 @@ -from rest_framework import generics, status -from rest_framework.response import Response -from project.organisations.models import Organisation, Membership -from project.organisations.serializers import ( - CreateOrganisationSerializer, OrganisationMembersSerializer, RetrieveOrganisationSerializer -) - - -class RetrieveOrganisationView(generics.RetrieveAPIView): - - serializer_class = RetrieveOrganisationSerializer - - -class CreateOrganisationView(generics.CreateAPIView): - - serializer_class = CreateOrganisationSerializer - - -class OrganisationMembersView(generics.ListAPIView): - - serializer_class = OrganisationMembersSerializer - - def get_queryset(self): - organisation = Organisation.objects.order_by('?').first() - return Membership.objects.filter(organisation=organisation) - - -class LeaveOrganisationView(generics.DestroyAPIView): - - def get_object(self): - return Membership.objects.order_by('?').first() - - def delete(self, request, *args, **kwargs): - instance = self.get_object() - self.perform_destroy(instance) - return Response(status=status.HTTP_204_NO_CONTENT) diff --git a/demo/project/settings.py b/demo/project/settings.py deleted file mode 100644 index 5e06207..0000000 --- a/demo/project/settings.py +++ /dev/null @@ -1,121 +0,0 @@ -""" -Django settings for demo project. - -Generated by 'django-admin startproject' using Django 1.8.7. - -For more information on this file, see -https://docs.djangoproject.com/en/1.8/topics/settings/ - -For the full list of settings and their values, see -https://docs.djangoproject.com/en/1.8/ref/settings/ -""" - -# Build paths inside the project like this: os.path.join(BASE_DIR, ...) -import os - -BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) - - -# Quick-start development settings - unsuitable for production -# See https://docs.djangoproject.com/en/1.8/howto/deployment/checklist/ - -# SECURITY WARNING: keep the secret key used in production secret! -SECRET_KEY = '9mx$t$5e!w_0tu2z8@pk!p!ca6u20#&40^ec5=h^^mpb90)e*9' - -# SECURITY WARNING: don't run with debug turned on in production! -DEBUG = True - -ALLOWED_HOSTS = [] - - -# Application definition - -INSTALLED_APPS = ( - 'django.contrib.admin', - 'django.contrib.auth', - 'django.contrib.contenttypes', - 'django.contrib.sessions', - 'django.contrib.messages', - 'django.contrib.staticfiles', - - 'rest_framework', - 'rest_framework_docs', - - 'project.accounts', - 'project.organisations', - -) - -MIDDLEWARE_CLASSES = ( - 'django.contrib.sessions.middleware.SessionMiddleware', - 'django.middleware.common.CommonMiddleware', - 'django.middleware.csrf.CsrfViewMiddleware', - 'django.contrib.auth.middleware.AuthenticationMiddleware', - 'django.contrib.auth.middleware.SessionAuthenticationMiddleware', - 'django.contrib.messages.middleware.MessageMiddleware', - 'django.middleware.clickjacking.XFrameOptionsMiddleware', - 'django.middleware.security.SecurityMiddleware', -) - -ROOT_URLCONF = 'project.urls' - -TEMPLATES = [ - { - 'BACKEND': 'django.template.backends.django.DjangoTemplates', - 'DIRS': [], - 'APP_DIRS': True, - 'OPTIONS': { - 'context_processors': [ - 'django.template.context_processors.debug', - 'django.template.context_processors.request', - 'django.contrib.auth.context_processors.auth', - 'django.contrib.messages.context_processors.messages', - ], - }, - }, -] - -WSGI_APPLICATION = 'project.wsgi.application' - - -# Database -# https://docs.djangoproject.com/en/1.8/ref/settings/#databases - -DATABASES = { - 'default': { - 'ENGINE': 'django.db.backends.sqlite3', - 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), - } -} - -# Django REST Framework -REST_FRAMEWORK = { - 'DEFAULT_PERMISSION_CLASSES': ( - 'rest_framework.permissions.IsAuthenticated', - ), - 'DEFAULT_AUTHENTICATION_CLASSES': ( - 'rest_framework.authentication.TokenAuthentication', - ), - 'DEFAULT_RENDERER_CLASSES': ( - 'rest_framework.renderers.JSONRenderer', - ) -} - -# Internationalization -# https://docs.djangoproject.com/en/1.8/topics/i18n/ - -LANGUAGE_CODE = 'en-us' - -TIME_ZONE = 'UTC' - -USE_I18N = True - -USE_L10N = True - -USE_TZ = True - - -# Static files (CSS, JavaScript, Images) -# https://docs.djangoproject.com/en/1.8/howto/static-files/ - -STATIC_URL = '/static/' diff --git a/demo/project/urls.py b/demo/project/urls.py deleted file mode 100644 index d8e049f..0000000 --- a/demo/project/urls.py +++ /dev/null @@ -1,26 +0,0 @@ -"""demo URL Configuration - -The `urlpatterns` list routes URLs to views. For more information please see: - https://docs.djangoproject.com/en/1.8/topics/http/urls/ -Examples: -Function views - 1. Add an import: from my_app import views - 2. Add a URL to urlpatterns: url(r'^$', views.home, name='home') -Class-based views - 1. Add an import: from other_app.views import Home - 2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home') -Including another URLconf - 1. Add an import: from blog import urls as blog_urls - 2. Add a URL to urlpatterns: url(r'^blog/', include(blog_urls)) -""" -from django.conf.urls import include, url -from django.contrib import admin - -urlpatterns = [ - url(r'^admin/', include(admin.site.urls)), - url(r'^docs/', include('rest_framework_docs.urls')), - - # API - url(r'^accounts/', view=include('project.accounts.urls', namespace='accounts')), - url(r'^organisations/', view=include('project.organisations.urls', namespace='organisations')), -] diff --git a/demo/project/wsgi.py b/demo/project/wsgi.py deleted file mode 100644 index aeb0394..0000000 --- a/demo/project/wsgi.py +++ /dev/null @@ -1,16 +0,0 @@ -""" -WSGI config for demo project. - -It exposes the WSGI callable as a module-level variable named ``application``. - -For more information on this file, see -https://docs.djangoproject.com/en/1.8/howto/deployment/wsgi/ -""" - -import os - -from django.core.wsgi import get_wsgi_application - -os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project.settings") - -application = get_wsgi_application() diff --git a/docs/CNAME b/docs/CNAME deleted file mode 100644 index 67ad4e1..0000000 --- a/docs/CNAME +++ /dev/null @@ -1 +0,0 @@ -drfdocs.com diff --git a/docs/changelog.md b/docs/changelog.md deleted file mode 100755 index c3ba453..0000000 --- a/docs/changelog.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: "Changelog" -source_filename: "changelog" ---- - -### Release 0.0.10 - - - Use get_serializer_class for Views without serlaizer_class attribute [#92](https://github.com/ekonstantinidis/django-rest-framework-docs/pull/92) - - -### Release 0.0.9 - - - Support for more types of `ROOT_URLCONF` - - Move docs to [MKDocs](http://www.mkdocs.org/) - - -### Release 0.0.7 - - - Fix methods in Live API Endpoints (now compatible with Python 2.7) - - Remove `.` from urls - - Fixed a bug that removes double slashes from the endpoint's url - - -### Release 0.0.6 - - - Introducing Live API Endpoints - Test your endpoints from within the docs - - Setting `HIDDEN` is now `HIDE_DOCS` - - -### Release 0.0.5 - - - Support both common types of `ROOT_URLCONF` - - -### Release 0.0.4 - - - Allow templates overrides - - More template `blocks` to be overridden - - Improved MANIFEST.in - - Exclude `node_modules/` - - -### Release 0.0.3 - - - Fixes a bug where Django's `collectstatic` command was failing because of Glyphicons - - -### Release 0.0.2 - - - Search between endpoint paths - - Display docstring for each endpoint - - -### Release 0.0.1 - -First release of the project to [pypi](https://pypi.python.org/pypi). Features include: - - - List all endpoints that inherit from DRF's `APIView` - - Settings to hide docs view (ie. in Production) - - Override Templates - - Support for Python 2.7, 3.3, 3.4, 3.5 - - Support for Django 1.8, 1.9 - - Support for Django REST Framework 3 and above diff --git a/docs/contributing.md b/docs/contributing.md deleted file mode 100755 index 305e06c..0000000 --- a/docs/contributing.md +++ /dev/null @@ -1,98 +0,0 @@ ---- -source_filename: contributing ---- - -### Development -If you want to **use the demo** app to work on this package: - -In the project [repository](https://github.com/manosim/django-rest-framework-docs) you can find the demo app(at /demo). It is a project with Django & Django Rest Framework that will allow you to work with this project. - -From the root of the repository: - - # Create the virtual environment - pyvenv env - - # Install requirements - env/bin/pip install -r requirements.txt - - # Activate the environment - source env/bin/activate - - # Cd Into the demo - cd demo/ - - # Install Django Rest Framework Docs - pip install -e ../ - - # Run the project - python manage.py runserver - -Note: You do not need a database or to run migrate. - - -If you are looking to develop this package with one of your **own django projects**: - - pyvenv env - env/bin/pip install -r requirements.txt - pip install -e ~/Projects/drf-docs/ - -### Contributing to the project - -1. Fork it! -2. Create your feature branch: `git checkout -b my-new-feature` -3. Commit your changes: `git commit -am 'Add some feature'` -4. Push to the branch: `git push origin my-new-feature` -5. Submit a pull request -6. Make sure tests are passing - - -### Code of Conduct - -As contributors and maintainers of this project, and in the interest of -fostering an open and welcoming community, we pledge to respect all people who -contribute through reporting issues, posting feature requests, updating -documentation, submitting pull requests or patches, and other activities. - -We are committed to making participation in this project a harassment-free -experience for everyone, regardless of level of experience, gender, gender -identity and expression, sexual orientation, disability, personal appearance, -body size, race, ethnicity, age, religion, or nationality. - -Examples of unacceptable behavior by participants include: - -* The use of sexualized language or imagery -* Personal attacks -* Trolling or insulting/derogatory comments -* Public or private harassment -* Publishing other's private information, such as physical or electronic - addresses, without explicit permission -* Other unethical or unprofessional conduct - -Project maintainers have the right and responsibility to remove, edit, or -reject comments, commits, code, wiki edits, issues, and other contributions -that are not aligned to this Code of Conduct, or to ban temporarily or -permanently any contributor for other behaviors that they deem inappropriate, -threatening, offensive, or harmful. - -By adopting this Code of Conduct, project maintainers commit themselves to -fairly and consistently applying these principles to every aspect of managing -this project. Project maintainers who do not follow or enforce the Code of -Conduct may be permanently removed from the project team. - -This Code of Conduct applies both within project spaces and in public spaces -when an individual is representing the project or its community. - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported by contacting a project maintainer at manos@iamemmanouil.com. All -complaints will be reviewed and investigated and will result in a response that -is deemed necessary and appropriate to the circumstances. Maintainers are -obligated to maintain confidentiality with regard to the reporter of an -incident. - - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 1.3.0, available at -[http://contributor-covenant.org/version/1/3/0/][version] - -[homepage]: http://contributor-covenant.org -[version]: http://contributor-covenant.org/version/1/3/0/ diff --git a/docs/index.md b/docs/index.md deleted file mode 100755 index 50dcecd..0000000 --- a/docs/index.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -source_filename: index ---- - -Django REST Framework Docs (DRF Docs) allows you to list all your API Endpoints that inherit from Django REST Framework **automatically**. Its purpose is to work out of the box and it should take a minimum to install it. - - Visit the Demo - - -#### Live API Endpoints - -A really useful feature of DRF Docs is that you can also test endpoints from within the docs. Feel free to use our demo and try them! For more information visit the [Live API Endpoints](/live-api) page of the docs. - -Mock Up - - -#### How It Works - -The concept is pretty simple. Once you [install it](/installation/) you should go the the url you set (ie. `http://0.0.0.0:8000/docs/`) and you should see all your API endpoints along with the serializer fields, allowed methods etc for each one. - -DRF Docs will then read all your `urls` and will list those that inherit from Django REST Framework's `APIView`. diff --git a/docs/installation.md b/docs/installation.md deleted file mode 100755 index f0a4f68..0000000 --- a/docs/installation.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -source_filename: installation ---- - -The installation itself should not take more than a couple of minutes. Follow the simple steps below. - -### Install from PyPI - - pip install drfdocs - -Add 'rest_framework_docs' to your `INSTALLED_APPS` setting: - - INSTALLED_APPS = ( - ... - 'rest_framework_docs', - ) - -Finally include the `rest_framework_docs` urls in your `urls.py`: - - urlpatterns = [ - ... - url(r'^docs/', include('rest_framework_docs.urls')), - ] - -You can now visit [http://0.0.0.0:8000/docs/](http://0.0.0.0:8000/docs/) to view your Web API's docs. diff --git a/docs/live-api.md b/docs/live-api.md deleted file mode 100755 index 300cd5b..0000000 --- a/docs/live-api.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -source_filename: live-api ---- - -### What is "Live API Endpoints"? - -Live API Endpoints allow you to test your endpoints from within DRF docs. For each endpoints you can press the little *plug* icon which will bring up a modal with all the endpoint's fields and all the relevant information so that you can make a request instantly. - -It is still in **beta** so if you face any problems - feel free to open an issue/pull request on GitHub. - -Live API Endpoints - -The Live API is made with **[React](https://facebook.github.io/react/)**. For more information on how to hack on them, check the README of the repository. diff --git a/docs/settings.md b/docs/settings.md deleted file mode 100755 index abd2106..0000000 --- a/docs/settings.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -source_filename: settings ---- - -### How to set the settings -To set DRF docs' settings just include the dictionary below in Django's `settings.py` file. - - REST_FRAMEWORK_DOCS = { - 'HIDE_DOCS': True - } - - -### Settings Description - -##### HIDE_DOCS -You can use hidden to prevent your docs from showing up in different environments (ie. Show in development, hide in production). To do so you can use environment variables. - - REST_FRAMEWORK_DOCS = { - 'HIDE_DOCS': os.environ.get('HIDE_DRFDOCS', False) - } - -Then set the value of the environment variable `HIDE_DRFDOCS` for each environment (ie. Use `.env` files) - -### List of Settings - -| Setting | Type | Options | Default | -|---------|---------|-----------------|---------| -|HIDE_DOCS| Boolean | `True`, `False` | `False` | -| | | | | diff --git a/docs/template/__init__.py b/docs/template/__init__.py deleted file mode 100755 index e69de29..0000000 diff --git a/docs/templates.md b/docs/templates.md deleted file mode 100755 index 1480ca8..0000000 --- a/docs/templates.md +++ /dev/null @@ -1,72 +0,0 @@ ---- -source_filename: templates ---- - -### Create the template file -To edit the template you will have to create a `.html` file to override the original one. Inside your `templates` directory create a directory named `rest_framework_docs` and inside this create the file `docs.html`. You can then extend/override the default template. - - {% extends "rest_framework_docs/base.html" %} - - -### Default Blocks - -##### Styles (CSS) - - {% block style %} - - {% endblock %} - -##### GitHub Badge -To hide the GitHub badge from the page, just override it with an empty block. - - {% block github_badge %}{% endblock %} - -##### Title - - {% block title %}Project Name{% endblock %} - -##### Logo - - {% block logo %} - DRF Docs - {% endblock %} - -##### Jumbotron - - {% block jumbotron %} -
-

Project Title

-

Documentation of the project 'Example'.

-
- {% endblock %} - -##### Footer - - {% block footer %} - - {% endblock %} - - -### Complete Example -File location: `templates/rest_framework_docs/docs.html` - - {% extends "rest_framework_docs/base.html" %} - - {% block title %}Project Name{% endblock %} - {% block logo %}Project Name API Documentation{% endblock %} - - {% block jumbotron %} -
-

'Project Name' Web API

-

Documentation of the 'Project Name' Web API.

-
- {% endblock %} - - {% block footer %}{% endblock %} diff --git a/docs/template/fonts/fontawesome-webfont.eot b/fonts/fontawesome-webfont.eot similarity index 100% rename from docs/template/fonts/fontawesome-webfont.eot rename to fonts/fontawesome-webfont.eot diff --git a/docs/template/fonts/fontawesome-webfont.svg b/fonts/fontawesome-webfont.svg similarity index 100% rename from docs/template/fonts/fontawesome-webfont.svg rename to fonts/fontawesome-webfont.svg diff --git a/docs/template/fonts/fontawesome-webfont.ttf b/fonts/fontawesome-webfont.ttf similarity index 100% rename from docs/template/fonts/fontawesome-webfont.ttf rename to fonts/fontawesome-webfont.ttf diff --git a/docs/template/fonts/fontawesome-webfont.woff b/fonts/fontawesome-webfont.woff similarity index 100% rename from docs/template/fonts/fontawesome-webfont.woff rename to fonts/fontawesome-webfont.woff diff --git a/docs/template/fonts/fontawesome-webfont.woff2 b/fonts/fontawesome-webfont.woff2 similarity index 100% rename from docs/template/fonts/fontawesome-webfont.woff2 rename to fonts/fontawesome-webfont.woff2 diff --git a/docs/template/header.html b/header.html similarity index 100% rename from docs/template/header.html rename to header.html diff --git a/docs/images/django-logo.png b/images/django-logo.png similarity index 100% rename from docs/images/django-logo.png rename to images/django-logo.png diff --git a/docs/images/docs.png b/images/docs.png similarity index 100% rename from docs/images/docs.png rename to images/docs.png diff --git a/docs/images/drf-logo.png b/images/drf-logo.png similarity index 100% rename from docs/images/drf-logo.png rename to images/drf-logo.png diff --git a/docs/images/live-api.png b/images/live-api.png similarity index 100% rename from docs/images/live-api.png rename to images/live-api.png diff --git a/docs/images/logo-badge.png b/images/logo-badge.png similarity index 100% rename from docs/images/logo-badge.png rename to images/logo-badge.png diff --git a/docs/images/mockup.png b/images/mockup.png similarity index 100% rename from docs/images/mockup.png rename to images/mockup.png diff --git a/docs/template/img/favicon.ico b/img/favicon.ico similarity index 100% rename from docs/template/img/favicon.ico rename to img/favicon.ico diff --git a/index.html b/index.html new file mode 100644 index 0000000..fcd3cc0 --- /dev/null +++ b/index.html @@ -0,0 +1,259 @@ + + + + + + + + + + + + + + + DRF Docs + + + + + + + + + + + + + + + + + + + +
+
+
+

DRF Docs Badge

+ PyPI version +

Document Web APIs made with Django REST Framework.

+
+
+
+ +
+
+
+ +
+ +

Django REST Framework Docs (DRF Docs) allows you to list all your API Endpoints that inherit from Django REST Framework automatically. Its purpose is to work out of the box and it should take a minimum to install it.

+

Visit the Demo

+

Live API Endpoints

+

A really useful feature of DRF Docs is that you can also test endpoints from within the docs. Feel free to use our demo and try them! For more information visit the Live API Endpoints page of the docs.

+

Mock Up

+

How It Works

+

The concept is pretty simple. Once you install it you should go the the url you set (ie. http://0.0.0.0:8000/docs/) and you should see all your API endpoints along with the serializer fields, allowed methods etc for each one.

+

DRF Docs will then read all your urls and will list those that inherit from Django REST Framework's APIView.

+ + + Edit on Github + +
+
+ +
+ + +
Copyright © 2016 Emmanouil Konstantinidis.
+ +
Documentation built with MkDocs.
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/installation/index.html b/installation/index.html new file mode 100644 index 0000000..88469eb --- /dev/null +++ b/installation/index.html @@ -0,0 +1,265 @@ + + + + + + + + + + + + + + + Installation - DRF Docs + + + + + + + + + + + + + + + + + + + +
+
+
+

DRF Docs Badge

+ PyPI version +

Document Web APIs made with Django REST Framework.

+
+
+
+ +
+
+
+ +
+

Installation

+

The installation itself should not take more than a couple of minutes. Follow the simple steps below.

+

Install from PyPI

+
pip install drfdocs
+
+

Add 'rest_framework_docs' to your INSTALLED_APPS setting:

+
INSTALLED_APPS = (
+    ...
+    'rest_framework_docs',
+)
+
+

Finally include the rest_framework_docs urls in your urls.py:

+
urlpatterns = [
+    ...
+    url(r'^docs/', include('rest_framework_docs.urls')),
+]
+
+

You can now visit http://0.0.0.0:/8000/docs/ to view your Web API's docs.

+ + + Edit on Github + +
+
+ +
+ + +
Copyright © 2016 Emmanouil Konstantinidis.
+ +
Documentation built with MkDocs.
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/template/js/base.js b/js/base.js similarity index 100% rename from docs/template/js/base.js rename to js/base.js diff --git a/docs/template/js/bootstrap-3.0.3.min.js b/js/bootstrap-3.0.3.min.js similarity index 100% rename from docs/template/js/bootstrap-3.0.3.min.js rename to js/bootstrap-3.0.3.min.js diff --git a/docs/template/js/highlight.pack.js b/js/highlight.pack.js similarity index 100% rename from docs/template/js/highlight.pack.js rename to js/highlight.pack.js diff --git a/docs/js/index.js b/js/index.js similarity index 100% rename from docs/js/index.js rename to js/index.js diff --git a/docs/template/js/jquery-1.10.2.min.js b/js/jquery-1.10.2.min.js similarity index 100% rename from docs/template/js/jquery-1.10.2.min.js rename to js/jquery-1.10.2.min.js diff --git a/live-api/index.html b/live-api/index.html new file mode 100644 index 0000000..6882fa6 --- /dev/null +++ b/live-api/index.html @@ -0,0 +1,253 @@ + + + + + + + + + + + + + + + Live API Endpoints - DRF Docs + + + + + + + + + + + + + + + + + + + +
+
+
+

DRF Docs Badge

+ PyPI version +

Document Web APIs made with Django REST Framework.

+
+
+
+ +
+
+
+ +
+

Live API Endpoints

+

What is "Live API Endpoints"?

+

Live API Endpoints allow you to test your endpoints from within DRF docs. For each endpoints you can press the little plug icon which will bring up a modal with all the endpoint's fields and all the relevant information so that you can make a request instantly.

+

It is still in beta so if you face any problems - feel free to open an issue/pull request on GitHub.

+

Live API Endpoints

+

The Live API is made with React. For more information on how to hack on them, check the README of the repository.

+ + + Edit on Github + +
+
+ +
+ + +
Copyright © 2016 Emmanouil Konstantinidis.
+ +
Documentation built with MkDocs.
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml deleted file mode 100644 index d022ebd..0000000 --- a/mkdocs.yml +++ /dev/null @@ -1,23 +0,0 @@ -site_name: DRF Docs -site_description: -site_author: -site_favicon: - -pages: -- Home: index.md -- Installation: installation.md -- Settings: settings.md -- Live API Endpoints: live-api.md -- Templates: templates.md -- Contributing: contributing.md -- Changelog: changelog.md - -theme_dir: 'docs/template' -extra_css: - - css/styles.css -extra_javascript: - - js/index.js - -copyright: Copyright © 2016 Emmanouil Konstantinidis. -google_analytics: ['UA-71505240-1', 'drfdocs.com'] -repo_url: https://github.com/manosim/django-rest-framework-docs diff --git a/mkdocs/js/lunr-0.5.7.min.js b/mkdocs/js/lunr-0.5.7.min.js new file mode 100644 index 0000000..b72449a --- /dev/null +++ b/mkdocs/js/lunr-0.5.7.min.js @@ -0,0 +1,7 @@ +/** + * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 0.5.7 + * Copyright (C) 2014 Oliver Nightingale + * MIT Licensed + * @license + */ +!function(){var t=function(e){var n=new t.Index;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),e&&e.call(n,n),n};t.version="0.5.7",t.utils={},t.utils.warn=function(t){return function(e){t.console&&console.warn&&console.warn(e)}}(this),t.EventEmitter=function(){this.events={}},t.EventEmitter.prototype.addListener=function(){var t=Array.prototype.slice.call(arguments),e=t.pop(),n=t;if("function"!=typeof e)throw new TypeError("last argument must be a function");n.forEach(function(t){this.hasHandler(t)||(this.events[t]=[]),this.events[t].push(e)},this)},t.EventEmitter.prototype.removeListener=function(t,e){if(this.hasHandler(t)){var n=this.events[t].indexOf(e);this.events[t].splice(n,1),this.events[t].length||delete this.events[t]}},t.EventEmitter.prototype.emit=function(t){if(this.hasHandler(t)){var e=Array.prototype.slice.call(arguments,1);this.events[t].forEach(function(t){t.apply(void 0,e)})}},t.EventEmitter.prototype.hasHandler=function(t){return t in this.events},t.tokenizer=function(t){if(!arguments.length||null==t||void 0==t)return[];if(Array.isArray(t))return t.map(function(t){return t.toLowerCase()});for(var e=t.toString().replace(/^\s+/,""),n=e.length-1;n>=0;n--)if(/\S/.test(e.charAt(n))){e=e.substring(0,n+1);break}return e.split(/(?:\s+|\-)/).filter(function(t){return!!t}).map(function(t){return t.toLowerCase()})},t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions={},t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(e){var i=t.Pipeline.registeredFunctions[e];if(!i)throw new Error("Cannot load un-registered function: "+e);n.add(i)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(e){t.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._stack.indexOf(e)+1;this._stack.splice(i,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._stack.indexOf(e);this._stack.splice(i,0,n)},t.Pipeline.prototype.remove=function(t){var e=this._stack.indexOf(t);this._stack.splice(e,1)},t.Pipeline.prototype.run=function(t){for(var e=[],n=t.length,i=this._stack.length,o=0;n>o;o++){for(var r=t[o],s=0;i>s&&(r=this._stack[s](r,o,t),void 0!==r);s++);void 0!==r&&e.push(r)}return e},t.Pipeline.prototype.reset=function(){this._stack=[]},t.Pipeline.prototype.toJSON=function(){return this._stack.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})},t.Vector=function(){this._magnitude=null,this.list=void 0,this.length=0},t.Vector.Node=function(t,e,n){this.idx=t,this.val=e,this.next=n},t.Vector.prototype.insert=function(e,n){var i=this.list;if(!i)return this.list=new t.Vector.Node(e,n,i),this.length++;for(var o=i,r=i.next;void 0!=r;){if(en.idx?n=n.next:(i+=e.val*n.val,e=e.next,n=n.next);return i},t.Vector.prototype.similarity=function(t){return this.dot(t)/(this.magnitude()*t.magnitude())},t.SortedSet=function(){this.length=0,this.elements=[]},t.SortedSet.load=function(t){var e=new this;return e.elements=t,e.length=t.length,e},t.SortedSet.prototype.add=function(){Array.prototype.slice.call(arguments).forEach(function(t){~this.indexOf(t)||this.elements.splice(this.locationFor(t),0,t)},this),this.length=this.elements.length},t.SortedSet.prototype.toArray=function(){return this.elements.slice()},t.SortedSet.prototype.map=function(t,e){return this.elements.map(t,e)},t.SortedSet.prototype.forEach=function(t,e){return this.elements.forEach(t,e)},t.SortedSet.prototype.indexOf=function(t,e,n){var e=e||0,n=n||this.elements.length,i=n-e,o=e+Math.floor(i/2),r=this.elements[o];return 1>=i?r===t?o:-1:t>r?this.indexOf(t,o,n):r>t?this.indexOf(t,e,o):r===t?o:void 0},t.SortedSet.prototype.locationFor=function(t,e,n){var e=e||0,n=n||this.elements.length,i=n-e,o=e+Math.floor(i/2),r=this.elements[o];if(1>=i){if(r>t)return o;if(t>r)return o+1}return t>r?this.locationFor(t,o,n):r>t?this.locationFor(t,e,o):void 0},t.SortedSet.prototype.intersect=function(e){for(var n=new t.SortedSet,i=0,o=0,r=this.length,s=e.length,a=this.elements,h=e.elements;;){if(i>r-1||o>s-1)break;a[i]!==h[o]?a[i]h[o]&&o++:(n.add(a[i]),i++,o++)}return n},t.SortedSet.prototype.clone=function(){var e=new t.SortedSet;return e.elements=this.toArray(),e.length=e.elements.length,e},t.SortedSet.prototype.union=function(t){var e,n,i;return this.length>=t.length?(e=this,n=t):(e=t,n=this),i=e.clone(),i.add.apply(i,n.toArray()),i},t.SortedSet.prototype.toJSON=function(){return this.toArray()},t.Index=function(){this._fields=[],this._ref="id",this.pipeline=new t.Pipeline,this.documentStore=new t.Store,this.tokenStore=new t.TokenStore,this.corpusTokens=new t.SortedSet,this.eventEmitter=new t.EventEmitter,this._idfCache={},this.on("add","remove","update",function(){this._idfCache={}}.bind(this))},t.Index.prototype.on=function(){var t=Array.prototype.slice.call(arguments);return this.eventEmitter.addListener.apply(this.eventEmitter,t)},t.Index.prototype.off=function(t,e){return this.eventEmitter.removeListener(t,e)},t.Index.load=function(e){e.version!==t.version&&t.utils.warn("version mismatch: current "+t.version+" importing "+e.version);var n=new this;return n._fields=e.fields,n._ref=e.ref,n.documentStore=t.Store.load(e.documentStore),n.tokenStore=t.TokenStore.load(e.tokenStore),n.corpusTokens=t.SortedSet.load(e.corpusTokens),n.pipeline=t.Pipeline.load(e.pipeline),n},t.Index.prototype.field=function(t,e){var e=e||{},n={name:t,boost:e.boost||1};return this._fields.push(n),this},t.Index.prototype.ref=function(t){return this._ref=t,this},t.Index.prototype.add=function(e,n){var i={},o=new t.SortedSet,r=e[this._ref],n=void 0===n?!0:n;this._fields.forEach(function(n){var r=this.pipeline.run(t.tokenizer(e[n.name]));i[n.name]=r,t.SortedSet.prototype.add.apply(o,r)},this),this.documentStore.set(r,o),t.SortedSet.prototype.add.apply(this.corpusTokens,o.toArray());for(var s=0;s0&&(i=1+Math.log(this.tokenStore.length/n)),this._idfCache[e]=i},t.Index.prototype.search=function(e){var n=this.pipeline.run(t.tokenizer(e)),i=new t.Vector,o=[],r=this._fields.reduce(function(t,e){return t+e.boost},0),s=n.some(function(t){return this.tokenStore.has(t)},this);if(!s)return[];n.forEach(function(e,n,s){var a=1/s.length*this._fields.length*r,h=this,u=this.tokenStore.expand(e).reduce(function(n,o){var r=h.corpusTokens.indexOf(o),s=h.idf(o),u=1,l=new t.SortedSet;if(o!==e){var c=Math.max(3,o.length-e.length);u=1/Math.log(c)}return r>-1&&i.insert(r,a*s*u),Object.keys(h.tokenStore.get(o)).forEach(function(t){l.add(t)}),n.union(l)},new t.SortedSet);o.push(u)},this);var a=o.reduce(function(t,e){return t.intersect(e)});return a.map(function(t){return{ref:t,score:i.similarity(this.documentVector(t))}},this).sort(function(t,e){return e.score-t.score})},t.Index.prototype.documentVector=function(e){for(var n=this.documentStore.get(e),i=n.length,o=new t.Vector,r=0;i>r;r++){var s=n.elements[r],a=this.tokenStore.get(s)[e].tf,h=this.idf(s);o.insert(this.corpusTokens.indexOf(s),a*h)}return o},t.Index.prototype.toJSON=function(){return{version:t.version,fields:this._fields,ref:this._ref,documentStore:this.documentStore.toJSON(),tokenStore:this.tokenStore.toJSON(),corpusTokens:this.corpusTokens.toJSON(),pipeline:this.pipeline.toJSON()}},t.Index.prototype.use=function(t){var e=Array.prototype.slice.call(arguments,1);e.unshift(this),t.apply(this,e)},t.Store=function(){this.store={},this.length=0},t.Store.load=function(e){var n=new this;return n.length=e.length,n.store=Object.keys(e.store).reduce(function(n,i){return n[i]=t.SortedSet.load(e.store[i]),n},{}),n},t.Store.prototype.set=function(t,e){this.has(t)||this.length++,this.store[t]=e},t.Store.prototype.get=function(t){return this.store[t]},t.Store.prototype.has=function(t){return t in this.store},t.Store.prototype.remove=function(t){this.has(t)&&(delete this.store[t],this.length--)},t.Store.prototype.toJSON=function(){return{store:this.store,length:this.length}},t.stemmer=function(){var t={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},e={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},n="[^aeiou]",i="[aeiouy]",o=n+"[^aeiouy]*",r=i+"[aeiou]*",s="^("+o+")?"+r+o,a="^("+o+")?"+r+o+"("+r+")?$",h="^("+o+")?"+r+o+r+o,u="^("+o+")?"+i,l=new RegExp(s),c=new RegExp(h),p=new RegExp(a),f=new RegExp(u),d=/^(.+?)(ss|i)es$/,v=/^(.+?)([^s])s$/,m=/^(.+?)eed$/,g=/^(.+?)(ed|ing)$/,y=/.$/,S=/(at|bl|iz)$/,w=new RegExp("([^aeiouylsz])\\1$"),x=new RegExp("^"+o+i+"[^aeiouwxy]$"),k=/^(.+?[^aeiou])y$/,b=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,E=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,_=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,O=/^(.+?)(s|t)(ion)$/,F=/^(.+?)e$/,P=/ll$/,T=new RegExp("^"+o+i+"[^aeiouwxy]$"),$=function(n){var i,o,r,s,a,h,u;if(n.length<3)return n;if(r=n.substr(0,1),"y"==r&&(n=r.toUpperCase()+n.substr(1)),s=d,a=v,s.test(n)?n=n.replace(s,"$1$2"):a.test(n)&&(n=n.replace(a,"$1$2")),s=m,a=g,s.test(n)){var $=s.exec(n);s=l,s.test($[1])&&(s=y,n=n.replace(s,""))}else if(a.test(n)){var $=a.exec(n);i=$[1],a=f,a.test(i)&&(n=i,a=S,h=w,u=x,a.test(n)?n+="e":h.test(n)?(s=y,n=n.replace(s,"")):u.test(n)&&(n+="e"))}if(s=k,s.test(n)){var $=s.exec(n);i=$[1],n=i+"i"}if(s=b,s.test(n)){var $=s.exec(n);i=$[1],o=$[2],s=l,s.test(i)&&(n=i+t[o])}if(s=E,s.test(n)){var $=s.exec(n);i=$[1],o=$[2],s=l,s.test(i)&&(n=i+e[o])}if(s=_,a=O,s.test(n)){var $=s.exec(n);i=$[1],s=c,s.test(i)&&(n=i)}else if(a.test(n)){var $=a.exec(n);i=$[1]+$[2],a=c,a.test(i)&&(n=i)}if(s=F,s.test(n)){var $=s.exec(n);i=$[1],s=c,a=p,h=T,(s.test(i)||a.test(i)&&!h.test(i))&&(n=i)}return s=P,a=c,s.test(n)&&a.test(n)&&(s=y,n=n.replace(s,"")),"y"==r&&(n=r.toLowerCase()+n.substr(1)),n};return $}(),t.Pipeline.registerFunction(t.stemmer,"stemmer"),t.stopWordFilter=function(e){return-1===t.stopWordFilter.stopWords.indexOf(e)?e:void 0},t.stopWordFilter.stopWords=new t.SortedSet,t.stopWordFilter.stopWords.length=119,t.stopWordFilter.stopWords.elements=["","a","able","about","across","after","all","almost","also","am","among","an","and","any","are","as","at","be","because","been","but","by","can","cannot","could","dear","did","do","does","either","else","ever","every","for","from","get","got","had","has","have","he","her","hers","him","his","how","however","i","if","in","into","is","it","its","just","least","let","like","likely","may","me","might","most","must","my","neither","no","nor","not","of","off","often","on","only","or","other","our","own","rather","said","say","says","she","should","since","so","some","than","that","the","their","them","then","there","these","they","this","tis","to","too","twas","us","wants","was","we","were","what","when","where","which","while","who","whom","why","will","with","would","yet","you","your"],t.Pipeline.registerFunction(t.stopWordFilter,"stopWordFilter"),t.trimmer=function(t){return t.replace(/^\W+/,"").replace(/\W+$/,"")},t.Pipeline.registerFunction(t.trimmer,"trimmer"),t.TokenStore=function(){this.root={docs:{}},this.length=0},t.TokenStore.load=function(t){var e=new this;return e.root=t.root,e.length=t.length,e},t.TokenStore.prototype.add=function(t,e,n){var n=n||this.root,i=t[0],o=t.slice(1);return i in n||(n[i]={docs:{}}),0===o.length?(n[i].docs[e.ref]=e,void(this.length+=1)):this.add(o,e,n[i])},t.TokenStore.prototype.has=function(t){if(!t)return!1;for(var e=this.root,n=0;n":">",'"':""","'":"'","/":"/"};function escapeHtml(string){return String(string).replace(/[&<>"'\/]/g,function(s){return entityMap[s]})}var whiteRe=/\s*/;var spaceRe=/\s+/;var equalsRe=/\s*=/;var curlyRe=/\s*\}/;var tagRe=/#|\^|\/|>|\{|&|=|!/;function parseTemplate(template,tags){if(!template)return[];var sections=[];var tokens=[];var spaces=[];var hasTag=false;var nonSpace=false;function stripSpace(){if(hasTag&&!nonSpace){while(spaces.length)delete tokens[spaces.pop()]}else{spaces=[]}hasTag=false;nonSpace=false}var openingTagRe,closingTagRe,closingCurlyRe;function compileTags(tags){if(typeof tags==="string")tags=tags.split(spaceRe,2);if(!isArray(tags)||tags.length!==2)throw new Error("Invalid tags: "+tags);openingTagRe=new RegExp(escapeRegExp(tags[0])+"\\s*");closingTagRe=new RegExp("\\s*"+escapeRegExp(tags[1]));closingCurlyRe=new RegExp("\\s*"+escapeRegExp("}"+tags[1]))}compileTags(tags||mustache.tags);var scanner=new Scanner(template);var start,type,value,chr,token,openSection;while(!scanner.eos()){start=scanner.pos;value=scanner.scanUntil(openingTagRe);if(value){for(var i=0,valueLength=value.length;i0?sections[sections.length-1][4]:nestedTokens;break;default:collector.push(token)}}return nestedTokens}function Scanner(string){this.string=string;this.tail=string;this.pos=0}Scanner.prototype.eos=function(){return this.tail===""};Scanner.prototype.scan=function(re){var match=this.tail.match(re);if(!match||match.index!==0)return"";var string=match[0];this.tail=this.tail.substring(string.length);this.pos+=string.length;return string};Scanner.prototype.scanUntil=function(re){var index=this.tail.search(re),match;switch(index){case-1:match=this.tail;this.tail="";break;case 0:match="";break;default:match=this.tail.substring(0,index);this.tail=this.tail.substring(index)}this.pos+=match.length;return match};function Context(view,parentContext){this.view=view;this.cache={".":this.view};this.parent=parentContext}Context.prototype.push=function(view){return new Context(view,this)};Context.prototype.lookup=function(name){var cache=this.cache;var value;if(name in cache){value=cache[name]}else{var context=this,names,index,lookupHit=false;while(context){if(name.indexOf(".")>0){value=context.view;names=name.split(".");index=0;while(value!=null&&index")value=this._renderPartial(token,context,partials,originalTemplate);else if(symbol==="&")value=this._unescapedValue(token,context);else if(symbol==="name")value=this._escapedValue(token,context);else if(symbol==="text")value=this._rawValue(token);if(value!==undefined)buffer+=value}return buffer};Writer.prototype._renderSection=function(token,context,partials,originalTemplate){var self=this;var buffer="";var value=context.lookup(token[1]);function subRender(template){return self.render(template,context,partials)}if(!value)return;if(isArray(value)){for(var j=0,valueLength=value.length;jthis.depCount&&!this.defined){if(G(l)){if(this.events.error&&this.map.isDefine||g.onError!==ca)try{f=i.execCb(c,l,b,f)}catch(d){a=d}else f=i.execCb(c,l,b,f);this.map.isDefine&&void 0===f&&((b=this.module)?f=b.exports:this.usingExports&& +(f=this.exports));if(a)return a.requireMap=this.map,a.requireModules=this.map.isDefine?[this.map.id]:null,a.requireType=this.map.isDefine?"define":"require",w(this.error=a)}else f=l;this.exports=f;if(this.map.isDefine&&!this.ignore&&(r[c]=f,g.onResourceLoad))g.onResourceLoad(i,this.map,this.depMaps);y(c);this.defined=!0}this.defining=!1;this.defined&&!this.defineEmitted&&(this.defineEmitted=!0,this.emit("defined",this.exports),this.defineEmitComplete=!0)}}else this.fetch()}},callPlugin:function(){var a= +this.map,b=a.id,d=p(a.prefix);this.depMaps.push(d);q(d,"defined",u(this,function(f){var l,d;d=m(aa,this.map.id);var e=this.map.name,P=this.map.parentMap?this.map.parentMap.name:null,n=i.makeRequire(a.parentMap,{enableBuildCallback:!0});if(this.map.unnormalized){if(f.normalize&&(e=f.normalize(e,function(a){return c(a,P,!0)})||""),f=p(a.prefix+"!"+e,this.map.parentMap),q(f,"defined",u(this,function(a){this.init([],function(){return a},null,{enabled:!0,ignore:!0})})),d=m(h,f.id)){this.depMaps.push(f); +if(this.events.error)d.on("error",u(this,function(a){this.emit("error",a)}));d.enable()}}else d?(this.map.url=i.nameToUrl(d),this.load()):(l=u(this,function(a){this.init([],function(){return a},null,{enabled:!0})}),l.error=u(this,function(a){this.inited=!0;this.error=a;a.requireModules=[b];B(h,function(a){0===a.map.id.indexOf(b+"_unnormalized")&&y(a.map.id)});w(a)}),l.fromText=u(this,function(f,c){var d=a.name,e=p(d),P=M;c&&(f=c);P&&(M=!1);s(e);t(j.config,b)&&(j.config[d]=j.config[b]);try{g.exec(f)}catch(h){return w(C("fromtexteval", +"fromText eval for "+b+" failed: "+h,h,[b]))}P&&(M=!0);this.depMaps.push(e);i.completeLoad(d);n([d],l)}),f.load(a.name,n,l,j))}));i.enable(d,this);this.pluginMaps[d.id]=d},enable:function(){V[this.map.id]=this;this.enabling=this.enabled=!0;v(this.depMaps,u(this,function(a,b){var c,f;if("string"===typeof a){a=p(a,this.map.isDefine?this.map:this.map.parentMap,!1,!this.skipMap);this.depMaps[b]=a;if(c=m(L,a.id)){this.depExports[b]=c(this);return}this.depCount+=1;q(a,"defined",u(this,function(a){this.defineDep(b, +a);this.check()}));this.errback?q(a,"error",u(this,this.errback)):this.events.error&&q(a,"error",u(this,function(a){this.emit("error",a)}))}c=a.id;f=h[c];!t(L,c)&&(f&&!f.enabled)&&i.enable(a,this)}));B(this.pluginMaps,u(this,function(a){var b=m(h,a.id);b&&!b.enabled&&i.enable(a,this)}));this.enabling=!1;this.check()},on:function(a,b){var c=this.events[a];c||(c=this.events[a]=[]);c.push(b)},emit:function(a,b){v(this.events[a],function(a){a(b)});"error"===a&&delete this.events[a]}};i={config:j,contextName:b, +registry:h,defined:r,urlFetched:S,defQueue:A,Module:Z,makeModuleMap:p,nextTick:g.nextTick,onError:w,configure:function(a){a.baseUrl&&"/"!==a.baseUrl.charAt(a.baseUrl.length-1)&&(a.baseUrl+="/");var b=j.shim,c={paths:!0,bundles:!0,config:!0,map:!0};B(a,function(a,b){c[b]?(j[b]||(j[b]={}),U(j[b],a,!0,!0)):j[b]=a});a.bundles&&B(a.bundles,function(a,b){v(a,function(a){a!==b&&(aa[a]=b)})});a.shim&&(B(a.shim,function(a,c){H(a)&&(a={deps:a});if((a.exports||a.init)&&!a.exportsFn)a.exportsFn=i.makeShimExports(a); +b[c]=a}),j.shim=b);a.packages&&v(a.packages,function(a){var b,a="string"===typeof a?{name:a}:a;b=a.name;a.location&&(j.paths[b]=a.location);j.pkgs[b]=a.name+"/"+(a.main||"main").replace(ia,"").replace(Q,"")});B(h,function(a,b){!a.inited&&!a.map.unnormalized&&(a.map=p(b))});if(a.deps||a.callback)i.require(a.deps||[],a.callback)},makeShimExports:function(a){return function(){var b;a.init&&(b=a.init.apply(ba,arguments));return b||a.exports&&da(a.exports)}},makeRequire:function(a,e){function j(c,d,m){var n, +q;e.enableBuildCallback&&(d&&G(d))&&(d.__requireJsBuild=!0);if("string"===typeof c){if(G(d))return w(C("requireargs","Invalid require call"),m);if(a&&t(L,c))return L[c](h[a.id]);if(g.get)return g.get(i,c,a,j);n=p(c,a,!1,!0);n=n.id;return!t(r,n)?w(C("notloaded",'Module name "'+n+'" has not been loaded yet for context: '+b+(a?"":". Use require([])"))):r[n]}J();i.nextTick(function(){J();q=s(p(null,a));q.skipMap=e.skipMap;q.init(c,d,m,{enabled:!0});D()});return j}e=e||{};U(j,{isBrowser:z,toUrl:function(b){var d, +e=b.lastIndexOf("."),k=b.split("/")[0];if(-1!==e&&(!("."===k||".."===k)||1e.attachEvent.toString().indexOf("[native code"))&& +!Y?(M=!0,e.attachEvent("onreadystatechange",b.onScriptLoad)):(e.addEventListener("load",b.onScriptLoad,!1),e.addEventListener("error",b.onScriptError,!1)),e.src=d,J=e,D?y.insertBefore(e,D):y.appendChild(e),J=null,e;if(ea)try{importScripts(d),b.completeLoad(c)}catch(m){b.onError(C("importscripts","importScripts failed for "+c+" at "+d,m,[c]))}};z&&!q.skipDataMain&&T(document.getElementsByTagName("script"),function(b){y||(y=b.parentNode);if(I=b.getAttribute("data-main"))return s=I,q.baseUrl||(E=s.split("/"), +s=E.pop(),O=E.length?E.join("/")+"/":"./",q.baseUrl=O),s=s.replace(Q,""),g.jsExtRegExp.test(s)&&(s=I),q.deps=q.deps?q.deps.concat(s):[s],!0});define=function(b,c,d){var e,g;"string"!==typeof b&&(d=c,c=b,b=null);H(c)||(d=c,c=null);!c&&G(d)&&(c=[],d.length&&(d.toString().replace(ka,"").replace(la,function(b,d){c.push(d)}),c=(1===d.length?["require"]:["require","exports","module"]).concat(c)));if(M){if(!(e=J))N&&"interactive"===N.readyState||T(document.getElementsByTagName("script"),function(b){if("interactive"=== +b.readyState)return N=b}),e=N;e&&(b||(b=e.getAttribute("data-requiremodule")),g=F[e.getAttribute("data-requirecontext")])}(g?g.defQueue:R).push([b,c,d])};define.amd={jQuery:!0};g.exec=function(b){return eval(b)};g(q)}})(this); diff --git a/mkdocs/js/search-results-template.mustache b/mkdocs/js/search-results-template.mustache new file mode 100644 index 0000000..a8b3862 --- /dev/null +++ b/mkdocs/js/search-results-template.mustache @@ -0,0 +1,4 @@ + diff --git a/mkdocs/js/search.js b/mkdocs/js/search.js new file mode 100644 index 0000000..0bdb5b0 --- /dev/null +++ b/mkdocs/js/search.js @@ -0,0 +1,88 @@ +require([ + base_url + '/mkdocs/js/mustache.min.js', + base_url + '/mkdocs/js/lunr-0.5.7.min.js', + 'text!search-results-template.mustache', + 'text!../search_index.json', +], function (Mustache, lunr, results_template, data) { + "use strict"; + + function getSearchTerm() + { + var sPageURL = window.location.search.substring(1); + var sURLVariables = sPageURL.split('&'); + for (var i = 0; i < sURLVariables.length; i++) + { + var sParameterName = sURLVariables[i].split('='); + if (sParameterName[0] == 'q') + { + return decodeURIComponent(sParameterName[1].replace(/\+/g, '%20')); + } + } + } + + var index = lunr(function () { + this.field('title', {boost: 10}); + this.field('text'); + this.ref('location'); + }); + + data = JSON.parse(data); + var documents = {}; + + for (var i=0; i < data.docs.length; i++){ + var doc = data.docs[i]; + doc.location = base_url + doc.location; + index.add(doc); + documents[doc.location] = doc; + } + + var search = function(){ + + var query = document.getElementById('mkdocs-search-query').value; + var search_results = document.getElementById("mkdocs-search-results"); + while (search_results.firstChild) { + search_results.removeChild(search_results.firstChild); + } + + if(query === ''){ + return; + } + + var results = index.search(query); + + if (results.length > 0){ + for (var i=0; i < results.length; i++){ + var result = results[i]; + doc = documents[result.ref]; + doc.base_url = base_url; + doc.summary = doc.text.substring(0, 200); + var html = Mustache.to_html(results_template, doc); + search_results.insertAdjacentHTML('beforeend', html); + } + } else { + search_results.insertAdjacentHTML('beforeend', "

No results found

"); + } + + if(jQuery){ + /* + * We currently only automatically hide bootstrap models. This + * requires jQuery to work. + */ + jQuery('#mkdocs_search_modal a').click(function(){ + jQuery('#mkdocs_search_modal').modal('hide'); + }) + } + + }; + + var search_input = document.getElementById('mkdocs-search-query'); + + var term = getSearchTerm(); + if (term){ + search_input.value = term; + search(); + } + + search_input.addEventListener("keyup", search); + +}); diff --git a/mkdocs/js/text.js b/mkdocs/js/text.js new file mode 100644 index 0000000..17921b6 --- /dev/null +++ b/mkdocs/js/text.js @@ -0,0 +1,390 @@ +/** + * @license RequireJS text 2.0.12 Copyright (c) 2010-2014, The Dojo Foundation All Rights Reserved. + * Available via the MIT or new BSD license. + * see: http://github.com/requirejs/text for details + */ +/*jslint regexp: true */ +/*global require, XMLHttpRequest, ActiveXObject, + define, window, process, Packages, + java, location, Components, FileUtils */ + +define(['module'], function (module) { + 'use strict'; + + var text, fs, Cc, Ci, xpcIsWindows, + progIds = ['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.4.0'], + xmlRegExp = /^\s*<\?xml(\s)+version=[\'\"](\d)*.(\d)*[\'\"](\s)*\?>/im, + bodyRegExp = /]*>\s*([\s\S]+)\s*<\/body>/im, + hasLocation = typeof location !== 'undefined' && location.href, + defaultProtocol = hasLocation && location.protocol && location.protocol.replace(/\:/, ''), + defaultHostName = hasLocation && location.hostname, + defaultPort = hasLocation && (location.port || undefined), + buildMap = {}, + masterConfig = (module.config && module.config()) || {}; + + text = { + version: '2.0.12', + + strip: function (content) { + //Strips declarations so that external SVG and XML + //documents can be added to a document without worry. Also, if the string + //is an HTML document, only the part inside the body tag is returned. + if (content) { + content = content.replace(xmlRegExp, ""); + var matches = content.match(bodyRegExp); + if (matches) { + content = matches[1]; + } + } else { + content = ""; + } + return content; + }, + + jsEscape: function (content) { + return content.replace(/(['\\])/g, '\\$1') + .replace(/[\f]/g, "\\f") + .replace(/[\b]/g, "\\b") + .replace(/[\n]/g, "\\n") + .replace(/[\t]/g, "\\t") + .replace(/[\r]/g, "\\r") + .replace(/[\u2028]/g, "\\u2028") + .replace(/[\u2029]/g, "\\u2029"); + }, + + createXhr: masterConfig.createXhr || function () { + //Would love to dump the ActiveX crap in here. Need IE 6 to die first. + var xhr, i, progId; + if (typeof XMLHttpRequest !== "undefined") { + return new XMLHttpRequest(); + } else if (typeof ActiveXObject !== "undefined") { + for (i = 0; i < 3; i += 1) { + progId = progIds[i]; + try { + xhr = new ActiveXObject(progId); + } catch (e) {} + + if (xhr) { + progIds = [progId]; // so faster next time + break; + } + } + } + + return xhr; + }, + + /** + * Parses a resource name into its component parts. Resource names + * look like: module/name.ext!strip, where the !strip part is + * optional. + * @param {String} name the resource name + * @returns {Object} with properties "moduleName", "ext" and "strip" + * where strip is a boolean. + */ + parseName: function (name) { + var modName, ext, temp, + strip = false, + index = name.indexOf("."), + isRelative = name.indexOf('./') === 0 || + name.indexOf('../') === 0; + + if (index !== -1 && (!isRelative || index > 1)) { + modName = name.substring(0, index); + ext = name.substring(index + 1, name.length); + } else { + modName = name; + } + + temp = ext || modName; + index = temp.indexOf("!"); + if (index !== -1) { + //Pull off the strip arg. + strip = temp.substring(index + 1) === "strip"; + temp = temp.substring(0, index); + if (ext) { + ext = temp; + } else { + modName = temp; + } + } + + return { + moduleName: modName, + ext: ext, + strip: strip + }; + }, + + xdRegExp: /^((\w+)\:)?\/\/([^\/\\]+)/, + + /** + * Is an URL on another domain. Only works for browser use, returns + * false in non-browser environments. Only used to know if an + * optimized .js version of a text resource should be loaded + * instead. + * @param {String} url + * @returns Boolean + */ + useXhr: function (url, protocol, hostname, port) { + var uProtocol, uHostName, uPort, + match = text.xdRegExp.exec(url); + if (!match) { + return true; + } + uProtocol = match[2]; + uHostName = match[3]; + + uHostName = uHostName.split(':'); + uPort = uHostName[1]; + uHostName = uHostName[0]; + + return (!uProtocol || uProtocol === protocol) && + (!uHostName || uHostName.toLowerCase() === hostname.toLowerCase()) && + ((!uPort && !uHostName) || uPort === port); + }, + + finishLoad: function (name, strip, content, onLoad) { + content = strip ? text.strip(content) : content; + if (masterConfig.isBuild) { + buildMap[name] = content; + } + onLoad(content); + }, + + load: function (name, req, onLoad, config) { + //Name has format: some.module.filext!strip + //The strip part is optional. + //if strip is present, then that means only get the string contents + //inside a body tag in an HTML string. For XML/SVG content it means + //removing the declarations so the content can be inserted + //into the current doc without problems. + + // Do not bother with the work if a build and text will + // not be inlined. + if (config && config.isBuild && !config.inlineText) { + onLoad(); + return; + } + + masterConfig.isBuild = config && config.isBuild; + + var parsed = text.parseName(name), + nonStripName = parsed.moduleName + + (parsed.ext ? '.' + parsed.ext : ''), + url = req.toUrl(nonStripName), + useXhr = (masterConfig.useXhr) || + text.useXhr; + + // Do not load if it is an empty: url + if (url.indexOf('empty:') === 0) { + onLoad(); + return; + } + + //Load the text. Use XHR if possible and in a browser. + if (!hasLocation || useXhr(url, defaultProtocol, defaultHostName, defaultPort)) { + text.get(url, function (content) { + text.finishLoad(name, parsed.strip, content, onLoad); + }, function (err) { + if (onLoad.error) { + onLoad.error(err); + } + }); + } else { + //Need to fetch the resource across domains. Assume + //the resource has been optimized into a JS module. Fetch + //by the module name + extension, but do not include the + //!strip part to avoid file system issues. + req([nonStripName], function (content) { + text.finishLoad(parsed.moduleName + '.' + parsed.ext, + parsed.strip, content, onLoad); + }); + } + }, + + write: function (pluginName, moduleName, write, config) { + if (buildMap.hasOwnProperty(moduleName)) { + var content = text.jsEscape(buildMap[moduleName]); + write.asModule(pluginName + "!" + moduleName, + "define(function () { return '" + + content + + "';});\n"); + } + }, + + writeFile: function (pluginName, moduleName, req, write, config) { + var parsed = text.parseName(moduleName), + extPart = parsed.ext ? '.' + parsed.ext : '', + nonStripName = parsed.moduleName + extPart, + //Use a '.js' file name so that it indicates it is a + //script that can be loaded across domains. + fileName = req.toUrl(parsed.moduleName + extPart) + '.js'; + + //Leverage own load() method to load plugin value, but only + //write out values that do not have the strip argument, + //to avoid any potential issues with ! in file names. + text.load(nonStripName, req, function (value) { + //Use own write() method to construct full module value. + //But need to create shell that translates writeFile's + //write() to the right interface. + var textWrite = function (contents) { + return write(fileName, contents); + }; + textWrite.asModule = function (moduleName, contents) { + return write.asModule(moduleName, fileName, contents); + }; + + text.write(pluginName, nonStripName, textWrite, config); + }, config); + } + }; + + if (masterConfig.env === 'node' || (!masterConfig.env && + typeof process !== "undefined" && + process.versions && + !!process.versions.node && + !process.versions['node-webkit'])) { + //Using special require.nodeRequire, something added by r.js. + fs = require.nodeRequire('fs'); + + text.get = function (url, callback, errback) { + try { + var file = fs.readFileSync(url, 'utf8'); + //Remove BOM (Byte Mark Order) from utf8 files if it is there. + if (file.indexOf('\uFEFF') === 0) { + file = file.substring(1); + } + callback(file); + } catch (e) { + if (errback) { + errback(e); + } + } + }; + } else if (masterConfig.env === 'xhr' || (!masterConfig.env && + text.createXhr())) { + text.get = function (url, callback, errback, headers) { + var xhr = text.createXhr(), header; + xhr.open('GET', url, true); + + //Allow plugins direct access to xhr headers + if (headers) { + for (header in headers) { + if (headers.hasOwnProperty(header)) { + xhr.setRequestHeader(header.toLowerCase(), headers[header]); + } + } + } + + //Allow overrides specified in config + if (masterConfig.onXhr) { + masterConfig.onXhr(xhr, url); + } + + xhr.onreadystatechange = function (evt) { + var status, err; + //Do not explicitly handle errors, those should be + //visible via console output in the browser. + if (xhr.readyState === 4) { + status = xhr.status || 0; + if (status > 399 && status < 600) { + //An http 4xx or 5xx error. Signal an error. + err = new Error(url + ' HTTP status: ' + status); + err.xhr = xhr; + if (errback) { + errback(err); + } + } else { + callback(xhr.responseText); + } + + if (masterConfig.onXhrComplete) { + masterConfig.onXhrComplete(xhr, url); + } + } + }; + xhr.send(null); + }; + } else if (masterConfig.env === 'rhino' || (!masterConfig.env && + typeof Packages !== 'undefined' && typeof java !== 'undefined')) { + //Why Java, why is this so awkward? + text.get = function (url, callback) { + var stringBuffer, line, + encoding = "utf-8", + file = new java.io.File(url), + lineSeparator = java.lang.System.getProperty("line.separator"), + input = new java.io.BufferedReader(new java.io.InputStreamReader(new java.io.FileInputStream(file), encoding)), + content = ''; + try { + stringBuffer = new java.lang.StringBuffer(); + line = input.readLine(); + + // Byte Order Mark (BOM) - The Unicode Standard, version 3.0, page 324 + // http://www.unicode.org/faq/utf_bom.html + + // Note that when we use utf-8, the BOM should appear as "EF BB BF", but it doesn't due to this bug in the JDK: + // http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4508058 + if (line && line.length() && line.charAt(0) === 0xfeff) { + // Eat the BOM, since we've already found the encoding on this file, + // and we plan to concatenating this buffer with others; the BOM should + // only appear at the top of a file. + line = line.substring(1); + } + + if (line !== null) { + stringBuffer.append(line); + } + + while ((line = input.readLine()) !== null) { + stringBuffer.append(lineSeparator); + stringBuffer.append(line); + } + //Make sure we return a JavaScript string and not a Java string. + content = String(stringBuffer.toString()); //String + } finally { + input.close(); + } + callback(content); + }; + } else if (masterConfig.env === 'xpconnect' || (!masterConfig.env && + typeof Components !== 'undefined' && Components.classes && + Components.interfaces)) { + //Avert your gaze! + Cc = Components.classes; + Ci = Components.interfaces; + Components.utils['import']('resource://gre/modules/FileUtils.jsm'); + xpcIsWindows = ('@mozilla.org/windows-registry-key;1' in Cc); + + text.get = function (url, callback) { + var inStream, convertStream, fileObj, + readData = {}; + + if (xpcIsWindows) { + url = url.replace(/\//g, '\\'); + } + + fileObj = new FileUtils.File(url); + + //XPCOM, you so crazy + try { + inStream = Cc['@mozilla.org/network/file-input-stream;1'] + .createInstance(Ci.nsIFileInputStream); + inStream.init(fileObj, 1, 0, false); + + convertStream = Cc['@mozilla.org/intl/converter-input-stream;1'] + .createInstance(Ci.nsIConverterInputStream); + convertStream.init(inStream, "utf-8", inStream.available(), + Ci.nsIConverterInputStream.DEFAULT_REPLACEMENT_CHARACTER); + + convertStream.readString(inStream.available(), readData); + convertStream.close(); + inStream.close(); + callback(readData.value); + } catch (e) { + throw new Error((fileObj && fileObj.path || '') + ': ' + e); + } + }; + } + return text; +}); diff --git a/mkdocs/search_index.json b/mkdocs/search_index.json new file mode 100644 index 0000000..e5154d2 --- /dev/null +++ b/mkdocs/search_index.json @@ -0,0 +1,184 @@ +{ + "docs": [ + { + "location": "/", + "text": "Django REST Framework Docs (DRF Docs) allows you to list all your API Endpoints that inherit from \nDjango REST Framework\n \nautomatically\n. Its purpose is to work out of the box and it should take a minimum to install it.\n\n\n Visit the Demo\n\n\nLive API Endpoints\n\n\nA really useful feature of DRF Docs is that you can also test endpoints from within the docs. Feel free to use our demo and try them! For more information visit the \nLive API Endpoints\n page of the docs.\n\n\n\n\nHow It Works\n\n\nThe concept is pretty simple. Once you \ninstall it\n you should go the the url you set (ie. \nhttp://0.0.0.0:8000/docs/\n) and you should see all your API endpoints along with the serializer fields, allowed methods etc for each one.\n\n\nDRF Docs will then read all your \nurls\n and will list those that inherit from Django REST Framework's \nAPIView\n.", + "title": "Home" + }, + { + "location": "/#live-api-endpoints", + "text": "A really useful feature of DRF Docs is that you can also test endpoints from within the docs. Feel free to use our demo and try them! For more information visit the Live API Endpoints page of the docs.", + "title": "Live API Endpoints" + }, + { + "location": "/#how-it-works", + "text": "The concept is pretty simple. Once you install it you should go the the url you set (ie. http://0.0.0.0:8000/docs/ ) and you should see all your API endpoints along with the serializer fields, allowed methods etc for each one. DRF Docs will then read all your urls and will list those that inherit from Django REST Framework's APIView .", + "title": "How It Works" + }, + { + "location": "/installation/", + "text": "The installation itself should not take more than a couple of minutes. Follow the simple steps below.\n\n\nInstall from PyPI\n\n\npip install drfdocs\n\n\n\nAdd 'rest_framework_docs' to your \nINSTALLED_APPS\n setting:\n\n\nINSTALLED_APPS = (\n ...\n 'rest_framework_docs',\n)\n\n\n\nFinally include the \nrest_framework_docs\n urls in your \nurls.py\n:\n\n\nurlpatterns = [\n ...\n url(r'^docs/', include('rest_framework_docs.urls')),\n]\n\n\n\nYou can now visit \nhttp://0.0.0.0:/8000/docs/\n to view your Web API's docs.", + "title": "Installation" + }, + { + "location": "/installation/#install-from-pypi", + "text": "pip install drfdocs Add 'rest_framework_docs' to your INSTALLED_APPS setting: INSTALLED_APPS = (\n ...\n 'rest_framework_docs',\n) Finally include the rest_framework_docs urls in your urls.py : urlpatterns = [\n ...\n url(r'^docs/', include('rest_framework_docs.urls')),\n] You can now visit http://0.0.0.0:/8000/docs/ to view your Web API's docs.", + "title": "Install from PyPI" + }, + { + "location": "/settings/", + "text": "How to set the settings\n\n\nTo set DRF docs' settings just include the dictionary below in Django's \nsettings.py\n file.\n\n\nREST_FRAMEWORK_DOCS = {\n 'HIDE_DOCS': True\n}\n\n\n\nSettings Description\n\n\nHIDE_DOCS\n\n\nYou can use hidden to prevent your docs from showing up in different environments (ie. Show in development, hide in production). To do so you can use environment variables.\n\n\nREST_FRAMEWORK_DOCS = {\n 'HIDE_DOCS': os.environ.get('HIDE_DRFDOCS', False)\n}\n\n\n\nThen set the value of the environment variable \nHIDE_DRFDOCS\n for each environment (ie. Use \n.env\n files)\n\n\nList of Settings\n\n\n\n\n\n\n\n\nSetting\n\n\nType\n\n\nOptions\n\n\nDefault\n\n\n\n\n\n\n\n\n\n\nHIDE_DOCS\n\n\nBoolean\n\n\nTrue\n, \nFalse\n\n\nFalse", + "title": "Settings" + }, + { + "location": "/settings/#how-to-set-the-settings", + "text": "To set DRF docs' settings just include the dictionary below in Django's settings.py file. REST_FRAMEWORK_DOCS = {\n 'HIDE_DOCS': True\n}", + "title": "How to set the settings" + }, + { + "location": "/settings/#settings-description", + "text": "", + "title": "Settings Description" + }, + { + "location": "/settings/#hide_docs", + "text": "You can use hidden to prevent your docs from showing up in different environments (ie. Show in development, hide in production). To do so you can use environment variables. REST_FRAMEWORK_DOCS = {\n 'HIDE_DOCS': os.environ.get('HIDE_DRFDOCS', False)\n} Then set the value of the environment variable HIDE_DRFDOCS for each environment (ie. Use .env files)", + "title": "HIDE_DOCS" + }, + { + "location": "/settings/#list-of-settings", + "text": "Setting Type Options Default HIDE_DOCS Boolean True , False False", + "title": "List of Settings" + }, + { + "location": "/live-api/", + "text": "What is \"Live API Endpoints\"?\n\n\nLive API Endpoints allow you to test your endpoints from within DRF docs. For each endpoints you can press the little \nplug\n icon which will bring up a modal with all the endpoint's fields and all the relevant information so that you can make a request instantly.\n\n\nIt is still in \nbeta\n so if you face any problems - feel free to open an issue/pull request on GitHub.\n\n\n\n\nThe Live API is made with \nReact\n. For more information on how to hack on them, check the README of the repository.", + "title": "Live API Endpoints" + }, + { + "location": "/live-api/#what-is-live-api-endpoints", + "text": "Live API Endpoints allow you to test your endpoints from within DRF docs. For each endpoints you can press the little plug icon which will bring up a modal with all the endpoint's fields and all the relevant information so that you can make a request instantly. It is still in beta so if you face any problems - feel free to open an issue/pull request on GitHub. The Live API is made with React . For more information on how to hack on them, check the README of the repository.", + "title": "What is \"Live API Endpoints\"?" + }, + { + "location": "/templates/", + "text": "Create the template file\n\n\nTo edit the template you will have to create a \n.html\n file to override the original one. Inside your \ntemplates\n directory create a directory named \nrest_framework_docs\n and inside this create the file \ndocs.html\n. You can then extend/override the default template.\n\n\n{% extends \"rest_framework_docs/base.html\" %}\n\n\n\nDefault Blocks\n\n\nStyles (CSS)\n\n\n{% block style %}\n\n{% endblock %}\n\n\n\nGitHub Badge\n\n\nTo hide the GitHub badge from the page, just override it with an empty block.\n\n\n{% block github_badge %}{% endblock %}\n\n\n\nTitle\n\n\n{% block title %}Project Name{% endblock %}\n\n\n\nLogo\n\n\n{% block logo %}\n DRF Docs\n{% endblock %}\n\n\n\nJumbotron\n\n\n{% block jumbotron %}\n
\n

Project Title

\n

Documentation of the project 'Example'.

\n
\n{% endblock %}\n\n\n\nFooter\n\n\n{% block footer %}\n
\n
\n \n \n \n
\n Copyright \u00a9 2016 Emmanouil Konstantinidis.\n
\n{% endblock %}\n\n\n\nComplete Example\n\n\nFile location: \ntemplates/rest_framework_docs/docs.html\n\n\n{% extends \"rest_framework_docs/base.html\" %}\n\n{% block title %}Project Name{% endblock %}\n{% block logo %}Project Name API Documentation{% endblock %}\n\n{% block jumbotron %}\n
\n

'Project Name' Web API

\n

Documentation of the 'Project Name' Web API.

\n
\n{% endblock %}\n\n{% block footer %}
Copyright \u00a9 2016 Project Name.
{% endblock %}", + "title": "Templates" + }, + { + "location": "/templates/#create-the-template-file", + "text": "To edit the template you will have to create a .html file to override the original one. Inside your templates directory create a directory named rest_framework_docs and inside this create the file docs.html . You can then extend/override the default template. {% extends \"rest_framework_docs/base.html\" %}", + "title": "Create the template file" + }, + { + "location": "/templates/#default-blocks", + "text": "", + "title": "Default Blocks" + }, + { + "location": "/templates/#styles-css", + "text": "{% block style %}\n\n{% endblock %}", + "title": "Styles (CSS)" + }, + { + "location": "/templates/#github-badge", + "text": "To hide the GitHub badge from the page, just override it with an empty block. {% block github_badge %}{% endblock %}", + "title": "GitHub Badge" + }, + { + "location": "/templates/#title", + "text": "{% block title %}Project Name{% endblock %}", + "title": "Title" + }, + { + "location": "/templates/#logo", + "text": "{% block logo %}\n DRF Docs\n{% endblock %}", + "title": "Logo" + }, + { + "location": "/templates/#jumbotron", + "text": "{% block jumbotron %}\n
\n

Project Title

\n

Documentation of the project 'Example'.

\n
\n{% endblock %}", + "title": "Jumbotron" + }, + { + "location": "/templates/#footer", + "text": "{% block footer %}\n
\n
\n \n \n \n
\n Copyright \u00a9 2016 Emmanouil Konstantinidis.\n
\n{% endblock %}", + "title": "Footer" + }, + { + "location": "/templates/#complete-example", + "text": "File location: templates/rest_framework_docs/docs.html {% extends \"rest_framework_docs/base.html\" %}\n\n{% block title %}Project Name{% endblock %}\n{% block logo %}Project Name API Documentation{% endblock %}\n\n{% block jumbotron %}\n
\n

'Project Name' Web API

\n

Documentation of the 'Project Name' Web API.

\n
\n{% endblock %}\n\n{% block footer %}
Copyright \u00a9 2016 Project Name.
{% endblock %}", + "title": "Complete Example" + }, + { + "location": "/contributing/", + "text": "Development\n\n\nIf you want to \nuse the demo\n app to work on this package:\n\n\nIn the project \nrepository\n you can find the demo app(at /demo). It is a project with Django & Django Rest Framework that will allow you to work with this project.\n\n\nFrom the root of the repository:\n\n\n# Create the virtual environment\npyvenv env\n\n# Install requirements\nenv/bin/pip install -r requirements.txt\n\n# Activate the environment\nsource env/bin/activate\n\n# Cd Into the demo\ncd demo/\n\n# Install Django Rest Framework Docs\npip install -e ../\n\n# Run the project\npython manage.py runserver\n\n\n\nNote: You do not need a database or to run migrate.\n\n\nIf you are looking to develop this package with one of your \nown django projects\n:\n\n\npyvenv env\nenv/bin/pip install -r requirements.txt\npip install -e ~/Projects/drf-docs/\n\n\n\nContributing to the project\n\n\n\n\nFork it!\n\n\nCreate your feature branch: \ngit checkout -b my-new-feature\n\n\nCommit your changes: \ngit commit -am 'Add some feature'\n\n\nPush to the branch: \ngit push origin my-new-feature\n\n\nSubmit a pull request\n\n\nMake sure tests are passing\n\n\n\n\nCode of Conduct\n\n\nAs contributors and maintainers of this project, and in the interest of\nfostering an open and welcoming community, we pledge to respect all people who\ncontribute through reporting issues, posting feature requests, updating\ndocumentation, submitting pull requests or patches, and other activities.\n\n\nWe are committed to making participation in this project a harassment-free\nexperience for everyone, regardless of level of experience, gender, gender\nidentity and expression, sexual orientation, disability, personal appearance,\nbody size, race, ethnicity, age, religion, or nationality.\n\n\nExamples of unacceptable behavior by participants include:\n\n\n\n\nThe use of sexualized language or imagery\n\n\nPersonal attacks\n\n\nTrolling or insulting/derogatory comments\n\n\nPublic or private harassment\n\n\nPublishing other's private information, such as physical or electronic\n addresses, without explicit permission\n\n\nOther unethical or unprofessional conduct\n\n\n\n\nProject maintainers have the right and responsibility to remove, edit, or\nreject comments, commits, code, wiki edits, issues, and other contributions\nthat are not aligned to this Code of Conduct, or to ban temporarily or\npermanently any contributor for other behaviors that they deem inappropriate,\nthreatening, offensive, or harmful.\n\n\nBy adopting this Code of Conduct, project maintainers commit themselves to\nfairly and consistently applying these principles to every aspect of managing\nthis project. Project maintainers who do not follow or enforce the Code of\nConduct may be permanently removed from the project team.\n\n\nThis Code of Conduct applies both within project spaces and in public spaces\nwhen an individual is representing the project or its community.\n\n\nInstances of abusive, harassing, or otherwise unacceptable behavior may be\nreported by contacting a project maintainer at manos@iamemmanouil.com. All\ncomplaints will be reviewed and investigated and will result in a response that\nis deemed necessary and appropriate to the circumstances. Maintainers are\nobligated to maintain confidentiality with regard to the reporter of an\nincident.\n\n\nThis Code of Conduct is adapted from the \nContributor Covenant\n,\nversion 1.3.0, available at\n\nhttp://contributor-covenant.org/version/1/3/0/", + "title": "Contributing" + }, + { + "location": "/contributing/#development", + "text": "If you want to use the demo app to work on this package: In the project repository you can find the demo app(at /demo). It is a project with Django & Django Rest Framework that will allow you to work with this project. From the root of the repository: # Create the virtual environment\npyvenv env\n\n# Install requirements\nenv/bin/pip install -r requirements.txt\n\n# Activate the environment\nsource env/bin/activate\n\n# Cd Into the demo\ncd demo/\n\n# Install Django Rest Framework Docs\npip install -e ../\n\n# Run the project\npython manage.py runserver Note: You do not need a database or to run migrate. If you are looking to develop this package with one of your own django projects : pyvenv env\nenv/bin/pip install -r requirements.txt\npip install -e ~/Projects/drf-docs/", + "title": "Development" + }, + { + "location": "/contributing/#contributing-to-the-project", + "text": "Fork it! Create your feature branch: git checkout -b my-new-feature Commit your changes: git commit -am 'Add some feature' Push to the branch: git push origin my-new-feature Submit a pull request Make sure tests are passing", + "title": "Contributing to the project" + }, + { + "location": "/contributing/#code-of-conduct", + "text": "As contributors and maintainers of this project, and in the interest of\nfostering an open and welcoming community, we pledge to respect all people who\ncontribute through reporting issues, posting feature requests, updating\ndocumentation, submitting pull requests or patches, and other activities. We are committed to making participation in this project a harassment-free\nexperience for everyone, regardless of level of experience, gender, gender\nidentity and expression, sexual orientation, disability, personal appearance,\nbody size, race, ethnicity, age, religion, or nationality. Examples of unacceptable behavior by participants include: The use of sexualized language or imagery Personal attacks Trolling or insulting/derogatory comments Public or private harassment Publishing other's private information, such as physical or electronic\n addresses, without explicit permission Other unethical or unprofessional conduct Project maintainers have the right and responsibility to remove, edit, or\nreject comments, commits, code, wiki edits, issues, and other contributions\nthat are not aligned to this Code of Conduct, or to ban temporarily or\npermanently any contributor for other behaviors that they deem inappropriate,\nthreatening, offensive, or harmful. By adopting this Code of Conduct, project maintainers commit themselves to\nfairly and consistently applying these principles to every aspect of managing\nthis project. Project maintainers who do not follow or enforce the Code of\nConduct may be permanently removed from the project team. This Code of Conduct applies both within project spaces and in public spaces\nwhen an individual is representing the project or its community. Instances of abusive, harassing, or otherwise unacceptable behavior may be\nreported by contacting a project maintainer at manos@iamemmanouil.com. All\ncomplaints will be reviewed and investigated and will result in a response that\nis deemed necessary and appropriate to the circumstances. Maintainers are\nobligated to maintain confidentiality with regard to the reporter of an\nincident. This Code of Conduct is adapted from the Contributor Covenant ,\nversion 1.3.0, available at http://contributor-covenant.org/version/1/3/0/", + "title": "Code of Conduct" + }, + { + "location": "/changelog/", + "text": "Release 0.0.10\n\n\n\n\nUse get_serializer_class for Views without serlaizer_class attribute \n#92\n\n\n\n\nRelease 0.0.9\n\n\n\n\nSupport for more types of \nROOT_URLCONF\n\n\nMove docs to \nMKDocs\n\n\n\n\nRelease 0.0.7\n\n\n\n\nFix methods in Live API Endpoints (now compatible with Python 2.7)\n\n\nRemove \n.\n from urls\n\n\nFixed a bug that removes double slashes from the endpoint's url\n\n\n\n\nRelease 0.0.6\n\n\n\n\nIntroducing Live API Endpoints - Test your endpoints from within the docs\n\n\nSetting \nHIDDEN\n is now \nHIDE_DOCS\n\n\n\n\nRelease 0.0.5\n\n\n\n\nSupport both common types of \nROOT_URLCONF\n\n\n\n\nRelease 0.0.4\n\n\n\n\nAllow templates overrides\n\n\nMore template \nblocks\n to be overridden\n\n\nImproved MANIFEST.in\n\n\nExclude \nnode_modules/\n\n\n\n\nRelease 0.0.3\n\n\n\n\nFixes a bug where Django's \ncollectstatic\n command was failing because of Glyphicons\n\n\n\n\nRelease 0.0.2\n\n\n\n\nSearch between endpoint paths\n\n\nDisplay docstring for each endpoint\n\n\n\n\nRelease 0.0.1\n\n\nFirst release of the project to \npypi\n. Features include:\n\n\n\n\nList all endpoints that inherit from DRF's \nAPIView\n\n\nSettings to hide docs view (ie. in Production)\n\n\nOverride Templates\n\n\nSupport for Python 2.7, 3.3, 3.4, 3.5\n\n\nSupport for Django 1.8, 1.9\n\n\nSupport for Django REST Framework 3 and above", + "title": "Changelog" + }, + { + "location": "/changelog/#release-0010", + "text": "Use get_serializer_class for Views without serlaizer_class attribute #92", + "title": "Release 0.0.10" + }, + { + "location": "/changelog/#release-009", + "text": "Support for more types of ROOT_URLCONF Move docs to MKDocs", + "title": "Release 0.0.9" + }, + { + "location": "/changelog/#release-007", + "text": "Fix methods in Live API Endpoints (now compatible with Python 2.7) Remove . from urls Fixed a bug that removes double slashes from the endpoint's url", + "title": "Release 0.0.7" + }, + { + "location": "/changelog/#release-006", + "text": "Introducing Live API Endpoints - Test your endpoints from within the docs Setting HIDDEN is now HIDE_DOCS", + "title": "Release 0.0.6" + }, + { + "location": "/changelog/#release-005", + "text": "Support both common types of ROOT_URLCONF", + "title": "Release 0.0.5" + }, + { + "location": "/changelog/#release-004", + "text": "Allow templates overrides More template blocks to be overridden Improved MANIFEST.in Exclude node_modules/", + "title": "Release 0.0.4" + }, + { + "location": "/changelog/#release-003", + "text": "Fixes a bug where Django's collectstatic command was failing because of Glyphicons", + "title": "Release 0.0.3" + }, + { + "location": "/changelog/#release-002", + "text": "Search between endpoint paths Display docstring for each endpoint", + "title": "Release 0.0.2" + }, + { + "location": "/changelog/#release-001", + "text": "First release of the project to pypi . Features include: List all endpoints that inherit from DRF's APIView Settings to hide docs view (ie. in Production) Override Templates Support for Python 2.7, 3.3, 3.4, 3.5 Support for Django 1.8, 1.9 Support for Django REST Framework 3 and above", + "title": "Release 0.0.1" + } + ] +} \ No newline at end of file diff --git a/docs/template/nav.html b/nav.html similarity index 100% rename from docs/template/nav.html rename to nav.html diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index f449bbb..0000000 --- a/requirements.txt +++ /dev/null @@ -1,5 +0,0 @@ -Django==1.8.7 -djangorestframework==3.3.2 -coverage==4.0.3 -flake8==2.5.1 -mkdocs==0.15.3 diff --git a/rest_framework_docs/__init__.py b/rest_framework_docs/__init__.py deleted file mode 100644 index ad3cf1d..0000000 --- a/rest_framework_docs/__init__.py +++ /dev/null @@ -1 +0,0 @@ -__version__ = '0.0.11' diff --git a/rest_framework_docs/api_docs.py b/rest_framework_docs/api_docs.py deleted file mode 100644 index d14fae4..0000000 --- a/rest_framework_docs/api_docs.py +++ /dev/null @@ -1,46 +0,0 @@ -from importlib import import_module -from django.conf import settings -from django.core.urlresolvers import RegexURLResolver, RegexURLPattern -from django.utils.module_loading import import_string -from rest_framework.views import APIView -from rest_framework_docs.api_endpoint import ApiEndpoint - - -class ApiDocumentation(object): - - def __init__(self, drf_router=None): - self.endpoints = [] - self.drf_router = drf_router - try: - root_urlconf = import_string(settings.ROOT_URLCONF) - except ImportError: - # Handle a case when there's no dot in ROOT_URLCONF - root_urlconf = import_module(settings.ROOT_URLCONF) - if hasattr(root_urlconf, 'urls'): - self.get_all_view_names(root_urlconf.urls.urlpatterns) - else: - self.get_all_view_names(root_urlconf.urlpatterns) - - def get_all_view_names(self, urlpatterns, parent_regex=''): - for pattern in urlpatterns: - if isinstance(pattern, RegexURLResolver): - regex = '' if pattern._regex == "^" else pattern._regex - self.get_all_view_names(urlpatterns=pattern.url_patterns, parent_regex=parent_regex + regex) - elif isinstance(pattern, RegexURLPattern) and self._is_drf_view(pattern) and not self._is_format_endpoint(pattern): - api_endpoint = ApiEndpoint(pattern, parent_regex, self.drf_router) - self.endpoints.append(api_endpoint) - - def _is_drf_view(self, pattern): - """ - Should check whether a pattern inherits from DRF's APIView - """ - return hasattr(pattern.callback, 'cls') and issubclass(pattern.callback.cls, APIView) - - def _is_format_endpoint(self, pattern): - """ - Exclude endpoints with a "format" parameter - """ - return '?P' in pattern._regex - - def get_endpoints(self): - return self.endpoints diff --git a/rest_framework_docs/api_endpoint.py b/rest_framework_docs/api_endpoint.py deleted file mode 100644 index 953f9a0..0000000 --- a/rest_framework_docs/api_endpoint.py +++ /dev/null @@ -1,135 +0,0 @@ -import json -import inspect - -from django.contrib.admindocs.views import simplify_regex -from django.utils.encoding import force_str - -from rest_framework.viewsets import ModelViewSet -from rest_framework.serializers import BaseSerializer - -VIEWSET_METHODS = { - 'List': ['get', 'post'], - 'Instance': ['get', 'put', 'patch', 'delete'], -} - - -class ApiEndpoint(object): - - def __init__(self, pattern, parent_regex=None, drf_router=None): - self.drf_router = drf_router - self.pattern = pattern - self.callback = pattern.callback - # self.name = pattern.name - self.docstring = self.__get_docstring__() - self.name_parent = simplify_regex(parent_regex).strip('/') if parent_regex else None - self.path = self.__get_path__(parent_regex) - self.allowed_methods = self.__get_allowed_methods__() - # self.view_name = pattern.callback.__name__ - self.errors = None - self.serializer_class = self.__get_serializer_class__() - if self.serializer_class: - self.serializer = self.__get_serializer__() - self.fields = self.__get_serializer_fields__(self.serializer) - self.fields_json = self.__get_serializer_fields_json__() - - self.permissions = self.__get_permissions_class__() - - def __get_path__(self, parent_regex): - if parent_regex: - return "/{0}{1}".format(self.name_parent, simplify_regex(self.pattern.regex.pattern)) - return simplify_regex(self.pattern.regex.pattern) - - def is_method_allowed(self, callback_cls, method_name): - has_attr = hasattr(callback_cls, method_name) - viewset_method = (issubclass(callback_cls, ModelViewSet) and - method_name in VIEWSET_METHODS.get(self.callback.suffix, [])) - - return has_attr or viewset_method - - def __get_allowed_methods__(self): - viewset_methods = [] - if self.drf_router: - for prefix, viewset, basename in self.drf_router.registry: - if self.callback.cls != viewset: - continue - - lookup = self.drf_router.get_lookup_regex(viewset) - routes = self.drf_router.get_routes(viewset) - - for route in routes: - - # Only actions which actually exist on the viewset will be bound - mapping = self.drf_router.get_method_map(viewset, route.mapping) - if not mapping: - continue - - # Build the url pattern - regex = route.url.format( - prefix=prefix, - lookup=lookup, - trailing_slash=self.drf_router.trailing_slash - ) - if self.pattern.regex.pattern == regex: - funcs, viewset_methods = zip( - *[(mapping[m], m.upper()) - for m in self.callback.cls.http_method_names - if m in mapping] - ) - viewset_methods = list(viewset_methods) - if len(set(funcs)) == 1: - self.docstring = inspect.getdoc(getattr(self.callback.cls, funcs[0])) - - view_methods = [force_str(m).upper() - for m in self.callback.cls.http_method_names - if self.is_method_allowed(self.callback.cls, m)] - return sorted(viewset_methods + view_methods) - - def __get_docstring__(self): - return inspect.getdoc(self.callback) - - def __get_permissions_class__(self): - for perm_class in self.pattern.callback.cls.permission_classes: - return perm_class.__name__ - - def __get_serializer__(self): - try: - return self.serializer_class() - except KeyError as e: - self.errors = e - - def __get_serializer_class__(self): - if hasattr(self.callback.cls, 'serializer_class'): - return self.callback.cls.serializer_class - - if hasattr(self.callback.cls, 'get_serializer_class'): - return self.callback.cls.get_serializer_class(self.pattern.callback.cls()) - - def __get_serializer_fields__(self, serializer): - fields = [] - - if hasattr(serializer, 'get_fields'): - for key, field in serializer.get_fields().items(): - to_many_relation = True if hasattr(field, 'many') else False - sub_fields = [] - - if to_many_relation: - sub_fields = self.__get_serializer_fields__(field.child) if isinstance(field, BaseSerializer) else None - else: - sub_fields = self.__get_serializer_fields__(field) if isinstance(field, BaseSerializer) else None - - fields.append({ - "name": key, - "type": str(field.__class__.__name__), - "sub_fields": sub_fields, - "required": field.required, - "to_many_relation": to_many_relation - }) - # FIXME: - # Show more attibutes of `field`? - - return fields - - def __get_serializer_fields_json__(self): - # FIXME: - # Return JSON or not? - return json.dumps(self.fields) diff --git a/rest_framework_docs/settings.py b/rest_framework_docs/settings.py deleted file mode 100644 index 2853a7b..0000000 --- a/rest_framework_docs/settings.py +++ /dev/null @@ -1,19 +0,0 @@ -from django.conf import settings - - -class DRFSettings(object): - - def __init__(self): - self.drf_settings = { - "HIDE_DOCS": self.get_setting("HIDE_DOCS") or False - } - - def get_setting(self, name): - try: - return settings.REST_FRAMEWORK_DOCS[name] - except: - return None - - @property - def settings(self): - return self.drf_settings diff --git a/rest_framework_docs/static/.eslintrc b/rest_framework_docs/static/.eslintrc deleted file mode 100644 index e2be5e5..0000000 --- a/rest_framework_docs/static/.eslintrc +++ /dev/null @@ -1,33 +0,0 @@ -{ - "rules": { - "max-len": [1, 120, 2], - "no-undef": 2, - "no-unreachable": 2, - "no-unused-vars": 2, - "no-undef-init": 2, - "no-multiple-empty-lines": [2, {"max": 2}], - "indent": [2, 2], - "semi": 2, - "strict": 0, - "space-after-keywords": 2, - "space-before-keywords": 2, - "space-before-blocks": 2, - "space-before-function-paren": 0, - "space-infix-ops": 2, - "space-return-throw-case": 2, - "space-unary-ops": 2, - "quotes": [1, "single", "avoid-escape"] - }, - "env": { - "browser": true, - "node": true, - "es6": true - }, - "ecmaFeatures": { - "jsx": true, - "modules": true - }, - "plugins": [ - "react" - ] -} diff --git a/rest_framework_docs/static/package.json b/rest_framework_docs/static/package.json deleted file mode 100644 index 8f56ea0..0000000 --- a/rest_framework_docs/static/package.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "name": "django-rest-framework-docs", - "version": "0.0.1", - "description": "Document Web APIs made with Django Rest Framework", - "main": "index.js", - "scripts": { - "build-font-awesome": "cp -r node_modules/font-awesome/fonts rest_framework_docs/", - "build-bootstrap-fonts": "cp -r node_modules/bootstrap/fonts rest_framework_docs/", - "build-js": "webpack", - "build-less": "lessc --clean-css rest_framework_docs/less/style.less rest_framework_docs/css/style.css", - "watch-js": "webpack --progress --colors --watch", - "watch-less": "watch 'npm run build-less' rest_framework_docs/less/", - "watch": "npm run watch-js & npm run watch-less", - "build": "npm run build-font-awesome && npm run build-bootstrap-fonts && npm run build-js && npm run build-less", - "release-js": "webpack --config webpack.rel.config.js", - "release": "npm run build-font-awesome && npm run build-bootstrap-fonts && npm run release-js && npm run build-less", - "start": "npm run build && npm run watch-less", - "lint": "eslint 'rest_framework_docs/js/' --ignore-pattern 'rest_framework_docs/js/dist.min.js'", - "test": "npm run lint" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/ekonstantinidis/django-rest-framework-docs.git" - }, - "keywords": [ - "django", - "rest", - "framework", - "docs" - ], - "author": "Emmanouil Konstantinidis", - "license": "SEE LICENSE IN LICENSE", - "bugs": { - "url": "https://github.com/ekonstantinidis/django-rest-framework-docs/issues" - }, - "homepage": "https://www.drfdocs.com/", - "dependencies": { - "bootstrap": "=3.3.6", - "bootswatch": "=3.3.6", - "font-awesome": "=4.5.0", - "jquery": "=1.11.3", - "react": "=0.14.3", - "react-dom": "=0.14.3", - "superagent": "=1.6.1", - "underscore": "=1.8.3", - "underscore.string": "=3.2.2" - }, - "devDependencies": { - "babel-core": "=6.3.26", - "babel-eslint": "=4.1.6", - "babel-loader": "=6.2.0", - "babel-preset-es2015": "=6.3.13", - "babel-preset-react": "=6.3.13", - "eslint": "=1.10.3", - "eslint-plugin-react": "=3.11.3", - "less": "=2.5.3", - "less-plugin-clean-css": "=1.5.1", - "watch": "=0.16.0", - "webpack": "=1.12.10" - } -} diff --git a/rest_framework_docs/static/rest_framework_docs/css/style.css b/rest_framework_docs/static/rest_framework_docs/css/style.css deleted file mode 100644 index bfe353c..0000000 --- a/rest_framework_docs/static/rest_framework_docs/css/style.css +++ /dev/null @@ -1,8 +0,0 @@ -/*! - * Bootstrap v3.3.6 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */@import url(//fonts.googleapis.com/css?family=ABeeZee);html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{background:0 0!important;color:#000!important;box-shadow:none!important;text-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:transparent}body{font-family:Lato,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:15px;line-height:1.42857143;color:#2C3E50;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#18BC9C;text-decoration:none}a:focus,a:hover{color:#18BC9C;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ecf0f1;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:21px;margin-bottom:21px;border:0;border-top:1px solid #ecf0f1}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:Lato,"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:400;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#b4bcc2}.h1,.h2,.h3,h1,h2,h3{margin-top:21px;margin-bottom:10.5px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10.5px;margin-bottom:10.5px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:39px}.h2,h2{font-size:32px}.h3,h3{font-size:26px}.h4,h4{font-size:19px}.h5,h5{font-size:15px}.h6,h6{font-size:13px}p{margin:0 0 10.5px}.lead{margin-bottom:21px;font-size:17px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:22.5px}}.small,small{font-size:86%}.mark,mark{background-color:#F39C12;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#b4bcc2}.text-primary{color:#2C3E50}a.text-primary:focus,a.text-primary:hover{color:#1a242f}.text-success{color:#fff}a.text-success:focus,a.text-success:hover{color:#e6e6e6}.text-info{color:#fff}a.text-info:focus,a.text-info:hover{color:#e6e6e6}.text-warning{color:#fff}a.text-warning:focus,a.text-warning:hover{color:#e6e6e6}.text-danger{color:#fff}a.text-danger:focus,a.text-danger:hover{color:#e6e6e6}.bg-primary{color:#fff;background-color:#2C3E50}a.bg-primary:focus,a.bg-primary:hover{background-color:#1a242f}.bg-success{background-color:#18BC9C}a.bg-success:focus,a.bg-success:hover{background-color:#128f76}.bg-info{background-color:#3498DB}a.bg-info:focus,a.bg-info:hover{background-color:#217dbb}.bg-warning{background-color:#F39C12}a.bg-warning:focus,a.bg-warning:hover{background-color:#c87f0a}.bg-danger{background-color:#E74C3C}a.bg-danger:focus,a.bg-danger:hover{background-color:#d62c1a}.page-header{padding-bottom:9.5px;margin:42px 0 21px;border-bottom:1px solid transparent}ol,ul{margin-top:0;margin-bottom:10.5px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:21px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #b4bcc2}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10.5px 21px;margin:0 0 21px;font-size:18.75px;border-left:5px solid #ecf0f1}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#b4bcc2}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #ecf0f1;border-left:0;text-align:right}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:21px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;box-shadow:none}pre{display:block;padding:10px;margin:0 0 10.5px;font-size:14px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#7b8a8b;background-color:#ecf0f1;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#b4bcc2;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:21px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ecf0f1}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ecf0f1}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ecf0f1}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ecf0f1}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ecf0f1}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#ecf0f1}table col[class*=col-]{position:static;float:none;display:table-column}table td[class*=col-],table th[class*=col-]{position:static;float:none;display:table-cell}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#ecf0f1}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#dde4e6}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#18BC9C}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#15a589}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#3498DB}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#258cd1}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#F39C12}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#e08e0b}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#E74C3C}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#e43725}.table-responsive{overflow-x:auto;min-height:.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15.75px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ecf0f1}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:21px;font-size:22.5px;line-height:inherit;color:#2C3E50;border:0;border-bottom:1px solid transparent}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:11px;font-size:15px;line-height:1.42857143;color:#2C3E50}.form-control{display:block;width:100%;height:45px;padding:10px 15px;font-size:15px;line-height:1.42857143;color:#2C3E50;background-color:#fff;background-image:none;border:1px solid #dce4ec;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#2C3E50;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(44,62,80,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(44,62,80,.6)}.form-control::-moz-placeholder{color:#acb6c0;opacity:1}.form-control:-ms-input-placeholder{color:#acb6c0}.form-control::-webkit-input-placeholder{color:#acb6c0}.form-control::-ms-expand{border:0;background-color:transparent}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#ecf0f1;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{line-height:45px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:35px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:66px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:21px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-left:-20px;margin-top:4px\9}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.form-control-static{padding-top:11px;padding-bottom:11px;margin-bottom:0;min-height:36px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm{height:35px;padding:6px 9px;font-size:13px;line-height:1.5;border-radius:3px}select.input-sm{height:35px;line-height:35px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:35px;padding:6px 9px;font-size:13px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:35px;line-height:35px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:35px;min-height:34px;padding:7px 9px;font-size:13px;line-height:1.5}.input-lg{height:66px;padding:18px 27px;font-size:19px;line-height:1.3333333;border-radius:6px}select.input-lg{height:66px;line-height:66px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:66px;padding:18px 27px;font-size:19px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:66px;line-height:66px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:66px;min-height:40px;padding:19px 27px;font-size:19px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:56.25px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:45px;height:45px;line-height:45px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:66px;height:66px;line-height:66px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:35px;height:35px;line-height:35px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#fff}.has-success .form-control{border-color:#fff;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#e6e6e6;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #fff;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #fff}.has-success .input-group-addon{color:#fff;border-color:#fff;background-color:#18BC9C}.has-success .form-control-feedback{color:#fff}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#fff}.has-warning .form-control{border-color:#fff;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#e6e6e6;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #fff;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #fff}.has-warning .input-group-addon{color:#fff;border-color:#fff;background-color:#F39C12}.has-warning .form-control-feedback{color:#fff}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#fff}.has-error .form-control{border-color:#fff;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#e6e6e6;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #fff;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #fff}.has-error .input-group-addon{color:#fff;border-color:#fff;background-color:#E74C3C}.has-error .form-control-feedback{color:#fff}.has-feedback label~.form-control-feedback{top:26px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#597ea2}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{margin-top:0;margin-bottom:0;padding-top:11px}.form-horizontal .checkbox,.form-horizontal .radio{min-height:32px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:11px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:19px;font-size:19px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:7px;font-size:13px}}.btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:10px 15px;font-size:15px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#fff;text-decoration:none}.btn.active,.btn:active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#fff;background-color:#95a5a6;border-color:#95a5a6}.btn-default.focus,.btn-default:focus{color:#fff;background-color:#798d8f;border-color:#566566}.btn-default:hover{color:#fff;background-color:#798d8f;border-color:#74898a}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{color:#fff;background-color:#798d8f;border-color:#74898a}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#fff;background-color:#687b7c;border-color:#566566}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#95a5a6;border-color:#95a5a6}.btn-default .badge{color:#95a5a6;background-color:#fff}.btn-primary{color:#fff;background-color:#2C3E50;border-color:#2C3E50}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#1a242f;border-color:#000}.btn-primary:hover{color:#fff;background-color:#1a242f;border-color:#161f29}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#1a242f;border-color:#161f29}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#0d1318;border-color:#000}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#2C3E50;border-color:#2C3E50}.btn-primary .badge{color:#2C3E50;background-color:#fff}.btn-success{color:#fff;background-color:#18BC9C;border-color:#18BC9C}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#128f76;border-color:#0a4b3e}.btn-success:hover{color:#fff;background-color:#128f76;border-color:#11866f}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#128f76;border-color:#11866f}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#0e6f5c;border-color:#0a4b3e}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#18BC9C;border-color:#18BC9C}.btn-success .badge{color:#18BC9C;background-color:#fff}.btn-info{color:#fff;background-color:#3498DB;border-color:#3498DB}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#217dbb;border-color:#16527a}.btn-info:hover{color:#fff;background-color:#217dbb;border-color:#2077b2}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#217dbb;border-color:#2077b2}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#1c699d;border-color:#16527a}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#3498DB;border-color:#3498DB}.btn-info .badge{color:#3498DB;background-color:#fff}.btn-warning{color:#fff;background-color:#F39C12;border-color:#F39C12}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#c87f0a;border-color:#7f5006}.btn-warning:hover{color:#fff;background-color:#c87f0a;border-color:#be780a}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#c87f0a;border-color:#be780a}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#a66908;border-color:#7f5006}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#F39C12;border-color:#F39C12}.btn-warning .badge{color:#F39C12;background-color:#fff}.btn-danger{color:#fff;background-color:#E74C3C;border-color:#E74C3C}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#d62c1a;border-color:#921e12}.btn-danger:hover{color:#fff;background-color:#d62c1a;border-color:#cd2a19}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#d62c1a;border-color:#cd2a19}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#b62516;border-color:#921e12}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#E74C3C;border-color:#E74C3C}.btn-danger .badge{color:#E74C3C;background-color:#fff}.btn-link{color:#18BC9C;font-weight:400;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#18BC9C;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#b4bcc2;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:18px 27px;font-size:19px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:6px 9px;font-size:13px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:13px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height,visibility;transition-property:height,visibility;-webkit-transition-duration:.35s;transition-duration:.35s;-webkit-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:15px;text-align:left;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9.5px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#7b8a8b;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{text-decoration:none;color:#fff;background-color:#2C3E50}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;outline:0;background-color:#2C3E50}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#b4bcc2}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:13px;line-height:1.42857143;color:#b4bcc2;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:66px;padding:18px 27px;font-size:19px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:66px;line-height:66px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:35px;padding:6px 9px;font-size:13px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:35px;line-height:35px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:10px 15px;font-size:15px;font-weight:400;line-height:1;color:#2C3E50;text-align:center;background-color:#ecf0f1;border:1px solid #dce4ec;border-radius:4px}.input-group-addon.input-sm{padding:6px 9px;font-size:13px;border-radius:3px}.input-group-addon.input-lg{padding:18px 27px;font-size:19px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#ecf0f1}.nav>li.disabled>a{color:#b4bcc2}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#b4bcc2;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#ecf0f1;border-color:#18BC9C}.nav .nav-divider{height:1px;margin:9.5px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ecf0f1}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#ecf0f1 #ecf0f1 #ecf0f1}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#2C3E50;background-color:#fff;border:1px solid #ecf0f1;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ecf0f1}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ecf0f1;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#2C3E50}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ecf0f1}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ecf0f1;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:60px;margin-bottom:21px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:19.5px 15px;font-size:19px;line-height:21px;height:60px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:13px;margin-bottom:13px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:9.75px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:21px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:21px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:19.5px;padding-bottom:19.5px}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin-top:7.5px;margin-bottom:7.5px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:7.5px;margin-bottom:7.5px}.navbar-btn.btn-sm{margin-top:12.5px;margin-bottom:12.5px}.navbar-btn.btn-xs{margin-top:19px;margin-bottom:19px}.navbar-text{margin-top:19.5px;margin-bottom:19.5px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}}@media (min-width:768px){.navbar-left{float:left!important;float:left}.navbar-right{float:right!important;float:right;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#2C3E50;border-color:transparent}.navbar-default .navbar-brand{color:#fff}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#18BC9C;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#fff}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#18BC9C;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#fff;background-color:#1a242f}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#1a242f}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#1a242f}.navbar-default .navbar-toggle .icon-bar{background-color:#fff}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:transparent}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{background-color:#1a242f;color:#fff}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#fff}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#18BC9C;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#1a242f}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#fff}.navbar-default .navbar-link:hover{color:#18BC9C}.navbar-default .btn-link{color:#fff}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#18BC9C}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#18BC9C;border-color:transparent}.navbar-inverse .navbar-brand{color:#fff}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#2C3E50;background-color:transparent}.navbar-inverse .navbar-text{color:#fff}.navbar-inverse .navbar-nav>li>a{color:#fff}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#2C3E50;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#15a589}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#128f76}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#128f76}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#149c82}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{background-color:#15a589;color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#fff}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#2C3E50;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#15a589}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-inverse .navbar-link{color:#fff}.navbar-inverse .navbar-link:hover{color:#2C3E50}.navbar-inverse .btn-link{color:#fff}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#2C3E50}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#ccc}.breadcrumb{padding:8px 15px;margin-bottom:21px;list-style:none;background-color:#ecf0f1;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#95a5a6}.pagination{display:inline-block;padding-left:0;margin:21px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:10px 15px;line-height:1.42857143;text-decoration:none;color:#fff;background-color:#18BC9C;border:1px solid transparent;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#fff;background-color:#0f7864;border-color:transparent}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:3;color:#fff;background-color:#0f7864;border-color:transparent;cursor:default}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#ecf0f1;background-color:#3be6c4;border-color:transparent;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:18px 27px;font-size:19px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:6px 9px;font-size:13px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:21px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#18BC9C;border:1px solid transparent;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#0f7864}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#fff;background-color:#18BC9C;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#95a5a6}.label-default[href]:focus,.label-default[href]:hover{background-color:#798d8f}.label-primary{background-color:#2C3E50}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#1a242f}.label-success{background-color:#18BC9C}.label-success[href]:focus,.label-success[href]:hover{background-color:#128f76}.label-info{background-color:#3498DB}.label-info[href]:focus,.label-info[href]:hover{background-color:#217dbb}.label-warning{background-color:#F39C12}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#c87f0a}.label-danger{background-color:#E74C3C}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#d62c1a}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:13px;font-weight:700;color:#fff;line-height:1;vertical-align:middle;white-space:nowrap;text-align:center;background-color:#2C3E50;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#2C3E50;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#ecf0f1}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:23px;font-weight:200}.jumbotron>hr{border-top-color:#cfd9db}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px;padding-left:15px;padding-right:15px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-left:60px;padding-right:60px}.jumbotron .h1,.jumbotron h1{font-size:68px}}.thumbnail{display:block;padding:4px;margin-bottom:21px;line-height:1.42857143;background-color:#fff;border:1px solid #ecf0f1;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-left:auto;margin-right:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#18BC9C}.thumbnail .caption{padding:9px;color:#2C3E50}.alert{padding:15px;margin-bottom:21px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#18BC9C;border-color:#18BC9C;color:#fff}.alert-success hr{border-top-color:#15a589}.alert-success .alert-link{color:#e6e6e6}.alert-info{background-color:#3498DB;border-color:#3498DB;color:#fff}.alert-info hr{border-top-color:#258cd1}.alert-info .alert-link{color:#e6e6e6}.alert-warning{background-color:#F39C12;border-color:#F39C12;color:#fff}.alert-warning hr{border-top-color:#e08e0b}.alert-warning .alert-link{color:#e6e6e6}.alert-danger{background-color:#E74C3C;border-color:#E74C3C;color:#fff}.alert-danger hr{border-top-color:#e43725}.alert-danger .alert-link{color:#e6e6e6}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:21px;margin-bottom:21px;background-color:#ecf0f1;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:13px;line-height:21px;color:#fff;text-align:center;background-color:#2C3E50;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#18BC9C}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#3498DB}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#F39C12}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#E74C3C}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{zoom:1;overflow:hidden}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ecf0f1}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{text-decoration:none;color:#555;background-color:#ecf0f1}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{background-color:#ecf0f1;color:#b4bcc2;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#b4bcc2}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#2C3E50;border-color:#2C3E50}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#8aa4be}.list-group-item-success{color:#fff;background-color:#18BC9C}a.list-group-item-success,button.list-group-item-success{color:#fff}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#fff;background-color:#15a589}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#fff;border-color:#fff}.list-group-item-info{color:#fff;background-color:#3498DB}a.list-group-item-info,button.list-group-item-info{color:#fff}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#fff;background-color:#258cd1}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#fff;border-color:#fff}.list-group-item-warning{color:#fff;background-color:#F39C12}a.list-group-item-warning,button.list-group-item-warning{color:#fff}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#fff;background-color:#e08e0b}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#fff;border-color:#fff}.list-group-item-danger{color:#fff;background-color:#E74C3C}a.list-group-item-danger,button.list-group-item-danger{color:#fff}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#fff;background-color:#e43725}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#fff;border-color:#fff}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:21px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:17px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#ecf0f1;border-top:1px solid #ecf0f1;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-left:15px;padding-right:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ecf0f1}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:21px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ecf0f1}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ecf0f1}.panel-default{border-color:#ecf0f1}.panel-default>.panel-heading{color:#2C3E50;background-color:#ecf0f1;border-color:#ecf0f1}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ecf0f1}.panel-default>.panel-heading .badge{color:#ecf0f1;background-color:#2C3E50}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ecf0f1}.panel-primary{border-color:#2C3E50}.panel-primary>.panel-heading{color:#fff;background-color:#2C3E50;border-color:#2C3E50}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#2C3E50}.panel-primary>.panel-heading .badge{color:#2C3E50;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#2C3E50}.panel-success{border-color:#18BC9C}.panel-success>.panel-heading{color:#fff;background-color:#18BC9C;border-color:#18BC9C}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#18BC9C}.panel-success>.panel-heading .badge{color:#18BC9C;background-color:#fff}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#18BC9C}.panel-info{border-color:#3498DB}.panel-info>.panel-heading{color:#fff;background-color:#3498DB;border-color:#3498DB}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#3498DB}.panel-info>.panel-heading .badge{color:#3498DB;background-color:#fff}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#3498DB}.panel-warning{border-color:#F39C12}.panel-warning>.panel-heading{color:#fff;background-color:#F39C12;border-color:#F39C12}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#F39C12}.panel-warning>.panel-heading .badge{color:#F39C12;background-color:#fff}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#F39C12}.panel-danger{border-color:#E74C3C}.panel-danger>.panel-heading{color:#fff;background-color:#E74C3C;border-color:#E74C3C}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#E74C3C}.panel-danger>.panel-heading .badge{color:#E74C3C;background-color:#fff}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#E74C3C}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#ecf0f1;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:22.5px;font-weight:700;line-height:1;color:#000;text-shadow:none;opacity:.2;filter:alpha(opacity=20)}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:20px}.modal-footer{padding:20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:Lato,"Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:400;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:13px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:Lato,"Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:400;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:15px;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:15px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-moz-transition:-moz-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;-moz-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);left:0}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);left:0}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:.5;filter:alpha(opacity=50);font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);background-color:rgba(0,0,0,0)}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:focus,.carousel-control:hover{outline:0;color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;margin-top:-10px;z-index:5;display:inline-block}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;line-height:1;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #fff;border-radius:10px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{content:" ";display:table}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}}/*! - * Font Awesome 4.5.0 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */@font-face{font-family:FontAwesome;src:url(../fonts/fontawesome-webfont.eot?v=4.5.0);src:url(../fonts/fontawesome-webfont.eot?#iefix&v=4.5.0) format('embedded-opentype'),url(../fonts/fontawesome-webfont.woff2?v=4.5.0) format('woff2'),url(../fonts/fontawesome-webfont.woff?v=4.5.0) format('woff'),url(../fonts/fontawesome-webfont.ttf?v=4.5.0) format('truetype'),url(../fonts/fontawesome-webfont.svg?v=4.5.0#fontawesomeregular) format('svg');font-weight:400;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-close:before,.fa-remove:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-repeat:before,.fa-rotate-right:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-exclamation-triangle:before,.fa-warning:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-floppy-o:before,.fa-save:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-bolt:before,.fa-flash:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-chain-broken:before,.fa-unlink:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:"\f150"}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:"\f151"}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:"\f152"}.fa-eur:before,.fa-euro:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-inr:before,.fa-rupee:before{content:"\f156"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:"\f158"}.fa-krw:before,.fa-won:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-try:before,.fa-turkish-lira:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-bank:before,.fa-institution:before,.fa-university:before{content:"\f19c"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:"\f1c5"}.fa-file-archive-o:before,.fa-file-zip-o:before{content:"\f1c6"}.fa-file-audio-o:before,.fa-file-sound-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-empire:before,.fa-ge:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-paper-plane:before,.fa-send:before{content:"\f1d8"}.fa-paper-plane-o:before,.fa-send-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-bed:before,.fa-hotel:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-y-combinator:before,.fa-yc:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-television:before,.fa-tv:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}body{background-color:#FEFEFE}.navbar{margin-top:20px}.jumbotron{margin:50px 0 40px;text-align:center}.label-required{padding:2px 5px;margin-left:5px}.btn:active,.btn:focus{outline:0!important}.endpoint{padding:5px 20px;margin:0;background-color:#ecf0f1}.endpoint:hover{background-color:#dde4e6}.endpoint:hover .panel-heading{background-color:#dde4e6}.endpoint .panel-heading{padding:5px;cursor:pointer}.endpoint .panel-heading .title{margin-top:6px;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;word-wrap:break-word}.endpoint .panel-heading .title .fa{color:#c0cdd1}.endpoint .panel-heading .methods{margin:10px 0 5px}@media (min-width:992px){.endpoint .panel-heading .methods{text-align:right;margin:0}}.endpoint .panel-heading .methods .method{padding:4px 8px;margin-top:5px;color:#FFF}@media (min-width:992px){.endpoint .panel-heading .methods .method{margin-top:0}}.endpoint .panel-heading .methods .method.get{background-color:#18bc9c}.endpoint .panel-heading .methods .method.post{background-color:#f39c12}.endpoint .panel-heading .methods .method.patch{background-color:#028d94}.endpoint .panel-heading .methods .method.put{background-color:#028d94}.endpoint .panel-heading .methods .method.delete{background-color:#e74c3c}.endpoint .panel-heading .methods .method.options{background-color:#3498db}.endpoint .panel-heading .methods .method.plug{color:#2C3E50;border:1px solid #2C3E50;-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%;-moz-background-clip:padding;-webkit-background-clip:padding-box;background-clip:padding-box;font-size:14px;width:30px;height:29px;margin-left:10px}.endpoint .panel-body{padding:0}.endpoint .panel-body .lead{margin-bottom:5px}.endpoint .panel-body .alert{padding:5px 10px;margin-top:10px}.endpoint .panel-body .fields-desc{margin-bottom:5px}.endpoint .panel-body .fields{list-style-type:square}.endpoint>.panel-heading+.panel-collapse>.panel-body{border:0}.footer{text-align:center;padding:20px;margin-bottom:20px}.footer .links{padding:20px 0}.footer .links .fa{margin:0 10px;font-size:22px}@media (min-width:992px){.modal h3{margin-top:0}}.modal .control-label{padding-top:7px;text-transform:capitalize}.modal .request .section-title{background-color:#ecf0f1;text-align:center;padding:5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-moz-background-clip:padding;-webkit-background-clip:padding-box;background-clip:padding-box}.modal .request .methods .method{color:#FFF;background-color:#b4bcc2;border-left:1px solid #95a5a6}.modal .request .methods .method:first-child{border-left:0}.modal .request .methods .method.get.active{background-color:#18bc9c}.modal .request .methods .method.post.active{background-color:#f39c12}.modal .request .methods .method.patch.active{background-color:#028d94}.modal .request .methods .method.put.active{background-color:#028d94}.modal .request .methods .method.delete.active{background-color:#e74c3c}.modal .request .methods .method.options.active{background-color:#3498db}.modal .request .form-group label .fa{margin-right:5px;color:#E74C3C}.modal .response .status-code{font-weight:300}.modal .response .status-code.status-code-1{background-color:#3498DB}.modal .response .status-code.status-code-2{background-color:#18BC9C}.modal .response .status-code.status-code-3{background-color:#F39C12}.modal .response .status-code.status-code-4{background-color:#E74C3C}.modal .response .status-code.status-code-5{background-color:#2C3E50}.modal .response .status-text{text-transform:capitalize}.modal .response pre{font-size:12px;margin-top:20px}.json-key{color:brown}.json-value{color:navy}.json-string{color:olive}.github-corner:hover .octo-arm{animation:octocat-wave 560ms ease-in-out}@keyframes octocat-wave{0%{transform:rotate(0)}20%{transform:rotate(-25deg)}40%{transform:rotate(10deg)}60%{transform:rotate(-25deg)}80%{transform:rotate(10deg)}100%{transform:rotate(0)}}@media (max-width:768px){.github-corner{display:none}.github-corner:hover .octo-arm{animation:none}.github-corner .octo-arm{animation:octocat-wave 560ms ease-in-out}} \ No newline at end of file diff --git a/rest_framework_docs/static/rest_framework_docs/fonts/FontAwesome.otf b/rest_framework_docs/static/rest_framework_docs/fonts/FontAwesome.otf deleted file mode 100644 index 3ed7f8b..0000000 Binary files a/rest_framework_docs/static/rest_framework_docs/fonts/FontAwesome.otf and /dev/null differ diff --git a/rest_framework_docs/static/rest_framework_docs/fonts/glyphicons-halflings-regular.eot b/rest_framework_docs/static/rest_framework_docs/fonts/glyphicons-halflings-regular.eot deleted file mode 100644 index b93a495..0000000 Binary files a/rest_framework_docs/static/rest_framework_docs/fonts/glyphicons-halflings-regular.eot and /dev/null differ diff --git a/rest_framework_docs/static/rest_framework_docs/fonts/glyphicons-halflings-regular.svg b/rest_framework_docs/static/rest_framework_docs/fonts/glyphicons-halflings-regular.svg deleted file mode 100644 index 94fb549..0000000 --- a/rest_framework_docs/static/rest_framework_docs/fonts/glyphicons-halflings-regular.svg +++ /dev/null @@ -1,288 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/rest_framework_docs/static/rest_framework_docs/fonts/glyphicons-halflings-regular.ttf b/rest_framework_docs/static/rest_framework_docs/fonts/glyphicons-halflings-regular.ttf deleted file mode 100644 index 1413fc6..0000000 Binary files a/rest_framework_docs/static/rest_framework_docs/fonts/glyphicons-halflings-regular.ttf and /dev/null differ diff --git a/rest_framework_docs/static/rest_framework_docs/fonts/glyphicons-halflings-regular.woff b/rest_framework_docs/static/rest_framework_docs/fonts/glyphicons-halflings-regular.woff deleted file mode 100644 index 9e61285..0000000 Binary files a/rest_framework_docs/static/rest_framework_docs/fonts/glyphicons-halflings-regular.woff and /dev/null differ diff --git a/rest_framework_docs/static/rest_framework_docs/fonts/glyphicons-halflings-regular.woff2 b/rest_framework_docs/static/rest_framework_docs/fonts/glyphicons-halflings-regular.woff2 deleted file mode 100644 index 64539b5..0000000 Binary files a/rest_framework_docs/static/rest_framework_docs/fonts/glyphicons-halflings-regular.woff2 and /dev/null differ diff --git a/rest_framework_docs/static/rest_framework_docs/js/components/fields/boolean.js b/rest_framework_docs/static/rest_framework_docs/js/components/fields/boolean.js deleted file mode 100644 index c5ab234..0000000 --- a/rest_framework_docs/static/rest_framework_docs/js/components/fields/boolean.js +++ /dev/null @@ -1,61 +0,0 @@ -var React = require('react'); - -var FieldBoolean = React.createClass({ - getInitialState: function() { - return { - checked: null - }; - }, - - removeField: function (fieldName, event) { - event.preventDefault(); - this.props.removeField(fieldName); - }, - - handleChange: function (value) { - this.props.onChange(value); - }, - - isChecked: function (value) { - if (this.props.value === undefined) return; - return this.props.value === value; - }, - - render: function () { - var labelName = this.props.name.replace('_', ' '); - - return ( -
- -
- - -
-
- ); - } -}); - -module.exports = FieldBoolean; diff --git a/rest_framework_docs/static/rest_framework_docs/js/components/fields/text.js b/rest_framework_docs/static/rest_framework_docs/js/components/fields/text.js deleted file mode 100644 index 7f11c9a..0000000 --- a/rest_framework_docs/static/rest_framework_docs/js/components/fields/text.js +++ /dev/null @@ -1,46 +0,0 @@ -var React = require('react'); - -var FieldText = React.createClass({ - - removeField: function (fieldName, event) { - event.preventDefault(); - this.props.removeField(fieldName); - }, - - handleChange: function (value) { - this.props.onChange(value); - }, - - render: function () { - var labelName = this.props.name.replace('_', ' '); - - return ( -
- -
- -
-
- ); - } -}); - -module.exports = FieldText; diff --git a/rest_framework_docs/static/rest_framework_docs/js/components/helpers/header.js b/rest_framework_docs/static/rest_framework_docs/js/components/helpers/header.js deleted file mode 100644 index 6855518..0000000 --- a/rest_framework_docs/static/rest_framework_docs/js/components/helpers/header.js +++ /dev/null @@ -1,12 +0,0 @@ -var React = require('react'); - -var Header = React.createClass({ - - render: function () { - return ( -
{this.props.title}
- ); - } -}); - -module.exports = Header; diff --git a/rest_framework_docs/static/rest_framework_docs/js/components/liveapi.js b/rest_framework_docs/static/rest_framework_docs/js/components/liveapi.js deleted file mode 100644 index 9e7bb62..0000000 --- a/rest_framework_docs/static/rest_framework_docs/js/components/liveapi.js +++ /dev/null @@ -1,70 +0,0 @@ -var React = require('react'); -var APIRequest = require('superagent'); - -var RequestUtils = require('../utils/request'); -var Request = require('./request'); -var Response = require('./response'); - -var LiveAPIEndpoints = React.createClass({ - - getInitialState: function() { - return { - endpoint: this.props.endpoint, - response: null - }; - }, - - getData: function () { - var method = this.refs.request.state.selectedMethod; - return RequestUtils.shouldIncludeData(method) ? ( - this.refs.request.state.data - ) : null; - }, - - makeRequest: function (event) { - event.preventDefault(); - - var self = this; - var request = this.refs.request.state; - - var headers = {}; - if (this.refs.request.state.headers.authorization) { - headers['Authorization'] = this.refs.request.state.headers.authorization; - }; - - var data = this.getData(); - - // Now Make the Request - APIRequest(request.selectedMethod, request.endpoint.path) - .set(headers) - .send(data) - .end(function (err, res) { - self.setState({ - response: res - }); - }); - }, - - render: function () { - return ( -
-
-
-
- -
-
- -
-
-
-
- - -
-
- ); - } -}); - -module.exports = LiveAPIEndpoints; diff --git a/rest_framework_docs/static/rest_framework_docs/js/components/request.js b/rest_framework_docs/static/rest_framework_docs/js/components/request.js deleted file mode 100644 index 9c7b5e9..0000000 --- a/rest_framework_docs/static/rest_framework_docs/js/components/request.js +++ /dev/null @@ -1,132 +0,0 @@ -var _ = require('underscore'); -var React = require('react'); - -var AddFieldsForm = require('./request/add-fields'); -var Headers = require('./request/headers'); -var Data = require('./request/data'); -var FieldUrl = require('./request/field-url'); -var Methods = require('./request/methods'); - -var Request = React.createClass({ - getInitialState: function () { - return { - data: {}, - endpoint: null, - headers: {}, - selectedMethod: null, - }; - }, - - componentWillMount: function() { - var endpoint = this.props.endpoint; - var headers = this.state.headers; - headers['authorization'] = window.token ? window.token : ''; - - this.setState({ - endpoint: endpoint, - headers: headers, - selectedMethod: endpoint['methods'][0] - }); - }, - - addField: function (fieldName) { - var endpoint = this.state.endpoint; - - // Check if field already exists - if (_.findWhere(endpoint.fields, {'name': fieldName})) return; - - endpoint.fields.push({ - name: fieldName, - required: false, - type: 'text', - isCustom: true - }); - - this.setState({ - endpoint: endpoint - }); - }, - - removeField: function (fieldName) { - var data = this.state.data; - var endpoint = this.state.endpoint; - var fields = endpoint.fields; - - data = _.omit(data, fieldName); - fields = _.without(fields, _.findWhere(fields, {name: fieldName})); - endpoint.fields = fields; - - this.setState({ - data: data, - endpoint: endpoint - }); - }, - - setSelectedMethod: function (method) { - this.setState({ - selectedMethod: method - }); - }, - - handleUrlChange: function (event) { - var endpoint = this.state.endpoint; - endpoint.path = event.target.value; - - this.setState({ - endpoint: endpoint - }); - }, - - handleHeaderChange: function (value, fieldName) { - var headers = this.state.headers; - headers[fieldName] = value; - this.setState({ - headers: headers - }); - }, - - handleDataFieldChange: function (value, fieldName) { - var data = this.state.data; - data[fieldName] = value; - this.setState({ - data: data - }); - }, - - render: function () { - var endpoint = this.state.endpoint; - - return ( -
-

Request

- - - - - - - - - - -
- ); - } -}); - -module.exports = Request; diff --git a/rest_framework_docs/static/rest_framework_docs/js/components/request/add-fields.js b/rest_framework_docs/static/rest_framework_docs/js/components/request/add-fields.js deleted file mode 100644 index a2ba214..0000000 --- a/rest_framework_docs/static/rest_framework_docs/js/components/request/add-fields.js +++ /dev/null @@ -1,65 +0,0 @@ -var React = require('react'); - -var Header = require('../helpers/header'); - -var AddFieldsForm = React.createClass({ - - getInitialState: function() { - return { - fieldName: '' - }; - }, - - addField: function () { - if (this.state.fieldName) { - this.props.onAdd(this.state.fieldName); - this.setState({ - fieldName: '' - }); - } - }, - - handleKeyPress: function (event) { - if (event.key === 'Enter') { - event.preventDefault(); - this.addField(); - } - }, - - handleChange: function (event) { - this.setState({ - fieldName: event.target.value - }); - }, - - render: function () { - return ( -
-
- -
- -
- -
-
- -
-
-
- ); - } -}); - -module.exports = AddFieldsForm; diff --git a/rest_framework_docs/static/rest_framework_docs/js/components/request/data.js b/rest_framework_docs/static/rest_framework_docs/js/components/request/data.js deleted file mode 100644 index 5101922..0000000 --- a/rest_framework_docs/static/rest_framework_docs/js/components/request/data.js +++ /dev/null @@ -1,82 +0,0 @@ -var React = require('react'); - -var FieldText = require('../fields/text'); -var FieldBoolean = require('../fields/boolean'); -var Header = require('../helpers/header'); -var RequestUtils = require('../../utils/request'); - -var Data = React.createClass({ - removeCustomField: function (fieldName) { - this.props.removeCustomField(fieldName); - }, - - handleBooleanChange: function (fieldName, value) { - this.props.onChange(value, fieldName); - }, - - handleTextChange: function (fieldName, event) { - this.props.onChange(event.target.value, fieldName); - }, - - _renderBooleanField: function (field, key) { - var value = this.props.data[field.name]; - - return ( - - ); - }, - - _renderTextInput: function (field, key) { - var value = this.props.data[field.name]; - var type = field.name == 'password' ? 'password' : 'text'; - return ( - - ); - }, - - _renderFields: function () { - return this.props.fields.map(function (field, key) { - - switch (field.type) { - case ('BooleanField'): - return this._renderBooleanField(field, key); - - case ('CharField'): - default: - return this._renderTextInput(field, key); - - } - }, this); - }, - - render: function () { - if (!RequestUtils.shouldIncludeData(this.props.method)) { - return null; - } - - return ( -
- {this.props.fields.length ?
: null} - {this._renderFields()} -
- ); - } -}); - -module.exports = Data; diff --git a/rest_framework_docs/static/rest_framework_docs/js/components/request/field-url.js b/rest_framework_docs/static/rest_framework_docs/js/components/request/field-url.js deleted file mode 100644 index a65ca25..0000000 --- a/rest_framework_docs/static/rest_framework_docs/js/components/request/field-url.js +++ /dev/null @@ -1,39 +0,0 @@ -var React = require('react'); - -var Header = require('../helpers/header'); -var FieldText = require('../fields/text'); - -var FieldUrl = React.createClass({ - - getInitialState: function() { - return { - url: this.props.url - }; - }, - - componentWillReceiveProps: function(nextProps) { - this.setState({ - url: nextProps.url - }); - }, - - handleChange: function (value) { - this.props.onChange(value); - }, - - render: function () { - return ( -
-
- -
- ); - } -}); - -module.exports = FieldUrl; diff --git a/rest_framework_docs/static/rest_framework_docs/js/components/request/headers.js b/rest_framework_docs/static/rest_framework_docs/js/components/request/headers.js deleted file mode 100644 index 87c2dc2..0000000 --- a/rest_framework_docs/static/rest_framework_docs/js/components/request/headers.js +++ /dev/null @@ -1,43 +0,0 @@ -var React = require('react'); - -var Header = require('../helpers/header'); -var FieldText = require('../fields/text'); -var RequestUtils = require('../../utils/request'); - -var Headers = React.createClass({ - - getInitialState: function() { - return { - authorization: this.props.headers.authorization - }; - }, - - handleChange: function (fieldName, event) { - this.props.handleHeaderChange(event.target.value, fieldName); - }, - - componentWillReceiveProps: function(nextProps) { - this.setState({ - authorization: nextProps.headers.authorization - }); - }, - - render: function () { - if (!RequestUtils.shouldAddHeader(this.props.permissions)) { - return null; - } - - return ( -
-
- -
- ); - } -}); - -module.exports = Headers; diff --git a/rest_framework_docs/static/rest_framework_docs/js/components/request/methods.js b/rest_framework_docs/static/rest_framework_docs/js/components/request/methods.js deleted file mode 100644 index 6df5861..0000000 --- a/rest_framework_docs/static/rest_framework_docs/js/components/request/methods.js +++ /dev/null @@ -1,53 +0,0 @@ -var React = require('react'); -var Header = require('../helpers/header'); - -var Methods = React.createClass({ - - getInitialState: function() { - return { - methods: [], - selectedMethod: null - }; - }, - - componentWillMount: function() { - this.setState({ - methods: this.props.methods, - selectedMethod: this.props.selectedMethod - }); - }, - - componentWillReceiveProps: function(nextProps) { - this.setState({ - methods: nextProps.methods, - selectedMethod: nextProps.selectedMethod - }); - }, - - setMethod: function (value) { - this.props.setMethod(value); - }, - - render: function () { - return ( -
-
-
- {this.state.methods.map(function (method, i) { - var methodClass = 'btn btn-sm method ' + method.toLowerCase() + - (this.state.selectedMethod == method ? ' active' : null); - return ( - - ); - }, this)} -
-
- ); - } -}); - -module.exports = Methods; diff --git a/rest_framework_docs/static/rest_framework_docs/js/components/response.js b/rest_framework_docs/static/rest_framework_docs/js/components/response.js deleted file mode 100644 index 130e635..0000000 --- a/rest_framework_docs/static/rest_framework_docs/js/components/response.js +++ /dev/null @@ -1,59 +0,0 @@ -var React = require('react'); - -var JSONpp = require('../utils/jsonpp'); - -var Response = React.createClass({ - - getInitialState: function () { - return { - payload: this.props.payload, - }; - }, - - componentWillReceiveProps: function(nextProps) { - this.setState({ - payload: nextProps.payload - }); - }, - - saveToken: function () { - window.token = 'Token ' + this.state.payload.body.token; - }, - - render: function () { - if (!this.state.payload) { - return ( -
-

Response

-

Awaiting request...

-
- ); - } - - var responseJSON = JSONpp.prettyPrint(this.state.payload.body); - var hasToken = this.state.payload.body ? this.state.payload.body.hasOwnProperty('token') : false; - var statusText = this.state.payload.statusText.toLowerCase(); - var statusCodeFirstChar = String(this.state.payload.status).charAt(0); - var statusCodeClass = 'label status-code pull-right status-code-' + statusCodeFirstChar; - - return ( -
-

Response {this.props.payload.status}

- -
Status: {statusText}
-
- - {hasToken ? ( -
- -
Your token will be lost when you refresh the page.
-
- ) : null} -
- ); - } -}); - -module.exports = Response; diff --git a/rest_framework_docs/static/rest_framework_docs/js/dist.min.js b/rest_framework_docs/static/rest_framework_docs/js/dist.min.js deleted file mode 100644 index d1d8195..0000000 --- a/rest_framework_docs/static/rest_framework_docs/js/dist.min.js +++ /dev/null @@ -1,12 +0,0 @@ -!function(e){function t(o){if(n[o])return n[o].exports;var r=n[o]={exports:{},id:o,loaded:!1};return e[o].call(r.exports,r,r.exports,t),r.loaded=!0,r.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";var o=window.$=window.jQuery=n(1),r=(n(2),n(15)),i=n(16),a=n(173),s=n(174),u={transformMethods:function(e){return e.replace(/\W+/g," ").replace(/^[ ]+|[ ]+$/g,"").split(" ")}};o(".plug").bind("click",function(e){e.stopPropagation(),e.preventDefault(),o("#liveAPIModal").modal("toggle");var t=o(this).data();t.methods=r.isArray(t.methods)?t.methods:u.transformMethods(t.methods),a.render(i.createElement(s,{endpoint:t}),document.getElementById("liveAPIEndpoints"))}),o("#liveAPIModal").on("hidden.bs.modal",function(){a.unmountComponentAtNode(document.getElementById("liveAPIEndpoints"))})},function(e,t,n){var o,r;!function(t,n){"object"==typeof e&&"object"==typeof e.exports?e.exports=t.document?n(t,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return n(e)}:n(t)}("undefined"!=typeof window?window:this,function(n,i){function a(e){var t="length"in e&&e.length,n=ue.type(e);return"function"!==n&&!ue.isWindow(e)&&(!(1!==e.nodeType||!t)||("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e))}function s(e,t,n){if(ue.isFunction(t))return ue.grep(e,function(e,o){return!!t.call(e,o,e)!==n});if(t.nodeType)return ue.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(ve.test(t))return ue.filter(t,e,n);t=ue.filter(t,e)}return ue.grep(e,function(e){return ue.inArray(e,t)>=0!==n})}function u(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}function l(e){var t=_e[e]={};return ue.each(e.match(xe)||[],function(e,n){t[n]=!0}),t}function c(){ye.addEventListener?(ye.removeEventListener("DOMContentLoaded",p,!1),n.removeEventListener("load",p,!1)):(ye.detachEvent("onreadystatechange",p),n.detachEvent("onload",p))}function p(){(ye.addEventListener||"load"===event.type||"complete"===ye.readyState)&&(c(),ue.ready())}function d(e,t,n){if(void 0===n&&1===e.nodeType){var o="data-"+t.replace(ke,"-$1").toLowerCase();if(n=e.getAttribute(o),"string"==typeof n){try{n="true"===n||"false"!==n&&("null"===n?null:+n+""===n?+n:Oe.test(n)?ue.parseJSON(n):n)}catch(r){}ue.data(e,t,n)}else n=void 0}return n}function f(e){var t;for(t in e)if(("data"!==t||!ue.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}function h(e,t,n,o){if(ue.acceptData(e)){var r,i,a=ue.expando,s=e.nodeType,u=s?ue.cache:e,l=s?e[a]:e[a]&&a;if(l&&u[l]&&(o||u[l].data)||void 0!==n||"string"!=typeof t)return l||(l=s?e[a]=J.pop()||ue.guid++:a),u[l]||(u[l]=s?{}:{toJSON:ue.noop}),"object"!=typeof t&&"function"!=typeof t||(o?u[l]=ue.extend(u[l],t):u[l].data=ue.extend(u[l].data,t)),i=u[l],o||(i.data||(i.data={}),i=i.data),void 0!==n&&(i[ue.camelCase(t)]=n),"string"==typeof t?(r=i[t],null==r&&(r=i[ue.camelCase(t)])):r=i,r}}function m(e,t,n){if(ue.acceptData(e)){var o,r,i=e.nodeType,a=i?ue.cache:e,s=i?e[ue.expando]:ue.expando;if(a[s]){if(t&&(o=n?a[s]:a[s].data)){ue.isArray(t)?t=t.concat(ue.map(t,ue.camelCase)):t in o?t=[t]:(t=ue.camelCase(t),t=t in o?[t]:t.split(" ")),r=t.length;for(;r--;)delete o[t[r]];if(n?!f(o):!ue.isEmptyObject(o))return}(n||(delete a[s].data,f(a[s])))&&(i?ue.cleanData([e],!0):ae.deleteExpando||a!=a.window?delete a[s]:a[s]=null)}}}function v(){return!0}function g(){return!1}function y(){try{return ye.activeElement}catch(e){}}function b(e){var t=Fe.split("|"),n=e.createDocumentFragment();if(n.createElement)for(;t.length;)n.createElement(t.pop());return n}function E(e,t){var n,o,r=0,i=typeof e.getElementsByTagName!==Te?e.getElementsByTagName(t||"*"):typeof e.querySelectorAll!==Te?e.querySelectorAll(t||"*"):void 0;if(!i)for(i=[],n=e.childNodes||e;null!=(o=n[r]);r++)!t||ue.nodeName(o,t)?i.push(o):ue.merge(i,E(o,t));return void 0===t||t&&ue.nodeName(e,t)?ue.merge([e],i):i}function N(e){Pe.test(e.type)&&(e.defaultChecked=e.checked)}function C(e,t){return ue.nodeName(e,"table")&&ue.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function x(e){return e.type=(null!==ue.find.attr(e,"type"))+"/"+e.type,e}function _(e){var t=Qe.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function w(e,t){for(var n,o=0;null!=(n=e[o]);o++)ue._data(n,"globalEval",!t||ue._data(t[o],"globalEval"))}function D(e,t){if(1===t.nodeType&&ue.hasData(e)){var n,o,r,i=ue._data(e),a=ue._data(t,i),s=i.events;if(s){delete a.handle,a.events={};for(n in s)for(o=0,r=s[n].length;o")).appendTo(t.documentElement),t=(nt[0].contentWindow||nt[0].contentDocument).document,t.write(),t.close(),n=O(e,t),nt.detach()),ot[e]=n),n}function S(e,t){return{get:function(){var n=e();if(null!=n)return n?void delete this.get:(this.get=t).apply(this,arguments)}}}function M(e,t){if(t in e)return t;for(var n=t.charAt(0).toUpperCase()+t.slice(1),o=t,r=vt.length;r--;)if(t=vt[r]+n,t in e)return t;return o}function I(e,t){for(var n,o,r,i=[],a=0,s=e.length;a=0&&n=0},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},isPlainObject:function(e){var t;if(!e||"object"!==ue.type(e)||e.nodeType||ue.isWindow(e))return!1;try{if(e.constructor&&!ie.call(e,"constructor")&&!ie.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}if(ae.ownLast)for(t in e)return ie.call(e,t);for(t in e);return void 0===t||ie.call(e,t)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?oe[re.call(e)]||"object":typeof e},globalEval:function(e){e&&ue.trim(e)&&(n.execScript||function(e){n.eval.call(n,e)})(e)},camelCase:function(e){return e.replace(ce,"ms-").replace(pe,de)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var o,r=0,i=e.length,s=a(e);if(n){if(s)for(;rC.cacheLength&&delete e[t.shift()],e[n+" "]=o}var t=[];return e}function o(e){return e[U]=!0,e}function r(e){var t=I.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function i(e,t){for(var n=e.split("|"),o=e.length;o--;)C.attrHandle[n[o]]=t}function a(e,t){var n=t&&e,o=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||K)-(~e.sourceIndex||K);if(o)return o;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function s(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function u(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function l(e){return o(function(t){return t=+t,o(function(n,o){for(var r,i=e([],n.length,t),a=i.length;a--;)n[r=i[a]]&&(n[r]=!(o[r]=n[r]))})})}function c(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function p(){}function d(e){for(var t=0,n=e.length,o="";t1?function(t,n,o){for(var r=e.length;r--;)if(!e[r](t,n,o))return!1;return!0}:e[0]}function m(e,n,o){for(var r=0,i=n.length;r-1&&(o[l]=!(a[l]=p))}}else b=v(b===a?b.splice(h,b.length):b),i?i(null,a,b,u):J.apply(a,b)})}function y(e){for(var t,n,o,r=e.length,i=C.relative[e[0].type],a=i||C.relative[" "],s=i?1:0,u=f(function(e){return e===t},a,!0),l=f(function(e){return ee(t,e)>-1},a,!0),c=[function(e,n,o){var r=!i&&(o||n!==O)||((t=n).nodeType?u(e,n,o):l(e,n,o));return t=null,r}];s1&&h(c),s>1&&d(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(ue,"$1"),n,s0,i=e.length>0,a=function(o,a,s,u,l){var c,p,d,f=0,h="0",m=o&&[],g=[],y=O,b=o||i&&C.find.TAG("*",l),E=B+=null==y?1:Math.random()||.1,N=b.length;for(l&&(O=a!==I&&a);h!==N&&null!=(c=b[h]);h++){if(i&&c){for(p=0;d=e[p++];)if(d(c,a,s)){u.push(c);break}l&&(B=E)}r&&((c=!d&&c)&&f--,o&&m.push(c))}if(f+=h,r&&h!==f){for(p=0;d=n[p++];)d(m,g,a,s);if(o){if(f>0)for(;h--;)m[h]||g[h]||(g[h]=G.call(u));g=v(g)}J.apply(u,g),l&&!o&&g.length>0&&f+n.length>1&&t.uniqueSort(u)}return l&&(B=E,O=y),m};return r?o(a):a}var E,N,C,x,_,w,D,T,O,k,S,M,I,R,P,A,L,V,j,U="sizzle"+1*new Date,F=e.document,B=0,$=0,H=n(),q=n(),W=n(),z=function(e,t){return e===t&&(S=!0),0},K=1<<31,Y={}.hasOwnProperty,X=[],G=X.pop,Q=X.push,J=X.push,Z=X.slice,ee=function(e,t){for(var n=0,o=e.length;n+~]|"+ne+")"+ne+"*"),pe=new RegExp("="+ne+"*([^\\]'\"]*?)"+ne+"*\\]","g"),de=new RegExp(ae),fe=new RegExp("^"+re+"$"),he={ID:new RegExp("^#("+oe+")"),CLASS:new RegExp("^\\.("+oe+")"),TAG:new RegExp("^("+oe.replace("w","w*")+")"),ATTR:new RegExp("^"+ie),PSEUDO:new RegExp("^"+ae),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ne+"*(even|odd|(([+-]|)(\\d*)n|)"+ne+"*(?:([+-]|)"+ne+"*(\\d+)|))"+ne+"*\\)|)","i"),bool:new RegExp("^(?:"+te+")$","i"),needsContext:new RegExp("^"+ne+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ne+"*((?:-\\d)?\\d*)"+ne+"*\\)|)(?=[^-]|$)","i")},me=/^(?:input|select|textarea|button)$/i,ve=/^h\d$/i,ge=/^[^{]+\{\s*\[native \w/,ye=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,be=/[+~]/,Ee=/'|\\/g,Ne=new RegExp("\\\\([\\da-f]{1,6}"+ne+"?|("+ne+")|.)","ig"),Ce=function(e,t,n){var o="0x"+t-65536;return o!==o||n?t:o<0?String.fromCharCode(o+65536):String.fromCharCode(o>>10|55296,1023&o|56320)},xe=function(){M()};try{J.apply(X=Z.call(F.childNodes),F.childNodes),X[F.childNodes.length].nodeType}catch(_e){J={apply:X.length?function(e,t){Q.apply(e,Z.call(t))}:function(e,t){for(var n=e.length,o=0;e[n++]=t[o++];);e.length=n-1}}}N=t.support={},_=t.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},M=t.setDocument=function(e){var t,n,o=e?e.ownerDocument||e:F;return o!==I&&9===o.nodeType&&o.documentElement?(I=o,R=o.documentElement,n=o.defaultView,n&&n!==n.top&&(n.addEventListener?n.addEventListener("unload",xe,!1):n.attachEvent&&n.attachEvent("onunload",xe)),P=!_(o),N.attributes=r(function(e){return e.className="i",!e.getAttribute("className")}),N.getElementsByTagName=r(function(e){return e.appendChild(o.createComment("")),!e.getElementsByTagName("*").length}),N.getElementsByClassName=ge.test(o.getElementsByClassName),N.getById=r(function(e){return R.appendChild(e).id=U,!o.getElementsByName||!o.getElementsByName(U).length}),N.getById?(C.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&P){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},C.filter.ID=function(e){var t=e.replace(Ne,Ce);return function(e){return e.getAttribute("id")===t}}):(delete C.find.ID,C.filter.ID=function(e){var t=e.replace(Ne,Ce);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}}),C.find.TAG=N.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):N.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,o=[],r=0,i=t.getElementsByTagName(e);if("*"===e){for(;n=i[r++];)1===n.nodeType&&o.push(n);return o}return i},C.find.CLASS=N.getElementsByClassName&&function(e,t){if(P)return t.getElementsByClassName(e)},L=[],A=[],(N.qsa=ge.test(o.querySelectorAll))&&(r(function(e){R.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&A.push("[*^$]="+ne+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||A.push("\\["+ne+"*(?:value|"+te+")"),e.querySelectorAll("[id~="+U+"-]").length||A.push("~="),e.querySelectorAll(":checked").length||A.push(":checked"),e.querySelectorAll("a#"+U+"+*").length||A.push(".#.+[+~]")}),r(function(e){var t=o.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&A.push("name"+ne+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||A.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),A.push(",.*:")})),(N.matchesSelector=ge.test(V=R.matches||R.webkitMatchesSelector||R.mozMatchesSelector||R.oMatchesSelector||R.msMatchesSelector))&&r(function(e){N.disconnectedMatch=V.call(e,"div"),V.call(e,"[s!='']:x"),L.push("!=",ae)}),A=A.length&&new RegExp(A.join("|")),L=L.length&&new RegExp(L.join("|")),t=ge.test(R.compareDocumentPosition),j=t||ge.test(R.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,o=t&&t.parentNode;return e===o||!(!o||1!==o.nodeType||!(n.contains?n.contains(o):e.compareDocumentPosition&&16&e.compareDocumentPosition(o)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},z=t?function(e,t){if(e===t)return S=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n?n:(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&n||!N.sortDetached&&t.compareDocumentPosition(e)===n?e===o||e.ownerDocument===F&&j(F,e)?-1:t===o||t.ownerDocument===F&&j(F,t)?1:k?ee(k,e)-ee(k,t):0:4&n?-1:1)}:function(e,t){if(e===t)return S=!0,0;var n,r=0,i=e.parentNode,s=t.parentNode,u=[e],l=[t];if(!i||!s)return e===o?-1:t===o?1:i?-1:s?1:k?ee(k,e)-ee(k,t):0;if(i===s)return a(e,t);for(n=e;n=n.parentNode;)u.unshift(n);for(n=t;n=n.parentNode;)l.unshift(n);for(;u[r]===l[r];)r++;return r?a(u[r],l[r]):u[r]===F?-1:l[r]===F?1:0},o):I},t.matches=function(e,n){return t(e,null,null,n)},t.matchesSelector=function(e,n){if((e.ownerDocument||e)!==I&&M(e),n=n.replace(pe,"='$1']"),N.matchesSelector&&P&&(!L||!L.test(n))&&(!A||!A.test(n)))try{var o=V.call(e,n);if(o||N.disconnectedMatch||e.document&&11!==e.document.nodeType)return o}catch(r){}return t(n,I,null,[e]).length>0},t.contains=function(e,t){return(e.ownerDocument||e)!==I&&M(e),j(e,t)},t.attr=function(e,t){(e.ownerDocument||e)!==I&&M(e);var n=C.attrHandle[t.toLowerCase()],o=n&&Y.call(C.attrHandle,t.toLowerCase())?n(e,t,!P):void 0;return void 0!==o?o:N.attributes||!P?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},t.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},t.uniqueSort=function(e){var t,n=[],o=0,r=0;if(S=!N.detectDuplicates,k=!N.sortStable&&e.slice(0),e.sort(z),S){for(;t=e[r++];)t===e[r]&&(o=n.push(r));for(;o--;)e.splice(n[o],1)}return k=null,e},x=t.getText=function(e){var t,n="",o=0,r=e.nodeType;if(r){if(1===r||9===r||11===r){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=x(e)}else if(3===r||4===r)return e.nodeValue}else for(;t=e[o++];)n+=x(t);return n},C=t.selectors={cacheLength:50,createPseudo:o,match:he,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(Ne,Ce),e[3]=(e[3]||e[4]||e[5]||"").replace(Ne,Ce),"~="===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]||t.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]&&t.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return he.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&de.test(n)&&(t=w(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(Ne,Ce).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=H[e+" "];return t||(t=new RegExp("(^|"+ne+")"+e+"("+ne+"|$)"))&&H(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,n,o){return function(r){var i=t.attr(r,e);return null==i?"!="===n:!n||(i+="","="===n?i===o:"!="===n?i!==o:"^="===n?o&&0===i.indexOf(o):"*="===n?o&&i.indexOf(o)>-1:"$="===n?o&&i.slice(-o.length)===o:"~="===n?(" "+i.replace(se," ")+" ").indexOf(o)>-1:"|="===n&&(i===o||i.slice(0,o.length+1)===o+"-"))}},CHILD:function(e,t,n,o,r){var i="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===o&&0===r?function(e){return!!e.parentNode}:function(t,n,u){var l,c,p,d,f,h,m=i!==a?"nextSibling":"previousSibling",v=t.parentNode,g=s&&t.nodeName.toLowerCase(),y=!u&&!s;if(v){if(i){for(;m;){for(p=t;p=p[m];)if(s?p.nodeName.toLowerCase()===g:1===p.nodeType)return!1;h=m="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?v.firstChild:v.lastChild],a&&y){for(c=v[U]||(v[U]={}),l=c[e]||[],f=l[0]===B&&l[1],d=l[0]===B&&l[2],p=f&&v.childNodes[f];p=++f&&p&&p[m]||(d=f=0)||h.pop();)if(1===p.nodeType&&++d&&p===t){c[e]=[B,f,d];break}}else if(y&&(l=(t[U]||(t[U]={}))[e])&&l[0]===B)d=l[1];else for(;(p=++f&&p&&p[m]||(d=f=0)||h.pop())&&((s?p.nodeName.toLowerCase()!==g:1!==p.nodeType)||!++d||(y&&((p[U]||(p[U]={}))[e]=[B,d]),p!==t)););return d-=r,d===o||d%o===0&&d/o>=0}}},PSEUDO:function(e,n){var r,i=C.pseudos[e]||C.setFilters[e.toLowerCase()]||t.error("unsupported pseudo: "+e);return i[U]?i(n):i.length>1?(r=[e,e,"",n],C.setFilters.hasOwnProperty(e.toLowerCase())?o(function(e,t){for(var o,r=i(e,n),a=r.length;a--;)o=ee(e,r[a]),e[o]=!(t[o]=r[a])}):function(e){return i(e,0,r)}):i}},pseudos:{not:o(function(e){var t=[],n=[],r=D(e.replace(ue,"$1"));return r[U]?o(function(e,t,n,o){for(var i,a=r(e,null,o,[]),s=e.length;s--;)(i=a[s])&&(e[s]=!(t[s]=i))}):function(e,o,i){return t[0]=e,r(t,null,i,n),t[0]=null,!n.pop()}}),has:o(function(e){return function(n){return t(e,n).length>0}}),contains:o(function(e){return e=e.replace(Ne,Ce),function(t){return(t.textContent||t.innerText||x(t)).indexOf(e)>-1}}),lang:o(function(e){return fe.test(e||"")||t.error("unsupported lang: "+e),e=e.replace(Ne,Ce).toLowerCase(),function(t){var n;do if(n=P?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===R},focus:function(e){return e===I.activeElement&&(!I.hasFocus||I.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!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,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!C.pseudos.empty(e)},header:function(e){return ve.test(e.nodeName)},input:function(e){return me.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:l(function(){return[0]}),last:l(function(e,t){return[t-1]}),eq:l(function(e,t,n){ -return[n<0?n+t:n]}),even:l(function(e,t){for(var n=0;n=0;)e.push(o);return e}),gt:l(function(e,t,n){for(var o=n<0?n+t:n;++o2&&"ID"===(a=i[0]).type&&N.getById&&9===t.nodeType&&P&&C.relative[i[1].type]){if(t=(C.find.ID(a.matches[0].replace(Ne,Ce),t)||[])[0],!t)return n;l&&(t=t.parentNode),e=e.slice(i.shift().value.length)}for(r=he.needsContext.test(e)?0:i.length;r--&&(a=i[r],!C.relative[s=a.type]);)if((u=C.find[s])&&(o=u(a.matches[0].replace(Ne,Ce),be.test(i[0].type)&&c(t.parentNode)||t))){if(i.splice(r,1),e=o.length&&d(i),!e)return J.apply(n,o),n;break}}return(l||D(e,p))(o,t,!P,n,be.test(e)&&c(t.parentNode)||t),n},N.sortStable=U.split("").sort(z).join("")===U,N.detectDuplicates=!!S,M(),N.sortDetached=r(function(e){return 1&e.compareDocumentPosition(I.createElement("div"))}),r(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||i("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),N.attributes&&r(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||i("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),r(function(e){return null==e.getAttribute("disabled")})||i(te,function(e,t,n){var o;if(!n)return e[t]===!0?t.toLowerCase():(o=e.getAttributeNode(t))&&o.specified?o.value:null}),t}(n);ue.find=fe,ue.expr=fe.selectors,ue.expr[":"]=ue.expr.pseudos,ue.unique=fe.uniqueSort,ue.text=fe.getText,ue.isXMLDoc=fe.isXML,ue.contains=fe.contains;var he=ue.expr.match.needsContext,me=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,ve=/^.[^:#\[\.,]*$/;ue.filter=function(e,t,n){var o=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===o.nodeType?ue.find.matchesSelector(o,e)?[o]:[]:ue.find.matches(e,ue.grep(t,function(e){return 1===e.nodeType}))},ue.fn.extend({find:function(e){var t,n=[],o=this,r=o.length;if("string"!=typeof e)return this.pushStack(ue(e).filter(function(){for(t=0;t1?ue.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},filter:function(e){return this.pushStack(s(this,e||[],!1))},not:function(e){return this.pushStack(s(this,e||[],!0))},is:function(e){return!!s(this,"string"==typeof e&&he.test(e)?ue(e):e||[],!1).length}});var ge,ye=n.document,be=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,Ee=ue.fn.init=function(e,t){var n,o;if(!e)return this;if("string"==typeof e){if(n="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:be.exec(e),!n||!n[1]&&t)return!t||t.jquery?(t||ge).find(e):this.constructor(t).find(e);if(n[1]){if(t=t instanceof ue?t[0]:t,ue.merge(this,ue.parseHTML(n[1],t&&t.nodeType?t.ownerDocument||t:ye,!0)),me.test(n[1])&&ue.isPlainObject(t))for(n in t)ue.isFunction(this[n])?this[n](t[n]):this.attr(n,t[n]);return this}if(o=ye.getElementById(n[2]),o&&o.parentNode){if(o.id!==n[2])return ge.find(e);this.length=1,this[0]=o}return this.context=ye,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):ue.isFunction(e)?"undefined"!=typeof ge.ready?ge.ready(e):e(ue):(void 0!==e.selector&&(this.selector=e.selector,this.context=e.context),ue.makeArray(e,this))};Ee.prototype=ue.fn,ge=ue(ye);var Ne=/^(?:parents|prev(?:Until|All))/,Ce={children:!0,contents:!0,next:!0,prev:!0};ue.extend({dir:function(e,t,n){for(var o=[],r=e[t];r&&9!==r.nodeType&&(void 0===n||1!==r.nodeType||!ue(r).is(n));)1===r.nodeType&&o.push(r),r=r[t];return o},sibling:function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}}),ue.fn.extend({has:function(e){var t,n=ue(e,this),o=n.length;return this.filter(function(){for(t=0;t-1:1===n.nodeType&&ue.find.matchesSelector(n,e))){i.push(n);break}return this.pushStack(i.length>1?ue.unique(i):i)},index:function(e){return e?"string"==typeof e?ue.inArray(this[0],ue(e)):ue.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(ue.unique(ue.merge(this.get(),ue(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),ue.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return ue.dir(e,"parentNode")},parentsUntil:function(e,t,n){return ue.dir(e,"parentNode",n)},next:function(e){return u(e,"nextSibling")},prev:function(e){return u(e,"previousSibling")},nextAll:function(e){return ue.dir(e,"nextSibling")},prevAll:function(e){return ue.dir(e,"previousSibling")},nextUntil:function(e,t,n){return ue.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return ue.dir(e,"previousSibling",n)},siblings:function(e){return ue.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return ue.sibling(e.firstChild)},contents:function(e){return ue.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:ue.merge([],e.childNodes)}},function(e,t){ue.fn[e]=function(n,o){var r=ue.map(this,t,n);return"Until"!==e.slice(-5)&&(o=n),o&&"string"==typeof o&&(r=ue.filter(o,r)),this.length>1&&(Ce[e]||(r=ue.unique(r)),Ne.test(e)&&(r=r.reverse())),this.pushStack(r)}});var xe=/\S+/g,_e={};ue.Callbacks=function(e){e="string"==typeof e?_e[e]||l(e):ue.extend({},e);var t,n,o,r,i,a,s=[],u=!e.once&&[],c=function(l){for(n=e.memory&&l,o=!0,i=a||0,a=0,r=s.length,t=!0;s&&i-1;)s.splice(o,1),t&&(o<=r&&r--,o<=i&&i--)}),this},has:function(e){return e?ue.inArray(e,s)>-1:!(!s||!s.length)},empty:function(){return s=[],r=0,this},disable:function(){return s=u=n=void 0,this},disabled:function(){return!s},lock:function(){return u=void 0,n||p.disable(),this},locked:function(){return!u},fireWith:function(e,n){return!s||o&&!u||(n=n||[],n=[e,n.slice?n.slice():n],t?u.push(n):c(n)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!o}};return p},ue.extend({Deferred:function(e){var t=[["resolve","done",ue.Callbacks("once memory"),"resolved"],["reject","fail",ue.Callbacks("once memory"),"rejected"],["notify","progress",ue.Callbacks("memory")]],n="pending",o={state:function(){return n},always:function(){return r.done(arguments).fail(arguments),this},then:function(){var e=arguments;return ue.Deferred(function(n){ue.each(t,function(t,i){var a=ue.isFunction(e[t])&&e[t];r[i[1]](function(){var e=a&&a.apply(this,arguments);e&&ue.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[i[0]+"With"](this===o?n.promise():this,a?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?ue.extend(e,o):o}},r={};return o.pipe=o.then,ue.each(t,function(e,i){var a=i[2],s=i[3];o[i[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),r[i[0]]=function(){return r[i[0]+"With"](this===r?o:this,arguments),this},r[i[0]+"With"]=a.fireWith}),o.promise(r),e&&e.call(r,r),r},when:function(e){var t,n,o,r=0,i=Z.call(arguments),a=i.length,s=1!==a||e&&ue.isFunction(e.promise)?a:0,u=1===s?e:ue.Deferred(),l=function(e,n,o){return function(r){n[e]=this,o[e]=arguments.length>1?Z.call(arguments):r,o===t?u.notifyWith(n,o):--s||u.resolveWith(n,o)}};if(a>1)for(t=new Array(a),n=new Array(a),o=new Array(a);r0||(we.resolveWith(ye,[ue]),ue.fn.triggerHandler&&(ue(ye).triggerHandler("ready"),ue(ye).off("ready")))}}}),ue.ready.promise=function(e){if(!we)if(we=ue.Deferred(),"complete"===ye.readyState)setTimeout(ue.ready);else if(ye.addEventListener)ye.addEventListener("DOMContentLoaded",p,!1),n.addEventListener("load",p,!1);else{ye.attachEvent("onreadystatechange",p),n.attachEvent("onload",p);var t=!1;try{t=null==n.frameElement&&ye.documentElement}catch(o){}t&&t.doScroll&&!function r(){if(!ue.isReady){try{t.doScroll("left")}catch(e){return setTimeout(r,50)}c(),ue.ready()}}()}return we.promise(e)};var De,Te="undefined";for(De in ue(ae))break;ae.ownLast="0"!==De,ae.inlineBlockNeedsLayout=!1,ue(function(){var e,t,n,o;n=ye.getElementsByTagName("body")[0],n&&n.style&&(t=ye.createElement("div"),o=ye.createElement("div"),o.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",n.appendChild(o).appendChild(t),typeof t.style.zoom!==Te&&(t.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",ae.inlineBlockNeedsLayout=e=3===t.offsetWidth,e&&(n.style.zoom=1)),n.removeChild(o))}),function(){var e=ye.createElement("div");if(null==ae.deleteExpando){ae.deleteExpando=!0;try{delete e.test}catch(t){ae.deleteExpando=!1}}e=null}(),ue.acceptData=function(e){var t=ue.noData[(e.nodeName+" ").toLowerCase()],n=+e.nodeType||1;return(1===n||9===n)&&(!t||t!==!0&&e.getAttribute("classid")===t)};var Oe=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,ke=/([A-Z])/g;ue.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?ue.cache[e[ue.expando]]:e[ue.expando],!!e&&!f(e)},data:function(e,t,n){return h(e,t,n)},removeData:function(e,t){return m(e,t)},_data:function(e,t,n){return h(e,t,n,!0)},_removeData:function(e,t){return m(e,t,!0)}}),ue.fn.extend({data:function(e,t){var n,o,r,i=this[0],a=i&&i.attributes;if(void 0===e){if(this.length&&(r=ue.data(i),1===i.nodeType&&!ue._data(i,"parsedAttrs"))){for(n=a.length;n--;)a[n]&&(o=a[n].name,0===o.indexOf("data-")&&(o=ue.camelCase(o.slice(5)),d(i,o,r[o])));ue._data(i,"parsedAttrs",!0)}return r}return"object"==typeof e?this.each(function(){ue.data(this,e)}):arguments.length>1?this.each(function(){ue.data(this,e,t)}):i?d(i,e,ue.data(i,e)):void 0},removeData:function(e){return this.each(function(){ue.removeData(this,e)})}}),ue.extend({queue:function(e,t,n){var o;if(e)return t=(t||"fx")+"queue",o=ue._data(e,t),n&&(!o||ue.isArray(n)?o=ue._data(e,t,ue.makeArray(n)):o.push(n)),o||[]},dequeue:function(e,t){t=t||"fx";var n=ue.queue(e,t),o=n.length,r=n.shift(),i=ue._queueHooks(e,t),a=function(){ue.dequeue(e,t)};"inprogress"===r&&(r=n.shift(),o--),r&&("fx"===t&&n.unshift("inprogress"),delete i.stop,r.call(e,a,i)),!o&&i&&i.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return ue._data(e,n)||ue._data(e,n,{empty:ue.Callbacks("once memory").add(function(){ue._removeData(e,t+"queue"),ue._removeData(e,n)})})}}),ue.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length
a",ae.leadingWhitespace=3===t.firstChild.nodeType,ae.tbody=!t.getElementsByTagName("tbody").length,ae.htmlSerialize=!!t.getElementsByTagName("link").length,ae.html5Clone="<:nav>"!==ye.createElement("nav").cloneNode(!0).outerHTML,e.type="checkbox",e.checked=!0,n.appendChild(e),ae.appendChecked=e.checked,t.innerHTML="",ae.noCloneChecked=!!t.cloneNode(!0).lastChild.defaultValue,n.appendChild(t),t.innerHTML="",ae.checkClone=t.cloneNode(!0).cloneNode(!0).lastChild.checked,ae.noCloneEvent=!0,t.attachEvent&&(t.attachEvent("onclick",function(){ae.noCloneEvent=!1}),t.cloneNode(!0).click()),null==ae.deleteExpando){ae.deleteExpando=!0;try{delete t.test}catch(o){ae.deleteExpando=!1}}}(),function(){var e,t,o=ye.createElement("div");for(e in{submit:!0,change:!0,focusin:!0})t="on"+e,(ae[e+"Bubbles"]=t in n)||(o.setAttribute(t,"t"),ae[e+"Bubbles"]=o.attributes[t].expando===!1);o=null}();var Ae=/^(?:input|select|textarea)$/i,Le=/^key/,Ve=/^(?:mouse|pointer|contextmenu)|click/,je=/^(?:focusinfocus|focusoutblur)$/,Ue=/^([^.]*)(?:\.(.+)|)$/;ue.event={global:{},add:function(e,t,n,o,r){var i,a,s,u,l,c,p,d,f,h,m,v=ue._data(e);if(v){for(n.handler&&(u=n,n=u.handler,r=u.selector),n.guid||(n.guid=ue.guid++),(a=v.events)||(a=v.events={}),(c=v.handle)||(c=v.handle=function(e){return typeof ue===Te||e&&ue.event.triggered===e.type?void 0:ue.event.dispatch.apply(c.elem,arguments)},c.elem=e),t=(t||"").match(xe)||[""],s=t.length;s--;)i=Ue.exec(t[s])||[],f=m=i[1],h=(i[2]||"").split(".").sort(),f&&(l=ue.event.special[f]||{},f=(r?l.delegateType:l.bindType)||f,l=ue.event.special[f]||{},p=ue.extend({type:f,origType:m,data:o,handler:n,guid:n.guid,selector:r,needsContext:r&&ue.expr.match.needsContext.test(r),namespace:h.join(".")},u),(d=a[f])||(d=a[f]=[],d.delegateCount=0,l.setup&&l.setup.call(e,o,h,c)!==!1||(e.addEventListener?e.addEventListener(f,c,!1):e.attachEvent&&e.attachEvent("on"+f,c))),l.add&&(l.add.call(e,p),p.handler.guid||(p.handler.guid=n.guid)),r?d.splice(d.delegateCount++,0,p):d.push(p),ue.event.global[f]=!0);e=null}},remove:function(e,t,n,o,r){var i,a,s,u,l,c,p,d,f,h,m,v=ue.hasData(e)&&ue._data(e);if(v&&(c=v.events)){for(t=(t||"").match(xe)||[""],l=t.length;l--;)if(s=Ue.exec(t[l])||[],f=m=s[1],h=(s[2]||"").split(".").sort(),f){for(p=ue.event.special[f]||{},f=(o?p.delegateType:p.bindType)||f,d=c[f]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),u=i=d.length;i--;)a=d[i],!r&&m!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||o&&o!==a.selector&&("**"!==o||!a.selector)||(d.splice(i,1),a.selector&&d.delegateCount--,p.remove&&p.remove.call(e,a));u&&!d.length&&(p.teardown&&p.teardown.call(e,h,v.handle)!==!1||ue.removeEvent(e,f,v.handle),delete c[f])}else for(f in c)ue.event.remove(e,f+t[l],n,o,!0);ue.isEmptyObject(c)&&(delete v.handle,ue._removeData(e,"events"))}},trigger:function(e,t,o,r){var i,a,s,u,l,c,p,d=[o||ye],f=ie.call(e,"type")?e.type:e,h=ie.call(e,"namespace")?e.namespace.split("."):[];if(s=c=o=o||ye,3!==o.nodeType&&8!==o.nodeType&&!je.test(f+ue.event.triggered)&&(f.indexOf(".")>=0&&(h=f.split("."),f=h.shift(),h.sort()),a=f.indexOf(":")<0&&"on"+f,e=e[ue.expando]?e:new ue.Event(f,"object"==typeof e&&e),e.isTrigger=r?2:3,e.namespace=h.join("."),e.namespace_re=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=o),t=null==t?[e]:ue.makeArray(t,[e]),l=ue.event.special[f]||{},r||!l.trigger||l.trigger.apply(o,t)!==!1)){if(!r&&!l.noBubble&&!ue.isWindow(o)){for(u=l.delegateType||f,je.test(u+f)||(s=s.parentNode);s;s=s.parentNode)d.push(s),c=s;c===(o.ownerDocument||ye)&&d.push(c.defaultView||c.parentWindow||n)}for(p=0;(s=d[p++])&&!e.isPropagationStopped();)e.type=p>1?u:l.bindType||f,i=(ue._data(s,"events")||{})[e.type]&&ue._data(s,"handle"),i&&i.apply(s,t),i=a&&s[a],i&&i.apply&&ue.acceptData(s)&&(e.result=i.apply(s,t),e.result===!1&&e.preventDefault());if(e.type=f,!r&&!e.isDefaultPrevented()&&(!l._default||l._default.apply(d.pop(),t)===!1)&&ue.acceptData(o)&&a&&o[f]&&!ue.isWindow(o)){c=o[a],c&&(o[a]=null),ue.event.triggered=f;try{o[f]()}catch(m){}ue.event.triggered=void 0,c&&(o[a]=c)}return e.result}},dispatch:function(e){e=ue.event.fix(e);var t,n,o,r,i,a=[],s=Z.call(arguments),u=(ue._data(this,"events")||{})[e.type]||[],l=ue.event.special[e.type]||{};if(s[0]=e,e.delegateTarget=this,!l.preDispatch||l.preDispatch.call(this,e)!==!1){for(a=ue.event.handlers.call(this,e,u),t=0;(r=a[t++])&&!e.isPropagationStopped();)for(e.currentTarget=r.elem,i=0;(o=r.handlers[i++])&&!e.isImmediatePropagationStopped();)e.namespace_re&&!e.namespace_re.test(o.namespace)||(e.handleObj=o,e.data=o.data,n=((ue.event.special[o.origType]||{}).handle||o.handler).apply(r.elem,s),void 0!==n&&(e.result=n)===!1&&(e.preventDefault(),e.stopPropagation()));return l.postDispatch&&l.postDispatch.call(this,e),e.result}},handlers:function(e,t){var n,o,r,i,a=[],s=t.delegateCount,u=e.target;if(s&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(r=[],i=0;i=0:ue.find(n,this,null,[u]).length),r[n]&&r.push(o);r.length&&a.push({elem:u,handlers:r})}return s]","i"),He=/^\s+/,qe=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,We=/<([\w:]+)/,ze=/\s*$/g,Ze={option:[1,""],legend:[1,"
","
"],area:[1,"",""],param:[1,"",""],thead:[1,"","
"],tr:[2,"","
"],col:[2,"","
"],td:[3,"","
"],_default:ae.htmlSerialize?[0,"",""]:[1,"X
","
"]},et=b(ye),tt=et.appendChild(ye.createElement("div"));Ze.optgroup=Ze.option,Ze.tbody=Ze.tfoot=Ze.colgroup=Ze.caption=Ze.thead,Ze.th=Ze.td,ue.extend({clone:function(e,t,n){var o,r,i,a,s,u=ue.contains(e.ownerDocument,e);if(ae.html5Clone||ue.isXMLDoc(e)||!$e.test("<"+e.nodeName+">")?i=e.cloneNode(!0):(tt.innerHTML=e.outerHTML,tt.removeChild(i=tt.firstChild)),!(ae.noCloneEvent&&ae.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||ue.isXMLDoc(e)))for(o=E(i),s=E(e),a=0;null!=(r=s[a]);++a)o[a]&&T(r,o[a]);if(t)if(n)for(s=s||E(e),o=o||E(i),a=0;null!=(r=s[a]);a++)D(r,o[a]);else D(e,i);return o=E(i,"script"),o.length>0&&w(o,!u&&E(e,"script")),o=s=r=null,i},buildFragment:function(e,t,n,o){for(var r,i,a,s,u,l,c,p=e.length,d=b(t),f=[],h=0;h")+c[2],r=c[0];r--;)s=s.lastChild;if(!ae.leadingWhitespace&&He.test(i)&&f.push(t.createTextNode(He.exec(i)[0])),!ae.tbody)for(i="table"!==u||ze.test(i)?""!==c[1]||ze.test(i)?0:s:s.firstChild,r=i&&i.childNodes.length;r--;)ue.nodeName(l=i.childNodes[r],"tbody")&&!l.childNodes.length&&i.removeChild(l);for(ue.merge(f,s.childNodes),s.textContent="";s.firstChild;)s.removeChild(s.firstChild);s=d.lastChild}else f.push(t.createTextNode(i));for(s&&d.removeChild(s),ae.appendChecked||ue.grep(E(f,"input"),N),h=0;i=f[h++];)if((!o||ue.inArray(i,o)===-1)&&(a=ue.contains(i.ownerDocument,i),s=E(d.appendChild(i),"script"),a&&w(s),n))for(r=0;i=s[r++];)Ge.test(i.type||"")&&n.push(i);return s=null,d},cleanData:function(e,t){for(var n,o,r,i,a=0,s=ue.expando,u=ue.cache,l=ae.deleteExpando,c=ue.event.special;null!=(n=e[a]);a++)if((t||ue.acceptData(n))&&(r=n[s],i=r&&u[r])){if(i.events)for(o in i.events)c[o]?ue.event.remove(n,o):ue.removeEvent(n,o,i.handle);u[r]&&(delete u[r],l?delete n[s]:typeof n.removeAttribute!==Te?n.removeAttribute(s):n[s]=null,J.push(r))}}}),ue.fn.extend({text:function(e){return Re(this,function(e){return void 0===e?ue.text(this):this.empty().append((this[0]&&this[0].ownerDocument||ye).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=C(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=C(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){for(var n,o=e?ue.filter(e,this):this,r=0;null!=(n=o[r]);r++)t||1!==n.nodeType||ue.cleanData(E(n)),n.parentNode&&(t&&ue.contains(n.ownerDocument,n)&&w(E(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){for(var e,t=0;null!=(e=this[t]);t++){for(1===e.nodeType&&ue.cleanData(E(e,!1));e.firstChild;)e.removeChild(e.firstChild);e.options&&ue.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return ue.clone(this,e,t)})},html:function(e){return Re(this,function(e){var t=this[0]||{},n=0,o=this.length;if(void 0===e)return 1===t.nodeType?t.innerHTML.replace(Be,""):void 0;if("string"==typeof e&&!Ye.test(e)&&(ae.htmlSerialize||!$e.test(e))&&(ae.leadingWhitespace||!He.test(e))&&!Ze[(We.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(qe,"<$1>");try{for(;n1&&"string"==typeof d&&!ae.checkClone&&Xe.test(d))return this.each(function(n){var o=c.eq(n);f&&(e[0]=d.call(this,n,o.html())),o.domManip(e,t)});if(l&&(s=ue.buildFragment(e,this[0].ownerDocument,!1,this),n=s.firstChild,1===s.childNodes.length&&(s=n),n)){for(i=ue.map(E(s,"script"),x),r=i.length;u
t
",r=e.getElementsByTagName("td"),r[0].style.cssText="margin:0;border:0;padding:0;display:none",s=0===r[0].offsetHeight,s&&(r[0].style.display="",r[1].style.display="none",s=0===r[0].offsetHeight),t.removeChild(o))}var t,o,r,i,a,s,u;t=ye.createElement("div"),t.innerHTML="
a",r=t.getElementsByTagName("a")[0],o=r&&r.style,o&&(o.cssText="float:left;opacity:.5",ae.opacity="0.5"===o.opacity,ae.cssFloat=!!o.cssFloat,t.style.backgroundClip="content-box",t.cloneNode(!0).style.backgroundClip="",ae.clearCloneStyle="content-box"===t.style.backgroundClip,ae.boxSizing=""===o.boxSizing||""===o.MozBoxSizing||""===o.WebkitBoxSizing,ue.extend(ae,{reliableHiddenOffsets:function(){return null==s&&e(),s},boxSizingReliable:function(){return null==a&&e(),a},pixelPosition:function(){return null==i&&e(),i},reliableMarginRight:function(){return null==u&&e(),u}}))}(),ue.swap=function(e,t,n,o){var r,i,a={};for(i in t)a[i]=e.style[i],e.style[i]=t[i];r=n.apply(e,o||[]);for(i in t)e.style[i]=a[i];return r};var lt=/alpha\([^)]*\)/i,ct=/opacity\s*=\s*([^)]*)/,pt=/^(none|table(?!-c[ea]).+)/,dt=new RegExp("^("+Se+")(.*)$","i"),ft=new RegExp("^([+-])=("+Se+")","i"),ht={position:"absolute",visibility:"hidden",display:"block"},mt={letterSpacing:"0",fontWeight:"400"},vt=["Webkit","O","Moz","ms"];ue.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=it(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":ae.cssFloat?"cssFloat":"styleFloat"},style:function(e,t,n,o){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var r,i,a,s=ue.camelCase(t),u=e.style;if(t=ue.cssProps[s]||(ue.cssProps[s]=M(u,s)),a=ue.cssHooks[t]||ue.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(r=a.get(e,!1,o))?r:u[t];if(i=typeof n,"string"===i&&(r=ft.exec(n))&&(n=(r[1]+1)*r[2]+parseFloat(ue.css(e,t)),i="number"),null!=n&&n===n&&("number"!==i||ue.cssNumber[s]||(n+="px"),ae.clearCloneStyle||""!==n||0!==t.indexOf("background")||(u[t]="inherit"),!(a&&"set"in a&&void 0===(n=a.set(e,n,o)))))try{u[t]=n}catch(l){}}},css:function(e,t,n,o){var r,i,a,s=ue.camelCase(t);return t=ue.cssProps[s]||(ue.cssProps[s]=M(e.style,s)),a=ue.cssHooks[t]||ue.cssHooks[s],a&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=it(e,t,o)),"normal"===i&&t in mt&&(i=mt[t]),""===n||n?(r=parseFloat(i),n===!0||ue.isNumeric(r)?r||0:i):i}}),ue.each(["height","width"],function(e,t){ue.cssHooks[t]={get:function(e,n,o){if(n)return pt.test(ue.css(e,"display"))&&0===e.offsetWidth?ue.swap(e,ht,function(){return A(e,t,o)}):A(e,t,o)},set:function(e,n,o){var r=o&&rt(e);return R(e,n,o?P(e,t,o,ae.boxSizing&&"border-box"===ue.css(e,"boxSizing",!1,r),r):0)}}}),ae.opacity||(ue.cssHooks.opacity={get:function(e,t){return ct.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,o=e.currentStyle,r=ue.isNumeric(t)?"alpha(opacity="+100*t+")":"",i=o&&o.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===ue.trim(i.replace(lt,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||o&&!o.filter)||(n.filter=lt.test(i)?i.replace(lt,r):i+" "+r)}}),ue.cssHooks.marginRight=S(ae.reliableMarginRight,function(e,t){if(t)return ue.swap(e,{display:"inline-block"},it,[e,"marginRight"])}),ue.each({margin:"",padding:"",border:"Width"},function(e,t){ue.cssHooks[e+t]={expand:function(n){for(var o=0,r={},i="string"==typeof n?n.split(" "):[n];o<4;o++)r[e+Me[o]+t]=i[o]||i[o-2]||i[0];return r}},at.test(e)||(ue.cssHooks[e+t].set=R)}),ue.fn.extend({css:function(e,t){return Re(this,function(e,t,n){var o,r,i={},a=0;if(ue.isArray(t)){for(o=rt(e),r=t.length;a1)},show:function(){return I(this,!0)},hide:function(){return I(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){Ie(this)?ue(this).show():ue(this).hide()})}}),ue.Tween=L,L.prototype={constructor:L,init:function(e,t,n,o,r,i){this.elem=e,this.prop=n,this.easing=r||"swing",this.options=t,this.start=this.now=this.cur(),this.end=o,this.unit=i||(ue.cssNumber[n]?"":"px")},cur:function(){var e=L.propHooks[this.prop];return e&&e.get?e.get(this):L.propHooks._default.get(this)},run:function(e){var t,n=L.propHooks[this.prop];return this.options.duration?this.pos=t=ue.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.set(this):L.propHooks._default.set(this),this}},L.prototype.init.prototype=L.prototype,L.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=ue.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){ue.fx.step[e.prop]?ue.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[ue.cssProps[e.prop]]||ue.cssHooks[e.prop])?ue.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},L.propHooks.scrollTop=L.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},ue.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},ue.fx=L.prototype.init,ue.fx.step={};var gt,yt,bt=/^(?:toggle|show|hide)$/,Et=new RegExp("^(?:([+-])=|)("+Se+")([a-z%]*)$","i"),Nt=/queueHooks$/,Ct=[F],xt={"*":[function(e,t){var n=this.createTween(e,t),o=n.cur(),r=Et.exec(t),i=r&&r[3]||(ue.cssNumber[e]?"":"px"),a=(ue.cssNumber[e]||"px"!==i&&+o)&&Et.exec(ue.css(n.elem,e)),s=1,u=20;if(a&&a[3]!==i){i=i||a[3],r=r||[],a=+o||1;do s=s||".5",a/=s,ue.style(n.elem,e,a+i);while(s!==(s=n.cur()/o)&&1!==s&&--u)}return r&&(a=n.start=+a||+o||0,n.unit=i,n.end=r[1]?a+(r[1]+1)*r[2]:+r[2]),n}]};ue.Animation=ue.extend($,{tweener:function(e,t){ue.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");for(var n,o=0,r=e.length;o
a",o=t.getElementsByTagName("a")[0],n=ye.createElement("select"),r=n.appendChild(ye.createElement("option")),e=t.getElementsByTagName("input")[0],o.style.cssText="top:1px",ae.getSetAttribute="t"!==t.className,ae.style=/top/.test(o.getAttribute("style")),ae.hrefNormalized="/a"===o.getAttribute("href"),ae.checkOn=!!e.value,ae.optSelected=r.selected,ae.enctype=!!ye.createElement("form").enctype,n.disabled=!0,ae.optDisabled=!r.disabled,e=ye.createElement("input"),e.setAttribute("value",""),ae.input=""===e.getAttribute("value"),e.value="t",e.setAttribute("type","radio"),ae.radioValue="t"===e.value}();var _t=/\r/g;ue.fn.extend({val:function(e){var t,n,o,r=this[0];{if(arguments.length)return o=ue.isFunction(e),this.each(function(n){var r;1===this.nodeType&&(r=o?e.call(this,n,ue(this).val()):e,null==r?r="":"number"==typeof r?r+="":ue.isArray(r)&&(r=ue.map(r,function(e){return null==e?"":e+""})),t=ue.valHooks[this.type]||ue.valHooks[this.nodeName.toLowerCase()],t&&"set"in t&&void 0!==t.set(this,r,"value")||(this.value=r))});if(r)return t=ue.valHooks[r.type]||ue.valHooks[r.nodeName.toLowerCase()],t&&"get"in t&&void 0!==(n=t.get(r,"value"))?n:(n=r.value,"string"==typeof n?n.replace(_t,""):null==n?"":n)}}}),ue.extend({valHooks:{option:{get:function(e){var t=ue.find.attr(e,"value");return null!=t?t:ue.trim(ue.text(e))}},select:{get:function(e){for(var t,n,o=e.options,r=e.selectedIndex,i="select-one"===e.type||r<0,a=i?null:[],s=i?r+1:o.length,u=r<0?s:i?r:0;u=0)try{o.selected=n=!0}catch(s){o.scrollHeight}else o.selected=!1;return n||(e.selectedIndex=-1),r}}}}),ue.each(["radio","checkbox"],function(){ue.valHooks[this]={set:function(e,t){if(ue.isArray(t))return e.checked=ue.inArray(ue(e).val(),t)>=0}},ae.checkOn||(ue.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var wt,Dt,Tt=ue.expr.attrHandle,Ot=/^(?:checked|selected)$/i,kt=ae.getSetAttribute,St=ae.input;ue.fn.extend({attr:function(e,t){return Re(this,ue.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){ue.removeAttr(this,e)})}}),ue.extend({attr:function(e,t,n){var o,r,i=e.nodeType;if(e&&3!==i&&8!==i&&2!==i)return typeof e.getAttribute===Te?ue.prop(e,t,n):(1===i&&ue.isXMLDoc(e)||(t=t.toLowerCase(),o=ue.attrHooks[t]||(ue.expr.match.bool.test(t)?Dt:wt)),void 0===n?o&&"get"in o&&null!==(r=o.get(e,t))?r:(r=ue.find.attr(e,t),null==r?void 0:r):null!==n?o&&"set"in o&&void 0!==(r=o.set(e,n,t))?r:(e.setAttribute(t,n+""),n):void ue.removeAttr(e,t))},removeAttr:function(e,t){var n,o,r=0,i=t&&t.match(xe);if(i&&1===e.nodeType)for(;n=i[r++];)o=ue.propFix[n]||n,ue.expr.match.bool.test(n)?St&&kt||!Ot.test(n)?e[o]=!1:e[ue.camelCase("default-"+n)]=e[o]=!1:ue.attr(e,n,""),e.removeAttribute(kt?n:o)},attrHooks:{type:{set:function(e,t){if(!ae.radioValue&&"radio"===t&&ue.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}}}),Dt={set:function(e,t,n){return t===!1?ue.removeAttr(e,n):St&&kt||!Ot.test(n)?e.setAttribute(!kt&&ue.propFix[n]||n,n):e[ue.camelCase("default-"+n)]=e[n]=!0,n}},ue.each(ue.expr.match.bool.source.match(/\w+/g),function(e,t){var n=Tt[t]||ue.find.attr;Tt[t]=St&&kt||!Ot.test(t)?function(e,t,o){var r,i;return o||(i=Tt[t],Tt[t]=r,r=null!=n(e,t,o)?t.toLowerCase():null,Tt[t]=i),r}:function(e,t,n){if(!n)return e[ue.camelCase("default-"+t)]?t.toLowerCase():null}}),St&&kt||(ue.attrHooks.value={set:function(e,t,n){return ue.nodeName(e,"input")?void(e.defaultValue=t):wt&&wt.set(e,t,n)}}),kt||(wt={set:function(e,t,n){var o=e.getAttributeNode(n);if(o||e.setAttributeNode(o=e.ownerDocument.createAttribute(n)),o.value=t+="","value"===n||t===e.getAttribute(n))return t}},Tt.id=Tt.name=Tt.coords=function(e,t,n){var o;if(!n)return(o=e.getAttributeNode(t))&&""!==o.value?o.value:null},ue.valHooks.button={get:function(e,t){var n=e.getAttributeNode(t);if(n&&n.specified)return n.value},set:wt.set},ue.attrHooks.contenteditable={set:function(e,t,n){wt.set(e,""!==t&&t,n)}},ue.each(["width","height"],function(e,t){ue.attrHooks[t]={set:function(e,n){if(""===n)return e.setAttribute(t,"auto"),n}}})),ae.style||(ue.attrHooks.style={get:function(e){return e.style.cssText||void 0},set:function(e,t){return e.style.cssText=t+""}});var Mt=/^(?:input|select|textarea|button|object)$/i,It=/^(?:a|area)$/i;ue.fn.extend({prop:function(e,t){return Re(this,ue.prop,e,t,arguments.length>1)},removeProp:function(e){return e=ue.propFix[e]||e,this.each(function(){try{this[e]=void 0,delete this[e]}catch(t){}})}}),ue.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(e,t,n){var o,r,i,a=e.nodeType;if(e&&3!==a&&8!==a&&2!==a)return i=1!==a||!ue.isXMLDoc(e),i&&(t=ue.propFix[t]||t,r=ue.propHooks[t]),void 0!==n?r&&"set"in r&&void 0!==(o=r.set(e,n,t))?o:e[t]=n:r&&"get"in r&&null!==(o=r.get(e,t))?o:e[t]},propHooks:{tabIndex:{get:function(e){var t=ue.find.attr(e,"tabindex");return t?parseInt(t,10):Mt.test(e.nodeName)||It.test(e.nodeName)&&e.href?0:-1}}}}),ae.hrefNormalized||ue.each(["href","src"],function(e,t){ue.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),ae.optSelected||(ue.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}}),ue.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){ue.propFix[this.toLowerCase()]=this}),ae.enctype||(ue.propFix.enctype="encoding");var Rt=/[\t\r\n\f]/g;ue.fn.extend({addClass:function(e){var t,n,o,r,i,a,s=0,u=this.length,l="string"==typeof e&&e;if(ue.isFunction(e))return this.each(function(t){ue(this).addClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(xe)||[];s=0;)o=o.replace(" "+r+" "," ");a=e?ue.trim(o):"",n.className!==a&&(n.className=a)}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):ue.isFunction(e)?this.each(function(n){ue(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n)for(var t,o=0,r=ue(this),i=e.match(xe)||[];t=i[o++];)r.hasClass(t)?r.removeClass(t):r.addClass(t);else n!==Te&&"boolean"!==n||(this.className&&ue._data(this,"__className__",this.className),this.className=this.className||e===!1?"":ue._data(this,"__className__")||"")})},hasClass:function(e){for(var t=" "+e+" ",n=0,o=this.length;n=0)return!0;return!1}}),ue.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){ue.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),ue.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)},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,o){return this.on(t,e,n,o)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}});var Pt=ue.now(),At=/\?/,Lt=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;ue.parseJSON=function(e){if(n.JSON&&n.JSON.parse)return n.JSON.parse(e+"");var t,o=null,r=ue.trim(e+"");return r&&!ue.trim(r.replace(Lt,function(e,n,r,i){return t&&n&&(o=0),0===o?e:(t=r||n,o+=!i-!r,"")}))?Function("return "+r)():ue.error("Invalid JSON: "+e)},ue.parseXML=function(e){var t,o;if(!e||"string"!=typeof e)return null;try{n.DOMParser?(o=new DOMParser,t=o.parseFromString(e,"text/xml")):(t=new ActiveXObject("Microsoft.XMLDOM"),t.async="false",t.loadXML(e))}catch(r){t=void 0}return t&&t.documentElement&&!t.getElementsByTagName("parsererror").length||ue.error("Invalid XML: "+e),t};var Vt,jt,Ut=/#.*$/,Ft=/([?&])_=[^&]*/,Bt=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,$t=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Ht=/^(?:GET|HEAD)$/,qt=/^\/\//,Wt=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,zt={},Kt={},Yt="*/".concat("*");try{jt=location.href}catch(Xt){jt=ye.createElement("a"),jt.href="",jt=jt.href}Vt=Wt.exec(jt.toLowerCase())||[],ue.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:jt,type:"GET",isLocal:$t.test(Vt[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Yt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":ue.parseJSON,"text xml":ue.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?W(W(e,ue.ajaxSettings),t):W(ue.ajaxSettings,e)},ajaxPrefilter:H(zt),ajaxTransport:H(Kt),ajax:function(e,t){function n(e,t,n,o){var r,c,g,y,E,C=t;2!==b&&(b=2,s&&clearTimeout(s),l=void 0,a=o||"",N.readyState=e>0?4:0,r=e>=200&&e<300||304===e,n&&(y=z(p,N,n)),y=K(p,y,N,r),r?(p.ifModified&&(E=N.getResponseHeader("Last-Modified"),E&&(ue.lastModified[i]=E),E=N.getResponseHeader("etag"),E&&(ue.etag[i]=E)),204===e||"HEAD"===p.type?C="nocontent":304===e?C="notmodified":(C=y.state,c=y.data,g=y.error,r=!g)):(g=C,!e&&C||(C="error",e<0&&(e=0))),N.status=e,N.statusText=(t||C)+"",r?h.resolveWith(d,[c,C,N]):h.rejectWith(d,[N,C,g]),N.statusCode(v),v=void 0,u&&f.trigger(r?"ajaxSuccess":"ajaxError",[N,p,r?c:g]),m.fireWith(d,[N,C]),u&&(f.trigger("ajaxComplete",[N,p]),--ue.active||ue.event.trigger("ajaxStop")))}"object"==typeof e&&(t=e,e=void 0),t=t||{};var o,r,i,a,s,u,l,c,p=ue.ajaxSetup({},t),d=p.context||p,f=p.context&&(d.nodeType||d.jquery)?ue(d):ue.event,h=ue.Deferred(),m=ue.Callbacks("once memory"),v=p.statusCode||{},g={},y={},b=0,E="canceled",N={readyState:0,getResponseHeader:function(e){var t;if(2===b){if(!c)for(c={};t=Bt.exec(a);)c[t[1].toLowerCase()]=t[2];t=c[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===b?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return b||(e=y[n]=y[n]||e,g[e]=t),this},overrideMimeType:function(e){return b||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(b<2)for(t in e)v[t]=[v[t],e[t]];else N.always(e[N.status]);return this},abort:function(e){var t=e||E;return l&&l.abort(t),n(0,t),this}};if(h.promise(N).complete=m.add,N.success=N.done,N.error=N.fail,p.url=((e||p.url||jt)+"").replace(Ut,"").replace(qt,Vt[1]+"//"),p.type=t.method||t.type||p.method||p.type,p.dataTypes=ue.trim(p.dataType||"*").toLowerCase().match(xe)||[""],null==p.crossDomain&&(o=Wt.exec(p.url.toLowerCase()),p.crossDomain=!(!o||o[1]===Vt[1]&&o[2]===Vt[2]&&(o[3]||("http:"===o[1]?"80":"443"))===(Vt[3]||("http:"===Vt[1]?"80":"443")))),p.data&&p.processData&&"string"!=typeof p.data&&(p.data=ue.param(p.data,p.traditional)),q(zt,p,t,N),2===b)return N;u=ue.event&&p.global,u&&0===ue.active++&&ue.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Ht.test(p.type),i=p.url,p.hasContent||(p.data&&(i=p.url+=(At.test(i)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=Ft.test(i)?i.replace(Ft,"$1_="+Pt++):i+(At.test(i)?"&":"?")+"_="+Pt++)),p.ifModified&&(ue.lastModified[i]&&N.setRequestHeader("If-Modified-Since",ue.lastModified[i]),ue.etag[i]&&N.setRequestHeader("If-None-Match",ue.etag[i])),(p.data&&p.hasContent&&p.contentType!==!1||t.contentType)&&N.setRequestHeader("Content-Type",p.contentType),N.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Yt+"; q=0.01":""):p.accepts["*"]);for(r in p.headers)N.setRequestHeader(r,p.headers[r]);if(p.beforeSend&&(p.beforeSend.call(d,N,p)===!1||2===b))return N.abort();E="abort";for(r in{success:1,error:1,complete:1})N[r](p[r]);if(l=q(Kt,p,t,N)){N.readyState=1,u&&f.trigger("ajaxSend",[N,p]),p.async&&p.timeout>0&&(s=setTimeout(function(){N.abort("timeout")},p.timeout));try{b=1,l.send(g,n)}catch(C){if(!(b<2))throw C;n(-1,C)}}else n(-1,"No Transport");return N},getJSON:function(e,t,n){return ue.get(e,t,n,"json")},getScript:function(e,t){return ue.get(e,void 0,t,"script")}}),ue.each(["get","post"],function(e,t){ue[t]=function(e,n,o,r){return ue.isFunction(n)&&(r=r||o,o=n,n=void 0),ue.ajax({url:e,type:t,dataType:r,data:n,success:o})}}),ue._evalUrl=function(e){return ue.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},ue.fn.extend({wrapAll:function(e){if(ue.isFunction(e))return this.each(function(t){ue(this).wrapAll(e.call(this,t))});if(this[0]){var t=ue(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstChild&&1===e.firstChild.nodeType;)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return ue.isFunction(e)?this.each(function(t){ue(this).wrapInner(e.call(this,t))}):this.each(function(){var t=ue(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=ue.isFunction(e);return this.each(function(n){ue(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){ue.nodeName(this,"body")||ue(this).replaceWith(this.childNodes)}).end()}}),ue.expr.filters.hidden=function(e){return e.offsetWidth<=0&&e.offsetHeight<=0||!ae.reliableHiddenOffsets()&&"none"===(e.style&&e.style.display||ue.css(e,"display"))},ue.expr.filters.visible=function(e){return!ue.expr.filters.hidden(e)};var Gt=/%20/g,Qt=/\[\]$/,Jt=/\r?\n/g,Zt=/^(?:submit|button|image|reset|file)$/i,en=/^(?:input|select|textarea|keygen)/i;ue.param=function(e,t){var n,o=[],r=function(e,t){t=ue.isFunction(t)?t():null==t?"":t,o[o.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(void 0===t&&(t=ue.ajaxSettings&&ue.ajaxSettings.traditional),ue.isArray(e)||e.jquery&&!ue.isPlainObject(e))ue.each(e,function(){r(this.name,this.value)});else for(n in e)Y(n,e[n],t,r);return o.join("&").replace(Gt,"+")},ue.fn.extend({serialize:function(){return ue.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=ue.prop(this,"elements");return e?ue.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!ue(this).is(":disabled")&&en.test(this.nodeName)&&!Zt.test(e)&&(this.checked||!Pe.test(e))}).map(function(e,t){var n=ue(this).val();return null==n?null:ue.isArray(n)?ue.map(n,function(e){return{name:t.name,value:e.replace(Jt,"\r\n")}}):{name:t.name,value:n.replace(Jt,"\r\n")}}).get()}}),ue.ajaxSettings.xhr=void 0!==n.ActiveXObject?function(){return!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&X()||G()}:X;var tn=0,nn={},on=ue.ajaxSettings.xhr();n.attachEvent&&n.attachEvent("onunload",function(){for(var e in nn)nn[e](void 0,!0)}),ae.cors=!!on&&"withCredentials"in on,on=ae.ajax=!!on,on&&ue.ajaxTransport(function(e){if(!e.crossDomain||ae.cors){var t;return{send:function(n,o){var r,i=e.xhr(),a=++tn;if(i.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(r in e.xhrFields)i[r]=e.xhrFields[r];e.mimeType&&i.overrideMimeType&&i.overrideMimeType(e.mimeType),e.crossDomain||n["X-Requested-With"]||(n["X-Requested-With"]="XMLHttpRequest");for(r in n)void 0!==n[r]&&i.setRequestHeader(r,n[r]+"");i.send(e.hasContent&&e.data||null),t=function(n,r){var s,u,l;if(t&&(r||4===i.readyState))if(delete nn[a],t=void 0,i.onreadystatechange=ue.noop,r)4!==i.readyState&&i.abort();else{l={},s=i.status,"string"==typeof i.responseText&&(l.text=i.responseText);try{u=i.statusText}catch(c){u=""}s||!e.isLocal||e.crossDomain?1223===s&&(s=204):s=l.text?200:404}l&&o(s,u,l,i.getAllResponseHeaders())},e.async?4===i.readyState?setTimeout(t):i.onreadystatechange=nn[a]=t:t()},abort:function(){t&&t(void 0,!0)}}}}),ue.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return ue.globalEval(e),e}}}),ue.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),ue.ajaxTransport("script",function(e){if(e.crossDomain){var t,n=ye.head||ue("head")[0]||ye.documentElement;return{send:function(o,r){t=ye.createElement("script"),t.async=!0,e.scriptCharset&&(t.charset=e.scriptCharset),t.src=e.url,t.onload=t.onreadystatechange=function(e,n){(n||!t.readyState||/loaded|complete/.test(t.readyState))&&(t.onload=t.onreadystatechange=null,t.parentNode&&t.parentNode.removeChild(t),t=null,n||r(200,"success"))},n.insertBefore(t,n.firstChild)},abort:function(){t&&t.onload(void 0,!0)}}}});var rn=[],an=/(=)\?(?=&|$)|\?\?/;ue.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=rn.pop()||ue.expando+"_"+Pt++;return this[e]=!0,e}}),ue.ajaxPrefilter("json jsonp",function(e,t,o){var r,i,a,s=e.jsonp!==!1&&(an.test(e.url)?"url":"string"==typeof e.data&&!(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&an.test(e.data)&&"data");if(s||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=ue.isFunction(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,s?e[s]=e[s].replace(an,"$1"+r):e.jsonp!==!1&&(e.url+=(At.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return a||ue.error(r+" was not called"),a[0]},e.dataTypes[0]="json",i=n[r],n[r]=function(){a=arguments},o.always(function(){n[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,rn.push(r)),a&&ue.isFunction(i)&&i(a[0]),a=i=void 0}),"script"}),ue.parseHTML=function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||ye;var o=me.exec(e),r=!n&&[];return o?[t.createElement(o[1])]:(o=ue.buildFragment([e],t,r),r&&r.length&&ue(r).remove(),ue.merge([],o.childNodes))};var sn=ue.fn.load;ue.fn.load=function(e,t,n){if("string"!=typeof e&&sn)return sn.apply(this,arguments);var o,r,i,a=this,s=e.indexOf(" ");return s>=0&&(o=ue.trim(e.slice(s,e.length)),e=e.slice(0,s)),ue.isFunction(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),a.length>0&&ue.ajax({url:e,type:i,dataType:"html",data:t}).done(function(e){r=arguments,a.html(o?ue("
").append(ue.parseHTML(e)).find(o):e)}).complete(n&&function(e,t){a.each(n,r||[e.responseText,t,e])}),this},ue.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){ue.fn[t]=function(e){return this.on(t,e)}}),ue.expr.filters.animated=function(e){return ue.grep(ue.timers,function(t){return e===t.elem}).length};var un=n.document.documentElement;ue.offset={setOffset:function(e,t,n){var o,r,i,a,s,u,l,c=ue.css(e,"position"),p=ue(e),d={};"static"===c&&(e.style.position="relative"),s=p.offset(),i=ue.css(e,"top"),u=ue.css(e,"left"),l=("absolute"===c||"fixed"===c)&&ue.inArray("auto",[i,u])>-1,l?(o=p.position(),a=o.top,r=o.left):(a=parseFloat(i)||0,r=parseFloat(u)||0),ue.isFunction(t)&&(t=t.call(e,n,s)),null!=t.top&&(d.top=t.top-s.top+a),null!=t.left&&(d.left=t.left-s.left+r),"using"in t?t.using.call(e,d):p.css(d)}},ue.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){ue.offset.setOffset(this,e,t)});var t,n,o={top:0,left:0},r=this[0],i=r&&r.ownerDocument;if(i)return t=i.documentElement,ue.contains(t,r)?(typeof r.getBoundingClientRect!==Te&&(o=r.getBoundingClientRect()),n=Q(i),{top:o.top+(n.pageYOffset||t.scrollTop)-(t.clientTop||0),left:o.left+(n.pageXOffset||t.scrollLeft)-(t.clientLeft||0)}):o},position:function(){if(this[0]){var e,t,n={top:0,left:0},o=this[0];return"fixed"===ue.css(o,"position")?t=o.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),ue.nodeName(e[0],"html")||(n=e.offset()),n.top+=ue.css(e[0],"borderTopWidth",!0),n.left+=ue.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-ue.css(o,"marginTop",!0),left:t.left-n.left-ue.css(o,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent||un;e&&!ue.nodeName(e,"html")&&"static"===ue.css(e,"position");)e=e.offsetParent; -return e||un})}}),ue.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n=/Y/.test(t);ue.fn[e]=function(o){return Re(this,function(e,o,r){var i=Q(e);return void 0===r?i?t in i?i[t]:i.document.documentElement[o]:e[o]:void(i?i.scrollTo(n?ue(i).scrollLeft():r,n?r:ue(i).scrollTop()):e[o]=r)},e,o,arguments.length,null)}}),ue.each(["top","left"],function(e,t){ue.cssHooks[t]=S(ae.pixelPosition,function(e,n){if(n)return n=it(e,t),st.test(n)?ue(e).position()[t]+"px":n})}),ue.each({Height:"height",Width:"width"},function(e,t){ue.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,o){ue.fn[o]=function(o,r){var i=arguments.length&&(n||"boolean"!=typeof o),a=n||(o===!0||r===!0?"margin":"border");return Re(this,function(t,n,o){var r;return ue.isWindow(t)?t.document.documentElement["client"+e]:9===t.nodeType?(r=t.documentElement,Math.max(t.body["scroll"+e],r["scroll"+e],t.body["offset"+e],r["offset"+e],r["client"+e])):void 0===o?ue.css(t,n,a):ue.style(t,n,o,a)},t,i?o:void 0,i,null)}})}),ue.fn.size=function(){return this.length},ue.fn.andSelf=ue.fn.addBack,o=[],r=function(){return ue}.apply(t,o),!(void 0!==r&&(e.exports=r));var ln=n.jQuery,cn=n.$;return ue.noConflict=function(e){return n.$===ue&&(n.$=cn),e&&n.jQuery===ue&&(n.jQuery=ln),ue},typeof i===Te&&(n.jQuery=n.$=ue),ue})},function(e,t,n){n(3),n(4),n(5),n(6),n(7),n(8),n(9),n(10),n(11),n(12),n(13),n(14)},function(e,t){+function(e){"use strict";function t(){var e=document.createElement("bootstrap"),t={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var n in t)if(void 0!==e.style[n])return{end:t[n]};return!1}e.fn.emulateTransitionEnd=function(t){var n=!1,o=this;e(this).one("bsTransitionEnd",function(){n=!0});var r=function(){n||e(o).trigger(e.support.transition.end)};return setTimeout(r,t),this},e(function(){e.support.transition=t(),e.support.transition&&(e.event.special.bsTransitionEnd={bindType:e.support.transition.end,delegateType:e.support.transition.end,handle:function(t){if(e(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}})})}(jQuery)},function(e,t){+function(e){"use strict";function t(t){return this.each(function(){var n=e(this),r=n.data("bs.alert");r||n.data("bs.alert",r=new o(this)),"string"==typeof t&&r[t].call(n)})}var n='[data-dismiss="alert"]',o=function(t){e(t).on("click",n,this.close)};o.VERSION="3.3.6",o.TRANSITION_DURATION=150,o.prototype.close=function(t){function n(){a.detach().trigger("closed.bs.alert").remove()}var r=e(this),i=r.attr("data-target");i||(i=r.attr("href"),i=i&&i.replace(/.*(?=#[^\s]*$)/,""));var a=e(i);t&&t.preventDefault(),a.length||(a=r.closest(".alert")),a.trigger(t=e.Event("close.bs.alert")),t.isDefaultPrevented()||(a.removeClass("in"),e.support.transition&&a.hasClass("fade")?a.one("bsTransitionEnd",n).emulateTransitionEnd(o.TRANSITION_DURATION):n())};var r=e.fn.alert;e.fn.alert=t,e.fn.alert.Constructor=o,e.fn.alert.noConflict=function(){return e.fn.alert=r,this},e(document).on("click.bs.alert.data-api",n,o.prototype.close)}(jQuery)},function(e,t){+function(e){"use strict";function t(t){return this.each(function(){var o=e(this),r=o.data("bs.button"),i="object"==typeof t&&t;r||o.data("bs.button",r=new n(this,i)),"toggle"==t?r.toggle():t&&r.setState(t)})}var n=function(t,o){this.$element=e(t),this.options=e.extend({},n.DEFAULTS,o),this.isLoading=!1};n.VERSION="3.3.6",n.DEFAULTS={loadingText:"loading..."},n.prototype.setState=function(t){var n="disabled",o=this.$element,r=o.is("input")?"val":"html",i=o.data();t+="Text",null==i.resetText&&o.data("resetText",o[r]()),setTimeout(e.proxy(function(){o[r](null==i[t]?this.options[t]:i[t]),"loadingText"==t?(this.isLoading=!0,o.addClass(n).attr(n,n)):this.isLoading&&(this.isLoading=!1,o.removeClass(n).removeAttr(n))},this),0)},n.prototype.toggle=function(){var e=!0,t=this.$element.closest('[data-toggle="buttons"]');if(t.length){var n=this.$element.find("input");"radio"==n.prop("type")?(n.prop("checked")&&(e=!1),t.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==n.prop("type")&&(n.prop("checked")!==this.$element.hasClass("active")&&(e=!1),this.$element.toggleClass("active")),n.prop("checked",this.$element.hasClass("active")),e&&n.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var o=e.fn.button;e.fn.button=t,e.fn.button.Constructor=n,e.fn.button.noConflict=function(){return e.fn.button=o,this},e(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(n){var o=e(n.target);o.hasClass("btn")||(o=o.closest(".btn")),t.call(o,"toggle"),e(n.target).is('input[type="radio"]')||e(n.target).is('input[type="checkbox"]')||n.preventDefault()}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(t){e(t.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(t.type))})}(jQuery)},function(e,t){+function(e){"use strict";function t(t){return this.each(function(){var o=e(this),r=o.data("bs.carousel"),i=e.extend({},n.DEFAULTS,o.data(),"object"==typeof t&&t),a="string"==typeof t?t:i.slide;r||o.data("bs.carousel",r=new n(this,i)),"number"==typeof t?r.to(t):a?r[a]():i.interval&&r.pause().cycle()})}var n=function(t,n){this.$element=e(t),this.$indicators=this.$element.find(".carousel-indicators"),this.options=n,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",e.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",e.proxy(this.pause,this)).on("mouseleave.bs.carousel",e.proxy(this.cycle,this))};n.VERSION="3.3.6",n.TRANSITION_DURATION=600,n.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},n.prototype.keydown=function(e){if(!/input|textarea/i.test(e.target.tagName)){switch(e.which){case 37:this.prev();break;case 39:this.next();break;default:return}e.preventDefault()}},n.prototype.cycle=function(t){return t||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(e.proxy(this.next,this),this.options.interval)),this},n.prototype.getItemIndex=function(e){return this.$items=e.parent().children(".item"),this.$items.index(e||this.$active)},n.prototype.getItemForDirection=function(e,t){var n=this.getItemIndex(t),o="prev"==e&&0===n||"next"==e&&n==this.$items.length-1;if(o&&!this.options.wrap)return t;var r="prev"==e?-1:1,i=(n+r)%this.$items.length;return this.$items.eq(i)},n.prototype.to=function(e){var t=this,n=this.getItemIndex(this.$active=this.$element.find(".item.active"));if(!(e>this.$items.length-1||e<0))return this.sliding?this.$element.one("slid.bs.carousel",function(){t.to(e)}):n==e?this.pause().cycle():this.slide(e>n?"next":"prev",this.$items.eq(e))},n.prototype.pause=function(t){return t||(this.paused=!0),this.$element.find(".next, .prev").length&&e.support.transition&&(this.$element.trigger(e.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},n.prototype.next=function(){if(!this.sliding)return this.slide("next")},n.prototype.prev=function(){if(!this.sliding)return this.slide("prev")},n.prototype.slide=function(t,o){var r=this.$element.find(".item.active"),i=o||this.getItemForDirection(t,r),a=this.interval,s="next"==t?"left":"right",u=this;if(i.hasClass("active"))return this.sliding=!1;var l=i[0],c=e.Event("slide.bs.carousel",{relatedTarget:l,direction:s});if(this.$element.trigger(c),!c.isDefaultPrevented()){if(this.sliding=!0,a&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var p=e(this.$indicators.children()[this.getItemIndex(i)]);p&&p.addClass("active")}var d=e.Event("slid.bs.carousel",{relatedTarget:l,direction:s});return e.support.transition&&this.$element.hasClass("slide")?(i.addClass(t),i[0].offsetWidth,r.addClass(s),i.addClass(s),r.one("bsTransitionEnd",function(){i.removeClass([t,s].join(" ")).addClass("active"),r.removeClass(["active",s].join(" ")),u.sliding=!1,setTimeout(function(){u.$element.trigger(d)},0)}).emulateTransitionEnd(n.TRANSITION_DURATION)):(r.removeClass("active"),i.addClass("active"),this.sliding=!1,this.$element.trigger(d)),a&&this.cycle(),this}};var o=e.fn.carousel;e.fn.carousel=t,e.fn.carousel.Constructor=n,e.fn.carousel.noConflict=function(){return e.fn.carousel=o,this};var r=function(n){var o,r=e(this),i=e(r.attr("data-target")||(o=r.attr("href"))&&o.replace(/.*(?=#[^\s]+$)/,""));if(i.hasClass("carousel")){var a=e.extend({},i.data(),r.data()),s=r.attr("data-slide-to");s&&(a.interval=!1),t.call(i,a),s&&i.data("bs.carousel").to(s),n.preventDefault()}};e(document).on("click.bs.carousel.data-api","[data-slide]",r).on("click.bs.carousel.data-api","[data-slide-to]",r),e(window).on("load",function(){e('[data-ride="carousel"]').each(function(){var n=e(this);t.call(n,n.data())})})}(jQuery)},function(e,t){+function(e){"use strict";function t(t){var n,o=t.attr("data-target")||(n=t.attr("href"))&&n.replace(/.*(?=#[^\s]+$)/,"");return e(o)}function n(t){return this.each(function(){var n=e(this),r=n.data("bs.collapse"),i=e.extend({},o.DEFAULTS,n.data(),"object"==typeof t&&t);!r&&i.toggle&&/show|hide/.test(t)&&(i.toggle=!1),r||n.data("bs.collapse",r=new o(this,i)),"string"==typeof t&&r[t]()})}var o=function(t,n){this.$element=e(t),this.options=e.extend({},o.DEFAULTS,n),this.$trigger=e('[data-toggle="collapse"][href="#'+t.id+'"],[data-toggle="collapse"][data-target="#'+t.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};o.VERSION="3.3.6",o.TRANSITION_DURATION=350,o.DEFAULTS={toggle:!0},o.prototype.dimension=function(){var e=this.$element.hasClass("width");return e?"width":"height"},o.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var t,r=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(r&&r.length&&(t=r.data("bs.collapse"),t&&t.transitioning))){var i=e.Event("show.bs.collapse");if(this.$element.trigger(i),!i.isDefaultPrevented()){r&&r.length&&(n.call(r,"hide"),t||r.data("bs.collapse",null));var a=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[a](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var s=function(){this.$element.removeClass("collapsing").addClass("collapse in")[a](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!e.support.transition)return s.call(this);var u=e.camelCase(["scroll",a].join("-"));this.$element.one("bsTransitionEnd",e.proxy(s,this)).emulateTransitionEnd(o.TRANSITION_DURATION)[a](this.$element[0][u])}}}},o.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var t=e.Event("hide.bs.collapse");if(this.$element.trigger(t),!t.isDefaultPrevented()){var n=this.dimension();this.$element[n](this.$element[n]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var r=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return e.support.transition?void this.$element[n](0).one("bsTransitionEnd",e.proxy(r,this)).emulateTransitionEnd(o.TRANSITION_DURATION):r.call(this)}}},o.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},o.prototype.getParent=function(){return e(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(e.proxy(function(n,o){var r=e(o);this.addAriaAndCollapsedClass(t(r),r)},this)).end()},o.prototype.addAriaAndCollapsedClass=function(e,t){var n=e.hasClass("in");e.attr("aria-expanded",n),t.toggleClass("collapsed",!n).attr("aria-expanded",n)};var r=e.fn.collapse;e.fn.collapse=n,e.fn.collapse.Constructor=o,e.fn.collapse.noConflict=function(){return e.fn.collapse=r,this},e(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(o){var r=e(this);r.attr("data-target")||o.preventDefault();var i=t(r),a=i.data("bs.collapse"),s=a?"toggle":r.data();n.call(i,s)})}(jQuery)},function(e,t){+function(e){"use strict";function t(t){var n=t.attr("data-target");n||(n=t.attr("href"),n=n&&/#[A-Za-z]/.test(n)&&n.replace(/.*(?=#[^\s]*$)/,""));var o=n&&e(n);return o&&o.length?o:t.parent()}function n(n){n&&3===n.which||(e(r).remove(),e(i).each(function(){var o=e(this),r=t(o),i={relatedTarget:this};r.hasClass("open")&&(n&&"click"==n.type&&/input|textarea/i.test(n.target.tagName)&&e.contains(r[0],n.target)||(r.trigger(n=e.Event("hide.bs.dropdown",i)),n.isDefaultPrevented()||(o.attr("aria-expanded","false"),r.removeClass("open").trigger(e.Event("hidden.bs.dropdown",i)))))}))}function o(t){return this.each(function(){var n=e(this),o=n.data("bs.dropdown");o||n.data("bs.dropdown",o=new a(this)),"string"==typeof t&&o[t].call(n)})}var r=".dropdown-backdrop",i='[data-toggle="dropdown"]',a=function(t){e(t).on("click.bs.dropdown",this.toggle)};a.VERSION="3.3.6",a.prototype.toggle=function(o){var r=e(this);if(!r.is(".disabled, :disabled")){var i=t(r),a=i.hasClass("open");if(n(),!a){"ontouchstart"in document.documentElement&&!i.closest(".navbar-nav").length&&e(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(e(this)).on("click",n);var s={relatedTarget:this};if(i.trigger(o=e.Event("show.bs.dropdown",s)),o.isDefaultPrevented())return;r.trigger("focus").attr("aria-expanded","true"),i.toggleClass("open").trigger(e.Event("shown.bs.dropdown",s))}return!1}},a.prototype.keydown=function(n){if(/(38|40|27|32)/.test(n.which)&&!/input|textarea/i.test(n.target.tagName)){var o=e(this);if(n.preventDefault(),n.stopPropagation(),!o.is(".disabled, :disabled")){var r=t(o),a=r.hasClass("open");if(!a&&27!=n.which||a&&27==n.which)return 27==n.which&&r.find(i).trigger("focus"),o.trigger("click");var s=" li:not(.disabled):visible a",u=r.find(".dropdown-menu"+s);if(u.length){var l=u.index(n.target);38==n.which&&l>0&&l--,40==n.which&&ldocument.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&e?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!e?this.scrollbarWidth:""})},n.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},n.prototype.checkScrollbar=function(){var e=window.innerWidth;if(!e){var t=document.documentElement.getBoundingClientRect();e=t.right-Math.abs(t.left)}this.bodyIsOverflowing=document.body.clientWidth
',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},n.prototype.init=function(t,n,o){if(this.enabled=!0,this.type=t,this.$element=e(n),this.options=this.getOptions(o),this.$viewport=this.options.viewport&&e(e.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var r=this.options.trigger.split(" "),i=r.length;i--;){var a=r[i];if("click"==a)this.$element.on("click."+this.type,this.options.selector,e.proxy(this.toggle,this));else if("manual"!=a){var s="hover"==a?"mouseenter":"focusin",u="hover"==a?"mouseleave":"focusout";this.$element.on(s+"."+this.type,this.options.selector,e.proxy(this.enter,this)),this.$element.on(u+"."+this.type,this.options.selector,e.proxy(this.leave,this))}}this.options.selector?this._options=e.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},n.prototype.getDefaults=function(){return n.DEFAULTS},n.prototype.getOptions=function(t){return t=e.extend({},this.getDefaults(),this.$element.data(),t),t.delay&&"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),t},n.prototype.getDelegateOptions=function(){var t={},n=this.getDefaults();return this._options&&e.each(this._options,function(e,o){n[e]!=o&&(t[e]=o)}),t},n.prototype.enter=function(t){var n=t instanceof this.constructor?t:e(t.currentTarget).data("bs."+this.type);return n||(n=new this.constructor(t.currentTarget,this.getDelegateOptions()),e(t.currentTarget).data("bs."+this.type,n)),t instanceof e.Event&&(n.inState["focusin"==t.type?"focus":"hover"]=!0),n.tip().hasClass("in")||"in"==n.hoverState?void(n.hoverState="in"):(clearTimeout(n.timeout),n.hoverState="in",n.options.delay&&n.options.delay.show?void(n.timeout=setTimeout(function(){"in"==n.hoverState&&n.show()},n.options.delay.show)):n.show())},n.prototype.isInStateTrue=function(){for(var e in this.inState)if(this.inState[e])return!0;return!1},n.prototype.leave=function(t){var n=t instanceof this.constructor?t:e(t.currentTarget).data("bs."+this.type);if(n||(n=new this.constructor(t.currentTarget,this.getDelegateOptions()),e(t.currentTarget).data("bs."+this.type,n)),t instanceof e.Event&&(n.inState["focusout"==t.type?"focus":"hover"]=!1),!n.isInStateTrue())return clearTimeout(n.timeout),n.hoverState="out",n.options.delay&&n.options.delay.hide?void(n.timeout=setTimeout(function(){"out"==n.hoverState&&n.hide()},n.options.delay.hide)):n.hide()},n.prototype.show=function(){var t=e.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(t);var o=e.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(t.isDefaultPrevented()||!o)return;var r=this,i=this.tip(),a=this.getUID(this.type);this.setContent(),i.attr("id",a),this.$element.attr("aria-describedby",a),this.options.animation&&i.addClass("fade");var s="function"==typeof this.options.placement?this.options.placement.call(this,i[0],this.$element[0]):this.options.placement,u=/\s?auto?\s?/i,l=u.test(s);l&&(s=s.replace(u,"")||"top"),i.detach().css({top:0,left:0,display:"block"}).addClass(s).data("bs."+this.type,this),this.options.container?i.appendTo(this.options.container):i.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var c=this.getPosition(),p=i[0].offsetWidth,d=i[0].offsetHeight;if(l){var f=s,h=this.getPosition(this.$viewport);s="bottom"==s&&c.bottom+d>h.bottom?"top":"top"==s&&c.top-dh.width?"left":"left"==s&&c.left-pa.top+a.height&&(r.top=a.top+a.height-u)}else{var l=t.left-i,c=t.left+i+n;la.right&&(r.left=a.left+a.width-c)}return r},n.prototype.getTitle=function(){var e,t=this.$element,n=this.options;return e=t.attr("data-original-title")||("function"==typeof n.title?n.title.call(t[0]):n.title)},n.prototype.getUID=function(e){do e+=~~(1e6*Math.random());while(document.getElementById(e));return e},n.prototype.tip=function(){if(!this.$tip&&(this.$tip=e(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},n.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},n.prototype.enable=function(){this.enabled=!0},n.prototype.disable=function(){this.enabled=!1},n.prototype.toggleEnabled=function(){this.enabled=!this.enabled},n.prototype.toggle=function(t){var n=this;t&&(n=e(t.currentTarget).data("bs."+this.type),n||(n=new this.constructor(t.currentTarget,this.getDelegateOptions()),e(t.currentTarget).data("bs."+this.type,n))),t?(n.inState.click=!n.inState.click,n.isInStateTrue()?n.enter(n):n.leave(n)):n.tip().hasClass("in")?n.leave(n):n.enter(n)},n.prototype.destroy=function(){var e=this;clearTimeout(this.timeout),this.hide(function(){e.$element.off("."+e.type).removeData("bs."+e.type),e.$tip&&e.$tip.detach(),e.$tip=null,e.$arrow=null,e.$viewport=null})};var o=e.fn.tooltip;e.fn.tooltip=t,e.fn.tooltip.Constructor=n,e.fn.tooltip.noConflict=function(){return e.fn.tooltip=o,this}}(jQuery)},function(e,t){+function(e){"use strict";function t(t){return this.each(function(){var o=e(this),r=o.data("bs.popover"),i="object"==typeof t&&t;!r&&/destroy|hide/.test(t)||(r||o.data("bs.popover",r=new n(this,i)),"string"==typeof t&&r[t]())})}var n=function(e,t){this.init("popover",e,t)};if(!e.fn.tooltip)throw new Error("Popover requires tooltip.js");n.VERSION="3.3.6",n.DEFAULTS=e.extend({},e.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:''}),n.prototype=e.extend({},e.fn.tooltip.Constructor.prototype),n.prototype.constructor=n,n.prototype.getDefaults=function(){return n.DEFAULTS},n.prototype.setContent=function(){var e=this.tip(),t=this.getTitle(),n=this.getContent();e.find(".popover-title")[this.options.html?"html":"text"](t),e.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof n?"html":"append":"text"](n),e.removeClass("fade top bottom left right in"),e.find(".popover-title").html()||e.find(".popover-title").hide()},n.prototype.hasContent=function(){return this.getTitle()||this.getContent()},n.prototype.getContent=function(){var e=this.$element,t=this.options;return e.attr("data-content")||("function"==typeof t.content?t.content.call(e[0]):t.content)},n.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var o=e.fn.popover;e.fn.popover=t,e.fn.popover.Constructor=n,e.fn.popover.noConflict=function(){return e.fn.popover=o,this}}(jQuery)},function(e,t){+function(e){"use strict";function t(n,o){this.$body=e(document.body),this.$scrollElement=e(e(n).is(document.body)?window:n),this.options=e.extend({},t.DEFAULTS,o),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",e.proxy(this.process,this)),this.refresh(),this.process()}function n(n){return this.each(function(){var o=e(this),r=o.data("bs.scrollspy"),i="object"==typeof n&&n;r||o.data("bs.scrollspy",r=new t(this,i)),"string"==typeof n&&r[n]()})}t.VERSION="3.3.6",t.DEFAULTS={offset:10},t.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight); -},t.prototype.refresh=function(){var t=this,n="offset",o=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),e.isWindow(this.$scrollElement[0])||(n="position",o=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var t=e(this),r=t.data("target")||t.attr("href"),i=/^#./.test(r)&&e(r);return i&&i.length&&i.is(":visible")&&[[i[n]().top+o,r]]||null}).sort(function(e,t){return e[0]-t[0]}).each(function(){t.offsets.push(this[0]),t.targets.push(this[1])})},t.prototype.process=function(){var e,t=this.$scrollElement.scrollTop()+this.options.offset,n=this.getScrollHeight(),o=this.options.offset+n-this.$scrollElement.height(),r=this.offsets,i=this.targets,a=this.activeTarget;if(this.scrollHeight!=n&&this.refresh(),t>=o)return a!=(e=i[i.length-1])&&this.activate(e);if(a&&t=r[e]&&(void 0===r[e+1]||t .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),t.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),s?(t[0].offsetWidth,t.addClass("in")):t.removeClass("fade"),t.parent(".dropdown-menu").length&&t.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),r&&r()}var a=o.find("> .active"),s=r&&e.support.transition&&(a.length&&a.hasClass("fade")||!!o.find("> .fade").length);a.length&&s?a.one("bsTransitionEnd",i).emulateTransitionEnd(n.TRANSITION_DURATION):i(),a.removeClass("in")};var o=e.fn.tab;e.fn.tab=t,e.fn.tab.Constructor=n,e.fn.tab.noConflict=function(){return e.fn.tab=o,this};var r=function(n){n.preventDefault(),t.call(e(this),"show")};e(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',r).on("click.bs.tab.data-api",'[data-toggle="pill"]',r)}(jQuery)},function(e,t){+function(e){"use strict";function t(t){return this.each(function(){var o=e(this),r=o.data("bs.affix"),i="object"==typeof t&&t;r||o.data("bs.affix",r=new n(this,i)),"string"==typeof t&&r[t]()})}var n=function(t,o){this.options=e.extend({},n.DEFAULTS,o),this.$target=e(this.options.target).on("scroll.bs.affix.data-api",e.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",e.proxy(this.checkPositionWithEventLoop,this)),this.$element=e(t),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};n.VERSION="3.3.6",n.RESET="affix affix-top affix-bottom",n.DEFAULTS={offset:0,target:window},n.prototype.getState=function(e,t,n,o){var r=this.$target.scrollTop(),i=this.$element.offset(),a=this.$target.height();if(null!=n&&"top"==this.affixed)return r=e-o&&"bottom"},n.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(n.RESET).addClass("affix");var e=this.$target.scrollTop(),t=this.$element.offset();return this.pinnedOffset=t.top-e},n.prototype.checkPositionWithEventLoop=function(){setTimeout(e.proxy(this.checkPosition,this),1)},n.prototype.checkPosition=function(){if(this.$element.is(":visible")){var t=this.$element.height(),o=this.options.offset,r=o.top,i=o.bottom,a=Math.max(e(document).height(),e(document.body).height());"object"!=typeof o&&(i=r=o),"function"==typeof r&&(r=o.top(this.$element)),"function"==typeof i&&(i=o.bottom(this.$element));var s=this.getState(a,t,r,i);if(this.affixed!=s){null!=this.unpin&&this.$element.css("top","");var u="affix"+(s?"-"+s:""),l=e.Event(u+".bs.affix");if(this.$element.trigger(l),l.isDefaultPrevented())return;this.affixed=s,this.unpin="bottom"==s?this.getPinnedOffset():null,this.$element.removeClass(n.RESET).addClass(u).trigger(u.replace("affix","affixed")+".bs.affix")}"bottom"==s&&this.$element.offset({top:a-t-i})}};var o=e.fn.affix;e.fn.affix=t,e.fn.affix.Constructor=n,e.fn.affix.noConflict=function(){return e.fn.affix=o,this},e(window).on("load",function(){e('[data-spy="affix"]').each(function(){var n=e(this),o=n.data();o.offset=o.offset||{},null!=o.offsetBottom&&(o.offset.bottom=o.offsetBottom),null!=o.offsetTop&&(o.offset.top=o.offsetTop),t.call(n,o)})})}(jQuery)},function(e,t,n){var o,r;(function(){function n(e){function t(t,n,o,r,i,a){for(;i>=0&&i0?0:s-1;return arguments.length<3&&(r=n[a?a[u]:u],u+=e),t(n,o,r,a,u,s)}}function i(e){return function(t,n,o){n=_(n,o);for(var r=k(t),i=e>0?0:r-1;i>=0&&i0?a=i>=0?i:Math.max(i+s,a):s=i>=0?Math.min(i+1,s):i+s+1;else if(n&&i&&s)return i=n(o,r),o[i]===r?i:-1;if(r!==r)return i=t(h.call(o,a,s),C.isNaN),i>=0?i+a:-1;for(i=e>0?a:s-1;i>=0&&i=0&&t<=O};C.each=C.forEach=function(e,t,n){t=x(t,n);var o,r;if(S(e))for(o=0,r=e.length;o=0},C.invoke=function(e,t){var n=h.call(arguments,2),o=C.isFunction(t);return C.map(e,function(e){var r=o?t:e[t];return null==r?r:r.apply(e,n)})},C.pluck=function(e,t){return C.map(e,C.property(t))},C.where=function(e,t){return C.filter(e,C.matcher(t))},C.findWhere=function(e,t){return C.find(e,C.matcher(t))},C.max=function(e,t,n){var o,r,i=-(1/0),a=-(1/0);if(null==t&&null!=e){e=S(e)?e:C.values(e);for(var s=0,u=e.length;si&&(i=o)}else t=_(t,n),C.each(e,function(e,n,o){r=t(e,n,o),(r>a||r===-(1/0)&&i===-(1/0))&&(i=e,a=r)});return i},C.min=function(e,t,n){var o,r,i=1/0,a=1/0;if(null==t&&null!=e){e=S(e)?e:C.values(e);for(var s=0,u=e.length;so||void 0===n)return 1;if(nt?(a&&(clearTimeout(a),a=null),s=l,i=e.apply(o,r),a||(o=r=null)):a||n.trailing===!1||(a=setTimeout(u,c)),i}},C.debounce=function(e,t,n){var o,r,i,a,s,u=function(){var l=C.now()-a;l=0?o=setTimeout(u,t-l):(o=null,n||(s=e.apply(i,r),o||(i=r=null)))};return function(){i=this,r=arguments,a=C.now();var l=n&&!o;return o||(o=setTimeout(u,t)),l&&(s=e.apply(i,r),i=r=null),s}},C.wrap=function(e,t){return C.partial(t,e)},C.negate=function(e){return function(){return!e.apply(this,arguments)}},C.compose=function(){var e=arguments,t=e.length-1;return function(){for(var n=t,o=e[t].apply(this,arguments);n--;)o=e[n].call(this,o);return o}},C.after=function(e,t){return function(){if(--e<1)return t.apply(this,arguments)}},C.before=function(e,t){var n;return function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=null),n}},C.once=C.partial(C.before,2);var P=!{toString:null}.propertyIsEnumerable("toString"),A=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"];C.keys=function(e){if(!C.isObject(e))return[];if(y)return y(e);var t=[];for(var n in e)C.has(e,n)&&t.push(n);return P&&s(e,t),t},C.allKeys=function(e){if(!C.isObject(e))return[];var t=[];for(var n in e)t.push(n);return P&&s(e,t),t},C.values=function(e){for(var t=C.keys(e),n=t.length,o=Array(n),r=0;r":">",'"':""","'":"'","`":"`"},j=C.invert(V),U=function(e){var t=function(t){return e[t]},n="(?:"+C.keys(e).join("|")+")",o=RegExp(n),r=RegExp(n,"g");return function(e){return e=null==e?"":""+e,o.test(e)?e.replace(r,t):e}};C.escape=U(V),C.unescape=U(j),C.result=function(e,t,n){var o=null==e?void 0:e[t];return void 0===o&&(o=n),C.isFunction(o)?o.call(e):o};var F=0;C.uniqueId=function(e){var t=++F+"";return e?e+t:t},C.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var B=/(.)^/,$={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},H=/\\|'|\r|\n|\u2028|\u2029/g,q=function(e){return"\\"+$[e]};C.template=function(e,t,n){!t&&n&&(t=n),t=C.defaults({},t,C.templateSettings);var o=RegExp([(t.escape||B).source,(t.interpolate||B).source,(t.evaluate||B).source].join("|")+"|$","g"),r=0,i="__p+='";e.replace(o,function(t,n,o,a,s){return i+=e.slice(r,s).replace(H,q),r=s+t.length,n?i+="'+\n((__t=("+n+"))==null?'':_.escape(__t))+\n'":o?i+="'+\n((__t=("+o+"))==null?'':__t)+\n'":a&&(i+="';\n"+a+"\n__p+='"),t}),i+="';\n",t.variable||(i="with(obj||{}){\n"+i+"}\n"),i="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+i+"return __p;\n";try{var a=new Function(t.variable||"obj","_",i)}catch(s){throw s.source=i,s}var u=function(e){return a.call(this,e,C)},l=t.variable||"obj";return u.source="function("+l+"){\n"+i+"}",u},C.chain=function(e){var t=C(e);return t._chain=!0,t};var W=function(e,t){return e._chain?C(t).chain():t};C.mixin=function(e){C.each(C.functions(e),function(t){var n=C[t]=e[t];C.prototype[t]=function(){var e=[this._wrapped];return f.apply(e,arguments),W(this,n.apply(C,e))}})},C.mixin(C),C.each(["pop","push","reverse","shift","sort","splice","unshift"],function(e){var t=c[e];C.prototype[e]=function(){var n=this._wrapped;return t.apply(n,arguments),"shift"!==e&&"splice"!==e||0!==n.length||delete n[0],W(this,n)}}),C.each(["concat","join","slice"],function(e){var t=c[e];C.prototype[e]=function(){return W(this,t.apply(this._wrapped,arguments))}}),C.prototype.value=function(){return this._wrapped},C.prototype.valueOf=C.prototype.toJSON=C.prototype.value,C.prototype.toString=function(){return""+this._wrapped},o=[],r=function(){return C}.apply(t,o),!(void 0!==r&&(e.exports=r))}).call(this)},function(e,t,n){"use strict";e.exports=n(17)},function(e,t,n){"use strict";var o=n(18),r=n(163),i=n(167),a=n(54),s=n(172),u={};a(u,i),a(u,{findDOMNode:s("findDOMNode","ReactDOM","react-dom",o,o.findDOMNode),render:s("render","ReactDOM","react-dom",o,o.render),unmountComponentAtNode:s("unmountComponentAtNode","ReactDOM","react-dom",o,o.unmountComponentAtNode),renderToString:s("renderToString","ReactDOMServer","react-dom/server",r,r.renderToString),renderToStaticMarkup:s("renderToStaticMarkup","ReactDOMServer","react-dom/server",r,r.renderToStaticMarkup)}),u.__SECRET_DOM_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=o,u.__SECRET_DOM_SERVER_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=r,e.exports=u},function(e,t,n){(function(t){"use strict";var o=n(20),r=n(21),i=n(86),a=n(60),s=n(43),u=n(33),l=n(65),c=n(69),p=n(161),d=n(106),f=n(162),h=n(40);i.inject();var m=u.measure("React","render",s.render),v={findDOMNode:d,render:m,unmountComponentAtNode:s.unmountComponentAtNode,version:p,unstable_batchedUpdates:c.batchedUpdates,unstable_renderSubtreeIntoContainer:f};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject&&__REACT_DEVTOOLS_GLOBAL_HOOK__.inject({CurrentOwner:o,InstanceHandles:a,Mount:s,Reconciler:l,TextComponent:r}),"production"!==t.env.NODE_ENV){var g=n(24);if(g.canUseDOM&&window.top===window.self){"undefined"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&(navigator.userAgent.indexOf("Chrome")>-1&&navigator.userAgent.indexOf("Edge")===-1||navigator.userAgent.indexOf("Firefox")>-1)&&console.debug("Download the React DevTools for a better development experience: https://fb.me/react-devtools");var y=document.documentMode&&document.documentMode<8;"production"!==t.env.NODE_ENV?h(!y,'Internet Explorer is running in compatibility mode; please add the following tag to your HTML to prevent this from happening: '):void 0;for(var b=[Array.isArray,Array.prototype.every,Array.prototype.forEach,Array.prototype.indexOf,Array.prototype.map,Date.now,Function.prototype.bind,Object.keys,String.prototype.split,String.prototype.trim,Object.create,Object.freeze],E=0;E1)for(var n=1;n"+p+""},receiveComponent:function(e,t){if(e!==this._currentElement){this._currentElement=e;var n=""+e;if(n!==this._stringText){this._stringText=n;var r=a.getNode(this._rootNodeID);o.updateTextContent(r,n)}}},unmountComponent:function(){i.unmountIDFromEnvironment(this._rootNodeID)}}),e.exports=p}).call(t,n(19))},function(e,t,n){(function(t){"use strict";function o(e,t,n){var o=n>=e.childNodes.length?null:e.childNodes.item(n);e.insertBefore(t,o)}var r=n(23),i=n(31),a=n(33),s=n(34),u=n(35),l=n(28),c={dangerouslyReplaceNodeWithMarkup:r.dangerouslyReplaceNodeWithMarkup,updateTextContent:u,processUpdates:function(e,n){for(var a,c=null,p=null,d=0;d when using tables, nesting tags like
,

, or , or using non-SVG elements in an parent. Try inspecting the child nodes of the element with React ID `%s`.",f,m):l(!1),c=c||{},c[m]=c[m]||[],c[m][f]=h,p=p||[],p.push(h)}var v;if(v=n.length&&"string"==typeof n[0]?r.dangerouslyRenderMarkup(n):n,p)for(var g=0;g]+)/,c="data-danger-index",p={dangerouslyRenderMarkup:function(e){r.canUseDOM?void 0:"production"!==t.env.NODE_ENV?u(!1,"dangerouslyRenderMarkup(...): Cannot render markup in a worker thread. Make sure `window` and `document` are available globally before requiring React when unit testing or use ReactDOMServer.renderToString for server rendering."):u(!1);for(var n,p={},d=0;d node. This is because browser quirks make this unreliable and/or slow. If you want to render to the root you must use server rendering. See ReactDOMServer.renderToString()."):u(!1):void 0;var o;o="string"==typeof n?i(n,a)[0]:n,e.parentNode.replaceChild(o,e)}};e.exports=p}).call(t,n(19))},function(e,t){"use strict";var n=!("undefined"==typeof window||!window.document||!window.document.createElement),o={canUseDOM:n,canUseWorkers:"undefined"!=typeof Worker,canUseEventListeners:n&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:n&&!!window.screen,isInWorker:!n};e.exports=o},function(e,t,n){(function(t){"use strict";function o(e){var t=e.match(c);return t&&t[1].toLowerCase()}function r(e,n){var r=l;l?void 0:"production"!==t.env.NODE_ENV?u(!1,"createNodesFromMarkup dummy not initialized"):u(!1);var i=o(e),c=i&&s(i);if(c){r.innerHTML=c[1]+e+c[2];for(var p=c[0];p--;)r=r.lastChild}else r.innerHTML=e;var d=r.getElementsByTagName("script");d.length&&(n?void 0:"production"!==t.env.NODE_ENV?u(!1,"createNodesFromMarkup(...): Unexpected ","
"],c=[3,"","
"],p=[1,'',""],d={"*":[1,"?

"],area:[1,"",""],col:[2,"","
"],legend:[1,"
","
"],param:[1,"",""],tr:[2,"","
"],optgroup:u,option:u,caption:l,colgroup:l,tbody:l,tfoot:l,thead:l,td:c,th:c},f=["circle","clipPath","defs","ellipse","g","image","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","text","tspan"];f.forEach(function(e){d[e]=p,s[e]=!0}),e.exports=o}).call(t,n(19))},function(e,t){"use strict";function n(e){return function(){return e}}function o(){}o.thatReturns=n,o.thatReturnsFalse=n(!1),o.thatReturnsTrue=n(!0),o.thatReturnsNull=n(null),o.thatReturnsThis=function(){return this},o.thatReturnsArgument=function(e){return e},e.exports=o},function(e,t,n){"use strict";var o=n(32),r=o({INSERT_MARKUP:null,MOVE_EXISTING:null,REMOVE_NODE:null,SET_MARKUP:null,TEXT_CONTENT:null});e.exports=r},function(e,t,n){(function(t){"use strict";var o=n(28),r=function(e){var n,r={};e instanceof Object&&!Array.isArray(e)?void 0:"production"!==t.env.NODE_ENV?o(!1,"keyMirror(...): Argument must be an object."):o(!1);for(n in e)e.hasOwnProperty(n)&&(r[n]=n);return r};e.exports=r}).call(t,n(19))},function(e,t,n){(function(t){"use strict";function n(e,t,n){return n}var o={enableMeasure:!1,storedMeasure:n,measureMethods:function(e,n,r){if("production"!==t.env.NODE_ENV)for(var i in r)r.hasOwnProperty(i)&&(e[i]=o.measure(n,r[i],e[i]))},measure:function(e,n,r){if("production"!==t.env.NODE_ENV){var i=null,a=function(){return o.enableMeasure?(i||(i=o.storedMeasure(e,n,r)),i.apply(this,arguments)):r.apply(this,arguments)};return a.displayName=e+"_"+n,a}return r},injection:{injectMeasure:function(e){o.storedMeasure=e}}};e.exports=o}).call(t,n(19))},function(e,t,n){"use strict";var o=n(24),r=/^[ \r\n\t\f]/,i=/<(!--|link|noscript|meta|script|style)[ \r\n\t\f\/>]/,a=function(e,t){e.innerHTML=t};if("undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction&&(a=function(e,t){MSApp.execUnsafeLocalFunction(function(){e.innerHTML=t})}),o.canUseDOM){var s=document.createElement("div");s.innerHTML=" ",""===s.innerHTML&&(a=function(e,t){if(e.parentNode&&e.parentNode.replaceChild(e,e),r.test(t)||"<"===t[0]&&i.test(t)){e.innerHTML=String.fromCharCode(65279)+t;var n=e.firstChild;1===n.data.length?e.removeChild(n):n.deleteData(0,1)}else e.innerHTML=t})}e.exports=a},function(e,t,n){"use strict";var o=n(24),r=n(36),i=n(34),a=function(e,t){e.textContent=t};o.canUseDOM&&("textContent"in document.documentElement||(a=function(e,t){i(e,r(t))})),e.exports=a},function(e,t){"use strict";function n(e){return r[e]}function o(e){return(""+e).replace(i,n)}var r={"&":"&",">":">","<":"<",'"':""","'":"'"},i=/[&><"']/g;e.exports=o},function(e,t,n){(function(t){"use strict";function o(e){return!!p.hasOwnProperty(e)||!c.hasOwnProperty(e)&&(l.test(e)?(p[e]=!0,!0):(c[e]=!0,"production"!==t.env.NODE_ENV?u(!1,"Invalid attribute name: `%s`",e):void 0,!1))}function r(e,t){return null==t||e.hasBooleanValue&&!t||e.hasNumericValue&&isNaN(t)||e.hasPositiveNumericValue&&t<1||e.hasOverloadedBooleanValue&&t===!1}var i=n(38),a=n(33),s=n(39),u=n(40),l=/^[a-zA-Z_][\w\.\-]*$/,c={},p={};if("production"!==t.env.NODE_ENV)var d={children:!0,dangerouslySetInnerHTML:!0,key:!0,ref:!0},f={},h=function(e){if(!(d.hasOwnProperty(e)&&d[e]||f.hasOwnProperty(e)&&f[e])){f[e]=!0;var n=e.toLowerCase(),o=i.isCustomAttribute(n)?n:i.getPossibleStandardName.hasOwnProperty(n)?i.getPossibleStandardName[n]:null;"production"!==t.env.NODE_ENV?u(null==o,"Unknown DOM property %s. Did you mean %s?",e,o):void 0}};var m={createMarkupForID:function(e){return i.ID_ATTRIBUTE_NAME+"="+s(e)},setAttributeForID:function(e,t){e.setAttribute(i.ID_ATTRIBUTE_NAME,t)},createMarkupForProperty:function(e,n){var o=i.properties.hasOwnProperty(e)?i.properties[e]:null;if(o){if(r(o,n))return"";var a=o.attributeName;return o.hasBooleanValue||o.hasOverloadedBooleanValue&&n===!0?a+'=""':a+"="+s(n)}return i.isCustomAttribute(e)?null==n?"":e+"="+s(n):("production"!==t.env.NODE_ENV&&h(e),null)},createMarkupForCustomAttribute:function(e,t){return o(e)&&null!=t?e+"="+s(t):""},setValueForProperty:function(e,n,o){var a=i.properties.hasOwnProperty(n)?i.properties[n]:null;if(a){var s=a.mutationMethod;if(s)s(e,o);else if(r(a,o))this.deleteValueForProperty(e,n);else if(a.mustUseAttribute){var u=a.attributeName,l=a.attributeNamespace;l?e.setAttributeNS(l,u,""+o):a.hasBooleanValue||a.hasOverloadedBooleanValue&&o===!0?e.setAttribute(u,""):e.setAttribute(u,""+o)}else{var c=a.propertyName;a.hasSideEffects&&""+e[c]==""+o||(e[c]=o)}}else i.isCustomAttribute(n)?m.setValueForAttribute(e,n,o):"production"!==t.env.NODE_ENV&&h(n)},setValueForAttribute:function(e,t,n){o(t)&&(null==n?e.removeAttribute(t):e.setAttribute(t,""+n))},deleteValueForProperty:function(e,n){var o=i.properties.hasOwnProperty(n)?i.properties[n]:null;if(o){var r=o.mutationMethod;if(r)r(e,void 0);else if(o.mustUseAttribute)e.removeAttribute(o.attributeName);else{var a=o.propertyName,s=i.getDefaultValueForProperty(e.nodeName,a);o.hasSideEffects&&""+e[a]===s||(e[a]=s)}}else i.isCustomAttribute(n)?e.removeAttribute(n):"production"!==t.env.NODE_ENV&&h(n)}};a.measureMethods(m,"DOMPropertyOperations",{setValueForProperty:"setValueForProperty",setValueForAttribute:"setValueForAttribute",deleteValueForProperty:"deleteValueForProperty"}),e.exports=m}).call(t,n(19))},function(e,t,n){(function(t){"use strict";function o(e,t){return(e&t)===t}var r=n(28),i={MUST_USE_ATTRIBUTE:1,MUST_USE_PROPERTY:2,HAS_SIDE_EFFECTS:4,HAS_BOOLEAN_VALUE:8,HAS_NUMERIC_VALUE:16,HAS_POSITIVE_NUMERIC_VALUE:48,HAS_OVERLOADED_BOOLEAN_VALUE:64,injectDOMPropertyConfig:function(e){var n=i,a=e.Properties||{},u=e.DOMAttributeNamespaces||{},l=e.DOMAttributeNames||{},c=e.DOMPropertyNames||{},p=e.DOMMutationMethods||{};e.isCustomAttribute&&s._isCustomAttributeFunctions.push(e.isCustomAttribute);for(var d in a){s.properties.hasOwnProperty(d)?"production"!==t.env.NODE_ENV?r(!1,"injectDOMPropertyConfig(...): You're trying to inject DOM property '%s' which has already been injected. You may be accidentally injecting the same DOM property config twice, or you may be injecting two configs that have conflicting property names.",d):r(!1):void 0;var f=d.toLowerCase(),h=a[d],m={attributeName:f,attributeNamespace:null,propertyName:d,mutationMethod:null,mustUseAttribute:o(h,n.MUST_USE_ATTRIBUTE),mustUseProperty:o(h,n.MUST_USE_PROPERTY),hasSideEffects:o(h,n.HAS_SIDE_EFFECTS),hasBooleanValue:o(h,n.HAS_BOOLEAN_VALUE),hasNumericValue:o(h,n.HAS_NUMERIC_VALUE),hasPositiveNumericValue:o(h,n.HAS_POSITIVE_NUMERIC_VALUE),hasOverloadedBooleanValue:o(h,n.HAS_OVERLOADED_BOOLEAN_VALUE)};if(m.mustUseAttribute&&m.mustUseProperty?"production"!==t.env.NODE_ENV?r(!1,"DOMProperty: Cannot require using both attribute and property: %s",d):r(!1):void 0,!m.mustUseProperty&&m.hasSideEffects?"production"!==t.env.NODE_ENV?r(!1,"DOMProperty: Properties that have side effects must use property: %s",d):r(!1):void 0,m.hasBooleanValue+m.hasNumericValue+m.hasOverloadedBooleanValue<=1?void 0:"production"!==t.env.NODE_ENV?r(!1,"DOMProperty: Value can be one of boolean, overloaded boolean, or numeric value, but not a combination: %s",d):r(!1),"production"!==t.env.NODE_ENV&&(s.getPossibleStandardName[f]=d),l.hasOwnProperty(d)){var v=l[d];m.attributeName=v,"production"!==t.env.NODE_ENV&&(s.getPossibleStandardName[v]=d)}u.hasOwnProperty(d)&&(m.attributeNamespace=u[d]),c.hasOwnProperty(d)&&(m.propertyName=c[d]),p.hasOwnProperty(d)&&(m.mutationMethod=p[d]),s.properties[d]=m}}},a={},s={ID_ATTRIBUTE_NAME:"data-reactid",properties:{},getPossibleStandardName:"production"!==t.env.NODE_ENV?{}:null,_isCustomAttributeFunctions:[],isCustomAttribute:function(e){for(var t=0;t2?n-2:0),r=2;r when using tables, nesting tags like ,

, or , or using non-SVG elements in an parent. Try inspecting the child nodes of the element with React ID `%s`.",n,ee.getID(e)):V(!1)},_mountImageIntoNode:function(e,n,i,a){if(!n||n.nodeType!==q&&n.nodeType!==W&&n.nodeType!==z?"production"!==t.env.NODE_ENV?V(!1,"mountComponentIntoNode(...): Target container is not valid."):V(!1):void 0,i){var s=r(n);if(O.canReuseMarkup(e,s))return;var u=s.getAttribute(O.CHECKSUM_ATTR_NAME);s.removeAttribute(O.CHECKSUM_ATTR_NAME);var l=s.outerHTML;s.setAttribute(O.CHECKSUM_ATTR_NAME,u);var c=e;if("production"!==t.env.NODE_ENV){var p;n.nodeType===q?(p=document.createElement("div"),p.innerHTML=e,c=p.innerHTML):(p=document.createElement("iframe"),document.body.appendChild(p),p.contentDocument.write(e),c=p.contentDocument.documentElement.outerHTML,document.body.removeChild(p))}var d=o(c,l),f=" (client) "+c.substring(d-20,d+20)+"\n (server) "+l.substring(d-20,d+20);n.nodeType===W?"production"!==t.env.NODE_ENV?V(!1,"You're trying to render a component to the document using server rendering but the checksum was invalid. This usually means you rendered a different component type or props on the client from the one on the server, or your render() methods are impure. React cannot handle this case due to cross-browser quirks by rendering at the document root. You should look for environment dependent code in your components and ensure the props are the same client and server side:\n%s",f):V(!1):void 0,"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?B(!1,"React attempted to reuse markup in a container but the checksum was invalid. This generally means that you are using server rendering and the markup generated on the server was not what the client was expecting. React injected new markup to compensate which works but you have lost many of the benefits of server rendering. Instead, figure out why the markup being generated is different on the client or server:\n%s",f):void 0)}if(n.nodeType===W?"production"!==t.env.NODE_ENV?V(!1,"You're trying to render a component to the document but you didn't use server rendering. We can't do this without using server rendering due to cross-browser quirks. See ReactDOMServer.renderToString() for server rendering."):V(!1):void 0,a.useCreateElement){for(;n.lastChild;)n.removeChild(n.lastChild);n.appendChild(e)}else j(n,e)},ownerDocumentContextKey:K,getReactRootID:i,getID:a,setID:u,getNode:l,getNodeFromInstance:c,isValid:p,purgeID:d};k.measureMethods(ee,"ReactMount",{_renderNewRootComponent:"_renderNewRootComponent",_mountImageIntoNode:"_mountImageIntoNode"}),e.exports=ee}).call(t,n(19))},function(e,t,n){"use strict";function o(e){return Object.prototype.hasOwnProperty.call(e,v)||(e[v]=h++,d[e[v]]={}),d[e[v]]}var r=n(45),i=n(46),a=n(47),s=n(52),u=n(33),l=n(53),c=n(54),p=n(55),d={},f=!1,h=0,m={topAbort:"abort",topBlur:"blur",topCanPlay:"canplay",topCanPlayThrough:"canplaythrough",topChange:"change",topClick:"click",topCompositionEnd:"compositionend",topCompositionStart:"compositionstart",topCompositionUpdate:"compositionupdate",topContextMenu:"contextmenu",topCopy:"copy",topCut:"cut",topDoubleClick:"dblclick",topDrag:"drag",topDragEnd:"dragend",topDragEnter:"dragenter",topDragExit:"dragexit",topDragLeave:"dragleave",topDragOver:"dragover",topDragStart:"dragstart",topDrop:"drop",topDurationChange:"durationchange",topEmptied:"emptied",topEncrypted:"encrypted",topEnded:"ended",topError:"error",topFocus:"focus",topInput:"input",topKeyDown:"keydown",topKeyPress:"keypress",topKeyUp:"keyup",topLoadedData:"loadeddata",topLoadedMetadata:"loadedmetadata",topLoadStart:"loadstart",topMouseDown:"mousedown",topMouseMove:"mousemove",topMouseOut:"mouseout",topMouseOver:"mouseover",topMouseUp:"mouseup",topPaste:"paste",topPause:"pause",topPlay:"play",topPlaying:"playing",topProgress:"progress",topRateChange:"ratechange",topScroll:"scroll",topSeeked:"seeked",topSeeking:"seeking",topSelectionChange:"selectionchange",topStalled:"stalled",topSuspend:"suspend",topTextInput:"textInput",topTimeUpdate:"timeupdate",topTouchCancel:"touchcancel",topTouchEnd:"touchend",topTouchMove:"touchmove",topTouchStart:"touchstart",topVolumeChange:"volumechange",topWaiting:"waiting",topWheel:"wheel"},v="_reactListenersID"+String(Math.random()).slice(2),g=c({},s,{ReactEventListener:null,injection:{injectReactEventListener:function(e){e.setHandleTopLevel(g.handleTopLevel),g.ReactEventListener=e}},setEnabled:function(e){g.ReactEventListener&&g.ReactEventListener.setEnabled(e)},isEnabled:function(){return!(!g.ReactEventListener||!g.ReactEventListener.isEnabled())},listenTo:function(e,t){for(var n=t,i=o(n),s=a.registrationNameDependencies[e],u=r.topLevelTypes,l=0;l-1?void 0:"production"!==t.env.NODE_ENV?a(!1,"EventPluginRegistry: Cannot inject event plugins that do not exist in the plugin ordering, `%s`.",e):a(!1),!l.plugins[o]){n.extractEvents?void 0:"production"!==t.env.NODE_ENV?a(!1,"EventPluginRegistry: Event plugins must implement an `extractEvents` method, but `%s` does not.",e):a(!1),l.plugins[o]=n;var i=n.eventTypes;for(var c in i)r(i[c],n,c)?void 0:"production"!==t.env.NODE_ENV?a(!1,"EventPluginRegistry: Failed to publish event `%s` for plugin `%s`.",c,e):a(!1)}}}function r(e,n,o){l.eventNameDispatchConfigs.hasOwnProperty(o)?"production"!==t.env.NODE_ENV?a(!1,"EventPluginHub: More than one plugin attempted to publish the same event name, `%s`.",o):a(!1):void 0,l.eventNameDispatchConfigs[o]=e;var r=e.phasedRegistrationNames;if(r){for(var s in r)if(r.hasOwnProperty(s)){var u=r[s];i(u,n,o)}return!0}return!!e.registrationName&&(i(e.registrationName,n,o),!0)}function i(e,n,o){l.registrationNameModules[e]?"production"!==t.env.NODE_ENV?a(!1,"EventPluginHub: More than one plugin attempted to publish the same registration name, `%s`.",e):a(!1):void 0,l.registrationNameModules[e]=n,l.registrationNameDependencies[e]=n.eventTypes[o].dependencies}var a=n(28),s=null,u={},l={plugins:[],eventNameDispatchConfigs:{},registrationNameModules:{},registrationNameDependencies:{},injectEventPluginOrder:function(e){s?"production"!==t.env.NODE_ENV?a(!1,"EventPluginRegistry: Cannot inject event plugin ordering more than once. You are likely trying to load more than one copy of React."):a(!1):void 0,s=Array.prototype.slice.call(e),o()},injectEventPluginsByName:function(e){var n=!1;for(var r in e)if(e.hasOwnProperty(r)){var i=e[r];u.hasOwnProperty(r)&&u[r]===i||(u[r]?"production"!==t.env.NODE_ENV?a(!1,"EventPluginRegistry: Cannot inject two different event plugins using the same name, `%s`.",r):a(!1):void 0,u[r]=i,n=!0)}n&&o()},getPluginModuleForEvent:function(e){var t=e.dispatchConfig;if(t.registrationName)return l.registrationNameModules[t.registrationName]||null;for(var n in t.phasedRegistrationNames)if(t.phasedRegistrationNames.hasOwnProperty(n)){var o=l.registrationNameModules[t.phasedRegistrationNames[n]];if(o)return o}return null},_resetEventPlugins:function(){s=null;for(var e in u)u.hasOwnProperty(e)&&delete u[e];l.plugins.length=0;var t=l.eventNameDispatchConfigs;for(var n in t)t.hasOwnProperty(n)&&delete t[n];var o=l.registrationNameModules;for(var r in o)o.hasOwnProperty(r)&&delete o[r]; -}};e.exports=l}).call(t,n(19))},function(e,t,n){(function(t){"use strict";function o(e){return e===y.topMouseUp||e===y.topTouchEnd||e===y.topTouchCancel}function r(e){return e===y.topMouseMove||e===y.topTouchMove}function i(e){return e===y.topMouseDown||e===y.topTouchStart}function a(e,t,n,o){var r=e.type||"unknown-event";e.currentTarget=g.Mount.getNode(o),t?h.invokeGuardedCallbackWithCatch(r,n,e,o):h.invokeGuardedCallback(r,n,e,o),e.currentTarget=null}function s(e,n){var o=e._dispatchListeners,r=e._dispatchIDs;if("production"!==t.env.NODE_ENV&&d(e),Array.isArray(o))for(var i=0;i1){for(var f=Array(d),h=0;h1){for(var m=Array(h),v=0;v1){var t=e.indexOf(f,1);return t>-1?e.substr(0,t):e}return null},traverseEnterLeave:function(e,t,n,o,r){var i=l(e,t);i!==e&&c(e,i,n,o,!1,!0),i!==t&&c(i,t,n,r,!0,!1)},traverseTwoPhase:function(e,t,n){e&&(c("",e,t,n,!0,!1),c(e,"",t,n,!1,!0))},traverseTwoPhaseSkipTarget:function(e,t,n){e&&(c("",e,t,n,!0,!0),c(e,"",t,n,!0,!0))},traverseAncestors:function(e,t,n){c("",e,t,n,!0,!1)},getFirstCommonAncestorID:l,_getNextDescendantID:u,isAncestorIDOf:a,SEPARATOR:f};e.exports=v}).call(t,n(19))},function(e,t){"use strict";var n={injectCreateReactRootIndex:function(e){o.createReactRootIndex=e}},o={createReactRootIndex:null,injection:n};e.exports=o},function(e,t){"use strict";var n={remove:function(e){e._reactInternalInstance=void 0},get:function(e){return e._reactInternalInstance},has:function(e){return void 0!==e._reactInternalInstance},set:function(e,t){e._reactInternalInstance=t}};e.exports=n},function(e,t,n){"use strict";var o=n(64),r=/\/?>/,i={CHECKSUM_ATTR_NAME:"data-react-checksum",addChecksumToMarkup:function(e){var t=o(e);return e.replace(r," "+i.CHECKSUM_ATTR_NAME+'="'+t+'"$&')},canReuseMarkup:function(e,t){var n=t.getAttribute(i.CHECKSUM_ATTR_NAME);n=n&&parseInt(n,10);var r=o(e);return r===n}};e.exports=i},function(e,t){"use strict";function n(e){for(var t=1,n=0,r=0,i=e.length,a=i&-4;r "),O=!!s+"|"+e+"|"+d+"|"+T;if(v[O])return;if(v[O]=!0,s){var k="";"table"===d&&"tr"===e&&(k+=" Add a to your code to match the DOM tree generated by the browser."),"production"!==t.env.NODE_ENV?i(!1,"validateDOMNesting(...): <%s> cannot appear as a child of <%s>. See %s.%s",e,d,T,k):void 0}else"production"!==t.env.NODE_ENV?i(!1,"validateDOMNesting(...): <%s> cannot appear as a descendant of <%s>. See %s.",e,d,T):void 0}},a.ancestorInfoContextKey="__validateDOMNesting_ancestorInfo$"+Math.random().toString(36).slice(2),a.updatedAncestorInfo=d,a.isTagValidInContext=function(e,t){t=t||p;var n=t.parentTag,o=n&&n.tag;return f(e,o)&&!h(e,t)}}e.exports=a}).call(t,n(19))},function(e,t,n){(function(t){"use strict";function o(){if(!w&&(w=!0,g.EventEmitter.injectReactEventListener(v),g.EventPluginHub.injectEventPluginOrder(s),g.EventPluginHub.injectInstanceHandle(y),g.EventPluginHub.injectMount(b),g.EventPluginHub.injectEventPluginsByName({SimpleEventPlugin:x,EnterLeaveEventPlugin:u,ChangeEventPlugin:i,SelectEventPlugin:N,BeforeInputEventPlugin:r}),g.NativeComponent.injectGenericComponentClass(h),g.NativeComponent.injectTextComponentClass(m),g.Class.injectMixin(p),g.DOMProperty.injectDOMPropertyConfig(c),g.DOMProperty.injectDOMPropertyConfig(_),g.EmptyComponent.injectEmptyComponent("noscript"),g.Updates.injectReconcileTransaction(E),g.Updates.injectBatchingStrategy(f),g.RootIndex.injectCreateReactRootIndex(l.canUseDOM?a.createReactRootIndex:C.createReactRootIndex),g.Component.injectEnvironment(d),"production"!==t.env.NODE_ENV)){var e=l.canUseDOM&&window.location.href||"";if(/[?&]react_perf\b/.test(e)){var o=n(157);o.start()}}}var r=n(87),i=n(95),a=n(98),s=n(99),u=n(100),l=n(24),c=n(104),p=n(105),d=n(41),f=n(107),h=n(108),m=n(21),v=n(133),g=n(136),y=n(60),b=n(43),E=n(140),N=n(145),C=n(146),x=n(147),_=n(156),w=!1;e.exports={inject:o}}).call(t,n(19))},function(e,t,n){"use strict";function o(){var e=window.opera;return"object"==typeof e&&"function"==typeof e.version&&parseInt(e.version(),10)<=12}function r(e){return(e.ctrlKey||e.altKey||e.metaKey)&&!(e.ctrlKey&&e.altKey)}function i(e){switch(e){case O.topCompositionStart:return k.compositionStart;case O.topCompositionEnd:return k.compositionEnd;case O.topCompositionUpdate:return k.compositionUpdate}}function a(e,t){return e===O.topKeyDown&&t.keyCode===N}function s(e,t){switch(e){case O.topKeyUp:return E.indexOf(t.keyCode)!==-1;case O.topKeyDown:return t.keyCode!==N;case O.topKeyPress:case O.topMouseDown:case O.topBlur:return!0;default:return!1}}function u(e){var t=e.detail;return"object"==typeof t&&"data"in t?t.data:null}function l(e,t,n,o,r){var l,c;if(C?l=i(e):M?s(e,o)&&(l=k.compositionEnd):a(e,o)&&(l=k.compositionStart),!l)return null;w&&(M||l!==k.compositionStart?l===k.compositionEnd&&M&&(c=M.getData()):M=v.getPooled(t));var p=g.getPooled(l,n,o,r);if(c)p.data=c;else{var d=u(o);null!==d&&(p.data=d)}return h.accumulateTwoPhaseDispatches(p),p}function c(e,t){switch(e){case O.topCompositionEnd:return u(t);case O.topKeyPress:var n=t.which;return n!==D?null:(S=!0,T);case O.topTextInput:var o=t.data;return o===T&&S?null:o;default:return null}}function p(e,t){if(M){if(e===O.topCompositionEnd||s(e,t)){var n=M.getData();return v.release(M),M=null,n}return null}switch(e){case O.topPaste:return null;case O.topKeyPress:return t.which&&!r(t)?String.fromCharCode(t.which):null;case O.topCompositionEnd:return w?null:t.data;default:return null}}function d(e,t,n,o,r){var i;if(i=_?c(e,o):p(e,o),!i)return null;var a=y.getPooled(k.beforeInput,n,o,r);return a.data=i,h.accumulateTwoPhaseDispatches(a),a}var f=n(45),h=n(88),m=n(24),v=n(89),g=n(91),y=n(93),b=n(94),E=[9,13,27,32],N=229,C=m.canUseDOM&&"CompositionEvent"in window,x=null;m.canUseDOM&&"documentMode"in document&&(x=document.documentMode);var _=m.canUseDOM&&"TextEvent"in window&&!x&&!o(),w=m.canUseDOM&&(!C||x&&x>8&&x<=11),D=32,T=String.fromCharCode(D),O=f.topLevelTypes,k={beforeInput:{phasedRegistrationNames:{bubbled:b({onBeforeInput:null}),captured:b({onBeforeInputCapture:null})},dependencies:[O.topCompositionEnd,O.topKeyPress,O.topTextInput,O.topPaste]},compositionEnd:{phasedRegistrationNames:{bubbled:b({onCompositionEnd:null}),captured:b({onCompositionEndCapture:null})},dependencies:[O.topBlur,O.topCompositionEnd,O.topKeyDown,O.topKeyPress,O.topKeyUp,O.topMouseDown]},compositionStart:{phasedRegistrationNames:{bubbled:b({onCompositionStart:null}),captured:b({onCompositionStartCapture:null})},dependencies:[O.topBlur,O.topCompositionStart,O.topKeyDown,O.topKeyPress,O.topKeyUp,O.topMouseDown]},compositionUpdate:{phasedRegistrationNames:{bubbled:b({onCompositionUpdate:null}),captured:b({onCompositionUpdateCapture:null})},dependencies:[O.topBlur,O.topCompositionUpdate,O.topKeyDown,O.topKeyPress,O.topKeyUp,O.topMouseDown]}},S=!1,M=null,I={eventTypes:k,extractEvents:function(e,t,n,o,r){return[l(e,t,n,o,r),d(e,t,n,o,r)]}};e.exports=I},function(e,t,n){(function(t){"use strict";function o(e,t,n){var o=t.dispatchConfig.phasedRegistrationNames[n];return b(e,o)}function r(e,n,r){"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?m(e,"Dispatching id must not be null"):void 0);var i=n?y.bubbled:y.captured,a=o(e,r,i);a&&(r._dispatchListeners=v(r._dispatchListeners,a),r._dispatchIDs=v(r._dispatchIDs,e))}function i(e){e&&e.dispatchConfig.phasedRegistrationNames&&h.injection.getInstanceHandle().traverseTwoPhase(e.dispatchMarker,r,e)}function a(e){e&&e.dispatchConfig.phasedRegistrationNames&&h.injection.getInstanceHandle().traverseTwoPhaseSkipTarget(e.dispatchMarker,r,e)}function s(e,t,n){if(n&&n.dispatchConfig.registrationName){var o=n.dispatchConfig.registrationName,r=b(e,o);r&&(n._dispatchListeners=v(n._dispatchListeners,r),n._dispatchIDs=v(n._dispatchIDs,e))}}function u(e){e&&e.dispatchConfig.registrationName&&s(e.dispatchMarker,null,e)}function l(e){g(e,i)}function c(e){g(e,a)}function p(e,t,n,o){h.injection.getInstanceHandle().traverseEnterLeave(n,o,s,e,t)}function d(e){g(e,u)}var f=n(45),h=n(46),m=n(40),v=n(50),g=n(51),y=f.PropagationPhases,b=h.getListener,E={accumulateTwoPhaseDispatches:l,accumulateTwoPhaseDispatchesSkipTarget:c,accumulateDirectDispatches:d,accumulateEnterLeaveDispatches:p};e.exports=E}).call(t,n(19))},function(e,t,n){"use strict";function o(e){this._root=e,this._startText=this.getText(),this._fallbackText=null}var r=n(71),i=n(54),a=n(90);i(o.prototype,{destructor:function(){this._root=null,this._startText=null,this._fallbackText=null},getText:function(){return"value"in this._root?this._root.value:this._root[a()]},getData:function(){if(this._fallbackText)return this._fallbackText;var e,t,n=this._startText,o=n.length,r=this.getText(),i=r.length;for(e=0;e1?1-t:void 0;return this._fallbackText=r.slice(e,s),this._fallbackText}}),r.addPoolingTo(o),e.exports=o},function(e,t,n){"use strict";function o(){return!i&&r.canUseDOM&&(i="textContent"in document.documentElement?"textContent":"innerText"),i}var r=n(24),i=null;e.exports=o},function(e,t,n){"use strict";function o(e,t,n,o){r.call(this,e,t,n,o)}var r=n(92),i={data:null};r.augmentClass(o,i),e.exports=o},function(e,t,n){(function(t){"use strict";function o(e,t,n,o){this.dispatchConfig=e,this.dispatchMarker=t,this.nativeEvent=n,this.target=o,this.currentTarget=o;var r=this.constructor.Interface;for(var i in r)if(r.hasOwnProperty(i)){var s=r[i];s?this[i]=s(n):this[i]=n[i]}var u=null!=n.defaultPrevented?n.defaultPrevented:n.returnValue===!1;u?this.isDefaultPrevented=a.thatReturnsTrue:this.isDefaultPrevented=a.thatReturnsFalse,this.isPropagationStopped=a.thatReturnsFalse}var r=n(71),i=n(54),a=n(30),s=n(40),u={type:null,currentTarget:a.thatReturnsNull,eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null};i(o.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?s(e,"This synthetic event is reused for performance reasons. If you're seeing this, you're calling `preventDefault` on a released/nullified synthetic event. This is a no-op. See https://fb.me/react-event-pooling for more information."):void 0),e&&(e.preventDefault?e.preventDefault():e.returnValue=!1,this.isDefaultPrevented=a.thatReturnsTrue)},stopPropagation:function(){var e=this.nativeEvent;"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?s(e,"This synthetic event is reused for performance reasons. If you're seeing this, you're calling `stopPropagation` on a released/nullified synthetic event. This is a no-op. See https://fb.me/react-event-pooling for more information."):void 0),e&&(e.stopPropagation?e.stopPropagation():e.cancelBubble=!0,this.isPropagationStopped=a.thatReturnsTrue)},persist:function(){this.isPersistent=a.thatReturnsTrue},isPersistent:a.thatReturnsFalse,destructor:function(){var e=this.constructor.Interface;for(var t in e)this[t]=null;this.dispatchConfig=null,this.dispatchMarker=null,this.nativeEvent=null}}),o.Interface=u,o.augmentClass=function(e,t){var n=this,o=Object.create(n.prototype);i(o,e.prototype),e.prototype=o,e.prototype.constructor=e,e.Interface=i({},n.Interface,t),e.augmentClass=n.augmentClass,r.addPoolingTo(e,r.fourArgumentPooler)},r.addPoolingTo(o,r.fourArgumentPooler),e.exports=o}).call(t,n(19))},function(e,t,n){"use strict";function o(e,t,n,o){r.call(this,e,t,n,o)}var r=n(92),i={data:null};r.augmentClass(o,i),e.exports=o},function(e,t){"use strict";var n=function(e){var t;for(t in e)if(e.hasOwnProperty(t))return t;return null};e.exports=n},function(e,t,n){"use strict";function o(e){var t=e.nodeName&&e.nodeName.toLowerCase();return"select"===t||"input"===t&&"file"===e.type}function r(e){var t=x.getPooled(k.change,M,e,_(e));E.accumulateTwoPhaseDispatches(t),C.batchedUpdates(i,t)}function i(e){b.enqueueEvents(e),b.processEventQueue(!1)}function a(e,t){S=e,M=t,S.attachEvent("onchange",r)}function s(){S&&(S.detachEvent("onchange",r),S=null,M=null)}function u(e,t,n){if(e===O.topChange)return n}function l(e,t,n){e===O.topFocus?(s(),a(t,n)):e===O.topBlur&&s()}function c(e,t){S=e,M=t,I=e.value,R=Object.getOwnPropertyDescriptor(e.constructor.prototype,"value"),Object.defineProperty(S,"value",L),S.attachEvent("onpropertychange",d)}function p(){S&&(delete S.value,S.detachEvent("onpropertychange",d),S=null,M=null,I=null,R=null)}function d(e){if("value"===e.propertyName){var t=e.srcElement.value;t!==I&&(I=t,r(e))}}function f(e,t,n){if(e===O.topInput)return n}function h(e,t,n){e===O.topFocus?(p(),c(t,n)):e===O.topBlur&&p()}function m(e,t,n){if((e===O.topSelectionChange||e===O.topKeyUp||e===O.topKeyDown)&&S&&S.value!==I)return I=S.value,M}function v(e){return e.nodeName&&"input"===e.nodeName.toLowerCase()&&("checkbox"===e.type||"radio"===e.type)}function g(e,t,n){if(e===O.topClick)return n}var y=n(45),b=n(46),E=n(88),N=n(24),C=n(69),x=n(92),_=n(96),w=n(55),D=n(97),T=n(94),O=y.topLevelTypes,k={change:{phasedRegistrationNames:{bubbled:T({onChange:null}),captured:T({onChangeCapture:null})},dependencies:[O.topBlur,O.topChange,O.topClick,O.topFocus,O.topInput,O.topKeyDown,O.topKeyUp,O.topSelectionChange]}},S=null,M=null,I=null,R=null,P=!1;N.canUseDOM&&(P=w("change")&&(!("documentMode"in document)||document.documentMode>8));var A=!1;N.canUseDOM&&(A=w("input")&&(!("documentMode"in document)||document.documentMode>9));var L={get:function(){return R.get.call(this)},set:function(e){I=""+e,R.set.call(this,e)}},V={eventTypes:k,extractEvents:function(e,t,n,r,i){var a,s;if(o(t)?P?a=u:s=l:D(t)?A?a=f:(a=m,s=h):v(t)&&(a=g),a){var c=a(e,t,n);if(c){var p=x.getPooled(k.change,c,r,i);return p.type="change",E.accumulateTwoPhaseDispatches(p),p}}s&&s(e,t,n)}};e.exports=V},function(e,t){"use strict";function n(e){var t=e.target||e.srcElement||window;return 3===t.nodeType?t.parentNode:t}e.exports=n},function(e,t){"use strict";function n(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&o[e.type]||"textarea"===t)}var o={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};e.exports=n},function(e,t){"use strict";var n=0,o={createReactRootIndex:function(){return n++}};e.exports=o},function(e,t,n){"use strict";var o=n(94),r=[o({ResponderEventPlugin:null}),o({SimpleEventPlugin:null}),o({TapEventPlugin:null}),o({EnterLeaveEventPlugin:null}),o({ChangeEventPlugin:null}),o({SelectEventPlugin:null}),o({BeforeInputEventPlugin:null})];e.exports=r},function(e,t,n){"use strict";var o=n(45),r=n(88),i=n(101),a=n(43),s=n(94),u=o.topLevelTypes,l=a.getFirstReactDOM,c={mouseEnter:{registrationName:s({onMouseEnter:null}),dependencies:[u.topMouseOut,u.topMouseOver]},mouseLeave:{registrationName:s({onMouseLeave:null}),dependencies:[u.topMouseOut,u.topMouseOver]}},p=[null,null],d={eventTypes:c,extractEvents:function(e,t,n,o,s){if(e===u.topMouseOver&&(o.relatedTarget||o.fromElement))return null;if(e!==u.topMouseOut&&e!==u.topMouseOver)return null;var d;if(t.window===t)d=t;else{var f=t.ownerDocument;d=f?f.defaultView||f.parentWindow:window}var h,m,v="",g="";if(e===u.topMouseOut?(h=t,v=n,m=l(o.relatedTarget||o.toElement),m?g=a.getID(m):m=d,m=m||d):(h=d,m=t,g=n),h===m)return null;var y=i.getPooled(c.mouseLeave,v,o,s);y.type="mouseleave",y.target=h,y.relatedTarget=m;var b=i.getPooled(c.mouseEnter,g,o,s);return b.type="mouseenter",b.target=m,b.relatedTarget=h,r.accumulateEnterLeaveDispatches(y,b,v,g),p[0]=y,p[1]=b,p}};e.exports=d},function(e,t,n){"use strict";function o(e,t,n,o){r.call(this,e,t,n,o)}var r=n(102),i=n(53),a=n(103),s={screenX:null,screenY:null,clientX:null,clientY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:a,button:function(e){var t=e.button;return"which"in e?t:2===t?2:4===t?1:0},buttons:null,relatedTarget:function(e){return e.relatedTarget||(e.fromElement===e.srcElement?e.toElement:e.fromElement)},pageX:function(e){return"pageX"in e?e.pageX:e.clientX+i.currentScrollLeft},pageY:function(e){return"pageY"in e?e.pageY:e.clientY+i.currentScrollTop}};r.augmentClass(o,s),e.exports=o},function(e,t,n){"use strict";function o(e,t,n,o){r.call(this,e,t,n,o)}var r=n(92),i=n(96),a={view:function(e){if(e.view)return e.view;var t=i(e);if(null!=t&&t.window===t)return t;var n=t.ownerDocument;return n?n.defaultView||n.parentWindow:window},detail:function(e){return e.detail||0}};r.augmentClass(o,a),e.exports=o},function(e,t){"use strict";function n(e){var t=this,n=t.nativeEvent;if(n.getModifierState)return n.getModifierState(e);var o=r[e];return!!o&&!!n[o]}function o(e){return n}var r={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};e.exports=o},function(e,t,n){"use strict";var o,r=n(38),i=n(24),a=r.injection.MUST_USE_ATTRIBUTE,s=r.injection.MUST_USE_PROPERTY,u=r.injection.HAS_BOOLEAN_VALUE,l=r.injection.HAS_SIDE_EFFECTS,c=r.injection.HAS_NUMERIC_VALUE,p=r.injection.HAS_POSITIVE_NUMERIC_VALUE,d=r.injection.HAS_OVERLOADED_BOOLEAN_VALUE;if(i.canUseDOM){var f=document.implementation;o=f&&f.hasFeature&&f.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")}var h={isCustomAttribute:RegExp.prototype.test.bind(/^(data|aria)-[a-z_][a-z\d_.\-]*$/),Properties:{accept:null,acceptCharset:null,accessKey:null,action:null,allowFullScreen:a|u,allowTransparency:a,alt:null,async:u,autoComplete:null,autoPlay:u,capture:a|u,cellPadding:null,cellSpacing:null,charSet:a,challenge:a,checked:s|u,classID:a,className:o?a:s,cols:a|p,colSpan:null,content:null,contentEditable:null,contextMenu:a,controls:s|u,coords:null,crossOrigin:null,data:null,dateTime:a,"default":u,defer:u,dir:null,disabled:a|u,download:d,draggable:null,encType:null,form:a,formAction:a,formEncType:a,formMethod:a,formNoValidate:u,formTarget:a,frameBorder:a,headers:null,height:a,hidden:a|u,high:null,href:null,hrefLang:null,htmlFor:null,httpEquiv:null,icon:null,id:s,inputMode:a,integrity:null,is:a,keyParams:a,keyType:a,kind:null,label:null,lang:null,list:a,loop:s|u,low:null,manifest:a,marginHeight:null,marginWidth:null,max:null,maxLength:a,media:a,mediaGroup:null,method:null,min:null,minLength:a,multiple:s|u,muted:s|u,name:null,nonce:a,noValidate:u,open:u,optimum:null,pattern:null,placeholder:null,poster:null,preload:null,radioGroup:null,readOnly:s|u,rel:null,required:u,reversed:u,role:a,rows:a|p,rowSpan:null,sandbox:null,scope:null,scoped:u,scrolling:null,seamless:a|u,selected:s|u,shape:null,size:a|p,sizes:a,span:p,spellCheck:null,src:null,srcDoc:s,srcLang:null,srcSet:a,start:c,step:null,style:null,summary:null,tabIndex:null,target:null,title:null,type:null,useMap:null,value:s|l,width:a,wmode:a,wrap:null,about:a,datatype:a,inlist:a,prefix:a,property:a,resource:a,"typeof":a,vocab:a,autoCapitalize:null,autoCorrect:null,autoSave:null,color:null,itemProp:a,itemScope:a|u,itemType:a,itemID:a,itemRef:a,results:null,security:a,unselectable:a},DOMAttributeNames:{acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv"},DOMPropertyNames:{autoCapitalize:"autocapitalize",autoComplete:"autocomplete",autoCorrect:"autocorrect",autoFocus:"autofocus",autoPlay:"autoplay",autoSave:"autosave",encType:"encoding",hrefLang:"hreflang",radioGroup:"radiogroup",spellCheck:"spellcheck",srcDoc:"srcdoc",srcSet:"srcset"}};e.exports=h},function(e,t,n){(function(t){"use strict";var o=n(62),r=n(106),i=n(40),a="_getDOMNodeDidWarn",s={getDOMNode:function(){return"production"!==t.env.NODE_ENV?i(this.constructor[a],"%s.getDOMNode(...) is deprecated. Please use ReactDOM.findDOMNode(instance) instead.",o.get(this).getName()||this.tagName||"Unknown"):void 0,this.constructor[a]=!0,r(this)}};e.exports=s}).call(t,n(19))},function(e,t,n){(function(t){"use strict";function o(e){if("production"!==t.env.NODE_ENV){var n=r.current;null!==n&&("production"!==t.env.NODE_ENV?u(n._warnedAboutRefsInRender,"%s is accessing getDOMNode or findDOMNode inside its render(). render() should be a pure function of props and state. It should never access something that requires stale data from the previous render, such as refs. Move this logic to componentDidMount and componentDidUpdate instead.",n.getName()||"A component"):void 0,n._warnedAboutRefsInRender=!0)}return null==e?null:1===e.nodeType?e:i.has(e)?a.getNodeFromInstance(e):(null!=e.render&&"function"==typeof e.render?"production"!==t.env.NODE_ENV?s(!1,"findDOMNode was called on an unmounted component."):s(!1):void 0,void("production"!==t.env.NODE_ENV?s(!1,"Element appears to be neither ReactComponent nor DOMNode (keys: %s)",Object.keys(e)):s(!1)))}var r=n(20),i=n(62),a=n(43),s=n(28),u=n(40);e.exports=o}).call(t,n(19))},function(e,t,n){"use strict";function o(){this.reinitializeTransaction()}var r=n(69),i=n(72),a=n(54),s=n(30),u={initialize:s,close:function(){d.isBatchingUpdates=!1}},l={initialize:s,close:r.flushBatchedUpdates.bind(r)},c=[l,u];a(o.prototype,i.Mixin,{getTransactionWrappers:function(){return c}});var p=new o,d={isBatchingUpdates:!1,batchedUpdates:function(e,t,n,o,r,i){var a=d.isBatchingUpdates;d.isBatchingUpdates=!0,a?e(t,n,o,r,i):p.perform(e,null,t,n,o,r,i)}};e.exports=d},function(e,t,n){(function(t){"use strict";function o(e){if(e){var t=e._currentElement._owner||null;if(t){var n=t.getName();if(n)return" This DOM node was rendered by `"+n+"`."}}return""}function r(){if("production"!==t.env.NODE_ENV){var e=this._reactInternalComponent;"production"!==t.env.NODE_ENV?Y(!1,"ReactDOMComponent: Do not access .getDOMNode() of a DOM node; instead, use the node directly.%s",o(e)):void 0}return this}function i(){var e=this._reactInternalComponent;return"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?Y(!1,"ReactDOMComponent: Do not access .isMounted() of a DOM node.%s",o(e)):void 0),!!e}function a(){if("production"!==t.env.NODE_ENV){var e=this._reactInternalComponent;"production"!==t.env.NODE_ENV?Y(!1,"ReactDOMComponent: Do not access .setState(), .replaceState(), or .forceUpdate() of a DOM node. This is a no-op.%s",o(e)):void 0}}function s(e,n){var r=this._reactInternalComponent;"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?Y(!1,"ReactDOMComponent: Do not access .setProps() of a DOM node. Instead, call ReactDOM.render again at the top level.%s",o(r)):void 0),r&&(V.enqueueSetPropsInternal(r,e),n&&V.enqueueCallbackInternal(r,n))}function u(e,n){var r=this._reactInternalComponent;"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?Y(!1,"ReactDOMComponent: Do not access .replaceProps() of a DOM node. Instead, call ReactDOM.render again at the top level.%s",o(r)):void 0),r&&(V.enqueueReplacePropsInternal(r,e),n&&V.enqueueCallbackInternal(r,n))}function l(e){if("object"==typeof e){if(Array.isArray(e))return"["+e.map(l).join(", ")+"]";var t=[];for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var o=/^[a-z$_][\w$_]*$/i.test(n)?n:JSON.stringify(n);t.push(o+": "+l(e[n]))}return"{"+t.join(", ")+"}"}return"string"==typeof e?JSON.stringify(e):"function"==typeof e?"[function object]":String(e)}function c(e,n,o){if(null!=e&&null!=n&&!z(e,n)){var r,i=o._tag,a=o._currentElement._owner;a&&(r=a.getName());var s=r+"|"+i;oe.hasOwnProperty(s)||(oe[s]=!0,"production"!==t.env.NODE_ENV?Y(!1,"`%s` was passed a style object that has previously been mutated. Mutating `style` is deprecated. Consider cloning it beforehand. Check the `render` %s. Previous style: %s. Mutated style: %s.",i,a?"of `"+r+"`":"using <"+i+">",l(e),l(n)):void 0)}}function p(e,n){n&&("production"!==t.env.NODE_ENV&&se[e._tag]&&("production"!==t.env.NODE_ENV?Y(null==n.children&&null==n.dangerouslySetInnerHTML,"%s is a void element tag and must not have `children` or use `props.dangerouslySetInnerHTML`.%s",e._tag,e._currentElement._owner?" Check the render method of "+e._currentElement._owner.getName()+".":""):void 0),null!=n.dangerouslySetInnerHTML&&(null!=n.children?"production"!==t.env.NODE_ENV?B(!1,"Can only set one of `children` or `props.dangerouslySetInnerHTML`."):B(!1):void 0,"object"==typeof n.dangerouslySetInnerHTML&&te in n.dangerouslySetInnerHTML?void 0:"production"!==t.env.NODE_ENV?B(!1,"`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://fb.me/react-invariant-dangerously-set-inner-html for more information."):B(!1)), -"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?Y(null==n.innerHTML,"Directly setting property `innerHTML` is not permitted. For more information, lookup documentation on `dangerouslySetInnerHTML`."):void 0,"production"!==t.env.NODE_ENV?Y(!n.contentEditable||null==n.children,"A component is `contentEditable` and contains `children` managed by React. It is now your responsibility to guarantee that none of those nodes are unexpectedly modified or duplicated. This is probably not intentional."):void 0),null!=n.style&&"object"!=typeof n.style?"production"!==t.env.NODE_ENV?B(!1,"The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + 'em'}} when using JSX.%s",o(e)):B(!1):void 0)}function d(e,n,o,r){"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?Y("onScroll"!==n||$("scroll",!0),"This browser doesn't support the `onScroll` event"):void 0);var i=P.findReactContainerForID(e);if(i){var a=i.nodeType===ne?i.ownerDocument:i;G(n,a)}r.getReactMountReady().enqueue(f,{id:e,registrationName:n,listener:o})}function f(){var e=this;T.putListener(e.id,e.registrationName,e.listener)}function h(){var e=this;e._rootNodeID?void 0:"production"!==t.env.NODE_ENV?B(!1,"Must be mounted to trap events"):B(!1);var n=P.getNode(e._rootNodeID);switch(n?void 0:"production"!==t.env.NODE_ENV?B(!1,"trapBubbledEvent(...): Requires node to be rendered."):B(!1),e._tag){case"iframe":e._wrapperState.listeners=[T.trapBubbledEvent(D.topLevelTypes.topLoad,"load",n)];break;case"video":case"audio":e._wrapperState.listeners=[];for(var o in re)re.hasOwnProperty(o)&&e._wrapperState.listeners.push(T.trapBubbledEvent(D.topLevelTypes[o],re[o],n));break;case"img":e._wrapperState.listeners=[T.trapBubbledEvent(D.topLevelTypes.topError,"error",n),T.trapBubbledEvent(D.topLevelTypes.topLoad,"load",n)];break;case"form":e._wrapperState.listeners=[T.trapBubbledEvent(D.topLevelTypes.topReset,"reset",n),T.trapBubbledEvent(D.topLevelTypes.topSubmit,"submit",n)]}}function m(){S.mountReadyWrapper(this)}function v(){I.postUpdateWrapper(this)}function g(e){ce.call(le,e)||(ue.test(e)?void 0:"production"!==t.env.NODE_ENV?B(!1,"Invalid tag: %s",e):B(!1),le[e]=!0)}function y(e,t){e=j({},e);var n=e[K.ancestorInfoContextKey];return e[K.ancestorInfoContextKey]=K.updatedAncestorInfo(n,t._tag,t),e}function b(e,t){return e.indexOf("-")>=0||null!=t.is}function E(e){g(e),this._tag=e.toLowerCase(),this._renderedChildren=null,this._previousStyle=null,this._previousStyleCopy=null,this._rootNodeID=null,this._wrapperState=null,this._topLevelWrapper=null,this._nodeWithLegacyProperties=null,"production"!==t.env.NODE_ENV&&(this._unprocessedContextDev=null,this._processedContextDev=null)}var N,C=n(109),x=n(111),_=n(38),w=n(37),D=n(45),T=n(44),O=n(41),k=n(119),S=n(120),M=n(124),I=n(127),R=n(128),P=n(43),A=n(129),L=n(33),V=n(68),j=n(54),U=n(58),F=n(36),B=n(28),$=n(55),H=n(94),q=n(34),W=n(35),z=n(132),K=n(85),Y=n(40),X=T.deleteListener,G=T.listenTo,Q=T.registrationNameModules,J={string:!0,number:!0},Z=H({children:null}),ee=H({style:null}),te=H({__html:null}),ne=1;"production"!==t.env.NODE_ENV&&(N={props:{enumerable:!1,get:function(){var e=this._reactInternalComponent;return"production"!==t.env.NODE_ENV?Y(!1,"ReactDOMComponent: Do not access .props of a DOM node; instead, recreate the props as `render` did originally or read the DOM properties/attributes directly from this node (e.g., this.refs.box.className).%s",o(e)):void 0,e._currentElement.props}}});var oe={},re={topAbort:"abort",topCanPlay:"canplay",topCanPlayThrough:"canplaythrough",topDurationChange:"durationchange",topEmptied:"emptied",topEncrypted:"encrypted",topEnded:"ended",topError:"error",topLoadedData:"loadeddata",topLoadedMetadata:"loadedmetadata",topLoadStart:"loadstart",topPause:"pause",topPlay:"play",topPlaying:"playing",topProgress:"progress",topRateChange:"ratechange",topSeeked:"seeked",topSeeking:"seeking",topStalled:"stalled",topSuspend:"suspend",topTimeUpdate:"timeupdate",topVolumeChange:"volumechange",topWaiting:"waiting"},ie={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},ae={listing:!0,pre:!0,textarea:!0},se=j({menuitem:!0},ie),ue=/^[a-zA-Z][a-zA-Z:_\.\-\d]*$/,le={},ce={}.hasOwnProperty;E.displayName="ReactDOMComponent",E.Mixin={construct:function(e){this._currentElement=e},mountComponent:function(e,n,o){this._rootNodeID=e;var r=this._currentElement.props;switch(this._tag){case"iframe":case"img":case"form":case"video":case"audio":this._wrapperState={listeners:null},n.getReactMountReady().enqueue(h,this);break;case"button":r=k.getNativeProps(this,r,o);break;case"input":S.mountWrapper(this,r,o),r=S.getNativeProps(this,r,o);break;case"option":M.mountWrapper(this,r,o),r=M.getNativeProps(this,r,o);break;case"select":I.mountWrapper(this,r,o),r=I.getNativeProps(this,r,o),o=I.processChildContext(this,r,o);break;case"textarea":R.mountWrapper(this,r,o),r=R.getNativeProps(this,r,o)}p(this,r),"production"!==t.env.NODE_ENV&&o[K.ancestorInfoContextKey]&&K(this._tag,this,o[K.ancestorInfoContextKey]),"production"!==t.env.NODE_ENV&&(this._unprocessedContextDev=o,this._processedContextDev=y(o,this),o=this._processedContextDev);var i;if(n.useCreateElement){var a=o[P.ownerDocumentContextKey],s=a.createElement(this._currentElement.type);w.setAttributeForID(s,this._rootNodeID),P.getID(s),this._updateDOMProperties({},r,n,s),this._createInitialChildren(n,r,o,s),i=s}else{var u=this._createOpenTagMarkupAndPutListeners(n,r),l=this._createContentMarkup(n,r,o);i=!l&&ie[this._tag]?u+"/>":u+">"+l+""}switch(this._tag){case"input":n.getReactMountReady().enqueue(m,this);case"button":case"select":case"textarea":r.autoFocus&&n.getReactMountReady().enqueue(C.focusDOMComponent,this)}return i},_createOpenTagMarkupAndPutListeners:function(e,n){var o="<"+this._currentElement.type;for(var r in n)if(n.hasOwnProperty(r)){var i=n[r];if(null!=i)if(Q.hasOwnProperty(r))i&&d(this._rootNodeID,r,i,e);else{r===ee&&(i&&("production"!==t.env.NODE_ENV&&(this._previousStyle=i),i=this._previousStyleCopy=j({},n.style)),i=x.createMarkupForStyles(i));var a=null;null!=this._tag&&b(this._tag,n)?r!==Z&&(a=w.createMarkupForCustomAttribute(r,i)):a=w.createMarkupForProperty(r,i),a&&(o+=" "+a)}}if(e.renderToStaticMarkup)return o;var s=w.createMarkupForID(this._rootNodeID);return o+" "+s},_createContentMarkup:function(e,t,n){var o="",r=t.dangerouslySetInnerHTML;if(null!=r)null!=r.__html&&(o=r.__html);else{var i=J[typeof t.children]?t.children:null,a=null!=i?null:t.children;if(null!=i)o=F(i);else if(null!=a){var s=this.mountChildren(a,e,n);o=s.join("")}}return ae[this._tag]&&"\n"===o.charAt(0)?"\n"+o:o},_createInitialChildren:function(e,t,n,o){var r=t.dangerouslySetInnerHTML;if(null!=r)null!=r.__html&&q(o,r.__html);else{var i=J[typeof t.children]?t.children:null,a=null!=i?null:t.children;if(null!=i)W(o,i);else if(null!=a)for(var s=this.mountChildren(a,e,n),u=0;u tried to unmount. Because of cross-browser quirks it is impossible to unmount some top-level components (eg , , and ) reliably and efficiently. To fix this, have a single top-level component that never unmounts render these elements.",this._tag):B(!1)}if(this.unmountChildren(),T.deleteAllListeners(this._rootNodeID),O.unmountIDFromEnvironment(this._rootNodeID),this._rootNodeID=null,this._wrapperState=null,this._nodeWithLegacyProperties){var o=this._nodeWithLegacyProperties;o._reactInternalComponent=null,this._nodeWithLegacyProperties=null}},getPublicInstance:function(){if(!this._nodeWithLegacyProperties){var e=P.getNode(this._rootNodeID);e._reactInternalComponent=this,e.getDOMNode=r,e.isMounted=i,e.setState=a,e.replaceState=a,e.forceUpdate=a,e.setProps=s,e.replaceProps=u,"production"!==t.env.NODE_ENV&&U?Object.defineProperties(e,N):e.props=this._currentElement.props,this._nodeWithLegacyProperties=e}return this._nodeWithLegacyProperties}},L.measureMethods(E,"ReactDOMComponent",{mountComponent:"mountComponent",updateComponent:"updateComponent"}),j(E.prototype,E.Mixin,A.Mixin),e.exports=E}).call(t,n(19))},function(e,t,n){"use strict";var o=n(43),r=n(106),i=n(110),a={componentDidMount:function(){this.props.autoFocus&&i(r(this))}},s={Mixin:a,focusDOMComponent:function(){i(o.getNode(this._rootNodeID))}};e.exports=s},function(e,t){"use strict";function n(e){try{e.focus()}catch(t){}}e.exports=n},function(e,t,n){(function(t){"use strict";var o=n(112),r=n(24),i=n(33),a=n(113),s=n(115),u=n(116),l=n(118),c=n(40),p=l(function(e){return u(e)}),d=!1,f="cssFloat";if(r.canUseDOM){var h=document.createElement("div").style;try{h.font=""}catch(m){d=!0}void 0===document.documentElement.style.cssFloat&&(f="styleFloat")}if("production"!==t.env.NODE_ENV)var v=/^(?:webkit|moz|o)[A-Z]/,g=/;\s*$/,y={},b={},E=function(e){y.hasOwnProperty(e)&&y[e]||(y[e]=!0,"production"!==t.env.NODE_ENV?c(!1,"Unsupported style property %s. Did you mean %s?",e,a(e)):void 0)},N=function(e){y.hasOwnProperty(e)&&y[e]||(y[e]=!0,"production"!==t.env.NODE_ENV?c(!1,"Unsupported vendor-prefixed style property %s. Did you mean %s?",e,e.charAt(0).toUpperCase()+e.slice(1)):void 0)},C=function(e,n){b.hasOwnProperty(n)&&b[n]||(b[n]=!0,"production"!==t.env.NODE_ENV?c(!1,'Style property values shouldn\'t contain a semicolon. Try "%s: %s" instead.',e,n.replace(g,"")):void 0)},x=function(e,t){e.indexOf("-")>-1?E(e):v.test(e)?N(e):g.test(t)&&C(e,t)};var _={createMarkupForStyles:function(e){var n="";for(var o in e)if(e.hasOwnProperty(o)){var r=e[o];"production"!==t.env.NODE_ENV&&x(o,r),null!=r&&(n+=p(o)+":",n+=s(o,r)+";")}return n||null},setValueForStyles:function(e,n){var r=e.style;for(var i in n)if(n.hasOwnProperty(i)){"production"!==t.env.NODE_ENV&&x(i,n[i]);var a=s(i,n[i]);if("float"===i&&(i=f),a)r[i]=a;else{var u=d&&o.shorthandPropertyExpansions[i];if(u)for(var l in u)r[l]="";else r[i]=""}}}};i.measureMethods(_,"CSSPropertyOperations",{setValueForStyles:"setValueForStyles"}),e.exports=_}).call(t,n(19))},function(e,t){"use strict";function n(e,t){return e+t.charAt(0).toUpperCase()+t.substring(1)}var o={animationIterationCount:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,stopOpacity:!0,strokeDashoffset:!0,strokeOpacity:!0,strokeWidth:!0},r=["Webkit","ms","Moz","O"];Object.keys(o).forEach(function(e){r.forEach(function(t){o[n(t,e)]=o[e]})});var i={background:{backgroundAttachment:!0,backgroundColor:!0,backgroundImage:!0,backgroundPositionX:!0,backgroundPositionY:!0,backgroundRepeat:!0},backgroundPosition:{backgroundPositionX:!0,backgroundPositionY:!0},border:{borderWidth:!0,borderStyle:!0,borderColor:!0},borderBottom:{borderBottomWidth:!0,borderBottomStyle:!0,borderBottomColor:!0},borderLeft:{borderLeftWidth:!0,borderLeftStyle:!0,borderLeftColor:!0},borderRight:{borderRightWidth:!0,borderRightStyle:!0,borderRightColor:!0},borderTop:{borderTopWidth:!0,borderTopStyle:!0,borderTopColor:!0},font:{fontStyle:!0,fontVariant:!0,fontWeight:!0,fontSize:!0,lineHeight:!0,fontFamily:!0},outline:{outlineWidth:!0,outlineStyle:!0,outlineColor:!0}},a={isUnitlessNumber:o,shorthandPropertyExpansions:i};e.exports=a},function(e,t,n){"use strict";function o(e){return r(e.replace(i,"ms-"))}var r=n(114),i=/^-ms-/;e.exports=o},function(e,t){"use strict";function n(e){return e.replace(o,function(e,t){return t.toUpperCase()})}var o=/-(.)/g;e.exports=n},function(e,t,n){"use strict";function o(e,t){var n=null==t||"boolean"==typeof t||""===t;if(n)return"";var o=isNaN(t);return o||0===t||i.hasOwnProperty(e)&&i[e]?""+t:("string"==typeof t&&(t=t.trim()),t+"px")}var r=n(112),i=r.isUnitlessNumber;e.exports=o},function(e,t,n){"use strict";function o(e){return r(e).replace(i,"-ms-")}var r=n(117),i=/^ms-/;e.exports=o},function(e,t){"use strict";function n(e){return e.replace(o,"-$1").toLowerCase()}var o=/([A-Z])/g;e.exports=n},function(e,t){"use strict";function n(e){var t={};return function(n){return t.hasOwnProperty(n)||(t[n]=e.call(this,n)),t[n]}}e.exports=n},function(e,t){"use strict";var n={onClick:!0,onDoubleClick:!0,onMouseDown:!0,onMouseMove:!0,onMouseUp:!0,onClickCapture:!0,onDoubleClickCapture:!0,onMouseDownCapture:!0,onMouseMoveCapture:!0,onMouseUpCapture:!0},o={getNativeProps:function(e,t,o){if(!t.disabled)return t;var r={};for(var i in t)t.hasOwnProperty(i)&&!n[i]&&(r[i]=t[i]);return r}};e.exports=o},function(e,t,n){(function(t){"use strict";function o(){this._rootNodeID&&d.updateWrapper(this)}function r(e){var n=this._currentElement.props,r=a.executeOnChange(n,e);u.asap(o,this);var i=n.name;if("radio"===n.type&&null!=i){for(var l=s.getNode(this._rootNodeID),d=l;d.parentNode;)d=d.parentNode;for(var f=d.querySelectorAll("input[name="+JSON.stringify(""+i)+'][type="radio"]'),h=0;h>"}var y=n(57),b=n(81),E=n(30),N=n(123),C="<>",x={array:r("array"),bool:r("boolean"),func:r("function"),number:r("number"),object:r("object"),string:r("string"),any:i(),arrayOf:a,element:s(),instanceOf:u,node:d(),objectOf:c,oneOf:l,oneOfType:p,shape:f};e.exports=x},function(e,t){"use strict";function n(e){var t=e&&(o&&e[o]||e[r]);if("function"==typeof t)return t}var o="function"==typeof Symbol&&Symbol.iterator,r="@@iterator";e.exports=n},function(e,t,n){(function(t){"use strict";var o=n(125),r=n(127),i=n(54),a=n(40),s=r.valueContextKey,u={mountWrapper:function(e,n,o){"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?a(null==n.selected,"Use the `defaultValue` or `value` props on must be a scalar value if `multiple` is false.%s",a,r(o)):void 0)}}function a(e,t,n){var o,r,i=l.getNode(e._rootNodeID).options;if(t){for(o={},r=0;r."):l(!1):void 0;var r=u({},n,{defaultValue:void 0,value:void 0,children:e._wrapperState.initialValue,onChange:e._wrapperState.onChange});return r},mountWrapper:function(e,n){"production"!==t.env.NODE_ENV&&i.checkPropTypes("textarea",n,e._currentElement._owner);var o=n.defaultValue,a=n.children;null!=a&&("production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?c(!1,"Use the `defaultValue` or `value` props instead of setting children on