diff --git a/README.md b/README.md index c35af40b..c807171b 100644 --- a/README.md +++ b/README.md @@ -102,17 +102,12 @@ To run the linter, use the following commands while the docker containers are ru Or, if you have yarn installed locally, running `yarn fix` *should* work as well. -### Tests -``` -cd e2e-tests -python3 -m pytest --lang python --auth --fs -``` ## The Team ### Term 3 (F23): **Project Lead:** Connor Bechthold
**Product Managers:** Zafir Raeid
**Developers:** Aathithan Chandrabalan, Daniel Kim, Kelly Pham, Kevin Pierce, Owen Sellner, Braydon Wang, Carolyn Zhang
-**Designers:** TBD
+**Designers:** Amanda Yu
### Term 2 (S23): **Project Lead:** Safwaan Chowdhury
diff --git a/backend/app/middlewares/validate.py b/backend/app/middlewares/validate.py index 3557489d..5261826e 100644 --- a/backend/app/middlewares/validate.py +++ b/backend/app/middlewares/validate.py @@ -3,7 +3,6 @@ import json from ..resources.create_user_dto import CreateUserDTO -from ..resources.entity_dto import EntityDTO from ..resources.register_user_dto import RegisterUserDTO from ..resources.update_user_dto import UpdateUserDTO from ..resources.update_user_status_dto import UpdateUserStatusDTO @@ -11,7 +10,6 @@ dtos = { "CreateUserDTO": CreateUserDTO, - "EntityDTO": EntityDTO, "RegisterUserDTO": RegisterUserDTO, "UpdateUserDTO": UpdateUserDTO, "UpdateUserStatusDTO": UpdateUserStatusDTO, diff --git a/backend/app/models/__init__.py b/backend/app/models/__init__.py index f85fb4f8..a8e802be 100644 --- a/backend/app/models/__init__.py +++ b/backend/app/models/__init__.py @@ -6,7 +6,6 @@ def init_app(app): - from .entity import Entity from .user import User from .sign_in_logs import SignInLogs from .log_records import LogRecords diff --git a/backend/app/models/entity.py b/backend/app/models/entity.py deleted file mode 100644 index 7397077d..00000000 --- a/backend/app/models/entity.py +++ /dev/null @@ -1,47 +0,0 @@ -from sqlalchemy import inspect -from sqlalchemy.orm.properties import ColumnProperty - -from . import db -from .enum import enum - -# common columns and methods across multiple data models can be added via a Mixin class: -# https://docs.sqlalchemy.org/en/13/orm/extensions/declarative/mixins.html - -# see examples of Mixins in current and past Blueprint projects: -# https://github.com/uwblueprint/dancefest-web/blob/master/db/models.py#L10-L70 -# https://github.com/uwblueprint/plasta/blob/master/backend/app/models/mixins.py#L10-L95 - - -class Entity(db.Model): - # define the entities table - - __tablename__ = "entities" - - id = db.Column(db.Integer, primary_key=True, nullable=False) - string_field = db.Column(db.String, nullable=False) - int_field = db.Column(db.Integer, nullable=False) - enum_field = db.Column(enum, nullable=False) - string_array_field = db.Column(db.ARRAY(db.String), nullable=False) - bool_field = db.Column(db.Boolean, nullable=False) - file_name = db.Column(db.String) - - # must define how to convert to a dict so that Entity can eventually be serialized into JSON - # this would be a good method to include in a base Mixin - def to_dict(self, include_relationships=False): - cls = type(self) - # mapper allows us to grab the columns of a Model - mapper = inspect(cls) - formatted = {} - for column in mapper.attrs: - field = column.key - attr = getattr(self, field) - # if it's a regular column, extract the value - if isinstance(column, ColumnProperty): - formatted[field] = attr - # otherwise, it's a relationship field - # (currently not applicable, but may be useful for entity groups) - elif include_relationships: - # recursively format the relationship - # don't format the relationship's relationships - formatted[field] = [obj.to_dict() for obj in attr] - return formatted diff --git a/backend/app/models/enum.py b/backend/app/models/enum.py deleted file mode 100644 index 96cbbaec..00000000 --- a/backend/app/models/enum.py +++ /dev/null @@ -1,3 +0,0 @@ -from . import db - -enum = db.Enum("A", "B", "C", "D", name="enum") diff --git a/backend/app/resources/entity_dto.py b/backend/app/resources/entity_dto.py deleted file mode 100644 index 53b14f6d..00000000 --- a/backend/app/resources/entity_dto.py +++ /dev/null @@ -1,53 +0,0 @@ -ALLOWABLE_CONTENT_TYPES = [ - "text/plain", - "application/pdf", - "image/png", - "image/jpeg", - "image/gif", -] - - -class EntityDTO(object): - def __init__(self, **kwargs): - self.string_field = kwargs.get("string_field") - self.int_field = kwargs.get("int_field") - self.string_array_field = kwargs.get("string_array_field") - self.enum_field = ( - kwargs.get("enum_field").upper() - if kwargs.get("enum_field") is not None - else kwargs.get("enum_field") - ) - self.bool_field = kwargs.get("bool_field") - self.file = kwargs.get("file") - - def validate(self): - error_list = [] - if type(self.string_field) is not str: - error_list.append("The string_field supplied is not a string.") - if type(self.int_field) is not int: - error_list.append("The int_field supplied is not an integer.") - if type(self.string_array_field) is not list: - error_list.append("The string_array_field supplied is not a list.") - else: - for item in self.string_array_field: - if type(item) is not str: - error_list.append( - "The items supplied string_array_field are not a string." - ) - enum_values = {"A", "B", "C", "D"} - if (type(self.enum_field) is not str) or ( - self.enum_field.upper() not in enum_values - ): - error_list.append("The enum_field supplied is not an enum.") - if type(self.bool_field) is not bool: - error_list.append("The bool_field supplied is not a boolean.") - if self.file: - if self.file.content_type not in ALLOWABLE_CONTENT_TYPES: - error_list.append( - "The file type {file_content_type} is not one of {allowed_types_str}".format( - file_content_type=self.file.content_type, - allowed_types_str=", ".join(ALLOWABLE_CONTENT_TYPES), - ) - ) - - return error_list diff --git a/backend/app/rest/__init__.py b/backend/app/rest/__init__.py index d1d9335f..50001080 100644 --- a/backend/app/rest/__init__.py +++ b/backend/app/rest/__init__.py @@ -2,8 +2,6 @@ def init_app(app): from . import ( user_routes, auth_routes, - entity_routes, - documentation_routes, sign_in_logs_routes, log_records_routes, residents_routes, @@ -13,8 +11,6 @@ def init_app(app): app.register_blueprint(user_routes.blueprint) app.register_blueprint(auth_routes.blueprint) - app.register_blueprint(entity_routes.blueprint) - app.register_blueprint(documentation_routes.blueprint) app.register_blueprint(sign_in_logs_routes.blueprint) app.register_blueprint(log_records_routes.blueprint) app.register_blueprint(residents_routes.blueprint) diff --git a/backend/app/rest/documentation_routes.py b/backend/app/rest/documentation_routes.py deleted file mode 100644 index 1c4ab0f7..00000000 --- a/backend/app/rest/documentation_routes.py +++ /dev/null @@ -1,10 +0,0 @@ -from flask import Blueprint, render_template - -blueprint = Blueprint( - "api", __name__, url_prefix="/api-docs", template_folder="../templates" -) - - -@blueprint.route("/", methods=["GET"], strict_slashes=False) -def get_docs(): - return render_template("swaggerui.html") diff --git a/backend/app/rest/entity_routes.py b/backend/app/rest/entity_routes.py deleted file mode 100644 index 39c1ded5..00000000 --- a/backend/app/rest/entity_routes.py +++ /dev/null @@ -1,127 +0,0 @@ -from flask import Blueprint, current_app, request -from flask import jsonify -import json - -from ..resources.entity_dto import EntityDTO - -from ..middlewares.auth import require_authorization_by_role -from ..middlewares.validate import validate_request -from ..services.implementations.entity_service import EntityService -from ..services.implementations.file_storage_service import FileStorageService -from ..utilities.csv_utils import generate_csv_from_list - -DEFAULT_CSV_OPTIONS = { - "header": True, - "flatten_lists": False, - "flatten_objects": False, -} - -# define instance of FileStorageService -file_storage_service = FileStorageService(current_app.logger) - -# define instance of EntityService -entity_service = EntityService(current_app.logger, file_storage_service) - -# defines a shared URL prefix for all routes -blueprint = Blueprint("entity", __name__, url_prefix="/entities") - - -# defines GET endpoint for retrieving all entities -@blueprint.route("/", methods=["GET"], strict_slashes=False) -@require_authorization_by_role({"Relief Staff", "Regular Staff", "Admin"}) -def get_entities(): - result = entity_service.get_entities() - content_type = request.mimetype - - if content_type == "text/csv": - return jsonify(generate_csv_from_list(result, **DEFAULT_CSV_OPTIONS)), 200 - - return jsonify(result), 200 - - -# defines GET endpoint for retrieving a single entity based on a provided id -@blueprint.route("/", methods=["GET"], strict_slashes=False) -@require_authorization_by_role({"Relief Staff", "Regular Staff", "Admin"}) -def get_entity(id): - try: - result = entity_service.get_entity(id) - except Exception as e: - error_message = getattr(e, "message", None) - return jsonify({"error": (error_message if error_message else str(e))}), 500 - - # HTTP status code 200 means OK - return jsonify(result), 200 - - -# define POST endpoint for creating an entity -@blueprint.route("/", methods=["POST"], strict_slashes=False) -@require_authorization_by_role({"Relief Staff", "Regular Staff", "Admin"}) -@validate_request("EntityDTO") -def create_entity(): - try: - # create a EntityResource object instead of using the raw request body - # data validators and transformations are applied when constructing the resource, - # this allows downstream code to make safe assumptions about the data - if request.content_type == "application/json": - body = EntityDTO(**request.json) - else: - req = json.loads(request.form.get("body")) - req["file"] = request.files.get("file", default=None) - body = EntityDTO(**req) - except Exception as e: - error_message = getattr(e, "message", None) - return jsonify({"error": (error_message if error_message else str(e))}), 500 - - # HTTP status code 201 means Created - return jsonify(entity_service.create_entity(body)), 201 - - -# defines PUT endpoint for updating the entity with the provided id -@blueprint.route("/", methods=["PUT"], strict_slashes=False) -@require_authorization_by_role({"Relief Staff", "Regular Staff", "Admin"}) -@validate_request("EntityDTO") -def update_entity(id): - try: - if request.content_type == "application/json": - body = EntityDTO(**request.json) - else: - req = json.loads(request.form.get("body")) - req_file = request.files.get("file", default=None) - body = EntityDTO(**req, file=req_file) - except Exception as e: - error_message = getattr(e, "message", None) - return jsonify({"error": (error_message if error_message else str(e))}), 500 - - try: - result = entity_service.update_entity(id, body) - except Exception as e: - error_message = getattr(e, "message", None) - return jsonify({"error": (error_message if error_message else str(e))}), 500 - - return jsonify(result), 200 - - -# defines DELETE endpoint for deleting the entity with the provided id -@blueprint.route("/", methods=["DELETE"], strict_slashes=False) -@require_authorization_by_role({"Relief Staff", "Regular Staff", "Admin"}) -def delete_entity(id): - try: - result = entity_service.delete_entity(id) - except Exception as e: - error_message = getattr(e, "message", None) - return jsonify({"error": (error_message if error_message else str(e))}), 500 - - return jsonify(result), 200 - - -# defines GET endpoint for a URL to the entity's file with the provided uuid -@blueprint.route("/files/", methods=["GET"], strict_slashes=False) -@require_authorization_by_role({"Relief Staff", "Regular Staff", "Admin"}) -def get_file(id): - try: - file_url = file_storage_service.get_file(id) - except Exception as e: - error_message = getattr(e, "message", None) - return jsonify({"error": (error_message if error_message else str(e))}), 500 - - return jsonify({"file_url": file_url}), 200 diff --git a/backend/app/rest/user_routes.py b/backend/app/rest/user_routes.py index 41a3e9c1..f376f298 100644 --- a/backend/app/rest/user_routes.py +++ b/backend/app/rest/user_routes.py @@ -11,7 +11,6 @@ from ..services.implementations.auth_service import AuthService from ..services.implementations.email_service import EmailService from ..services.implementations.user_service import UserService -from ..utilities.csv_utils import generate_csv_from_list from ..utilities.exceptions.auth_exceptions import UserNotInvitedException from ..utilities.exceptions.duplicate_entity_exceptions import DuplicateUserException diff --git a/backend/app/services/implementations/entity_service.py b/backend/app/services/implementations/entity_service.py deleted file mode 100644 index 3dca6aa5..00000000 --- a/backend/app/services/implementations/entity_service.py +++ /dev/null @@ -1,93 +0,0 @@ -from ...models.entity import Entity -from ...models import db -from ..interfaces.entity_service import IEntityService -from ..interfaces.file_storage_service import IFileStorageService -from uuid import uuid4 - - -class EntityService(IEntityService): - def __init__(self, logger, file_storage_service: IFileStorageService): - self.logger = logger - self.file_storage_service = file_storage_service - - def get_entities(self): - # Entity is a SQLAlchemy model, we can use convenient methods provided - # by SQLAlchemy like query.all() to query the data - return [result.to_dict() for result in Entity.query.all()] - - def get_entity(self, id): - # get queries by the primary key, which is id for the Entity table - entity = Entity.query.get(id) - if entity is None: - self.logger.error("Invalid id") - raise Exception("Invalid id") - return entity.to_dict() - - def create_entity(self, entity): - try: - file_name = None - if entity.file: - file_name = str(uuid4()) - self.file_storage_service.create_file( - file_name, entity.file, entity.file.content_type - ) - entity.__dict__.pop("file", None) - new_entity = Entity(**entity.__dict__, file_name=file_name) - except Exception as error: - self.logger.error(str(error)) - raise error - - db.session.add(new_entity) - # remember to commit to actually persist into the database - db.session.commit() - - return new_entity.to_dict() - - def update_entity(self, id, entity): - current_entity = Entity.query.get(id) - - if current_entity is None: - self.logger.error("Invalid id") - raise Exception("Invalid id") - - file_name = current_entity.file_name - if entity.file: - if file_name: - self.file_storage_service.update_file( - file_name, entity.file, entity.file.content_type - ) - else: - file_name = str(uuid4()) - self.file_storage_service.create_file( - file_name, entity.file, entity.file.content_type - ) - elif file_name: - self.file_storage_service.delete_file(file_name) - file_name = None - - entity_dict = entity.__dict__ - entity_dict.pop("file", None) - entity_dict.update({"file_name": file_name}) - - Entity.query.filter_by(id=id).update(entity_dict) - updated_entity = Entity.query.get(id) - db.session.commit() - - if updated_entity is None: - self.logger.error("Invalid id") - raise Exception("Invalid id") - return updated_entity.to_dict() - - def delete_entity(self, id): - deleted_entity = Entity.query.get(id) - deleted = Entity.query.filter_by(id=id).delete() - db.session.commit() - - # deleted is the number of rows deleted - if deleted == 1: - if deleted_entity.file_name: - self.file_storage_service.delete_file(deleted_entity.file_name) - return id - - self.logger.error("Invalid id") - raise Exception("Invalid id") diff --git a/backend/app/static/css/swagger-ui.css b/backend/app/static/css/swagger-ui.css deleted file mode 100644 index ebec8581..00000000 --- a/backend/app/static/css/swagger-ui.css +++ /dev/null @@ -1,4 +0,0 @@ -.swagger-ui{color:#3b4151; - /*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */font-family:sans-serif}.swagger-ui html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;line-height:1.15}.swagger-ui body{margin:0}.swagger-ui article,.swagger-ui aside,.swagger-ui footer,.swagger-ui header,.swagger-ui nav,.swagger-ui section{display:block}.swagger-ui h1{font-size:2em;margin:.67em 0}.swagger-ui figcaption,.swagger-ui figure,.swagger-ui main{display:block}.swagger-ui figure{margin:1em 40px}.swagger-ui hr{box-sizing:content-box;height:0;overflow:visible}.swagger-ui pre{font-family:monospace,monospace;font-size:1em}.swagger-ui a{-webkit-text-decoration-skip:objects;background-color:transparent}.swagger-ui abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.swagger-ui b,.swagger-ui strong{font-weight:inherit;font-weight:bolder}.swagger-ui code,.swagger-ui kbd,.swagger-ui samp{font-family:monospace,monospace;font-size:1em}.swagger-ui dfn{font-style:italic}.swagger-ui mark{background-color:#ff0;color:#000}.swagger-ui small{font-size:80%}.swagger-ui sub,.swagger-ui sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}.swagger-ui sub{bottom:-.25em}.swagger-ui sup{top:-.5em}.swagger-ui audio,.swagger-ui video{display:inline-block}.swagger-ui audio:not([controls]){display:none;height:0}.swagger-ui img{border-style:none}.swagger-ui svg:not(:root){overflow:hidden}.swagger-ui button,.swagger-ui input,.swagger-ui optgroup,.swagger-ui select,.swagger-ui textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}.swagger-ui button,.swagger-ui input{overflow:visible}.swagger-ui button,.swagger-ui select{text-transform:none}.swagger-ui [type=reset],.swagger-ui [type=submit],.swagger-ui button,.swagger-ui html [type=button]{-webkit-appearance:button}.swagger-ui [type=button]::-moz-focus-inner,.swagger-ui [type=reset]::-moz-focus-inner,.swagger-ui [type=submit]::-moz-focus-inner,.swagger-ui button::-moz-focus-inner{border-style:none;padding:0}.swagger-ui [type=button]:-moz-focusring,.swagger-ui [type=reset]:-moz-focusring,.swagger-ui [type=submit]:-moz-focusring,.swagger-ui button:-moz-focusring{outline:1px dotted ButtonText}.swagger-ui fieldset{padding:.35em .75em .625em}.swagger-ui legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}.swagger-ui progress{display:inline-block;vertical-align:baseline}.swagger-ui textarea{overflow:auto}.swagger-ui [type=checkbox],.swagger-ui [type=radio]{box-sizing:border-box;padding:0}.swagger-ui [type=number]::-webkit-inner-spin-button,.swagger-ui [type=number]::-webkit-outer-spin-button{height:auto}.swagger-ui [type=search]{-webkit-appearance:textfield;outline-offset:-2px}.swagger-ui [type=search]::-webkit-search-cancel-button,.swagger-ui [type=search]::-webkit-search-decoration{-webkit-appearance:none}.swagger-ui ::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}.swagger-ui details,.swagger-ui menu{display:block}.swagger-ui summary{display:list-item}.swagger-ui canvas{display:inline-block}.swagger-ui [hidden],.swagger-ui template{display:none}.swagger-ui .debug *{outline:1px solid gold}.swagger-ui .debug-white *{outline:1px solid #fff}.swagger-ui .debug-black *{outline:1px solid #000}.swagger-ui .debug-grid{background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTRDOTY4N0U2N0VFMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTRDOTY4N0Q2N0VFMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3NjY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3NzY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsBS+GMAAAAjSURBVHjaYvz//z8DLsD4gcGXiYEAGBIKGBne//fFpwAgwAB98AaF2pjlUQAAAABJRU5ErkJggg==) repeat 0 0}.swagger-ui .debug-grid-16{background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODYyRjhERDU2N0YyMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ODYyRjhERDQ2N0YyMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3QTY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3QjY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PvCS01IAAABMSURBVHjaYmR4/5+BFPBfAMFm/MBgx8RAGWCn1AAmSg34Q6kBDKMGMDCwICeMIemF/5QawEipAWwUhwEjMDvbAWlWkvVBwu8vQIABAEwBCph8U6c0AAAAAElFTkSuQmCC) repeat 0 0}.swagger-ui .debug-grid-8-solid{background:#fff url(data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAAAAAD/4QMxaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzExMSA3OS4xNTgzMjUsIDIwMTUvMDkvMTAtMDE6MTA6MjAgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkIxMjI0OTczNjdCMzExRTZCMkJDRTI0MDgxMDAyMTcxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkIxMjI0OTc0NjdCMzExRTZCMkJDRTI0MDgxMDAyMTcxIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QjEyMjQ5NzE2N0IzMTFFNkIyQkNFMjQwODEwMDIxNzEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QjEyMjQ5NzI2N0IzMTFFNkIyQkNFMjQwODEwMDIxNzEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAbGhopHSlBJiZBQi8vL0JHPz4+P0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHAR0pKTQmND8oKD9HPzU/R0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0f/wAARCAAIAAgDASIAAhEBAxEB/8QAWQABAQAAAAAAAAAAAAAAAAAAAAYBAQEAAAAAAAAAAAAAAAAAAAIEEAEBAAMBAAAAAAAAAAAAAAABADECA0ERAAEDBQAAAAAAAAAAAAAAAAARITFBUWESIv/aAAwDAQACEQMRAD8AoOnTV1QTD7JJshP3vSM3P//Z) repeat 0 0}.swagger-ui .debug-grid-16-solid{background:#fff url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzY3MkJEN0U2N0M1MTFFNkIyQkNFMjQwODEwMDIxNzEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzY3MkJEN0Y2N0M1MTFFNkIyQkNFMjQwODEwMDIxNzEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3QzY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3RDY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pve6J3kAAAAzSURBVHjaYvz//z8D0UDsMwMjSRoYP5Gq4SPNbRjVMEQ1fCRDg+in/6+J1AJUxsgAEGAA31BAJMS0GYEAAAAASUVORK5CYII=) repeat 0 0}.swagger-ui .border-box,.swagger-ui a,.swagger-ui article,.swagger-ui body,.swagger-ui code,.swagger-ui dd,.swagger-ui div,.swagger-ui dl,.swagger-ui dt,.swagger-ui fieldset,.swagger-ui footer,.swagger-ui form,.swagger-ui h1,.swagger-ui h2,.swagger-ui h3,.swagger-ui h4,.swagger-ui h5,.swagger-ui h6,.swagger-ui header,.swagger-ui html,.swagger-ui input[type=email],.swagger-ui input[type=number],.swagger-ui input[type=password],.swagger-ui input[type=tel],.swagger-ui input[type=text],.swagger-ui input[type=url],.swagger-ui legend,.swagger-ui li,.swagger-ui main,.swagger-ui ol,.swagger-ui p,.swagger-ui pre,.swagger-ui section,.swagger-ui table,.swagger-ui td,.swagger-ui textarea,.swagger-ui th,.swagger-ui tr,.swagger-ui ul{box-sizing:border-box}.swagger-ui .aspect-ratio{height:0;position:relative}.swagger-ui .aspect-ratio--16x9{padding-bottom:56.25%}.swagger-ui .aspect-ratio--9x16{padding-bottom:177.77%}.swagger-ui .aspect-ratio--4x3{padding-bottom:75%}.swagger-ui .aspect-ratio--3x4{padding-bottom:133.33%}.swagger-ui .aspect-ratio--6x4{padding-bottom:66.6%}.swagger-ui .aspect-ratio--4x6{padding-bottom:150%}.swagger-ui .aspect-ratio--8x5{padding-bottom:62.5%}.swagger-ui .aspect-ratio--5x8{padding-bottom:160%}.swagger-ui .aspect-ratio--7x5{padding-bottom:71.42%}.swagger-ui .aspect-ratio--5x7{padding-bottom:140%}.swagger-ui .aspect-ratio--1x1{padding-bottom:100%}.swagger-ui .aspect-ratio--object{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:100}@media screen and (min-width:30em){.swagger-ui .aspect-ratio-ns{height:0;position:relative}.swagger-ui .aspect-ratio--16x9-ns{padding-bottom:56.25%}.swagger-ui .aspect-ratio--9x16-ns{padding-bottom:177.77%}.swagger-ui .aspect-ratio--4x3-ns{padding-bottom:75%}.swagger-ui .aspect-ratio--3x4-ns{padding-bottom:133.33%}.swagger-ui .aspect-ratio--6x4-ns{padding-bottom:66.6%}.swagger-ui .aspect-ratio--4x6-ns{padding-bottom:150%}.swagger-ui .aspect-ratio--8x5-ns{padding-bottom:62.5%}.swagger-ui .aspect-ratio--5x8-ns{padding-bottom:160%}.swagger-ui .aspect-ratio--7x5-ns{padding-bottom:71.42%}.swagger-ui .aspect-ratio--5x7-ns{padding-bottom:140%}.swagger-ui .aspect-ratio--1x1-ns{padding-bottom:100%}.swagger-ui .aspect-ratio--object-ns{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:100}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .aspect-ratio-m{height:0;position:relative}.swagger-ui .aspect-ratio--16x9-m{padding-bottom:56.25%}.swagger-ui .aspect-ratio--9x16-m{padding-bottom:177.77%}.swagger-ui .aspect-ratio--4x3-m{padding-bottom:75%}.swagger-ui .aspect-ratio--3x4-m{padding-bottom:133.33%}.swagger-ui .aspect-ratio--6x4-m{padding-bottom:66.6%}.swagger-ui .aspect-ratio--4x6-m{padding-bottom:150%}.swagger-ui .aspect-ratio--8x5-m{padding-bottom:62.5%}.swagger-ui .aspect-ratio--5x8-m{padding-bottom:160%}.swagger-ui .aspect-ratio--7x5-m{padding-bottom:71.42%}.swagger-ui .aspect-ratio--5x7-m{padding-bottom:140%}.swagger-ui .aspect-ratio--1x1-m{padding-bottom:100%}.swagger-ui .aspect-ratio--object-m{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:100}}@media screen and (min-width:60em){.swagger-ui .aspect-ratio-l{height:0;position:relative}.swagger-ui .aspect-ratio--16x9-l{padding-bottom:56.25%}.swagger-ui .aspect-ratio--9x16-l{padding-bottom:177.77%}.swagger-ui .aspect-ratio--4x3-l{padding-bottom:75%}.swagger-ui .aspect-ratio--3x4-l{padding-bottom:133.33%}.swagger-ui .aspect-ratio--6x4-l{padding-bottom:66.6%}.swagger-ui .aspect-ratio--4x6-l{padding-bottom:150%}.swagger-ui .aspect-ratio--8x5-l{padding-bottom:62.5%}.swagger-ui .aspect-ratio--5x8-l{padding-bottom:160%}.swagger-ui .aspect-ratio--7x5-l{padding-bottom:71.42%}.swagger-ui .aspect-ratio--5x7-l{padding-bottom:140%}.swagger-ui .aspect-ratio--1x1-l{padding-bottom:100%}.swagger-ui .aspect-ratio--object-l{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:100}}.swagger-ui img{max-width:100%}.swagger-ui .cover{background-size:cover!important}.swagger-ui .contain{background-size:contain!important}@media screen and (min-width:30em){.swagger-ui .cover-ns{background-size:cover!important}.swagger-ui .contain-ns{background-size:contain!important}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .cover-m{background-size:cover!important}.swagger-ui .contain-m{background-size:contain!important}}@media screen and (min-width:60em){.swagger-ui .cover-l{background-size:cover!important}.swagger-ui .contain-l{background-size:contain!important}}.swagger-ui .bg-center{background-position:50%;background-repeat:no-repeat}.swagger-ui .bg-top{background-position:top;background-repeat:no-repeat}.swagger-ui .bg-right{background-position:100%;background-repeat:no-repeat}.swagger-ui .bg-bottom{background-position:bottom;background-repeat:no-repeat}.swagger-ui .bg-left{background-position:0;background-repeat:no-repeat}@media screen and (min-width:30em){.swagger-ui .bg-center-ns{background-position:50%;background-repeat:no-repeat}.swagger-ui .bg-top-ns{background-position:top;background-repeat:no-repeat}.swagger-ui .bg-right-ns{background-position:100%;background-repeat:no-repeat}.swagger-ui .bg-bottom-ns{background-position:bottom;background-repeat:no-repeat}.swagger-ui .bg-left-ns{background-position:0;background-repeat:no-repeat}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .bg-center-m{background-position:50%;background-repeat:no-repeat}.swagger-ui .bg-top-m{background-position:top;background-repeat:no-repeat}.swagger-ui .bg-right-m{background-position:100%;background-repeat:no-repeat}.swagger-ui .bg-bottom-m{background-position:bottom;background-repeat:no-repeat}.swagger-ui .bg-left-m{background-position:0;background-repeat:no-repeat}}@media screen and (min-width:60em){.swagger-ui .bg-center-l{background-position:50%;background-repeat:no-repeat}.swagger-ui .bg-top-l{background-position:top;background-repeat:no-repeat}.swagger-ui .bg-right-l{background-position:100%;background-repeat:no-repeat}.swagger-ui .bg-bottom-l{background-position:bottom;background-repeat:no-repeat}.swagger-ui .bg-left-l{background-position:0;background-repeat:no-repeat}}.swagger-ui .outline{outline:1px solid}.swagger-ui .outline-transparent{outline:1px solid transparent}.swagger-ui .outline-0{outline:0}@media screen and (min-width:30em){.swagger-ui .outline-ns{outline:1px solid}.swagger-ui .outline-transparent-ns{outline:1px solid transparent}.swagger-ui .outline-0-ns{outline:0}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .outline-m{outline:1px solid}.swagger-ui .outline-transparent-m{outline:1px solid transparent}.swagger-ui .outline-0-m{outline:0}}@media screen and (min-width:60em){.swagger-ui .outline-l{outline:1px solid}.swagger-ui .outline-transparent-l{outline:1px solid transparent}.swagger-ui .outline-0-l{outline:0}}.swagger-ui .ba{border-style:solid;border-width:1px}.swagger-ui .bt{border-top-style:solid;border-top-width:1px}.swagger-ui .br{border-right-style:solid;border-right-width:1px}.swagger-ui .bb{border-bottom-style:solid;border-bottom-width:1px}.swagger-ui .bl{border-left-style:solid;border-left-width:1px}.swagger-ui .bn{border-style:none;border-width:0}@media screen and (min-width:30em){.swagger-ui .ba-ns{border-style:solid;border-width:1px}.swagger-ui .bt-ns{border-top-style:solid;border-top-width:1px}.swagger-ui .br-ns{border-right-style:solid;border-right-width:1px}.swagger-ui .bb-ns{border-bottom-style:solid;border-bottom-width:1px}.swagger-ui .bl-ns{border-left-style:solid;border-left-width:1px}.swagger-ui .bn-ns{border-style:none;border-width:0}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .ba-m{border-style:solid;border-width:1px}.swagger-ui .bt-m{border-top-style:solid;border-top-width:1px}.swagger-ui .br-m{border-right-style:solid;border-right-width:1px}.swagger-ui .bb-m{border-bottom-style:solid;border-bottom-width:1px}.swagger-ui .bl-m{border-left-style:solid;border-left-width:1px}.swagger-ui .bn-m{border-style:none;border-width:0}}@media screen and (min-width:60em){.swagger-ui .ba-l{border-style:solid;border-width:1px}.swagger-ui .bt-l{border-top-style:solid;border-top-width:1px}.swagger-ui .br-l{border-right-style:solid;border-right-width:1px}.swagger-ui .bb-l{border-bottom-style:solid;border-bottom-width:1px}.swagger-ui .bl-l{border-left-style:solid;border-left-width:1px}.swagger-ui .bn-l{border-style:none;border-width:0}}.swagger-ui .b--black{border-color:#000}.swagger-ui .b--near-black{border-color:#111}.swagger-ui .b--dark-gray{border-color:#333}.swagger-ui .b--mid-gray{border-color:#555}.swagger-ui .b--gray{border-color:#777}.swagger-ui .b--silver{border-color:#999}.swagger-ui .b--light-silver{border-color:#aaa}.swagger-ui .b--moon-gray{border-color:#ccc}.swagger-ui .b--light-gray{border-color:#eee}.swagger-ui .b--near-white{border-color:#f4f4f4}.swagger-ui .b--white{border-color:#fff}.swagger-ui .b--white-90{border-color:hsla(0,0%,100%,.9)}.swagger-ui .b--white-80{border-color:hsla(0,0%,100%,.8)}.swagger-ui .b--white-70{border-color:hsla(0,0%,100%,.7)}.swagger-ui .b--white-60{border-color:hsla(0,0%,100%,.6)}.swagger-ui .b--white-50{border-color:hsla(0,0%,100%,.5)}.swagger-ui .b--white-40{border-color:hsla(0,0%,100%,.4)}.swagger-ui .b--white-30{border-color:hsla(0,0%,100%,.3)}.swagger-ui .b--white-20{border-color:hsla(0,0%,100%,.2)}.swagger-ui .b--white-10{border-color:hsla(0,0%,100%,.1)}.swagger-ui .b--white-05{border-color:hsla(0,0%,100%,.05)}.swagger-ui .b--white-025{border-color:hsla(0,0%,100%,.03)}.swagger-ui .b--white-0125{border-color:hsla(0,0%,100%,.01)}.swagger-ui .b--black-90{border-color:rgba(0,0,0,.9)}.swagger-ui .b--black-80{border-color:rgba(0,0,0,.8)}.swagger-ui .b--black-70{border-color:rgba(0,0,0,.7)}.swagger-ui .b--black-60{border-color:rgba(0,0,0,.6)}.swagger-ui .b--black-50{border-color:rgba(0,0,0,.5)}.swagger-ui .b--black-40{border-color:rgba(0,0,0,.4)}.swagger-ui .b--black-30{border-color:rgba(0,0,0,.3)}.swagger-ui .b--black-20{border-color:rgba(0,0,0,.2)}.swagger-ui .b--black-10{border-color:rgba(0,0,0,.1)}.swagger-ui .b--black-05{border-color:rgba(0,0,0,.05)}.swagger-ui .b--black-025{border-color:rgba(0,0,0,.03)}.swagger-ui .b--black-0125{border-color:rgba(0,0,0,.01)}.swagger-ui .b--dark-red{border-color:#e7040f}.swagger-ui .b--red{border-color:#ff4136}.swagger-ui .b--light-red{border-color:#ff725c}.swagger-ui .b--orange{border-color:#ff6300}.swagger-ui .b--gold{border-color:#ffb700}.swagger-ui .b--yellow{border-color:gold}.swagger-ui .b--light-yellow{border-color:#fbf1a9}.swagger-ui .b--purple{border-color:#5e2ca5}.swagger-ui .b--light-purple{border-color:#a463f2}.swagger-ui .b--dark-pink{border-color:#d5008f}.swagger-ui .b--hot-pink{border-color:#ff41b4}.swagger-ui .b--pink{border-color:#ff80cc}.swagger-ui .b--light-pink{border-color:#ffa3d7}.swagger-ui .b--dark-green{border-color:#137752}.swagger-ui .b--green{border-color:#19a974}.swagger-ui .b--light-green{border-color:#9eebcf}.swagger-ui .b--navy{border-color:#001b44}.swagger-ui .b--dark-blue{border-color:#00449e}.swagger-ui .b--blue{border-color:#357edd}.swagger-ui .b--light-blue{border-color:#96ccff}.swagger-ui .b--lightest-blue{border-color:#cdecff}.swagger-ui .b--washed-blue{border-color:#f6fffe}.swagger-ui .b--washed-green{border-color:#e8fdf5}.swagger-ui .b--washed-yellow{border-color:#fffceb}.swagger-ui .b--washed-red{border-color:#ffdfdf}.swagger-ui .b--transparent{border-color:transparent}.swagger-ui .b--inherit{border-color:inherit}.swagger-ui .br0{border-radius:0}.swagger-ui .br1{border-radius:.125rem}.swagger-ui .br2{border-radius:.25rem}.swagger-ui .br3{border-radius:.5rem}.swagger-ui .br4{border-radius:1rem}.swagger-ui .br-100{border-radius:100%}.swagger-ui .br-pill{border-radius:9999px}.swagger-ui .br--bottom{border-top-left-radius:0;border-top-right-radius:0}.swagger-ui .br--top{border-bottom-left-radius:0;border-bottom-right-radius:0}.swagger-ui .br--right{border-bottom-left-radius:0;border-top-left-radius:0}.swagger-ui .br--left{border-bottom-right-radius:0;border-top-right-radius:0}@media screen and (min-width:30em){.swagger-ui .br0-ns{border-radius:0}.swagger-ui .br1-ns{border-radius:.125rem}.swagger-ui .br2-ns{border-radius:.25rem}.swagger-ui .br3-ns{border-radius:.5rem}.swagger-ui .br4-ns{border-radius:1rem}.swagger-ui .br-100-ns{border-radius:100%}.swagger-ui .br-pill-ns{border-radius:9999px}.swagger-ui .br--bottom-ns{border-top-left-radius:0;border-top-right-radius:0}.swagger-ui .br--top-ns{border-bottom-left-radius:0;border-bottom-right-radius:0}.swagger-ui .br--right-ns{border-bottom-left-radius:0;border-top-left-radius:0}.swagger-ui .br--left-ns{border-bottom-right-radius:0;border-top-right-radius:0}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .br0-m{border-radius:0}.swagger-ui .br1-m{border-radius:.125rem}.swagger-ui .br2-m{border-radius:.25rem}.swagger-ui .br3-m{border-radius:.5rem}.swagger-ui .br4-m{border-radius:1rem}.swagger-ui .br-100-m{border-radius:100%}.swagger-ui .br-pill-m{border-radius:9999px}.swagger-ui .br--bottom-m{border-top-left-radius:0;border-top-right-radius:0}.swagger-ui .br--top-m{border-bottom-left-radius:0;border-bottom-right-radius:0}.swagger-ui .br--right-m{border-bottom-left-radius:0;border-top-left-radius:0}.swagger-ui .br--left-m{border-bottom-right-radius:0;border-top-right-radius:0}}@media screen and (min-width:60em){.swagger-ui .br0-l{border-radius:0}.swagger-ui .br1-l{border-radius:.125rem}.swagger-ui .br2-l{border-radius:.25rem}.swagger-ui .br3-l{border-radius:.5rem}.swagger-ui .br4-l{border-radius:1rem}.swagger-ui .br-100-l{border-radius:100%}.swagger-ui .br-pill-l{border-radius:9999px}.swagger-ui .br--bottom-l{border-top-left-radius:0;border-top-right-radius:0}.swagger-ui .br--top-l{border-bottom-left-radius:0;border-bottom-right-radius:0}.swagger-ui .br--right-l{border-bottom-left-radius:0;border-top-left-radius:0}.swagger-ui .br--left-l{border-bottom-right-radius:0;border-top-right-radius:0}}.swagger-ui .b--dotted{border-style:dotted}.swagger-ui .b--dashed{border-style:dashed}.swagger-ui .b--solid{border-style:solid}.swagger-ui .b--none{border-style:none}@media screen and (min-width:30em){.swagger-ui .b--dotted-ns{border-style:dotted}.swagger-ui .b--dashed-ns{border-style:dashed}.swagger-ui .b--solid-ns{border-style:solid}.swagger-ui .b--none-ns{border-style:none}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .b--dotted-m{border-style:dotted}.swagger-ui .b--dashed-m{border-style:dashed}.swagger-ui .b--solid-m{border-style:solid}.swagger-ui .b--none-m{border-style:none}}@media screen and (min-width:60em){.swagger-ui .b--dotted-l{border-style:dotted}.swagger-ui .b--dashed-l{border-style:dashed}.swagger-ui .b--solid-l{border-style:solid}.swagger-ui .b--none-l{border-style:none}}.swagger-ui .bw0{border-width:0}.swagger-ui .bw1{border-width:.125rem}.swagger-ui .bw2{border-width:.25rem}.swagger-ui .bw3{border-width:.5rem}.swagger-ui .bw4{border-width:1rem}.swagger-ui .bw5{border-width:2rem}.swagger-ui .bt-0{border-top-width:0}.swagger-ui .br-0{border-right-width:0}.swagger-ui .bb-0{border-bottom-width:0}.swagger-ui .bl-0{border-left-width:0}@media screen and (min-width:30em){.swagger-ui .bw0-ns{border-width:0}.swagger-ui .bw1-ns{border-width:.125rem}.swagger-ui .bw2-ns{border-width:.25rem}.swagger-ui .bw3-ns{border-width:.5rem}.swagger-ui .bw4-ns{border-width:1rem}.swagger-ui .bw5-ns{border-width:2rem}.swagger-ui .bt-0-ns{border-top-width:0}.swagger-ui .br-0-ns{border-right-width:0}.swagger-ui .bb-0-ns{border-bottom-width:0}.swagger-ui .bl-0-ns{border-left-width:0}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .bw0-m{border-width:0}.swagger-ui .bw1-m{border-width:.125rem}.swagger-ui .bw2-m{border-width:.25rem}.swagger-ui .bw3-m{border-width:.5rem}.swagger-ui .bw4-m{border-width:1rem}.swagger-ui .bw5-m{border-width:2rem}.swagger-ui .bt-0-m{border-top-width:0}.swagger-ui .br-0-m{border-right-width:0}.swagger-ui .bb-0-m{border-bottom-width:0}.swagger-ui .bl-0-m{border-left-width:0}}@media screen and (min-width:60em){.swagger-ui .bw0-l{border-width:0}.swagger-ui .bw1-l{border-width:.125rem}.swagger-ui .bw2-l{border-width:.25rem}.swagger-ui .bw3-l{border-width:.5rem}.swagger-ui .bw4-l{border-width:1rem}.swagger-ui .bw5-l{border-width:2rem}.swagger-ui .bt-0-l{border-top-width:0}.swagger-ui .br-0-l{border-right-width:0}.swagger-ui .bb-0-l{border-bottom-width:0}.swagger-ui .bl-0-l{border-left-width:0}}.swagger-ui .shadow-1{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.swagger-ui .shadow-2{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.swagger-ui .shadow-3{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.swagger-ui .shadow-4{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.swagger-ui .shadow-5{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}@media screen and (min-width:30em){.swagger-ui .shadow-1-ns{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.swagger-ui .shadow-2-ns{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.swagger-ui .shadow-3-ns{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.swagger-ui .shadow-4-ns{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.swagger-ui .shadow-5-ns{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .shadow-1-m{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.swagger-ui .shadow-2-m{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.swagger-ui .shadow-3-m{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.swagger-ui .shadow-4-m{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.swagger-ui .shadow-5-m{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}}@media screen and (min-width:60em){.swagger-ui .shadow-1-l{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.swagger-ui .shadow-2-l{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.swagger-ui .shadow-3-l{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.swagger-ui .shadow-4-l{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.swagger-ui .shadow-5-l{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}}.swagger-ui .pre{overflow-x:auto;overflow-y:hidden;overflow:scroll}.swagger-ui .top-0{top:0}.swagger-ui .right-0{right:0}.swagger-ui .bottom-0{bottom:0}.swagger-ui .left-0{left:0}.swagger-ui .top-1{top:1rem}.swagger-ui .right-1{right:1rem}.swagger-ui .bottom-1{bottom:1rem}.swagger-ui .left-1{left:1rem}.swagger-ui .top-2{top:2rem}.swagger-ui .right-2{right:2rem}.swagger-ui .bottom-2{bottom:2rem}.swagger-ui .left-2{left:2rem}.swagger-ui .top--1{top:-1rem}.swagger-ui .right--1{right:-1rem}.swagger-ui .bottom--1{bottom:-1rem}.swagger-ui .left--1{left:-1rem}.swagger-ui .top--2{top:-2rem}.swagger-ui .right--2{right:-2rem}.swagger-ui .bottom--2{bottom:-2rem}.swagger-ui .left--2{left:-2rem}.swagger-ui .absolute--fill{bottom:0;left:0;right:0;top:0}@media screen and (min-width:30em){.swagger-ui .top-0-ns{top:0}.swagger-ui .left-0-ns{left:0}.swagger-ui .right-0-ns{right:0}.swagger-ui .bottom-0-ns{bottom:0}.swagger-ui .top-1-ns{top:1rem}.swagger-ui .left-1-ns{left:1rem}.swagger-ui .right-1-ns{right:1rem}.swagger-ui .bottom-1-ns{bottom:1rem}.swagger-ui .top-2-ns{top:2rem}.swagger-ui .left-2-ns{left:2rem}.swagger-ui .right-2-ns{right:2rem}.swagger-ui .bottom-2-ns{bottom:2rem}.swagger-ui .top--1-ns{top:-1rem}.swagger-ui .right--1-ns{right:-1rem}.swagger-ui .bottom--1-ns{bottom:-1rem}.swagger-ui .left--1-ns{left:-1rem}.swagger-ui .top--2-ns{top:-2rem}.swagger-ui .right--2-ns{right:-2rem}.swagger-ui .bottom--2-ns{bottom:-2rem}.swagger-ui .left--2-ns{left:-2rem}.swagger-ui .absolute--fill-ns{bottom:0;left:0;right:0;top:0}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .top-0-m{top:0}.swagger-ui .left-0-m{left:0}.swagger-ui .right-0-m{right:0}.swagger-ui .bottom-0-m{bottom:0}.swagger-ui .top-1-m{top:1rem}.swagger-ui .left-1-m{left:1rem}.swagger-ui .right-1-m{right:1rem}.swagger-ui .bottom-1-m{bottom:1rem}.swagger-ui .top-2-m{top:2rem}.swagger-ui .left-2-m{left:2rem}.swagger-ui .right-2-m{right:2rem}.swagger-ui .bottom-2-m{bottom:2rem}.swagger-ui .top--1-m{top:-1rem}.swagger-ui .right--1-m{right:-1rem}.swagger-ui .bottom--1-m{bottom:-1rem}.swagger-ui .left--1-m{left:-1rem}.swagger-ui .top--2-m{top:-2rem}.swagger-ui .right--2-m{right:-2rem}.swagger-ui .bottom--2-m{bottom:-2rem}.swagger-ui .left--2-m{left:-2rem}.swagger-ui .absolute--fill-m{bottom:0;left:0;right:0;top:0}}@media screen and (min-width:60em){.swagger-ui .top-0-l{top:0}.swagger-ui .left-0-l{left:0}.swagger-ui .right-0-l{right:0}.swagger-ui .bottom-0-l{bottom:0}.swagger-ui .top-1-l{top:1rem}.swagger-ui .left-1-l{left:1rem}.swagger-ui .right-1-l{right:1rem}.swagger-ui .bottom-1-l{bottom:1rem}.swagger-ui .top-2-l{top:2rem}.swagger-ui .left-2-l{left:2rem}.swagger-ui .right-2-l{right:2rem}.swagger-ui .bottom-2-l{bottom:2rem}.swagger-ui .top--1-l{top:-1rem}.swagger-ui .right--1-l{right:-1rem}.swagger-ui .bottom--1-l{bottom:-1rem}.swagger-ui .left--1-l{left:-1rem}.swagger-ui .top--2-l{top:-2rem}.swagger-ui .right--2-l{right:-2rem}.swagger-ui .bottom--2-l{bottom:-2rem}.swagger-ui .left--2-l{left:-2rem}.swagger-ui .absolute--fill-l{bottom:0;left:0;right:0;top:0}}.swagger-ui .cf:after,.swagger-ui .cf:before{content:" ";display:table}.swagger-ui .cf:after{clear:both}.swagger-ui .cf{*zoom:1}.swagger-ui .cl{clear:left}.swagger-ui .cr{clear:right}.swagger-ui .cb{clear:both}.swagger-ui .cn{clear:none}@media screen and (min-width:30em){.swagger-ui .cl-ns{clear:left}.swagger-ui .cr-ns{clear:right}.swagger-ui .cb-ns{clear:both}.swagger-ui .cn-ns{clear:none}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .cl-m{clear:left}.swagger-ui .cr-m{clear:right}.swagger-ui .cb-m{clear:both}.swagger-ui .cn-m{clear:none}}@media screen and (min-width:60em){.swagger-ui .cl-l{clear:left}.swagger-ui .cr-l{clear:right}.swagger-ui .cb-l{clear:both}.swagger-ui .cn-l{clear:none}}.swagger-ui .flex{display:flex}.swagger-ui .inline-flex{display:inline-flex}.swagger-ui .flex-auto{flex:1 1 auto;min-height:0;min-width:0}.swagger-ui .flex-none{flex:none}.swagger-ui .flex-column{flex-direction:column}.swagger-ui .flex-row{flex-direction:row}.swagger-ui .flex-wrap{flex-wrap:wrap}.swagger-ui .flex-nowrap{flex-wrap:nowrap}.swagger-ui .flex-wrap-reverse{flex-wrap:wrap-reverse}.swagger-ui .flex-column-reverse{flex-direction:column-reverse}.swagger-ui .flex-row-reverse{flex-direction:row-reverse}.swagger-ui .items-start{align-items:flex-start}.swagger-ui .items-end{align-items:flex-end}.swagger-ui .items-center{align-items:center}.swagger-ui .items-baseline{align-items:baseline}.swagger-ui .items-stretch{align-items:stretch}.swagger-ui .self-start{align-self:flex-start}.swagger-ui .self-end{align-self:flex-end}.swagger-ui .self-center{align-self:center}.swagger-ui .self-baseline{align-self:baseline}.swagger-ui .self-stretch{align-self:stretch}.swagger-ui .justify-start{justify-content:flex-start}.swagger-ui .justify-end{justify-content:flex-end}.swagger-ui .justify-center{justify-content:center}.swagger-ui .justify-between{justify-content:space-between}.swagger-ui .justify-around{justify-content:space-around}.swagger-ui .content-start{align-content:flex-start}.swagger-ui .content-end{align-content:flex-end}.swagger-ui .content-center{align-content:center}.swagger-ui .content-between{align-content:space-between}.swagger-ui .content-around{align-content:space-around}.swagger-ui .content-stretch{align-content:stretch}.swagger-ui .order-0{order:0}.swagger-ui .order-1{order:1}.swagger-ui .order-2{order:2}.swagger-ui .order-3{order:3}.swagger-ui .order-4{order:4}.swagger-ui .order-5{order:5}.swagger-ui .order-6{order:6}.swagger-ui .order-7{order:7}.swagger-ui .order-8{order:8}.swagger-ui .order-last{order:99999}.swagger-ui .flex-grow-0{flex-grow:0}.swagger-ui .flex-grow-1{flex-grow:1}.swagger-ui .flex-shrink-0{flex-shrink:0}.swagger-ui .flex-shrink-1{flex-shrink:1}@media screen and (min-width:30em){.swagger-ui .flex-ns{display:flex}.swagger-ui .inline-flex-ns{display:inline-flex}.swagger-ui .flex-auto-ns{flex:1 1 auto;min-height:0;min-width:0}.swagger-ui .flex-none-ns{flex:none}.swagger-ui .flex-column-ns{flex-direction:column}.swagger-ui .flex-row-ns{flex-direction:row}.swagger-ui .flex-wrap-ns{flex-wrap:wrap}.swagger-ui .flex-nowrap-ns{flex-wrap:nowrap}.swagger-ui .flex-wrap-reverse-ns{flex-wrap:wrap-reverse}.swagger-ui .flex-column-reverse-ns{flex-direction:column-reverse}.swagger-ui .flex-row-reverse-ns{flex-direction:row-reverse}.swagger-ui .items-start-ns{align-items:flex-start}.swagger-ui .items-end-ns{align-items:flex-end}.swagger-ui .items-center-ns{align-items:center}.swagger-ui .items-baseline-ns{align-items:baseline}.swagger-ui .items-stretch-ns{align-items:stretch}.swagger-ui .self-start-ns{align-self:flex-start}.swagger-ui .self-end-ns{align-self:flex-end}.swagger-ui .self-center-ns{align-self:center}.swagger-ui .self-baseline-ns{align-self:baseline}.swagger-ui .self-stretch-ns{align-self:stretch}.swagger-ui .justify-start-ns{justify-content:flex-start}.swagger-ui .justify-end-ns{justify-content:flex-end}.swagger-ui .justify-center-ns{justify-content:center}.swagger-ui .justify-between-ns{justify-content:space-between}.swagger-ui .justify-around-ns{justify-content:space-around}.swagger-ui .content-start-ns{align-content:flex-start}.swagger-ui .content-end-ns{align-content:flex-end}.swagger-ui .content-center-ns{align-content:center}.swagger-ui .content-between-ns{align-content:space-between}.swagger-ui .content-around-ns{align-content:space-around}.swagger-ui .content-stretch-ns{align-content:stretch}.swagger-ui .order-0-ns{order:0}.swagger-ui .order-1-ns{order:1}.swagger-ui .order-2-ns{order:2}.swagger-ui .order-3-ns{order:3}.swagger-ui .order-4-ns{order:4}.swagger-ui .order-5-ns{order:5}.swagger-ui .order-6-ns{order:6}.swagger-ui .order-7-ns{order:7}.swagger-ui .order-8-ns{order:8}.swagger-ui .order-last-ns{order:99999}.swagger-ui .flex-grow-0-ns{flex-grow:0}.swagger-ui .flex-grow-1-ns{flex-grow:1}.swagger-ui .flex-shrink-0-ns{flex-shrink:0}.swagger-ui .flex-shrink-1-ns{flex-shrink:1}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .flex-m{display:flex}.swagger-ui .inline-flex-m{display:inline-flex}.swagger-ui .flex-auto-m{flex:1 1 auto;min-height:0;min-width:0}.swagger-ui .flex-none-m{flex:none}.swagger-ui .flex-column-m{flex-direction:column}.swagger-ui .flex-row-m{flex-direction:row}.swagger-ui .flex-wrap-m{flex-wrap:wrap}.swagger-ui .flex-nowrap-m{flex-wrap:nowrap}.swagger-ui .flex-wrap-reverse-m{flex-wrap:wrap-reverse}.swagger-ui .flex-column-reverse-m{flex-direction:column-reverse}.swagger-ui .flex-row-reverse-m{flex-direction:row-reverse}.swagger-ui .items-start-m{align-items:flex-start}.swagger-ui .items-end-m{align-items:flex-end}.swagger-ui .items-center-m{align-items:center}.swagger-ui .items-baseline-m{align-items:baseline}.swagger-ui .items-stretch-m{align-items:stretch}.swagger-ui .self-start-m{align-self:flex-start}.swagger-ui .self-end-m{align-self:flex-end}.swagger-ui .self-center-m{align-self:center}.swagger-ui .self-baseline-m{align-self:baseline}.swagger-ui .self-stretch-m{align-self:stretch}.swagger-ui .justify-start-m{justify-content:flex-start}.swagger-ui .justify-end-m{justify-content:flex-end}.swagger-ui .justify-center-m{justify-content:center}.swagger-ui .justify-between-m{justify-content:space-between}.swagger-ui .justify-around-m{justify-content:space-around}.swagger-ui .content-start-m{align-content:flex-start}.swagger-ui .content-end-m{align-content:flex-end}.swagger-ui .content-center-m{align-content:center}.swagger-ui .content-between-m{align-content:space-between}.swagger-ui .content-around-m{align-content:space-around}.swagger-ui .content-stretch-m{align-content:stretch}.swagger-ui .order-0-m{order:0}.swagger-ui .order-1-m{order:1}.swagger-ui .order-2-m{order:2}.swagger-ui .order-3-m{order:3}.swagger-ui .order-4-m{order:4}.swagger-ui .order-5-m{order:5}.swagger-ui .order-6-m{order:6}.swagger-ui .order-7-m{order:7}.swagger-ui .order-8-m{order:8}.swagger-ui .order-last-m{order:99999}.swagger-ui .flex-grow-0-m{flex-grow:0}.swagger-ui .flex-grow-1-m{flex-grow:1}.swagger-ui .flex-shrink-0-m{flex-shrink:0}.swagger-ui .flex-shrink-1-m{flex-shrink:1}}@media screen and (min-width:60em){.swagger-ui .flex-l{display:flex}.swagger-ui .inline-flex-l{display:inline-flex}.swagger-ui .flex-auto-l{flex:1 1 auto;min-height:0;min-width:0}.swagger-ui .flex-none-l{flex:none}.swagger-ui .flex-column-l{flex-direction:column}.swagger-ui .flex-row-l{flex-direction:row}.swagger-ui .flex-wrap-l{flex-wrap:wrap}.swagger-ui .flex-nowrap-l{flex-wrap:nowrap}.swagger-ui .flex-wrap-reverse-l{flex-wrap:wrap-reverse}.swagger-ui .flex-column-reverse-l{flex-direction:column-reverse}.swagger-ui .flex-row-reverse-l{flex-direction:row-reverse}.swagger-ui .items-start-l{align-items:flex-start}.swagger-ui .items-end-l{align-items:flex-end}.swagger-ui .items-center-l{align-items:center}.swagger-ui .items-baseline-l{align-items:baseline}.swagger-ui .items-stretch-l{align-items:stretch}.swagger-ui .self-start-l{align-self:flex-start}.swagger-ui .self-end-l{align-self:flex-end}.swagger-ui .self-center-l{align-self:center}.swagger-ui .self-baseline-l{align-self:baseline}.swagger-ui .self-stretch-l{align-self:stretch}.swagger-ui .justify-start-l{justify-content:flex-start}.swagger-ui .justify-end-l{justify-content:flex-end}.swagger-ui .justify-center-l{justify-content:center}.swagger-ui .justify-between-l{justify-content:space-between}.swagger-ui .justify-around-l{justify-content:space-around}.swagger-ui .content-start-l{align-content:flex-start}.swagger-ui .content-end-l{align-content:flex-end}.swagger-ui .content-center-l{align-content:center}.swagger-ui .content-between-l{align-content:space-between}.swagger-ui .content-around-l{align-content:space-around}.swagger-ui .content-stretch-l{align-content:stretch}.swagger-ui .order-0-l{order:0}.swagger-ui .order-1-l{order:1}.swagger-ui .order-2-l{order:2}.swagger-ui .order-3-l{order:3}.swagger-ui .order-4-l{order:4}.swagger-ui .order-5-l{order:5}.swagger-ui .order-6-l{order:6}.swagger-ui .order-7-l{order:7}.swagger-ui .order-8-l{order:8}.swagger-ui .order-last-l{order:99999}.swagger-ui .flex-grow-0-l{flex-grow:0}.swagger-ui .flex-grow-1-l{flex-grow:1}.swagger-ui .flex-shrink-0-l{flex-shrink:0}.swagger-ui .flex-shrink-1-l{flex-shrink:1}}.swagger-ui .dn{display:none}.swagger-ui .di{display:inline}.swagger-ui .db{display:block}.swagger-ui .dib{display:inline-block}.swagger-ui .dit{display:inline-table}.swagger-ui .dt{display:table}.swagger-ui .dtc{display:table-cell}.swagger-ui .dt-row{display:table-row}.swagger-ui .dt-row-group{display:table-row-group}.swagger-ui .dt-column{display:table-column}.swagger-ui .dt-column-group{display:table-column-group}.swagger-ui .dt--fixed{table-layout:fixed;width:100%}@media screen and (min-width:30em){.swagger-ui .dn-ns{display:none}.swagger-ui .di-ns{display:inline}.swagger-ui .db-ns{display:block}.swagger-ui .dib-ns{display:inline-block}.swagger-ui .dit-ns{display:inline-table}.swagger-ui .dt-ns{display:table}.swagger-ui .dtc-ns{display:table-cell}.swagger-ui .dt-row-ns{display:table-row}.swagger-ui .dt-row-group-ns{display:table-row-group}.swagger-ui .dt-column-ns{display:table-column}.swagger-ui .dt-column-group-ns{display:table-column-group}.swagger-ui .dt--fixed-ns{table-layout:fixed;width:100%}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .dn-m{display:none}.swagger-ui .di-m{display:inline}.swagger-ui .db-m{display:block}.swagger-ui .dib-m{display:inline-block}.swagger-ui .dit-m{display:inline-table}.swagger-ui .dt-m{display:table}.swagger-ui .dtc-m{display:table-cell}.swagger-ui .dt-row-m{display:table-row}.swagger-ui .dt-row-group-m{display:table-row-group}.swagger-ui .dt-column-m{display:table-column}.swagger-ui .dt-column-group-m{display:table-column-group}.swagger-ui .dt--fixed-m{table-layout:fixed;width:100%}}@media screen and (min-width:60em){.swagger-ui .dn-l{display:none}.swagger-ui .di-l{display:inline}.swagger-ui .db-l{display:block}.swagger-ui .dib-l{display:inline-block}.swagger-ui .dit-l{display:inline-table}.swagger-ui .dt-l{display:table}.swagger-ui .dtc-l{display:table-cell}.swagger-ui .dt-row-l{display:table-row}.swagger-ui .dt-row-group-l{display:table-row-group}.swagger-ui .dt-column-l{display:table-column}.swagger-ui .dt-column-group-l{display:table-column-group}.swagger-ui .dt--fixed-l{table-layout:fixed;width:100%}}.swagger-ui .fl{_display:inline;float:left}.swagger-ui .fr{_display:inline;float:right}.swagger-ui .fn{float:none}@media screen and (min-width:30em){.swagger-ui .fl-ns{_display:inline;float:left}.swagger-ui .fr-ns{_display:inline;float:right}.swagger-ui .fn-ns{float:none}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .fl-m{_display:inline;float:left}.swagger-ui .fr-m{_display:inline;float:right}.swagger-ui .fn-m{float:none}}@media screen and (min-width:60em){.swagger-ui .fl-l{_display:inline;float:left}.swagger-ui .fr-l{_display:inline;float:right}.swagger-ui .fn-l{float:none}}.swagger-ui .sans-serif{font-family:-apple-system,BlinkMacSystemFont,avenir next,avenir,helvetica,helvetica neue,ubuntu,roboto,noto,segoe ui,arial,sans-serif}.swagger-ui .serif{font-family:georgia,serif}.swagger-ui .system-sans-serif{font-family:sans-serif}.swagger-ui .system-serif{font-family:serif}.swagger-ui .code,.swagger-ui code{font-family:Consolas,monaco,monospace}.swagger-ui .courier{font-family:Courier Next,courier,monospace}.swagger-ui .helvetica{font-family:helvetica neue,helvetica,sans-serif}.swagger-ui .avenir{font-family:avenir next,avenir,sans-serif}.swagger-ui .athelas{font-family:athelas,georgia,serif}.swagger-ui .georgia{font-family:georgia,serif}.swagger-ui .times{font-family:times,serif}.swagger-ui .bodoni{font-family:Bodoni MT,serif}.swagger-ui .calisto{font-family:Calisto MT,serif}.swagger-ui .garamond{font-family:garamond,serif}.swagger-ui .baskerville{font-family:baskerville,serif}.swagger-ui .i{font-style:italic}.swagger-ui .fs-normal{font-style:normal}@media screen and (min-width:30em){.swagger-ui .i-ns{font-style:italic}.swagger-ui .fs-normal-ns{font-style:normal}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .i-m{font-style:italic}.swagger-ui .fs-normal-m{font-style:normal}}@media screen and (min-width:60em){.swagger-ui .i-l{font-style:italic}.swagger-ui .fs-normal-l{font-style:normal}}.swagger-ui .normal{font-weight:400}.swagger-ui .b{font-weight:700}.swagger-ui .fw1{font-weight:100}.swagger-ui .fw2{font-weight:200}.swagger-ui .fw3{font-weight:300}.swagger-ui .fw4{font-weight:400}.swagger-ui .fw5{font-weight:500}.swagger-ui .fw6{font-weight:600}.swagger-ui .fw7{font-weight:700}.swagger-ui .fw8{font-weight:800}.swagger-ui .fw9{font-weight:900}@media screen and (min-width:30em){.swagger-ui .normal-ns{font-weight:400}.swagger-ui .b-ns{font-weight:700}.swagger-ui .fw1-ns{font-weight:100}.swagger-ui .fw2-ns{font-weight:200}.swagger-ui .fw3-ns{font-weight:300}.swagger-ui .fw4-ns{font-weight:400}.swagger-ui .fw5-ns{font-weight:500}.swagger-ui .fw6-ns{font-weight:600}.swagger-ui .fw7-ns{font-weight:700}.swagger-ui .fw8-ns{font-weight:800}.swagger-ui .fw9-ns{font-weight:900}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .normal-m{font-weight:400}.swagger-ui .b-m{font-weight:700}.swagger-ui .fw1-m{font-weight:100}.swagger-ui .fw2-m{font-weight:200}.swagger-ui .fw3-m{font-weight:300}.swagger-ui .fw4-m{font-weight:400}.swagger-ui .fw5-m{font-weight:500}.swagger-ui .fw6-m{font-weight:600}.swagger-ui .fw7-m{font-weight:700}.swagger-ui .fw8-m{font-weight:800}.swagger-ui .fw9-m{font-weight:900}}@media screen and (min-width:60em){.swagger-ui .normal-l{font-weight:400}.swagger-ui .b-l{font-weight:700}.swagger-ui .fw1-l{font-weight:100}.swagger-ui .fw2-l{font-weight:200}.swagger-ui .fw3-l{font-weight:300}.swagger-ui .fw4-l{font-weight:400}.swagger-ui .fw5-l{font-weight:500}.swagger-ui .fw6-l{font-weight:600}.swagger-ui .fw7-l{font-weight:700}.swagger-ui .fw8-l{font-weight:800}.swagger-ui .fw9-l{font-weight:900}}.swagger-ui .input-reset{-webkit-appearance:none;-moz-appearance:none}.swagger-ui .button-reset::-moz-focus-inner,.swagger-ui .input-reset::-moz-focus-inner{border:0;padding:0}.swagger-ui .h1{height:1rem}.swagger-ui .h2{height:2rem}.swagger-ui .h3{height:4rem}.swagger-ui .h4{height:8rem}.swagger-ui .h5{height:16rem}.swagger-ui .h-25{height:25%}.swagger-ui .h-50{height:50%}.swagger-ui .h-75{height:75%}.swagger-ui .h-100{height:100%}.swagger-ui .min-h-100{min-height:100%}.swagger-ui .vh-25{height:25vh}.swagger-ui .vh-50{height:50vh}.swagger-ui .vh-75{height:75vh}.swagger-ui .vh-100{height:100vh}.swagger-ui .min-vh-100{min-height:100vh}.swagger-ui .h-auto{height:auto}.swagger-ui .h-inherit{height:inherit}@media screen and (min-width:30em){.swagger-ui .h1-ns{height:1rem}.swagger-ui .h2-ns{height:2rem}.swagger-ui .h3-ns{height:4rem}.swagger-ui .h4-ns{height:8rem}.swagger-ui .h5-ns{height:16rem}.swagger-ui .h-25-ns{height:25%}.swagger-ui .h-50-ns{height:50%}.swagger-ui .h-75-ns{height:75%}.swagger-ui .h-100-ns{height:100%}.swagger-ui .min-h-100-ns{min-height:100%}.swagger-ui .vh-25-ns{height:25vh}.swagger-ui .vh-50-ns{height:50vh}.swagger-ui .vh-75-ns{height:75vh}.swagger-ui .vh-100-ns{height:100vh}.swagger-ui .min-vh-100-ns{min-height:100vh}.swagger-ui .h-auto-ns{height:auto}.swagger-ui .h-inherit-ns{height:inherit}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .h1-m{height:1rem}.swagger-ui .h2-m{height:2rem}.swagger-ui .h3-m{height:4rem}.swagger-ui .h4-m{height:8rem}.swagger-ui .h5-m{height:16rem}.swagger-ui .h-25-m{height:25%}.swagger-ui .h-50-m{height:50%}.swagger-ui .h-75-m{height:75%}.swagger-ui .h-100-m{height:100%}.swagger-ui .min-h-100-m{min-height:100%}.swagger-ui .vh-25-m{height:25vh}.swagger-ui .vh-50-m{height:50vh}.swagger-ui .vh-75-m{height:75vh}.swagger-ui .vh-100-m{height:100vh}.swagger-ui .min-vh-100-m{min-height:100vh}.swagger-ui .h-auto-m{height:auto}.swagger-ui .h-inherit-m{height:inherit}}@media screen and (min-width:60em){.swagger-ui .h1-l{height:1rem}.swagger-ui .h2-l{height:2rem}.swagger-ui .h3-l{height:4rem}.swagger-ui .h4-l{height:8rem}.swagger-ui .h5-l{height:16rem}.swagger-ui .h-25-l{height:25%}.swagger-ui .h-50-l{height:50%}.swagger-ui .h-75-l{height:75%}.swagger-ui .h-100-l{height:100%}.swagger-ui .min-h-100-l{min-height:100%}.swagger-ui .vh-25-l{height:25vh}.swagger-ui .vh-50-l{height:50vh}.swagger-ui .vh-75-l{height:75vh}.swagger-ui .vh-100-l{height:100vh}.swagger-ui .min-vh-100-l{min-height:100vh}.swagger-ui .h-auto-l{height:auto}.swagger-ui .h-inherit-l{height:inherit}}.swagger-ui .tracked{letter-spacing:.1em}.swagger-ui .tracked-tight{letter-spacing:-.05em}.swagger-ui .tracked-mega{letter-spacing:.25em}@media screen and (min-width:30em){.swagger-ui .tracked-ns{letter-spacing:.1em}.swagger-ui .tracked-tight-ns{letter-spacing:-.05em}.swagger-ui .tracked-mega-ns{letter-spacing:.25em}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .tracked-m{letter-spacing:.1em}.swagger-ui .tracked-tight-m{letter-spacing:-.05em}.swagger-ui .tracked-mega-m{letter-spacing:.25em}}@media screen and (min-width:60em){.swagger-ui .tracked-l{letter-spacing:.1em}.swagger-ui .tracked-tight-l{letter-spacing:-.05em}.swagger-ui .tracked-mega-l{letter-spacing:.25em}}.swagger-ui .lh-solid{line-height:1}.swagger-ui .lh-title{line-height:1.25}.swagger-ui .lh-copy{line-height:1.5}@media screen and (min-width:30em){.swagger-ui .lh-solid-ns{line-height:1}.swagger-ui .lh-title-ns{line-height:1.25}.swagger-ui .lh-copy-ns{line-height:1.5}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .lh-solid-m{line-height:1}.swagger-ui .lh-title-m{line-height:1.25}.swagger-ui .lh-copy-m{line-height:1.5}}@media screen and (min-width:60em){.swagger-ui .lh-solid-l{line-height:1}.swagger-ui .lh-title-l{line-height:1.25}.swagger-ui .lh-copy-l{line-height:1.5}}.swagger-ui .link{text-decoration:none}.swagger-ui .link,.swagger-ui .link:active,.swagger-ui .link:focus,.swagger-ui .link:hover,.swagger-ui .link:link,.swagger-ui .link:visited{transition:color .15s ease-in}.swagger-ui .link:focus{outline:1px dotted currentColor}.swagger-ui .list{list-style-type:none}.swagger-ui .mw-100{max-width:100%}.swagger-ui .mw1{max-width:1rem}.swagger-ui .mw2{max-width:2rem}.swagger-ui .mw3{max-width:4rem}.swagger-ui .mw4{max-width:8rem}.swagger-ui .mw5{max-width:16rem}.swagger-ui .mw6{max-width:32rem}.swagger-ui .mw7{max-width:48rem}.swagger-ui .mw8{max-width:64rem}.swagger-ui .mw9{max-width:96rem}.swagger-ui .mw-none{max-width:none}@media screen and (min-width:30em){.swagger-ui .mw-100-ns{max-width:100%}.swagger-ui .mw1-ns{max-width:1rem}.swagger-ui .mw2-ns{max-width:2rem}.swagger-ui .mw3-ns{max-width:4rem}.swagger-ui .mw4-ns{max-width:8rem}.swagger-ui .mw5-ns{max-width:16rem}.swagger-ui .mw6-ns{max-width:32rem}.swagger-ui .mw7-ns{max-width:48rem}.swagger-ui .mw8-ns{max-width:64rem}.swagger-ui .mw9-ns{max-width:96rem}.swagger-ui .mw-none-ns{max-width:none}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .mw-100-m{max-width:100%}.swagger-ui .mw1-m{max-width:1rem}.swagger-ui .mw2-m{max-width:2rem}.swagger-ui .mw3-m{max-width:4rem}.swagger-ui .mw4-m{max-width:8rem}.swagger-ui .mw5-m{max-width:16rem}.swagger-ui .mw6-m{max-width:32rem}.swagger-ui .mw7-m{max-width:48rem}.swagger-ui .mw8-m{max-width:64rem}.swagger-ui .mw9-m{max-width:96rem}.swagger-ui .mw-none-m{max-width:none}}@media screen and (min-width:60em){.swagger-ui .mw-100-l{max-width:100%}.swagger-ui .mw1-l{max-width:1rem}.swagger-ui .mw2-l{max-width:2rem}.swagger-ui .mw3-l{max-width:4rem}.swagger-ui .mw4-l{max-width:8rem}.swagger-ui .mw5-l{max-width:16rem}.swagger-ui .mw6-l{max-width:32rem}.swagger-ui .mw7-l{max-width:48rem}.swagger-ui .mw8-l{max-width:64rem}.swagger-ui .mw9-l{max-width:96rem}.swagger-ui .mw-none-l{max-width:none}}.swagger-ui .w1{width:1rem}.swagger-ui .w2{width:2rem}.swagger-ui .w3{width:4rem}.swagger-ui .w4{width:8rem}.swagger-ui .w5{width:16rem}.swagger-ui .w-10{width:10%}.swagger-ui .w-20{width:20%}.swagger-ui .w-25{width:25%}.swagger-ui .w-30{width:30%}.swagger-ui .w-33{width:33%}.swagger-ui .w-34{width:34%}.swagger-ui .w-40{width:40%}.swagger-ui .w-50{width:50%}.swagger-ui .w-60{width:60%}.swagger-ui .w-70{width:70%}.swagger-ui .w-75{width:75%}.swagger-ui .w-80{width:80%}.swagger-ui .w-90{width:90%}.swagger-ui .w-100{width:100%}.swagger-ui .w-third{width:33.33333%}.swagger-ui .w-two-thirds{width:66.66667%}.swagger-ui .w-auto{width:auto}@media screen and (min-width:30em){.swagger-ui .w1-ns{width:1rem}.swagger-ui .w2-ns{width:2rem}.swagger-ui .w3-ns{width:4rem}.swagger-ui .w4-ns{width:8rem}.swagger-ui .w5-ns{width:16rem}.swagger-ui .w-10-ns{width:10%}.swagger-ui .w-20-ns{width:20%}.swagger-ui .w-25-ns{width:25%}.swagger-ui .w-30-ns{width:30%}.swagger-ui .w-33-ns{width:33%}.swagger-ui .w-34-ns{width:34%}.swagger-ui .w-40-ns{width:40%}.swagger-ui .w-50-ns{width:50%}.swagger-ui .w-60-ns{width:60%}.swagger-ui .w-70-ns{width:70%}.swagger-ui .w-75-ns{width:75%}.swagger-ui .w-80-ns{width:80%}.swagger-ui .w-90-ns{width:90%}.swagger-ui .w-100-ns{width:100%}.swagger-ui .w-third-ns{width:33.33333%}.swagger-ui .w-two-thirds-ns{width:66.66667%}.swagger-ui .w-auto-ns{width:auto}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .w1-m{width:1rem}.swagger-ui .w2-m{width:2rem}.swagger-ui .w3-m{width:4rem}.swagger-ui .w4-m{width:8rem}.swagger-ui .w5-m{width:16rem}.swagger-ui .w-10-m{width:10%}.swagger-ui .w-20-m{width:20%}.swagger-ui .w-25-m{width:25%}.swagger-ui .w-30-m{width:30%}.swagger-ui .w-33-m{width:33%}.swagger-ui .w-34-m{width:34%}.swagger-ui .w-40-m{width:40%}.swagger-ui .w-50-m{width:50%}.swagger-ui .w-60-m{width:60%}.swagger-ui .w-70-m{width:70%}.swagger-ui .w-75-m{width:75%}.swagger-ui .w-80-m{width:80%}.swagger-ui .w-90-m{width:90%}.swagger-ui .w-100-m{width:100%}.swagger-ui .w-third-m{width:33.33333%}.swagger-ui .w-two-thirds-m{width:66.66667%}.swagger-ui .w-auto-m{width:auto}}@media screen and (min-width:60em){.swagger-ui .w1-l{width:1rem}.swagger-ui .w2-l{width:2rem}.swagger-ui .w3-l{width:4rem}.swagger-ui .w4-l{width:8rem}.swagger-ui .w5-l{width:16rem}.swagger-ui .w-10-l{width:10%}.swagger-ui .w-20-l{width:20%}.swagger-ui .w-25-l{width:25%}.swagger-ui .w-30-l{width:30%}.swagger-ui .w-33-l{width:33%}.swagger-ui .w-34-l{width:34%}.swagger-ui .w-40-l{width:40%}.swagger-ui .w-50-l{width:50%}.swagger-ui .w-60-l{width:60%}.swagger-ui .w-70-l{width:70%}.swagger-ui .w-75-l{width:75%}.swagger-ui .w-80-l{width:80%}.swagger-ui .w-90-l{width:90%}.swagger-ui .w-100-l{width:100%}.swagger-ui .w-third-l{width:33.33333%}.swagger-ui .w-two-thirds-l{width:66.66667%}.swagger-ui .w-auto-l{width:auto}}.swagger-ui .overflow-visible{overflow:visible}.swagger-ui .overflow-hidden{overflow:hidden}.swagger-ui .overflow-scroll{overflow:scroll}.swagger-ui .overflow-auto{overflow:auto}.swagger-ui .overflow-x-visible{overflow-x:visible}.swagger-ui .overflow-x-hidden{overflow-x:hidden}.swagger-ui .overflow-x-scroll{overflow-x:scroll}.swagger-ui .overflow-x-auto{overflow-x:auto}.swagger-ui .overflow-y-visible{overflow-y:visible}.swagger-ui .overflow-y-hidden{overflow-y:hidden}.swagger-ui .overflow-y-scroll{overflow-y:scroll}.swagger-ui .overflow-y-auto{overflow-y:auto}@media screen and (min-width:30em){.swagger-ui .overflow-visible-ns{overflow:visible}.swagger-ui .overflow-hidden-ns{overflow:hidden}.swagger-ui .overflow-scroll-ns{overflow:scroll}.swagger-ui .overflow-auto-ns{overflow:auto}.swagger-ui .overflow-x-visible-ns{overflow-x:visible}.swagger-ui .overflow-x-hidden-ns{overflow-x:hidden}.swagger-ui .overflow-x-scroll-ns{overflow-x:scroll}.swagger-ui .overflow-x-auto-ns{overflow-x:auto}.swagger-ui .overflow-y-visible-ns{overflow-y:visible}.swagger-ui .overflow-y-hidden-ns{overflow-y:hidden}.swagger-ui .overflow-y-scroll-ns{overflow-y:scroll}.swagger-ui .overflow-y-auto-ns{overflow-y:auto}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .overflow-visible-m{overflow:visible}.swagger-ui .overflow-hidden-m{overflow:hidden}.swagger-ui .overflow-scroll-m{overflow:scroll}.swagger-ui .overflow-auto-m{overflow:auto}.swagger-ui .overflow-x-visible-m{overflow-x:visible}.swagger-ui .overflow-x-hidden-m{overflow-x:hidden}.swagger-ui .overflow-x-scroll-m{overflow-x:scroll}.swagger-ui .overflow-x-auto-m{overflow-x:auto}.swagger-ui .overflow-y-visible-m{overflow-y:visible}.swagger-ui .overflow-y-hidden-m{overflow-y:hidden}.swagger-ui .overflow-y-scroll-m{overflow-y:scroll}.swagger-ui .overflow-y-auto-m{overflow-y:auto}}@media screen and (min-width:60em){.swagger-ui .overflow-visible-l{overflow:visible}.swagger-ui .overflow-hidden-l{overflow:hidden}.swagger-ui .overflow-scroll-l{overflow:scroll}.swagger-ui .overflow-auto-l{overflow:auto}.swagger-ui .overflow-x-visible-l{overflow-x:visible}.swagger-ui .overflow-x-hidden-l{overflow-x:hidden}.swagger-ui .overflow-x-scroll-l{overflow-x:scroll}.swagger-ui .overflow-x-auto-l{overflow-x:auto}.swagger-ui .overflow-y-visible-l{overflow-y:visible}.swagger-ui .overflow-y-hidden-l{overflow-y:hidden}.swagger-ui .overflow-y-scroll-l{overflow-y:scroll}.swagger-ui .overflow-y-auto-l{overflow-y:auto}}.swagger-ui .static{position:static}.swagger-ui .relative{position:relative}.swagger-ui .absolute{position:absolute}.swagger-ui .fixed{position:fixed}@media screen and (min-width:30em){.swagger-ui .static-ns{position:static}.swagger-ui .relative-ns{position:relative}.swagger-ui .absolute-ns{position:absolute}.swagger-ui .fixed-ns{position:fixed}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .static-m{position:static}.swagger-ui .relative-m{position:relative}.swagger-ui .absolute-m{position:absolute}.swagger-ui .fixed-m{position:fixed}}@media screen and (min-width:60em){.swagger-ui .static-l{position:static}.swagger-ui .relative-l{position:relative}.swagger-ui .absolute-l{position:absolute}.swagger-ui .fixed-l{position:fixed}}.swagger-ui .o-100{opacity:1}.swagger-ui .o-90{opacity:.9}.swagger-ui .o-80{opacity:.8}.swagger-ui .o-70{opacity:.7}.swagger-ui .o-60{opacity:.6}.swagger-ui .o-50{opacity:.5}.swagger-ui .o-40{opacity:.4}.swagger-ui .o-30{opacity:.3}.swagger-ui .o-20{opacity:.2}.swagger-ui .o-10{opacity:.1}.swagger-ui .o-05{opacity:.05}.swagger-ui .o-025{opacity:.025}.swagger-ui .o-0{opacity:0}.swagger-ui .rotate-45{transform:rotate(45deg)}.swagger-ui .rotate-90{transform:rotate(90deg)}.swagger-ui .rotate-135{transform:rotate(135deg)}.swagger-ui .rotate-180{transform:rotate(180deg)}.swagger-ui .rotate-225{transform:rotate(225deg)}.swagger-ui .rotate-270{transform:rotate(270deg)}.swagger-ui .rotate-315{transform:rotate(315deg)}@media screen and (min-width:30em){.swagger-ui .rotate-45-ns{transform:rotate(45deg)}.swagger-ui .rotate-90-ns{transform:rotate(90deg)}.swagger-ui .rotate-135-ns{transform:rotate(135deg)}.swagger-ui .rotate-180-ns{transform:rotate(180deg)}.swagger-ui .rotate-225-ns{transform:rotate(225deg)}.swagger-ui .rotate-270-ns{transform:rotate(270deg)}.swagger-ui .rotate-315-ns{transform:rotate(315deg)}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .rotate-45-m{transform:rotate(45deg)}.swagger-ui .rotate-90-m{transform:rotate(90deg)}.swagger-ui .rotate-135-m{transform:rotate(135deg)}.swagger-ui .rotate-180-m{transform:rotate(180deg)}.swagger-ui .rotate-225-m{transform:rotate(225deg)}.swagger-ui .rotate-270-m{transform:rotate(270deg)}.swagger-ui .rotate-315-m{transform:rotate(315deg)}}@media screen and (min-width:60em){.swagger-ui .rotate-45-l{transform:rotate(45deg)}.swagger-ui .rotate-90-l{transform:rotate(90deg)}.swagger-ui .rotate-135-l{transform:rotate(135deg)}.swagger-ui .rotate-180-l{transform:rotate(180deg)}.swagger-ui .rotate-225-l{transform:rotate(225deg)}.swagger-ui .rotate-270-l{transform:rotate(270deg)}.swagger-ui .rotate-315-l{transform:rotate(315deg)}}.swagger-ui .black-90{color:rgba(0,0,0,.9)}.swagger-ui .black-80{color:rgba(0,0,0,.8)}.swagger-ui .black-70{color:rgba(0,0,0,.7)}.swagger-ui .black-60{color:rgba(0,0,0,.6)}.swagger-ui .black-50{color:rgba(0,0,0,.5)}.swagger-ui .black-40{color:rgba(0,0,0,.4)}.swagger-ui .black-30{color:rgba(0,0,0,.3)}.swagger-ui .black-20{color:rgba(0,0,0,.2)}.swagger-ui .black-10{color:rgba(0,0,0,.1)}.swagger-ui .black-05{color:rgba(0,0,0,.05)}.swagger-ui .white-90{color:hsla(0,0%,100%,.9)}.swagger-ui .white-80{color:hsla(0,0%,100%,.8)}.swagger-ui .white-70{color:hsla(0,0%,100%,.7)}.swagger-ui .white-60{color:hsla(0,0%,100%,.6)}.swagger-ui .white-50{color:hsla(0,0%,100%,.5)}.swagger-ui .white-40{color:hsla(0,0%,100%,.4)}.swagger-ui .white-30{color:hsla(0,0%,100%,.3)}.swagger-ui .white-20{color:hsla(0,0%,100%,.2)}.swagger-ui .white-10{color:hsla(0,0%,100%,.1)}.swagger-ui .black{color:#000}.swagger-ui .near-black{color:#111}.swagger-ui .dark-gray{color:#333}.swagger-ui .mid-gray{color:#555}.swagger-ui .gray{color:#777}.swagger-ui .silver{color:#999}.swagger-ui .light-silver{color:#aaa}.swagger-ui .moon-gray{color:#ccc}.swagger-ui .light-gray{color:#eee}.swagger-ui .near-white{color:#f4f4f4}.swagger-ui .white{color:#fff}.swagger-ui .dark-red{color:#e7040f}.swagger-ui .red{color:#ff4136}.swagger-ui .light-red{color:#ff725c}.swagger-ui .orange{color:#ff6300}.swagger-ui .gold{color:#ffb700}.swagger-ui .yellow{color:gold}.swagger-ui .light-yellow{color:#fbf1a9}.swagger-ui .purple{color:#5e2ca5}.swagger-ui .light-purple{color:#a463f2}.swagger-ui .dark-pink{color:#d5008f}.swagger-ui .hot-pink{color:#ff41b4}.swagger-ui .pink{color:#ff80cc}.swagger-ui .light-pink{color:#ffa3d7}.swagger-ui .dark-green{color:#137752}.swagger-ui .green{color:#19a974}.swagger-ui .light-green{color:#9eebcf}.swagger-ui .navy{color:#001b44}.swagger-ui .dark-blue{color:#00449e}.swagger-ui .blue{color:#357edd}.swagger-ui .light-blue{color:#96ccff}.swagger-ui .lightest-blue{color:#cdecff}.swagger-ui .washed-blue{color:#f6fffe}.swagger-ui .washed-green{color:#e8fdf5}.swagger-ui .washed-yellow{color:#fffceb}.swagger-ui .washed-red{color:#ffdfdf}.swagger-ui .color-inherit{color:inherit}.swagger-ui .bg-black-90{background-color:rgba(0,0,0,.9)}.swagger-ui .bg-black-80{background-color:rgba(0,0,0,.8)}.swagger-ui .bg-black-70{background-color:rgba(0,0,0,.7)}.swagger-ui .bg-black-60{background-color:rgba(0,0,0,.6)}.swagger-ui .bg-black-50{background-color:rgba(0,0,0,.5)}.swagger-ui .bg-black-40{background-color:rgba(0,0,0,.4)}.swagger-ui .bg-black-30{background-color:rgba(0,0,0,.3)}.swagger-ui .bg-black-20{background-color:rgba(0,0,0,.2)}.swagger-ui .bg-black-10{background-color:rgba(0,0,0,.1)}.swagger-ui .bg-black-05{background-color:rgba(0,0,0,.05)}.swagger-ui .bg-white-90{background-color:hsla(0,0%,100%,.9)}.swagger-ui .bg-white-80{background-color:hsla(0,0%,100%,.8)}.swagger-ui .bg-white-70{background-color:hsla(0,0%,100%,.7)}.swagger-ui .bg-white-60{background-color:hsla(0,0%,100%,.6)}.swagger-ui .bg-white-50{background-color:hsla(0,0%,100%,.5)}.swagger-ui .bg-white-40{background-color:hsla(0,0%,100%,.4)}.swagger-ui .bg-white-30{background-color:hsla(0,0%,100%,.3)}.swagger-ui .bg-white-20{background-color:hsla(0,0%,100%,.2)}.swagger-ui .bg-white-10{background-color:hsla(0,0%,100%,.1)}.swagger-ui .bg-black{background-color:#000}.swagger-ui .bg-near-black{background-color:#111}.swagger-ui .bg-dark-gray{background-color:#333}.swagger-ui .bg-mid-gray{background-color:#555}.swagger-ui .bg-gray{background-color:#777}.swagger-ui .bg-silver{background-color:#999}.swagger-ui .bg-light-silver{background-color:#aaa}.swagger-ui .bg-moon-gray{background-color:#ccc}.swagger-ui .bg-light-gray{background-color:#eee}.swagger-ui .bg-near-white{background-color:#f4f4f4}.swagger-ui .bg-white{background-color:#fff}.swagger-ui .bg-transparent{background-color:transparent}.swagger-ui .bg-dark-red{background-color:#e7040f}.swagger-ui .bg-red{background-color:#ff4136}.swagger-ui .bg-light-red{background-color:#ff725c}.swagger-ui .bg-orange{background-color:#ff6300}.swagger-ui .bg-gold{background-color:#ffb700}.swagger-ui .bg-yellow{background-color:gold}.swagger-ui .bg-light-yellow{background-color:#fbf1a9}.swagger-ui .bg-purple{background-color:#5e2ca5}.swagger-ui .bg-light-purple{background-color:#a463f2}.swagger-ui .bg-dark-pink{background-color:#d5008f}.swagger-ui .bg-hot-pink{background-color:#ff41b4}.swagger-ui .bg-pink{background-color:#ff80cc}.swagger-ui .bg-light-pink{background-color:#ffa3d7}.swagger-ui .bg-dark-green{background-color:#137752}.swagger-ui .bg-green{background-color:#19a974}.swagger-ui .bg-light-green{background-color:#9eebcf}.swagger-ui .bg-navy{background-color:#001b44}.swagger-ui .bg-dark-blue{background-color:#00449e}.swagger-ui .bg-blue{background-color:#357edd}.swagger-ui .bg-light-blue{background-color:#96ccff}.swagger-ui .bg-lightest-blue{background-color:#cdecff}.swagger-ui .bg-washed-blue{background-color:#f6fffe}.swagger-ui .bg-washed-green{background-color:#e8fdf5}.swagger-ui .bg-washed-yellow{background-color:#fffceb}.swagger-ui .bg-washed-red{background-color:#ffdfdf}.swagger-ui .bg-inherit{background-color:inherit}.swagger-ui .hover-black:focus,.swagger-ui .hover-black:hover{color:#000}.swagger-ui .hover-near-black:focus,.swagger-ui .hover-near-black:hover{color:#111}.swagger-ui .hover-dark-gray:focus,.swagger-ui .hover-dark-gray:hover{color:#333}.swagger-ui .hover-mid-gray:focus,.swagger-ui .hover-mid-gray:hover{color:#555}.swagger-ui .hover-gray:focus,.swagger-ui .hover-gray:hover{color:#777}.swagger-ui .hover-silver:focus,.swagger-ui .hover-silver:hover{color:#999}.swagger-ui .hover-light-silver:focus,.swagger-ui .hover-light-silver:hover{color:#aaa}.swagger-ui .hover-moon-gray:focus,.swagger-ui .hover-moon-gray:hover{color:#ccc}.swagger-ui .hover-light-gray:focus,.swagger-ui .hover-light-gray:hover{color:#eee}.swagger-ui .hover-near-white:focus,.swagger-ui .hover-near-white:hover{color:#f4f4f4}.swagger-ui .hover-white:focus,.swagger-ui .hover-white:hover{color:#fff}.swagger-ui .hover-black-90:focus,.swagger-ui .hover-black-90:hover{color:rgba(0,0,0,.9)}.swagger-ui .hover-black-80:focus,.swagger-ui .hover-black-80:hover{color:rgba(0,0,0,.8)}.swagger-ui .hover-black-70:focus,.swagger-ui .hover-black-70:hover{color:rgba(0,0,0,.7)}.swagger-ui .hover-black-60:focus,.swagger-ui .hover-black-60:hover{color:rgba(0,0,0,.6)}.swagger-ui .hover-black-50:focus,.swagger-ui .hover-black-50:hover{color:rgba(0,0,0,.5)}.swagger-ui .hover-black-40:focus,.swagger-ui .hover-black-40:hover{color:rgba(0,0,0,.4)}.swagger-ui .hover-black-30:focus,.swagger-ui .hover-black-30:hover{color:rgba(0,0,0,.3)}.swagger-ui .hover-black-20:focus,.swagger-ui .hover-black-20:hover{color:rgba(0,0,0,.2)}.swagger-ui .hover-black-10:focus,.swagger-ui .hover-black-10:hover{color:rgba(0,0,0,.1)}.swagger-ui .hover-white-90:focus,.swagger-ui .hover-white-90:hover{color:hsla(0,0%,100%,.9)}.swagger-ui .hover-white-80:focus,.swagger-ui .hover-white-80:hover{color:hsla(0,0%,100%,.8)}.swagger-ui .hover-white-70:focus,.swagger-ui .hover-white-70:hover{color:hsla(0,0%,100%,.7)}.swagger-ui .hover-white-60:focus,.swagger-ui .hover-white-60:hover{color:hsla(0,0%,100%,.6)}.swagger-ui .hover-white-50:focus,.swagger-ui .hover-white-50:hover{color:hsla(0,0%,100%,.5)}.swagger-ui .hover-white-40:focus,.swagger-ui .hover-white-40:hover{color:hsla(0,0%,100%,.4)}.swagger-ui .hover-white-30:focus,.swagger-ui .hover-white-30:hover{color:hsla(0,0%,100%,.3)}.swagger-ui .hover-white-20:focus,.swagger-ui .hover-white-20:hover{color:hsla(0,0%,100%,.2)}.swagger-ui .hover-white-10:focus,.swagger-ui .hover-white-10:hover{color:hsla(0,0%,100%,.1)}.swagger-ui .hover-inherit:focus,.swagger-ui .hover-inherit:hover{color:inherit}.swagger-ui .hover-bg-black:focus,.swagger-ui .hover-bg-black:hover{background-color:#000}.swagger-ui .hover-bg-near-black:focus,.swagger-ui .hover-bg-near-black:hover{background-color:#111}.swagger-ui .hover-bg-dark-gray:focus,.swagger-ui .hover-bg-dark-gray:hover{background-color:#333}.swagger-ui .hover-bg-mid-gray:focus,.swagger-ui .hover-bg-mid-gray:hover{background-color:#555}.swagger-ui .hover-bg-gray:focus,.swagger-ui .hover-bg-gray:hover{background-color:#777}.swagger-ui .hover-bg-silver:focus,.swagger-ui .hover-bg-silver:hover{background-color:#999}.swagger-ui .hover-bg-light-silver:focus,.swagger-ui .hover-bg-light-silver:hover{background-color:#aaa}.swagger-ui .hover-bg-moon-gray:focus,.swagger-ui .hover-bg-moon-gray:hover{background-color:#ccc}.swagger-ui .hover-bg-light-gray:focus,.swagger-ui .hover-bg-light-gray:hover{background-color:#eee}.swagger-ui .hover-bg-near-white:focus,.swagger-ui .hover-bg-near-white:hover{background-color:#f4f4f4}.swagger-ui .hover-bg-white:focus,.swagger-ui .hover-bg-white:hover{background-color:#fff}.swagger-ui .hover-bg-transparent:focus,.swagger-ui .hover-bg-transparent:hover{background-color:transparent}.swagger-ui .hover-bg-black-90:focus,.swagger-ui .hover-bg-black-90:hover{background-color:rgba(0,0,0,.9)}.swagger-ui .hover-bg-black-80:focus,.swagger-ui .hover-bg-black-80:hover{background-color:rgba(0,0,0,.8)}.swagger-ui .hover-bg-black-70:focus,.swagger-ui .hover-bg-black-70:hover{background-color:rgba(0,0,0,.7)}.swagger-ui .hover-bg-black-60:focus,.swagger-ui .hover-bg-black-60:hover{background-color:rgba(0,0,0,.6)}.swagger-ui .hover-bg-black-50:focus,.swagger-ui .hover-bg-black-50:hover{background-color:rgba(0,0,0,.5)}.swagger-ui .hover-bg-black-40:focus,.swagger-ui .hover-bg-black-40:hover{background-color:rgba(0,0,0,.4)}.swagger-ui .hover-bg-black-30:focus,.swagger-ui .hover-bg-black-30:hover{background-color:rgba(0,0,0,.3)}.swagger-ui .hover-bg-black-20:focus,.swagger-ui .hover-bg-black-20:hover{background-color:rgba(0,0,0,.2)}.swagger-ui .hover-bg-black-10:focus,.swagger-ui .hover-bg-black-10:hover{background-color:rgba(0,0,0,.1)}.swagger-ui .hover-bg-white-90:focus,.swagger-ui .hover-bg-white-90:hover{background-color:hsla(0,0%,100%,.9)}.swagger-ui .hover-bg-white-80:focus,.swagger-ui .hover-bg-white-80:hover{background-color:hsla(0,0%,100%,.8)}.swagger-ui .hover-bg-white-70:focus,.swagger-ui .hover-bg-white-70:hover{background-color:hsla(0,0%,100%,.7)}.swagger-ui .hover-bg-white-60:focus,.swagger-ui .hover-bg-white-60:hover{background-color:hsla(0,0%,100%,.6)}.swagger-ui .hover-bg-white-50:focus,.swagger-ui .hover-bg-white-50:hover{background-color:hsla(0,0%,100%,.5)}.swagger-ui .hover-bg-white-40:focus,.swagger-ui .hover-bg-white-40:hover{background-color:hsla(0,0%,100%,.4)}.swagger-ui .hover-bg-white-30:focus,.swagger-ui .hover-bg-white-30:hover{background-color:hsla(0,0%,100%,.3)}.swagger-ui .hover-bg-white-20:focus,.swagger-ui .hover-bg-white-20:hover{background-color:hsla(0,0%,100%,.2)}.swagger-ui .hover-bg-white-10:focus,.swagger-ui .hover-bg-white-10:hover{background-color:hsla(0,0%,100%,.1)}.swagger-ui .hover-dark-red:focus,.swagger-ui .hover-dark-red:hover{color:#e7040f}.swagger-ui .hover-red:focus,.swagger-ui .hover-red:hover{color:#ff4136}.swagger-ui .hover-light-red:focus,.swagger-ui .hover-light-red:hover{color:#ff725c}.swagger-ui .hover-orange:focus,.swagger-ui .hover-orange:hover{color:#ff6300}.swagger-ui .hover-gold:focus,.swagger-ui .hover-gold:hover{color:#ffb700}.swagger-ui .hover-yellow:focus,.swagger-ui .hover-yellow:hover{color:gold}.swagger-ui .hover-light-yellow:focus,.swagger-ui .hover-light-yellow:hover{color:#fbf1a9}.swagger-ui .hover-purple:focus,.swagger-ui .hover-purple:hover{color:#5e2ca5}.swagger-ui .hover-light-purple:focus,.swagger-ui .hover-light-purple:hover{color:#a463f2}.swagger-ui .hover-dark-pink:focus,.swagger-ui .hover-dark-pink:hover{color:#d5008f}.swagger-ui .hover-hot-pink:focus,.swagger-ui .hover-hot-pink:hover{color:#ff41b4}.swagger-ui .hover-pink:focus,.swagger-ui .hover-pink:hover{color:#ff80cc}.swagger-ui .hover-light-pink:focus,.swagger-ui .hover-light-pink:hover{color:#ffa3d7}.swagger-ui .hover-dark-green:focus,.swagger-ui .hover-dark-green:hover{color:#137752}.swagger-ui .hover-green:focus,.swagger-ui .hover-green:hover{color:#19a974}.swagger-ui .hover-light-green:focus,.swagger-ui .hover-light-green:hover{color:#9eebcf}.swagger-ui .hover-navy:focus,.swagger-ui .hover-navy:hover{color:#001b44}.swagger-ui .hover-dark-blue:focus,.swagger-ui .hover-dark-blue:hover{color:#00449e}.swagger-ui .hover-blue:focus,.swagger-ui .hover-blue:hover{color:#357edd}.swagger-ui .hover-light-blue:focus,.swagger-ui .hover-light-blue:hover{color:#96ccff}.swagger-ui .hover-lightest-blue:focus,.swagger-ui .hover-lightest-blue:hover{color:#cdecff}.swagger-ui .hover-washed-blue:focus,.swagger-ui .hover-washed-blue:hover{color:#f6fffe}.swagger-ui .hover-washed-green:focus,.swagger-ui .hover-washed-green:hover{color:#e8fdf5}.swagger-ui .hover-washed-yellow:focus,.swagger-ui .hover-washed-yellow:hover{color:#fffceb}.swagger-ui .hover-washed-red:focus,.swagger-ui .hover-washed-red:hover{color:#ffdfdf}.swagger-ui .hover-bg-dark-red:focus,.swagger-ui .hover-bg-dark-red:hover{background-color:#e7040f}.swagger-ui .hover-bg-red:focus,.swagger-ui .hover-bg-red:hover{background-color:#ff4136}.swagger-ui .hover-bg-light-red:focus,.swagger-ui .hover-bg-light-red:hover{background-color:#ff725c}.swagger-ui .hover-bg-orange:focus,.swagger-ui .hover-bg-orange:hover{background-color:#ff6300}.swagger-ui .hover-bg-gold:focus,.swagger-ui .hover-bg-gold:hover{background-color:#ffb700}.swagger-ui .hover-bg-yellow:focus,.swagger-ui .hover-bg-yellow:hover{background-color:gold}.swagger-ui .hover-bg-light-yellow:focus,.swagger-ui .hover-bg-light-yellow:hover{background-color:#fbf1a9}.swagger-ui .hover-bg-purple:focus,.swagger-ui .hover-bg-purple:hover{background-color:#5e2ca5}.swagger-ui .hover-bg-light-purple:focus,.swagger-ui .hover-bg-light-purple:hover{background-color:#a463f2}.swagger-ui .hover-bg-dark-pink:focus,.swagger-ui .hover-bg-dark-pink:hover{background-color:#d5008f}.swagger-ui .hover-bg-hot-pink:focus,.swagger-ui .hover-bg-hot-pink:hover{background-color:#ff41b4}.swagger-ui .hover-bg-pink:focus,.swagger-ui .hover-bg-pink:hover{background-color:#ff80cc}.swagger-ui .hover-bg-light-pink:focus,.swagger-ui .hover-bg-light-pink:hover{background-color:#ffa3d7}.swagger-ui .hover-bg-dark-green:focus,.swagger-ui .hover-bg-dark-green:hover{background-color:#137752}.swagger-ui .hover-bg-green:focus,.swagger-ui .hover-bg-green:hover{background-color:#19a974}.swagger-ui .hover-bg-light-green:focus,.swagger-ui .hover-bg-light-green:hover{background-color:#9eebcf}.swagger-ui .hover-bg-navy:focus,.swagger-ui .hover-bg-navy:hover{background-color:#001b44}.swagger-ui .hover-bg-dark-blue:focus,.swagger-ui .hover-bg-dark-blue:hover{background-color:#00449e}.swagger-ui .hover-bg-blue:focus,.swagger-ui .hover-bg-blue:hover{background-color:#357edd}.swagger-ui .hover-bg-light-blue:focus,.swagger-ui .hover-bg-light-blue:hover{background-color:#96ccff}.swagger-ui .hover-bg-lightest-blue:focus,.swagger-ui .hover-bg-lightest-blue:hover{background-color:#cdecff}.swagger-ui .hover-bg-washed-blue:focus,.swagger-ui .hover-bg-washed-blue:hover{background-color:#f6fffe}.swagger-ui .hover-bg-washed-green:focus,.swagger-ui .hover-bg-washed-green:hover{background-color:#e8fdf5}.swagger-ui .hover-bg-washed-yellow:focus,.swagger-ui .hover-bg-washed-yellow:hover{background-color:#fffceb}.swagger-ui .hover-bg-washed-red:focus,.swagger-ui .hover-bg-washed-red:hover{background-color:#ffdfdf}.swagger-ui .hover-bg-inherit:focus,.swagger-ui .hover-bg-inherit:hover{background-color:inherit}.swagger-ui .pa0{padding:0}.swagger-ui .pa1{padding:.25rem}.swagger-ui .pa2{padding:.5rem}.swagger-ui .pa3{padding:1rem}.swagger-ui .pa4{padding:2rem}.swagger-ui .pa5{padding:4rem}.swagger-ui .pa6{padding:8rem}.swagger-ui .pa7{padding:16rem}.swagger-ui .pl0{padding-left:0}.swagger-ui .pl1{padding-left:.25rem}.swagger-ui .pl2{padding-left:.5rem}.swagger-ui .pl3{padding-left:1rem}.swagger-ui .pl4{padding-left:2rem}.swagger-ui .pl5{padding-left:4rem}.swagger-ui .pl6{padding-left:8rem}.swagger-ui .pl7{padding-left:16rem}.swagger-ui .pr0{padding-right:0}.swagger-ui .pr1{padding-right:.25rem}.swagger-ui .pr2{padding-right:.5rem}.swagger-ui .pr3{padding-right:1rem}.swagger-ui .pr4{padding-right:2rem}.swagger-ui .pr5{padding-right:4rem}.swagger-ui .pr6{padding-right:8rem}.swagger-ui .pr7{padding-right:16rem}.swagger-ui .pb0{padding-bottom:0}.swagger-ui .pb1{padding-bottom:.25rem}.swagger-ui .pb2{padding-bottom:.5rem}.swagger-ui .pb3{padding-bottom:1rem}.swagger-ui .pb4{padding-bottom:2rem}.swagger-ui .pb5{padding-bottom:4rem}.swagger-ui .pb6{padding-bottom:8rem}.swagger-ui .pb7{padding-bottom:16rem}.swagger-ui .pt0{padding-top:0}.swagger-ui .pt1{padding-top:.25rem}.swagger-ui .pt2{padding-top:.5rem}.swagger-ui .pt3{padding-top:1rem}.swagger-ui .pt4{padding-top:2rem}.swagger-ui .pt5{padding-top:4rem}.swagger-ui .pt6{padding-top:8rem}.swagger-ui .pt7{padding-top:16rem}.swagger-ui .pv0{padding-bottom:0;padding-top:0}.swagger-ui .pv1{padding-bottom:.25rem;padding-top:.25rem}.swagger-ui .pv2{padding-bottom:.5rem;padding-top:.5rem}.swagger-ui .pv3{padding-bottom:1rem;padding-top:1rem}.swagger-ui .pv4{padding-bottom:2rem;padding-top:2rem}.swagger-ui .pv5{padding-bottom:4rem;padding-top:4rem}.swagger-ui .pv6{padding-bottom:8rem;padding-top:8rem}.swagger-ui .pv7{padding-bottom:16rem;padding-top:16rem}.swagger-ui .ph0{padding-left:0;padding-right:0}.swagger-ui .ph1{padding-left:.25rem;padding-right:.25rem}.swagger-ui .ph2{padding-left:.5rem;padding-right:.5rem}.swagger-ui .ph3{padding-left:1rem;padding-right:1rem}.swagger-ui .ph4{padding-left:2rem;padding-right:2rem}.swagger-ui .ph5{padding-left:4rem;padding-right:4rem}.swagger-ui .ph6{padding-left:8rem;padding-right:8rem}.swagger-ui .ph7{padding-left:16rem;padding-right:16rem}.swagger-ui .ma0{margin:0}.swagger-ui .ma1{margin:.25rem}.swagger-ui .ma2{margin:.5rem}.swagger-ui .ma3{margin:1rem}.swagger-ui .ma4{margin:2rem}.swagger-ui .ma5{margin:4rem}.swagger-ui .ma6{margin:8rem}.swagger-ui .ma7{margin:16rem}.swagger-ui .ml0{margin-left:0}.swagger-ui .ml1{margin-left:.25rem}.swagger-ui .ml2{margin-left:.5rem}.swagger-ui .ml3{margin-left:1rem}.swagger-ui .ml4{margin-left:2rem}.swagger-ui .ml5{margin-left:4rem}.swagger-ui .ml6{margin-left:8rem}.swagger-ui .ml7{margin-left:16rem}.swagger-ui .mr0{margin-right:0}.swagger-ui .mr1{margin-right:.25rem}.swagger-ui .mr2{margin-right:.5rem}.swagger-ui .mr3{margin-right:1rem}.swagger-ui .mr4{margin-right:2rem}.swagger-ui .mr5{margin-right:4rem}.swagger-ui .mr6{margin-right:8rem}.swagger-ui .mr7{margin-right:16rem}.swagger-ui .mb0{margin-bottom:0}.swagger-ui .mb1{margin-bottom:.25rem}.swagger-ui .mb2{margin-bottom:.5rem}.swagger-ui .mb3{margin-bottom:1rem}.swagger-ui .mb4{margin-bottom:2rem}.swagger-ui .mb5{margin-bottom:4rem}.swagger-ui .mb6{margin-bottom:8rem}.swagger-ui .mb7{margin-bottom:16rem}.swagger-ui .mt0{margin-top:0}.swagger-ui .mt1{margin-top:.25rem}.swagger-ui .mt2{margin-top:.5rem}.swagger-ui .mt3{margin-top:1rem}.swagger-ui .mt4{margin-top:2rem}.swagger-ui .mt5{margin-top:4rem}.swagger-ui .mt6{margin-top:8rem}.swagger-ui .mt7{margin-top:16rem}.swagger-ui .mv0{margin-bottom:0;margin-top:0}.swagger-ui .mv1{margin-bottom:.25rem;margin-top:.25rem}.swagger-ui .mv2{margin-bottom:.5rem;margin-top:.5rem}.swagger-ui .mv3{margin-bottom:1rem;margin-top:1rem}.swagger-ui .mv4{margin-bottom:2rem;margin-top:2rem}.swagger-ui .mv5{margin-bottom:4rem;margin-top:4rem}.swagger-ui .mv6{margin-bottom:8rem;margin-top:8rem}.swagger-ui .mv7{margin-bottom:16rem;margin-top:16rem}.swagger-ui .mh0{margin-left:0;margin-right:0}.swagger-ui .mh1{margin-left:.25rem;margin-right:.25rem}.swagger-ui .mh2{margin-left:.5rem;margin-right:.5rem}.swagger-ui .mh3{margin-left:1rem;margin-right:1rem}.swagger-ui .mh4{margin-left:2rem;margin-right:2rem}.swagger-ui .mh5{margin-left:4rem;margin-right:4rem}.swagger-ui .mh6{margin-left:8rem;margin-right:8rem}.swagger-ui .mh7{margin-left:16rem;margin-right:16rem}@media screen and (min-width:30em){.swagger-ui .pa0-ns{padding:0}.swagger-ui .pa1-ns{padding:.25rem}.swagger-ui .pa2-ns{padding:.5rem}.swagger-ui .pa3-ns{padding:1rem}.swagger-ui .pa4-ns{padding:2rem}.swagger-ui .pa5-ns{padding:4rem}.swagger-ui .pa6-ns{padding:8rem}.swagger-ui .pa7-ns{padding:16rem}.swagger-ui .pl0-ns{padding-left:0}.swagger-ui .pl1-ns{padding-left:.25rem}.swagger-ui .pl2-ns{padding-left:.5rem}.swagger-ui .pl3-ns{padding-left:1rem}.swagger-ui .pl4-ns{padding-left:2rem}.swagger-ui .pl5-ns{padding-left:4rem}.swagger-ui .pl6-ns{padding-left:8rem}.swagger-ui .pl7-ns{padding-left:16rem}.swagger-ui .pr0-ns{padding-right:0}.swagger-ui .pr1-ns{padding-right:.25rem}.swagger-ui .pr2-ns{padding-right:.5rem}.swagger-ui .pr3-ns{padding-right:1rem}.swagger-ui .pr4-ns{padding-right:2rem}.swagger-ui .pr5-ns{padding-right:4rem}.swagger-ui .pr6-ns{padding-right:8rem}.swagger-ui .pr7-ns{padding-right:16rem}.swagger-ui .pb0-ns{padding-bottom:0}.swagger-ui .pb1-ns{padding-bottom:.25rem}.swagger-ui .pb2-ns{padding-bottom:.5rem}.swagger-ui .pb3-ns{padding-bottom:1rem}.swagger-ui .pb4-ns{padding-bottom:2rem}.swagger-ui .pb5-ns{padding-bottom:4rem}.swagger-ui .pb6-ns{padding-bottom:8rem}.swagger-ui .pb7-ns{padding-bottom:16rem}.swagger-ui .pt0-ns{padding-top:0}.swagger-ui .pt1-ns{padding-top:.25rem}.swagger-ui .pt2-ns{padding-top:.5rem}.swagger-ui .pt3-ns{padding-top:1rem}.swagger-ui .pt4-ns{padding-top:2rem}.swagger-ui .pt5-ns{padding-top:4rem}.swagger-ui .pt6-ns{padding-top:8rem}.swagger-ui .pt7-ns{padding-top:16rem}.swagger-ui .pv0-ns{padding-bottom:0;padding-top:0}.swagger-ui .pv1-ns{padding-bottom:.25rem;padding-top:.25rem}.swagger-ui .pv2-ns{padding-bottom:.5rem;padding-top:.5rem}.swagger-ui .pv3-ns{padding-bottom:1rem;padding-top:1rem}.swagger-ui .pv4-ns{padding-bottom:2rem;padding-top:2rem}.swagger-ui .pv5-ns{padding-bottom:4rem;padding-top:4rem}.swagger-ui .pv6-ns{padding-bottom:8rem;padding-top:8rem}.swagger-ui .pv7-ns{padding-bottom:16rem;padding-top:16rem}.swagger-ui .ph0-ns{padding-left:0;padding-right:0}.swagger-ui .ph1-ns{padding-left:.25rem;padding-right:.25rem}.swagger-ui .ph2-ns{padding-left:.5rem;padding-right:.5rem}.swagger-ui .ph3-ns{padding-left:1rem;padding-right:1rem}.swagger-ui .ph4-ns{padding-left:2rem;padding-right:2rem}.swagger-ui .ph5-ns{padding-left:4rem;padding-right:4rem}.swagger-ui .ph6-ns{padding-left:8rem;padding-right:8rem}.swagger-ui .ph7-ns{padding-left:16rem;padding-right:16rem}.swagger-ui .ma0-ns{margin:0}.swagger-ui .ma1-ns{margin:.25rem}.swagger-ui .ma2-ns{margin:.5rem}.swagger-ui .ma3-ns{margin:1rem}.swagger-ui .ma4-ns{margin:2rem}.swagger-ui .ma5-ns{margin:4rem}.swagger-ui .ma6-ns{margin:8rem}.swagger-ui .ma7-ns{margin:16rem}.swagger-ui .ml0-ns{margin-left:0}.swagger-ui .ml1-ns{margin-left:.25rem}.swagger-ui .ml2-ns{margin-left:.5rem}.swagger-ui .ml3-ns{margin-left:1rem}.swagger-ui .ml4-ns{margin-left:2rem}.swagger-ui .ml5-ns{margin-left:4rem}.swagger-ui .ml6-ns{margin-left:8rem}.swagger-ui .ml7-ns{margin-left:16rem}.swagger-ui .mr0-ns{margin-right:0}.swagger-ui .mr1-ns{margin-right:.25rem}.swagger-ui .mr2-ns{margin-right:.5rem}.swagger-ui .mr3-ns{margin-right:1rem}.swagger-ui .mr4-ns{margin-right:2rem}.swagger-ui .mr5-ns{margin-right:4rem}.swagger-ui .mr6-ns{margin-right:8rem}.swagger-ui .mr7-ns{margin-right:16rem}.swagger-ui .mb0-ns{margin-bottom:0}.swagger-ui .mb1-ns{margin-bottom:.25rem}.swagger-ui .mb2-ns{margin-bottom:.5rem}.swagger-ui .mb3-ns{margin-bottom:1rem}.swagger-ui .mb4-ns{margin-bottom:2rem}.swagger-ui .mb5-ns{margin-bottom:4rem}.swagger-ui .mb6-ns{margin-bottom:8rem}.swagger-ui .mb7-ns{margin-bottom:16rem}.swagger-ui .mt0-ns{margin-top:0}.swagger-ui .mt1-ns{margin-top:.25rem}.swagger-ui .mt2-ns{margin-top:.5rem}.swagger-ui .mt3-ns{margin-top:1rem}.swagger-ui .mt4-ns{margin-top:2rem}.swagger-ui .mt5-ns{margin-top:4rem}.swagger-ui .mt6-ns{margin-top:8rem}.swagger-ui .mt7-ns{margin-top:16rem}.swagger-ui .mv0-ns{margin-bottom:0;margin-top:0}.swagger-ui .mv1-ns{margin-bottom:.25rem;margin-top:.25rem}.swagger-ui .mv2-ns{margin-bottom:.5rem;margin-top:.5rem}.swagger-ui .mv3-ns{margin-bottom:1rem;margin-top:1rem}.swagger-ui .mv4-ns{margin-bottom:2rem;margin-top:2rem}.swagger-ui .mv5-ns{margin-bottom:4rem;margin-top:4rem}.swagger-ui .mv6-ns{margin-bottom:8rem;margin-top:8rem}.swagger-ui .mv7-ns{margin-bottom:16rem;margin-top:16rem}.swagger-ui .mh0-ns{margin-left:0;margin-right:0}.swagger-ui .mh1-ns{margin-left:.25rem;margin-right:.25rem}.swagger-ui .mh2-ns{margin-left:.5rem;margin-right:.5rem}.swagger-ui .mh3-ns{margin-left:1rem;margin-right:1rem}.swagger-ui .mh4-ns{margin-left:2rem;margin-right:2rem}.swagger-ui .mh5-ns{margin-left:4rem;margin-right:4rem}.swagger-ui .mh6-ns{margin-left:8rem;margin-right:8rem}.swagger-ui .mh7-ns{margin-left:16rem;margin-right:16rem}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .pa0-m{padding:0}.swagger-ui .pa1-m{padding:.25rem}.swagger-ui .pa2-m{padding:.5rem}.swagger-ui .pa3-m{padding:1rem}.swagger-ui .pa4-m{padding:2rem}.swagger-ui .pa5-m{padding:4rem}.swagger-ui .pa6-m{padding:8rem}.swagger-ui .pa7-m{padding:16rem}.swagger-ui .pl0-m{padding-left:0}.swagger-ui .pl1-m{padding-left:.25rem}.swagger-ui .pl2-m{padding-left:.5rem}.swagger-ui .pl3-m{padding-left:1rem}.swagger-ui .pl4-m{padding-left:2rem}.swagger-ui .pl5-m{padding-left:4rem}.swagger-ui .pl6-m{padding-left:8rem}.swagger-ui .pl7-m{padding-left:16rem}.swagger-ui .pr0-m{padding-right:0}.swagger-ui .pr1-m{padding-right:.25rem}.swagger-ui .pr2-m{padding-right:.5rem}.swagger-ui .pr3-m{padding-right:1rem}.swagger-ui .pr4-m{padding-right:2rem}.swagger-ui .pr5-m{padding-right:4rem}.swagger-ui .pr6-m{padding-right:8rem}.swagger-ui .pr7-m{padding-right:16rem}.swagger-ui .pb0-m{padding-bottom:0}.swagger-ui .pb1-m{padding-bottom:.25rem}.swagger-ui .pb2-m{padding-bottom:.5rem}.swagger-ui .pb3-m{padding-bottom:1rem}.swagger-ui .pb4-m{padding-bottom:2rem}.swagger-ui .pb5-m{padding-bottom:4rem}.swagger-ui .pb6-m{padding-bottom:8rem}.swagger-ui .pb7-m{padding-bottom:16rem}.swagger-ui .pt0-m{padding-top:0}.swagger-ui .pt1-m{padding-top:.25rem}.swagger-ui .pt2-m{padding-top:.5rem}.swagger-ui .pt3-m{padding-top:1rem}.swagger-ui .pt4-m{padding-top:2rem}.swagger-ui .pt5-m{padding-top:4rem}.swagger-ui .pt6-m{padding-top:8rem}.swagger-ui .pt7-m{padding-top:16rem}.swagger-ui .pv0-m{padding-bottom:0;padding-top:0}.swagger-ui .pv1-m{padding-bottom:.25rem;padding-top:.25rem}.swagger-ui .pv2-m{padding-bottom:.5rem;padding-top:.5rem}.swagger-ui .pv3-m{padding-bottom:1rem;padding-top:1rem}.swagger-ui .pv4-m{padding-bottom:2rem;padding-top:2rem}.swagger-ui .pv5-m{padding-bottom:4rem;padding-top:4rem}.swagger-ui .pv6-m{padding-bottom:8rem;padding-top:8rem}.swagger-ui .pv7-m{padding-bottom:16rem;padding-top:16rem}.swagger-ui .ph0-m{padding-left:0;padding-right:0}.swagger-ui .ph1-m{padding-left:.25rem;padding-right:.25rem}.swagger-ui .ph2-m{padding-left:.5rem;padding-right:.5rem}.swagger-ui .ph3-m{padding-left:1rem;padding-right:1rem}.swagger-ui .ph4-m{padding-left:2rem;padding-right:2rem}.swagger-ui .ph5-m{padding-left:4rem;padding-right:4rem}.swagger-ui .ph6-m{padding-left:8rem;padding-right:8rem}.swagger-ui .ph7-m{padding-left:16rem;padding-right:16rem}.swagger-ui .ma0-m{margin:0}.swagger-ui .ma1-m{margin:.25rem}.swagger-ui .ma2-m{margin:.5rem}.swagger-ui .ma3-m{margin:1rem}.swagger-ui .ma4-m{margin:2rem}.swagger-ui .ma5-m{margin:4rem}.swagger-ui .ma6-m{margin:8rem}.swagger-ui .ma7-m{margin:16rem}.swagger-ui .ml0-m{margin-left:0}.swagger-ui .ml1-m{margin-left:.25rem}.swagger-ui .ml2-m{margin-left:.5rem}.swagger-ui .ml3-m{margin-left:1rem}.swagger-ui .ml4-m{margin-left:2rem}.swagger-ui .ml5-m{margin-left:4rem}.swagger-ui .ml6-m{margin-left:8rem}.swagger-ui .ml7-m{margin-left:16rem}.swagger-ui .mr0-m{margin-right:0}.swagger-ui .mr1-m{margin-right:.25rem}.swagger-ui .mr2-m{margin-right:.5rem}.swagger-ui .mr3-m{margin-right:1rem}.swagger-ui .mr4-m{margin-right:2rem}.swagger-ui .mr5-m{margin-right:4rem}.swagger-ui .mr6-m{margin-right:8rem}.swagger-ui .mr7-m{margin-right:16rem}.swagger-ui .mb0-m{margin-bottom:0}.swagger-ui .mb1-m{margin-bottom:.25rem}.swagger-ui .mb2-m{margin-bottom:.5rem}.swagger-ui .mb3-m{margin-bottom:1rem}.swagger-ui .mb4-m{margin-bottom:2rem}.swagger-ui .mb5-m{margin-bottom:4rem}.swagger-ui .mb6-m{margin-bottom:8rem}.swagger-ui .mb7-m{margin-bottom:16rem}.swagger-ui .mt0-m{margin-top:0}.swagger-ui .mt1-m{margin-top:.25rem}.swagger-ui .mt2-m{margin-top:.5rem}.swagger-ui .mt3-m{margin-top:1rem}.swagger-ui .mt4-m{margin-top:2rem}.swagger-ui .mt5-m{margin-top:4rem}.swagger-ui .mt6-m{margin-top:8rem}.swagger-ui .mt7-m{margin-top:16rem}.swagger-ui .mv0-m{margin-bottom:0;margin-top:0}.swagger-ui .mv1-m{margin-bottom:.25rem;margin-top:.25rem}.swagger-ui .mv2-m{margin-bottom:.5rem;margin-top:.5rem}.swagger-ui .mv3-m{margin-bottom:1rem;margin-top:1rem}.swagger-ui .mv4-m{margin-bottom:2rem;margin-top:2rem}.swagger-ui .mv5-m{margin-bottom:4rem;margin-top:4rem}.swagger-ui .mv6-m{margin-bottom:8rem;margin-top:8rem}.swagger-ui .mv7-m{margin-bottom:16rem;margin-top:16rem}.swagger-ui .mh0-m{margin-left:0;margin-right:0}.swagger-ui .mh1-m{margin-left:.25rem;margin-right:.25rem}.swagger-ui .mh2-m{margin-left:.5rem;margin-right:.5rem}.swagger-ui .mh3-m{margin-left:1rem;margin-right:1rem}.swagger-ui .mh4-m{margin-left:2rem;margin-right:2rem}.swagger-ui .mh5-m{margin-left:4rem;margin-right:4rem}.swagger-ui .mh6-m{margin-left:8rem;margin-right:8rem}.swagger-ui .mh7-m{margin-left:16rem;margin-right:16rem}}@media screen and (min-width:60em){.swagger-ui .pa0-l{padding:0}.swagger-ui .pa1-l{padding:.25rem}.swagger-ui .pa2-l{padding:.5rem}.swagger-ui .pa3-l{padding:1rem}.swagger-ui .pa4-l{padding:2rem}.swagger-ui .pa5-l{padding:4rem}.swagger-ui .pa6-l{padding:8rem}.swagger-ui .pa7-l{padding:16rem}.swagger-ui .pl0-l{padding-left:0}.swagger-ui .pl1-l{padding-left:.25rem}.swagger-ui .pl2-l{padding-left:.5rem}.swagger-ui .pl3-l{padding-left:1rem}.swagger-ui .pl4-l{padding-left:2rem}.swagger-ui .pl5-l{padding-left:4rem}.swagger-ui .pl6-l{padding-left:8rem}.swagger-ui .pl7-l{padding-left:16rem}.swagger-ui .pr0-l{padding-right:0}.swagger-ui .pr1-l{padding-right:.25rem}.swagger-ui .pr2-l{padding-right:.5rem}.swagger-ui .pr3-l{padding-right:1rem}.swagger-ui .pr4-l{padding-right:2rem}.swagger-ui .pr5-l{padding-right:4rem}.swagger-ui .pr6-l{padding-right:8rem}.swagger-ui .pr7-l{padding-right:16rem}.swagger-ui .pb0-l{padding-bottom:0}.swagger-ui .pb1-l{padding-bottom:.25rem}.swagger-ui .pb2-l{padding-bottom:.5rem}.swagger-ui .pb3-l{padding-bottom:1rem}.swagger-ui .pb4-l{padding-bottom:2rem}.swagger-ui .pb5-l{padding-bottom:4rem}.swagger-ui .pb6-l{padding-bottom:8rem}.swagger-ui .pb7-l{padding-bottom:16rem}.swagger-ui .pt0-l{padding-top:0}.swagger-ui .pt1-l{padding-top:.25rem}.swagger-ui .pt2-l{padding-top:.5rem}.swagger-ui .pt3-l{padding-top:1rem}.swagger-ui .pt4-l{padding-top:2rem}.swagger-ui .pt5-l{padding-top:4rem}.swagger-ui .pt6-l{padding-top:8rem}.swagger-ui .pt7-l{padding-top:16rem}.swagger-ui .pv0-l{padding-bottom:0;padding-top:0}.swagger-ui .pv1-l{padding-bottom:.25rem;padding-top:.25rem}.swagger-ui .pv2-l{padding-bottom:.5rem;padding-top:.5rem}.swagger-ui .pv3-l{padding-bottom:1rem;padding-top:1rem}.swagger-ui .pv4-l{padding-bottom:2rem;padding-top:2rem}.swagger-ui .pv5-l{padding-bottom:4rem;padding-top:4rem}.swagger-ui .pv6-l{padding-bottom:8rem;padding-top:8rem}.swagger-ui .pv7-l{padding-bottom:16rem;padding-top:16rem}.swagger-ui .ph0-l{padding-left:0;padding-right:0}.swagger-ui .ph1-l{padding-left:.25rem;padding-right:.25rem}.swagger-ui .ph2-l{padding-left:.5rem;padding-right:.5rem}.swagger-ui .ph3-l{padding-left:1rem;padding-right:1rem}.swagger-ui .ph4-l{padding-left:2rem;padding-right:2rem}.swagger-ui .ph5-l{padding-left:4rem;padding-right:4rem}.swagger-ui .ph6-l{padding-left:8rem;padding-right:8rem}.swagger-ui .ph7-l{padding-left:16rem;padding-right:16rem}.swagger-ui .ma0-l{margin:0}.swagger-ui .ma1-l{margin:.25rem}.swagger-ui .ma2-l{margin:.5rem}.swagger-ui .ma3-l{margin:1rem}.swagger-ui .ma4-l{margin:2rem}.swagger-ui .ma5-l{margin:4rem}.swagger-ui .ma6-l{margin:8rem}.swagger-ui .ma7-l{margin:16rem}.swagger-ui .ml0-l{margin-left:0}.swagger-ui .ml1-l{margin-left:.25rem}.swagger-ui .ml2-l{margin-left:.5rem}.swagger-ui .ml3-l{margin-left:1rem}.swagger-ui .ml4-l{margin-left:2rem}.swagger-ui .ml5-l{margin-left:4rem}.swagger-ui .ml6-l{margin-left:8rem}.swagger-ui .ml7-l{margin-left:16rem}.swagger-ui .mr0-l{margin-right:0}.swagger-ui .mr1-l{margin-right:.25rem}.swagger-ui .mr2-l{margin-right:.5rem}.swagger-ui .mr3-l{margin-right:1rem}.swagger-ui .mr4-l{margin-right:2rem}.swagger-ui .mr5-l{margin-right:4rem}.swagger-ui .mr6-l{margin-right:8rem}.swagger-ui .mr7-l{margin-right:16rem}.swagger-ui .mb0-l{margin-bottom:0}.swagger-ui .mb1-l{margin-bottom:.25rem}.swagger-ui .mb2-l{margin-bottom:.5rem}.swagger-ui .mb3-l{margin-bottom:1rem}.swagger-ui .mb4-l{margin-bottom:2rem}.swagger-ui .mb5-l{margin-bottom:4rem}.swagger-ui .mb6-l{margin-bottom:8rem}.swagger-ui .mb7-l{margin-bottom:16rem}.swagger-ui .mt0-l{margin-top:0}.swagger-ui .mt1-l{margin-top:.25rem}.swagger-ui .mt2-l{margin-top:.5rem}.swagger-ui .mt3-l{margin-top:1rem}.swagger-ui .mt4-l{margin-top:2rem}.swagger-ui .mt5-l{margin-top:4rem}.swagger-ui .mt6-l{margin-top:8rem}.swagger-ui .mt7-l{margin-top:16rem}.swagger-ui .mv0-l{margin-bottom:0;margin-top:0}.swagger-ui .mv1-l{margin-bottom:.25rem;margin-top:.25rem}.swagger-ui .mv2-l{margin-bottom:.5rem;margin-top:.5rem}.swagger-ui .mv3-l{margin-bottom:1rem;margin-top:1rem}.swagger-ui .mv4-l{margin-bottom:2rem;margin-top:2rem}.swagger-ui .mv5-l{margin-bottom:4rem;margin-top:4rem}.swagger-ui .mv6-l{margin-bottom:8rem;margin-top:8rem}.swagger-ui .mv7-l{margin-bottom:16rem;margin-top:16rem}.swagger-ui .mh0-l{margin-left:0;margin-right:0}.swagger-ui .mh1-l{margin-left:.25rem;margin-right:.25rem}.swagger-ui .mh2-l{margin-left:.5rem;margin-right:.5rem}.swagger-ui .mh3-l{margin-left:1rem;margin-right:1rem}.swagger-ui .mh4-l{margin-left:2rem;margin-right:2rem}.swagger-ui .mh5-l{margin-left:4rem;margin-right:4rem}.swagger-ui .mh6-l{margin-left:8rem;margin-right:8rem}.swagger-ui .mh7-l{margin-left:16rem;margin-right:16rem}}.swagger-ui .na1{margin:-.25rem}.swagger-ui .na2{margin:-.5rem}.swagger-ui .na3{margin:-1rem}.swagger-ui .na4{margin:-2rem}.swagger-ui .na5{margin:-4rem}.swagger-ui .na6{margin:-8rem}.swagger-ui .na7{margin:-16rem}.swagger-ui .nl1{margin-left:-.25rem}.swagger-ui .nl2{margin-left:-.5rem}.swagger-ui .nl3{margin-left:-1rem}.swagger-ui .nl4{margin-left:-2rem}.swagger-ui .nl5{margin-left:-4rem}.swagger-ui .nl6{margin-left:-8rem}.swagger-ui .nl7{margin-left:-16rem}.swagger-ui .nr1{margin-right:-.25rem}.swagger-ui .nr2{margin-right:-.5rem}.swagger-ui .nr3{margin-right:-1rem}.swagger-ui .nr4{margin-right:-2rem}.swagger-ui .nr5{margin-right:-4rem}.swagger-ui .nr6{margin-right:-8rem}.swagger-ui .nr7{margin-right:-16rem}.swagger-ui .nb1{margin-bottom:-.25rem}.swagger-ui .nb2{margin-bottom:-.5rem}.swagger-ui .nb3{margin-bottom:-1rem}.swagger-ui .nb4{margin-bottom:-2rem}.swagger-ui .nb5{margin-bottom:-4rem}.swagger-ui .nb6{margin-bottom:-8rem}.swagger-ui .nb7{margin-bottom:-16rem}.swagger-ui .nt1{margin-top:-.25rem}.swagger-ui .nt2{margin-top:-.5rem}.swagger-ui .nt3{margin-top:-1rem}.swagger-ui .nt4{margin-top:-2rem}.swagger-ui .nt5{margin-top:-4rem}.swagger-ui .nt6{margin-top:-8rem}.swagger-ui .nt7{margin-top:-16rem}@media screen and (min-width:30em){.swagger-ui .na1-ns{margin:-.25rem}.swagger-ui .na2-ns{margin:-.5rem}.swagger-ui .na3-ns{margin:-1rem}.swagger-ui .na4-ns{margin:-2rem}.swagger-ui .na5-ns{margin:-4rem}.swagger-ui .na6-ns{margin:-8rem}.swagger-ui .na7-ns{margin:-16rem}.swagger-ui .nl1-ns{margin-left:-.25rem}.swagger-ui .nl2-ns{margin-left:-.5rem}.swagger-ui .nl3-ns{margin-left:-1rem}.swagger-ui .nl4-ns{margin-left:-2rem}.swagger-ui .nl5-ns{margin-left:-4rem}.swagger-ui .nl6-ns{margin-left:-8rem}.swagger-ui .nl7-ns{margin-left:-16rem}.swagger-ui .nr1-ns{margin-right:-.25rem}.swagger-ui .nr2-ns{margin-right:-.5rem}.swagger-ui .nr3-ns{margin-right:-1rem}.swagger-ui .nr4-ns{margin-right:-2rem}.swagger-ui .nr5-ns{margin-right:-4rem}.swagger-ui .nr6-ns{margin-right:-8rem}.swagger-ui .nr7-ns{margin-right:-16rem}.swagger-ui .nb1-ns{margin-bottom:-.25rem}.swagger-ui .nb2-ns{margin-bottom:-.5rem}.swagger-ui .nb3-ns{margin-bottom:-1rem}.swagger-ui .nb4-ns{margin-bottom:-2rem}.swagger-ui .nb5-ns{margin-bottom:-4rem}.swagger-ui .nb6-ns{margin-bottom:-8rem}.swagger-ui .nb7-ns{margin-bottom:-16rem}.swagger-ui .nt1-ns{margin-top:-.25rem}.swagger-ui .nt2-ns{margin-top:-.5rem}.swagger-ui .nt3-ns{margin-top:-1rem}.swagger-ui .nt4-ns{margin-top:-2rem}.swagger-ui .nt5-ns{margin-top:-4rem}.swagger-ui .nt6-ns{margin-top:-8rem}.swagger-ui .nt7-ns{margin-top:-16rem}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .na1-m{margin:-.25rem}.swagger-ui .na2-m{margin:-.5rem}.swagger-ui .na3-m{margin:-1rem}.swagger-ui .na4-m{margin:-2rem}.swagger-ui .na5-m{margin:-4rem}.swagger-ui .na6-m{margin:-8rem}.swagger-ui .na7-m{margin:-16rem}.swagger-ui .nl1-m{margin-left:-.25rem}.swagger-ui .nl2-m{margin-left:-.5rem}.swagger-ui .nl3-m{margin-left:-1rem}.swagger-ui .nl4-m{margin-left:-2rem}.swagger-ui .nl5-m{margin-left:-4rem}.swagger-ui .nl6-m{margin-left:-8rem}.swagger-ui .nl7-m{margin-left:-16rem}.swagger-ui .nr1-m{margin-right:-.25rem}.swagger-ui .nr2-m{margin-right:-.5rem}.swagger-ui .nr3-m{margin-right:-1rem}.swagger-ui .nr4-m{margin-right:-2rem}.swagger-ui .nr5-m{margin-right:-4rem}.swagger-ui .nr6-m{margin-right:-8rem}.swagger-ui .nr7-m{margin-right:-16rem}.swagger-ui .nb1-m{margin-bottom:-.25rem}.swagger-ui .nb2-m{margin-bottom:-.5rem}.swagger-ui .nb3-m{margin-bottom:-1rem}.swagger-ui .nb4-m{margin-bottom:-2rem}.swagger-ui .nb5-m{margin-bottom:-4rem}.swagger-ui .nb6-m{margin-bottom:-8rem}.swagger-ui .nb7-m{margin-bottom:-16rem}.swagger-ui .nt1-m{margin-top:-.25rem}.swagger-ui .nt2-m{margin-top:-.5rem}.swagger-ui .nt3-m{margin-top:-1rem}.swagger-ui .nt4-m{margin-top:-2rem}.swagger-ui .nt5-m{margin-top:-4rem}.swagger-ui .nt6-m{margin-top:-8rem}.swagger-ui .nt7-m{margin-top:-16rem}}@media screen and (min-width:60em){.swagger-ui .na1-l{margin:-.25rem}.swagger-ui .na2-l{margin:-.5rem}.swagger-ui .na3-l{margin:-1rem}.swagger-ui .na4-l{margin:-2rem}.swagger-ui .na5-l{margin:-4rem}.swagger-ui .na6-l{margin:-8rem}.swagger-ui .na7-l{margin:-16rem}.swagger-ui .nl1-l{margin-left:-.25rem}.swagger-ui .nl2-l{margin-left:-.5rem}.swagger-ui .nl3-l{margin-left:-1rem}.swagger-ui .nl4-l{margin-left:-2rem}.swagger-ui .nl5-l{margin-left:-4rem}.swagger-ui .nl6-l{margin-left:-8rem}.swagger-ui .nl7-l{margin-left:-16rem}.swagger-ui .nr1-l{margin-right:-.25rem}.swagger-ui .nr2-l{margin-right:-.5rem}.swagger-ui .nr3-l{margin-right:-1rem}.swagger-ui .nr4-l{margin-right:-2rem}.swagger-ui .nr5-l{margin-right:-4rem}.swagger-ui .nr6-l{margin-right:-8rem}.swagger-ui .nr7-l{margin-right:-16rem}.swagger-ui .nb1-l{margin-bottom:-.25rem}.swagger-ui .nb2-l{margin-bottom:-.5rem}.swagger-ui .nb3-l{margin-bottom:-1rem}.swagger-ui .nb4-l{margin-bottom:-2rem}.swagger-ui .nb5-l{margin-bottom:-4rem}.swagger-ui .nb6-l{margin-bottom:-8rem}.swagger-ui .nb7-l{margin-bottom:-16rem}.swagger-ui .nt1-l{margin-top:-.25rem}.swagger-ui .nt2-l{margin-top:-.5rem}.swagger-ui .nt3-l{margin-top:-1rem}.swagger-ui .nt4-l{margin-top:-2rem}.swagger-ui .nt5-l{margin-top:-4rem}.swagger-ui .nt6-l{margin-top:-8rem}.swagger-ui .nt7-l{margin-top:-16rem}}.swagger-ui .collapse{border-collapse:collapse;border-spacing:0}.swagger-ui .striped--light-silver:nth-child(odd){background-color:#aaa}.swagger-ui .striped--moon-gray:nth-child(odd){background-color:#ccc}.swagger-ui .striped--light-gray:nth-child(odd){background-color:#eee}.swagger-ui .striped--near-white:nth-child(odd){background-color:#f4f4f4}.swagger-ui .stripe-light:nth-child(odd){background-color:hsla(0,0%,100%,.1)}.swagger-ui .stripe-dark:nth-child(odd){background-color:rgba(0,0,0,.1)}.swagger-ui .strike{text-decoration:line-through}.swagger-ui .underline{text-decoration:underline}.swagger-ui .no-underline{text-decoration:none}@media screen and (min-width:30em){.swagger-ui .strike-ns{text-decoration:line-through}.swagger-ui .underline-ns{text-decoration:underline}.swagger-ui .no-underline-ns{text-decoration:none}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .strike-m{text-decoration:line-through}.swagger-ui .underline-m{text-decoration:underline}.swagger-ui .no-underline-m{text-decoration:none}}@media screen and (min-width:60em){.swagger-ui .strike-l{text-decoration:line-through}.swagger-ui .underline-l{text-decoration:underline}.swagger-ui .no-underline-l{text-decoration:none}}.swagger-ui .tl{text-align:left}.swagger-ui .tr{text-align:right}.swagger-ui .tc{text-align:center}.swagger-ui .tj{text-align:justify}@media screen and (min-width:30em){.swagger-ui .tl-ns{text-align:left}.swagger-ui .tr-ns{text-align:right}.swagger-ui .tc-ns{text-align:center}.swagger-ui .tj-ns{text-align:justify}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .tl-m{text-align:left}.swagger-ui .tr-m{text-align:right}.swagger-ui .tc-m{text-align:center}.swagger-ui .tj-m{text-align:justify}}@media screen and (min-width:60em){.swagger-ui .tl-l{text-align:left}.swagger-ui .tr-l{text-align:right}.swagger-ui .tc-l{text-align:center}.swagger-ui .tj-l{text-align:justify}}.swagger-ui .ttc{text-transform:capitalize}.swagger-ui .ttl{text-transform:lowercase}.swagger-ui .ttu{text-transform:uppercase}.swagger-ui .ttn{text-transform:none}@media screen and (min-width:30em){.swagger-ui .ttc-ns{text-transform:capitalize}.swagger-ui .ttl-ns{text-transform:lowercase}.swagger-ui .ttu-ns{text-transform:uppercase}.swagger-ui .ttn-ns{text-transform:none}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .ttc-m{text-transform:capitalize}.swagger-ui .ttl-m{text-transform:lowercase}.swagger-ui .ttu-m{text-transform:uppercase}.swagger-ui .ttn-m{text-transform:none}}@media screen and (min-width:60em){.swagger-ui .ttc-l{text-transform:capitalize}.swagger-ui .ttl-l{text-transform:lowercase}.swagger-ui .ttu-l{text-transform:uppercase}.swagger-ui .ttn-l{text-transform:none}}.swagger-ui .f-6,.swagger-ui .f-headline{font-size:6rem}.swagger-ui .f-5,.swagger-ui .f-subheadline{font-size:5rem}.swagger-ui .f1{font-size:3rem}.swagger-ui .f2{font-size:2.25rem}.swagger-ui .f3{font-size:1.5rem}.swagger-ui .f4{font-size:1.25rem}.swagger-ui .f5{font-size:1rem}.swagger-ui .f6{font-size:.875rem}.swagger-ui .f7{font-size:.75rem}@media screen and (min-width:30em){.swagger-ui .f-6-ns,.swagger-ui .f-headline-ns{font-size:6rem}.swagger-ui .f-5-ns,.swagger-ui .f-subheadline-ns{font-size:5rem}.swagger-ui .f1-ns{font-size:3rem}.swagger-ui .f2-ns{font-size:2.25rem}.swagger-ui .f3-ns{font-size:1.5rem}.swagger-ui .f4-ns{font-size:1.25rem}.swagger-ui .f5-ns{font-size:1rem}.swagger-ui .f6-ns{font-size:.875rem}.swagger-ui .f7-ns{font-size:.75rem}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .f-6-m,.swagger-ui .f-headline-m{font-size:6rem}.swagger-ui .f-5-m,.swagger-ui .f-subheadline-m{font-size:5rem}.swagger-ui .f1-m{font-size:3rem}.swagger-ui .f2-m{font-size:2.25rem}.swagger-ui .f3-m{font-size:1.5rem}.swagger-ui .f4-m{font-size:1.25rem}.swagger-ui .f5-m{font-size:1rem}.swagger-ui .f6-m{font-size:.875rem}.swagger-ui .f7-m{font-size:.75rem}}@media screen and (min-width:60em){.swagger-ui .f-6-l,.swagger-ui .f-headline-l{font-size:6rem}.swagger-ui .f-5-l,.swagger-ui .f-subheadline-l{font-size:5rem}.swagger-ui .f1-l{font-size:3rem}.swagger-ui .f2-l{font-size:2.25rem}.swagger-ui .f3-l{font-size:1.5rem}.swagger-ui .f4-l{font-size:1.25rem}.swagger-ui .f5-l{font-size:1rem}.swagger-ui .f6-l{font-size:.875rem}.swagger-ui .f7-l{font-size:.75rem}}.swagger-ui .measure{max-width:30em}.swagger-ui .measure-wide{max-width:34em}.swagger-ui .measure-narrow{max-width:20em}.swagger-ui .indent{margin-bottom:0;margin-top:0;text-indent:1em}.swagger-ui .small-caps{font-feature-settings:"smcp";font-variant:small-caps}.swagger-ui .truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media screen and (min-width:30em){.swagger-ui .measure-ns{max-width:30em}.swagger-ui .measure-wide-ns{max-width:34em}.swagger-ui .measure-narrow-ns{max-width:20em}.swagger-ui .indent-ns{margin-bottom:0;margin-top:0;text-indent:1em}.swagger-ui .small-caps-ns{font-feature-settings:"smcp";font-variant:small-caps}.swagger-ui .truncate-ns{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .measure-m{max-width:30em}.swagger-ui .measure-wide-m{max-width:34em}.swagger-ui .measure-narrow-m{max-width:20em}.swagger-ui .indent-m{margin-bottom:0;margin-top:0;text-indent:1em}.swagger-ui .small-caps-m{font-feature-settings:"smcp";font-variant:small-caps}.swagger-ui .truncate-m{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}@media screen and (min-width:60em){.swagger-ui .measure-l{max-width:30em}.swagger-ui .measure-wide-l{max-width:34em}.swagger-ui .measure-narrow-l{max-width:20em}.swagger-ui .indent-l{margin-bottom:0;margin-top:0;text-indent:1em}.swagger-ui .small-caps-l{font-feature-settings:"smcp";font-variant:small-caps}.swagger-ui .truncate-l{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}.swagger-ui .overflow-container{overflow-y:scroll}.swagger-ui .center{margin-left:auto;margin-right:auto}.swagger-ui .mr-auto{margin-right:auto}.swagger-ui .ml-auto{margin-left:auto}@media screen and (min-width:30em){.swagger-ui .center-ns{margin-left:auto;margin-right:auto}.swagger-ui .mr-auto-ns{margin-right:auto}.swagger-ui .ml-auto-ns{margin-left:auto}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .center-m{margin-left:auto;margin-right:auto}.swagger-ui .mr-auto-m{margin-right:auto}.swagger-ui .ml-auto-m{margin-left:auto}}@media screen and (min-width:60em){.swagger-ui .center-l{margin-left:auto;margin-right:auto}.swagger-ui .mr-auto-l{margin-right:auto}.swagger-ui .ml-auto-l{margin-left:auto}}.swagger-ui .clip{clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);position:fixed!important;_position:absolute!important}@media screen and (min-width:30em){.swagger-ui .clip-ns{clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);position:fixed!important;_position:absolute!important}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .clip-m{clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);position:fixed!important;_position:absolute!important}}@media screen and (min-width:60em){.swagger-ui .clip-l{clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);position:fixed!important;_position:absolute!important}}.swagger-ui .ws-normal{white-space:normal}.swagger-ui .nowrap{white-space:nowrap}.swagger-ui .pre{white-space:pre}@media screen and (min-width:30em){.swagger-ui .ws-normal-ns{white-space:normal}.swagger-ui .nowrap-ns{white-space:nowrap}.swagger-ui .pre-ns{white-space:pre}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .ws-normal-m{white-space:normal}.swagger-ui .nowrap-m{white-space:nowrap}.swagger-ui .pre-m{white-space:pre}}@media screen and (min-width:60em){.swagger-ui .ws-normal-l{white-space:normal}.swagger-ui .nowrap-l{white-space:nowrap}.swagger-ui .pre-l{white-space:pre}}.swagger-ui .v-base{vertical-align:baseline}.swagger-ui .v-mid{vertical-align:middle}.swagger-ui .v-top{vertical-align:top}.swagger-ui .v-btm{vertical-align:bottom}@media screen and (min-width:30em){.swagger-ui .v-base-ns{vertical-align:baseline}.swagger-ui .v-mid-ns{vertical-align:middle}.swagger-ui .v-top-ns{vertical-align:top}.swagger-ui .v-btm-ns{vertical-align:bottom}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .v-base-m{vertical-align:baseline}.swagger-ui .v-mid-m{vertical-align:middle}.swagger-ui .v-top-m{vertical-align:top}.swagger-ui .v-btm-m{vertical-align:bottom}}@media screen and (min-width:60em){.swagger-ui .v-base-l{vertical-align:baseline}.swagger-ui .v-mid-l{vertical-align:middle}.swagger-ui .v-top-l{vertical-align:top}.swagger-ui .v-btm-l{vertical-align:bottom}}.swagger-ui .dim{opacity:1;transition:opacity .15s ease-in}.swagger-ui .dim:focus,.swagger-ui .dim:hover{opacity:.5;transition:opacity .15s ease-in}.swagger-ui .dim:active{opacity:.8;transition:opacity .15s ease-out}.swagger-ui .glow{transition:opacity .15s ease-in}.swagger-ui .glow:focus,.swagger-ui .glow:hover{opacity:1;transition:opacity .15s ease-in}.swagger-ui .hide-child .child{opacity:0;transition:opacity .15s ease-in}.swagger-ui .hide-child:active .child,.swagger-ui .hide-child:focus .child,.swagger-ui .hide-child:hover .child{opacity:1;transition:opacity .15s ease-in}.swagger-ui .underline-hover:focus,.swagger-ui .underline-hover:hover{text-decoration:underline}.swagger-ui .grow{-moz-osx-font-smoothing:grayscale;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform:translateZ(0);transition:transform .25s ease-out}.swagger-ui .grow:focus,.swagger-ui .grow:hover{transform:scale(1.05)}.swagger-ui .grow:active{transform:scale(.9)}.swagger-ui .grow-large{-moz-osx-font-smoothing:grayscale;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform:translateZ(0);transition:transform .25s ease-in-out}.swagger-ui .grow-large:focus,.swagger-ui .grow-large:hover{transform:scale(1.2)}.swagger-ui .grow-large:active{transform:scale(.95)}.swagger-ui .pointer:hover{cursor:pointer}.swagger-ui .shadow-hover{cursor:pointer;position:relative;transition:all .5s cubic-bezier(.165,.84,.44,1)}.swagger-ui .shadow-hover:after{border-radius:inherit;box-shadow:0 0 16px 2px rgba(0,0,0,.2);content:"";height:100%;left:0;opacity:0;position:absolute;top:0;transition:opacity .5s cubic-bezier(.165,.84,.44,1);width:100%;z-index:-1}.swagger-ui .shadow-hover:focus:after,.swagger-ui .shadow-hover:hover:after{opacity:1}.swagger-ui .bg-animate,.swagger-ui .bg-animate:focus,.swagger-ui .bg-animate:hover{transition:background-color .15s ease-in-out}.swagger-ui .z-0{z-index:0}.swagger-ui .z-1{z-index:1}.swagger-ui .z-2{z-index:2}.swagger-ui .z-3{z-index:3}.swagger-ui .z-4{z-index:4}.swagger-ui .z-5{z-index:5}.swagger-ui .z-999{z-index:999}.swagger-ui .z-9999{z-index:9999}.swagger-ui .z-max{z-index:2147483647}.swagger-ui .z-inherit{z-index:inherit}.swagger-ui .z-initial{z-index:auto}.swagger-ui .z-unset{z-index:unset}.swagger-ui .nested-copy-line-height ol,.swagger-ui .nested-copy-line-height p,.swagger-ui .nested-copy-line-height ul{line-height:1.5}.swagger-ui .nested-headline-line-height h1,.swagger-ui .nested-headline-line-height h2,.swagger-ui .nested-headline-line-height h3,.swagger-ui .nested-headline-line-height h4,.swagger-ui .nested-headline-line-height h5,.swagger-ui .nested-headline-line-height h6{line-height:1.25}.swagger-ui .nested-list-reset ol,.swagger-ui .nested-list-reset ul{list-style-type:none;margin-left:0;padding-left:0}.swagger-ui .nested-copy-indent p+p{margin-bottom:0;margin-top:0;text-indent:.1em}.swagger-ui .nested-copy-seperator p+p{margin-top:1.5em}.swagger-ui .nested-img img{display:block;max-width:100%;width:100%}.swagger-ui .nested-links a{color:#357edd;transition:color .15s ease-in}.swagger-ui .nested-links a:focus,.swagger-ui .nested-links a:hover{color:#96ccff;transition:color .15s ease-in}.swagger-ui .wrapper{box-sizing:border-box;margin:0 auto;max-width:1460px;padding:0 20px;width:100%}.swagger-ui .opblock-tag-section{display:flex;flex-direction:column}.swagger-ui .try-out.btn-group{padding:0}.swagger-ui .opblock-tag{align-items:center;border-bottom:1px solid rgba(59,65,81,.3);cursor:pointer;display:flex;padding:10px 20px 10px 10px;transition:all .2s}.swagger-ui .opblock-tag:hover{background:rgba(0,0,0,.02)}.swagger-ui .opblock-tag{color:#3b4151;font-family:sans-serif;font-size:24px;margin:0 0 5px}.swagger-ui .opblock-tag.no-desc span{flex:1}.swagger-ui .opblock-tag svg{transition:all .4s}.swagger-ui .opblock-tag small{color:#3b4151;flex:1;font-family:sans-serif;font-size:14px;font-weight:400;padding:0 10px}.swagger-ui .parameter__type{color:#3b4151;font-family:monospace;font-size:12px;font-weight:600;padding:5px 0}.swagger-ui .parameter-controls{margin-top:.75em}.swagger-ui .examples__title{display:block;font-size:1.1em;font-weight:700;margin-bottom:.75em}.swagger-ui .examples__section{margin-top:1.5em}.swagger-ui .examples__section-header{font-size:.9rem;font-weight:700;margin-bottom:.5rem}.swagger-ui .examples-select{display:inline-block;margin-bottom:.75em}.swagger-ui .examples-select .examples-select-element{width:100%}.swagger-ui .examples-select__section-label{font-size:.9rem;font-weight:700;margin-right:.5rem}.swagger-ui .example__section{margin-top:1.5em}.swagger-ui .example__section-header{font-size:.9rem;font-weight:700;margin-bottom:.5rem}.swagger-ui .view-line-link{cursor:pointer;margin:0 5px;position:relative;top:3px;transition:all .5s;width:20px}.swagger-ui .opblock{border:1px solid #000;border-radius:4px;box-shadow:0 0 3px rgba(0,0,0,.19);margin:0 0 15px}.swagger-ui .opblock .tab-header{display:flex;flex:1}.swagger-ui .opblock .tab-header .tab-item{cursor:pointer;padding:0 40px}.swagger-ui .opblock .tab-header .tab-item:first-of-type{padding:0 40px 0 0}.swagger-ui .opblock .tab-header .tab-item.active h4 span{position:relative}.swagger-ui .opblock .tab-header .tab-item.active h4 span:after{background:grey;bottom:-15px;content:"";height:4px;left:50%;position:absolute;transform:translateX(-50%);width:120%}.swagger-ui .opblock.is-open .opblock-summary{border-bottom:1px solid #000}.swagger-ui .opblock .opblock-section-header{align-items:center;background:hsla(0,0%,100%,.8);box-shadow:0 1px 2px rgba(0,0,0,.1);display:flex;min-height:50px;padding:8px 20px}.swagger-ui .opblock .opblock-section-header>label{align-items:center;color:#3b4151;display:flex;font-family:sans-serif;font-size:12px;font-weight:700;margin:0 0 0 auto}.swagger-ui .opblock .opblock-section-header>label>span{padding:0 10px 0 0}.swagger-ui .opblock .opblock-section-header h4{color:#3b4151;flex:1;font-family:sans-serif;font-size:14px;margin:0}.swagger-ui .opblock .opblock-summary-method{background:#000;border-radius:3px;color:#fff;font-family:sans-serif;font-size:14px;font-weight:700;min-width:80px;padding:6px 15px;text-align:center;text-shadow:0 1px 0 rgba(0,0,0,.1)}.swagger-ui .opblock .opblock-summary-operation-id,.swagger-ui .opblock .opblock-summary-path,.swagger-ui .opblock .opblock-summary-path__deprecated{align-items:center;color:#3b4151;display:flex;font-family:monospace;font-size:16px;font-weight:600;padding:0 10px;word-break:break-word}@media (max-width:768px){.swagger-ui .opblock .opblock-summary-operation-id,.swagger-ui .opblock .opblock-summary-path,.swagger-ui .opblock .opblock-summary-path__deprecated{font-size:12px}}.swagger-ui .opblock .opblock-summary-path{flex-shrink:0;max-width:calc(100% - 110px - 15rem)}.swagger-ui .opblock .opblock-summary-path__deprecated{text-decoration:line-through}.swagger-ui .opblock .opblock-summary-operation-id{font-size:14px}.swagger-ui .opblock .opblock-summary-description{color:#3b4151;flex:1 1 auto;font-family:sans-serif;font-size:13px;word-break:break-word}.swagger-ui .opblock .opblock-summary{align-items:center;cursor:pointer;display:flex;padding:5px}.swagger-ui .opblock .opblock-summary .view-line-link{cursor:pointer;margin:0;position:relative;top:2px;transition:all .5s;width:0}.swagger-ui .opblock .opblock-summary:hover .view-line-link{margin:0 5px;width:18px}.swagger-ui .opblock.opblock-post{background:rgba(73,204,144,.1);border-color:#49cc90}.swagger-ui .opblock.opblock-post .opblock-summary-method{background:#49cc90}.swagger-ui .opblock.opblock-post .opblock-summary{border-color:#49cc90}.swagger-ui .opblock.opblock-post .tab-header .tab-item.active h4 span:after{background:#49cc90}.swagger-ui .opblock.opblock-put{background:rgba(252,161,48,.1);border-color:#fca130}.swagger-ui .opblock.opblock-put .opblock-summary-method{background:#fca130}.swagger-ui .opblock.opblock-put .opblock-summary{border-color:#fca130}.swagger-ui .opblock.opblock-put .tab-header .tab-item.active h4 span:after{background:#fca130}.swagger-ui .opblock.opblock-delete{background:rgba(249,62,62,.1);border-color:#f93e3e}.swagger-ui .opblock.opblock-delete .opblock-summary-method{background:#f93e3e}.swagger-ui .opblock.opblock-delete .opblock-summary{border-color:#f93e3e}.swagger-ui .opblock.opblock-delete .tab-header .tab-item.active h4 span:after{background:#f93e3e}.swagger-ui .opblock.opblock-get{background:rgba(97,175,254,.1);border-color:#61affe}.swagger-ui .opblock.opblock-get .opblock-summary-method{background:#61affe}.swagger-ui .opblock.opblock-get .opblock-summary{border-color:#61affe}.swagger-ui .opblock.opblock-get .tab-header .tab-item.active h4 span:after{background:#61affe}.swagger-ui .opblock.opblock-patch{background:rgba(80,227,194,.1);border-color:#50e3c2}.swagger-ui .opblock.opblock-patch .opblock-summary-method{background:#50e3c2}.swagger-ui .opblock.opblock-patch .opblock-summary{border-color:#50e3c2}.swagger-ui .opblock.opblock-patch .tab-header .tab-item.active h4 span:after{background:#50e3c2}.swagger-ui .opblock.opblock-head{background:rgba(144,18,254,.1);border-color:#9012fe}.swagger-ui .opblock.opblock-head .opblock-summary-method{background:#9012fe}.swagger-ui .opblock.opblock-head .opblock-summary{border-color:#9012fe}.swagger-ui .opblock.opblock-head .tab-header .tab-item.active h4 span:after{background:#9012fe}.swagger-ui .opblock.opblock-options{background:rgba(13,90,167,.1);border-color:#0d5aa7}.swagger-ui .opblock.opblock-options .opblock-summary-method{background:#0d5aa7}.swagger-ui .opblock.opblock-options .opblock-summary{border-color:#0d5aa7}.swagger-ui .opblock.opblock-options .tab-header .tab-item.active h4 span:after{background:#0d5aa7}.swagger-ui .opblock.opblock-deprecated{background:hsla(0,0%,92%,.1);border-color:#ebebeb;opacity:.6}.swagger-ui .opblock.opblock-deprecated .opblock-summary-method{background:#ebebeb}.swagger-ui .opblock.opblock-deprecated .opblock-summary{border-color:#ebebeb}.swagger-ui .opblock.opblock-deprecated .tab-header .tab-item.active h4 span:after{background:#ebebeb}.swagger-ui .opblock .opblock-schemes{padding:8px 20px}.swagger-ui .opblock .opblock-schemes .schemes-title{padding:0 10px 0 0}.swagger-ui .filter .operation-filter-input{border:2px solid #d8dde7;margin:20px 0;padding:10px;width:100%}.swagger-ui .download-url-wrapper .failed,.swagger-ui .filter .failed{color:red}.swagger-ui .download-url-wrapper .loading,.swagger-ui .filter .loading{color:#aaa}.swagger-ui .model-example{margin-top:1em}.swagger-ui .tab{display:flex;list-style:none;padding:0}.swagger-ui .tab li{color:#3b4151;cursor:pointer;font-family:sans-serif;font-size:12px;min-width:60px;padding:0}.swagger-ui .tab li:first-of-type{padding-left:0;padding-right:12px;position:relative}.swagger-ui .tab li:first-of-type:after{background:rgba(0,0,0,.2);content:"";height:100%;position:absolute;right:6px;top:0;width:1px}.swagger-ui .tab li.active{font-weight:700}.swagger-ui .opblock-description-wrapper,.swagger-ui .opblock-external-docs-wrapper,.swagger-ui .opblock-title_normal{color:#3b4151;font-family:sans-serif;font-size:12px;margin:0 0 5px;padding:15px 20px}.swagger-ui .opblock-description-wrapper h4,.swagger-ui .opblock-external-docs-wrapper h4,.swagger-ui .opblock-title_normal h4{color:#3b4151;font-family:sans-serif;font-size:12px;margin:0 0 5px}.swagger-ui .opblock-description-wrapper p,.swagger-ui .opblock-external-docs-wrapper p,.swagger-ui .opblock-title_normal p{color:#3b4151;font-family:sans-serif;font-size:14px;margin:0}.swagger-ui .opblock-external-docs-wrapper h4{padding-left:0}.swagger-ui .execute-wrapper{padding:20px;text-align:right}.swagger-ui .execute-wrapper .btn{padding:8px 40px;width:100%}.swagger-ui .body-param-options{display:flex;flex-direction:column}.swagger-ui .body-param-options .body-param-edit{padding:10px 0}.swagger-ui .body-param-options label{padding:8px 0}.swagger-ui .body-param-options label select{margin:3px 0 0}.swagger-ui .responses-inner{padding:20px}.swagger-ui .responses-inner h4,.swagger-ui .responses-inner h5{color:#3b4151;font-family:sans-serif;font-size:12px;margin:10px 0 5px}.swagger-ui .responses-inner .curl{white-space:normal}.swagger-ui .response-col_status{color:#3b4151;font-family:sans-serif;font-size:14px}.swagger-ui .response-col_status .response-undocumented{color:#909090;font-family:monospace;font-size:11px;font-weight:600}.swagger-ui .response-col_links{color:#3b4151;font-family:sans-serif;font-size:14px;max-width:40em;padding-left:2em}.swagger-ui .response-col_links .response-undocumented{color:#909090;font-family:monospace;font-size:11px;font-weight:600}.swagger-ui .response-col_links .operation-link{margin-bottom:1.5em}.swagger-ui .response-col_links .operation-link .description{margin-bottom:.5em}.swagger-ui .opblock-body .opblock-loading-animation{display:block;margin:3em auto}.swagger-ui .opblock-body pre.microlight{word-wrap:break-word;background:#333;border-radius:4px;color:#fff;font-family:monospace;font-size:12px;font-weight:600;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto;margin:0;padding:10px;white-space:pre-wrap;word-break:break-all;word-break:break-word}.swagger-ui .opblock-body pre.microlight .headerline{display:block}.swagger-ui .highlight-code{position:relative}.swagger-ui .highlight-code>.microlight{max-height:400px;min-height:6em;overflow-y:auto}.swagger-ui .highlight-code>.microlight code{white-space:pre-wrap!important;word-break:break-all}.swagger-ui .curl-command{position:relative}.swagger-ui .download-contents{background:#7d8293;border-radius:4px;bottom:10px;color:#fff;cursor:pointer;font-family:sans-serif;font-size:14px;font-weight:600;height:30px;padding:5px;position:absolute;right:10px;text-align:center}.swagger-ui .scheme-container{background:#fff;box-shadow:0 1px 2px 0 rgba(0,0,0,.15);margin:0 0 20px;padding:30px 0}.swagger-ui .scheme-container .schemes{align-items:flex-end;display:flex}.swagger-ui .scheme-container .schemes>label{color:#3b4151;display:flex;flex-direction:column;font-family:sans-serif;font-size:12px;font-weight:700;margin:-20px 15px 0 0}.swagger-ui .scheme-container .schemes>label select{min-width:130px;text-transform:uppercase}.swagger-ui .loading-container{align-items:center;display:flex;flex-direction:column;justify-content:center;margin-top:1em;min-height:1px;padding:40px 0 60px}.swagger-ui .loading-container .loading{position:relative}.swagger-ui .loading-container .loading:after{color:#3b4151;content:"loading";font-family:sans-serif;font-size:10px;font-weight:700;left:50%;position:absolute;text-transform:uppercase;top:50%;transform:translate(-50%,-50%)}.swagger-ui .loading-container .loading:before{-webkit-animation:rotation 1s linear infinite,opacity .5s;animation:rotation 1s linear infinite,opacity .5s;-webkit-backface-visibility:hidden;backface-visibility:hidden;border:2px solid rgba(85,85,85,.1);border-radius:100%;border-top-color:rgba(0,0,0,.6);content:"";display:block;height:60px;left:50%;margin:-30px;opacity:1;position:absolute;top:50%;width:60px}@-webkit-keyframes rotation{to{transform:rotate(1turn)}}@keyframes rotation{to{transform:rotate(1turn)}}.swagger-ui .response-controls{display:flex;padding-top:1em}.swagger-ui .response-control-media-type{margin-right:1em}.swagger-ui .response-control-media-type--accept-controller select{border-color:green}.swagger-ui .response-control-media-type__accept-message{color:green;font-size:.7em}.swagger-ui .response-control-examples__title,.swagger-ui .response-control-media-type__title{display:block;font-size:.7em;margin-bottom:.2em}@-webkit-keyframes blinker{50%{opacity:0}}@keyframes blinker{50%{opacity:0}}.swagger-ui .hidden{display:none}.swagger-ui .no-margin{border:none;height:auto;margin:0;padding:0}.swagger-ui .float-right{float:right}.swagger-ui img.full-width{width:100%}.swagger-ui .svg-assets{height:0;position:absolute;width:0}.swagger-ui section h3{color:#3b4151;font-family:sans-serif}.swagger-ui a.nostyle{display:inline}.swagger-ui a.nostyle,.swagger-ui a.nostyle:visited{color:inherit;cursor:pointer;text-decoration:inherit}.swagger-ui .fallback{color:#aaa;padding:1em}.swagger-ui .version-pragma{height:100%;padding:5em 0}.swagger-ui .version-pragma__message{display:flex;font-size:1.2em;height:100%;justify-content:center;line-height:1.5em;padding:0 .6em;text-align:center}.swagger-ui .version-pragma__message>div{flex:1;max-width:55ch}.swagger-ui .version-pragma__message code{background-color:#dedede;padding:4px 4px 2px;white-space:pre}.swagger-ui .opblock-link{font-weight:400}.swagger-ui .opblock-link.shown{font-weight:700}.swagger-ui span.token-string{color:#555}.swagger-ui span.token-not-formatted{color:#555;font-weight:700}.swagger-ui .btn{background:transparent;border:2px solid grey;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.1);color:#3b4151;font-family:sans-serif;font-size:14px;font-weight:700;padding:5px 23px;transition:all .3s}.swagger-ui .btn.btn-sm{font-size:12px;padding:4px 23px}.swagger-ui .btn[disabled]{cursor:not-allowed;opacity:.3}.swagger-ui .btn:hover{box-shadow:0 0 5px rgba(0,0,0,.3)}.swagger-ui .btn.cancel{background-color:transparent;border-color:#ff6060;color:#ff6060;font-family:sans-serif}.swagger-ui .btn.authorize{background-color:transparent;border-color:#49cc90;color:#49cc90;display:inline;line-height:1}.swagger-ui .btn.authorize span{float:left;padding:4px 20px 0 0}.swagger-ui .btn.authorize svg{fill:#49cc90}.swagger-ui .btn.execute{background-color:#4990e2;border-color:#4990e2;color:#fff}.swagger-ui .btn-group{display:flex;padding:30px}.swagger-ui .btn-group .btn{flex:1}.swagger-ui .btn-group .btn:first-child{border-radius:4px 0 0 4px}.swagger-ui .btn-group .btn:last-child{border-radius:0 4px 4px 0}.swagger-ui .authorization__btn{background:none;border:none;padding:0 10px}.swagger-ui .authorization__btn.locked{opacity:1}.swagger-ui .authorization__btn.unlocked{opacity:.4}.swagger-ui .model-box-control,.swagger-ui .models-control,.swagger-ui .opblock-summary-control{all:inherit;border-bottom:0;cursor:pointer;flex:1;padding:0}.swagger-ui .model-box-control:focus,.swagger-ui .models-control:focus,.swagger-ui .opblock-summary-control:focus{outline:auto}.swagger-ui .expand-methods,.swagger-ui .expand-operation{background:none;border:none}.swagger-ui .expand-methods svg,.swagger-ui .expand-operation svg{height:20px;width:20px}.swagger-ui .expand-methods{padding:0 10px}.swagger-ui .expand-methods:hover svg{fill:#404040}.swagger-ui .expand-methods svg{fill:#707070;transition:all .3s}.swagger-ui button{cursor:pointer}.swagger-ui button.invalid{-webkit-animation:shake .4s 1;animation:shake .4s 1;background:#feebeb;border-color:#f93e3e}.swagger-ui .copy-to-clipboard{background:#7d8293;border:none;border-radius:4px;bottom:10px;height:30px;position:absolute;right:100px;width:30px}.swagger-ui .copy-to-clipboard button{background:url('data:image/svg+xml;charset=utf-8,') 50% no-repeat;border:none;height:25px;padding-left:25px}.swagger-ui .curl-command .copy-to-clipboard{bottom:5px;height:20px;right:10px;width:20px}.swagger-ui .curl-command .copy-to-clipboard button{height:18px;padding-left:18px}.swagger-ui select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#f7f7f7 url('data:image/svg+xml;charset=utf-8,') right 10px center no-repeat;background-size:20px;border:2px solid #41444e;border-radius:4px;box-shadow:0 1px 2px 0 rgba(0,0,0,.25);color:#3b4151;font-family:sans-serif;font-size:14px;font-weight:700;padding:5px 40px 5px 10px}.swagger-ui select[multiple]{background:#f7f7f7;margin:5px 0;padding:5px}.swagger-ui select.invalid{-webkit-animation:shake .4s 1;animation:shake .4s 1;background:#feebeb;border-color:#f93e3e}.swagger-ui .opblock-body select{min-width:230px}@media (max-width:768px){.swagger-ui .opblock-body select{min-width:180px}}.swagger-ui label{color:#3b4151;font-family:sans-serif;font-size:12px;font-weight:700;margin:0 0 5px}@media (max-width:768px){.swagger-ui input[type=email],.swagger-ui input[type=file],.swagger-ui input[type=password],.swagger-ui input[type=search],.swagger-ui input[type=text]{max-width:175px}}.swagger-ui input[type=email],.swagger-ui input[type=file],.swagger-ui input[type=password],.swagger-ui input[type=search],.swagger-ui input[type=text],.swagger-ui textarea{background:#fff;border:1px solid #d9d9d9;border-radius:4px;margin:5px 0;min-width:100px;padding:8px 10px}.swagger-ui input[type=email].invalid,.swagger-ui input[type=file].invalid,.swagger-ui input[type=password].invalid,.swagger-ui input[type=search].invalid,.swagger-ui input[type=text].invalid,.swagger-ui textarea.invalid{-webkit-animation:shake .4s 1;animation:shake .4s 1;background:#feebeb;border-color:#f93e3e}.swagger-ui input[disabled],.swagger-ui select[disabled],.swagger-ui textarea[disabled]{background-color:#fafafa;color:#888;cursor:not-allowed}.swagger-ui select[disabled]{border-color:#888}.swagger-ui textarea[disabled]{background-color:#41444e;color:#fff}@-webkit-keyframes shake{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-4px,0,0)}40%,60%{transform:translate3d(4px,0,0)}}@keyframes shake{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-4px,0,0)}40%,60%{transform:translate3d(4px,0,0)}}.swagger-ui textarea{background:hsla(0,0%,100%,.8);border:none;border-radius:4px;color:#3b4151;font-family:monospace;font-size:12px;font-weight:600;min-height:280px;outline:none;padding:10px;width:100%}.swagger-ui textarea:focus{border:2px solid #61affe}.swagger-ui textarea.curl{background:#41444e;border-radius:4px;color:#fff;font-family:monospace;font-size:12px;font-weight:600;margin:0;min-height:100px;padding:10px;resize:none}.swagger-ui .checkbox{color:#303030;padding:5px 0 10px;transition:opacity .5s}.swagger-ui .checkbox label{display:flex}.swagger-ui .checkbox p{color:#3b4151;font-family:monospace;font-style:italic;font-weight:400!important;font-weight:600;margin:0!important}.swagger-ui .checkbox input[type=checkbox]{display:none}.swagger-ui .checkbox input[type=checkbox]+label>.item{background:#e8e8e8;border-radius:1px;box-shadow:0 0 0 2px #e8e8e8;cursor:pointer;display:inline-block;flex:none;height:16px;margin:0 8px 0 0;padding:5px;position:relative;top:3px;width:16px}.swagger-ui .checkbox input[type=checkbox]+label>.item:active{transform:scale(.9)}.swagger-ui .checkbox input[type=checkbox]:checked+label>.item{background:#e8e8e8 url('data:image/svg+xml;charset=utf-8,') 50% no-repeat}.swagger-ui .dialog-ux{bottom:0;left:0;position:fixed;right:0;top:0;z-index:9999}.swagger-ui .dialog-ux .backdrop-ux{background:rgba(0,0,0,.8);bottom:0;left:0;position:fixed;right:0;top:0}.swagger-ui .dialog-ux .modal-ux{background:#fff;border:1px solid #ebebeb;border-radius:4px;box-shadow:0 10px 30px 0 rgba(0,0,0,.2);left:50%;max-width:650px;min-width:300px;position:absolute;top:50%;transform:translate(-50%,-50%);width:100%;z-index:9999}.swagger-ui .dialog-ux .modal-ux-content{max-height:540px;overflow-y:auto;padding:20px}.swagger-ui .dialog-ux .modal-ux-content p{color:#41444e;color:#3b4151;font-family:sans-serif;font-size:12px;margin:0 0 5px}.swagger-ui .dialog-ux .modal-ux-content h4{color:#3b4151;font-family:sans-serif;font-size:18px;font-weight:600;margin:15px 0 0}.swagger-ui .dialog-ux .modal-ux-header{align-items:center;border-bottom:1px solid #ebebeb;display:flex;padding:12px 0}.swagger-ui .dialog-ux .modal-ux-header .close-modal{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;padding:0 10px}.swagger-ui .dialog-ux .modal-ux-header h3{color:#3b4151;flex:1;font-family:sans-serif;font-size:20px;font-weight:600;margin:0;padding:0 20px}.swagger-ui .model{color:#3b4151;font-family:monospace;font-size:12px;font-weight:300;font-weight:600}.swagger-ui .model .deprecated span,.swagger-ui .model .deprecated td{color:#a0a0a0!important}.swagger-ui .model .deprecated>td:first-of-type{text-decoration:line-through}.swagger-ui .model-toggle{cursor:pointer;display:inline-block;font-size:10px;margin:auto .3em;position:relative;top:6px;transform:rotate(90deg);transform-origin:50% 50%;transition:transform .15s ease-in}.swagger-ui .model-toggle.collapsed{transform:rotate(0deg)}.swagger-ui .model-toggle:after{background:url('data:image/svg+xml;charset=utf-8,') 50% no-repeat;background-size:100%;content:"";display:block;height:20px;width:20px}.swagger-ui .model-jump-to-path{cursor:pointer;position:relative}.swagger-ui .model-jump-to-path .view-line-link{cursor:pointer;position:absolute;top:-.4em}.swagger-ui .model-title{position:relative}.swagger-ui .model-title:hover .model-hint{visibility:visible}.swagger-ui .model-hint{background:rgba(0,0,0,.7);border-radius:4px;color:#ebebeb;padding:.1em .5em;position:absolute;top:-1.8em;visibility:hidden;white-space:nowrap}.swagger-ui .model p{margin:0 0 1em}.swagger-ui .model .property{color:#999;font-style:italic}.swagger-ui .model .property.primitive{color:#6b6b6b}.swagger-ui table.model tr.description{color:#666;font-weight:400}.swagger-ui table.model tr.description td:first-child,.swagger-ui table.model tr.property-row.required td:first-child{font-weight:700}.swagger-ui table.model tr.property-row td{vertical-align:top}.swagger-ui table.model tr.property-row td:first-child{padding-right:.2em}.swagger-ui table.model tr.property-row .star{color:red}.swagger-ui table.model tr.extension{color:#777}.swagger-ui table.model tr.extension td:last-child{vertical-align:top}.swagger-ui section.models{border:1px solid rgba(59,65,81,.3);border-radius:4px;margin:30px 0}.swagger-ui section.models .pointer{cursor:pointer}.swagger-ui section.models.is-open{padding:0 0 20px}.swagger-ui section.models.is-open h4{border-bottom:1px solid rgba(59,65,81,.3);margin:0 0 5px}.swagger-ui section.models h4{align-items:center;color:#606060;cursor:pointer;display:flex;font-family:sans-serif;font-size:16px;margin:0;padding:10px 20px 10px 10px;transition:all .2s}.swagger-ui section.models h4 svg{transition:all .4s}.swagger-ui section.models h4 span{flex:1}.swagger-ui section.models h4:hover{background:rgba(0,0,0,.02)}.swagger-ui section.models h5{color:#707070;font-family:sans-serif;font-size:16px;margin:0 0 10px}.swagger-ui section.models .model-jump-to-path{position:relative;top:5px}.swagger-ui section.models .model-container{background:rgba(0,0,0,.05);border-radius:4px;margin:0 20px 15px;position:relative;transition:all .5s}.swagger-ui section.models .model-container:hover{background:rgba(0,0,0,.07)}.swagger-ui section.models .model-container:first-of-type{margin:20px}.swagger-ui section.models .model-container:last-of-type{margin:0 20px}.swagger-ui section.models .model-container .models-jump-to-path{opacity:.65;position:absolute;right:5px;top:8px}.swagger-ui section.models .model-box{background:none}.swagger-ui .model-box{background:rgba(0,0,0,.1);border-radius:4px;display:inline-block;padding:10px}.swagger-ui .model-box .model-jump-to-path{position:relative;top:4px}.swagger-ui .model-box.deprecated{opacity:.5}.swagger-ui .model-title{color:#505050;font-family:sans-serif;font-size:16px}.swagger-ui .model-title img{bottom:0;margin-left:1em;position:relative}.swagger-ui .model-deprecated-warning{color:#f93e3e;font-family:sans-serif;font-size:16px;font-weight:600;margin-right:1em}.swagger-ui span>span.model .brace-close{padding:0 0 0 10px}.swagger-ui .prop-name{display:inline-block;margin-right:1em}.swagger-ui .prop-type{color:#55a}.swagger-ui .prop-enum{display:block}.swagger-ui .prop-format{color:#606060}.swagger-ui .servers>label{color:#3b4151;font-family:sans-serif;font-size:12px;margin:-20px 15px 0 0}.swagger-ui .servers>label select{max-width:100%;min-width:130px}.swagger-ui .servers h4.message{padding-bottom:2em}.swagger-ui .servers table tr{width:30em}.swagger-ui .servers table td{display:inline-block;max-width:15em;padding-bottom:10px;padding-top:10px;vertical-align:middle}.swagger-ui .servers table td:first-of-type{padding-right:1em}.swagger-ui .servers table td input{height:100%;width:100%}.swagger-ui .servers .computed-url{margin:2em 0}.swagger-ui .servers .computed-url code{display:inline-block;font-size:16px;margin:0 1em;padding:4px}.swagger-ui .servers-title{font-size:12px;font-weight:700}.swagger-ui .operation-servers h4.message{margin-bottom:2em}.swagger-ui table{border-collapse:collapse;padding:0 10px;width:100%}.swagger-ui table.model tbody tr td{padding:0;vertical-align:top}.swagger-ui table.model tbody tr td:first-of-type{padding:0 0 0 2em;width:174px}.swagger-ui table.headers td{color:#3b4151;font-family:monospace;font-size:12px;font-weight:300;font-weight:600;vertical-align:middle}.swagger-ui table.headers .header-example{color:#999;font-style:italic}.swagger-ui table tbody tr td{padding:10px 0 0;vertical-align:top}.swagger-ui table tbody tr td:first-of-type{min-width:6em;padding:10px 0}.swagger-ui table thead tr td,.swagger-ui table thead tr th{border-bottom:1px solid rgba(59,65,81,.2);color:#3b4151;font-family:sans-serif;font-size:12px;font-weight:700;padding:12px 0;text-align:left}.swagger-ui .parameters-col_description{margin-bottom:2em;width:99%}.swagger-ui .parameters-col_description input[type=text]{max-width:340px;width:100%}.swagger-ui .parameters-col_description select{border-width:1px}.swagger-ui .parameter__name{color:#3b4151;font-family:sans-serif;font-size:16px;font-weight:400;margin-right:.75em}.swagger-ui .parameter__name.required{font-weight:700}.swagger-ui .parameter__name.required span{color:red}.swagger-ui .parameter__name.required:after{color:rgba(255,0,0,.6);content:"required";font-size:10px;padding:5px;position:relative;top:-6px}.swagger-ui .parameter__extension,.swagger-ui .parameter__in{color:grey;font-family:monospace;font-size:12px;font-style:italic;font-weight:600}.swagger-ui .parameter__deprecated{color:red;font-family:monospace;font-size:12px;font-style:italic;font-weight:600}.swagger-ui .parameter__empty_value_toggle{display:block;font-size:13px;padding-bottom:12px;padding-top:5px}.swagger-ui .parameter__empty_value_toggle input{margin-right:7px}.swagger-ui .parameter__empty_value_toggle.disabled{opacity:.7}.swagger-ui .table-container{padding:20px}.swagger-ui .response-col_description{width:99%}.swagger-ui .response-col_links{min-width:6em}.swagger-ui .response__extension{color:grey;font-family:monospace;font-size:12px;font-style:italic;font-weight:600}.swagger-ui .topbar{background-color:#1b1b1b;padding:10px 0}.swagger-ui .topbar .topbar-wrapper,.swagger-ui .topbar a{align-items:center;display:flex}.swagger-ui .topbar a{color:#fff;flex:1;font-family:sans-serif;font-size:1.5em;font-weight:700;max-width:300px;text-decoration:none}.swagger-ui .topbar a span{margin:0;padding:0 10px}.swagger-ui .topbar .download-url-wrapper{display:flex;flex:3;justify-content:flex-end}.swagger-ui .topbar .download-url-wrapper input[type=text]{border:2px solid #62a03f;border-radius:4px 0 0 4px;margin:0;outline:none;width:100%}.swagger-ui .topbar .download-url-wrapper .select-label{align-items:center;color:#f0f0f0;display:flex;margin:0;max-width:600px;width:100%}.swagger-ui .topbar .download-url-wrapper .select-label span{flex:1;font-size:16px;padding:0 10px 0 0;text-align:right}.swagger-ui .topbar .download-url-wrapper .select-label select{border:2px solid #62a03f;box-shadow:none;flex:2;outline:none;width:100%}.swagger-ui .topbar .download-url-wrapper .download-url-button{background:#62a03f;border:none;border-radius:0 4px 4px 0;color:#fff;font-family:sans-serif;font-size:16px;font-weight:700;padding:4px 30px}.swagger-ui .info{margin:50px 0}.swagger-ui .info.failed-config{margin-left:auto;margin-right:auto;max-width:880px;text-align:center}.swagger-ui .info hgroup.main{margin:0 0 20px}.swagger-ui .info hgroup.main a{font-size:12px}.swagger-ui .info pre{font-size:14px}.swagger-ui .info li,.swagger-ui .info p,.swagger-ui .info table{color:#3b4151;font-family:sans-serif;font-size:14px}.swagger-ui .info h1,.swagger-ui .info h2,.swagger-ui .info h3,.swagger-ui .info h4,.swagger-ui .info h5{color:#3b4151;font-family:sans-serif}.swagger-ui .info a{color:#4990e2;font-family:sans-serif;font-size:14px;transition:all .4s}.swagger-ui .info a:hover{color:#1f69c0}.swagger-ui .info>div{margin:0 0 5px}.swagger-ui .info .base-url{color:#3b4151;font-family:monospace;font-size:12px;font-weight:300!important;font-weight:600;margin:0}.swagger-ui .info .title{color:#3b4151;font-family:sans-serif;font-size:36px;margin:0}.swagger-ui .info .title small{background:#7d8492;border-radius:57px;display:inline-block;font-size:10px;margin:0 0 0 5px;padding:2px 4px;position:relative;top:-5px;vertical-align:super}.swagger-ui .info .title small.version-stamp{background-color:#89bf04}.swagger-ui .info .title small pre{color:#fff;font-family:sans-serif;margin:0;padding:0}.swagger-ui .auth-btn-wrapper{display:flex;justify-content:center;padding:10px 0}.swagger-ui .auth-btn-wrapper .btn-done{margin-right:1em}.swagger-ui .auth-wrapper{display:flex;flex:1;justify-content:flex-end}.swagger-ui .auth-wrapper .authorize{margin-right:10px;padding-right:20px}.swagger-ui .auth-container{border-bottom:1px solid #ebebeb;margin:0 0 10px;padding:10px 20px}.swagger-ui .auth-container:last-of-type{border:0;margin:0;padding:10px 20px}.swagger-ui .auth-container h4{margin:5px 0 15px!important}.swagger-ui .auth-container .wrapper{margin:0;padding:0}.swagger-ui .auth-container input[type=password],.swagger-ui .auth-container input[type=text]{min-width:230px}.swagger-ui .auth-container .errors{background-color:#fee;border-radius:4px;color:red;color:#3b4151;font-family:monospace;font-size:12px;font-weight:600;margin:1em;padding:10px}.swagger-ui .auth-container .errors b{margin-right:1em;text-transform:capitalize}.swagger-ui .scopes h2{color:#3b4151;font-family:sans-serif;font-size:14px}.swagger-ui .scopes h2 a{color:#4990e2;cursor:pointer;font-size:12px;padding-left:10px;text-decoration:underline}.swagger-ui .scope-def{padding:0 0 20px}.swagger-ui .errors-wrapper{-webkit-animation:scaleUp .5s;animation:scaleUp .5s;background:rgba(249,62,62,.1);border:2px solid #f93e3e;border-radius:4px;margin:20px;padding:10px 20px}.swagger-ui .errors-wrapper .error-wrapper{margin:0 0 10px}.swagger-ui .errors-wrapper .errors h4{color:#3b4151;font-family:monospace;font-size:14px;font-weight:600;margin:0}.swagger-ui .errors-wrapper .errors small{color:#606060}.swagger-ui .errors-wrapper .errors .message{white-space:pre-line}.swagger-ui .errors-wrapper .errors .message.thrown{max-width:100%}.swagger-ui .errors-wrapper .errors .error-line{cursor:pointer;text-decoration:underline}.swagger-ui .errors-wrapper hgroup{align-items:center;display:flex}.swagger-ui .errors-wrapper hgroup h4{color:#3b4151;flex:1;font-family:sans-serif;font-size:20px;margin:0}@-webkit-keyframes scaleUp{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes scaleUp{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.swagger-ui .Resizer.vertical.disabled{display:none}.swagger-ui .markdown p,.swagger-ui .markdown pre,.swagger-ui .renderedMarkdown p,.swagger-ui .renderedMarkdown pre{margin:1em auto;word-break:break-all;word-break:break-word}.swagger-ui .markdown pre,.swagger-ui .renderedMarkdown pre{background:none;color:#000;font-weight:400;padding:0;white-space:pre-wrap}.swagger-ui .markdown code,.swagger-ui .renderedMarkdown code{background:rgba(0,0,0,.05);border-radius:4px;color:#9012fe;font-family:monospace;font-size:14px;font-weight:600;padding:5px 7px}.swagger-ui .markdown pre>code,.swagger-ui .renderedMarkdown pre>code{display:block} - -/*# sourceMappingURL=swagger-ui.css.map*/ \ No newline at end of file diff --git a/backend/app/static/css/swagger-ui.css.map b/backend/app/static/css/swagger-ui.css.map deleted file mode 100644 index 33b34799..00000000 --- a/backend/app/static/css/swagger-ui.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///./src/style/main.scss","webpack:///./src/style/_type.scss","webpack:///./src/style/_variables.scss","webpack:///./node_modules/tachyons-sass/scss/_normalize.scss","webpack:///./node_modules/tachyons-sass/scss/_debug-children.scss","webpack:///./node_modules/tachyons-sass/scss/_debug-grid.scss","webpack:///./node_modules/tachyons-sass/scss/_box-sizing.scss","webpack:///./node_modules/tachyons-sass/scss/_aspect-ratios.scss","webpack:///./node_modules/tachyons-sass/scss/_images.scss","webpack:///./node_modules/tachyons-sass/scss/_background-size.scss","webpack:///./node_modules/tachyons-sass/scss/_background-position.scss","webpack:///./node_modules/tachyons-sass/scss/_outlines.scss","webpack:///./node_modules/tachyons-sass/scss/_borders.scss","webpack:///./node_modules/tachyons-sass/scss/_border-colors.scss","webpack:///./node_modules/tachyons-sass/scss/_border-radius.scss","webpack:///./node_modules/tachyons-sass/scss/_border-style.scss","webpack:///./node_modules/tachyons-sass/scss/_border-widths.scss","webpack:///./node_modules/tachyons-sass/scss/_box-shadow.scss","webpack:///./node_modules/tachyons-sass/scss/_code.scss","webpack:///./node_modules/tachyons-sass/scss/_coordinates.scss","webpack:///./node_modules/tachyons-sass/scss/_clears.scss","webpack:///./node_modules/tachyons-sass/scss/_flexbox.scss","webpack:///./node_modules/tachyons-sass/scss/_display.scss","webpack:///./node_modules/tachyons-sass/scss/_floats.scss","webpack:///./node_modules/tachyons-sass/scss/_font-family.scss","webpack:///./node_modules/tachyons-sass/scss/_font-style.scss","webpack:///./node_modules/tachyons-sass/scss/_font-weight.scss","webpack:///./node_modules/tachyons-sass/scss/_forms.scss","webpack:///./node_modules/tachyons-sass/scss/_heights.scss","webpack:///./node_modules/tachyons-sass/scss/_letter-spacing.scss","webpack:///./node_modules/tachyons-sass/scss/_line-height.scss","webpack:///./node_modules/tachyons-sass/scss/_links.scss","webpack:///./node_modules/tachyons-sass/scss/_lists.scss","webpack:///./node_modules/tachyons-sass/scss/_max-widths.scss","webpack:///./node_modules/tachyons-sass/scss/_widths.scss","webpack:///./node_modules/tachyons-sass/scss/_overflow.scss","webpack:///./node_modules/tachyons-sass/scss/_position.scss","webpack:///./node_modules/tachyons-sass/scss/_opacity.scss","webpack:///./node_modules/tachyons-sass/scss/_rotations.scss","webpack:///./node_modules/tachyons-sass/scss/_skins.scss","webpack:///./node_modules/tachyons-sass/scss/_skins-pseudo.scss","webpack:///./node_modules/tachyons-sass/scss/_spacing.scss","webpack:///./node_modules/tachyons-sass/scss/_variables.scss","webpack:///./node_modules/tachyons-sass/scss/_negative-margins.scss","webpack:///./node_modules/tachyons-sass/scss/_tables.scss","webpack:///./node_modules/tachyons-sass/scss/_text-decoration.scss","webpack:///./node_modules/tachyons-sass/scss/_text-align.scss","webpack:///./node_modules/tachyons-sass/scss/_text-transform.scss","webpack:///./node_modules/tachyons-sass/scss/_type-scale.scss","webpack:///./node_modules/tachyons-sass/scss/_typography.scss","webpack:///./node_modules/tachyons-sass/scss/_utilities.scss","webpack:///./node_modules/tachyons-sass/scss/_visibility.scss","webpack:///./node_modules/tachyons-sass/scss/_white-space.scss","webpack:///./node_modules/tachyons-sass/scss/_vertical-align.scss","webpack:///./node_modules/tachyons-sass/scss/_hovers.scss","webpack:///./node_modules/tachyons-sass/scss/_z-index.scss","webpack:///./node_modules/tachyons-sass/scss/_nested.scss","webpack:///./src/style/_layout.scss","webpack:///./src/style/_buttons.scss","webpack:///./src/style/_mixins.scss","webpack:///./src/style/_form.scss","webpack:///./src/style/_modal.scss","webpack:///./src/style/_models.scss","webpack:///./src/style/_servers.scss","webpack:///./src/style/_table.scss","webpack:///./src/style/_topbar.scss","webpack:///./src/style/_information.scss","webpack:///./src/style/_authorize.scss","webpack:///./src/style/_errors.scss","webpack:///./src/style/_split-pane-mode.scss","webpack:///./src/style/_markdown.scss"],"names":[],"mappings":"AAAA,YCII,aCYiB;ECTrB,4EFLI,sBDqhCJ,CAvhCA,iBGoBE,yBAA0B,CAC1B,6BAA8B,CAF9B,gBH6gCF,CAhiCA,iBGgCE,QHogCF,CApiCA,gHG6CE,aHggCF,CA7iCA,eGsDE,aAAc,CACd,cH2/BF,CAljCA,2DGqEE,aHo/BF,CAzjCA,mBG6EE,eHg/BF,CA7jCA,eGsFE,sBAAuB,CACvB,QAAS,CACT,gBH8+BF,CAtkCA,gBGiGE,+BAAiC,CACjC,aH2+BF,CA7kCA,cG+GE,oCAAqC,CADrC,4BHs+BF,CAplCA,wBGwHE,kBAAmB,CACnB,yBAA0B,CAC1B,wCAAiC,CAAjC,gCHm+BF,CA7lCA,iCGmIE,mBAAoB,CASpB,kBHs9BF,CAlmCA,kDGuJE,+BAAiC,CACjC,aHw9BF,CAhnCA,gBGgKE,iBHo9BF,CApnCA,iBGwKE,qBAAsB,CACtB,UHg9BF,CAznCA,kBGiLE,aH48BF,CA7nCA,gCG2LE,aAAc,CACd,aAAc,CACd,iBAAkB,CAClB,uBHu8BF,CAroCA,gBGkME,aHu8BF,CAzoCA,gBGsME,SHu8BF,CA7oCA,oCGkNE,oBHg8BF,CAlpCA,kCG0NE,YAAa,CACb,QH47BF,CAvpCA,gBGmOE,iBHw7BF,CA3pCA,2BG2OE,eHo7BF,CA/pCA,kGG2PE,sBAAuB,CACvB,cAAe,CACf,gBAAiB,CACjB,QHg7BF,CA9qCA,qCGwQE,gBH46BF,CAprCA,sCGkRE,mBHw6BF,CA1rCA,qGG+RE,yBHm6BF,CAlsCA,wKG0SE,iBAAkB,CAClB,SH+5BF,CA1sCA,4JGsTE,6BH25BF,CAjtCA,qBG8TE,0BHu5BF,CArtCA,mBGyUE,qBAAsB,CACtB,aAAc,CACd,aAAc,CACd,cAAe,CACf,SAAU,CACV,kBHs5BF,CApuCA,qBGuVE,oBAAqB,CACrB,uBHm5BF,CA3uCA,qBGgWE,aH+4BF,CA/uCA,qDG0WE,qBAAsB,CACtB,SH44BF,CAvvCA,0GGoXE,WHw4BF,CA5vCA,0BG6XE,4BAA6B,CAC7B,mBHq4BF,CAnwCA,6GGuYE,uBHi4BF,CAxwCA,yCGgZE,yBAA0B,CAC1B,YH83BF,CA/wCA,qCG8ZE,aHs3BF,CApxCA,oBGsaE,iBHk3BF,CAxxCA,mBGibE,oBH22BF,CA5xCA,0CGocE,YHg2BF,CApyCA,qBIiBW,sBJuxCX,CAxyCA,2BIkBiB,sBJ0xCjB,CA5yCA,2BImBiB,sBJ6xCjB,CAhzCA,wBKmBE,izCLiyCF,CApzCA,2BKuBE,q2CLiyCF,CAxzCA,gCK2BE,+jDLiyCF,CA5zCA,iCK+BE,8zCLiyCF,CAh0CA,0tBM+CE,qBNszCF,CAr2CA,0BO2BE,QAAS,CACT,iBP80CF,CA12CA,gCO+BsB,qBP+0CtB,CA92CA,gCOgCsB,sBPk1CtB,CAl3CA,+BOkCsB,kBPo1CtB,CAt3CA,+BOmCsB,sBPu1CtB,CA13CA,+BOqCsB,oBPy1CtB,CA93CA,+BOsCsB,mBP41CtB,CAl4CA,+BOwCsB,oBP81CtB,CAt4CA,+BOyCsB,mBPi2CtB,CA14CA,+BO2CsB,qBPm2CtB,CA94CA,+BO4CsB,mBPs2CtB,CAl5CA,+BO8CsB,mBPw2CtB,CAt5CA,kCOoDI,QAAS,CAGT,WAAY,CAFZ,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAIN,UAAW,CAEX,WPy2CJ,COt2CA,mCP3DA,6BO6DM,QAAS,CACT,iBPy2CJ,CAv6CF,mCOgE6B,qBP02C3B,CA16CF,mCOiE6B,sBP42C3B,CA76CF,kCOkE6B,kBP82C3B,CAh7CF,kCOmE6B,sBPg3C3B,CAn7CF,kCOoE6B,oBPk3C3B,CAt7CF,kCOqE6B,mBPo3C3B,CAz7CF,kCOsE6B,oBPs3C3B,CA57CF,kCOuE6B,mBPw3C3B,CA/7CF,kCOwE6B,qBP03C3B,CAl8CF,kCOyE6B,mBP43C3B,CAr8CF,kCO0E6B,mBP83C3B,CAx8CF,qCO+EQ,QAAS,CAGT,WAAY,CAFZ,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAIN,UAAW,CAEX,WP+3CN,CACF,CO53CA,wDPvFA,4BOyFM,QAAS,CACT,iBP+3CJ,CAz9CF,kCO4F4B,qBPg4C1B,CA59CF,kCO6F4B,sBPk4C1B,CA/9CF,iCO8F4B,kBPo4C1B,CAl+CF,iCO+F4B,sBPs4C1B,CAr+CF,iCOgG4B,oBPw4C1B,CAx+CF,iCOiG4B,mBP04C1B,CA3+CF,iCOkG4B,oBP44C1B,CA9+CF,iCOmG4B,mBP84C1B,CAj/CF,iCOoG4B,qBPg5C1B,CAp/CF,iCOqG4B,mBPk5C1B,CAv/CF,iCOsG4B,mBPo5C1B,CA1/CF,oCO2GQ,QAAS,CAGT,WAAY,CAFZ,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAIN,UAAW,CAEX,WPq5CN,CACF,COl5CA,mCPnHA,4BOqHM,QAAS,CACT,iBPq5CJ,CA3gDF,kCOwH4B,qBPs5C1B,CA9gDF,kCOyH4B,sBPw5C1B,CAjhDF,iCO0H4B,kBP05C1B,CAphDF,iCO2H4B,sBP45C1B,CAvhDF,iCO4H4B,oBP85C1B,CA1hDF,iCO6H4B,mBPg6C1B,CA7hDF,iCO8H4B,oBPk6C1B,CAhiDF,iCO+H4B,mBPo6C1B,CAniDF,iCOgI4B,qBPs6C1B,CAtiDF,iCOiI4B,mBPw6C1B,CAziDF,iCOkI4B,mBP06C1B,CA5iDF,oCOuIQ,QAAS,CAGT,WAAY,CAFZ,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAIN,UAAW,CAEX,WP26CN,CACF,CAvjDA,gBQgBM,cR2iDN,CA3jDA,mBSwBW,+BTuiDX,CA/jDA,qBSyBa,iCT0iDb,CSxiDA,mCT3BA,sBS4Bc,+BT4iDZ,CAxkDF,wBS6BgB,iCT8iDd,CACF,CS5iDA,wDThCA,qBSiCa,+BTgjDX,CAjlDF,uBSkCe,iCTkjDb,CACF,CShjDA,mCTrCA,qBSsCa,+BTojDX,CA1lDF,uBSuCe,iCTsjDb,CACF,CA9lDA,uBU8BE,uBAAkC,CADlC,2BVskDF,CAnmDA,oBUmCE,uBAA+B,CAD/B,2BVskDF,CAxmDA,sBUwCE,wBAAiC,CADjC,2BVskDF,CA7mDA,uBU6CE,0BAAkC,CADlC,2BVskDF,CAlnDA,qBUkDE,qBAAgC,CADhC,2BVskDF,CUlkDA,mCVrDA,0BUwDI,uBAAkC,CADlC,2BVskDF,CA7nDF,uBU6DI,uBAA+B,CAD/B,2BVqkDF,CAjoDF,yBUkEI,wBAAiC,CADjC,2BVokDF,CAroDF,0BUuEI,0BAAkC,CADlC,2BVmkDF,CAzoDF,wBU4EI,qBAAgC,CADhC,2BVkkDF,CACF,CU9jDA,wDVhFA,yBUmFI,uBAAkC,CADlC,2BVkkDF,CAppDF,sBUwFI,uBAA+B,CAD/B,2BVikDF,CAxpDF,wBU6FI,wBAAiC,CADjC,2BVgkDF,CA5pDF,yBUkGI,0BAAkC,CADlC,2BV+jDF,CAhqDF,uBUuGI,qBAAgC,CADhC,2BV8jDF,CACF,CU1jDA,mCV3GA,yBU8GI,uBAAkC,CADlC,2BV8jDF,CA3qDF,sBUmHI,uBAA+B,CAD/B,2BV6jDF,CA/qDF,wBUwHI,wBAAiC,CADjC,2BV4jDF,CAnrDF,yBU6HI,0BAAkC,CADlC,2BV2jDF,CAvrDF,uBUkII,qBAAgC,CADhC,2BV0jDF,CACF,CA5rDA,qBWkBW,iBX8qDX,CAhsDA,iCWmBuB,6BXirDvB,CApsDA,uBWoBa,SXorDb,CWlrDA,mCXtBA,wBWuBgB,iBXsrDd,CA7sDF,oCWwB4B,6BXwrD1B,CAhtDF,0BWyBkB,SX0rDhB,CACF,CWxrDA,wDX5BA,uBW6Be,iBX4rDb,CAztDF,mCW8B2B,6BX8rDzB,CA5tDF,yBW+BiB,SXgsDf,CACF,CW9rDA,mCXlCA,uBWmCe,iBXksDb,CAruDF,mCWoC2B,6BXosDzB,CAxuDF,yBWqCiB,SXssDf,CACF,CA5uDA,gBY8BQ,kBAAmB,CAAE,gBZmtD7B,CAjvDA,gBY+BQ,sBAAuB,CAAE,oBZutDjC,CAtvDA,gBYgCQ,wBAAyB,CAAE,sBZ2tDnC,CA3vDA,gBYiCQ,yBAA0B,CAAE,uBZ+tDpC,CAhwDA,gBYkCQ,uBAAwB,CAAE,qBZmuDlC,CArwDA,gBYmCQ,iBAAkB,CAAE,cZuuD5B,CYpuDA,mCZtCA,mBYuCW,kBAAmB,CAAE,gBZyuD9B,CAhxDF,mBYwCW,sBAAuB,CAAE,oBZ4uDlC,CApxDF,mBYyCW,wBAAyB,CAAE,sBZ+uDpC,CAxxDF,mBY0CW,yBAA0B,CAAE,uBZkvDrC,CA5xDF,mBY2CW,uBAAwB,CAAE,qBZqvDnC,CAhyDF,mBY4CW,iBAAkB,CAAE,cZwvD7B,CACF,CYtvDA,wDZ/CA,kBYgDU,kBAAmB,CAAE,gBZ2vD7B,CA3yDF,kBYiDU,sBAAuB,CAAE,oBZ8vDjC,CA/yDF,kBYkDU,wBAAyB,CAAE,sBZiwDnC,CAnzDF,kBYmDU,yBAA0B,CAAE,uBZowDpC,CAvzDF,kBYoDU,uBAAwB,CAAE,qBZuwDlC,CA3zDF,kBYqDU,iBAAkB,CAAE,cZ0wD5B,CACF,CYxwDA,mCZxDA,kBYyDU,kBAAmB,CAAE,gBZ6wD7B,CAt0DF,kBY0DU,sBAAuB,CAAE,oBZgxDjC,CA10DF,kBY2DU,wBAAyB,CAAE,sBZmxDnC,CA90DF,kBY4DU,yBAA0B,CAAE,uBZsxDpC,CAl1DF,kBY6DU,uBAAwB,CAAE,qBZyxDlC,CAt1DF,kBY8DU,iBAAkB,CAAE,cZ4xD5B,CACF,CA31DA,sBa2BmB,iBbo0DnB,CA/1DA,2Ba4BmB,iBbu0DnB,CAn2DA,0Ba6BmB,iBb00DnB,CAv2DA,yBa8BmB,iBb60DnB,CA32DA,qBa+BmB,iBbg1DnB,CA/2DA,uBagCmB,iBbm1DnB,CAn3DA,6BaiCmB,iBbs1DnB,CAv3DA,0BakCmB,iBby1DnB,CA33DA,2BamCmB,iBb41DnB,CA/3DA,2BaoCmB,oBb+1DnB,CAn4DA,sBaqCmB,iBbk2DnB,CAv4DA,yBauCiB,+Bbo2DjB,CA34DA,yBawCiB,+Bbu2DjB,CA/4DA,yBayCiB,+Bb02DjB,CAn5DA,yBa0CiB,+Bb62DjB,CAv5DA,yBa2CiB,+Bbg3DjB,CA35DA,yBa4CiB,+Bbm3DjB,CA/5DA,yBa6CiB,+Bbs3DjB,CAn6DA,yBa8CiB,+Bby3DjB,CAv6DA,yBa+CiB,+Bb43DjB,CA36DA,yBagDiB,gCb+3DjB,CA/6DA,0BaiDkB,gCbk4DlB,CAn7DA,2BakDmB,gCbq4DnB,CAv7DA,yBaoDiB,2Bbu4DjB,CA37DA,yBaqDiB,2Bb04DjB,CA/7DA,yBasDiB,2Bb64DjB,CAn8DA,yBauDiB,2Bbg5DjB,CAv8DA,yBawDiB,2Bbm5DjB,CA38DA,yBayDiB,2Bbs5DjB,CA/8DA,yBa0DiB,2Bby5DjB,CAn9DA,yBa2DiB,2Bb45DjB,CAv9DA,yBa4DiB,2Bb+5DjB,CA39DA,yBa6DiB,4Bbk6DjB,CA/9DA,0Ba8DkB,4Bbq6DlB,CAn+DA,2Ba+DmB,4Bbw6DnB,CAv+DA,yBaiEe,oBb06Df,CA3+DA,oBakEU,oBb66DV,CA/+DA,0BamEgB,oBbg7DhB,CAn/DA,uBaoEa,oBbm7Db,CAv/DA,qBaqEW,oBbs7DX,CA3/DA,uBasEa,iBby7Db,CA//DA,6BauEmB,oBb47DnB,CAngEA,uBawEa,oBb+7Db,CAvgEA,6BayEmB,oBbk8DnB,CA3gEA,0Ba0EgB,oBbq8DhB,CA/gEA,yBa2Ee,oBbw8Df,CAnhEA,qBa4EW,oBb28DX,CAvhEA,2Ba6EiB,oBb88DjB,CA3hEA,2Ba8EiB,oBbi9DjB,CA/hEA,sBa+EY,oBbo9DZ,CAniEA,4BagFkB,oBbu9DlB,CAviEA,qBaiFW,oBb09DX,CA3iEA,0BakFgB,oBb69DhB,CA/iEA,qBamFW,oBbg+DX,CAnjEA,2BaoFiB,oBbm+DjB,CAvjEA,8BaqFoB,oBbs+DpB,CA3jEA,4BasFkB,oBby+DlB,CA/jEA,6BauFmB,oBb4+DnB,CAnkEA,8BawFoB,oBb++DpB,CAvkEA,2BayFiB,oBbk/DjB,CA3kEA,4Ba2FkB,wBbo/DlB,CA/kEA,wBa4Fc,oBbu/Dd,CAnlEA,iBciCgB,edsjEhB,CAvlEA,iBckCgB,qBdyjEhB,CA3lEA,iBcmCgB,oBd4jEhB,CA/lEA,iBcoCgB,mBd+jEhB,CAnmEA,iBcqCgB,kBdkkEhB,CAvmEA,oBcsCgB,kBdqkEhB,CA3mEA,qBcuCgB,oBdwkEhB,CA/mEA,wBcyCM,wBAAyB,CACzB,yBd0kEN,CApnEA,qBc6CM,2BAA4B,CAC5B,4Bd2kEN,CAznEA,uBckDM,2BAA4B,CAD5B,wBd6kEN,CA9nEA,sBcsDM,4BAA6B,CAD7B,yBd8kEN,Cc1kEA,mCdzDA,oBc0DgB,ed8kEd,CAxoEF,oBc2DgB,qBdglEd,CA3oEF,oBc4DgB,oBdklEd,CA9oEF,oBc6DgB,mBdolEd,CAjpEF,oBc8DgB,kBdslEd,CAppEF,uBc+DgB,kBdwlEd,CAvpEF,wBcgEgB,oBd0lEd,CA1pEF,2BckEM,wBAAyB,CACzB,yBd2lEJ,CA9pEF,wBcsEM,2BAA4B,CAC5B,4Bd2lEJ,CAlqEF,0Bc2EM,2BAA4B,CAD5B,wBd4lEJ,CAtqEF,yBc+EM,4BAA6B,CAD7B,yBd4lEJ,CACF,CcxlEA,wDdnFA,mBcoFe,ed4lEb,CAhrEF,mBcqFe,qBd8lEb,CAnrEF,mBcsFe,oBdgmEb,CAtrEF,mBcuFe,mBdkmEb,CAzrEF,mBcwFe,kBdomEb,CA5rEF,sBcyFe,kBdsmEb,CA/rEF,uBc0Fe,oBdwmEb,CAlsEF,0Bc4FM,wBAAyB,CACzB,yBdymEJ,CAtsEF,uBcgGM,2BAA4B,CAC5B,4BdymEJ,CA1sEF,yBcqGM,2BAA4B,CAD5B,wBd0mEJ,CA9sEF,wBcyGM,4BAA6B,CAD7B,yBd0mEJ,CACF,CctmEA,mCd7GA,mBc8Ge,ed0mEb,CAxtEF,mBc+Ge,qBd4mEb,CA3tEF,mBcgHe,oBd8mEb,CA9tEF,mBciHe,mBdgnEb,CAjuEF,mBckHe,kBdknEb,CApuEF,sBcmHe,kBdonEb,CAvuEF,uBcoHe,oBdsnEb,CA1uEF,0BcsHM,wBAAyB,CACzB,yBdunEJ,CA9uEF,uBc0HM,2BAA4B,CAC5B,4BdunEJ,CAlvEF,yBc+HM,2BAA4B,CAD5B,wBdwnEJ,CAtvEF,wBcmIM,4BAA6B,CAD7B,yBdwnEJ,CACF,CA3vEA,uBe8Ba,mBfiuEb,CA/vEA,uBe+Ba,mBfouEb,CAnwEA,sBegCa,kBfuuEb,CAvwEA,qBeiCa,iBf0uEb,CexuEA,mCfnCA,0BeoCkB,mBf4uEhB,CAhxEF,0BeqCkB,mBf8uEhB,CAnxEF,yBesCkB,kBfgvEhB,CAtxEF,wBeuCkB,iBfkvEhB,CACF,CehvEA,wDf1CA,yBe2CiB,mBfovEf,CA/xEF,yBe4CiB,mBfsvEf,CAlyEF,wBe6CiB,kBfwvEf,CAryEF,uBe8CiB,iBf0vEf,CACF,CexvEA,mCfjDA,yBekDiB,mBf4vEf,CA9yEF,yBemDiB,mBf8vEf,CAjzEF,wBeoDiB,kBfgwEf,CApzEF,uBeqDiB,iBfkwEf,CACF,CAxzEA,iBgB8BO,chB8xEP,CA5zEA,iBgB+BO,oBhBiyEP,CAh0EA,iBgBgCO,mBhBoyEP,CAp0EA,iBgBiCO,kBhBuyEP,CAx0EA,iBgBkCO,iBhB0yEP,CA50EA,iBgBmCO,iBhB6yEP,CAh1EA,kBgBsCQ,kBhB8yER,CAp1EA,kBgBuCQ,oBhBizER,CAx1EA,kBgBwCQ,qBhBozER,CA51EA,kBgByCQ,mBhBuzER,CgBrzEA,mChB3CA,oBgB4CY,chByzEV,CAr2EF,oBgB6CY,oBhB2zEV,CAx2EF,oBgB8CY,mBhB6zEV,CA32EF,oBgB+CY,kBhB+zEV,CA92EF,oBgBgDY,iBhBi0EV,CAj3EF,oBgBiDY,iBhBm0EV,CAp3EF,qBgBkDa,kBhBq0EX,CAv3EF,qBgBmDa,oBhBu0EX,CA13EF,qBgBoDa,qBhBy0EX,CA73EF,qBgBqDa,mBhB20EX,CACF,CgBz0EA,wDhBxDA,mBgByDW,chB60ET,CAt4EF,mBgB0DW,oBhB+0ET,CAz4EF,mBgB2DW,mBhBi1ET,CA54EF,mBgB4DW,kBhBm1ET,CA/4EF,mBgB6DW,iBhBq1ET,CAl5EF,mBgB8DW,iBhBu1ET,CAr5EF,oBgB+DY,kBhBy1EV,CAx5EF,oBgBgEY,oBhB21EV,CA35EF,oBgBiEY,qBhB61EV,CA95EF,oBgBkEY,mBhB+1EV,CACF,CgB71EA,mChBrEA,mBgBsEW,chBi2ET,CAv6EF,mBgBuEW,oBhBm2ET,CA16EF,mBgBwEW,mBhBq2ET,CA76EF,mBgByEW,kBhBu2ET,CAh7EF,mBgB0EW,iBhBy2ET,CAn7EF,mBgB2EW,iBhB22ET,CAt7EF,oBgB4EY,kBhB62EV,CAz7EF,oBgB6EY,oBhB+2EV,CA57EF,oBgB8EY,qBhBi3EV,CA/7EF,oBgB+EY,mBhBm3EV,CACF,CAn8EA,sBiBmBY,qCjBo7EZ,CAv8EA,sBiBoBY,qCjBu7EZ,CA38EA,sBiBqBY,yCjB07EZ,CA/8EA,sBiBsBY,uCjB67EZ,CAn9EA,sBiBuBY,uCjBg8EZ,CiB97EA,mCjBzBA,yBiB0BiB,qCjBk8Ef,CA59EF,yBiB2BiB,qCjBo8Ef,CA/9EF,yBiB4BiB,yCjBs8Ef,CAl+EF,yBiB6BiB,uCjBw8Ef,CAr+EF,yBiB8BiB,uCjB08Ef,CACF,CiBx8EA,wDjBjCA,wBiBkCgB,qCjB48Ed,CA9+EF,wBiBmCgB,qCjB88Ed,CAj/EF,wBiBoCgB,yCjBg9Ed,CAp/EF,wBiBqCgB,uCjBk9Ed,CAv/EF,wBiBsCgB,uCjBo9Ed,CACF,CiBl9EA,mCjBzCA,wBiB0CgB,qCjBs9Ed,CAhgFF,wBiB2CgB,qCjBw9Ed,CAngFF,wBiB4CgB,yCjB09Ed,CAtgFF,wBiB6CgB,uCjB49Ed,CAzgFF,wBiB8CgB,uCjB89Ed,CACF,CA7gFA,iBkBcE,eAAgB,CAChB,iBAAkB,CAClB,elBmgFF,CAnhFA,mBmBkCY,KnBq/EZ,CAvhFA,qBmBmCY,OnBw/EZ,CA3hFA,sBmBoCY,QnB2/EZ,CA/hFA,oBmBqCY,MnB8/EZ,CAniFA,mBmBuCY,QnBggFZ,CAviFA,qBmBwCY,UnBmgFZ,CA3iFA,sBmByCY,WnBsgFZ,CA/iFA,oBmB0CY,SnBygFZ,CAnjFA,mBmB4CY,QnB2gFZ,CAvjFA,qBmB6CY,UnB8gFZ,CA3jFA,sBmB8CY,WnBihFZ,CA/jFA,oBmB+CY,SnBohFZ,CAnkFA,oBmBiDa,SnBshFb,CAvkFA,sBmBkDa,WnByhFb,CA3kFA,uBmBmDa,YnB4hFb,CA/kFA,qBmBoDa,UnB+hFb,CAnlFA,oBmBsDa,SnBiiFb,CAvlFA,sBmBuDa,WnBoiFb,CA3lFA,uBmBwDa,YnBuiFb,CA/lFA,qBmByDa,UnB0iFb,CAnmFA,4BmB+DE,QAAS,CACT,MAAO,CAFP,OAAQ,CADR,KnB6iFF,CmBviFA,mCnBnEA,sBmBoEkB,KnB2iFhB,CA/mFF,uBmBqEkB,MnB6iFhB,CAlnFF,wBmBsEkB,OnB+iFhB,CArnFF,yBmBuEkB,QnBijFhB,CAxnFF,sBmBwEkB,QnBmjFhB,CA3nFF,uBmByEkB,SnBqjFhB,CA9nFF,wBmB0EkB,UnBujFhB,CAjoFF,yBmB2EkB,WnByjFhB,CApoFF,sBmB4EkB,QnB2jFhB,CAvoFF,uBmB6EkB,SnB6jFhB,CA1oFF,wBmB8EkB,UnB+jFhB,CA7oFF,yBmB+EkB,WnBikFhB,CAhpFF,uBmBgFkB,SnBmkFhB,CAnpFF,yBmBiFkB,WnBqkFhB,CAtpFF,0BmBkFkB,YnBukFhB,CAzpFF,wBmBmFkB,UnBykFhB,CA5pFF,uBmBoFkB,SnB2kFhB,CA/pFF,yBmBqFkB,WnB6kFhB,CAlqFF,0BmBsFkB,YnB+kFhB,CArqFF,wBmBuFkB,UnBilFhB,CAxqFF,+BmB2FI,QAAS,CACT,MAAO,CAFP,OAAQ,CADR,KnBqlFF,CACF,CmB/kFA,wDnBhGA,qBmBiGiB,KnBmlFf,CAprFF,sBmBkGiB,MnBqlFf,CAvrFF,uBmBmGiB,OnBulFf,CA1rFF,wBmBoGiB,QnBylFf,CA7rFF,qBmBqGiB,QnB2lFf,CAhsFF,sBmBsGiB,SnB6lFf,CAnsFF,uBmBuGiB,UnB+lFf,CAtsFF,wBmBwGiB,WnBimFf,CAzsFF,qBmByGiB,QnBmmFf,CA5sFF,sBmB0GiB,SnBqmFf,CA/sFF,uBmB2GiB,UnBumFf,CAltFF,wBmB4GiB,WnBymFf,CArtFF,sBmB6GiB,SnB2mFf,CAxtFF,wBmB8GiB,WnB6mFf,CA3tFF,yBmB+GiB,YnB+mFf,CA9tFF,uBmBgHiB,UnBinFf,CAjuFF,sBmBiHiB,SnBmnFf,CApuFF,wBmBkHiB,WnBqnFf,CAvuFF,yBmBmHiB,YnBunFf,CA1uFF,uBmBoHiB,UnBynFf,CA7uFF,8BmBwHI,QAAS,CACT,MAAO,CAFP,OAAQ,CADR,KnB6nFF,CACF,CmBvnFA,mCnB7HA,qBmB8HiB,KnB2nFf,CAzvFF,sBmB+HiB,MnB6nFf,CA5vFF,uBmBgIiB,OnB+nFf,CA/vFF,wBmBiIiB,QnBioFf,CAlwFF,qBmBkIiB,QnBmoFf,CArwFF,sBmBmIiB,SnBqoFf,CAxwFF,uBmBoIiB,UnBuoFf,CA3wFF,wBmBqIiB,WnByoFf,CA9wFF,qBmBsIiB,QnB2oFf,CAjxFF,sBmBuIiB,SnB6oFf,CApxFF,uBmBwIiB,UnB+oFf,CAvxFF,wBmByIiB,WnBipFf,CA1xFF,sBmB0IiB,SnBmpFf,CA7xFF,wBmB2IiB,WnBqpFf,CAhyFF,yBmB4IiB,YnBupFf,CAnyFF,uBmB6IiB,UnBypFf,CAtyFF,sBmB8IiB,SnB2pFf,CAzyFF,wBmB+IiB,WnB6pFf,CA5yFF,yBmBgJiB,YnB+pFf,CA/yFF,uBmBiJiB,UnBiqFf,CAlzFF,8BmBqJI,QAAS,CACT,MAAO,CAFP,OAAQ,CADR,KnBqqFF,CACF,CAzzFA,6CoBkBY,WAAY,CAAE,apB6yF1B,CA/zFA,sBoBmBY,UpBgzFZ,CAn0FA,iBoBoBY,MpBmzFZ,CAv0FA,gBoBsBM,UpBqzFN,CA30FA,gBoBuBM,WpBwzFN,CA/0FA,gBoBwBM,UpB2zFN,CAn1FA,gBoByBM,UpB8zFN,CoB5zFA,mCpB3BA,mBoB4BW,UpBg0FT,CA51FF,mBoB6BW,WpBk0FT,CA/1FF,mBoB8BW,UpBo0FT,CAl2FF,mBoB+BW,UpBs0FT,CACF,CoBp0FA,wDpBlCA,kBoBmCU,UpBw0FR,CA32FF,kBoBoCU,WpB00FR,CA92FF,kBoBqCU,UpB40FR,CAj3FF,kBoBsCU,UpB80FR,CACF,CoB50FA,mCpBzCA,kBoB0CU,UpBg1FR,CA13FF,kBoB2CU,WpBk1FR,CA73FF,kBoB4CU,UpBo1FR,CAh4FF,kBoB6CU,UpBs1FR,CACF,CAp4FA,kBqBkBQ,YrBs3FR,CAx4FA,yBqBmBe,mBrBy3Ff,CA54FA,uBqBwBE,aAAc,CAEd,YAAa,CADb,WrB23FF,CAp5FA,uBqB6Ba,SrB23Fb,CAx5FA,yBqB+BgB,qBrB63FhB,CA55FA,sBqBgCgB,kBrBg4FhB,CAh6FA,uBqBiCgB,crBm4FhB,CAp6FA,yBqBkCkB,gBrBs4FlB,CAx6FA,+BqBmCwB,sBrBy4FxB,CA56FA,iCqBoCwB,6BrB44FxB,CAh7FA,8BqBqCwB,0BrB+4FxB,CAp7FA,yBqBuCkB,sBrBi5FlB,CAx7FA,uBqBwCkB,oBrBo5FlB,CA57FA,0BqByCkB,kBrBu5FlB,CAh8FA,4BqB0CkB,oBrB05FlB,CAp8FA,2BqB2CkB,mBrB65FlB,CAx8FA,wBqB6CiB,qBrB+5FjB,CA58FA,sBqB8CiB,mBrBk6FjB,CAh9FA,yBqB+CiB,iBrBq6FjB,CAp9FA,2BqBgDiB,mBrBw6FjB,CAx9FA,0BqBiDiB,kBrB26FjB,CA59FA,2BqBmDmB,0BrB66FnB,CAh+FA,yBqBoDmB,wBrBg7FnB,CAp+FA,4BqBqDmB,sBrBm7FnB,CAx+FA,6BqBsDmB,6BrBs7FnB,CA5+FA,4BqBuDmB,4BrBy7FnB,CAh/FA,2BqByDmB,wBrB27FnB,CAp/FA,yBqB0DmB,sBrB87FnB,CAx/FA,4BqB2DmB,oBrBi8FnB,CA5/FA,6BqB4DmB,2BrBo8FnB,CAhgGA,4BqB6DmB,0BrBu8FnB,CApgGA,6BqB8DmB,qBrB08FnB,CAxgGA,qBqBgEW,OrB48FX,CA5gGA,qBqBiEW,OrB+8FX,CAhhGA,qBqBkEW,OrBk9FX,CAphGA,qBqBmEW,OrBq9FX,CAxhGA,qBqBoEW,OrBw9FX,CA5hGA,qBqBqEW,OrB29FX,CAhiGA,qBqBsEW,OrB89FX,CApiGA,qBqBuEW,OrBi+FX,CAxiGA,qBqBwEW,OrBo+FX,CA5iGA,wBqByEc,WrBu+Fd,CAhjGA,yBqB2Ee,WrBy+Ff,CApjGA,yBqB4Ee,WrB4+Ff,CAxjGA,2BqB8EiB,arB8+FjB,CA5jGA,2BqB+EiB,arBi/FjB,CqB/+FA,mCrBjFA,qBqBkFa,YrBm/FX,CArkGF,4BqBmFoB,mBrBq/FlB,CAxkGF,0BqBqFI,aAAc,CAEd,YAAa,CADb,WrBy/FF,CA/kGF,0BqByFkB,SrBy/FhB,CAllGF,4BqB0FoB,qBrB2/FlB,CArlGF,yBqB2FiB,kBrB6/Ff,CAxlGF,0BqB4FkB,crB+/FhB,CA3lGF,4BqB6FoB,gBrBigGlB,CA9lGF,kCqB8F0B,sBrBmgGxB,CAjmGF,oCqB+F4B,6BrBqgG1B,CApmGF,iCqBgGyB,0BrBugGvB,CAvmGF,4BqBiGoB,sBrBygGlB,CA1mGF,0BqBkGkB,oBrB2gGhB,CA7mGF,6BqBmGqB,kBrB6gGnB,CAhnGF,+BqBoGuB,oBrB+gGrB,CAnnGF,8BqBqGsB,mBrBihGpB,CAtnGF,2BqBuGmB,qBrBkhGjB,CAznGF,yBqBwGiB,mBrBohGf,CA5nGF,4BqByGoB,iBrBshGlB,CA/nGF,8BqB0GsB,mBrBwhGpB,CAloGF,6BqB2GqB,kBrB0hGnB,CAroGF,8BqB6GsB,0BrB2hGpB,CAxoGF,4BqB8GoB,wBrB6hGlB,CA3oGF,+BqB+GuB,sBrB+hGrB,CA9oGF,gCqBgHwB,6BrBiiGtB,CAjpGF,+BqBiHuB,4BrBmiGrB,CAppGF,8BqBmHsB,wBrBoiGpB,CAvpGF,4BqBoHoB,sBrBsiGlB,CA1pGF,+BqBqHuB,oBrBwiGrB,CA7pGF,gCqBsHwB,2BrB0iGtB,CAhqGF,+BqBuHuB,0BrB4iGrB,CAnqGF,gCqBwHwB,qBrB8iGtB,CAtqGF,wBqB0HgB,OrB+iGd,CAzqGF,wBqB2HgB,OrBijGd,CA5qGF,wBqB4HgB,OrBmjGd,CA/qGF,wBqB6HgB,OrBqjGd,CAlrGF,wBqB8HgB,OrBujGd,CArrGF,wBqB+HgB,OrByjGd,CAxrGF,wBqBgIgB,OrB2jGd,CA3rGF,wBqBiIgB,OrB6jGd,CA9rGF,wBqBkIgB,OrB+jGd,CAjsGF,2BqBmImB,WrBikGjB,CApsGF,4BqBqIoB,WrBkkGlB,CAvsGF,4BqBsIoB,WrBokGlB,CA1sGF,8BqBwIsB,arBqkGpB,CA7sGF,8BqByIsB,arBukGpB,CACF,CqBtkGA,wDrB3IA,oBqB4IY,YrB0kGV,CAttGF,2BqB6ImB,mBrB4kGjB,CAztGF,yBqB+II,aAAc,CAEd,YAAa,CADb,WrBglGF,CAhuGF,yBqBmJiB,SrBglGf,CAnuGF,2BqBoJmB,qBrBklGjB,CAtuGF,wBqBqJoB,kBrBolGlB,CAzuGF,yBqBsJiB,crBslGf,CA5uGF,2BqBuJmB,gBrBwlGjB,CA/uGF,iCqBwJyB,sBrB0lGvB,CAlvGF,mCqByJ2B,6BrB4lGzB,CArvGF,gCqB0JwB,0BrB8lGtB,CAxvGF,2BqB2JmB,sBrBgmGjB,CA3vGF,yBqB4JiB,oBrBkmGf,CA9vGF,4BqB6JoB,kBrBomGlB,CAjwGF,8BqB8JsB,oBrBsmGpB,CApwGF,6BqB+JqB,mBrBwmGnB,CAvwGF,0BqBiKkB,qBrBymGhB,CA1wGF,wBqBkKgB,mBrB2mGd,CA7wGF,2BqBmKmB,iBrB6mGjB,CAhxGF,6BqBoKqB,mBrB+mGnB,CAnxGF,4BqBqKoB,kBrBinGlB,CAtxGF,6BqBuKqB,0BrBknGnB,CAzxGF,2BqBwKmB,wBrBonGjB,CA5xGF,8BqByKsB,sBrBsnGpB,CA/xGF,+BqB0KuB,6BrBwnGrB,CAlyGF,8BqB2KsB,4BrB0nGpB,CAryGF,6BqB6KqB,wBrB2nGnB,CAxyGF,2BqB8KmB,sBrB6nGjB,CA3yGF,8BqB+KsB,oBrB+nGpB,CA9yGF,+BqBgLuB,2BrBioGrB,CAjzGF,8BqBiLsB,0BrBmoGpB,CApzGF,+BqBkLuB,qBrBqoGrB,CAvzGF,uBqBoLe,OrBsoGb,CA1zGF,uBqBqLe,OrBwoGb,CA7zGF,uBqBsLe,OrB0oGb,CAh0GF,uBqBuLe,OrB4oGb,CAn0GF,uBqBwLe,OrB8oGb,CAt0GF,uBqByLe,OrBgpGb,CAz0GF,uBqB0Le,OrBkpGb,CA50GF,uBqB2Le,OrBopGb,CA/0GF,uBqB4Le,OrBspGb,CAl1GF,0BqB6LkB,WrBwpGhB,CAr1GF,2BqB+LmB,WrBypGjB,CAx1GF,2BqBgMmB,WrB2pGjB,CA31GF,6BqBkMqB,arB4pGnB,CA91GF,6BqBmMqB,arB8pGnB,CACF,CqB5pGA,mCrBtMA,oBqBuMY,YrBgqGV,CAv2GF,2BqBwMmB,mBrBkqGjB,CA12GF,yBqB0MI,aAAc,CAEd,YAAa,CADb,WrBsqGF,CAj3GF,yBqB8MiB,SrBsqGf,CAp3GF,2BqB+MmB,qBrBwqGjB,CAv3GF,wBqBgNgB,kBrB0qGd,CA13GF,yBqBiNiB,crB4qGf,CA73GF,2BqBkNmB,gBrB8qGjB,CAh4GF,iCqBmNyB,sBrBgrGvB,CAn4GF,mCqBoN2B,6BrBkrGzB,CAt4GF,gCqBqNwB,0BrBorGtB,CAz4GF,2BqBuNmB,sBrBqrGjB,CA54GF,yBqBwNiB,oBrBurGf,CA/4GF,4BqByNoB,kBrByrGlB,CAl5GF,8BqB0NsB,oBrB2rGpB,CAr5GF,6BqB2NqB,mBrB6rGnB,CAx5GF,0BqB6NkB,qBrB8rGhB,CA35GF,wBqB8NgB,mBrBgsGd,CA95GF,2BqB+NmB,iBrBksGjB,CAj6GF,6BqBgOqB,mBrBosGnB,CAp6GF,4BqBiOoB,kBrBssGlB,CAv6GF,6BqBmOqB,0BrBusGnB,CA16GF,2BqBoOmB,wBrBysGjB,CA76GF,8BqBqOsB,sBrB2sGpB,CAh7GF,+BqBsOuB,6BrB6sGrB,CAn7GF,8BqBuOsB,4BrB+sGpB,CAt7GF,6BqByOqB,wBrBgtGnB,CAz7GF,2BqB0OmB,sBrBktGjB,CA57GF,8BqB2OsB,oBrBotGpB,CA/7GF,+BqB4OuB,2BrBstGrB,CAl8GF,8BqB6OsB,0BrBwtGpB,CAr8GF,+BqB8OuB,qBrB0tGrB,CAx8GF,uBqBgPe,OrB2tGb,CA38GF,uBqBiPe,OrB6tGb,CA98GF,uBqBkPe,OrB+tGb,CAj9GF,uBqBmPe,OrBiuGb,CAp9GF,uBqBoPe,OrBmuGb,CAv9GF,uBqBqPe,OrBquGb,CA19GF,uBqBsPe,OrBuuGb,CA79GF,uBqBuPe,OrByuGb,CAh+GF,uBqBwPe,OrB2uGb,CAn+GF,0BqByPkB,WrB6uGhB,CAt+GF,2BqB2PmB,WrB8uGjB,CAz+GF,2BqB4PmB,WrBgvGjB,CA5+GF,6BqB8PqB,arBivGnB,CA/+GF,6BqB+PqB,arBmvGnB,CACF,CAn/GA,gBsBiCmB,YtBs9GnB,CAv/GA,gBsBkCmB,ctBy9GnB,CA3/GA,gBsBmCmB,atB49GnB,CA//GA,iBsBoCmB,oBtB+9GnB,CAngHA,iBsBqCmB,oBtBk+GnB,CAvgHA,gBsBsCmB,atBq+GnB,CA3gHA,iBsBuCmB,kBtBw+GnB,CA/gHA,oBsBwCmB,iBtB2+GnB,CAnhHA,0BsByCmB,uBtB8+GnB,CAvhHA,uBsB0CmB,oBtBi/GnB,CA3hHA,6BsB2CmB,0BtBo/GnB,CA/hHA,uBsBkDE,kBAAmB,CACnB,UtBi/GF,CsB9+GA,mCtBtDA,mBsBuDwB,YtBk/GtB,CAziHF,mBsBwDwB,ctBo/GtB,CA5iHF,mBsByDwB,atBs/GtB,CA/iHF,oBsB0DwB,oBtBw/GtB,CAljHF,oBsB2DwB,oBtB0/GtB,CArjHF,mBsB4DwB,atB4/GtB,CAxjHF,oBsB6DwB,kBtB8/GtB,CA3jHF,uBsB8DwB,iBtBggHtB,CA9jHF,6BsB+DwB,uBtBkgHtB,CAjkHF,0BsBgEwB,oBtBogHtB,CApkHF,gCsBiEwB,0BtBsgHtB,CAvkHF,0BsBoEI,kBAAmB,CACnB,UtBsgHF,CACF,CsBngHA,wDtBzEA,kBsB0EuB,YtBugHrB,CAjlHF,kBsB2EuB,ctBygHrB,CAplHF,kBsB4EuB,atB2gHrB,CAvlHF,mBsB6EuB,oBtB6gHrB,CA1lHF,mBsB8EuB,oBtB+gHrB,CA7lHF,kBsB+EuB,atBihHrB,CAhmHF,mBsBgFuB,kBtBmhHrB,CAnmHF,sBsBiFuB,iBtBqhHrB,CAtmHF,4BsBkFuB,uBtBuhHrB,CAzmHF,yBsBmFuB,oBtByhHrB,CA5mHF,+BsBoFuB,0BtB2hHrB,CA/mHF,yBsBuFI,kBAAmB,CACnB,UtB2hHF,CACF,CsBxhHA,mCtB5FA,kBsB6FuB,YtB4hHrB,CAznHF,kBsB8FuB,ctB8hHrB,CA5nHF,kBsB+FuB,atBgiHrB,CA/nHF,mBsBgGuB,oBtBkiHrB,CAloHF,mBsBiGuB,oBtBoiHrB,CAroHF,kBsBkGuB,atBsiHrB,CAxoHF,mBsBmGuB,kBtBwiHrB,CA3oHF,sBsBoGuB,iBtB0iHrB,CA9oHF,4BsBqGuB,uBtB4iHrB,CAjpHF,yBsBsGuB,oBtB8iHrB,CAppHF,+BsBuGuB,0BtBgjHrB,CAvpHF,yBsB0GI,kBAAmB,CACnB,UtBgjHF,CACF,CA5pHA,iBuBmCoB,cAAgB,CAA9B,UvB8nHN,CAjqHA,iBuBoCoB,cAAgB,CAA9B,WvBkoHN,CAtqHA,gBuBqCM,UvBqoHN,CuBnoHA,mCvBvCA,oBuBwCwB,cAAgB,CAA7B,UvBwoHT,CAhrHF,oBuByCyB,cAAgB,CAA9B,WvB2oHT,CAprHF,mBuB0CW,UvB6oHT,CACF,CuB3oHA,wDvB7CA,mBuB8CuB,cAAgB,CAA7B,UvBgpHR,CA9rHF,mBuB+CwB,cAAgB,CAA9B,WvBmpHR,CAlsHF,kBuBgDU,UvBqpHR,CACF,CuBnpHA,mCvBnDA,mBuBoDuB,cAAgB,CAA7B,UvBwpHR,CA5sHF,mBuBqDwB,cAAgB,CAA9B,WvB2pHR,CAhtHF,kBuBsDU,UvB6pHR,CACF,CAptHA,wBwBgBE,qIxBwsHF,CAxtHA,mBwBoBE,yBxBwsHF,CA5tHA,+BwBwBE,sBxBwsHF,CAhuHA,0BwB4BE,iBxBwsHF,CApuHA,mCwBoCE,qCxBosHF,CAxuHA,qBwB0CE,0CxBksHF,CA5uHA,uBwBmDE,+CxB6rHF,CAhvHA,oBwBwDE,yCxB4rHF,CApvHA,qBwBgEE,iCxBwrHF,CAxvHA,qBwBsEE,yBxBsrHF,CA5vHA,mBwB2EE,uBxBqrHF,CAhwHA,oBwBgFE,2BxBorHF,CApwHA,qBwBqFE,4BxBmrHF,CAxwHA,sBwB0FE,0BxBkrHF,CA5wHA,yBwB+FE,6BxBirHF,CAhxHA,eyBmBa,iBzBiwHb,CApxHA,uByBoBa,iBzBowHb,CyBlwHA,mCzBtBA,kByBuBgB,iBzBswHd,CA7xHF,0ByBwBsB,iBzBwwHpB,CACF,CyBtwHA,wDzB3BA,iByB4Be,iBzB0wHb,CAtyHF,yByB6BqB,iBzB4wHnB,CACF,CyB1wHA,mCzBhCA,iByBiCe,iBzB8wHb,CA/yHF,yByBkCqB,iBzBgxHnB,CACF,CAnzHA,oB0BiCU,e1BsxHV,CAvzHA,e0BkCU,e1ByxHV,CA3zHA,iB0BmCU,e1B4xHV,CA/zHA,iB0BoCU,e1B+xHV,CAn0HA,iB0BqCU,e1BkyHV,CAv0HA,iB0BsCU,e1BqyHV,CA30HA,iB0BuCU,e1BwyHV,CA/0HA,iB0BwCU,e1B2yHV,CAn1HA,iB0ByCU,e1B8yHV,CAv1HA,iB0B0CU,e1BizHV,CA31HA,iB0B2CU,e1BozHV,C0BjzHA,mC1B9CA,uB0B+Ce,e1BqzHb,CAp2HF,kB0BgDe,e1BuzHb,CAv2HF,oB0BiDe,e1ByzHb,CA12HF,oB0BkDe,e1B2zHb,CA72HF,oB0BmDe,e1B6zHb,CAh3HF,oB0BoDe,e1B+zHb,CAn3HF,oB0BqDe,e1Bi0Hb,CAt3HF,oB0BsDe,e1Bm0Hb,CAz3HF,oB0BuDe,e1Bq0Hb,CA53HF,oB0BwDe,e1Bu0Hb,CA/3HF,oB0ByDe,e1By0Hb,CACF,C0Bv0HA,wD1B5DA,sB0B6Dc,e1B20HZ,CAx4HF,iB0B8Dc,e1B60HZ,CA34HF,mB0B+Dc,e1B+0HZ,CA94HF,mB0BgEc,e1Bi1HZ,CAj5HF,mB0BiEc,e1Bm1HZ,CAp5HF,mB0BkEc,e1Bq1HZ,CAv5HF,mB0BmEc,e1Bu1HZ,CA15HF,mB0BoEc,e1By1HZ,CA75HF,mB0BqEc,e1B21HZ,CAh6HF,mB0BsEc,e1B61HZ,CAn6HF,mB0BuEc,e1B+1HZ,CACF,C0B71HA,mC1B1EA,sB0B2Ec,e1Bi2HZ,CA56HF,iB0B4Ec,e1Bm2HZ,CA/6HF,mB0B6Ec,e1Bq2HZ,CAl7HF,mB0B8Ec,e1Bu2HZ,CAr7HF,mB0B+Ec,e1By2HZ,CAx7HF,mB0BgFc,e1B22HZ,CA37HF,mB0BiFc,e1B62HZ,CA97HF,mB0BkFc,e1B+2HZ,CAj8HF,mB0BmFc,e1Bi3HZ,CAp8HF,mB0BoFc,e1Bm3HZ,CAv8HF,mB0BqFc,e1Bq3HZ,CACF,CA38HA,yB2BcE,uBAAwB,CACxB,oB3Bi8HF,CAh9HA,uF2BoBE,QAAS,CACT,S3Bi8HF,CAt9HA,gB4B0CM,W5Bg7HN,CA19HA,gB4B2CM,W5Bm7HN,CA99HA,gB4B4CM,W5Bs7HN,CAl+HA,gB4B6CM,W5By7HN,CAt+HA,gB4B8CM,Y5B47HN,CA1+HA,kB4BkDS,U5B47HT,CA9+HA,kB4BmDS,U5B+7HT,CAl/HA,kB4BoDS,U5Bk8HT,CAt/HA,mB4BqDS,W5Bq8HT,CA1/HA,uB4BuDa,e5Bu8Hb,CA9/HA,mB4B2DU,W5Bu8HV,CAlgIA,mB4B4DU,W5B08HV,CAtgIA,mB4B6DU,W5B68HV,CA1gIA,oB4B8DU,Y5Bg9HV,CA9gIA,wB4BgEc,gB5Bk9Hd,CAlhIA,oB4BqEc,W5Bi9Hd,CAthIA,uB4BsEc,c5Bo9Hd,C4Bl9HA,mC5BxEA,mB4ByEY,W5Bs9HV,CA/hIF,mB4B0EY,W5Bw9HV,CAliIF,mB4B2EY,W5B09HV,CAriIF,mB4B4EY,W5B49HV,CAxiIF,mB4B6EY,Y5B89HV,CA3iIF,qB4B8Ea,U5Bg+HX,CA9iIF,qB4B+Ea,U5Bk+HX,CAjjIF,qB4BgFa,U5Bo+HX,CApjIF,sB4BiFc,W5Bs+HZ,CAvjIF,0B4BkFkB,e5Bw+HhB,CA1jIF,sB4BmFe,W5B0+Hb,CA7jIF,sB4BoFe,W5B4+Hb,CAhkIF,sB4BqFe,W5B8+Hb,CAnkIF,uB4BsFe,Y5Bg/Hb,CAtkIF,2B4BuFmB,gB5Bk/HjB,CAzkIF,uB4BwFe,W5Bo/Hb,CA5kIF,0B4ByFkB,c5Bs/HhB,CACF,C4Bp/HA,wD5B5FA,kB4B6FU,W5Bw/HR,CArlIF,kB4B8FU,W5B0/HR,CAxlIF,kB4B+FU,W5B4/HR,CA3lIF,kB4BgGU,W5B8/HR,CA9lIF,kB4BiGU,Y5BggIR,CAjmIF,oB4BkGY,U5BkgIV,CApmIF,oB4BmGY,U5BogIV,CAvmIF,oB4BoGY,U5BsgIV,CA1mIF,qB4BqGa,W5BwgIX,CA7mIF,yB4BsGiB,e5B0gIf,CAhnIF,qB4BuGc,W5B4gIZ,CAnnIF,qB4BwGc,W5B8gIZ,CAtnIF,qB4ByGc,W5BghIZ,CAznIF,sB4B0Gc,Y5BkhIZ,CA5nIF,0B4B2GkB,gB5BohIhB,CA/nIF,sB4B4Gc,W5BshIZ,CAloIF,yB4B6GiB,c5BwhIf,CACF,C4BthIA,mC5BhHA,kB4BiHU,W5B0hIR,CA3oIF,kB4BkHU,W5B4hIR,CA9oIF,kB4BmHU,W5B8hIR,CAjpIF,kB4BoHU,W5BgiIR,CAppIF,kB4BqHU,Y5BkiIR,CAvpIF,oB4BsHY,U5BoiIV,CA1pIF,oB4BuHY,U5BsiIV,CA7pIF,oB4BwHY,U5BwiIV,CAhqIF,qB4ByHa,W5B0iIX,CAnqIF,yB4B0HiB,e5B4iIf,CAtqIF,qB4B2Hc,W5B8iIZ,CAzqIF,qB4B4Hc,W5BgjIZ,CA5qIF,qB4B6Hc,W5BkjIZ,CA/qIF,sB4B8Hc,Y5BojIZ,CAlrIF,0B4B+HkB,gB5BsjIhB,CArrIF,sB4BgIc,W5BwjIZ,CAxrIF,yB4BiIiB,c5B0jIf,CACF,CA5rIA,qB6BmBiB,mB7B6qIjB,CAhsIA,2B6BoBiB,qB7BgrIjB,CApsIA,0B6BqBiB,oB7BmrIjB,C6BjrIA,mC7BvBA,wB6BwBsB,mB7BqrIpB,CA7sIF,8B6ByBsB,qB7BurIpB,CAhtIF,6B6B0BsB,oB7ByrIpB,CACF,C6BvrIA,wD7B7BA,uB6B8BqB,mB7B2rInB,CAztIF,6B6B+BqB,qB7B6rInB,CA5tIF,4B6BgCqB,oB7B+rInB,CACF,C6B7rIA,mC7BnCA,uB6BoCqB,mB7BisInB,CAruIF,6B6BqCqB,qB7BmsInB,CAxuIF,4B6BsCqB,oB7BqsInB,CACF,CA5uIA,sB8BmBc,a9B6tId,CAhvIA,sB8BoBc,gB9BguId,CApvIA,qB8BqBc,e9BmuId,C8BjuIA,mC9BvBA,yB8BwBiB,a9BquIf,CA7vIF,yB8ByBiB,gB9BuuIf,CAhwIF,wB8B0BiB,e9ByuIf,CACF,C8BvuIA,wD9B7BA,wB8B8BgB,a9B2uId,CAzwIF,wB8B+BgB,gB9B6uId,CA5wIF,uB8BgCgB,e9B+uId,CACF,C8B7uIA,mC9BnCA,wB8BoCgB,a9BivId,CArxIF,wB8BqCgB,gB9BmvId,CAxxIF,uB8BsCgB,e9BqvId,CACF,CA5xIA,kB+BeE,oB/BkxIF,CAjyIA,4I+B2BE,6B/BwxIF,CAnzIA,wB+B+BE,+B/BoxIF,CAnzIA,kBgCcgB,oBhCyyIhB,CAvzIA,oBiCwCW,cjCmxIX,CA3zIA,iBiC4CS,cjCmxIT,CA/zIA,iBiC6CS,cjCsxIT,CAn0IA,iBiC8CS,cjCyxIT,CAv0IA,iBiC+CS,cjC4xIT,CA30IA,iBiCgDS,ejC+xIT,CA/0IA,iBiCiDS,ejCkyIT,CAn1IA,iBiCkDS,ejCqyIT,CAv1IA,iBiCmDS,ejCwyIT,CA31IA,iBiCoDS,ejC2yIT,CA/1IA,qBiCwDW,cjC2yIX,CiCzyIA,mCjC1DA,uBiC2DgB,cjC6yId,CAx2IF,oBiC6Dc,cjC8yIZ,CA32IF,oBiC8Dc,cjCgzIZ,CA92IF,oBiC+Dc,cjCkzIZ,CAj3IF,oBiCgEc,cjCozIZ,CAp3IF,oBiCiEc,ejCszIZ,CAv3IF,oBiCkEc,ejCwzIZ,CA13IF,oBiCmEc,ejC0zIZ,CA73IF,oBiCoEc,ejC4zIZ,CAh4IF,oBiCqEc,ejC8zIZ,CAn4IF,wBiCuEgB,cjC+zId,CACF,CiC7zIA,wDjC1EA,sBiC2Ee,cjCi0Ib,CA54IF,mBiC6Ea,cjCk0IX,CA/4IF,mBiC8Ea,cjCo0IX,CAl5IF,mBiC+Ea,cjCs0IX,CAr5IF,mBiCgFa,cjCw0IX,CAx5IF,mBiCiFa,ejC00IX,CA35IF,mBiCkFa,ejC40IX,CA95IF,mBiCmFa,ejC80IX,CAj6IF,mBiCoFa,ejCg1IX,CAp6IF,mBiCqFa,ejCk1IX,CAv6IF,uBiCuFe,cjCm1Ib,CACF,CiCj1IA,mCjC1FA,sBiC2Fe,cjCq1Ib,CAh7IF,mBiC6Fa,cjCs1IX,CAn7IF,mBiC8Fa,cjCw1IX,CAt7IF,mBiC+Fa,cjC01IX,CAz7IF,mBiCgGa,cjC41IX,CA57IF,mBiCiGa,ejC81IX,CA/7IF,mBiCkGa,ejCg2IX,CAl8IF,mBiCmGa,ejCk2IX,CAr8IF,mBiCoGa,ejCo2IX,CAx8IF,mBiCqGa,ejCs2IX,CA38IF,uBiCuGe,cjCu2Ib,CACF,CA/8IA,gBkCmDS,UlCg6IT,CAn9IA,gBkCoDS,UlCm6IT,CAv9IA,gBkCqDS,UlCs6IT,CA39IA,gBkCsDS,UlCy6IT,CA/9IA,gBkCuDS,WlC46IT,CAn+IA,kBkCyDS,SlC86IT,CAv+IA,kBkC0DS,SlCi7IT,CA3+IA,kBkC2DS,SlCo7IT,CA/+IA,kBkC4DS,SlCu7IT,CAn/IA,kBkC6DS,SlC07IT,CAv/IA,kBkC8DS,SlC67IT,CA3/IA,kBkC+DS,SlCg8IT,CA//IA,kBkCgES,SlCm8IT,CAngJA,kBkCiES,SlCs8IT,CAvgJA,kBkCkES,SlCy8IT,CA3gJA,kBkCmES,SlC48IT,CA/gJA,kBkCoES,SlC+8IT,CAnhJA,kBkCqES,SlCk9IT,CAvhJA,mBkCsES,UlCq9IT,CA3hJA,qBkCwEW,elCu9IX,CA/hJA,0BkCyEgB,elC09IhB,CAniJA,oBkC0EU,UlC69IV,CkC39IA,mClC5EA,mBkC6EY,UlC+9IV,CA5iJF,mBkC8EY,UlCi+IV,CA/iJF,mBkC+EY,UlCm+IV,CAljJF,mBkCgFY,UlCq+IV,CArjJF,mBkCiFY,WlCu+IV,CAxjJF,qBkCkFa,SlCy+IX,CA3jJF,qBkCmFa,SlC2+IX,CA9jJF,qBkCoFa,SlC6+IX,CAjkJF,qBkCqFa,SlC++IX,CApkJF,qBkCsFa,SlCi/IX,CAvkJF,qBkCuFa,SlCm/IX,CA1kJF,qBkCwFa,SlCq/IX,CA7kJF,qBkCyFa,SlCu/IX,CAhlJF,qBkC0Fa,SlCy/IX,CAnlJF,qBkC2Fa,SlC2/IX,CAtlJF,qBkC4Fa,SlC6/IX,CAzlJF,qBkC6Fa,SlC+/IX,CA5lJF,qBkC8Fa,SlCigJX,CA/lJF,sBkC+Fc,UlCmgJZ,CAlmJF,wBkCgGgB,elCqgJd,CArmJF,6BkCiGqB,elCugJnB,CAxmJF,uBkCkGe,UlCygJb,CACF,CkCvgJA,wDlCrGA,kBkCsGe,UlC2gJb,CAjnJF,kBkCuGe,UlC6gJb,CApnJF,kBkCwGe,UlC+gJb,CAvnJF,kBkCyGe,UlCihJb,CA1nJF,kBkC0Ge,WlCmhJb,CA7nJF,oBkC2GY,SlCqhJV,CAhoJF,oBkC4GY,SlCuhJV,CAnoJF,oBkC6GY,SlCyhJV,CAtoJF,oBkC8GY,SlC2hJV,CAzoJF,oBkC+GY,SlC6hJV,CA5oJF,oBkCgHY,SlC+hJV,CA/oJF,oBkCiHY,SlCiiJV,CAlpJF,oBkCkHY,SlCmiJV,CArpJF,oBkCmHY,SlCqiJV,CAxpJF,oBkCoHY,SlCuiJV,CA3pJF,oBkCqHY,SlCyiJV,CA9pJF,oBkCsHY,SlC2iJV,CAjqJF,oBkCuHY,SlC6iJV,CApqJF,qBkCwHa,UlC+iJX,CAvqJF,uBkCyHe,elCijJb,CA1qJF,4BkC0HoB,elCmjJlB,CA7qJF,sBkC2HiB,UlCqjJf,CACF,CkCnjJA,mClC9HA,kBkC+He,UlCujJb,CAtrJF,kBkCgIe,UlCyjJb,CAzrJF,kBkCiIe,UlC2jJb,CA5rJF,kBkCkIe,UlC6jJb,CA/rJF,kBkCmIe,WlC+jJb,CAlsJF,oBkCoIe,SlCikJb,CArsJF,oBkCqIe,SlCmkJb,CAxsJF,oBkCsIe,SlCqkJb,CA3sJF,oBkCuIe,SlCukJb,CA9sJF,oBkCwIe,SlCykJb,CAjtJF,oBkCyIe,SlC2kJb,CAptJF,oBkC0Ie,SlC6kJb,CAvtJF,oBkC2Ie,SlC+kJb,CA1tJF,oBkC4Ie,SlCilJb,CA7tJF,oBkC6Ie,SlCmlJb,CAhuJF,oBkC8Ie,SlCqlJb,CAnuJF,oBkC+Ie,SlCulJb,CAtuJF,oBkCgJe,SlCylJb,CAzuJF,qBkCiJe,UlC2lJb,CA5uJF,uBkCkJe,elC6lJb,CA/uJF,4BkCmJoB,elC+lJlB,CAlvJF,sBkCoJiB,UlCimJf,CACF,CAtvJA,8BmCkBoB,gBnCwuJpB,CA1vJA,6BmCmBmB,enC2uJnB,CA9vJA,6BmCoBmB,enC8uJnB,CAlwJA,2BmCqBiB,anCivJjB,CAtwJA,gCmCuBsB,kBnCmvJtB,CA1wJA,+BmCwBqB,iBnCsvJrB,CA9wJA,+BmCyBqB,iBnCyvJrB,CAlxJA,6BmC0BmB,enC4vJnB,CAtxJA,gCmC4BsB,kBnC8vJtB,CA1xJA,+BmC6BqB,iBnCiwJrB,CA9xJA,+BmC8BqB,iBnCowJrB,CAlyJA,6BmC+BmB,enCuwJnB,CmCrwJA,mCnCjCA,iCmCkCyB,gBnCywJvB,CA3yJF,gCmCmCwB,enC2wJtB,CA9yJF,gCmCoCwB,enC6wJtB,CAjzJF,8BmCqCsB,anC+wJpB,CApzJF,mCmCsC2B,kBnCixJzB,CAvzJF,kCmCuC0B,iBnCmxJxB,CA1zJF,kCmCwC0B,iBnCqxJxB,CA7zJF,gCmCyCwB,enCuxJtB,CAh0JF,mCmC2C2B,kBnCwxJzB,CAn0JF,kCmC4C0B,iBnC0xJxB,CAt0JF,kCmC6C0B,iBnC4xJxB,CAz0JF,gCmC8CwB,enC8xJtB,CACF,CmC5xJA,wDnCjDA,gCmCkDwB,gBnCgyJtB,CAl1JF,+BmCmDuB,enCkyJrB,CAr1JF,+BmCoDuB,enCoyJrB,CAx1JF,6BmCqDqB,anCsyJnB,CA31JF,kCmCuD0B,kBnCuyJxB,CA91JF,iCmCwDyB,iBnCyyJvB,CAj2JF,iCmCyDyB,iBnC2yJvB,CAp2JF,+BmC0DuB,enC6yJrB,CAv2JF,kCmC4D0B,kBnC8yJxB,CA12JF,iCmC6DyB,iBnCgzJvB,CA72JF,iCmC8DyB,iBnCkzJvB,CAh3JF,+BmC+DuB,enCozJrB,CACF,CmClzJA,mCnClEA,gCmCmEwB,gBnCszJtB,CAz3JF,+BmCoEuB,enCwzJrB,CA53JF,+BmCqEuB,enC0zJrB,CA/3JF,6BmCsEqB,anC4zJnB,CAl4JF,kCmCwE0B,kBnC6zJxB,CAr4JF,iCmCyEyB,iBnC+zJvB,CAx4JF,iCmC0EyB,iBnCi0JvB,CA34JF,+BmC2EuB,enCm0JrB,CA94JF,kCmC6E0B,kBnCo0JxB,CAj5JF,iCmC8EyB,iBnCs0JvB,CAp5JF,iCmC+EyB,iBnCw0JvB,CAv5JF,+BmCgFuB,enC00JrB,CACF,CA35JA,oBoCmBU,epC44JV,CA/5JA,sBoCoBa,iBpC+4Jb,CAn6JA,sBoCqBa,iBpCk5Jb,CAv6JA,mBoCsBU,cpCq5JV,CoCn5JA,mCpCxBA,uBoCyBe,epCu5Jb,CAh7JF,yBoC0BkB,iBpCy5JhB,CAn7JF,yBoC2BkB,iBpC25JhB,CAt7JF,sBoC4Be,cpC65Jb,CACF,CoC35JA,wDpC/BA,sBoCgCc,epC+5JZ,CA/7JF,wBoCiCiB,iBpCi6Jf,CAl8JF,wBoCkCiB,iBpCm6Jf,CAr8JF,qBoCmCc,cpCq6JZ,CACF,CoCn6JA,mCpCtCA,sBoCuCc,epCu6JZ,CA98JF,wBoCwCiB,iBpCy6Jf,CAj9JF,wBoCyCiB,iBpC26Jf,CAp9JF,qBoC0Cc,cpC66JZ,CACF,CAx9JA,mBqCcS,SrC88JT,CA59JA,kBqCeS,UrCi9JT,CAh+JA,kBqCgBS,UrCo9JT,CAp+JA,kBqCiBS,UrCu9JT,CAx+JA,kBqCkBS,UrC09JT,CA5+JA,kBqCmBS,UrC69JT,CAh/JA,kBqCoBS,UrCg+JT,CAp/JA,kBqCqBS,UrCm+JT,CAx/JA,kBqCsBS,UrCs+JT,CA5/JA,kBqCuBS,UrCy+JT,CAhgKA,kBqCwBS,WrC4+JT,CApgKA,mBqCyBS,YrC++JT,CAxgKA,iBqC0BS,SrCk/JT,CA5gKA,uBsCaa,uBtCmgKb,CAhhKA,uBsCca,uBtCsgKb,CAphKA,wBsCec,wBtCygKd,CAxhKA,wBsCgBc,wBtC4gKd,CA5hKA,wBsCiBc,wBtC+gKd,CAhiKA,wBsCkBc,wBtCkhKd,CApiKA,wBsCmBc,wBtCqhKd,CsCnhKA,mCtCrBA,0BsCsBkB,uBtCuhKhB,CA7iKF,0BsCuBkB,uBtCyhKhB,CAhjKF,2BsCwBmB,wBtC2hKjB,CAnjKF,2BsCyBmB,wBtC6hKjB,CAtjKF,2BsC0BmB,wBtC+hKjB,CAzjKF,2BsC2BmB,wBtCiiKjB,CA5jKF,2BsC4BmB,wBtCmiKjB,CACF,CsCjiKA,wDtC/BA,yBsCgCiB,uBtCqiKf,CArkKF,yBsCiCiB,uBtCuiKf,CAxkKF,0BsCkCkB,wBtCyiKhB,CA3kKF,0BsCmCkB,wBtC2iKhB,CA9kKF,0BsCoCkB,wBtC6iKhB,CAjlKF,0BsCqCkB,wBtC+iKhB,CAplKF,0BsCsCkB,wBtCijKhB,CACF,CsC/iKA,mCtCzCA,yBsC0CiB,uBtCmjKf,CA7lKF,yBsC2CiB,uBtCqjKf,CAhmKF,0BsC4CkB,wBtCujKhB,CAnmKF,0BsC6CkB,wBtCyjKhB,CAtmKF,0BsC8CkB,wBtC2jKhB,CAzmKF,0BsC+CkB,wBtC6jKhB,CA5mKF,0BsCgDkB,wBtC+jKhB,CACF,CAhnKA,sBuCoBoB,oBvCgmKpB,CApnKA,sBuCqBoB,oBvCmmKpB,CAxnKA,sBuCsBoB,oBvCsmKpB,CA5nKA,sBuCuBoB,oBvCymKpB,CAhoKA,sBuCwBoB,oBvC4mKpB,CApoKA,sBuCyBoB,oBvC+mKpB,CAxoKA,sBuC0BoB,oBvCknKpB,CA5oKA,sBuC2BoB,oBvCqnKpB,CAhpKA,sBuC4BoB,oBvCwnKpB,CAppKA,sBuC6BoB,qBvC2nKpB,CAxpKA,sBuC+BoB,wBvC6nKpB,CA5pKA,sBuCgCoB,wBvCgoKpB,CAhqKA,sBuCiCoB,wBvCmoKpB,CApqKA,sBuCkCoB,wBvCsoKpB,CAxqKA,sBuCmCoB,wBvCyoKpB,CA5qKA,sBuCoCoB,wBvC4oKpB,CAhrKA,sBuCqCoB,wBvC+oKpB,CAprKA,sBuCsCoB,wBvCkpKpB,CAxrKA,sBuCuCoB,wBvCqpKpB,CA5rKA,mBuCyCiB,UvCupKjB,CAhsKA,wBuC0CiB,UvC0pKjB,CApsKA,uBuC2CiB,UvC6pKjB,CAxsKA,sBuC4CiB,UvCgqKjB,CA5sKA,kBuC6CiB,UvCmqKjB,CAhtKA,oBuC8CiB,UvCsqKjB,CAptKA,0BuC+CiB,UvCyqKjB,CAxtKA,uBuCgDiB,UvC4qKjB,CA5tKA,wBuCiDiB,UvC+qKjB,CAhuKA,wBuCkDiB,avCkrKjB,CApuKA,mBuCmDiB,UvCqrKjB,CAxuKA,sBuCqDY,avCurKZ,CA5uKA,iBuCsDO,avC0rKP,CAhvKA,uBuCuDa,avC6rKb,CApvKA,oBuCwDU,avCgsKV,CAxvKA,kBuCyDQ,avCmsKR,CA5vKA,oBuC0DU,UvCssKV,CAhwKA,0BuC2DgB,avCysKhB,CApwKA,oBuC4DU,avC4sKV,CAxwKA,0BuC6DgB,avC+sKhB,CA5wKA,uBuC8Da,avCktKb,CAhxKA,sBuC+DY,avCqtKZ,CApxKA,kBuCgEQ,avCwtKR,CAxxKA,wBuCiEc,avC2tKd,CA5xKA,wBuCkEc,avC8tKd,CAhyKA,mBuCmES,avCiuKT,CApyKA,yBuCoEe,avCouKf,CAxyKA,kBuCqEQ,avCuuKR,CA5yKA,uBuCsEa,avC0uKb,CAhzKA,kBuCuEQ,avC6uKR,CApzKA,wBuCwEc,avCgvKd,CAxzKA,2BuCyEiB,avCmvKjB,CA5zKA,yBuC0Ee,avCsvKf,CAh0KA,0BuC2EgB,avCyvKhB,CAp0KA,2BuC4EiB,avC4vKjB,CAx0KA,wBuC6Ec,avC+vKd,CA50KA,2BuC8EiB,avCkwKjB,CAh1KA,yBuCgFuB,+BvCowKvB,CAp1KA,yBuCiFuB,+BvCuwKvB,CAx1KA,yBuCkFuB,+BvC0wKvB,CA51KA,yBuCmFuB,+BvC6wKvB,CAh2KA,yBuCoFuB,+BvCgxKvB,CAp2KA,yBuCqFuB,+BvCmxKvB,CAx2KA,yBuCsFuB,+BvCsxKvB,CA52KA,yBuCuFuB,+BvCyxKvB,CAh3KA,yBuCwFuB,+BvC4xKvB,CAp3KA,yBuCyFuB,gCvC+xKvB,CAx3KA,yBuC0FsB,mCvCkyKtB,CA53KA,yBuC2FsB,mCvCqyKtB,CAh4KA,yBuC4FsB,mCvCwyKtB,CAp4KA,yBuC6FsB,mCvC2yKtB,CAx4KA,yBuC8FsB,mCvC8yKtB,CA54KA,yBuC+FsB,mCvCizKtB,CAh5KA,yBuCgGsB,mCvCozKtB,CAp5KA,yBuCiGsB,mCvCuzKtB,CAx5KA,yBuCkGsB,mCvC0zKtB,CA55KA,sBuCwGoB,qBvCwzKpB,CAh6KA,2BuCyGoB,qBvC2zKpB,CAp6KA,0BuC0GoB,qBvC8zKpB,CAx6KA,yBuC2GoB,qBvCi0KpB,CA56KA,qBuC4GoB,qBvCo0KpB,CAh7KA,uBuC6GoB,qBvCu0KpB,CAp7KA,6BuC8GoB,qBvC00KpB,CAx7KA,0BuC+GoB,qBvC60KpB,CA57KA,2BuCgHoB,qBvCg1KpB,CAh8KA,2BuCiHoB,wBvCm1KpB,CAp8KA,sBuCkHoB,qBvCs1KpB,CAx8KA,4BuCmHoB,4BvCy1KpB,CA58KA,yBuCqHe,wBvC21Kf,CAh9KA,oBuCsHU,wBvC81KV,CAp9KA,0BuCuHgB,wBvCi2KhB,CAx9KA,uBuCwHa,wBvCo2Kb,CA59KA,qBuCyHW,wBvCu2KX,CAh+KA,uBuC0Ha,qBvC02Kb,CAp+KA,6BuC2HmB,wBvC62KnB,CAx+KA,uBuC4Ha,wBvCg3Kb,CA5+KA,6BuC6HmB,wBvCm3KnB,CAh/KA,0BuC8HgB,wBvCs3KhB,CAp/KA,yBuC+He,wBvCy3Kf,CAx/KA,qBuCgIW,wBvC43KX,CA5/KA,2BuCiIiB,wBvC+3KjB,CAhgLA,2BuCkIiB,wBvCk4KjB,CApgLA,sBuCmIY,wBvCq4KZ,CAxgLA,4BuCoIkB,wBvCw4KlB,CA5gLA,qBuCqIW,wBvC24KX,CAhhLA,0BuCsIgB,wBvC84KhB,CAphLA,qBuCuIW,wBvCi5KX,CAxhLA,2BuCwIiB,wBvCo5KjB,CA5hLA,8BuCyIoB,wBvCu5KpB,CAhiLA,4BuC0IkB,wBvC05KlB,CApiLA,6BuC2ImB,wBvC65KnB,CAxiLA,8BuC4IoB,wBvCg6KpB,CA5iLA,2BuC6IiB,wBvCm6KjB,CAhjLA,wBuC8Ic,wBvCs6Kd,CApjLA,8DwCiBqB,UxCwiLrB,CAzjLA,wEwCmB0B,UxC2iL1B,CA9jLA,sEwCqByB,UxC8iLzB,CAnkLA,oEwCuBwB,UxCijLxB,CAxkLA,4DwCyBoB,UxCojLpB,CA7kLA,gEwC2BsB,UxCujLtB,CAllLA,4EwC6B4B,UxC0jL5B,CAvlLA,sEwC+ByB,UxC6jLzB,CA5lLA,wEwCiC0B,UxCgkL1B,CAjmLA,wEwCmC0B,axCmkL1B,CAtmLA,8DwCqCqB,UxCskLrB,CA3mLA,oEwCwCwB,oBxCwkLxB,CAhnLA,oEwC0CwB,oBxC2kLxB,CArnLA,oEwC4CwB,oBxC8kLxB,CA1nLA,oEwC8CwB,oBxCilLxB,CA/nLA,oEwCgDwB,oBxColLxB,CApoLA,oEwCkDwB,oBxCulLxB,CAzoLA,oEwCoDwB,oBxC0lLxB,CA9oLA,oEwCsDwB,oBxC6lLxB,CAnpLA,oEwCwDwB,oBxCgmLxB,CAxpLA,oEwC0DwB,wBxCmmLxB,CA7pLA,oEwC4DwB,wBxCsmLxB,CAlqLA,oEwC8DwB,wBxCymLxB,CAvqLA,oEwCgEwB,wBxC4mLxB,CA5qLA,oEwCkEwB,wBxC+mLxB,CAjrLA,oEwCoEwB,wBxCknLxB,CAtrLA,oEwCsEwB,wBxCqnLxB,CA3rLA,oEwCwEwB,wBxCwnLxB,CAhsLA,oEwC0EwB,wBxC2nLxB,CArsLA,kEwC4EuB,axC8nLvB,CA1sLA,oEwC+EwB,qBxCgoLxB,CA/sLA,8EwCiF6B,qBxCmoL7B,CAptLA,4EwCmF4B,qBxCsoL5B,CAztLA,0EwCqF2B,qBxCyoL3B,CA9tLA,kEwCuFuB,qBxC4oLvB,CAnuLA,sEwCyFyB,qBxC+oLzB,CAxuLA,kFwC2F+B,qBxCkpL/B,CA7uLA,4EwC6F4B,qBxCqpL5B,CAlvLA,8EwC+F6B,qBxCwpL7B,CAvvLA,8EwCiG6B,wBxC2pL7B,CA5vLA,oEwCmGwB,qBxC8pLxB,CAjwLA,gFwCqG8B,4BxCiqL9B,CAtwLA,0EwCwG2B,+BxCmqL3B,CA3wLA,0EwC0G2B,+BxCsqL3B,CAhxLA,0EwC4G2B,+BxCyqL3B,CArxLA,0EwC8G2B,+BxC4qL3B,CA1xLA,0EwCgH2B,+BxC+qL3B,CA/xLA,0EwCkH2B,+BxCkrL3B,CApyLA,0EwCoH2B,+BxCqrL3B,CAzyLA,0EwCsH2B,+BxCwrL3B,CA9yLA,0EwCwH2B,+BxC2rL3B,CAnzLA,0EwC0H2B,mCxC8rL3B,CAxzLA,0EwC4H2B,mCxCisL3B,CA7zLA,0EwC8H2B,mCxCosL3B,CAl0LA,0EwCgI2B,mCxCusL3B,CAv0LA,0EwCkI2B,mCxC0sL3B,CA50LA,0EwCoI2B,mCxC6sL3B,CAj1LA,0EwCsI2B,mCxCgtL3B,CAt1LA,0EwCwI2B,mCxCmtL3B,CA31LA,0EwC0I2B,mCxCstL3B,CAh2LA,oEwC6IwB,axCwtLxB,CAr2LA,0DwC+ImB,axC2tLnB,CA12LA,sEwCiJyB,axC8tLzB,CA/2LA,gEwCmJsB,axCiuLtB,CAp3LA,4DwCqJoB,axCouLpB,CAz3LA,gEwCuJsB,UxCuuLtB,CA93LA,4EwCyJ4B,axC0uL5B,CAn4LA,gEwC2JsB,axC6uLtB,CAx4LA,4EwC6J4B,axCgvL5B,CA74LA,sEwC+JyB,axCmvLzB,CAl5LA,oEwCiKwB,axCsvLxB,CAv5LA,4DwCmKoB,axCyvLpB,CA55LA,wEwCqK0B,axC4vL1B,CAj6LA,wEwCuK0B,axC+vL1B,CAt6LA,8DwCyKqB,axCkwLrB,CA36LA,0EwC2K2B,axCqwL3B,CAh7LA,4DwC6KoB,axCwwLpB,CAr7LA,sEwC+KyB,axC2wLzB,CA17LA,4DwCiLoB,axC8wLpB,CA/7LA,wEwCmL0B,axCixL1B,CAp8LA,8EwCqL6B,axCoxL7B,CAz8LA,0EwCuL2B,axCuxL3B,CA98LA,4EwCyL4B,axC0xL5B,CAn9LA,8EwC2L6B,axC6xL7B,CAx9LA,wEwC6L0B,axCgyL1B,CA79LA,0EwCgM2B,wBxCkyL3B,CAl+LA,gEwCkMsB,wBxCqyLtB,CAv+LA,4EwCoM4B,wBxCwyL5B,CA5+LA,sEwCsMyB,wBxC2yLzB,CAj/LA,kEwCwMuB,wBxC8yLvB,CAt/LA,sEwC0MyB,qBxCizLzB,CA3/LA,kFwC4M+B,wBxCozL/B,CAhgMA,sEwC8MyB,wBxCuzLzB,CArgMA,kFwCgN+B,wBxC0zL/B,CA1gMA,4EwCkN4B,wBxC6zL5B,CA/gMA,0EwCoN2B,wBxCg0L3B,CAphMA,kEwCsNuB,wBxCm0LvB,CAzhMA,8EwCwN6B,wBxCs0L7B,CA9hMA,8EwC0N6B,wBxCy0L7B,CAniMA,oEwC4NwB,wBxC40LxB,CAxiMA,gFwC8N8B,wBxC+0L9B,CA7iMA,kEwCgOuB,wBxCk1LvB,CAljMA,4EwCkO4B,wBxCq1L5B,CAvjMA,kEwCoOuB,wBxCw1LvB,CA5jMA,8EwCsO6B,wBxC21L7B,CAjkMA,oFwCwOgC,wBxC81LhC,CAtkMA,gFwC0O8B,wBxCi2L9B,CA3kMA,kFwC4O+B,wBxCo2L/B,CAhlMA,oFwC8OgC,wBxCu2LhC,CArlMA,8EwCgP6B,wBxC02L7B,CA1lMA,wEwCkP0B,wBxC62L1B,CA/lMA,iByC6CO,SzCsjMP,CAnmMA,iByC8CO,czCyjMP,CAvmMA,iByC+CO,azC4jMP,CA3mMA,iByCgDO,YzC+jMP,CA/mMA,iByCiDO,YzCkkMP,CAnnMA,iByCkDO,YzCqkMP,CAvnMA,iByCmDO,YzCwkMP,CA3nMA,iByCoDO,azC2kMP,CA/nMA,iByCsDO,czC6kMP,CAnoMA,iByCuDO,mBzCglMP,CAvoMA,iByCwDO,kBzCmlMP,CA3oMA,iByCyDO,iBzCslMP,CA/oMA,iByC0DO,iBzCylMP,CAnpMA,iByC2DO,iBzC4lMP,CAvpMA,iByC4DO,iBzC+lMP,CA3pMA,iByC6DO,kBzCkmMP,CA/pMA,iByC+DO,ezComMP,CAnqMA,iByCgEO,oBzCumMP,CAvqMA,iByCiEO,mBzC0mMP,CA3qMA,iByCkEO,kBzC6mMP,CA/qMA,iByCmEO,kBzCgnMP,CAnrMA,iByCoEO,kBzCmnMP,CAvrMA,iByCqEO,kBzCsnMP,CA3rMA,iByCsEO,mBzCynMP,CA/rMA,iByCwEO,gBzC2nMP,CAnsMA,iByCyEO,qBzC8nMP,CAvsMA,iByC0EO,oBzCioMP,CA3sMA,iByC2EO,mBzCooMP,CA/sMA,iByC4EO,mBzCuoMP,CAntMA,iByC6EO,mBzC0oMP,CAvtMA,iByC8EO,mBzC6oMP,CA3tMA,iByC+EO,oBzCgpMP,CA/tMA,iByCiFO,azCkpMP,CAnuMA,iByCkFO,kBzCqpMP,CAvuMA,iByCmFO,iBzCwpMP,CA3uMA,iByCoFO,gBzC2pMP,CA/uMA,iByCqFO,gBzC8pMP,CAnvMA,iByCsFO,gBzCiqMP,CAvvMA,iByCuFO,gBzCoqMP,CA3vMA,iByCwFO,iBzCuqMP,CA/vMA,iByC4FE,gBCpEc,CDmEd,azCyqMF,CApwMA,iByCgGE,qBCvE0B,CDsE1B,kBzC0qMF,CAzwMA,iByCoGE,oBC1EmB,CDyEnB,iBzC2qMF,CA9wMA,iByCwGE,mBC7EmB,CD4EnB,gBzC4qMF,CAnxMA,iByC4GE,mBChFkB,CD+ElB,gBzC6qMF,CAxxMA,iByCgHE,mBCnFwB,CDkFxB,gBzC8qMF,CA7xMA,iByCoHE,mBCtF8B,CDqF9B,gBzC+qMF,CAlyMA,iByCyHE,oBC1FqC,CDyFrC,iBzC+qMF,CAvyMA,iByC6HE,cCrGc,CDsGd,ezC8qMF,CA5yMA,iByCkIE,mBCzG0B,CD0G1B,oBzC8qMF,CAjzMA,iByCuIE,kBC7GmB,CD8GnB,mBzC8qMF,CAtzMA,iByC4IE,iBCjHmB,CDkHnB,kBzC8qMF,CA3zMA,iByCiJE,iBCrHkB,CDsHlB,kBzC8qMF,CAh0MA,iByCsJE,iBCzHwB,CD0HxB,kBzC8qMF,CAr0MA,iByC2JE,iBC7H8B,CD8H9B,kBzC8qMF,CA10MA,iByCgKE,kBCjIqC,CDkIrC,mBzC8qMF,CA/0MA,iByCoKS,QzC+qMT,CAn1MA,iByCqKQ,azCkrMR,CAv1MA,iByCsKS,YzCqrMT,CA31MA,iByCuKS,WzCwrMT,CA/1MA,iByCwKS,WzC2rMT,CAn2MA,iByCyKS,WzC8rMT,CAv2MA,iByC0KQ,WzCisMR,CA32MA,iByC2KO,YzCosMP,CA/2MA,iByC6KS,azCssMT,CAn3MA,iByC8KQ,kBzCysMR,CAv3MA,iByC+KS,iBzC4sMT,CA33MA,iByCgLS,gBzC+sMT,CA/3MA,iByCiLS,gBzCktMT,CAn4MA,iByCkLS,gBzCqtMT,CAv4MA,iByCmLQ,gBzCwtMR,CA34MA,iByCoLO,iBzC2tMP,CA/4MA,iByCsLS,czC6tMT,CAn5MA,iByCuLQ,mBzCguMR,CAv5MA,iByCwLS,kBzCmuMT,CA35MA,iByCyLS,iBzCsuMT,CA/5MA,iByC0LS,iBzCyuMT,CAn6MA,iByC2LS,iBzC4uMT,CAv6MA,iByC4LQ,iBzC+uMR,CA36MA,iByC6LO,kBzCkvMP,CA/6MA,iByC+LS,ezCovMT,CAn7MA,iByCgMQ,oBzCuvMR,CAv7MA,iByCiMS,mBzC0vMT,CA37MA,iByCkMS,kBzC6vMT,CA/7MA,iByCmMS,kBzCgwMT,CAn8MA,iByCoMS,kBzCmwMT,CAv8MA,iByCqMQ,kBzCswMR,CA38MA,iByCsMO,mBzCywMP,CA/8MA,iByCwMS,YzC2wMT,CAn9MA,iByCyMQ,iBzC8wMR,CAv9MA,iByC0MS,gBzCixMT,CA39MA,iByC2MS,ezCoxMT,CA/9MA,iByC4MS,ezCuxMT,CAn+MA,iByC6MS,ezC0xMT,CAv+MA,iByC8MQ,ezC6xMR,CA3+MA,iByC+MO,gBzCgyMP,CA/+MA,iByCmNE,eC3Lc,CD0Ld,YzCkyMF,CAp/MA,iByCuNE,oBC9L0B,CD6L1B,iBzCmyMF,CAz/MA,iByC2NE,mBCjMmB,CDgMnB,gBzCoyMF,CA9/MA,iByC+NE,kBCpMmB,CDmMnB,ezCqyMF,CAngNA,iByCmOE,kBCvMkB,CDsMlB,ezCsyMF,CAxgNA,iByCuOE,kBC1MwB,CDyMxB,ezCuyMF,CA7gNA,iByC2OE,kBC7M8B,CD4M9B,ezCwyMF,CAlhNA,iByC+OE,mBChNqC,CD+MrC,gBzCyyMF,CAvhNA,iByCmPE,aC3Nc,CD4Nd,czCwyMF,CA5hNA,iByCuPE,kBC9N0B,CD+N1B,mBzCyyMF,CAjiNA,iByC2PE,iBCjOmB,CDkOnB,kBzC0yMF,CAtiNA,iByC+PE,gBCpOmB,CDqOnB,iBzC2yMF,CA3iNA,iByCmQE,gBCvOkB,CDwOlB,iBzC4yMF,CAhjNA,iByCuQE,gBC1OwB,CD2OxB,iBzC6yMF,CArjNA,iByC2QE,gBC7O8B,CD8O9B,iBzC8yMF,CA1jNA,iByC+QE,iBChPqC,CDiPrC,kBzC+yMF,CyC5yMA,mCzCnRA,oByCoRc,SzCgzMZ,CApkNF,oByCqRa,czCkzMX,CAvkNF,oByCsRc,azCozMZ,CA1kNF,oByCuRc,YzCszMZ,CA7kNF,oByCwRc,YzCwzMZ,CAhlNF,oByCyRc,YzC0zMZ,CAnlNF,oByC0Ra,YzC4zMX,CAtlNF,oByC2RY,azC8zMV,CAzlNF,oByC6Rc,czC+zMZ,CA5lNF,oByC8Ra,mBzCi0MX,CA/lNF,oByC+Rc,kBzCm0MZ,CAlmNF,oByCgSc,iBzCq0MZ,CArmNF,oByCiSc,iBzCu0MZ,CAxmNF,oByCkSc,iBzCy0MZ,CA3mNF,oByCmSa,iBzC20MX,CA9mNF,oByCoSY,kBzC60MV,CAjnNF,oByCsSc,ezC80MZ,CApnNF,oByCuSa,oBzCg1MX,CAvnNF,oByCwSc,mBzCk1MZ,CA1nNF,oByCySc,kBzCo1MZ,CA7nNF,oByC0Sc,kBzCs1MZ,CAhoNF,oByC2Sc,kBzCw1MZ,CAnoNF,oByC4Sa,kBzC01MX,CAtoNF,oByC6SY,mBzC41MV,CAzoNF,oByC+Sc,gBzC61MZ,CA5oNF,oByCgTa,qBzC+1MX,CA/oNF,oByCiTc,oBzCi2MZ,CAlpNF,oByCkTc,mBzCm2MZ,CArpNF,oByCmTc,mBzCq2MZ,CAxpNF,oByCoTc,mBzCu2MZ,CA3pNF,oByCqTa,mBzCy2MX,CA9pNF,oByCsTY,oBzC22MV,CAjqNF,oByCwTc,azC42MZ,CApqNF,oByCyTa,kBzC82MX,CAvqNF,oByC0Tc,iBzCg3MZ,CA1qNF,oByC2Tc,gBzCk3MZ,CA7qNF,oByC4Tc,gBzCo3MZ,CAhrNF,oByC6Tc,gBzCs3MZ,CAnrNF,oByC8Ta,gBzCw3MX,CAtrNF,oByC+TY,iBzC03MV,CAzrNF,oByCmUI,gBC3SY,CD0SZ,azC23MF,CA7rNF,oByCuUI,qBC9SwB,CD6SxB,kBzC23MF,CAjsNF,oByC2UI,oBCjTiB,CDgTjB,iBzC23MF,CArsNF,oByC+UI,mBCpTiB,CDmTjB,gBzC23MF,CAzsNF,oByCmVI,mBCvTgB,CDsThB,gBzC23MF,CA7sNF,oByCuVI,mBC1TsB,CDyTtB,gBzC23MF,CAjtNF,oByC2VI,mBC7T4B,CD4T5B,gBzC23MF,CArtNF,oByC+VI,oBChUmC,CD+TnC,iBzC23MF,CAztNF,oByCkWI,cC1UY,CD2UZ,ezC03MF,CA7tNF,oByCsWI,mBC7UwB,CD8UxB,oBzC03MF,CAjuNF,oByC0WI,kBChViB,CDiVjB,mBzC03MF,CAruNF,oByC8WI,iBCnViB,CDoVjB,kBzC03MF,CAzuNF,oByCkXI,iBCtVgB,CDuVhB,kBzC03MF,CA7uNF,oByCsXI,iBCzVsB,CD0VtB,kBzC03MF,CAjvNF,oByC0XI,iBC5V4B,CD6V5B,kBzC03MF,CArvNF,oByC8XI,kBC/VmC,CDgWnC,mBzC03MF,CAzvNF,oByCkYc,QzC03MZ,CA5vNF,oByCmYa,azC43MX,CA/vNF,oByCoYc,YzC83MZ,CAlwNF,oByCqYc,WzCg4MZ,CArwNF,oByCsYc,WzCk4MZ,CAxwNF,oByCuYc,WzCo4MZ,CA3wNF,oByCwYa,WzCs4MX,CA9wNF,oByCyYY,YzCw4MV,CAjxNF,oByC2Yc,azCy4MZ,CApxNF,oByC4Ya,kBzC24MX,CAvxNF,oByC6Yc,iBzC64MZ,CA1xNF,oByC8Yc,gBzC+4MZ,CA7xNF,oByC+Yc,gBzCi5MZ,CAhyNF,oByCgZc,gBzCm5MZ,CAnyNF,oByCiZa,gBzCq5MX,CAtyNF,oByCkZY,iBzCu5MV,CAzyNF,oByCoZc,czCw5MZ,CA5yNF,oByCqZa,mBzC05MX,CA/yNF,oByCsZc,kBzC45MZ,CAlzNF,oByCuZc,iBzC85MZ,CArzNF,oByCwZc,iBzCg6MZ,CAxzNF,oByCyZc,iBzCk6MZ,CA3zNF,oByC0Za,iBzCo6MX,CA9zNF,oByC2ZY,kBzCs6MV,CAj0NF,oByC6Zc,ezCu6MZ,CAp0NF,oByC8Za,oBzCy6MX,CAv0NF,oByC+Zc,mBzC26MZ,CA10NF,oByCgac,kBzC66MZ,CA70NF,oByCiac,kBzC+6MZ,CAh1NF,oByCkac,kBzCi7MZ,CAn1NF,oByCmaa,kBzCm7MX,CAt1NF,oByCoaY,mBzCq7MV,CAz1NF,oByCsac,YzCs7MZ,CA51NF,oByCuaa,iBzCw7MX,CA/1NF,oByCwac,gBzC07MZ,CAl2NF,oByCyac,ezC47MZ,CAr2NF,oByC0ac,ezC87MZ,CAx2NF,oByC2ac,ezCg8MZ,CA32NF,oByC4aa,ezCk8MX,CA92NF,oByC6aY,gBzCo8MV,CAj3NF,oByCibI,eCzZY,CDwZZ,YzCq8MF,CAr3NF,oByCqbI,oBC5ZwB,CD2ZxB,iBzCq8MF,CAz3NF,oByCybI,mBC/ZiB,CD8ZjB,gBzCq8MF,CA73NF,oByC6bI,kBClaiB,CDiajB,ezCq8MF,CAj4NF,oByCicI,kBCragB,CDoahB,ezCq8MF,CAr4NF,oByCqcI,kBCxasB,CDuatB,ezCq8MF,CAz4NF,oByCycI,kBC3a4B,CD0a5B,ezCq8MF,CA74NF,oByC6cI,mBC9amC,CD6anC,gBzCq8MF,CAj5NF,oByCidI,aCzbY,CD0bZ,czCm8MF,CAr5NF,oByCqdI,kBC5bwB,CD6bxB,mBzCm8MF,CAz5NF,oByCydI,iBC/biB,CDgcjB,kBzCm8MF,CA75NF,oByC6dI,gBClciB,CDmcjB,iBzCm8MF,CAj6NF,oByCieI,gBCrcgB,CDschB,iBzCm8MF,CAr6NF,oByCqeI,gBCxcsB,CDyctB,iBzCm8MF,CAz6NF,oByCyeI,gBC3c4B,CD4c5B,iBzCm8MF,CA76NF,oByC6eI,iBC9cmC,CD+cnC,kBzCm8MF,CACF,CyC/7MA,wDzCnfA,mByCofa,SzCm8MX,CAv7NF,mByCqfY,czCq8MV,CA17NF,mByCsfa,azCu8MX,CA77NF,mByCufa,YzCy8MX,CAh8NF,mByCwfa,YzC28MX,CAn8NF,mByCyfa,YzC68MX,CAt8NF,mByC0fY,YzC+8MV,CAz8NF,mByC2fW,azCi9MT,CA58NF,mByC6fa,czCk9MX,CA/8NF,mByC8fY,mBzCo9MV,CAl9NF,mByC+fa,kBzCs9MX,CAr9NF,mByCggBa,iBzCw9MX,CAx9NF,mByCigBa,iBzC09MX,CA39NF,mByCkgBa,iBzC49MX,CA99NF,mByCmgBY,iBzC89MV,CAj+NF,mByCogBW,kBzCg+MT,CAp+NF,mByCsgBa,ezCi+MX,CAv+NF,mByCugBY,oBzCm+MV,CA1+NF,mByCwgBa,mBzCq+MX,CA7+NF,mByCygBa,kBzCu+MX,CAh/NF,mByC0gBa,kBzCy+MX,CAn/NF,mByC2gBa,kBzC2+MX,CAt/NF,mByC4gBY,kBzC6+MV,CAz/NF,mByC6gBW,mBzC++MT,CA5/NF,mByC+gBa,gBzCg/MX,CA//NF,mByCghBY,qBzCk/MV,CAlgOF,mByCihBa,oBzCo/MX,CArgOF,mByCkhBa,mBzCs/MX,CAxgOF,mByCmhBa,mBzCw/MX,CA3gOF,mByCohBa,mBzC0/MX,CA9gOF,mByCqhBY,mBzC4/MV,CAjhOF,mByCshBW,oBzC8/MT,CAphOF,mByCwhBa,azC+/MX,CAvhOF,mByCyhBY,kBzCigNV,CA1hOF,mByC0hBa,iBzCmgNX,CA7hOF,mByC2hBa,gBzCqgNX,CAhiOF,mByC4hBa,gBzCugNX,CAniOF,mByC6hBa,gBzCygNX,CAtiOF,mByC8hBY,gBzC2gNV,CAziOF,mByC+hBW,iBzC6gNT,CA5iOF,mByCmiBI,gBC3gBY,CD0gBZ,azC8gNF,CAhjOF,mByCuiBI,qBC9gBwB,CD6gBxB,kBzC8gNF,CApjOF,mByC2iBI,oBCjhBiB,CDghBjB,iBzC8gNF,CAxjOF,mByC+iBI,mBCphBiB,CDmhBjB,gBzC8gNF,CA5jOF,mByCmjBI,mBCvhBgB,CDshBhB,gBzC8gNF,CAhkOF,mByCujBI,mBC1hBsB,CDyhBtB,gBzC8gNF,CApkOF,mByC2jBI,mBC7hB4B,CD4hB5B,gBzC8gNF,CAxkOF,mByC+jBI,oBChiBmC,CD+hBnC,iBzC8gNF,CA5kOF,mByCmkBI,cC3iBY,CD4iBZ,ezC4gNF,CAhlOF,mByCukBI,mBC9iBwB,CD+iBxB,oBzC4gNF,CAplOF,mByC2kBI,kBCjjBiB,CDkjBjB,mBzC4gNF,CAxlOF,mByC+kBI,iBCpjBiB,CDqjBjB,kBzC4gNF,CA5lOF,mByCmlBI,iBCvjBgB,CDwjBhB,kBzC4gNF,CAhmOF,mByCulBI,iBC1jBsB,CD2jBtB,kBzC4gNF,CApmOF,mByC2lBI,iBC7jB4B,CD8jB5B,kBzC4gNF,CAxmOF,mByC+lBI,kBChkBmC,CDikBnC,mBzC4gNF,CA5mOF,mByCmmBa,QzC4gNX,CA/mOF,mByComBY,azC8gNV,CAlnOF,mByCqmBa,YzCghNX,CArnOF,mByCsmBa,WzCkhNX,CAxnOF,mByCumBa,WzCohNX,CA3nOF,mByCwmBa,WzCshNX,CA9nOF,mByCymBY,WzCwhNV,CAjoOF,mByC0mBW,YzC0hNT,CApoOF,mByC4mBa,azC2hNX,CAvoOF,mByC6mBY,kBzC6hNV,CA1oOF,mByC8mBa,iBzC+hNX,CA7oOF,mByC+mBa,gBzCiiNX,CAhpOF,mByCgnBa,gBzCmiNX,CAnpOF,mByCinBa,gBzCqiNX,CAtpOF,mByCknBY,gBzCuiNV,CAzpOF,mByCmnBW,iBzCyiNT,CA5pOF,mByCqnBa,czC0iNX,CA/pOF,mByCsnBY,mBzC4iNV,CAlqOF,mByCunBa,kBzC8iNX,CArqOF,mByCwnBa,iBzCgjNX,CAxqOF,mByCynBa,iBzCkjNX,CA3qOF,mByC0nBa,iBzCojNX,CA9qOF,mByC2nBY,iBzCsjNV,CAjrOF,mByC4nBW,kBzCwjNT,CAprOF,mByC8nBa,ezCyjNX,CAvrOF,mByC+nBY,oBzC2jNV,CA1rOF,mByCgoBa,mBzC6jNX,CA7rOF,mByCioBa,kBzC+jNX,CAhsOF,mByCkoBa,kBzCikNX,CAnsOF,mByCmoBa,kBzCmkNX,CAtsOF,mByCooBY,kBzCqkNV,CAzsOF,mByCqoBW,mBzCukNT,CA5sOF,mByCuoBa,YzCwkNX,CA/sOF,mByCwoBY,iBzC0kNV,CAltOF,mByCyoBa,gBzC4kNX,CArtOF,mByC0oBa,ezC8kNX,CAxtOF,mByC2oBa,ezCglNX,CA3tOF,mByC4oBa,ezCklNX,CA9tOF,mByC6oBY,ezColNV,CAjuOF,mByC8oBW,gBzCslNT,CApuOF,mByCkpBI,eC1nBY,CDynBZ,YzCulNF,CAxuOF,mByCspBI,oBC7nBwB,CD4nBxB,iBzCulNF,CA5uOF,mByC0pBI,mBChoBiB,CD+nBjB,gBzCulNF,CAhvOF,mByC8pBI,kBCnoBiB,CDkoBjB,ezCulNF,CApvOF,mByCkqBI,kBCtoBgB,CDqoBhB,ezCulNF,CAxvOF,mByCsqBI,kBCzoBsB,CDwoBtB,ezCulNF,CA5vOF,mByC0qBI,kBC5oB4B,CD2oB5B,ezCulNF,CAhwOF,mByC8qBI,mBC/oBmC,CD8oBnC,gBzCulNF,CApwOF,mByCkrBI,aC1pBY,CD2pBZ,czCqlNF,CAxwOF,mByCsrBI,kBC7pBwB,CD8pBxB,mBzCqlNF,CA5wOF,mByC0rBI,iBChqBiB,CDiqBjB,kBzCqlNF,CAhxOF,mByC8rBI,gBCnqBiB,CDoqBjB,iBzCqlNF,CApxOF,mByCksBI,gBCtqBgB,CDuqBhB,iBzCqlNF,CAxxOF,mByCssBI,gBCzqBsB,CD0qBtB,iBzCqlNF,CA5xOF,mByC0sBI,gBC5qB4B,CD6qB5B,iBzCqlNF,CAhyOF,mByC8sBI,iBC/qBmC,CDgrBnC,kBzCqlNF,CACF,CyCjlNA,mCzCptBA,mByCqtBa,SzCqlNX,CA1yOF,mByCstBY,czCulNV,CA7yOF,mByCutBa,azCylNX,CAhzOF,mByCwtBa,YzC2lNX,CAnzOF,mByCytBa,YzC6lNX,CAtzOF,mByC0tBa,YzC+lNX,CAzzOF,mByC2tBY,YzCimNV,CA5zOF,mByC4tBW,azCmmNT,CA/zOF,mByC8tBa,czComNX,CAl0OF,mByC+tBY,mBzCsmNV,CAr0OF,mByCguBa,kBzCwmNX,CAx0OF,mByCiuBa,iBzC0mNX,CA30OF,mByCkuBa,iBzC4mNX,CA90OF,mByCmuBa,iBzC8mNX,CAj1OF,mByCouBY,iBzCgnNV,CAp1OF,mByCquBW,kBzCknNT,CAv1OF,mByCuuBa,ezCmnNX,CA11OF,mByCwuBY,oBzCqnNV,CA71OF,mByCyuBa,mBzCunNX,CAh2OF,mByC0uBa,kBzCynNX,CAn2OF,mByC2uBa,kBzC2nNX,CAt2OF,mByC4uBa,kBzC6nNX,CAz2OF,mByC6uBY,kBzC+nNV,CA52OF,mByC8uBW,mBzCioNT,CA/2OF,mByCgvBa,gBzCkoNX,CAl3OF,mByCivBY,qBzCooNV,CAr3OF,mByCkvBa,oBzCsoNX,CAx3OF,mByCmvBa,mBzCwoNX,CA33OF,mByCovBa,mBzC0oNX,CA93OF,mByCqvBa,mBzC4oNX,CAj4OF,mByCsvBY,mBzC8oNV,CAp4OF,mByCuvBW,oBzCgpNT,CAv4OF,mByCyvBa,azCipNX,CA14OF,mByC0vBY,kBzCmpNV,CA74OF,mByC2vBa,iBzCqpNX,CAh5OF,mByC4vBa,gBzCupNX,CAn5OF,mByC6vBa,gBzCypNX,CAt5OF,mByC8vBa,gBzC2pNX,CAz5OF,mByC+vBY,gBzC6pNV,CA55OF,mByCgwBW,iBzC+pNT,CA/5OF,mByCowBI,gBC5uBY,CD2uBZ,azCgqNF,CAn6OF,mByCwwBI,qBC/uBwB,CD8uBxB,kBzCgqNF,CAv6OF,mByC4wBI,oBClvBiB,CDivBjB,iBzCgqNF,CA36OF,mByCgxBI,mBCrvBiB,CDovBjB,gBzCgqNF,CA/6OF,mByCoxBI,mBCxvBgB,CDuvBhB,gBzCgqNF,CAn7OF,mByCwxBI,mBC3vBsB,CD0vBtB,gBzCgqNF,CAv7OF,mByC4xBI,mBC9vB4B,CD6vB5B,gBzCgqNF,CA37OF,mByCgyBI,oBCjwBmC,CDgwBnC,iBzCgqNF,CA/7OF,mByCoyBI,cC5wBY,CD6wBZ,ezC8pNF,CAn8OF,mByCwyBI,mBC/wBwB,CDgxBxB,oBzC8pNF,CAv8OF,mByC4yBI,kBClxBiB,CDmxBjB,mBzC8pNF,CA38OF,mByCgzBI,iBCrxBiB,CDsxBjB,kBzC8pNF,CA/8OF,mByCozBI,iBCxxBgB,CDyxBhB,kBzC8pNF,CAn9OF,mByCwzBI,iBC3xBsB,CD4xBtB,kBzC8pNF,CAv9OF,mByC4zBI,iBC9xB4B,CD+xB5B,kBzC8pNF,CA39OF,mByCg0BI,kBCjyBmC,CDkyBnC,mBzC8pNF,CA/9OF,mByCo0Ba,QzC8pNX,CAl+OF,mByCq0BY,azCgqNV,CAr+OF,mByCs0Ba,YzCkqNX,CAx+OF,mByCu0Ba,WzCoqNX,CA3+OF,mByCw0Ba,WzCsqNX,CA9+OF,mByCy0Ba,WzCwqNX,CAj/OF,mByC00BY,WzC0qNV,CAp/OF,mByC20BW,YzC4qNT,CAv/OF,mByC60Ba,azC6qNX,CA1/OF,mByC80BY,kBzC+qNV,CA7/OF,mByC+0Ba,iBzCirNX,CAhgPF,mByCg1Ba,gBzCmrNX,CAngPF,mByCi1Ba,gBzCqrNX,CAtgPF,mByCk1Ba,gBzCurNX,CAzgPF,mByCm1BY,gBzCyrNV,CA5gPF,mByCo1BW,iBzC2rNT,CA/gPF,mByCs1Ba,czC4rNX,CAlhPF,mByCu1BY,mBzC8rNV,CArhPF,mByCw1Ba,kBzCgsNX,CAxhPF,mByCy1Ba,iBzCksNX,CA3hPF,mByC01Ba,iBzCosNX,CA9hPF,mByC21Ba,iBzCssNX,CAjiPF,mByC41BY,iBzCwsNV,CApiPF,mByC61BW,kBzC0sNT,CAviPF,mByC+1Ba,ezC2sNX,CA1iPF,mByCg2BY,oBzC6sNV,CA7iPF,mByCi2Ba,mBzC+sNX,CAhjPF,mByCk2Ba,kBzCitNX,CAnjPF,mByCm2Ba,kBzCmtNX,CAtjPF,mByCo2Ba,kBzCqtNX,CAzjPF,mByCq2BY,kBzCutNV,CA5jPF,mByCs2BW,mBzCytNT,CA/jPF,mByCw2Ba,YzC0tNX,CAlkPF,mByCy2BY,iBzC4tNV,CArkPF,mByC02Ba,gBzC8tNX,CAxkPF,mByC22Ba,ezCguNX,CA3kPF,mByC42Ba,ezCkuNX,CA9kPF,mByC62Ba,ezCouNX,CAjlPF,mByC82BY,ezCsuNV,CAplPF,mByC+2BW,gBzCwuNT,CAvlPF,mByCm3BI,eC31BY,CD01BZ,YzCyuNF,CA3lPF,mByCu3BI,oBC91BwB,CD61BxB,iBzCyuNF,CA/lPF,mByC23BI,mBCj2BiB,CDg2BjB,gBzCyuNF,CAnmPF,mByC+3BI,kBCp2BiB,CDm2BjB,ezCyuNF,CAvmPF,mByCm4BI,kBCv2BgB,CDs2BhB,ezCyuNF,CA3mPF,mByCu4BI,kBC12BsB,CDy2BtB,ezCyuNF,CA/mPF,mByC24BI,kBC72B4B,CD42B5B,ezCyuNF,CAnnPF,mByC+4BI,mBCh3BmC,CD+2BnC,gBzCyuNF,CAvnPF,mByCm5BI,aC33BY,CD43BZ,czCuuNF,CA3nPF,mByCu5BI,kBC93BwB,CD+3BxB,mBzCuuNF,CA/nPF,mByC25BI,iBCj4BiB,CDk4BjB,kBzCuuNF,CAnoPF,mByC+5BI,gBCp4BiB,CDq4BjB,iBzCuuNF,CAvoPF,mByCm6BI,gBCv4BgB,CDw4BhB,iBzCuuNF,CA3oPF,mByCu6BI,gBC14BsB,CD24BtB,iBzCuuNF,CA/oPF,mByC26BI,gBC74B4B,CD84B5B,iBzCuuNF,CAnpPF,mByC+6BI,iBCh5BmC,CDi5BnC,kBzCuuNF,CACF,CAxpPA,iB2CqCO,c3CunPP,CA5pPA,iB2CsCO,a3C0nPP,CAhqPA,iB2CuCO,Y3C6nPP,CApqPA,iB2CwCO,Y3CgoPP,CAxqPA,iB2CyCO,Y3CmoPP,CA5qPA,iB2C0CO,Y3CsoPP,CAhrPA,iB2C2CO,a3CyoPP,CAprPA,iB2C6CO,mB3C2oPP,CAxrPA,iB2C8CO,kB3C8oPP,CA5rPA,iB2C+CO,iB3CipPP,CAhsPA,iB2CgDO,iB3CopPP,CApsPA,iB2CiDO,iB3CupPP,CAxsPA,iB2CkDO,iB3C0pPP,CA5sPA,iB2CmDO,kB3C6pPP,CAhtPA,iB2CqDO,oB3C+pPP,CAptPA,iB2CsDO,mB3CkqPP,CAxtPA,iB2CuDO,kB3CqqPP,CA5tPA,iB2CwDO,kB3CwqPP,CAhuPA,iB2CyDO,kB3C2qPP,CApuPA,iB2C0DO,kB3C8qPP,CAxuPA,iB2C2DO,mB3CirPP,CA5uPA,iB2C6DO,qB3CmrPP,CAhvPA,iB2C8DO,oB3CsrPP,CApvPA,iB2C+DO,mB3CyrPP,CAxvPA,iB2CgEO,mB3C4rPP,CA5vPA,iB2CiEO,mB3C+rPP,CAhwPA,iB2CkEO,mB3CksPP,CApwPA,iB2CmEO,oB3CqsPP,CAxwPA,iB2CqEO,kB3CusPP,CA5wPA,iB2CsEO,iB3C0sPP,CAhxPA,iB2CuEO,gB3C6sPP,CApxPA,iB2CwEO,gB3CgtPP,CAxxPA,iB2CyEO,gB3CmtPP,CA5xPA,iB2C0EO,gB3CstPP,CAhyPA,iB2C2EO,iB3CytPP,C2CvtPA,mC3C7EA,oB2C+EY,c3C0tPV,CAzyPF,oB2CgFY,a3C4tPV,CA5yPF,oB2CiFY,Y3C8tPV,CA/yPF,oB2CkFY,Y3CguPV,CAlzPF,oB2CmFY,Y3CkuPV,CArzPF,oB2CoFY,Y3CouPV,CAxzPF,oB2CqFY,a3CsuPV,CA3zPF,oB2CuFY,mB3CuuPV,CA9zPF,oB2CwFY,kB3CyuPV,CAj0PF,oB2CyFY,iB3C2uPV,CAp0PF,oB2C0FY,iB3C6uPV,CAv0PF,oB2C2FY,iB3C+uPV,CA10PF,oB2C4FY,iB3CivPV,CA70PF,oB2C6FY,kB3CmvPV,CAh1PF,oB2C+FY,oB3CovPV,CAn1PF,oB2CgGY,mB3CsvPV,CAt1PF,oB2CiGY,kB3CwvPV,CAz1PF,oB2CkGY,kB3C0vPV,CA51PF,oB2CmGY,kB3C4vPV,CA/1PF,oB2CoGY,kB3C8vPV,CAl2PF,oB2CqGY,mB3CgwPV,CAr2PF,oB2CuGY,qB3CiwPV,CAx2PF,oB2CwGY,oB3CmwPV,CA32PF,oB2CyGY,mB3CqwPV,CA92PF,oB2C0GY,mB3CuwPV,CAj3PF,oB2C2GY,mB3CywPV,CAp3PF,oB2C4GY,mB3C2wPV,CAv3PF,oB2C6GY,oB3C6wPV,CA13PF,oB2C+GY,kB3C8wPV,CA73PF,oB2CgHY,iB3CgxPV,CAh4PF,oB2CiHY,gB3CkxPV,CAn4PF,oB2CkHY,gB3CoxPV,CAt4PF,oB2CmHY,gB3CsxPV,CAz4PF,oB2CoHY,gB3CwxPV,CA54PF,oB2CqHY,iB3C0xPV,CACF,C2CvxPA,wD3CzHA,mB2C0HW,c3C2xPT,CAr5PF,mB2C2HW,a3C6xPT,CAx5PF,mB2C4HW,Y3C+xPT,CA35PF,mB2C6HW,Y3CiyPT,CA95PF,mB2C8HW,Y3CmyPT,CAj6PF,mB2C+HW,Y3CqyPT,CAp6PF,mB2CgIW,a3CuyPT,CAv6PF,mB2CkIW,mB3CwyPT,CA16PF,mB2CmIW,kB3C0yPT,CA76PF,mB2CoIW,iB3C4yPT,CAh7PF,mB2CqIW,iB3C8yPT,CAn7PF,mB2CsIW,iB3CgzPT,CAt7PF,mB2CuIW,iB3CkzPT,CAz7PF,mB2CwIW,kB3CozPT,CA57PF,mB2C0IW,oB3CqzPT,CA/7PF,mB2C2IW,mB3CuzPT,CAl8PF,mB2C4IW,kB3CyzPT,CAr8PF,mB2C6IW,kB3C2zPT,CAx8PF,mB2C8IW,kB3C6zPT,CA38PF,mB2C+IW,kB3C+zPT,CA98PF,mB2CgJW,mB3Ci0PT,CAj9PF,mB2CkJW,qB3Ck0PT,CAp9PF,mB2CmJW,oB3Co0PT,CAv9PF,mB2CoJW,mB3Cs0PT,CA19PF,mB2CqJW,mB3Cw0PT,CA79PF,mB2CsJW,mB3C00PT,CAh+PF,mB2CuJW,mB3C40PT,CAn+PF,mB2CwJW,oB3C80PT,CAt+PF,mB2C0JW,kB3C+0PT,CAz+PF,mB2C2JW,iB3Ci1PT,CA5+PF,mB2C4JW,gB3Cm1PT,CA/+PF,mB2C6JW,gB3Cq1PT,CAl/PF,mB2C8JW,gB3Cu1PT,CAr/PF,mB2C+JW,gB3Cy1PT,CAx/PF,mB2CgKW,iB3C21PT,CACF,C2Cx1PA,mC3CpKA,mB2CqKW,c3C41PT,CAjgQF,mB2CsKW,a3C81PT,CApgQF,mB2CuKW,Y3Cg2PT,CAvgQF,mB2CwKW,Y3Ck2PT,CA1gQF,mB2CyKW,Y3Co2PT,CA7gQF,mB2C0KW,Y3Cs2PT,CAhhQF,mB2C2KW,a3Cw2PT,CAnhQF,mB2C6KW,mB3Cy2PT,CAthQF,mB2C8KW,kB3C22PT,CAzhQF,mB2C+KW,iB3C62PT,CA5hQF,mB2CgLW,iB3C+2PT,CA/hQF,mB2CiLW,iB3Ci3PT,CAliQF,mB2CkLW,iB3Cm3PT,CAriQF,mB2CmLW,kB3Cq3PT,CAxiQF,mB2CqLW,oB3Cs3PT,CA3iQF,mB2CsLW,mB3Cw3PT,CA9iQF,mB2CuLW,kB3C03PT,CAjjQF,mB2CwLW,kB3C43PT,CApjQF,mB2CyLW,kB3C83PT,CAvjQF,mB2C0LW,kB3Cg4PT,CA1jQF,mB2C2LW,mB3Ck4PT,CA7jQF,mB2C6LW,qB3Cm4PT,CAhkQF,mB2C8LW,oB3Cq4PT,CAnkQF,mB2C+LW,mB3Cu4PT,CAtkQF,mB2CgMW,mB3Cy4PT,CAzkQF,mB2CiMW,mB3C24PT,CA5kQF,mB2CkMW,mB3C64PT,CA/kQF,mB2CmMW,oB3C+4PT,CAllQF,mB2CqMW,kB3Cg5PT,CArlQF,mB2CsMW,iB3Ck5PT,CAxlQF,mB2CuMW,gB3Co5PT,CA3lQF,mB2CwMW,gB3Cs5PT,CA9lQF,mB2CyMW,gB3Cw5PT,CAjmQF,mB2C0MW,gB3C05PT,CApmQF,mB2C2MW,iB3C45PT,CACF,CAxmQA,sB4CeI,wBAAyB,CACzB,gB5C6lQJ,CA7mQA,kD4CoBE,qB5C6lQF,CAjnQA,+C4CwBE,qB5C6lQF,CArnQA,gD4C4BE,qB5C6lQF,CAznQA,gD4CgCE,wB5C6lQF,CA7nQA,yC4CoCE,mC5C6lQF,CAjoQA,wC4CwCE,+B5C6lQF,CAroQA,oB6CoBgB,4B7CqnQhB,CAzoQA,uB6CqBgB,yB7CwnQhB,CA7oQA,0B6CsBgB,oB7C2nQhB,C6CxnQA,mC7CzBA,uB6C0BqB,4B7C4nQnB,CAtpQF,0B6C2BqB,yB7C8nQnB,CAzpQF,6B6C4BqB,oB7CgoQnB,CACF,C6C9nQA,wD7C/BA,sB6CgCoB,4B7CkoQlB,CAlqQF,yB6CiCoB,yB7CooQlB,CArqQF,4B6CkCoB,oB7CsoQlB,CACF,C6CpoQA,mC7CrCA,sB6CsCoB,4B7CwoQlB,CA9qQF,yB6CuCoB,yB7C0oQlB,CAjrQF,4B6CwCoB,oB7C4oQlB,CACF,CArrQA,gB8C4BO,e9C6pQP,CAzrQA,gB8C6BO,gB9CgqQP,CA7rQA,gB8C8BO,iB9CmqQP,CAjsQA,gB8C+BO,kB9CsqQP,C8CpqQA,mC9CjCA,mB8CkCY,e9CwqQV,CA1sQF,mB8CmCY,gB9C0qQV,CA7sQF,mB8CoCY,iB9C4qQV,CAhtQF,mB8CqCY,kB9C8qQV,CACF,C8C5qQA,wD9CxCA,kB8CyCW,e9CgrQT,CAztQF,kB8C0CW,gB9CkrQT,CA5tQF,kB8C2CW,iB9CorQT,CA/tQF,kB8C4CW,kB9CsrQT,CACF,C8CprQA,mC9C/CA,kB8CgDW,e9CwrQT,CAxuQF,kB8CiDW,gB9C0rQT,CA3uQF,kB8CkDW,iB9C4rQT,CA9uQF,kB8CmDW,kB9C8rQT,CACF,CAlvQA,iB+C4BO,yB/C0tQP,CAtvQA,iB+C6BO,wB/C6tQP,CA1vQA,iB+C8BO,wB/CguQP,CA9vQA,iB+C+BO,mB/CmuQP,C+CjuQA,mC/CjCA,oB+CkCY,yB/CquQV,CAvwQF,oB+CmCY,wB/CuuQV,CA1wQF,oB+CoCY,wB/CyuQV,CA7wQF,oB+CqCY,mB/C2uQV,CACF,C+CzuQA,wD/CxCA,mB+CyCW,yB/C6uQT,CAtxQF,mB+C0CW,wB/C+uQT,CAzxQF,mB+C2CW,wB/CivQT,CA5xQF,mB+C4CW,mB/CmvQT,CACF,C+CjvQA,mC/C/CA,mB+CgDW,yB/CqvQT,CAryQF,mB+CiDW,wB/CuvQT,CAxyQF,mB+CkDW,wB/CyvQT,CA3yQF,mB+CmDW,mB/C2vQT,CACF,CA/yQA,yCgDsCE,chD8wQF,CApzQA,4CgD0CE,chD+wQF,CAzzQA,gBgDiDM,chD4wQN,CA7zQA,gBgDkDM,iBhD+wQN,CAj0QA,gBgDmDM,gBhDkxQN,CAr0QA,gBgDoDM,iBhDqxQN,CAz0QA,gBgDqDM,chDwxQN,CA70QA,gBgDsDM,iBhD2xQN,CAj1QA,gBgDuDM,gBhD8xQN,CgD5xQA,mChDzDA,+CgD2DmB,chDgyQjB,CA31QF,kDgD6DsB,chDkyQpB,CA/1QF,mBgD8DW,chDoyQT,CAl2QF,mBgD+DW,iBhDsyQT,CAr2QF,mBgDgEW,gBhDwyQT,CAx2QF,mBgDiEW,iBhD0yQT,CA32QF,mBgDkEW,chD4yQT,CA92QF,mBgDmEW,iBhD8yQT,CAj3QF,mBgDoEW,gBhDgzQT,CACF,CgD9yQA,wDhDvEA,6CgDyEkB,chDkzQhB,CA33QF,gDgD2EqB,chDozQnB,CA/3QF,kBgD4EU,chDszQR,CAl4QF,kBgD6EU,iBhDwzQR,CAr4QF,kBgD8EU,gBhD0zQR,CAx4QF,kBgD+EU,iBhD4zQR,CA34QF,kBgDgFU,chD8zQR,CA94QF,kBgDiFU,iBhDg0QR,CAj5QF,kBgDkFU,gBhDk0QR,CACF,CgDh0QA,mChDrFA,6CgDwFI,chDm0QF,CA35QF,gDgD4FI,chDm0QF,CA/5QF,kBgD8FU,chDo0QR,CAl6QF,kBgD+FU,iBhDs0QR,CAr6QF,kBgDgGU,gBhDw0QR,CAx6QF,kBgDiGU,iBhD00QR,CA36QF,kBgDkGU,chD40QR,CA96QF,kBgDmGU,iBhD80QR,CAj7QF,kBgDoGU,gBhDg1QR,CACF,CAr7QA,qBiDuBE,cjDk6QF,CAz7QA,0BiD4BE,cjDi6QF,CA77QA,4BiDiCE,cjDg6QF,CAj8QA,oBiDwCE,eAAgB,CADhB,YAAa,CADb,ejDi6QF,CAv8QA,wBiD4CE,4BAAwB,CAAxB,uBjD+5QF,CA38QA,sBiDmDE,eAAgB,CAChB,sBAAuB,CAFvB,kBjD+5QF,CiD15QA,mCjDvDA,wBiDyDI,cjD65QF,CAt9QF,6BiD4DI,cjD65QF,CAz9QF,+BiD+DI,cjD65QF,CA59QF,uBiDoEI,eAAgB,CADhB,YAAa,CADb,ejD+5QF,CAj+QF,2BiDuEI,4BAAwB,CAAxB,uBjD65QF,CAp+QF,yBiD2EI,eAAgB,CAChB,sBAAuB,CAFvB,kBjD+5QF,CACF,CiD15QA,wDjDhFA,uBiDkFI,cjD65QF,CA/+QF,4BiDqFI,cjD65QF,CAl/QF,8BiDwFI,cjD65QF,CAr/QF,sBiD6FI,eAAgB,CADhB,YAAa,CADb,ejD+5QF,CA1/QF,0BiDgGI,4BAAwB,CAAxB,uBjD65QF,CA7/QF,wBiDoGI,eAAgB,CAChB,sBAAuB,CAFvB,kBjD+5QF,CACF,CiD15QA,mCjDzGA,uBiD2GI,cjD65QF,CAxgRF,4BiD8GI,cjD65QF,CA3gRF,8BiDiHI,cjD65QF,CA9gRF,sBiDsHI,eAAgB,CADhB,YAAa,CADb,ejD+5QF,CAnhRF,0BiDyHI,4BAAwB,CAAxB,uBjD65QF,CAthRF,wBiD6HI,eAAgB,CAChB,sBAAuB,CAFvB,kBjD+5QF,CACF,CA5hRA,gCkDoBE,iBlD4gRF,CAhiRA,oBkDyBE,gBAAiB,CADjB,iBlD6gRF,CAriRA,qBkD4BW,iBlD6gRX,CAziRA,qBkD6BW,gBlDghRX,CkD9gRA,mClD/BA,uBkDkCI,gBAAiB,CADjB,iBlDkhRF,CAnjRF,wBkDoCgB,iBlDkhRd,CAtjRF,wBkDqCgB,gBlDohRd,CACF,CkDlhRA,wDlDxCA,sBkD2CI,gBAAiB,CADjB,iBlDshRF,CAhkRF,uBkD6Ce,iBlDshRb,CAnkRF,uBkD8Ce,gBlDwhRb,CACF,CkDthRA,mClDjDA,sBkDoDI,gBAAiB,CADjB,iBlD0hRF,CA7kRF,uBkDsDe,iBlD0hRb,CAhlRF,uBkDuDe,gBlD4hRb,CACF,CAplRA,kBmD2BE,0BAA2B,CAC3B,0BAA8B,CAH9B,wBAA0B,EAC1B,2BnDkkRF,CmD7jRA,mCnD/BA,qBmDmCI,0BAA2B,CAC3B,0BAA8B,CAH9B,wBAA0B,EAC1B,2BnDmkRF,CACF,CmD9jRA,wDnDxCA,oBmD4CI,0BAA2B,CAC3B,0BAA8B,CAH9B,wBAA0B,EAC1B,2BnDokRF,CACF,CmD/jRA,mCnDjDA,oBmDqDI,0BAA2B,CAC3B,0BAA8B,CAH9B,wBAA0B,EAC1B,2BnDqkRF,CACF,CA1nRA,uBoDmBa,kBpD2mRb,CA9nRA,oBoDoBU,kBpD8mRV,CAloRA,iBoDqBO,epDinRP,CoD/mRA,mCpDvBA,0BoDwBkB,kBpDmnRhB,CA3oRF,uBoDyBe,kBpDqnRb,CA9oRF,oBoD0BY,epDunRV,CACF,CoDrnRA,wDpD7BA,yBoD8BiB,kBpDynRf,CAvpRF,sBoD+Bc,kBpD2nRZ,CA1pRF,mBoDgCW,epD6nRT,CACF,CoD3nRA,mCpDnCA,yBoDoCiB,kBpD+nRf,CAnqRF,sBoDqCc,kBpDioRZ,CAtqRF,mBoDsCW,epDmoRT,CACF,CA1qRA,oBqDkBc,uBrD4pRd,CA9qRA,mBqDmBc,qBrD+pRd,CAlrRA,mBqDoBc,kBrDkqRd,CAtrRA,mBqDqBc,qBrDqqRd,CqDnqRA,mCrDvBA,uBqDwBmB,uBrDuqRjB,CA/rRF,sBqDyBmB,qBrDyqRjB,CAlsRF,sBqD0BmB,kBrD2qRjB,CArsRF,sBqD2BmB,qBrD6qRjB,CACF,CqD3qRA,wDrD9BA,sBqD+BkB,uBrD+qRhB,CA9sRF,qBqDgCkB,qBrDirRhB,CAjtRF,qBqDiCkB,kBrDmrRhB,CAptRF,qBqDkCkB,qBrDqrRhB,CACF,CqDnrRA,mCrDrCA,sBqDsCkB,uBrDurRhB,CA7tRF,qBqDuCkB,qBrDyrRhB,CAhuRF,qBqDwCkB,kBrD2rRhB,CAnuRF,qBqDyCkB,qBrD6rRhB,CACF,CAvuRA,iBsD4BE,SAAU,CACV,+BtD+sRF,CA5uRA,8CsDiCE,UAAW,CACX,+BtDgtRF,CAlvRA,wBsDqCE,UAAW,CAAE,gCtDktRf,CAvvRA,kBsD8CE,+BtD6sRF,CA3vRA,gDsDkDE,SAAU,CACV,+BtD8sRF,CAjwRA,+BsDsEE,SAAU,CACV,+BtD+rRF,CAtwRA,gHsD4EE,SAAU,CACV,+BtDgsRF,CA7wRA,sEsDkFE,yBtDgsRF,CAlxRA,kBsDyFE,iCAAkC,CAClC,kCAA2B,CAA3B,0BAA2B,CAC3B,uBAAwB,CACxB,kCtD6rRF,CAzxRA,gDsDiGE,qBtD6rRF,CA9xRA,yBsDqGE,mBtD6rRF,CAlyRA,wBsDyGE,iCAAkC,CAClC,kCAA2B,CAA3B,0BAA2B,CAC3B,uBAAwB,CACxB,qCtD6rRF,CAzyRA,4DsDiHE,oBtD6rRF,CA9yRA,+BsDqHE,oBtD6rRF,CAlzRA,2BsD2HE,ctD2rRF,CAtzRA,0BsDsIE,cAAe,CACf,iBAAkB,CAClB,+CtDorRF,CA5zRA,gCsD8IE,qBAAsB,CADtB,sCAAgD,CADhD,UAAW,CAQX,WAAY,CAFZ,MAAO,CAHP,SAAU,CACV,iBAAkB,CAClB,KAAM,CAKN,mDAA2D,CAH3D,UAAW,CAEX,UtDqrRF,CA10RA,4EsD2JE,StDorRF,CA/0RA,oFsDoKE,4CtDirRF,CAr1RA,iBuD0CO,SvD+yRP,CAz1RA,iBuD2CO,SvDkzRP,CA71RA,iBuD4CO,SvDqzRP,CAj2RA,iBuD6CO,SvDwzRP,CAr2RA,iBuD8CO,SvD2zRP,CAz2RA,iBuD+CO,SvD8zRP,CA72RA,mBuDiDS,WvDg0RT,CAj3RA,oBuDkDU,YvDm0RV,CAr3RA,mBuDqDE,kBvDo0RF,CAz3RA,uBuDwDa,evDq0Rb,CA73RA,uBuDyDa,YvDw0Rb,CAj4RA,qBuD0DW,avD20RX,CAr4RA,uHwDkBE,exDy3RF,CA34RA,wQwD2BE,gBxDy3RF,CAp5RA,oEwDkCE,oBAAqB,CADrB,aAAc,CADd,cxD23RF,CA35RA,oCwDwCE,edhBc,Cced,Ydfc,Cccd,gBxD23RF,CAj6RA,uCwD4CE,gBxDy3RF,CAr6RA,4BwDkDE,aAAc,CADd,cAAe,CADf,UxD23RF,CA36RA,4BwDsDE,adsEY,CcrEZ,6BxDy3RF,CAh7RA,oEwD4DE,adiEkB,CchElB,6BxDy3RF,CAt7RA,qByDMI,qBAAsB,CAFtB,aAAc,CADd,gBAAiB,CAEjB,cAAe,CAHf,UzD47RJ,CA97RA,iCyDWI,YAAa,CACb,qBzDu7RJ,CAn8RA,+ByDgBE,SzDu7RF,CAv8RA,yByDsBI,kBAAmB,CAOnB,yCvDbiB,CuDUjB,cAAe,CALf,YAAa,CAGb,2BAA4B,CAG5B,kBzDq7RJ,CAh9RA,+ByDiCQ,0BzDm7RR,CAp9RA,yBCmBI,aCHiB,CDCjB,sBAAuB,CwD8CvB,cAAe,CAEf,czD05RJ,CA39RA,sCyDyEY,MzDs5RZ,CA/9RA,6ByD+EQ,kBzDo5RR,CAn+RA,+BCII,aCYiB,CuDuEb,MAAO,CxDrFX,sBAAuB,CwDkFnB,cAAe,CACf,eAAmB,CAInB,czDm5RR,CA5+RA,6BCYI,aCIiB,CDPjB,qBAAsB,CwDwFtB,cAAe,CxDvFf,eAAgB,CwDyFhB,azDi5RJ,CAp/RA,gCyDyGI,gBzD+4RJ,CAx/RA,6ByD8GQ,aAAc,CACd,eAAgB,CAChB,eAAiB,CACjB,mBzD84RR,CA//RA,+ByDqHQ,gBzD84RR,CAngSA,sCyDyHQ,eAAgB,CADhB,eAAiB,CAEjB,mBzD+4RR,CAzgSA,6ByDiII,oBAAqB,CADrB,mBzD84RJ,CA9gSA,sDyDmIM,UzD+4RN,CAlhSA,4CyDuIQ,eAAgB,CADhB,eAAiB,CAEjB,kBzDg5RR,CAxhSA,8ByD8IQ,gBzD84RR,CA5hSA,qCyDkJQ,eAAgB,CADhB,eAAiB,CAEjB,mBzD+4RR,CAliSA,4ByDgKI,cAAe,CAFf,YAAa,CAJb,iBAAkB,CAClB,OAAQ,CAMR,kBAAmB,CAJnB,UzD84RJ,CA3iSA,qByD0KI,qBfpGQ,CeqGR,iBAAkB,CAClB,kCftGQ,CekGR,ezD04RJ,CAljSA,iCyDgLQ,YAAa,CAEb,MzDq4RR,CAvjSA,2CyDwLY,cAAe,CAFf,czDs4RZ,CA5jSA,yDyD4LgB,kBzDo4RhB,CAhkSA,0DyDoMwB,iBzDg4RxB,CApkSA,gEyDmN4B,evD7MG,CuDoMH,YAAa,CAMb,UAAW,CAFX,UAAW,CAHX,QAAS,CAFT,iBAAkB,CAQlB,0BAA2B,CAJ3B,UzDk4R5B,CA/kSA,8CyDgOY,4BzDm3RZ,CAnlSA,6CyDuOQ,kBAAmB,CAMnB,6Bf7JI,Ce8JJ,mCfxKI,CegKJ,YAAa,CAKb,eAAgB,CAFhB,gBzDm3RR,CA5lSA,mDyDsPY,kBAAmB,CxDnO3B,aCHiB,CuDqOT,YAAa,CxDpOrB,sBAAuB,CwDiOf,cAAe,CACf,eAAiB,CAMjB,iBzD82RZ,CAvmSA,wDyD+PgB,kBzD42RhB,CA3mSA,gDCmBI,aCHiB,CuDuPT,MAAO,CxDtPf,sBAAuB,CwDoPf,cAAe,CAIf,QzD02RZ,CAnnSA,6CyD0RQ,efpNI,CemNJ,iBAAkB,CxDtQtB,UyC6DQ,CzC/DR,sBAAuB,CwDgQnB,cAAe,CACf,eAAiB,CAEjB,cAAe,CACf,gBAAiB,CAEjB,iBAAkB,CAIlB,kCzDq2RR,CAhoSA,qJyD2SQ,kBAAmB,CxD/RvB,aCIiB,CuD0Rb,YAAa,CxDjSjB,qBAAsB,CwD2RlB,cAAe,CxD1RnB,eAAgB,CwDqSZ,cAAe,CAFf,qBzDg2RR,CyDx2RQ,yBzDrSR,qJyDsSU,czD82RR,CACF,CArpSA,2CyDuTQ,aAAc,CACd,oCzDk2RR,CA1pSA,uDyD6TQ,4BzDi2RR,CA9pSA,mDyDkUQ,czDg2RR,CAlqSA,kDCII,aCYiB,CuDyTb,aAAc,CxDvUlB,sBAAuB,CwDqUnB,cAAe,CAIf,qBzD+1RR,CA1qSA,sCyDmVQ,kBAAmB,CAInB,cAAe,CALf,YAAa,CAGb,WzD41RR,CAjrSA,sDyDiWY,cAAe,CAFf,QAAS,CAJT,iBAAkB,CAClB,OAAQ,CAMR,kBAAmB,CAJnB,OzD41RZ,CA1rSA,4DyD0WgB,YAAa,CADb,UzDs1RhB,CA/rSA,kCyDwCI,8BvDKiB,CuDNjB,oBzD6pSJ,CApsSA,0DyD4CQ,kBzD4pSR,CAxsSA,mDyDiDQ,oBzD2pSR,CA5sSA,6EyDsDQ,kBzD0pSR,CAhtSA,iCyDwCI,8BvDOgB,CuDRhB,oBzD8qSJ,CArtSA,yDyD4CQ,kBzD6qSR,CAztSA,kDyDiDQ,oBzD4qSR,CA7tSA,4EyDsDQ,kBzD2qSR,CAjuSA,oCyDwCI,6BvDQmB,CuDTnB,oBzD+rSJ,CAtuSA,4DyD4CQ,kBzD8rSR,CA1uSA,qDyDiDQ,oBzD6rSR,CA9uSA,+EyDsDQ,kBzD4rSR,CAlvSA,iCyDwCI,8BvDMgB,CuDPhB,oBzDgtSJ,CAvvSA,yDyD4CQ,kBzD+sSR,CA3vSA,kDyDiDQ,oBzD8sSR,CA/vSA,4EyDsDQ,kBzD6sSR,CAnwSA,mCyDwCI,8BvDUkB,CuDXlB,oBzDiuSJ,CAxwSA,2DyD4CQ,kBzDguSR,CA5wSA,oDyDiDQ,oBzD+tSR,CAhxSA,8EyDsDQ,kBzD8tSR,CApxSA,kCyDwCI,8BvDSiB,CuDVjB,oBzDkvSJ,CAzxSA,0DyD4CQ,kBzDivSR,CA7xSA,mDyDiDQ,oBzDgvSR,CAjySA,6EyDsDQ,kBzD+uSR,CArySA,qCyDwCI,6BvDYoB,CuDbpB,oBzDmwSJ,CA1ySA,6DyD4CQ,kBzDkwSR,CA9ySA,sDyDiDQ,oBzDiwSR,CAlzSA,gFyDsDQ,kBzDgwSR,CAtzSA,wCyDwCI,4BvDWqB,CuDZrB,oBvDYqB,CuDmWjB,UzDs6RR,CA5zSA,gEyD4CQ,kBzDoxSR,CAh0SA,yDyDiDQ,oBzDmxSR,CAp0SA,mFyDsDQ,kBzDkxSR,CAx0SA,sCyD6ZQ,gBzD+6RR,CA50SA,qDyDiaY,kBzD+6RZ,CAh1SA,4CyD8aQ,wBvDnZa,CuDgZb,aAAc,CACd,YAAkB,CAFlB,UzD66RR,CAv1SA,sEyDsbQ,SzDq6RR,CA31SA,wEyD2bQ,UzDo6RR,CA/1SA,2ByDgcI,czDm6RJ,CAn2SA,iByDqcI,YAAa,CAIb,eAAgB,CAFhB,SzDk6RJ,CAz2SA,oBCmBI,aCHiB,CuDkcb,cAAe,CxDjcnB,sBAAuB,CwD4bnB,cAAe,CAEf,cAAe,CACf,SzDk6RR,CAl3SA,kCyD0dY,cAAe,CACf,kBAAmB,CAHnB,iBzDg6RZ,CAx3SA,wCyDwegB,yBflaJ,CegaI,UAAW,CAFX,WAAY,CALZ,iBAAkB,CAElB,SAAU,CADV,KAAM,CAGN,SzD+5RhB,CAl4SA,2ByD8eY,ezDw5RZ,CAt4SA,sHCII,aCYiB,CDdjB,sBAAuB,CwDqfvB,cAAe,CAEf,cAAiB,CACjB,iBzDs5RJ,CAh5SA,+HCII,aCYiB,CDdjB,sBAAuB,CwD8fnB,cAAe,CAEf,czDu5RR,CAz5SA,4HCII,aCYiB,CDdjB,sBAAuB,CwDugBnB,cAAe,CAEf,QzDu5RR,CAl6SA,8CyDmhBI,czDm5RJ,CAt6SA,6ByDyhBI,YAAa,CAEb,gBzDg5RJ,CA36SA,kCyDgiBQ,gBAAiB,CADjB,UzDi5RR,CAh7SA,gCyDsiBI,YAAa,CACb,qBzD84RJ,CAr7SA,iDyD2iBQ,czD84RR,CAz7SA,sCyDgjBQ,azD64RR,CA77SA,6CyDmjBY,czD84RZ,CAj8SA,6ByD0jBI,YzD24RJ,CAr8SA,gECII,aCYiB,CDdjB,sBAAuB,CwD6jBnB,cAAe,CAEf,iBzD44RR,CA78SA,mCyDwkBQ,kBzDy4RR,CAj9SA,iCCII,aCYiB,CDdjB,sBAAuB,CwD4kBvB,czDy4RJ,CAv9SA,wDCYI,aCP6B,CDI7B,qBAAsB,CwD2kBlB,cAAe,CxD1kBnB,eDo9SJ,CA99SA,gCCII,aCYiB,CDdjB,sBAAuB,CwD4lBvB,cAAe,CADf,cAAe,CADf,gBzD04RJ,CAt+SA,uDCYI,aCP6B,CDI7B,qBAAsB,CwD2lBlB,cAAe,CxD1lBnB,eDm+SJ,CA7+SA,gDyD2mBQ,mBzDs4RR,CAj/SA,6DyD+mBY,kBzDs4RZ,CAr/SA,qDyDwnBI,aAAc,CAGd,ezDi4RJ,CA5/SA,yCyD+oBI,oBAAyB,CAFzB,evD9nBgB,CuD6nBhB,iBAAkB,CxDhoBlB,UyCoEQ,CzCvER,qBAAsB,CwDwnBtB,cAAe,CxDvnBf,eAAgB,CwDgoBhB,oBAAa,CAAb,gBAAa,CAAb,YAAa,CAPb,QAAS,CACT,YAAa,CAEb,oBAAqB,CAErB,oBAAqB,CACrB,qBzDo4RJ,CA7gTA,qDyD0pBQ,azDu3RR,CAjhTA,4ByD+pBE,iBzDs3RF,CArhTA,wCyDmqBI,gBAAiB,CACjB,cAAe,CAFf,ezDy3RJ,CA3hTA,6CyDuqBQ,8BAAgC,CAChC,oBzDw3RR,CAhiTA,0ByD6qBE,iBzDu3RF,CApiTA,+ByDqrBE,kBAAmB,CAGnB,iBAAkB,CANlB,WAAY,CASZ,UAAY,CAPZ,cAAe,CAKf,sBAAuB,CAGvB,cAAe,CAFf,eAAgB,CAGhB,WAAY,CANZ,WAAY,CANZ,iBAAkB,CAElB,UAAW,CAGX,iBzD83RF,CApjTA,8ByDqsBI,efrnBQ,CesnBR,sCfhoBQ,Ce4nBR,eAAkB,CAClB,czDw3RJ,CA3jTA,uCyD2sBQ,oBAAqB,CADrB,YzDs3RR,CAhkTA,6CCmBI,aCHiB,CuDksBT,YAAa,CACb,qBAAsB,CxDlsB9B,sBAAuB,CwD8rBf,cAAe,CACf,eAAiB,CAKjB,qBzDq3RZ,CA1kTA,oDyD2tBgB,eAAgB,CAEhB,wBzDk3RhB,CA/kTA,+ByD0uBI,kBAAmB,CAFnB,YAAa,CAGb,qBAAsB,CAFtB,sBAAuB,CAHvB,cAAe,CACf,cAAe,CAFf,mBzDo3RJ,CAzlTA,wCyD+uBQ,iBzD82RR,CA7lTA,8CCmBI,aCHiB,CuD2uBT,iBAAkB,CxD1uB1B,sBAAuB,CwDmuBf,cAAe,CACf,eAAiB,CAIjB,QAAS,CAFT,iBAAkB,CAMlB,wBAAyB,CALzB,OAAQ,CAIR,8BzD82RZ,CA1mTA,+CyD+wBY,yDAAmD,CAAnD,iDAAmD,CAOnD,kCAA2B,CAA3B,0BAA2B,CAH3B,kCf7sBA,Ce8sBA,kBAAmB,CADnB,+Bf7sBA,CewsBA,UAAW,CANX,aAAc,CAGd,WAAY,CALZ,QAAS,CAMT,YAAmB,CAKnB,SAAU,CAbV,iBAAkB,CAClB,OAAQ,CAKR,UzDi3RZ,CyDn2RY,4BAEI,GAEI,uBzDo2RlB,CACF,CyDz2RY,oBAEI,GAEI,uBzDo2RlB,CACF,CAjoTA,+ByDqyBI,YAAa,CADb,ezDk2RJ,CAtoTA,yCyDyyBI,gBzDi2RJ,CA1oTA,mEyD6yBY,kBzDi2RZ,CA9oTA,yDyDkzBQ,WvDzxBiB,CuD0xBjB,czDg2RR,CAnpTA,8FyDuzBQ,aAAc,CAEd,cAAe,CADf,kBzDu2RR,CyD11RA,2BAEI,IAEI,SzD21RN,CACF,CyDh2RA,mBAEI,IAEI,SzD21RN,CACF,CArqTA,oByD+0BI,YzD01RJ,CAzqTA,uByDq1BI,WAAY,CADZ,WAAY,CAEZ,QAAS,CACT,SzDy1RJ,CAhrTA,yByD41BI,WzDw1RJ,CAprTA,2ByDi2BI,UzDu1RJ,CAxrTA,wByDw2BI,QAAS,CAFT,iBAAkB,CAClB,OzDu1RJ,CA9rTA,uBCmBI,aCHiB,CDCjB,sBDkrTJ,CAnsTA,sByDu3BE,czDm1RF,CA1sTA,oDyDq3BE,aAAc,CACd,cAAe,CAFf,uBzD41RF,CAhtTA,sByDm4BI,UAAW,CADX,WzDm1RJ,CArtTA,4ByDu4BE,WAAY,CACZ,azDk1RF,CA1tTA,qCyD24BI,YAAa,CAGb,eAAgB,CADhB,WAAY,CADZ,sBAAuB,CAIvB,iBAAkB,CAElB,cAAiB,CAHjB,iBzDq1RJ,CApuTA,yCyDs5BM,MAAO,CADP,czDo1RN,CAzuTA,0CyD05BM,wBAAyB,CACzB,mBAAoB,CACpB,ezDm1RN,CA/uTA,0ByDm6BI,ezDg1RJ,CAnvTA,gCyDu6BQ,ezDg1RR,CAvvTA,8ByD+6BQ,UzD40RR,CA3vTA,qCyDo7BQ,UAAW,CACX,ezD20RR,CAhwTA,iB0DWI,sBAAuB,CAFvB,qBxDH2B,CwDI3B,iBAAkB,CAElB,mChB0DQ,CzCnDR,aCHiB,CDCjB,sBAAuB,CyDfvB,cAAe,CACf,eAAiB,CAEjB,gBAAiB,CAEjB,kB1DswTJ,CA7wTA,wB0DkBQ,cAAe,CACf,gB1D+vTR,CAlxTA,2B0DwBQ,kBAAmB,CAEnB,U1D6vTR,CAvxTA,uB0D+BQ,iC1D4vTR,CA3xTA,wB0DqCQ,4BxDiCiC,CwDlCjC,oBxDIe,CDrBnB,aCqBmB,CDvBnB,sBDixTJ,CAlyTA,2B0DiDQ,4BxDgBoC,CwDjBpC,oBxDHa,CwDEb,axDFa,CwDAb,cAAe,CAFf,a1D+vTR,CA1yTA,gC0DqDY,UAAW,CAEX,oB1DwvTZ,CA/yTA,+B0D4DY,Y1DuvTZ,CAnzTA,yB0DkEQ,wBxD3BY,CwD6BZ,oBxD7BY,CwD4BZ,U1DsvTR,CAzzTA,uB0D0EI,YAAa,CAEb,Y1DkvTJ,CA9zTA,4B0DgFQ,M1DkvTR,CAl0TA,wC0DoFY,yB1DkvTZ,CAt0TA,uC0DyFY,yB1DivTZ,CA10TA,gC0DmGI,eAAgB,CADhB,WAAY,CAFZ,c1DgvTJ,CAh1TA,uC0DuGQ,S1D6uTR,CAp1TA,yC0D4GQ,U1D4uTR,CAx1TA,gG0DoHE,WAAY,CAEZ,eAAgB,CAEhB,cAAe,CAHf,MAAO,CAEP,S1D2uTF,CAl2TA,kH0D2HI,Y1D6uTJ,CAx2TA,0D0DmII,eAAgB,CADhB,W1D4uTJ,CA92TA,kE0DwIQ,WAAY,CADZ,U1D6uTR,CAp3TA,4B0D8II,c1D0uTJ,CAx3TA,sC0DoJY,Y1DwuTZ,CA53TA,gC0D4JQ,YxDrJ0B,CwDmJ1B,kB1DuuTR,CAj4TA,mB0DkKI,c1DmuTJ,CAr4TA,2B2D0KI,6BAAsB,CAAtB,qBAAsB,CAEtB,kBAAwC,CADxC,oB3DguTJ,CA34TA,+B0DiLE,kBAAmB,CAEnB,WAAY,CADZ,iBAAkB,CALlB,WAAY,CAGZ,WAAY,CAJZ,iBAAkB,CAElB,WAAY,CACZ,U1DuuTF,CAt5TA,sC0D0LI,qhBAA0hB,CAF1hB,WAAY,CACZ,WAAY,CAFZ,iB1DsuTJ,CA75TA,6C0DiME,UAAW,CAGX,WAAY,CAFZ,UAAW,CACX,U1DiuTF,CAp6TA,oD0DwMI,WACF,CAFE,iB1DkuTJ,CAz6TA,mB4DcI,uBAAgB,CAAhB,oBAAgB,CAAhB,eAAgB,CALhB,sUAAkW,CAClW,oBAAqB,CAHrB,wB1DUe,C0DTf,iBAAkB,CAGlB,sClB2DQ,CzCnDR,aCHiB,CDCjB,sBAAuB,C2DfvB,cAAe,CACf,eAAiB,CAEjB,yB5Dk7TJ,CAv7TA,6B4DqBQ,kB1DCW,C0DJX,YAAa,CACb,W5D06TR,CA77TA,2B2D0KI,6BAAsB,CAAtB,qBAAsB,CAEtB,kBAAwC,CADxC,oB3DwxTJ,CAn8TA,iC4D+BI,e5Dw6TJ,C4Dv6TI,yB5DhCJ,iC4DkCQ,e5D06TN,CACF,CA78TA,kBCmBI,aCHiB,CDCjB,sBAAuB,C2DuBvB,cAAe,CACf,eAAiB,CAEjB,c5D06TJ,C4D/5TI,yB5DtDJ,wJ4DuDM,e5Du6TJ,CACF,CA/9TA,6K4DyEI,elBOQ,CkBTR,wB1DpDe,C0DqDf,iBAAkB,CAJlB,YAAa,CADb,eAAgB,CAEhB,gB5Dw6TJ,CA7+TA,6N2D0KI,6BAAsB,CAAtB,qBAAsB,CAEtB,kBAAwC,CADxC,oB3D60TJ,CAx/TA,wF4DwFQ,wBAAyB,CACzB,UAAW,CACX,kB5Ds6TR,CAhgUA,6B4D+FI,iB5Dq6TJ,CApgUA,+B4DmGI,wBAAyB,CACzB,U5Dq6TJ,C4Dl6TA,yBAEI,QAGI,+B5Dm6TN,C4Dh6TE,QAGI,8B5Di6TN,C4D95TE,YAII,+B5D+5TN,C4D55TE,QAGI,8B5D65TN,CACF,C4Dt7TA,iBAEI,QAGI,+B5Dm6TN,C4Dh6TE,QAGI,8B5Di6TN,C4D95TE,YAII,+B5D+5TN,C4D55TE,QAGI,8B5D65TN,CACF,CA7hUA,qB4D8II,6BlB9DQ,CkB2DR,WAAY,CACZ,iBAAkB,C3DhIlB,aCIiB,CDPjB,qBAAsB,C2D4HtB,cAAe,C3D3Hf,eAAgB,C2D8HhB,gBAAiB,CAKjB,YAAa,CAJb,YAAa,CAFb,U5Do6TJ,CA3iUA,2B4DoJQ,wB5D25TR,CA/iUA,0B4DkKQ,kB1DjJW,C0DgJX,iBAAkB,C3DrJtB,UyCoEQ,CzCvER,qBAAsB,C2DgJlB,cAAe,C3D/InB,eAAgB,C2DkJZ,QAAS,CADT,gBAAiB,CAEjB,YAAa,CAEb,W5D65TR,CA5jUA,sB4D+KI,a1DnK8B,C0D+J9B,kBAAmB,CAEnB,sB5Dq5TJ,CAlkUA,4B4DmLQ,Y5Dm5TR,CAtkUA,wBCYI,aCIiB,CDPjB,qBAAsB,C2DgLlB,iBAAkB,CADlB,yBAA8B,C3D9KlC,eAAgB,C2DiLZ,kB5Do5TR,CA/kUA,2C4DkMQ,Y5Di5TR,CAnlUA,uD4DmNY,kB1D9LW,C0D6LX,iBAAkB,CAElB,4B1D/LW,C0D2LX,cAAe,CAPf,oBAAqB,CAarB,SAAU,CAVV,WAAY,CACZ,gBAAiB,CACjB,WAAY,CARZ,iBAAkB,CAClB,OAAQ,CAIR,U5Du5TZ,CAlmUA,8D4D0NgB,mB5D44ThB,CAtmUA,+D4DgOY,sQ5D04TZ,CA1mUA,uB6DMI,QAAS,CACT,MAAO,CALP,cAAe,CAGf,OAAQ,CADR,KAAM,CADN,Y7DgnUJ,CAnnUA,oC6DiBQ,yBnBqDI,CmBxDJ,QAAS,CACT,MAAO,CAJP,cAAe,CAEf,OAAQ,CADR,K7DgnUR,CA5nUA,iC6DmCQ,enB6CI,CmB/CJ,wB3D9BsB,C2D+BtB,iBAAkB,CAElB,uCnBkCI,CmB7CJ,QAAS,CAIT,eAAgB,CADhB,eAAgB,CANhB,iBAAkB,CAElB,OAAQ,CAOR,8BAA+B,CAJ/B,UAAW,CAJX,Y7DonUR,CA3oUA,yC6D2CQ,gBAAiB,CAFjB,eAAgB,CAGhB,Y7DqmUR,CAjpUA,2C6DoDY,a3DnCO,CDbf,aCYiB,CDdjB,sBAAuB,C4D8Cf,cAAe,CAEf,c7DumUZ,CAzpUA,4CCmBI,aCHiB,CDCjB,sBAAuB,C4D0Cf,cAAe,CACf,eAAgB,CAEhB,e7DmmUZ,CAjqUA,wC6D4EQ,kBAAmB,CAFnB,+B3DvEsB,C2DmEtB,YAAa,CAEb,c7DgmUR,CAxqUA,qD6DqFY,uBAAgB,CAAhB,oBAAgB,CAAhB,eAAgB,CAFhB,eAAgB,CADhB,WAAY,CAFZ,c7D+lUZ,CA/qUA,2CCmBI,aCHiB,C2DiFT,MAAO,C5DhFf,sBAAuB,C4D0Ef,cAAe,CACf,eAAgB,CAEhB,QAAS,CACT,c7D0lUZ,CAzrUA,mBCYI,aCIiB,CDPjB,qBAAsB,C6DPtB,cAAe,CACf,eAAgB,C7DOhB,eDurUJ,CAjsUA,sE8DYY,uB9D0rUZ,CAtsUA,gD8DgBY,4B9D0rUZ,CA1sUA,0B8D8BQ,cAAe,CAJf,oBAAqB,CALrB,cAAe,CAOf,gBAAiB,CALjB,iBAAkB,CAClB,OAAQ,CAQR,uBAAwB,CACxB,wBAAyB,CAFzB,iC9DurUR,CAttUA,oC8DqCY,sB9DqrUZ,CA1tUA,gC8DiDY,gMAA2M,CAC3M,oBAAqB,CAHrB,UAAW,CALX,aAAc,CAGd,WAAY,CADZ,U9DurUZ,CAnuUA,gC8D0DQ,cAAe,CAFf,iB9DgrUR,CAxuUA,gD8DiEY,cAAe,CAHf,iBAAkB,CAClB,S9D+qUZ,CA9uUA,yB8DuEQ,iB9D2qUR,CAlvUA,2C8D2EY,kB9D2qUZ,CAtvUA,wB8D4FQ,yBpBtBI,CoBqBJ,iBAAkB,CADlB,a5DvFsB,C4DmFtB,iBAAkB,CALlB,iBAAkB,CAClB,UAAW,CAEX,iBAAkB,CAIlB,kB9DyqUR,CAjwUA,qB8DiGQ,c9DoqUR,CArwUA,6B8DsGQ,UAAW,CACX,iB9DmqUR,CA1wUA,uC8D2Ga,a9DmqUb,CA9wUA,uC8DsHY,UAAW,CACX,e9D4pUZ,CAnxUA,sH8DmIgB,e9DwpUhB,CA3xUA,2C8DwIgB,kB9DupUhB,CA/xUA,uD8D4IoB,kB9DupUpB,CAnyUA,8C8DkJgB,S9DqpUhB,CAvyUA,qC8DwJY,U9DmpUZ,CA3yUA,mD8D4JgB,kB9DmpUhB,CA/yUA,2B8DsKI,kC5DtJiB,C4DuJjB,iBAAkB,CAHlB,a9DipUJ,CArzUA,oC8D2KQ,c9D8oUR,CAzzUA,mC8DgLQ,gB9D6oUR,CA7zUA,sC8DqLY,yC5DrKS,C4DmKT,c9D+oUZ,CAl0UA,8B8D6LQ,kBAAmB,C7D1KvB,aCX6B,C4D0LzB,cAAe,CANf,YAAa,C7D3KjB,sBAAuB,C6DyKnB,cAAe,CAKf,QAAS,CACT,2BAA4B,CAG5B,kB9D2oUR,CA90UA,kC8DyMY,kB9DyoUZ,CAl1UA,mC8D8MY,M9DwoUZ,CAt1UA,oC8DmNY,0B9DuoUZ,CA11UA,8BCmBI,aCZ8B,CDU9B,sBAAuB,C6DwMnB,cAAe,CAEf,e9DsoUR,CAj2UA,+C8DkOQ,iBAAkB,CAClB,O9DmoUR,CAt2UA,4C8D8OQ,0BpBxKI,CoBuKJ,iBAAkB,CALlB,kBAAmB,CACnB,iBAAkB,CAElB,kB9DmoUR,CA92UA,kD8DkPY,0B9DgoUZ,CAl3UA,0D8DuPY,W9D+nUZ,CAt3UA,yD8D4PY,a9D8nUZ,CA13UA,iE8DmQU,WAAa,CAHb,iBAAkB,CAElB,SAAU,CADV,O9DgoUV,CAj4UA,sC8DyQQ,e9D4nUR,CAr4UA,uB8DoRI,yBpB9MQ,CoB6MR,iBAAkB,CAFlB,oBAAqB,CADrB,Y9D4nUJ,CA54UA,2C8DwRQ,iBAAkB,CAClB,O9DwnUR,CAj5UA,kC8D8RQ,U9DunUR,CAr5UA,yBCmBI,aCT8B,CDO9B,sBAAuB,C6DoRvB,c9DsnUJ,CA35UA,6B8D6SQ,QAAW,CAFX,eAAgB,CAChB,iB9DqnUR,CAj6UA,sCCmBI,aC6BmB,CD/BnB,sBAAuB,C6DkSvB,cAAe,CACf,eAAgB,CAEhB,gB9DmnUJ,CAz6UA,yC8DkUY,kB9D2mUZ,CA76UA,uB8DyUI,oBAAqB,CAErB,gB9DumUJ,CAl7UA,uB8DgVI,U9DsmUJ,CAt7UA,uB8DqVI,a9DqmUJ,CA17UA,yB8DyVI,a9DqmUJ,CA97UA,2BCmBI,aCHiB,CDCjB,sBAAuB,C8DbnB,cAAe,CAEf,qB/D+7UR,CAr8UA,kC+DaY,cAAe,CADf,e/D87UZ,CA18UA,gC+DkBM,kB/D47UN,CA98UA,8B+DuBY,U/D27UZ,CAl9UA,8B+D0BY,oBAAqB,CACrB,cAAe,CAGf,mBAAoB,CADpB,gBAAiB,CADjB,qB/D87UZ,CA19UA,4C+DiCc,iB/D67Ud,CA99UA,oC+DsCgB,WAAY,CADZ,U/D87UhB,CAn+UA,mC+D4CM,Y/D27UN,CAv+UA,wC+D+CQ,oBAAqB,CAErB,cAAe,CACf,YAAa,CAFb,W/D87UR,CA9+UA,2B+DwDI,cAAe,CACf,e/D07UJ,CAn/UA,0C+D8DI,iB/Dy7UJ,CAv/UA,kBgEKI,wBAAyB,CAFzB,cAAe,CADf,UhE2/UJ,CA7/UA,oCgEeoB,SAAU,CAEV,kBhEi/UpB,CAlgVA,kDgEsBwB,iBAAkB,CADlB,WhEk/UxB,CAvgVA,6BCYI,aCIiB,CDPjB,qBAAsB,C+DwBd,cAAe,CACf,eAAgB,C/DxBxB,eAAgB,C+D0BR,qBhE4+UZ,CAhhVA,0CgE2CY,UAAW,CACX,iBhEy+UZ,CArhVA,8BgEsDgB,gBAAmB,CAEnB,kBhEk+UhB,CA1hVA,4CgE4DoB,aAAc,CACd,chEk+UpB,CA/hVA,4DgEiFgB,yC9DjEK,CDZjB,aCYiB,CDdjB,sBAAuB,C+DwEX,cAAe,CACf,eAAiB,CAEjB,cAAe,CAEf,ehE29UhB,CA1iVA,wCgE4FI,iBAAkB,CADlB,ShEo9UJ,CA/iVA,yDgEgGQ,eAAgB,CADhB,UhEq9UR,CApjVA,+CgEoGQ,gBhEo9UR,CAxjVA,6BCmBI,aCHiB,CDCjB,sBAAuB,C+DyFvB,cAAe,CACf,eAAmB,CAInB,kBhEi9UJ,CAhkVA,sCgEqHQ,ehE+8UR,CApkVA,2CgEyHY,ShE+8UZ,CAxkVA,4CgEuIY,sB9D9FO,C8D4FP,kBAAmB,CAPnB,cAAe,CAKf,WAAY,CAHZ,iBAAkB,CAClB,QhEg9UZ,CAjlVA,6DCYI,UCN2B,CDG3B,qBAAsB,C+DsItB,cAAe,CACf,iBAAkB,C/DtIlB,eDglVJ,CA1lVA,mCCYI,SC6Be,CDhCf,qBAAsB,C+D8ItB,cAAe,CACf,iBAAkB,C/D9IlB,eDwlVJ,CAlmVA,2CgE8JI,aAAc,CACd,cAAe,CAEf,mBAAoB,CADpB,ehEy8UJ,CAzmVA,iDgEoKQ,gBhEy8UR,CA7mVA,oDgEwKQ,UhEy8UR,CAjnVA,6BgE+KI,YhEs8UJ,CArnVA,sCgEoLI,ShEq8UJ,CAznVA,gCgEwLI,ahEq8UJ,CA7nVA,iCCYI,UCN2B,CDG3B,qBAAsB,C+DoLtB,cAAe,CACf,iBAAkB,C/DpLlB,eD2nVJ,CAroVA,oBiEII,wB/DUc,C+DZd,cjEwoVJ,CA1oVA,0DiEQQ,kBAAmB,CADnB,YjEopVR,CA3pVA,sBCmBI,UyC6DQ,CuB/DJ,MAAO,ChEAX,sBAAuB,CgELnB,eAAgB,CAChB,eAAiB,CAMjB,eAAgB,CAEhB,oBjEsoVR,CA3pVA,2BiE2BY,QAAS,CACT,cjEooVZ,CAhqVA,0CiEkCQ,YAAa,CACb,MAAO,CACP,wBjEkoVR,CAtqVA,2DiE2CY,wB/DpBS,C+DqBT,yBAA0B,CAH1B,QAAS,CAIT,YAAa,CALb,UjEsoVZ,CA9qVA,wDiEmDY,kBAAmB,CAKnB,aAAc,CANd,YAAa,CAKb,QAAS,CADT,eAAgB,CADhB,UjEkoVZ,CAvrVA,6DiE6DgB,MAAO,CAFP,cAAe,CAIf,kBAAmB,CAEnB,gBjE6nVhB,CA9rVA,+DiE0EgB,wB/DnDK,C+DqDL,eAAgB,CANhB,MAAO,CAKP,YAAa,CAHb,UjE8nVhB,CAtsVA,+DiE0FY,kB/DnES,C+DiET,WAAY,CACZ,yBAA0B,ChEtElC,UyC6DQ,CzC/DR,sBAAuB,CgEkEf,cAAe,CACf,eAAiB,CAEjB,gBjE2nVZ,CAjtVA,kBkEEI,alEmtVJ,CArtVA,gCkEOQ,gBAAiB,CACjB,iBAAkB,CAFlB,eAAgB,CAGhB,iBlEmtVR,CA5tVA,8BkEcQ,elEktVR,CAhuVA,gCkEiBY,clEmtVZ,CApuVA,sBkEsBQ,clEktVR,CAxuVA,iECII,aCYiB,CDdjB,sBAAuB,CiEwBnB,clEotVR,CA9uVA,yGCII,aCYiB,CDdjB,sBDivVJ,CAnvVA,oBCII,aCmCgB,CDrChB,sBAAuB,CiEoCnB,cAAe,CAEf,kBlEktVR,CA1vVA,0BkE8CY,alEgtVZ,CA9vVA,sBkEmDQ,clE+sVR,CAlwVA,4BCYI,aCIiB,CDPjB,qBAAsB,CiE+ClB,cAAe,CACf,yBAA2B,CjE/C/B,eAAgB,CiEiDZ,QlEgtVR,CA3wVA,yBCII,aCYiB,CDdjB,sBAAuB,CiEgEnB,cAAe,CAEf,QlE8sVR,CAlxVA,+BkEuFY,kBhErEW,CgEoEX,kBAAmB,CAPnB,oBAAqB,CALrB,cAAe,CAOf,gBAAiB,CACjB,eAAgB,CANhB,iBAAkB,CAClB,QAAS,CAOT,oBlE0sVZ,CA9xVA,6CkE2FgB,wBlEusVhB,CAlyVA,mCCmBI,UyC6DQ,CzC/DR,sBAAuB,CiE+EX,QAAS,CACT,SlEwsVhB,CAzyVA,8BmEEI,YAAa,CAIb,sBAAuB,CAFvB,cnE2yVJ,CA/yVA,wCmESM,gBnE0yVN,CAnzVA,0BmEeI,YAAa,CAEb,MAAO,CACP,wBnEuyVJ,CAzzVA,qCmEuBQ,iBAAkB,CADlB,kBnEwyVR,CA9zVA,4BmEgCI,+BjE7B0B,CiE0B1B,eAAkB,CAClB,iBnEsyVJ,CAp0VA,yCmEuCQ,QAAS,CAHT,QAAS,CACT,iBnEqyVR,CA10VA,+BmE4CQ,2BnEkyVR,CA90VA,qCmEiDQ,QAAS,CACT,SnEiyVR,CAn1VA,8FmEwDQ,enEgyVR,CAx1VA,oCmEmEQ,qBAAyB,CAFzB,iBAAkB,CAIlB,SAAU,ClEzDd,aCIiB,CDPjB,qBAAsB,CkEoDlB,cAAe,ClEnDnB,eAAgB,CkE6DZ,UAAW,CARX,YnEqyVR,CAp2VA,sCmE8EY,gBAAiB,CADjB,yBnE4xVZ,CAz2VA,uBCmBI,aCHiB,CDCjB,sBAAuB,CkEsEnB,cnEwxVR,CA/2VA,yBmE8FU,ajEvDU,CiEwDV,cAAe,CAFf,cAAe,CAGf,iBAAkB,CAClB,yBnEsxVV,CAv3VA,uBmEwGI,gBnEmxVJ,CA33VA,4BoEKI,6BAAsB,CAAtB,qBAAsB,CAItB,6BlEuCmB,CkEzCnB,wBlEyCmB,CkExCnB,iBAAkB,CANlB,WAAY,CACZ,iBpEi4VJ,CAp4VA,2CoEaQ,epE23VR,CAx4VA,uCCYI,aCIiB,CDPjB,qBAAsB,CmEWd,cAAe,CnEVvB,eAAgB,CmEYR,QpE03VZ,CAh5VA,0CoE6BU,apEu3VV,CAp5VA,6CoEkCY,oBpEs3VZ,CAx5VA,oDoEsCgB,cpEs3VhB,CA55VA,gDoE6CY,cAAe,CADf,yBpEq3VZ,CAj6VA,mCoEqDQ,kBAAmB,CAFnB,YpEm3VR,CAt6VA,sCCmBI,aCHiB,CkE6CT,MAAO,CnE5Cf,sBAAuB,CmEwCf,cAAe,CAEf,QpEm3VZ,CoE12VA,2BAEI,GAII,SAAU,CAFV,mBpE42VN,CoEx2VE,GAII,SAAU,CAFV,kBpE02VN,CACF,CoEr3VA,mBAEI,GAII,SAAU,CAFV,mBpE42VN,CoEx2VE,GAII,SAAU,CAFV,kBpE02VN,CACF,CAz7VA,uCqECE,YrE47VF,CA77VA,oHsEEI,eAAgB,CAEhB,oBAAqB,CACrB,qBtE+7VJ,CAp8VA,4DsEWI,eAAgB,CAHhB,UAAY,CACZ,eAAmB,CAGnB,SAAY,CAFZ,oBtEk8VJ,CA58VA,8DsEoBI,0B5BkDQ,C4BnDR,iBAAkB,CrEPlB,aCqCiB,CDxCjB,qBAAsB,CqEOtB,cAAe,CrENf,eAAgB,CqEOhB,etEq8VJ,CAt9VA,sEsE0BI,atEg8VJ,C","file":"swagger-ui.css","sourcesContent":[".swagger-ui\n{\n @import '~tachyons-sass/tachyons.scss';\n @import 'mixins';\n @import 'variables';\n @import 'type';\n @import 'layout';\n @import 'buttons';\n @import 'form';\n @import 'modal';\n @import 'models';\n @import 'servers';\n @import 'table';\n @import 'topbar';\n @import 'information';\n @import 'authorize';\n @import 'errors';\n @include text_body();\n @import 'split-pane-mode';\n @import 'markdown';\n}\n","@mixin text_body($color: $text-body-default-font-color)\n{\n font-family: sans-serif;\n\n color: $color;\n}\n\n@mixin text_code($color: $text-code-default-font-color)\n{\n font-family: monospace;\n font-weight: 600;\n\n color: $color;\n}\n\n@mixin text_headline($color: $text-headline-default-font-color)\n{\n font-family: sans-serif;\n\n color: $color;\n}\n","// Base Colours\n$black: #000 !default;\n$white: #fff !default;\n$gray-50: lighten($black, 92%) !default; //ebebeb\n$gray-200: lighten($black, 62.75%) !default; // #a0a0a0\n$gray-300: lighten($black, 56.5%) !default; // #909090\n$gray-400: lighten($black, 50%) !default; // #808080\n$gray-500: lighten($black, 43.75%) !default; // #707070\n$gray-600: lighten($black, 37.5%) !default; // #606060\n$gray-650: lighten($black, 33.3%) !default; // #555555\n$gray-700: lighten($black, 31.25%) !default; // #505050\n$gray-800: lighten($black, 25%) !default; // #404040\n$gray-900: lighten($black, 18.75%) !default; // #303030\n\n$cod-gray: #1b1b1b !default;\n$agate-gray: #333333 !default;\n$bright-gray: #3b4151 !default;\n$mako-gray: #41444e !default;\n$waterloo-gray: #7d8492 !default;\n$alto-gray: #d9d9d9 !default;\n$mercury-gray: #e4e4e4 !default;\n$concrete-gray: #e8e8e8 !default;\n$alabaster: #f7f7f7 !default;\n$apple-green: #62a03f !default;\n$green-haze: #009d77 !default;\n$japanese-laurel: #008000 !default;\n$persian-green: #00a0a7 !default;\n$geyser-blue: #d8dde7 !default;\n$dodger-blue: #1391ff !default;\n$endeavour-blue: #005dae !default;\n$scampi-purple: #55a !default;\n$electric-violet: #7300e5 !default;\n$persian-red: #cf3030 !default;\n$mango-tango: #e97500 !default;\n\n// Theme\n\n$color-primary: #89bf04 !default;\n$color-secondary: #9012fe !default;\n$color-info: #4990e2 !default;\n$color-warning: #ff6060 !default;\n$color-danger: #f00 !default;\n\n$color-primary-hover: lighten($color-primary, .5%) !default;\n\n$_color-post: #49cc90 !default;\n$_color-get: #61affe !default;\n$_color-put: #fca130 !default;\n$_color-delete: #f93e3e !default;\n$_color-head: #9012fe !default;\n$_color-patch: #50e3c2 !default;\n$_color-disabled: #ebebeb !default;\n$_color-options: #0d5aa7 !default;\n\n// Authorize\n\n$auth-container-border-color: $gray-50 !default;\n$auth-select-all-none-link-font-color: $color-info !default;\n// Buttons\n\n$btn-background-color: transparent !default;\n$btn-border-color: $gray-400 !default;\n$btn-font-color: inherit !default;\n$btn-box-shadow-color: $black !default;\n\n$btn-authorize-background-color: transparent !default;\n$btn-authorize-border-color: $_color-post !default;\n$btn-authorize-font-color: $_color-post !default;\n$btn-authorize-svg-fill-color: $_color-post !default;\n\n$btn-cancel-background-color: transparent !default;\n$btn-cancel-border-color: $color-warning !default;\n$btn-cancel-font-color: $color-warning !default;\n\n$btn-execute-background-color: transparent !default;\n$btn-execute-border-color: $color-info !default;\n$btn-execute-font-color: $white !default;\n$btn-execute-background-color-alt: $color-info !default;\n\n$expand-methods-svg-fill-color: $gray-500 !default;\n$expand-methods-svg-fill-color-hover: $gray-800 !default;\n\n// Errors\n\n$errors-wrapper-background-color: $_color-delete !default;\n$errors-wrapper-border-color: $_color-delete !default;\n\n$errors-wrapper-errors-small-font-color: $gray-600 !default;\n\n// Form\n\n$form-select-background-color: $alabaster !default;\n$form-select-border-color: $mako-gray !default;\n$form-select-box-shadow-color: $black !default;\n\n$form-input-border-color: $alto-gray !default;\n$form-input-background-color: $white !default;\n\n$form-textarea-background-color: $white !default;\n$form-textarea-focus-border-color: $_color-get !default;\n\n$form-textarea-curl-background-color: $mako-gray !default;\n$form-textarea-curl-font-color: $white !default;\n\n$form-checkbox-label-font-color: $gray-900 !default;\n$form-checkbox-background-color: $concrete-gray !default;\n$form-checkbox-box-shadow-color: $concrete-gray !default;\n\n// Information\n\n$info-code-background-color: $black !default;\n$info-code-font-color: $_color-head !default;\n\n$info-link-font-color: $color-info !default;\n$info-link-font-color-hover: $info-link-font-color !default;\n\n$info-title-small-background-color: $waterloo-gray !default;\n\n$info-title-small-pre-font-color: $white !default;\n\n// Layout\n\n$opblock-border-color: $black !default;\n$opblock-box-shadow-color: $black !default;\n\n$opblock-tag-border-bottom-color: $bright-gray !default;\n$opblock-tag-background-color-hover: $black !default;\n\n$opblock-tab-header-tab-item-active-h4-span-after-background-color: $gray-400 !default;\n\n$opblock-isopen-summary-border-bottom-color: $black !default;\n\n$opblock-isopen-section-header-background-color: $white !default;\n$opblock-isopen-section-header-box-shadow-color: $black !default;\n\n$opblock-summary-method-background-color: $black !default;\n$opblock-summary-method-font-color: $white !default;\n$opblock-summary-method-text-shadow-color: $black !default;\n\n$operational-filter-input-border-color: $geyser-blue !default;\n\n$tab-list-item-first-background-color: $black !default;\n\n$response-col-status-undocumented-font-color: $gray-300 !default;\n\n$response-col-links-font-color: $gray-300 !default;\n\n$opblock-body-background-color: $agate-gray !default;\n$opblock-body-font-color: $white !default;\n\n$scheme-container-background-color: $white !default;\n$scheme-container-box-shadow-color: $black !default;\n\n$server-container-background-color: $white !default;\n$server-container-box-shadow-color: $black !default;\n\n$server-container-computed-url-code-font-color: $gray-400 !default;\n\n$loading-container-before-border-color: $gray-650 !default;\n$loading-container-before-border-top-color: $black !default;\n\n$response-content-type-controls-accept-header-select-border-color: $japanese-laurel !default;\n$response-content-type-controls-accept-header-small-font-color: $japanese-laurel !default;\n\n// Modal\n\n$dialog-ux-backdrop-background-color: $black !default;\n\n\n$dialog-ux-modal-background-color: $white !default;\n$dialog-ux-modal-border-color: $gray-50 !default;\n$dialog-ux-modal-box-shadow-color: $black !default;\n\n$dialog-ux-modal-content-font-color: $mako-gray !default;\n\n$dialog-ux-modal-header-border-bottom-color: $gray-50 !default;\n\n// Models\n\n$model-deprecated-font-color: $gray-200 !default;\n\n$model-hint-font-color: $gray-50 !default;\n$model-hint-background-color: $black !default;\n\n$section-models-border-color: $bright-gray !default;\n\n$section-models-isopen-h4-border-bottom-color: $section-models-border-color !default;\n\n$section-models-h4-font-color: $gray-600 !default;\n$section-models-h4-background-color-hover: $black !default;\n\n$section-models-h5-font-color: $gray-500 !default;\n\n$section-models-model-container-background-color: $black !default;\n\n$section-models-model-box-background-color: $black !default;\n\n$section-models-model-title-font-color: $gray-700 !default;\n\n$prop-type-font-color: $scampi-purple !default;\n\n$prop-format-font-color: $gray-600 !default;\n\n// Tables\n\n$table-thead-td-border-bottom-color: $bright-gray !default;\n\n$table-parameter-name-required-font-color: $color-danger !default;\n\n$table-parameter-in-font-color: $gray-400 !default;\n\n$table-parameter-deprecated-font-color: $color-danger !default;\n\n// Topbar\n\n$topbar-background-color: $cod-gray !default;\n\n$topbar-link-font-color: $white !default;\n\n$topbar-download-url-wrapper-element-border-color: $apple-green !default;\n\n$topbar-download-url-button-background-color: $apple-green !default;\n$topbar-download-url-button-font-color: $white !default;\n\n// Type\n\n$text-body-default-font-color: $bright-gray !default;\n$text-code-default-font-color: $bright-gray !default;\n$text-headline-default-font-color: $bright-gray !default;\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in\n * IE on Windows Phone and in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -ms-text-size-adjust: 100%; /* 2 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers (opinionated).\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Add the correct display in IE 9-.\n */\n\narticle,\naside,\nfooter,\nheader,\nnav,\nsection {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * Add the correct display in IE 9-.\n * 1. Add the correct display in IE.\n */\n\nfigcaption,\nfigure,\nmain { /* 1 */\n display: block;\n}\n\n/**\n * Add the correct margin in IE 8.\n */\n\nfigure {\n margin: 1em 40px;\n}\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * 1. Remove the gray background on active links in IE 10.\n * 2. Remove gaps in links underline in iOS 8+ and Safari 8+.\n */\n\na {\n background-color: transparent; /* 1 */\n -webkit-text-decoration-skip: objects; /* 2 */\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57- and Firefox 39-.\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Prevent the duplicate application of `bolder` by the next rule in Safari 6.\n */\n\nb,\nstrong {\n font-weight: inherit;\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font style in Android 4.3-.\n */\n\ndfn {\n font-style: italic;\n}\n\n/**\n * Add the correct background and color in IE 9-.\n */\n\nmark {\n background-color: #ff0;\n color: #000;\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Add the correct display in IE 9-.\n */\n\naudio,\nvideo {\n display: inline-block;\n}\n\n/**\n * Add the correct display in iOS 4-7.\n */\n\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n\n/**\n * Remove the border on images inside links in IE 10-.\n */\n\nimg {\n border-style: none;\n}\n\n/**\n * Hide the overflow in IE.\n */\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers (opinionated).\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: sans-serif; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput { /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\n * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n * controls in Android 4.\n * 2. Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\nhtml [type=\"button\"], /* 1 */\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; /* 2 */\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * 1. Add the correct display in IE 9-.\n * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n display: inline-block; /* 1 */\n vertical-align: baseline; /* 2 */\n}\n\n/**\n * Remove the default vertical scrollbar in IE.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10-.\n * 2. Remove the padding in IE 10-.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding and cancel buttons in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-cancel-button,\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in IE 9-.\n * 1. Add the correct display in Edge, IE, and Firefox.\n */\n\ndetails, /* 1 */\nmenu {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Scripting\n ========================================================================== */\n\n/**\n * Add the correct display in IE 9-.\n */\n\ncanvas {\n display: inline-block;\n}\n\n/**\n * Add the correct display in IE.\n */\n\ntemplate {\n display: none;\n}\n\n/* Hidden\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10-.\n */\n\n[hidden] {\n display: none;\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n DEBUG CHILDREN\n Docs: http://tachyons.io/docs/debug/\n\n Just add the debug class to any element to see outlines on its\n children.\n\n*/\n\n.debug * { outline: 1px solid gold; }\n.debug-white * { outline: 1px solid white; }\n.debug-black * { outline: 1px solid black; }\n\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n DEBUG GRID\n http://tachyons.io/docs/debug-grid/\n\n Can be useful for debugging layout issues\n or helping to make sure things line up perfectly.\n Just tack one of these classes onto a parent element.\n\n*/\n\n.debug-grid {\n background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTRDOTY4N0U2N0VFMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTRDOTY4N0Q2N0VFMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3NjY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3NzY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsBS+GMAAAAjSURBVHjaYvz//z8DLsD4gcGXiYEAGBIKGBne//fFpwAgwAB98AaF2pjlUQAAAABJRU5ErkJggg==) repeat top left;\n}\n\n.debug-grid-16 {\n background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODYyRjhERDU2N0YyMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ODYyRjhERDQ2N0YyMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3QTY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3QjY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PvCS01IAAABMSURBVHjaYmR4/5+BFPBfAMFm/MBgx8RAGWCn1AAmSg34Q6kBDKMGMDCwICeMIemF/5QawEipAWwUhwEjMDvbAWlWkvVBwu8vQIABAEwBCph8U6c0AAAAAElFTkSuQmCC) repeat top left;\n}\n\n.debug-grid-8-solid {\n background:white url(data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAAAAAD/4QMxaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzExMSA3OS4xNTgzMjUsIDIwMTUvMDkvMTAtMDE6MTA6MjAgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkIxMjI0OTczNjdCMzExRTZCMkJDRTI0MDgxMDAyMTcxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkIxMjI0OTc0NjdCMzExRTZCMkJDRTI0MDgxMDAyMTcxIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QjEyMjQ5NzE2N0IzMTFFNkIyQkNFMjQwODEwMDIxNzEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QjEyMjQ5NzI2N0IzMTFFNkIyQkNFMjQwODEwMDIxNzEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAbGhopHSlBJiZBQi8vL0JHPz4+P0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHAR0pKTQmND8oKD9HPzU/R0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0f/wAARCAAIAAgDASIAAhEBAxEB/8QAWQABAQAAAAAAAAAAAAAAAAAAAAYBAQEAAAAAAAAAAAAAAAAAAAIEEAEBAAMBAAAAAAAAAAAAAAABADECA0ERAAEDBQAAAAAAAAAAAAAAAAARITFBUWESIv/aAAwDAQACEQMRAD8AoOnTV1QTD7JJshP3vSM3P//Z) repeat top left;\n}\n\n.debug-grid-16-solid {\n background:white url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzY3MkJEN0U2N0M1MTFFNkIyQkNFMjQwODEwMDIxNzEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzY3MkJEN0Y2N0M1MTFFNkIyQkNFMjQwODEwMDIxNzEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3QzY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3RDY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pve6J3kAAAAzSURBVHjaYvz//z8D0UDsMwMjSRoYP5Gq4SPNbRjVMEQ1fCRDg+in/6+J1AJUxsgAEGAA31BAJMS0GYEAAAAASUVORK5CYII=) repeat top left;\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n BOX SIZING\n\n*/\n\nhtml,\nbody,\ndiv,\narticle,\nsection,\nmain,\nfooter,\nheader,\nform,\nfieldset,\nlegend,\npre,\ncode,\na,\nh1,h2,h3,h4,h5,h6,\np,\nul,\nol,\nli,\ndl,\ndt,\ndd,\ntextarea,\ntable,\ntd,\nth,\ntr,\ninput[type=\"email\"],\ninput[type=\"number\"],\ninput[type=\"password\"],\ninput[type=\"tel\"],\ninput[type=\"text\"],\ninput[type=\"url\"],\n.border-box {\n box-sizing: border-box;\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n ASPECT RATIOS\n\n*/\n\n/* This is for fluid media that is embedded from third party sites like youtube, vimeo etc.\n * Wrap the outer element in aspect-ratio and then extend it with the desired ratio i.e\n * Make sure there are no height and width attributes on the embedded media.\n * Adapted from: https://github.com/suitcss/components-flex-embed\n *\n * Example:\n *\n *
\n * \n *
\n *\n * */\n\n.aspect-ratio {\n height: 0;\n position: relative;\n}\n\n.aspect-ratio--16x9 { padding-bottom: 56.25%; }\n.aspect-ratio--9x16 { padding-bottom: 177.77%; }\n\n.aspect-ratio--4x3 { padding-bottom: 75%; }\n.aspect-ratio--3x4 { padding-bottom: 133.33%; }\n\n.aspect-ratio--6x4 { padding-bottom: 66.6%; }\n.aspect-ratio--4x6 { padding-bottom: 150%; }\n\n.aspect-ratio--8x5 { padding-bottom: 62.5%; }\n.aspect-ratio--5x8 { padding-bottom: 160%; }\n\n.aspect-ratio--7x5 { padding-bottom: 71.42%; }\n.aspect-ratio--5x7 { padding-bottom: 140%; }\n\n.aspect-ratio--1x1 { padding-bottom: 100%; }\n\n.aspect-ratio--object {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 100;\n}\n\n@media #{$breakpoint-not-small}{\n .aspect-ratio-ns {\n height: 0;\n position: relative;\n }\n .aspect-ratio--16x9-ns { padding-bottom: 56.25%; }\n .aspect-ratio--9x16-ns { padding-bottom: 177.77%; }\n .aspect-ratio--4x3-ns { padding-bottom: 75%; }\n .aspect-ratio--3x4-ns { padding-bottom: 133.33%; }\n .aspect-ratio--6x4-ns { padding-bottom: 66.6%; }\n .aspect-ratio--4x6-ns { padding-bottom: 150%; }\n .aspect-ratio--8x5-ns { padding-bottom: 62.5%; }\n .aspect-ratio--5x8-ns { padding-bottom: 160%; }\n .aspect-ratio--7x5-ns { padding-bottom: 71.42%; }\n .aspect-ratio--5x7-ns { padding-bottom: 140%; }\n .aspect-ratio--1x1-ns { padding-bottom: 100%; }\n .aspect-ratio--object-ns {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 100;\n }\n}\n\n@media #{$breakpoint-medium}{\n .aspect-ratio-m {\n height: 0;\n position: relative;\n }\n .aspect-ratio--16x9-m { padding-bottom: 56.25%; }\n .aspect-ratio--9x16-m { padding-bottom: 177.77%; }\n .aspect-ratio--4x3-m { padding-bottom: 75%; }\n .aspect-ratio--3x4-m { padding-bottom: 133.33%; }\n .aspect-ratio--6x4-m { padding-bottom: 66.6%; }\n .aspect-ratio--4x6-m { padding-bottom: 150%; }\n .aspect-ratio--8x5-m { padding-bottom: 62.5%; }\n .aspect-ratio--5x8-m { padding-bottom: 160%; }\n .aspect-ratio--7x5-m { padding-bottom: 71.42%; }\n .aspect-ratio--5x7-m { padding-bottom: 140%; }\n .aspect-ratio--1x1-m { padding-bottom: 100%; }\n .aspect-ratio--object-m {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 100;\n }\n}\n\n@media #{$breakpoint-large}{\n .aspect-ratio-l {\n height: 0;\n position: relative;\n }\n .aspect-ratio--16x9-l { padding-bottom: 56.25%; }\n .aspect-ratio--9x16-l { padding-bottom: 177.77%; }\n .aspect-ratio--4x3-l { padding-bottom: 75%; }\n .aspect-ratio--3x4-l { padding-bottom: 133.33%; }\n .aspect-ratio--6x4-l { padding-bottom: 66.6%; }\n .aspect-ratio--4x6-l { padding-bottom: 150%; }\n .aspect-ratio--8x5-l { padding-bottom: 62.5%; }\n .aspect-ratio--5x8-l { padding-bottom: 160%; }\n .aspect-ratio--7x5-l { padding-bottom: 71.42%; }\n .aspect-ratio--5x7-l { padding-bottom: 140%; }\n .aspect-ratio--1x1-l { padding-bottom: 100%; }\n .aspect-ratio--object-l {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 100;\n }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n IMAGES\n Docs: http://tachyons.io/docs/elements/images/\n\n*/\n\n/* Responsive images! */\n\nimg { max-width: 100%; }\n\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n BACKGROUND SIZE\n Docs: http://tachyons.io/docs/themes/background-size/\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n/*\n Often used in combination with background image set as an inline style\n on an html element.\n*/\n\n .cover { background-size: cover!important; }\n .contain { background-size: contain!important; }\n\n@media #{$breakpoint-not-small} {\n .cover-ns { background-size: cover!important; }\n .contain-ns { background-size: contain!important; }\n}\n\n@media #{$breakpoint-medium} {\n .cover-m { background-size: cover!important; }\n .contain-m { background-size: contain!important; }\n}\n\n@media #{$breakpoint-large} {\n .cover-l { background-size: cover!important; }\n .contain-l { background-size: contain!important; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n BACKGROUND POSITION\n\n Base:\n bg = background\n\n Modifiers:\n -center = center center\n -top = top center\n -right = center right\n -bottom = bottom center\n -left = center left\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n */\n\n.bg-center { \n background-repeat: no-repeat;\n background-position: center center; \n}\n\n.bg-top { \n background-repeat: no-repeat; \n background-position: top center; \n}\n\n.bg-right { \n background-repeat: no-repeat; \n background-position: center right; \n}\n\n.bg-bottom { \n background-repeat: no-repeat; \n background-position: bottom center; \n}\n\n.bg-left { \n background-repeat: no-repeat; \n background-position: center left; \n}\n\n@media #{$breakpoint-not-small} {\n .bg-center-ns { \n background-repeat: no-repeat;\n background-position: center center; \n }\n\n .bg-top-ns { \n background-repeat: no-repeat; \n background-position: top center; \n }\n\n .bg-right-ns { \n background-repeat: no-repeat; \n background-position: center right; \n }\n\n .bg-bottom-ns { \n background-repeat: no-repeat; \n background-position: bottom center; \n }\n\n .bg-left-ns { \n background-repeat: no-repeat; \n background-position: center left; \n }\n}\n\n@media #{$breakpoint-medium} {\n .bg-center-m { \n background-repeat: no-repeat;\n background-position: center center; \n }\n\n .bg-top-m { \n background-repeat: no-repeat; \n background-position: top center; \n }\n\n .bg-right-m { \n background-repeat: no-repeat; \n background-position: center right; \n }\n\n .bg-bottom-m { \n background-repeat: no-repeat; \n background-position: bottom center; \n }\n\n .bg-left-m { \n background-repeat: no-repeat; \n background-position: center left; \n }\n}\n\n@media #{$breakpoint-large} {\n .bg-center-l { \n background-repeat: no-repeat;\n background-position: center center; \n }\n\n .bg-top-l { \n background-repeat: no-repeat; \n background-position: top center; \n }\n\n .bg-right-l { \n background-repeat: no-repeat; \n background-position: center right; \n }\n\n .bg-bottom-l { \n background-repeat: no-repeat; \n background-position: bottom center; \n }\n\n .bg-left-l { \n background-repeat: no-repeat; \n background-position: center left; \n }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n OUTLINES\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n.outline { outline: 1px solid; }\n.outline-transparent { outline: 1px solid transparent; }\n.outline-0 { outline: 0; }\n\n@media #{$breakpoint-not-small} {\n .outline-ns { outline: 1px solid; }\n .outline-transparent-ns { outline: 1px solid transparent; }\n .outline-0-ns { outline: 0; }\n}\n\n@media #{$breakpoint-medium} {\n .outline-m { outline: 1px solid; }\n .outline-transparent-m { outline: 1px solid transparent; }\n .outline-0-m { outline: 0; }\n}\n\n@media #{$breakpoint-large} {\n .outline-l { outline: 1px solid; }\n .outline-transparent-l { outline: 1px solid transparent; }\n .outline-0-l { outline: 0; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n BORDERS\n Docs: http://tachyons.io/docs/themes/borders/\n\n Base:\n b = border\n\n Modifiers:\n a = all\n t = top\n r = right\n b = bottom\n l = left\n n = none\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n .ba { border-style: solid; border-width: 1px; }\n .bt { border-top-style: solid; border-top-width: 1px; }\n .br { border-right-style: solid; border-right-width: 1px; }\n .bb { border-bottom-style: solid; border-bottom-width: 1px; }\n .bl { border-left-style: solid; border-left-width: 1px; }\n .bn { border-style: none; border-width: 0; }\n\n\n@media #{$breakpoint-not-small} {\n .ba-ns { border-style: solid; border-width: 1px; }\n .bt-ns { border-top-style: solid; border-top-width: 1px; }\n .br-ns { border-right-style: solid; border-right-width: 1px; }\n .bb-ns { border-bottom-style: solid; border-bottom-width: 1px; }\n .bl-ns { border-left-style: solid; border-left-width: 1px; }\n .bn-ns { border-style: none; border-width: 0; }\n}\n\n@media #{$breakpoint-medium} {\n .ba-m { border-style: solid; border-width: 1px; }\n .bt-m { border-top-style: solid; border-top-width: 1px; }\n .br-m { border-right-style: solid; border-right-width: 1px; }\n .bb-m { border-bottom-style: solid; border-bottom-width: 1px; }\n .bl-m { border-left-style: solid; border-left-width: 1px; }\n .bn-m { border-style: none; border-width: 0; }\n}\n\n@media #{$breakpoint-large} {\n .ba-l { border-style: solid; border-width: 1px; }\n .bt-l { border-top-style: solid; border-top-width: 1px; }\n .br-l { border-right-style: solid; border-right-width: 1px; }\n .bb-l { border-bottom-style: solid; border-bottom-width: 1px; }\n .bl-l { border-left-style: solid; border-left-width: 1px; }\n .bn-l { border-style: none; border-width: 0; }\n}\n\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n BORDER COLORS\n Docs: http://tachyons.io/docs/themes/borders/\n\n Border colors can be used to extend the base\n border classes ba,bt,bb,br,bl found in the _borders.css file.\n\n The base border class by default will set the color of the border\n to that of the current text color. These classes are for the cases\n where you desire for the text and border colors to be different.\n\n Base:\n b = border\n\n Modifiers:\n --color-name = each color variable name is also a border color name\n\n*/\n\n.b--black { border-color: $black; }\n.b--near-black { border-color: $near-black; }\n.b--dark-gray { border-color: $dark-gray; }\n.b--mid-gray { border-color: $mid-gray; }\n.b--gray { border-color: $gray; }\n.b--silver { border-color: $silver; }\n.b--light-silver { border-color: $light-silver; }\n.b--moon-gray { border-color: $moon-gray; }\n.b--light-gray { border-color: $light-gray; }\n.b--near-white { border-color: $near-white; }\n.b--white { border-color: $white; }\n\n.b--white-90 { border-color: $white-90; }\n.b--white-80 { border-color: $white-80; }\n.b--white-70 { border-color: $white-70; }\n.b--white-60 { border-color: $white-60; }\n.b--white-50 { border-color: $white-50; }\n.b--white-40 { border-color: $white-40; }\n.b--white-30 { border-color: $white-30; }\n.b--white-20 { border-color: $white-20; }\n.b--white-10 { border-color: $white-10; }\n.b--white-05 { border-color: $white-05; }\n.b--white-025 { border-color: $white-025; }\n.b--white-0125 { border-color: $white-0125; }\n\n.b--black-90 { border-color: $black-90; }\n.b--black-80 { border-color: $black-80; }\n.b--black-70 { border-color: $black-70; }\n.b--black-60 { border-color: $black-60; }\n.b--black-50 { border-color: $black-50; }\n.b--black-40 { border-color: $black-40; }\n.b--black-30 { border-color: $black-30; }\n.b--black-20 { border-color: $black-20; }\n.b--black-10 { border-color: $black-10; }\n.b--black-05 { border-color: $black-05; }\n.b--black-025 { border-color: $black-025; }\n.b--black-0125 { border-color: $black-0125; }\n\n.b--dark-red { border-color: $dark-red; }\n.b--red { border-color: $red; }\n.b--light-red { border-color: $light-red; }\n.b--orange { border-color: $orange; }\n.b--gold { border-color: $gold; }\n.b--yellow { border-color: $yellow; }\n.b--light-yellow { border-color: $light-yellow; }\n.b--purple { border-color: $purple; }\n.b--light-purple { border-color: $light-purple; }\n.b--dark-pink { border-color: $dark-pink; }\n.b--hot-pink { border-color: $hot-pink; }\n.b--pink { border-color: $pink; }\n.b--light-pink { border-color: $light-pink; }\n.b--dark-green { border-color: $dark-green; }\n.b--green { border-color: $green; }\n.b--light-green { border-color: $light-green; }\n.b--navy { border-color: $navy; }\n.b--dark-blue { border-color: $dark-blue; }\n.b--blue { border-color: $blue; }\n.b--light-blue { border-color: $light-blue; }\n.b--lightest-blue { border-color: $lightest-blue; }\n.b--washed-blue { border-color: $washed-blue; }\n.b--washed-green { border-color: $washed-green; }\n.b--washed-yellow { border-color: $washed-yellow; }\n.b--washed-red { border-color: $washed-red; }\n\n.b--transparent { border-color: $transparent; }\n.b--inherit { border-color: inherit; }\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n BORDER RADIUS\n Docs: http://tachyons.io/docs/themes/border-radius/\n\n Base:\n br = border-radius\n\n Modifiers:\n 0 = 0/none\n 1 = 1st step in scale\n 2 = 2nd step in scale\n 3 = 3rd step in scale\n 4 = 4th step in scale\n\n Literal values:\n -100 = 100%\n -pill = 9999px\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n .br0 { border-radius: $border-radius-none }\n .br1 { border-radius: $border-radius-1; }\n .br2 { border-radius: $border-radius-2; }\n .br3 { border-radius: $border-radius-3; }\n .br4 { border-radius: $border-radius-4; }\n .br-100 { border-radius: $border-radius-circle; }\n .br-pill { border-radius: $border-radius-pill; }\n .br--bottom {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n .br--top {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n }\n .br--right {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .br--left {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n\n@media #{$breakpoint-not-small} {\n .br0-ns { border-radius: $border-radius-none }\n .br1-ns { border-radius: $border-radius-1; }\n .br2-ns { border-radius: $border-radius-2; }\n .br3-ns { border-radius: $border-radius-3; }\n .br4-ns { border-radius: $border-radius-4; }\n .br-100-ns { border-radius: $border-radius-circle; }\n .br-pill-ns { border-radius: $border-radius-pill; }\n .br--bottom-ns {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n .br--top-ns {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n }\n .br--right-ns {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .br--left-ns {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n}\n\n@media #{$breakpoint-medium} {\n .br0-m { border-radius: $border-radius-none }\n .br1-m { border-radius: $border-radius-1; }\n .br2-m { border-radius: $border-radius-2; }\n .br3-m { border-radius: $border-radius-3; }\n .br4-m { border-radius: $border-radius-4; }\n .br-100-m { border-radius: $border-radius-circle; }\n .br-pill-m { border-radius: $border-radius-pill; }\n .br--bottom-m {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n .br--top-m {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n }\n .br--right-m {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .br--left-m {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n}\n\n@media #{$breakpoint-large} {\n .br0-l { border-radius: $border-radius-none }\n .br1-l { border-radius: $border-radius-1; }\n .br2-l { border-radius: $border-radius-2; }\n .br3-l { border-radius: $border-radius-3; }\n .br4-l { border-radius: $border-radius-4; }\n .br-100-l { border-radius: $border-radius-circle; }\n .br-pill-l { border-radius: $border-radius-pill; }\n .br--bottom-l {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n .br--top-l {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n }\n .br--right-l {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .br--left-l {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n BORDER STYLES\n Docs: http://tachyons.io/docs/themes/borders/\n\n Depends on base border module in _borders.css\n\n Base:\n b = border-style\n\n Modifiers:\n --none = none\n --dotted = dotted\n --dashed = dashed\n --solid = solid\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n */\n\n.b--dotted { border-style: dotted; }\n.b--dashed { border-style: dashed; }\n.b--solid { border-style: solid; }\n.b--none { border-style: none; }\n\n@media #{$breakpoint-not-small} {\n .b--dotted-ns { border-style: dotted; }\n .b--dashed-ns { border-style: dashed; }\n .b--solid-ns { border-style: solid; }\n .b--none-ns { border-style: none; }\n}\n\n@media #{$breakpoint-medium} {\n .b--dotted-m { border-style: dotted; }\n .b--dashed-m { border-style: dashed; }\n .b--solid-m { border-style: solid; }\n .b--none-m { border-style: none; }\n}\n\n@media #{$breakpoint-large} {\n .b--dotted-l { border-style: dotted; }\n .b--dashed-l { border-style: dashed; }\n .b--solid-l { border-style: solid; }\n .b--none-l { border-style: none; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n BORDER WIDTHS\n Docs: http://tachyons.io/docs/themes/borders/\n\n Base:\n bw = border-width\n\n Modifiers:\n 0 = 0 width border\n 1 = 1st step in border-width scale\n 2 = 2nd step in border-width scale\n 3 = 3rd step in border-width scale\n 4 = 4th step in border-width scale\n 5 = 5th step in border-width scale\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n.bw0 { border-width: $border-width-none; }\n.bw1 { border-width: $border-width-1; }\n.bw2 { border-width: $border-width-2; }\n.bw3 { border-width: $border-width-3; }\n.bw4 { border-width: $border-width-4; }\n.bw5 { border-width: $border-width-5; }\n\n/* Resets */\n.bt-0 { border-top-width: $border-width-none }\n.br-0 { border-right-width: $border-width-none }\n.bb-0 { border-bottom-width: $border-width-none }\n.bl-0 { border-left-width: $border-width-none }\n\n@media #{$breakpoint-not-small} {\n .bw0-ns { border-width: $border-width-none; }\n .bw1-ns { border-width: $border-width-1; }\n .bw2-ns { border-width: $border-width-2; }\n .bw3-ns { border-width: $border-width-3; }\n .bw4-ns { border-width: $border-width-4; }\n .bw5-ns { border-width: $border-width-5; }\n .bt-0-ns { border-top-width: $border-width-none }\n .br-0-ns { border-right-width: $border-width-none }\n .bb-0-ns { border-bottom-width: $border-width-none }\n .bl-0-ns { border-left-width: $border-width-none }\n}\n\n@media #{$breakpoint-medium} {\n .bw0-m { border-width: $border-width-none; }\n .bw1-m { border-width: $border-width-1; }\n .bw2-m { border-width: $border-width-2; }\n .bw3-m { border-width: $border-width-3; }\n .bw4-m { border-width: $border-width-4; }\n .bw5-m { border-width: $border-width-5; }\n .bt-0-m { border-top-width: $border-width-none }\n .br-0-m { border-right-width: $border-width-none }\n .bb-0-m { border-bottom-width: $border-width-none }\n .bl-0-m { border-left-width: $border-width-none }\n}\n\n@media #{$breakpoint-large} {\n .bw0-l { border-width: $border-width-none; }\n .bw1-l { border-width: $border-width-1; }\n .bw2-l { border-width: $border-width-2; }\n .bw3-l { border-width: $border-width-3; }\n .bw4-l { border-width: $border-width-4; }\n .bw5-l { border-width: $border-width-5; }\n .bt-0-l { border-top-width: $border-width-none }\n .br-0-l { border-right-width: $border-width-none }\n .bb-0-l { border-bottom-width: $border-width-none }\n .bl-0-l { border-left-width: $border-width-none }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n BOX-SHADOW\n Docs: http://tachyons.io/docs/themes/box-shadow/\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n */\n\n.shadow-1 { box-shadow: $box-shadow-1; }\n.shadow-2 { box-shadow: $box-shadow-2; }\n.shadow-3 { box-shadow: $box-shadow-3; }\n.shadow-4 { box-shadow: $box-shadow-4; }\n.shadow-5 { box-shadow: $box-shadow-5; }\n\n@media #{$breakpoint-not-small} {\n .shadow-1-ns { box-shadow: $box-shadow-1; }\n .shadow-2-ns { box-shadow: $box-shadow-2; }\n .shadow-3-ns { box-shadow: $box-shadow-3; }\n .shadow-4-ns { box-shadow: $box-shadow-4; }\n .shadow-5-ns { box-shadow: $box-shadow-5; }\n}\n\n@media #{$breakpoint-medium} {\n .shadow-1-m { box-shadow: $box-shadow-1; }\n .shadow-2-m { box-shadow: $box-shadow-2; }\n .shadow-3-m { box-shadow: $box-shadow-3; }\n .shadow-4-m { box-shadow: $box-shadow-4; }\n .shadow-5-m { box-shadow: $box-shadow-5; }\n}\n\n@media #{$breakpoint-large} {\n .shadow-1-l { box-shadow: $box-shadow-1; }\n .shadow-2-l { box-shadow: $box-shadow-2; }\n .shadow-3-l { box-shadow: $box-shadow-3; }\n .shadow-4-l { box-shadow: $box-shadow-4; }\n .shadow-5-l { box-shadow: $box-shadow-5; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n CODE\n\n*/\n\n.pre {\n overflow-x: auto;\n overflow-y: hidden;\n overflow: scroll;\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n COORDINATES\n Docs: http://tachyons.io/docs/layout/position/\n\n Use in combination with the position module.\n\n Base:\n top\n bottom\n right\n left\n\n Modifiers:\n -0 = literal value 0\n -1 = literal value 1\n -2 = literal value 2\n --1 = literal value -1\n --2 = literal value -2\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n.top-0 { top: 0; }\n.right-0 { right: 0; }\n.bottom-0 { bottom: 0; }\n.left-0 { left: 0; }\n\n.top-1 { top: 1rem; }\n.right-1 { right: 1rem; }\n.bottom-1 { bottom: 1rem; }\n.left-1 { left: 1rem; }\n\n.top-2 { top: 2rem; }\n.right-2 { right: 2rem; }\n.bottom-2 { bottom: 2rem; }\n.left-2 { left: 2rem; }\n\n.top--1 { top: -1rem; }\n.right--1 { right: -1rem; }\n.bottom--1 { bottom: -1rem; }\n.left--1 { left: -1rem; }\n\n.top--2 { top: -2rem; }\n.right--2 { right: -2rem; }\n.bottom--2 { bottom: -2rem; }\n.left--2 { left: -2rem; }\n\n\n.absolute--fill {\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n}\n\n@media #{$breakpoint-not-small} {\n .top-0-ns { top: 0; }\n .left-0-ns { left: 0; }\n .right-0-ns { right: 0; }\n .bottom-0-ns { bottom: 0; }\n .top-1-ns { top: 1rem; }\n .left-1-ns { left: 1rem; }\n .right-1-ns { right: 1rem; }\n .bottom-1-ns { bottom: 1rem; }\n .top-2-ns { top: 2rem; }\n .left-2-ns { left: 2rem; }\n .right-2-ns { right: 2rem; }\n .bottom-2-ns { bottom: 2rem; }\n .top--1-ns { top: -1rem; }\n .right--1-ns { right: -1rem; }\n .bottom--1-ns { bottom: -1rem; }\n .left--1-ns { left: -1rem; }\n .top--2-ns { top: -2rem; }\n .right--2-ns { right: -2rem; }\n .bottom--2-ns { bottom: -2rem; }\n .left--2-ns { left: -2rem; }\n .absolute--fill-ns {\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n }\n}\n\n@media #{$breakpoint-medium} {\n .top-0-m { top: 0; }\n .left-0-m { left: 0; }\n .right-0-m { right: 0; }\n .bottom-0-m { bottom: 0; }\n .top-1-m { top: 1rem; }\n .left-1-m { left: 1rem; }\n .right-1-m { right: 1rem; }\n .bottom-1-m { bottom: 1rem; }\n .top-2-m { top: 2rem; }\n .left-2-m { left: 2rem; }\n .right-2-m { right: 2rem; }\n .bottom-2-m { bottom: 2rem; }\n .top--1-m { top: -1rem; }\n .right--1-m { right: -1rem; }\n .bottom--1-m { bottom: -1rem; }\n .left--1-m { left: -1rem; }\n .top--2-m { top: -2rem; }\n .right--2-m { right: -2rem; }\n .bottom--2-m { bottom: -2rem; }\n .left--2-m { left: -2rem; }\n .absolute--fill-m {\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n }\n}\n\n@media #{$breakpoint-large} {\n .top-0-l { top: 0; }\n .left-0-l { left: 0; }\n .right-0-l { right: 0; }\n .bottom-0-l { bottom: 0; }\n .top-1-l { top: 1rem; }\n .left-1-l { left: 1rem; }\n .right-1-l { right: 1rem; }\n .bottom-1-l { bottom: 1rem; }\n .top-2-l { top: 2rem; }\n .left-2-l { left: 2rem; }\n .right-2-l { right: 2rem; }\n .bottom-2-l { bottom: 2rem; }\n .top--1-l { top: -1rem; }\n .right--1-l { right: -1rem; }\n .bottom--1-l { bottom: -1rem; }\n .left--1-l { left: -1rem; }\n .top--2-l { top: -2rem; }\n .right--2-l { right: -2rem; }\n .bottom--2-l { bottom: -2rem; }\n .left--2-l { left: -2rem; }\n .absolute--fill-l {\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n CLEARFIX\n http://tachyons.io/docs/layout/clearfix/\n\n*/\n\n/* Nicolas Gallaghers Clearfix solution\n Ref: http://nicolasgallagher.com/micro-clearfix-hack/ */\n\n.cf:before,\n.cf:after { content: \" \"; display: table; }\n.cf:after { clear: both; }\n.cf { *zoom: 1; }\n\n.cl { clear: left; }\n.cr { clear: right; }\n.cb { clear: both; }\n.cn { clear: none; }\n\n@media #{$breakpoint-not-small} {\n .cl-ns { clear: left; }\n .cr-ns { clear: right; }\n .cb-ns { clear: both; }\n .cn-ns { clear: none; }\n}\n\n@media #{$breakpoint-medium} {\n .cl-m { clear: left; }\n .cr-m { clear: right; }\n .cb-m { clear: both; }\n .cn-m { clear: none; }\n}\n\n@media #{$breakpoint-large} {\n .cl-l { clear: left; }\n .cr-l { clear: right; }\n .cb-l { clear: both; }\n .cn-l { clear: none; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n FLEXBOX\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n.flex { display: flex; }\n.inline-flex { display: inline-flex; }\n\n/* 1. Fix for Chrome 44 bug.\n * https://code.google.com/p/chromium/issues/detail?id=506893 */\n.flex-auto {\n flex: 1 1 auto;\n min-width: 0; /* 1 */\n min-height: 0; /* 1 */\n}\n\n.flex-none { flex: none; }\n\n.flex-column { flex-direction: column; }\n.flex-row { flex-direction: row; }\n.flex-wrap { flex-wrap: wrap; }\n.flex-nowrap { flex-wrap: nowrap; }\n.flex-wrap-reverse { flex-wrap: wrap-reverse; }\n.flex-column-reverse { flex-direction: column-reverse; }\n.flex-row-reverse { flex-direction: row-reverse; }\n\n.items-start { align-items: flex-start; }\n.items-end { align-items: flex-end; }\n.items-center { align-items: center; }\n.items-baseline { align-items: baseline; }\n.items-stretch { align-items: stretch; }\n\n.self-start { align-self: flex-start; }\n.self-end { align-self: flex-end; }\n.self-center { align-self: center; }\n.self-baseline { align-self: baseline; }\n.self-stretch { align-self: stretch; }\n\n.justify-start { justify-content: flex-start; }\n.justify-end { justify-content: flex-end; }\n.justify-center { justify-content: center; }\n.justify-between { justify-content: space-between; }\n.justify-around { justify-content: space-around; }\n\n.content-start { align-content: flex-start; }\n.content-end { align-content: flex-end; }\n.content-center { align-content: center; }\n.content-between { align-content: space-between; }\n.content-around { align-content: space-around; }\n.content-stretch { align-content: stretch; }\n\n.order-0 { order: 0; }\n.order-1 { order: 1; }\n.order-2 { order: 2; }\n.order-3 { order: 3; }\n.order-4 { order: 4; }\n.order-5 { order: 5; }\n.order-6 { order: 6; }\n.order-7 { order: 7; }\n.order-8 { order: 8; }\n.order-last { order: 99999; }\n\n.flex-grow-0 { flex-grow: 0; }\n.flex-grow-1 { flex-grow: 1; }\n\n.flex-shrink-0 { flex-shrink: 0; }\n.flex-shrink-1 { flex-shrink: 1; }\n\n@media #{$breakpoint-not-small} {\n .flex-ns { display: flex; }\n .inline-flex-ns { display: inline-flex; }\n .flex-auto-ns {\n flex: 1 1 auto;\n min-width: 0; /* 1 */\n min-height: 0; /* 1 */\n }\n .flex-none-ns { flex: none; }\n .flex-column-ns { flex-direction: column; }\n .flex-row-ns { flex-direction: row; }\n .flex-wrap-ns { flex-wrap: wrap; }\n .flex-nowrap-ns { flex-wrap: nowrap; }\n .flex-wrap-reverse-ns { flex-wrap: wrap-reverse; }\n .flex-column-reverse-ns { flex-direction: column-reverse; }\n .flex-row-reverse-ns { flex-direction: row-reverse; }\n .items-start-ns { align-items: flex-start; }\n .items-end-ns { align-items: flex-end; }\n .items-center-ns { align-items: center; }\n .items-baseline-ns { align-items: baseline; }\n .items-stretch-ns { align-items: stretch; }\n\n .self-start-ns { align-self: flex-start; }\n .self-end-ns { align-self: flex-end; }\n .self-center-ns { align-self: center; }\n .self-baseline-ns { align-self: baseline; }\n .self-stretch-ns { align-self: stretch; }\n\n .justify-start-ns { justify-content: flex-start; }\n .justify-end-ns { justify-content: flex-end; }\n .justify-center-ns { justify-content: center; }\n .justify-between-ns { justify-content: space-between; }\n .justify-around-ns { justify-content: space-around; }\n\n .content-start-ns { align-content: flex-start; }\n .content-end-ns { align-content: flex-end; }\n .content-center-ns { align-content: center; }\n .content-between-ns { align-content: space-between; }\n .content-around-ns { align-content: space-around; }\n .content-stretch-ns { align-content: stretch; }\n\n .order-0-ns { order: 0; }\n .order-1-ns { order: 1; }\n .order-2-ns { order: 2; }\n .order-3-ns { order: 3; }\n .order-4-ns { order: 4; }\n .order-5-ns { order: 5; }\n .order-6-ns { order: 6; }\n .order-7-ns { order: 7; }\n .order-8-ns { order: 8; }\n .order-last-ns { order: 99999; }\n\n .flex-grow-0-ns { flex-grow: 0; }\n .flex-grow-1-ns { flex-grow: 1; }\n\n .flex-shrink-0-ns { flex-shrink: 0; }\n .flex-shrink-1-ns { flex-shrink: 1; }\n}\n@media #{$breakpoint-medium} {\n .flex-m { display: flex; }\n .inline-flex-m { display: inline-flex; }\n .flex-auto-m {\n flex: 1 1 auto;\n min-width: 0; /* 1 */\n min-height: 0; /* 1 */\n }\n .flex-none-m { flex: none; }\n .flex-column-m { flex-direction: column; }\n .flex-row-m { flex-direction: row; }\n .flex-wrap-m { flex-wrap: wrap; }\n .flex-nowrap-m { flex-wrap: nowrap; }\n .flex-wrap-reverse-m { flex-wrap: wrap-reverse; }\n .flex-column-reverse-m { flex-direction: column-reverse; }\n .flex-row-reverse-m { flex-direction: row-reverse; }\n .items-start-m { align-items: flex-start; }\n .items-end-m { align-items: flex-end; }\n .items-center-m { align-items: center; }\n .items-baseline-m { align-items: baseline; }\n .items-stretch-m { align-items: stretch; }\n\n .self-start-m { align-self: flex-start; }\n .self-end-m { align-self: flex-end; }\n .self-center-m { align-self: center; }\n .self-baseline-m { align-self: baseline; }\n .self-stretch-m { align-self: stretch; }\n\n .justify-start-m { justify-content: flex-start; }\n .justify-end-m { justify-content: flex-end; }\n .justify-center-m { justify-content: center; }\n .justify-between-m { justify-content: space-between; }\n .justify-around-m { justify-content: space-around; }\n\n .content-start-m { align-content: flex-start; }\n .content-end-m { align-content: flex-end; }\n .content-center-m { align-content: center; }\n .content-between-m { align-content: space-between; }\n .content-around-m { align-content: space-around; }\n .content-stretch-m { align-content: stretch; }\n\n .order-0-m { order: 0; }\n .order-1-m { order: 1; }\n .order-2-m { order: 2; }\n .order-3-m { order: 3; }\n .order-4-m { order: 4; }\n .order-5-m { order: 5; }\n .order-6-m { order: 6; }\n .order-7-m { order: 7; }\n .order-8-m { order: 8; }\n .order-last-m { order: 99999; }\n\n .flex-grow-0-m { flex-grow: 0; }\n .flex-grow-1-m { flex-grow: 1; }\n\n .flex-shrink-0-m { flex-shrink: 0; }\n .flex-shrink-1-m { flex-shrink: 1; }\n}\n\n@media #{$breakpoint-large} {\n .flex-l { display: flex; }\n .inline-flex-l { display: inline-flex; }\n .flex-auto-l {\n flex: 1 1 auto;\n min-width: 0; /* 1 */\n min-height: 0; /* 1 */\n }\n .flex-none-l { flex: none; }\n .flex-column-l { flex-direction: column; }\n .flex-row-l { flex-direction: row; }\n .flex-wrap-l { flex-wrap: wrap; }\n .flex-nowrap-l { flex-wrap: nowrap; }\n .flex-wrap-reverse-l { flex-wrap: wrap-reverse; }\n .flex-column-reverse-l { flex-direction: column-reverse; }\n .flex-row-reverse-l { flex-direction: row-reverse; }\n\n .items-start-l { align-items: flex-start; }\n .items-end-l { align-items: flex-end; }\n .items-center-l { align-items: center; }\n .items-baseline-l { align-items: baseline; }\n .items-stretch-l { align-items: stretch; }\n\n .self-start-l { align-self: flex-start; }\n .self-end-l { align-self: flex-end; }\n .self-center-l { align-self: center; }\n .self-baseline-l { align-self: baseline; }\n .self-stretch-l { align-self: stretch; }\n\n .justify-start-l { justify-content: flex-start; }\n .justify-end-l { justify-content: flex-end; }\n .justify-center-l { justify-content: center; }\n .justify-between-l { justify-content: space-between; }\n .justify-around-l { justify-content: space-around; }\n\n .content-start-l { align-content: flex-start; }\n .content-end-l { align-content: flex-end; }\n .content-center-l { align-content: center; }\n .content-between-l { align-content: space-between; }\n .content-around-l { align-content: space-around; }\n .content-stretch-l { align-content: stretch; }\n\n .order-0-l { order: 0; }\n .order-1-l { order: 1; }\n .order-2-l { order: 2; }\n .order-3-l { order: 3; }\n .order-4-l { order: 4; }\n .order-5-l { order: 5; }\n .order-6-l { order: 6; }\n .order-7-l { order: 7; }\n .order-8-l { order: 8; }\n .order-last-l { order: 99999; }\n\n .flex-grow-0-l { flex-grow: 0; }\n .flex-grow-1-l { flex-grow: 1; }\n\n .flex-shrink-0-l { flex-shrink: 0; }\n .flex-shrink-1-l { flex-shrink: 1; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n DISPLAY\n Docs: http://tachyons.io/docs/layout/display\n\n Base:\n d = display\n\n Modifiers:\n n = none\n b = block\n ib = inline-block\n it = inline-table\n t = table\n tc = table-cell\n tr = table-row\n tcol = table-column\n tcolg = table-column-group\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n.dn { display: none; }\n.di { display: inline; }\n.db { display: block; }\n.dib { display: inline-block; }\n.dit { display: inline-table; }\n.dt { display: table; }\n.dtc { display: table-cell; }\n.dt-row { display: table-row; }\n.dt-row-group { display: table-row-group; }\n.dt-column { display: table-column; }\n.dt-column-group { display: table-column-group; }\n\n/*\n This will set table to full width and then\n all cells will be equal width\n*/\n.dt--fixed {\n table-layout: fixed;\n width: 100%;\n}\n\n@media #{$breakpoint-not-small} {\n .dn-ns { display: none; }\n .di-ns { display: inline; }\n .db-ns { display: block; }\n .dib-ns { display: inline-block; }\n .dit-ns { display: inline-table; }\n .dt-ns { display: table; }\n .dtc-ns { display: table-cell; }\n .dt-row-ns { display: table-row; }\n .dt-row-group-ns { display: table-row-group; }\n .dt-column-ns { display: table-column; }\n .dt-column-group-ns { display: table-column-group; }\n\n .dt--fixed-ns {\n table-layout: fixed;\n width: 100%;\n }\n}\n\n@media #{$breakpoint-medium} {\n .dn-m { display: none; }\n .di-m { display: inline; }\n .db-m { display: block; }\n .dib-m { display: inline-block; }\n .dit-m { display: inline-table; }\n .dt-m { display: table; }\n .dtc-m { display: table-cell; }\n .dt-row-m { display: table-row; }\n .dt-row-group-m { display: table-row-group; }\n .dt-column-m { display: table-column; }\n .dt-column-group-m { display: table-column-group; }\n\n .dt--fixed-m {\n table-layout: fixed;\n width: 100%;\n }\n}\n\n@media #{$breakpoint-large} {\n .dn-l { display: none; }\n .di-l { display: inline; }\n .db-l { display: block; }\n .dib-l { display: inline-block; }\n .dit-l { display: inline-table; }\n .dt-l { display: table; }\n .dtc-l { display: table-cell; }\n .dt-row-l { display: table-row; }\n .dt-row-group-l { display: table-row-group; }\n .dt-column-l { display: table-column; }\n .dt-column-group-l { display: table-column-group; }\n\n .dt--fixed-l {\n table-layout: fixed;\n width: 100%;\n }\n}\n\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n FLOATS\n http://tachyons.io/docs/layout/floats/\n\n 1. Floated elements are automatically rendered as block level elements.\n Setting floats to display inline will fix the double margin bug in\n ie6. You know... just in case.\n\n 2. Don't forget to clearfix your floats with .cf\n\n Base:\n f = float\n\n Modifiers:\n l = left\n r = right\n n = none\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n\n\n.fl { float: left; _display: inline; }\n.fr { float: right; _display: inline; }\n.fn { float: none; }\n\n@media #{$breakpoint-not-small} {\n .fl-ns { float: left; _display: inline; }\n .fr-ns { float: right; _display: inline; }\n .fn-ns { float: none; }\n}\n\n@media #{$breakpoint-medium} {\n .fl-m { float: left; _display: inline; }\n .fr-m { float: right; _display: inline; }\n .fn-m { float: none; }\n}\n\n@media #{$breakpoint-large} {\n .fl-l { float: left; _display: inline; }\n .fr-l { float: right; _display: inline; }\n .fn-l { float: none; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n FONT FAMILY GROUPS\n Docs: http://tachyons.io/docs/typography/font-family/\n\n*/\n\n\n.sans-serif {\n font-family: $sans-serif;\n}\n\n.serif {\n font-family: $serif;\n}\n\n.system-sans-serif {\n font-family: sans-serif;\n}\n\n.system-serif {\n font-family: serif;\n}\n\n\n/* Monospaced Typefaces (for code) */\n\n/* From http://cssfontstack.com */\ncode, .code {\n font-family: Consolas,\n monaco,\n monospace;\n}\n\n.courier {\n font-family: 'Courier Next',\n courier,\n monospace;\n}\n\n\n/* Sans-Serif Typefaces */\n\n.helvetica {\n font-family: 'helvetica neue', helvetica,\n sans-serif;\n}\n\n.avenir {\n font-family: 'avenir next', avenir,\n sans-serif;\n}\n\n\n/* Serif Typefaces */\n\n.athelas {\n font-family: athelas,\n georgia,\n serif;\n}\n\n.georgia {\n font-family: georgia,\n serif;\n}\n\n.times {\n font-family: times,\n serif;\n}\n\n.bodoni {\n font-family: \"Bodoni MT\",\n serif;\n}\n\n.calisto {\n font-family: \"Calisto MT\",\n serif;\n}\n\n.garamond {\n font-family: garamond,\n serif;\n}\n\n.baskerville {\n font-family: baskerville,\n serif;\n}\n\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n FONT STYLE\n Docs: http://tachyons.io/docs/typography/font-style/\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n.i { font-style: italic; }\n.fs-normal { font-style: normal; }\n\n@media #{$breakpoint-not-small} {\n .i-ns { font-style: italic; }\n .fs-normal-ns { font-style: normal; }\n}\n\n@media #{$breakpoint-medium} {\n .i-m { font-style: italic; }\n .fs-normal-m { font-style: normal; }\n}\n\n@media #{$breakpoint-large} {\n .i-l { font-style: italic; }\n .fs-normal-l { font-style: normal; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n FONT WEIGHT\n Docs: http://tachyons.io/docs/typography/font-weight/\n\n Base\n fw = font-weight\n\n Modifiers:\n 1 = literal value 100\n 2 = literal value 200\n 3 = literal value 300\n 4 = literal value 400\n 5 = literal value 500\n 6 = literal value 600\n 7 = literal value 700\n 8 = literal value 800\n 9 = literal value 900\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n.normal { font-weight: normal; }\n.b { font-weight: bold; }\n.fw1 { font-weight: 100; }\n.fw2 { font-weight: 200; }\n.fw3 { font-weight: 300; }\n.fw4 { font-weight: 400; }\n.fw5 { font-weight: 500; }\n.fw6 { font-weight: 600; }\n.fw7 { font-weight: 700; }\n.fw8 { font-weight: 800; }\n.fw9 { font-weight: 900; }\n\n\n@media #{$breakpoint-not-small} {\n .normal-ns { font-weight: normal; }\n .b-ns { font-weight: bold; }\n .fw1-ns { font-weight: 100; }\n .fw2-ns { font-weight: 200; }\n .fw3-ns { font-weight: 300; }\n .fw4-ns { font-weight: 400; }\n .fw5-ns { font-weight: 500; }\n .fw6-ns { font-weight: 600; }\n .fw7-ns { font-weight: 700; }\n .fw8-ns { font-weight: 800; }\n .fw9-ns { font-weight: 900; }\n}\n\n@media #{$breakpoint-medium} {\n .normal-m { font-weight: normal; }\n .b-m { font-weight: bold; }\n .fw1-m { font-weight: 100; }\n .fw2-m { font-weight: 200; }\n .fw3-m { font-weight: 300; }\n .fw4-m { font-weight: 400; }\n .fw5-m { font-weight: 500; }\n .fw6-m { font-weight: 600; }\n .fw7-m { font-weight: 700; }\n .fw8-m { font-weight: 800; }\n .fw9-m { font-weight: 900; }\n}\n\n@media #{$breakpoint-large} {\n .normal-l { font-weight: normal; }\n .b-l { font-weight: bold; }\n .fw1-l { font-weight: 100; }\n .fw2-l { font-weight: 200; }\n .fw3-l { font-weight: 300; }\n .fw4-l { font-weight: 400; }\n .fw5-l { font-weight: 500; }\n .fw6-l { font-weight: 600; }\n .fw7-l { font-weight: 700; }\n .fw8-l { font-weight: 800; }\n .fw9-l { font-weight: 900; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n FORMS\n \n*/\n\n.input-reset {\n -webkit-appearance: none;\n -moz-appearance: none;\n}\n\n.button-reset::-moz-focus-inner,\n.input-reset::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n HEIGHTS\n Docs: http://tachyons.io/docs/layout/heights/\n\n Base:\n h = height\n min-h = min-height\n min-vh = min-height vertical screen height\n vh = vertical screen height\n\n Modifiers\n 1 = 1st step in height scale\n 2 = 2nd step in height scale\n 3 = 3rd step in height scale\n 4 = 4th step in height scale\n 5 = 5th step in height scale\n\n -25 = literal value 25%\n -50 = literal value 50%\n -75 = literal value 75%\n -100 = literal value 100%\n\n -auto = string value of auto\n -inherit = string value of inherit\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n/* Height Scale */\n\n.h1 { height: $height-1; }\n.h2 { height: $height-2; }\n.h3 { height: $height-3; }\n.h4 { height: $height-4; }\n.h5 { height: $height-5; }\n\n/* Height Percentages - Based off of height of parent */\n\n.h-25 { height: 25%; }\n.h-50 { height: 50%; }\n.h-75 { height: 75%; }\n.h-100 { height: 100%; }\n\n.min-h-100 { min-height: 100%; }\n\n/* Screen Height Percentage */\n\n.vh-25 { height: 25vh; }\n.vh-50 { height: 50vh; }\n.vh-75 { height: 75vh; }\n.vh-100 { height: 100vh; }\n\n.min-vh-100 { min-height: 100vh; }\n\n\n/* String Properties */\n\n.h-auto { height: auto; }\n.h-inherit { height: inherit; }\n\n@media #{$breakpoint-not-small} {\n .h1-ns { height: $height-1; }\n .h2-ns { height: $height-2; }\n .h3-ns { height: $height-3; }\n .h4-ns { height: $height-4; }\n .h5-ns { height: $height-5; }\n .h-25-ns { height: 25%; }\n .h-50-ns { height: 50%; }\n .h-75-ns { height: 75%; }\n .h-100-ns { height: 100%; }\n .min-h-100-ns { min-height: 100%; }\n .vh-25-ns { height: 25vh; }\n .vh-50-ns { height: 50vh; }\n .vh-75-ns { height: 75vh; }\n .vh-100-ns { height: 100vh; }\n .min-vh-100-ns { min-height: 100vh; }\n .h-auto-ns { height: auto; }\n .h-inherit-ns { height: inherit; }\n}\n\n@media #{$breakpoint-medium} {\n .h1-m { height: $height-1; }\n .h2-m { height: $height-2; }\n .h3-m { height: $height-3; }\n .h4-m { height: $height-4; }\n .h5-m { height: $height-5; }\n .h-25-m { height: 25%; }\n .h-50-m { height: 50%; }\n .h-75-m { height: 75%; }\n .h-100-m { height: 100%; }\n .min-h-100-m { min-height: 100%; }\n .vh-25-m { height: 25vh; }\n .vh-50-m { height: 50vh; }\n .vh-75-m { height: 75vh; }\n .vh-100-m { height: 100vh; }\n .min-vh-100-m { min-height: 100vh; }\n .h-auto-m { height: auto; }\n .h-inherit-m { height: inherit; }\n}\n\n@media #{$breakpoint-large} {\n .h1-l { height: $height-1; }\n .h2-l { height: $height-2; }\n .h3-l { height: $height-3; }\n .h4-l { height: $height-4; }\n .h5-l { height: $height-5; }\n .h-25-l { height: 25%; }\n .h-50-l { height: 50%; }\n .h-75-l { height: 75%; }\n .h-100-l { height: 100%; }\n .min-h-100-l { min-height: 100%; }\n .vh-25-l { height: 25vh; }\n .vh-50-l { height: 50vh; }\n .vh-75-l { height: 75vh; }\n .vh-100-l { height: 100vh; }\n .min-vh-100-l { min-height: 100vh; }\n .h-auto-l { height: auto; }\n .h-inherit-l { height: inherit; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n LETTER SPACING\n Docs: http://tachyons.io/docs/typography/tracking/\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n.tracked { letter-spacing: $letter-spacing-1; }\n.tracked-tight { letter-spacing: $letter-spacing-tight; }\n.tracked-mega { letter-spacing: $letter-spacing-2; }\n\n@media #{$breakpoint-not-small} {\n .tracked-ns { letter-spacing: $letter-spacing-1; }\n .tracked-tight-ns { letter-spacing: $letter-spacing-tight; }\n .tracked-mega-ns { letter-spacing: $letter-spacing-2; }\n}\n\n@media #{$breakpoint-medium} {\n .tracked-m { letter-spacing: $letter-spacing-1; }\n .tracked-tight-m { letter-spacing: $letter-spacing-tight; }\n .tracked-mega-m { letter-spacing: $letter-spacing-2; }\n}\n\n@media #{$breakpoint-large} {\n .tracked-l { letter-spacing: $letter-spacing-1; }\n .tracked-tight-l { letter-spacing: $letter-spacing-tight; }\n .tracked-mega-l { letter-spacing: $letter-spacing-2; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n LINE HEIGHT / LEADING\n Docs: http://tachyons.io/docs/typography/line-height\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n .lh-solid { line-height: $line-height-solid; }\n .lh-title { line-height: $line-height-title; }\n .lh-copy { line-height: $line-height-copy; }\n\n@media #{$breakpoint-not-small} {\n .lh-solid-ns { line-height: $line-height-solid; }\n .lh-title-ns { line-height: $line-height-title; }\n .lh-copy-ns { line-height: $line-height-copy; }\n}\n\n@media #{$breakpoint-medium} {\n .lh-solid-m { line-height: $line-height-solid; }\n .lh-title-m { line-height: $line-height-title; }\n .lh-copy-m { line-height: $line-height-copy; }\n}\n\n@media #{$breakpoint-large} {\n .lh-solid-l { line-height: $line-height-solid; }\n .lh-title-l { line-height: $line-height-title; }\n .lh-copy-l { line-height: $line-height-copy; }\n}\n\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n LINKS\n Docs: http://tachyons.io/docs/elements/links/\n\n*/\n\n.link {\n text-decoration: none;\n transition: color .15s ease-in;\n}\n\n.link:link,\n.link:visited {\n transition: color .15s ease-in;\n}\n.link:hover {\n transition: color .15s ease-in;\n}\n.link:active {\n transition: color .15s ease-in;\n}\n.link:focus {\n transition: color .15s ease-in;\n outline: 1px dotted currentColor;\n}\n\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n LISTS\n http://tachyons.io/docs/elements/lists/\n\n*/\n\n.list { list-style-type: none; }\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n MAX WIDTHS\n Docs: http://tachyons.io/docs/layout/max-widths/\n\n Base:\n mw = max-width\n\n Modifiers\n 1 = 1st step in width scale\n 2 = 2nd step in width scale\n 3 = 3rd step in width scale\n 4 = 4th step in width scale\n 5 = 5th step in width scale\n 6 = 6st step in width scale\n 7 = 7nd step in width scale\n 8 = 8rd step in width scale\n 9 = 9th step in width scale\n\n -100 = literal value 100%\n\n -none = string value none\n\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n/* Max Width Percentages */\n\n.mw-100 { max-width: 100%; }\n\n/* Max Width Scale */\n\n.mw1 { max-width: $max-width-1; }\n.mw2 { max-width: $max-width-2; }\n.mw3 { max-width: $max-width-3; }\n.mw4 { max-width: $max-width-4; }\n.mw5 { max-width: $max-width-5; }\n.mw6 { max-width: $max-width-6; }\n.mw7 { max-width: $max-width-7; }\n.mw8 { max-width: $max-width-8; }\n.mw9 { max-width: $max-width-9; }\n\n/* Max Width String Properties */\n\n.mw-none { max-width: none; }\n\n@media #{$breakpoint-not-small} {\n .mw-100-ns { max-width: 100%; }\n\n .mw1-ns { max-width: $max-width-1; }\n .mw2-ns { max-width: $max-width-2; }\n .mw3-ns { max-width: $max-width-3; }\n .mw4-ns { max-width: $max-width-4; }\n .mw5-ns { max-width: $max-width-5; }\n .mw6-ns { max-width: $max-width-6; }\n .mw7-ns { max-width: $max-width-7; }\n .mw8-ns { max-width: $max-width-8; }\n .mw9-ns { max-width: $max-width-9; }\n\n .mw-none-ns { max-width: none; }\n}\n\n@media #{$breakpoint-medium} {\n .mw-100-m { max-width: 100%; }\n\n .mw1-m { max-width: $max-width-1; }\n .mw2-m { max-width: $max-width-2; }\n .mw3-m { max-width: $max-width-3; }\n .mw4-m { max-width: $max-width-4; }\n .mw5-m { max-width: $max-width-5; }\n .mw6-m { max-width: $max-width-6; }\n .mw7-m { max-width: $max-width-7; }\n .mw8-m { max-width: $max-width-8; }\n .mw9-m { max-width: $max-width-9; }\n\n .mw-none-m { max-width: none; }\n}\n\n@media #{$breakpoint-large} {\n .mw-100-l { max-width: 100%; }\n\n .mw1-l { max-width: $max-width-1; }\n .mw2-l { max-width: $max-width-2; }\n .mw3-l { max-width: $max-width-3; }\n .mw4-l { max-width: $max-width-4; }\n .mw5-l { max-width: $max-width-5; }\n .mw6-l { max-width: $max-width-6; }\n .mw7-l { max-width: $max-width-7; }\n .mw8-l { max-width: $max-width-8; }\n .mw9-l { max-width: $max-width-9; }\n\n .mw-none-l { max-width: none; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n WIDTHS\n Docs: http://tachyons.io/docs/layout/widths/\n\n Base:\n w = width\n\n Modifiers\n 1 = 1st step in width scale\n 2 = 2nd step in width scale\n 3 = 3rd step in width scale\n 4 = 4th step in width scale\n 5 = 5th step in width scale\n\n -10 = literal value 10%\n -20 = literal value 20%\n -25 = literal value 25%\n -30 = literal value 30%\n -33 = literal value 33%\n -34 = literal value 34%\n -40 = literal value 40%\n -50 = literal value 50%\n -60 = literal value 60%\n -70 = literal value 70%\n -75 = literal value 75%\n -80 = literal value 80%\n -90 = literal value 90%\n -100 = literal value 100%\n\n -third = 100% / 3 (Not supported in opera mini or IE8)\n -two-thirds = 100% / 1.5 (Not supported in opera mini or IE8)\n -auto = string value auto\n\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n */\n\n/* Width Scale */\n\n.w1 { width: $width-1; }\n.w2 { width: $width-2; }\n.w3 { width: $width-3; }\n.w4 { width: $width-4; }\n.w5 { width: $width-5; }\n\n.w-10 { width: 10%; }\n.w-20 { width: 20%; }\n.w-25 { width: 25%; }\n.w-30 { width: 30%; }\n.w-33 { width: 33%; }\n.w-34 { width: 34%; }\n.w-40 { width: 40%; }\n.w-50 { width: 50%; }\n.w-60 { width: 60%; }\n.w-70 { width: 70%; }\n.w-75 { width: 75%; }\n.w-80 { width: 80%; }\n.w-90 { width: 90%; }\n.w-100 { width: 100%; }\n\n.w-third { width: (100% / 3); }\n.w-two-thirds { width: (100% / 1.5); }\n.w-auto { width: auto; }\n\n@media #{$breakpoint-not-small} {\n .w1-ns { width: $width-1; }\n .w2-ns { width: $width-2; }\n .w3-ns { width: $width-3; }\n .w4-ns { width: $width-4; }\n .w5-ns { width: $width-5; }\n .w-10-ns { width: 10%; }\n .w-20-ns { width: 20%; }\n .w-25-ns { width: 25%; }\n .w-30-ns { width: 30%; }\n .w-33-ns { width: 33%; }\n .w-34-ns { width: 34%; }\n .w-40-ns { width: 40%; }\n .w-50-ns { width: 50%; }\n .w-60-ns { width: 60%; }\n .w-70-ns { width: 70%; }\n .w-75-ns { width: 75%; }\n .w-80-ns { width: 80%; }\n .w-90-ns { width: 90%; }\n .w-100-ns { width: 100%; }\n .w-third-ns { width: (100% / 3); }\n .w-two-thirds-ns { width: (100% / 1.5); }\n .w-auto-ns { width: auto; }\n}\n\n@media #{$breakpoint-medium} {\n .w1-m { width: $width-1; }\n .w2-m { width: $width-2; }\n .w3-m { width: $width-3; }\n .w4-m { width: $width-4; }\n .w5-m { width: $width-5; }\n .w-10-m { width: 10%; }\n .w-20-m { width: 20%; }\n .w-25-m { width: 25%; }\n .w-30-m { width: 30%; }\n .w-33-m { width: 33%; }\n .w-34-m { width: 34%; }\n .w-40-m { width: 40%; }\n .w-50-m { width: 50%; }\n .w-60-m { width: 60%; }\n .w-70-m { width: 70%; }\n .w-75-m { width: 75%; }\n .w-80-m { width: 80%; }\n .w-90-m { width: 90%; }\n .w-100-m { width: 100%; }\n .w-third-m { width: (100% / 3); }\n .w-two-thirds-m { width: (100% / 1.5); }\n .w-auto-m { width: auto; }\n}\n\n@media #{$breakpoint-large} {\n .w1-l { width: $width-1; }\n .w2-l { width: $width-2; }\n .w3-l { width: $width-3; }\n .w4-l { width: $width-4; }\n .w5-l { width: $width-5; }\n .w-10-l { width: 10%; }\n .w-20-l { width: 20%; }\n .w-25-l { width: 25%; }\n .w-30-l { width: 30%; }\n .w-33-l { width: 33%; }\n .w-34-l { width: 34%; }\n .w-40-l { width: 40%; }\n .w-50-l { width: 50%; }\n .w-60-l { width: 60%; }\n .w-70-l { width: 70%; }\n .w-75-l { width: 75%; }\n .w-80-l { width: 80%; }\n .w-90-l { width: 90%; }\n .w-100-l { width: 100%; }\n .w-third-l { width: (100% / 3); }\n .w-two-thirds-l { width: (100% / 1.5); }\n .w-auto-l { width: auto; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n OVERFLOW\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n */\n\n.overflow-visible { overflow: visible; }\n.overflow-hidden { overflow: hidden; }\n.overflow-scroll { overflow: scroll; }\n.overflow-auto { overflow: auto; }\n\n.overflow-x-visible { overflow-x: visible; }\n.overflow-x-hidden { overflow-x: hidden; }\n.overflow-x-scroll { overflow-x: scroll; }\n.overflow-x-auto { overflow-x: auto; }\n\n.overflow-y-visible { overflow-y: visible; }\n.overflow-y-hidden { overflow-y: hidden; }\n.overflow-y-scroll { overflow-y: scroll; }\n.overflow-y-auto { overflow-y: auto; }\n\n@media #{$breakpoint-not-small} {\n .overflow-visible-ns { overflow: visible; }\n .overflow-hidden-ns { overflow: hidden; }\n .overflow-scroll-ns { overflow: scroll; }\n .overflow-auto-ns { overflow: auto; }\n .overflow-x-visible-ns { overflow-x: visible; }\n .overflow-x-hidden-ns { overflow-x: hidden; }\n .overflow-x-scroll-ns { overflow-x: scroll; }\n .overflow-x-auto-ns { overflow-x: auto; }\n\n .overflow-y-visible-ns { overflow-y: visible; }\n .overflow-y-hidden-ns { overflow-y: hidden; }\n .overflow-y-scroll-ns { overflow-y: scroll; }\n .overflow-y-auto-ns { overflow-y: auto; }\n}\n\n@media #{$breakpoint-medium} {\n .overflow-visible-m { overflow: visible; }\n .overflow-hidden-m { overflow: hidden; }\n .overflow-scroll-m { overflow: scroll; }\n .overflow-auto-m { overflow: auto; }\n\n .overflow-x-visible-m { overflow-x: visible; }\n .overflow-x-hidden-m { overflow-x: hidden; }\n .overflow-x-scroll-m { overflow-x: scroll; }\n .overflow-x-auto-m { overflow-x: auto; }\n\n .overflow-y-visible-m { overflow-y: visible; }\n .overflow-y-hidden-m { overflow-y: hidden; }\n .overflow-y-scroll-m { overflow-y: scroll; }\n .overflow-y-auto-m { overflow-y: auto; }\n}\n\n@media #{$breakpoint-large} {\n .overflow-visible-l { overflow: visible; }\n .overflow-hidden-l { overflow: hidden; }\n .overflow-scroll-l { overflow: scroll; }\n .overflow-auto-l { overflow: auto; }\n\n .overflow-x-visible-l { overflow-x: visible; }\n .overflow-x-hidden-l { overflow-x: hidden; }\n .overflow-x-scroll-l { overflow-x: scroll; }\n .overflow-x-auto-l { overflow-x: auto; }\n\n .overflow-y-visible-l { overflow-y: visible; }\n .overflow-y-hidden-l { overflow-y: hidden; }\n .overflow-y-scroll-l { overflow-y: scroll; }\n .overflow-y-auto-l { overflow-y: auto; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n POSITIONING\n Docs: http://tachyons.io/docs/layout/position/\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n.static { position: static; }\n.relative { position: relative; }\n.absolute { position: absolute; }\n.fixed { position: fixed; }\n\n@media #{$breakpoint-not-small} {\n .static-ns { position: static; }\n .relative-ns { position: relative; }\n .absolute-ns { position: absolute; }\n .fixed-ns { position: fixed; }\n}\n\n@media #{$breakpoint-medium} {\n .static-m { position: static; }\n .relative-m { position: relative; }\n .absolute-m { position: absolute; }\n .fixed-m { position: fixed; }\n}\n\n@media #{$breakpoint-large} {\n .static-l { position: static; }\n .relative-l { position: relative; }\n .absolute-l { position: absolute; }\n .fixed-l { position: fixed; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n OPACITY\n Docs: http://tachyons.io/docs/themes/opacity/\n\n*/\n\n.o-100 { opacity: 1; }\n.o-90 { opacity: .9; }\n.o-80 { opacity: .8; }\n.o-70 { opacity: .7; }\n.o-60 { opacity: .6; }\n.o-50 { opacity: .5; }\n.o-40 { opacity: .4; }\n.o-30 { opacity: .3; }\n.o-20 { opacity: .2; }\n.o-10 { opacity: .1; }\n.o-05 { opacity: .05; }\n.o-025 { opacity: .025; }\n.o-0 { opacity: 0; }\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n ROTATIONS\n\n*/\n\n.rotate-45 { transform: rotate(45deg); }\n.rotate-90 { transform: rotate(90deg); }\n.rotate-135 { transform: rotate(135deg); }\n.rotate-180 { transform: rotate(180deg); }\n.rotate-225 { transform: rotate(225deg); }\n.rotate-270 { transform: rotate(270deg); }\n.rotate-315 { transform: rotate(315deg); }\n\n@media #{$breakpoint-not-small}{\n .rotate-45-ns { transform: rotate(45deg); }\n .rotate-90-ns { transform: rotate(90deg); }\n .rotate-135-ns { transform: rotate(135deg); }\n .rotate-180-ns { transform: rotate(180deg); }\n .rotate-225-ns { transform: rotate(225deg); }\n .rotate-270-ns { transform: rotate(270deg); }\n .rotate-315-ns { transform: rotate(315deg); }\n}\n\n@media #{$breakpoint-medium}{\n .rotate-45-m { transform: rotate(45deg); }\n .rotate-90-m { transform: rotate(90deg); }\n .rotate-135-m { transform: rotate(135deg); }\n .rotate-180-m { transform: rotate(180deg); }\n .rotate-225-m { transform: rotate(225deg); }\n .rotate-270-m { transform: rotate(270deg); }\n .rotate-315-m { transform: rotate(315deg); }\n}\n\n@media #{$breakpoint-large}{\n .rotate-45-l { transform: rotate(45deg); }\n .rotate-90-l { transform: rotate(90deg); }\n .rotate-135-l { transform: rotate(135deg); }\n .rotate-180-l { transform: rotate(180deg); }\n .rotate-225-l { transform: rotate(225deg); }\n .rotate-270-l { transform: rotate(270deg); }\n .rotate-315-l { transform: rotate(315deg); }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n SKINS\n Docs: http://tachyons.io/docs/themes/skins/\n\n Classes for setting foreground and background colors on elements.\n If you haven't declared a border color, but set border on an element, it will\n be set to the current text color.\n\n*/\n\n/* Text colors */\n\n.black-90 { color: $black-90; }\n.black-80 { color: $black-80; }\n.black-70 { color: $black-70; }\n.black-60 { color: $black-60; }\n.black-50 { color: $black-50; }\n.black-40 { color: $black-40; }\n.black-30 { color: $black-30; }\n.black-20 { color: $black-20; }\n.black-10 { color: $black-10; }\n.black-05 { color: $black-05; }\n\n.white-90 { color: $white-90; }\n.white-80 { color: $white-80; }\n.white-70 { color: $white-70; }\n.white-60 { color: $white-60; }\n.white-50 { color: $white-50; }\n.white-40 { color: $white-40; }\n.white-30 { color: $white-30; }\n.white-20 { color: $white-20; }\n.white-10 { color: $white-10; }\n\n.black { color: $black; }\n.near-black { color: $near-black; }\n.dark-gray { color: $dark-gray; }\n.mid-gray { color: $mid-gray; }\n.gray { color: $gray; }\n.silver { color: $silver; }\n.light-silver { color: $light-silver; }\n.moon-gray { color: $moon-gray; }\n.light-gray { color: $light-gray; }\n.near-white { color: $near-white; }\n.white { color: $white; }\n\n.dark-red { color: $dark-red; }\n.red { color: $red; }\n.light-red { color: $light-red; }\n.orange { color: $orange; }\n.gold { color: $gold; }\n.yellow { color: $yellow; }\n.light-yellow { color: $light-yellow; }\n.purple { color: $purple; }\n.light-purple { color: $light-purple; }\n.dark-pink { color: $dark-pink; }\n.hot-pink { color: $hot-pink; }\n.pink { color: $pink; }\n.light-pink { color: $light-pink; }\n.dark-green { color: $dark-green; }\n.green { color: $green; }\n.light-green { color: $light-green; }\n.navy { color: $navy; }\n.dark-blue { color: $dark-blue; }\n.blue { color: $blue; }\n.light-blue { color: $light-blue; }\n.lightest-blue { color: $lightest-blue; }\n.washed-blue { color: $washed-blue; }\n.washed-green { color: $washed-green; }\n.washed-yellow { color: $washed-yellow; }\n.washed-red { color: $washed-red; }\n.color-inherit { color: inherit; }\n\n.bg-black-90 { background-color: $black-90; }\n.bg-black-80 { background-color: $black-80; }\n.bg-black-70 { background-color: $black-70; }\n.bg-black-60 { background-color: $black-60; }\n.bg-black-50 { background-color: $black-50; }\n.bg-black-40 { background-color: $black-40; }\n.bg-black-30 { background-color: $black-30; }\n.bg-black-20 { background-color: $black-20; }\n.bg-black-10 { background-color: $black-10; }\n.bg-black-05 { background-color: $black-05; }\n.bg-white-90 { background-color: $white-90; }\n.bg-white-80 { background-color: $white-80; }\n.bg-white-70 { background-color: $white-70; }\n.bg-white-60 { background-color: $white-60; }\n.bg-white-50 { background-color: $white-50; }\n.bg-white-40 { background-color: $white-40; }\n.bg-white-30 { background-color: $white-30; }\n.bg-white-20 { background-color: $white-20; }\n.bg-white-10 { background-color: $white-10; }\n\n\n\n/* Background colors */\n\n.bg-black { background-color: $black; }\n.bg-near-black { background-color: $near-black; }\n.bg-dark-gray { background-color: $dark-gray; }\n.bg-mid-gray { background-color: $mid-gray; }\n.bg-gray { background-color: $gray; }\n.bg-silver { background-color: $silver; }\n.bg-light-silver { background-color: $light-silver; }\n.bg-moon-gray { background-color: $moon-gray; }\n.bg-light-gray { background-color: $light-gray; }\n.bg-near-white { background-color: $near-white; }\n.bg-white { background-color: $white; }\n.bg-transparent { background-color: $transparent; }\n\n.bg-dark-red { background-color: $dark-red; }\n.bg-red { background-color: $red; }\n.bg-light-red { background-color: $light-red; }\n.bg-orange { background-color: $orange; }\n.bg-gold { background-color: $gold; }\n.bg-yellow { background-color: $yellow; }\n.bg-light-yellow { background-color: $light-yellow; }\n.bg-purple { background-color: $purple; }\n.bg-light-purple { background-color: $light-purple; }\n.bg-dark-pink { background-color: $dark-pink; }\n.bg-hot-pink { background-color: $hot-pink; }\n.bg-pink { background-color: $pink; }\n.bg-light-pink { background-color: $light-pink; }\n.bg-dark-green { background-color: $dark-green; }\n.bg-green { background-color: $green; }\n.bg-light-green { background-color: $light-green; }\n.bg-navy { background-color: $navy; }\n.bg-dark-blue { background-color: $dark-blue; }\n.bg-blue { background-color: $blue; }\n.bg-light-blue { background-color: $light-blue; }\n.bg-lightest-blue { background-color: $lightest-blue; }\n.bg-washed-blue { background-color: $washed-blue; }\n.bg-washed-green { background-color: $washed-green; }\n.bg-washed-yellow { background-color: $washed-yellow; }\n.bg-washed-red { background-color: $washed-red; }\n.bg-inherit { background-color: inherit; }\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n SKINS:PSEUDO\n\n Customize the color of an element when\n it is focused or hovered over.\n\n */\n\n.hover-black:hover,\n.hover-black:focus { color: $black; }\n.hover-near-black:hover,\n.hover-near-black:focus { color: $near-black; }\n.hover-dark-gray:hover,\n.hover-dark-gray:focus { color: $dark-gray; }\n.hover-mid-gray:hover,\n.hover-mid-gray:focus { color: $mid-gray; }\n.hover-gray:hover,\n.hover-gray:focus { color: $gray; }\n.hover-silver:hover,\n.hover-silver:focus { color: $silver; }\n.hover-light-silver:hover,\n.hover-light-silver:focus { color: $light-silver; }\n.hover-moon-gray:hover,\n.hover-moon-gray:focus { color: $moon-gray; }\n.hover-light-gray:hover,\n.hover-light-gray:focus { color: $light-gray; }\n.hover-near-white:hover,\n.hover-near-white:focus { color: $near-white; }\n.hover-white:hover,\n.hover-white:focus { color: $white; }\n\n.hover-black-90:hover,\n.hover-black-90:focus { color: $black-90; }\n.hover-black-80:hover,\n.hover-black-80:focus { color: $black-80; }\n.hover-black-70:hover,\n.hover-black-70:focus { color: $black-70; }\n.hover-black-60:hover,\n.hover-black-60:focus { color: $black-60; }\n.hover-black-50:hover,\n.hover-black-50:focus { color: $black-50; }\n.hover-black-40:hover,\n.hover-black-40:focus { color: $black-40; }\n.hover-black-30:hover,\n.hover-black-30:focus { color: $black-30; }\n.hover-black-20:hover,\n.hover-black-20:focus { color: $black-20; }\n.hover-black-10:hover,\n.hover-black-10:focus { color: $black-10; }\n.hover-white-90:hover,\n.hover-white-90:focus { color: $white-90; }\n.hover-white-80:hover,\n.hover-white-80:focus { color: $white-80; }\n.hover-white-70:hover,\n.hover-white-70:focus { color: $white-70; }\n.hover-white-60:hover,\n.hover-white-60:focus { color: $white-60; }\n.hover-white-50:hover,\n.hover-white-50:focus { color: $white-50; }\n.hover-white-40:hover,\n.hover-white-40:focus { color: $white-40; }\n.hover-white-30:hover,\n.hover-white-30:focus { color: $white-30; }\n.hover-white-20:hover,\n.hover-white-20:focus { color: $white-20; }\n.hover-white-10:hover,\n.hover-white-10:focus { color: $white-10; }\n.hover-inherit:hover,\n.hover-inherit:focus { color: inherit; }\n\n.hover-bg-black:hover,\n.hover-bg-black:focus { background-color: $black; }\n.hover-bg-near-black:hover,\n.hover-bg-near-black:focus { background-color: $near-black; }\n.hover-bg-dark-gray:hover,\n.hover-bg-dark-gray:focus { background-color: $dark-gray; }\n.hover-bg-mid-gray:hover,\n.hover-bg-mid-gray:focus { background-color: $mid-gray; }\n.hover-bg-gray:hover,\n.hover-bg-gray:focus { background-color: $gray; }\n.hover-bg-silver:hover,\n.hover-bg-silver:focus { background-color: $silver; }\n.hover-bg-light-silver:hover,\n.hover-bg-light-silver:focus { background-color: $light-silver; }\n.hover-bg-moon-gray:hover,\n.hover-bg-moon-gray:focus { background-color: $moon-gray; }\n.hover-bg-light-gray:hover,\n.hover-bg-light-gray:focus { background-color: $light-gray; }\n.hover-bg-near-white:hover,\n.hover-bg-near-white:focus { background-color: $near-white; }\n.hover-bg-white:hover,\n.hover-bg-white:focus { background-color: $white; }\n.hover-bg-transparent:hover,\n.hover-bg-transparent:focus { background-color: $transparent; }\n\n.hover-bg-black-90:hover,\n.hover-bg-black-90:focus { background-color: $black-90; }\n.hover-bg-black-80:hover,\n.hover-bg-black-80:focus { background-color: $black-80; }\n.hover-bg-black-70:hover,\n.hover-bg-black-70:focus { background-color: $black-70; }\n.hover-bg-black-60:hover,\n.hover-bg-black-60:focus { background-color: $black-60; }\n.hover-bg-black-50:hover,\n.hover-bg-black-50:focus { background-color: $black-50; }\n.hover-bg-black-40:hover,\n.hover-bg-black-40:focus { background-color: $black-40; }\n.hover-bg-black-30:hover,\n.hover-bg-black-30:focus { background-color: $black-30; }\n.hover-bg-black-20:hover,\n.hover-bg-black-20:focus { background-color: $black-20; }\n.hover-bg-black-10:hover,\n.hover-bg-black-10:focus { background-color: $black-10; }\n.hover-bg-white-90:hover,\n.hover-bg-white-90:focus { background-color: $white-90; }\n.hover-bg-white-80:hover,\n.hover-bg-white-80:focus { background-color: $white-80; }\n.hover-bg-white-70:hover,\n.hover-bg-white-70:focus { background-color: $white-70; }\n.hover-bg-white-60:hover,\n.hover-bg-white-60:focus { background-color: $white-60; }\n.hover-bg-white-50:hover,\n.hover-bg-white-50:focus { background-color: $white-50; }\n.hover-bg-white-40:hover,\n.hover-bg-white-40:focus { background-color: $white-40; }\n.hover-bg-white-30:hover,\n.hover-bg-white-30:focus { background-color: $white-30; }\n.hover-bg-white-20:hover,\n.hover-bg-white-20:focus { background-color: $white-20; }\n.hover-bg-white-10:hover,\n.hover-bg-white-10:focus { background-color: $white-10; }\n\n.hover-dark-red:hover,\n.hover-dark-red:focus { color: $dark-red; }\n.hover-red:hover,\n.hover-red:focus { color: $red; }\n.hover-light-red:hover,\n.hover-light-red:focus { color: $light-red; }\n.hover-orange:hover,\n.hover-orange:focus { color: $orange; }\n.hover-gold:hover,\n.hover-gold:focus { color: $gold; }\n.hover-yellow:hover,\n.hover-yellow:focus { color: $yellow; }\n.hover-light-yellow:hover,\n.hover-light-yellow:focus { color: $light-yellow; }\n.hover-purple:hover,\n.hover-purple:focus { color: $purple; }\n.hover-light-purple:hover,\n.hover-light-purple:focus { color: $light-purple; }\n.hover-dark-pink:hover,\n.hover-dark-pink:focus { color: $dark-pink; }\n.hover-hot-pink:hover,\n.hover-hot-pink:focus { color: $hot-pink; }\n.hover-pink:hover,\n.hover-pink:focus { color: $pink; }\n.hover-light-pink:hover,\n.hover-light-pink:focus { color: $light-pink; }\n.hover-dark-green:hover,\n.hover-dark-green:focus { color: $dark-green; }\n.hover-green:hover,\n.hover-green:focus { color: $green; }\n.hover-light-green:hover,\n.hover-light-green:focus { color: $light-green; }\n.hover-navy:hover,\n.hover-navy:focus { color: $navy; }\n.hover-dark-blue:hover,\n.hover-dark-blue:focus { color: $dark-blue; }\n.hover-blue:hover,\n.hover-blue:focus { color: $blue; }\n.hover-light-blue:hover,\n.hover-light-blue:focus { color: $light-blue; }\n.hover-lightest-blue:hover,\n.hover-lightest-blue:focus { color: $lightest-blue; }\n.hover-washed-blue:hover,\n.hover-washed-blue:focus { color: $washed-blue; }\n.hover-washed-green:hover,\n.hover-washed-green:focus { color: $washed-green; }\n.hover-washed-yellow:hover,\n.hover-washed-yellow:focus { color: $washed-yellow; }\n.hover-washed-red:hover,\n.hover-washed-red:focus { color: $washed-red; }\n\n.hover-bg-dark-red:hover,\n.hover-bg-dark-red:focus { background-color: $dark-red; }\n.hover-bg-red:hover,\n.hover-bg-red:focus { background-color: $red; }\n.hover-bg-light-red:hover,\n.hover-bg-light-red:focus { background-color: $light-red; }\n.hover-bg-orange:hover,\n.hover-bg-orange:focus { background-color: $orange; }\n.hover-bg-gold:hover,\n.hover-bg-gold:focus { background-color: $gold; }\n.hover-bg-yellow:hover,\n.hover-bg-yellow:focus { background-color: $yellow; }\n.hover-bg-light-yellow:hover,\n.hover-bg-light-yellow:focus { background-color: $light-yellow; }\n.hover-bg-purple:hover,\n.hover-bg-purple:focus { background-color: $purple; }\n.hover-bg-light-purple:hover,\n.hover-bg-light-purple:focus { background-color: $light-purple; }\n.hover-bg-dark-pink:hover,\n.hover-bg-dark-pink:focus { background-color: $dark-pink; }\n.hover-bg-hot-pink:hover,\n.hover-bg-hot-pink:focus { background-color: $hot-pink; }\n.hover-bg-pink:hover,\n.hover-bg-pink:focus { background-color: $pink; }\n.hover-bg-light-pink:hover,\n.hover-bg-light-pink:focus { background-color: $light-pink; }\n.hover-bg-dark-green:hover,\n.hover-bg-dark-green:focus { background-color: $dark-green; }\n.hover-bg-green:hover,\n.hover-bg-green:focus { background-color: $green; }\n.hover-bg-light-green:hover,\n.hover-bg-light-green:focus { background-color: $light-green; }\n.hover-bg-navy:hover,\n.hover-bg-navy:focus { background-color: $navy; }\n.hover-bg-dark-blue:hover,\n.hover-bg-dark-blue:focus { background-color: $dark-blue; }\n.hover-bg-blue:hover,\n.hover-bg-blue:focus { background-color: $blue; }\n.hover-bg-light-blue:hover,\n.hover-bg-light-blue:focus { background-color: $light-blue; }\n.hover-bg-lightest-blue:hover,\n.hover-bg-lightest-blue:focus { background-color: $lightest-blue; }\n.hover-bg-washed-blue:hover,\n.hover-bg-washed-blue:focus { background-color: $washed-blue; }\n.hover-bg-washed-green:hover,\n.hover-bg-washed-green:focus { background-color: $washed-green; }\n.hover-bg-washed-yellow:hover,\n.hover-bg-washed-yellow:focus { background-color: $washed-yellow; }\n.hover-bg-washed-red:hover,\n.hover-bg-washed-red:focus { background-color: $washed-red; }\n.hover-bg-inherit:hover,\n.hover-bg-inherit:focus { background-color: inherit; }\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/* Variables */\n\n/*\n SPACING\n Docs: http://tachyons.io/docs/layout/spacing/\n\n An eight step powers of two scale ranging from 0 to 16rem.\n\n Base:\n p = padding\n m = margin\n\n Modifiers:\n a = all\n h = horizontal\n v = vertical\n t = top\n r = right\n b = bottom\n l = left\n\n 0 = none\n 1 = 1st step in spacing scale\n 2 = 2nd step in spacing scale\n 3 = 3rd step in spacing scale\n 4 = 4th step in spacing scale\n 5 = 5th step in spacing scale\n 6 = 6th step in spacing scale\n 7 = 7th step in spacing scale\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n\n.pa0 { padding: $spacing-none; }\n.pa1 { padding: $spacing-extra-small; }\n.pa2 { padding: $spacing-small; }\n.pa3 { padding: $spacing-medium; }\n.pa4 { padding: $spacing-large; }\n.pa5 { padding: $spacing-extra-large; }\n.pa6 { padding: $spacing-extra-extra-large; }\n.pa7 { padding: $spacing-extra-extra-extra-large; }\n\n.pl0 { padding-left: $spacing-none; }\n.pl1 { padding-left: $spacing-extra-small; }\n.pl2 { padding-left: $spacing-small; }\n.pl3 { padding-left: $spacing-medium; }\n.pl4 { padding-left: $spacing-large; }\n.pl5 { padding-left: $spacing-extra-large; }\n.pl6 { padding-left: $spacing-extra-extra-large; }\n.pl7 { padding-left: $spacing-extra-extra-extra-large; }\n\n.pr0 { padding-right: $spacing-none; }\n.pr1 { padding-right: $spacing-extra-small; }\n.pr2 { padding-right: $spacing-small; }\n.pr3 { padding-right: $spacing-medium; }\n.pr4 { padding-right: $spacing-large; }\n.pr5 { padding-right: $spacing-extra-large; }\n.pr6 { padding-right: $spacing-extra-extra-large; }\n.pr7 { padding-right: $spacing-extra-extra-extra-large; }\n\n.pb0 { padding-bottom: $spacing-none; }\n.pb1 { padding-bottom: $spacing-extra-small; }\n.pb2 { padding-bottom: $spacing-small; }\n.pb3 { padding-bottom: $spacing-medium; }\n.pb4 { padding-bottom: $spacing-large; }\n.pb5 { padding-bottom: $spacing-extra-large; }\n.pb6 { padding-bottom: $spacing-extra-extra-large; }\n.pb7 { padding-bottom: $spacing-extra-extra-extra-large; }\n\n.pt0 { padding-top: $spacing-none; }\n.pt1 { padding-top: $spacing-extra-small; }\n.pt2 { padding-top: $spacing-small; }\n.pt3 { padding-top: $spacing-medium; }\n.pt4 { padding-top: $spacing-large; }\n.pt5 { padding-top: $spacing-extra-large; }\n.pt6 { padding-top: $spacing-extra-extra-large; }\n.pt7 { padding-top: $spacing-extra-extra-extra-large; }\n\n.pv0 {\n padding-top: $spacing-none;\n padding-bottom: $spacing-none;\n}\n.pv1 {\n padding-top: $spacing-extra-small;\n padding-bottom: $spacing-extra-small;\n}\n.pv2 {\n padding-top: $spacing-small;\n padding-bottom: $spacing-small;\n}\n.pv3 {\n padding-top: $spacing-medium;\n padding-bottom: $spacing-medium;\n}\n.pv4 {\n padding-top: $spacing-large;\n padding-bottom: $spacing-large;\n}\n.pv5 {\n padding-top: $spacing-extra-large;\n padding-bottom: $spacing-extra-large;\n}\n.pv6 {\n padding-top: $spacing-extra-extra-large;\n padding-bottom: $spacing-extra-extra-large;\n}\n\n.pv7 {\n padding-top: $spacing-extra-extra-extra-large;\n padding-bottom: $spacing-extra-extra-extra-large;\n}\n\n.ph0 {\n padding-left: $spacing-none;\n padding-right: $spacing-none;\n}\n\n.ph1 {\n padding-left: $spacing-extra-small;\n padding-right: $spacing-extra-small;\n}\n\n.ph2 {\n padding-left: $spacing-small;\n padding-right: $spacing-small;\n}\n\n.ph3 {\n padding-left: $spacing-medium;\n padding-right: $spacing-medium;\n}\n\n.ph4 {\n padding-left: $spacing-large;\n padding-right: $spacing-large;\n}\n\n.ph5 {\n padding-left: $spacing-extra-large;\n padding-right: $spacing-extra-large;\n}\n\n.ph6 {\n padding-left: $spacing-extra-extra-large;\n padding-right: $spacing-extra-extra-large;\n}\n\n.ph7 {\n padding-left: $spacing-extra-extra-extra-large;\n padding-right: $spacing-extra-extra-extra-large;\n}\n\n.ma0 { margin: $spacing-none; }\n.ma1 { margin: $spacing-extra-small; }\n.ma2 { margin: $spacing-small; }\n.ma3 { margin: $spacing-medium; }\n.ma4 { margin: $spacing-large; }\n.ma5 { margin: $spacing-extra-large; }\n.ma6 { margin: $spacing-extra-extra-large; }\n.ma7 { margin: $spacing-extra-extra-extra-large; }\n\n.ml0 { margin-left: $spacing-none; }\n.ml1 { margin-left: $spacing-extra-small; }\n.ml2 { margin-left: $spacing-small; }\n.ml3 { margin-left: $spacing-medium; }\n.ml4 { margin-left: $spacing-large; }\n.ml5 { margin-left: $spacing-extra-large; }\n.ml6 { margin-left: $spacing-extra-extra-large; }\n.ml7 { margin-left: $spacing-extra-extra-extra-large; }\n\n.mr0 { margin-right: $spacing-none; }\n.mr1 { margin-right: $spacing-extra-small; }\n.mr2 { margin-right: $spacing-small; }\n.mr3 { margin-right: $spacing-medium; }\n.mr4 { margin-right: $spacing-large; }\n.mr5 { margin-right: $spacing-extra-large; }\n.mr6 { margin-right: $spacing-extra-extra-large; }\n.mr7 { margin-right: $spacing-extra-extra-extra-large; }\n\n.mb0 { margin-bottom: $spacing-none; }\n.mb1 { margin-bottom: $spacing-extra-small; }\n.mb2 { margin-bottom: $spacing-small; }\n.mb3 { margin-bottom: $spacing-medium; }\n.mb4 { margin-bottom: $spacing-large; }\n.mb5 { margin-bottom: $spacing-extra-large; }\n.mb6 { margin-bottom: $spacing-extra-extra-large; }\n.mb7 { margin-bottom: $spacing-extra-extra-extra-large; }\n\n.mt0 { margin-top: $spacing-none; }\n.mt1 { margin-top: $spacing-extra-small; }\n.mt2 { margin-top: $spacing-small; }\n.mt3 { margin-top: $spacing-medium; }\n.mt4 { margin-top: $spacing-large; }\n.mt5 { margin-top: $spacing-extra-large; }\n.mt6 { margin-top: $spacing-extra-extra-large; }\n.mt7 { margin-top: $spacing-extra-extra-extra-large; }\n\n.mv0 {\n margin-top: $spacing-none;\n margin-bottom: $spacing-none;\n}\n.mv1 {\n margin-top: $spacing-extra-small;\n margin-bottom: $spacing-extra-small;\n}\n.mv2 {\n margin-top: $spacing-small;\n margin-bottom: $spacing-small;\n}\n.mv3 {\n margin-top: $spacing-medium;\n margin-bottom: $spacing-medium;\n}\n.mv4 {\n margin-top: $spacing-large;\n margin-bottom: $spacing-large;\n}\n.mv5 {\n margin-top: $spacing-extra-large;\n margin-bottom: $spacing-extra-large;\n}\n.mv6 {\n margin-top: $spacing-extra-extra-large;\n margin-bottom: $spacing-extra-extra-large;\n}\n.mv7 {\n margin-top: $spacing-extra-extra-extra-large;\n margin-bottom: $spacing-extra-extra-extra-large;\n}\n\n.mh0 {\n margin-left: $spacing-none;\n margin-right: $spacing-none;\n}\n.mh1 {\n margin-left: $spacing-extra-small;\n margin-right: $spacing-extra-small;\n}\n.mh2 {\n margin-left: $spacing-small;\n margin-right: $spacing-small;\n}\n.mh3 {\n margin-left: $spacing-medium;\n margin-right: $spacing-medium;\n}\n.mh4 {\n margin-left: $spacing-large;\n margin-right: $spacing-large;\n}\n.mh5 {\n margin-left: $spacing-extra-large;\n margin-right: $spacing-extra-large;\n}\n.mh6 {\n margin-left: $spacing-extra-extra-large;\n margin-right: $spacing-extra-extra-large;\n}\n.mh7 {\n margin-left: $spacing-extra-extra-extra-large;\n margin-right: $spacing-extra-extra-extra-large;\n}\n\n@media #{$breakpoint-not-small} {\n .pa0-ns { padding: $spacing-none; }\n .pa1-ns { padding: $spacing-extra-small; }\n .pa2-ns { padding: $spacing-small; }\n .pa3-ns { padding: $spacing-medium; }\n .pa4-ns { padding: $spacing-large; }\n .pa5-ns { padding: $spacing-extra-large; }\n .pa6-ns { padding: $spacing-extra-extra-large; }\n .pa7-ns { padding: $spacing-extra-extra-extra-large; }\n\n .pl0-ns { padding-left: $spacing-none; }\n .pl1-ns { padding-left: $spacing-extra-small; }\n .pl2-ns { padding-left: $spacing-small; }\n .pl3-ns { padding-left: $spacing-medium; }\n .pl4-ns { padding-left: $spacing-large; }\n .pl5-ns { padding-left: $spacing-extra-large; }\n .pl6-ns { padding-left: $spacing-extra-extra-large; }\n .pl7-ns { padding-left: $spacing-extra-extra-extra-large; }\n\n .pr0-ns { padding-right: $spacing-none; }\n .pr1-ns { padding-right: $spacing-extra-small; }\n .pr2-ns { padding-right: $spacing-small; }\n .pr3-ns { padding-right: $spacing-medium; }\n .pr4-ns { padding-right: $spacing-large; }\n .pr5-ns { padding-right: $spacing-extra-large; }\n .pr6-ns { padding-right: $spacing-extra-extra-large; }\n .pr7-ns { padding-right: $spacing-extra-extra-extra-large; }\n\n .pb0-ns { padding-bottom: $spacing-none; }\n .pb1-ns { padding-bottom: $spacing-extra-small; }\n .pb2-ns { padding-bottom: $spacing-small; }\n .pb3-ns { padding-bottom: $spacing-medium; }\n .pb4-ns { padding-bottom: $spacing-large; }\n .pb5-ns { padding-bottom: $spacing-extra-large; }\n .pb6-ns { padding-bottom: $spacing-extra-extra-large; }\n .pb7-ns { padding-bottom: $spacing-extra-extra-extra-large; }\n\n .pt0-ns { padding-top: $spacing-none; }\n .pt1-ns { padding-top: $spacing-extra-small; }\n .pt2-ns { padding-top: $spacing-small; }\n .pt3-ns { padding-top: $spacing-medium; }\n .pt4-ns { padding-top: $spacing-large; }\n .pt5-ns { padding-top: $spacing-extra-large; }\n .pt6-ns { padding-top: $spacing-extra-extra-large; }\n .pt7-ns { padding-top: $spacing-extra-extra-extra-large; }\n\n .pv0-ns {\n padding-top: $spacing-none;\n padding-bottom: $spacing-none;\n }\n .pv1-ns {\n padding-top: $spacing-extra-small;\n padding-bottom: $spacing-extra-small;\n }\n .pv2-ns {\n padding-top: $spacing-small;\n padding-bottom: $spacing-small;\n }\n .pv3-ns {\n padding-top: $spacing-medium;\n padding-bottom: $spacing-medium;\n }\n .pv4-ns {\n padding-top: $spacing-large;\n padding-bottom: $spacing-large;\n }\n .pv5-ns {\n padding-top: $spacing-extra-large;\n padding-bottom: $spacing-extra-large;\n }\n .pv6-ns {\n padding-top: $spacing-extra-extra-large;\n padding-bottom: $spacing-extra-extra-large;\n }\n .pv7-ns {\n padding-top: $spacing-extra-extra-extra-large;\n padding-bottom: $spacing-extra-extra-extra-large;\n }\n .ph0-ns {\n padding-left: $spacing-none;\n padding-right: $spacing-none;\n }\n .ph1-ns {\n padding-left: $spacing-extra-small;\n padding-right: $spacing-extra-small;\n }\n .ph2-ns {\n padding-left: $spacing-small;\n padding-right: $spacing-small;\n }\n .ph3-ns {\n padding-left: $spacing-medium;\n padding-right: $spacing-medium;\n }\n .ph4-ns {\n padding-left: $spacing-large;\n padding-right: $spacing-large;\n }\n .ph5-ns {\n padding-left: $spacing-extra-large;\n padding-right: $spacing-extra-large;\n }\n .ph6-ns {\n padding-left: $spacing-extra-extra-large;\n padding-right: $spacing-extra-extra-large;\n }\n .ph7-ns {\n padding-left: $spacing-extra-extra-extra-large;\n padding-right: $spacing-extra-extra-extra-large;\n }\n\n .ma0-ns { margin: $spacing-none; }\n .ma1-ns { margin: $spacing-extra-small; }\n .ma2-ns { margin: $spacing-small; }\n .ma3-ns { margin: $spacing-medium; }\n .ma4-ns { margin: $spacing-large; }\n .ma5-ns { margin: $spacing-extra-large; }\n .ma6-ns { margin: $spacing-extra-extra-large; }\n .ma7-ns { margin: $spacing-extra-extra-extra-large; }\n\n .ml0-ns { margin-left: $spacing-none; }\n .ml1-ns { margin-left: $spacing-extra-small; }\n .ml2-ns { margin-left: $spacing-small; }\n .ml3-ns { margin-left: $spacing-medium; }\n .ml4-ns { margin-left: $spacing-large; }\n .ml5-ns { margin-left: $spacing-extra-large; }\n .ml6-ns { margin-left: $spacing-extra-extra-large; }\n .ml7-ns { margin-left: $spacing-extra-extra-extra-large; }\n\n .mr0-ns { margin-right: $spacing-none; }\n .mr1-ns { margin-right: $spacing-extra-small; }\n .mr2-ns { margin-right: $spacing-small; }\n .mr3-ns { margin-right: $spacing-medium; }\n .mr4-ns { margin-right: $spacing-large; }\n .mr5-ns { margin-right: $spacing-extra-large; }\n .mr6-ns { margin-right: $spacing-extra-extra-large; }\n .mr7-ns { margin-right: $spacing-extra-extra-extra-large; }\n\n .mb0-ns { margin-bottom: $spacing-none; }\n .mb1-ns { margin-bottom: $spacing-extra-small; }\n .mb2-ns { margin-bottom: $spacing-small; }\n .mb3-ns { margin-bottom: $spacing-medium; }\n .mb4-ns { margin-bottom: $spacing-large; }\n .mb5-ns { margin-bottom: $spacing-extra-large; }\n .mb6-ns { margin-bottom: $spacing-extra-extra-large; }\n .mb7-ns { margin-bottom: $spacing-extra-extra-extra-large; }\n\n .mt0-ns { margin-top: $spacing-none; }\n .mt1-ns { margin-top: $spacing-extra-small; }\n .mt2-ns { margin-top: $spacing-small; }\n .mt3-ns { margin-top: $spacing-medium; }\n .mt4-ns { margin-top: $spacing-large; }\n .mt5-ns { margin-top: $spacing-extra-large; }\n .mt6-ns { margin-top: $spacing-extra-extra-large; }\n .mt7-ns { margin-top: $spacing-extra-extra-extra-large; }\n\n .mv0-ns {\n margin-top: $spacing-none;\n margin-bottom: $spacing-none;\n }\n .mv1-ns {\n margin-top: $spacing-extra-small;\n margin-bottom: $spacing-extra-small;\n }\n .mv2-ns {\n margin-top: $spacing-small;\n margin-bottom: $spacing-small;\n }\n .mv3-ns {\n margin-top: $spacing-medium;\n margin-bottom: $spacing-medium;\n }\n .mv4-ns {\n margin-top: $spacing-large;\n margin-bottom: $spacing-large;\n }\n .mv5-ns {\n margin-top: $spacing-extra-large;\n margin-bottom: $spacing-extra-large;\n }\n .mv6-ns {\n margin-top: $spacing-extra-extra-large;\n margin-bottom: $spacing-extra-extra-large;\n }\n .mv7-ns {\n margin-top: $spacing-extra-extra-extra-large;\n margin-bottom: $spacing-extra-extra-extra-large;\n }\n\n .mh0-ns {\n margin-left: $spacing-none;\n margin-right: $spacing-none;\n }\n .mh1-ns {\n margin-left: $spacing-extra-small;\n margin-right: $spacing-extra-small;\n }\n .mh2-ns {\n margin-left: $spacing-small;\n margin-right: $spacing-small;\n }\n .mh3-ns {\n margin-left: $spacing-medium;\n margin-right: $spacing-medium;\n }\n .mh4-ns {\n margin-left: $spacing-large;\n margin-right: $spacing-large;\n }\n .mh5-ns {\n margin-left: $spacing-extra-large;\n margin-right: $spacing-extra-large;\n }\n .mh6-ns {\n margin-left: $spacing-extra-extra-large;\n margin-right: $spacing-extra-extra-large;\n }\n .mh7-ns {\n margin-left: $spacing-extra-extra-extra-large;\n margin-right: $spacing-extra-extra-extra-large;\n }\n\n}\n\n@media #{$breakpoint-medium} {\n .pa0-m { padding: $spacing-none; }\n .pa1-m { padding: $spacing-extra-small; }\n .pa2-m { padding: $spacing-small; }\n .pa3-m { padding: $spacing-medium; }\n .pa4-m { padding: $spacing-large; }\n .pa5-m { padding: $spacing-extra-large; }\n .pa6-m { padding: $spacing-extra-extra-large; }\n .pa7-m { padding: $spacing-extra-extra-extra-large; }\n\n .pl0-m { padding-left: $spacing-none; }\n .pl1-m { padding-left: $spacing-extra-small; }\n .pl2-m { padding-left: $spacing-small; }\n .pl3-m { padding-left: $spacing-medium; }\n .pl4-m { padding-left: $spacing-large; }\n .pl5-m { padding-left: $spacing-extra-large; }\n .pl6-m { padding-left: $spacing-extra-extra-large; }\n .pl7-m { padding-left: $spacing-extra-extra-extra-large; }\n\n .pr0-m { padding-right: $spacing-none; }\n .pr1-m { padding-right: $spacing-extra-small; }\n .pr2-m { padding-right: $spacing-small; }\n .pr3-m { padding-right: $spacing-medium; }\n .pr4-m { padding-right: $spacing-large; }\n .pr5-m { padding-right: $spacing-extra-large; }\n .pr6-m { padding-right: $spacing-extra-extra-large; }\n .pr7-m { padding-right: $spacing-extra-extra-extra-large; }\n\n .pb0-m { padding-bottom: $spacing-none; }\n .pb1-m { padding-bottom: $spacing-extra-small; }\n .pb2-m { padding-bottom: $spacing-small; }\n .pb3-m { padding-bottom: $spacing-medium; }\n .pb4-m { padding-bottom: $spacing-large; }\n .pb5-m { padding-bottom: $spacing-extra-large; }\n .pb6-m { padding-bottom: $spacing-extra-extra-large; }\n .pb7-m { padding-bottom: $spacing-extra-extra-extra-large; }\n\n .pt0-m { padding-top: $spacing-none; }\n .pt1-m { padding-top: $spacing-extra-small; }\n .pt2-m { padding-top: $spacing-small; }\n .pt3-m { padding-top: $spacing-medium; }\n .pt4-m { padding-top: $spacing-large; }\n .pt5-m { padding-top: $spacing-extra-large; }\n .pt6-m { padding-top: $spacing-extra-extra-large; }\n .pt7-m { padding-top: $spacing-extra-extra-extra-large; }\n\n .pv0-m {\n padding-top: $spacing-none;\n padding-bottom: $spacing-none;\n }\n .pv1-m {\n padding-top: $spacing-extra-small;\n padding-bottom: $spacing-extra-small;\n }\n .pv2-m {\n padding-top: $spacing-small;\n padding-bottom: $spacing-small;\n }\n .pv3-m {\n padding-top: $spacing-medium;\n padding-bottom: $spacing-medium;\n }\n .pv4-m {\n padding-top: $spacing-large;\n padding-bottom: $spacing-large;\n }\n .pv5-m {\n padding-top: $spacing-extra-large;\n padding-bottom: $spacing-extra-large;\n }\n .pv6-m {\n padding-top: $spacing-extra-extra-large;\n padding-bottom: $spacing-extra-extra-large;\n }\n .pv7-m {\n padding-top: $spacing-extra-extra-extra-large;\n padding-bottom: $spacing-extra-extra-extra-large;\n }\n\n .ph0-m {\n padding-left: $spacing-none;\n padding-right: $spacing-none;\n }\n .ph1-m {\n padding-left: $spacing-extra-small;\n padding-right: $spacing-extra-small;\n }\n .ph2-m {\n padding-left: $spacing-small;\n padding-right: $spacing-small;\n }\n .ph3-m {\n padding-left: $spacing-medium;\n padding-right: $spacing-medium;\n }\n .ph4-m {\n padding-left: $spacing-large;\n padding-right: $spacing-large;\n }\n .ph5-m {\n padding-left: $spacing-extra-large;\n padding-right: $spacing-extra-large;\n }\n .ph6-m {\n padding-left: $spacing-extra-extra-large;\n padding-right: $spacing-extra-extra-large;\n }\n .ph7-m {\n padding-left: $spacing-extra-extra-extra-large;\n padding-right: $spacing-extra-extra-extra-large;\n }\n\n .ma0-m { margin: $spacing-none; }\n .ma1-m { margin: $spacing-extra-small; }\n .ma2-m { margin: $spacing-small; }\n .ma3-m { margin: $spacing-medium; }\n .ma4-m { margin: $spacing-large; }\n .ma5-m { margin: $spacing-extra-large; }\n .ma6-m { margin: $spacing-extra-extra-large; }\n .ma7-m { margin: $spacing-extra-extra-extra-large; }\n\n .ml0-m { margin-left: $spacing-none; }\n .ml1-m { margin-left: $spacing-extra-small; }\n .ml2-m { margin-left: $spacing-small; }\n .ml3-m { margin-left: $spacing-medium; }\n .ml4-m { margin-left: $spacing-large; }\n .ml5-m { margin-left: $spacing-extra-large; }\n .ml6-m { margin-left: $spacing-extra-extra-large; }\n .ml7-m { margin-left: $spacing-extra-extra-extra-large; }\n\n .mr0-m { margin-right: $spacing-none; }\n .mr1-m { margin-right: $spacing-extra-small; }\n .mr2-m { margin-right: $spacing-small; }\n .mr3-m { margin-right: $spacing-medium; }\n .mr4-m { margin-right: $spacing-large; }\n .mr5-m { margin-right: $spacing-extra-large; }\n .mr6-m { margin-right: $spacing-extra-extra-large; }\n .mr7-m { margin-right: $spacing-extra-extra-extra-large; }\n\n .mb0-m { margin-bottom: $spacing-none; }\n .mb1-m { margin-bottom: $spacing-extra-small; }\n .mb2-m { margin-bottom: $spacing-small; }\n .mb3-m { margin-bottom: $spacing-medium; }\n .mb4-m { margin-bottom: $spacing-large; }\n .mb5-m { margin-bottom: $spacing-extra-large; }\n .mb6-m { margin-bottom: $spacing-extra-extra-large; }\n .mb7-m { margin-bottom: $spacing-extra-extra-extra-large; }\n\n .mt0-m { margin-top: $spacing-none; }\n .mt1-m { margin-top: $spacing-extra-small; }\n .mt2-m { margin-top: $spacing-small; }\n .mt3-m { margin-top: $spacing-medium; }\n .mt4-m { margin-top: $spacing-large; }\n .mt5-m { margin-top: $spacing-extra-large; }\n .mt6-m { margin-top: $spacing-extra-extra-large; }\n .mt7-m { margin-top: $spacing-extra-extra-extra-large; }\n\n .mv0-m {\n margin-top: $spacing-none;\n margin-bottom: $spacing-none;\n }\n .mv1-m {\n margin-top: $spacing-extra-small;\n margin-bottom: $spacing-extra-small;\n }\n .mv2-m {\n margin-top: $spacing-small;\n margin-bottom: $spacing-small;\n }\n .mv3-m {\n margin-top: $spacing-medium;\n margin-bottom: $spacing-medium;\n }\n .mv4-m {\n margin-top: $spacing-large;\n margin-bottom: $spacing-large;\n }\n .mv5-m {\n margin-top: $spacing-extra-large;\n margin-bottom: $spacing-extra-large;\n }\n .mv6-m {\n margin-top: $spacing-extra-extra-large;\n margin-bottom: $spacing-extra-extra-large;\n }\n .mv7-m {\n margin-top: $spacing-extra-extra-extra-large;\n margin-bottom: $spacing-extra-extra-extra-large;\n }\n\n .mh0-m {\n margin-left: $spacing-none;\n margin-right: $spacing-none;\n }\n .mh1-m {\n margin-left: $spacing-extra-small;\n margin-right: $spacing-extra-small;\n }\n .mh2-m {\n margin-left: $spacing-small;\n margin-right: $spacing-small;\n }\n .mh3-m {\n margin-left: $spacing-medium;\n margin-right: $spacing-medium;\n }\n .mh4-m {\n margin-left: $spacing-large;\n margin-right: $spacing-large;\n }\n .mh5-m {\n margin-left: $spacing-extra-large;\n margin-right: $spacing-extra-large;\n }\n .mh6-m {\n margin-left: $spacing-extra-extra-large;\n margin-right: $spacing-extra-extra-large;\n }\n .mh7-m {\n margin-left: $spacing-extra-extra-extra-large;\n margin-right: $spacing-extra-extra-extra-large;\n }\n\n}\n\n@media #{$breakpoint-large} {\n .pa0-l { padding: $spacing-none; }\n .pa1-l { padding: $spacing-extra-small; }\n .pa2-l { padding: $spacing-small; }\n .pa3-l { padding: $spacing-medium; }\n .pa4-l { padding: $spacing-large; }\n .pa5-l { padding: $spacing-extra-large; }\n .pa6-l { padding: $spacing-extra-extra-large; }\n .pa7-l { padding: $spacing-extra-extra-extra-large; }\n\n .pl0-l { padding-left: $spacing-none; }\n .pl1-l { padding-left: $spacing-extra-small; }\n .pl2-l { padding-left: $spacing-small; }\n .pl3-l { padding-left: $spacing-medium; }\n .pl4-l { padding-left: $spacing-large; }\n .pl5-l { padding-left: $spacing-extra-large; }\n .pl6-l { padding-left: $spacing-extra-extra-large; }\n .pl7-l { padding-left: $spacing-extra-extra-extra-large; }\n\n .pr0-l { padding-right: $spacing-none; }\n .pr1-l { padding-right: $spacing-extra-small; }\n .pr2-l { padding-right: $spacing-small; }\n .pr3-l { padding-right: $spacing-medium; }\n .pr4-l { padding-right: $spacing-large; }\n .pr5-l { padding-right: $spacing-extra-large; }\n .pr6-l { padding-right: $spacing-extra-extra-large; }\n .pr7-l { padding-right: $spacing-extra-extra-extra-large; }\n\n .pb0-l { padding-bottom: $spacing-none; }\n .pb1-l { padding-bottom: $spacing-extra-small; }\n .pb2-l { padding-bottom: $spacing-small; }\n .pb3-l { padding-bottom: $spacing-medium; }\n .pb4-l { padding-bottom: $spacing-large; }\n .pb5-l { padding-bottom: $spacing-extra-large; }\n .pb6-l { padding-bottom: $spacing-extra-extra-large; }\n .pb7-l { padding-bottom: $spacing-extra-extra-extra-large; }\n\n .pt0-l { padding-top: $spacing-none; }\n .pt1-l { padding-top: $spacing-extra-small; }\n .pt2-l { padding-top: $spacing-small; }\n .pt3-l { padding-top: $spacing-medium; }\n .pt4-l { padding-top: $spacing-large; }\n .pt5-l { padding-top: $spacing-extra-large; }\n .pt6-l { padding-top: $spacing-extra-extra-large; }\n .pt7-l { padding-top: $spacing-extra-extra-extra-large; }\n\n .pv0-l {\n padding-top: $spacing-none;\n padding-bottom: $spacing-none;\n }\n .pv1-l {\n padding-top: $spacing-extra-small;\n padding-bottom: $spacing-extra-small;\n }\n .pv2-l {\n padding-top: $spacing-small;\n padding-bottom: $spacing-small;\n }\n .pv3-l {\n padding-top: $spacing-medium;\n padding-bottom: $spacing-medium;\n }\n .pv4-l {\n padding-top: $spacing-large;\n padding-bottom: $spacing-large;\n }\n .pv5-l {\n padding-top: $spacing-extra-large;\n padding-bottom: $spacing-extra-large;\n }\n .pv6-l {\n padding-top: $spacing-extra-extra-large;\n padding-bottom: $spacing-extra-extra-large;\n }\n .pv7-l {\n padding-top: $spacing-extra-extra-extra-large;\n padding-bottom: $spacing-extra-extra-extra-large;\n }\n\n .ph0-l {\n padding-left: $spacing-none;\n padding-right: $spacing-none;\n }\n .ph1-l {\n padding-left: $spacing-extra-small;\n padding-right: $spacing-extra-small;\n }\n .ph2-l {\n padding-left: $spacing-small;\n padding-right: $spacing-small;\n }\n .ph3-l {\n padding-left: $spacing-medium;\n padding-right: $spacing-medium;\n }\n .ph4-l {\n padding-left: $spacing-large;\n padding-right: $spacing-large;\n }\n .ph5-l {\n padding-left: $spacing-extra-large;\n padding-right: $spacing-extra-large;\n }\n .ph6-l {\n padding-left: $spacing-extra-extra-large;\n padding-right: $spacing-extra-extra-large;\n }\n .ph7-l {\n padding-left: $spacing-extra-extra-extra-large;\n padding-right: $spacing-extra-extra-extra-large;\n }\n\n .ma0-l { margin: $spacing-none; }\n .ma1-l { margin: $spacing-extra-small; }\n .ma2-l { margin: $spacing-small; }\n .ma3-l { margin: $spacing-medium; }\n .ma4-l { margin: $spacing-large; }\n .ma5-l { margin: $spacing-extra-large; }\n .ma6-l { margin: $spacing-extra-extra-large; }\n .ma7-l { margin: $spacing-extra-extra-extra-large; }\n\n .ml0-l { margin-left: $spacing-none; }\n .ml1-l { margin-left: $spacing-extra-small; }\n .ml2-l { margin-left: $spacing-small; }\n .ml3-l { margin-left: $spacing-medium; }\n .ml4-l { margin-left: $spacing-large; }\n .ml5-l { margin-left: $spacing-extra-large; }\n .ml6-l { margin-left: $spacing-extra-extra-large; }\n .ml7-l { margin-left: $spacing-extra-extra-extra-large; }\n\n .mr0-l { margin-right: $spacing-none; }\n .mr1-l { margin-right: $spacing-extra-small; }\n .mr2-l { margin-right: $spacing-small; }\n .mr3-l { margin-right: $spacing-medium; }\n .mr4-l { margin-right: $spacing-large; }\n .mr5-l { margin-right: $spacing-extra-large; }\n .mr6-l { margin-right: $spacing-extra-extra-large; }\n .mr7-l { margin-right: $spacing-extra-extra-extra-large; }\n\n .mb0-l { margin-bottom: $spacing-none; }\n .mb1-l { margin-bottom: $spacing-extra-small; }\n .mb2-l { margin-bottom: $spacing-small; }\n .mb3-l { margin-bottom: $spacing-medium; }\n .mb4-l { margin-bottom: $spacing-large; }\n .mb5-l { margin-bottom: $spacing-extra-large; }\n .mb6-l { margin-bottom: $spacing-extra-extra-large; }\n .mb7-l { margin-bottom: $spacing-extra-extra-extra-large; }\n\n .mt0-l { margin-top: $spacing-none; }\n .mt1-l { margin-top: $spacing-extra-small; }\n .mt2-l { margin-top: $spacing-small; }\n .mt3-l { margin-top: $spacing-medium; }\n .mt4-l { margin-top: $spacing-large; }\n .mt5-l { margin-top: $spacing-extra-large; }\n .mt6-l { margin-top: $spacing-extra-extra-large; }\n .mt7-l { margin-top: $spacing-extra-extra-extra-large; }\n\n .mv0-l {\n margin-top: $spacing-none;\n margin-bottom: $spacing-none;\n }\n .mv1-l {\n margin-top: $spacing-extra-small;\n margin-bottom: $spacing-extra-small;\n }\n .mv2-l {\n margin-top: $spacing-small;\n margin-bottom: $spacing-small;\n }\n .mv3-l {\n margin-top: $spacing-medium;\n margin-bottom: $spacing-medium;\n }\n .mv4-l {\n margin-top: $spacing-large;\n margin-bottom: $spacing-large;\n }\n .mv5-l {\n margin-top: $spacing-extra-large;\n margin-bottom: $spacing-extra-large;\n }\n .mv6-l {\n margin-top: $spacing-extra-extra-large;\n margin-bottom: $spacing-extra-extra-large;\n }\n .mv7-l {\n margin-top: $spacing-extra-extra-extra-large;\n margin-bottom: $spacing-extra-extra-extra-large;\n }\n\n .mh0-l {\n margin-left: $spacing-none;\n margin-right: $spacing-none;\n }\n .mh1-l {\n margin-left: $spacing-extra-small;\n margin-right: $spacing-extra-small;\n }\n .mh2-l {\n margin-left: $spacing-small;\n margin-right: $spacing-small;\n }\n .mh3-l {\n margin-left: $spacing-medium;\n margin-right: $spacing-medium;\n }\n .mh4-l {\n margin-left: $spacing-large;\n margin-right: $spacing-large;\n }\n .mh5-l {\n margin-left: $spacing-extra-large;\n margin-right: $spacing-extra-large;\n }\n .mh6-l {\n margin-left: $spacing-extra-extra-large;\n margin-right: $spacing-extra-extra-large;\n }\n .mh7-l {\n margin-left: $spacing-extra-extra-extra-large;\n margin-right: $spacing-extra-extra-extra-large;\n }\n}\n","\n// Converted Variables\n\n$sans-serif: -apple-system, BlinkMacSystemFont, 'avenir next', avenir, helvetica, 'helvetica neue', ubuntu, roboto, noto, 'segoe ui', arial, sans-serif !default;\n$serif: georgia, serif !default;\n$code: consolas, monaco, monospace !default;\n$font-size-headline: 6rem !default;\n$font-size-subheadline: 5rem !default;\n$font-size-1: 3rem !default;\n$font-size-2: 2.25rem !default;\n$font-size-3: 1.5rem !default;\n$font-size-4: 1.25rem !default;\n$font-size-5: 1rem !default;\n$font-size-6: .875rem !default;\n$font-size-7: .75rem !default;\n$letter-spacing-tight: -.05em !default;\n$letter-spacing-1: .1em !default;\n$letter-spacing-2: .25em !default;\n$line-height-solid: 1 !default;\n$line-height-title: 1.25 !default;\n$line-height-copy: 1.5 !default;\n$measure: 30em !default;\n$measure-narrow: 20em !default;\n$measure-wide: 34em !default;\n$spacing-none: 0 !default;\n$spacing-extra-small: .25rem !default;\n$spacing-small: .5rem !default;\n$spacing-medium: 1rem !default;\n$spacing-large: 2rem !default;\n$spacing-extra-large: 4rem !default;\n$spacing-extra-extra-large: 8rem !default;\n$spacing-extra-extra-extra-large: 16rem !default;\n$spacing-copy-separator: 1.5em !default;\n$height-1: 1rem !default;\n$height-2: 2rem !default;\n$height-3: 4rem !default;\n$height-4: 8rem !default;\n$height-5: 16rem !default;\n$width-1: 1rem !default;\n$width-2: 2rem !default;\n$width-3: 4rem !default;\n$width-4: 8rem !default;\n$width-5: 16rem !default;\n$max-width-1: 1rem !default;\n$max-width-2: 2rem !default;\n$max-width-3: 4rem !default;\n$max-width-4: 8rem !default;\n$max-width-5: 16rem !default;\n$max-width-6: 32rem !default;\n$max-width-7: 48rem !default;\n$max-width-8: 64rem !default;\n$max-width-9: 96rem !default;\n$border-radius-none: 0 !default;\n$border-radius-1: .125rem !default;\n$border-radius-2: .25rem !default;\n$border-radius-3: .5rem !default;\n$border-radius-4: 1rem !default;\n$border-radius-circle: 100% !default;\n$border-radius-pill: 9999px !default;\n$border-width-none: 0 !default;\n$border-width-1: .125rem !default;\n$border-width-2: .25rem !default;\n$border-width-3: .5rem !default;\n$border-width-4: 1rem !default;\n$border-width-5: 2rem !default;\n$box-shadow-1: 0px 0px 4px 2px rgba( 0, 0, 0, 0.2 ) !default;\n$box-shadow-2: 0px 0px 8px 2px rgba( 0, 0, 0, 0.2 ) !default;\n$box-shadow-3: 2px 2px 4px 2px rgba( 0, 0, 0, 0.2 ) !default;\n$box-shadow-4: 2px 2px 8px 0px rgba( 0, 0, 0, 0.2 ) !default;\n$box-shadow-5: 4px 4px 8px 0px rgba( 0, 0, 0, 0.2 ) !default;\n$black: #000 !default;\n$near-black: #111 !default;\n$dark-gray: #333 !default;\n$mid-gray: #555 !default;\n$gray: #777 !default;\n$silver: #999 !default;\n$light-silver: #aaa !default;\n$moon-gray: #ccc !default;\n$light-gray: #eee !default;\n$near-white: #f4f4f4 !default;\n$white: #fff !default;\n$transparent: transparent !default;\n$black-90: rgba(0,0,0,.9) !default;\n$black-80: rgba(0,0,0,.8) !default;\n$black-70: rgba(0,0,0,.7) !default;\n$black-60: rgba(0,0,0,.6) !default;\n$black-50: rgba(0,0,0,.5) !default;\n$black-40: rgba(0,0,0,.4) !default;\n$black-30: rgba(0,0,0,.3) !default;\n$black-20: rgba(0,0,0,.2) !default;\n$black-10: rgba(0,0,0,.1) !default;\n$black-05: rgba(0,0,0,.05) !default;\n$black-025: rgba(0,0,0,.025) !default;\n$black-0125: rgba(0,0,0,.0125) !default;\n$white-90: rgba(255,255,255,.9) !default;\n$white-80: rgba(255,255,255,.8) !default;\n$white-70: rgba(255,255,255,.7) !default;\n$white-60: rgba(255,255,255,.6) !default;\n$white-50: rgba(255,255,255,.5) !default;\n$white-40: rgba(255,255,255,.4) !default;\n$white-30: rgba(255,255,255,.3) !default;\n$white-20: rgba(255,255,255,.2) !default;\n$white-10: rgba(255,255,255,.1) !default;\n$white-05: rgba(255,255,255,.05) !default;\n$white-025: rgba(255,255,255,.025) !default;\n$white-0125: rgba(255,255,255,.0125) !default;\n$dark-red: #e7040f !default;\n$red: #ff4136 !default;\n$light-red: #ff725c !default;\n$orange: #ff6300 !default;\n$gold: #ffb700 !default;\n$yellow: #ffd700 !default;\n$light-yellow: #fbf1a9 !default;\n$purple: #5e2ca5 !default;\n$light-purple: #a463f2 !default;\n$dark-pink: #d5008f !default;\n$hot-pink: #ff41b4 !default;\n$pink: #ff80cc !default;\n$light-pink: #ffa3d7 !default;\n$dark-green: #137752 !default;\n$green: #19a974 !default;\n$light-green: #9eebcf !default;\n$navy: #001b44 !default;\n$dark-blue: #00449e !default;\n$blue: #357edd !default;\n$light-blue: #96ccff !default;\n$lightest-blue: #cdecff !default;\n$washed-blue: #f6fffe !default;\n$washed-green: #e8fdf5 !default;\n$washed-yellow: #fffceb !default;\n$washed-red: #ffdfdf !default;\n\n// Custom Media Query Variables\n\n$breakpoint-not-small: 'screen and (min-width: 30em)' !default;\n$breakpoint-medium: 'screen and (min-width: 30em) and (max-width: 60em)' !default;\n$breakpoint-large: 'screen and (min-width: 60em)' !default;\n\n/*\n\n VARIABLES\n\n*/\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n NEGATIVE MARGINS\n\n Base:\n n = negative\n\n Modifiers:\n a = all\n t = top\n r = right\n b = bottom\n l = left\n\n 1 = 1st step in spacing scale\n 2 = 2nd step in spacing scale\n 3 = 3rd step in spacing scale\n 4 = 4th step in spacing scale\n 5 = 5th step in spacing scale\n 6 = 6th step in spacing scale\n 7 = 7th step in spacing scale\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n\n\n.na1 { margin: -$spacing-extra-small; }\n.na2 { margin: -$spacing-small; }\n.na3 { margin: -$spacing-medium; }\n.na4 { margin: -$spacing-large; }\n.na5 { margin: -$spacing-extra-large; }\n.na6 { margin: -$spacing-extra-extra-large; }\n.na7 { margin: -$spacing-extra-extra-extra-large; }\n\n.nl1 { margin-left: -$spacing-extra-small; }\n.nl2 { margin-left: -$spacing-small; }\n.nl3 { margin-left: -$spacing-medium; }\n.nl4 { margin-left: -$spacing-large; }\n.nl5 { margin-left: -$spacing-extra-large; }\n.nl6 { margin-left: -$spacing-extra-extra-large; }\n.nl7 { margin-left: -$spacing-extra-extra-extra-large; }\n\n.nr1 { margin-right: -$spacing-extra-small; }\n.nr2 { margin-right: -$spacing-small; }\n.nr3 { margin-right: -$spacing-medium; }\n.nr4 { margin-right: -$spacing-large; }\n.nr5 { margin-right: -$spacing-extra-large; }\n.nr6 { margin-right: -$spacing-extra-extra-large; }\n.nr7 { margin-right: -$spacing-extra-extra-extra-large; }\n\n.nb1 { margin-bottom: -$spacing-extra-small; }\n.nb2 { margin-bottom: -$spacing-small; }\n.nb3 { margin-bottom: -$spacing-medium; }\n.nb4 { margin-bottom: -$spacing-large; }\n.nb5 { margin-bottom: -$spacing-extra-large; }\n.nb6 { margin-bottom: -$spacing-extra-extra-large; }\n.nb7 { margin-bottom: -$spacing-extra-extra-extra-large; }\n\n.nt1 { margin-top: -$spacing-extra-small; }\n.nt2 { margin-top: -$spacing-small; }\n.nt3 { margin-top: -$spacing-medium; }\n.nt4 { margin-top: -$spacing-large; }\n.nt5 { margin-top: -$spacing-extra-large; }\n.nt6 { margin-top: -$spacing-extra-extra-large; }\n.nt7 { margin-top: -$spacing-extra-extra-extra-large; }\n\n@media #{$breakpoint-not-small} {\n\n .na1-ns { margin: -$spacing-extra-small; }\n .na2-ns { margin: -$spacing-small; }\n .na3-ns { margin: -$spacing-medium; }\n .na4-ns { margin: -$spacing-large; }\n .na5-ns { margin: -$spacing-extra-large; }\n .na6-ns { margin: -$spacing-extra-extra-large; }\n .na7-ns { margin: -$spacing-extra-extra-extra-large; }\n\n .nl1-ns { margin-left: -$spacing-extra-small; }\n .nl2-ns { margin-left: -$spacing-small; }\n .nl3-ns { margin-left: -$spacing-medium; }\n .nl4-ns { margin-left: -$spacing-large; }\n .nl5-ns { margin-left: -$spacing-extra-large; }\n .nl6-ns { margin-left: -$spacing-extra-extra-large; }\n .nl7-ns { margin-left: -$spacing-extra-extra-extra-large; }\n\n .nr1-ns { margin-right: -$spacing-extra-small; }\n .nr2-ns { margin-right: -$spacing-small; }\n .nr3-ns { margin-right: -$spacing-medium; }\n .nr4-ns { margin-right: -$spacing-large; }\n .nr5-ns { margin-right: -$spacing-extra-large; }\n .nr6-ns { margin-right: -$spacing-extra-extra-large; }\n .nr7-ns { margin-right: -$spacing-extra-extra-extra-large; }\n\n .nb1-ns { margin-bottom: -$spacing-extra-small; }\n .nb2-ns { margin-bottom: -$spacing-small; }\n .nb3-ns { margin-bottom: -$spacing-medium; }\n .nb4-ns { margin-bottom: -$spacing-large; }\n .nb5-ns { margin-bottom: -$spacing-extra-large; }\n .nb6-ns { margin-bottom: -$spacing-extra-extra-large; }\n .nb7-ns { margin-bottom: -$spacing-extra-extra-extra-large; }\n\n .nt1-ns { margin-top: -$spacing-extra-small; }\n .nt2-ns { margin-top: -$spacing-small; }\n .nt3-ns { margin-top: -$spacing-medium; }\n .nt4-ns { margin-top: -$spacing-large; }\n .nt5-ns { margin-top: -$spacing-extra-large; }\n .nt6-ns { margin-top: -$spacing-extra-extra-large; }\n .nt7-ns { margin-top: -$spacing-extra-extra-extra-large; }\n\n}\n\n@media #{$breakpoint-medium} {\n .na1-m { margin: -$spacing-extra-small; }\n .na2-m { margin: -$spacing-small; }\n .na3-m { margin: -$spacing-medium; }\n .na4-m { margin: -$spacing-large; }\n .na5-m { margin: -$spacing-extra-large; }\n .na6-m { margin: -$spacing-extra-extra-large; }\n .na7-m { margin: -$spacing-extra-extra-extra-large; }\n\n .nl1-m { margin-left: -$spacing-extra-small; }\n .nl2-m { margin-left: -$spacing-small; }\n .nl3-m { margin-left: -$spacing-medium; }\n .nl4-m { margin-left: -$spacing-large; }\n .nl5-m { margin-left: -$spacing-extra-large; }\n .nl6-m { margin-left: -$spacing-extra-extra-large; }\n .nl7-m { margin-left: -$spacing-extra-extra-extra-large; }\n\n .nr1-m { margin-right: -$spacing-extra-small; }\n .nr2-m { margin-right: -$spacing-small; }\n .nr3-m { margin-right: -$spacing-medium; }\n .nr4-m { margin-right: -$spacing-large; }\n .nr5-m { margin-right: -$spacing-extra-large; }\n .nr6-m { margin-right: -$spacing-extra-extra-large; }\n .nr7-m { margin-right: -$spacing-extra-extra-extra-large; }\n\n .nb1-m { margin-bottom: -$spacing-extra-small; }\n .nb2-m { margin-bottom: -$spacing-small; }\n .nb3-m { margin-bottom: -$spacing-medium; }\n .nb4-m { margin-bottom: -$spacing-large; }\n .nb5-m { margin-bottom: -$spacing-extra-large; }\n .nb6-m { margin-bottom: -$spacing-extra-extra-large; }\n .nb7-m { margin-bottom: -$spacing-extra-extra-extra-large; }\n\n .nt1-m { margin-top: -$spacing-extra-small; }\n .nt2-m { margin-top: -$spacing-small; }\n .nt3-m { margin-top: -$spacing-medium; }\n .nt4-m { margin-top: -$spacing-large; }\n .nt5-m { margin-top: -$spacing-extra-large; }\n .nt6-m { margin-top: -$spacing-extra-extra-large; }\n .nt7-m { margin-top: -$spacing-extra-extra-extra-large; }\n\n}\n\n@media #{$breakpoint-large} {\n .na1-l { margin: -$spacing-extra-small; }\n .na2-l { margin: -$spacing-small; }\n .na3-l { margin: -$spacing-medium; }\n .na4-l { margin: -$spacing-large; }\n .na5-l { margin: -$spacing-extra-large; }\n .na6-l { margin: -$spacing-extra-extra-large; }\n .na7-l { margin: -$spacing-extra-extra-extra-large; }\n\n .nl1-l { margin-left: -$spacing-extra-small; }\n .nl2-l { margin-left: -$spacing-small; }\n .nl3-l { margin-left: -$spacing-medium; }\n .nl4-l { margin-left: -$spacing-large; }\n .nl5-l { margin-left: -$spacing-extra-large; }\n .nl6-l { margin-left: -$spacing-extra-extra-large; }\n .nl7-l { margin-left: -$spacing-extra-extra-extra-large; }\n\n .nr1-l { margin-right: -$spacing-extra-small; }\n .nr2-l { margin-right: -$spacing-small; }\n .nr3-l { margin-right: -$spacing-medium; }\n .nr4-l { margin-right: -$spacing-large; }\n .nr5-l { margin-right: -$spacing-extra-large; }\n .nr6-l { margin-right: -$spacing-extra-extra-large; }\n .nr7-l { margin-right: -$spacing-extra-extra-extra-large; }\n\n .nb1-l { margin-bottom: -$spacing-extra-small; }\n .nb2-l { margin-bottom: -$spacing-small; }\n .nb3-l { margin-bottom: -$spacing-medium; }\n .nb4-l { margin-bottom: -$spacing-large; }\n .nb5-l { margin-bottom: -$spacing-extra-large; }\n .nb6-l { margin-bottom: -$spacing-extra-extra-large; }\n .nb7-l { margin-bottom: -$spacing-extra-extra-extra-large; }\n\n .nt1-l { margin-top: -$spacing-extra-small; }\n .nt2-l { margin-top: -$spacing-small; }\n .nt3-l { margin-top: -$spacing-medium; }\n .nt4-l { margin-top: -$spacing-large; }\n .nt5-l { margin-top: -$spacing-extra-large; }\n .nt6-l { margin-top: -$spacing-extra-extra-large; }\n .nt7-l { margin-top: -$spacing-extra-extra-extra-large; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n TABLES\n Docs: http://tachyons.io/docs/elements/tables/\n\n*/\n\n.collapse {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\n.striped--light-silver:nth-child(odd) {\n background-color: $light-silver;\n}\n\n.striped--moon-gray:nth-child(odd) {\n background-color: $moon-gray;\n}\n\n.striped--light-gray:nth-child(odd) {\n background-color: $light-gray;\n}\n\n.striped--near-white:nth-child(odd) {\n background-color: $near-white;\n}\n\n.stripe-light:nth-child(odd) {\n background-color: $white-10;\n}\n\n.stripe-dark:nth-child(odd) {\n background-color: $black-10;\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n TEXT DECORATION\n Docs: http://tachyons.io/docs/typography/text-decoration/\n\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n.strike { text-decoration: line-through; }\n.underline { text-decoration: underline; }\n.no-underline { text-decoration: none; }\n\n\n@media #{$breakpoint-not-small} {\n .strike-ns { text-decoration: line-through; }\n .underline-ns { text-decoration: underline; }\n .no-underline-ns { text-decoration: none; }\n}\n\n@media #{$breakpoint-medium} {\n .strike-m { text-decoration: line-through; }\n .underline-m { text-decoration: underline; }\n .no-underline-m { text-decoration: none; }\n}\n\n@media #{$breakpoint-large} {\n .strike-l { text-decoration: line-through; }\n .underline-l { text-decoration: underline; }\n .no-underline-l { text-decoration: none; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n TEXT ALIGN\n Docs: http://tachyons.io/docs/typography/text-align/\n\n Base\n t = text-align\n\n Modifiers\n l = left\n r = right\n c = center\n j = justify\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n.tl { text-align: left; }\n.tr { text-align: right; }\n.tc { text-align: center; }\n.tj { text-align: justify; }\n\n@media #{$breakpoint-not-small} {\n .tl-ns { text-align: left; }\n .tr-ns { text-align: right; }\n .tc-ns { text-align: center; }\n .tj-ns { text-align: justify; }\n}\n\n@media #{$breakpoint-medium} {\n .tl-m { text-align: left; }\n .tr-m { text-align: right; }\n .tc-m { text-align: center; }\n .tj-m { text-align: justify; }\n}\n\n@media #{$breakpoint-large} {\n .tl-l { text-align: left; }\n .tr-l { text-align: right; }\n .tc-l { text-align: center; }\n .tj-l { text-align: justify; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n TEXT TRANSFORM\n Docs: http://tachyons.io/docs/typography/text-transform/\n\n Base:\n tt = text-transform\n\n Modifiers\n c = capitalize\n l = lowercase\n u = uppercase\n n = none\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n.ttc { text-transform: capitalize; }\n.ttl { text-transform: lowercase; }\n.ttu { text-transform: uppercase; }\n.ttn { text-transform: none; }\n\n@media #{$breakpoint-not-small} {\n .ttc-ns { text-transform: capitalize; }\n .ttl-ns { text-transform: lowercase; }\n .ttu-ns { text-transform: uppercase; }\n .ttn-ns { text-transform: none; }\n}\n\n@media #{$breakpoint-medium} {\n .ttc-m { text-transform: capitalize; }\n .ttl-m { text-transform: lowercase; }\n .ttu-m { text-transform: uppercase; }\n .ttn-m { text-transform: none; }\n}\n\n@media #{$breakpoint-large} {\n .ttc-l { text-transform: capitalize; }\n .ttl-l { text-transform: lowercase; }\n .ttu-l { text-transform: uppercase; }\n .ttn-l { text-transform: none; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n TYPE SCALE\n Docs: http://tachyons.io/docs/typography/scale/\n\n Base:\n f = font-size\n\n Modifiers\n 1 = 1st step in size scale\n 2 = 2nd step in size scale\n 3 = 3rd step in size scale\n 4 = 4th step in size scale\n 5 = 5th step in size scale\n 6 = 6th step in size scale\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n*/\n\n/*\n * For Hero/Marketing Titles\n *\n * These generally are too large for mobile\n * so be careful using them on smaller screens.\n * */\n\n.f-6,\n.f-headline {\n font-size: $font-size-headline;\n}\n.f-5,\n.f-subheadline {\n font-size: $font-size-subheadline;\n}\n\n\n/* Type Scale */\n\n\n.f1 { font-size: $font-size-1; }\n.f2 { font-size: $font-size-2; }\n.f3 { font-size: $font-size-3; }\n.f4 { font-size: $font-size-4; }\n.f5 { font-size: $font-size-5; }\n.f6 { font-size: $font-size-6; }\n.f7 { font-size: $font-size-7; }\n\n@media #{$breakpoint-not-small}{\n .f-6-ns,\n .f-headline-ns { font-size: $font-size-headline; }\n .f-5-ns,\n .f-subheadline-ns { font-size: $font-size-subheadline; }\n .f1-ns { font-size: $font-size-1; }\n .f2-ns { font-size: $font-size-2; }\n .f3-ns { font-size: $font-size-3; }\n .f4-ns { font-size: $font-size-4; }\n .f5-ns { font-size: $font-size-5; }\n .f6-ns { font-size: $font-size-6; }\n .f7-ns { font-size: $font-size-7; }\n}\n\n@media #{$breakpoint-medium} {\n .f-6-m,\n .f-headline-m { font-size: $font-size-headline; }\n .f-5-m,\n .f-subheadline-m { font-size: $font-size-subheadline; }\n .f1-m { font-size: $font-size-1; }\n .f2-m { font-size: $font-size-2; }\n .f3-m { font-size: $font-size-3; }\n .f4-m { font-size: $font-size-4; }\n .f5-m { font-size: $font-size-5; }\n .f6-m { font-size: $font-size-6; }\n .f7-m { font-size: $font-size-7; }\n}\n\n@media #{$breakpoint-large} {\n .f-6-l,\n .f-headline-l {\n font-size: $font-size-headline;\n }\n .f-5-l,\n .f-subheadline-l {\n font-size: $font-size-subheadline;\n }\n .f1-l { font-size: $font-size-1; }\n .f2-l { font-size: $font-size-2; }\n .f3-l { font-size: $font-size-3; }\n .f4-l { font-size: $font-size-4; }\n .f5-l { font-size: $font-size-5; }\n .f6-l { font-size: $font-size-6; }\n .f7-l { font-size: $font-size-7; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n TYPOGRAPHY\n http://tachyons.io/docs/typography/measure/\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n\n\n/* Measure is limited to ~66 characters */\n.measure {\n max-width: $measure;\n}\n\n/* Measure is limited to ~80 characters */\n.measure-wide {\n max-width: $measure-wide;\n}\n\n/* Measure is limited to ~45 characters */\n.measure-narrow {\n max-width: $measure-narrow;\n}\n\n/* Book paragraph style - paragraphs are indented with no vertical spacing. */\n.indent {\n text-indent: 1em;\n margin-top: 0;\n margin-bottom: 0;\n}\n\n.small-caps {\n font-variant: small-caps;\n}\n\n/* Combine this class with a width to truncate text (or just leave as is to truncate at width of containing element. */\n\n.truncate {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n@media #{$breakpoint-not-small} {\n .measure-ns {\n max-width: $measure;\n }\n .measure-wide-ns {\n max-width: $measure-wide;\n }\n .measure-narrow-ns {\n max-width: $measure-narrow;\n }\n .indent-ns {\n text-indent: 1em;\n margin-top: 0;\n margin-bottom: 0;\n }\n .small-caps-ns {\n font-variant: small-caps;\n }\n .truncate-ns {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n@media #{$breakpoint-medium} {\n .measure-m {\n max-width: $measure;\n }\n .measure-wide-m {\n max-width: $measure-wide;\n }\n .measure-narrow-m {\n max-width: $measure-narrow;\n }\n .indent-m {\n text-indent: 1em;\n margin-top: 0;\n margin-bottom: 0;\n }\n .small-caps-m {\n font-variant: small-caps;\n }\n .truncate-m {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n@media #{$breakpoint-large} {\n .measure-l {\n max-width: $measure;\n }\n .measure-wide-l {\n max-width: $measure-wide;\n }\n .measure-narrow-l {\n max-width: $measure-narrow;\n }\n .indent-l {\n text-indent: 1em;\n margin-top: 0;\n margin-bottom: 0;\n }\n .small-caps-l {\n font-variant: small-caps;\n }\n .truncate-l {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n UTILITIES\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n/* Equivalent to .overflow-y-scroll */\n.overflow-container {\n overflow-y: scroll;\n}\n\n.center {\n margin-right: auto;\n margin-left: auto;\n}\n\n.mr-auto { margin-right: auto; }\n.ml-auto { margin-left: auto; }\n\n@media #{$breakpoint-not-small}{\n .center-ns {\n margin-right: auto;\n margin-left: auto;\n }\n .mr-auto-ns { margin-right: auto; }\n .ml-auto-ns { margin-left: auto; }\n}\n\n@media #{$breakpoint-medium}{\n .center-m {\n margin-right: auto;\n margin-left: auto;\n }\n .mr-auto-m { margin-right: auto; }\n .ml-auto-m { margin-left: auto; }\n}\n\n@media #{$breakpoint-large}{\n .center-l {\n margin-right: auto;\n margin-left: auto;\n }\n .mr-auto-l { margin-right: auto; }\n .ml-auto-l { margin-left: auto; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n VISIBILITY\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n\n/*\n Text that is hidden but accessible\n Ref: http://snook.ca/archives/html_and_css/hiding-content-for-accessibility\n*/\n\n.clip {\n position: fixed !important;\n _position: absolute !important;\n clip: rect(1px 1px 1px 1px); /* IE6, IE7 */\n clip: rect(1px, 1px, 1px, 1px);\n}\n\n@media #{$breakpoint-not-small} {\n .clip-ns {\n position: fixed !important;\n _position: absolute !important;\n clip: rect(1px 1px 1px 1px); /* IE6, IE7 */\n clip: rect(1px, 1px, 1px, 1px);\n }\n}\n\n@media #{$breakpoint-medium} {\n .clip-m {\n position: fixed !important;\n _position: absolute !important;\n clip: rect(1px 1px 1px 1px); /* IE6, IE7 */\n clip: rect(1px, 1px, 1px, 1px);\n }\n}\n\n@media #{$breakpoint-large} {\n .clip-l {\n position: fixed !important;\n _position: absolute !important;\n clip: rect(1px 1px 1px 1px); /* IE6, IE7 */\n clip: rect(1px, 1px, 1px, 1px);\n }\n}\n\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n WHITE SPACE\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n\n.ws-normal { white-space: normal; }\n.nowrap { white-space: nowrap; }\n.pre { white-space: pre; }\n\n@media #{$breakpoint-not-small} {\n .ws-normal-ns { white-space: normal; }\n .nowrap-ns { white-space: nowrap; }\n .pre-ns { white-space: pre; }\n}\n\n@media #{$breakpoint-medium} {\n .ws-normal-m { white-space: normal; }\n .nowrap-m { white-space: nowrap; }\n .pre-m { white-space: pre; }\n}\n\n@media #{$breakpoint-large} {\n .ws-normal-l { white-space: normal; }\n .nowrap-l { white-space: nowrap; }\n .pre-l { white-space: pre; }\n}\n\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n VERTICAL ALIGN\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n.v-base { vertical-align: baseline; }\n.v-mid { vertical-align: middle; }\n.v-top { vertical-align: top; }\n.v-btm { vertical-align: bottom; }\n\n@media #{$breakpoint-not-small} {\n .v-base-ns { vertical-align: baseline; }\n .v-mid-ns { vertical-align: middle; }\n .v-top-ns { vertical-align: top; }\n .v-btm-ns { vertical-align: bottom; }\n}\n\n@media #{$breakpoint-medium} {\n .v-base-m { vertical-align: baseline; }\n .v-mid-m { vertical-align: middle; }\n .v-top-m { vertical-align: top; }\n .v-btm-m { vertical-align: bottom; }\n}\n\n@media #{$breakpoint-large} {\n .v-base-l { vertical-align: baseline; }\n .v-mid-l { vertical-align: middle; }\n .v-top-l { vertical-align: top; }\n .v-btm-l { vertical-align: bottom; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n HOVER EFFECTS\n Docs: http://tachyons.io/docs/themes/hovers/\n\n - Dim\n - Glow\n - Hide Child\n - Underline text\n - Grow\n - Pointer\n - Shadow\n\n*/\n\n/*\n\n Dim element on hover by adding the dim class.\n\n*/\n.dim {\n opacity: 1;\n transition: opacity .15s ease-in;\n}\n.dim:hover,\n.dim:focus {\n opacity: .5;\n transition: opacity .15s ease-in;\n}\n.dim:active {\n opacity: .8; transition: opacity .15s ease-out;\n}\n\n/*\n\n Animate opacity to 100% on hover by adding the glow class.\n\n*/\n.glow {\n transition: opacity .15s ease-in;\n}\n.glow:hover,\n.glow:focus {\n opacity: 1;\n transition: opacity .15s ease-in;\n}\n\n/*\n\n Hide child & reveal on hover:\n\n Put the hide-child class on a parent element and any nested element with the\n child class will be hidden and displayed on hover or focus.\n\n
\n
Hidden until hover or focus
\n
Hidden until hover or focus
\n
Hidden until hover or focus
\n
Hidden until hover or focus
\n
\n*/\n\n.hide-child .child {\n opacity: 0;\n transition: opacity .15s ease-in;\n}\n.hide-child:hover .child,\n.hide-child:focus .child,\n.hide-child:active .child {\n opacity: 1;\n transition: opacity .15s ease-in;\n}\n\n.underline-hover:hover,\n.underline-hover:focus {\n text-decoration: underline;\n}\n\n/* Can combine this with overflow-hidden to make background images grow on hover\n * even if you are using background-size: cover */\n\n.grow {\n -moz-osx-font-smoothing: grayscale;\n backface-visibility: hidden;\n transform: translateZ(0);\n transition: transform 0.25s ease-out;\n}\n\n.grow:hover,\n.grow:focus {\n transform: scale(1.05);\n}\n\n.grow:active {\n transform: scale(.90);\n}\n\n.grow-large {\n -moz-osx-font-smoothing: grayscale;\n backface-visibility: hidden;\n transform: translateZ(0);\n transition: transform .25s ease-in-out;\n}\n\n.grow-large:hover,\n.grow-large:focus {\n transform: scale(1.2);\n}\n\n.grow-large:active {\n transform: scale(.95);\n}\n\n/* Add pointer on hover */\n\n.pointer:hover {\n cursor: pointer;\n}\n\n/*\n Add shadow on hover.\n\n Performant box-shadow animation pattern from\n http://tobiasahlin.com/blog/how-to-animate-box-shadow/\n*/\n\n.shadow-hover {\n cursor: pointer;\n position: relative;\n transition: all 0.5s cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n.shadow-hover::after {\n content: '';\n box-shadow: 0px 0px 16px 2px rgba( 0, 0, 0, .2 );\n border-radius: inherit;\n opacity: 0;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: -1;\n transition: opacity 0.5s cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n.shadow-hover:hover::after,\n.shadow-hover:focus::after {\n opacity: 1;\n}\n\n/* Combine with classes in skins and skins-pseudo for\n * many different transition possibilities. */\n\n.bg-animate,\n.bg-animate:hover,\n.bg-animate:focus {\n transition: background-color .15s ease-in-out;\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n Z-INDEX\n\n Base\n z = z-index\n\n Modifiers\n -0 = literal value 0\n -1 = literal value 1\n -2 = literal value 2\n -3 = literal value 3\n -4 = literal value 4\n -5 = literal value 5\n -999 = literal value 999\n -9999 = literal value 9999\n\n -max = largest accepted z-index value as integer\n\n -inherit = string value inherit\n -initial = string value initial\n -unset = string value unset\n\n MDN: https://developer.mozilla.org/en/docs/Web/CSS/z-index\n Spec: http://www.w3.org/TR/CSS2/zindex.html\n Articles:\n https://philipwalton.com/articles/what-no-one-told-you-about-z-index/\n\n Tips on extending:\n There might be a time worth using negative z-index values.\n Or if you are using tachyons with another project, you might need to\n adjust these values to suit your needs.\n\n*/\n\n.z-0 { z-index: 0; }\n.z-1 { z-index: 1; }\n.z-2 { z-index: 2; }\n.z-3 { z-index: 3; }\n.z-4 { z-index: 4; }\n.z-5 { z-index: 5; }\n\n.z-999 { z-index: 999; }\n.z-9999 { z-index: 9999; }\n\n.z-max {\n z-index: 2147483647;\n}\n\n.z-inherit { z-index: inherit; }\n.z-initial { z-index: initial; }\n.z-unset { z-index: unset; }\n\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n NESTED\n Tachyons module for styling nested elements\n that are generated by a cms.\n\n*/\n\n.nested-copy-line-height p,\n.nested-copy-line-height ul,\n.nested-copy-line-height ol {\n line-height: $line-height-copy;\n}\n\n.nested-headline-line-height h1,\n.nested-headline-line-height h2,\n.nested-headline-line-height h3,\n.nested-headline-line-height h4,\n.nested-headline-line-height h5,\n.nested-headline-line-height h6 {\n line-height: $line-height-title;\n}\n\n.nested-list-reset ul,\n.nested-list-reset ol {\n padding-left: 0;\n margin-left: 0;\n list-style-type: none;\n}\n\n.nested-copy-indent p+p {\n text-indent: $letter-spacing-1;\n margin-top: $spacing-none;\n margin-bottom: $spacing-none;\n}\n\n.nested-copy-seperator p+p {\n margin-top: $spacing-copy-separator;\n}\n\n.nested-img img {\n width: 100%;\n max-width: 100%;\n display: block;\n}\n\n.nested-links a {\n color: $blue;\n transition: color .15s ease-in;\n}\n\n.nested-links a:hover,\n.nested-links a:focus {\n color: $light-blue;\n transition: color .15s ease-in;\n}\n",".wrapper\n{\n width: 100%;\n max-width: 1460px;\n margin: 0 auto;\n padding: 0 20px;\n box-sizing: border-box;\n}\n\n.opblock-tag-section\n{\n display: flex;\n flex-direction: column;\n}\n\n.try-out.btn-group {\n padding: 0;\n}\n\n.opblock-tag\n{\n display: flex;\n align-items: center;\n\n padding: 10px 20px 10px 10px;\n\n cursor: pointer;\n transition: all .2s;\n\n border-bottom: 1px solid rgba($opblock-tag-border-bottom-color, .3);\n\n &:hover\n {\n background: rgba($opblock-tag-background-color-hover,.02);\n }\n}\n\n@mixin method($color)\n{\n border-color: $color;\n background: rgba($color, .1);\n\n .opblock-summary-method\n {\n background: $color;\n }\n\n .opblock-summary\n {\n border-color: $color;\n }\n\n .tab-header .tab-item.active h4 span:after\n {\n background: $color;\n }\n}\n\n\n\n\n.opblock-tag\n{\n font-size: 24px;\n\n margin: 0 0 5px 0;\n\n @include text_headline();\n\n &.no-desc\n {\n span\n {\n flex: 1;\n }\n }\n\n svg\n {\n transition: all .4s;\n }\n\n small\n {\n font-size: 14px;\n font-weight: normal;\n\n flex: 1;\n\n padding: 0 10px;\n\n @include text_body();\n }\n}\n\n.parameter__type\n{\n font-size: 12px;\n\n padding: 5px 0;\n\n @include text_code();\n}\n\n.parameter-controls {\n margin-top: 0.75em;\n}\n\n.examples {\n &__title {\n display: block;\n font-size: 1.1em;\n font-weight: bold;\n margin-bottom: 0.75em;\n }\n\n &__section {\n margin-top: 1.5em;\n }\n &__section-header {\n font-weight: bold;\n font-size: .9rem;\n margin-bottom: .5rem;\n // color: #555;\n }\n}\n\n.examples-select {\n margin-bottom: .75em;\n display: inline-block;\n .examples-select-element {\n width: 100%;\n }\n &__section-label {\n font-weight: bold;\n font-size: .9rem;\n margin-right: .5rem;\n }\n}\n\n.example {\n &__section {\n margin-top: 1.5em;\n }\n &__section-header {\n font-weight: bold;\n font-size: .9rem;\n margin-bottom: .5rem;\n // color: #555;\n }\n}\n\n.view-line-link\n{\n position: relative;\n top: 3px;\n\n width: 20px;\n margin: 0 5px;\n\n cursor: pointer;\n transition: all .5s;\n}\n\n\n\n.opblock\n{\n margin: 0 0 15px 0;\n\n border: 1px solid $opblock-border-color;\n border-radius: 4px;\n box-shadow: 0 0 3px rgba($opblock-box-shadow-color,.19);\n\n .tab-header\n {\n display: flex;\n\n flex: 1;\n\n .tab-item\n {\n padding: 0 40px;\n\n cursor: pointer;\n\n &:first-of-type\n {\n padding: 0 40px 0 0;\n }\n &.active\n {\n h4\n {\n span\n {\n position: relative;\n\n\n &:after\n {\n position: absolute;\n bottom: -15px;\n left: 50%;\n\n width: 120%;\n height: 4px;\n\n content: '';\n transform: translateX(-50%);\n\n background: $opblock-tab-header-tab-item-active-h4-span-after-background-color;\n }\n }\n }\n }\n }\n }\n\n\n &.is-open\n {\n .opblock-summary\n {\n border-bottom: 1px solid $opblock-isopen-summary-border-bottom-color;\n }\n }\n\n .opblock-section-header\n {\n display: flex;\n align-items: center;\n\n padding: 8px 20px;\n\n min-height: 50px;\n\n background: rgba($opblock-isopen-section-header-background-color,.8);\n box-shadow: 0 1px 2px rgba($opblock-isopen-section-header-box-shadow-color,.1);\n\n >label\n {\n font-size: 12px;\n font-weight: bold;\n\n display: flex;\n align-items: center;\n\n margin: 0;\n margin-left: auto;\n\n @include text_headline();\n\n >span\n {\n padding: 0 10px 0 0;\n }\n }\n\n h4\n {\n font-size: 14px;\n\n flex: 1;\n\n margin: 0;\n\n @include text_headline();\n }\n }\n\n .opblock-summary-method\n {\n font-size: 14px;\n font-weight: bold;\n\n min-width: 80px;\n padding: 6px 15px;\n\n text-align: center;\n\n border-radius: 3px;\n background: $opblock-summary-method-background-color;\n text-shadow: 0 1px 0 rgba($opblock-summary-method-text-shadow-color,.1);\n\n @include text_headline($opblock-summary-method-font-color);\n }\n\n .opblock-summary-path,\n .opblock-summary-operation-id,\n .opblock-summary-path__deprecated\n {\n font-size: 16px;\n @media (max-width: 768px) {\n font-size: 12px;\n }\n\n\n display: flex;\n align-items: center;\n\n word-break: break-word;\n\n padding: 0 10px;\n\n @include text_code();\n\n }\n\n .opblock-summary-path\n {\n flex-shrink: 0;\n max-width: calc(100% - 110px - 15rem);\n }\n\n .opblock-summary-path__deprecated\n {\n text-decoration: line-through;\n }\n\n .opblock-summary-operation-id\n {\n font-size: 14px;\n }\n\n .opblock-summary-description\n {\n font-size: 13px;\n\n flex: 1 1 auto;\n\n word-break: break-word;\n\n @include text_body();\n }\n\n .opblock-summary\n {\n display: flex;\n align-items: center;\n\n padding: 5px;\n\n cursor: pointer;\n\n .view-line-link\n {\n position: relative;\n top: 2px;\n\n width: 0;\n margin: 0;\n\n cursor: pointer;\n transition: all .5s;\n }\n\n &:hover\n {\n .view-line-link\n {\n width: 18px;\n margin: 0 5px;\n }\n }\n }\n\n\n\n &.opblock-post\n {\n @include method($_color-post);\n }\n\n &.opblock-put\n {\n @include method($_color-put);\n }\n\n &.opblock-delete\n {\n @include method($_color-delete);\n }\n\n &.opblock-get\n {\n @include method($_color-get);\n }\n\n &.opblock-patch\n {\n @include method($_color-patch);\n }\n\n &.opblock-head\n {\n @include method($_color-head);\n }\n\n &.opblock-options\n {\n @include method($_color-options);\n }\n\n &.opblock-deprecated\n {\n opacity: .6;\n\n @include method($_color-disabled);\n }\n\n .opblock-schemes\n {\n padding: 8px 20px;\n\n .schemes-title\n {\n padding: 0 10px 0 0;\n }\n }\n}\n\n.filter\n{\n .operation-filter-input\n {\n width: 100%;\n margin: 20px 0;\n padding: 10px 10px;\n\n border: 2px solid $operational-filter-input-border-color;\n }\n}\n\n.filter, .download-url-wrapper\n{\n .failed\n {\n color: red;\n }\n\n .loading\n {\n color: #aaa;\n }\n}\n\n.model-example {\n margin-top: 1em;\n}\n\n.tab\n{\n display: flex;\n\n padding: 0;\n\n list-style: none;\n\n li\n {\n font-size: 12px;\n\n min-width: 60px;\n padding: 0;\n\n cursor: pointer;\n\n @include text_headline();\n\n &:first-of-type\n {\n position: relative;\n\n padding-left: 0;\n padding-right: 12px;\n\n &:after\n {\n position: absolute;\n top: 0;\n right: 6px;\n\n width: 1px;\n height: 100%;\n\n content: '';\n\n background: rgba($tab-list-item-first-background-color,.2);\n }\n }\n\n &.active\n {\n font-weight: bold;\n }\n }\n}\n\n.opblock-description-wrapper,\n.opblock-external-docs-wrapper,\n.opblock-title_normal\n{\n font-size: 12px;\n\n margin: 0 0 5px 0;\n padding: 15px 20px;\n\n @include text_body();\n\n h4\n {\n font-size: 12px;\n\n margin: 0 0 5px 0;\n\n @include text_body();\n }\n\n p\n {\n font-size: 14px;\n\n margin: 0;\n\n @include text_body();\n }\n}\n\n.opblock-external-docs-wrapper {\n h4 {\n padding-left: 0px;\n }\n}\n\n.execute-wrapper\n{\n padding: 20px;\n\n text-align: right;\n\n .btn\n {\n width: 100%;\n padding: 8px 40px;\n }\n}\n\n.body-param-options\n{\n display: flex;\n flex-direction: column;\n\n .body-param-edit\n {\n padding: 10px 0;\n }\n\n label\n {\n padding: 8px 0;\n select\n {\n margin: 3px 0 0 0;\n }\n }\n}\n\n.responses-inner\n{\n padding: 20px;\n\n h5,\n h4\n {\n font-size: 12px;\n\n margin: 10px 0 5px 0;\n\n @include text_body();\n }\n\n .curl\n {\n white-space: normal;\n }\n}\n\n.response-col_status\n{\n font-size: 14px;\n\n @include text_body();\n\n .response-undocumented\n {\n font-size: 11px;\n\n @include text_code($response-col-status-undocumented-font-color);\n }\n}\n\n.response-col_links\n{\n padding-left: 2em;\n max-width: 40em;\n font-size: 14px;\n\n @include text_body();\n\n .response-undocumented\n {\n font-size: 11px;\n\n @include text_code($response-col-links-font-color);\n }\n\n .operation-link\n {\n margin-bottom: 1.5em;\n\n .description\n {\n margin-bottom: 0.5em;\n }\n }\n}\n\n.opblock-body\n{\n .opblock-loading-animation\n {\n display: block;\n margin: 3em;\n margin-left: auto;\n margin-right: auto;\n }\n}\n\n.opblock-body pre.microlight\n{\n font-size: 12px;\n\n margin: 0;\n padding: 10px;\n\n white-space: pre-wrap;\n word-wrap: break-word;\n word-break: break-all;\n word-break: break-word;\n hyphens: auto;\n\n border-radius: 4px;\n background: $opblock-body-background-color;\n\n overflow-wrap: break-word;\n @include text_code($opblock-body-font-color);\n\n // disabled to have syntax highliting with react-syntax-highlight\n // span\n // {\n // color: $opblock-body-font-color !important;\n // }\n\n .headerline\n {\n display: block;\n }\n}\n\n.highlight-code {\n position: relative;\n\n > .microlight {\n overflow-y: auto;\n max-height: 400px;\n min-height: 6em;\n\n code {\n white-space: pre-wrap !important;\n word-break: break-all;\n }\n }\n}\n.curl-command {\n position: relative;\n}\n\n.download-contents {\n position: absolute;\n bottom: 10px;\n right: 10px;\n cursor: pointer;\n background: #7d8293;\n text-align: center;\n padding: 5px;\n border-radius: 4px;\n font-family: sans-serif;\n font-weight: 600;\n color: white;\n font-size: 14px;\n height: 30px;\n}\n\n.scheme-container\n{\n margin: 0 0 20px 0;\n padding: 30px 0;\n\n background: $scheme-container-background-color;\n box-shadow: 0 1px 2px 0 rgba($scheme-container-box-shadow-color,.15);\n\n .schemes\n {\n display: flex;\n align-items: flex-end;\n\n > label\n {\n font-size: 12px;\n font-weight: bold;\n\n display: flex;\n flex-direction: column;\n\n margin: -20px 15px 0 0;\n\n @include text_headline();\n\n select\n {\n min-width: 130px;\n\n text-transform: uppercase;\n }\n }\n }\n}\n\n.loading-container\n{\n padding: 40px 0 60px;\n margin-top: 1em;\n min-height: 1px;\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n\n .loading\n {\n position: relative;\n\n\n &:after\n {\n font-size: 10px;\n font-weight: bold;\n\n position: absolute;\n top: 50%;\n left: 50%;\n\n content: 'loading';\n transform: translate(-50%,-50%);\n text-transform: uppercase;\n\n @include text_headline();\n }\n\n &:before\n {\n position: absolute;\n top: 50%;\n left: 50%;\n\n display: block;\n\n width: 60px;\n height: 60px;\n margin: -30px -30px;\n\n content: '';\n animation: rotation 1s infinite linear, opacity .5s;\n\n opacity: 1;\n border: 2px solid rgba($loading-container-before-border-color, .1);\n border-top-color: rgba($loading-container-before-border-top-color, .6);\n border-radius: 100%;\n\n backface-visibility: hidden;\n\n @keyframes rotation\n {\n to\n {\n transform: rotate(360deg);\n }\n }\n }\n }\n}\n\n.response-controls {\n padding-top: 1em;\n display: flex;\n}\n\n.response-control-media-type {\n margin-right: 1em;\n\n &--accept-controller {\n select {\n border-color: $response-content-type-controls-accept-header-select-border-color;\n }\n }\n\n &__accept-message {\n color: $response-content-type-controls-accept-header-small-font-color;\n font-size: .7em;\n }\n\n &__title {\n display: block;\n margin-bottom: 0.2em;\n font-size: .7em;\n }\n}\n\n.response-control-examples {\n &__title {\n display: block;\n margin-bottom: 0.2em;\n font-size: .7em;\n }\n}\n\n@keyframes blinker\n{\n 50%\n {\n opacity: 0;\n }\n}\n\n.hidden\n{\n display: none;\n}\n\n.no-margin\n{\n height: auto;\n border: none;\n margin: 0;\n padding: 0;\n}\n\n.float-right\n{\n float: right;\n}\n\nimg.full-width\n{\n width: 100%;\n}\n\n.svg-assets\n{\n position: absolute;\n width: 0;\n height: 0;\n}\n\nsection\n{\n h3\n {\n @include text_headline();\n }\n}\n\na.nostyle {\n text-decoration: inherit;\n color: inherit;\n cursor: pointer;\n display: inline;\n\n &:visited {\n text-decoration: inherit;\n color: inherit;\n cursor: pointer;\n }\n}\n\n.fallback\n{\n padding: 1em;\n color: #aaa;\n}\n\n.version-pragma {\n height: 100%;\n padding: 5em 0px;\n\n &__message {\n display: flex;\n justify-content: center;\n height: 100%;\n font-size: 1.2em;\n text-align: center;\n line-height: 1.5em;\n\n padding: 0px .6em;\n\n > div {\n max-width: 55ch;\n flex: 1;\n }\n\n code {\n background-color: #dedede;\n padding: 4px 4px 2px;\n white-space: pre;\n }\n }\n}\n\n.opblock-link\n{\n font-weight: normal;\n\n &.shown\n {\n font-weight: bold;\n }\n}\n\nspan\n{\n &.token-string\n {\n color: #555;\n }\n\n &.token-not-formatted\n {\n color: #555;\n font-weight: bold;\n }\n}\n",".btn\n{\n font-size: 14px;\n font-weight: bold;\n\n padding: 5px 23px;\n\n transition: all .3s;\n\n border: 2px solid $btn-border-color;\n border-radius: 4px;\n background: transparent;\n box-shadow: 0 1px 2px rgba($btn-box-shadow-color,.1);\n\n @include text_headline();\n\n &.btn-sm\n {\n font-size: 12px;\n padding: 4px 23px;\n }\n\n &[disabled]\n {\n cursor: not-allowed;\n\n opacity: .3;\n }\n\n &:hover\n {\n box-shadow: 0 0 5px rgba($btn-box-shadow-color,.3);\n }\n\n &.cancel\n {\n border-color: $btn-cancel-border-color;\n background-color: $btn-cancel-background-color;\n @include text_headline($btn-cancel-font-color);\n }\n\n &.authorize\n {\n line-height: 1;\n\n display: inline;\n\n color: $btn-authorize-font-color;\n border-color: $btn-authorize-border-color;\n background-color: $btn-authorize-background-color;\n\n span\n {\n float: left;\n\n padding: 4px 20px 0 0;\n }\n\n svg\n {\n fill: $btn-authorize-svg-fill-color;\n }\n }\n\n &.execute\n {\n background-color: $btn-execute-background-color-alt;\n color: $btn-execute-font-color;\n border-color: $btn-execute-border-color;\n }\n}\n\n.btn-group\n{\n display: flex;\n\n padding: 30px;\n\n .btn\n {\n flex: 1;\n\n &:first-child\n {\n border-radius: 4px 0 0 4px;\n }\n\n &:last-child\n {\n border-radius: 0 4px 4px 0;\n }\n }\n}\n\n.authorization__btn\n{\n padding: 0 10px;\n\n border: none;\n background: none;\n\n &.locked\n {\n opacity: 1;\n }\n\n &.unlocked\n {\n opacity: .4;\n }\n}\n\n.opblock-summary-control,\n.models-control,\n.model-box-control\n{\n all: inherit;\n flex: 1;\n border-bottom: 0;\n padding: 0;\n cursor: pointer;\n\n &:focus {\n outline: auto;\n }\n}\n\n.expand-methods,\n.expand-operation\n{\n border: none;\n background: none;\n\n svg\n {\n width: 20px;\n height: 20px;\n }\n}\n\n.expand-methods\n{\n padding: 0 10px;\n\n &:hover\n {\n svg\n {\n fill: $expand-methods-svg-fill-color-hover;\n }\n }\n\n svg\n {\n transition: all .3s;\n\n fill: $expand-methods-svg-fill-color;\n }\n}\n\nbutton\n{\n cursor: pointer;\n\n &.invalid\n {\n @include invalidFormElement();\n }\n}\n\n.copy-to-clipboard\n{\n position: absolute;\n bottom: 10px;\n right: 100px;\n width: 30px;\n height: 30px;\n background: #7d8293;\n border-radius: 4px;\n border: none;\n\n button\n {\n padding-left: 25px;\n border: none;\n height: 25px;\n background: url(\"data:image/svg+xml, \") center center no-repeat;\n }\n}\n\n// overrides for smaller copy button for curl command\n.curl-command .copy-to-clipboard\n{\n bottom: 5px;\n right: 10px;\n width: 20px;\n height: 20px;\n button\n {\n padding-left: 18px;\n height: 18px\n }\n}\n","// - - - - - - - - - - - - - - - - - - -\n// - - _mixins.scss module\n// styles for the _mixins.scss module\n@function calculateRem($size)\n{\n $remSize: $size / 16px;\n @return $remSize * 1rem;\n}\n\n@mixin font-size($size)\n{\n font-size: $size;\n font-size: calculateRem($size);\n}\n\n%clearfix\n{\n *zoom: 1;\n &:before,\n &:after\n {\n display: table;\n\n content: ' ';\n }\n &:after\n {\n clear: both;\n }\n}\n\n@mixin size($width, $height: $width)\n{\n width: $width;\n height: $height;\n}\n\n$ease: (\n in-quad: cubic-bezier(.550, .085, .680, .530),\n in-cubic: cubic-bezier(.550, .055, .675, .190),\n in-quart: cubic-bezier(.895, .030, .685, .220),\n in-quint: cubic-bezier(.755, .050, .855, .060),\n in-sine: cubic-bezier(.470, .000, .745, .715),\n in-expo: cubic-bezier(.950, .050, .795, .035),\n in-circ: cubic-bezier(.600, .040, .980, .335),\n in-back: cubic-bezier(.600, -.280, .735, .045),\n out-quad: cubic-bezier(.250, .460, .450, .940),\n out-cubic: cubic-bezier(.215, .610, .355, 1.000),\n out-quart: cubic-bezier(.165, .840, .440, 1.000),\n out-quint: cubic-bezier(.230, 1.000, .320, 1.000),\n out-sine: cubic-bezier(.390, .575, .565, 1.000),\n out-expo: cubic-bezier(.190, 1.000, .220, 1.000),\n out-circ: cubic-bezier(.075, .820, .165, 1.000),\n out-back: cubic-bezier(.175, .885, .320, 1.275),\n in-out-quad: cubic-bezier(.455, .030, .515, .955),\n in-out-cubic: cubic-bezier(.645, .045, .355, 1.000),\n in-out-quart: cubic-bezier(.770, .000, .175, 1.000),\n in-out-quint: cubic-bezier(.860, .000, .070, 1.000),\n in-out-sine: cubic-bezier(.445, .050, .550, .950),\n in-out-expo: cubic-bezier(1.000, .000, .000, 1.000),\n in-out-circ: cubic-bezier(.785, .135, .150, .860),\n in-out-back: cubic-bezier(.680, -.550, .265, 1.550)\n);\n\n@function ease($key)\n{\n @if map-has-key($ease, $key)\n {\n @return map-get($ease, $key);\n }\n\n @warn 'Unkown \\'#{$key}\\' in $ease.';\n @return null;\n}\n\n\n@mixin ease($key)\n{\n transition-timing-function: ease($key);\n}\n\n@mixin text-truncate\n{\n overflow: hidden;\n\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n@mixin aspect-ratio($width, $height)\n{\n position: relative;\n &:before\n {\n display: block;\n\n width: 100%;\n padding-top: ($height / $width) * 100%;\n\n content: '';\n }\n > iframe\n {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n }\n}\n\n$browser-context: 16;\n\n@function em($pixels, $context: $browser-context)\n{\n @if (unitless($pixels))\n {\n $pixels: $pixels * 1px;\n }\n\n @if (unitless($context))\n {\n $context: $context * 1px;\n }\n\n @return $pixels / $context * 1em;\n}\n\n@mixin maxHeight($height)\n{\n @media (max-height: $height)\n {\n @content;\n }\n}\n\n\n@mixin breakpoint($class)\n{\n @if $class == tablet\n {\n @media (min-width: 768px) and (max-width: 1024px)\n {\n @content;\n }\n }\n\n @else if $class == mobile\n {\n @media (min-width: 320px) and (max-width : 736px)\n {\n @content;\n }\n }\n\n @else if $class == desktop\n {\n @media (min-width: 1400px)\n {\n @content;\n }\n }\n\n @else\n {\n @warn 'Breakpoint mixin supports: tablet, mobile, desktop';\n }\n}\n\n@mixin invalidFormElement() {\n animation: shake .4s 1;\n border-color: $_color-delete;\n background: lighten($_color-delete, 35%);\n}\n","select\n{\n font-size: 14px;\n font-weight: bold;\n\n padding: 5px 40px 5px 10px;\n\n border: 2px solid $form-select-border-color;\n border-radius: 4px;\n background: $form-select-background-color url('data:image/svg+xml, ') right 10px center no-repeat;\n background-size: 20px;\n box-shadow: 0 1px 2px 0 rgba($form-select-box-shadow-color, .25);\n\n @include text_headline();\n appearance: none;\n\n &[multiple]\n {\n margin: 5px 0;\n padding: 5px;\n\n background: $form-select-background-color;\n }\n\n &.invalid {\n @include invalidFormElement();\n }\n}\n\n.opblock-body select\n{\n min-width: 230px;\n @media (max-width: 768px)\n {\n min-width: 180px;\n }\n}\n\nlabel\n{\n font-size: 12px;\n font-weight: bold;\n\n margin: 0 0 5px 0;\n\n @include text_headline();\n}\n\ninput[type=text],\ninput[type=password],\ninput[type=search],\ninput[type=email],\ninput[type=file]\n{\n @media (max-width: 768px) {\n max-width: 175px;\n }\n}\n\n\ninput[type=text],\ninput[type=password],\ninput[type=search],\ninput[type=email],\ninput[type=file],\ntextarea\n{\n min-width: 100px;\n margin: 5px 0;\n padding: 8px 10px;\n\n border: 1px solid $form-input-border-color;\n border-radius: 4px;\n background: $form-input-background-color;\n\n\n &.invalid\n {\n @include invalidFormElement();\n }\n\n}\n\ninput,\ntextarea,\nselect {\n &[disabled] {\n // opacity: 0.85;\n background-color: #fafafa;\n color: #888;\n cursor: not-allowed;\n }\n}\n\nselect[disabled] {\n border-color: #888;\n}\n\ntextarea[disabled] {\n background-color: #41444e;\n color: #fff;\n}\n\n@keyframes shake\n{\n 10%,\n 90%\n {\n transform: translate3d(-1px, 0, 0);\n }\n\n 20%,\n 80%\n {\n transform: translate3d(2px, 0, 0);\n }\n\n 30%,\n 50%,\n 70%\n {\n transform: translate3d(-4px, 0, 0);\n }\n\n 40%,\n 60%\n {\n transform: translate3d(4px, 0, 0);\n }\n}\n\ntextarea\n{\n font-size: 12px;\n\n width: 100%;\n min-height: 280px;\n padding: 10px;\n\n border: none;\n border-radius: 4px;\n outline: none;\n background: rgba($form-textarea-background-color,.8);\n\n @include text_code();\n\n &:focus\n {\n border: 2px solid $form-textarea-focus-border-color;\n }\n\n &.curl\n {\n font-size: 12px;\n\n min-height: 100px;\n margin: 0;\n padding: 10px;\n\n resize: none;\n\n border-radius: 4px;\n background: $form-textarea-curl-background-color;\n\n @include text_code($form-textarea-curl-font-color);\n }\n}\n\n\n.checkbox\n{\n padding: 5px 0 10px;\n\n transition: opacity .5s;\n\n color: $form-checkbox-label-font-color;\n\n label\n {\n display: flex;\n }\n\n p\n {\n font-weight: normal !important;\n font-style: italic;\n\n margin: 0 !important;\n\n @include text_code();\n }\n\n input[type=checkbox]\n {\n display: none;\n\n & + label > .item\n {\n position: relative;\n top: 3px;\n\n display: inline-block;\n\n width: 16px;\n height: 16px;\n margin: 0 8px 0 0;\n padding: 5px;\n\n cursor: pointer;\n\n border-radius: 1px;\n background: $form-checkbox-background-color;\n box-shadow: 0 0 0 2px $form-checkbox-box-shadow-color;\n\n flex: none;\n\n &:active\n {\n transform: scale(.9);\n }\n }\n\n &:checked + label > .item\n {\n background: $form-checkbox-background-color url('data:image/svg+xml, ') center center no-repeat;\n }\n }\n}\n",".dialog-ux\n{\n position: fixed;\n z-index: 9999;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n\n .backdrop-ux\n {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n\n background: rgba($dialog-ux-backdrop-background-color,.8);\n }\n\n .modal-ux\n {\n position: absolute;\n z-index: 9999;\n top: 50%;\n left: 50%;\n\n width: 100%;\n min-width: 300px;\n max-width: 650px;\n\n transform: translate(-50%,-50%);\n\n border: 1px solid $dialog-ux-modal-border-color;\n border-radius: 4px;\n background: $dialog-ux-modal-background-color;\n box-shadow: 0 10px 30px 0 rgba($dialog-ux-modal-box-shadow-color,.20);\n }\n\n .modal-ux-content\n {\n overflow-y: auto;\n\n max-height: 540px;\n padding: 20px;\n\n p\n {\n font-size: 12px;\n\n margin: 0 0 5px 0;\n\n color: $dialog-ux-modal-content-font-color;\n\n @include text_body();\n }\n\n h4\n {\n font-size: 18px;\n font-weight: 600;\n\n margin: 15px 0 0 0;\n\n @include text_headline();\n }\n }\n\n .modal-ux-header\n {\n display: flex;\n\n padding: 12px 0;\n\n border-bottom: 1px solid $dialog-ux-modal-header-border-bottom-color;\n\n align-items: center;\n\n .close-modal\n {\n padding: 0 10px;\n\n border: none;\n background: none;\n\n appearance: none;\n }\n\n\n h3\n {\n font-size: 20px;\n font-weight: 600;\n\n margin: 0;\n padding: 0 20px;\n\n flex: 1;\n @include text_headline();\n }\n }\n}\n",".model\n{\n font-size: 12px;\n font-weight: 300;\n\n @include text_code();\n\n .deprecated\n {\n span,\n td\n {\n color: $model-deprecated-font-color !important;\n }\n\n > td:first-of-type {\n text-decoration: line-through;\n }\n }\n &-toggle\n {\n font-size: 10px;\n\n position: relative;\n top: 6px;\n\n display: inline-block;\n\n margin: auto .3em;\n\n cursor: pointer;\n transition: transform .15s ease-in;\n transform: rotate(90deg);\n transform-origin: 50% 50%;\n\n &.collapsed\n {\n transform: rotate(0deg);\n }\n\n &:after\n {\n display: block;\n\n width: 20px;\n height: 20px;\n\n content: '';\n\n background: url('data:image/svg+xml, ') center no-repeat;\n background-size: 100%;\n }\n }\n\n &-jump-to-path\n {\n position: relative;\n\n cursor: pointer;\n\n .view-line-link\n {\n position: absolute;\n top: -.4em;\n\n cursor: pointer;\n }\n }\n\n &-title\n {\n position: relative;\n\n &:hover .model-hint\n {\n visibility: visible;\n }\n }\n\n &-hint\n {\n position: absolute;\n top: -1.8em;\n\n visibility: hidden;\n\n padding: .1em .5em;\n\n white-space: nowrap;\n\n color: $model-hint-font-color;\n border-radius: 4px;\n background: rgba($model-hint-background-color,.7);\n }\n\n p\n {\n margin: 0 0 1em 0;\n }\n\n .property\n {\n color: #999;\n font-style: italic;\n\n &.primitive\n {\n color: #6b6b6b;\n }\n }\n}\n\ntable.model\n{\n tr\n {\n &.description\n {\n color: #666;\n font-weight: normal;\n \n td:first-child\n {\n font-weight: bold;\n }\n }\n\n &.property-row\n {\n &.required td:first-child\n {\n font-weight: bold;\n }\n\n td\n {\n vertical-align: top;\n\n &:first-child\n {\n padding-right: 0.2em;\n }\n }\n\n .star\n {\n color: red;\n }\n }\n\n &.extension\n {\n color: #777;\n\n td:last-child\n {\n vertical-align: top;\n }\n }\n }\n}\n\nsection.models\n{\n margin: 30px 0;\n\n border: 1px solid rgba($section-models-border-color, .3);\n border-radius: 4px;\n\n .pointer\n {\n cursor: pointer;\n }\n\n &.is-open\n {\n padding: 0 0 20px;\n h4\n {\n margin: 0 0 5px 0;\n\n border-bottom: 1px solid rgba($section-models-isopen-h4-border-bottom-color, .3);\n }\n }\n h4\n {\n font-size: 16px;\n\n display: flex;\n align-items: center;\n\n margin: 0;\n padding: 10px 20px 10px 10px;\n\n cursor: pointer;\n transition: all .2s;\n\n @include text_headline($section-models-h4-font-color);\n\n svg\n {\n transition: all .4s;\n }\n\n span\n {\n flex: 1;\n }\n\n &:hover\n {\n background: rgba($section-models-h4-background-color-hover,.02);\n }\n }\n\n h5\n {\n font-size: 16px;\n\n margin: 0 0 10px 0;\n\n @include text_headline($section-models-h5-font-color);\n }\n\n .model-jump-to-path\n {\n position: relative;\n top: 5px;\n }\n\n .model-container\n {\n margin: 0 20px 15px;\n position: relative;\n\n transition: all .5s;\n\n border-radius: 4px;\n background: rgba($section-models-model-container-background-color,.05);\n\n &:hover\n {\n background: rgba($section-models-model-container-background-color,.07);\n }\n\n &:first-of-type\n {\n margin: 20px;\n }\n\n &:last-of-type\n {\n margin: 0 20px;\n }\n\n .models-jump-to-path {\n position: absolute;\n top: 8px;\n right: 5px;\n opacity: 0.65;\n }\n }\n\n .model-box\n {\n background: none;\n }\n}\n\n\n.model-box\n{\n padding: 10px;\n display: inline-block;\n\n border-radius: 4px;\n background: rgba($section-models-model-box-background-color,.1);\n\n .model-jump-to-path\n {\n position: relative;\n top: 4px;\n }\n\n &.deprecated\n {\n opacity: .5;\n }\n}\n\n\n.model-title\n{\n font-size: 16px;\n\n @include text_headline($section-models-model-title-font-color);\n\n img\n {\n margin-left: 1em;\n position: relative;\n bottom: 0px;\n }\n}\n\n.model-deprecated-warning\n{\n font-size: 16px;\n font-weight: 600;\n\n margin-right: 1em;\n\n @include text_headline($_color-delete);\n}\n\n\nspan\n{\n > span.model\n {\n .brace-close\n {\n padding: 0 0 0 10px;\n }\n }\n}\n\n.prop-name\n{\n display: inline-block;\n\n margin-right: 1em;\n}\n\n.prop-type\n{\n color: $prop-type-font-color;\n}\n\n.prop-enum\n{\n display: block;\n}\n.prop-format\n{\n color: $prop-format-font-color;\n}\n",".servers\n{\n > label\n {\n font-size: 12px;\n\n margin: -20px 15px 0 0;\n\n @include text_headline();\n\n select\n {\n min-width: 130px;\n max-width: 100%;\n }\n }\n\n h4.message {\n padding-bottom: 2em;\n }\n\n table {\n tr {\n width: 30em;\n }\n td {\n display: inline-block;\n max-width: 15em;\n vertical-align: middle;\n padding-top: 10px;\n padding-bottom: 10px;\n\n &:first-of-type {\n padding-right: 1em;\n }\n\n input {\n width: 100%;\n height: 100%;\n }\n }\n }\n\n .computed-url {\n margin: 2em 0;\n\n code {\n display: inline-block;\n padding: 4px;\n font-size: 16px;\n margin: 0 1em;\n }\n }\n}\n\n.servers-title {\n font-size: 12px;\n font-weight: bold;\n}\n\n.operation-servers {\n h4.message {\n margin-bottom: 2em;\n }\n}\n","table\n{\n width: 100%;\n padding: 0 10px;\n\n border-collapse: collapse;\n\n &.model\n {\n tbody\n {\n tr\n {\n td\n {\n padding: 0;\n\n vertical-align: top;\n\n &:first-of-type\n {\n width: 174px;\n padding: 0 0 0 2em;\n }\n }\n }\n }\n }\n\n &.headers\n {\n td\n {\n font-size: 12px;\n font-weight: 300;\n\n vertical-align: middle;\n\n @include text_code();\n }\n\n .header-example \n {\n color: #999; \n font-style: italic;\n }\n }\n\n tbody\n {\n tr\n {\n td\n {\n padding: 10px 0 0 0;\n\n vertical-align: top;\n\n &:first-of-type\n {\n min-width: 6em;\n padding: 10px 0;\n }\n }\n }\n }\n\n thead\n {\n tr\n {\n th,\n td\n {\n font-size: 12px;\n font-weight: bold;\n\n padding: 12px 0;\n\n text-align: left;\n\n border-bottom: 1px solid rgba($table-thead-td-border-bottom-color, .2);\n\n @include text_body();\n }\n }\n }\n}\n\n.parameters-col_description\n{\n width: 99%; // forces other columns to shrink to their content widths\n margin-bottom: 2em;\n input[type=text]\n {\n width: 100%;\n max-width: 340px;\n }\n\n select {\n border-width: 1px;\n }\n}\n\n.parameter__name\n{\n font-size: 16px;\n font-weight: normal;\n\n // hack to give breathing room to the name column\n // TODO: refactor all of this to flexbox\n margin-right: .75em;\n\n @include text_headline();\n\n &.required\n {\n font-weight: bold;\n\n span\n {\n color: red;\n }\n\n &:after\n {\n font-size: 10px;\n\n position: relative;\n top: -6px;\n\n padding: 5px;\n\n content: 'required';\n\n color: rgba($table-parameter-name-required-font-color, .6);\n }\n }\n}\n\n.parameter__in,\n.parameter__extension\n{\n font-size: 12px;\n font-style: italic;\n\n @include text_code($table-parameter-in-font-color);\n}\n\n.parameter__deprecated\n{\n font-size: 12px;\n font-style: italic;\n\n @include text_code($table-parameter-deprecated-font-color);\n}\n\n.parameter__empty_value_toggle {\n display: block;\n font-size: 13px;\n padding-top: 5px;\n padding-bottom: 12px;\n\n input {\n margin-right: 7px;\n }\n\n &.disabled {\n opacity: 0.7;\n }\n}\n\n\n.table-container\n{\n padding: 20px;\n}\n\n\n.response-col_description {\n width: 99%; // forces other columns to shrink to their content widths\n}\n\n.response-col_links {\n min-width: 6em;\n}\n\n.response__extension\n{\n font-size: 12px;\n font-style: italic;\n\n @include text_code($table-parameter-in-font-color);\n}\n",".topbar\n{\n padding: 10px 0;\n\n background-color: $topbar-background-color;\n .topbar-wrapper\n {\n display: flex;\n align-items: center;\n }\n a\n {\n font-size: 1.5em;\n font-weight: bold;\n\n display: flex;\n align-items: center;\n flex: 1;\n\n max-width: 300px;\n\n text-decoration: none;\n\n @include text_headline($topbar-link-font-color);\n\n span\n {\n margin: 0;\n padding: 0 10px;\n }\n }\n\n .download-url-wrapper\n {\n display: flex;\n flex: 3;\n justify-content: flex-end;\n\n input[type=text]\n {\n width: 100%;\n margin: 0;\n\n border: 2px solid $topbar-download-url-wrapper-element-border-color;\n border-radius: 4px 0 0 4px;\n outline: none;\n }\n\n .select-label\n {\n display: flex;\n align-items: center;\n\n width: 100%;\n max-width: 600px;\n margin: 0;\n color: #f0f0f0;\n span\n {\n font-size: 16px;\n\n flex: 1;\n\n padding: 0 10px 0 0;\n\n text-align: right;\n }\n\n select\n {\n flex: 2;\n\n width: 100%;\n\n border: 2px solid $topbar-download-url-wrapper-element-border-color;\n outline: none;\n box-shadow: none;\n }\n }\n\n\n .download-url-button\n {\n font-size: 16px;\n font-weight: bold;\n\n padding: 4px 30px;\n\n border: none;\n border-radius: 0 4px 4px 0;\n background: $topbar-download-url-button-background-color;\n\n @include text_headline($topbar-download-url-button-font-color);\n }\n }\n}\n",".info\n{\n margin: 50px 0;\n\n &.failed-config\n { \n max-width: 880px;\n margin-left: auto;\n margin-right: auto;\n text-align: center\n }\n\n hgroup.main\n {\n margin: 0 0 20px 0;\n a\n {\n font-size: 12px;\n }\n }\n pre \n {\n font-size: 14px;\n }\n p, li, table\n {\n font-size: 14px;\n\n @include text_body();\n }\n\n h1, h2, h3, h4, h5\n {\n @include text_body();\n }\n\n a\n {\n font-size: 14px;\n\n transition: all .4s;\n\n @include text_body($info-link-font-color);\n\n &:hover\n {\n color: darken($info-link-font-color-hover, 15%);\n }\n }\n > div\n {\n margin: 0 0 5px 0;\n }\n\n .base-url\n {\n font-size: 12px;\n font-weight: 300 !important;\n\n margin: 0;\n\n @include text_code();\n }\n\n .title\n {\n font-size: 36px;\n\n margin: 0;\n\n @include text_body();\n\n small\n {\n font-size: 10px;\n\n position: relative;\n top: -5px;\n\n display: inline-block;\n\n margin: 0 0 0 5px;\n padding: 2px 4px;\n\n vertical-align: super;\n\n border-radius: 57px;\n background: $info-title-small-background-color;\n \n &.version-stamp\n {\n background-color: #89bf04;\n }\n\n pre\n {\n margin: 0;\n padding: 0;\n\n @include text_headline($info-title-small-pre-font-color);\n }\n }\n }\n}\n",".auth-btn-wrapper\n{\n display: flex;\n\n padding: 10px 0;\n\n justify-content: center;\n\n .btn-done {\n margin-right: 1em;\n }\n}\n\n.auth-wrapper\n{\n display: flex;\n\n flex: 1;\n justify-content: flex-end;\n\n .authorize\n {\n padding-right: 20px;\n margin-right: 10px;\n }\n}\n\n.auth-container\n{\n margin: 0 0 10px 0;\n padding: 10px 20px;\n\n border-bottom: 1px solid $auth-container-border-color;\n\n &:last-of-type\n {\n margin: 0;\n padding: 10px 20px;\n\n border: 0;\n }\n\n h4\n {\n margin: 5px 0 15px 0 !important;\n }\n\n .wrapper\n {\n margin: 0;\n padding: 0;\n }\n\n input[type=text],\n input[type=password]\n {\n min-width: 230px;\n }\n\n .errors\n {\n font-size: 12px;\n\n padding: 10px;\n\n border-radius: 4px;\n\n background-color: #ffeeee;\n\n color: red;\n \n margin: 1em;\n\n @include text_code();\n\n b\n {\n text-transform: capitalize;\n margin-right: 1em;\n }\n }\n}\n\n.scopes\n{\n h2\n {\n font-size: 14px;\n\n @include text_headline();\n\n a\n {\n font-size: 12px;\n color: $auth-select-all-none-link-font-color;\n cursor: pointer;\n padding-left: 10px;\n text-decoration: underline;\n }\n }\n}\n\n.scope-def\n{\n padding: 0 0 20px 0;\n}\n",".errors-wrapper\n{\n margin: 20px;\n padding: 10px 20px;\n\n animation: scaleUp .5s;\n\n border: 2px solid $_color-delete;\n border-radius: 4px;\n background: rgba($_color-delete, .1);\n\n .error-wrapper\n {\n margin: 0 0 10px 0;\n }\n\n .errors\n {\n h4\n {\n font-size: 14px;\n\n margin: 0;\n\n @include text_code();\n }\n\n small\n {\n color: $errors-wrapper-errors-small-font-color;\n }\n\n .message\n { \n white-space: pre-line;\n \n &.thrown\n {\n max-width: 100%;\n }\n }\n\n .error-line\n {\n text-decoration: underline;\n cursor: pointer;\n }\n }\n\n hgroup\n {\n display: flex;\n\n align-items: center;\n\n h4\n {\n font-size: 20px;\n\n margin: 0;\n\n flex: 1;\n @include text_headline();\n }\n }\n}\n\n\n@keyframes scaleUp\n{\n 0%\n {\n transform: scale(.8);\n\n opacity: 0;\n }\n 100%\n {\n transform: scale(1);\n\n opacity: 1;\n }\n}\n",".Resizer.vertical.disabled {\n display: none;\n}",".markdown, .renderedMarkdown {\n p, pre {\n margin: 1em auto;\n\n word-break: break-all; /* Fallback trick */\n word-break: break-word;\n }\n pre {\n color: black;\n font-weight: normal;\n white-space: pre-wrap;\n background: none;\n padding: 0px;\n }\n\n code {\n font-size: 14px;\n padding: 5px 7px;\n\n border-radius: 4px;\n background: rgba($info-code-background-color,.05);\n\n @include text_code($info-code-font-color);\n }\n\n pre > code {\n display: block;\n }\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/backend/app/static/img/favicon-16x16.png b/backend/app/static/img/favicon-16x16.png deleted file mode 100644 index e8c611eb..00000000 Binary files a/backend/app/static/img/favicon-16x16.png and /dev/null differ diff --git a/backend/app/static/img/favicon-32x32.png b/backend/app/static/img/favicon-32x32.png deleted file mode 100644 index af243989..00000000 Binary files a/backend/app/static/img/favicon-32x32.png and /dev/null differ diff --git a/backend/app/static/js/swagger-ui-bundle.js b/backend/app/static/js/swagger-ui-bundle.js deleted file mode 100644 index 12c26d69..00000000 --- a/backend/app/static/js/swagger-ui-bundle.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! For license information please see swagger-ui-bundle.js.LICENSE.txt */ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(function(){try{return require("esprima")}catch(e){}}()):"function"==typeof define&&define.amd?define(["esprima"],t):"object"==typeof exports?exports.SwaggerUIBundle=t(function(){try{return require("esprima")}catch(e){}}()):e.SwaggerUIBundle=t(e.esprima)}(this,(function(e){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/dist",n(n.s=555)}([function(e,t,n){"use strict";e.exports=n(131)},function(e,t,n){e.exports=function(){"use strict";var e=Array.prototype.slice;function t(e,t){t&&(e.prototype=Object.create(t.prototype)),e.prototype.constructor=e}function n(e){return i(e)?e:J(e)}function r(e){return s(e)?e:K(e)}function o(e){return u(e)?e:Y(e)}function a(e){return i(e)&&!c(e)?e:G(e)}function i(e){return!(!e||!e[p])}function s(e){return!(!e||!e[f])}function u(e){return!(!e||!e[h])}function c(e){return s(e)||u(e)}function l(e){return!(!e||!e[d])}t(r,n),t(o,n),t(a,n),n.isIterable=i,n.isKeyed=s,n.isIndexed=u,n.isAssociative=c,n.isOrdered=l,n.Keyed=r,n.Indexed=o,n.Set=a;var p="@@__IMMUTABLE_ITERABLE__@@",f="@@__IMMUTABLE_KEYED__@@",h="@@__IMMUTABLE_INDEXED__@@",d="@@__IMMUTABLE_ORDERED__@@",m="delete",v=5,g=1<>>0;if(""+n!==t||4294967295===n)return NaN;t=n}return t<0?A(e)+t:t}function k(){return!0}function j(e,t,n){return(0===e||void 0!==n&&e<=-n)&&(void 0===t||void 0!==n&&t>=n)}function T(e,t){return P(e,t,0)}function I(e,t){return P(e,t,t)}function P(e,t,n){return void 0===e?n:e<0?Math.max(0,t+e):void 0===t?e:Math.min(t,e)}var N=0,M=1,R=2,D="function"==typeof Symbol&&Symbol.iterator,L="@@iterator",B=D||L;function F(e){this.next=e}function U(e,t,n,r){var o=0===e?t:1===e?n:[t,n];return r?r.value=o:r={value:o,done:!1},r}function q(){return{value:void 0,done:!0}}function z(e){return!!H(e)}function V(e){return e&&"function"==typeof e.next}function W(e){var t=H(e);return t&&t.call(e)}function H(e){var t=e&&(D&&e[D]||e[L]);if("function"==typeof t)return t}function $(e){return e&&"number"==typeof e.length}function J(e){return null==e?ie():i(e)?e.toSeq():ce(e)}function K(e){return null==e?ie().toKeyedSeq():i(e)?s(e)?e.toSeq():e.fromEntrySeq():se(e)}function Y(e){return null==e?ie():i(e)?s(e)?e.entrySeq():e.toIndexedSeq():ue(e)}function G(e){return(null==e?ie():i(e)?s(e)?e.entrySeq():e:ue(e)).toSetSeq()}F.prototype.toString=function(){return"[Iterator]"},F.KEYS=N,F.VALUES=M,F.ENTRIES=R,F.prototype.inspect=F.prototype.toSource=function(){return this.toString()},F.prototype[B]=function(){return this},t(J,n),J.of=function(){return J(arguments)},J.prototype.toSeq=function(){return this},J.prototype.toString=function(){return this.__toString("Seq {","}")},J.prototype.cacheResult=function(){return!this._cache&&this.__iterateUncached&&(this._cache=this.entrySeq().toArray(),this.size=this._cache.length),this},J.prototype.__iterate=function(e,t){return pe(this,e,t,!0)},J.prototype.__iterator=function(e,t){return fe(this,e,t,!0)},t(K,J),K.prototype.toKeyedSeq=function(){return this},t(Y,J),Y.of=function(){return Y(arguments)},Y.prototype.toIndexedSeq=function(){return this},Y.prototype.toString=function(){return this.__toString("Seq [","]")},Y.prototype.__iterate=function(e,t){return pe(this,e,t,!1)},Y.prototype.__iterator=function(e,t){return fe(this,e,t,!1)},t(G,J),G.of=function(){return G(arguments)},G.prototype.toSetSeq=function(){return this},J.isSeq=ae,J.Keyed=K,J.Set=G,J.Indexed=Y;var Z,X,Q,ee="@@__IMMUTABLE_SEQ__@@";function te(e){this._array=e,this.size=e.length}function ne(e){var t=Object.keys(e);this._object=e,this._keys=t,this.size=t.length}function re(e){this._iterable=e,this.size=e.length||e.size}function oe(e){this._iterator=e,this._iteratorCache=[]}function ae(e){return!(!e||!e[ee])}function ie(){return Z||(Z=new te([]))}function se(e){var t=Array.isArray(e)?new te(e).fromEntrySeq():V(e)?new oe(e).fromEntrySeq():z(e)?new re(e).fromEntrySeq():"object"==typeof e?new ne(e):void 0;if(!t)throw new TypeError("Expected Array or iterable object of [k, v] entries, or keyed object: "+e);return t}function ue(e){var t=le(e);if(!t)throw new TypeError("Expected Array or iterable object of values: "+e);return t}function ce(e){var t=le(e)||"object"==typeof e&&new ne(e);if(!t)throw new TypeError("Expected Array or iterable object of values, or keyed object: "+e);return t}function le(e){return $(e)?new te(e):V(e)?new oe(e):z(e)?new re(e):void 0}function pe(e,t,n,r){var o=e._cache;if(o){for(var a=o.length-1,i=0;i<=a;i++){var s=o[n?a-i:i];if(!1===t(s[1],r?s[0]:i,e))return i+1}return i}return e.__iterateUncached(t,n)}function fe(e,t,n,r){var o=e._cache;if(o){var a=o.length-1,i=0;return new F((function(){var e=o[n?a-i:i];return i++>a?q():U(t,r?e[0]:i-1,e[1])}))}return e.__iteratorUncached(t,n)}function he(e,t){return t?de(t,e,"",{"":e}):me(e)}function de(e,t,n,r){return Array.isArray(t)?e.call(r,n,Y(t).map((function(n,r){return de(e,n,r,t)}))):ve(t)?e.call(r,n,K(t).map((function(n,r){return de(e,n,r,t)}))):t}function me(e){return Array.isArray(e)?Y(e).map(me).toList():ve(e)?K(e).map(me).toMap():e}function ve(e){return e&&(e.constructor===Object||void 0===e.constructor)}function ge(e,t){if(e===t||e!=e&&t!=t)return!0;if(!e||!t)return!1;if("function"==typeof e.valueOf&&"function"==typeof t.valueOf){if((e=e.valueOf())===(t=t.valueOf())||e!=e&&t!=t)return!0;if(!e||!t)return!1}return!("function"!=typeof e.equals||"function"!=typeof t.equals||!e.equals(t))}function ye(e,t){if(e===t)return!0;if(!i(t)||void 0!==e.size&&void 0!==t.size&&e.size!==t.size||void 0!==e.__hash&&void 0!==t.__hash&&e.__hash!==t.__hash||s(e)!==s(t)||u(e)!==u(t)||l(e)!==l(t))return!1;if(0===e.size&&0===t.size)return!0;var n=!c(e);if(l(e)){var r=e.entries();return t.every((function(e,t){var o=r.next().value;return o&&ge(o[1],e)&&(n||ge(o[0],t))}))&&r.next().done}var o=!1;if(void 0===e.size)if(void 0===t.size)"function"==typeof e.cacheResult&&e.cacheResult();else{o=!0;var a=e;e=t,t=a}var p=!0,f=t.__iterate((function(t,r){if(n?!e.has(t):o?!ge(t,e.get(r,b)):!ge(e.get(r,b),t))return p=!1,!1}));return p&&e.size===f}function be(e,t){if(!(this instanceof be))return new be(e,t);if(this._value=e,this.size=void 0===t?1/0:Math.max(0,t),0===this.size){if(X)return X;X=this}}function _e(e,t){if(!e)throw new Error(t)}function xe(e,t,n){if(!(this instanceof xe))return new xe(e,t,n);if(_e(0!==n,"Cannot step a Range by 0"),e=e||0,void 0===t&&(t=1/0),n=void 0===n?1:Math.abs(n),tr?q():U(e,o,n[t?r-o++:o++])}))},t(ne,K),ne.prototype.get=function(e,t){return void 0===t||this.has(e)?this._object[e]:t},ne.prototype.has=function(e){return this._object.hasOwnProperty(e)},ne.prototype.__iterate=function(e,t){for(var n=this._object,r=this._keys,o=r.length-1,a=0;a<=o;a++){var i=r[t?o-a:a];if(!1===e(n[i],i,this))return a+1}return a},ne.prototype.__iterator=function(e,t){var n=this._object,r=this._keys,o=r.length-1,a=0;return new F((function(){var i=r[t?o-a:a];return a++>o?q():U(e,i,n[i])}))},ne.prototype[d]=!0,t(re,Y),re.prototype.__iterateUncached=function(e,t){if(t)return this.cacheResult().__iterate(e,t);var n=W(this._iterable),r=0;if(V(n))for(var o;!(o=n.next()).done&&!1!==e(o.value,r++,this););return r},re.prototype.__iteratorUncached=function(e,t){if(t)return this.cacheResult().__iterator(e,t);var n=W(this._iterable);if(!V(n))return new F(q);var r=0;return new F((function(){var t=n.next();return t.done?t:U(e,r++,t.value)}))},t(oe,Y),oe.prototype.__iterateUncached=function(e,t){if(t)return this.cacheResult().__iterate(e,t);for(var n,r=this._iterator,o=this._iteratorCache,a=0;a=r.length){var t=n.next();if(t.done)return t;r[o]=t.value}return U(e,o,r[o++])}))},t(be,Y),be.prototype.toString=function(){return 0===this.size?"Repeat []":"Repeat [ "+this._value+" "+this.size+" times ]"},be.prototype.get=function(e,t){return this.has(e)?this._value:t},be.prototype.includes=function(e){return ge(this._value,e)},be.prototype.slice=function(e,t){var n=this.size;return j(e,t,n)?this:new be(this._value,I(t,n)-T(e,n))},be.prototype.reverse=function(){return this},be.prototype.indexOf=function(e){return ge(this._value,e)?0:-1},be.prototype.lastIndexOf=function(e){return ge(this._value,e)?this.size:-1},be.prototype.__iterate=function(e,t){for(var n=0;n=0&&t=0&&nn?q():U(e,a++,i)}))},xe.prototype.equals=function(e){return e instanceof xe?this._start===e._start&&this._end===e._end&&this._step===e._step:ye(this,e)},t(we,n),t(Ee,we),t(Se,we),t(Ce,we),we.Keyed=Ee,we.Indexed=Se,we.Set=Ce;var Ae="function"==typeof Math.imul&&-2===Math.imul(4294967295,2)?Math.imul:function(e,t){var n=65535&(e|=0),r=65535&(t|=0);return n*r+((e>>>16)*r+n*(t>>>16)<<16>>>0)|0};function Oe(e){return e>>>1&1073741824|3221225471&e}function ke(e){if(!1===e||null==e)return 0;if("function"==typeof e.valueOf&&(!1===(e=e.valueOf())||null==e))return 0;if(!0===e)return 1;var t=typeof e;if("number"===t){if(e!=e||e===1/0)return 0;var n=0|e;for(n!==e&&(n^=4294967295*e);e>4294967295;)n^=e/=4294967295;return Oe(n)}if("string"===t)return e.length>Fe?je(e):Te(e);if("function"==typeof e.hashCode)return e.hashCode();if("object"===t)return Ie(e);if("function"==typeof e.toString)return Te(e.toString());throw new Error("Value type "+t+" cannot be hashed.")}function je(e){var t=ze[e];return void 0===t&&(t=Te(e),qe===Ue&&(qe=0,ze={}),qe++,ze[e]=t),t}function Te(e){for(var t=0,n=0;n0)switch(e.nodeType){case 1:return e.uniqueID;case 9:return e.documentElement&&e.documentElement.uniqueID}}var Re,De="function"==typeof WeakMap;De&&(Re=new WeakMap);var Le=0,Be="__immutablehash__";"function"==typeof Symbol&&(Be=Symbol(Be));var Fe=16,Ue=255,qe=0,ze={};function Ve(e){_e(e!==1/0,"Cannot perform this action with an infinite size.")}function We(e){return null==e?ot():He(e)&&!l(e)?e:ot().withMutations((function(t){var n=r(e);Ve(n.size),n.forEach((function(e,n){return t.set(n,e)}))}))}function He(e){return!(!e||!e[Je])}t(We,Ee),We.of=function(){var t=e.call(arguments,0);return ot().withMutations((function(e){for(var n=0;n=t.length)throw new Error("Missing value for key: "+t[n]);e.set(t[n],t[n+1])}}))},We.prototype.toString=function(){return this.__toString("Map {","}")},We.prototype.get=function(e,t){return this._root?this._root.get(0,void 0,e,t):t},We.prototype.set=function(e,t){return at(this,e,t)},We.prototype.setIn=function(e,t){return this.updateIn(e,b,(function(){return t}))},We.prototype.remove=function(e){return at(this,e,b)},We.prototype.deleteIn=function(e){return this.updateIn(e,(function(){return b}))},We.prototype.update=function(e,t,n){return 1===arguments.length?e(this):this.updateIn([e],t,n)},We.prototype.updateIn=function(e,t,n){n||(n=t,t=void 0);var r=vt(this,wn(e),t,n);return r===b?void 0:r},We.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._root=null,this.__hash=void 0,this.__altered=!0,this):ot()},We.prototype.merge=function(){return ft(this,void 0,arguments)},We.prototype.mergeWith=function(t){return ft(this,t,e.call(arguments,1))},We.prototype.mergeIn=function(t){var n=e.call(arguments,1);return this.updateIn(t,ot(),(function(e){return"function"==typeof e.merge?e.merge.apply(e,n):n[n.length-1]}))},We.prototype.mergeDeep=function(){return ft(this,ht,arguments)},We.prototype.mergeDeepWith=function(t){var n=e.call(arguments,1);return ft(this,dt(t),n)},We.prototype.mergeDeepIn=function(t){var n=e.call(arguments,1);return this.updateIn(t,ot(),(function(e){return"function"==typeof e.mergeDeep?e.mergeDeep.apply(e,n):n[n.length-1]}))},We.prototype.sort=function(e){return zt(pn(this,e))},We.prototype.sortBy=function(e,t){return zt(pn(this,t,e))},We.prototype.withMutations=function(e){var t=this.asMutable();return e(t),t.wasAltered()?t.__ensureOwner(this.__ownerID):this},We.prototype.asMutable=function(){return this.__ownerID?this:this.__ensureOwner(new S)},We.prototype.asImmutable=function(){return this.__ensureOwner()},We.prototype.wasAltered=function(){return this.__altered},We.prototype.__iterator=function(e,t){return new et(this,e,t)},We.prototype.__iterate=function(e,t){var n=this,r=0;return this._root&&this._root.iterate((function(t){return r++,e(t[1],t[0],n)}),t),r},We.prototype.__ensureOwner=function(e){return e===this.__ownerID?this:e?rt(this.size,this._root,e,this.__hash):(this.__ownerID=e,this.__altered=!1,this)},We.isMap=He;var $e,Je="@@__IMMUTABLE_MAP__@@",Ke=We.prototype;function Ye(e,t){this.ownerID=e,this.entries=t}function Ge(e,t,n){this.ownerID=e,this.bitmap=t,this.nodes=n}function Ze(e,t,n){this.ownerID=e,this.count=t,this.nodes=n}function Xe(e,t,n){this.ownerID=e,this.keyHash=t,this.entries=n}function Qe(e,t,n){this.ownerID=e,this.keyHash=t,this.entry=n}function et(e,t,n){this._type=t,this._reverse=n,this._stack=e._root&&nt(e._root)}function tt(e,t){return U(e,t[0],t[1])}function nt(e,t){return{node:e,index:0,__prev:t}}function rt(e,t,n,r){var o=Object.create(Ke);return o.size=e,o._root=t,o.__ownerID=n,o.__hash=r,o.__altered=!1,o}function ot(){return $e||($e=rt(0))}function at(e,t,n){var r,o;if(e._root){var a=w(_),i=w(x);if(r=it(e._root,e.__ownerID,0,void 0,t,n,a,i),!i.value)return e;o=e.size+(a.value?n===b?-1:1:0)}else{if(n===b)return e;o=1,r=new Ye(e.__ownerID,[[t,n]])}return e.__ownerID?(e.size=o,e._root=r,e.__hash=void 0,e.__altered=!0,e):r?rt(o,r):ot()}function it(e,t,n,r,o,a,i,s){return e?e.update(t,n,r,o,a,i,s):a===b?e:(E(s),E(i),new Qe(t,r,[o,a]))}function st(e){return e.constructor===Qe||e.constructor===Xe}function ut(e,t,n,r,o){if(e.keyHash===r)return new Xe(t,r,[e.entry,o]);var a,i=(0===n?e.keyHash:e.keyHash>>>n)&y,s=(0===n?r:r>>>n)&y;return new Ge(t,1<>>=1)i[s]=1&n?t[a++]:void 0;return i[r]=o,new Ze(e,a+1,i)}function ft(e,t,n){for(var o=[],a=0;a>1&1431655765))+(e>>2&858993459))+(e>>4)&252645135,e+=e>>8,127&(e+=e>>16)}function yt(e,t,n,r){var o=r?e:C(e);return o[t]=n,o}function bt(e,t,n,r){var o=e.length+1;if(r&&t+1===o)return e[t]=n,e;for(var a=new Array(o),i=0,s=0;s=xt)return ct(e,u,r,o);var f=e&&e===this.ownerID,h=f?u:C(u);return p?s?c===l-1?h.pop():h[c]=h.pop():h[c]=[r,o]:h.push([r,o]),f?(this.entries=h,this):new Ye(e,h)}},Ge.prototype.get=function(e,t,n,r){void 0===t&&(t=ke(n));var o=1<<((0===e?t:t>>>e)&y),a=this.bitmap;return 0==(a&o)?r:this.nodes[gt(a&o-1)].get(e+v,t,n,r)},Ge.prototype.update=function(e,t,n,r,o,a,i){void 0===n&&(n=ke(r));var s=(0===t?n:n>>>t)&y,u=1<=wt)return pt(e,f,c,s,d);if(l&&!d&&2===f.length&&st(f[1^p]))return f[1^p];if(l&&d&&1===f.length&&st(d))return d;var m=e&&e===this.ownerID,g=l?d?c:c^u:c|u,_=l?d?yt(f,p,d,m):_t(f,p,m):bt(f,p,d,m);return m?(this.bitmap=g,this.nodes=_,this):new Ge(e,g,_)},Ze.prototype.get=function(e,t,n,r){void 0===t&&(t=ke(n));var o=(0===e?t:t>>>e)&y,a=this.nodes[o];return a?a.get(e+v,t,n,r):r},Ze.prototype.update=function(e,t,n,r,o,a,i){void 0===n&&(n=ke(r));var s=(0===t?n:n>>>t)&y,u=o===b,c=this.nodes,l=c[s];if(u&&!l)return this;var p=it(l,e,t+v,n,r,o,a,i);if(p===l)return this;var f=this.count;if(l){if(!p&&--f0&&r=0&&e>>t&y;if(r>=this.array.length)return new kt([],e);var o,a=0===r;if(t>0){var i=this.array[r];if((o=i&&i.removeBefore(e,t-v,n))===i&&a)return this}if(a&&!o)return this;var s=Lt(this,e);if(!a)for(var u=0;u>>t&y;if(o>=this.array.length)return this;if(t>0){var a=this.array[o];if((r=a&&a.removeAfter(e,t-v,n))===a&&o===this.array.length-1)return this}var i=Lt(this,e);return i.array.splice(o+1),r&&(i.array[o]=r),i};var jt,Tt,It={};function Pt(e,t){var n=e._origin,r=e._capacity,o=qt(r),a=e._tail;return i(e._root,e._level,0);function i(e,t,n){return 0===t?s(e,n):u(e,t,n)}function s(e,i){var s=i===o?a&&a.array:e&&e.array,u=i>n?0:n-i,c=r-i;return c>g&&(c=g),function(){if(u===c)return It;var e=t?--c:u++;return s&&s[e]}}function u(e,o,a){var s,u=e&&e.array,c=a>n?0:n-a>>o,l=1+(r-a>>o);return l>g&&(l=g),function(){for(;;){if(s){var e=s();if(e!==It)return e;s=null}if(c===l)return It;var n=t?--l:c++;s=i(u&&u[n],o-v,a+(n<=e.size||t<0)return e.withMutations((function(e){t<0?Ft(e,t).set(0,n):Ft(e,0,t+1).set(t,n)}));t+=e._origin;var r=e._tail,o=e._root,a=w(x);return t>=qt(e._capacity)?r=Dt(r,e.__ownerID,0,t,n,a):o=Dt(o,e.__ownerID,e._level,t,n,a),a.value?e.__ownerID?(e._root=o,e._tail=r,e.__hash=void 0,e.__altered=!0,e):Nt(e._origin,e._capacity,e._level,o,r):e}function Dt(e,t,n,r,o,a){var i,s=r>>>n&y,u=e&&s0){var c=e&&e.array[s],l=Dt(c,t,n-v,r,o,a);return l===c?e:((i=Lt(e,t)).array[s]=l,i)}return u&&e.array[s]===o?e:(E(a),i=Lt(e,t),void 0===o&&s===i.array.length-1?i.array.pop():i.array[s]=o,i)}function Lt(e,t){return t&&e&&t===e.ownerID?e:new kt(e?e.array.slice():[],t)}function Bt(e,t){if(t>=qt(e._capacity))return e._tail;if(t<1<0;)n=n.array[t>>>r&y],r-=v;return n}}function Ft(e,t,n){void 0!==t&&(t|=0),void 0!==n&&(n|=0);var r=e.__ownerID||new S,o=e._origin,a=e._capacity,i=o+t,s=void 0===n?a:n<0?a+n:o+n;if(i===o&&s===a)return e;if(i>=s)return e.clear();for(var u=e._level,c=e._root,l=0;i+l<0;)c=new kt(c&&c.array.length?[void 0,c]:[],r),l+=1<<(u+=v);l&&(i+=l,o+=l,s+=l,a+=l);for(var p=qt(a),f=qt(s);f>=1<p?new kt([],r):h;if(h&&f>p&&iv;g-=v){var b=p>>>g&y;m=m.array[b]=Lt(m.array[b],r)}m.array[p>>>v&y]=h}if(s=f)i-=f,s-=f,u=v,c=null,d=d&&d.removeBefore(r,0,i);else if(i>o||f>>u&y;if(_!==f>>>u&y)break;_&&(l+=(1<o&&(c=c.removeBefore(r,u,i-l)),c&&fa&&(a=c.size),i(u)||(c=c.map((function(e){return he(e)}))),r.push(c)}return a>e.size&&(e=e.setSize(a)),mt(e,t,r)}function qt(e){return e>>v<=g&&i.size>=2*a.size?(r=(o=i.filter((function(e,t){return void 0!==e&&s!==t}))).toKeyedSeq().map((function(e){return e[0]})).flip().toMap(),e.__ownerID&&(r.__ownerID=o.__ownerID=e.__ownerID)):(r=a.remove(t),o=s===i.size-1?i.pop():i.set(s,void 0))}else if(u){if(n===i.get(s)[1])return e;r=a,o=i.set(s,[t,n])}else r=a.set(t,i.size),o=i.set(i.size,[t,n]);return e.__ownerID?(e.size=r.size,e._map=r,e._list=o,e.__hash=void 0,e):Wt(r,o)}function Jt(e,t){this._iter=e,this._useKeys=t,this.size=e.size}function Kt(e){this._iter=e,this.size=e.size}function Yt(e){this._iter=e,this.size=e.size}function Gt(e){this._iter=e,this.size=e.size}function Zt(e){var t=bn(e);return t._iter=e,t.size=e.size,t.flip=function(){return e},t.reverse=function(){var t=e.reverse.apply(this);return t.flip=function(){return e.reverse()},t},t.has=function(t){return e.includes(t)},t.includes=function(t){return e.has(t)},t.cacheResult=_n,t.__iterateUncached=function(t,n){var r=this;return e.__iterate((function(e,n){return!1!==t(n,e,r)}),n)},t.__iteratorUncached=function(t,n){if(t===R){var r=e.__iterator(t,n);return new F((function(){var e=r.next();if(!e.done){var t=e.value[0];e.value[0]=e.value[1],e.value[1]=t}return e}))}return e.__iterator(t===M?N:M,n)},t}function Xt(e,t,n){var r=bn(e);return r.size=e.size,r.has=function(t){return e.has(t)},r.get=function(r,o){var a=e.get(r,b);return a===b?o:t.call(n,a,r,e)},r.__iterateUncached=function(r,o){var a=this;return e.__iterate((function(e,o,i){return!1!==r(t.call(n,e,o,i),o,a)}),o)},r.__iteratorUncached=function(r,o){var a=e.__iterator(R,o);return new F((function(){var o=a.next();if(o.done)return o;var i=o.value,s=i[0];return U(r,s,t.call(n,i[1],s,e),o)}))},r}function Qt(e,t){var n=bn(e);return n._iter=e,n.size=e.size,n.reverse=function(){return e},e.flip&&(n.flip=function(){var t=Zt(e);return t.reverse=function(){return e.flip()},t}),n.get=function(n,r){return e.get(t?n:-1-n,r)},n.has=function(n){return e.has(t?n:-1-n)},n.includes=function(t){return e.includes(t)},n.cacheResult=_n,n.__iterate=function(t,n){var r=this;return e.__iterate((function(e,n){return t(e,n,r)}),!n)},n.__iterator=function(t,n){return e.__iterator(t,!n)},n}function en(e,t,n,r){var o=bn(e);return r&&(o.has=function(r){var o=e.get(r,b);return o!==b&&!!t.call(n,o,r,e)},o.get=function(r,o){var a=e.get(r,b);return a!==b&&t.call(n,a,r,e)?a:o}),o.__iterateUncached=function(o,a){var i=this,s=0;return e.__iterate((function(e,a,u){if(t.call(n,e,a,u))return s++,o(e,r?a:s-1,i)}),a),s},o.__iteratorUncached=function(o,a){var i=e.__iterator(R,a),s=0;return new F((function(){for(;;){var a=i.next();if(a.done)return a;var u=a.value,c=u[0],l=u[1];if(t.call(n,l,c,e))return U(o,r?c:s++,l,a)}}))},o}function tn(e,t,n){var r=We().asMutable();return e.__iterate((function(o,a){r.update(t.call(n,o,a,e),0,(function(e){return e+1}))})),r.asImmutable()}function nn(e,t,n){var r=s(e),o=(l(e)?zt():We()).asMutable();e.__iterate((function(a,i){o.update(t.call(n,a,i,e),(function(e){return(e=e||[]).push(r?[i,a]:a),e}))}));var a=yn(e);return o.map((function(t){return mn(e,a(t))}))}function rn(e,t,n,r){var o=e.size;if(void 0!==t&&(t|=0),void 0!==n&&(n===1/0?n=o:n|=0),j(t,n,o))return e;var a=T(t,o),i=I(n,o);if(a!=a||i!=i)return rn(e.toSeq().cacheResult(),t,n,r);var s,u=i-a;u==u&&(s=u<0?0:u);var c=bn(e);return c.size=0===s?s:e.size&&s||void 0,!r&&ae(e)&&s>=0&&(c.get=function(t,n){return(t=O(this,t))>=0&&ts)return q();var e=o.next();return r||t===M?e:U(t,u-1,t===N?void 0:e.value[1],e)}))},c}function on(e,t,n){var r=bn(e);return r.__iterateUncached=function(r,o){var a=this;if(o)return this.cacheResult().__iterate(r,o);var i=0;return e.__iterate((function(e,o,s){return t.call(n,e,o,s)&&++i&&r(e,o,a)})),i},r.__iteratorUncached=function(r,o){var a=this;if(o)return this.cacheResult().__iterator(r,o);var i=e.__iterator(R,o),s=!0;return new F((function(){if(!s)return q();var e=i.next();if(e.done)return e;var o=e.value,u=o[0],c=o[1];return t.call(n,c,u,a)?r===R?e:U(r,u,c,e):(s=!1,q())}))},r}function an(e,t,n,r){var o=bn(e);return o.__iterateUncached=function(o,a){var i=this;if(a)return this.cacheResult().__iterate(o,a);var s=!0,u=0;return e.__iterate((function(e,a,c){if(!s||!(s=t.call(n,e,a,c)))return u++,o(e,r?a:u-1,i)})),u},o.__iteratorUncached=function(o,a){var i=this;if(a)return this.cacheResult().__iterator(o,a);var s=e.__iterator(R,a),u=!0,c=0;return new F((function(){var e,a,l;do{if((e=s.next()).done)return r||o===M?e:U(o,c++,o===N?void 0:e.value[1],e);var p=e.value;a=p[0],l=p[1],u&&(u=t.call(n,l,a,i))}while(u);return o===R?e:U(o,a,l,e)}))},o}function sn(e,t){var n=s(e),o=[e].concat(t).map((function(e){return i(e)?n&&(e=r(e)):e=n?se(e):ue(Array.isArray(e)?e:[e]),e})).filter((function(e){return 0!==e.size}));if(0===o.length)return e;if(1===o.length){var a=o[0];if(a===e||n&&s(a)||u(e)&&u(a))return a}var c=new te(o);return n?c=c.toKeyedSeq():u(e)||(c=c.toSetSeq()),(c=c.flatten(!0)).size=o.reduce((function(e,t){if(void 0!==e){var n=t.size;if(void 0!==n)return e+n}}),0),c}function un(e,t,n){var r=bn(e);return r.__iterateUncached=function(r,o){var a=0,s=!1;function u(e,c){var l=this;e.__iterate((function(e,o){return(!t||c0}function dn(e,t,r){var o=bn(e);return o.size=new te(r).map((function(e){return e.size})).min(),o.__iterate=function(e,t){for(var n,r=this.__iterator(M,t),o=0;!(n=r.next()).done&&!1!==e(n.value,o++,this););return o},o.__iteratorUncached=function(e,o){var a=r.map((function(e){return e=n(e),W(o?e.reverse():e)})),i=0,s=!1;return new F((function(){var n;return s||(n=a.map((function(e){return e.next()})),s=n.some((function(e){return e.done}))),s?q():U(e,i++,t.apply(null,n.map((function(e){return e.value}))))}))},o}function mn(e,t){return ae(e)?t:e.constructor(t)}function vn(e){if(e!==Object(e))throw new TypeError("Expected [K, V] tuple: "+e)}function gn(e){return Ve(e.size),A(e)}function yn(e){return s(e)?r:u(e)?o:a}function bn(e){return Object.create((s(e)?K:u(e)?Y:G).prototype)}function _n(){return this._iter.cacheResult?(this._iter.cacheResult(),this.size=this._iter.size,this):J.prototype.cacheResult.call(this)}function xn(e,t){return e>t?1:e=0;n--)t={value:arguments[n],next:t};return this.__ownerID?(this.size=e,this._head=t,this.__hash=void 0,this.__altered=!0,this):Kn(e,t)},Vn.prototype.pushAll=function(e){if(0===(e=o(e)).size)return this;Ve(e.size);var t=this.size,n=this._head;return e.reverse().forEach((function(e){t++,n={value:e,next:n}})),this.__ownerID?(this.size=t,this._head=n,this.__hash=void 0,this.__altered=!0,this):Kn(t,n)},Vn.prototype.pop=function(){return this.slice(1)},Vn.prototype.unshift=function(){return this.push.apply(this,arguments)},Vn.prototype.unshiftAll=function(e){return this.pushAll(e)},Vn.prototype.shift=function(){return this.pop.apply(this,arguments)},Vn.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._head=void 0,this.__hash=void 0,this.__altered=!0,this):Yn()},Vn.prototype.slice=function(e,t){if(j(e,t,this.size))return this;var n=T(e,this.size);if(I(t,this.size)!==this.size)return Se.prototype.slice.call(this,e,t);for(var r=this.size-n,o=this._head;n--;)o=o.next;return this.__ownerID?(this.size=r,this._head=o,this.__hash=void 0,this.__altered=!0,this):Kn(r,o)},Vn.prototype.__ensureOwner=function(e){return e===this.__ownerID?this:e?Kn(this.size,this._head,e,this.__hash):(this.__ownerID=e,this.__altered=!1,this)},Vn.prototype.__iterate=function(e,t){if(t)return this.reverse().__iterate(e);for(var n=0,r=this._head;r&&!1!==e(r.value,n++,this);)r=r.next;return n},Vn.prototype.__iterator=function(e,t){if(t)return this.reverse().__iterator(e);var n=0,r=this._head;return new F((function(){if(r){var t=r.value;return r=r.next,U(e,n++,t)}return q()}))},Vn.isStack=Wn;var Hn,$n="@@__IMMUTABLE_STACK__@@",Jn=Vn.prototype;function Kn(e,t,n,r){var o=Object.create(Jn);return o.size=e,o._head=t,o.__ownerID=n,o.__hash=r,o.__altered=!1,o}function Yn(){return Hn||(Hn=Kn(0))}function Gn(e,t){var n=function(n){e.prototype[n]=t[n]};return Object.keys(t).forEach(n),Object.getOwnPropertySymbols&&Object.getOwnPropertySymbols(t).forEach(n),e}Jn[$n]=!0,Jn.withMutations=Ke.withMutations,Jn.asMutable=Ke.asMutable,Jn.asImmutable=Ke.asImmutable,Jn.wasAltered=Ke.wasAltered,n.Iterator=F,Gn(n,{toArray:function(){Ve(this.size);var e=new Array(this.size||0);return this.valueSeq().__iterate((function(t,n){e[n]=t})),e},toIndexedSeq:function(){return new Kt(this)},toJS:function(){return this.toSeq().map((function(e){return e&&"function"==typeof e.toJS?e.toJS():e})).__toJS()},toJSON:function(){return this.toSeq().map((function(e){return e&&"function"==typeof e.toJSON?e.toJSON():e})).__toJS()},toKeyedSeq:function(){return new Jt(this,!0)},toMap:function(){return We(this.toKeyedSeq())},toObject:function(){Ve(this.size);var e={};return this.__iterate((function(t,n){e[n]=t})),e},toOrderedMap:function(){return zt(this.toKeyedSeq())},toOrderedSet:function(){return Ln(s(this)?this.valueSeq():this)},toSet:function(){return jn(s(this)?this.valueSeq():this)},toSetSeq:function(){return new Yt(this)},toSeq:function(){return u(this)?this.toIndexedSeq():s(this)?this.toKeyedSeq():this.toSetSeq()},toStack:function(){return Vn(s(this)?this.valueSeq():this)},toList:function(){return St(s(this)?this.valueSeq():this)},toString:function(){return"[Iterable]"},__toString:function(e,t){return 0===this.size?e+t:e+" "+this.toSeq().map(this.__toStringMapper).join(", ")+" "+t},concat:function(){return mn(this,sn(this,e.call(arguments,0)))},includes:function(e){return this.some((function(t){return ge(t,e)}))},entries:function(){return this.__iterator(R)},every:function(e,t){Ve(this.size);var n=!0;return this.__iterate((function(r,o,a){if(!e.call(t,r,o,a))return n=!1,!1})),n},filter:function(e,t){return mn(this,en(this,e,t,!0))},find:function(e,t,n){var r=this.findEntry(e,t);return r?r[1]:n},forEach:function(e,t){return Ve(this.size),this.__iterate(t?e.bind(t):e)},join:function(e){Ve(this.size),e=void 0!==e?""+e:",";var t="",n=!0;return this.__iterate((function(r){n?n=!1:t+=e,t+=null!=r?r.toString():""})),t},keys:function(){return this.__iterator(N)},map:function(e,t){return mn(this,Xt(this,e,t))},reduce:function(e,t,n){var r,o;return Ve(this.size),arguments.length<2?o=!0:r=t,this.__iterate((function(t,a,i){o?(o=!1,r=t):r=e.call(n,r,t,a,i)})),r},reduceRight:function(e,t,n){var r=this.toKeyedSeq().reverse();return r.reduce.apply(r,arguments)},reverse:function(){return mn(this,Qt(this,!0))},slice:function(e,t){return mn(this,rn(this,e,t,!0))},some:function(e,t){return!this.every(tr(e),t)},sort:function(e){return mn(this,pn(this,e))},values:function(){return this.__iterator(M)},butLast:function(){return this.slice(0,-1)},isEmpty:function(){return void 0!==this.size?0===this.size:!this.some((function(){return!0}))},count:function(e,t){return A(e?this.toSeq().filter(e,t):this)},countBy:function(e,t){return tn(this,e,t)},equals:function(e){return ye(this,e)},entrySeq:function(){var e=this;if(e._cache)return new te(e._cache);var t=e.toSeq().map(er).toIndexedSeq();return t.fromEntrySeq=function(){return e.toSeq()},t},filterNot:function(e,t){return this.filter(tr(e),t)},findEntry:function(e,t,n){var r=n;return this.__iterate((function(n,o,a){if(e.call(t,n,o,a))return r=[o,n],!1})),r},findKey:function(e,t){var n=this.findEntry(e,t);return n&&n[0]},findLast:function(e,t,n){return this.toKeyedSeq().reverse().find(e,t,n)},findLastEntry:function(e,t,n){return this.toKeyedSeq().reverse().findEntry(e,t,n)},findLastKey:function(e,t){return this.toKeyedSeq().reverse().findKey(e,t)},first:function(){return this.find(k)},flatMap:function(e,t){return mn(this,cn(this,e,t))},flatten:function(e){return mn(this,un(this,e,!0))},fromEntrySeq:function(){return new Gt(this)},get:function(e,t){return this.find((function(t,n){return ge(n,e)}),void 0,t)},getIn:function(e,t){for(var n,r=this,o=wn(e);!(n=o.next()).done;){var a=n.value;if((r=r&&r.get?r.get(a,b):b)===b)return t}return r},groupBy:function(e,t){return nn(this,e,t)},has:function(e){return this.get(e,b)!==b},hasIn:function(e){return this.getIn(e,b)!==b},isSubset:function(e){return e="function"==typeof e.includes?e:n(e),this.every((function(t){return e.includes(t)}))},isSuperset:function(e){return(e="function"==typeof e.isSubset?e:n(e)).isSubset(this)},keyOf:function(e){return this.findKey((function(t){return ge(t,e)}))},keySeq:function(){return this.toSeq().map(Qn).toIndexedSeq()},last:function(){return this.toSeq().reverse().first()},lastKeyOf:function(e){return this.toKeyedSeq().reverse().keyOf(e)},max:function(e){return fn(this,e)},maxBy:function(e,t){return fn(this,t,e)},min:function(e){return fn(this,e?nr(e):ar)},minBy:function(e,t){return fn(this,t?nr(t):ar,e)},rest:function(){return this.slice(1)},skip:function(e){return this.slice(Math.max(0,e))},skipLast:function(e){return mn(this,this.toSeq().reverse().skip(e).reverse())},skipWhile:function(e,t){return mn(this,an(this,e,t,!0))},skipUntil:function(e,t){return this.skipWhile(tr(e),t)},sortBy:function(e,t){return mn(this,pn(this,t,e))},take:function(e){return this.slice(0,Math.max(0,e))},takeLast:function(e){return mn(this,this.toSeq().reverse().take(e).reverse())},takeWhile:function(e,t){return mn(this,on(this,e,t))},takeUntil:function(e,t){return this.takeWhile(tr(e),t)},valueSeq:function(){return this.toIndexedSeq()},hashCode:function(){return this.__hash||(this.__hash=ir(this))}});var Zn=n.prototype;Zn[p]=!0,Zn[B]=Zn.values,Zn.__toJS=Zn.toArray,Zn.__toStringMapper=rr,Zn.inspect=Zn.toSource=function(){return this.toString()},Zn.chain=Zn.flatMap,Zn.contains=Zn.includes,Gn(r,{flip:function(){return mn(this,Zt(this))},mapEntries:function(e,t){var n=this,r=0;return mn(this,this.toSeq().map((function(o,a){return e.call(t,[a,o],r++,n)})).fromEntrySeq())},mapKeys:function(e,t){var n=this;return mn(this,this.toSeq().flip().map((function(r,o){return e.call(t,r,o,n)})).flip())}});var Xn=r.prototype;function Qn(e,t){return t}function er(e,t){return[t,e]}function tr(e){return function(){return!e.apply(this,arguments)}}function nr(e){return function(){return-e.apply(this,arguments)}}function rr(e){return"string"==typeof e?JSON.stringify(e):String(e)}function or(){return C(arguments)}function ar(e,t){return et?-1:0}function ir(e){if(e.size===1/0)return 0;var t=l(e),n=s(e),r=t?1:0;return sr(e.__iterate(n?t?function(e,t){r=31*r+ur(ke(e),ke(t))|0}:function(e,t){r=r+ur(ke(e),ke(t))|0}:t?function(e){r=31*r+ke(e)|0}:function(e){r=r+ke(e)|0}),r)}function sr(e,t){return t=Ae(t,3432918353),t=Ae(t<<15|t>>>-15,461845907),t=Ae(t<<13|t>>>-13,5),t=Ae((t=(t+3864292196|0)^e)^t>>>16,2246822507),t=Oe((t=Ae(t^t>>>13,3266489909))^t>>>16)}function ur(e,t){return e^t+2654435769+(e<<6)+(e>>2)|0}return Xn[f]=!0,Xn[B]=Zn.entries,Xn.__toJS=Zn.toObject,Xn.__toStringMapper=function(e,t){return JSON.stringify(t)+": "+rr(e)},Gn(o,{toKeyedSeq:function(){return new Jt(this,!1)},filter:function(e,t){return mn(this,en(this,e,t,!1))},findIndex:function(e,t){var n=this.findEntry(e,t);return n?n[0]:-1},indexOf:function(e){var t=this.keyOf(e);return void 0===t?-1:t},lastIndexOf:function(e){var t=this.lastKeyOf(e);return void 0===t?-1:t},reverse:function(){return mn(this,Qt(this,!1))},slice:function(e,t){return mn(this,rn(this,e,t,!1))},splice:function(e,t){var n=arguments.length;if(t=Math.max(0|t,0),0===n||2===n&&!t)return this;e=T(e,e<0?this.count():this.size);var r=this.slice(0,e);return mn(this,1===n?r:r.concat(C(arguments,2),this.slice(e+t)))},findLastIndex:function(e,t){var n=this.findLastEntry(e,t);return n?n[0]:-1},first:function(){return this.get(0)},flatten:function(e){return mn(this,un(this,e,!1))},get:function(e,t){return(e=O(this,e))<0||this.size===1/0||void 0!==this.size&&e>this.size?t:this.find((function(t,n){return n===e}),void 0,t)},has:function(e){return(e=O(this,e))>=0&&(void 0!==this.size?this.size===1/0||e1)try{return decodeURIComponent(t[1])}catch(e){console.error(e)}return null}function Ne(e){return t=e.replace(/\.[^./]*$/,""),Y()(J()(t));var t}function Me(e,t,n,r,a){if(!t)return[];var s=[],u=t.get("nullable"),c=t.get("required"),p=t.get("maximum"),h=t.get("minimum"),d=t.get("type"),m=t.get("format"),g=t.get("maxLength"),b=t.get("minLength"),x=t.get("uniqueItems"),w=t.get("maxItems"),E=t.get("minItems"),S=t.get("pattern"),C=n||!0===c,A=null!=e;if(u&&null===e||!d||!(C||A&&"array"===d||!(!C&&!A)))return[];var O="string"===d&&e,k="array"===d&&l()(e)&&e.length,j="array"===d&&W.a.List.isList(e)&&e.count(),T=[O,k,j,"array"===d&&"string"==typeof e&&e,"file"===d&&e instanceof se.a.File,"boolean"===d&&(e||!1===e),"number"===d&&(e||0===e),"integer"===d&&(e||0===e),"object"===d&&"object"===i()(e)&&null!==e,"object"===d&&"string"==typeof e&&e],I=P()(T).call(T,(function(e){return!!e}));if(C&&!I&&!r)return s.push("Required field is not provided"),s;if("object"===d&&(null===a||"application/json"===a)){var N,M=e;if("string"==typeof e)try{M=JSON.parse(e)}catch(e){return s.push("Parameter string value must be valid JSON"),s}if(t&&t.has("required")&&Se(c.isList)&&c.isList()&&y()(c).call(c,(function(e){void 0===M[e]&&s.push({propKey:e,error:"Required property not found"})})),t&&t.has("properties"))y()(N=t.get("properties")).call(N,(function(e,t){var n=Me(M[t],e,!1,r,a);s.push.apply(s,o()(f()(n).call(n,(function(e){return{propKey:t,error:e}}))))}))}if(S){var R=function(e,t){if(!new RegExp(t).test(e))return"Value must follow pattern "+t}(e,S);R&&s.push(R)}if(E&&"array"===d){var D=function(e,t){var n;if(!e&&t>=1||e&&e.lengtht)return v()(n="Array must not contain more then ".concat(t," item")).call(n,1===t?"":"s")}(e,w);L&&s.push({needRemove:!0,error:L})}if(x&&"array"===d){var B=function(e,t){if(e&&("true"===t||!0===t)){var n=Object(V.fromJS)(e),r=n.toSet();if(e.length>r.size){var o=Object(V.Set)();if(y()(n).call(n,(function(e,t){_()(n).call(n,(function(t){return Se(t.equals)?t.equals(e):t===e})).size>1&&(o=o.add(t))})),0!==o.size)return f()(o).call(o,(function(e){return{index:e,error:"No duplicates allowed."}})).toArray()}}}(e,x);B&&s.push.apply(s,o()(B))}if(g||0===g){var F=function(e,t){var n;if(e.length>t)return v()(n="Value must be no longer than ".concat(t," character")).call(n,1!==t?"s":"")}(e,g);F&&s.push(F)}if(b){var U=function(e,t){var n;if(e.lengtht)return"Value must be less than ".concat(t)}(e,p);q&&s.push(q)}if(h||0===h){var z=function(e,t){if(e2&&void 0!==arguments[2]?arguments[2]:{},r=n.isOAS3,o=void 0!==r&&r,a=n.bypassRequiredCheck,i=void 0!==a&&a,s=e.get("required"),u=Object(le.a)(e,{isOAS3:o}),c=u.schema,l=u.parameterContentMediaType;return Me(t,c,s,i,l)},De=function(e,t,n){if(e&&(!e.xml||!e.xml.name)){if(e.xml=e.xml||{},!e.$$ref)return e.type||e.items||e.properties||e.additionalProperties?'\n\x3c!-- XML example cannot be generated; root element name is undefined --\x3e':null;var r=e.$$ref.match(/\S*\/(\S+)$/);e.xml.name=r[1]}return Object(ie.memoizedCreateXMLExample)(e,t,n)},Le=[{when:/json/,shouldStringifyTypes:["string"]}],Be=["object"],Fe=function(e,t,n,r){var a=Object(ie.memoizedSampleFromSchema)(e,t,r),s=i()(a),u=S()(Le).call(Le,(function(e,t){var r;return t.when.test(n)?v()(r=[]).call(r,o()(e),o()(t.shouldStringifyTypes)):e}),Be);return te()(u,(function(e){return e===s}))?M()(a,null,2):a},Ue=function(e,t,n,r){var o,a=Fe(e,t,n,r);try{"\n"===(o=ve.a.safeDump(ve.a.safeLoad(a),{lineWidth:-1}))[o.length-1]&&(o=T()(o).call(o,0,o.length-1))}catch(e){return console.error(e),"error: could not generate yaml example"}return o.replace(/\t/g," ")},qe=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:void 0;return e&&Se(e.toJS)&&(e=e.toJS()),r&&Se(r.toJS)&&(r=r.toJS()),/xml/.test(t)?De(e,n,r):/(yaml|yml)/.test(t)?Ue(e,n,t,r):Fe(e,n,t,r)},ze=function(){var e={},t=se.a.location.search;if(!t)return{};if(""!=t){var n=t.substr(1).split("&");for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(r=n[r].split("="),e[decodeURIComponent(r[0])]=r[1]&&decodeURIComponent(r[1])||"")}return e},Ve=function(t){return(t instanceof e?t:e.from(t.toString(),"utf-8")).toString("base64")},We={operationsSorter:{alpha:function(e,t){return e.get("path").localeCompare(t.get("path"))},method:function(e,t){return e.get("method").localeCompare(t.get("method"))}},tagsSorter:{alpha:function(e,t){return e.localeCompare(t)}}},He=function(e){var t=[];for(var n in e){var r=e[n];void 0!==r&&""!==r&&t.push([n,"=",encodeURIComponent(r).replace(/%20/g,"+")].join(""))}return t.join("&")},$e=function(e,t,n){return!!Q()(n,(function(n){return re()(e[n],t[n])}))};function Je(e){return"string"!=typeof e||""===e?"":Object(H.sanitizeUrl)(e)}function Ke(e){return!(!e||D()(e).call(e,"localhost")>=0||D()(e).call(e,"127.0.0.1")>=0||"none"===e)}function Ye(e){if(!W.a.OrderedMap.isOrderedMap(e))return null;if(!e.size)return null;var t=B()(e).call(e,(function(e,t){return U()(t).call(t,"2")&&w()(e.get("content")||{}).length>0})),n=e.get("default")||W.a.OrderedMap(),r=(n.get("content")||W.a.OrderedMap()).keySeq().toJS().length?n:null;return t||r}var Ge=function(e){return"string"==typeof e||e instanceof String?z()(e).call(e).replace(/\s/g,"%20"):""},Ze=function(e){return ce()(Ge(e).replace(/%20/g,"_"))},Xe=function(e){return _()(e).call(e,(function(e,t){return/^x-/.test(t)}))},Qe=function(e){return _()(e).call(e,(function(e,t){return/^pattern|maxLength|minLength|maximum|minimum/.test(t)}))};function et(e,t){var n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){return!0};if("object"!==i()(e)||l()(e)||null===e||!t)return e;var o=A()({},e);return y()(n=w()(o)).call(n,(function(e){e===t&&r(o[e],e)?delete o[e]:o[e]=et(o[e],t,r)})),o}function tt(e){if("string"==typeof e)return e;if(e&&e.toJS&&(e=e.toJS()),"object"===i()(e)&&null!==e)try{return M()(e,null,2)}catch(t){return String(e)}return null==e?"":e.toString()}function nt(e){return"number"==typeof e?e.toString():e}function rt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.returnAll,r=void 0!==n&&n,o=t.allowHashes,a=void 0===o||o;if(!W.a.Map.isMap(e))throw new Error("paramToIdentifier: received a non-Im.Map parameter as input");var i,s,u,c=e.get("name"),l=e.get("in"),p=[];e&&e.hashCode&&l&&c&&a&&p.push(v()(i=v()(s="".concat(l,".")).call(s,c,".hash-")).call(i,e.hashCode()));l&&c&&p.push(v()(u="".concat(l,".")).call(u,c));return p.push(c),r?p:p[0]||""}function ot(e,t){var n,r=rt(e,{returnAll:!0});return _()(n=f()(r).call(r,(function(e){return t[e]}))).call(n,(function(e){return void 0!==e}))[0]}function at(){return st(fe()(32).toString("base64"))}function it(e){return st(de()("sha256").update(e).digest("base64"))}function st(e){return e.replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}var ut=function(e){return!e||!(!ye(e)||!e.isEmpty())}}).call(this,n(65).Buffer)},function(e,t){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){var r=n(247);function o(e,t){for(var n=0;n1?t-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:r,n=null,a=null;return function(){return o(t,n,arguments)||(a=e.apply(null,arguments)),n=arguments,a}}))},function(e,t,n){e.exports=n(674)},function(e,t,n){var r=n(181),o=n(582);function a(t){return"function"==typeof r&&"symbol"==typeof o?(e.exports=a=function(e){return typeof e},e.exports.default=e.exports,e.exports.__esModule=!0):(e.exports=a=function(e){return e&&"function"==typeof r&&e.constructor===r&&e!==r.prototype?"symbol":typeof e},e.exports.default=e.exports,e.exports.__esModule=!0),a(t)}e.exports=a,e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){e.exports=n(608)},function(e,t,n){e.exports=n(606)},function(e,t,n){"use strict";var r=n(40),o=n(107).f,a=n(369),i=n(33),s=n(110),u=n(70),c=n(54),l=function(e){var t=function(t,n,r){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,r)}return e.apply(this,arguments)};return t.prototype=e.prototype,t};e.exports=function(e,t){var n,p,f,h,d,m,v,g,y=e.target,b=e.global,_=e.stat,x=e.proto,w=b?r:_?r[y]:(r[y]||{}).prototype,E=b?i:i[y]||(i[y]={}),S=E.prototype;for(f in t)n=!a(b?f:y+(_?".":"#")+f,e.forced)&&w&&c(w,f),d=E[f],n&&(m=e.noTargetGet?(g=o(w,f))&&g.value:w[f]),h=n&&m?m:t[f],n&&typeof d==typeof h||(v=e.bind&&n?s(h,r):e.wrap&&n?l(h):x&&"function"==typeof h?s(Function.call,h):h,(e.sham||h&&h.sham||d&&d.sham)&&u(v,"sham",!0),E[f]=v,x&&(c(i,p=y+"Prototype")||u(i,p,{}),i[p][f]=h,e.real&&S&&!S[f]&&u(S,f,h)))}},function(e,t,n){e.exports=n(611)},function(e,t,n){e.exports=n(408)},function(e,t,n){var r=n(457),o=n(458),a=n(881),i=n(459),s=n(886),u=n(888),c=n(893),l=n(247),p=n(3);function f(e,t){var n=r(e);if(o){var s=o(e);t&&(s=a(s).call(s,(function(t){return i(e,t).enumerable}))),n.push.apply(n,s)}return n}e.exports=function(e){for(var t=1;t>",i=function(){invariant(!1,"ImmutablePropTypes type checking code is stripped in production.")};i.isRequired=i;var s=function(){return i};function u(e){var t=typeof e;return Array.isArray(e)?"array":e instanceof RegExp?"object":e instanceof o.Iterable?"Immutable."+e.toSource().split(" ")[0]:t}function c(e){function t(t,n,r,o,i,s){for(var u=arguments.length,c=Array(u>6?u-6:0),l=6;l4)}function l(e){var t=e.get("swagger");return"string"==typeof t&&i()(t).call(t,"2.0")}function p(e){return function(t,n){return function(r){return n&&n.specSelectors&&n.specSelectors.specJson?c(n.specSelectors.specJson())?u.a.createElement(e,o()({},r,n,{Ori:t})):u.a.createElement(t,r):(console.warn("OAS3 wrapper: couldn't get spec"),null)}}}},function(e,t,n){e.exports=n(602)},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t,n){"use strict";var r=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable;function i(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,s,u=i(e),c=1;c0){var o=v()(n).call(n,(function(e){return console.error(e),e.line=e.fullPath?_(x,e.fullPath):null,e.path=e.fullPath?e.fullPath.join("."):null,e.level="error",e.type="thrown",e.source="resolver",y()(e,"message",{enumerable:!0,value:e.message}),e}));a.newThrownErrBatch(o)}return r.updateResolved(t)}))}},Se=[],Ce=G()(u()(f.a.mark((function e(){var t,n,r,o,a,i,s,c,l,p,h,m,g,b,x,E,C,O;return f.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=Se.system){e.next=4;break}return console.error("debResolveSubtrees: don't have a system to operate on, aborting."),e.abrupt("return");case 4:if(n=t.errActions,r=t.errSelectors,o=t.fn,a=o.resolveSubtree,i=o.fetch,s=o.AST,c=void 0===s?{}:s,l=t.specSelectors,p=t.specActions,a){e.next=8;break}return console.error("Error: Swagger-Client did not provide a `resolveSubtree` method, doing nothing."),e.abrupt("return");case 8:return h=c.getLineNumberForPath?c.getLineNumberForPath:function(){},m=l.specStr(),g=t.getConfigs(),b=g.modelPropertyMacro,x=g.parameterMacro,E=g.requestInterceptor,C=g.responseInterceptor,e.prev=11,e.next=14,_()(Se).call(Se,function(){var e=u()(f.a.mark((function e(t,o){var s,c,p,g,_,O,j,T,I;return f.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t;case 2:return s=e.sent,c=s.resultMap,p=s.specWithCurrentSubtrees,e.next=7,a(p,o,{baseDoc:l.url(),modelPropertyMacro:b,parameterMacro:x,requestInterceptor:E,responseInterceptor:C});case 7:if(g=e.sent,_=g.errors,O=g.spec,r.allErrors().size&&n.clearBy((function(e){var t;return"thrown"!==e.get("type")||"resolver"!==e.get("source")||!w()(t=e.get("fullPath")).call(t,(function(e,t){return e===o[t]||void 0===o[t]}))})),d()(_)&&_.length>0&&(j=v()(_).call(_,(function(e){return e.line=e.fullPath?h(m,e.fullPath):null,e.path=e.fullPath?e.fullPath.join("."):null,e.level="error",e.type="thrown",e.source="resolver",y()(e,"message",{enumerable:!0,value:e.message}),e})),n.newThrownErrBatch(j)),!O||!l.isOAS3()||"components"!==o[0]||"securitySchemes"!==o[1]){e.next=15;break}return e.next=15,S.a.all(v()(T=A()(I=k()(O)).call(I,(function(e){return"openIdConnect"===e.type}))).call(T,function(){var e=u()(f.a.mark((function e(t){var n,r;return f.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n={url:t.openIdConnectUrl,requestInterceptor:E,responseInterceptor:C},e.prev=1,e.next=4,i(n);case 4:(r=e.sent)instanceof Error||r.status>=400?console.error(r.statusText+" "+n.url):t.openIdConnectData=JSON.parse(r.text),e.next=11;break;case 8:e.prev=8,e.t0=e.catch(1),console.error(e.t0);case 11:case"end":return e.stop()}}),e,null,[[1,8]])})));return function(t){return e.apply(this,arguments)}}()));case 15:return X()(c,o,O),X()(p,o,O),e.abrupt("return",{resultMap:c,specWithCurrentSubtrees:p});case 18:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),S.a.resolve({resultMap:(l.specResolvedSubtree([])||Object(V.Map)()).toJS(),specWithCurrentSubtrees:l.specJson().toJS()}));case 14:O=e.sent,delete Se.system,Se=[],e.next=22;break;case 19:e.prev=19,e.t0=e.catch(11),console.error(e.t0);case 22:p.updateResolvedSubtree([],O.resultMap);case 23:case"end":return e.stop()}}),e,null,[[11,19]])}))),35),Ae=function(e){return function(t){var n;T()(n=v()(Se).call(Se,(function(e){return e.join("@@")}))).call(n,e.join("@@"))>-1||(Se.push(e),Se.system=t,Ce())}};function Oe(e,t,n,r,o){return{type:re,payload:{path:e,value:r,paramName:t,paramIn:n,isXml:o}}}function ke(e,t,n,r){return{type:re,payload:{path:e,param:t,value:n,isXml:r}}}var je=function(e,t){return{type:me,payload:{path:e,value:t}}},Te=function(){return{type:me,payload:{path:[],value:Object(V.Map)()}}},Ie=function(e,t){return{type:ae,payload:{pathMethod:e,isOAS3:t}}},Pe=function(e,t,n,r){return{type:oe,payload:{pathMethod:e,paramName:t,paramIn:n,includeEmptyValue:r}}};function Ne(e){return{type:fe,payload:{pathMethod:e}}}function Me(e,t){return{type:he,payload:{path:e,value:t,key:"consumes_value"}}}function Re(e,t){return{type:he,payload:{path:e,value:t,key:"produces_value"}}}var De=function(e,t,n){return{payload:{path:e,method:t,res:n},type:ie}},Le=function(e,t,n){return{payload:{path:e,method:t,req:n},type:se}},Be=function(e,t,n){return{payload:{path:e,method:t,req:n},type:ue}},Fe=function(e){return{payload:e,type:ce}},Ue=function(e){return function(t){var n,r,o=t.fn,a=t.specActions,i=t.specSelectors,s=t.getConfigs,c=t.oas3Selectors,l=e.pathName,p=e.method,h=e.operation,m=s(),g=m.requestInterceptor,y=m.responseInterceptor,b=h.toJS();h&&h.get("parameters")&&P()(n=A()(r=h.get("parameters")).call(r,(function(e){return e&&!0===e.get("allowEmptyValue")}))).call(n,(function(t){if(i.parameterInclusionSettingFor([l,p],t.get("name"),t.get("in"))){e.parameters=e.parameters||{};var n=Object(Q.B)(t,e.parameters);(!n||n&&0===n.size)&&(e.parameters[t.get("name")]="")}}));if(e.contextUrl=H()(i.url()).toString(),b&&b.operationId?e.operationId=b.operationId:b&&l&&p&&(e.operationId=o.opId(b,l,p)),i.isOAS3()){var _,x=M()(_="".concat(l,":")).call(_,p);e.server=c.selectedServer(x)||c.selectedServer();var w=c.serverVariables({server:e.server,namespace:x}).toJS(),E=c.serverVariables({server:e.server}).toJS();e.serverVariables=D()(w).length?w:E,e.requestContentType=c.requestContentType(l,p),e.responseContentType=c.responseContentType(l,p)||"*/*";var S,C=c.requestBodyValue(l,p),O=c.requestBodyInclusionSetting(l,p);if(C&&C.toJS)e.requestBody=A()(S=v()(C).call(C,(function(e){return V.Map.isMap(e)?e.get("value"):e}))).call(S,(function(e,t){return(d()(e)?0!==e.length:!Object(Q.q)(e))||O.get(t)})).toJS();else e.requestBody=C}var k=B()({},e);k=o.buildRequest(k),a.setRequest(e.pathName,e.method,k);var j=function(){var t=u()(f.a.mark((function t(n){var r,o;return f.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,g.apply(undefined,[n]);case 2:return r=t.sent,o=B()({},r),a.setMutatedRequest(e.pathName,e.method,o),t.abrupt("return",r);case 6:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}();e.requestInterceptor=j,e.responseInterceptor=y;var T=U()();return o.execute(e).then((function(t){t.duration=U()()-T,a.setResponse(e.pathName,e.method,t)})).catch((function(t){"Failed to fetch"===t.message&&(t.name="",t.message='**Failed to fetch.** \n**Possible Reasons:** \n - CORS \n - Network Failure \n - URL scheme must be "http" or "https" for CORS request.'),a.setResponse(e.pathName,e.method,{error:!0,err:Object($.serializeError)(t)})}))}},qe=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.path,n=e.method,r=i()(e,["path","method"]);return function(e){var a=e.fn.fetch,i=e.specSelectors,s=e.specActions,u=i.specJsonWithResolvedSubtrees().toJS(),c=i.operationScheme(t,n),l=i.contentTypeValues([t,n]).toJS(),p=l.requestContentType,f=l.responseContentType,h=/xml/i.test(p),d=i.parameterValues([t,n],h).toJS();return s.executeRequest(o()(o()({},r),{},{fetch:a,spec:u,pathName:t,method:n,parameters:d,requestContentType:p,scheme:c,responseContentType:f}))}};function ze(e,t){return{type:le,payload:{path:e,method:t}}}function Ve(e,t){return{type:pe,payload:{path:e,method:t}}}function We(e,t,n){return{type:ve,payload:{scheme:e,path:t,method:n}}}},function(e,t,n){var r=n(33),o=n(54),a=n(243),i=n(71).f;e.exports=function(e){var t=r.Symbol||(r.Symbol={});o(t,e)||i(t,e,{value:a.f(e)})}},function(e,t,n){"use strict";var r=n(167),o=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],a=["scalar","sequence","mapping"];e.exports=function(e,t){var n,i;if(t=t||{},Object.keys(t).forEach((function(t){if(-1===o.indexOf(t))throw new r('Unknown option "'+t+'" is met in definition of "'+e+'" YAML type.')})),this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(e){return e},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.defaultStyle=t.defaultStyle||null,this.styleAliases=(n=t.styleAliases||null,i={},null!==n&&Object.keys(n).forEach((function(e){n[e].forEach((function(t){i[String(t)]=e}))})),i),-1===a.indexOf(this.kind))throw new r('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}},function(e,t,n){var r=n(37);e.exports=!r((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},function(e,t,n){var r=n(181),o=n(250),a=n(249),i=n(190);e.exports=function(e,t){var n=void 0!==r&&o(e)||e["@@iterator"];if(!n){if(a(e)||(n=i(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var s=0,u=function(){};return{s:u,n:function(){return s>=e.length?{done:!0}:{done:!1,value:e[s++]}},e:function(e){throw e},f:u}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var c,l=!0,p=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return l=e.done,e},e:function(e){p=!0,c=e},f:function(){try{l||null==n.return||n.return()}finally{if(p)throw c}}}},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){var r=n(45);e.exports=function(e){if(!r(e))throw TypeError(String(e)+" is not an object");return e}},function(e,t){var n=Array.isArray;e.exports=n},function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t,n){var r=n(62),o={}.hasOwnProperty;e.exports=function(e,t){return o.call(r(e),t)}},function(e,t,n){var r=n(458),o=n(460),a=n(898);e.exports=function(e,t){if(null==e)return{};var n,i,s=a(e,t);if(r){var u=r(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){"use strict";n.r(t),n.d(t,"UPDATE_SELECTED_SERVER",(function(){return r})),n.d(t,"UPDATE_REQUEST_BODY_VALUE",(function(){return o})),n.d(t,"UPDATE_REQUEST_BODY_VALUE_RETAIN_FLAG",(function(){return a})),n.d(t,"UPDATE_REQUEST_BODY_INCLUSION",(function(){return i})),n.d(t,"UPDATE_ACTIVE_EXAMPLES_MEMBER",(function(){return s})),n.d(t,"UPDATE_REQUEST_CONTENT_TYPE",(function(){return u})),n.d(t,"UPDATE_RESPONSE_CONTENT_TYPE",(function(){return c})),n.d(t,"UPDATE_SERVER_VARIABLE_VALUE",(function(){return l})),n.d(t,"SET_REQUEST_BODY_VALIDATE_ERROR",(function(){return p})),n.d(t,"CLEAR_REQUEST_BODY_VALIDATE_ERROR",(function(){return f})),n.d(t,"CLEAR_REQUEST_BODY_VALUE",(function(){return h})),n.d(t,"setSelectedServer",(function(){return d})),n.d(t,"setRequestBodyValue",(function(){return m})),n.d(t,"setRetainRequestBodyValueFlag",(function(){return v})),n.d(t,"setRequestBodyInclusion",(function(){return g})),n.d(t,"setActiveExamplesMember",(function(){return y})),n.d(t,"setRequestContentType",(function(){return b})),n.d(t,"setResponseContentType",(function(){return _})),n.d(t,"setServerVariableValue",(function(){return x})),n.d(t,"setRequestBodyValidateError",(function(){return w})),n.d(t,"clearRequestBodyValidateError",(function(){return E})),n.d(t,"initRequestBodyValidateError",(function(){return S})),n.d(t,"clearRequestBodyValue",(function(){return C}));var r="oas3_set_servers",o="oas3_set_request_body_value",a="oas3_set_request_body_retain_flag",i="oas3_set_request_body_inclusion",s="oas3_set_active_examples_member",u="oas3_set_request_content_type",c="oas3_set_response_content_type",l="oas3_set_server_variable_value",p="oas3_set_request_body_validate_error",f="oas3_clear_request_body_validate_error",h="oas3_clear_request_body_value";function d(e,t){return{type:r,payload:{selectedServerUrl:e,namespace:t}}}function m(e){var t=e.value,n=e.pathMethod;return{type:o,payload:{value:t,pathMethod:n}}}var v=function(e){var t=e.value,n=e.pathMethod;return{type:a,payload:{value:t,pathMethod:n}}};function g(e){var t=e.value,n=e.pathMethod,r=e.name;return{type:i,payload:{value:t,pathMethod:n,name:r}}}function y(e){var t=e.name,n=e.pathMethod,r=e.contextType,o=e.contextName;return{type:s,payload:{name:t,pathMethod:n,contextType:r,contextName:o}}}function b(e){var t=e.value,n=e.pathMethod;return{type:u,payload:{value:t,pathMethod:n}}}function _(e){var t=e.value,n=e.path,r=e.method;return{type:c,payload:{value:t,path:n,method:r}}}function x(e){var t=e.server,n=e.namespace,r=e.key,o=e.val;return{type:l,payload:{server:t,namespace:n,key:r,val:o}}}var w=function(e){var t=e.path,n=e.method,r=e.validationErrors;return{type:p,payload:{path:t,method:n,validationErrors:r}}},E=function(e){var t=e.path,n=e.method;return{type:f,payload:{path:t,method:n}}},S=function(e){var t=e.pathMethod;return{type:f,payload:{path:t[0],method:t[1]}}},C=function(e){var t=e.pathMethod;return{type:h,payload:{pathMethod:t}}}},function(e,t,n){"use strict";var r=!("undefined"==typeof window||!window.document||!window.document.createElement),o={canUseDOM:r,canUseWorkers:"undefined"!=typeof Worker,canUseEventListeners:r&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:r&&!!window.screen,isInWorker:!r};e.exports=o},function(e,t,n){e.exports=n(677)},function(e,t){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},function(e,t,n){"use strict";n.d(t,"b",(function(){return m})),n.d(t,"e",(function(){return v})),n.d(t,"c",(function(){return y})),n.d(t,"a",(function(){return b})),n.d(t,"d",(function(){return _}));var r=n(50),o=n.n(r),a=n(18),i=n.n(a),s=n(2),u=n.n(s),c=n(59),l=n.n(c),p=n(363),f=n.n(p),h=function(e){return String.prototype.toLowerCase.call(e)},d=function(e){return e.replace(/[^\w]/gi,"_")};function m(e){var t=e.openapi;return!!t&&f()(t,"3")}function v(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=r.v2OperationIdCompatibilityMode;if(!e||"object"!==i()(e))return null;var a=(e.operationId||"").replace(/\s/g,"");return a.length?d(e.operationId):g(t,n,{v2OperationIdCompatibilityMode:o})}function g(e,t){var n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=r.v2OperationIdCompatibilityMode;if(o){var a,i,s=u()(a="".concat(t.toLowerCase(),"_")).call(a,e).replace(/[\s!@#$%^&*()_+=[{\]};:<>|./?,\\'""-]/g,"_");return(s=s||u()(i="".concat(e.substring(1),"_")).call(i,t)).replace(/((_){2,})/g,"_").replace(/^(_)*/g,"").replace(/([_])*$/g,"")}return u()(n="".concat(h(t))).call(n,d(e))}function y(e,t){var n;return u()(n="".concat(h(t),"-")).call(n,e)}function b(e,t){return e&&e.paths?function(e,t){return function(e,t,n){if(!e||"object"!==i()(e)||!e.paths||"object"!==i()(e.paths))return null;var r=e.paths;for(var o in r)for(var a in r[o])if("PARAMETERS"!==a.toUpperCase()){var s=r[o][a];if(s&&"object"===i()(s)){var u={spec:e,pathName:o,method:a.toUpperCase(),operation:s},c=t(u);if(n&&c)return u}}return}(e,t,!0)||null}(e,(function(e){var n=e.pathName,r=e.method,o=e.operation;if(!o||"object"!==i()(o))return!1;var a=o.operationId;return[v(o,n,r),y(n,r),a].some((function(e){return e&&e===t}))})):null}function _(e){var t=e.spec,n=t.paths,r={};if(!n||t.$$normalized)return e;for(var a in n){var i=n[a];if(l()(i)){var s=i.parameters,c=function(e){var n=i[e];if(!l()(n))return"continue";var c=v(n,a,e);if(c){r[c]?r[c].push(n):r[c]=[n];var p=r[c];if(p.length>1)p.forEach((function(e,t){var n;e.__originalOperationId=e.__originalOperationId||e.operationId,e.operationId=u()(n="".concat(c)).call(n,t+1)}));else if(void 0!==n.operationId){var f=p[0];f.__originalOperationId=f.__originalOperationId||n.operationId,f.operationId=c}}if("parameters"!==e){var h=[],d={};for(var m in t)"produces"!==m&&"consumes"!==m&&"security"!==m||(d[m]=t[m],h.push(d));if(s&&(d.parameters=s,h.push(d)),h.length){var g,y=o()(h);try{for(y.s();!(g=y.n()).done;){var b=g.value;for(var _ in b)if(n[_]){if("parameters"===_){var x,w=o()(b[_]);try{var E=function(){var e=x.value;n[_].some((function(t){return t.name&&t.name===e.name||t.$ref&&t.$ref===e.$ref||t.$$ref&&t.$$ref===e.$$ref||t===e}))||n[_].push(e)};for(w.s();!(x=w.n()).done;)E()}catch(e){w.e(e)}finally{w.f()}}}else n[_]=b[_]}}catch(e){y.e(e)}finally{y.f()}}}};for(var p in i)c(p)}}return t.$$normalized=!0,e}},function(e,t,n){"use strict";n.r(t),n.d(t,"NEW_THROWN_ERR",(function(){return o})),n.d(t,"NEW_THROWN_ERR_BATCH",(function(){return a})),n.d(t,"NEW_SPEC_ERR",(function(){return i})),n.d(t,"NEW_SPEC_ERR_BATCH",(function(){return s})),n.d(t,"NEW_AUTH_ERR",(function(){return u})),n.d(t,"CLEAR",(function(){return c})),n.d(t,"CLEAR_BY",(function(){return l})),n.d(t,"newThrownErr",(function(){return p})),n.d(t,"newThrownErrBatch",(function(){return f})),n.d(t,"newSpecErr",(function(){return h})),n.d(t,"newSpecErrBatch",(function(){return d})),n.d(t,"newAuthErr",(function(){return m})),n.d(t,"clear",(function(){return v})),n.d(t,"clearBy",(function(){return g}));var r=n(146),o="err_new_thrown_err",a="err_new_thrown_err_batch",i="err_new_spec_err",s="err_new_spec_err_batch",u="err_new_auth_err",c="err_clear",l="err_clear_by";function p(e){return{type:o,payload:Object(r.serializeError)(e)}}function f(e){return{type:a,payload:e}}function h(e){return{type:i,payload:e}}function d(e){return{type:s,payload:e}}function m(e){return{type:u,payload:e}}function v(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{type:c,payload:e}}function g(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){return!0};return{type:l,payload:e}}},function(e,t,n){var r=n(109);e.exports=function(e){return Object(r(e))}},function(e,t){"function"==typeof Object.create?e.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}},function(e,t,n){var r=n(65),o=r.Buffer;function a(e,t){for(var n in e)t[n]=e[n]}function i(e,t,n){return o(e,t,n)}o.from&&o.alloc&&o.allocUnsafe&&o.allocUnsafeSlow?e.exports=r:(a(r,t),t.Buffer=i),a(o,i),i.from=function(e,t,n){if("number"==typeof e)throw new TypeError("Argument must not be a number");return o(e,t,n)},i.alloc=function(e,t,n){if("number"!=typeof e)throw new TypeError("Argument must be a number");var r=o(e);return void 0!==t?"string"==typeof n?r.fill(t,n):r.fill(t):r.fill(0),r},i.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return o(e)},i.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return r.SlowBuffer(e)}},function(e,t,n){"use strict";(function(e){var r=n(598),o=n(599),a=n(383);function i(){return u.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(e,t){if(i()=i())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i().toString(16)+" bytes");return 0|e}function d(e,t){if(u.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return q(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return z(e).length;default:if(r)return q(e).length;t=(""+t).toLowerCase(),r=!0}}function m(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return T(this,t,n);case"utf8":case"utf-8":return A(this,t,n);case"ascii":return k(this,t,n);case"latin1":case"binary":return j(this,t,n);case"base64":return C(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return I(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function v(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function g(e,t,n,r,o){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=o?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(o)return-1;n=e.length-1}else if(n<0){if(!o)return-1;n=0}if("string"==typeof t&&(t=u.from(t,r)),u.isBuffer(t))return 0===t.length?-1:y(e,t,n,r,o);if("number"==typeof t)return t&=255,u.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):y(e,[t],n,r,o);throw new TypeError("val must be string, number or Buffer")}function y(e,t,n,r,o){var a,i=1,s=e.length,u=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;i=2,s/=2,u/=2,n/=2}function c(e,t){return 1===i?e[t]:e.readUInt16BE(t*i)}if(o){var l=-1;for(a=n;as&&(n=s-u),a=n;a>=0;a--){for(var p=!0,f=0;fo&&(r=o):r=o;var a=t.length;if(a%2!=0)throw new TypeError("Invalid hex string");r>a/2&&(r=a/2);for(var i=0;i>8,o=n%256,a.push(o),a.push(r);return a}(t,e.length-n),e,n,r)}function C(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function A(e,t,n){n=Math.min(e.length,n);for(var r=[],o=t;o239?4:c>223?3:c>191?2:1;if(o+p<=n)switch(p){case 1:c<128&&(l=c);break;case 2:128==(192&(a=e[o+1]))&&(u=(31&c)<<6|63&a)>127&&(l=u);break;case 3:a=e[o+1],i=e[o+2],128==(192&a)&&128==(192&i)&&(u=(15&c)<<12|(63&a)<<6|63&i)>2047&&(u<55296||u>57343)&&(l=u);break;case 4:a=e[o+1],i=e[o+2],s=e[o+3],128==(192&a)&&128==(192&i)&&128==(192&s)&&(u=(15&c)<<18|(63&a)<<12|(63&i)<<6|63&s)>65535&&u<1114112&&(l=u)}null===l?(l=65533,p=1):l>65535&&(l-=65536,r.push(l>>>10&1023|55296),l=56320|1023&l),r.push(l),o+=p}return function(e){var t=e.length;if(t<=O)return String.fromCharCode.apply(String,e);var n="",r=0;for(;r0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),""},u.prototype.compare=function(e,t,n,r,o){if(!u.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===o&&(o=this.length),t<0||n>e.length||r<0||o>this.length)throw new RangeError("out of range index");if(r>=o&&t>=n)return 0;if(r>=o)return-1;if(t>=n)return 1;if(this===e)return 0;for(var a=(o>>>=0)-(r>>>=0),i=(n>>>=0)-(t>>>=0),s=Math.min(a,i),c=this.slice(r,o),l=e.slice(t,n),p=0;po)&&(n=o),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var a=!1;;)switch(r){case"hex":return b(this,e,t,n);case"utf8":case"utf-8":return _(this,e,t,n);case"ascii":return x(this,e,t,n);case"latin1":case"binary":return w(this,e,t,n);case"base64":return E(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return S(this,e,t,n);default:if(a)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),a=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var O=4096;function k(e,t,n){var r="";n=Math.min(e.length,n);for(var o=t;or)&&(n=r);for(var o="",a=t;an)throw new RangeError("Trying to access beyond buffer length")}function N(e,t,n,r,o,a){if(!u.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||te.length)throw new RangeError("Index out of range")}function M(e,t,n,r){t<0&&(t=65535+t+1);for(var o=0,a=Math.min(e.length-n,2);o>>8*(r?o:1-o)}function R(e,t,n,r){t<0&&(t=4294967295+t+1);for(var o=0,a=Math.min(e.length-n,4);o>>8*(r?o:3-o)&255}function D(e,t,n,r,o,a){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function L(e,t,n,r,a){return a||D(e,0,n,4),o.write(e,t,n,r,23,4),n+4}function B(e,t,n,r,a){return a||D(e,0,n,8),o.write(e,t,n,r,52,8),n+8}u.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t0&&(o*=256);)r+=this[e+--t]*o;return r},u.prototype.readUInt8=function(e,t){return t||P(e,1,this.length),this[e]},u.prototype.readUInt16LE=function(e,t){return t||P(e,2,this.length),this[e]|this[e+1]<<8},u.prototype.readUInt16BE=function(e,t){return t||P(e,2,this.length),this[e]<<8|this[e+1]},u.prototype.readUInt32LE=function(e,t){return t||P(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},u.prototype.readUInt32BE=function(e,t){return t||P(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},u.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||P(e,t,this.length);for(var r=this[e],o=1,a=0;++a=(o*=128)&&(r-=Math.pow(2,8*t)),r},u.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||P(e,t,this.length);for(var r=t,o=1,a=this[e+--r];r>0&&(o*=256);)a+=this[e+--r]*o;return a>=(o*=128)&&(a-=Math.pow(2,8*t)),a},u.prototype.readInt8=function(e,t){return t||P(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},u.prototype.readInt16LE=function(e,t){t||P(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt16BE=function(e,t){t||P(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt32LE=function(e,t){return t||P(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},u.prototype.readInt32BE=function(e,t){return t||P(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},u.prototype.readFloatLE=function(e,t){return t||P(e,4,this.length),o.read(this,e,!0,23,4)},u.prototype.readFloatBE=function(e,t){return t||P(e,4,this.length),o.read(this,e,!1,23,4)},u.prototype.readDoubleLE=function(e,t){return t||P(e,8,this.length),o.read(this,e,!0,52,8)},u.prototype.readDoubleBE=function(e,t){return t||P(e,8,this.length),o.read(this,e,!1,52,8)},u.prototype.writeUIntLE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||N(this,e,t,n,Math.pow(2,8*n)-1,0);var o=1,a=0;for(this[t]=255&e;++a=0&&(a*=256);)this[t+o]=e/a&255;return t+n},u.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,1,255,0),u.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},u.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):M(this,e,t,!0),t+2},u.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):M(this,e,t,!1),t+2},u.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):R(this,e,t,!0),t+4},u.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):R(this,e,t,!1),t+4},u.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);N(this,e,t,n,o-1,-o)}var a=0,i=1,s=0;for(this[t]=255&e;++a>0)-s&255;return t+n},u.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);N(this,e,t,n,o-1,-o)}var a=n-1,i=1,s=0;for(this[t+a]=255&e;--a>=0&&(i*=256);)e<0&&0===s&&0!==this[t+a+1]&&(s=1),this[t+a]=(e/i>>0)-s&255;return t+n},u.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,1,127,-128),u.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},u.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):M(this,e,t,!0),t+2},u.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):M(this,e,t,!1),t+2},u.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,4,2147483647,-2147483648),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):R(this,e,t,!0),t+4},u.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):R(this,e,t,!1),t+4},u.prototype.writeFloatLE=function(e,t,n){return L(this,e,t,!0,n)},u.prototype.writeFloatBE=function(e,t,n){return L(this,e,t,!1,n)},u.prototype.writeDoubleLE=function(e,t,n){return B(this,e,t,!0,n)},u.prototype.writeDoubleBE=function(e,t,n){return B(this,e,t,!1,n)},u.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t=0;--o)e[o+t]=this[o+n];else if(a<1e3||!u.TYPED_ARRAY_SUPPORT)for(o=0;o>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(a=t;a55295&&n<57344){if(!o){if(n>56319){(t-=3)>-1&&a.push(239,191,189);continue}if(i+1===r){(t-=3)>-1&&a.push(239,191,189);continue}o=n;continue}if(n<56320){(t-=3)>-1&&a.push(239,191,189),o=n;continue}n=65536+(o-55296<<10|n-56320)}else o&&(t-=3)>-1&&a.push(239,191,189);if(o=null,n<128){if((t-=1)<0)break;a.push(n)}else if(n<2048){if((t-=2)<0)break;a.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;a.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;a.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return a}function z(e){return r.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(F,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function V(e,t,n,r){for(var o=0;o=t.length||o>=e.length);++o)t[o+n]=e[o];return o}}).call(this,n(53))},function(e,t,n){var r;!function(){"use strict";var n={}.hasOwnProperty;function o(){for(var e=[],t=0;t0?o(r(e),9007199254740991):0}},function(e,t,n){var r,o,a,i=n(374),s=n(40),u=n(45),c=n(70),l=n(54),p=n(235),f=n(188),h=n(159),d="Object already initialized",m=s.WeakMap;if(i){var v=p.state||(p.state=new m),g=v.get,y=v.has,b=v.set;r=function(e,t){if(y.call(v,e))throw new TypeError(d);return t.facade=e,b.call(v,e,t),t},o=function(e){return g.call(v,e)||{}},a=function(e){return y.call(v,e)}}else{var _=f("state");h[_]=!0,r=function(e,t){if(l(e,_))throw new TypeError(d);return t.facade=e,c(e,_,t),t},o=function(e){return l(e,_)?e[_]:{}},a=function(e){return l(e,_)}}e.exports={set:r,get:o,has:a,enforce:function(e){return a(e)?o(e):r(e,{})},getterFor:function(e){return function(t){var n;if(!u(t)||(n=o(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return n}}}},function(e,t,n){"use strict";function r(e){return function(){return e}}var o=function(){};o.thatReturns=r,o.thatReturnsFalse=r(!1),o.thatReturnsTrue=r(!0),o.thatReturnsNull=r(null),o.thatReturnsThis=function(){return this},o.thatReturnsArgument=function(e){return e},e.exports=o},function(e,t,n){"use strict";var r=n(30),o=n(38),a=n(481),i=n(124),s=n(482),u=n(142),c=n(208),l=n(25),p=[],f=0,h=a.getPooled(),d=!1,m=null;function v(){w.ReactReconcileTransaction&&m||r("123")}var g=[{initialize:function(){this.dirtyComponentsLength=p.length},close:function(){this.dirtyComponentsLength!==p.length?(p.splice(0,this.dirtyComponentsLength),x()):p.length=0}},{initialize:function(){this.callbackQueue.reset()},close:function(){this.callbackQueue.notifyAll()}}];function y(){this.reinitializeTransaction(),this.dirtyComponentsLength=null,this.callbackQueue=a.getPooled(),this.reconcileTransaction=w.ReactReconcileTransaction.getPooled(!0)}function b(e,t){return e._mountOrder-t._mountOrder}function _(e){var t=e.dirtyComponentsLength;t!==p.length&&r("124",t,p.length),p.sort(b),f++;for(var n=0;n",'"',"`"," ","\r","\n","\t"]),l=["'"].concat(c),p=["%","/","?",";","#"].concat(l),f=["/","?","#"],h=/^[+a-z0-9A-Z_-]{0,63}$/,d=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,m={javascript:!0,"javascript:":!0},v={javascript:!0,"javascript:":!0},g={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},y=n(1107);function b(e,t,n){if(e&&o.isObject(e)&&e instanceof a)return e;var r=new a;return r.parse(e,t,n),r}a.prototype.parse=function(e,t,n){if(!o.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var a=e.indexOf("?"),s=-1!==a&&a127?N+="x":N+=P[M];if(!N.match(h)){var D=T.slice(0,O),L=T.slice(O+1),B=P.match(d);B&&(D.push(B[1]),L.unshift(B[2])),L.length&&(b="/"+L.join(".")+b),this.hostname=D.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),j||(this.hostname=r.toASCII(this.hostname));var F=this.port?":"+this.port:"",U=this.hostname||"";this.host=U+F,this.href+=this.host,j&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==b[0]&&(b="/"+b))}if(!m[w])for(O=0,I=l.length;O0)&&n.host.split("@"))&&(n.auth=j.shift(),n.host=n.hostname=j.shift());return n.search=e.search,n.query=e.query,o.isNull(n.pathname)&&o.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.href=n.format(),n}if(!E.length)return n.pathname=null,n.search?n.path="/"+n.search:n.path=null,n.href=n.format(),n;for(var C=E.slice(-1)[0],A=(n.host||e.host||E.length>1)&&("."===C||".."===C)||""===C,O=0,k=E.length;k>=0;k--)"."===(C=E[k])?E.splice(k,1):".."===C?(E.splice(k,1),O++):O&&(E.splice(k,1),O--);if(!x&&!w)for(;O--;O)E.unshift("..");!x||""===E[0]||E[0]&&"/"===E[0].charAt(0)||E.unshift(""),A&&"/"!==E.join("/").substr(-1)&&E.push("");var j,T=""===E[0]||E[0]&&"/"===E[0].charAt(0);S&&(n.hostname=n.host=T?"":E.length?E.shift():"",(j=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=j.shift(),n.host=n.hostname=j.shift()));return(x=x||n.host&&E.length)&&!T&&E.unshift(""),E.length?n.pathname=E.join("/"):(n.pathname=null,n.path=null),o.isNull(n.pathname)&&o.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.auth=e.auth||n.auth,n.slashes=n.slashes||e.slashes,n.href=n.format(),n},a.prototype.parseHost=function(){var e=this.host,t=s.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},function(e,t,n){"use strict";n.r(t),n.d(t,"SHOW_AUTH_POPUP",(function(){return h})),n.d(t,"AUTHORIZE",(function(){return d})),n.d(t,"LOGOUT",(function(){return m})),n.d(t,"PRE_AUTHORIZE_OAUTH2",(function(){return v})),n.d(t,"AUTHORIZE_OAUTH2",(function(){return g})),n.d(t,"VALIDATE",(function(){return y})),n.d(t,"CONFIGURE_AUTH",(function(){return b})),n.d(t,"RESTORE_AUTHORIZATION",(function(){return _})),n.d(t,"showDefinitions",(function(){return x})),n.d(t,"authorize",(function(){return w})),n.d(t,"authorizeWithPersistOption",(function(){return E})),n.d(t,"logout",(function(){return S})),n.d(t,"logoutWithPersistOption",(function(){return C})),n.d(t,"preAuthorizeImplicit",(function(){return A})),n.d(t,"authorizeOauth2",(function(){return O})),n.d(t,"authorizeOauth2WithPersistOption",(function(){return k})),n.d(t,"authorizePassword",(function(){return j})),n.d(t,"authorizeApplication",(function(){return T})),n.d(t,"authorizeAccessCodeWithFormParams",(function(){return I})),n.d(t,"authorizeAccessCodeWithBasicAuthentication",(function(){return P})),n.d(t,"authorizeRequest",(function(){return N})),n.d(t,"configureAuth",(function(){return M})),n.d(t,"restoreAuthorization",(function(){return R})),n.d(t,"persistAuthorizationIfNeeded",(function(){return D}));var r=n(18),o=n.n(r),a=n(32),i=n.n(a),s=n(20),u=n.n(s),c=n(96),l=n.n(c),p=n(26),f=n(5),h="show_popup",d="authorize",m="logout",v="pre_authorize_oauth2",g="authorize_oauth2",y="validate",b="configure_auth",_="restore_authorization";function x(e){return{type:h,payload:e}}function w(e){return{type:d,payload:e}}var E=function(e){return function(t){var n=t.authActions;n.authorize(e),n.persistAuthorizationIfNeeded()}};function S(e){return{type:m,payload:e}}var C=function(e){return function(t){var n=t.authActions;n.logout(e),n.persistAuthorizationIfNeeded()}},A=function(e){return function(t){var n=t.authActions,r=t.errActions,o=e.auth,a=e.token,s=e.isValid,u=o.schema,c=o.name,l=u.get("flow");delete p.a.swaggerUIRedirectOauth2,"accessCode"===l||s||r.newAuthErr({authId:c,source:"auth",level:"warning",message:"Authorization may be unsafe, passed state was changed in server Passed state wasn't returned from auth server"}),a.error?r.newAuthErr({authId:c,source:"auth",level:"error",message:i()(a)}):n.authorizeOauth2WithPersistOption({auth:o,token:a})}};function O(e){return{type:g,payload:e}}var k=function(e){return function(t){var n=t.authActions;n.authorizeOauth2(e),n.persistAuthorizationIfNeeded()}},j=function(e){return function(t){var n=t.authActions,r=e.schema,o=e.name,a=e.username,i=e.password,s=e.passwordType,c=e.clientId,l=e.clientSecret,p={grant_type:"password",scope:e.scopes.join(" "),username:a,password:i},h={};switch(s){case"request-body":!function(e,t,n){t&&u()(e,{client_id:t});n&&u()(e,{client_secret:n})}(p,c,l);break;case"basic":h.Authorization="Basic "+Object(f.a)(c+":"+l);break;default:console.warn("Warning: invalid passwordType ".concat(s," was passed, not including client id and secret"))}return n.authorizeRequest({body:Object(f.b)(p),url:r.get("tokenUrl"),name:o,headers:h,query:{},auth:e})}};var T=function(e){return function(t){var n=t.authActions,r=e.schema,o=e.scopes,a=e.name,i=e.clientId,s=e.clientSecret,u={Authorization:"Basic "+Object(f.a)(i+":"+s)},c={grant_type:"client_credentials",scope:o.join(" ")};return n.authorizeRequest({body:Object(f.b)(c),name:a,url:r.get("tokenUrl"),auth:e,headers:u})}},I=function(e){var t=e.auth,n=e.redirectUrl;return function(e){var r=e.authActions,o=t.schema,a=t.name,i=t.clientId,s=t.clientSecret,u=t.codeVerifier,c={grant_type:"authorization_code",code:t.code,client_id:i,client_secret:s,redirect_uri:n,code_verifier:u};return r.authorizeRequest({body:Object(f.b)(c),name:a,url:o.get("tokenUrl"),auth:t})}},P=function(e){var t=e.auth,n=e.redirectUrl;return function(e){var r=e.authActions,o=t.schema,a=t.name,i=t.clientId,s=t.clientSecret,u=t.codeVerifier,c={Authorization:"Basic "+Object(f.a)(i+":"+s)},l={grant_type:"authorization_code",code:t.code,client_id:i,redirect_uri:n,code_verifier:u};return r.authorizeRequest({body:Object(f.b)(l),name:a,url:o.get("tokenUrl"),auth:t,headers:c})}},N=function(e){return function(t){var n,r=t.fn,a=t.getConfigs,s=t.authActions,c=t.errActions,p=t.oas3Selectors,f=t.specSelectors,h=t.authSelectors,d=e.body,m=e.query,v=void 0===m?{}:m,g=e.headers,y=void 0===g?{}:g,b=e.name,_=e.url,x=e.auth,w=(h.getConfigs()||{}).additionalQueryStringParams;if(f.isOAS3()){var E=p.serverEffectiveValue(p.selectedServer());n=l()(_,E,!0)}else n=l()(_,f.url(),!0);"object"===o()(w)&&(n.query=u()({},n.query,w));var S=n.toString(),C=u()({Accept:"application/json, text/plain, */*","Content-Type":"application/x-www-form-urlencoded","X-Requested-With":"XMLHttpRequest"},y);r.fetch({url:S,method:"post",headers:C,query:v,body:d,requestInterceptor:a().requestInterceptor,responseInterceptor:a().responseInterceptor}).then((function(e){var t=JSON.parse(e.data),n=t&&(t.error||""),r=t&&(t.parseError||"");e.ok?n||r?c.newAuthErr({authId:b,level:"error",source:"auth",message:i()(t)}):s.authorizeOauth2WithPersistOption({auth:x,token:t}):c.newAuthErr({authId:b,level:"error",source:"auth",message:e.statusText})})).catch((function(e){var t=new Error(e).message;if(e.response&&e.response.data){var n=e.response.data;try{var r="string"==typeof n?JSON.parse(n):n;r.error&&(t+=", error: ".concat(r.error)),r.error_description&&(t+=", description: ".concat(r.error_description))}catch(e){}}c.newAuthErr({authId:b,level:"error",source:"auth",message:t})}))}};function M(e){return{type:b,payload:e}}function R(e){return{type:_,payload:e}}var D=function(){return function(e){var t=e.authSelectors;if((0,e.getConfigs)().persistAuthorization){var n=t.authorized();localStorage.setItem("authorized",i()(n.toJS()))}}}},function(e,t,n){var r=n(1072);e.exports=function(e){for(var t=1;tS;S++)if((h||S in x)&&(b=w(y=x[S],S,_),e))if(t)A[S]=b;else if(b)switch(e){case 3:return!0;case 5:return y;case 6:return S;case 2:u.call(A,y)}else switch(e){case 4:return!1;case 7:u.call(A,y)}return p?-1:c||l?l:A}};e.exports={forEach:c(0),map:c(1),filter:c(2),some:c(3),every:c(4),find:c(5),findIndex:c(6),filterOut:c(7)}},function(e,t,n){n(161);var r=n(586),o=n(40),a=n(101),i=n(70),s=n(130),u=n(41)("toStringTag");for(var c in r){var l=o[c],p=l&&l.prototype;p&&a(p)!==u&&i(p,u,c),s[c]=s.Array}},function(e,t,n){"use strict";e.exports={current:null}},function(e,t){e.exports=function(e){return null!=e&&"object"==typeof e}},function(e,t){var n,r,o=e.exports={};function a(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function s(e){if(n===setTimeout)return setTimeout(e,0);if((n===a||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:a}catch(e){n=a}try{r="function"==typeof clearTimeout?clearTimeout:i}catch(e){r=i}}();var u,c=[],l=!1,p=-1;function f(){l&&u&&(l=!1,u.length?c=u.concat(c):p=-1,c.length&&h())}function h(){if(!l){var e=s(f);l=!0;for(var t=c.length;t;){for(u=c,c=[];++p1)for(var n=1;n0&&"/"!==t[0]}));function Se(e,t,n){var r;t=t||[];var o=xe.apply(void 0,u()(r=[e]).call(r,i()(t))).get("parameters",Object(I.List)());return w()(o).call(o,(function(e,t){var r=n&&"body"===t.get("in")?t.get("value_xml"):t.get("value");return e.set(Object(T.A)(t,{allowHashes:!1}),r)}),Object(I.fromJS)({}))}function Ce(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";if(I.List.isList(e))return A()(e).call(e,(function(e){return I.Map.isMap(e)&&e.get("in")===t}))}function Ae(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";if(I.List.isList(e))return A()(e).call(e,(function(e){return I.Map.isMap(e)&&e.get("type")===t}))}function Oe(e,t){var n,r;t=t||[];var o=z(e).getIn(u()(n=["paths"]).call(n,i()(t)),Object(I.fromJS)({})),a=e.getIn(u()(r=["meta","paths"]).call(r,i()(t)),Object(I.fromJS)({})),s=ke(e,t),c=o.get("parameters")||new I.List,l=a.get("consumes_value")?a.get("consumes_value"):Ae(c,"file")?"multipart/form-data":Ae(c,"formData")?"application/x-www-form-urlencoded":void 0;return Object(I.fromJS)({requestContentType:l,responseContentType:s})}function ke(e,t){var n,r;t=t||[];var o=z(e).getIn(u()(n=["paths"]).call(n,i()(t)),null);if(null!==o){var a=e.getIn(u()(r=["meta","paths"]).call(r,i()(t),["produces_value"]),null),s=o.getIn(["produces",0],null);return a||s||"application/json"}}function je(e,t){var n;t=t||[];var r=z(e),a=r.getIn(u()(n=["paths"]).call(n,i()(t)),null);if(null!==a){var s=t,c=o()(s,1)[0],l=a.get("produces",null),p=r.getIn(["paths",c,"produces"],null),f=r.getIn(["produces"],null);return l||p||f}}function Te(e,t){var n;t=t||[];var r=z(e),a=r.getIn(u()(n=["paths"]).call(n,i()(t)),null);if(null!==a){var s=t,c=o()(s,1)[0],l=a.get("consumes",null),p=r.getIn(["paths",c,"consumes"],null),f=r.getIn(["consumes"],null);return l||p||f}}var Ie=function(e,t,n){var r=e.get("url").match(/^([a-z][a-z0-9+\-.]*):/),o=k()(r)?r[1]:null;return e.getIn(["scheme",t,n])||e.getIn(["scheme","_defaultScheme"])||o||""},Pe=function(e,t,n){var r;return d()(r=["http","https"]).call(r,Ie(e,t,n))>-1},Ne=function(e,t){var n;t=t||[];var r=e.getIn(u()(n=["meta","paths"]).call(n,i()(t),["parameters"]),Object(I.fromJS)([])),o=!0;return f()(r).call(r,(function(e){var t=e.get("errors");t&&t.count()&&(o=!1)})),o},Me=function(e,t){var n,r,o={requestBody:!1,requestContentType:{}},a=e.getIn(u()(n=["resolvedSubtrees","paths"]).call(n,i()(t),["requestBody"]),Object(I.fromJS)([]));return a.size<1||(a.getIn(["required"])&&(o.requestBody=a.getIn(["required"])),f()(r=a.getIn(["content"]).entrySeq()).call(r,(function(e){var t=e[0];if(e[1].getIn(["schema","required"])){var n=e[1].getIn(["schema","required"]).toJS();o.requestContentType[t]=n}}))),o},Re=function(e,t,n,r){var o;if((n||r)&&n===r)return!0;var a=e.getIn(u()(o=["resolvedSubtrees","paths"]).call(o,i()(t),["requestBody","content"]),Object(I.fromJS)([]));if(a.size<2||!n||!r)return!1;var s=a.getIn([n,"schema","properties"],Object(I.fromJS)([])),c=a.getIn([r,"schema","properties"],Object(I.fromJS)([]));return!!s.equals(c)};function De(e){return I.Map.isMap(e)?e:new I.Map}},function(e,t,n){"use strict";(function(t){var r=n(919),o=n(920),a=/^[A-Za-z][A-Za-z0-9+-.]*:[\\/]+/,i=/^([a-z][a-z0-9.+-]*:)?([\\/]{1,})?([\S\s]*)/i,s=new RegExp("^[\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF]+");function u(e){return(e||"").toString().replace(s,"")}var c=[["#","hash"],["?","query"],function(e){return e.replace("\\","/")},["/","pathname"],["@","auth",1],[NaN,"host",void 0,1,1],[/:(\d+)$/,"port",void 0,1],[NaN,"hostname",void 0,1,1]],l={hash:1,query:1};function p(e){var n,r=("undefined"!=typeof window?window:void 0!==t?t:"undefined"!=typeof self?self:{}).location||{},o={},i=typeof(e=e||r);if("blob:"===e.protocol)o=new h(unescape(e.pathname),{});else if("string"===i)for(n in o=new h(e,{}),l)delete o[n];else if("object"===i){for(n in e)n in l||(o[n]=e[n]);void 0===o.slashes&&(o.slashes=a.test(e.href))}return o}function f(e){e=u(e);var t=i.exec(e);return{protocol:t[1]?t[1].toLowerCase():"",slashes:!!(t[2]&&t[2].length>=2),rest:t[2]&&1===t[2].length?"/"+t[3]:t[3]}}function h(e,t,n){if(e=u(e),!(this instanceof h))return new h(e,t,n);var a,i,s,l,d,m,v=c.slice(),g=typeof t,y=this,b=0;for("object"!==g&&"string"!==g&&(n=t,t=null),n&&"function"!=typeof n&&(n=o.parse),t=p(t),a=!(i=f(e||"")).protocol&&!i.slashes,y.slashes=i.slashes||a&&t.slashes,y.protocol=i.protocol||t.protocol||"",e=i.rest,i.slashes||(v[3]=[/(.*)/,"pathname"]);b=4?[t[0],t[1],t[2],t[3],"".concat(t[0],".").concat(t[1]),"".concat(t[0],".").concat(t[2]),"".concat(t[0],".").concat(t[3]),"".concat(t[1],".").concat(t[0]),"".concat(t[1],".").concat(t[2]),"".concat(t[1],".").concat(t[3]),"".concat(t[2],".").concat(t[0]),"".concat(t[2],".").concat(t[1]),"".concat(t[2],".").concat(t[3]),"".concat(t[3],".").concat(t[0]),"".concat(t[3],".").concat(t[1]),"".concat(t[3],".").concat(t[2]),"".concat(t[0],".").concat(t[1],".").concat(t[2]),"".concat(t[0],".").concat(t[1],".").concat(t[3]),"".concat(t[0],".").concat(t[2],".").concat(t[1]),"".concat(t[0],".").concat(t[2],".").concat(t[3]),"".concat(t[0],".").concat(t[3],".").concat(t[1]),"".concat(t[0],".").concat(t[3],".").concat(t[2]),"".concat(t[1],".").concat(t[0],".").concat(t[2]),"".concat(t[1],".").concat(t[0],".").concat(t[3]),"".concat(t[1],".").concat(t[2],".").concat(t[0]),"".concat(t[1],".").concat(t[2],".").concat(t[3]),"".concat(t[1],".").concat(t[3],".").concat(t[0]),"".concat(t[1],".").concat(t[3],".").concat(t[2]),"".concat(t[2],".").concat(t[0],".").concat(t[1]),"".concat(t[2],".").concat(t[0],".").concat(t[3]),"".concat(t[2],".").concat(t[1],".").concat(t[0]),"".concat(t[2],".").concat(t[1],".").concat(t[3]),"".concat(t[2],".").concat(t[3],".").concat(t[0]),"".concat(t[2],".").concat(t[3],".").concat(t[1]),"".concat(t[3],".").concat(t[0],".").concat(t[1]),"".concat(t[3],".").concat(t[0],".").concat(t[2]),"".concat(t[3],".").concat(t[1],".").concat(t[0]),"".concat(t[3],".").concat(t[1],".").concat(t[2]),"".concat(t[3],".").concat(t[2],".").concat(t[0]),"".concat(t[3],".").concat(t[2],".").concat(t[1]),"".concat(t[0],".").concat(t[1],".").concat(t[2],".").concat(t[3]),"".concat(t[0],".").concat(t[1],".").concat(t[3],".").concat(t[2]),"".concat(t[0],".").concat(t[2],".").concat(t[1],".").concat(t[3]),"".concat(t[0],".").concat(t[2],".").concat(t[3],".").concat(t[1]),"".concat(t[0],".").concat(t[3],".").concat(t[1],".").concat(t[2]),"".concat(t[0],".").concat(t[3],".").concat(t[2],".").concat(t[1]),"".concat(t[1],".").concat(t[0],".").concat(t[2],".").concat(t[3]),"".concat(t[1],".").concat(t[0],".").concat(t[3],".").concat(t[2]),"".concat(t[1],".").concat(t[2],".").concat(t[0],".").concat(t[3]),"".concat(t[1],".").concat(t[2],".").concat(t[3],".").concat(t[0]),"".concat(t[1],".").concat(t[3],".").concat(t[0],".").concat(t[2]),"".concat(t[1],".").concat(t[3],".").concat(t[2],".").concat(t[0]),"".concat(t[2],".").concat(t[0],".").concat(t[1],".").concat(t[3]),"".concat(t[2],".").concat(t[0],".").concat(t[3],".").concat(t[1]),"".concat(t[2],".").concat(t[1],".").concat(t[0],".").concat(t[3]),"".concat(t[2],".").concat(t[1],".").concat(t[3],".").concat(t[0]),"".concat(t[2],".").concat(t[3],".").concat(t[0],".").concat(t[1]),"".concat(t[2],".").concat(t[3],".").concat(t[1],".").concat(t[0]),"".concat(t[3],".").concat(t[0],".").concat(t[1],".").concat(t[2]),"".concat(t[3],".").concat(t[0],".").concat(t[2],".").concat(t[1]),"".concat(t[3],".").concat(t[1],".").concat(t[0],".").concat(t[2]),"".concat(t[3],".").concat(t[1],".").concat(t[2],".").concat(t[0]),"".concat(t[3],".").concat(t[2],".").concat(t[0],".").concat(t[1]),"".concat(t[3],".").concat(t[2],".").concat(t[1],".").concat(t[0])]:void 0),g[r]}function b(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0,r=e.filter((function(e){return"token"!==e})),o=y(r);return o.reduce((function(e,t){return f()({},e,n[t])}),t)}function _(e){return e.join(" ")}function x(e){var t=e.node,n=e.stylesheet,r=e.style,o=void 0===r?{}:r,a=e.useInlineStyles,i=e.key,s=t.properties,u=t.type,c=t.tagName,l=t.value;if("text"===u)return l;if(c){var p,h=function(e,t){var n=0;return function(r){return n+=1,r.map((function(r,o){return x({node:r,stylesheet:e,useInlineStyles:t,key:"code-segment-".concat(n,"-").concat(o)})}))}}(n,a);if(a){var m=Object.keys(n).reduce((function(e,t){return t.split(".").forEach((function(t){e.includes(t)||e.push(t)})),e}),[]),g=s.className&&s.className.includes("token")?["token"]:[],y=s.className&&g.concat(s.className.filter((function(e){return!m.includes(e)})));p=f()({},s,{className:_(y)||void 0,style:b(s.className,Object.assign({},s.style,o),n)})}else p=f()({},s,{className:_(s.className)});var w=h(t.children);return d.a.createElement(c,v()({key:i},p),w)}}var w=/\n/g;function E(e){var t=e.codeString,n=e.codeStyle,r=e.containerStyle,o=void 0===r?{float:"left",paddingRight:"10px"}:r,a=e.numberStyle,i=void 0===a?{}:a,s=e.startingLineNumber;return d.a.createElement("code",{style:Object.assign({},n,o)},function(e){var t=e.lines,n=e.startingLineNumber,r=e.style;return t.map((function(e,t){var o=t+n;return d.a.createElement("span",{key:"line-".concat(t),className:"react-syntax-highlighter-line-number",style:"function"==typeof r?r(o):r},"".concat(o,"\n"))}))}({lines:t.replace(/\n$/,"").split("\n"),style:i,startingLineNumber:s}))}function S(e,t){return{type:"element",tagName:"span",properties:{key:"line-number--".concat(e),className:["comment","linenumber","react-syntax-highlighter-line-number"],style:t},children:[{type:"text",value:e}]}}function C(e,t,n){var r,o={display:"inline-block",minWidth:(r=n,"".concat(r.toString().length,".25em")),paddingRight:"1em",textAlign:"right",userSelect:"none"},a="function"==typeof e?e(t):e;return f()({},o,a)}function A(e){var t=e.children,n=e.lineNumber,r=e.lineNumberStyle,o=e.largestLineNumber,a=e.showInlineLineNumbers,i=e.lineProps,s=void 0===i?{}:i,u=e.className,c=void 0===u?[]:u,l=e.showLineNumbers,p=e.wrapLongLines,h="function"==typeof s?s(n):s;if(h.className=c,n&&a){var d=C(r,n,o);t.unshift(S(n,d))}return p&l&&(h.style=f()({},h.style,{display:"flex"})),{type:"element",tagName:"span",properties:h,children:t}}function O(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=0;r2&&void 0!==arguments[2]?arguments[2]:[];return A({children:e,lineNumber:t,lineNumberStyle:s,largestLineNumber:i,showInlineLineNumbers:o,lineProps:n,className:a,showLineNumbers:r,wrapLongLines:u})}function m(e,t){if(r&&t&&o){var n=C(s,t,i);e.unshift(S(t,n))}return e}function v(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];return t||r.length>0?d(e,n,r):m(e,n)}for(var g=function(){var e=l[h],t=e.children[0].value;if(t.match(w)){var n=t.split("\n");n.forEach((function(t,o){var i=r&&p.length+a,s={type:"text",value:"".concat(t,"\n")};if(0===o){var u=v(l.slice(f+1,h).concat(A({children:[s],className:e.properties.className})),i);p.push(u)}else if(o===n.length-1){if(l[h+1]&&l[h+1].children&&l[h+1].children[0]){var c=A({children:[{type:"text",value:"".concat(t)}],className:e.properties.className});l.splice(h+1,0,c)}else{var d=v([s],i,e.properties.className);p.push(d)}}else{var m=v([s],i,e.properties.className);p.push(m)}})),f=h}h++};h .hljs-title":{color:"#88C0D0"},"hljs-keyword":{color:"#81A1C1"},"hljs-literal":{color:"#81A1C1"},"hljs-symbol":{color:"#81A1C1"},"hljs-number":{color:"#B48EAD"},"hljs-regexp":{color:"#EBCB8B"},"hljs-string":{color:"#A3BE8C"},"hljs-title":{color:"#8FBCBB"},"hljs-params":{color:"#D8DEE9"},"hljs-bullet":{color:"#81A1C1"},"hljs-code":{color:"#8FBCBB"},"hljs-emphasis":{fontStyle:"italic"},"hljs-formula":{color:"#8FBCBB"},"hljs-strong":{fontWeight:"bold"},"hljs-link:hover":{textDecoration:"underline"},"hljs-quote":{color:"#4C566A"},"hljs-comment":{color:"#4C566A"},"hljs-doctag":{color:"#8FBCBB"},"hljs-meta":{color:"#5E81AC"},"hljs-meta-keyword":{color:"#5E81AC"},"hljs-meta-string":{color:"#A3BE8C"},"hljs-attr":{color:"#8FBCBB"},"hljs-attribute":{color:"#D8DEE9"},"hljs-builtin-name":{color:"#81A1C1"},"hljs-name":{color:"#81A1C1"},"hljs-section":{color:"#88C0D0"},"hljs-tag":{color:"#81A1C1"},"hljs-variable":{color:"#D8DEE9"},"hljs-template-variable":{color:"#D8DEE9"},"hljs-template-tag":{color:"#5E81AC"},"abnf .hljs-attribute":{color:"#88C0D0"},"abnf .hljs-symbol":{color:"#EBCB8B"},"apache .hljs-attribute":{color:"#88C0D0"},"apache .hljs-section":{color:"#81A1C1"},"arduino .hljs-built_in":{color:"#88C0D0"},"aspectj .hljs-meta":{color:"#D08770"},"aspectj > .hljs-title":{color:"#88C0D0"},"bnf .hljs-attribute":{color:"#8FBCBB"},"clojure .hljs-name":{color:"#88C0D0"},"clojure .hljs-symbol":{color:"#EBCB8B"},"coq .hljs-built_in":{color:"#88C0D0"},"cpp .hljs-meta-string":{color:"#8FBCBB"},"css .hljs-built_in":{color:"#88C0D0"},"css .hljs-keyword":{color:"#D08770"},"diff .hljs-meta":{color:"#8FBCBB"},"ebnf .hljs-attribute":{color:"#8FBCBB"},"glsl .hljs-built_in":{color:"#88C0D0"},"groovy .hljs-meta:not(:first-child)":{color:"#D08770"},"haxe .hljs-meta":{color:"#D08770"},"java .hljs-meta":{color:"#D08770"},"ldif .hljs-attribute":{color:"#8FBCBB"},"lisp .hljs-name":{color:"#88C0D0"},"lua .hljs-built_in":{color:"#88C0D0"},"moonscript .hljs-built_in":{color:"#88C0D0"},"nginx .hljs-attribute":{color:"#88C0D0"},"nginx .hljs-section":{color:"#5E81AC"},"pf .hljs-built_in":{color:"#88C0D0"},"processing .hljs-built_in":{color:"#88C0D0"},"scss .hljs-keyword":{color:"#81A1C1"},"stylus .hljs-keyword":{color:"#81A1C1"},"swift .hljs-meta":{color:"#D08770"},"vim .hljs-built_in":{color:"#88C0D0",fontStyle:"italic"},"yaml .hljs-meta":{color:"#D08770"}},obsidian:{hljs:{display:"block",overflowX:"auto",padding:"0.5em",background:"#282b2e",color:"#e0e2e4"},"hljs-keyword":{color:"#93c763",fontWeight:"bold"},"hljs-selector-tag":{color:"#93c763",fontWeight:"bold"},"hljs-literal":{color:"#93c763",fontWeight:"bold"},"hljs-selector-id":{color:"#93c763"},"hljs-number":{color:"#ffcd22"},"hljs-attribute":{color:"#668bb0"},"hljs-code":{color:"white"},"hljs-class .hljs-title":{color:"white"},"hljs-section":{color:"white",fontWeight:"bold"},"hljs-regexp":{color:"#d39745"},"hljs-link":{color:"#d39745"},"hljs-meta":{color:"#557182"},"hljs-tag":{color:"#8cbbad"},"hljs-name":{color:"#8cbbad",fontWeight:"bold"},"hljs-bullet":{color:"#8cbbad"},"hljs-subst":{color:"#8cbbad"},"hljs-emphasis":{color:"#8cbbad"},"hljs-type":{color:"#8cbbad",fontWeight:"bold"},"hljs-built_in":{color:"#8cbbad"},"hljs-selector-attr":{color:"#8cbbad"},"hljs-selector-pseudo":{color:"#8cbbad"},"hljs-addition":{color:"#8cbbad"},"hljs-variable":{color:"#8cbbad"},"hljs-template-tag":{color:"#8cbbad"},"hljs-template-variable":{color:"#8cbbad"},"hljs-string":{color:"#ec7600"},"hljs-symbol":{color:"#ec7600"},"hljs-comment":{color:"#818e96"},"hljs-quote":{color:"#818e96"},"hljs-deletion":{color:"#818e96"},"hljs-selector-class":{color:"#A082BD"},"hljs-doctag":{fontWeight:"bold"},"hljs-title":{fontWeight:"bold"},"hljs-strong":{fontWeight:"bold"}},"tomorrow-night":{"hljs-comment":{color:"#969896"},"hljs-quote":{color:"#969896"},"hljs-variable":{color:"#cc6666"},"hljs-template-variable":{color:"#cc6666"},"hljs-tag":{color:"#cc6666"},"hljs-name":{color:"#cc6666"},"hljs-selector-id":{color:"#cc6666"},"hljs-selector-class":{color:"#cc6666"},"hljs-regexp":{color:"#cc6666"},"hljs-deletion":{color:"#cc6666"},"hljs-number":{color:"#de935f"},"hljs-built_in":{color:"#de935f"},"hljs-builtin-name":{color:"#de935f"},"hljs-literal":{color:"#de935f"},"hljs-type":{color:"#de935f"},"hljs-params":{color:"#de935f"},"hljs-meta":{color:"#de935f"},"hljs-link":{color:"#de935f"},"hljs-attribute":{color:"#f0c674"},"hljs-string":{color:"#b5bd68"},"hljs-symbol":{color:"#b5bd68"},"hljs-bullet":{color:"#b5bd68"},"hljs-addition":{color:"#b5bd68"},"hljs-title":{color:"#81a2be"},"hljs-section":{color:"#81a2be"},"hljs-keyword":{color:"#b294bb"},"hljs-selector-tag":{color:"#b294bb"},hljs:{display:"block",overflowX:"auto",background:"#1d1f21",color:"#c5c8c6",padding:"0.5em"},"hljs-emphasis":{fontStyle:"italic"},"hljs-strong":{fontWeight:"bold"}}},Q=o()(X),ee=function(e){return i()(Q).call(Q,e)?X[e]:(console.warn("Request style '".concat(e,"' is not available, returning default instead")),Z)}},function(e,t){e.exports=!0},function(e,t,n){var r=n(244),o=n(71).f,a=n(70),i=n(54),s=n(560),u=n(41)("toStringTag");e.exports=function(e,t,n,c){if(e){var l=n?e:e.prototype;i(l,u)||o(l,u,{configurable:!0,value:t}),c&&!r&&a(l,"toString",s)}}},function(e,t,n){var r=n(244),o=n(152),a=n(41)("toStringTag"),i="Arguments"==o(function(){return arguments}());e.exports=r?o:function(e){var t,n,r;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),a))?n:i?o(t):"Object"==(r=o(t))&&"function"==typeof t.callee?"Arguments":r}},function(e,t,n){"use strict";e.exports=function(e){if("function"!=typeof e)throw new TypeError(e+" is not a function");return e}},function(e,t,n){e.exports=n(685)},function(e,t,n){"use strict";function r(e){return function(e){try{return!!JSON.parse(e)}catch(e){return null}}(e)?"json":null}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";n.r(t),n.d(t,"UPDATE_LAYOUT",(function(){return o})),n.d(t,"UPDATE_FILTER",(function(){return a})),n.d(t,"UPDATE_MODE",(function(){return i})),n.d(t,"SHOW",(function(){return s})),n.d(t,"updateLayout",(function(){return u})),n.d(t,"updateFilter",(function(){return c})),n.d(t,"show",(function(){return l})),n.d(t,"changeMode",(function(){return p}));var r=n(5),o="layout_update_layout",a="layout_update_filter",i="layout_update_mode",s="layout_show";function u(e){return{type:o,payload:e}}function c(e){return{type:a,payload:e}}function l(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return e=Object(r.v)(e),{type:s,payload:{thing:e,shown:t}}}function p(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return e=Object(r.v)(e),{type:i,payload:{thing:e,mode:t}}}},function(e,t,n){var r=n(428),o=n(165),a=n(197),i=n(52),s=n(117),u=n(198),c=n(164),l=n(256),p=Object.prototype.hasOwnProperty;e.exports=function(e){if(null==e)return!0;if(s(e)&&(i(e)||"string"==typeof e||"function"==typeof e.splice||u(e)||l(e)||a(e)))return!e.length;var t=o(e);if("[object Map]"==t||"[object Set]"==t)return!e.size;if(c(e))return!r(e).length;for(var n in e)if(p.call(e,n))return!1;return!0}},function(e,t,n){var r=n(49),o=n(182),a=n(108),i=n(69),s=n(184),u=n(54),c=n(368),l=Object.getOwnPropertyDescriptor;t.f=r?l:function(e,t){if(e=i(e),t=s(t,!0),c)try{return l(e,t)}catch(e){}if(u(e,t))return a(!o.f.call(e,t),e[t])}},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t){e.exports=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e}},function(e,t,n){var r=n(78);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 0:return function(){return e.call(t)};case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,o){return e.call(t,n,r,o)}}return function(){return e.apply(t,arguments)}}},function(e,t,n){var r,o=n(51),a=n(237),i=n(240),s=n(159),u=n(373),c=n(232),l=n(188),p=l("IE_PROTO"),f=function(){},h=function(e){return" - - diff --git a/backend/app/templates/swaggerui.html b/backend/app/templates/swaggerui.html deleted file mode 100644 index d11b17cb..00000000 --- a/backend/app/templates/swaggerui.html +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - Swagger UI - - - - - - - -
- - - - - - diff --git a/backend/app/utilities/csv_utils.py b/backend/app/utilities/csv_utils.py deleted file mode 100644 index c5d74a8b..00000000 --- a/backend/app/utilities/csv_utils.py +++ /dev/null @@ -1,151 +0,0 @@ -""" -Generates a csv string given a list of dictionaries -Some Notes: -1. Unwind only unwinds a single level (i.e a list) -2. CSV requires all dictionaries in the list are of the same type -""" - -import csv -import io - - -def flatten_dicts(dictionary, parent_key="", sep="."): - """ - Flatten a dictionary of dictionaries into a single dictionary - - Example: - {'a': {'b': 1, 'c': 2}, 'd': {'e': 3, 'f': 4}} - flatten_dicts(dictionary, parent_key="", sep=".") - {'a.b': 1, 'a.c': 2, 'd.e': 3, 'd.f': 4} - - :param dictionary: dictionary to flatten - :param parent_key: key to use as the parent key for the new dictionary - :param sep: separator to use when combining keys - :return: flattened dictionary - :rtype: dict - """ - items = [] - for key, val in dictionary.items(): - new_key = parent_key + sep + str(key) if parent_key else str(key) - if isinstance(val, dict): - items.extend(flatten_dicts(val, new_key, sep=sep).items()) - - else: - items.append((new_key, val)) - return dict(items) - - -def flatten_lists_in_dict(dictionary, sep="."): - """ - Flatten a dictionary of lists into a single dictionary - - Example: - {'a': [1, 2, 3], 'b': [4, 5, 6]} - flatten_lists_in_dict(dictionary, sep=".") - {'a.1': 1, 'a.2': 2, 'a.3': 3, 'b.1': 4, 'b.2': 5, 'b.3': 6} - - :param dictionary: dictionary to flatten - :param sep: separator to use when combining keys - :return: flattened dictionary - :rtype: dict - """ - items = [] - lsts = 0 - for key, val in dictionary.items(): - if isinstance(val, list): - for i in range(len(val)): - lsts += 1 - new_key = key + sep + str(i) - items.append((new_key, val[i])) - else: - items.append((key, val)) - - return dict(items) if lsts == 0 else flatten_lists_in_dict(dict(items), sep=sep) - - -def transform_function(dict_list, transform): - """ - Applies a function to each dictionary in a list of dictionaries - - Example: - [{'a': 1}, {'a': 2}, {'a': 3}] - transform_function(dict_list, lambda x: x + 1) - [{'a': 2}, {'a': 3}, {'a': 4}] - - :param dict_list: list of dictionaries - :param transform: transformation function - :return: transformed dictionary list - :rtype: list of dict - """ - new_dict_list = [transform(dictionary) for dictionary in dict_list] - return new_dict_list - - -def unwind_field(list_of_dict, field): - """ - Unwinds lists inside dicts into multiple dictionaries, returning a new list at the end - - Example: - [{'a': [1, 2, 3]}, {'a': [4, 5, 6]}] - unwind_field(list_of_dict, 'a') - [{'a': 1}, {'a': 2}, {'a': 3}, {'a': 4}, {'a': 5}, {'a': 6}] - - :param list_of_dict: list of dictionaries - :param field: field to unwind - :return: list of dictionaries - :rtype: list of dict - """ - new_list = [] - for dictionary in list_of_dict: - found = False - for key, value in dictionary.items(): - if key == field and isinstance(value, list): - found = True - for item in value: - temp_dict = dictionary.copy() - temp_dict[key] = item - new_list.append(temp_dict) - - if not found: - new_list.append(dictionary) - return new_list - - -def generate_csv_from_list(dict_list, **kwargs): - """ - Given a list of dictionaries, generate a csv string without spaces - - :param dict_list: list of dictionaries - :param options: options to specify csv format - :return: csv string - :rtype: str - """ - if kwargs.get("transform", None): - dict_list = transform_function(dict_list, kwargs["transform"]) - - if kwargs.get("flatten_lists", None) and kwargs.get("flatten_objects", None): - dict_list = [flatten_lists_in_dict(flatten_dicts(dict)) for dict in dict_list] - - if kwargs.get("flatten_objects", None): - dict_list = [flatten_dicts(dict) for dict in dict_list] - - if kwargs.get("unwind", None): - dict_list = unwind_field(dict_list, kwargs["unwind"]) - - if kwargs.get("flatten_lists", None): - dict_list = [flatten_lists_in_dict(dict) for dict in dict_list] - - output = io.StringIO() - field_names = ( - {key: None for d in dict_list for key in d.keys()}.keys() - if not kwargs.get("field", None) - else kwargs["field"] - ) - writer = csv.DictWriter(output, fieldnames=field_names) - - if kwargs.get("header", None): - writer.writeheader() - - writer.writerows(dict_list) - - return output.getvalue() diff --git a/backend/tests/functional/conftest.py b/backend/tests/functional/conftest.py deleted file mode 100644 index 0f046add..00000000 --- a/backend/tests/functional/conftest.py +++ /dev/null @@ -1,9 +0,0 @@ -import pytest - -from app import create_app - - -@pytest.fixture(scope="session", autouse=True) -def client(): - test_client = create_app("testing").test_client() - yield test_client diff --git a/backend/tests/functional/test_user_routes.py b/backend/tests/functional/test_user_routes.py deleted file mode 100644 index 8cdc3f3c..00000000 --- a/backend/tests/functional/test_user_routes.py +++ /dev/null @@ -1,70 +0,0 @@ -import pytest - -from app import create_app -from app.models.user import User - -from app.models import db - -""" -Sample python test. -For more information on pytest, visit: -https://docs.pytest.org/en/6.2.x/reference.html -""" - - -TEST_USERS = [ - { - "auth_id": "A", - "first_name": "Jane", - "last_name": "Doe", - "role": "Admin", - }, - { - "auth_id": "B", - "first_name": "Hello", - "last_name": "World", - "role": "Relief Staff", - }, -] - - -class FirebaseUser: - """ - Mock returned firebase user - """ - - def __init__(self): - self.email = "test@test.com" - - -def get_expected_user(user): - """ - Remove auth_id field from user and sets email field. - """ - user["email"] = "test@test.com" - user.pop("auth_id", None) - return user - - -def insert_users(): - user_instances = [User(**data) for data in TEST_USERS] - db.session.bulk_save_objects(user_instances) - db.session.commit() - - -@pytest.fixture(scope="module", autouse=True) -def setup(module_mocker): - module_mocker.patch( - "app.services.implementations.auth_service.AuthService.is_authorized_by_role", - return_value=True, - ) - module_mocker.patch("firebase_admin.auth.get_user", return_value=FirebaseUser()) - - -def test_get_users(client): - insert_users() - res = client.get("/users") - users_with_email = list(map(get_expected_user, TEST_USERS)) - for expected_user, actual_user in zip(users_with_email, res.json): - for key in users_with_email[0].keys(): - assert expected_user[key] == actual_user[key] diff --git a/backend/tests/functional/test_user_service.py b/backend/tests/functional/test_user_service.py deleted file mode 100644 index b81a07e1..00000000 --- a/backend/tests/functional/test_user_service.py +++ /dev/null @@ -1,84 +0,0 @@ -from flask import current_app -import pytest - -from app.models.user import User -from app.services.implementations.user_service import UserService - -from app.models import db - -""" -Sample python test. -For more information on pytest, visit: -https://docs.pytest.org/en/6.2.x/reference.html -""" - - -@pytest.fixture(scope="module", autouse=True) -def setup(module_mocker): - module_mocker.patch( - "app.services.implementations.auth_service.AuthService.is_authorized_by_role", - return_value=True, - ) - module_mocker.patch("firebase_admin.auth.get_user", return_value=FirebaseUser()) - - -@pytest.fixture -def user_service(): - user_service = UserService(current_app.logger) - yield user_service - User.query.delete() - - -TEST_USERS = ( - { - "auth_id": "A", - "first_name": "Jane", - "last_name": "Doe", - "role": "Admin", - }, - { - "auth_id": "B", - "first_name": "Hello", - "last_name": "World", - "role": "Relief Staff", - }, -) - - -class FirebaseUser: - """ - Mock returned firebase user - """ - - def __init__(self): - self.email = "test@test.com" - - -def get_expected_user(user): - """ - Remove auth_id field from user and sets email field. - """ - expected_user = user.copy() - expected_user["email"] = "test@test.com" - expected_user.pop("auth_id", None) - return expected_user - - -def insert_users(): - user_instances = [User(**data) for data in TEST_USERS] - db.session.bulk_save_objects(user_instances) - db.session.commit() - - -def assert_returned_users(users, expected): - for expected_user, actual_user in zip(expected, users): - for key in expected[0].keys(): - assert expected_user[key] == actual_user[key] - - -def test_get_users(user_service): - insert_users() - res = user_service.get_users() - users = list(map(lambda user: user.__dict__, res)) - users_with_email = list(map(get_expected_user, TEST_USERS)) - assert_returned_users(users, users_with_email) diff --git a/backend/tests/unit/test_csv.py b/backend/tests/unit/test_csv.py deleted file mode 100644 index 36ed049e..00000000 --- a/backend/tests/unit/test_csv.py +++ /dev/null @@ -1,155 +0,0 @@ -""" -Test Cases for generate_csv - -Current Issues: -1. Note that unwind only unwinds at the current level -2. List of dictionaries must be of the same type -""" - -person = [ - { - "name": "Person1", - "age": 20, - "pets": [ - {"name": "Beans", "type": "Cat"}, - {"name": "Spot", "type": "Dog"}, - ], - }, - { - "name": "Person2", - "age": 25, - "pets": [{"name": "Splash", "type": "Fish"}], - }, -] - -person2 = [ - { - "name": "Person1", - "age": 20, - "pets": [ - {"name": "Beans", "type": "Cat"}, - {"name": "Spot", "type": "Dog"}, - ], - }, -] - -person3 = [ - { - "name": "Person1", - "age": 20, - "pets": [ - {"name": "Beans", "type": "Cat"}, - {"name": "Spot", "type": "Dog"}, - ], - "num_pets": 5, - }, -] - -person4 = [ - { - "name": "Person1", - "age": 20, - "pet": {"name": "Beans", "type": "Cat"}, - }, -] - - -def transform_person(person): - transformed = person.copy() - transformed["num_pets"] = len(transformed["pets"]) - return transformed - - -options = { - "header": True, - "transform": transform_person, - "flatten_lists": False, - "flatten_objects": False, -} - -unwind_options = { - "header": True, - "unwind": "pets", - "flatten_lists": False, - "flatten_objects": False, -} - - -flatten_list_options = { - "header": True, - "flatten_lists": True, - "flatten_objects": False, -} - - -flatten_objects_options = { - "header": True, - "flatten_lists": False, - "flatten_objects": True, -} - - -flatten_both_options = { - "header": True, - "flatten_lists": True, - "flatten_objects": True, -} - - -no_header_options = { - "header": False, - "flatten_lists": False, - "flatten_objects": False, -} - -from app.utilities.csv_utils import generate_csv_from_list - - -def test_basic(): - result = generate_csv_from_list(person) - assert ( - result - == "Person1,20,\"[{'name': 'Beans', 'type': 'Cat'}, {'name': 'Spot', 'type': 'Dog'}]\"\r\nPerson2,25,\"[{'name': 'Splash', 'type': 'Fish'}]\"\r\n" - ) - - -def test_transform(): - result = generate_csv_from_list(person2, **options) - assert ( - result - == "name,age,pets,num_pets\r\nPerson1,20,\"[{'name': 'Beans', 'type': 'Cat'}, {'name': 'Spot', 'type': 'Dog'}]\",2\r\n" - ) - - -def test_nested(): - result = generate_csv_from_list(person4, **no_header_options) - assert result == "Person1,20,\"{'name': 'Beans', 'type': 'Cat'}\"\r\n" - - -def test_flatten_objects(): - result = generate_csv_from_list(person4, **flatten_objects_options) - assert result == "name,age,pet.name,pet.type\r\nPerson1,20,Beans,Cat\r\n" - - -def test_flatten_lists(): - result = generate_csv_from_list(person2, **flatten_list_options) - assert ( - result - == "name,age,pets.0,pets.1\r\nPerson1,20,\"{'name': 'Beans', 'type': 'Cat'}\",\"{'name': 'Spot', 'type': 'Dog'}\"\r\n" - ) - - -def test_flatten_both(): - result = generate_csv_from_list(person2, **flatten_both_options) - assert ( - result - == "name,age,pets.0.name,pets.0.type,pets.1.name,pets.1.type\r\nPerson1,20,Beans,Cat,Spot,Dog\r\n" - ) - - -def test_unwind(): - result = generate_csv_from_list(person2, **unwind_options) - assert ( - result - == "name,age,pets\r\nPerson1,20,\"{'name': 'Beans', 'type': 'Cat'}\"\r\nPerson1,20,\"{'name': 'Spot', 'type': 'Dog'}\"\r\n" - ) diff --git a/backend/tests/unit/test_models.py b/backend/tests/unit/test_models.py deleted file mode 100644 index 23863d09..00000000 --- a/backend/tests/unit/test_models.py +++ /dev/null @@ -1,26 +0,0 @@ -from app.models.user import User - -from app.models import db - -""" -Sample python test. -For more information on pytest, visit: -https://docs.pytest.org/en/6.2.x/reference.html -""" - - -def test_create_user(): - user = { - "first_name": "Jane", - "last_name": "Doe", - "auth_id": "abc", - "role": "Admin", - } - - user = User(**user) - db.session.add(user) - db.session.commit() - assert user.first_name == "Jane" - assert user.last_name == "Doe" - assert user.auth_id == "abc" - assert user.role == "Admin" diff --git a/db-init/create-multiple-dbs.sh b/db-init/create-multiple-dbs.sh deleted file mode 100755 index aa665fa4..00000000 --- a/db-init/create-multiple-dbs.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash - -set -e -set -u - -function create_user_and_database() { - local database=$1 - echo " Creating user and database '$database'" - psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" <<-EOSQL - CREATE USER $database; - CREATE DATABASE $database; - GRANT ALL PRIVILEGES ON DATABASE $database TO $database; -EOSQL -} - -if [ -n "$POSTGRES_MULTIPLE_DATABASES" ]; then - echo "Multiple database creation requested: $POSTGRES_MULTIPLE_DATABASES" - for db in $(echo $POSTGRES_MULTIPLE_DATABASES | tr ',' ' '); do - create_user_and_database $db - done - echo "Multiple databases created" -fi diff --git a/e2e-tests/cat.png b/e2e-tests/cat.png deleted file mode 100644 index ad118fa8..00000000 Binary files a/e2e-tests/cat.png and /dev/null differ diff --git a/e2e-tests/conftest.py b/e2e-tests/conftest.py deleted file mode 100644 index f33e74a1..00000000 --- a/e2e-tests/conftest.py +++ /dev/null @@ -1,95 +0,0 @@ -import inflection -import os -import pytest -import requests -from dotenv import load_dotenv - -load_dotenv() - - -def pytest_addoption(parser): - parser.addoption("--lang", action="store", default="ts", choices=["ts", "python"]) - parser.addoption( - "--api", action="store", default="rest", choices=["rest", "graphql"] - ) - parser.addoption("--auth", action="store_true") - parser.addoption("--fs", action="store_true") - - -@pytest.fixture(scope="session") -def lang(request): - return request.config.getoption("--lang") - - -@pytest.fixture(scope="session") -def api(request): - return request.config.getoption("--api") - - -@pytest.fixture(scope="session") -def auth(request): - return request.config.getoption("--auth") - - -@pytest.fixture(scope="session") -def fs(request): - return request.config.getoption("--fs") - - -@pytest.fixture(scope="session") -def backend_url(): - return os.getenv("TEST_SCRIPT_BACKEND_URL") - - -@pytest.fixture(scope="session") -def new_user_email(): - return os.getenv("TEST_SCRIPT_NEW_USER_EMAIL") - - -@pytest.fixture(scope="module") -def auth_user(backend_url, api, auth): - if not auth: - return {} - if api == "rest": - response = requests.post( - f"{backend_url}/auth/login", - json={ - "email": os.getenv("TEST_SCRIPT_EMAIL"), - "password": os.getenv("TEST_SCRIPT_PASSWORD"), - }, - ) - return response.json()["auth_user"] - else: - query = """ - mutation($email: String!, $password: String!) { - login(email: $email, password: $password) { - id - firstName - lastName - email - role - accessToken - } - } - """ - response = requests.post( - f"{backend_url}/graphql", - json={ - "query": query, - "variables": { - "email": os.getenv("TEST_SCRIPT_EMAIL"), - "password": os.getenv("TEST_SCRIPT_PASSWORD"), - }, - }, - ) - return response.json()["data"]["login"] - - -@pytest.fixture(scope="module") -def auth_header(auth_user, lang): - if not auth_user: - return {} - accessTokenField = "accessToken" - if lang != "ts": - accessTokenField = inflection.underscore(accessTokenField) - return {"Authorization": "Bearer " + auth_user[accessTokenField]} diff --git a/e2e-tests/dog.jpg b/e2e-tests/dog.jpg deleted file mode 100644 index 172fdd61..00000000 Binary files a/e2e-tests/dog.jpg and /dev/null differ diff --git a/e2e-tests/test_auth.py b/e2e-tests/test_auth.py deleted file mode 100644 index e4cc4ffe..00000000 --- a/e2e-tests/test_auth.py +++ /dev/null @@ -1,55 +0,0 @@ -import inflection -import requests - -from test_user import delete_user - - -def register_user(backend_url, body, access_token_field): - response = requests.post(f"{backend_url}/auth/register", json=body) - assert response.status_code == 200 - data = response.json() - assert "role" in data - assert data["role"] == "Relief Staff" - assert "id" in data - assert access_token_field in data - expected = {k: v for k, v in body.items() if k != "password"} - actual = {k: v for k, v in data.items() if k in body} - assert actual == expected - return response.json() - - -def reset_password(backend_url, auth_header, email): - response = requests.post( - f"{backend_url}/auth/resetPassword/{email}", - headers=auth_header, - ) - assert response.status_code == 204 - - -def logout(backend_url, auth_header, id): - response = requests.post( - f"{backend_url}/auth/logout/{id}", - headers=auth_header, - ) - assert response.status_code == 204 - - -def test_auth(backend_url, auth_header, auth_user, lang, api, new_user_email): - if not auth_header or api != "rest": - return - - body = { - "firstName": "Test", - "lastName": "Script", - "email": new_user_email, - "password": "password123", - } - access_token_field = "accessToken" - if lang != "ts": - body = {inflection.underscore(k): v for k, v in body.items()} - access_token_field = inflection.underscore(access_token_field) - user = register_user(backend_url, body, access_token_field) - delete_user(backend_url, auth_header, user["id"], lang) - # Call the following with the auth user since we cannot verify emails on new users in the script - reset_password(backend_url, auth_header, auth_user["email"]) - logout(backend_url, auth_header, auth_user["id"]) diff --git a/e2e-tests/test_auth_gql.py b/e2e-tests/test_auth_gql.py deleted file mode 100644 index 8e21ae6e..00000000 --- a/e2e-tests/test_auth_gql.py +++ /dev/null @@ -1,89 +0,0 @@ -import inflection -import requests - -from test_user_gql import delete_user - - -def register_user(backend_url, body, access_token_field): - query = """ - mutation($user: RegisterUserDTO!) { - register(user: $user) { - id - firstName - lastName - email - role - accessToken - } - } - """ - response = requests.post( - f"{backend_url}/graphql", - json={"query": query, "variables": {"user": body}}, - ) - assert "data" in response.json() - assert "register" in response.json()["data"] - data = response.json()["data"]["register"] - assert "role" in data - assert data["role"] == "User" - assert "id" in data - assert access_token_field in data - expected = {k: v for k, v in body.items() if k != "password"} - actual = {k: v for k, v in data.items() if k in body} - assert actual == expected - return data - - -def reset_password(backend_url, auth_header, email): - query = """ - mutation($email: String!) { - resetPassword(email: $email) - } - """ - response = requests.post( - f"{backend_url}/graphql", - json={"query": query, "variables": {"email": email}}, - headers=auth_header, - ) - assert "data" in response.json() - assert "resetPassword" in response.json()["data"] - data = response.json()["data"]["resetPassword"] - assert data - return data - - -def logout(backend_url, auth_header, id): - query = """ - mutation($userId: ID!) { - logout(userId: $userId) - } - """ - response = requests.post( - f"{backend_url}/graphql", - json={"query": query, "variables": {"userId": id}}, - headers=auth_header, - ) - assert "data" in response.json() - assert "logout" in response.json()["data"] - return response.json()["data"]["logout"] - - -def test_auth_gql(backend_url, auth_header, auth_user, lang, api, new_user_email): - if not auth_header or api == "rest": - return - - body = { - "firstName": "Test", - "lastName": "Script", - "email": new_user_email, - "password": "password123", - } - access_token_field = "accessToken" - if lang != "ts": - body = {inflection.underscore(k): v for k, v in body.items()} - access_token_field = inflection.underscore(access_token_field) - user = register_user(backend_url, body, access_token_field) - delete_user(backend_url, auth_header, user["id"]) - # Call the following with the auth user since we cannot verify emails on new users in the script - reset_password(backend_url, auth_header, auth_user["email"]) - logout(backend_url, auth_header, auth_user["id"]) diff --git a/e2e-tests/test_entity.py b/e2e-tests/test_entity.py deleted file mode 100644 index da8a0008..00000000 --- a/e2e-tests/test_entity.py +++ /dev/null @@ -1,121 +0,0 @@ -import inflection -import json -import requests - - -def get_entities(backend_url, auth_header): - response = requests.get(f"{backend_url}/entities", headers=auth_header) - assert response.status_code == 200 - return response.json() - - -def get_entity_by_id(backend_url, auth_header, id): - response = requests.get( - f"{backend_url}/entities/{id}", - headers=auth_header, - ) - assert response.status_code == 200 - return response.json() - - -def get_file(backend_url, auth_header, filename): - response = requests.get( - f"{backend_url}/entities/files/{filename}", - headers=auth_header, - ) - assert response.status_code == 200 - return response.json() - - -def create_entity(backend_url, auth_header, body, fs, file, filename_field): - if fs: - response = requests.post( - f"{backend_url}/entities/", - headers=auth_header, - files={"file": file}, - data={"body": json.dumps(body)}, - ) - else: - response = requests.post( - f"{backend_url}/entities/", - json=body, - headers=auth_header, - ) - assert response.status_code == 201 - data = response.json() - if fs: - assert filename_field in data - actual = {k: v for k, v in data.items() if k in body} - assert actual == body - return data - - -def update_entity(backend_url, auth_header, id, body, fs, file, filename_field): - if fs: - response = requests.put( - f"{backend_url}/entities/{id}", - headers=auth_header, - files={"file": file}, - data={"body": json.dumps(body)}, - ) - else: - response = requests.put( - f"{backend_url}/entities/{id}", - json=body, - headers=auth_header, - ) - assert response.status_code == 200 - data = response.json() - if fs: - assert filename_field in data - actual = {k: v for k, v in data.items() if k in body} - assert actual == body - return data - - -def delete_entity(backend_url, auth_header, id): - response = requests.delete( - f"{backend_url}/entities/{id}", - headers=auth_header, - ) - assert response.status_code == 200 - - -def test_entities(backend_url, auth_header, lang, api, fs): - if api != "rest": - return - - body1 = { - "stringField": "TestScript1", - "intField": 1, - "enumField": "A", - "stringArrayField": ["test1", "test2"], - "boolField": True, - } - body2 = { - "stringField": "TestScript2", - "intField": 2, - "enumField": "B", - "stringArrayField": ["test2"], - "boolField": False, - } - filename_field = "fileName" - if lang != "ts": - body1 = {inflection.underscore(k): v for k, v in body1.items()} - body2 = {inflection.underscore(k): v for k, v in body2.items()} - filename_field = inflection.underscore(filename_field) - file1 = ("dog.jpg", open("dog.jpg", "rb"), "image/jpeg") - file2 = ("cat.png", open("cat.png", "rb"), "image/png") - - entity = create_entity(backend_url, auth_header, body1, fs, file1, filename_field) - if fs: - get_file(backend_url, auth_header, entity[filename_field]) - updated_entity = update_entity( - backend_url, auth_header, entity["id"], body2, fs, file2, filename_field - ) - if fs: - get_file(backend_url, auth_header, updated_entity[filename_field]) - retrieved_entity = get_entity_by_id(backend_url, auth_header, entity["id"]) - assert updated_entity == retrieved_entity - assert get_entities(backend_url, auth_header) - delete_entity(backend_url, auth_header, entity["id"]) diff --git a/e2e-tests/test_entity_gql.py b/e2e-tests/test_entity_gql.py deleted file mode 100644 index d8bb055b..00000000 --- a/e2e-tests/test_entity_gql.py +++ /dev/null @@ -1,273 +0,0 @@ -import inflection -import json -import requests - - -def get_entities(backend_url, auth_header, fs): - if fs: - query = """ - query { - entities { - id - stringField - intField - enumField - stringArrayField - boolField - fileName - } - } - """ - else: - query = """ - query { - entities { - id - stringField - intField - enumField - stringArrayField - boolField - } - } - """ - response = requests.post( - f"{backend_url}/graphql", - json={"query": query}, - headers=auth_header, - ) - assert "data" in response.json() - assert "entities" in response.json()["data"] - return response.json()["data"]["entities"] - - -def get_entity_by_id(backend_url, auth_header, id, fs): - if fs: - query = """ - query($id: ID!) { - entity(id: $id) { - id - stringField - intField - enumField - stringArrayField - boolField - fileName - } - } - """ - else: - query = """ - query($id: ID!) { - entity(id: $id) { - id - stringField - intField - enumField - stringArrayField - boolField - } - } - """ - response = requests.post( - f"{backend_url}/graphql", - json={"query": query, "variables": {"id": id}}, - headers=auth_header, - ) - assert "data" in response.json() - assert "entity" in response.json()["data"] - return response.json()["data"]["entity"] - - -def get_file(backend_url, auth_header, filename): - query = """ - query($fileUUID: ID!) { - file(fileUUID: $fileUUID) - } - """ - response = requests.post( - f"{backend_url}/graphql", - json={"query": query, "variables": {"fileUUID": filename}}, - headers=auth_header, - ) - assert "data" in response.json() - assert "file" in response.json()["data"] - return response.json()["data"]["file"] - - -def create_entity(backend_url, auth_header, body, fs, file, filename_field): - if fs: - query = """ - mutation($entity: EntityRequestDTO!, $file: Upload) { - createEntity( - entity: $entity, file: $file - ) { - id - stringField - intField - stringArrayField - boolField - enumField - fileName - } - } - """ - # https://github.com/jaydenseric/graphql-multipart-request-spec - operations = json.dumps( - { - "query": query, - "variables": {"entity": body, "file": None}, - } - ) - map = json.dumps({"0": ["variables.file"]}) - response = requests.post( - f"{backend_url}/graphql", - data={"operations": operations, "map": map}, - files={"0": file}, - headers=auth_header, - ) - else: - query = """ - mutation($entity: EntityRequestDTO!) { - createEntity(entity: $entity) { - id - stringField - intField - stringArrayField - boolField - enumField - } - } - """ - response = requests.post( - f"{backend_url}/graphql", - json={"query": query, "variables": {"entity": body}}, - headers=auth_header, - ) - assert "data" in response.json() - assert "createEntity" in response.json()["data"] - data = response.json()["data"]["createEntity"] - if fs: - assert filename_field in data - actual = {k: v for k, v in data.items() if k in body} - assert actual == body - return data - - -def update_entity(backend_url, auth_header, id, body, fs, file, filename_field): - if fs: - query = """ - mutation($id: ID!, $entity: EntityRequestDTO!, $file: Upload) { - updateEntity( - id: $id, entity: $entity, file: $file - ) { - id - stringField - intField - stringArrayField - boolField - enumField - fileName - } - } - """ - # https://github.com/jaydenseric/graphql-multipart-request-spec - operations = json.dumps( - { - "query": query, - "variables": {"id": id, "entity": body, "file": None}, - } - ) - map = json.dumps({"0": ["variables.file"]}) - response = requests.post( - f"{backend_url}/graphql", - data={"operations": operations, "map": map}, - files={"0": file}, - headers=auth_header, - ) - else: - query = """ - mutation($id: ID!, $entity: EntityRequestDTO!) { - updateEntity( - id: $id, entity: $entity - ) { - id - stringField - intField - stringArrayField - boolField - enumField - } - } - """ - response = requests.post( - f"{backend_url}/graphql", - json={"query": query, "variables": {"id": id, "entity": body}}, - headers=auth_header, - ) - assert "data" in response.json() - assert "updateEntity" in response.json()["data"] - data = response.json()["data"]["updateEntity"] - if fs: - assert filename_field in data - actual = {k: v for k, v in data.items() if k in body} - assert actual == body - return data - - -def delete_entity(backend_url, auth_header, id): - query = """ - mutation($id: ID!) { - deleteEntity(id: $id) - } - """ - response = requests.post( - f"{backend_url}/graphql", - json={"query": query, "variables": {"id": id}}, - headers=auth_header, - ) - assert "data" in response.json() - assert "deleteEntity" in response.json()["data"] - data = response.json()["data"]["deleteEntity"] - assert data == id - return data - - -def test_entities_gql(backend_url, auth_header, lang, api, fs): - if api == "rest": - return - - body1 = { - "stringField": "TestScript1", - "intField": 1, - "enumField": "A", - "stringArrayField": ["test1", "test2"], - "boolField": True, - } - body2 = { - "stringField": "TestScript2", - "intField": 2, - "enumField": "B", - "stringArrayField": ["test2"], - "boolField": False, - } - filename_field = "fileName" - if lang != "ts": - body1 = {inflection.underscore(k): v for k, v in body1.items()} - body2 = {inflection.underscore(k): v for k, v in body2.items()} - filename_field = inflection.underscore(filename_field) - file1 = ("dog.jpg", open("dog.jpg", "rb"), "image/jpeg") - file2 = ("cat.png", open("cat.png", "rb"), "image/png") - - entity = create_entity(backend_url, auth_header, body1, fs, file1, filename_field) - if fs: - get_file(backend_url, auth_header, entity[filename_field]) - updated_entity = update_entity( - backend_url, auth_header, entity["id"], body2, fs, file2, filename_field - ) - if fs: - get_file(backend_url, auth_header, updated_entity[filename_field]) - retrieved_entity = get_entity_by_id(backend_url, auth_header, entity["id"], fs) - assert updated_entity == retrieved_entity - assert get_entities(backend_url, auth_header, fs) - delete_entity(backend_url, auth_header, entity["id"]) diff --git a/e2e-tests/test_user.py b/e2e-tests/test_user.py deleted file mode 100644 index ebeada15..00000000 --- a/e2e-tests/test_user.py +++ /dev/null @@ -1,127 +0,0 @@ -import inflection -import requests - - -def get_users(backend_url, auth_header): - response = requests.get(f"{backend_url}/users", headers=auth_header) - assert response.status_code == 200 - return response.json() - - -def get_user_by_id(backend_url, auth_header, id, lang): - if lang == "ts": - response = requests.get( - f"{backend_url}/users?userId={id}", - headers=auth_header, - ) - else: - response = requests.get( - f"{backend_url}/users?user_id={id}", - headers=auth_header, - ) - assert response.status_code == 200 - return response.json() - - -def get_user_by_email(backend_url, auth_header, email): - print(auth_header) - response = requests.get( - f"{backend_url}/users?email={email}", - headers=auth_header, - ) - print(response) - assert response.status_code == 200 - return response.json() - - -def create_user(backend_url, auth_header, body): - response = requests.post( - f"{backend_url}/users/", - json=body, - headers=auth_header, - ) - assert response.status_code == 201 - data = response.json() - expected = {k: v for k, v in body.items() if k != "password"} - actual = {k: v for k, v in data.items() if k in body} - assert actual == expected - return data - - -def update_user(backend_url, auth_header, id, body): - response = requests.put( - f"{backend_url}/users/{id}", - json=body, - headers=auth_header, - ) - assert response.status_code == 200 - data = response.json() - actual = {k: v for k, v in data.items() if k in body} - assert actual == body - return data - - -def delete_user(backend_url, auth_header, id, lang): - if lang == "ts": - response = requests.delete( - f"{backend_url}/users?userId={id}", - headers=auth_header, - ) - else: - response = requests.delete( - f"{backend_url}/users?user_id={id}", - headers=auth_header, - ) - assert response.status_code == 204 - - -def test_users(backend_url, auth_header, lang, api, new_user_email): - if not auth_header or api != "rest": - return - - body1 = { - "firstName": "Test", - "lastName": "Script", - "role": "Relief Staff", - "email": new_user_email, - "password": "password", - } - body2 = { - "firstName": "Test", - "lastName": "Script", - "email": new_user_email, - "role": "Regular Staff", - } - body3 = { - "firstName": "Test", - "lastName": "Script", - "email": new_user_email, - "role": "Admin", - } - if lang != "ts": - body1 = {inflection.underscore(k): v for k, v in body1.items()} - body2 = {inflection.underscore(k): v for k, v in body2.items()} - body3 = {inflection.underscore(k): v for k, v in body3.items()} - - user = create_user(backend_url, auth_header, body1) - - # update to Regular Staff - updated_user = update_user(backend_url, auth_header, user["id"], body2) - retrieved_user_by_id = get_user_by_id(backend_url, auth_header, user["id"], lang) - assert updated_user == retrieved_user_by_id - retrieved_user_by_email = get_user_by_email( - backend_url, auth_header, updated_user["email"] - ) - assert updated_user == retrieved_user_by_email - - # update to Admin - updated_user = update_user(backend_url, auth_header, user["id"], body3) - retrieved_user_by_id = get_user_by_id(backend_url, auth_header, user["id"], lang) - assert updated_user == retrieved_user_by_id - retrieved_user_by_email = get_user_by_email( - backend_url, auth_header, updated_user["email"] - ) - assert updated_user == retrieved_user_by_email - - assert get_users(backend_url, auth_header) - delete_user(backend_url, auth_header, user["id"], lang) diff --git a/e2e-tests/test_user_gql.py b/e2e-tests/test_user_gql.py deleted file mode 100644 index b75a796d..00000000 --- a/e2e-tests/test_user_gql.py +++ /dev/null @@ -1,168 +0,0 @@ -import inflection -import requests - - -def get_users(backend_url, auth_header): - query = """ - query { - users { - id - firstName - lastName - email - role - } - } - """ - response = requests.post( - f"{backend_url}/graphql", - json={"query": query}, - headers=auth_header, - ) - assert "data" in response.json() - assert "users" in response.json()["data"] - return response.json()["data"]["users"] - - -def get_user_by_id(backend_url, auth_header, id): - query = """ - query($id: ID!) { - userById(id: $id) { - id - firstName - lastName - email - role - } - } - """ - response = requests.post( - f"{backend_url}/graphql", - json={"query": query, "variables": {"id": id}}, - headers=auth_header, - ) - assert "data" in response.json() - assert "userById" in response.json()["data"] - return response.json()["data"]["userById"] - - -def get_user_by_email(backend_url, auth_header, email): - query = """ - query($email: String!) { - userByEmail(email: $email) { - id - firstName - lastName - email - role - } - } - """ - response = requests.post( - f"{backend_url}/graphql", - json={"query": query, "variables": {"email": email}}, - headers=auth_header, - ) - assert "data" in response.json() - assert "userByEmail" in response.json()["data"] - return response.json()["data"]["userByEmail"] - - -def create_user(backend_url, auth_header, body): - query = """ - mutation($user: CreateUserDTO!) { - createUser(user: $user) { - id - firstName - lastName - email - role - } - } - """ - response = requests.post( - f"{backend_url}/graphql", - json={"query": query, "variables": {"user": body}}, - headers=auth_header, - ) - assert "data" in response.json() - assert "createUser" in response.json()["data"] - data = response.json()["data"]["createUser"] - expected = {k: v for k, v in body.items() if k != "password"} - actual = {k: v for k, v in data.items() if k in body} - assert actual == expected - return data - - -def update_user(backend_url, auth_header, id, body): - query = """ - mutation($id: ID!, $user: UpdateUserDTO!) { - updateUser(id: $id, user: $user) { - id - firstName - lastName - email - role - } - } - """ - response = requests.post( - f"{backend_url}/graphql", - json={"query": query, "variables": {"id": id, "user": body}}, - headers=auth_header, - ) - assert "data" in response.json() - assert "updateUser" in response.json()["data"] - data = response.json()["data"]["updateUser"] - actual = {k: v for k, v in data.items() if k in body} - assert actual == body - return data - - -def delete_user(backend_url, auth_header, id): - query = """ - mutation($id: ID!) { - deleteUserById(id: $id) - } - """ - response = requests.post( - f"{backend_url}/graphql", - json={"query": query, "variables": {"id": id}}, - headers=auth_header, - ) - assert "data" in response.json() - assert "deleteUserById" in response.json()["data"] - return response.json()["data"]["deleteUserById"] - - -def test_users_gql(backend_url, auth_header, lang, api, new_user_email): - if not auth_header or api == "rest": - return - - body1 = { - "firstName": "Test", - "lastName": "Script", - "role": "User", - "email": new_user_email, - "password": "password", - } - body2 = { - "firstName": "Test2", - "lastName": "Script2", - "role": "User", - "email": new_user_email, - } - if lang != "ts": - body1 = {inflection.underscore(k): v for k, v in body1.items()} - body2 = {inflection.underscore(k): v for k, v in body2.items()} - - user = create_user(backend_url, auth_header, body1) - updated_user = update_user(backend_url, auth_header, user["id"], body2) - retrieved_user_by_id = get_user_by_id(backend_url, auth_header, user["id"]) - assert updated_user == retrieved_user_by_id - retrieved_user_by_email = get_user_by_email( - backend_url, auth_header, updated_user["email"] - ) - assert updated_user == retrieved_user_by_email - assert get_users(backend_url, auth_header) - delete_user(backend_url, auth_header, user["id"]) diff --git a/frontend/src/APIClients/EntityAPIClient.ts b/frontend/src/APIClients/EntityAPIClient.ts deleted file mode 100644 index 2b9d805f..00000000 --- a/frontend/src/APIClients/EntityAPIClient.ts +++ /dev/null @@ -1,121 +0,0 @@ -import baseAPIClient from "./BaseAPIClient"; -import AUTHENTICATED_USER_KEY from "../constants/AuthConstants"; -import { getLocalStorageObjProperty } from "../utils/LocalStorageUtils"; - -enum EnumField { - "A", - "B", - "C", - "D", -} - -export type EntityRequest = { - stringField: string; - intField: number; - stringArrayField: string[]; - enumField: EnumField; - boolField: boolean; -}; - -export type EntityResponse = { - id: string | number; - stringField: string; - intField: number; - stringArrayField: string[]; - enumField: EnumField; - boolField: boolean; - fileName: string; -}; - -const create = async ({ - formData, -}: { - formData: FormData; -}): Promise => { - const bearerToken = `Bearer ${getLocalStorageObjProperty( - AUTHENTICATED_USER_KEY, - "accessToken", - )}`; - try { - const { data } = await baseAPIClient.post("/entities", formData, { - headers: { Authorization: bearerToken }, - }); - return data; - } catch (error: any) { - return error; - } -}; - -const get = async (): Promise => { - const bearerToken = `Bearer ${getLocalStorageObjProperty( - AUTHENTICATED_USER_KEY, - "accessToken", - )}`; - try { - const { data } = await baseAPIClient.get("/entities", { - headers: { Authorization: bearerToken }, - }); - return data; - } catch (error: any) { - return error; - } -}; - -const getFile = async (uuid: string): Promise => { - const bearerToken = `Bearer ${getLocalStorageObjProperty( - AUTHENTICATED_USER_KEY, - "accessToken", - )}`; - try { - const { data } = await baseAPIClient.get(`/entities/files/${uuid}`, { - headers: { Authorization: bearerToken }, - }); - - return data.fileUrl; - } catch (error: any) { - return error; - } -}; - -const getCSV = async (): Promise => { - const bearerToken = `Bearer ${getLocalStorageObjProperty( - AUTHENTICATED_USER_KEY, - "accessToken", - )}`; - try { - const { data } = await baseAPIClient.get("/entities", { - // Following line is necessary to set the Content-Type header - // Reference: https://github.com/axios/axios/issues/86 - data: null, - headers: { Authorization: bearerToken, "Content-Type": "text/csv" }, - }); - - return data; - } catch (error: any) { - return error; - } -}; - -const update = async ( - id: number | string, - { - entityData, - }: { - entityData: FormData; - }, -): Promise => { - const bearerToken = `Bearer ${getLocalStorageObjProperty( - AUTHENTICATED_USER_KEY, - "accessToken", - )}`; - try { - const { data } = await baseAPIClient.put(`/entities/${id}`, entityData, { - headers: { Authorization: bearerToken }, - }); - return data; - } catch (error: any) { - return error; - } -}; - -export default { create, get, getFile, getCSV, update }; diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 0fb240fa..53db0629 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -4,21 +4,16 @@ import { BrowserRouter as Router, Route, Switch } from "react-router-dom"; import { ChakraProvider } from "@chakra-ui/react"; -import LoginPage from "./components/pages/LoginPage"; -import SignupPage from "./components/pages/SignupPage"; +import LoginPage from "./components/pages/Auth/LoginPage"; +import SignupPage from "./components/pages/Auth/SignupPage"; import PrivateRoute from "./components/auth/PrivateRoute"; import Verification from "./components/auth/Verification"; import HomePage from "./components/pages/HomePage/HomePage"; -import NotFound from "./components/pages/NotFound"; +import NotFound from "./components/pages/Errors/NotFound"; import * as Routes from "./constants/Routes"; import AUTHENTICATED_USER_KEY from "./constants/AuthConstants"; import AuthContext from "./contexts/AuthContext"; import { getLocalStorageObj } from "./utils/LocalStorageUtils"; -import SampleContext, { - DEFAULT_SAMPLE_CONTEXT, -} from "./contexts/SampleContext"; -import sampleContextReducer from "./reducers/SampleContextReducer"; -import SampleContextDispatcherContext from "./contexts/SampleContextDispatcherContext"; import ResidentDirectory from "./components/pages/ResidentDirectory/ResidentDirectory"; import { AuthenticatedUser } from "./types/AuthTypes"; @@ -38,64 +33,40 @@ const App = (): React.ReactElement => { setAuthenticatedUser, ] = useState(currentUser); - // Some sort of global state. Context API replaces redux. - // Split related states into different contexts as necessary. - // Split dispatcher and state into separate contexts as necessary. - const [sampleContext, dispatchSampleContextUpdate] = useReducer( - sampleContextReducer, - DEFAULT_SAMPLE_CONTEXT, - ); - return ( - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - + + + + ); }; diff --git a/frontend/src/components/common/MainPageButton.tsx b/frontend/src/components/common/MainPageButton.tsx deleted file mode 100644 index 62d3596d..00000000 --- a/frontend/src/components/common/MainPageButton.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import React from "react"; -import { useHistory } from "react-router-dom"; -import { HOME_PAGE } from "../../constants/Routes"; - -const MainPageButton = (): React.ReactElement => { - const history = useHistory(); - const navigateTo = () => history.push(HOME_PAGE); - return ( -
- -
- ); -}; - -export default MainPageButton; diff --git a/frontend/src/components/common/__tests__/MainPageButton.spec.tsx b/frontend/src/components/common/__tests__/MainPageButton.spec.tsx deleted file mode 100644 index 0b72d7f2..00000000 --- a/frontend/src/components/common/__tests__/MainPageButton.spec.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import React from "react"; -import { create } from "react-test-renderer"; -import MainPageButton from "../MainPageButton"; - -// Example snapshot test. -// For more information on React testing, visit: -// https://jestjs.io/docs/tutorial-react -// https://reactjs.org/docs/testing.html - -describe("MainPageButton component", () => { - it("should match the snapshot", () => { - const button = create(); - expect(button.toJSON()).toMatchSnapshot(); - }); -}); diff --git a/frontend/src/components/common/__tests__/__snapshots__/MainPageButton.spec.tsx.snap b/frontend/src/components/common/__tests__/__snapshots__/MainPageButton.spec.tsx.snap deleted file mode 100644 index f4e9836c..00000000 --- a/frontend/src/components/common/__tests__/__snapshots__/MainPageButton.spec.tsx.snap +++ /dev/null @@ -1,18 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`MainPageButton component should match the snapshot 1`] = ` -
- -
-`; diff --git a/frontend/src/components/crud/CreateForm.tsx b/frontend/src/components/crud/CreateForm.tsx deleted file mode 100644 index 08cd3969..00000000 --- a/frontend/src/components/crud/CreateForm.tsx +++ /dev/null @@ -1,108 +0,0 @@ -import React, { useState } from "react"; -import { decamelizeKeys } from "humps"; -import { JSONSchema7 } from "json-schema"; -import { Form } from "@rjsf/bootstrap-4"; -import EntityAPIClient, { - EntityRequest, - EntityResponse, -} from "../../APIClients/EntityAPIClient"; - -const schema: JSONSchema7 = { - title: "Create Entity", - description: "A simple form to test creating an entity", - type: "object", - required: [ - "stringField", - "intField", - "stringArrayField", - "enumField", - "boolField", - ], - properties: { - stringField: { - type: "string", - title: "String Field", - default: "UW Blueprint", - }, - intField: { - type: "integer", - title: "Integer Field", - default: 2017, - }, - stringArrayField: { - type: "array", - items: { - type: "string", - }, - title: "String Array Field", - default: [], - }, - enumField: { - type: "string", - enum: ["A", "B", "C", "D"], - title: "Enum Field", - default: "A", - }, - boolField: { - type: "boolean", - title: "Boolean Field", - default: true, - }, - }, -}; - -const uiSchema = { - boolField: { - "ui:widget": "select", - }, -}; - -const CreateForm = (): React.ReactElement => { - const [data, setData] = useState(null); - const [fileField, setFileField] = useState(null); - const [formFields, setFormFields] = useState(null); - - if (data) { - return

Created! ✔ïļ

; - } - - const fileChanged = (e: { target: HTMLInputElement }) => { - if (e.target.files) { - const fileSize = e.target.files[0].size / 1024 / 1024; - if (fileSize > 5) { - // eslint-disable-next-line no-alert - window.alert("Your file exceeds 5MB. Upload a smaller file."); - } else { - setFileField(e.target.files[0]); - } - } - }; - - const onSubmit = async ({ formData }: { formData: EntityRequest }) => { - const multipartFormData = new FormData(); - multipartFormData.append("body", JSON.stringify(decamelizeKeys(formData))); - if (fileField) { - multipartFormData.append("file", fileField); - } - const result = await EntityAPIClient.create({ - formData: multipartFormData, - }); - setData(result); - }; - return ( - <> - -
- setFormFields(formData) - } - onSubmit={onSubmit} - /> - - ); -}; - -export default CreateForm; diff --git a/frontend/src/components/crud/DisplayTableContainer.tsx b/frontend/src/components/crud/DisplayTableContainer.tsx deleted file mode 100644 index 730cbccf..00000000 --- a/frontend/src/components/crud/DisplayTableContainer.tsx +++ /dev/null @@ -1,177 +0,0 @@ -/* eslint react/jsx-props-no-spreading: 0 */ // --> OFF -import React, { useState, useEffect } from "react"; -import BTable from "react-bootstrap/Table"; -import { HeaderGroup, useTable, Column } from "react-table"; - -import EntityAPIClient, { - EntityResponse, -} from "../../APIClients/EntityAPIClient"; -import { downloadCSV } from "../../utils/CSVUtils"; -import { downloadFile } from "../../utils/FileUtils"; - -type EntityData = Omit & { boolField: string }; - -const convert = (entityResponse: EntityResponse): EntityData => { - return { - id: entityResponse.id, - stringField: entityResponse.stringField, - intField: entityResponse.intField, - stringArrayField: entityResponse.stringArrayField, - enumField: entityResponse.enumField, - boolField: entityResponse.boolField.toString(), - fileName: entityResponse.fileName, - }; -}; - -type TableProps = { - data: EntityData[]; - downloadEntityFile: (fileUUID: string) => void; -}; - -const createColumns = ( - downloadEntityFile: (fileUUID: string) => void, -): Column[] => [ - { - Header: "id", - - accessor: "id", // accessor is the "key" in the data - }, - { - Header: "stringField", - - accessor: "stringField", // accessor is the "key" in the data - }, - - { - Header: "integerField", - - accessor: "intField", - }, - { - Header: "stringArrayField", - - accessor: "stringArrayField", - }, - { - Header: "enumField", - - accessor: "enumField", - }, - { - Header: "boolField", - - accessor: "boolField", - }, - { - Header: "fileName", - - accessor: "fileName", - - // eslint-disable-next-line react/display-name, @typescript-eslint/no-explicit-any - Cell: ({ cell }: any) => - // TODO: lookup the proper type of the prop - cell.row.values.fileName ? ( - - ) : null, - }, -]; - -const DisplayTable = ({ data, downloadEntityFile }: TableProps) => { - const { - getTableProps, - - headerGroups, - - rows, - - prepareRow, - } = useTable({ - columns: createColumns(downloadEntityFile), - data, - }); - - return ( - - - {headerGroups.map((headerGroup: HeaderGroup) => ( - // Key is specified in the prop getter functions - // eslint-disable-next-line react/jsx-key - - {headerGroup.headers.map((column) => ( - // eslint-disable-next-line react/jsx-key - {column.render("Header")} - ))} - - ))} - - - {rows.map((row) => { - prepareRow(row); - return ( - // eslint-disable-next-line react/jsx-key - - {row.cells.map((cell) => { - // eslint-disable-next-line react/jsx-key - return {cell.render("Cell")}; - })} - - ); - })} - - - ); -}; - -const DisplayTableContainer: React.FC = (): React.ReactElement | null => { - const [entities, setEntities] = useState(null); - - useEffect(() => { - const retrieveAndUpdateData = async () => { - const result = await EntityAPIClient.get(); - if (result) { - setEntities(result.map((r: EntityResponse) => convert(r))); - } - }; - retrieveAndUpdateData(); - }, []); - - const downloadEntityFile = async (fileUUID: string) => { - const data = await EntityAPIClient.getFile(fileUUID); - downloadFile(data, "file"); - }; - - const downloadEntitiesCSV = async () => { - if (entities) { - const csvString = await EntityAPIClient.getCSV(); - downloadCSV(csvString, "export.csv"); - // Use the following lines to download CSV using frontend CSV generation instead of API - // const csvString = await generateCSV({ data: entities }); - // downloadCSV(csvString, "export.csv"); - } - }; - - return ( - <> - - {entities && ( - - )} - - ); -}; - -export default DisplayTableContainer; diff --git a/frontend/src/components/crud/UpdateForm.tsx b/frontend/src/components/crud/UpdateForm.tsx deleted file mode 100644 index f2e684c4..00000000 --- a/frontend/src/components/crud/UpdateForm.tsx +++ /dev/null @@ -1,119 +0,0 @@ -import React, { useState } from "react"; -import { decamelizeKeys } from "humps"; -import { JSONSchema7 } from "json-schema"; -import { Form } from "@rjsf/bootstrap-4"; -import EntityAPIClient, { - EntityRequest, - EntityResponse, -} from "../../APIClients/EntityAPIClient"; - -const schema: JSONSchema7 = { - title: "Update Entity", - description: "A simple form to test updating an entity", - type: "object", - required: [ - "id", - "stringField", - "intField", - "stringArrayField", - "enumField", - "boolField", - ], - properties: { - id: { - type: "string", - title: "entity id", - default: "123abc456def7890ghij1234", - }, - stringField: { - type: "string", - title: "String Field", - default: "UW Blueprint", - }, - intField: { - type: "integer", - title: "Integer Field", - default: 2017, - }, - stringArrayField: { - type: "array", - items: { - type: "string", - }, - title: "String Array Field", - default: [], - }, - enumField: { - type: "string", - enum: ["A", "B", "C", "D"], - title: "Enum Field", - default: "A", - }, - boolField: { - type: "boolean", - title: "Boolean Field", - default: true, - }, - }, -}; - -const uiSchema = { - boolField: { - "ui:widget": "select", - }, -}; - -const UpdateForm = (): React.ReactElement => { - const [data, setData] = useState(null); - const [fileField, setFileField] = useState(null); - const [formFields, setFormFields] = useState(null); - - if (data) { - return

Updated! ✔ïļ

; - } - - const fileChanged = (e: { target: HTMLInputElement }) => { - if (e.target.files) { - const fileSize = e.target.files[0].size / 1024 / 1024; - if (fileSize > 5) { - // eslint-disable-next-line no-alert - window.alert("Your file exceeds 5MB. Upload a smaller file."); - } else { - setFileField(e.target.files[0]); - } - } - }; - - const onSubmit = async ({ formData }: { formData: EntityResponse }) => { - const { id, ...entityData } = formData; - - const multipartFormData = new FormData(); - multipartFormData.append( - "body", - JSON.stringify(decamelizeKeys(entityData)), - ); - if (fileField) { - multipartFormData.append("file", fileField); - } - const result = await EntityAPIClient.update(formData.id, { - entityData: multipartFormData, - }); - setData(result); - }; - return ( - <> - - - setFormFields(formData) - } - onSubmit={onSubmit} - /> - - ); -}; - -export default UpdateForm; diff --git a/frontend/src/components/forms/ExportToCSV.tsx b/frontend/src/components/forms/ExportToCSV.tsx index 73a48ad5..3d522607 100644 --- a/frontend/src/components/forms/ExportToCSV.tsx +++ b/frontend/src/components/forms/ExportToCSV.tsx @@ -28,9 +28,9 @@ import { import { SmallCloseIcon } from "@chakra-ui/icons"; import { TiExport } from "react-icons/ti"; import { SingleDatepicker } from "chakra-dayzed-datepicker"; -import CSVConverter from "../../helper/CSVConverter"; import LogRecordAPIClient from "../../APIClients/LogRecordAPIClient"; import { singleDatePickerStyle } from "../../theme/forms/datePickerStyles"; +import convertLogsToCSV from "../../helper/csvHelpers"; const ExportToCSV = (): React.ReactElement => { const [startDate, setStartDate] = useState(); @@ -77,7 +77,7 @@ const ExportToCSV = (): React.ReactElement => { returnAll: true, // return all data }); - setShowAlert(!data || !CSVConverter(data.logRecords)); + setShowAlert(!data || !convertLogsToCSV(data.logRecords)); }; useEffect(() => { diff --git a/frontend/src/components/pages/LoginPage.tsx b/frontend/src/components/pages/Auth/LoginPage.tsx similarity index 89% rename from frontend/src/components/pages/LoginPage.tsx rename to frontend/src/components/pages/Auth/LoginPage.tsx index 9b3c8aa1..988bca5a 100644 --- a/frontend/src/components/pages/LoginPage.tsx +++ b/frontend/src/components/pages/Auth/LoginPage.tsx @@ -1,6 +1,6 @@ import React, { useState } from "react"; -import Login from "../forms/Login"; -import TwoFa from "../auth/TwoFa"; +import Login from "../../forms/Login"; +import TwoFa from "../../auth/TwoFa"; const LoginPage = (): React.ReactElement => { const [email, setEmail] = useState(""); diff --git a/frontend/src/components/pages/SignupPage.tsx b/frontend/src/components/pages/Auth/SignupPage.tsx similarity index 90% rename from frontend/src/components/pages/SignupPage.tsx rename to frontend/src/components/pages/Auth/SignupPage.tsx index 1ecaf6be..e699e9d5 100644 --- a/frontend/src/components/pages/SignupPage.tsx +++ b/frontend/src/components/pages/Auth/SignupPage.tsx @@ -1,6 +1,6 @@ import React, { useState } from "react"; -import Signup from "../forms/Signup"; -import TwoFa from "../auth/TwoFa"; +import Signup from "../../forms/Signup"; +import TwoFa from "../../auth/TwoFa"; const SignupPage = (): React.ReactElement => { const [toggle, setToggle] = useState(true); diff --git a/frontend/src/components/pages/CreatePage.tsx b/frontend/src/components/pages/CreatePage.tsx deleted file mode 100644 index 904d6aa3..00000000 --- a/frontend/src/components/pages/CreatePage.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import React from "react"; -import CreateForm from "../crud/CreateForm"; -import MainPageButton from "../common/MainPageButton"; - -const CreatePage = (): React.ReactElement => { - return ( -
-

Default Page

- - -
- ); -}; - -export default CreatePage; diff --git a/frontend/src/components/pages/Default.tsx b/frontend/src/components/pages/Default.tsx deleted file mode 100644 index 47a2e7a8..00000000 --- a/frontend/src/components/pages/Default.tsx +++ /dev/null @@ -1,60 +0,0 @@ -import React, { useContext } from "react"; -import { useHistory } from "react-router-dom"; -import * as Routes from "../../constants/Routes"; -import SampleContext from "../../contexts/SampleContext"; - -import Logout from "../auth/Logout"; -import RefreshCredentials from "../auth/RefreshCredentials"; -import ResetPassword from "../auth/ResetPassword"; - -import NavigationBar from "../common/NavigationBar"; - -type ButtonProps = { text: string; path: string }; - -const Button = ({ text, path }: ButtonProps) => { - const history = useHistory(); - const navigateTo = () => history.push(path); - return ( - - ); -}; - -const TeamInfoDisplay = () => { - const { teamName, numTerms, members, isActive } = useContext(SampleContext); - return ( -
-

Team Info

-
Name: {teamName}
-
# terms: {numTerms}
-
- Members:{" "} - {members.map( - (name, i) => ` ${name}${i === members.length - 1 ? "" : ","}`, - )} -
-
Active: {isActive ? "Yes" : "No"}
-
- ); -}; - -const Default = (): React.ReactElement => { - return ( -
- -

Default Page

-
- - - -
- -
- - -
- ); -}; - -export default Default; diff --git a/frontend/src/components/pages/DisplayPage.tsx b/frontend/src/components/pages/DisplayPage.tsx deleted file mode 100644 index a9d7f79f..00000000 --- a/frontend/src/components/pages/DisplayPage.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import React from "react"; -import DisplayTableContainer from "../crud/DisplayTableContainer"; -import MainPageButton from "../common/MainPageButton"; - -const GetPage = (): React.ReactElement => { - return ( -
-

Default Page

- - -
- ); -}; - -export default GetPage; diff --git a/frontend/src/components/pages/EditTeamPage.tsx b/frontend/src/components/pages/EditTeamPage.tsx deleted file mode 100644 index 3d5457a3..00000000 --- a/frontend/src/components/pages/EditTeamPage.tsx +++ /dev/null @@ -1,93 +0,0 @@ -import React, { useContext, useState } from "react"; -import SampleContext from "../../contexts/SampleContext"; -import MainPageButton from "../common/MainPageButton"; -import SampleContextDispatcherContext from "../../contexts/SampleContextDispatcherContext"; - -type DeleteButtonProps = { index: number; onClick: (index: number) => void }; - -const DeleteMemberButton: React.FC = ({ - index, - onClick, -}: DeleteButtonProps) => { - return ( - - ); -}; - -const EditTeamInfoPage = (): React.ReactElement => { - const { teamName, numTerms, members } = useContext(SampleContext); - const dispatchTeamUpdate = useContext(SampleContextDispatcherContext); - const [newMember, setNewMember] = useState(""); - - const setName = (e: React.FormEvent) => { - dispatchTeamUpdate({ type: "EDIT_NAME", value: e.currentTarget.value }); - }; - - const setNumTerms = (e: React.FormEvent) => { - dispatchTeamUpdate({ - type: "EDIT_NUM_TERMS", - value: parseInt(e.currentTarget.value, 10), - }); - }; - - const onMemberDelete = (index: number) => { - dispatchTeamUpdate({ - type: "EDIT_MEMBERS", - value: [...members.slice(0, index), ...members.slice(index + 1)], - }); - }; - - const onMemberAdd = () => { - dispatchTeamUpdate({ - type: "EDIT_MEMBERS", - value: [...members, newMember], - }); - }; - - return ( -
-

Edit Team

-
- Team Name: -
-
- Num Terms:{" "} - -
-
- Members: - {members.map((_name, i) => ( -
- {_name} - -
- ))} -
-
- { - setNewMember(e.target.value); - }} - /> - -
- -
- ); -}; - -export default EditTeamInfoPage; diff --git a/frontend/src/components/pages/Errors/NotFound.tsx b/frontend/src/components/pages/Errors/NotFound.tsx new file mode 100644 index 00000000..15cdbbb5 --- /dev/null +++ b/frontend/src/components/pages/Errors/NotFound.tsx @@ -0,0 +1,54 @@ +import React, { useContext, useState, useEffect } from "react"; +import { + Box, + Button, + Flex, + Text, + FormControl, + FormErrorMessage, + Input, + Spinner, +} from "@chakra-ui/react"; +import { useHistory } from "react-router-dom"; +import { HOME_PAGE } from "../../../constants/Routes"; + +const Login = (): React.ReactElement => { + const history = useHistory(); + + const onHomeClick = () => { + history.push(HOME_PAGE); + }; + + return ( + + + + + Page Not Found + + + + The page you are looking for does not exist. + + + + + + + + + {/* Background */} + + + ); +}; + +export default Login; diff --git a/frontend/src/components/pages/HooksDemo/EmojiSection.tsx b/frontend/src/components/pages/HooksDemo/EmojiSection.tsx deleted file mode 100644 index 107f6d4c..00000000 --- a/frontend/src/components/pages/HooksDemo/EmojiSection.tsx +++ /dev/null @@ -1,56 +0,0 @@ -import React, { forwardRef } from "react"; - -type Props = { - title: string; - description: string; - notes?: string[]; - emoji: string; - onClick?: (emoji: string) => void; -}; - -// React.forwardRef https://reactjs.org/docs/react-api.html#reactforwardref -// forwardRef allows us to forward a passed ref attribute further down the -// the DOM tree. -const EmojiSection = forwardRef( - ( - { title, description, notes, emoji, onClick }: Props, - ref, - ): React.ReactElement => { - function handleClick() { - if (onClick) { - onClick(emoji); - } - } - - return ( -
-

{title}

-
-
{emoji}
-

{description}

-
- {notes && ( - <> -
Notes:
-
    - {notes.map( - (note: string, i: number): React.ReactElement => ( -
  • {note}
  • - ), - )} -
- - )} -
- ); - }, -); - -// This is necessary because we are using forwardRef. -EmojiSection.displayName = "EmojiSection"; - -// React.memo https://reactjs.org/docs/react-api.html#reactmemo -// React.memo prevents the component passed in from re-rendering if -// its props have not changed. Note that it only performs a shallow -// comparison on each prop. -export default React.memo(EmojiSection); diff --git a/frontend/src/components/pages/HooksDemo/HooksDemo.tsx b/frontend/src/components/pages/HooksDemo/HooksDemo.tsx deleted file mode 100644 index d9717ea1..00000000 --- a/frontend/src/components/pages/HooksDemo/HooksDemo.tsx +++ /dev/null @@ -1,211 +0,0 @@ -/* eslint-disable jsx-a11y/no-noninteractive-element-interactions */ -/* eslint-disable no-console */ - -// *************************************************************** -// This page is meant to be a hooks crash course and demo basic -// hook functionality in React. -// To learn more about React hooks and the most up to date -// patterns, check out the official docs at: -// -// https://reactjs.org/docs/hooks-intro.html -// -// Hooks demonstrated on this page: -// * useState -// * useRef -// * useCallback -// -// For an example of a custom hook using useEffect, see: -// https://github.com/uwblueprint/arbitrium/blob/master/src/Hooks/usePromise.ts -// https://github.com/uwblueprint/arbitrium/blob/master/src/Hooks/useAsyncFetch.ts -// *************************************************************** - -// *************************************************************** -// FUNCTIONAL COMPONENTS VS. CLASS COMPONENTS -// -// In component classes, we use lifecycle methods such as -// componentDidMount, componentDidUpdate, render, etc. to -// trigger side effects and update / manage the component. -// -// Another way to define a React component is as a function. -// Functional components with hooks remove the boilerplate of -// class components and their lifecycle methods. You can now -// reason about React components as you would any other function. -// Hooks allow us to inject state into functional components, -// and retain values between renders of the component. -// *************************************************************** - -import React, { useEffect, useState, useRef, useCallback } from "react"; -import EmojiSection from "./EmojiSection"; - -import { EMOJIS } from "./emojis"; -import "./styles.css"; - -type BannerState = { - emoji: string; - showBanner: boolean; -}; - -const HooksDemo = (): React.ReactElement => { - const [showScrollButton, setShowScrollButton] = useState(false); - const [bannerState, setBannerState] = useState({ - emoji: "", - showBanner: false, - }); - - // useRef allows us to store mutable, persistent values between - // renders. Here we store an array of HTMLDivElement refs so - // we can scroll each section into view. - const sectionRefs = useRef[]>( - new Array(EMOJIS.length).fill(React.createRef()), - ); - - useEffect( - () => { - // useEffect is the most basic and powerful hook. You can use - // useEffect to build out your own custom hooks. - // - // The first parameter of useEffect is a function. useEffect - // should be used for dealing with side effects that aren't - // visible, such as data fetching, logging, etc. - // - // The second paramter is an array of dependent variables. - // On each re-render the effect will check if any values in - // its dependency array has changed, and will only re-run the - // effect if it determines there's at least one change. - // All effects will run the first time on mount. - // - // As our dependency array below is empty, this effect will only - // run when the component mounts. - console.log("Component mounted!"); - - function onScroll() { - // This may seem like we are triggering an update on every scroll, - // which would be bad. - // However, the set state function returned by useState actually - // bails out if a shallow comparison of the previous and next - // state is the same. - if (window.pageYOffset > 100) { - setShowScrollButton(true); - } else if (window.pageYOffset <= 100) { - setShowScrollButton(false); - } - } - - // Set up a listener for scroll events. - window.addEventListener("scroll", onScroll); - - return () => { - // The return value for useEffect callback is an optional - // cleanup function. Remember to clean up after your effects - // or risk introducing memory leaks. - // - // This function is run on unmount, and on each re-render - // before running the effect again (i.e. a previously running - // effect is cleaned up before being re-applied). You can learn - // more about why cleanup functions are run on each re-render, - // and how to opt out if desired (ex: performance concerns) at: - // https://reactjs.org/docs/hooks-effect.html - window.removeEventListener("scroll", onScroll); - }; - }, - [] /* dependency array */, - ); - - useEffect(() => { - if (!bannerState.showBanner) return (): void => {}; - - const bannerTimer = setTimeout(() => { - setBannerState({ emoji: bannerState.emoji, showBanner: false }); - // Show banner for 5 seconds - }, 5000); - - return (): void => { - // Recall cleanup functions are automatically applied before - // applying the effect on a re-render. In this case, we definitely - // don't want to opt out of that behaviour, as we want to clear the - // previous timeout before setting a new one. - clearTimeout(bannerTimer); - }; - - // Note our dependency array contains one value. Thus, this effect - // will run when the bannerState is changed via setBannerState. - }, [bannerState]); - - const onSectionClick = useCallback((emoji: string): void => { - // useCallback is used to memoize callback functions passed to - // memoized child components or functions that may be used in hooks - // dependency arrays. - // - // A new function is only generated if anything in the - // dependency array has changed between renders. Without useCallback, - // a new onSectionClick would be generated every time and we would - // need to re-render each section, since we are passing in a 'new' - // prop. - // - // The useMemo hook exists for memoizing values instead of functions. - navigator.clipboard.writeText(emoji); - setBannerState({ showBanner: true, emoji }); - }, []); - - const scrollToTop = () => { - window.scrollTo({ - top: 0, - behavior: "smooth", - }); - }; - - return ( -
- {showScrollButton && ( - - )} - {bannerState.showBanner && ( -
- Copied {bannerState.emoji} to clipboard! -
- )} -
-

📖 Emoji Dictionary 🧠

-

Some of Internal Tools' fave emojis 🎉

-
Click a section to copy the emoji!
-
- Table of contents: -
    - {EMOJIS.map((emoji, i: number) => ( -
  • - sectionRefs.current[i].current?.scrollIntoView({ - behavior: "smooth", - }) - } - className="page-nav-item" - key={i} - > - {emoji.emoji} -
  • - ))} -
-
- {EMOJIS.map((emoji, i: number) => ( - - ))} -
-
- ); -}; - -export default HooksDemo; diff --git a/frontend/src/components/pages/HooksDemo/emojis.ts b/frontend/src/components/pages/HooksDemo/emojis.ts deleted file mode 100644 index e0cc7e32..00000000 --- a/frontend/src/components/pages/HooksDemo/emojis.ts +++ /dev/null @@ -1,67 +0,0 @@ -export type EmojiInfo = { - name: string; - emoji: string; - description: string; - uses?: string[]; -}; - -export const EMOJIS: EmojiInfo[] = [ - { - name: "Smiley face", - emoji: "🙂", - description: "The simplest smiley face emoji :).", - uses: [ - "possible passive aggression", - "said you're fine but actually dead inside", - "customer service", - ], - }, - { - name: "Scream", - emoji: "ðŸ˜ą", - description: "Emoji holding their face and screaming.", - uses: ["AAAAAAAAAAAAA", "broke main", "exams"], - }, - { - name: "Skull", - emoji: "💀", - description: "Just a skull.", - uses: ["aaaaaaa", "laughter(?)"], - }, - { - name: "Train station", - emoji: "🚉", - description: "Train stationed at a train stop.", - uses: ["we love public transit", "please stand clear of the doors"], - }, - { - name: "Clown", - emoji: "ðŸĪĄ", - description: "A clown face.", - uses: ["oh no", "did something dumb", "broke main again"], - }, - { - name: "Zany", - emoji: "ðŸĪŠ", - description: "A silly face with wide eyes and tongue stuck out.", - uses: ["git push main --force", "dynamic typing"], - }, - { - name: "Thinking", - emoji: "ðŸĪ”", - description: "Emoji thinking hard, stroking chin with raised eyebrow.", - uses: ["hmmmmmmmmmmmmmmm", "why my code not working"], - }, - { - name: "Blushing smiley face", - emoji: "😊", - description: "A blushing smiley face, with eyes closed.", - uses: ["genuine happiness or something"], - }, - { - name: "👁👄👁", - emoji: "👁👄👁", - description: "A face. Two eyes and a mouth.", - uses: ["it is what it is"], - }, -]; diff --git a/frontend/src/components/pages/HooksDemo/index.ts b/frontend/src/components/pages/HooksDemo/index.ts deleted file mode 100644 index 0b6ae484..00000000 --- a/frontend/src/components/pages/HooksDemo/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import HooksDemo from "./HooksDemo"; - -export default HooksDemo; diff --git a/frontend/src/components/pages/HooksDemo/styles.css b/frontend/src/components/pages/HooksDemo/styles.css deleted file mode 100644 index 94635e2a..00000000 --- a/frontend/src/components/pages/HooksDemo/styles.css +++ /dev/null @@ -1,71 +0,0 @@ -/* Simple styling for HooksDemo, for demo convenience. */ - -.page-root { - position: relative; - margin-bottom: 28px; -} - -.page-content { - margin: 0 auto; - width: fit-content; - max-width: 80%; -} - -.page-scroll-top-button { - position: fixed; - top: 20px; - left: 28px; - font-size: 1.5rem; -} - -.page-banner { - background: rgba(0, 0, 0, 0.2); - padding: 10px; - font-size: 2rem; - position: fixed; - right: 40px; - top: 20px; -} - -.page-nav { - columns: 2; - margin-bottom: 20px; - padding-bottom: 28px; - border-bottom: gray 5px solid; -} -.page-nav-item { - font-size: 1.5rem; -} - -.page-nav-item:hover { - cursor: pointer; - background: rgba(0, 0, 0, 0.2); -} - -.section-root { - margin-bottom: 1rem; - padding: 10px 15px; - border-left: 5px solid transparent; -} - -.section-root:hover { - cursor: pointer; - background: rgba(0, 0, 0, 0.1); - border-left: gray 5px solid; -} - -.section-body { - display: flex; - align-items: center; -} - -.section-emoji { - font-size: 64px; -} - -.section-description { - margin-left: 12px; - height: fit-content; - font-size: 1.1rem; - padding: 10px; -} diff --git a/frontend/src/components/pages/NotFound.tsx b/frontend/src/components/pages/NotFound.tsx deleted file mode 100644 index ed8d8261..00000000 --- a/frontend/src/components/pages/NotFound.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import React from "react"; - -const NotFound = (): React.ReactElement => { - return ( -
-

404 Not Found 🙁

-
- ); -}; - -export default NotFound; diff --git a/frontend/src/components/pages/ResidentDirectory/ResidentDirectory.tsx b/frontend/src/components/pages/ResidentDirectory/ResidentDirectory.tsx index 763b5091..7fb63ac9 100644 --- a/frontend/src/components/pages/ResidentDirectory/ResidentDirectory.tsx +++ b/frontend/src/components/pages/ResidentDirectory/ResidentDirectory.tsx @@ -164,13 +164,13 @@ const ResidentDirectory = (): React.ReactElement => { Resident Directory - {authenticatedUser?.role === UserRole.ADMIN && + {authenticatedUser?.role === UserRole.ADMIN && ( - } + )} { - return ( -
-

Default Page

- - -
- ); -}; - -export default UpdatePage; diff --git a/frontend/src/components/pages/__tests__/Default.test.tsx b/frontend/src/components/pages/__tests__/Default.test.tsx deleted file mode 100644 index 400866df..00000000 --- a/frontend/src/components/pages/__tests__/Default.test.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import React from "react"; -import { render } from "@testing-library/react"; -import Default from "../Default"; - -// Example React test. -// For more information on React component testing, visit: -// https://jestjs.io/docs/tutorial-react -// https://reactjs.org/docs/testing.html - -describe("Default page", () => { - it("Should render Create Entity button", () => { - const page = render(); - const button = page.queryByText("Create Entity"); - expect(button).toBeVisible(); - }); -}); diff --git a/frontend/src/contexts/SampleContext.ts b/frontend/src/contexts/SampleContext.ts deleted file mode 100644 index fca643ba..00000000 --- a/frontend/src/contexts/SampleContext.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { createContext } from "react"; -import { SampleContextType } from "../types/SampleContextTypes"; - -export const DEFAULT_SAMPLE_CONTEXT = { - teamName: "Internal Tools", - numTerms: 3, - members: ["Sherry", "Alex", "Carelynn", "Bruce", "Richard", "Raveen", "Xin"], - isActive: true, -}; - -const SampleContext = createContext(DEFAULT_SAMPLE_CONTEXT); - -export default SampleContext; diff --git a/frontend/src/contexts/SampleContextDispatcherContext.ts b/frontend/src/contexts/SampleContextDispatcherContext.ts deleted file mode 100644 index 94d86cb4..00000000 --- a/frontend/src/contexts/SampleContextDispatcherContext.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { createContext } from "react"; -import { SampleContextAction } from "../types/SampleContextTypes"; - -const SampleContextDispatcherContext = createContext< - React.Dispatch ->(() => {}); - -export default SampleContextDispatcherContext; diff --git a/frontend/src/helper/CSVConverter.tsx b/frontend/src/helper/csvHelpers.ts similarity index 92% rename from frontend/src/helper/CSVConverter.tsx rename to frontend/src/helper/csvHelpers.ts index 9b0208e5..02a86bc3 100644 --- a/frontend/src/helper/CSVConverter.tsx +++ b/frontend/src/helper/csvHelpers.ts @@ -1,5 +1,5 @@ import { LogRecord } from "../types/LogRecordTypes"; -import { CSVLog } from "../types/CSVLog"; +import { CSVLog } from "../types/CSVLogTypes"; const convertToCSVLog = (logRecord: LogRecord): CSVLog => { return { @@ -17,7 +17,7 @@ const convertToCSVLog = (logRecord: LogRecord): CSVLog => { }; }; -const CSVConverter = (data: LogRecord[]): boolean => { +const convertLogsToCSV = (data: LogRecord[]): boolean => { // Convert JSON to CSV try { const csvRows = []; @@ -67,4 +67,4 @@ const CSVConverter = (data: LogRecord[]): boolean => { } }; -export default CSVConverter; +export default convertLogsToCSV; diff --git a/frontend/src/reducers/SampleContextReducer.ts b/frontend/src/reducers/SampleContextReducer.ts deleted file mode 100644 index 9876c8ae..00000000 --- a/frontend/src/reducers/SampleContextReducer.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { - SampleContextAction, - SampleContextType, -} from "../types/SampleContextTypes"; - -// Using tools such as immer might help with this process. -export default function sampleContextReducer( - state: SampleContextType, - action: SampleContextAction, -): SampleContextType { - switch (action.type) { - case "EDIT_NAME": - return { - ...state, - teamName: action.value, - }; - case "EDIT_NUM_TERMS": - return { - ...state, - numTerms: action.value, - }; - case "EDIT_MEMBERS": - return { - ...state, - members: action.value, - }; - case "EDIT_IS_ACTIVE": - return { - ...state, - isActive: action.value, - }; - default: - return state; - } -} diff --git a/frontend/src/types/CSVLog.ts b/frontend/src/types/CSVLogTypes.ts similarity index 100% rename from frontend/src/types/CSVLog.ts rename to frontend/src/types/CSVLogTypes.ts diff --git a/frontend/src/types/SampleContextTypes.ts b/frontend/src/types/SampleContextTypes.ts deleted file mode 100644 index f2773644..00000000 --- a/frontend/src/types/SampleContextTypes.ts +++ /dev/null @@ -1,24 +0,0 @@ -export type SampleContextType = { - teamName: string; - numTerms: number; - members: string[]; - isActive: boolean; -}; - -export type SampleContextAction = - | { - type: "EDIT_NAME"; - value: string; - } - | { - type: "EDIT_NUM_TERMS"; - value: number; - } - | { - type: "EDIT_MEMBERS"; - value: string[]; - } - | { - type: "EDIT_IS_ACTIVE"; - value: boolean; - }; diff --git a/frontend/src/utils/CSVUtils.ts b/frontend/src/utils/CSVUtils.ts deleted file mode 100644 index a647b0c1..00000000 --- a/frontend/src/utils/CSVUtils.ts +++ /dev/null @@ -1,84 +0,0 @@ -import { parseAsync, transforms } from "json2csv"; -import { Readable, TransformOptions } from "stream"; - -type GenerateCSVParams = { - data: Readonly | ReadonlyArray | Readable; - fields?: string[]; - transformFunction?: (item: T) => Record; - flattenObjects?: boolean; - flattenArrays?: boolean; - pathsToUnwind?: string[]; - opts?: json2csv.Options; - transformOpts?: TransformOptions; -}; - -/** - * Generate a CSV from a JSON array/object or readable input stream. - * fields, transformFunction, flattenObjects, flattenArrays, and pathsToUnwind belong to json2csv.options but - * they are also provided as parameters here for convenience. - * For examples using each of these params, see the CSVUtils.test.ts file. - * @param data JSON array/object or stream to convert to a CSV string - * @param fields columns to include in the csv - * @param transformFunction function to transform fields of the object before converting to csv - * @param flattenObjects indicates whether each property of object fields should be split into a different column - * @param flattenArrays indicates whether each element of array fields should be split into a different column - * @param pathsToUnwind array fields that should be split into different rows - * @param opts options from json2csv to override or add additional options (https://mircozeiss.com/json2csv/#available-options) - * @param transformOpts transform options from stream module (https://nodejs.org/api/stream.html#stream_new_stream_transform_options) - * @returns CSV string - * @throws Error if JSON is not parsed properly - */ -/* eslint-disable-next-line import/prefer-default-export */ -export const generateCSV = async ({ - data, - fields, - transformFunction, - flattenObjects = false, - flattenArrays = false, - pathsToUnwind, - opts, - transformOpts, -}: GenerateCSVParams): Promise => { - const transformations = [ - transforms.flatten({ - objects: flattenObjects, - arrays: flattenArrays, - }), - ]; - if (transformFunction) { - transformations.push(transformFunction); - } - if (pathsToUnwind) { - transformations.push(transforms.unwind({ paths: pathsToUnwind })); - } - - const options = { - fields, - transforms: transformations, - ...opts, - }; - return parseAsync(data, options, transformOpts); -}; - -/** - * Downloads a CSV file. - * References: https://github.com/mui-org/material-ui-x/blob/fa346f0fbe3d9b9eea9bb403fe4675f544d6abf9/packages/grid/_modules_/grid/utils/exportAs.ts - * @param data CSV string - * @param fileName name of the CSV file - */ -export const downloadCSV = (data: string, fileName: string): void => { - const byteOrderMark = "\uFEFF"; - const csvContent = byteOrderMark + data; - const blob = new Blob([csvContent], { - type: "text/csv, charset=UTF-8", - }); - const url = URL.createObjectURL(blob); - - const a = document.createElement("a"); - a.href = url; - a.download = fileName; - a.click(); - setTimeout(() => { - URL.revokeObjectURL(url); - }); -}; diff --git a/frontend/src/utils/FileUtils.ts b/frontend/src/utils/FileUtils.ts deleted file mode 100644 index efc08e43..00000000 --- a/frontend/src/utils/FileUtils.ts +++ /dev/null @@ -1,9 +0,0 @@ -// eslint-disable-next-line import/prefer-default-export -export const downloadFile = (data: string, fileName: string): void => { - const a = document.createElement("a"); - a.href = data; - a.download = fileName; - a.target = "_blank"; - a.click(); - a.parentNode?.removeChild(a); -}; diff --git a/frontend/src/utils/__tests__/CSVUtils.test.ts b/frontend/src/utils/__tests__/CSVUtils.test.ts deleted file mode 100644 index 24878055..00000000 --- a/frontend/src/utils/__tests__/CSVUtils.test.ts +++ /dev/null @@ -1,136 +0,0 @@ -import * as CSVUtils from "../CSVUtils"; - -type Pet = { - name: string; - type: string; -}; - -type Home = { - number: number; - street: string; -}; - -type Person = { - age: number; - name: string; - pets: Pet[]; - home?: Home; -}; - -const testData: Person[] = [ - { - name: "Person1", - age: 20, - pets: [ - { name: "Beans", type: "Cat" }, - { name: "Spot", type: "Dog" }, - ], - }, - { - name: "Person2", - age: 25, - pets: [{ name: "Splash", type: "Fish" }], - }, -]; - -describe("CSVUtils", () => { - it("generateCSV should include all fields, with nested objects/arrays, if no options", async () => { - const result = await CSVUtils.generateCSV({ data: testData }); - expect(result).toEqual( - `"name","age","pets"\n` + - `"Person1",20,"[{""name"":""Beans"",""type"":""Cat""},{""name"":""Spot"",""type"":""Dog""}]"\n` + - `"Person2",25,"[{""name"":""Splash"",""type"":""Fish""}]"`, - ); - }); - - it("generateCSV should only include the fields specified", async () => { - const result = await CSVUtils.generateCSV({ - data: testData, - fields: ["age", "name"], - }); - expect(result).toEqual(`"age","name"\n20,"Person1"\n25,"Person2"`); - }); - - it("generateCSV should transform fields properly if specified", async () => { - const transformFunction = (person: Person) => ({ - ...person, - age: person.age + 1, - petNames: person.pets.map((pet) => pet.name), - numPets: person.pets.length, - }); - const result = await CSVUtils.generateCSV({ - data: testData, - transformFunction, - }); - expect(result).toEqual( - `"name","age","pets","petNames","numPets"\n` + - `"Person1",21,"[{""name"":""Beans"",""type"":""Cat""},{""name"":""Spot"",""type"":""Dog""}]","[""Beans"",""Spot""]",2\n` + - `"Person2",26,"[{""name"":""Splash"",""type"":""Fish""}]","[""Splash""]",1`, - ); - }); - - it("generateCSV should flatten objects properly if specified", async () => { - const testDataWithHomes = [ - { ...testData[0], home: { number: 22, street: "Cool Road" } }, - { ...testData[1], home: { number: 24, street: "Awesome Road" } }, - ]; - const result = await CSVUtils.generateCSV({ - data: testDataWithHomes, - flattenObjects: true, - }); - expect(result).toEqual( - `"name","age","pets","home.number","home.street"\n` + - `"Person1",20,"[{""name"":""Beans"",""type"":""Cat""},{""name"":""Spot"",""type"":""Dog""}]",22,"Cool Road"\n` + - `"Person2",25,"[{""name"":""Splash"",""type"":""Fish""}]",24,"Awesome Road"`, - ); - }); - - it("generateCSV should flatten arrays properly if specified", async () => { - const result = await CSVUtils.generateCSV({ - data: testData, - flattenArrays: true, - }); - expect(result).toEqual( - `"name","age","pets.0","pets.1"\n` + - `"Person1",20,"{""name"":""Beans"",""type"":""Cat""}","{""name"":""Spot"",""type"":""Dog""}"\n` + - `"Person2",25,"{""name"":""Splash"",""type"":""Fish""}",`, - ); - }); - - it("generateCSV should flatten objects and arrays properly if specified", async () => { - const result = await CSVUtils.generateCSV({ - data: testData, - flattenArrays: true, - flattenObjects: true, - }); - expect(result).toEqual( - `"name","age","pets.0.name","pets.0.type","pets.1.name","pets.1.type"\n` + - `"Person1",20,"Beans","Cat","Spot","Dog"\n` + - `"Person2",25,"Splash","Fish",,`, - ); - }); - - it("generateCSV should unwind fields properly if specified", async () => { - const result = await CSVUtils.generateCSV({ - data: testData, - pathsToUnwind: ["pets"], - }); - expect(result).toEqual( - `"name","age","pets"\n` + - `"Person1",20,"{""name"":""Beans"",""type"":""Cat""}"\n` + - `"Person1",20,"{""name"":""Spot"",""type"":""Dog""}"\n` + - `"Person2",25,"{""name"":""Splash"",""type"":""Fish""}"`, - ); - }); - - it("generateCSV should override/add options if opts is specified", async () => { - const result = await CSVUtils.generateCSV({ - data: testData, - opts: { header: false }, - }); - expect(result).toEqual( - `"Person1",20,"[{""name"":""Beans"",""type"":""Cat""},{""name"":""Spot"",""type"":""Dog""}]"\n` + - `"Person2",25,"[{""name"":""Splash"",""type"":""Fish""}]"`, - ); - }); -}); diff --git a/frontend/src/utils/__tests__/LocalStorageUtils.test.ts b/frontend/src/utils/__tests__/LocalStorageUtils.test.ts deleted file mode 100644 index d8d59471..00000000 --- a/frontend/src/utils/__tests__/LocalStorageUtils.test.ts +++ /dev/null @@ -1,59 +0,0 @@ -import * as LocalStorageUtils from "../LocalStorageUtils"; - -class LocalStorageMock { - store: Record = {}; - - readonly length: number = 0; - - clear() { - this.store = {}; - } - - getItem(key: string) { - return this.store[key] || null; - } - - setItem(key: string, value: string) { - this.store[key] = value; - } - - removeItem(key: string) { - delete this.store[key]; - } -} - -const mockStorage = new LocalStorageMock(); - -describe("LocalStorageUtils", () => { - beforeAll(() => { - Object.defineProperty(global, "localStorage", { - value: mockStorage, - }); - }); - - afterEach(() => { - localStorage.clear(); - }); - - it("getLocalStorageObj should retrieve obj by key", () => { - localStorage.setItem("hello", JSON.stringify({ value: "world" })); - expect(LocalStorageUtils.getLocalStorageObj("hello")).toEqual({ - value: "world", - }); - }); - - it("getLocalStorageObjProperty should retrieve obj property by key and property", () => { - localStorage.setItem("hello", JSON.stringify({ value: "world" })); - expect( - LocalStorageUtils.getLocalStorageObjProperty("hello", "value"), - ).toEqual("world"); - }); - - it("setLocalStorageObjproperty should set obj property by key, property and value", () => { - localStorage.setItem("club", JSON.stringify({})); - LocalStorageUtils.setLocalStorageObjProperty("club", "name", "Blueprint"); - expect(LocalStorageUtils.getLocalStorageObj("club")).toEqual({ - name: "Blueprint", - }); - }); -}); diff --git a/hooks/post-merge b/hooks/post-merge deleted file mode 100644 index ce5bd23a..00000000 --- a/hooks/post-merge +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh -# update secret files if git pull on master resulted in new changes being merged locally - -branch=`git symbolic-ref HEAD` -root_dir=`git rev-parse --show-toplevel` -# must replace with actual vault_path and default_branch, can run setup.sh -vault_path="kv/internal-tools" -default_branch="main" - -if [ $branch = "refs/heads/${default_branch}" ]; then - if [ -f "${root_dir}/update_secret_files.py" ]; then - vault kv get -format=json $vault_path | python "${root_dir}/update_secret_files.py" - if [ $? -eq 0 ]; then - echo "Successfully pulled secrets from Vault" - else - echo "An error occurred while pulling secrets from Vault" - fi - else - echo "To automatically update secrets after git pull on default branch, place update_secret_files.py in repo root directory" - fi -fi