diff --git a/docs-src/_ext/edit_on_github.py b/docs-src/_ext/edit_on_github.py new file mode 100644 index 0000000..d8c27ab --- /dev/null +++ b/docs-src/_ext/edit_on_github.py @@ -0,0 +1,44 @@ +""" +Sphinx extension to add ReadTheDocs-style "Edit on GitHub" links to the +sidebar. +Loosely based on https://github.com/astropy/astropy/pull/347 +""" + +import os +import warnings + + +__licence__ = 'BSD (3 clause)' + + +def get_github_url(app, view, path): + return 'https://github.com/{project}/{view}/{branch}/{path}'.format( + project=app.config.edit_on_github_project, + view=view, + branch=app.config.edit_on_github_branch, + path=path + ) + + +def html_page_context(app, pagename, templatename, context, doctree): + if templatename != 'page.html': + return None + + if not app.config.edit_on_github_project: + warnings.warn("edit_on_github_project not specified") + return None + + path = os.path.relpath(doctree.get('source'), app.builder.srcdir) + show_url = get_github_url(app, 'blob', path) + edit_url = get_github_url(app, 'edit', path) + + context['show_on_github_url'] = show_url + context['edit_on_github_url'] = edit_url + + return None + + +def setup(app): + app.add_config_value('edit_on_github_project', '', True) + app.add_config_value('edit_on_github_branch', 'master', True) + app.connect('html-page-context', html_page_context) diff --git a/docs-src/_static/osi.png b/docs-src/_static/osi.png new file mode 100644 index 0000000..cdf9d9a Binary files /dev/null and b/docs-src/_static/osi.png differ diff --git a/docs-src/_templates/sourcelink.html b/docs-src/_templates/sourcelink.html new file mode 100644 index 0000000..3281659 --- /dev/null +++ b/docs-src/_templates/sourcelink.html @@ -0,0 +1,17 @@ + + +{%- if show_source and has_source and sourcename %} +

{{ _('This Page') }}

+ +{%- endif %} \ No newline at end of file diff --git a/docs-src/_templates/sourcelink.html.py b/docs-src/_templates/sourcelink.html.py new file mode 100644 index 0000000..cbbca45 --- /dev/null +++ b/docs-src/_templates/sourcelink.html.py @@ -0,0 +1,17 @@ +XXXXXXXXXXX XXX XXXXXX XXXXXXXXXXXXXXX + +B BB BBBBBBBBBBB BBB BBBBBBBBBB BBB BBBBBBBBBB + XXXX _('This Page') XXXXX + XXX XXXXXXXXXXXXXXXXXXXXXXX + XXXXXX XXXXXXFX + XXXXXXXXXXXXXXX _('Show Source') XXXXXXXXX + B BB BBBBBBBBBBBBBBBBBB + XXXXXX XXXXXXX + XXXXXXXXXXXXXXX _('Show on GitHub') XXXXXXXXX + B BBBBB + B BB BBBBBBBBBBBBBBBBBB + XXXXXX XXXXXXX + XXXXXXXXXXXXXXX _('Edit on GitHub') XXXXXXXXX + B BBBBB + XXXXX +B BBBBB \ No newline at end of file diff --git a/docs-src/_theme/sphinx_rtd_theme/Apache-License-2.0.txt b/docs-src/_theme/sphinx_rtd_theme/Apache-License-2.0.txt new file mode 100644 index 0000000..a2e633f --- /dev/null +++ b/docs-src/_theme/sphinx_rtd_theme/Apache-License-2.0.txt @@ -0,0 +1,205 @@ +sphinx_rtd_theme/static/fonts/RobotoSlab-Bold.ttf +sphinx_rtd_theme/static/fonts/RobotoSlab-Regular.tt/ + + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/docs-src/_theme/sphinx_rtd_theme/Gemfile b/docs-src/_theme/sphinx_rtd_theme/Gemfile new file mode 100644 index 0000000..9f2165c --- /dev/null +++ b/docs-src/_theme/sphinx_rtd_theme/Gemfile @@ -0,0 +1,4 @@ +# A sample Gemfile +source "https://rubygems.org" + +gem "compass" diff --git a/docs-src/_theme/sphinx_rtd_theme/Gruntfile.js b/docs-src/_theme/sphinx_rtd_theme/Gruntfile.js new file mode 100644 index 0000000..ac9a127 --- /dev/null +++ b/docs-src/_theme/sphinx_rtd_theme/Gruntfile.js @@ -0,0 +1,163 @@ +module.exports = function(grunt) { + + // load all grunt tasks + require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks); + + grunt.initConfig({ + open : { + dev: { + path: 'http://localhost:1919' + } + }, + + connect: { + server: { + options: { + port: 1919, + base: 'demo_docs/build', + livereload: true + } + } + }, + copy: { + fonts: { + files: [ + { + expand: true, + flatten: true, + src: ['bower_components/font-awesome/fonts/*'], + dest: 'sphinx_rtd_theme/static/fonts/', + filter: 'isFile' + }, + { + expand: true, + flatten: true, + src: ['bower_components/lato-googlefont/Lato-Bold.ttf', + 'bower_components/lato-googlefont/Lato-Regular.ttf'], + dest: 'sphinx_rtd_theme/static/fonts/', + filter: 'isFile' + }, + { + expand: true, + flatten: true, + src: ['bower_components/robotoslab-googlefont/RobotoSlab-Bold.ttf', + 'bower_components/robotoslab-googlefont/RobotoSlab-Regular.ttf'], + dest: 'sphinx_rtd_theme/static/fonts/', + filter: 'isFile' + }, + { + expand: true, + flatten: true, + src: ['bower_components/inconsolata-googlefont/Inconsolata-Bold.ttf', + 'bower_components/inconsolata-googlefont/Inconsolata-Regular.ttf'], + dest: 'sphinx_rtd_theme/static/fonts/', + filter: 'isFile' + } + ] + } + }, + + sass: { + dev: { + options: { + style: 'expanded', + loadPath: ['bower_components/bourbon/dist', 'bower_components/neat/app/assets/stylesheets', 'bower_components/font-awesome/scss', 'bower_components/wyrm/sass'] + }, + files: [{ + expand: true, + cwd: 'sass', + src: ['*.sass'], + dest: 'sphinx_rtd_theme/static/css', + ext: '.css' + }] + }, + build: { + options: { + style: 'compressed', + loadPath: ['bower_components/bourbon/dist', 'bower_components/neat/app/assets/stylesheets', 'bower_components/font-awesome/scss', 'bower_components/wyrm/sass'] + }, + files: [{ + expand: true, + cwd: 'sass', + src: ['*.sass'], + dest: 'sphinx_rtd_theme/static/css', + ext: '.css' + }] + } + }, + + browserify: { + dev: { + options: { + external: ['jquery'], + alias: { + 'sphinx-rtd-theme': './js/theme.js' + } + }, + src: ['js/*.js'], + dest: 'sphinx_rtd_theme/static/js/theme.js' + }, + build: { + options: { + external: ['jquery'], + alias: { + 'sphinx-rtd-theme': './js/theme.js' + } + }, + src: ['js/*.js'], + dest: 'sphinx_rtd_theme/static/js/theme.js' + } + }, + + exec: { + bower_update: { + cmd: 'bower update' + }, + build_sphinx: { + cmd: 'sphinx-build demo_docs/source demo_docs/build' + } + }, + clean: { + build: ["demo_docs/build"], + fonts: ["sphinx_rtd_theme/static/fonts"] + }, + + watch: { + /* Compile sass changes into theme directory */ + sass: { + files: ['sass/*.sass', 'bower_components/**/*.sass'], + tasks: ['sass:DEV_CONTENTS_XML'] + }, + /* Changes in theme dir rebuild sphinx */ + sphinx: { + files: ['sphinx_rtd_theme/**/*', 'demo_docs/**/*.rst', 'demo_docs/**/*.py'], + tasks: ['clean:build','exec:build_sphinx'] + }, + /* JavaScript */ + browserify: { + files: ['js/*.js'], + tasks: ['browserify:DEV_CONTENTS_XML'] + }, + /* live-reload the demo_docs if sphinx re-builds */ + livereload: { + files: ['demo_docs/build/**/*'], + options: { livereload: true } + } + } + + }); + + grunt.loadNpmTasks('grunt-exec'); + grunt.loadNpmTasks('grunt-contrib-connect'); + grunt.loadNpmTasks('grunt-contrib-watch'); + grunt.loadNpmTasks('grunt-contrib-sass'); + grunt.loadNpmTasks('grunt-contrib-clean'); + grunt.loadNpmTasks('grunt-contrib-copy'); + grunt.loadNpmTasks('grunt-open'); + grunt.loadNpmTasks('grunt-browserify'); + + grunt.registerTask('fonts', ['clean:fonts','copy:fonts']); + grunt.registerTask('default', ['exec:bower_update','clean:build','sass:DEV_CONTENTS_XML','browserify:DEV_CONTENTS_XML','exec:build_sphinx','connect','open','watch']); + grunt.registerTask('build', ['exec:bower_update','clean:build','sass:build','browserify:build','exec:build_sphinx']); +} + diff --git a/docs-src/_theme/sphinx_rtd_theme/LICENSE b/docs-src/_theme/sphinx_rtd_theme/LICENSE new file mode 100644 index 0000000..921f073 --- /dev/null +++ b/docs-src/_theme/sphinx_rtd_theme/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) 2013 Dave Snider + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/docs-src/_theme/sphinx_rtd_theme/MANIFEST.in b/docs-src/_theme/sphinx_rtd_theme/MANIFEST.in new file mode 100644 index 0000000..1e6a2eb --- /dev/null +++ b/docs-src/_theme/sphinx_rtd_theme/MANIFEST.in @@ -0,0 +1,11 @@ +include *.txt +include LICENSE +recursive-include sphinx_rtd_theme *.conf +recursive-include sphinx_rtd_theme *.css +recursive-include sphinx_rtd_theme *.eot +recursive-include sphinx_rtd_theme *.html +recursive-include sphinx_rtd_theme *.js +recursive-include sphinx_rtd_theme *.svg +recursive-include sphinx_rtd_theme *.ttf +recursive-include sphinx_rtd_theme *.woff +recursive-include sphinx_rtd_theme *.woff2 diff --git a/docs-src/_theme/sphinx_rtd_theme/OFL-License.txt b/docs-src/_theme/sphinx_rtd_theme/OFL-License.txt new file mode 100644 index 0000000..1827a4d --- /dev/null +++ b/docs-src/_theme/sphinx_rtd_theme/OFL-License.txt @@ -0,0 +1,104 @@ +sphinx_rtd_theme/static/fonts/Inconsolata-Bold.ttf +sphinx_rtd_theme/static/fonts/Lato-Bold.ttf +sphinx_rtd_theme/static/fonts/Inconsolata.ttf +sphinx_rtd_theme/static/fonts/Lato-Regular.ttf + + + +Copyright (c) , (), +with Reserved Font Name . +Copyright (c) , (), +with Reserved Font Name . +Copyright (c) , (). + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/docs-src/_theme/sphinx_rtd_theme/bower.json b/docs-src/_theme/sphinx_rtd_theme/bower.json new file mode 100644 index 0000000..c0c8cd9 --- /dev/null +++ b/docs-src/_theme/sphinx_rtd_theme/bower.json @@ -0,0 +1,41 @@ +{ + "name": "sphinx-rtd-theme", + "version": "0.2.4", + "homepage": "https://github.com/rtfd/sphinx_rtd_theme", + "authors": [ + "Dave Snider " + ], + "description": "Sphinx theme for readthedocs.org.", + "license": "MIT", + "main": [ + "js/theme.js" + ], + "ignore": [ + "docs", + "demo_docs", + ".gitignore", + ".DS_Store", + ".sass-cache*", + ".bowerrc", + "bower.json", + "package.json", + "Gruntfile.js", + "node_modules", + "bower_components", + "test", + "tests", + "src" + ], + "devDependencies": { + "wyrm": "~1.0.x" + }, + "dependencies": { + "lato-googlefont": "*", + "robotoslab-googlefont": "*", + "inconsolata-googlefont": "*", + "font-awesome": "~4.7" + }, + "resolutions": { + "font-awesome": "~4.7" + } +} diff --git a/docs-src/_theme/sphinx_rtd_theme/js/theme.js b/docs-src/_theme/sphinx_rtd_theme/js/theme.js new file mode 100644 index 0000000..5ad3e50 --- /dev/null +++ b/docs-src/_theme/sphinx_rtd_theme/js/theme.js @@ -0,0 +1,166 @@ +var jQuery = (typeof(window) != 'undefined') ? window.jQuery : require('jquery'); + +// Sphinx theme nav state +function ThemeNav () { + + var nav = { + navBar: null, + win: null, + winScroll: false, + winResize: false, + linkScroll: false, + winPosition: 0, + winHeight: null, + docHeight: null, + isRunning: false + }; + + nav.enable = function () { + var self = this; + + if (!self.isRunning) { + self.isRunning = true; + jQuery(function ($) { + self.init($); + + self.reset(); + self.win.on('hashchange', self.reset); + + // Set scroll monitor + self.win.on('scroll', function () { + if (!self.linkScroll) { + self.winScroll = true; + } + }); + setInterval(function () { if (self.winScroll) self.onScroll(); }, 25); + + // Set resize monitor + self.win.on('resize', function () { + self.winResize = true; + }); + setInterval(function () { if (self.winResize) self.onResize(); }, 25); + self.onResize(); + }); + }; + }; + + nav.init = function ($) { + var doc = $(document), + self = this; + + this.navBar = $('div.wy-side-scroll:first'); + this.win = $(window); + + // Set up javascript UX bits + $(document) + // Shift nav in mobile when clicking the menu. + .on('click', "[data-toggle='wy-nav-top']", function() { + $("[data-toggle='wy-nav-shift']").toggleClass("shift"); + $("[data-toggle='rst-versions']").toggleClass("shift"); + }) + + // Nav menu link click operations + .on('click', ".wy-menu-vertical .current ul li a", function() { + var target = $(this); + // Close menu when you click a link. + $("[data-toggle='wy-nav-shift']").removeClass("shift"); + $("[data-toggle='rst-versions']").toggleClass("shift"); + // Handle dynamic display of l3 and l4 nav lists + self.toggleCurrent(target); + self.hashChange(); + }) + .on('click', "[data-toggle='rst-current-version']", function() { + $("[data-toggle='rst-versions']").toggleClass("shift-up"); + }) + + // Make tables responsive + $("table.docutils:not(.field-list)") + .wrap("
"); + + // Add expand links to all parents of nested ul + $('.wy-menu-vertical ul').not('.simple').siblings('a').each(function () { + var link = $(this); + expand = $(''); + expand.on('click', function (ev) { + self.toggleCurrent(link); + ev.stopPropagation(); + return false; + }); + link.prepend(expand); + }); + }; + + nav.reset = function () { + // Get anchor from URL and open up nested nav + var anchor = encodeURI(window.location.hash); + if (anchor) { + try { + var link = $('.wy-menu-vertical') + .find('[href="' + anchor + '"]'); + // If we didn't find a link, it may be because we clicked on + // something that is not in the sidebar (eg: when using + // sphinxcontrib.httpdomain it generates headerlinks but those + // aren't picked up and placed in the toctree). So let's find + // the closest header in the document and try with that one. + if (link.length === 0) { + var doc_link = $('.document a[href="' + anchor + '"]'); + var closest_section = doc_link.closest('div.section'); + // Try again with the closest section entry. + link = $('.wy-menu-vertical') + .find('[href="#' + closest_section.attr("id") + '"]'); + + } + $('.wy-menu-vertical li.toctree-l1 li.current') + .removeClass('current'); + link.closest('li.toctree-l2').addClass('current'); + link.closest('li.toctree-l3').addClass('current'); + link.closest('li.toctree-l4').addClass('current'); + } + catch (err) { + console.log("Error expanding nav for anchor", err); + } + } + }; + + nav.onScroll = function () { + this.winScroll = false; + var newWinPosition = this.win.scrollTop(), + winBottom = newWinPosition + this.winHeight, + navPosition = this.navBar.scrollTop(), + newNavPosition = navPosition + (newWinPosition - this.winPosition); + if (newWinPosition < 0 || winBottom > this.docHeight) { + return; + } + this.navBar.scrollTop(newNavPosition); + this.winPosition = newWinPosition; + }; + + nav.onResize = function () { + this.winResize = false; + this.winHeight = this.win.height(); + this.docHeight = $(document).height(); + }; + + nav.hashChange = function () { + this.linkScroll = true; + this.win.one('hashchange', function () { + this.linkScroll = false; + }); + }; + + nav.toggleCurrent = function (elem) { + var parent_li = elem.closest('li'); + parent_li.siblings('li.current').removeClass('current'); + parent_li.siblings().find('li.current').removeClass('current'); + parent_li.find('> ul li.current').removeClass('current'); + parent_li.toggleClass('current'); + } + + return nav; +}; + +module.exports.ThemeNav = ThemeNav(); + +if (typeof(window) != 'undefined') { + window.SphinxRtdTheme = { StickyNav: module.exports.ThemeNav }; +} diff --git a/docs-src/_theme/sphinx_rtd_theme/package.json b/docs-src/_theme/sphinx_rtd_theme/package.json new file mode 100644 index 0000000..c765d1e --- /dev/null +++ b/docs-src/_theme/sphinx_rtd_theme/package.json @@ -0,0 +1,20 @@ +{ + "name": "sphinx_rtd_theme", + "version": "0.0.11", + "private": true, + "dependencies": {}, + "devDependencies": { + "browserify": "^11.0.0", + "connect-livereload": "~0.3.0", + "grunt": "~0.4.1", + "grunt-browserify": "^3.8.0", + "grunt-contrib-clean": "0.5.0", + "grunt-contrib-connect": "0.5.0", + "grunt-contrib-copy": "0.5.0", + "grunt-contrib-sass": "~0.7.2", + "grunt-contrib-watch": "~0.4.3", + "grunt-exec": "~0.4.2", + "grunt-open": "0.2.2", + "matchdep": "~0.1.2" + } +} diff --git a/docs-src/_theme/sphinx_rtd_theme/sass/_theme_badge.sass b/docs-src/_theme/sphinx_rtd_theme/sass/_theme_badge.sass new file mode 100644 index 0000000..e2ba80b --- /dev/null +++ b/docs-src/_theme/sphinx_rtd_theme/sass/_theme_badge.sass @@ -0,0 +1,88 @@ +.rst-versions + position: fixed + bottom: 0 + left: 0 + width: $nav-desktop-width + color: $section-background-color + background: darken($menu-background-color, 8%) + border-top: solid 10px $menu-background-color + font-family: $base-font-family + z-index: $z-index-tray + a + color: $link_color + text-decoration: none + .rst-badge-small + display: none + .rst-current-version + padding: $base-line-height / 2 + background-color: darken($menu-background-color, 5%) + display: block + text-align: right + font-size: 90% + cursor: pointer + color: $green + +clearfix + .fa + color: $section-background-color + .fa-book + float: left + .icon-book + float: left + &.rst-out-of-date + background-color: $red + color: $white + &.rst-active-old-version + background-color: $yellow + color: $black + &.shift-up .rst-other-versions + display: block + .rst-other-versions + font-size: 90% + padding: $base-line-height / 2 + color: $text-medium + display: none + hr + display: block + height: 1px + border: 0 + margin: 20px 0 + padding: 0 + border-top: solid 1px lighten($menu-background-color, 5%) + dd + display: inline-block + margin: 0 + a + display: inline-block + padding: $base-line-height / 4 + color: $section-background-color + &.rst-badge + width: auto + bottom: 20px + right: 20px + left: auto + border: none + max-width: $nav-desktop-width + .icon-book + float: none + .fa-book + float: none + &.shift-up .rst-current-version + text-align: right + .fa-book + float: left + .icon-book + float: left + .rst-current-version + width: auto + height: 30px + line-height: 30px + padding: 0 $base-line-height / 4 + display: block + text-align: center + ++media($tablet) + .rst-versions + width: 85% + display: none + &.shift + display: block diff --git a/docs-src/_theme/sphinx_rtd_theme/sass/_theme_badge_fa.sass b/docs-src/_theme/sphinx_rtd_theme/sass/_theme_badge_fa.sass new file mode 100644 index 0000000..dbc3bf4 --- /dev/null +++ b/docs-src/_theme/sphinx_rtd_theme/sass/_theme_badge_fa.sass @@ -0,0 +1,68 @@ +// Slimmer version of FA for use on the badge_only.sass file. + ++font-face(FontAwesome, '#{$font-awesome-dir}fontawesome-webfont') + +.fa:before + display: inline-block + font-family: FontAwesome + font-style: normal + font-weight: normal + line-height: 1 + text-decoration: inherit + +font-smooth + +a .fa + display: inline-block + text-decoration: inherit + + +li + .fa + display: inline-block + .fa-large:before, + .fa-large:before + /* 1.5 increased font size for fa-large * 1.25 width + width: 1.5 * 1.25em + +ul.fas + list-style-type: none + margin-left: 2em + text-indent: -0.8em + li + .fa + width: .8em + .fa-large:before, + .fa-large:before + /* 1.5 increased font size for fa-large * 1.25 width + vertical-align: baseline + // width: 1.5*1.25em + +.fa-book:before + content: "\f02d" + +.icon-book:before + content: "\f02d" + +.fa-caret-down:before + content: "\f0d7" + +.icon-caret-down:before + content: "\f0d7" + +.fa-caret-up:before + content: "\f0d8" + +.icon-caret-up:before + content: "\f0d8" + +.fa-caret-left:before + content: "\f0d9" + +.icon-caret-left:before + content: "\f0d9" + +.fa-caret-right:before + content: "\f0da" + +.icon-caret-right:before + content: "\f0da" diff --git a/docs-src/_theme/sphinx_rtd_theme/sass/_theme_breadcrumbs.sass b/docs-src/_theme/sphinx_rtd_theme/sass/_theme_breadcrumbs.sass new file mode 100644 index 0000000..779c7db --- /dev/null +++ b/docs-src/_theme/sphinx_rtd_theme/sass/_theme_breadcrumbs.sass @@ -0,0 +1,31 @@ +.wy-breadcrumbs li + display: inline-block + &.wy-breadcrumbs-aside + float: right + a + display: inline-block + padding: 5px + &:first-child + padding-left: 0 + code + padding: 5px + border: none + background: none + &.literal + color: $text-color +.wy-breadcrumbs-extra + margin-bottom: 0 + color: $text-light + font-size: 80% + display: inline-block + + ++media($mobile) + .wy-breadcrumbs-extra + display: none + .wy-breadcrumbs li.wy-breadcrumbs-aside + display: none + +@media print + .wy-breadcrumbs li.wy-breadcrumbs-aside + display: none diff --git a/docs-src/_theme/sphinx_rtd_theme/sass/_theme_font_awesome_compatibility.sass b/docs-src/_theme/sphinx_rtd_theme/sass/_theme_font_awesome_compatibility.sass new file mode 100644 index 0000000..5857956 --- /dev/null +++ b/docs-src/_theme/sphinx_rtd_theme/sass/_theme_font_awesome_compatibility.sass @@ -0,0 +1,24 @@ +.icon + @extend .fa +.icon-home + @extend .fa-home +.icon-search + @extend .fa-search +.icon-book + @extend .fa-book +.icon-caret-down + @extend .fa-caret-down +.icon-github + @extend .fa-github +.icon-bitbucket + @extend .fa-bitbucket +.icon-gitlab + @extend .fa-gitlab +.icon-fire + @extend .fa-fire +.icon-circle-arrow-right + @extend .fa-arrow-circle-right +.icon-circle-arrow-left + @extend .fa-arrow-circle-left +.icon-link + @extend .fa-link diff --git a/docs-src/_theme/sphinx_rtd_theme/sass/_theme_font_local.sass b/docs-src/_theme/sphinx_rtd_theme/sass/_theme_font_local.sass new file mode 100644 index 0000000..9fe5f19 --- /dev/null +++ b/docs-src/_theme/sphinx_rtd_theme/sass/_theme_font_local.sass @@ -0,0 +1,36 @@ +@font-face + font-family: 'Inconsolata' + font-style: normal + font-weight: 400 + src: local('Inconsolata'), local('Inconsolata-Regular'), url(../fonts/Inconsolata-Regular.ttf) format('truetype') + +@font-face + font-family: 'Inconsolata' + font-style: normal + font-weight: 700 + src: local('Inconsolata Bold'), local('Inconsolata-Bold'), url(../fonts/Inconsolata-Bold.ttf) format('truetype') + +@font-face + font-family: 'Lato' + font-style: normal + font-weight: 400 + src: local('Lato Regular'), local('Lato-Regular'), url(../fonts/Lato-Regular.ttf) format('truetype') + +@font-face + font-family: 'Lato' + font-style: normal + font-weight: 700 + src: local('Lato Bold'), local('Lato-Bold'), url(../fonts/Lato-Bold.ttf) format('truetype') + +@font-face + font-family: 'Roboto Slab' + font-style: normal + font-weight: 400 + src: local('Roboto Slab Regular'), local('RobotoSlab-Regular'), url(../fonts/RobotoSlab-Regular.ttf) format('truetype') + +@font-face + font-family: 'Roboto Slab' + font-style: normal + font-weight: 700 + src: local('Roboto Slab Bold'), local('RobotoSlab-Bold'), url(../fonts/RobotoSlab-Bold.ttf) format('truetype') + diff --git a/docs-src/_theme/sphinx_rtd_theme/sass/_theme_layout.sass b/docs-src/_theme/sphinx_rtd_theme/sass/_theme_layout.sass new file mode 100644 index 0000000..b7c4a48 --- /dev/null +++ b/docs-src/_theme/sphinx_rtd_theme/sass/_theme_layout.sass @@ -0,0 +1,404 @@ +.wy-affix + position: fixed + top: $gutter + +.wy-menu + a:hover + text-decoration: none + +.wy-menu-horiz + +clearfix + ul, li + display: inline-block + li:hover + background: rgba(255,255,255,.1) + li + &.divide-left + border-left: solid 1px hsl(0, 0%, 25%) + &.divide-right + border-right: solid 1px hsl(0, 0%, 25%) + a + height: $base-font-size * 2 + display: inline-block + line-height: $base-font-size * 2 + padding: 0 $base-font-size + +.wy-menu-vertical + width: $nav-desktop-width + header, p.caption + height: $base-font-size * 2 + display: inline-block + line-height: $base-font-size * 2 + padding: 0 $gutter + margin-bottom: 0 + display: block + font-weight: bold + text-transform: uppercase + font-size: 80% + color: $menu-color + white-space: nowrap + + ul + margin-bottom: 0 + li + &.divide-top + border-top: solid 1px hsl(0, 0%, 25%) + &.divide-bottom + border-bottom: solid 1px hsl(0, 0%, 25%) + &.current + background: darken($menu-vertical-background-color, 10%) + a + color: $menu-link-medium + border-right: solid 1px darken($menu-vertical-background-color, 20%) + padding: $gutter / 4 $gutter * 1.5 + &:hover + background: darken($menu-vertical-background-color, 15%) + code + border: none + background: inherit + color: inherit + padding-left: 0 + padding-right: 0 + // Expand links + span.toctree-expand + display: block + float: left + margin-left: -1.2em + @extend .fa + @extend .fa-plus-square-o + font-size: .8em + line-height: 1.6em + color: darken($menu-link-medium, 20%) + + // On state for the first level + li.on a, li.current > a + color: $menu-link-color + padding: $gutter / 4 $gutter + font-weight: bold + position: relative + background: $menu-vertical-background-color + border: none + border-bottom: solid 1px darken($menu-vertical-background-color, 20%) + border-top: solid 1px darken($menu-vertical-background-color, 20%) + padding-left: $gutter -4px + +font-smooth + &:hover + background: $menu-vertical-background-color + span.toctree-expand + color: $menu-link-medium + span.toctree-expand + @extend .fa + @extend .fa-minus-square-o + display: block + font-size: .8em + line-height: 1.6em + color: darken($menu-link-medium, 30%) + + // This is the on state for pages beyond second level + li.toctree-l1.current li.toctree-l2, li.toctree-l2.current li.toctree-l3 + > ul + display: none + &.current > ul + display: block + li.toctree-l2 + &.current + > a + background: darken($menu-vertical-background-color, 20%) + padding: $gutter / 4 $gutter * 1.5 + li.toctree-l3 > a + display: block + background: darken($menu-vertical-background-color, 20%) + padding: $gutter / 4 $gutter * 2.5 + a:hover span.toctree-expand + color: $menu-link-medium + span.toctree-expand + color: darken($menu-vertical-background-color, 35%) + li.toctree-l3 + font-size: .9em + &.current + > a + background: darken($menu-vertical-background-color, 25%) + padding: $gutter / 4 $gutter * 2.5 + li.toctree-l4 > a + display: block + background: darken($menu-vertical-background-color, 25%) + padding: $gutter / 4 $gutter * 3.5 + border-top: none + border-bottom: none + a:hover span.toctree-expand + color: $menu-link-medium + span.toctree-expand + color: darken($menu-vertical-background-color, 40%) + li.toctree-l4 + font-size: .9em + + li.current ul + display: block + li ul + margin-bottom: 0 + display: none + .local-toc + li ul + display: block + li ul li a + margin-bottom: 0 + color: $menu-link-light + font-weight: normal + a + display: inline-block + line-height: 18px + padding: $gutter / 4 $gutter + display: block + position: relative + font-size: 90% + color: $menu-link-light + &:hover + background-color: lighten($menu-background-color, 10%) + cursor: pointer + span.toctree-expand + color: $menu-link-light + &:active + background-color: $menu-logo-color + cursor: pointer + color: $menu-link-active + span.toctree-expand + color: $menu-link-active + +.wy-side-nav-search + display: block + width: $nav-desktop-width + padding: $gutter / 2 + margin-bottom: $gutter / 2 + z-index: $z-index-popover + background-color: $nav-search-background-color + text-align: center + padding: $gutter / 2 + display: block + color: $nav-search-color + margin-bottom: $gutter / 2 + input[type=text] + width: 100% + border-radius: 50px + padding: 6px 12px + border-color: darken($link-color, 5%) + img + display: block + margin: auto auto $gutter / 2 auto + height: 45px + width: 45px + background-color: $menu-logo-color + padding: 5px + border-radius: 100% + > a, .wy-dropdown > a + color: $nav-search-color + font-size: 100% + font-weight: bold + display: inline-block + padding: $base-line-height / 6 $base-line-height / 4 + margin-bottom: $gutter / 2 + +font-smooth + &:hover + background: rgba(255,255,255,.1) + img.logo + display: block // display on its own line all the time + margin: 0 auto + height: auto // undo badge styling above + width: auto + border-radius: 0 + max-width: 100% // shrink on mobile, if appropriate + background: rgba(0,0,0,0) // make hover background of parent show up properly + &.icon + img.logo + margin-top: 0.85em // space it away from the title text + > div.version + margin-top: -1 * ($gutter / 4) + margin-bottom: $gutter / 2 + font-weight: normal + color: rgba(255,255,255,.3) + + +.wy-nav .wy-menu-vertical + header + color: $link-color + a + color: $text-light + &:hover + background-color: $link-color + color: $white + +[data-menu-wrap] + +transition(all .2s ease-in) + position: absolute + opacity: 1 + width: 100% + opacity: 0 + &.move-center + left: 0 + right: auto + opacity: 1 + &.move-left + right: auto + left: -100% + opacity: 0 + &.move-right + right: -100% + left: auto + opacity: 0 + + +.wy-body-for-nav + background: left repeat-y $section-background-color + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxOERBMTRGRDBFMUUxMUUzODUwMkJCOThDMEVFNURFMCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxOERBMTRGRTBFMUUxMUUzODUwMkJCOThDMEVFNURFMCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjE4REExNEZCMEUxRTExRTM4NTAyQkI5OEMwRUU1REUwIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjE4REExNEZDMEUxRTExRTM4NTAyQkI5OEMwRUU1REUwIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+EwrlwAAAAA5JREFUeNpiMDU0BAgwAAE2AJgB9BnaAAAAAElFTkSuQmCC) + background-size: $nav-desktop-width 1px + +.wy-grid-for-nav + position: absolute + width: 100% + height: 100% + +.wy-nav-side + position: fixed + top: 0 + bottom: 0 + left: 0 + padding-bottom: 2em + width: $nav-desktop-width + overflow-x: hidden + overflow-y: hidden + min-height: 100% + background: $nav-background-color + z-index: $z-index-popover + +.wy-side-scroll + width: $nav-desktop-width + 20px + position: relative + overflow-x: hidden + overflow-y: scroll + height: 100% + +.wy-nav-top + display: none + background: $link-color + color: $white + padding: $gutter / 4 $gutter / 2 + position: relative + line-height: 50px + text-align: center + font-size: 100% + +clearfix + a + color: $white + font-weight: bold + +font-smooth + img + margin-right: $base-line-height / 2 + height: 45px + width: 45px + background-color: $menu-logo-color + padding: 5px + border-radius: 100% + i + font-size: 30px + float: left + cursor: pointer + padding-top: inherit + +.wy-nav-content-wrap + margin-left: $nav-desktop-width + background: $section-background-color + min-height: 100% + +.wy-nav-content + padding: $gutter $gutter * 2 + height: 100% + max-width: 100% + margin: auto + +.wy-body-mask + position: fixed + width: 100% + height: 100% + background: rgba(0,0,0,.2) + display: none + z-index: $z-index-modal - 1 + &.on + display: block +footer + color: $footer-color + p + margin-bottom: $base-line-height / 2 + span.commit code + padding: 0px + font-family: $code-font-family + font-size: 1em + background: none + border: none + color: $footer-color + +.rst-footer-buttons + +clearfix + +.rst-breadcrumbs-buttons + margin-top: 12px + +clearfix + +#search-results + .search li + margin-bottom: $base-line-height + border-bottom: solid 1px $table_border_color + padding-bottom: $base-line-height + .search li:first-child + border-top: solid 1px $table_border_color + padding-top: $base-line-height + .search li a + font-size: 120% + margin-bottom: $base-line-height / 2 + display: inline-block + .context + color: $text-medium + font-size: 90% + + ++media($tablet) + .wy-body-for-nav + background: $section-background-color + .wy-nav-top + display: block + .wy-nav-side + @if $nav-desktop-position == left + left: -$nav-desktop-width + @else + right: -$nav-desktop-width + &.shift + width: 85% + left: 0 + .wy-side-scroll + width: auto + .wy-side-nav-search + width: auto + .wy-menu.wy-menu-vertical + width: auto + .wy-nav-content-wrap + margin-left: 0 + .wy-nav-content + padding: $gutter + &.shift + position: fixed + min-width: 100% + left: 85% + top: 0 + height: 100% + overflow: hidden + ++media($desktop-wider) + .wy-nav-content-wrap + background: rgba(0,0,0,.05) + .wy-nav-content + margin: 0 + background: $section-background-color + +@media print + .rst-versions, footer, .wy-nav-side + display: none + .wy-nav-content-wrap + margin-left: 0 diff --git a/docs-src/_theme/sphinx_rtd_theme/sass/_theme_mathjax.sass b/docs-src/_theme/sphinx_rtd_theme/sass/_theme_mathjax.sass new file mode 100644 index 0000000..1004993 --- /dev/null +++ b/docs-src/_theme/sphinx_rtd_theme/sass/_theme_mathjax.sass @@ -0,0 +1,5 @@ +span[id*='MathJax-Span'] + color: $mathjax-color + +.math + text-align: center diff --git a/docs-src/_theme/sphinx_rtd_theme/sass/_theme_rst.sass b/docs-src/_theme/sphinx_rtd_theme/sass/_theme_rst.sass new file mode 100644 index 0000000..123ba59 --- /dev/null +++ b/docs-src/_theme/sphinx_rtd_theme/sass/_theme_rst.sass @@ -0,0 +1,322 @@ +// ------------------------------------------------------------------------------------------------------------------- +// CONTRIBUTORS, PLEASE READ THIS! +// ------------------------------------------------------------------------------------------------------------------- +// Couple things... +// 1. Lots of this @extends from wyrm_core/_type.sass (http://www.github.com/snide/wyrm/. +// * Try not to replace any @extends code. It's pretty generic stuff meant to work together. +// * That said, know that I'm very unlikely to accept PRs from wyrm just to change style here. +// 2. I plan to remove the !importants in here. Part of it is due to lazyness, part to sphinx's fondness for nesting. +// 3. Try to use variables from wyrm_core/wy_variables.sass. Notable are... +// * $base-line-height // All margins, padding and line-height should use this in .25 increments. +// * $text-color, $text-light, $text-dark...etc +// * $base-font-family, $custom-font-family, $code-font-family +// 4. If you have changes for mobile/tablet, put them at the bottom of the sass file. +// -------------------------------------------------------------------------------------------------------------------- + +.rst-content + // Sphinx by default applies HxW style attributes to images. This fixes that oversite. + img + max-width: 100% + height: auto !important + + .highlight > pre, .linenodiv > pre + line-height: normal + + div.figure + margin-bottom: $base-line-height + p.caption + font-style: italic + + div.figure.align-center + text-align: center + + // Usually it's a good idea to give images some space. + .section > img, .section > a > img + margin-bottom: $base-line-height + // Questionable whether this is nice or not. It styles eternal links, but comes with some baggage. + // a.reference.external:after + // font-family: FontAwesome + // content: " \f08e " + // color: $text-light + // vertical-align: super + // font-size: 60% + + // For the most part, its safe to assume that sphinx wants you to use a blockquote as an indent. It gets + // used in many different ways, so don't assume you can apply some fancy style, just leave it be. + blockquote + margin-left: $base-line-height + line-height: $base-line-height + margin-bottom: $base-line-height + .literal-block, pre.literal-block + @extend .codeblock + // These are the various note pullouts that sphinx applies + .note, .attention, .caution, .danger, .error, .hint, .important, .tip, .warning, .seealso, .admonition-todo + @extend .wy-alert + .last + margin-bottom: 0 + .admonition-title + @extend .wy-alert-title + @extend .fa + @extend .fa-exclamation-circle + &:before + margin-right: 4px + .note, .seealso + @extend .wy-alert.wy-alert-info + .hint, .tip, .important + @extend .wy-alert.wy-alert-success + .error, .danger + @extend .wy-alert.wy-alert-danger + .warning, .caution, .attention, .admonition-todo + @extend .wy-alert.wy-alert-warning + // Some people put tables in notes. Let's give them very basic support. + .admonition table + border-color: rgba(0,0,0,.1) + td, th + background: transparent !important + border-color: rgba(0,0,0,.1) !important + .section ul, .toctree-wrapper ul + @extend .wy-plain-list-disc + .section ol.loweralpha, .section ol.loweralpha li + list-style: lower-alpha + .section ol.upperalpha, .section ol.upperalpha li + list-style: upper-alpha + .section ol, ol.arabic + @extend .wy-plain-list-decimal + .section ol p, .section ul p + margin-bottom: $base-line-height / 2 + .line-block + margin-left: $base-line-height + + // Generics handling of headings and toc stuff. + .topic-title + font-weight: bold + margin-bottom: $base-line-height / 2 + .toc-backref + color: $text-color + .align-right + float: right + margin: 0px 0px $base-line-height $base-line-height + .align-left + float: left + margin: 0px $base-line-height $base-line-height 0px + .align-center + margin: auto + display: block + .toctree-wrapper p.caption + @extend h2 + + // This is the #href that shows up on hover. Sphinx's is terrible so I hack it away. + h1, h2, h3, h4, h5, h6, dl dt, p.caption + .headerlink + display: none + visibility: hidden + font-size: 14px + @extend .fa + &:after + visibility: visible + content: "\f0c1" + font-family: FontAwesome + display: inline-block + &:hover .headerlink + display: inline-block + + // Sidebar content. You'll see at the bottom of this file I change it in mobile. + .sidebar + float: right + width: 40% + display: block + margin: 0 0 $base-line-height $base-line-height + padding: $base-line-height + background: $sidebar-background-color + border: solid 1px $sidebar-border-color + // Sidebar content is usually less relevant, so adjust the margins and sizes. + p, ul, dl + font-size: 90% + .last + margin-bottom: 0 + .sidebar-title + display: block + font-family: $custom-font-family + font-weight: bold + background: $table-border-color + padding: $base-line-height / 4 $base-line-height / 2 + margin: -$base-line-height + margin-bottom: $base-line-height + font-size: 100% + // Sphinx can highlight searched text with ?highlighted=searchterm + .highlighted + background: $highlight-color + display: inline-block + font-weight: bold + padding: 0 $base-line-height / 4 + + // These are the little citation links [1] that show up within paragraphs. + .footnote-reference, .citation-reference + vertical-align: super + font-size: 90% + + // Tables! Sphinx LOVES TABLES. Most of wyrm assumes you're only going to use a table as a table + // so I have to write a bunch of unique stuff for Sphinx to style them up differently like it's 2003. + table.docutils.citation, table.docutils.footnote + background: none + border: none + color: $gray-light + td, tr + border: none + background-color: transparent !important + white-space: normal + td.label + padding-left: 0 + padding-right: 0 + vertical-align: top + code + color: $gray + table.docutils + @extend .wy-table + @extend .wy-table-bordered-all + &:not(.field-list) + @extend .wy-table-striped + // This table is what gets spit out for auto-generated API stuff. I style it smaller bits of padding. + table.field-list + @extend .wy-table + border: none + td + border: none + padding-top: 5px + td > strong + display: inline-block + margin-top: 3px + .field-name + padding-right: 10px + text-align: left + white-space: nowrap + .field-body + text-align: left + padding-left: 0 + + // These are the "literals" that get spit out when you mark stuff as ``code`` as your write. + tt, code + @extend code + color: $black + padding: 2px 5px + big, em + font-size: 100% !important + line-height: normal + + &.literal + color: $text-code-color + &.xref, a & + font-weight: bold + color: $text-codexref-color + // If the literal is inside an a tag, let's color it like a link + a tt, a code + color: $link-color + dl + margin-bottom: $base-line-height + dt + font-weight: bold + // Most of the content within these dls are one liners, so I halve the normal margins. + p, table, ul, ol + margin-bottom: $base-line-height / 2 !important + // rST seems to want dds to be treated as the browser would, indented. + dd + margin: 0 0 $base-line-height / 2 $base-line-height + // This is what Sphinx spits out for it's autodocs. Depending upon what language the person is referencing + // these things usually have a class of "method" or "class" or something similar, but really who knows. + // Sphinx doesn't give me a generic class on these, so unfortunately I have to apply it to the root dl. + // This makes me terribly unhappy and makes this code very nesty. Unfortunately I've seen hand-written docs + // that output similar, but not quite the same nesting so this is really the best we can do. + dl:not(.docutils) + margin-bottom: $base-line-height + // This would be the equivilant of a .. class:: + dt + display: table + margin: $base-line-height / 4 0 + font-size: 90% + line-height: normal + background: lighten($class-color, 50%) + color: $class-color + border-top: solid 3px lighten($class-color, 20%) + padding: $base-line-height / 4 + position: relative + &:before + color: lighten($class-color, 20%) + .headerlink + color: $text-color + font-size: 100% !important + // And this would be the .. method:: + dl dt + margin-bottom: $base-line-height / 4 + border: none + border-left: solid 3px hsl(0,0%,80%) + background: hsl(0,0%,94%) + color: $method-color + .headerlink + color: $headerlink-color + font-size: 100% !important + dt:first-child + margin-top: 0 + // Since dts get the callout style, we treat this less as callouts. + tt, code + font-weight: bold + &.descname, &.descclassname + background-color: transparent + border: none + padding: 0 + font-size: 100% !important + &.descname + font-weight: bold + // This is for more advanced parameter control + .optional + display: inline-block + padding: 0 4px + color: $black + font-weight: bold + .property + display: inline-block + padding-right: 8px + // Doc links to sourcecode + .viewcode-link, .viewcode-back + display: inline-block + color: $text-viewcode-color + font-size: 80% + padding-left: $base-line-height + .viewcode-back + display: block + float: right + p.rubric + margin-bottom: 12px + font-weight: bold + //Download link + code.download + background: inherit + padding: inherit + font-weight: normal + font-family: inherit + font-size: inherit + color: inherit + border: inherit + white-space: inherit + span:first-child + -webkit-font-smoothing: subpixel-antialiased + @extend .fa + @extend .fa-download + &:before + margin-right: 4px + .guilabel + border: 1px solid lighten($guilabel-color, 25%) + background: lighten($guilabel-color, 50%) + font-size: 80% + font-weight: 700 + border-radius: $base-line-height / 6 + padding: $base-line-height / 10 $base-line-height / 4 + margin: auto $base-line-height / 12 + .versionmodified + font-style: italic + + +// Mobile specific ++media($mobile) + .rst-content + .sidebar + width: 100% diff --git a/docs-src/_theme/sphinx_rtd_theme/sass/_theme_variables.sass b/docs-src/_theme/sphinx_rtd_theme/sass/_theme_variables.sass new file mode 100644 index 0000000..61212d2 --- /dev/null +++ b/docs-src/_theme/sphinx_rtd_theme/sass/_theme_variables.sass @@ -0,0 +1,62 @@ +// In here are varibles used for sphinx_rtd_theme, they either add to or overwrite the default ones +// that are set in wyrm_core/wy_variables.sass. You'll find wyrm in bower_components if you're looking +// for a reference. + +$font-awesome-dir: "../fonts/" +$static-img: "../img/" +$mathjax-color: $text-color + +$headerlink-color: $text-color + +// Code colors +$text-viewcode-color: $green +$text-codexref-color: $text-color + +// Definition list colors +$class-color: $blue +$method-color: $gray + +// GUI label color +$guilabel-color: $blue + +// Footer colors +$footer-color: $gray-light + +// Menu colors +$menu-vertical-background-color: $section-background-color + +// Menu text colors +$menu-color: $gray +$menu-dark: lighten($menu-color,15%) !default +$menu-medium: lighten($menu-color,25%) !default +$menu-light: lighten($menu-color,45%) !default +$menu-lighter: lighten($menu-color,60%) !default + +// Menu link colors +$menu-link-color: $text-color +$menu-link-dark: $text-dark +$menu-link-medium: $text-medium +$menu-link-light: $text-light +$menu-link-active: $white + +// Navigation colors +$nav-background-color: $menu-background-color +$nav-search-background-color: $blue +$nav-search-color: $section-background-color +$nav-link-color: $blue +$nav-link-color-visited: $purple +$nav-link-color-hover: lighten($nav-link-color, 6%) !default +$nav-link-color-alt: hsl(33, 100%, 51%) + +// Sidebar colors +$sidebar-background-color: $table-stripe-color +$sidebar-border-color: $table-border-color +$sidebar-title-background-color: $table-border-color + +// Sphinx highlight color +$highlight-color: $yellow + +$base-font-family: "Lato", "proxima-nova", "Helvetica Neue", Arial, sans-serif +$custom-font-family: "Roboto Slab", "ff-tisa-web-pro", "Georgia", Arial, sans-serif +$custom-font-family2: Georgia, serif +$code-font-family: Consolas, "Andale Mono WT", "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace diff --git a/docs-src/_theme/sphinx_rtd_theme/sass/badge_only.css b/docs-src/_theme/sphinx_rtd_theme/sass/badge_only.css new file mode 100644 index 0000000..01eeec1 --- /dev/null +++ b/docs-src/_theme/sphinx_rtd_theme/sass/badge_only.css @@ -0,0 +1,61 @@ +/* +Error: File to import not found or unreadable: wyrm_core/wy_variables. + on line 9 of badge_only.sass + +4: // This generates the RTD sticky badge for non RTD themes. As +5: // always, only files labeled "theme_*.sass should be edited". +6: // ------------------------------------------------------------ +7: $border-box-sizing: false !default +8: +9: @import wyrm_core/wy_variables +10: @import theme_variables +11: @import bourbon +12: @import neat +13: @import wyrm_core/mixin +14: @import wyrm_core/grid_settings + +Backtrace: +badge_only.sass:9 +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/tree/import_node.rb:67:in `rescue in import' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/tree/import_node.rb:45:in `import' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/tree/import_node.rb:28:in `imported_file' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/tree/import_node.rb:37:in `css_import?' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/tree/visitors/perform.rb:313:in `visit_import' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/tree/visitors/base.rb:36:in `visit' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/tree/visitors/perform.rb:160:in `block in visit' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/stack.rb:79:in `block in with_base' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/stack.rb:115:in `with_frame' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/stack.rb:79:in `with_base' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/tree/visitors/perform.rb:160:in `visit' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/tree/visitors/base.rb:52:in `block in visit_children' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/tree/visitors/base.rb:52:in `map' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/tree/visitors/base.rb:52:in `visit_children' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/tree/visitors/perform.rb:169:in `block in visit_children' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/tree/visitors/perform.rb:181:in `with_environment' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/tree/visitors/perform.rb:168:in `visit_children' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/tree/visitors/base.rb:36:in `block in visit' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/tree/visitors/perform.rb:188:in `visit_root' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/tree/visitors/base.rb:36:in `visit' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/tree/visitors/perform.rb:159:in `visit' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/tree/visitors/perform.rb:8:in `visit' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/tree/root_node.rb:36:in `css_tree' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/tree/root_node.rb:29:in `render_with_sourcemap' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/engine.rb:381:in `_render_with_sourcemap' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/engine.rb:298:in `render_with_sourcemap' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/plugin/compiler.rb:492:in `update_stylesheet' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/plugin/compiler.rb:215:in `block in update_stylesheets' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/plugin/compiler.rb:209:in `each' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/plugin/compiler.rb:209:in `update_stylesheets' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/plugin.rb:82:in `update_stylesheets' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/exec/sass_scss.rb:340:in `watch_or_update' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/exec/sass_scss.rb:51:in `process_result' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/exec/base.rb:52:in `parse' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/exec/base.rb:19:in `parse!' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/bin/sass:13:in `' +/usr/local/bin/sass:23:in `load' +/usr/local/bin/sass:23:in `
' +*/ +body:before { + white-space: pre; + font-family: monospace; + content: "Error: File to import not found or unreadable: wyrm_core/wy_variables.\A on line 9 of badge_only.sass\A \A 4: // This generates the RTD sticky badge for non RTD themes. As\A 5: // always, only files labeled \"theme_*.sass should be edited\".\A 6: // ------------------------------------------------------------\A 7: $border-box-sizing: false !default\A 8: \A 9: @import wyrm_core/wy_variables\A 10: @import theme_variables\A 11: @import bourbon\A 12: @import neat\A 13: @import wyrm_core/mixin\A 14: @import wyrm_core/grid_settings"; } diff --git a/docs-src/_theme/sphinx_rtd_theme/sass/badge_only.sass b/docs-src/_theme/sphinx_rtd_theme/sass/badge_only.sass new file mode 100644 index 0000000..b8cdac3 --- /dev/null +++ b/docs-src/_theme/sphinx_rtd_theme/sass/badge_only.sass @@ -0,0 +1,16 @@ +// ------------------------------------------------------------ +// CONTRIBUTORS, PLEASE READ THIS! +// ------------------------------------------------------------ +// This generates the RTD sticky badge for non RTD themes. As +// always, only files labeled "theme_*.sass should be edited". +// ------------------------------------------------------------ +$border-box-sizing: false !default + +@import wyrm_core/wy_variables +@import theme_variables +@import bourbon +@import neat +@import wyrm_core/mixin +@import wyrm_core/grid_settings +@import _theme_badge_fa +@import _theme_badge diff --git a/docs-src/_theme/sphinx_rtd_theme/sass/theme.css b/docs-src/_theme/sphinx_rtd_theme/sass/theme.css new file mode 100644 index 0000000..d5062b4 --- /dev/null +++ b/docs-src/_theme/sphinx_rtd_theme/sass/theme.css @@ -0,0 +1,61 @@ +/* +Error: File to import not found or unreadable: wyrm_core/wy_variables. + on line 10 of theme.sass + +5: // things you should edit are the sass files that start with +6: // "theme_*.sass". All other files are loaded through bower. +7: // ------------------------------------------------------------ +8: +9: // Variable defaults set by Wyrm +10: @import wyrm_core/wy_variables +11: +12: // Variable overrides that change coloring and fonts for this theme. +13: @import theme_variables +14: +15: // bourbon.io framework + +Backtrace: +theme.sass:10 +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/tree/import_node.rb:67:in `rescue in import' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/tree/import_node.rb:45:in `import' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/tree/import_node.rb:28:in `imported_file' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/tree/import_node.rb:37:in `css_import?' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/tree/visitors/perform.rb:313:in `visit_import' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/tree/visitors/base.rb:36:in `visit' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/tree/visitors/perform.rb:160:in `block in visit' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/stack.rb:79:in `block in with_base' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/stack.rb:115:in `with_frame' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/stack.rb:79:in `with_base' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/tree/visitors/perform.rb:160:in `visit' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/tree/visitors/base.rb:52:in `block in visit_children' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/tree/visitors/base.rb:52:in `map' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/tree/visitors/base.rb:52:in `visit_children' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/tree/visitors/perform.rb:169:in `block in visit_children' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/tree/visitors/perform.rb:181:in `with_environment' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/tree/visitors/perform.rb:168:in `visit_children' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/tree/visitors/base.rb:36:in `block in visit' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/tree/visitors/perform.rb:188:in `visit_root' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/tree/visitors/base.rb:36:in `visit' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/tree/visitors/perform.rb:159:in `visit' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/tree/visitors/perform.rb:8:in `visit' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/tree/root_node.rb:36:in `css_tree' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/tree/root_node.rb:29:in `render_with_sourcemap' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/engine.rb:381:in `_render_with_sourcemap' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/engine.rb:298:in `render_with_sourcemap' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/plugin/compiler.rb:492:in `update_stylesheet' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/plugin/compiler.rb:215:in `block in update_stylesheets' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/plugin/compiler.rb:209:in `each' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/plugin/compiler.rb:209:in `update_stylesheets' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/plugin.rb:82:in `update_stylesheets' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/exec/sass_scss.rb:340:in `watch_or_update' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/exec/sass_scss.rb:51:in `process_result' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/exec/base.rb:52:in `parse' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/lib/sass/exec/base.rb:19:in `parse!' +/usr/local/lib/ruby/gems/2.2.0/gems/sass-3.4.22/bin/sass:13:in `' +/usr/local/bin/sass:23:in `load' +/usr/local/bin/sass:23:in `
' +*/ +body:before { + white-space: pre; + font-family: monospace; + content: "Error: File to import not found or unreadable: wyrm_core/wy_variables.\A on line 10 of theme.sass\A \A 5: // things you should edit are the sass files that start with\A 6: // \"theme_*.sass\". All other files are loaded through bower.\A 7: // ------------------------------------------------------------\A 8: \A 9: // Variable defaults set by Wyrm\A 10: @import wyrm_core/wy_variables\A 11: \A 12: // Variable overrides that change coloring and fonts for this theme.\A 13: @import theme_variables\A 14: \A 15: // bourbon.io framework"; } diff --git a/docs-src/_theme/sphinx_rtd_theme/sass/theme.sass b/docs-src/_theme/sphinx_rtd_theme/sass/theme.sass new file mode 100644 index 0000000..c7322b7 --- /dev/null +++ b/docs-src/_theme/sphinx_rtd_theme/sass/theme.sass @@ -0,0 +1,54 @@ +// ------------------------------------------------------------ +// CONTRIBUTORS, PLEASE READ THIS! +// ------------------------------------------------------------ +// This theme pulls from other frontend projects. The only +// things you should edit are the sass files that start with +// "theme_*.sass". All other files are loaded through bower. +// ------------------------------------------------------------ + +// Variable defaults set by Wyrm +@import wyrm_core/wy_variables + +// Variable overrides that change coloring and fonts for this theme. +@import theme_variables + +// bourbon.io framework +@import bourbon + +// Bourbon.io/neat framework, with some default media queries +@import wyrm_core/grid_settings +@import neat +// Some corrections for neat +@import wyrm_core/neat_extra + +// Custom reset +@import wyrm_core/reset + +// Wyrm mixins +@import wyrm_core/mixin + +// Font Awesome 4.0 with wyrm extras +@import font-awesome +@import wyrm_core/font_icon_defaults + +// Wyrm core styles used in this theme +@import wyrm_core/alert +@import wyrm_core/button +@import wyrm_core/dropdown +@import wyrm_core/form +@import wyrm_core/generic +@import wyrm_core/table +@import wyrm_core/type + +// Pygments styling +@import wyrm_addons/pygments/pygments +@import wyrm_addons/pygments/pygments_light + +// Theme specific styles. These are likely the files you want to edit. +@import theme_breadcrumbs +@import theme_layout +@import theme_badge +@import theme_rst +@import theme_mathjax +@import theme_font_awesome_compatibility +@import theme_font_local diff --git a/docs-src/_theme/sphinx_rtd_theme/setup.cfg b/docs-src/_theme/sphinx_rtd_theme/setup.cfg new file mode 100644 index 0000000..2a9acf1 --- /dev/null +++ b/docs-src/_theme/sphinx_rtd_theme/setup.cfg @@ -0,0 +1,2 @@ +[bdist_wheel] +universal = 1 diff --git a/docs-src/_theme/sphinx_rtd_theme/setup.py b/docs-src/_theme/sphinx_rtd_theme/setup.py new file mode 100644 index 0000000..79da29e --- /dev/null +++ b/docs-src/_theme/sphinx_rtd_theme/setup.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +"""`sphinx_rtd_theme` lives on `Github`_. + +.. _github: https://www.github.com/snide/sphinx_rtd_theme + +""" +from setuptools import setup +from sphinx_rtd_theme import __version__ + + +setup( + name='sphinx_rtd_theme', + version=__version__, + url='https://github.com/rtfd/sphinx_rtd_theme/', + license='MIT', + author='Dave Snider', + author_email='dave.snider@gmail.com', + description='Read the Docs theme for Sphinx', + zip_safe=False, + packages=['sphinx_rtd_theme'], + package_data={'sphinx_rtd_theme': [ + 'theme.conf', + '*.html', + 'static/css/*.css', + 'static/js/*.js', + 'static/font/*.*' + ]}, + include_package_data=True, + classifiers=[ + 'Development Status :: 5 - Production/Stable', + 'License :: OSI Approved :: MIT License', + 'Environment :: Console', + 'Environment :: Web Environment', + 'Intended Audience :: Developers', + 'Programming Language :: Python :: 2.7', + 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3.3', + 'Programming Language :: Python :: 3.4', + 'Programming Language :: Python :: 3.5', + 'Programming Language :: Python :: 3.6', + 'Operating System :: OS Independent', + 'Topic :: Documentation', + 'Topic :: Software Development :: Documentation', + ], +) diff --git a/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/__init__.py b/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/__init__.py new file mode 100644 index 0000000..ad08a7f --- /dev/null +++ b/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/__init__.py @@ -0,0 +1,15 @@ +"""Sphinx ReadTheDocs theme. + +From https://github.com/ryan-roemer/sphinx-bootstrap-theme. + +""" +import os + +__version__ = '0.2.4' +__version_full__ = __version__ + + +def get_html_theme_path(): + """Return list of HTML theme paths.""" + cur_dir = os.path.abspath(os.path.dirname(os.path.dirname(__file__))) + return cur_dir diff --git a/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/breadcrumbs.html b/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/breadcrumbs.html new file mode 100644 index 0000000..486905c --- /dev/null +++ b/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/breadcrumbs.html @@ -0,0 +1,82 @@ +{# Support for Sphinx 1.3+ page_source_suffix, but don't break old builds. #} + +{% if page_source_suffix %} +{% set suffix = page_source_suffix %} +{% else %} +{% set suffix = source_suffix %} +{% endif %} + +{% if meta is defined and meta is not none %} +{% set check_meta = True %} +{% else %} +{% set check_meta = False %} +{% endif %} + +{% if check_meta and 'github_url' in meta %} +{% set display_github = True %} +{% endif %} + +{% if check_meta and 'bitbucket_url' in meta %} +{% set display_bitbucket = True %} +{% endif %} + +{% if check_meta and 'gitlab_url' in meta %} +{% set display_gitlab = True %} +{% endif %} + +
+ + + + {% if (theme_prev_next_buttons_location == 'top' or theme_prev_next_buttons_location == 'both') and (next or prev) %} + + {% endif %} +
+
diff --git a/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/footer.html b/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/footer.html new file mode 100644 index 0000000..9975c8d --- /dev/null +++ b/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/footer.html @@ -0,0 +1,52 @@ +
+ {% if (theme_prev_next_buttons_location == 'bottom' or theme_prev_next_buttons_location == 'both') and (next or prev) %} + + {% endif %} + +
+ +
+

+ {%- if show_copyright %} + {%- if hasdoc('copyright') %} + {% trans path=pathto('copyright'), copyright=copyright|e %}© Copyright {{ copyright }}.{% endtrans %} + {%- else %} + {% trans copyright=copyright|e %}© Copyright {{ copyright }}.{% endtrans %} + {%- endif %} + {%- endif %} + + {%- if build_id and build_url %} + {% trans build_url=build_url, build_id=build_id %} + + Build + {{ build_id }}. + + {% endtrans %} + {%- elif commit %} + {% trans commit=commit %} + + Revision {{ commit }}. + + {% endtrans %} + {%- elif last_updated %} + {% trans last_updated=last_updated|e %}Last updated on {{ last_updated }}.{% endtrans %} + {%- endif %} + +

+
+ + {%- if show_sphinx %} + {% trans %}Built with Sphinx using a theme provided by Read the Docs{% endtrans %}. + {%- endif %} + + {%- block extrafooter %} {% endblock %} + +
+ diff --git a/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/layout.html b/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/layout.html new file mode 100644 index 0000000..1ea856c --- /dev/null +++ b/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/layout.html @@ -0,0 +1,212 @@ +{# TEMPLATE VAR SETTINGS #} +{%- set url_root = pathto('', 1) %} +{%- if url_root == '#' %}{% set url_root = '' %}{% endif %} +{%- if not embedded and docstitle %} + {%- set titlesuffix = " — "|safe + docstitle|e %} +{%- else %} + {%- set titlesuffix = "" %} +{%- endif %} + + + + + + + {{ metatags }} + + {% block htmltitle %} + {{ title|striptags|e }}{{ titlesuffix }} + {% endblock %} + + {# FAVICON #} + {% if favicon %} + + {% endif %} + {# CANONICAL URL #} + {% if theme_canonical_url %} + + {% endif %} + + {# CSS #} + + {# OPENSEARCH #} + {% if not embedded %} + {% if use_opensearch %} + + {% endif %} + + {% endif %} + + {# RTD hosts this file, so just load on non RTD builds #} + {% if not READTHEDOCS %} + + {% endif %} + + {% for cssfile in css_files %} + + {% endfor %} + + {% for cssfile in extra_css_files %} + + {% endfor %} + + {%- block linktags %} + {%- if hasdoc('about') %} + + {%- endif %} + {%- if hasdoc('genindex') %} + + {%- endif %} + {%- if hasdoc('search') %} + + {%- endif %} + {%- if hasdoc('copyright') %} + + {%- endif %} + + {%- if parents %} + + {%- endif %} + {%- if next %} + + {%- endif %} + {%- if prev %} + + {%- endif %} + {%- endblock %} + {%- block extrahead %} {% endblock %} + + {# Keep modernizr in head - http://modernizr.com/docs/#installing #} + + + + + + {% block extrabody %} {% endblock %} +
+ + {# SIDE NAV, TOGGLES ON MOBILE #} + + +
+ + {# MOBILE NAV, TRIGGLES SIDE NAV ON TOGGLE #} + + + + {# PAGE CONTENT #} +
+
+ {% include "breadcrumbs.html" %} +
+
+ {% block body %}{% endblock %} +
+
+ {% block comments %}{% endblock %} +
+
+ {% include "footer.html" %} +
+
+ +
+ +
+ {% include "versions.html" %} + + {% if not embedded %} + + + {%- for scriptfile in script_files %} + + {%- endfor %} + + {% endif %} + + {# RTD hosts this file, so just load on non RTD builds #} + {% if not READTHEDOCS %} + + {% endif %} + + {# STICKY NAVIGATION #} + {% if theme_sticky_navigation %} + + {% endif %} + + {%- block footer %} {% endblock %} + + + diff --git a/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/layout_old.html b/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/layout_old.html new file mode 100644 index 0000000..9f2d199 --- /dev/null +++ b/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/layout_old.html @@ -0,0 +1,209 @@ +{# + basic/layout.html + ~~~~~~~~~~~~~~~~~ + + Master layout template for Sphinx themes. + + :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS. + :license: BSD, see LICENSE for details. +#} +{%- block doctype -%} + +{%- endblock %} +{%- set reldelim1 = reldelim1 is not defined and ' »' or reldelim1 %} +{%- set reldelim2 = reldelim2 is not defined and ' |' or reldelim2 %} +{%- set render_sidebar = (not embedded) and (not theme_nosidebar|tobool) and + (sidebars != []) %} +{%- set url_root = pathto('', 1) %} +{# XXX necessary? #} +{%- if url_root == '#' %}{% set url_root = '' %}{% endif %} +{%- if not embedded and docstitle %} + {%- set titlesuffix = " — "|safe + docstitle|e %} +{%- else %} + {%- set titlesuffix = "" %} +{%- endif %} + +{%- macro relbar() %} + +{%- endmacro %} + +{%- macro sidebar() %} + {%- if render_sidebar %} +
+
+ {%- block sidebarlogo %} + {%- if logo %} + + {%- endif %} + {%- endblock %} + {%- if sidebars != None %} + {#- new style sidebar: explicitly include/exclude templates #} + {%- for sidebartemplate in sidebars %} + {%- include sidebartemplate %} + {%- endfor %} + {%- else %} + {#- old style sidebars: using blocks -- should be deprecated #} + {%- block sidebartoc %} + {%- include "localtoc.html" %} + {%- endblock %} + {%- block sidebarrel %} + {%- include "relations.html" %} + {%- endblock %} + {%- block sidebarsourcelink %} + {%- include "sourcelink.html" %} + {%- endblock %} + {%- if customsidebar %} + {%- include customsidebar %} + {%- endif %} + {%- block sidebarsearch %} + {%- include "searchbox.html" %} + {%- endblock %} + {%- endif %} +
+
+ {%- endif %} +{%- endmacro %} + +{%- macro script() %} + + {%- for scriptfile in script_files %} + + {%- endfor %} +{%- endmacro %} + +{%- macro css() %} + + + {%- for cssfile in css_files %} + + {%- endfor %} +{%- endmacro %} + + + + + {{ metatags }} + {%- block htmltitle %} + {{ title|striptags|e }}{{ titlesuffix }} + {%- endblock %} + {{ css() }} + {%- if not embedded %} + {{ script() }} + {%- if use_opensearch %} + + {%- endif %} + {%- if favicon %} + + {%- endif %} + {%- if theme_canonical_url %} + + {%- endif %} + {%- endif %} +{%- block linktags %} + {%- if hasdoc('about') %} + + {%- endif %} + {%- if hasdoc('genindex') %} + + {%- endif %} + {%- if hasdoc('search') %} + + {%- endif %} + {%- if hasdoc('copyright') %} + + {%- endif %} + + {%- if parents %} + + {%- endif %} + {%- if next %} + + {%- endif %} + {%- if prev %} + + {%- endif %} +{%- endblock %} +{%- block extrahead %} {% endblock %} + + +{%- block header %}{% endblock %} + +{%- block relbar1 %}{{ relbar() }}{% endblock %} + +{%- block content %} + {%- block sidebar1 %} {# possible location for sidebar #} {% endblock %} + +
+ {%- block document %} +
+ {%- if render_sidebar %} +
+ {%- endif %} +
+ {% block body %} {% endblock %} +
+ {%- if render_sidebar %} +
+ {%- endif %} +
+ {%- endblock %} + + {%- block sidebar2 %}{{ sidebar() }}{% endblock %} +
+
+{%- endblock %} + +{%- block relbar2 %}{{ relbar() }}{% endblock %} + +{%- block footer %} + +

asdf asdf asdf asdf 22

+{%- endblock %} + + + diff --git a/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/search.html b/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/search.html new file mode 100644 index 0000000..e3aa9b5 --- /dev/null +++ b/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/search.html @@ -0,0 +1,50 @@ +{# + basic/search.html + ~~~~~~~~~~~~~~~~~ + + Template for the search page. + + :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS. + :license: BSD, see LICENSE for details. +#} +{%- extends "layout.html" %} +{% set title = _('Search') %} +{% set script_files = script_files + ['_static/searchtools.js'] %} +{% block footer %} + + {# this is used when loading the search index using $.ajax fails, + such as on Chrome for documents on localhost #} + + {{ super() }} +{% endblock %} +{% block body %} + + + {% if search_performed %} +

{{ _('Search Results') }}

+ {% if not search_results %} +

{{ _('Your search did not match any documents. Please make sure that all words are spelled correctly and that you\'ve selected enough categories.') }}

+ {% endif %} + {% endif %} +
+ {% if search_results %} +
    + {% for href, caption, context in search_results %} +
  • + {{ caption }} +

    {{ context|e }}

    +
  • + {% endfor %} +
+ {% endif %} +
+{% endblock %} diff --git a/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/searchbox.html b/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/searchbox.html new file mode 100644 index 0000000..606f5c8 --- /dev/null +++ b/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/searchbox.html @@ -0,0 +1,9 @@ +{%- if builder != 'singlehtml' %} +
+
+ + + +
+
+{%- endif %} diff --git a/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/static/css/badge_only.css b/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/static/css/badge_only.css new file mode 100644 index 0000000..cb09245 --- /dev/null +++ b/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/static/css/badge_only.css @@ -0,0 +1,221 @@ +@charset "UTF-8"; +.fa:before { + -webkit-font-smoothing: antialiased; +} + +.clearfix { + *zoom: 1; +} +.clearfix:before, .clearfix:after { + display: table; + content: ""; +} +.clearfix:after { + clear: both; +} + +@font-face { + font-family: FontAwesome; + font-weight: normal; + font-style: normal; + src: url("../fonts/fontawesome-webfont.eot"); + src: url("../fonts/fontawesome-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/fontawesome-webfont.woff") format("woff"), url("../fonts/fontawesome-webfont.ttf") format("truetype"), url("../fonts/fontawesome-webfont.svg#FontAwesome") format("svg"); +} +.fa:before { + display: inline-block; + font-family: FontAwesome; + font-style: normal; + font-weight: normal; + line-height: 1; + text-decoration: inherit; +} + +a .fa { + display: inline-block; + text-decoration: inherit; +} + +li .fa { + display: inline-block; +} +li .fa-large:before, +li .fa-large:before { + /* 1.5 increased font size for fa-large * 1.25 width */ + width: 1.875em; +} + +ul.fas { + list-style-type: none; + margin-left: 2em; + text-indent: -0.8em; +} +ul.fas li .fa { + width: 0.8em; +} +ul.fas li .fa-large:before, +ul.fas li .fa-large:before { + /* 1.5 increased font size for fa-large * 1.25 width */ + vertical-align: baseline; +} + +.fa-book:before { + content: ""; +} + +.icon-book:before { + content: ""; +} + +.fa-caret-down:before { + content: ""; +} + +.icon-caret-down:before { + content: ""; +} + +.fa-caret-up:before { + content: ""; +} + +.icon-caret-up:before { + content: ""; +} + +.fa-caret-left:before { + content: ""; +} + +.icon-caret-left:before { + content: ""; +} + +.fa-caret-right:before { + content: ""; +} + +.icon-caret-right:before { + content: ""; +} + +.rst-versions { + position: fixed; + bottom: 0; + left: 0; + width: 300px; + color: #fcfcfc; + background: #1f1d1d; + border-top: solid 10px #343131; + font-family: "Lato", "proxima-nova", "Helvetica Neue", Arial, sans-serif; + z-index: 400; +} +.rst-versions a { + color: #2980B9; + text-decoration: none; +} +.rst-versions .rst-badge-small { + display: none; +} +.rst-versions .rst-current-version { + padding: 12px; + background-color: #272525; + display: block; + text-align: right; + font-size: 90%; + cursor: pointer; + color: #27AE60; + *zoom: 1; +} +.rst-versions .rst-current-version:before, .rst-versions .rst-current-version:after { + display: table; + content: ""; +} +.rst-versions .rst-current-version:after { + clear: both; +} +.rst-versions .rst-current-version .fa { + color: #fcfcfc; +} +.rst-versions .rst-current-version .fa-book { + float: left; +} +.rst-versions .rst-current-version .icon-book { + float: left; +} +.rst-versions .rst-current-version.rst-out-of-date { + background-color: #E74C3C; + color: #fff; +} +.rst-versions .rst-current-version.rst-active-old-version { + background-color: #F1C40F; + color: #000; +} +.rst-versions.shift-up .rst-other-versions { + display: block; +} +.rst-versions .rst-other-versions { + font-size: 90%; + padding: 12px; + color: gray; + display: none; +} +.rst-versions .rst-other-versions hr { + display: block; + height: 1px; + border: 0; + margin: 20px 0; + padding: 0; + border-top: solid 1px #413d3d; +} +.rst-versions .rst-other-versions dd { + display: inline-block; + margin: 0; +} +.rst-versions .rst-other-versions dd a { + display: inline-block; + padding: 6px; + color: #fcfcfc; +} +.rst-versions.rst-badge { + width: auto; + bottom: 20px; + right: 20px; + left: auto; + border: none; + max-width: 300px; +} +.rst-versions.rst-badge .icon-book { + float: none; +} +.rst-versions.rst-badge .fa-book { + float: none; +} +.rst-versions.rst-badge.shift-up .rst-current-version { + text-align: right; +} +.rst-versions.rst-badge.shift-up .rst-current-version .fa-book { + float: left; +} +.rst-versions.rst-badge.shift-up .rst-current-version .icon-book { + float: left; +} +.rst-versions.rst-badge .rst-current-version { + width: auto; + height: 30px; + line-height: 30px; + padding: 0 6px; + display: block; + text-align: center; +} + +@media screen and (max-width: 768px) { + .rst-versions { + width: 85%; + display: none; + } + .rst-versions.shift { + display: block; + } +} + +/*# sourceMappingURL=badge_only.css.map */ diff --git a/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/static/css/badge_only.css.map b/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/static/css/badge_only.css.map new file mode 100644 index 0000000..05bb674 --- /dev/null +++ b/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/static/css/badge_only.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "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", +"sources": ["../../../bower_components/wyrm/sass/wyrm_core/_mixin.sass","../../../bower_components/bourbon/dist/css3/_font-face.scss","../../../sass/_theme_badge_fa.sass","../../../sass/_theme_badge.sass","../../../bower_components/wyrm/sass/wyrm_core/_wy_variables.sass","../../../sass/_theme_variables.sass","../../../bower_components/neat/app/assets/stylesheets/grid/_media.scss"], +"names": [], +"file": "badge_only.css" +} diff --git a/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/static/css/theme.css b/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/static/css/theme.css new file mode 100644 index 0000000..3e8c32b --- /dev/null +++ b/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/static/css/theme.css @@ -0,0 +1,6025 @@ +@charset "UTF-8"; +* { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +article, aside, details, figcaption, figure, footer, header, hgroup, nav, section { + display: block; +} + +audio, canvas, video { + display: inline-block; + *display: inline; + *zoom: 1; +} + +audio:not([controls]) { + display: none; +} + +[hidden] { + display: none; +} + +* { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +html { + font-size: 100%; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} + +body { + margin: 0; +} + +a:hover, a:active { + outline: 0; +} + +abbr[title] { + border-bottom: 1px dotted; +} + +b, strong { + font-weight: bold; +} + +blockquote { + margin: 0; +} + +dfn { + font-style: italic; +} + +ins { + background: #ff9; + color: #000; + text-decoration: none; +} + +mark { + background: #ff0; + color: #000; + font-style: italic; + font-weight: bold; +} + +pre, code, .rst-content tt, .rst-content code, kbd, samp { + font-family: monospace, serif; + _font-family: "courier new", monospace; + font-size: 1em; +} + +pre { + white-space: pre; +} + +q { + quotes: none; +} + +q:before, q:after { + content: ""; + content: none; +} + +small { + font-size: 85%; +} + +sub, sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +ul, ol, dl { + margin: 0; + padding: 0; + list-style: none; + list-style-image: none; +} + +li { + list-style: none; +} + +dd { + margin: 0; +} + +img { + border: 0; + -ms-interpolation-mode: bicubic; + vertical-align: middle; + max-width: 100%; +} + +svg:not(:root) { + overflow: hidden; +} + +figure { + margin: 0; +} + +form { + margin: 0; +} + +fieldset { + border: 0; + margin: 0; + padding: 0; +} + +label { + cursor: pointer; +} + +legend { + border: 0; + *margin-left: -7px; + padding: 0; + white-space: normal; +} + +button, input, select, textarea { + font-size: 100%; + margin: 0; + vertical-align: baseline; + *vertical-align: middle; +} + +button, input { + line-height: normal; +} + +button, input[type="button"], input[type="reset"], input[type="submit"] { + cursor: pointer; + -webkit-appearance: button; + *overflow: visible; +} + +button[disabled], input[disabled] { + cursor: default; +} + +input[type="checkbox"], input[type="radio"] { + box-sizing: border-box; + padding: 0; + *width: 13px; + *height: 13px; +} + +input[type="search"] { + -webkit-appearance: textfield; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + box-sizing: content-box; +} + +input[type="search"]::-webkit-search-decoration, input[type="search"]::-webkit-search-cancel-button { + -webkit-appearance: none; +} + +button::-moz-focus-inner, input::-moz-focus-inner { + border: 0; + padding: 0; +} + +textarea { + overflow: auto; + vertical-align: top; + resize: vertical; +} + +table { + border-collapse: collapse; + border-spacing: 0; +} + +td { + vertical-align: top; +} + +.chromeframe { + margin: 0.2em 0; + background: #ccc; + color: black; + padding: 0.2em 0; +} + +.ir { + display: block; + border: 0; + text-indent: -999em; + overflow: hidden; + background-color: transparent; + background-repeat: no-repeat; + text-align: left; + direction: ltr; + *line-height: 0; +} + +.ir br { + display: none; +} + +.hidden { + display: none !important; + visibility: hidden; +} + +.visuallyhidden { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; +} + +.visuallyhidden.focusable:active, .visuallyhidden.focusable:focus { + clip: auto; + height: auto; + margin: 0; + overflow: visible; + position: static; + width: auto; +} + +.invisible { + visibility: hidden; +} + +.relative { + position: relative; +} + +big, small { + font-size: 100%; +} + +@media print { + html, body, section { + background: none !important; + } + + * { + box-shadow: none !important; + text-shadow: none !important; + filter: none !important; + -ms-filter: none !important; + } + + a, a:visited { + text-decoration: underline; + } + + .ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after { + content: ""; + } + + pre, blockquote { + page-break-inside: avoid; + } + + thead { + display: table-header-group; + } + + tr, img { + page-break-inside: avoid; + } + + img { + max-width: 100% !important; + } + + @page { + margin: 0.5cm; + } + p, h2, .rst-content .toctree-wrapper p.caption, h3 { + orphans: 3; + widows: 3; + } + + h2, .rst-content .toctree-wrapper p.caption, h3 { + page-break-after: avoid; + } +} +.fa:before, .wy-menu-vertical li span.toctree-expand:before, .wy-menu-vertical li.on a span.toctree-expand:before, .wy-menu-vertical li.current > a span.toctree-expand:before, .rst-content .admonition-title:before, .rst-content h1 .headerlink:before, .rst-content h2 .headerlink:before, .rst-content h3 .headerlink:before, .rst-content h4 .headerlink:before, .rst-content h5 .headerlink:before, .rst-content h6 .headerlink:before, .rst-content dl dt .headerlink:before, .rst-content p.caption .headerlink:before, .rst-content tt.download span:first-child:before, .rst-content code.download span:first-child:before, .icon:before, .wy-dropdown .caret:before, .wy-inline-validate.wy-inline-validate-success .wy-input-context:before, .wy-inline-validate.wy-inline-validate-danger .wy-input-context:before, .wy-inline-validate.wy-inline-validate-warning .wy-input-context:before, .wy-inline-validate.wy-inline-validate-info .wy-input-context:before, .wy-alert, .rst-content .note, .rst-content .attention, .rst-content .caution, .rst-content .danger, .rst-content .error, .rst-content .hint, .rst-content .important, .rst-content .tip, .rst-content .warning, .rst-content .seealso, .rst-content .admonition-todo, .btn, input[type="text"], input[type="password"], input[type="email"], input[type="url"], input[type="date"], input[type="month"], input[type="time"], input[type="datetime"], input[type="datetime-local"], input[type="week"], input[type="number"], input[type="search"], input[type="tel"], input[type="color"], select, textarea, .wy-menu-vertical li.on a, .wy-menu-vertical li.current > a, .wy-side-nav-search > a, .wy-side-nav-search .wy-dropdown > a, .wy-nav-top a { + -webkit-font-smoothing: antialiased; +} + +.clearfix { + *zoom: 1; +} +.clearfix:before, .clearfix:after { + display: table; + content: ""; +} +.clearfix:after { + clear: both; +} + +/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */ +/* FONT PATH + * -------------------------- */ +@font-face { + font-family: 'FontAwesome'; + src: url("../fonts/fontawesome-webfont.eot?v=4.7.0"); + src: url("../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0") format("embedded-opentype"), url("../fonts/fontawesome-webfont.woff2?v=4.7.0") format("woff2"), url("../fonts/fontawesome-webfont.woff?v=4.7.0") format("woff"), url("../fonts/fontawesome-webfont.ttf?v=4.7.0") format("truetype"), url("../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular") format("svg"); + font-weight: normal; + font-style: normal; +} +.fa, .wy-menu-vertical li span.toctree-expand, .wy-menu-vertical li.on a span.toctree-expand, .wy-menu-vertical li.current > a span.toctree-expand, .rst-content .admonition-title, .rst-content h1 .headerlink, .rst-content h2 .headerlink, .rst-content h3 .headerlink, .rst-content h4 .headerlink, .rst-content h5 .headerlink, .rst-content h6 .headerlink, .rst-content dl dt .headerlink, .rst-content p.caption .headerlink, .rst-content tt.download span:first-child, .rst-content code.download span:first-child, .icon { + display: inline-block; + font: normal normal normal 14px/1 FontAwesome; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +/* makes the font 33% larger relative to the icon container */ +.fa-lg { + font-size: 1.33333em; + line-height: 0.75em; + vertical-align: -15%; +} + +.fa-2x { + font-size: 2em; +} + +.fa-3x { + font-size: 3em; +} + +.fa-4x { + font-size: 4em; +} + +.fa-5x { + font-size: 5em; +} + +.fa-fw { + width: 1.28571em; + text-align: center; +} + +.fa-ul { + padding-left: 0; + margin-left: 2.14286em; + list-style-type: none; +} +.fa-ul > li { + position: relative; +} + +.fa-li { + position: absolute; + left: -2.14286em; + width: 2.14286em; + top: 0.14286em; + text-align: center; +} +.fa-li.fa-lg { + left: -1.85714em; +} + +.fa-border { + padding: .2em .25em .15em; + border: solid 0.08em #eee; + border-radius: .1em; +} + +.fa-pull-left { + float: left; +} + +.fa-pull-right { + float: right; +} + +.fa.fa-pull-left, .wy-menu-vertical li span.fa-pull-left.toctree-expand, .wy-menu-vertical li.on a span.fa-pull-left.toctree-expand, .wy-menu-vertical li.current > a span.fa-pull-left.toctree-expand, .rst-content .fa-pull-left.admonition-title, .rst-content h1 .fa-pull-left.headerlink, .rst-content h2 .fa-pull-left.headerlink, .rst-content h3 .fa-pull-left.headerlink, .rst-content h4 .fa-pull-left.headerlink, .rst-content h5 .fa-pull-left.headerlink, .rst-content h6 .fa-pull-left.headerlink, .rst-content dl dt .fa-pull-left.headerlink, .rst-content p.caption .fa-pull-left.headerlink, .rst-content tt.download span.fa-pull-left:first-child, .rst-content code.download span.fa-pull-left:first-child, .fa-pull-left.icon { + margin-right: .3em; +} +.fa.fa-pull-right, .wy-menu-vertical li span.fa-pull-right.toctree-expand, .wy-menu-vertical li.on a span.fa-pull-right.toctree-expand, .wy-menu-vertical li.current > a span.fa-pull-right.toctree-expand, .rst-content .fa-pull-right.admonition-title, .rst-content h1 .fa-pull-right.headerlink, .rst-content h2 .fa-pull-right.headerlink, .rst-content h3 .fa-pull-right.headerlink, .rst-content h4 .fa-pull-right.headerlink, .rst-content h5 .fa-pull-right.headerlink, .rst-content h6 .fa-pull-right.headerlink, .rst-content dl dt .fa-pull-right.headerlink, .rst-content p.caption .fa-pull-right.headerlink, .rst-content tt.download span.fa-pull-right:first-child, .rst-content code.download span.fa-pull-right:first-child, .fa-pull-right.icon { + margin-left: .3em; +} + +/* Deprecated as of 4.4.0 */ +.pull-right { + float: right; +} + +.pull-left { + float: left; +} + +.fa.pull-left, .wy-menu-vertical li span.pull-left.toctree-expand, .wy-menu-vertical li.on a span.pull-left.toctree-expand, .wy-menu-vertical li.current > a span.pull-left.toctree-expand, .rst-content .pull-left.admonition-title, .rst-content h1 .pull-left.headerlink, .rst-content h2 .pull-left.headerlink, .rst-content h3 .pull-left.headerlink, .rst-content h4 .pull-left.headerlink, .rst-content h5 .pull-left.headerlink, .rst-content h6 .pull-left.headerlink, .rst-content dl dt .pull-left.headerlink, .rst-content p.caption .pull-left.headerlink, .rst-content tt.download span.pull-left:first-child, .rst-content code.download span.pull-left:first-child, .pull-left.icon { + margin-right: .3em; +} +.fa.pull-right, .wy-menu-vertical li span.pull-right.toctree-expand, .wy-menu-vertical li.on a span.pull-right.toctree-expand, .wy-menu-vertical li.current > a span.pull-right.toctree-expand, .rst-content .pull-right.admonition-title, .rst-content h1 .pull-right.headerlink, .rst-content h2 .pull-right.headerlink, .rst-content h3 .pull-right.headerlink, .rst-content h4 .pull-right.headerlink, .rst-content h5 .pull-right.headerlink, .rst-content h6 .pull-right.headerlink, .rst-content dl dt .pull-right.headerlink, .rst-content p.caption .pull-right.headerlink, .rst-content tt.download span.pull-right:first-child, .rst-content code.download span.pull-right:first-child, .pull-right.icon { + margin-left: .3em; +} + +.fa-spin { + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; +} + +.fa-pulse { + -webkit-animation: fa-spin 1s infinite steps(8); + animation: fa-spin 1s infinite steps(8); +} + +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +.fa-rotate-90 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; + -webkit-transform: rotate(90deg); + -ms-transform: rotate(90deg); + transform: rotate(90deg); +} + +.fa-rotate-180 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; + -webkit-transform: rotate(180deg); + -ms-transform: rotate(180deg); + transform: rotate(180deg); +} + +.fa-rotate-270 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; + -webkit-transform: rotate(270deg); + -ms-transform: rotate(270deg); + transform: rotate(270deg); +} + +.fa-flip-horizontal { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; + -webkit-transform: scale(-1, 1); + -ms-transform: scale(-1, 1); + transform: scale(-1, 1); +} + +.fa-flip-vertical { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; + -webkit-transform: scale(1, -1); + -ms-transform: scale(1, -1); + transform: scale(1, -1); +} + +:root .fa-rotate-90, +:root .fa-rotate-180, +:root .fa-rotate-270, +:root .fa-flip-horizontal, +:root .fa-flip-vertical { + filter: none; +} + +.fa-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; +} + +.fa-stack-1x, .fa-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; +} + +.fa-stack-1x { + line-height: inherit; +} + +.fa-stack-2x { + font-size: 2em; +} + +.fa-inverse { + color: #fff; +} + +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen + readers do not read off random characters that represent icons */ +.fa-glass:before { + content: ""; +} + +.fa-music:before { + content: ""; +} + +.fa-search:before, .icon-search:before { + content: ""; +} + +.fa-envelope-o:before { + content: ""; +} + +.fa-heart:before { + content: ""; +} + +.fa-star:before { + content: ""; +} + +.fa-star-o:before { + content: ""; +} + +.fa-user:before { + content: ""; +} + +.fa-film:before { + content: ""; +} + +.fa-th-large:before { + content: ""; +} + +.fa-th:before { + content: ""; +} + +.fa-th-list:before { + content: ""; +} + +.fa-check:before { + content: ""; +} + +.fa-remove:before, +.fa-close:before, +.fa-times:before { + content: ""; +} + +.fa-search-plus:before { + content: ""; +} + +.fa-search-minus:before { + content: ""; +} + +.fa-power-off:before { + content: ""; +} + +.fa-signal:before { + content: ""; +} + +.fa-gear:before, +.fa-cog:before { + content: ""; +} + +.fa-trash-o:before { + content: ""; +} + +.fa-home:before, .icon-home:before { + content: ""; +} + +.fa-file-o:before { + content: ""; +} + +.fa-clock-o:before { + content: ""; +} + +.fa-road:before { + content: ""; +} + +.fa-download:before, .rst-content tt.download span:first-child:before, .rst-content code.download span:first-child:before { + content: ""; +} + +.fa-arrow-circle-o-down:before { + content: ""; +} + +.fa-arrow-circle-o-up:before { + content: ""; +} + +.fa-inbox:before { + content: ""; +} + +.fa-play-circle-o:before { + content: ""; +} + +.fa-rotate-right:before, +.fa-repeat:before { + content: ""; +} + +.fa-refresh:before { + content: ""; +} + +.fa-list-alt:before { + content: ""; +} + +.fa-lock:before { + content: ""; +} + +.fa-flag:before { + content: ""; +} + +.fa-headphones:before { + content: ""; +} + +.fa-volume-off:before { + content: ""; +} + +.fa-volume-down:before { + content: ""; +} + +.fa-volume-up:before { + content: ""; +} + +.fa-qrcode:before { + content: ""; +} + +.fa-barcode:before { + content: ""; +} + +.fa-tag:before { + content: ""; +} + +.fa-tags:before { + content: ""; +} + +.fa-book:before, .icon-book:before { + content: ""; +} + +.fa-bookmark:before { + content: ""; +} + +.fa-print:before { + content: ""; +} + +.fa-camera:before { + content: ""; +} + +.fa-font:before { + content: ""; +} + +.fa-bold:before { + content: ""; +} + +.fa-italic:before { + content: ""; +} + +.fa-text-height:before { + content: ""; +} + +.fa-text-width:before { + content: ""; +} + +.fa-align-left:before { + content: ""; +} + +.fa-align-center:before { + content: ""; +} + +.fa-align-right:before { + content: ""; +} + +.fa-align-justify:before { + content: ""; +} + +.fa-list:before { + content: ""; +} + +.fa-dedent:before, +.fa-outdent:before { + content: ""; +} + +.fa-indent:before { + content: ""; +} + +.fa-video-camera:before { + content: ""; +} + +.fa-photo:before, +.fa-image:before, +.fa-picture-o:before { + content: ""; +} + +.fa-pencil:before { + content: ""; +} + +.fa-map-marker:before { + content: ""; +} + +.fa-adjust:before { + content: ""; +} + +.fa-tint:before { + content: ""; +} + +.fa-edit:before, +.fa-pencil-square-o:before { + content: ""; +} + +.fa-share-square-o:before { + content: ""; +} + +.fa-check-square-o:before { + content: ""; +} + +.fa-arrows:before { + content: ""; +} + +.fa-step-backward:before { + content: ""; +} + +.fa-fast-backward:before { + content: ""; +} + +.fa-backward:before { + content: ""; +} + +.fa-play:before { + content: ""; +} + +.fa-pause:before { + content: ""; +} + +.fa-stop:before { + content: ""; +} + +.fa-forward:before { + content: ""; +} + +.fa-fast-forward:before { + content: ""; +} + +.fa-step-forward:before { + content: ""; +} + +.fa-eject:before { + content: ""; +} + +.fa-chevron-left:before { + content: ""; +} + +.fa-chevron-right:before { + content: ""; +} + +.fa-plus-circle:before { + content: ""; +} + +.fa-minus-circle:before { + content: ""; +} + +.fa-times-circle:before, .wy-inline-validate.wy-inline-validate-danger .wy-input-context:before { + content: ""; +} + +.fa-check-circle:before, .wy-inline-validate.wy-inline-validate-success .wy-input-context:before { + content: ""; +} + +.fa-question-circle:before { + content: ""; +} + +.fa-info-circle:before { + content: ""; +} + +.fa-crosshairs:before { + content: ""; +} + +.fa-times-circle-o:before { + content: ""; +} + +.fa-check-circle-o:before { + content: ""; +} + +.fa-ban:before { + content: ""; +} + +.fa-arrow-left:before { + content: ""; +} + +.fa-arrow-right:before { + content: ""; +} + +.fa-arrow-up:before { + content: ""; +} + +.fa-arrow-down:before { + content: ""; +} + +.fa-mail-forward:before, +.fa-share:before { + content: ""; +} + +.fa-expand:before { + content: ""; +} + +.fa-compress:before { + content: ""; +} + +.fa-plus:before { + content: ""; +} + +.fa-minus:before { + content: ""; +} + +.fa-asterisk:before { + content: ""; +} + +.fa-exclamation-circle:before, .wy-inline-validate.wy-inline-validate-warning .wy-input-context:before, .wy-inline-validate.wy-inline-validate-info .wy-input-context:before, .rst-content .admonition-title:before { + content: ""; +} + +.fa-gift:before { + content: ""; +} + +.fa-leaf:before { + content: ""; +} + +.fa-fire:before, .icon-fire:before { + content: ""; +} + +.fa-eye:before { + content: ""; +} + +.fa-eye-slash:before { + content: ""; +} + +.fa-warning:before, +.fa-exclamation-triangle:before { + content: ""; +} + +.fa-plane:before { + content: ""; +} + +.fa-calendar:before { + content: ""; +} + +.fa-random:before { + content: ""; +} + +.fa-comment:before { + content: ""; +} + +.fa-magnet:before { + content: ""; +} + +.fa-chevron-up:before { + content: ""; +} + +.fa-chevron-down:before { + content: ""; +} + +.fa-retweet:before { + content: ""; +} + +.fa-shopping-cart:before { + content: ""; +} + +.fa-folder:before { + content: ""; +} + +.fa-folder-open:before { + content: ""; +} + +.fa-arrows-v:before { + content: ""; +} + +.fa-arrows-h:before { + content: ""; +} + +.fa-bar-chart-o:before, +.fa-bar-chart:before { + content: ""; +} + +.fa-twitter-square:before { + content: ""; +} + +.fa-facebook-square:before { + content: ""; +} + +.fa-camera-retro:before { + content: ""; +} + +.fa-key:before { + content: ""; +} + +.fa-gears:before, +.fa-cogs:before { + content: ""; +} + +.fa-comments:before { + content: ""; +} + +.fa-thumbs-o-up:before { + content: ""; +} + +.fa-thumbs-o-down:before { + content: ""; +} + +.fa-star-half:before { + content: ""; +} + +.fa-heart-o:before { + content: ""; +} + +.fa-sign-out:before { + content: ""; +} + +.fa-linkedin-square:before { + content: ""; +} + +.fa-thumb-tack:before { + content: ""; +} + +.fa-external-link:before { + content: ""; +} + +.fa-sign-in:before { + content: ""; +} + +.fa-trophy:before { + content: ""; +} + +.fa-github-square:before { + content: ""; +} + +.fa-upload:before { + content: ""; +} + +.fa-lemon-o:before { + content: ""; +} + +.fa-phone:before { + content: ""; +} + +.fa-square-o:before { + content: ""; +} + +.fa-bookmark-o:before { + content: ""; +} + +.fa-phone-square:before { + content: ""; +} + +.fa-twitter:before { + content: ""; +} + +.fa-facebook-f:before, +.fa-facebook:before { + content: ""; +} + +.fa-github:before, .icon-github:before { + content: ""; +} + +.fa-unlock:before { + content: ""; +} + +.fa-credit-card:before { + content: ""; +} + +.fa-feed:before, +.fa-rss:before { + content: ""; +} + +.fa-hdd-o:before { + content: ""; +} + +.fa-bullhorn:before { + content: ""; +} + +.fa-bell:before { + content: ""; +} + +.fa-certificate:before { + content: ""; +} + +.fa-hand-o-right:before { + content: ""; +} + +.fa-hand-o-left:before { + content: ""; +} + +.fa-hand-o-up:before { + content: ""; +} + +.fa-hand-o-down:before { + content: ""; +} + +.fa-arrow-circle-left:before, .icon-circle-arrow-left:before { + content: ""; +} + +.fa-arrow-circle-right:before, .icon-circle-arrow-right:before { + content: ""; +} + +.fa-arrow-circle-up:before { + content: ""; +} + +.fa-arrow-circle-down:before { + content: ""; +} + +.fa-globe:before { + content: ""; +} + +.fa-wrench:before { + content: ""; +} + +.fa-tasks:before { + content: ""; +} + +.fa-filter:before { + content: ""; +} + +.fa-briefcase:before { + content: ""; +} + +.fa-arrows-alt:before { + content: ""; +} + +.fa-group:before, +.fa-users:before { + content: ""; +} + +.fa-chain:before, +.fa-link:before, +.icon-link:before { + content: ""; +} + +.fa-cloud:before { + content: ""; +} + +.fa-flask:before { + content: ""; +} + +.fa-cut:before, +.fa-scissors:before { + content: ""; +} + +.fa-copy:before, +.fa-files-o:before { + content: ""; +} + +.fa-paperclip:before { + content: ""; +} + +.fa-save:before, +.fa-floppy-o:before { + content: ""; +} + +.fa-square:before { + content: ""; +} + +.fa-navicon:before, +.fa-reorder:before, +.fa-bars:before { + content: ""; +} + +.fa-list-ul:before { + content: ""; +} + +.fa-list-ol:before { + content: ""; +} + +.fa-strikethrough:before { + content: ""; +} + +.fa-underline:before { + content: ""; +} + +.fa-table:before { + content: ""; +} + +.fa-magic:before { + content: ""; +} + +.fa-truck:before { + content: ""; +} + +.fa-pinterest:before { + content: ""; +} + +.fa-pinterest-square:before { + content: ""; +} + +.fa-google-plus-square:before { + content: ""; +} + +.fa-google-plus:before { + content: ""; +} + +.fa-money:before { + content: ""; +} + +.fa-caret-down:before, .wy-dropdown .caret:before, .icon-caret-down:before { + content: ""; +} + +.fa-caret-up:before { + content: ""; +} + +.fa-caret-left:before { + content: ""; +} + +.fa-caret-right:before { + content: ""; +} + +.fa-columns:before { + content: ""; +} + +.fa-unsorted:before, +.fa-sort:before { + content: ""; +} + +.fa-sort-down:before, +.fa-sort-desc:before { + content: ""; +} + +.fa-sort-up:before, +.fa-sort-asc:before { + content: ""; +} + +.fa-envelope:before { + content: ""; +} + +.fa-linkedin:before { + content: ""; +} + +.fa-rotate-left:before, +.fa-undo:before { + content: ""; +} + +.fa-legal:before, +.fa-gavel:before { + content: ""; +} + +.fa-dashboard:before, +.fa-tachometer:before { + content: ""; +} + +.fa-comment-o:before { + content: ""; +} + +.fa-comments-o:before { + content: ""; +} + +.fa-flash:before, +.fa-bolt:before { + content: ""; +} + +.fa-sitemap:before { + content: ""; +} + +.fa-umbrella:before { + content: ""; +} + +.fa-paste:before, +.fa-clipboard:before { + content: ""; +} + +.fa-lightbulb-o:before { + content: ""; +} + +.fa-exchange:before { + content: ""; +} + +.fa-cloud-download:before { + content: ""; +} + +.fa-cloud-upload:before { + content: ""; +} + +.fa-user-md:before { + content: ""; +} + +.fa-stethoscope:before { + content: ""; +} + +.fa-suitcase:before { + content: ""; +} + +.fa-bell-o:before { + content: ""; +} + +.fa-coffee:before { + content: ""; +} + +.fa-cutlery:before { + content: ""; +} + +.fa-file-text-o:before { + content: ""; +} + +.fa-building-o:before { + content: ""; +} + +.fa-hospital-o:before { + content: ""; +} + +.fa-ambulance:before { + content: ""; +} + +.fa-medkit:before { + content: ""; +} + +.fa-fighter-jet:before { + content: ""; +} + +.fa-beer:before { + content: ""; +} + +.fa-h-square:before { + content: ""; +} + +.fa-plus-square:before { + content: ""; +} + +.fa-angle-double-left:before { + content: ""; +} + +.fa-angle-double-right:before { + content: ""; +} + +.fa-angle-double-up:before { + content: ""; +} + +.fa-angle-double-down:before { + content: ""; +} + +.fa-angle-left:before { + content: ""; +} + +.fa-angle-right:before { + content: ""; +} + +.fa-angle-up:before { + content: ""; +} + +.fa-angle-down:before { + content: ""; +} + +.fa-desktop:before { + content: ""; +} + +.fa-laptop:before { + content: ""; +} + +.fa-tablet:before { + content: ""; +} + +.fa-mobile-phone:before, +.fa-mobile:before { + content: ""; +} + +.fa-circle-o:before { + content: ""; +} + +.fa-quote-left:before { + content: ""; +} + +.fa-quote-right:before { + content: ""; +} + +.fa-spinner:before { + content: ""; +} + +.fa-circle:before { + content: ""; +} + +.fa-mail-reply:before, +.fa-reply:before { + content: ""; +} + +.fa-github-alt:before { + content: ""; +} + +.fa-folder-o:before { + content: ""; +} + +.fa-folder-open-o:before { + content: ""; +} + +.fa-smile-o:before { + content: ""; +} + +.fa-frown-o:before { + content: ""; +} + +.fa-meh-o:before { + content: ""; +} + +.fa-gamepad:before { + content: ""; +} + +.fa-keyboard-o:before { + content: ""; +} + +.fa-flag-o:before { + content: ""; +} + +.fa-flag-checkered:before { + content: ""; +} + +.fa-terminal:before { + content: ""; +} + +.fa-code:before { + content: ""; +} + +.fa-mail-reply-all:before, +.fa-reply-all:before { + content: ""; +} + +.fa-star-half-empty:before, +.fa-star-half-full:before, +.fa-star-half-o:before { + content: ""; +} + +.fa-location-arrow:before { + content: ""; +} + +.fa-crop:before { + content: ""; +} + +.fa-code-fork:before { + content: ""; +} + +.fa-unlink:before, +.fa-chain-broken:before { + content: ""; +} + +.fa-question:before { + content: ""; +} + +.fa-info:before { + content: ""; +} + +.fa-exclamation:before { + content: ""; +} + +.fa-superscript:before { + content: ""; +} + +.fa-subscript:before { + content: ""; +} + +.fa-eraser:before { + content: ""; +} + +.fa-puzzle-piece:before { + content: ""; +} + +.fa-microphone:before { + content: ""; +} + +.fa-microphone-slash:before { + content: ""; +} + +.fa-shield:before { + content: ""; +} + +.fa-calendar-o:before { + content: ""; +} + +.fa-fire-extinguisher:before { + content: ""; +} + +.fa-rocket:before { + content: ""; +} + +.fa-maxcdn:before { + content: ""; +} + +.fa-chevron-circle-left:before { + content: ""; +} + +.fa-chevron-circle-right:before { + content: ""; +} + +.fa-chevron-circle-up:before { + content: ""; +} + +.fa-chevron-circle-down:before { + content: ""; +} + +.fa-html5:before { + content: ""; +} + +.fa-css3:before { + content: ""; +} + +.fa-anchor:before { + content: ""; +} + +.fa-unlock-alt:before { + content: ""; +} + +.fa-bullseye:before { + content: ""; +} + +.fa-ellipsis-h:before { + content: ""; +} + +.fa-ellipsis-v:before { + content: ""; +} + +.fa-rss-square:before { + content: ""; +} + +.fa-play-circle:before { + content: ""; +} + +.fa-ticket:before { + content: ""; +} + +.fa-minus-square:before { + content: ""; +} + +.fa-minus-square-o:before, .wy-menu-vertical li.on a span.toctree-expand:before, .wy-menu-vertical li.current > a span.toctree-expand:before { + content: ""; +} + +.fa-level-up:before { + content: ""; +} + +.fa-level-down:before { + content: ""; +} + +.fa-check-square:before { + content: ""; +} + +.fa-pencil-square:before { + content: ""; +} + +.fa-external-link-square:before { + content: ""; +} + +.fa-share-square:before { + content: ""; +} + +.fa-compass:before { + content: ""; +} + +.fa-toggle-down:before, +.fa-caret-square-o-down:before { + content: ""; +} + +.fa-toggle-up:before, +.fa-caret-square-o-up:before { + content: ""; +} + +.fa-toggle-right:before, +.fa-caret-square-o-right:before { + content: ""; +} + +.fa-euro:before, +.fa-eur:before { + content: ""; +} + +.fa-gbp:before { + content: ""; +} + +.fa-dollar:before, +.fa-usd:before { + content: ""; +} + +.fa-rupee:before, +.fa-inr:before { + content: ""; +} + +.fa-cny:before, +.fa-rmb:before, +.fa-yen:before, +.fa-jpy:before { + content: ""; +} + +.fa-ruble:before, +.fa-rouble:before, +.fa-rub:before { + content: ""; +} + +.fa-won:before, +.fa-krw:before { + content: ""; +} + +.fa-bitcoin:before, +.fa-btc:before { + content: ""; +} + +.fa-file:before { + content: ""; +} + +.fa-file-text:before { + content: ""; +} + +.fa-sort-alpha-asc:before { + content: ""; +} + +.fa-sort-alpha-desc:before { + content: ""; +} + +.fa-sort-amount-asc:before { + content: ""; +} + +.fa-sort-amount-desc:before { + content: ""; +} + +.fa-sort-numeric-asc:before { + content: ""; +} + +.fa-sort-numeric-desc:before { + content: ""; +} + +.fa-thumbs-up:before { + content: ""; +} + +.fa-thumbs-down:before { + content: ""; +} + +.fa-youtube-square:before { + content: ""; +} + +.fa-youtube:before { + content: ""; +} + +.fa-xing:before { + content: ""; +} + +.fa-xing-square:before { + content: ""; +} + +.fa-youtube-play:before { + content: ""; +} + +.fa-dropbox:before { + content: ""; +} + +.fa-stack-overflow:before { + content: ""; +} + +.fa-instagram:before { + content: ""; +} + +.fa-flickr:before { + content: ""; +} + +.fa-adn:before { + content: ""; +} + +.fa-bitbucket:before, .icon-bitbucket:before { + content: ""; +} + +.fa-bitbucket-square:before { + content: ""; +} + +.fa-tumblr:before { + content: ""; +} + +.fa-tumblr-square:before { + content: ""; +} + +.fa-long-arrow-down:before { + content: ""; +} + +.fa-long-arrow-up:before { + content: ""; +} + +.fa-long-arrow-left:before { + content: ""; +} + +.fa-long-arrow-right:before { + content: ""; +} + +.fa-apple:before { + content: ""; +} + +.fa-windows:before { + content: ""; +} + +.fa-android:before { + content: ""; +} + +.fa-linux:before { + content: ""; +} + +.fa-dribbble:before { + content: ""; +} + +.fa-skype:before { + content: ""; +} + +.fa-foursquare:before { + content: ""; +} + +.fa-trello:before { + content: ""; +} + +.fa-female:before { + content: ""; +} + +.fa-male:before { + content: ""; +} + +.fa-gittip:before, +.fa-gratipay:before { + content: ""; +} + +.fa-sun-o:before { + content: ""; +} + +.fa-moon-o:before { + content: ""; +} + +.fa-archive:before { + content: ""; +} + +.fa-bug:before { + content: ""; +} + +.fa-vk:before { + content: ""; +} + +.fa-weibo:before { + content: ""; +} + +.fa-renren:before { + content: ""; +} + +.fa-pagelines:before { + content: ""; +} + +.fa-stack-exchange:before { + content: ""; +} + +.fa-arrow-circle-o-right:before { + content: ""; +} + +.fa-arrow-circle-o-left:before { + content: ""; +} + +.fa-toggle-left:before, +.fa-caret-square-o-left:before { + content: ""; +} + +.fa-dot-circle-o:before { + content: ""; +} + +.fa-wheelchair:before { + content: ""; +} + +.fa-vimeo-square:before { + content: ""; +} + +.fa-turkish-lira:before, +.fa-try:before { + content: ""; +} + +.fa-plus-square-o:before, .wy-menu-vertical li span.toctree-expand:before { + content: ""; +} + +.fa-space-shuttle:before { + content: ""; +} + +.fa-slack:before { + content: ""; +} + +.fa-envelope-square:before { + content: ""; +} + +.fa-wordpress:before { + content: ""; +} + +.fa-openid:before { + content: ""; +} + +.fa-institution:before, +.fa-bank:before, +.fa-university:before { + content: ""; +} + +.fa-mortar-board:before, +.fa-graduation-cap:before { + content: ""; +} + +.fa-yahoo:before { + content: ""; +} + +.fa-google:before { + content: ""; +} + +.fa-reddit:before { + content: ""; +} + +.fa-reddit-square:before { + content: ""; +} + +.fa-stumbleupon-circle:before { + content: ""; +} + +.fa-stumbleupon:before { + content: ""; +} + +.fa-delicious:before { + content: ""; +} + +.fa-digg:before { + content: ""; +} + +.fa-pied-piper-pp:before { + content: ""; +} + +.fa-pied-piper-alt:before { + content: ""; +} + +.fa-drupal:before { + content: ""; +} + +.fa-joomla:before { + content: ""; +} + +.fa-language:before { + content: ""; +} + +.fa-fax:before { + content: ""; +} + +.fa-building:before { + content: ""; +} + +.fa-child:before { + content: ""; +} + +.fa-paw:before { + content: ""; +} + +.fa-spoon:before { + content: ""; +} + +.fa-cube:before { + content: ""; +} + +.fa-cubes:before { + content: ""; +} + +.fa-behance:before { + content: ""; +} + +.fa-behance-square:before { + content: ""; +} + +.fa-steam:before { + content: ""; +} + +.fa-steam-square:before { + content: ""; +} + +.fa-recycle:before { + content: ""; +} + +.fa-automobile:before, +.fa-car:before { + content: ""; +} + +.fa-cab:before, +.fa-taxi:before { + content: ""; +} + +.fa-tree:before { + content: ""; +} + +.fa-spotify:before { + content: ""; +} + +.fa-deviantart:before { + content: ""; +} + +.fa-soundcloud:before { + content: ""; +} + +.fa-database:before { + content: ""; +} + +.fa-file-pdf-o:before { + content: ""; +} + +.fa-file-word-o:before { + content: ""; +} + +.fa-file-excel-o:before { + content: ""; +} + +.fa-file-powerpoint-o:before { + content: ""; +} + +.fa-file-photo-o:before, +.fa-file-picture-o:before, +.fa-file-image-o:before { + content: ""; +} + +.fa-file-zip-o:before, +.fa-file-archive-o:before { + content: ""; +} + +.fa-file-sound-o:before, +.fa-file-audio-o:before { + content: ""; +} + +.fa-file-movie-o:before, +.fa-file-video-o:before { + content: ""; +} + +.fa-file-code-o:before { + content: ""; +} + +.fa-vine:before { + content: ""; +} + +.fa-codepen:before { + content: ""; +} + +.fa-jsfiddle:before { + content: ""; +} + +.fa-life-bouy:before, +.fa-life-buoy:before, +.fa-life-saver:before, +.fa-support:before, +.fa-life-ring:before { + content: ""; +} + +.fa-circle-o-notch:before { + content: ""; +} + +.fa-ra:before, +.fa-resistance:before, +.fa-rebel:before { + content: ""; +} + +.fa-ge:before, +.fa-empire:before { + content: ""; +} + +.fa-git-square:before { + content: ""; +} + +.fa-git:before { + content: ""; +} + +.fa-y-combinator-square:before, +.fa-yc-square:before, +.fa-hacker-news:before { + content: ""; +} + +.fa-tencent-weibo:before { + content: ""; +} + +.fa-qq:before { + content: ""; +} + +.fa-wechat:before, +.fa-weixin:before { + content: ""; +} + +.fa-send:before, +.fa-paper-plane:before { + content: ""; +} + +.fa-send-o:before, +.fa-paper-plane-o:before { + content: ""; +} + +.fa-history:before { + content: ""; +} + +.fa-circle-thin:before { + content: ""; +} + +.fa-header:before { + content: ""; +} + +.fa-paragraph:before { + content: ""; +} + +.fa-sliders:before { + content: ""; +} + +.fa-share-alt:before { + content: ""; +} + +.fa-share-alt-square:before { + content: ""; +} + +.fa-bomb:before { + content: ""; +} + +.fa-soccer-ball-o:before, +.fa-futbol-o:before { + content: ""; +} + +.fa-tty:before { + content: ""; +} + +.fa-binoculars:before { + content: ""; +} + +.fa-plug:before { + content: ""; +} + +.fa-slideshare:before { + content: ""; +} + +.fa-twitch:before { + content: ""; +} + +.fa-yelp:before { + content: ""; +} + +.fa-newspaper-o:before { + content: ""; +} + +.fa-wifi:before { + content: ""; +} + +.fa-calculator:before { + content: ""; +} + +.fa-paypal:before { + content: ""; +} + +.fa-google-wallet:before { + content: ""; +} + +.fa-cc-visa:before { + content: ""; +} + +.fa-cc-mastercard:before { + content: ""; +} + +.fa-cc-discover:before { + content: ""; +} + +.fa-cc-amex:before { + content: ""; +} + +.fa-cc-paypal:before { + content: ""; +} + +.fa-cc-stripe:before { + content: ""; +} + +.fa-bell-slash:before { + content: ""; +} + +.fa-bell-slash-o:before { + content: ""; +} + +.fa-trash:before { + content: ""; +} + +.fa-copyright:before { + content: ""; +} + +.fa-at:before { + content: ""; +} + +.fa-eyedropper:before { + content: ""; +} + +.fa-paint-brush:before { + content: ""; +} + +.fa-birthday-cake:before { + content: ""; +} + +.fa-area-chart:before { + content: ""; +} + +.fa-pie-chart:before { + content: ""; +} + +.fa-line-chart:before { + content: ""; +} + +.fa-lastfm:before { + content: ""; +} + +.fa-lastfm-square:before { + content: ""; +} + +.fa-toggle-off:before { + content: ""; +} + +.fa-toggle-on:before { + content: ""; +} + +.fa-bicycle:before { + content: ""; +} + +.fa-bus:before { + content: ""; +} + +.fa-ioxhost:before { + content: ""; +} + +.fa-angellist:before { + content: ""; +} + +.fa-cc:before { + content: ""; +} + +.fa-shekel:before, +.fa-sheqel:before, +.fa-ils:before { + content: ""; +} + +.fa-meanpath:before { + content: ""; +} + +.fa-buysellads:before { + content: ""; +} + +.fa-connectdevelop:before { + content: ""; +} + +.fa-dashcube:before { + content: ""; +} + +.fa-forumbee:before { + content: ""; +} + +.fa-leanpub:before { + content: ""; +} + +.fa-sellsy:before { + content: ""; +} + +.fa-shirtsinbulk:before { + content: ""; +} + +.fa-simplybuilt:before { + content: ""; +} + +.fa-skyatlas:before { + content: ""; +} + +.fa-cart-plus:before { + content: ""; +} + +.fa-cart-arrow-down:before { + content: ""; +} + +.fa-diamond:before { + content: ""; +} + +.fa-ship:before { + content: ""; +} + +.fa-user-secret:before { + content: ""; +} + +.fa-motorcycle:before { + content: ""; +} + +.fa-street-view:before { + content: ""; +} + +.fa-heartbeat:before { + content: ""; +} + +.fa-venus:before { + content: ""; +} + +.fa-mars:before { + content: ""; +} + +.fa-mercury:before { + content: ""; +} + +.fa-intersex:before, +.fa-transgender:before { + content: ""; +} + +.fa-transgender-alt:before { + content: ""; +} + +.fa-venus-double:before { + content: ""; +} + +.fa-mars-double:before { + content: ""; +} + +.fa-venus-mars:before { + content: ""; +} + +.fa-mars-stroke:before { + content: ""; +} + +.fa-mars-stroke-v:before { + content: ""; +} + +.fa-mars-stroke-h:before { + content: ""; +} + +.fa-neuter:before { + content: ""; +} + +.fa-genderless:before { + content: ""; +} + +.fa-facebook-official:before { + content: ""; +} + +.fa-pinterest-p:before { + content: ""; +} + +.fa-whatsapp:before { + content: ""; +} + +.fa-server:before { + content: ""; +} + +.fa-user-plus:before { + content: ""; +} + +.fa-user-times:before { + content: ""; +} + +.fa-hotel:before, +.fa-bed:before { + content: ""; +} + +.fa-viacoin:before { + content: ""; +} + +.fa-train:before { + content: ""; +} + +.fa-subway:before { + content: ""; +} + +.fa-medium:before { + content: ""; +} + +.fa-yc:before, +.fa-y-combinator:before { + content: ""; +} + +.fa-optin-monster:before { + content: ""; +} + +.fa-opencart:before { + content: ""; +} + +.fa-expeditedssl:before { + content: ""; +} + +.fa-battery-4:before, +.fa-battery:before, +.fa-battery-full:before { + content: ""; +} + +.fa-battery-3:before, +.fa-battery-three-quarters:before { + content: ""; +} + +.fa-battery-2:before, +.fa-battery-half:before { + content: ""; +} + +.fa-battery-1:before, +.fa-battery-quarter:before { + content: ""; +} + +.fa-battery-0:before, +.fa-battery-empty:before { + content: ""; +} + +.fa-mouse-pointer:before { + content: ""; +} + +.fa-i-cursor:before { + content: ""; +} + +.fa-object-group:before { + content: ""; +} + +.fa-object-ungroup:before { + content: ""; +} + +.fa-sticky-note:before { + content: ""; +} + +.fa-sticky-note-o:before { + content: ""; +} + +.fa-cc-jcb:before { + content: ""; +} + +.fa-cc-diners-club:before { + content: ""; +} + +.fa-clone:before { + content: ""; +} + +.fa-balance-scale:before { + content: ""; +} + +.fa-hourglass-o:before { + content: ""; +} + +.fa-hourglass-1:before, +.fa-hourglass-start:before { + content: ""; +} + +.fa-hourglass-2:before, +.fa-hourglass-half:before { + content: ""; +} + +.fa-hourglass-3:before, +.fa-hourglass-end:before { + content: ""; +} + +.fa-hourglass:before { + content: ""; +} + +.fa-hand-grab-o:before, +.fa-hand-rock-o:before { + content: ""; +} + +.fa-hand-stop-o:before, +.fa-hand-paper-o:before { + content: ""; +} + +.fa-hand-scissors-o:before { + content: ""; +} + +.fa-hand-lizard-o:before { + content: ""; +} + +.fa-hand-spock-o:before { + content: ""; +} + +.fa-hand-pointer-o:before { + content: ""; +} + +.fa-hand-peace-o:before { + content: ""; +} + +.fa-trademark:before { + content: ""; +} + +.fa-registered:before { + content: ""; +} + +.fa-creative-commons:before { + content: ""; +} + +.fa-gg:before { + content: ""; +} + +.fa-gg-circle:before { + content: ""; +} + +.fa-tripadvisor:before { + content: ""; +} + +.fa-odnoklassniki:before { + content: ""; +} + +.fa-odnoklassniki-square:before { + content: ""; +} + +.fa-get-pocket:before { + content: ""; +} + +.fa-wikipedia-w:before { + content: ""; +} + +.fa-safari:before { + content: ""; +} + +.fa-chrome:before { + content: ""; +} + +.fa-firefox:before { + content: ""; +} + +.fa-opera:before { + content: ""; +} + +.fa-internet-explorer:before { + content: ""; +} + +.fa-tv:before, +.fa-television:before { + content: ""; +} + +.fa-contao:before { + content: ""; +} + +.fa-500px:before { + content: ""; +} + +.fa-amazon:before { + content: ""; +} + +.fa-calendar-plus-o:before { + content: ""; +} + +.fa-calendar-minus-o:before { + content: ""; +} + +.fa-calendar-times-o:before { + content: ""; +} + +.fa-calendar-check-o:before { + content: ""; +} + +.fa-industry:before { + content: ""; +} + +.fa-map-pin:before { + content: ""; +} + +.fa-map-signs:before { + content: ""; +} + +.fa-map-o:before { + content: ""; +} + +.fa-map:before { + content: ""; +} + +.fa-commenting:before { + content: ""; +} + +.fa-commenting-o:before { + content: ""; +} + +.fa-houzz:before { + content: ""; +} + +.fa-vimeo:before { + content: ""; +} + +.fa-black-tie:before { + content: ""; +} + +.fa-fonticons:before { + content: ""; +} + +.fa-reddit-alien:before { + content: ""; +} + +.fa-edge:before { + content: ""; +} + +.fa-credit-card-alt:before { + content: ""; +} + +.fa-codiepie:before { + content: ""; +} + +.fa-modx:before { + content: ""; +} + +.fa-fort-awesome:before { + content: ""; +} + +.fa-usb:before { + content: ""; +} + +.fa-product-hunt:before { + content: ""; +} + +.fa-mixcloud:before { + content: ""; +} + +.fa-scribd:before { + content: ""; +} + +.fa-pause-circle:before { + content: ""; +} + +.fa-pause-circle-o:before { + content: ""; +} + +.fa-stop-circle:before { + content: ""; +} + +.fa-stop-circle-o:before { + content: ""; +} + +.fa-shopping-bag:before { + content: ""; +} + +.fa-shopping-basket:before { + content: ""; +} + +.fa-hashtag:before { + content: ""; +} + +.fa-bluetooth:before { + content: ""; +} + +.fa-bluetooth-b:before { + content: ""; +} + +.fa-percent:before { + content: ""; +} + +.fa-gitlab:before, .icon-gitlab:before { + content: ""; +} + +.fa-wpbeginner:before { + content: ""; +} + +.fa-wpforms:before { + content: ""; +} + +.fa-envira:before { + content: ""; +} + +.fa-universal-access:before { + content: ""; +} + +.fa-wheelchair-alt:before { + content: ""; +} + +.fa-question-circle-o:before { + content: ""; +} + +.fa-blind:before { + content: ""; +} + +.fa-audio-description:before { + content: ""; +} + +.fa-volume-control-phone:before { + content: ""; +} + +.fa-braille:before { + content: ""; +} + +.fa-assistive-listening-systems:before { + content: ""; +} + +.fa-asl-interpreting:before, +.fa-american-sign-language-interpreting:before { + content: ""; +} + +.fa-deafness:before, +.fa-hard-of-hearing:before, +.fa-deaf:before { + content: ""; +} + +.fa-glide:before { + content: ""; +} + +.fa-glide-g:before { + content: ""; +} + +.fa-signing:before, +.fa-sign-language:before { + content: ""; +} + +.fa-low-vision:before { + content: ""; +} + +.fa-viadeo:before { + content: ""; +} + +.fa-viadeo-square:before { + content: ""; +} + +.fa-snapchat:before { + content: ""; +} + +.fa-snapchat-ghost:before { + content: ""; +} + +.fa-snapchat-square:before { + content: ""; +} + +.fa-pied-piper:before { + content: ""; +} + +.fa-first-order:before { + content: ""; +} + +.fa-yoast:before { + content: ""; +} + +.fa-themeisle:before { + content: ""; +} + +.fa-google-plus-circle:before, +.fa-google-plus-official:before { + content: ""; +} + +.fa-fa:before, +.fa-font-awesome:before { + content: ""; +} + +.fa-handshake-o:before { + content: ""; +} + +.fa-envelope-open:before { + content: ""; +} + +.fa-envelope-open-o:before { + content: ""; +} + +.fa-linode:before { + content: ""; +} + +.fa-address-book:before { + content: ""; +} + +.fa-address-book-o:before { + content: ""; +} + +.fa-vcard:before, +.fa-address-card:before { + content: ""; +} + +.fa-vcard-o:before, +.fa-address-card-o:before { + content: ""; +} + +.fa-user-circle:before { + content: ""; +} + +.fa-user-circle-o:before { + content: ""; +} + +.fa-user-o:before { + content: ""; +} + +.fa-id-badge:before { + content: ""; +} + +.fa-drivers-license:before, +.fa-id-card:before { + content: ""; +} + +.fa-drivers-license-o:before, +.fa-id-card-o:before { + content: ""; +} + +.fa-quora:before { + content: ""; +} + +.fa-free-code-camp:before { + content: ""; +} + +.fa-telegram:before { + content: ""; +} + +.fa-thermometer-4:before, +.fa-thermometer:before, +.fa-thermometer-full:before { + content: ""; +} + +.fa-thermometer-3:before, +.fa-thermometer-three-quarters:before { + content: ""; +} + +.fa-thermometer-2:before, +.fa-thermometer-half:before { + content: ""; +} + +.fa-thermometer-1:before, +.fa-thermometer-quarter:before { + content: ""; +} + +.fa-thermometer-0:before, +.fa-thermometer-empty:before { + content: ""; +} + +.fa-shower:before { + content: ""; +} + +.fa-bathtub:before, +.fa-s15:before, +.fa-bath:before { + content: ""; +} + +.fa-podcast:before { + content: ""; +} + +.fa-window-maximize:before { + content: ""; +} + +.fa-window-minimize:before { + content: ""; +} + +.fa-window-restore:before { + content: ""; +} + +.fa-times-rectangle:before, +.fa-window-close:before { + content: ""; +} + +.fa-times-rectangle-o:before, +.fa-window-close-o:before { + content: ""; +} + +.fa-bandcamp:before { + content: ""; +} + +.fa-grav:before { + content: ""; +} + +.fa-etsy:before { + content: ""; +} + +.fa-imdb:before { + content: ""; +} + +.fa-ravelry:before { + content: ""; +} + +.fa-eercast:before { + content: ""; +} + +.fa-microchip:before { + content: ""; +} + +.fa-snowflake-o:before { + content: ""; +} + +.fa-superpowers:before { + content: ""; +} + +.fa-wpexplorer:before { + content: ""; +} + +.fa-meetup:before { + content: ""; +} + +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; +} + +.sr-only-focusable:active, .sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; +} + +.fa, .wy-menu-vertical li span.toctree-expand, .wy-menu-vertical li.on a span.toctree-expand, .wy-menu-vertical li.current > a span.toctree-expand, .rst-content .admonition-title, .rst-content h1 .headerlink, .rst-content h2 .headerlink, .rst-content h3 .headerlink, .rst-content h4 .headerlink, .rst-content h5 .headerlink, .rst-content h6 .headerlink, .rst-content dl dt .headerlink, .rst-content p.caption .headerlink, .rst-content tt.download span:first-child, .rst-content code.download span:first-child, .icon, .wy-dropdown .caret, .wy-inline-validate.wy-inline-validate-success .wy-input-context, .wy-inline-validate.wy-inline-validate-danger .wy-input-context, .wy-inline-validate.wy-inline-validate-warning .wy-input-context, .wy-inline-validate.wy-inline-validate-info .wy-input-context { + font-family: inherit; +} +.fa:before, .wy-menu-vertical li span.toctree-expand:before, .wy-menu-vertical li.on a span.toctree-expand:before, .wy-menu-vertical li.current > a span.toctree-expand:before, .rst-content .admonition-title:before, .rst-content h1 .headerlink:before, .rst-content h2 .headerlink:before, .rst-content h3 .headerlink:before, .rst-content h4 .headerlink:before, .rst-content h5 .headerlink:before, .rst-content h6 .headerlink:before, .rst-content dl dt .headerlink:before, .rst-content p.caption .headerlink:before, .rst-content tt.download span:first-child:before, .rst-content code.download span:first-child:before, .icon:before, .wy-dropdown .caret:before, .wy-inline-validate.wy-inline-validate-success .wy-input-context:before, .wy-inline-validate.wy-inline-validate-danger .wy-input-context:before, .wy-inline-validate.wy-inline-validate-warning .wy-input-context:before, .wy-inline-validate.wy-inline-validate-info .wy-input-context:before { + font-family: "FontAwesome"; + display: inline-block; + font-style: normal; + font-weight: normal; + line-height: 1; + text-decoration: inherit; +} + +a .fa, a .wy-menu-vertical li span.toctree-expand, .wy-menu-vertical li a span.toctree-expand, .wy-menu-vertical li.on a span.toctree-expand, .wy-menu-vertical li.current > a span.toctree-expand, a .rst-content .admonition-title, .rst-content a .admonition-title, a .rst-content h1 .headerlink, .rst-content h1 a .headerlink, a .rst-content h2 .headerlink, .rst-content h2 a .headerlink, a .rst-content h3 .headerlink, .rst-content h3 a .headerlink, a .rst-content h4 .headerlink, .rst-content h4 a .headerlink, a .rst-content h5 .headerlink, .rst-content h5 a .headerlink, a .rst-content h6 .headerlink, .rst-content h6 a .headerlink, a .rst-content dl dt .headerlink, .rst-content dl dt a .headerlink, a .rst-content p.caption .headerlink, .rst-content p.caption a .headerlink, a .rst-content tt.download span:first-child, .rst-content tt.download a span:first-child, a .rst-content code.download span:first-child, .rst-content code.download a span:first-child, a .icon { + display: inline-block; + text-decoration: inherit; +} + +.btn .fa, .btn .wy-menu-vertical li span.toctree-expand, .wy-menu-vertical li .btn span.toctree-expand, .btn .wy-menu-vertical li.on a span.toctree-expand, .wy-menu-vertical li.on a .btn span.toctree-expand, .btn .wy-menu-vertical li.current > a span.toctree-expand, .wy-menu-vertical li.current > a .btn span.toctree-expand, .btn .rst-content .admonition-title, .rst-content .btn .admonition-title, .btn .rst-content h1 .headerlink, .rst-content h1 .btn .headerlink, .btn .rst-content h2 .headerlink, .rst-content h2 .btn .headerlink, .btn .rst-content h3 .headerlink, .rst-content h3 .btn .headerlink, .btn .rst-content h4 .headerlink, .rst-content h4 .btn .headerlink, .btn .rst-content h5 .headerlink, .rst-content h5 .btn .headerlink, .btn .rst-content h6 .headerlink, .rst-content h6 .btn .headerlink, .btn .rst-content dl dt .headerlink, .rst-content dl dt .btn .headerlink, .btn .rst-content p.caption .headerlink, .rst-content p.caption .btn .headerlink, .btn .rst-content tt.download span:first-child, .rst-content tt.download .btn span:first-child, .btn .rst-content code.download span:first-child, .rst-content code.download .btn span:first-child, .btn .icon, .nav .fa, .nav .wy-menu-vertical li span.toctree-expand, .wy-menu-vertical li .nav span.toctree-expand, .nav .wy-menu-vertical li.on a span.toctree-expand, .wy-menu-vertical li.on a .nav span.toctree-expand, .nav .wy-menu-vertical li.current > a span.toctree-expand, .wy-menu-vertical li.current > a .nav span.toctree-expand, .nav .rst-content .admonition-title, .rst-content .nav .admonition-title, .nav .rst-content h1 .headerlink, .rst-content h1 .nav .headerlink, .nav .rst-content h2 .headerlink, .rst-content h2 .nav .headerlink, .nav .rst-content h3 .headerlink, .rst-content h3 .nav .headerlink, .nav .rst-content h4 .headerlink, .rst-content h4 .nav .headerlink, .nav .rst-content h5 .headerlink, .rst-content h5 .nav .headerlink, .nav .rst-content h6 .headerlink, .rst-content h6 .nav .headerlink, .nav .rst-content dl dt .headerlink, .rst-content dl dt .nav .headerlink, .nav .rst-content p.caption .headerlink, .rst-content p.caption .nav .headerlink, .nav .rst-content tt.download span:first-child, .rst-content tt.download .nav span:first-child, .nav .rst-content code.download span:first-child, .rst-content code.download .nav span:first-child, .nav .icon { + display: inline; +} +.btn .fa.fa-large, .btn .wy-menu-vertical li span.fa-large.toctree-expand, .wy-menu-vertical li .btn span.fa-large.toctree-expand, .btn .rst-content .fa-large.admonition-title, .rst-content .btn .fa-large.admonition-title, .btn .rst-content h1 .fa-large.headerlink, .rst-content h1 .btn .fa-large.headerlink, .btn .rst-content h2 .fa-large.headerlink, .rst-content h2 .btn .fa-large.headerlink, .btn .rst-content h3 .fa-large.headerlink, .rst-content h3 .btn .fa-large.headerlink, .btn .rst-content h4 .fa-large.headerlink, .rst-content h4 .btn .fa-large.headerlink, .btn .rst-content h5 .fa-large.headerlink, .rst-content h5 .btn .fa-large.headerlink, .btn .rst-content h6 .fa-large.headerlink, .rst-content h6 .btn .fa-large.headerlink, .btn .rst-content dl dt .fa-large.headerlink, .rst-content dl dt .btn .fa-large.headerlink, .btn .rst-content p.caption .fa-large.headerlink, .rst-content p.caption .btn .fa-large.headerlink, .btn .rst-content tt.download span.fa-large:first-child, .rst-content tt.download .btn span.fa-large:first-child, .btn .rst-content code.download span.fa-large:first-child, .rst-content code.download .btn span.fa-large:first-child, .btn .fa-large.icon, .nav .fa.fa-large, .nav .wy-menu-vertical li span.fa-large.toctree-expand, .wy-menu-vertical li .nav span.fa-large.toctree-expand, .nav .rst-content .fa-large.admonition-title, .rst-content .nav .fa-large.admonition-title, .nav .rst-content h1 .fa-large.headerlink, .rst-content h1 .nav .fa-large.headerlink, .nav .rst-content h2 .fa-large.headerlink, .rst-content h2 .nav .fa-large.headerlink, .nav .rst-content h3 .fa-large.headerlink, .rst-content h3 .nav .fa-large.headerlink, .nav .rst-content h4 .fa-large.headerlink, .rst-content h4 .nav .fa-large.headerlink, .nav .rst-content h5 .fa-large.headerlink, .rst-content h5 .nav .fa-large.headerlink, .nav .rst-content h6 .fa-large.headerlink, .rst-content h6 .nav .fa-large.headerlink, .nav .rst-content dl dt .fa-large.headerlink, .rst-content dl dt .nav .fa-large.headerlink, .nav .rst-content p.caption .fa-large.headerlink, .rst-content p.caption .nav .fa-large.headerlink, .nav .rst-content tt.download span.fa-large:first-child, .rst-content tt.download .nav span.fa-large:first-child, .nav .rst-content code.download span.fa-large:first-child, .rst-content code.download .nav span.fa-large:first-child, .nav .fa-large.icon { + line-height: 0.9em; +} +.btn .fa.fa-spin, .btn .wy-menu-vertical li span.fa-spin.toctree-expand, .wy-menu-vertical li .btn span.fa-spin.toctree-expand, .btn .rst-content .fa-spin.admonition-title, .rst-content .btn .fa-spin.admonition-title, .btn .rst-content h1 .fa-spin.headerlink, .rst-content h1 .btn .fa-spin.headerlink, .btn .rst-content h2 .fa-spin.headerlink, .rst-content h2 .btn .fa-spin.headerlink, .btn .rst-content h3 .fa-spin.headerlink, .rst-content h3 .btn .fa-spin.headerlink, .btn .rst-content h4 .fa-spin.headerlink, .rst-content h4 .btn .fa-spin.headerlink, .btn .rst-content h5 .fa-spin.headerlink, .rst-content h5 .btn .fa-spin.headerlink, .btn .rst-content h6 .fa-spin.headerlink, .rst-content h6 .btn .fa-spin.headerlink, .btn .rst-content dl dt .fa-spin.headerlink, .rst-content dl dt .btn .fa-spin.headerlink, .btn .rst-content p.caption .fa-spin.headerlink, .rst-content p.caption .btn .fa-spin.headerlink, .btn .rst-content tt.download span.fa-spin:first-child, .rst-content tt.download .btn span.fa-spin:first-child, .btn .rst-content code.download span.fa-spin:first-child, .rst-content code.download .btn span.fa-spin:first-child, .btn .fa-spin.icon, .nav .fa.fa-spin, .nav .wy-menu-vertical li span.fa-spin.toctree-expand, .wy-menu-vertical li .nav span.fa-spin.toctree-expand, .nav .rst-content .fa-spin.admonition-title, .rst-content .nav .fa-spin.admonition-title, .nav .rst-content h1 .fa-spin.headerlink, .rst-content h1 .nav .fa-spin.headerlink, .nav .rst-content h2 .fa-spin.headerlink, .rst-content h2 .nav .fa-spin.headerlink, .nav .rst-content h3 .fa-spin.headerlink, .rst-content h3 .nav .fa-spin.headerlink, .nav .rst-content h4 .fa-spin.headerlink, .rst-content h4 .nav .fa-spin.headerlink, .nav .rst-content h5 .fa-spin.headerlink, .rst-content h5 .nav .fa-spin.headerlink, .nav .rst-content h6 .fa-spin.headerlink, .rst-content h6 .nav .fa-spin.headerlink, .nav .rst-content dl dt .fa-spin.headerlink, .rst-content dl dt .nav .fa-spin.headerlink, .nav .rst-content p.caption .fa-spin.headerlink, .rst-content p.caption .nav .fa-spin.headerlink, .nav .rst-content tt.download span.fa-spin:first-child, .rst-content tt.download .nav span.fa-spin:first-child, .nav .rst-content code.download span.fa-spin:first-child, .rst-content code.download .nav span.fa-spin:first-child, .nav .fa-spin.icon { + display: inline-block; +} + +.btn.fa:before, .wy-menu-vertical li span.btn.toctree-expand:before, .rst-content .btn.admonition-title:before, .rst-content h1 .btn.headerlink:before, .rst-content h2 .btn.headerlink:before, .rst-content h3 .btn.headerlink:before, .rst-content h4 .btn.headerlink:before, .rst-content h5 .btn.headerlink:before, .rst-content h6 .btn.headerlink:before, .rst-content dl dt .btn.headerlink:before, .rst-content p.caption .btn.headerlink:before, .rst-content tt.download span.btn:first-child:before, .rst-content code.download span.btn:first-child:before, .btn.icon:before { + opacity: 0.5; + -webkit-transition: opacity 0.05s ease-in; + -moz-transition: opacity 0.05s ease-in; + transition: opacity 0.05s ease-in; +} + +.btn.fa:hover:before, .wy-menu-vertical li span.btn.toctree-expand:hover:before, .rst-content .btn.admonition-title:hover:before, .rst-content h1 .btn.headerlink:hover:before, .rst-content h2 .btn.headerlink:hover:before, .rst-content h3 .btn.headerlink:hover:before, .rst-content h4 .btn.headerlink:hover:before, .rst-content h5 .btn.headerlink:hover:before, .rst-content h6 .btn.headerlink:hover:before, .rst-content dl dt .btn.headerlink:hover:before, .rst-content p.caption .btn.headerlink:hover:before, .rst-content tt.download span.btn:first-child:hover:before, .rst-content code.download span.btn:first-child:hover:before, .btn.icon:hover:before { + opacity: 1; +} + +.btn-mini .fa:before, .btn-mini .wy-menu-vertical li span.toctree-expand:before, .wy-menu-vertical li .btn-mini span.toctree-expand:before, .btn-mini .rst-content .admonition-title:before, .rst-content .btn-mini .admonition-title:before, .btn-mini .rst-content h1 .headerlink:before, .rst-content h1 .btn-mini .headerlink:before, .btn-mini .rst-content h2 .headerlink:before, .rst-content h2 .btn-mini .headerlink:before, .btn-mini .rst-content h3 .headerlink:before, .rst-content h3 .btn-mini .headerlink:before, .btn-mini .rst-content h4 .headerlink:before, .rst-content h4 .btn-mini .headerlink:before, .btn-mini .rst-content h5 .headerlink:before, .rst-content h5 .btn-mini .headerlink:before, .btn-mini .rst-content h6 .headerlink:before, .rst-content h6 .btn-mini .headerlink:before, .btn-mini .rst-content dl dt .headerlink:before, .rst-content dl dt .btn-mini .headerlink:before, .btn-mini .rst-content p.caption .headerlink:before, .rst-content p.caption .btn-mini .headerlink:before, .btn-mini .rst-content tt.download span:first-child:before, .rst-content tt.download .btn-mini span:first-child:before, .btn-mini .rst-content code.download span:first-child:before, .rst-content code.download .btn-mini span:first-child:before, .btn-mini .icon:before { + font-size: 14px; + vertical-align: -15%; +} + +.wy-alert, .rst-content .note, .rst-content .attention, .rst-content .caution, .rst-content .danger, .rst-content .error, .rst-content .hint, .rst-content .important, .rst-content .tip, .rst-content .warning, .rst-content .seealso, .rst-content .admonition-todo { + padding: 12px; + line-height: 24px; + margin-bottom: 24px; + background: #e7f2fa; +} + +.wy-alert-title, .rst-content .admonition-title { + color: #fff; + font-weight: bold; + display: block; + color: #fff; + background: #6ab0de; + margin: -12px; + padding: 6px 12px; + margin-bottom: 12px; +} + +.wy-alert.wy-alert-danger, .rst-content .wy-alert-danger.note, .rst-content .wy-alert-danger.attention, .rst-content .wy-alert-danger.caution, .rst-content .danger, .rst-content .error, .rst-content .wy-alert-danger.hint, .rst-content .wy-alert-danger.important, .rst-content .wy-alert-danger.tip, .rst-content .wy-alert-danger.warning, .rst-content .wy-alert-danger.seealso, .rst-content .wy-alert-danger.admonition-todo { + background: #fdf3f2; +} +.wy-alert.wy-alert-danger .wy-alert-title, .rst-content .wy-alert-danger.note .wy-alert-title, .rst-content .wy-alert-danger.attention .wy-alert-title, .rst-content .wy-alert-danger.caution .wy-alert-title, .rst-content .danger .wy-alert-title, .rst-content .error .wy-alert-title, .rst-content .wy-alert-danger.hint .wy-alert-title, .rst-content .wy-alert-danger.important .wy-alert-title, .rst-content .wy-alert-danger.tip .wy-alert-title, .rst-content .wy-alert-danger.warning .wy-alert-title, .rst-content .wy-alert-danger.seealso .wy-alert-title, .rst-content .wy-alert-danger.admonition-todo .wy-alert-title, .wy-alert.wy-alert-danger .rst-content .admonition-title, .rst-content .wy-alert.wy-alert-danger .admonition-title, .rst-content .wy-alert-danger.note .admonition-title, .rst-content .wy-alert-danger.attention .admonition-title, .rst-content .wy-alert-danger.caution .admonition-title, .rst-content .danger .admonition-title, .rst-content .error .admonition-title, .rst-content .wy-alert-danger.hint .admonition-title, .rst-content .wy-alert-danger.important .admonition-title, .rst-content .wy-alert-danger.tip .admonition-title, .rst-content .wy-alert-danger.warning .admonition-title, .rst-content .wy-alert-danger.seealso .admonition-title, .rst-content .wy-alert-danger.admonition-todo .admonition-title { + background: #f29f97; +} + +.wy-alert.wy-alert-warning, .rst-content .wy-alert-warning.note, .rst-content .attention, .rst-content .caution, .rst-content .wy-alert-warning.danger, .rst-content .wy-alert-warning.error, .rst-content .wy-alert-warning.hint, .rst-content .wy-alert-warning.important, .rst-content .wy-alert-warning.tip, .rst-content .warning, .rst-content .wy-alert-warning.seealso, .rst-content .admonition-todo { + background: #ffedcc; +} +.wy-alert.wy-alert-warning .wy-alert-title, .rst-content .wy-alert-warning.note .wy-alert-title, .rst-content .attention .wy-alert-title, .rst-content .caution .wy-alert-title, .rst-content .wy-alert-warning.danger .wy-alert-title, .rst-content .wy-alert-warning.error .wy-alert-title, .rst-content .wy-alert-warning.hint .wy-alert-title, .rst-content .wy-alert-warning.important .wy-alert-title, .rst-content .wy-alert-warning.tip .wy-alert-title, .rst-content .warning .wy-alert-title, .rst-content .wy-alert-warning.seealso .wy-alert-title, .rst-content .admonition-todo .wy-alert-title, .wy-alert.wy-alert-warning .rst-content .admonition-title, .rst-content .wy-alert.wy-alert-warning .admonition-title, .rst-content .wy-alert-warning.note .admonition-title, .rst-content .attention .admonition-title, .rst-content .caution .admonition-title, .rst-content .wy-alert-warning.danger .admonition-title, .rst-content .wy-alert-warning.error .admonition-title, .rst-content .wy-alert-warning.hint .admonition-title, .rst-content .wy-alert-warning.important .admonition-title, .rst-content .wy-alert-warning.tip .admonition-title, .rst-content .warning .admonition-title, .rst-content .wy-alert-warning.seealso .admonition-title, .rst-content .admonition-todo .admonition-title { + background: #f0b37e; +} + +.wy-alert.wy-alert-info, .rst-content .note, .rst-content .wy-alert-info.attention, .rst-content .wy-alert-info.caution, .rst-content .wy-alert-info.danger, .rst-content .wy-alert-info.error, .rst-content .wy-alert-info.hint, .rst-content .wy-alert-info.important, .rst-content .wy-alert-info.tip, .rst-content .wy-alert-info.warning, .rst-content .seealso, .rst-content .wy-alert-info.admonition-todo { + background: #e7f2fa; +} +.wy-alert.wy-alert-info .wy-alert-title, .rst-content .note .wy-alert-title, .rst-content .wy-alert-info.attention .wy-alert-title, .rst-content .wy-alert-info.caution .wy-alert-title, .rst-content .wy-alert-info.danger .wy-alert-title, .rst-content .wy-alert-info.error .wy-alert-title, .rst-content .wy-alert-info.hint .wy-alert-title, .rst-content .wy-alert-info.important .wy-alert-title, .rst-content .wy-alert-info.tip .wy-alert-title, .rst-content .wy-alert-info.warning .wy-alert-title, .rst-content .seealso .wy-alert-title, .rst-content .wy-alert-info.admonition-todo .wy-alert-title, .wy-alert.wy-alert-info .rst-content .admonition-title, .rst-content .wy-alert.wy-alert-info .admonition-title, .rst-content .note .admonition-title, .rst-content .wy-alert-info.attention .admonition-title, .rst-content .wy-alert-info.caution .admonition-title, .rst-content .wy-alert-info.danger .admonition-title, .rst-content .wy-alert-info.error .admonition-title, .rst-content .wy-alert-info.hint .admonition-title, .rst-content .wy-alert-info.important .admonition-title, .rst-content .wy-alert-info.tip .admonition-title, .rst-content .wy-alert-info.warning .admonition-title, .rst-content .seealso .admonition-title, .rst-content .wy-alert-info.admonition-todo .admonition-title { + background: #6ab0de; +} + +.wy-alert.wy-alert-success, .rst-content .wy-alert-success.note, .rst-content .wy-alert-success.attention, .rst-content .wy-alert-success.caution, .rst-content .wy-alert-success.danger, .rst-content .wy-alert-success.error, .rst-content .hint, .rst-content .important, .rst-content .tip, .rst-content .wy-alert-success.warning, .rst-content .wy-alert-success.seealso, .rst-content .wy-alert-success.admonition-todo { + background: #dbfaf4; +} +.wy-alert.wy-alert-success .wy-alert-title, .rst-content .wy-alert-success.note .wy-alert-title, .rst-content .wy-alert-success.attention .wy-alert-title, .rst-content .wy-alert-success.caution .wy-alert-title, .rst-content .wy-alert-success.danger .wy-alert-title, .rst-content .wy-alert-success.error .wy-alert-title, .rst-content .hint .wy-alert-title, .rst-content .important .wy-alert-title, .rst-content .tip .wy-alert-title, .rst-content .wy-alert-success.warning .wy-alert-title, .rst-content .wy-alert-success.seealso .wy-alert-title, .rst-content .wy-alert-success.admonition-todo .wy-alert-title, .wy-alert.wy-alert-success .rst-content .admonition-title, .rst-content .wy-alert.wy-alert-success .admonition-title, .rst-content .wy-alert-success.note .admonition-title, .rst-content .wy-alert-success.attention .admonition-title, .rst-content .wy-alert-success.caution .admonition-title, .rst-content .wy-alert-success.danger .admonition-title, .rst-content .wy-alert-success.error .admonition-title, .rst-content .hint .admonition-title, .rst-content .important .admonition-title, .rst-content .tip .admonition-title, .rst-content .wy-alert-success.warning .admonition-title, .rst-content .wy-alert-success.seealso .admonition-title, .rst-content .wy-alert-success.admonition-todo .admonition-title { + background: #1abc9c; +} + +.wy-alert.wy-alert-neutral, .rst-content .wy-alert-neutral.note, .rst-content .wy-alert-neutral.attention, .rst-content .wy-alert-neutral.caution, .rst-content .wy-alert-neutral.danger, .rst-content .wy-alert-neutral.error, .rst-content .wy-alert-neutral.hint, .rst-content .wy-alert-neutral.important, .rst-content .wy-alert-neutral.tip, .rst-content .wy-alert-neutral.warning, .rst-content .wy-alert-neutral.seealso, .rst-content .wy-alert-neutral.admonition-todo { + background: #f3f6f6; +} +.wy-alert.wy-alert-neutral .wy-alert-title, .rst-content .wy-alert-neutral.note .wy-alert-title, .rst-content .wy-alert-neutral.attention .wy-alert-title, .rst-content .wy-alert-neutral.caution .wy-alert-title, .rst-content .wy-alert-neutral.danger .wy-alert-title, .rst-content .wy-alert-neutral.error .wy-alert-title, .rst-content .wy-alert-neutral.hint .wy-alert-title, .rst-content .wy-alert-neutral.important .wy-alert-title, .rst-content .wy-alert-neutral.tip .wy-alert-title, .rst-content .wy-alert-neutral.warning .wy-alert-title, .rst-content .wy-alert-neutral.seealso .wy-alert-title, .rst-content .wy-alert-neutral.admonition-todo .wy-alert-title, .wy-alert.wy-alert-neutral .rst-content .admonition-title, .rst-content .wy-alert.wy-alert-neutral .admonition-title, .rst-content .wy-alert-neutral.note .admonition-title, .rst-content .wy-alert-neutral.attention .admonition-title, .rst-content .wy-alert-neutral.caution .admonition-title, .rst-content .wy-alert-neutral.danger .admonition-title, .rst-content .wy-alert-neutral.error .admonition-title, .rst-content .wy-alert-neutral.hint .admonition-title, .rst-content .wy-alert-neutral.important .admonition-title, .rst-content .wy-alert-neutral.tip .admonition-title, .rst-content .wy-alert-neutral.warning .admonition-title, .rst-content .wy-alert-neutral.seealso .admonition-title, .rst-content .wy-alert-neutral.admonition-todo .admonition-title { + color: #404040; + background: #e1e4e5; +} +.wy-alert.wy-alert-neutral a, .rst-content .wy-alert-neutral.note a, .rst-content .wy-alert-neutral.attention a, .rst-content .wy-alert-neutral.caution a, .rst-content .wy-alert-neutral.danger a, .rst-content .wy-alert-neutral.error a, .rst-content .wy-alert-neutral.hint a, .rst-content .wy-alert-neutral.important a, .rst-content .wy-alert-neutral.tip a, .rst-content .wy-alert-neutral.warning a, .rst-content .wy-alert-neutral.seealso a, .rst-content .wy-alert-neutral.admonition-todo a { + color: #2980B9; +} + +.wy-alert p:last-child, .rst-content .note p:last-child, .rst-content .attention p:last-child, .rst-content .caution p:last-child, .rst-content .danger p:last-child, .rst-content .error p:last-child, .rst-content .hint p:last-child, .rst-content .important p:last-child, .rst-content .tip p:last-child, .rst-content .warning p:last-child, .rst-content .seealso p:last-child, .rst-content .admonition-todo p:last-child { + margin-bottom: 0; +} + +.wy-tray-container { + position: fixed; + bottom: 0px; + left: 0; + z-index: 600; +} +.wy-tray-container li { + display: block; + width: 300px; + background: transparent; + color: #fff; + text-align: center; + box-shadow: 0 5px 5px 0 rgba(0, 0, 0, 0.1); + padding: 0 24px; + min-width: 20%; + opacity: 0; + height: 0; + line-height: 56px; + overflow: hidden; + -webkit-transition: all 0.3s ease-in; + -moz-transition: all 0.3s ease-in; + transition: all 0.3s ease-in; +} +.wy-tray-container li.wy-tray-item-success { + background: #27AE60; +} +.wy-tray-container li.wy-tray-item-info { + background: #2980B9; +} +.wy-tray-container li.wy-tray-item-warning { + background: #E67E22; +} +.wy-tray-container li.wy-tray-item-danger { + background: #E74C3C; +} +.wy-tray-container li.on { + opacity: 1; + height: 56px; +} + +@media screen and (max-width: 768px) { + .wy-tray-container { + bottom: auto; + top: 0; + width: 100%; + } + .wy-tray-container li { + width: 100%; + } +} +button { + font-size: 100%; + margin: 0; + vertical-align: baseline; + *vertical-align: middle; + cursor: pointer; + line-height: normal; + -webkit-appearance: button; + *overflow: visible; +} + +button::-moz-focus-inner, input::-moz-focus-inner { + border: 0; + padding: 0; +} + +button[disabled] { + cursor: default; +} + +.btn { + /* Structure */ + display: inline-block; + border-radius: 2px; + line-height: normal; + white-space: nowrap; + text-align: center; + cursor: pointer; + font-size: 100%; + padding: 6px 12px 8px 12px; + color: #fff; + border: 1px solid rgba(0, 0, 0, 0.1); + background-color: #27AE60; + text-decoration: none; + font-weight: normal; + font-family: "Lato", "proxima-nova", "Helvetica Neue", Arial, sans-serif; + box-shadow: 0px 1px 2px -1px rgba(255, 255, 255, 0.5) inset, 0px -2px 0px 0px rgba(0, 0, 0, 0.1) inset; + outline-none: false; + vertical-align: middle; + *display: inline; + zoom: 1; + -webkit-user-drag: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + -webkit-transition: all 0.1s linear; + -moz-transition: all 0.1s linear; + transition: all 0.1s linear; +} + +.btn-hover { + background: #2e8ece; + color: #fff; +} + +.btn:hover { + background: #2cc36b; + color: #fff; +} +.btn:focus { + background: #2cc36b; + outline: 0; +} +.btn:active { + box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.05) inset, 0px 2px 0px 0px rgba(0, 0, 0, 0.1) inset; + padding: 8px 12px 6px 12px; +} +.btn:visited { + color: #fff; +} +.btn:disabled { + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + filter: alpha(opacity=40); + opacity: 0.4; + cursor: not-allowed; + box-shadow: none; +} + +.btn-disabled { + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + filter: alpha(opacity=40); + opacity: 0.4; + cursor: not-allowed; + box-shadow: none; +} +.btn-disabled:hover, .btn-disabled:focus, .btn-disabled:active { + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + filter: alpha(opacity=40); + opacity: 0.4; + cursor: not-allowed; + box-shadow: none; +} + +.btn::-moz-focus-inner { + padding: 0; + border: 0; +} + +.btn-small { + font-size: 80%; +} + +.btn-info { + background-color: #2980B9 !important; +} +.btn-info:hover { + background-color: #2e8ece !important; +} + +.btn-neutral { + background-color: #f3f6f6 !important; + color: #404040 !important; +} +.btn-neutral:hover { + background-color: #e5ebeb !important; + color: #404040; +} +.btn-neutral:visited { + color: #404040 !important; +} + +.btn-success { + background-color: #27AE60 !important; +} +.btn-success:hover { + background-color: #229955 !important; +} + +.btn-danger { + background-color: #E74C3C !important; +} +.btn-danger:hover { + background-color: #ea6153 !important; +} + +.btn-warning { + background-color: #E67E22 !important; +} +.btn-warning:hover { + background-color: #e98b39 !important; +} + +.btn-invert { + background-color: #222; +} +.btn-invert:hover { + background-color: #2f2f2f !important; +} + +.btn-link { + background-color: transparent !important; + color: #2980B9; + box-shadow: none; + border-color: transparent !important; +} +.btn-link:hover { + background-color: transparent !important; + color: #409ad5 !important; + box-shadow: none; +} +.btn-link:active { + background-color: transparent !important; + color: #409ad5 !important; + box-shadow: none; +} +.btn-link:visited { + color: #9B59B6; +} + +.wy-btn-group .btn, .wy-control .btn { + vertical-align: middle; +} + +.wy-btn-group { + margin-bottom: 24px; + *zoom: 1; +} +.wy-btn-group:before, .wy-btn-group:after { + display: table; + content: ""; +} +.wy-btn-group:after { + clear: both; +} + +.wy-dropdown { + position: relative; + display: inline-block; +} + +.wy-dropdown-active .wy-dropdown-menu { + display: block; +} + +.wy-dropdown-menu { + position: absolute; + left: 0; + display: none; + float: left; + top: 100%; + min-width: 100%; + background: #fcfcfc; + z-index: 100; + border: solid 1px #cfd7dd; + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.1); + padding: 12px; +} +.wy-dropdown-menu > dd > a { + display: block; + clear: both; + color: #404040; + white-space: nowrap; + font-size: 90%; + padding: 0 12px; + cursor: pointer; +} +.wy-dropdown-menu > dd > a:hover { + background: #2980B9; + color: #fff; +} +.wy-dropdown-menu > dd.divider { + border-top: solid 1px #cfd7dd; + margin: 6px 0; +} +.wy-dropdown-menu > dd.search { + padding-bottom: 12px; +} +.wy-dropdown-menu > dd.search input[type="search"] { + width: 100%; +} +.wy-dropdown-menu > dd.call-to-action { + background: #e3e3e3; + text-transform: uppercase; + font-weight: 500; + font-size: 80%; +} +.wy-dropdown-menu > dd.call-to-action:hover { + background: #e3e3e3; +} +.wy-dropdown-menu > dd.call-to-action .btn { + color: #fff; +} + +.wy-dropdown.wy-dropdown-up .wy-dropdown-menu { + bottom: 100%; + top: auto; + left: auto; + right: 0; +} + +.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu { + background: #fcfcfc; + margin-top: 2px; +} +.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a { + padding: 6px 12px; +} +.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a:hover { + background: #2980B9; + color: #fff; +} + +.wy-dropdown.wy-dropdown-left .wy-dropdown-menu { + right: 0; + left: auto; + text-align: right; +} + +.wy-dropdown-arrow:before { + content: " "; + border-bottom: 5px solid whitesmoke; + border-left: 5px solid transparent; + border-right: 5px solid transparent; + position: absolute; + display: block; + top: -4px; + left: 50%; + margin-left: -3px; +} +.wy-dropdown-arrow.wy-dropdown-arrow-left:before { + left: 11px; +} + +.wy-form-stacked select { + display: block; +} + +.wy-form-aligned input, .wy-form-aligned textarea, .wy-form-aligned select, .wy-form-aligned .wy-help-inline, .wy-form-aligned label { + display: inline-block; + *display: inline; + *zoom: 1; + vertical-align: middle; +} + +.wy-form-aligned .wy-control-group > label { + display: inline-block; + vertical-align: middle; + width: 10em; + margin: 6px 12px 0 0; + float: left; +} +.wy-form-aligned .wy-control { + float: left; +} +.wy-form-aligned .wy-control label { + display: block; +} +.wy-form-aligned .wy-control select { + margin-top: 6px; +} + +fieldset { + border: 0; + margin: 0; + padding: 0; +} + +legend { + display: block; + width: 100%; + border: 0; + padding: 0; + white-space: normal; + margin-bottom: 24px; + font-size: 150%; + *margin-left: -7px; +} + +label { + display: block; + margin: 0 0 0.3125em 0; + color: #333; + font-size: 90%; +} + +input, select, textarea { + font-size: 100%; + margin: 0; + vertical-align: baseline; + *vertical-align: middle; +} + +.wy-control-group { + margin-bottom: 24px; + *zoom: 1; + max-width: 68em; + margin-left: auto; + margin-right: auto; + *zoom: 1; +} +.wy-control-group:before, .wy-control-group:after { + display: table; + content: ""; +} +.wy-control-group:after { + clear: both; +} +.wy-control-group:before, .wy-control-group:after { + display: table; + content: ""; +} +.wy-control-group:after { + clear: both; +} + +.wy-control-group.wy-control-group-required > label:after { + content: " *"; + color: #E74C3C; +} + +.wy-control-group .wy-form-full, .wy-control-group .wy-form-halves, .wy-control-group .wy-form-thirds { + padding-bottom: 12px; +} +.wy-control-group .wy-form-full select, .wy-control-group .wy-form-halves select, .wy-control-group .wy-form-thirds select { + width: 100%; +} +.wy-control-group .wy-form-full input[type="text"], .wy-control-group .wy-form-full input[type="password"], .wy-control-group .wy-form-full input[type="email"], .wy-control-group .wy-form-full input[type="url"], .wy-control-group .wy-form-full input[type="date"], .wy-control-group .wy-form-full input[type="month"], .wy-control-group .wy-form-full input[type="time"], .wy-control-group .wy-form-full input[type="datetime"], .wy-control-group .wy-form-full input[type="datetime-local"], .wy-control-group .wy-form-full input[type="week"], .wy-control-group .wy-form-full input[type="number"], .wy-control-group .wy-form-full input[type="search"], .wy-control-group .wy-form-full input[type="tel"], .wy-control-group .wy-form-full input[type="color"], .wy-control-group .wy-form-halves input[type="text"], .wy-control-group .wy-form-halves input[type="password"], .wy-control-group .wy-form-halves input[type="email"], .wy-control-group .wy-form-halves input[type="url"], .wy-control-group .wy-form-halves input[type="date"], .wy-control-group .wy-form-halves input[type="month"], .wy-control-group .wy-form-halves input[type="time"], .wy-control-group .wy-form-halves input[type="datetime"], .wy-control-group .wy-form-halves input[type="datetime-local"], .wy-control-group .wy-form-halves input[type="week"], .wy-control-group .wy-form-halves input[type="number"], .wy-control-group .wy-form-halves input[type="search"], .wy-control-group .wy-form-halves input[type="tel"], .wy-control-group .wy-form-halves input[type="color"], .wy-control-group .wy-form-thirds input[type="text"], .wy-control-group .wy-form-thirds input[type="password"], .wy-control-group .wy-form-thirds input[type="email"], .wy-control-group .wy-form-thirds input[type="url"], .wy-control-group .wy-form-thirds input[type="date"], .wy-control-group .wy-form-thirds input[type="month"], .wy-control-group .wy-form-thirds input[type="time"], .wy-control-group .wy-form-thirds input[type="datetime"], .wy-control-group .wy-form-thirds input[type="datetime-local"], .wy-control-group .wy-form-thirds input[type="week"], .wy-control-group .wy-form-thirds input[type="number"], .wy-control-group .wy-form-thirds input[type="search"], .wy-control-group .wy-form-thirds input[type="tel"], .wy-control-group .wy-form-thirds input[type="color"] { + width: 100%; +} + +.wy-control-group .wy-form-full { + float: left; + display: block; + margin-right: 2.35765%; + width: 100%; + margin-right: 0; +} +.wy-control-group .wy-form-full:last-child { + margin-right: 0; +} + +.wy-control-group .wy-form-halves { + float: left; + display: block; + margin-right: 2.35765%; + width: 48.82117%; +} +.wy-control-group .wy-form-halves:last-child { + margin-right: 0; +} +.wy-control-group .wy-form-halves:nth-of-type(2n) { + margin-right: 0; +} +.wy-control-group .wy-form-halves:nth-of-type(2n+1) { + clear: left; +} + +.wy-control-group .wy-form-thirds { + float: left; + display: block; + margin-right: 2.35765%; + width: 31.76157%; +} +.wy-control-group .wy-form-thirds:last-child { + margin-right: 0; +} +.wy-control-group .wy-form-thirds:nth-of-type(3n) { + margin-right: 0; +} +.wy-control-group .wy-form-thirds:nth-of-type(3n+1) { + clear: left; +} + +.wy-control-group.wy-control-group-no-input .wy-control { + margin: 6px 0 0 0; + font-size: 90%; +} + +.wy-control-no-input { + display: inline-block; + margin: 6px 0 0 0; + font-size: 90%; +} + +.wy-control-group.fluid-input input[type="text"], .wy-control-group.fluid-input input[type="password"], .wy-control-group.fluid-input input[type="email"], .wy-control-group.fluid-input input[type="url"], .wy-control-group.fluid-input input[type="date"], .wy-control-group.fluid-input input[type="month"], .wy-control-group.fluid-input input[type="time"], .wy-control-group.fluid-input input[type="datetime"], .wy-control-group.fluid-input input[type="datetime-local"], .wy-control-group.fluid-input input[type="week"], .wy-control-group.fluid-input input[type="number"], .wy-control-group.fluid-input input[type="search"], .wy-control-group.fluid-input input[type="tel"], .wy-control-group.fluid-input input[type="color"] { + width: 100%; +} + +.wy-form-message-inline { + display: inline-block; + padding-left: 0.3em; + color: #666; + vertical-align: middle; + font-size: 90%; +} + +.wy-form-message { + display: block; + color: #999; + font-size: 70%; + margin-top: 0.3125em; + font-style: italic; +} +.wy-form-message p { + font-size: inherit; + font-style: italic; + margin-bottom: 6px; +} +.wy-form-message p:last-child { + margin-bottom: 0; +} + +input { + line-height: normal; +} + +input[type="button"], input[type="reset"], input[type="submit"] { + -webkit-appearance: button; + cursor: pointer; + font-family: "Lato", "proxima-nova", "Helvetica Neue", Arial, sans-serif; + *overflow: visible; +} +input[type="text"], input[type="password"], input[type="email"], input[type="url"], input[type="date"], input[type="month"], input[type="time"], input[type="datetime"], input[type="datetime-local"], input[type="week"], input[type="number"], input[type="search"], input[type="tel"], input[type="color"] { + -webkit-appearance: none; + padding: 6px; + display: inline-block; + border: 1px solid #ccc; + font-size: 80%; + font-family: "Lato", "proxima-nova", "Helvetica Neue", Arial, sans-serif; + box-shadow: inset 0 1px 3px #ddd; + border-radius: 0; + -webkit-transition: border 0.3s linear; + -moz-transition: border 0.3s linear; + transition: border 0.3s linear; +} +input[type="datetime-local"] { + padding: 0.34375em 0.625em; +} +input[disabled] { + cursor: default; +} +input[type="checkbox"], input[type="radio"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + padding: 0; + margin-right: 0.3125em; + *height: 13px; + *width: 13px; +} +input[type="search"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} +input[type="text"]:focus, input[type="password"]:focus, input[type="email"]:focus, input[type="url"]:focus, input[type="date"]:focus, input[type="month"]:focus, input[type="time"]:focus, input[type="datetime"]:focus, input[type="datetime-local"]:focus, input[type="week"]:focus, input[type="number"]:focus, input[type="search"]:focus, input[type="tel"]:focus, input[type="color"]:focus { + outline: 0; + outline: thin dotted \9; + border-color: #333; +} +input.no-focus:focus { + border-color: #ccc !important; +} +input[type="file"]:focus, input[type="radio"]:focus, input[type="checkbox"]:focus { + outline: thin dotted #333; + outline: 1px auto #129FEA; +} +input[type="text"][disabled], input[type="password"][disabled], input[type="email"][disabled], input[type="url"][disabled], input[type="date"][disabled], input[type="month"][disabled], input[type="time"][disabled], input[type="datetime"][disabled], input[type="datetime-local"][disabled], input[type="week"][disabled], input[type="number"][disabled], input[type="search"][disabled], input[type="tel"][disabled], input[type="color"][disabled] { + cursor: not-allowed; + background-color: #fafafa; +} + +input:focus:invalid, textarea:focus:invalid, select:focus:invalid { + color: #E74C3C; + border: 1px solid #E74C3C; +} + +input:focus:invalid:focus, textarea:focus:invalid:focus, select:focus:invalid:focus { + border-color: #E74C3C; +} + +input[type="file"]:focus:invalid:focus, input[type="radio"]:focus:invalid:focus, input[type="checkbox"]:focus:invalid:focus { + outline-color: #E74C3C; +} + +input.wy-input-large { + padding: 12px; + font-size: 100%; +} + +textarea { + overflow: auto; + vertical-align: top; + width: 100%; + font-family: "Lato", "proxima-nova", "Helvetica Neue", Arial, sans-serif; +} + +select, textarea { + padding: 0.5em 0.625em; + display: inline-block; + border: 1px solid #ccc; + font-size: 80%; + box-shadow: inset 0 1px 3px #ddd; + -webkit-transition: border 0.3s linear; + -moz-transition: border 0.3s linear; + transition: border 0.3s linear; +} + +select { + border: 1px solid #ccc; + background-color: #fff; +} +select[multiple] { + height: auto; +} + +select:focus, textarea:focus { + outline: 0; +} + +select[disabled], textarea[disabled], input[readonly], select[readonly], textarea[readonly] { + cursor: not-allowed; + background-color: #fafafa; +} + +input[type="radio"][disabled], input[type="checkbox"][disabled] { + cursor: not-allowed; +} + +.wy-checkbox, .wy-radio { + margin: 6px 0; + color: #404040; + display: block; +} +.wy-checkbox input, .wy-radio input { + vertical-align: baseline; +} + +.wy-form-message-inline { + display: inline-block; + *display: inline; + *zoom: 1; + vertical-align: middle; +} + +.wy-input-prefix, .wy-input-suffix { + white-space: nowrap; + padding: 6px; +} +.wy-input-prefix .wy-input-context, .wy-input-suffix .wy-input-context { + line-height: 27px; + padding: 0 8px; + display: inline-block; + font-size: 80%; + background-color: #f3f6f6; + border: solid 1px #ccc; + color: #999; +} + +.wy-input-suffix .wy-input-context { + border-left: 0; +} + +.wy-input-prefix .wy-input-context { + border-right: 0; +} + +.wy-switch { + position: relative; + display: block; + height: 24px; + margin-top: 12px; + cursor: pointer; +} +.wy-switch:before { + position: absolute; + content: ""; + display: block; + left: 0; + top: 0; + width: 36px; + height: 12px; + border-radius: 4px; + background: #ccc; + -webkit-transition: all 0.2s ease-in-out; + -moz-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; +} +.wy-switch:after { + position: absolute; + content: ""; + display: block; + width: 18px; + height: 18px; + border-radius: 4px; + background: #999; + left: -3px; + top: -3px; + -webkit-transition: all 0.2s ease-in-out; + -moz-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; +} +.wy-switch span { + position: absolute; + left: 48px; + display: block; + font-size: 12px; + color: #ccc; + line-height: 1; +} + +.wy-switch.active:before { + background: #1e8449; +} +.wy-switch.active:after { + left: 24px; + background: #27AE60; +} + +.wy-switch.disabled { + cursor: not-allowed; + opacity: 0.8; +} + +.wy-control-group.wy-control-group-error .wy-form-message, .wy-control-group.wy-control-group-error > label { + color: #E74C3C; +} +.wy-control-group.wy-control-group-error input[type="text"], .wy-control-group.wy-control-group-error input[type="password"], .wy-control-group.wy-control-group-error input[type="email"], .wy-control-group.wy-control-group-error input[type="url"], .wy-control-group.wy-control-group-error input[type="date"], .wy-control-group.wy-control-group-error input[type="month"], .wy-control-group.wy-control-group-error input[type="time"], .wy-control-group.wy-control-group-error input[type="datetime"], .wy-control-group.wy-control-group-error input[type="datetime-local"], .wy-control-group.wy-control-group-error input[type="week"], .wy-control-group.wy-control-group-error input[type="number"], .wy-control-group.wy-control-group-error input[type="search"], .wy-control-group.wy-control-group-error input[type="tel"], .wy-control-group.wy-control-group-error input[type="color"] { + border: solid 1px #E74C3C; +} +.wy-control-group.wy-control-group-error textarea { + border: solid 1px #E74C3C; +} + +.wy-inline-validate { + white-space: nowrap; +} +.wy-inline-validate .wy-input-context { + padding: 0.5em 0.625em; + display: inline-block; + font-size: 80%; +} + +.wy-inline-validate.wy-inline-validate-success .wy-input-context { + color: #27AE60; +} + +.wy-inline-validate.wy-inline-validate-danger .wy-input-context { + color: #E74C3C; +} + +.wy-inline-validate.wy-inline-validate-warning .wy-input-context { + color: #E67E22; +} + +.wy-inline-validate.wy-inline-validate-info .wy-input-context { + color: #2980B9; +} + +.rotate-90 { + -webkit-transform: rotate(90deg); + -moz-transform: rotate(90deg); + -ms-transform: rotate(90deg); + -o-transform: rotate(90deg); + transform: rotate(90deg); +} + +.rotate-180 { + -webkit-transform: rotate(180deg); + -moz-transform: rotate(180deg); + -ms-transform: rotate(180deg); + -o-transform: rotate(180deg); + transform: rotate(180deg); +} + +.rotate-270 { + -webkit-transform: rotate(270deg); + -moz-transform: rotate(270deg); + -ms-transform: rotate(270deg); + -o-transform: rotate(270deg); + transform: rotate(270deg); +} + +.mirror { + -webkit-transform: scaleX(-1); + -moz-transform: scaleX(-1); + -ms-transform: scaleX(-1); + -o-transform: scaleX(-1); + transform: scaleX(-1); +} +.mirror.rotate-90 { + -webkit-transform: scaleX(-1) rotate(90deg); + -moz-transform: scaleX(-1) rotate(90deg); + -ms-transform: scaleX(-1) rotate(90deg); + -o-transform: scaleX(-1) rotate(90deg); + transform: scaleX(-1) rotate(90deg); +} +.mirror.rotate-180 { + -webkit-transform: scaleX(-1) rotate(180deg); + -moz-transform: scaleX(-1) rotate(180deg); + -ms-transform: scaleX(-1) rotate(180deg); + -o-transform: scaleX(-1) rotate(180deg); + transform: scaleX(-1) rotate(180deg); +} +.mirror.rotate-270 { + -webkit-transform: scaleX(-1) rotate(270deg); + -moz-transform: scaleX(-1) rotate(270deg); + -ms-transform: scaleX(-1) rotate(270deg); + -o-transform: scaleX(-1) rotate(270deg); + transform: scaleX(-1) rotate(270deg); +} + +@media only screen and (max-width: 480px) { + .wy-form button[type="submit"] { + margin: 0.7em 0 0; + } + .wy-form input[type="text"], .wy-form input[type="password"], .wy-form input[type="email"], .wy-form input[type="url"], .wy-form input[type="date"], .wy-form input[type="month"], .wy-form input[type="time"], .wy-form input[type="datetime"], .wy-form input[type="datetime-local"], .wy-form input[type="week"], .wy-form input[type="number"], .wy-form input[type="search"], .wy-form input[type="tel"], .wy-form input[type="color"] { + margin-bottom: 0.3em; + display: block; + } + .wy-form label { + margin-bottom: 0.3em; + display: block; + } + + .wy-form input[type="password"], .wy-form input[type="email"], .wy-form input[type="url"], .wy-form input[type="date"], .wy-form input[type="month"], .wy-form input[type="time"], .wy-form input[type="datetime"], .wy-form input[type="datetime-local"], .wy-form input[type="week"], .wy-form input[type="number"], .wy-form input[type="search"], .wy-form input[type="tel"], .wy-form input[type="color"] { + margin-bottom: 0; + } + + .wy-form-aligned .wy-control-group label { + margin-bottom: 0.3em; + text-align: left; + display: block; + width: 100%; + } + .wy-form-aligned .wy-control { + margin: 1.5em 0 0 0; + } + + .wy-form .wy-help-inline, .wy-form-message-inline, .wy-form-message { + display: block; + font-size: 80%; + padding: 6px 0; + } +} +@media screen and (max-width: 768px) { + .tablet-hide { + display: none; + } +} + +@media screen and (max-width: 480px) { + .mobile-hide { + display: none; + } +} + +.float-left { + float: left; +} + +.float-right { + float: right; +} + +.full-width { + width: 100%; +} + +.wy-table, .rst-content table.docutils, .rst-content table.field-list { + border-collapse: collapse; + border-spacing: 0; + empty-cells: show; + margin-bottom: 24px; +} +.wy-table caption, .rst-content table.docutils caption, .rst-content table.field-list caption { + color: #000; + font: italic 85%/1 arial, sans-serif; + padding: 1em 0; + text-align: center; +} +.wy-table td, .rst-content table.docutils td, .rst-content table.field-list td, .wy-table th, .rst-content table.docutils th, .rst-content table.field-list th { + font-size: 90%; + margin: 0; + overflow: visible; + padding: 8px 16px; +} +.wy-table td:first-child, .rst-content table.docutils td:first-child, .rst-content table.field-list td:first-child, .wy-table th:first-child, .rst-content table.docutils th:first-child, .rst-content table.field-list th:first-child { + border-left-width: 0; +} +.wy-table thead, .rst-content table.docutils thead, .rst-content table.field-list thead { + color: #000; + text-align: left; + vertical-align: bottom; + white-space: nowrap; +} +.wy-table thead th, .rst-content table.docutils thead th, .rst-content table.field-list thead th { + font-weight: bold; + border-bottom: solid 2px #e1e4e5; +} +.wy-table td, .rst-content table.docutils td, .rst-content table.field-list td { + background-color: transparent; + vertical-align: middle; +} + +.wy-table td p, .rst-content table.docutils td p, .rst-content table.field-list td p { + line-height: 18px; +} +.wy-table td p:last-child, .rst-content table.docutils td p:last-child, .rst-content table.field-list td p:last-child { + margin-bottom: 0; +} + +.wy-table .wy-table-cell-min, .rst-content table.docutils .wy-table-cell-min, .rst-content table.field-list .wy-table-cell-min { + width: 1%; + padding-right: 0; +} +.wy-table .wy-table-cell-min input[type=checkbox], .rst-content table.docutils .wy-table-cell-min input[type=checkbox], .rst-content table.field-list .wy-table-cell-min input[type=checkbox], .wy-table .wy-table-cell-min input[type=checkbox], .rst-content table.docutils .wy-table-cell-min input[type=checkbox], .rst-content table.field-list .wy-table-cell-min input[type=checkbox] { + margin: 0; +} + +.wy-table-secondary { + color: gray; + font-size: 90%; +} + +.wy-table-tertiary { + color: gray; + font-size: 80%; +} + +.wy-table-odd td, .wy-table-striped tr:nth-child(2n-1) td, .rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td { + background-color: #f3f6f6; +} + +.wy-table-backed { + background-color: #f3f6f6; +} + +/* BORDERED TABLES */ +.wy-table-bordered-all, .rst-content table.docutils { + border: 1px solid #e1e4e5; +} +.wy-table-bordered-all td, .rst-content table.docutils td { + border-bottom: 1px solid #e1e4e5; + border-left: 1px solid #e1e4e5; +} +.wy-table-bordered-all tbody > tr:last-child td, .rst-content table.docutils tbody > tr:last-child td { + border-bottom-width: 0; +} + +.wy-table-bordered { + border: 1px solid #e1e4e5; +} + +.wy-table-bordered-rows td { + border-bottom: 1px solid #e1e4e5; +} +.wy-table-bordered-rows tbody > tr:last-child td { + border-bottom-width: 0; +} + +.wy-table-horizontal tbody > tr:last-child td { + border-bottom-width: 0; +} +.wy-table-horizontal td, .wy-table-horizontal th { + border-width: 0 0 1px 0; + border-bottom: 1px solid #e1e4e5; +} +.wy-table-horizontal tbody > tr:last-child td { + border-bottom-width: 0; +} + +/* RESPONSIVE TABLES */ +.wy-table-responsive { + margin-bottom: 24px; + max-width: 100%; + overflow: auto; +} +.wy-table-responsive table { + margin-bottom: 0 !important; +} +.wy-table-responsive table td, .wy-table-responsive table th { + white-space: nowrap; +} + +a { + color: #2980B9; + text-decoration: none; + cursor: pointer; +} +a:hover { + color: #3091d1; +} +a:visited { + color: #9B59B6; +} + +html { + height: 100%; + overflow-x: hidden; +} + +body { + font-family: "Lato", "proxima-nova", "Helvetica Neue", Arial, sans-serif; + font-weight: normal; + color: #404040; + min-height: 100%; + overflow-x: hidden; + background: #edf0f2; +} + +.wy-text-left { + text-align: left; +} + +.wy-text-center { + text-align: center; +} + +.wy-text-right { + text-align: right; +} + +.wy-text-large { + font-size: 120%; +} + +.wy-text-normal { + font-size: 100%; +} + +.wy-text-small, small { + font-size: 80%; +} + +.wy-text-strike { + text-decoration: line-through; +} + +.wy-text-warning { + color: #E67E22 !important; +} + +a.wy-text-warning:hover { + color: #eb9950 !important; +} + +.wy-text-info { + color: #2980B9 !important; +} + +a.wy-text-info:hover { + color: #409ad5 !important; +} + +.wy-text-success { + color: #27AE60 !important; +} + +a.wy-text-success:hover { + color: #36d278 !important; +} + +.wy-text-danger { + color: #E74C3C !important; +} + +a.wy-text-danger:hover { + color: #ed7669 !important; +} + +.wy-text-neutral { + color: #404040 !important; +} + +a.wy-text-neutral:hover { + color: #595959 !important; +} + +h1, h2, .rst-content .toctree-wrapper p.caption, h3, h4, h5, h6, legend { + margin-top: 0; + font-weight: 700; + font-family: "Roboto Slab", "ff-tisa-web-pro", "Georgia", Arial, sans-serif; +} + +p { + line-height: 24px; + margin: 0; + font-size: 16px; + margin-bottom: 24px; +} + +h1 { + font-size: 175%; +} + +h2, .rst-content .toctree-wrapper p.caption { + font-size: 150%; +} + +h3 { + font-size: 125%; +} + +h4 { + font-size: 115%; +} + +h5 { + font-size: 110%; +} + +h6 { + font-size: 100%; +} + +hr { + display: block; + height: 1px; + border: 0; + border-top: 1px solid #e1e4e5; + margin: 24px 0; + padding: 0; +} + +code, .rst-content tt, .rst-content code { + white-space: nowrap; + max-width: 100%; + background: #fff; + border: solid 1px #e1e4e5; + font-size: 75%; + padding: 0 5px; + font-family: Consolas, "Andale Mono WT", "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace; + color: #E74C3C; + overflow-x: auto; +} +code.code-large, .rst-content tt.code-large { + font-size: 90%; +} + +.wy-plain-list-disc, .rst-content .section ul, .rst-content .toctree-wrapper ul, article ul { + list-style: disc; + line-height: 24px; + margin-bottom: 24px; +} +.wy-plain-list-disc li, .rst-content .section ul li, .rst-content .toctree-wrapper ul li, article ul li { + list-style: disc; + margin-left: 24px; +} +.wy-plain-list-disc li p:last-child, .rst-content .section ul li p:last-child, .rst-content .toctree-wrapper ul li p:last-child, article ul li p:last-child { + margin-bottom: 0; +} +.wy-plain-list-disc li ul, .rst-content .section ul li ul, .rst-content .toctree-wrapper ul li ul, article ul li ul { + margin-bottom: 0; +} +.wy-plain-list-disc li li, .rst-content .section ul li li, .rst-content .toctree-wrapper ul li li, article ul li li { + list-style: circle; +} +.wy-plain-list-disc li li li, .rst-content .section ul li li li, .rst-content .toctree-wrapper ul li li li, article ul li li li { + list-style: square; +} +.wy-plain-list-disc li ol li, .rst-content .section ul li ol li, .rst-content .toctree-wrapper ul li ol li, article ul li ol li { + list-style: decimal; +} + +.wy-plain-list-decimal, .rst-content .section ol, .rst-content ol.arabic, article ol { + list-style: decimal; + line-height: 24px; + margin-bottom: 24px; +} +.wy-plain-list-decimal li, .rst-content .section ol li, .rst-content ol.arabic li, article ol li { + list-style: decimal; + margin-left: 24px; +} +.wy-plain-list-decimal li p:last-child, .rst-content .section ol li p:last-child, .rst-content ol.arabic li p:last-child, article ol li p:last-child { + margin-bottom: 0; +} +.wy-plain-list-decimal li ul, .rst-content .section ol li ul, .rst-content ol.arabic li ul, article ol li ul { + margin-bottom: 0; +} +.wy-plain-list-decimal li ul li, .rst-content .section ol li ul li, .rst-content ol.arabic li ul li, article ol li ul li { + list-style: disc; +} + +.codeblock-example { + border: 1px solid #e1e4e5; + border-bottom: none; + padding: 24px; + padding-top: 48px; + font-weight: 500; + background: #fff; + position: relative; +} +.codeblock-example:after { + content: "Example"; + position: absolute; + top: 0px; + left: 0px; + background: #9B59B6; + color: white; + padding: 6px 12px; +} +.codeblock-example.prettyprint-example-only { + border: 1px solid #e1e4e5; + margin-bottom: 24px; +} + +.codeblock, pre.literal-block, .rst-content .literal-block, .rst-content pre.literal-block, div[class^='highlight'] { + border: 1px solid #e1e4e5; + padding: 0px; + overflow-x: auto; + background: #fff; + margin: 1px 0 24px 0; +} +.codeblock div[class^='highlight'], pre.literal-block div[class^='highlight'], .rst-content .literal-block div[class^='highlight'], div[class^='highlight'] div[class^='highlight'] { + border: none; + background: none; + margin: 0; +} + +div[class^='highlight'] td.code { + width: 100%; +} + +.linenodiv pre { + border-right: solid 1px #e6e9ea; + margin: 0; + padding: 12px 12px; + font-family: Consolas, "Andale Mono WT", "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace; + font-size: 12px; + line-height: 1.5; + color: #d9d9d9; +} + +div[class^='highlight'] pre { + white-space: pre; + margin: 0; + padding: 12px 12px; + font-family: Consolas, "Andale Mono WT", "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace; + font-size: 12px; + line-height: 1.5; + display: block; + overflow: auto; + color: #404040; +} + +@media print { + .codeblock, pre.literal-block, .rst-content .literal-block, .rst-content pre.literal-block, div[class^='highlight'], div[class^='highlight'] pre { + white-space: pre-wrap; + } +} +.hll { + background-color: #ffffcc; + margin: 0 -12px; + padding: 0 12px; + display: block; +} + +.c { + color: #999988; + font-style: italic; +} + +.err { + color: #a61717; + background-color: #e3d2d2; +} + +.k { + font-weight: bold; +} + +.o { + font-weight: bold; +} + +.cm { + color: #999988; + font-style: italic; +} + +.cp { + color: #999999; + font-weight: bold; +} + +.c1 { + color: #999988; + font-style: italic; +} + +.cs { + color: #999999; + font-weight: bold; + font-style: italic; +} + +.gd { + color: #000000; + background-color: #ffdddd; +} + +.gd .x { + color: #000000; + background-color: #ffaaaa; +} + +.ge { + font-style: italic; +} + +.gr { + color: #aa0000; +} + +.gh { + color: #999999; +} + +.gi { + color: #000000; + background-color: #ddffdd; +} + +.gi .x { + color: #000000; + background-color: #aaffaa; +} + +.go { + color: #888888; +} + +.gp { + color: #555555; +} + +.gs { + font-weight: bold; +} + +.gu { + color: #800080; + font-weight: bold; +} + +.gt { + color: #aa0000; +} + +.kc { + font-weight: bold; +} + +.kd { + font-weight: bold; +} + +.kn { + font-weight: bold; +} + +.kp { + font-weight: bold; +} + +.kr { + font-weight: bold; +} + +.kt { + color: #445588; + font-weight: bold; +} + +.m { + color: #009999; +} + +.s { + color: #dd1144; +} + +.n { + color: #333333; +} + +.na { + color: teal; +} + +.nb { + color: #0086b3; +} + +.nc { + color: #445588; + font-weight: bold; +} + +.no { + color: teal; +} + +.ni { + color: purple; +} + +.ne { + color: #990000; + font-weight: bold; +} + +.nf { + color: #990000; + font-weight: bold; +} + +.nn { + color: #555555; +} + +.nt { + color: navy; +} + +.nv { + color: teal; +} + +.ow { + font-weight: bold; +} + +.w { + color: #bbbbbb; +} + +.mf { + color: #009999; +} + +.mh { + color: #009999; +} + +.mi { + color: #009999; +} + +.mo { + color: #009999; +} + +.sb { + color: #dd1144; +} + +.sc { + color: #dd1144; +} + +.sd { + color: #dd1144; +} + +.s2 { + color: #dd1144; +} + +.se { + color: #dd1144; +} + +.sh { + color: #dd1144; +} + +.si { + color: #dd1144; +} + +.sx { + color: #dd1144; +} + +.sr { + color: #009926; +} + +.s1 { + color: #dd1144; +} + +.ss { + color: #990073; +} + +.bp { + color: #999999; +} + +.vc { + color: teal; +} + +.vg { + color: teal; +} + +.vi { + color: teal; +} + +.il { + color: #009999; +} + +.gc { + color: #999; + background-color: #EAF2F5; +} + +.wy-breadcrumbs li { + display: inline-block; +} +.wy-breadcrumbs li.wy-breadcrumbs-aside { + float: right; +} +.wy-breadcrumbs li a { + display: inline-block; + padding: 5px; +} +.wy-breadcrumbs li a:first-child { + padding-left: 0; +} +.wy-breadcrumbs li code, .wy-breadcrumbs li .rst-content tt, .rst-content .wy-breadcrumbs li tt { + padding: 5px; + border: none; + background: none; +} +.wy-breadcrumbs li code.literal, .wy-breadcrumbs li .rst-content tt.literal, .rst-content .wy-breadcrumbs li tt.literal { + color: #404040; +} + +.wy-breadcrumbs-extra { + margin-bottom: 0; + color: #b3b3b3; + font-size: 80%; + display: inline-block; +} + +@media screen and (max-width: 480px) { + .wy-breadcrumbs-extra { + display: none; + } + + .wy-breadcrumbs li.wy-breadcrumbs-aside { + display: none; + } +} +@media print { + .wy-breadcrumbs li.wy-breadcrumbs-aside { + display: none; + } +} +.wy-affix { + position: fixed; + top: 1.618em; +} + +.wy-menu a:hover { + text-decoration: none; +} + +.wy-menu-horiz { + *zoom: 1; +} +.wy-menu-horiz:before, .wy-menu-horiz:after { + display: table; + content: ""; +} +.wy-menu-horiz:after { + clear: both; +} +.wy-menu-horiz ul, .wy-menu-horiz li { + display: inline-block; +} +.wy-menu-horiz li:hover { + background: rgba(255, 255, 255, 0.1); +} +.wy-menu-horiz li.divide-left { + border-left: solid 1px #404040; +} +.wy-menu-horiz li.divide-right { + border-right: solid 1px #404040; +} +.wy-menu-horiz a { + height: 32px; + display: inline-block; + line-height: 32px; + padding: 0 16px; +} + +.wy-menu-vertical { + width: 300px; +} +.wy-menu-vertical header, .wy-menu-vertical p.caption { + height: 32px; + display: inline-block; + line-height: 32px; + padding: 0 1.618em; + margin-bottom: 0; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 80%; + color: #555; + white-space: nowrap; +} +.wy-menu-vertical ul { + margin-bottom: 0; +} +.wy-menu-vertical li.divide-top { + border-top: solid 1px #404040; +} +.wy-menu-vertical li.divide-bottom { + border-bottom: solid 1px #404040; +} +.wy-menu-vertical li.current { + background: #e3e3e3; +} +.wy-menu-vertical li.current a { + color: gray; + border-right: solid 1px #c9c9c9; + padding: 0.4045em 2.427em; +} +.wy-menu-vertical li.current a:hover { + background: #d6d6d6; +} +.wy-menu-vertical li code, .wy-menu-vertical li .rst-content tt, .rst-content .wy-menu-vertical li tt { + border: none; + background: inherit; + color: inherit; + padding-left: 0; + padding-right: 0; +} +.wy-menu-vertical li span.toctree-expand { + display: block; + float: left; + margin-left: -1.2em; + font-size: 0.8em; + line-height: 1.6em; + color: #4d4d4d; +} +.wy-menu-vertical li.on a, .wy-menu-vertical li.current > a { + color: #404040; + padding: 0.4045em 1.618em; + font-weight: bold; + position: relative; + background: #fcfcfc; + border: none; + border-bottom: solid 1px #c9c9c9; + border-top: solid 1px #c9c9c9; + padding-left: 1.618em -4px; +} +.wy-menu-vertical li.on a:hover, .wy-menu-vertical li.current > a:hover { + background: #fcfcfc; +} +.wy-menu-vertical li.on a:hover span.toctree-expand, .wy-menu-vertical li.current > a:hover span.toctree-expand { + color: gray; +} +.wy-menu-vertical li.on a span.toctree-expand, .wy-menu-vertical li.current > a span.toctree-expand { + display: block; + font-size: 0.8em; + line-height: 1.6em; + color: #333333; +} +.wy-menu-vertical li.toctree-l1.current li.toctree-l2 > ul, .wy-menu-vertical li.toctree-l2.current li.toctree-l3 > ul { + display: none; +} +.wy-menu-vertical li.toctree-l1.current li.toctree-l2.current > ul, .wy-menu-vertical li.toctree-l2.current li.toctree-l3.current > ul { + display: block; +} +.wy-menu-vertical li.toctree-l2.current > a { + background: #c9c9c9; + padding: 0.4045em 2.427em; +} +.wy-menu-vertical li.toctree-l2.current li.toctree-l3 > a { + display: block; + background: #c9c9c9; + padding: 0.4045em 4.045em; +} +.wy-menu-vertical li.toctree-l2 a:hover span.toctree-expand { + color: gray; +} +.wy-menu-vertical li.toctree-l2 span.toctree-expand { + color: #a3a3a3; +} +.wy-menu-vertical li.toctree-l3 { + font-size: 0.9em; +} +.wy-menu-vertical li.toctree-l3.current > a { + background: #bdbdbd; + padding: 0.4045em 4.045em; +} +.wy-menu-vertical li.toctree-l3.current li.toctree-l4 > a { + display: block; + background: #bdbdbd; + padding: 0.4045em 5.663em; + border-top: none; + border-bottom: none; +} +.wy-menu-vertical li.toctree-l3 a:hover span.toctree-expand { + color: gray; +} +.wy-menu-vertical li.toctree-l3 span.toctree-expand { + color: #969696; +} +.wy-menu-vertical li.toctree-l4 { + font-size: 0.9em; +} +.wy-menu-vertical li.current ul { + display: block; +} +.wy-menu-vertical li ul { + margin-bottom: 0; + display: none; +} +.wy-menu-vertical .local-toc li ul { + display: block; +} +.wy-menu-vertical li ul li a { + margin-bottom: 0; + color: #b3b3b3; + font-weight: normal; +} +.wy-menu-vertical a { + display: inline-block; + line-height: 18px; + padding: 0.4045em 1.618em; + display: block; + position: relative; + font-size: 90%; + color: #b3b3b3; +} +.wy-menu-vertical a:hover { + background-color: #4e4a4a; + cursor: pointer; +} +.wy-menu-vertical a:hover span.toctree-expand { + color: #b3b3b3; +} +.wy-menu-vertical a:active { + background-color: #2980B9; + cursor: pointer; + color: #fff; +} +.wy-menu-vertical a:active span.toctree-expand { + color: #fff; +} + +.wy-side-nav-search { + display: block; + width: 300px; + padding: 0.809em; + margin-bottom: 0.809em; + z-index: 200; + background-color: #2980B9; + text-align: center; + padding: 0.809em; + display: block; + color: #fcfcfc; + margin-bottom: 0.809em; +} +.wy-side-nav-search input[type=text] { + width: 100%; + border-radius: 50px; + padding: 6px 12px; + border-color: #2472a4; +} +.wy-side-nav-search img { + display: block; + margin: auto auto 0.809em auto; + height: 45px; + width: 45px; + background-color: #2980B9; + padding: 5px; + border-radius: 100%; +} +.wy-side-nav-search > a, .wy-side-nav-search .wy-dropdown > a { + color: #fcfcfc; + font-size: 100%; + font-weight: bold; + display: inline-block; + padding: 4px 6px; + margin-bottom: 0.809em; +} +.wy-side-nav-search > a:hover, .wy-side-nav-search .wy-dropdown > a:hover { + background: rgba(255, 255, 255, 0.1); +} +.wy-side-nav-search > a img.logo, .wy-side-nav-search .wy-dropdown > a img.logo { + display: block; + margin: 0 auto; + height: auto; + width: auto; + border-radius: 0; + max-width: 100%; + background: transparent; +} +.wy-side-nav-search > a.icon img.logo, .wy-side-nav-search .wy-dropdown > a.icon img.logo { + margin-top: 0.85em; +} +.wy-side-nav-search > div.version { + margin-top: -0.4045em; + margin-bottom: 0.809em; + font-weight: normal; + color: rgba(255, 255, 255, 0.3); +} + +.wy-nav .wy-menu-vertical header { + color: #2980B9; +} +.wy-nav .wy-menu-vertical a { + color: #b3b3b3; +} +.wy-nav .wy-menu-vertical a:hover { + background-color: #2980B9; + color: #fff; +} + +[data-menu-wrap] { + -webkit-transition: all 0.2s ease-in; + -moz-transition: all 0.2s ease-in; + transition: all 0.2s ease-in; + position: absolute; + opacity: 1; + width: 100%; + opacity: 0; +} +[data-menu-wrap].move-center { + left: 0; + right: auto; + opacity: 1; +} +[data-menu-wrap].move-left { + right: auto; + left: -100%; + opacity: 0; +} +[data-menu-wrap].move-right { + right: -100%; + left: auto; + opacity: 0; +} + +.wy-body-for-nav { + background: left repeat-y #fcfcfc; + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxOERBMTRGRDBFMUUxMUUzODUwMkJCOThDMEVFNURFMCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxOERBMTRGRTBFMUUxMUUzODUwMkJCOThDMEVFNURFMCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjE4REExNEZCMEUxRTExRTM4NTAyQkI5OEMwRUU1REUwIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjE4REExNEZDMEUxRTExRTM4NTAyQkI5OEMwRUU1REUwIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+EwrlwAAAAA5JREFUeNpiMDU0BAgwAAE2AJgB9BnaAAAAAElFTkSuQmCC); + background-size: 300px 1px; +} + +.wy-grid-for-nav { + position: absolute; + width: 100%; + height: 100%; +} + +.wy-nav-side { + position: fixed; + top: 0; + bottom: 0; + left: 0; + padding-bottom: 2em; + width: 300px; + overflow-x: hidden; + overflow-y: hidden; + min-height: 100%; + background: #343131; + z-index: 200; +} + +.wy-side-scroll { + width: 320px; + position: relative; + overflow-x: hidden; + overflow-y: scroll; + height: 100%; +} + +.wy-nav-top { + display: none; + background: #2980B9; + color: #fff; + padding: 0.4045em 0.809em; + position: relative; + line-height: 50px; + text-align: center; + font-size: 100%; + *zoom: 1; +} +.wy-nav-top:before, .wy-nav-top:after { + display: table; + content: ""; +} +.wy-nav-top:after { + clear: both; +} +.wy-nav-top a { + color: #fff; + font-weight: bold; +} +.wy-nav-top img { + margin-right: 12px; + height: 45px; + width: 45px; + background-color: #2980B9; + padding: 5px; + border-radius: 100%; +} +.wy-nav-top i { + font-size: 30px; + float: left; + cursor: pointer; + padding-top: inherit; +} + +.wy-nav-content-wrap { + margin-left: 300px; + background: #fcfcfc; + min-height: 100%; +} + +.wy-nav-content { + padding: 1.618em 3.236em; + height: 100%; + max-width: 100%; + margin: auto; +} + +.wy-body-mask { + position: fixed; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.2); + display: none; + z-index: 499; +} +.wy-body-mask.on { + display: block; +} + +footer { + color: #999; +} +footer p { + margin-bottom: 12px; +} +footer span.commit code, footer span.commit .rst-content tt, .rst-content footer span.commit tt { + padding: 0px; + font-family: Consolas, "Andale Mono WT", "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace; + font-size: 1em; + background: none; + border: none; + color: #999; +} + +.rst-footer-buttons { + *zoom: 1; +} +.rst-footer-buttons:before, .rst-footer-buttons:after { + display: table; + content: ""; +} +.rst-footer-buttons:after { + clear: both; +} + +.rst-breadcrumbs-buttons { + margin-top: 12px; + *zoom: 1; +} +.rst-breadcrumbs-buttons:before, .rst-breadcrumbs-buttons:after { + display: table; + content: ""; +} +.rst-breadcrumbs-buttons:after { + clear: both; +} + +#search-results .search li { + margin-bottom: 24px; + border-bottom: solid 1px #e1e4e5; + padding-bottom: 24px; +} +#search-results .search li:first-child { + border-top: solid 1px #e1e4e5; + padding-top: 24px; +} +#search-results .search li a { + font-size: 120%; + margin-bottom: 12px; + display: inline-block; +} +#search-results .context { + color: gray; + font-size: 90%; +} + +@media screen and (max-width: 768px) { + .wy-body-for-nav { + background: #fcfcfc; + } + + .wy-nav-top { + display: block; + } + + .wy-nav-side { + left: -300px; + } + .wy-nav-side.shift { + width: 85%; + left: 0; + } + + .wy-side-scroll { + width: auto; + } + + .wy-side-nav-search { + width: auto; + } + + .wy-menu.wy-menu-vertical { + width: auto; + } + + .wy-nav-content-wrap { + margin-left: 0; + } + .wy-nav-content-wrap .wy-nav-content { + padding: 1.618em; + } + .wy-nav-content-wrap.shift { + position: fixed; + min-width: 100%; + left: 85%; + top: 0; + height: 100%; + overflow: hidden; + } +} +@media screen and (min-width: 1400px) { + .wy-nav-content-wrap { + background: rgba(0, 0, 0, 0.05); + } + + .wy-nav-content { + margin: 0; + background: #fcfcfc; + } +} +@media print { + .rst-versions, footer, .wy-nav-side { + display: none; + } + + .wy-nav-content-wrap { + margin-left: 0; + } +} +.rst-versions { + position: fixed; + bottom: 0; + left: 0; + width: 300px; + color: #fcfcfc; + background: #1f1d1d; + border-top: solid 10px #343131; + font-family: "Lato", "proxima-nova", "Helvetica Neue", Arial, sans-serif; + z-index: 400; +} +.rst-versions a { + color: #2980B9; + text-decoration: none; +} +.rst-versions .rst-badge-small { + display: none; +} +.rst-versions .rst-current-version { + padding: 12px; + background-color: #272525; + display: block; + text-align: right; + font-size: 90%; + cursor: pointer; + color: #27AE60; + *zoom: 1; +} +.rst-versions .rst-current-version:before, .rst-versions .rst-current-version:after { + display: table; + content: ""; +} +.rst-versions .rst-current-version:after { + clear: both; +} +.rst-versions .rst-current-version .fa, .rst-versions .rst-current-version .wy-menu-vertical li span.toctree-expand, .wy-menu-vertical li .rst-versions .rst-current-version span.toctree-expand, .rst-versions .rst-current-version .rst-content .admonition-title, .rst-content .rst-versions .rst-current-version .admonition-title, .rst-versions .rst-current-version .rst-content h1 .headerlink, .rst-content h1 .rst-versions .rst-current-version .headerlink, .rst-versions .rst-current-version .rst-content h2 .headerlink, .rst-content h2 .rst-versions .rst-current-version .headerlink, .rst-versions .rst-current-version .rst-content h3 .headerlink, .rst-content h3 .rst-versions .rst-current-version .headerlink, .rst-versions .rst-current-version .rst-content h4 .headerlink, .rst-content h4 .rst-versions .rst-current-version .headerlink, .rst-versions .rst-current-version .rst-content h5 .headerlink, .rst-content h5 .rst-versions .rst-current-version .headerlink, .rst-versions .rst-current-version .rst-content h6 .headerlink, .rst-content h6 .rst-versions .rst-current-version .headerlink, .rst-versions .rst-current-version .rst-content dl dt .headerlink, .rst-content dl dt .rst-versions .rst-current-version .headerlink, .rst-versions .rst-current-version .rst-content p.caption .headerlink, .rst-content p.caption .rst-versions .rst-current-version .headerlink, .rst-versions .rst-current-version .rst-content tt.download span:first-child, .rst-content tt.download .rst-versions .rst-current-version span:first-child, .rst-versions .rst-current-version .rst-content code.download span:first-child, .rst-content code.download .rst-versions .rst-current-version span:first-child, .rst-versions .rst-current-version .icon { + color: #fcfcfc; +} +.rst-versions .rst-current-version .fa-book, .rst-versions .rst-current-version .icon-book { + float: left; +} +.rst-versions .rst-current-version .icon-book { + float: left; +} +.rst-versions .rst-current-version.rst-out-of-date { + background-color: #E74C3C; + color: #fff; +} +.rst-versions .rst-current-version.rst-active-old-version { + background-color: #F1C40F; + color: #000; +} +.rst-versions.shift-up .rst-other-versions { + display: block; +} +.rst-versions .rst-other-versions { + font-size: 90%; + padding: 12px; + color: gray; + display: none; +} +.rst-versions .rst-other-versions hr { + display: block; + height: 1px; + border: 0; + margin: 20px 0; + padding: 0; + border-top: solid 1px #413d3d; +} +.rst-versions .rst-other-versions dd { + display: inline-block; + margin: 0; +} +.rst-versions .rst-other-versions dd a { + display: inline-block; + padding: 6px; + color: #fcfcfc; +} +.rst-versions.rst-badge { + width: auto; + bottom: 20px; + right: 20px; + left: auto; + border: none; + max-width: 300px; +} +.rst-versions.rst-badge .icon-book { + float: none; +} +.rst-versions.rst-badge .fa-book, .rst-versions.rst-badge .icon-book { + float: none; +} +.rst-versions.rst-badge.shift-up .rst-current-version { + text-align: right; +} +.rst-versions.rst-badge.shift-up .rst-current-version .fa-book, .rst-versions.rst-badge.shift-up .rst-current-version .icon-book { + float: left; +} +.rst-versions.rst-badge.shift-up .rst-current-version .icon-book { + float: left; +} +.rst-versions.rst-badge .rst-current-version { + width: auto; + height: 30px; + line-height: 30px; + padding: 0 6px; + display: block; + text-align: center; +} + +@media screen and (max-width: 768px) { + .rst-versions { + width: 85%; + display: none; + } + .rst-versions.shift { + display: block; + } +} +.rst-content img { + max-width: 100%; + height: auto !important; +} +.rst-content .highlight > pre, .rst-content .linenodiv > pre { + line-height: normal; +} +.rst-content div.figure { + margin-bottom: 24px; +} +.rst-content div.figure p.caption { + font-style: italic; +} +.rst-content div.figure.align-center { + text-align: center; +} +.rst-content .section > img, .rst-content .section > a > img { + margin-bottom: 24px; +} +.rst-content blockquote { + margin-left: 24px; + line-height: 24px; + margin-bottom: 24px; +} +.rst-content .note .last, .rst-content .attention .last, .rst-content .caution .last, .rst-content .danger .last, .rst-content .error .last, .rst-content .hint .last, .rst-content .important .last, .rst-content .tip .last, .rst-content .warning .last, .rst-content .seealso .last, .rst-content .admonition-todo .last { + margin-bottom: 0; +} +.rst-content .admonition-title:before { + margin-right: 4px; +} +.rst-content .admonition table { + border-color: rgba(0, 0, 0, 0.1); +} +.rst-content .admonition table td, .rst-content .admonition table th { + background: transparent !important; + border-color: rgba(0, 0, 0, 0.1) !important; +} +.rst-content .section ol.loweralpha, .rst-content .section ol.loweralpha li { + list-style: lower-alpha; +} +.rst-content .section ol.upperalpha, .rst-content .section ol.upperalpha li { + list-style: upper-alpha; +} +.rst-content .section ol p, .rst-content .section ul p { + margin-bottom: 12px; +} +.rst-content .line-block { + margin-left: 24px; +} +.rst-content .topic-title { + font-weight: bold; + margin-bottom: 12px; +} +.rst-content .toc-backref { + color: #404040; +} +.rst-content .align-right { + float: right; + margin: 0px 0px 24px 24px; +} +.rst-content .align-left { + float: left; + margin: 0px 24px 24px 0px; +} +.rst-content .align-center { + margin: auto; + display: block; +} +.rst-content h1 .headerlink, .rst-content h2 .headerlink, .rst-content .toctree-wrapper p.caption .headerlink, .rst-content h3 .headerlink, .rst-content h4 .headerlink, .rst-content h5 .headerlink, .rst-content h6 .headerlink, .rst-content dl dt .headerlink, .rst-content p.caption .headerlink { + display: none; + visibility: hidden; + font-size: 14px; +} +.rst-content h1 .headerlink:after, .rst-content h2 .headerlink:after, .rst-content .toctree-wrapper p.caption .headerlink:after, .rst-content h3 .headerlink:after, .rst-content h4 .headerlink:after, .rst-content h5 .headerlink:after, .rst-content h6 .headerlink:after, .rst-content dl dt .headerlink:after, .rst-content p.caption .headerlink:after { + visibility: visible; + content: ""; + font-family: FontAwesome; + display: inline-block; +} +.rst-content h1:hover .headerlink, .rst-content h2:hover .headerlink, .rst-content .toctree-wrapper p.caption:hover .headerlink, .rst-content h3:hover .headerlink, .rst-content h4:hover .headerlink, .rst-content h5:hover .headerlink, .rst-content h6:hover .headerlink, .rst-content dl dt:hover .headerlink, .rst-content p.caption:hover .headerlink { + display: inline-block; +} +.rst-content .sidebar { + float: right; + width: 40%; + display: block; + margin: 0 0 24px 24px; + padding: 24px; + background: #f3f6f6; + border: solid 1px #e1e4e5; +} +.rst-content .sidebar p, .rst-content .sidebar ul, .rst-content .sidebar dl { + font-size: 90%; +} +.rst-content .sidebar .last { + margin-bottom: 0; +} +.rst-content .sidebar .sidebar-title { + display: block; + font-family: "Roboto Slab", "ff-tisa-web-pro", "Georgia", Arial, sans-serif; + font-weight: bold; + background: #e1e4e5; + padding: 6px 12px; + margin: -24px; + margin-bottom: 24px; + font-size: 100%; +} +.rst-content .highlighted { + background: #F1C40F; + display: inline-block; + font-weight: bold; + padding: 0 6px; +} +.rst-content .footnote-reference, .rst-content .citation-reference { + vertical-align: super; + font-size: 90%; +} +.rst-content table.docutils.citation, .rst-content table.docutils.footnote { + background: none; + border: none; + color: #999; +} +.rst-content table.docutils.citation td, .rst-content table.docutils.citation tr, .rst-content table.docutils.footnote td, .rst-content table.docutils.footnote tr { + border: none; + background-color: transparent !important; + white-space: normal; +} +.rst-content table.docutils.citation td.label, .rst-content table.docutils.footnote td.label { + padding-left: 0; + padding-right: 0; + vertical-align: top; +} +.rst-content table.docutils.citation tt, .rst-content table.docutils.citation code, .rst-content table.docutils.footnote tt, .rst-content table.docutils.footnote code { + color: #555; +} +.rst-content table.field-list { + border: none; +} +.rst-content table.field-list td { + border: none; + padding-top: 5px; +} +.rst-content table.field-list td > strong { + display: inline-block; + margin-top: 3px; +} +.rst-content table.field-list .field-name { + padding-right: 10px; + text-align: left; + white-space: nowrap; +} +.rst-content table.field-list .field-body { + text-align: left; + padding-left: 0; +} +.rst-content tt, .rst-content tt, .rst-content code { + color: #000; + padding: 2px 5px; +} +.rst-content tt big, .rst-content tt em, .rst-content tt big, .rst-content code big, .rst-content tt em, .rst-content code em { + font-size: 100% !important; + line-height: normal; +} +.rst-content tt.literal, .rst-content tt.literal, .rst-content code.literal { + color: #E74C3C; +} +.rst-content tt.xref, a .rst-content tt, .rst-content tt.xref, .rst-content code.xref, a .rst-content tt, a .rst-content code { + font-weight: bold; + color: #404040; +} +.rst-content a tt, .rst-content a tt, .rst-content a code { + color: #2980B9; +} +.rst-content dl { + margin-bottom: 24px; +} +.rst-content dl dt { + font-weight: bold; +} +.rst-content dl p, .rst-content dl table, .rst-content dl ul, .rst-content dl ol { + margin-bottom: 12px !important; +} +.rst-content dl dd { + margin: 0 0 12px 24px; +} +.rst-content dl:not(.docutils) { + margin-bottom: 24px; +} +.rst-content dl:not(.docutils) dt { + display: table; + margin: 6px 0; + font-size: 90%; + line-height: normal; + background: #e7f2fa; + color: #2980B9; + border-top: solid 3px #6ab0de; + padding: 6px; + position: relative; +} +.rst-content dl:not(.docutils) dt:before { + color: #6ab0de; +} +.rst-content dl:not(.docutils) dt .headerlink { + color: #404040; + font-size: 100% !important; +} +.rst-content dl:not(.docutils) dl dt { + margin-bottom: 6px; + border: none; + border-left: solid 3px #cccccc; + background: #f0f0f0; + color: #555; +} +.rst-content dl:not(.docutils) dl dt .headerlink { + color: #404040; + font-size: 100% !important; +} +.rst-content dl:not(.docutils) dt:first-child { + margin-top: 0; +} +.rst-content dl:not(.docutils) tt, .rst-content dl:not(.docutils) tt, .rst-content dl:not(.docutils) code { + font-weight: bold; +} +.rst-content dl:not(.docutils) tt.descname, .rst-content dl:not(.docutils) tt.descclassname, .rst-content dl:not(.docutils) tt.descname, .rst-content dl:not(.docutils) code.descname, .rst-content dl:not(.docutils) tt.descclassname, .rst-content dl:not(.docutils) code.descclassname { + background-color: transparent; + border: none; + padding: 0; + font-size: 100% !important; +} +.rst-content dl:not(.docutils) tt.descname, .rst-content dl:not(.docutils) tt.descname, .rst-content dl:not(.docutils) code.descname { + font-weight: bold; +} +.rst-content dl:not(.docutils) .optional { + display: inline-block; + padding: 0 4px; + color: #000; + font-weight: bold; +} +.rst-content dl:not(.docutils) .property { + display: inline-block; + padding-right: 8px; +} +.rst-content .viewcode-link, .rst-content .viewcode-back { + display: inline-block; + color: #27AE60; + font-size: 80%; + padding-left: 24px; +} +.rst-content .viewcode-back { + display: block; + float: right; +} +.rst-content p.rubric { + margin-bottom: 12px; + font-weight: bold; +} +.rst-content tt.download, .rst-content code.download { + background: inherit; + padding: inherit; + font-weight: normal; + font-family: inherit; + font-size: inherit; + color: inherit; + border: inherit; + white-space: inherit; +} +.rst-content tt.download span:first-child, .rst-content code.download span:first-child { + -webkit-font-smoothing: subpixel-antialiased; +} +.rst-content tt.download span:first-child:before, .rst-content code.download span:first-child:before { + margin-right: 4px; +} +.rst-content .guilabel { + border: 1px solid #7fbbe3; + background: #e7f2fa; + font-size: 80%; + font-weight: 700; + border-radius: 4px; + padding: 2.4px 6px; + margin: auto 2px; +} +.rst-content .versionmodified { + font-style: italic; +} + +@media screen and (max-width: 480px) { + .rst-content .sidebar { + width: 100%; + } +} +span[id*='MathJax-Span'] { + color: #404040; +} + +.math { + text-align: center; +} + +@font-face { + font-family: "Inconsolata"; + font-style: normal; + font-weight: 400; + src: local("Inconsolata"), local("Inconsolata-Regular"), url(../fonts/Inconsolata-Regular.ttf) format("truetype"); +} +@font-face { + font-family: "Inconsolata"; + font-style: normal; + font-weight: 700; + src: local("Inconsolata Bold"), local("Inconsolata-Bold"), url(../fonts/Inconsolata-Bold.ttf) format("truetype"); +} +@font-face { + font-family: "Lato"; + font-style: normal; + font-weight: 400; + src: local("Lato Regular"), local("Lato-Regular"), url(../fonts/Lato-Regular.ttf) format("truetype"); +} +@font-face { + font-family: "Lato"; + font-style: normal; + font-weight: 700; + src: local("Lato Bold"), local("Lato-Bold"), url(../fonts/Lato-Bold.ttf) format("truetype"); +} +@font-face { + font-family: "Roboto Slab"; + font-style: normal; + font-weight: 400; + src: local("Roboto Slab Regular"), local("RobotoSlab-Regular"), url(../fonts/RobotoSlab-Regular.ttf) format("truetype"); +} +@font-face { + font-family: "Roboto Slab"; + font-style: normal; + font-weight: 700; + src: local("Roboto Slab Bold"), local("RobotoSlab-Bold"), url(../fonts/RobotoSlab-Bold.ttf) format("truetype"); +} + +/*# sourceMappingURL=theme.css.map */ diff --git a/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/static/css/theme.css.map b/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/static/css/theme.css.map new file mode 100644 index 0000000..9953343 --- /dev/null +++ b/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/static/css/theme.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": ";AACE,CAAE;ECQI,kBAAoB,EDPJ,UAAU;ECY1B,eAAiB,EDZD,UAAU;EC2B1B,UAAY,ED3BI,UAAU;;;AEFlC,iFAAiF;EAC/E,OAAO,EAAE,KAAK;;;AAEhB,oBAAoB;EAClB,OAAO,EAAE,YAAY;EACrB,QAAQ,EAAE,MAAM;EAChB,KAAK,EAAE,CAAC;;;AAEV,qBAAqB;EACnB,OAAO,EAAE,IAAI;;;AAEf,QAAQ;EACN,OAAO,EAAE,IAAI;;;AAEf,CAAC;EDLO,kBAAoB,ECMd,UAAU;EDDhB,eAAiB,ECCX,UAAU;EDchB,UAAY,ECdN,UAAU;;;AAExB,IAAI;EACF,SAAS,EAAE,IAAI;EACf,wBAAwB,EAAE,IAAI;EAC9B,oBAAoB,EAAE,IAAI;;;AAE5B,IAAI;EACF,MAAM,EAAE,CAAC;;;AAEX,iBAAiB;EACf,OAAO,EAAE,CAAC;;;AAEZ,WAAW;EACT,aAAa,EAAE,UAAU;;;AAE3B,SAAS;EACP,WAAW,EAAE,IAAI;;;AAEnB,UAAU;EACR,MAAM,EAAE,CAAC;;;AAEX,GAAG;EACD,UAAU,EAAE,MAAM;;;AAGpB,GAAG;EACD,UAAU,EAAE,IAAI;EAChB,KAAK,EAAE,IAAI;EACX,eAAe,EAAE,IAAI;;;AAEvB,IAAI;EACF,UAAU,EAAE,IAAI;EAChB,KAAK,EAAE,IAAI;EACX,UAAU,EAAE,MAAM;EAClB,WAAW,EAAE,IAAI;;;AAEnB,wDAAoB;EAClB,WAAW,EAAE,gBAAgB;EAC7B,YAAY,EAAE,wBAAwB;EACtC,SAAS,EAAE,GAAG;;;AAEhB,GAAG;EACD,WAAW,EAAE,GAAG;;;AAElB,CAAC;EACC,MAAM,EAAE,IAAI;;;AAEd,iBAAiB;EACf,OAAO,EAAE,EAAE;EACX,OAAO,EAAE,IAAI;;;AAEf,KAAK;EACH,SAAS,EAAE,GAAG;;;AAEhB,QAAQ;EACN,SAAS,EAAE,GAAG;EACd,WAAW,EAAE,CAAC;EACd,QAAQ,EAAE,QAAQ;EAClB,cAAc,EAAE,QAAQ;;;AAE1B,GAAG;EACD,GAAG,EAAE,MAAM;;;AAEb,GAAG;EACD,MAAM,EAAE,OAAO;;;AAEjB,UAAU;EACR,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,CAAC;EACV,UAAU,EAAE,IAAI;EAChB,gBAAgB,EAAE,IAAI;;;AAExB,EAAE;EACA,UAAU,EAAE,IAAI;;;AAElB,EAAE;EACA,MAAM,EAAE,CAAC;;;AAEX,GAAG;EACD,MAAM,EAAE,CAAC;EACT,sBAAsB,EAAE,OAAO;EAC/B,cAAc,EAAE,MAAM;EACtB,SAAS,EAAE,IAAI;;;AAEjB,cAAc;EACZ,QAAQ,EAAE,MAAM;;;AAElB,MAAM;EACJ,MAAM,EAAE,CAAC;;;AAEX,IAAI;EACF,MAAM,EAAE,CAAC;;;AAEX,QAAQ;EACN,MAAM,EAAE,CAAC;EACT,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,CAAC;;;AAEZ,KAAK;EACH,MAAM,EAAE,OAAO;;;AAEjB,MAAM;EACJ,MAAM,EAAE,CAAC;EACT,YAAY,EAAE,IAAI;EAClB,OAAO,EAAE,CAAC;EACV,WAAW,EAAE,MAAM;;;AAErB,+BAA+B;EAC7B,SAAS,EAAE,IAAI;EACf,MAAM,EAAE,CAAC;EACT,cAAc,EAAE,QAAQ;EACxB,eAAe,EAAE,MAAM;;;AAEzB,aAAa;EACX,WAAW,EAAE,MAAM;;;AAErB,uEAAuE;EACrE,MAAM,EAAE,OAAO;EACf,kBAAkB,EAAE,MAAM;EAC1B,SAAS,EAAE,OAAO;;;AAEpB,iCAAiC;EAC/B,MAAM,EAAE,OAAO;;;AAEjB,2CAA2C;EACzC,UAAU,EAAE,UAAU;EACtB,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,IAAI;EACZ,OAAO,EAAE,IAAI;;;AAEf,oBAAoB;EAClB,kBAAkB,EAAE,SAAS;EAC7B,eAAe,EAAE,WAAW;EAC5B,kBAAkB,EAAE,WAAW;EAC/B,UAAU,EAAE,WAAW;;;AAEzB,mGAAmG;EACjG,kBAAkB,EAAE,IAAI;;;AAE1B,iDAAiD;EAC/C,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,CAAC;;;AAEZ,QAAQ;EACN,QAAQ,EAAE,IAAI;EACd,cAAc,EAAE,GAAG;EACnB,MAAM,EAAE,QAAQ;;;AAElB,KAAK;EACH,eAAe,EAAE,QAAQ;EACzB,cAAc,EAAE,CAAC;;;AAEnB,EAAE;EACA,cAAc,EAAE,GAAG;;;AAErB,YAAY;EACV,MAAM,EAAE,OAAO;EACf,UAAU,EAAE,IAAI;EAChB,KAAK,EAAE,KAAK;EACZ,OAAO,EAAE,OAAO;;;AAElB,GAAG;EACD,OAAO,EAAE,KAAK;EACd,MAAM,EAAE,CAAC;EACT,WAAW,EAAE,MAAM;EACnB,QAAQ,EAAE,MAAM;EAChB,gBAAgB,EAAE,WAAW;EAC7B,iBAAiB,EAAE,SAAS;EAC5B,UAAU,EAAE,IAAI;EAChB,SAAS,EAAE,GAAG;EACd,YAAY,EAAE,CAAC;;;AAEjB,MAAM;EACJ,OAAO,EAAE,IAAI;;;AAEf,OAAO;EACL,OAAO,EAAE,eAAe;EACxB,UAAU,EAAE,MAAM;;;AAEpB,eAAe;EACb,MAAM,EAAE,CAAC;EACT,IAAI,EAAE,aAAa;EACnB,MAAM,EAAE,GAAG;EACX,MAAM,EAAE,IAAI;EACZ,QAAQ,EAAE,MAAM;EAChB,OAAO,EAAE,CAAC;EACV,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,GAAG;;;AAEZ,iEAAiE;EAC/D,IAAI,EAAE,IAAI;EACV,MAAM,EAAE,IAAI;EACZ,MAAM,EAAE,CAAC;EACT,QAAQ,EAAE,OAAO;EACjB,QAAQ,EAAE,MAAM;EAChB,KAAK,EAAE,IAAI;;;AAEb,UAAU;EACR,UAAU,EAAE,MAAM;;;AAEpB,SAAS;EACP,QAAQ,EAAE,QAAQ;;;AAEpB,UAAU;EACR,SAAS,EAAE,IAAI;;;AAEjB,YAAY;EACV,mBAAmB;IACjB,UAAU,EAAE,eAAe;;;EAC7B,CAAC;IACC,UAAU,EAAE,eAAe;IAC3B,WAAW,EAAE,eAAe;IAC5B,MAAM,EAAE,eAAe;IACvB,UAAU,EAAE,eAAe;;;EAC7B,YAAY;IACV,eAAe,EAAE,SAAS;;;EAC5B,6DAA6D;IAC3D,OAAO,EAAE,EAAE;;;EACb,eAAe;IACb,iBAAiB,EAAE,KAAK;;;EAC1B,KAAK;IACH,OAAO,EAAE,kBAAkB;;;EAC7B,OAAO;IACL,iBAAiB,EAAE,KAAK;;;EAC1B,GAAG;IACD,SAAS,EAAE,eAAe;;;;IAE1B,MAAM,EAAE,KAAK;;EAEf,kDAAS;IACP,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,CAAC;;;EACX,+CAAM;IACJ,gBAAgB,EAAE,KAAK;;;AChM3B,woDAAY;EACV,sBAAsB,EAAE,WAAW;;;AAqDrC,SAAS;EARP,KAAK,EAAE,CAAC;;AACR,iCAAS;EAEP,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,EAAE;;AACb,eAAO;EACL,KAAK,EAAE,IAAI;;;AC7Gf;;;GAGG;ACHH;gCACgC;AAEhC,UAWC;EAVC,WAAW,EAAE,aAAa;EAC1B,GAAG,EAAE,+CAAgE;EACrE,GAAG,EAAE,4WAI8F;EAEnG,WAAW,EAAE,MAAM;EACnB,UAAU,EAAE,MAAM;;ACVpB,mgBAAmB;EACjB,OAAO,EAAE,YAAY;EACrB,IAAI,EAAE,uCAA8E;EACpF,SAAS,EAAE,OAAO;EAClB,cAAc,EAAE,IAAI;EACpB,sBAAsB,EAAE,WAAW;EACnC,uBAAuB,EAAE,SAAS;;;ACNpC,8DAA8D;AAC9D,MAAsB;EACpB,SAAS,EAAE,SAAS;EACpB,WAAW,EAAE,MAAS;EACtB,cAAc,EAAE,IAAI;;;AAEtB,MAAsB;EAAE,SAAS,EAAE,GAAG;;;AACtC,MAAsB;EAAE,SAAS,EAAE,GAAG;;;AACtC,MAAsB;EAAE,SAAS,EAAE,GAAG;;;AACtC,MAAsB;EAAE,SAAS,EAAE,GAAG;;;ACVtC,MAAsB;EACpB,KAAK,EAAE,SAAW;EAClB,UAAU,EAAE,MAAM;;;ACDpB,MAAsB;EACpB,YAAY,EAAE,CAAC;EACf,WAAW,ECMU,SAAS;EDL9B,eAAe,EAAE,IAAI;;AACrB,WAAK;EAAE,QAAQ,EAAE,QAAQ;;;AAE3B,MAAsB;EACpB,QAAQ,EAAE,QAAQ;EAClB,IAAI,EAAE,UAAa;EACnB,KAAK,ECDgB,SAAS;EDE9B,GAAG,EAAE,SAAU;EACf,UAAU,EAAE,MAAM;;AAClB,YAAuB;EACrB,IAAI,EAAE,UAA0B;;;AEbpC,UAA0B;EACxB,OAAO,EAAE,gBAAgB;EACzB,MAAM,EAAE,iBAA4B;EACpC,aAAa,EAAE,IAAI;;;AAGrB,aAA6B;EAAE,KAAK,EAAE,IAAI;;;AAC1C,cAA8B;EAAE,KAAK,EAAE,KAAK;;;AAG1C,mtBAA8B;EAAE,YAAY,EAAE,IAAI;;AAClD,muBAA+B;EAAE,WAAW,EAAE,IAAI;;;AAGpD,4BAA4B;AAC5B,WAAY;EAAE,KAAK,EAAE,KAAK;;;AAC1B,UAAW;EAAE,KAAK,EAAE,IAAI;;;AAGtB,mqBAAY;EAAE,YAAY,EAAE,IAAI;;AAChC,mrBAAa;EAAE,WAAW,EAAE,IAAI;;;ACpBlC,QAAwB;EACtB,iBAAiB,EAAE,0BAA0B;EACrC,SAAS,EAAE,0BAA0B;;;AAG/C,SAAyB;EACvB,iBAAiB,EAAE,4BAA4B;EACvC,SAAS,EAAE,4BAA4B;;;AAGjD,0BASC;EARC,EAAG;IACD,iBAAiB,EAAE,YAAY;IACvB,SAAS,EAAE,YAAY;;EAEjC,IAAK;IACH,iBAAiB,EAAE,cAAc;IACzB,SAAS,EAAE,cAAc;;;AAIrC,kBASC;EARC,EAAG;IACD,iBAAiB,EAAE,YAAY;IACvB,SAAS,EAAE,YAAY;;EAEjC,IAAK;IACH,iBAAiB,EAAE,cAAc;IACzB,SAAS,EAAE,cAAc;;;AC5BrC,aAA8B;ECW5B,UAAU,EAAE,0DAAqE;EACjF,iBAAiB,EAAE,aAAgB;EAC/B,aAAa,EAAE,aAAgB;EAC3B,SAAS,EAAE,aAAgB;;;ADbrC,cAA8B;ECU5B,UAAU,EAAE,0DAAqE;EACjF,iBAAiB,EAAE,cAAgB;EAC/B,aAAa,EAAE,cAAgB;EAC3B,SAAS,EAAE,cAAgB;;;ADZrC,cAA8B;ECS5B,UAAU,EAAE,0DAAqE;EACjF,iBAAiB,EAAE,cAAgB;EAC/B,aAAa,EAAE,cAAgB;EAC3B,SAAS,EAAE,cAAgB;;;ADVrC,mBAAmC;ECcjC,UAAU,EAAE,oEAA+E;EAC3F,iBAAiB,EAAE,YAAoB;EACnC,aAAa,EAAE,YAAoB;EAC/B,SAAS,EAAE,YAAoB;;;ADhBzC,iBAAmC;ECajC,UAAU,EAAE,oEAA+E;EAC3F,iBAAiB,EAAE,YAAoB;EACnC,aAAa,EAAE,YAAoB;EAC/B,SAAS,EAAE,YAAoB;;;ADXzC;;;;uBAIuC;EACrC,MAAM,EAAE,IAAI;;;AEfd,SAAyB;EACvB,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,YAAY;EACrB,KAAK,EAAE,GAAG;EACV,MAAM,EAAE,GAAG;EACX,WAAW,EAAE,GAAG;EAChB,cAAc,EAAE,MAAM;;;AAExB,0BAAyD;EACvD,QAAQ,EAAE,QAAQ;EAClB,IAAI,EAAE,CAAC;EACP,KAAK,EAAE,IAAI;EACX,UAAU,EAAE,MAAM;;;AAEpB,YAA4B;EAAE,WAAW,EAAE,OAAO;;;AAClD,YAA4B;EAAE,SAAS,EAAE,GAAG;;;AAC5C,WAA2B;EAAE,KAAK,ELTZ,IAAI;;;AMV1B;oEACoE;AAEpE,gBAAgC;EAAE,OAAO,ENwU1B,GAAO;;;AMvUtB,gBAAgC;EAAE,OAAO,EN2d1B,GAAO;;;AM1dtB,sCAAiC;EAAE,OAAO,EN0jB1B,GAAO;;;AMzjBvB,qBAAqC;EAAE,OAAO,ENsO1B,GAAO;;;AMrO3B,gBAAgC;EAAE,OAAO,ENuW1B,GAAO;;;AMtWtB,eAA+B;EAAE,OAAO,ENknB1B,GAAO;;;AMjnBrB,iBAAiC;EAAE,OAAO,ENsnB1B,GAAO;;;AMrnBvB,eAA+B;EAAE,OAAO,ENytB1B,GAAO;;;AMxtBrB,eAA+B;EAAE,OAAO,ENmR1B,GAAO;;;AMlRrB,mBAAmC;EAAE,OAAO,ENupB1B,GAAO;;;AMtpBzB,aAA6B;EAAE,OAAO,ENqpB1B,GAAO;;;AMppBnB,kBAAkC;EAAE,OAAO,ENspB1B,GAAO;;;AMrpBxB,gBAAgC;EAAE,OAAO,ENyI1B,GAAO;;;AMxItB;;gBAEgC;EAAE,OAAO,ENqqB1B,GAAO;;;AMpqBtB,sBAAsC;EAAE,OAAO,EN8iB1B,GAAO;;;AM7iB5B,uBAAuC;EAAE,OAAO,EN4iB1B,GAAO;;;AM3iB7B,oBAAoC;EAAE,OAAO,EN4f1B,GAAO;;;AM3f1B,iBAAiC;EAAE,OAAO,ENikB1B,GAAO;;;AMhkBvB;cAC8B;EAAE,OAAO,ENgK1B,GAAO;;;AM/JpB,kBAAkC;EAAE,OAAO,EN+qB1B,GAAO;;;AM9qBxB,kCAA+B;EAAE,OAAO,ENwV1B,GAAO;;;AMvVrB,iBAAiC;EAAE,OAAO,ENuP1B,GAAO;;;AMtPvB,kBAAkC;EAAE,OAAO,ENgJ1B,GAAO;;;AM/IxB,eAA+B;EAAE,OAAO,ENmhB1B,GAAO;;;AMlhBrB,yHAAmC;EAAE,OAAO,ENgM1B,GAAO;;;AM/LzB,8BAA8C;EAAE,OAAO,ENY1B,GAAO;;;AMXpC,4BAA4C;EAAE,OAAO,ENc1B,GAAO;;;AMblC,gBAAgC;EAAE,OAAO,ENqW1B,GAAO;;;AMpWtB,wBAAwC;EAAE,OAAO,ENwe1B,GAAO;;;AMve9B;iBACiC;EAAE,OAAO,ENsgB1B,GAAO;;;AMrgBvB,kBAAkC;EAAE,OAAO,ENggB1B,GAAO;;;AM/fxB,mBAAmC;EAAE,OAAO,ENwY1B,GAAO;;;AMvYzB,eAA+B;EAAE,OAAO,EN2Y1B,GAAO;;;AM1YrB,eAA+B;EAAE,OAAO,EN4P1B,GAAO;;;AM3PrB,qBAAqC;EAAE,OAAO,ENoU1B,GAAO;;;AMnU3B,qBAAqC;EAAE,OAAO,ENitB1B,GAAO;;;AMhtB3B,sBAAsC;EAAE,OAAO,EN+sB1B,GAAO;;;AM9sB5B,oBAAoC;EAAE,OAAO,ENgtB1B,GAAO;;;AM/sB1B,iBAAiC;EAAE,OAAO,ENye1B,GAAO;;;AMxevB,kBAAkC;EAAE,OAAO,ENwB1B,GAAO;;;AMvBxB,cAA8B;EAAE,OAAO,ENymB1B,GAAO;;;AMxmBpB,eAA+B;EAAE,OAAO,ENymB1B,GAAO;;;AMxmBrB,kCAA+B;EAAE,OAAO,ENyD1B,GAAO;;;AMxDrB,mBAAmC;EAAE,OAAO,ENyD1B,GAAO;;;AMxDzB,gBAAgC;EAAE,OAAO,EN+d1B,GAAO;;;AM9dtB,iBAAiC;EAAE,OAAO,EN2E1B,GAAO;;;AM1EvB,eAA+B;EAAE,OAAO,EN0P1B,GAAO;;;AMzPrB,eAA+B;EAAE,OAAO,ENiD1B,GAAO;;;AMhDrB,iBAAiC;EAAE,OAAO,EN0V1B,GAAO;;;AMzVvB,sBAAsC;EAAE,OAAO,ENwmB1B,GAAO;;;AMvmB5B,qBAAqC;EAAE,OAAO,ENwmB1B,GAAO;;;AMvmB3B,qBAAqC;EAAE,OAAO,ENpC1B,GAAO;;;AMqC3B,uBAAuC;EAAE,OAAO,ENvC1B,GAAO;;;AMwC7B,sBAAsC;EAAE,OAAO,ENrC1B,GAAO;;;AMsC5B,wBAAwC;EAAE,OAAO,ENxC1B,GAAO;;;AMyC9B,eAA+B;EAAE,OAAO,EN+W1B,GAAO;;;AM9WrB;kBACkC;EAAE,OAAO,EN2a1B,GAAO;;;AM1axB,iBAAiC;EAAE,OAAO,ENsU1B,GAAO;;;AMrUvB,uBAAuC;EAAE,OAAO,ENkrB1B,GAAO;;;AMjrB7B;;oBAEoC;EAAE,OAAO,EN0b1B,GAAO;;;AMzb1B,iBAAiC;EAAE,OAAO,ENkb1B,GAAO;;;AMjbvB,qBAAqC;EAAE,OAAO,ENwX1B,GAAO;;;AMvX3B,iBAAiC;EAAE,OAAO,ENtD1B,GAAO;;;AMuDvB,eAA+B;EAAE,OAAO,ENmnB1B,GAAO;;;AMlnBrB;0BAC0C;EAAE,OAAO,EN+a1B,GAAO;;;AM9ahC,yBAAyC;EAAE,OAAO,EN8f1B,GAAO;;;AM7f/B,yBAAyC;EAAE,OAAO,EN+E1B,GAAO;;;AM9E/B,iBAAiC;EAAE,OAAO,ENzB1B,GAAO;;;AM0BvB,wBAAwC;EAAE,OAAO,ENmjB1B,GAAO;;;AMljB9B,wBAAwC;EAAE,OAAO,ENqL1B,GAAO;;;AMpL9B,mBAAmC;EAAE,OAAO,ENlB1B,GAAO;;;AMmBzB,eAA+B;EAAE,OAAO,ENsb1B,GAAO;;;AMrbrB,gBAAgC;EAAE,OAAO,ENga1B,GAAO;;;AM/ZtB,eAA+B;EAAE,OAAO,ENmjB1B,GAAO;;;AMljBrB,kBAAkC;EAAE,OAAO,EN+N1B,GAAO;;;AM9NxB,uBAAuC;EAAE,OAAO,ENgL1B,GAAO;;;AM/K7B,uBAAuC;EAAE,OAAO,EN4iB1B,GAAO;;;AM3iB7B,gBAAgC;EAAE,OAAO,EN+I1B,GAAO;;;AM9ItB,uBAAuC;EAAE,OAAO,ENyE1B,GAAO;;;AMxE7B,wBAAwC;EAAE,OAAO,ENyE1B,GAAO;;;AMxE9B,sBAAsC;EAAE,OAAO,ENkb1B,GAAO;;;AMjb5B,uBAAuC;EAAE,OAAO,ENuX1B,GAAO;;;AMtX7B,+FAAuC;EAAE,OAAO,EN2lB1B,GAAO;;;AM1lB7B,gGAAuC;EAAE,OAAO,EN2D1B,GAAO;;;AM1D7B,0BAA0C;EAAE,OAAO,ENyb1B,GAAO;;;AMxbhC,sBAAsC;EAAE,OAAO,EN0S1B,GAAO;;;AMzS5B,qBAAqC;EAAE,OAAO,EN0G1B,GAAO;;;AMzG3B,yBAAyC;EAAE,OAAO,ENulB1B,GAAO;;;AMtlB/B,yBAAyC;EAAE,OAAO,ENuD1B,GAAO;;;AMtD/B,cAA8B;EAAE,OAAO,ENnC1B,GAAO;;;AMoCpB,qBAAqC;EAAE,OAAO,ENnD1B,GAAO;;;AMoD3B,sBAAsC;EAAE,OAAO,ENnD1B,GAAO;;;AMoD5B,mBAAmC;EAAE,OAAO,ENnD1B,GAAO;;;AMoDzB,qBAAqC;EAAE,OAAO,ENvD1B,GAAO;;;AMwD3B;gBACgC;EAAE,OAAO,EN4d1B,GAAO;;;AM3dtB,iBAAiC;EAAE,OAAO,EN8I1B,GAAO;;;AM7IvB,mBAAmC;EAAE,OAAO,ENsF1B,GAAO;;;AMrFzB,eAA+B;EAAE,OAAO,EN+Z1B,GAAO;;;AM9ZrB,gBAAgC;EAAE,OAAO,ENoW1B,GAAO;;;AMnWtB,mBAAmC;EAAE,OAAO,ENpD1B,GAAO;;;AMqDzB,mNAA6C;EAAE,OAAO,ENuI1B,GAAO;;;AMtInC,eAA+B;EAAE,OAAO,ENkN1B,GAAO;;;AMjNrB,eAA+B;EAAE,OAAO,EN0S1B,GAAO;;;AMzSrB,kCAA+B;EAAE,OAAO,EN6K1B,GAAO;;;AM5KrB,cAA8B;EAAE,OAAO,ENyI1B,GAAO;;;AMxIpB,oBAAoC;EAAE,OAAO,ENyI1B,GAAO;;;AMxI1B;+BAC+C;EAAE,OAAO,ENiI1B,GAAO;;;AMhIrC,gBAAgC;EAAE,OAAO,EN+Y1B,GAAO;;;AM9YtB,mBAAmC;EAAE,OAAO,ENA1B,GAAO;;;AMCzB,iBAAiC;EAAE,OAAO,ENoa1B,GAAO;;;AMnavB,kBAAkC;EAAE,OAAO,ENgE1B,GAAO;;;AM/DxB,iBAAiC;EAAE,OAAO,EN6T1B,GAAO;;;AM5TvB,qBAAqC;EAAE,OAAO,ENuC1B,GAAO;;;AMtC3B,uBAAuC;EAAE,OAAO,ENmC1B,GAAO;;;AMlC7B,kBAAkC;EAAE,OAAO,EN+a1B,GAAO;;;AM9axB,wBAAwC;EAAE,OAAO,ENkd1B,GAAO;;;AMjd9B,iBAAiC;EAAE,OAAO,EN0K1B,GAAO;;;AMzKvB,sBAAsC;EAAE,OAAO,EN2K1B,GAAO;;;AM1K5B,mBAAmC;EAAE,OAAO,EN3E1B,GAAO;;;AM4EzB,mBAAmC;EAAE,OAAO,EN7E1B,GAAO;;;AM8EzB;oBACoC;EAAE,OAAO,ENlE1B,GAAO;;;AMmE1B,yBAAyC;EAAE,OAAO,EN+kB1B,GAAO;;;AM9kB/B,0BAA0C;EAAE,OAAO,EN4H1B,GAAO;;;AM3HhC,uBAAuC;EAAE,OAAO,ENT1B,GAAO;;;AMU7B,cAA8B;EAAE,OAAO,EN2Q1B,GAAO;;;AM1QpB;eAC+B;EAAE,OAAO,EN6C1B,GAAO;;;AM5CrB,mBAAmC;EAAE,OAAO,ENkD1B,GAAO;;;AMjDzB,sBAAsC;EAAE,OAAO,ENsiB1B,GAAO;;;AMriB5B,wBAAwC;EAAE,OAAO,ENoiB1B,GAAO;;;AMniB9B,oBAAoC;EAAE,OAAO,EN2e1B,GAAO;;;AM1e1B,kBAAkC;EAAE,OAAO,EN8N1B,GAAO;;;AM7NxB,mBAAmC;EAAE,OAAO,ENoc1B,GAAO;;;AMnczB,0BAA0C;EAAE,OAAO,ENuR1B,GAAO;;;AMtRhC,qBAAqC;EAAE,OAAO,EN6hB1B,GAAO;;;AM5hB3B,wBAAwC;EAAE,OAAO,ENsG1B,GAAO;;;AMrG9B,kBAAkC;EAAE,OAAO,EN8b1B,GAAO;;;AM7bxB,iBAAiC;EAAE,OAAO,ENqjB1B,GAAO;;;AMpjBvB,wBAAwC;EAAE,OAAO,ENgL1B,GAAO;;;AM/K9B,iBAAiC;EAAE,OAAO,ENukB1B,GAAO;;;AMtkBvB,kBAAkC;EAAE,OAAO,ENqQ1B,GAAO;;;AMpQxB,gBAAgC;EAAE,OAAO,ENiW1B,GAAO;;;AMhWtB,mBAAmC;EAAE,OAAO,EN2d1B,GAAO;;;AM1dzB,qBAAqC;EAAE,OAAO,ENjD1B,GAAO;;;AMkD3B,uBAAuC;EAAE,OAAO,EN+V1B,GAAO;;;AM9V7B,kBAAkC;EAAE,OAAO,ENsjB1B,GAAO;;;AMrjBxB;mBACmC;EAAE,OAAO,ENgG1B,GAAO;;;AM/FzB,sCAAiC;EAAE,OAAO,ENoK1B,GAAO;;;AMnKvB,iBAAiC;EAAE,OAAO,EN0jB1B,GAAO;;;AMzjBvB,sBAAsC;EAAE,OAAO,ENoC1B,GAAO;;;AMnC5B;cAC8B;EAAE,OAAO,EN+Y1B,GAAO;;;AM9YpB,gBAAgC;EAAE,OAAO,ENoM1B,GAAO;;;AMnMtB,mBAAmC;EAAE,OAAO,ENrD1B,GAAO;;;AMsDzB,eAA+B;EAAE,OAAO,ENhF1B,GAAO;;;AMiFrB,sBAAsC;EAAE,OAAO,ENrB1B,GAAO;;;AMsB5B,uBAAuC;EAAE,OAAO,ENoL1B,GAAO;;;AMnL7B,sBAAsC;EAAE,OAAO,ENkL1B,GAAO;;;AMjL5B,oBAAoC;EAAE,OAAO,ENmL1B,GAAO;;;AMlL1B,sBAAsC;EAAE,OAAO,EN+K1B,GAAO;;;AM9K5B,4DAA4C;EAAE,OAAO,ENrI1B,GAAO;;;AMsIlC,8DAA6C;EAAE,OAAO,ENjI1B,GAAO;;;AMkInC,0BAA0C;EAAE,OAAO,ENjI1B,GAAO;;;AMkIhC,4BAA4C;EAAE,OAAO,ENzI1B,GAAO;;;AM0IlC,gBAAgC;EAAE,OAAO,EN2J1B,GAAO;;;AM1JtB,iBAAiC;EAAE,OAAO,EN6lB1B,GAAO;;;AM5lBvB,gBAAgC;EAAE,OAAO,ENqe1B,GAAO;;;AMpetB,iBAAiC;EAAE,OAAO,ENyG1B,GAAO;;;AMxGvB,oBAAoC;EAAE,OAAO,ENzE1B,GAAO;;;AM0E1B,qBAAqC;EAAE,OAAO,ENlI1B,GAAO;;;AMmI3B;gBACgC;EAAE,OAAO,ENijB1B,GAAO;;;AMhjBtB;;iBAC+B;EAAE,OAAO,EN4O1B,GAAO;;;AM3OrB,gBAAgC;EAAE,OAAO,ENd1B,GAAO;;;AMetB,gBAAgC;EAAE,OAAO,EN0G1B,GAAO;;;AMzGtB;mBACmC;EAAE,OAAO,EN6X1B,GAAO;;;AM5XzB;kBACkC;EAAE,OAAO,EN2F1B,GAAO;;;AM1FxB,oBAAoC;EAAE,OAAO,EN6S1B,GAAO;;;AM5S1B;mBACmC;EAAE,OAAO,ENqG1B,GAAO;;;AMpGzB,iBAAiC;EAAE,OAAO,ENgb1B,GAAO;;;AM/avB;;eAE+B;EAAE,OAAO,ENlI1B,GAAO;;;AMmIrB,kBAAkC;EAAE,OAAO,ENsO1B,GAAO;;;AMrOxB,kBAAkC;EAAE,OAAO,ENoO1B,GAAO;;;AMnOxB,wBAAwC;EAAE,OAAO,EN+b1B,GAAO;;;AM9b9B,oBAAoC;EAAE,OAAO,EN2gB1B,GAAO;;;AM1gB1B,gBAAgC;EAAE,OAAO,ENuc1B,GAAO;;;AMtctB,gBAAgC;EAAE,OAAO,ENyO1B,GAAO;;;AMxOtB,gBAAgC;EAAE,OAAO,EN6f1B,GAAO;;;AM5ftB,oBAAoC;EAAE,OAAO,ENmT1B,GAAO;;;AMlT1B,2BAA2C;EAAE,OAAO,ENoT1B,GAAO;;;AMnTjC,6BAA6C;EAAE,OAAO,ENgI1B,GAAO;;;AM/HnC,sBAAsC;EAAE,OAAO,EN4H1B,GAAO;;;AM3H5B,gBAAgC;EAAE,OAAO,ENqQ1B,GAAO;;;AMpQtB,0EAAqC;EAAE,OAAO,ENpF1B,GAAO;;;AMqF3B,mBAAmC;EAAE,OAAO,EN9E1B,GAAO;;;AM+EzB,qBAAqC;EAAE,OAAO,ENrF1B,GAAO;;;AMsF3B,sBAAsC;EAAE,OAAO,ENrF1B,GAAO;;;AMsF5B,kBAAkC;EAAE,OAAO,ENhC1B,GAAO;;;AMiCxB;eAC+B;EAAE,OAAO,EN0Y1B,GAAO;;;AMzYrB;oBACoC;EAAE,OAAO,EN8Y1B,GAAO;;;AM7Y1B;mBACmC;EAAE,OAAO,EN2Y1B,GAAO;;;AM1YzB,mBAAmC;EAAE,OAAO,ENU1B,GAAO;;;AMTzB,mBAAmC;EAAE,OAAO,ENuM1B,GAAO;;;AMtMzB;eAC+B;EAAE,OAAO,ENqf1B,GAAO;;;AMpfrB;gBACgC;EAAE,OAAO,ENoF1B,GAAO;;;AMnFtB;qBACqC;EAAE,OAAO,EN+a1B,GAAO;;;AM9a3B,oBAAoC;EAAE,OAAO,EN7C1B,GAAO;;;AM8C1B,qBAAqC;EAAE,OAAO,EN1C1B,GAAO;;;AM2C3B;eAC+B;EAAE,OAAO,ENpI1B,GAAO;;;AMqIrB,kBAAkC;EAAE,OAAO,EN6W1B,GAAO;;;AM5WxB,mBAAmC;EAAE,OAAO,ENye1B,GAAO;;;AMxezB;oBACoC;EAAE,OAAO,ENrE1B,GAAO;;;AMsE1B,sBAAsC;EAAE,OAAO,ENqL1B,GAAO;;;AMpL5B,mBAAmC;EAAE,OAAO,ENG1B,GAAO;;;AMFzB,yBAAyC;EAAE,OAAO,ENnE1B,GAAO;;;AMoE/B,uBAAuC;EAAE,OAAO,ENnE1B,GAAO;;;AMoE7B,kBAAkC;EAAE,OAAO,ENif1B,GAAO;;;AMhfxB,sBAAsC;EAAE,OAAO,EN8Y1B,GAAO;;;AM7Y5B,mBAAmC;EAAE,OAAO,ENyZ1B,GAAO;;;AMxZzB,iBAAiC;EAAE,OAAO,EN9J1B,GAAO;;;AM+JvB,iBAAiC;EAAE,OAAO,ENlE1B,GAAO;;;AMmEvB,kBAAkC;EAAE,OAAO,EN1C1B,GAAO;;;AM2CxB,sBAAsC;EAAE,OAAO,EN8B1B,GAAO;;;AM7B5B,qBAAqC;EAAE,OAAO,EN1I1B,GAAO;;;AM2I3B,qBAAqC;EAAE,OAAO,ENsH1B,GAAO;;;AMrH3B,oBAAoC;EAAE,OAAO,ENrO1B,GAAO;;;AMsO1B,iBAAiC;EAAE,OAAO,EN4M1B,GAAO;;;AM3MvB,sBAAsC;EAAE,OAAO,ENU1B,GAAO;;;AMT5B,eAA+B;EAAE,OAAO,EN3K1B,GAAO;;;AM4KrB,mBAAmC;EAAE,OAAO,ENuF1B,GAAO;;;AMtFzB,sBAAsC;EAAE,OAAO,EN2Q1B,GAAO;;;AM1Q5B,4BAA4C;EAAE,OAAO,ENrO1B,GAAO;;;AMsOlC,6BAA6C;EAAE,OAAO,ENrO1B,GAAO;;;AMsOnC,0BAA0C;EAAE,OAAO,ENrO1B,GAAO;;;AMsOhC,4BAA4C;EAAE,OAAO,ENzO1B,GAAO;;;AM0OlC,qBAAqC;EAAE,OAAO,ENrO1B,GAAO;;;AMsO3B,sBAAsC;EAAE,OAAO,ENrO1B,GAAO;;;AMsO5B,mBAAmC;EAAE,OAAO,ENrO1B,GAAO;;;AMsOzB,qBAAqC;EAAE,OAAO,ENzO1B,GAAO;;;AM0O3B,kBAAkC;EAAE,OAAO,ENpD1B,GAAO;;;AMqDxB,iBAAiC;EAAE,OAAO,EN4I1B,GAAO;;;AM3IvB,iBAAiC;EAAE,OAAO,ENwY1B,GAAO;;;AMvYvB;iBACiC;EAAE,OAAO,ENuM1B,GAAO;;;AMtMvB,mBAAmC;EAAE,OAAO,ENzG1B,GAAO;;;AM0GzB,qBAAqC;EAAE,OAAO,ENyQ1B,GAAO;;;AMxQ3B,sBAAsC;EAAE,OAAO,ENyQ1B,GAAO;;;AMxQ5B,kBAAkC;EAAE,OAAO,EN+V1B,GAAO;;;AM9VxB,iBAAiC;EAAE,OAAO,EN9G1B,GAAO;;;AM+GvB;gBACgC;EAAE,OAAO,ENoR1B,GAAO;;;AMnRtB,qBAAqC;EAAE,OAAO,EN+C1B,GAAO;;;AM9C3B,mBAAmC;EAAE,OAAO,ENmB1B,GAAO;;;AMlBzB,wBAAwC;EAAE,OAAO,ENoB1B,GAAO;;;AMnB9B,kBAAkC;EAAE,OAAO,ENqU1B,GAAO;;;AMpUxB,kBAAkC;EAAE,OAAO,EN2B1B,GAAO;;;AM1BxB,gBAAgC;EAAE,OAAO,ENgL1B,GAAO;;;AM/KtB,kBAAkC;EAAE,OAAO,EN2B1B,GAAO;;;AM1BxB,qBAAqC;EAAE,OAAO,ENuH1B,GAAO;;;AMtH3B,iBAAiC;EAAE,OAAO,ENM1B,GAAO;;;AMLvB,yBAAyC;EAAE,OAAO,ENI1B,GAAO;;;AMH/B,mBAAmC;EAAE,OAAO,EN6X1B,GAAO;;;AM5XzB,eAA+B;EAAE,OAAO,ENhH1B,GAAO;;;AMiHrB;oBACoC;EAAE,OAAO,ENuQ1B,GAAO;;;AMtQ1B;;sBAEsC;EAAE,OAAO,ENsV1B,GAAO;;;AMrV5B,yBAAyC;EAAE,OAAO,ENwI1B,GAAO;;;AMvI/B,eAA+B;EAAE,OAAO,ENhG1B,GAAO;;;AMiGrB,oBAAoC;EAAE,OAAO,ENvH1B,GAAO;;;AMwH1B;uBACuC;EAAE,OAAO,ENtJ1B,GAAO;;;AMuJ7B,mBAAmC;EAAE,OAAO,ENyO1B,GAAO;;;AMxOzB,eAA+B;EAAE,OAAO,EN0F1B,GAAO;;;AMzFrB,sBAAsC;EAAE,OAAO,EN1D1B,GAAO;;;AM2D5B,sBAAsC;EAAE,OAAO,ENkW1B,GAAO;;;AMjW5B,oBAAoC;EAAE,OAAO,EN4V1B,GAAO;;;AM3V1B,iBAAiC;EAAE,OAAO,ENlE1B,GAAO;;;AMmEvB,uBAAuC;EAAE,OAAO,ENgO1B,GAAO;;;AM/N7B,qBAAqC;EAAE,OAAO,EN2J1B,GAAO;;;AM1J3B,2BAA2C;EAAE,OAAO,EN2J1B,GAAO;;;AM1JjC,iBAAiC;EAAE,OAAO,ENsR1B,GAAO;;;AMrRvB,qBAAqC;EAAE,OAAO,EN5L1B,GAAO;;;AM6L3B,4BAA4C;EAAE,OAAO,ENxB1B,GAAO;;;AMyBlC,iBAAiC;EAAE,OAAO,ENuP1B,GAAO;;;AMtPvB,iBAAiC;EAAE,OAAO,EN6I1B,GAAO;;;AM5IvB,8BAA8C;EAAE,OAAO,EN9J1B,GAAO;;;AM+JpC,+BAA+C;EAAE,OAAO,EN9J1B,GAAO;;;AM+JrC,4BAA4C;EAAE,OAAO,EN9J1B,GAAO;;;AM+JlC,8BAA8C;EAAE,OAAO,ENlK1B,GAAO;;;AMmKpC,gBAAgC;EAAE,OAAO,EN8D1B,GAAO;;;AM7DtB,eAA+B;EAAE,OAAO,ENrH1B,GAAO;;;AMsHrB,iBAAiC;EAAE,OAAO,ENvS1B,GAAO;;;AMwSvB,qBAAqC;EAAE,OAAO,EN2Z1B,GAAO;;;AM1Z3B,mBAAmC;EAAE,OAAO,ENhN1B,GAAO;;;AMiNzB,qBAAqC;EAAE,OAAO,EN7F1B,GAAO;;;AM8F3B,qBAAqC;EAAE,OAAO,EN7F1B,GAAO;;;AM8F3B,qBAAqC;EAAE,OAAO,EN+O1B,GAAO;;;AM9O3B,sBAAsC;EAAE,OAAO,ENiM1B,GAAO;;;AMhM5B,iBAAiC;EAAE,OAAO,EN6W1B,GAAO;;;AM5WvB,uBAAuC;EAAE,OAAO,EN0I1B,GAAO;;;AMzI7B,4IAAyC;EAAE,OAAO,EN0I1B,GAAO;;;AMzI/B,mBAAmC;EAAE,OAAO,ENqF1B,GAAO;;;AMpFzB,qBAAqC;EAAE,OAAO,ENmF1B,GAAO;;;AMlF3B,uBAAuC;EAAE,OAAO,ENnL1B,GAAO;;;AMoL7B,wBAAwC;EAAE,OAAO,EN0K1B,GAAO;;;AMzK9B,+BAA+C;EAAE,OAAO,ENpF1B,GAAO;;;AMqFrC,uBAAuC;EAAE,OAAO,ENwP1B,GAAO;;;AMvP7B,kBAAkC;EAAE,OAAO,ENjJ1B,GAAO;;;AMkJxB;8BAC8C;EAAE,OAAO,EN/M1B,GAAO;;;AMgNpC;4BAC4C;EAAE,OAAO,EN9M1B,GAAO;;;AM+MlC;+BAC+C;EAAE,OAAO,ENjN1B,GAAO;;;AMkNrC;cAC8B;EAAE,OAAO,ENvG1B,GAAO;;;AMwGpB,cAA8B;EAAE,OAAO,ENhC1B,GAAO;;;AMiCpB;cAC8B;EAAE,OAAO,ENqY1B,GAAO;;;AMpYpB;cAC8B;EAAE,OAAO,EN4C1B,GAAO;;;AM3CpB;;;cAG8B;EAAE,OAAO,ENgD1B,GAAO;;;AM/CpB;;cAE8B;EAAE,OAAO,ENiN1B,GAAO;;;AMhNpB;cAC8B;EAAE,OAAO,EN+C1B,GAAO;;;AM9CpB;cAC8B;EAAE,OAAO,EN3P1B,GAAO;;;AM4PpB,eAA+B;EAAE,OAAO,ENhG1B,GAAO;;;AMiGrB,oBAAoC;EAAE,OAAO,ENpF1B,GAAO;;;AMqF1B,yBAAyC;EAAE,OAAO,EN0P1B,GAAO;;;AMzP/B,0BAA0C;EAAE,OAAO,EN0P1B,GAAO;;;AMzPhC,0BAA0C;EAAE,OAAO,EN0P1B,GAAO;;;AMzPhC,2BAA2C;EAAE,OAAO,EN0P1B,GAAO;;;AMzPjC,2BAA2C;EAAE,OAAO,EN6P1B,GAAO;;;AM5PjC,4BAA4C;EAAE,OAAO,EN6P1B,GAAO;;;AM5PlC,oBAAoC;EAAE,OAAO,ENkU1B,GAAO;;;AMjU1B,sBAAsC;EAAE,OAAO,EN8T1B,GAAO;;;AM7T5B,yBAAyC;EAAE,OAAO,ENya1B,GAAO;;;AMxa/B,kBAAkC;EAAE,OAAO,ENsa1B,GAAO;;;AMraxB,eAA+B;EAAE,OAAO,EN2Z1B,GAAO;;;AM1ZrB,sBAAsC;EAAE,OAAO,EN2Z1B,GAAO;;;AM1Z5B,uBAAuC;EAAE,OAAO,ENoa1B,GAAO;;;AMna7B,kBAAkC;EAAE,OAAO,ENxJ1B,GAAO;;;AMyJxB,yBAAyC;EAAE,OAAO,EN8P1B,GAAO;;;AM7P/B,oBAAoC;EAAE,OAAO,ENgB1B,GAAO;;;AMf1B,iBAAiC;EAAE,OAAO,ENpF1B,GAAO;;;AMqFvB,cAA8B;EAAE,OAAO,EN3W1B,GAAO;;;AM4WpB,4CAAoC;EAAE,OAAO,EN/R1B,GAAO;;;AMgS1B,2BAA2C;EAAE,OAAO,EN/R1B,GAAO;;;AMgSjC,iBAAiC;EAAE,OAAO,EN+U1B,GAAO;;;AM9UvB,wBAAwC;EAAE,OAAO,EN+U1B,GAAO;;;AM9U9B,0BAA0C;EAAE,OAAO,ENgD1B,GAAO;;;AM/ChC,wBAAwC;EAAE,OAAO,ENkD1B,GAAO;;;AMjD9B,0BAA0C;EAAE,OAAO,EN+C1B,GAAO;;;AM9ChC,2BAA2C;EAAE,OAAO,EN+C1B,GAAO;;;AM9CjC,gBAAgC;EAAE,OAAO,ENjW1B,GAAO;;;AMkWtB,kBAAkC;EAAE,OAAO,ENmY1B,GAAO;;;AMlYxB,kBAAkC;EAAE,OAAO,EN7W1B,GAAO;;;AM8WxB,gBAAgC;EAAE,OAAO,ENkC1B,GAAO;;;AMjCtB,mBAAmC;EAAE,OAAO,EN5K1B,GAAO;;;AM6KzB,gBAAgC;EAAE,OAAO,ENgN1B,GAAO;;;AM/MtB,qBAAqC;EAAE,OAAO,ENxF1B,GAAO;;;AMyF3B,iBAAiC;EAAE,OAAO,EN4T1B,GAAO;;;AM3TvB,iBAAiC;EAAE,OAAO,ENtI1B,GAAO;;;AMuIvB,eAA+B;EAAE,OAAO,EN6C1B,GAAO;;;AM5CrB;mBACmC;EAAE,OAAO,EN5D1B,GAAO;;;AM6DzB,gBAAgC;EAAE,OAAO,EN8P1B,GAAO;;;AM7PtB,iBAAiC;EAAE,OAAO,ENuE1B,GAAO;;;AMtEvB,kBAAkC;EAAE,OAAO,EN9W1B,GAAO;;;AM+WxB,cAA8B;EAAE,OAAO,ENtS1B,GAAO;;;AMuSpB,aAA6B;EAAE,OAAO,ENiW1B,GAAO;;;AMhWnB,gBAAgC;EAAE,OAAO,ENuW1B,GAAO;;;AMtWtB,iBAAiC;EAAE,OAAO,EN+I1B,GAAO;;;AM9IvB,oBAAoC;EAAE,OAAO,ENkF1B,GAAO;;;AMjF1B,yBAAyC;EAAE,OAAO,EN6N1B,GAAO;;;AM5N/B,+BAA+C;EAAE,OAAO,EN/W1B,GAAO;;;AMgXrC,8BAA8C;EAAE,OAAO,ENjX1B,GAAO;;;AMkXpC;8BAC8C;EAAE,OAAO,ENzR1B,GAAO;;;AM0RpC,uBAAuC;EAAE,OAAO,ENnM1B,GAAO;;;AMoM7B,qBAAqC;EAAE,OAAO,ENiW1B,GAAO;;;AMhW3B,uBAAuC;EAAE,OAAO,ENoV1B,GAAO;;;AMnV7B;cAC8B;EAAE,OAAO,EN0S1B,GAAO;;;AMzSpB,yEAAwC;EAAE,OAAO,EN0G1B,GAAO;;;AMzG9B,wBAAwC;EAAE,OAAO,EN4M1B,GAAO;;;AM3M9B,gBAAgC;EAAE,OAAO,ENsL1B,GAAO;;;AMrLtB,0BAA0C;EAAE,OAAO,ENzL1B,GAAO;;;AM0LhC,oBAAoC;EAAE,OAAO,ENoW1B,GAAO;;;AMnW1B,iBAAiC;EAAE,OAAO,EN8D1B,GAAO;;;AM7DvB;;qBAEqC;EAAE,OAAO,EN8S1B,GAAO;;;AM7S3B;yBACyC;EAAE,OAAO,EN1F1B,GAAO;;;AM2F/B,gBAAgC;EAAE,OAAO,ENsW1B,GAAO;;;AMrWtB,iBAAiC;EAAE,OAAO,ENlG1B,GAAO;;;AMmGvB,iBAAiC;EAAE,OAAO,ENgH1B,GAAO;;;AM/GvB,wBAAwC;EAAE,OAAO,ENiH1B,GAAO;;;AMhH9B,6BAA6C;EAAE,OAAO,ENyN1B,GAAO;;;AMxNnC,sBAAsC;EAAE,OAAO,ENuN1B,GAAO;;;AMtN5B,oBAAoC;EAAE,OAAO,EN/N1B,GAAO;;;AMgO1B,eAA+B;EAAE,OAAO,EN5N1B,GAAO;;;AM6NrB,wBAAwC;EAAE,OAAO,EN2E1B,GAAO;;;AM1E9B,yBAAyC;EAAE,OAAO,ENyE1B,GAAO;;;AMxE/B,iBAAiC;EAAE,OAAO,ENvN1B,GAAO;;;AMwNvB,iBAAiC;EAAE,OAAO,ENzC1B,GAAO;;;AM0CvB,mBAAmC;EAAE,OAAO,ENpC1B,GAAO;;;AMqCzB,cAA8B;EAAE,OAAO,ENtL1B,GAAO;;;AMuLpB,mBAAmC;EAAE,OAAO,EN7U1B,GAAO;;;AM8UzB,gBAAgC;EAAE,OAAO,EN1R1B,GAAO;;;AM2RtB,cAA8B;EAAE,OAAO,ENsD1B,GAAO;;;AMrDpB,gBAAgC;EAAE,OAAO,ENmL1B,GAAO;;;AMlLtB,eAA+B;EAAE,OAAO,ENrP1B,GAAO;;;AMsPrB,gBAAgC;EAAE,OAAO,ENrP1B,GAAO;;;AMsPtB,kBAAkC;EAAE,OAAO,EN7W1B,GAAO;;;AM8WxB,yBAAyC;EAAE,OAAO,EN7W1B,GAAO;;;AM8W/B,gBAAgC;EAAE,OAAO,EN0L1B,GAAO;;;AMzLtB,uBAAuC;EAAE,OAAO,EN0L1B,GAAO;;;AMzL7B,kBAAkC;EAAE,OAAO,ENyF1B,GAAO;;;AMxFxB;cAC8B;EAAE,OAAO,ENzU1B,GAAO;;;AM0UpB;eAC+B;EAAE,OAAO,EN+M1B,GAAO;;;AM9MrB,eAA+B;EAAE,OAAO,EN4P1B,GAAO;;;AM3PrB,kBAAkC;EAAE,OAAO,ENuK1B,GAAO;;;AMtKxB,qBAAqC;EAAE,OAAO,ENtP1B,GAAO;;;AMuP3B,qBAAqC;EAAE,OAAO,ENiK1B,GAAO;;;AMhK3B,mBAAmC;EAAE,OAAO,EN9P1B,GAAO;;;AM+PzB,qBAAqC;EAAE,OAAO,EN/L1B,GAAO;;;AMgM3B,sBAAsC;EAAE,OAAO,ENxL1B,GAAO;;;AMyL5B,uBAAuC;EAAE,OAAO,ENrM1B,GAAO;;;AMsM7B,4BAA4C;EAAE,OAAO,EN/L1B,GAAO;;;AMgMlC;;uBAEuC;EAAE,OAAO,ENxM1B,GAAO;;;AMyM7B;yBACyC;EAAE,OAAO,EN9M1B,GAAO;;;AM+M/B;uBACuC;EAAE,OAAO,EN/M1B,GAAO;;;AMgN7B;uBACuC;EAAE,OAAO,ENpM1B,GAAO;;;AMqM7B,sBAAsC;EAAE,OAAO,ENjN1B,GAAO;;;AMkN5B,eAA+B;EAAE,OAAO,ENuR1B,GAAO;;;AMtRrB,kBAAkC;EAAE,OAAO,EN5S1B,GAAO;;;AM6SxB,mBAAmC;EAAE,OAAO,EN9E1B,GAAO;;;AM+EzB;;;;oBAIoC;EAAE,OAAO,ENnE1B,GAAO;;;AMoE1B,yBAAyC;EAAE,OAAO,EN/T1B,GAAO;;;AMgU/B;;gBAEgC;EAAE,OAAO,ENqD1B,GAAO;;;AMpDtB;iBACiC;EAAE,OAAO,ENnQ1B,GAAO;;;AMoQvB,qBAAqC;EAAE,OAAO,ENzK1B,GAAO;;;AM0K3B,cAA8B;EAAE,OAAO,EN3K1B,GAAO;;;AM4KpB;;sBAEsC;EAAE,OAAO,ENxJ1B,GAAO;;;AMyJ5B,wBAAwC;EAAE,OAAO,EN2K1B,GAAO;;;AM1K9B,aAA6B;EAAE,OAAO,ENiC1B,GAAO;;;AMhCnB;iBACiC;EAAE,OAAO,EN0Q1B,GAAO;;;AMzQvB;sBACsC;EAAE,OAAO,ENV1B,GAAO;;;AMW5B;wBACwC;EAAE,OAAO,ENX1B,GAAO;;;AMY9B,kBAAkC;EAAE,OAAO,EN1I1B,GAAO;;;AM2IxB,sBAAsC;EAAE,OAAO,ENlV1B,GAAO;;;AMmV5B,iBAAiC;EAAE,OAAO,ENjJ1B,GAAO;;;AMkJvB,oBAAoC;EAAE,OAAO,ENb1B,GAAO;;;AMc1B,kBAAkC;EAAE,OAAO,EN+F1B,GAAO;;;AM9FxB,oBAAoC;EAAE,OAAO,ENuE1B,GAAO;;;AMtE1B,2BAA2C;EAAE,OAAO,ENuE1B,GAAO;;;AMtEjC,eAA+B;EAAE,OAAO,ENzZ1B,GAAO;;;AM0ZrB;mBACmC;EAAE,OAAO,EN5M1B,GAAO;;;AM6MzB,cAA8B;EAAE,OAAO,EN0M1B,GAAO;;;AMzMpB,qBAAqC;EAAE,OAAO,ENxa1B,GAAO;;;AMya3B,eAA+B;EAAE,OAAO,ENI1B,GAAO;;;AMHrB,qBAAqC;EAAE,OAAO,ENuF1B,GAAO;;;AMtF3B,iBAAiC;EAAE,OAAO,EN2M1B,GAAO;;;AM1MvB,eAA+B;EAAE,OAAO,EN+Q1B,GAAO;;;AM9QrB,sBAAsC;EAAE,OAAO,ENzC1B,GAAO;;;AM0C5B,eAA+B;EAAE,OAAO,ENwP1B,GAAO;;;AMvPrB,qBAAqC;EAAE,OAAO,ENrZ1B,GAAO;;;AMsZ3B,iBAAiC;EAAE,OAAO,ENvB1B,GAAO;;;AMwBvB,wBAAwC;EAAE,OAAO,EN3L1B,GAAO;;;AM4L9B,kBAAkC;EAAE,OAAO,EN5X1B,GAAO;;;AM6XxB,wBAAwC;EAAE,OAAO,ENhY1B,GAAO;;;AMiY9B,sBAAsC;EAAE,OAAO,ENnY1B,GAAO;;;AMoY5B,kBAAkC;EAAE,OAAO,ENtY1B,GAAO;;;AMuYxB,oBAAoC;EAAE,OAAO,ENlY1B,GAAO;;;AMmY1B,oBAAoC;EAAE,OAAO,ENlY1B,GAAO;;;AMmY1B,qBAAqC;EAAE,OAAO,EN3b1B,GAAO;;;AM4b3B,uBAAuC;EAAE,OAAO,EN3b1B,GAAO;;;AM4b7B,gBAAgC;EAAE,OAAO,EN+K1B,GAAO;;;AM9KtB,oBAAoC;EAAE,OAAO,ENnV1B,GAAO;;;AMoV1B,aAA6B;EAAE,OAAO,EN9d1B,GAAO;;;AM+dnB,qBAAqC;EAAE,OAAO,EN5R1B,GAAO;;;AM6R3B,sBAAsC;EAAE,OAAO,EN/C1B,GAAO;;;AMgD5B,wBAAwC;EAAE,OAAO,EN9b1B,GAAO;;;AM+b9B,qBAAqC;EAAE,OAAO,ENtf1B,GAAO;;;AMuf3B,oBAAoC;EAAE,OAAO,EN/B1B,GAAO;;;AMgC1B,qBAAqC;EAAE,OAAO,ENzH1B,GAAO;;;AM0H3B,iBAAiC;EAAE,OAAO,ENvI1B,GAAO;;;AMwIvB,wBAAwC;EAAE,OAAO,ENvI1B,GAAO;;;AMwI9B,qBAAqC;EAAE,OAAO,EN4J1B,GAAO;;;AM3J3B,oBAAoC;EAAE,OAAO,EN4J1B,GAAO;;;AM3J1B,kBAAkC;EAAE,OAAO,ENxc1B,GAAO;;;AMycxB,cAA8B;EAAE,OAAO,ENjb1B,GAAO;;;AMkbpB,kBAAkC;EAAE,OAAO,ENvJ1B,GAAO;;;AMwJxB,oBAAoC;EAAE,OAAO,EN3gB1B,GAAO;;;AM4gB1B,aAA6B;EAAE,OAAO,EN7Z1B,GAAO;;;AM8ZnB;;cAE8B;EAAE,OAAO,ENzK1B,GAAO;;;AM0KpB,mBAAmC;EAAE,OAAO,ENpG1B,GAAO;;;AMqGzB,qBAAqC;EAAE,OAAO,ENxb1B,GAAO;;;AMyb3B,yBAAyC;EAAE,OAAO,EN5W1B,GAAO;;;AM6W/B,mBAAmC;EAAE,OAAO,EN9V1B,GAAO;;;AM+VzB,mBAAmC;EAAE,OAAO,EN9P1B,GAAO;;;AM+PzB,kBAAkC;EAAE,OAAO,ENrJ1B,GAAO;;;AMsJxB,iBAAiC;EAAE,OAAO,ENe1B,GAAO;;;AMdvB,uBAAuC;EAAE,OAAO,EN2B1B,GAAO;;;AM1B7B,sBAAsC;EAAE,OAAO,ENoC1B,GAAO;;;AMnC5B,mBAAmC;EAAE,OAAO,ENqC1B,GAAO;;;AMpCzB,oBAAoC;EAAE,OAAO,EN5a1B,GAAO;;;AM6a1B,0BAA0C;EAAE,OAAO,EN9a1B,GAAO;;;AM+ahC,kBAAkC;EAAE,OAAO,EN/V1B,GAAO;;;AMgWxB,eAA+B;EAAE,OAAO,ENoB1B,GAAO;;;AMnBrB,sBAAsC;EAAE,OAAO,EN8K1B,GAAO;;;AM7K5B,qBAAqC;EAAE,OAAO,EN/F1B,GAAO;;;AMgG3B,sBAAsC;EAAE,OAAO,EN6E1B,GAAO;;;AM5E5B,oBAAoC;EAAE,OAAO,EN9M1B,GAAO;;;AM+M1B,gBAAgC;EAAE,OAAO,EN+K1B,GAAO;;;AM9KtB,eAA+B;EAAE,OAAO,EN7H1B,GAAO;;;AM8HrB,kBAAkC;EAAE,OAAO,ENnH1B,GAAO;;;AMoHxB;sBACsC;EAAE,OAAO,ENkI1B,GAAO;;;AMjI5B,0BAA0C;EAAE,OAAO,ENkI1B,GAAO;;;AMjIhC,uBAAuC;EAAE,OAAO,EN0K1B,GAAO;;;AMzK7B,sBAAsC;EAAE,OAAO,ENlI1B,GAAO;;;AMmI5B,qBAAqC;EAAE,OAAO,ENyK1B,GAAO;;;AMxK3B,sBAAsC;EAAE,OAAO,ENnI1B,GAAO;;;AMoI5B,wBAAwC;EAAE,OAAO,ENlI1B,GAAO;;;AMmI9B,wBAAwC;EAAE,OAAO,ENpI1B,GAAO;;;AMqI9B,iBAAiC;EAAE,OAAO,EN1G1B,GAAO;;;AM2GvB,qBAAqC;EAAE,OAAO,EN7Q1B,GAAO;;;AM8Q3B,4BAA4C;EAAE,OAAO,EN1U1B,GAAO;;;AM2UlC,sBAAsC;EAAE,OAAO,ENzE1B,GAAO;;;AM0E5B,mBAAmC;EAAE,OAAO,ENkL1B,GAAO;;;AMjLzB,iBAAiC;EAAE,OAAO,ENX1B,GAAO;;;AMYvB,oBAAoC;EAAE,OAAO,ENuJ1B,GAAO;;;AMtJ1B,qBAAqC;EAAE,OAAO,ENwJ1B,GAAO;;;AMvJ3B;cAC8B;EAAE,OAAO,EN/f1B,GAAO;;;AMggBpB,kBAAkC;EAAE,OAAO,EN4J1B,GAAO;;;AM3JxB,gBAAgC;EAAE,OAAO,EN8G1B,GAAO;;;AM7GtB,iBAAiC;EAAE,OAAO,ENwD1B,GAAO;;;AMvDvB,iBAAiC;EAAE,OAAO,EN9I1B,GAAO;;;AM+IvB;uBACuC;EAAE,OAAO,EN0L1B,GAAO;;;AMzL7B,wBAAwC;EAAE,OAAO,ENjH1B,GAAO;;;AMkH9B,mBAAmC;EAAE,OAAO,ENrH1B,GAAO;;;AMsHzB,uBAAuC;EAAE,OAAO,ENnW1B,GAAO;;;AMoW7B;;uBAEuC;EAAE,OAAO,EN/gB1B,GAAO;;;AMghB7B;iCACiD;EAAE,OAAO,EN9gB1B,GAAO;;;AM+gBvC;uBACuC;EAAE,OAAO,ENlhB1B,GAAO;;;AMmhB7B;0BAC0C;EAAE,OAAO,ENnhB1B,GAAO;;;AMohBhC;wBACwC;EAAE,OAAO,ENxhB1B,GAAO;;;AMyhB9B,wBAAwC;EAAE,OAAO,EN3I1B,GAAO;;;AM4I9B,mBAAmC;EAAE,OAAO,EN3O1B,GAAO;;;AM4OzB,uBAAuC;EAAE,OAAO,ENxI1B,GAAO;;;AMyI7B,yBAAyC;EAAE,OAAO,ENxI1B,GAAO;;;AMyI/B,sBAAsC;EAAE,OAAO,ENwB1B,GAAO;;;AMvB5B,wBAAwC;EAAE,OAAO,ENwB1B,GAAO;;;AMvB9B,iBAAiC;EAAE,OAAO,EN/d1B,GAAO;;;AMgevB,yBAAyC;EAAE,OAAO,ENle1B,GAAO;;;AMme/B,gBAAgC;EAAE,OAAO,ENpc1B,GAAO;;;AMqctB,wBAAwC;EAAE,OAAO,ENljB1B,GAAO;;;AMmjB9B,sBAAsC;EAAE,OAAO,ENxP1B,GAAO;;;AMyP5B;0BAC0C;EAAE,OAAO,ENzP1B,GAAO;;;AM0PhC;yBACyC;EAAE,OAAO,EN7P1B,GAAO;;;AM8P/B;wBACwC;EAAE,OAAO,ENhQ1B,GAAO;;;AMiQ9B,oBAAoC;EAAE,OAAO,ENrQ1B,GAAO;;;AMsQ1B;sBACsC;EAAE,OAAO,ENxR1B,GAAO;;;AMyR5B;uBACuC;EAAE,OAAO,EN7R1B,GAAO;;;AM8R7B,0BAA0C;EAAE,OAAO,EN1R1B,GAAO;;;AM2RhC,wBAAwC;EAAE,OAAO,ENpS1B,GAAO;;;AMqS9B,uBAAuC;EAAE,OAAO,EN3R1B,GAAO;;;AM4R7B,yBAAyC;EAAE,OAAO,EN/R1B,GAAO;;;AMgS/B,uBAAuC;EAAE,OAAO,ENjS1B,GAAO;;;AMkS7B,oBAAoC;EAAE,OAAO,EN+D1B,GAAO;;;AM9D1B,qBAAqC;EAAE,OAAO,EN/F1B,GAAO;;;AMgG3B,2BAA2C;EAAE,OAAO,EN/b1B,GAAO;;;AMgcjC,aAA6B;EAAE,OAAO,ENtU1B,GAAO;;;AMuUnB,oBAAoC;EAAE,OAAO,ENtU1B,GAAO;;;AMuU1B,sBAAsC;EAAE,OAAO,ENkE1B,GAAO;;;AMjE5B,wBAAwC;EAAE,OAAO,ENrK1B,GAAO;;;AMsK9B,+BAA+C;EAAE,OAAO,ENrK1B,GAAO;;;AMsKrC,qBAAqC;EAAE,OAAO,EN5U1B,GAAO;;;AM6U3B,sBAAsC;EAAE,OAAO,ENwH1B,GAAO;;;AMvH5B,iBAAiC;EAAE,OAAO,ENnF1B,GAAO;;;AMoFvB,iBAAiC;EAAE,OAAO,ENze1B,GAAO;;;AM0evB,kBAAkC;EAAE,OAAO,EN9W1B,GAAO;;;AM+WxB,gBAAgC;EAAE,OAAO,ENxK1B,GAAO;;;AMyKtB,4BAA4C;EAAE,OAAO,ENpQ1B,GAAO;;;AMqQlC;qBACqC;EAAE,OAAO,ENS1B,GAAO;;;AMR3B,iBAAiC;EAAE,OAAO,ENjd1B,GAAO;;;AMkdvB,gBAAgC;EAAE,OAAO,ENzoB1B,GAAO;;;AM0oBtB,iBAAiC;EAAE,OAAO,EN/nB1B,GAAO;;;AMgoBvB,0BAA0C;EAAE,OAAO,EN3hB1B,GAAO;;;AM4hBhC,2BAA2C;EAAE,OAAO,EN9hB1B,GAAO;;;AM+hBjC,2BAA2C;EAAE,OAAO,EN5hB1B,GAAO;;;AM6hBjC,2BAA2C;EAAE,OAAO,ENjiB1B,GAAO;;;AMkiBjC,mBAAmC;EAAE,OAAO,ENpR1B,GAAO;;;AMqRzB,kBAAkC;EAAE,OAAO,EN5N1B,GAAO;;;AM6NxB,oBAAoC;EAAE,OAAO,EN5N1B,GAAO;;;AM6N1B,gBAAgC;EAAE,OAAO,EN/N1B,GAAO;;;AMgOtB,cAA8B;EAAE,OAAO,ENlO1B,GAAO;;;AMmOpB,qBAAqC;EAAE,OAAO,ENpe1B,GAAO;;;AMqe3B,uBAAuC;EAAE,OAAO,ENpe1B,GAAO;;;AMqe7B,gBAAgC;EAAE,OAAO,ENtS1B,GAAO;;;AMuStB,gBAAgC;EAAE,OAAO,ENiF1B,GAAO;;;AMhFtB,oBAAoC;EAAE,OAAO,ENlkB1B,GAAO;;;AMmkB1B,oBAAoC;EAAE,OAAO,ENrX1B,GAAO;;;AMsX1B,uBAAuC;EAAE,OAAO,ENpI1B,GAAO;;;AMqI7B,eAA+B;EAAE,OAAO,ENpc1B,GAAO;;;AMqcrB,0BAA0C;EAAE,OAAO,ENhe1B,GAAO;;;AMiehC,mBAAmC;EAAE,OAAO,ENpf1B,GAAO;;;AMqfzB,eAA+B;EAAE,OAAO,ENlN1B,GAAO;;;AMmNrB,uBAAuC;EAAE,OAAO,EN1X1B,GAAO;;;AM2X7B,cAA8B;EAAE,OAAO,ENoD1B,GAAO;;;AMnDpB,uBAAuC;EAAE,OAAO,EN3J1B,GAAO;;;AM4J7B,mBAAmC;EAAE,OAAO,ENzN1B,GAAO;;;AM0NzB,iBAAiC;EAAE,OAAO,ENlH1B,GAAO;;;AMmHvB,uBAAuC;EAAE,OAAO,EN7L1B,GAAO;;;AM8L7B,yBAAyC;EAAE,OAAO,EN7L1B,GAAO;;;AM8L/B,sBAAsC;EAAE,OAAO,EN3C1B,GAAO;;;AM4C5B,wBAAwC;EAAE,OAAO,EN3C1B,GAAO;;;AM4C9B,uBAAuC;EAAE,OAAO,ENrG1B,GAAO;;;AMsG7B,0BAA0C;EAAE,OAAO,ENrG1B,GAAO;;;AMsGhC,kBAAkC;EAAE,OAAO,EN7U1B,GAAO;;;AM8UxB,oBAAoC;EAAE,OAAO,ENnlB1B,GAAO;;;AMolB1B,sBAAsC;EAAE,OAAO,ENnlB1B,GAAO;;;AMolB5B,kBAAkC;EAAE,OAAO,EN/L1B,GAAO;;;AMgMxB,sCAAiC;EAAE,OAAO,ENlX1B,GAAO;;;AMmXvB,qBAAqC;EAAE,OAAO,ENkF1B,GAAO;;;AMjF3B,kBAAkC;EAAE,OAAO,ENmF1B,GAAO;;;AMlFxB,iBAAiC;EAAE,OAAO,EN9c1B,GAAO;;;AM+cvB,2BAA2C;EAAE,OAAO,EN2B1B,GAAO;;;AM1BjC,yBAAyC;EAAE,OAAO,ENmE1B,GAAO;;;AMlE/B,4BAA4C;EAAE,OAAO,ENxK1B,GAAO;;;AMyKlC,gBAAgC;EAAE,OAAO,EN9lB1B,GAAO;;;AM+lBtB,4BAA4C;EAAE,OAAO,ENtoB1B,GAAO;;;AMuoBlC,+BAA+C;EAAE,OAAO,ENqD1B,GAAO;;;AMpDrC,kBAAkC;EAAE,OAAO,ENxlB1B,GAAO;;;AMylBxB,sCAAsD;EAAE,OAAO,EN5oB1B,GAAO;;;AM6oB5C;8CAC8D;EAAE,OAAO,EN9qB1B,GAAO;;;AM+qBpD;;eAE+B;EAAE,OAAO,ENvf1B,GAAO;;;AMwfrB,gBAAgC;EAAE,OAAO,ENhY1B,GAAO;;;AMiYtB,kBAAkC;EAAE,OAAO,ENhY1B,GAAO;;;AMiYxB;wBACwC;EAAE,OAAO,EN1H1B,GAAO;;;AM2H9B,qBAAqC;EAAE,OAAO,ENzR1B,GAAO;;;AM0R3B,iBAAiC;EAAE,OAAO,ENiC1B,GAAO;;;AMhCvB,wBAAwC;EAAE,OAAO,ENiC1B,GAAO;;;AMhC9B,mBAAmC;EAAE,OAAO,ENlH1B,GAAO;;;AMmHzB,yBAAyC;EAAE,OAAO,ENlH1B,GAAO;;;AMmH/B,0BAA0C;EAAE,OAAO,ENlH1B,GAAO;;;AMmHhC,qBAAqC;EAAE,OAAO,ENrN1B,GAAO;;;AMsN3B,sBAAsC;EAAE,OAAO,ENpb1B,GAAO;;;AMqb5B,gBAAgC;EAAE,OAAO,ENmE1B,GAAO;;;AMlEtB,oBAAoC;EAAE,OAAO,ENpD1B,GAAO;;;AMqD1B;+BAC+C;EAAE,OAAO,ENzY1B,GAAO;;;AM0YrC;uBACuC;EAAE,OAAO,EN7a1B,GAAO;;;AM8a7B,sBAAsC;EAAE,OAAO,ENtX1B,GAAO;;;AMuX5B,wBAAwC;EAAE,OAAO,ENlf1B,GAAO;;;AMmf9B,0BAA0C;EAAE,OAAO,ENlf1B,GAAO;;;AMmfhC,iBAAiC;EAAE,OAAO,ENtT1B,GAAO;;;AMuTvB,uBAAuC;EAAE,OAAO,ENptB1B,GAAO;;;AMqtB7B,yBAAyC;EAAE,OAAO,ENptB1B,GAAO;;;AMqtB/B;uBACuC;EAAE,OAAO,ENrtB1B,GAAO;;;AMstB7B;yBACyC;EAAE,OAAO,ENttB1B,GAAO;;;AMutB/B,sBAAsC;EAAE,OAAO,ENJ1B,GAAO;;;AMK5B,wBAAwC;EAAE,OAAO,ENJ1B,GAAO;;;AMK9B,iBAAiC;EAAE,OAAO,ENH1B,GAAO;;;AMIvB,mBAAmC;EAAE,OAAO,EN3W1B,GAAO;;;AM4WzB;kBACkC;EAAE,OAAO,EN5W1B,GAAO;;;AM6WxB;oBACoC;EAAE,OAAO,EN7W1B,GAAO;;;AM8W1B,gBAAgC;EAAE,OAAO,ENtN1B,GAAO;;;AMuNtB,yBAAyC;EAAE,OAAO,EN3b1B,GAAO;;;AM4b/B,mBAAmC;EAAE,OAAO,ENtF1B,GAAO;;;AMuFzB;;2BAE2C;EAAE,OAAO,ENxE1B,GAAO;;;AMyEjC;qCACqD;EAAE,OAAO,ENvE1B,GAAO;;;AMwE3C;2BAC2C;EAAE,OAAO,EN3E1B,GAAO;;;AM4EjC;8BAC8C;EAAE,OAAO,EN5E1B,GAAO;;;AM6EpC;4BAC4C;EAAE,OAAO,ENjF1B,GAAO;;;AMkFlC,iBAAiC;EAAE,OAAO,EN3K1B,GAAO;;;AM4KvB;;eAE+B;EAAE,OAAO,ENzrB1B,GAAO;;;AM0rBrB,kBAAkC;EAAE,OAAO,ENlP1B,GAAO;;;AMmPxB,0BAA0C;EAAE,OAAO,ENK1B,GAAO;;;AMJhC,0BAA0C;EAAE,OAAO,ENK1B,GAAO;;;AMJhC,yBAAyC;EAAE,OAAO,ENK1B,GAAO;;;AMJ/B;uBACuC;EAAE,OAAO,END1B,GAAO;;;AME7B;yBACyC;EAAE,OAAO,ENF1B,GAAO;;;AMG/B,mBAAmC;EAAE,OAAO,ENxsB1B,GAAO;;;AMysBzB,eAA+B;EAAE,OAAO,ENpb1B,GAAO;;;AMqbrB,eAA+B;EAAE,OAAO,EN1hB1B,GAAO;;;AM2hBrB,eAA+B;EAAE,OAAO,ENxY1B,GAAO;;;AMyYrB,kBAAkC;EAAE,OAAO,EN/O1B,GAAO;;;AMgPxB,kBAAkC;EAAE,OAAO,ENziB1B,GAAO;;;AM0iBxB,oBAAoC;EAAE,OAAO,ENjU1B,GAAO;;;AMkU1B,sBAAsC;EAAE,OAAO,EN7K1B,GAAO;;;AM8K5B,sBAAsC;EAAE,OAAO,ENhI1B,GAAO;;;AMiI5B,qBAAqC;EAAE,OAAO,ENJ1B,GAAO;;;AMK3B,iBAAiC;EAAE,OAAO,ENxU1B,GAAO;;;AOzcvB,QAAS;EH8BP,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,GAAG;EACV,MAAM,EAAE,GAAG;EACX,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,IAAI;EACZ,QAAQ,EAAE,MAAM;EAChB,IAAI,EAAE,gBAAa;EACnB,MAAM,EAAE,CAAC;;;AAUT,mDACQ;EACN,QAAQ,EAAE,MAAM;EAChB,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;EACZ,MAAM,EAAE,CAAC;EACT,QAAQ,EAAE,OAAO;EACjB,IAAI,EAAE,IAAI;;;AIvDd,4xBAAK;EACH,WAAW,EAAE,OAAO;;AACpB,+6BAAQ;EACN,WAAW,EC+BuB,aAAa;ED9B/C,OAAO,EAAE,YAAY;EACrB,UAAU,EAAE,MAAM;EAClB,WAAW,EAAE,MAAM;EACnB,WAAW,EAAE,CAAC;EACd,eAAe,EAAE,OAAO;;;AAM5B,28BAAkB;EAChB,OAAO,EAAE,YAAY;EACrB,eAAe,EAAE,OAAO;;;AAGxB,syEAAgB;EACd,OAAO,EAAE,MAAM;;AACf,8zEAAuB;EACrB,WAAW,EAAE,KAAI;;AACnB,0wEAAsB;EACpB,OAAO,EAAE,YAAY;;;AAE3B,wjBAA2B;EACzB,OAAO,EAAE,GAAE;EjBpBL,kBAAoB,EAAE,qBAAM;EAK5B,eAAiB,EAAE,qBAAM;EAezB,UAAY,EAAE,qBAAM;;;AiBE5B,4oBAAiC;EAC/B,OAAO,EAAE,CAAC;;;AAGV,4uCAAuB;EACrB,SAAS,EAAE,IAAI;EACf,cAAc,EAAE,IAAI;;;AEpBxB,qQAAS;EACP,OAAO,EAAE,IAAqB;EAC9B,WAAW,EDayB,IAAI;ECZxC,aAAa,EDYuB,IAAI;ECXxC,UAAU,EAAE,OAAmB;;;AAEjC,+CAAe;EACb,KAAK,ECe+B,IAAM;EDd1C,WAAW,EAAE,IAAI;EACjB,OAAO,EAAE,KAAK;EACd,KAAK,ECY+B,IAAM;EDX1C,UAAU,EAAE,OAAkB;EAC9B,MAAM,EAAE,KAAsB;EAC9B,OAAO,EAAE,QAA2C;EACpD,aAAa,EAAE,IAAqB;;;AAEtC,qaAAyB;EACvB,UAAU,EAAE,OAAkB;;AAC9B,2yCAAe;EACb,UAAU,EAAE,OAAiB;;;AACjC,6YAA0B;EACxB,UAAU,EAAE,OAAmB;;AAC/B,4vCAAe;EACb,UAAU,EAAE,OAAoB;;;AAEpC,iZAAuB;EACrB,UAAU,EAAE,OAAmB;;AAC/B,iwCAAe;EACb,UAAU,EAAE,OAAkB;;;AAElC,8ZAA0B;EACxB,UAAU,EAAE,OAAuB;;AACnC,8xCAAe;EACb,UAAU,EAAE,OAAqB;;;AAErC,idAA0B;EACxB,UAAU,ECF0B,OAAmB;;ADGvD,o4CAAe;EACb,KAAK,ECpB6B,OAAW;EDqB7C,UAAU,ECHwB,OAAmB;;ADIvD,yeAAC;EACC,KAAK,ECb6B,OAAK;;;ADe3C,iaAAsB;EACpB,aAAa,EAAE,CAAC;;;AAsBlB,kBAAkB;EAChB,QAAQ,EAAE,KAAK;EACf,MAAM,EAAE,GAAG;EACX,IAAI,EAAE,CAAC;EACP,OAAO,EDG6B,GAAG;;ACFvC,qBAAE;EACA,OAAO,EAAE,KAAK;EACd,KAAK,EDT6B,KAAK;ECUvC,UAAU,EAAE,WAAW;EACvB,KAAK,ECrD6B,IAAM;EDsDxC,UAAU,EAAE,MAAM;EAClB,UAAU,EAAE,8BAA0B;EACtC,OAAO,EAAE,MAAmB;EAC5B,SAAS,EAAE,GAAG;EACd,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,CAAC;EACT,WAAW,EAAE,IAAI;EACjB,QAAQ,EAAE,MAAM;EnB3FZ,kBAAoB,EAAE,gBAAM;EAK5B,eAAiB,EAAE,gBAAM;EAezB,UAAY,EAAE,gBAAM;;AmByExB,0CAAsB;EACpB,UAAU,EC5FsB,OAAM;;AD6FxC,uCAAmB;EACjB,UAAU,EC5DsB,OAAK;;AD6DvC,0CAAsB;EACpB,UAAU,EDnFsB,OAAO;;ACoFzC,yCAAqB;EACnB,UAAU,EDtEsB,OAAI;;ACuEtC,wBAAI;EACF,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,IAAI;;;AEhFd,oCAAsB;EFmFxB,kBAAkB;IAChB,MAAM,EAAE,IAAI;IACZ,GAAG,EAAE,CAAC;IACN,KAAK,EAAE,IAAI;;EACX,qBAAE;IACA,KAAK,EAAE,IAAI;;;AG3FjB,MAAM;EACJ,SAAS,EAAE,IAAI;EACf,MAAM,EAAE,CAAC;EACT,cAAc,EAAE,QAAQ;EACxB,eAAe,EAAE,MAAM;EACvB,MAAM,EAAE,OAAO;EACf,WAAW,EAAE,MAAM;EACnB,kBAAkB,EAAE,MAAM;EAC1B,SAAS,EAAE,OAAO;;;AACpB,iDAAiD;EAC/C,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,CAAC;;;AACZ,gBAAgB;EACd,MAAM,EAAE,OAAO;;;AAEjB,IAAI;;EAEF,OAAO,EAAE,YAAY;EACrB,aAAa,EAAE,GAAG;EAClB,WAAW,EAAE,MAAM;EACnB,WAAW,EAAE,MAAM;EACnB,UAAU,EAAE,MAAM;EAClB,MAAM,EAAE,OAAO;EACf,SAAS,EAAE,IAAI;EACf,OAAO,EAAE,iBAA6F;EACtG,KAAK,EFf+B,IAAM;EEgB1C,MAAM,EAAE,4BAAyB;EACjC,gBAAgB,EF7CoB,OAAM;EE8C1C,eAAe,EAAE,IAAI;EACrB,WAAW,EAAE,MAAM;EACnB,WAAW,EFDyB,2DAA2D;EEE/F,UAAU,EAAE,0FAAqF;EACjG,YAAY,EAAE,KAAK;EACnB,cAAc,EAAE,MAAM;EACtB,QAAQ,EAAE,MAAM;EAChB,IAAI,EAAE,CAAC;EACP,iBAAiB,EAAE,IAAI;EtBxDjB,mBAAoB,EsByDb,IAAI;EtBpDX,gBAAiB,EsBoDV,IAAI;EtB/CX,eAAgB,EsB+CT,IAAI;EtBrCX,WAAY,EsBqCL,IAAI;EtBzDX,kBAAoB,EAAE,eAAM;EAK5B,eAAiB,EAAE,eAAM;EAezB,UAAY,EAAE,eAAM;;;AsByC5B,UAAU;EACR,UAAU,EAAE,OAAwB;EACpC,KAAK,EFjC+B,IAAM;;;AEoC1C,UAAO;EACL,UAAU,EAAE,OAAqC;EACjD,KAAK,EFtC6B,IAAM;;AEuC1C,UAAO;EACL,UAAU,EAAE,OAAqC;EACjD,OAAO,EAAE,CAAC;;AACZ,WAAQ;EACN,UAAU,EAAE,oFAA+E;EAC3F,OAAO,EAAE,iBAA6F;;AACxG,YAAS;EACP,KAAK,EF9C6B,IAAM;;AE+C1C,aAAU;EACR,gBAAgB,EAAE,IAAI;EACtB,MAAM,EAAE,2DAA2D;EACnE,MAAM,EAAE,iBAAmB;EAC3B,OAAO,EAAE,GAAG;EACZ,MAAM,EAAE,WAAW;EACnB,UAAU,EAAE,IAAI;;;AAEpB,aAAa;EACX,gBAAgB,EAAE,IAAI;EACtB,MAAM,EAAE,2DAA2D;EACnE,MAAM,EAAE,iBAAmB;EAC3B,OAAO,EAAE,GAAG;EACZ,MAAM,EAAE,WAAW;EACnB,UAAU,EAAE,IAAI;;AAChB,8DAA0B;EACxB,gBAAgB,EAAE,IAAI;EACtB,MAAM,EAAE,2DAA2D;EACnE,MAAM,EAAE,iBAAmB;EAC3B,OAAO,EAAE,GAAI;EACb,MAAM,EAAE,WAAW;EACnB,UAAU,EAAE,IAAI;;;AAGpB,sBAAsB;EACpB,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,CAAC;;;AAEX,UAAU;EACR,SAAS,EAAE,GAAG;;;AAEhB,SAAS;EACP,gBAAgB,EAAE,kBAAgB;;AAClC,eAAO;EACL,gBAAgB,EAAE,kBAA6B;;;AAEnD,YAAY;EACV,gBAAgB,EAAE,kBAA2C;EAC7D,KAAK,EAAE,kBAAsB;;AAC7B,kBAAO;EACL,gBAAgB,EAAE,kBAAuD;EACzE,KAAK,EF5F6B,OAAW;;AE6F/C,oBAAS;EACP,KAAK,EAAE,kBAAsB;;;AAEjC,YAAY;EACV,gBAAgB,EAAE,kBAAiB;;AACnC,kBAAO;EACL,gBAAgB,EAAE,kBAA6B;;;AAEnD,WAAW;EACT,gBAAgB,EAAE,kBAAe;;AACjC,iBAAO;EACL,gBAAgB,EAAE,kBAA4B;;;AAElD,YAAY;EACV,gBAAgB,EAAE,kBAAkB;;AACpC,kBAAO;EACL,gBAAgB,EAAE,kBAA+B;;;AACrD,WAAW;EACT,gBAAgB,EJvIoB,IAAI;;AIwIxC,iBAAO;EACL,gBAAgB,EAAE,kBAAoC;;;AAE1D,SAAS;EACP,gBAAgB,EAAE,sBAAsB;EACxC,KAAK,EF3G+B,OAAK;EE4GzC,UAAU,EAAE,IAAI;EAChB,YAAY,EAAE,sBAAsB;;AACpC,eAAO;EACL,gBAAgB,EAAE,sBAAsB;EACxC,KAAK,EAAE,kBAAoC;EAC3C,UAAU,EAAE,IAAI;;AAClB,gBAAQ;EACN,gBAAgB,EAAE,sBAAsB;EACxC,KAAK,EAAE,kBAAoC;EAC3C,UAAU,EAAE,IAAI;;AAClB,iBAAS;EACP,KAAK,EFtH6B,OAAO;;;AEwH7C,oCAAoC;EAClC,cAAc,EAAE,MAAM;;;AAExB,aAAa;EACX,aAAa,EJ1IuB,IAAI;EhBuExC,KAAK,EAAE,CAAC;;AACR,yCAAS;EAEP,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,EAAE;;AACb,mBAAO;EACL,KAAK,EAAE,IAAI;;;AqB3Ff,YAAY;EACV,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,YAAY;;;AAIvB,qCAAqC;EACnC,OAAO,EAAE,KAAK;;;AAChB,iBAAiB;EACf,QAAQ,EAAE,QAAQ;EAClB,IAAI,EAAE,CAAC;EACP,OAAO,EAAE,IAAI;EACb,KAAK,EAAE,IAAI;EACX,GAAG,EAAE,IAAI;EACT,SAAS,EAAE,IAAI;EACf,UAAU,EHW0B,OAAyB;EGV7D,OAAO,ELmD6B,GAAG;EKlDvC,MAAM,EAAE,iBAAgC;EACxC,UAAU,EAAE,8BAA0B;EACtC,OAAO,EAAE,IAAqB;;AAC9B,0BAAQ;EACN,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,IAAI;EACX,KAAK,EHN6B,OAAW;EGO7C,WAAW,EAAE,MAAM;EACnB,SAAS,EAAE,GAAG;EACd,OAAO,EAAE,MAAuB;EAChC,MAAM,EAAE,OAAO;;AACf,gCAAO;EACL,UAAU,EHFsB,OAAK;EGGrC,KAAK,EHT2B,IAAM;;AGU1C,8BAAY;EACV,UAAU,EAAE,iBAAgC;EAC5C,MAAM,EAAE,KAAuB;;AACjC,6BAAW;EACT,cAAc,EAAE,IAAqB;;AACrC,kDAAoB;EAClB,KAAK,EAAE,IAAI;;AACf,qCAAmB;EACjB,UAAU,EAAE,OAA4B;EACxC,cAAc,EAAE,SAAS;EACzB,WAAW,EAAE,GAAG;EAChB,SAAS,EAAE,GAAG;;AACd,2CAAO;EACL,UAAU,EAAE,OAA4B;;AAC1C,0CAAI;EACF,KAAK,EHzB2B,IAAM;;;AG2B5C,6CAA6C;EAC3C,MAAM,EAAE,IAAI;EACZ,GAAG,EAAE,IAAI;EACT,IAAI,EAAE,IAAI;EACV,KAAK,EAAE,CAAC;;;AAGR,iDAAiB;EACf,UAAU,EH9BwB,OAAyB;EG+B3D,UAAU,EAAE,GAAG;;AACjB,mDAAmB;EACjB,OAAO,EAAE,QAA2C;;AACpD,yDAAO;EACL,UAAU,EHlCsB,OAAK;EGmCrC,KAAK,EHzC2B,IAAM;;;AG2C5C,+CAA+C;EAC7C,KAAK,EAAE,CAAC;EACR,IAAI,EAAE,IAAI;EACV,UAAU,EAAE,KAAK;;;AAGjB,yBAAQ;EACN,OAAO,EAAE,GAAG;EACZ,aAAa,EAAE,oBAA0B;EACzC,WAAW,EAAE,qBAAqB;EAClC,YAAY,EAAE,qBAAqB;EACnC,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,KAAK;EACd,GAAG,EAAE,IAAI;EACT,IAAI,EAAE,GAAG;EACT,WAAW,EAAE,IAAI;;AACnB,gDAA+B;EAC7B,IAAI,EAAE,IAAI;;;ACtEZ,uBAAM;EACJ,OAAO,EAAE,KAAK;;;AAEhB,oIAA+C;EAC7C,OAAO,EAAE,YAAY;EACrB,QAAQ,EAAE,MAAM;EAChB,KAAK,EAAE,CAAC;EACR,cAAc,EAAE,MAAM;;;AAItB,0CAAO;EACL,OAAO,EAAE,YAAY;EACrB,cAAc,EAAE,MAAM;EACtB,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,YAA+C;EACvD,KAAK,EAAE,IAAI;;AACf,4BAAW;EACT,KAAK,EAAE,IAAI;;AACX,kCAAK;EACH,OAAO,EAAE,KAAK;;AAChB,mCAAM;EACJ,UAAU,EAAE,GAAqB;;;AAEvC,QAAQ;EACN,MAAM,EAAE,CAAC;EACT,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,CAAC;;;AACZ,MAAM;EACJ,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,CAAC;EACV,WAAW,EAAE,MAAM;EACnB,aAAa,EN/BuB,IAAI;EMgCxC,SAAS,EAAE,IAAI;EACf,YAAY,EAAE,IAAI;;;AACpB,KAAK;EACH,OAAO,EAAE,KAAK;EACd,MAAM,EAAE,cAAa;EACrB,KAAK,ENR+B,IAAU;EMS9C,SAAS,EAAE,GAAG;;;AAEhB,uBAAuB;EACrB,SAAS,EAAE,IAAI;EACf,MAAM,EAAE,CAAC;EACT,cAAc,EAAE,QAAQ;EACxB,eAAe,EAAE,MAAM;;;AAGzB,iBAAiB;EACf,aAAa,ENhDuB,IAAI;EhBuExC,KAAK,EAAE,CAAC;EuBrGR,SAAS,ECCC,IAAQ;EDChB,WAAI,EAAE,IAAI;EACV,YAAK,EAAE,IAAI;EvBkGb,KAAK,EAAE,CAAC;;AACR,iDAAS;EAEP,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,EAAE;;AACb,uBAAO;EACL,KAAK,EAAE,IAAI;;AALb,iDAAS;EAEP,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,EAAE;;AACb,uBAAO;EACL,KAAK,EAAE,IAAI;;;AsBzBf,yDAAyD;EACvD,OAAO,EAAE,IAAI;EACb,KAAK,EN/C+B,OAAI;;;AMoDxC,qGAA+C;EAC7C,cAAc,EAAE,IAAqB;;AACrC,0HAAM;EACJ,KAAK,EAAE,IAAI;;AAEX,mwEAAqP;EACnP,KAAK,EAAE,IAAI;;;AACnB,+BAA+B;EGlF3B,KAAK,EAAE,IAAsB;EAG3B,OAAO,EAAE,KAAK;EAed,YAAoB,EAAE,QAA+B;EACrD,KAAK,EAAE,IAAuC;ECnB5C,YAAoB,EAAE,CAAC;;ADqBzB,0CAAa;EACX,YAAoB,EAAE,CAAC;;;AHgE/B,iCAAiC;EGtF7B,KAAK,EAAE,IAAsB;EAG3B,OAAO,EAAE,KAAK;EAed,YAAoB,EAAE,QAA+B;EACrD,KAAK,EAAE,SAAuC;;AAE9C,4CAAa;EACX,YAAoB,EAAE,CAAC;;ACA7B,iDAAwB;EACtB,YAAoB,EAAE,CAAC;;AAEvB,mDAA0B;EACxB,KAAK,EALY,IAAkC;;;AJqEzD,iCAAiC;EG1F7B,KAAK,EAAE,IAAsB;EAG3B,OAAO,EAAE,KAAK;EAed,YAAoB,EAAE,QAA+B;EACrD,KAAK,EAAE,SAAuC;;AAE9C,4CAAa;EACX,YAAoB,EAAE,CAAC;;ACA7B,iDAAwB;EACtB,YAAoB,EAAE,CAAC;;AAEvB,mDAA0B;EACxB,KAAK,EALY,IAAkC;;;AJ0EzD,uDAAuD;EACrD,MAAM,EAAE,SAA2B;EACnC,SAAS,EAAE,GAAG;;;AAEhB,oBAAoB;EAClB,OAAO,EAAE,YAAY;EACrB,MAAM,EAAE,SAA2B;EACnC,SAAS,EAAE,GAAG;;;AAOZ,itBAAqP;EACnP,KAAK,EAAE,IAAI;;;AAIjB,uBAAuB;EACrB,OAAO,EAAE,YAAY;EACrB,YAAY,EAAE,KAAK;EACnB,KAAK,EAAE,IAAI;EACX,cAAc,EAAE,MAAM;EACtB,SAAS,EAAE,GAAG;;;AAEhB,gBAAgB;EACd,OAAO,EAAE,KAAK;EACd,KAAK,EJrH+B,IAAW;EIsH/C,SAAS,EAAE,GAAG;EACd,UAAU,EAAE,QAAO;EACnB,UAAU,EAAE,MAAM;;AAClB,kBAAC;EACC,SAAS,EAAE,OAAO;EAClB,UAAU,EAAE,MAAM;EAClB,aAAa,EAAE,GAAqB;;AACtC,6BAAY;EACV,aAAa,EAAE,CAAC;;;AA4DpB,KAAK;EACH,WAAW,EAAE,MAAM;;;AAGnB,+DAAmD;EACjD,kBAAkB,EAAE,MAAM;EAC1B,MAAM,EAAE,OAAO;EACf,WAAW,EJ7JuB,2DAA2D;EI8J7F,SAAS,EAAE,OAAO;;AACpB,6SAAqP;EACnP,kBAAkB,EAAE,IAAI;EACxB,OAAO,EAAE,GAAqB;EAC9B,OAAO,EAAE,YAAY;EACrB,MAAM,EAAE,cAA6B;EACrC,SAAS,EAAE,GAAG;EACd,WAAW,EJrKuB,2DAA2D;EIsK7F,UAAU,EAAE,oBAAmC;EAC/C,aAAa,EAAE,CAAC;ExBxNZ,kBAAoB,EAAE,kBAAM;EAK5B,eAAiB,EAAE,kBAAM;EAezB,UAAY,EAAE,kBAAM;;AwBuM1B,4BAAwB;EACtB,OAAO,EAAE,iBAAkB;;AAC7B,eAAW;EACT,MAAM,EAAE,OAAO;;AACjB,2CAAmC;ExB/N7B,kBAAoB,EwBgOZ,UAAU;ExB3NlB,eAAiB,EwB2NT,UAAU;ExB5MlB,UAAY,EwB4MJ,UAAU;EACtB,OAAO,EAAE,CAAC;EACV,YAAY,EAAE,QAAO;EACrB,OAAO,EAAE,IAAI;EACb,MAAM,EAAE,IAAI;;AACd,oBAAgB;ExBrOV,kBAAoB,EwBsOZ,UAAU;ExBjOlB,eAAiB,EwBiOT,UAAU;ExBlNlB,UAAY,EwBkNJ,UAAU;;AACtB,mGAA6D;EAC3D,kBAAkB,EAAE,IAAI;;AAC5B,iYAAyU;EACvU,OAAO,EAAE,CAAC;EACV,OAAO,EAAE,cAAc;EACvB,YAAY,ENxLsB,IAAU;;AMyL9C,oBAAgB;EACd,YAAY,EAAE,eAA8B;;AAC9C,iFAAqE;EACnE,OAAO,EAAE,gBAAsB;EAC/B,OAAO,EAAE,gBAAgB;;AAC3B,ybAAiY;EAC/X,MAAM,EAAE,WAAW;EACnB,gBAAgB,EAAE,OAAmC;;;AAEzD,iEAAiE;EAC/D,KAAK,ENzN+B,OAAI;EM0NxC,MAAM,EAAE,iBAAc;;;AACxB,mFAAmF;EACjF,YAAY,EN5NwB,OAAI;;;AM8NxC,2HAA+G;EAC7G,aAAa,EN/NqB,OAAI;;;AMiO1C,oBAAoB;EAClB,OAAO,EAAE,IAAqB;EAC9B,SAAS,EAAE,IAAI;;;AAKjB,QAAQ;EACN,QAAQ,EAAE,IAAI;EACd,cAAc,EAAE,GAAG;EACnB,KAAK,EAAE,IAAI;EACX,WAAW,EJzNyB,2DAA2D;;;AI0NjG,gBAAgB;EACd,OAAO,EAAE,aAAgB;EACzB,OAAO,EAAE,YAAY;EACrB,MAAM,EAAE,cAA6B;EACrC,SAAS,EAAE,GAAG;EACd,UAAU,EAAE,oBAAmC;ExBhRzC,kBAAoB,EAAE,kBAAM;EAK5B,eAAiB,EAAE,kBAAM;EAezB,UAAY,EAAE,kBAAM;;;AwB+P5B,MAAM;EACJ,MAAM,EAAE,cAA6B;EACrC,gBAAgB,EJvPoB,IAAM;;AIwP1C,gBAAW;EACT,MAAM,EAAE,IAAI;;;AAChB,4BAA4B;EAC1B,OAAO,EAAE,CAAC;;;AACZ,2FAA2F;EACzF,MAAM,EAAE,WAAW;EACnB,gBAAgB,EAAE,OAAmC;;;AAKrD,+DAAuD;EACrD,MAAM,EAAE,WAAW;;;AACvB,uBAAuB;EACrB,MAAM,EAAE,KAAuB;EAE/B,KAAK,EJ5Q+B,OAAW;EI6Q/C,OAAO,EAAE,KAAK;;AACd,mCAAK;EACH,cAAc,EAAE,QAAQ;;;AAI5B,uBAAuB;EACrB,OAAO,EAAE,YAAY;EACrB,QAAQ,EAAE,MAAM;EAChB,KAAK,EAAE,CAAC;EACR,cAAc,EAAE,MAAM;;;AAuBxB,kCAAkC;EAChC,WAAW,EAAE,MAAM;EACnB,OAAO,EAAE,GAAqB;;AAC9B,sEAAiB;EACf,WAAW,EAAE,IAAI;EACjB,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,YAAY;EACrB,SAAS,EAAE,GAAG;EACd,gBAAgB,EJtSkB,OAAmB;EIuSrD,MAAM,EAAE,cAA6B;EACrC,KAAK,EJrU6B,IAAW;;;AIuUjD,kCAAkC;EAChC,WAAW,EAAE,CAAC;;;AAChB,kCAAkC;EAChC,YAAY,EAAE,CAAC;;;AAcjB,UAAU;EACR,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,KAAK;EACd,MAAM,ENjV8B,IAAI;EMkVxC,UAAU,EAAE,IAAqB;EACjC,MAAM,EAAE,OAAO;;AACf,iBAAQ;EACN,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,EAAE;EACX,OAAO,EAAE,KAAK;EACd,IAAI,EAAE,CAAC;EACP,GAAG,EAAE,CAAC;EACN,KAAK,EAAE,IAAuB;EAC9B,MAAM,EAAE,IAAqB;EAC7B,aAAa,EAAE,GAAG;EAClB,UAAU,EN9WwB,IAAI;ElBNlC,kBAAoB,EAAE,oBAAM;EAK5B,eAAiB,EAAE,oBAAM;EAezB,UAAY,EAAE,oBAAM;;AwBkW1B,gBAAO;EACL,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,EAAE;EACX,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;EACZ,aAAa,EAAE,GAAG;EAClB,UAAU,EJhXwB,IAAW;EIiX7C,IAAI,EAAE,IAAI;EACV,GAAG,EAAE,IAAI;ExB/XL,kBAAoB,EAAE,oBAAM;EAK5B,eAAiB,EAAE,oBAAM;EAezB,UAAY,EAAE,oBAAM;;AwB6W1B,eAAI;EACF,QAAQ,EAAE,QAAQ;EAClB,IAAI,EAAE,IAAqB;EAC3B,OAAO,EAAE,KAAK;EACd,SAAS,EAAE,IAAI;EACf,KAAK,ENhY6B,IAAI;EMiYtC,WAAW,EAAE,CAAC;;;AAEhB,wBAAQ;EACN,UAAU,EAAE,OAAmB;;AACjC,uBAAO;EACL,IAAI,ENrX8B,IAAI;EMsXtC,UAAU,EJ3YwB,OAAM;;;AI6Y5C,mBAAmB;EACjB,MAAM,EAAE,WAAW;EACnB,OAAO,EAAE,GAAE;;;AAgDX,2GAAyB;EACvB,KAAK,ENpa6B,OAAI;;AMsatC,22BAAqP;EACnP,MAAM,EAAE,iBAAc;;AAC1B,iDAAQ;EACN,MAAM,EAAE,iBAAc;;;AAE1B,mBAAmB;EACjB,WAAW,EAAE,MAAM;;AACnB,qCAAiB;EACf,OAAO,EAAE,aAAgB;EACzB,OAAO,EAAE,YAAY;EACrB,SAAS,EAAE,GAAG;;;AAClB,gEAAgE;EAC9D,KAAK,EJ9c+B,OAAM;;;AIid5C,+DAA+D;EAC7D,KAAK,ENtb+B,OAAI;;;AMyb1C,gEAAgE;EAC9D,KAAK,ENzc+B,OAAO;;;AM4c7C,6DAA6D;EAC3D,KAAK,EJxb+B,OAAK;;;AI8b3C,UAAU;ExBleF,iBAAoB,EAAE,aAAM;EAK5B,cAAiB,EAAE,aAAM;EAKzB,aAAgB,EAAE,aAAM;EAKxB,YAAe,EAAE,aAAM;EAKvB,SAAY,EAAE,aAAM;;;AwBgd5B,WAAW;ExBpeH,iBAAoB,EAAE,cAAM;EAK5B,cAAiB,EAAE,cAAM;EAKzB,aAAgB,EAAE,cAAM;EAKxB,YAAe,EAAE,cAAM;EAKvB,SAAY,EAAE,cAAM;;;AwBkd5B,WAAW;ExBteH,iBAAoB,EAAE,cAAM;EAK5B,cAAiB,EAAE,cAAM;EAKzB,aAAgB,EAAE,cAAM;EAKxB,YAAe,EAAE,cAAM;EAKvB,SAAY,EAAE,cAAM;;;AwBod5B,OAAO;ExBxeC,iBAAoB,EAAE,UAAM;EAK5B,cAAiB,EAAE,UAAM;EAKzB,aAAgB,EAAE,UAAM;EAKxB,YAAe,EAAE,UAAM;EAKvB,SAAY,EAAE,UAAM;;AwBsd1B,iBAAW;ExB1eL,iBAAoB,EwB2eL,wBAAwB;ExBtevC,cAAiB,EwBseF,wBAAwB;ExBjevC,aAAgB,EwBieD,wBAAwB;ExB5dvC,YAAe,EwB4dA,wBAAwB;ExBvdvC,SAAY,EwBudG,wBAAwB;;AAC7C,kBAAY;ExB5eN,iBAAoB,EwB6eL,yBAAyB;ExBxexC,cAAiB,EwBweF,yBAAyB;ExBnexC,aAAgB,EwBmeD,yBAAyB;ExB9dxC,YAAe,EwB8dA,yBAAyB;ExBzdxC,SAAY,EwBydG,yBAAyB;;AAC9C,kBAAY;ExB9eN,iBAAoB,EwB+eL,yBAAyB;ExB1exC,cAAiB,EwB0eF,yBAAyB;ExBrexC,aAAgB,EwBqeD,yBAAyB;ExBhexC,YAAe,EwBgeA,yBAAyB;ExB3dxC,SAAY,EwB2dG,yBAAyB;;;AAEhD,yCAAyC;EAErC,8BAAqB;IACnB,MAAM,EAAE,SAAS;;EAEjB,2aAAqP;IACnP,aAAa,EAAE,KAAK;IACpB,OAAO,EAAE,KAAK;;EAClB,cAAK;IACH,aAAa,EAAE,KAAK;IACpB,OAAO,EAAE,KAAK;;;EAEhB,8YAAqO;IACnO,aAAa,EAAE,CAAC;;;EAElB,wCAAuB;IACrB,aAAa,EAAE,KAAK;IACpB,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE,KAAK;IACd,KAAK,EAAE,IAAI;;EACb,4BAAW;IACT,MAAM,EAAE,WAAW;;;EACvB,mEAAmE;IACjE,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,GAAG;IACd,OAAO,EAAE,KAAuB;;;AHnfhC,oCAAsB;EQhC1B,YAAY;IAER,OAAO,EAAE,IAAI;;;;AR8Bb,oCAAsB;EQ5B1B,YAAY;IAER,OAAO,EAAE,IAAI;;;;AAEjB,WAAW;EACT,KAAK,EAAE,IAAI;;;AAEb,YAAY;EACV,KAAK,EAAE,KAAK;;;AAEd,WAAW;EACT,KAAK,EAAE,IAAI;;;AC4Cb,qEAAS;EACP,eAAe,EAAE,QAAQ;EACzB,cAAc,EAAE,CAAC;EACjB,WAAW,EAAE,IAAI;EACjB,aAAa,EZ/BuB,IAAI;;AYgCxC,6FAAO;EACL,KAAK,EAAE,IAAI;EACX,IAAI,EAAE,8BAA8B;EACpC,OAAO,EAAE,KAAK;EACd,UAAU,EAAE,MAAM;;AACpB,8JAAM;EACJ,SAAS,EZjByB,GAAG;EYkBrC,MAAM,EAAE,CAAC;EACT,QAAQ,EAAE,OAAO;EACjB,OAAO,EZnB2B,QAAmC;;AYoBvE,sOAA8B;EAC5B,iBAAiB,EAAE,CAAC;;AACtB,uFAAK;EACH,KAAK,EAAE,IAAI;EACX,UAAU,EAAE,IAAI;EAChB,cAAc,EAAE,MAAM;EACtB,WAAW,EAAE,MAAM;;AACnB,gGAAE;EACA,WAAW,EZnDqB,IAAI;EYoDpC,aAAa,EAAE,iBAA6B;;AAChD,8EAAE;EACA,gBAAgB,EAAE,WAAW;EAC7B,cAAc,EAAE,MAAM;;;AAE1B,oFAAc;EACZ,WAAW,EAAE,IAAuB;;AACpC,qHAAY;EACV,aAAa,EAAE,CAAC;;;AACpB,8HAA4B;EAC1B,KAAK,EAAE,EAAE;EACT,aAAa,EAAE,CAAC;;AAChB,4XAA0C;EACxC,MAAM,EAAE,CAAC;;;AAEb,mBAAmB;EACjB,KAAK,EV9D+B,IAAY;EU+DhD,SAAS,EAAE,GAAG;;;AAChB,kBAAkB;EAChB,KAAK,EVjE+B,IAAY;EUkEhD,SAAS,EAAE,GAAG;;;AAIhB,6HAAyD;EACvD,gBAAgB,EVzDoB,OAAmB;;;AU2DzD,gBAAgB;EACd,gBAAgB,EV5DoB,OAAmB;;;;AUiEzD,mDAAsB;EACpB,MAAM,EAAE,iBAA6B;;AACrC,yDAAE;EACA,aAAa,EAAE,iBAA6B;EAC5C,WAAW,EAAE,iBAA6B;;AAC5C,qGAAwB;EACtB,mBAAmB,EAAE,CAAC;;;AAE1B,kBAAkB;EAChB,MAAM,EAAE,iBAA6B;;;AAGrC,0BAAE;EACA,aAAa,EAAE,iBAA6B;;AAC9C,gDAAwB;EACtB,mBAAmB,EAAE,CAAC;;;AAGxB,6CAAwB;EACtB,mBAAmB,EAAE,CAAC;;AACxB,gDAAM;EACJ,YAAY,EAAE,SAAS;EACvB,aAAa,EAAE,iBAA6B;;AAC9C,6CAAwB;EACtB,mBAAmB,EAAE,CAAC;;;;AAG1B,oBAAoB;EAClB,aAAa,EZhHuB,IAAI;EYiHxC,SAAS,EAAE,IAAI;EACf,QAAQ,EAAE,IAAI;;AACd,0BAAK;EACH,aAAa,EAAE,YAAY;;AAC3B,4DAAM;EACJ,WAAW,EAAE,MAAM;;;ACzIzB,CAAC;EACC,KAAK,EX+B+B,OAAK;EW9BzC,eAAe,EAAE,IAAI;EACrB,MAAM,EAAE,OAAO;;AACf,OAAO;EACL,KAAK,EbgD6B,OAAwB;;Aa/C5D,SAAS;EACP,KAAK,EX0B6B,OAAO;;;AWA7C,IAAI;EACF,MAAM,EAAE,IAAI;EACZ,UAAU,EAAE,MAAM;;;AAEpB,IAAI;EACF,WAAW,EXOyB,2DAA2D;EWN/F,WAAW,EAAE,MAAM;EACnB,KAAK,EXlB+B,OAAW;EWmB/C,UAAU,EAAE,IAAI;EAChB,UAAU,EAAE,MAAM;EAClB,UAAU,EbnD0B,OAAO;;;AaqD7C,aAAa;EACX,UAAU,EAAE,IAAI;;;AAElB,eAAe;EACb,UAAU,EAAE,MAAM;;;AAEpB,cAAc;EACZ,UAAU,EAAE,KAAK;;;AAEnB,cAAc;EACZ,SAAS,EAAE,IAAI;;;AAEjB,eAAe;EACb,SAAS,EAAE,IAAI;;;AAEjB,qBAAqB;EACnB,SAAS,EAAE,GAAG;;;AAEhB,eAAe;EACb,eAAe,EAAE,YAAY;;;AAE/B,gBAAgB;EACd,KAAK,EAAE,kBAAkB;;;AAC3B,uBAAuB;EACrB,KAAK,EAAE,kBAAgC;;;AACzC,aAAa;EACX,KAAK,EAAE,kBAAgB;;;AACzB,oBAAoB;EAClB,KAAK,EAAE,kBAA8B;;;AACvC,gBAAgB;EACd,KAAK,EAAE,kBAAiB;;;AAC1B,uBAAuB;EACrB,KAAK,EAAE,kBAA+B;;;AACxC,eAAe;EACb,KAAK,EAAE,kBAAe;;;AACxB,sBAAsB;EACpB,KAAK,EAAE,kBAA6B;;;AACtC,gBAAgB;EACd,KAAK,EAAE,kBAAsB;;;AAC/B,uBAAuB;EACrB,KAAK,EAAE,kBAAoC;;;AAkB7C,uEAAyB;EACvB,UAAU,EAAE,CAAC;EACb,WAAW,EAAE,GAAG;EAChB,WAAW,EX5DyB,8DAA8D;;;AW8DpG,CAAC;EACC,WAAW,Eb1FyB,IAAI;Ea2FxC,MAAM,EAAE,CAAC;EACT,SAAS,Eb/F2B,IAAI;EagGxC,aAAa,Eb7FuB,IAAI;;;Aa+F1C,EAAE;EACA,SAAS,EAAE,IAAI;;;AAEjB,2CAAE;EACA,SAAS,EAAE,IAAI;;;AAEjB,EAAE;EACA,SAAS,EAAE,IAAI;;;AAEjB,EAAE;EACA,SAAS,EAAE,IAAI;;;AAEjB,EAAE;EACA,SAAS,EAAE,IAAI;;;AAEjB,EAAE;EACA,SAAS,EAAE,IAAI;;;AAEjB,EAAE;EACA,OAAO,EAAE,KAAK;EACd,MAAM,EAAE,GAAG;EACX,MAAM,EAAE,CAAC;EACT,UAAU,EAAE,iBAA6B;EACzC,MAAM,EAAE,MAAmB;EAC3B,OAAO,EAAE,CAAC;;;AAEZ,wCAAI;EACF,WAAW,EAAE,MAAM;EACnB,SAAS,EAAE,IAAI;EACf,UAAU,EXrH0B,IAAM;EWsH1C,MAAM,EAAE,iBAAiC;EACzC,SAAS,EAAE,GAAG;EACd,OAAO,EAAE,KAAK;EACd,WAAW,EXnGyB,oNAAoN;EWoGxP,KAAK,Eb1H+B,OAAI;Ea2HxC,UAAU,EAAE,IAAI;;AAChB,2CAAY;EACV,SAAS,EAAE,GAAG;;;AAmClB,2FAAmB;EACjB,UAAU,EAAE,IAAI;EAChB,WAAW,EbzKyB,IAAI;Ea0KxC,aAAa,Eb1KuB,IAAI;;Aa2KxC,uGAAE;EACA,UAAU,EAAE,IAAI;EAChB,WAAW,Eb7KuB,IAAI;;Aa8KtC,2JAAY;EACV,aAAa,EAAE,CAAC;;AAClB,mHAAE;EACA,aAAa,EAAE,CAAC;;AAClB,mHAAE;EACA,UAAU,EAAE,MAAM;;AAClB,+HAAE;EACA,UAAU,EAAE,MAAM;;AACtB,+HAAK;EACH,UAAU,EAAE,OAAO;;;AAEzB,oFAAsB;EACpB,UAAU,EAAE,OAAO;EACnB,WAAW,Eb3LyB,IAAI;Ea4LxC,aAAa,Eb5LuB,IAAI;;Aa6LxC,gGAAE;EACA,UAAU,EAAE,OAAO;EACnB,WAAW,Eb/LuB,IAAI;;AagMtC,oJAAY;EACV,aAAa,EAAE,CAAC;;AAClB,4GAAE;EACA,aAAa,EAAE,CAAC;;AAChB,wHAAE;EACA,UAAU,EAAE,IAAI;;;ACrOxB,kBAAkB;EAChB,MAAM,EAAE,iBAA6B;EACrC,aAAa,EAAE,IAAI;EACnB,OAAO,Ed6B6B,IAAI;Ec5BxC,WAAW,EAAE,IAAqB;EAClC,WAAW,EAAE,GAAG;EAChB,UAAU,EZiC0B,IAAM;EYhC1C,QAAQ,EAAE,QAAQ;;AAClB,wBAAO;EACL,OAAO,EAAE,SAAS;EAClB,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,GAAG;EACR,IAAI,EAAE,GAAG;EACT,UAAU,EZiCwB,OAAO;EYhCzC,KAAK,EAAE,KAAoB;EAC3B,OAAO,EAAE,QAA2C;;AACtD,2CAA0B;EACxB,MAAM,EAAE,iBAA6B;EACrC,aAAa,EdcqB,IAAI;;;AcZ1C,mHAAmC;EACjC,MAAM,EAAE,iBAA6B;EACrC,OAAO,EAAE,GAAG;EACZ,UAAU,EAAE,IAAI;EAChB,UAAU,EZe0B,IAAM;EYb1C,MAAM,EAAE,YAAyB;;AACjC,mLAAuB;EACrB,MAAM,EAAE,IAAI;EACZ,UAAU,EAAE,IAAI;EAChB,MAAM,EAAE,CAAC;;;AAEb,+BAA+B;EAC7B,KAAK,EAAE,IAAI;;;AACb,cAAc;EACZ,YAAY,EAAE,iBAA0C;EACxD,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,SAA2C;EACpD,WAAW,EZuByB,oNAAoN;EYtBxP,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,GAAG;EAChB,KAAK,EdI+B,OAAwB;;;AcH9D,2BAA2B;EACzB,WAAW,EAAE,GAAG;EAChB,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,SAA2C;EACpD,WAAW,EZeyB,oNAAoN;EYdxP,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,GAAG;EAChB,OAAO,EAAE,KAAK;EACd,QAAQ,EAAE,IAAI;EACd,KAAK,EZhB+B,OAAW;;;AYoBjD,YAAY;EACV,gJAAgE;IAC9D,WAAW,EAAE,QAAQ;;;ACzDzB,IAAI;EACF,gBAAgB,EAAE,OAAO;EACzB,MAAM,EAAE,OAAO;EACf,OAAO,EAAE,MAAM;EACf,OAAO,EAAE,KAAK;;;AAChB,EAAE;EACA,KAAK,EAAE,OAAO;EACd,UAAU,EAAE,MAAM;;;AACpB,IAAI;EACF,KAAK,EAAE,OAAO;EACd,gBAAgB,EAAE,OAAO;;;AAC3B,EAAE;EACA,WAAW,EAAE,IAAI;;;AACnB,EAAE;EACA,WAAW,EAAE,IAAI;;;AACnB,GAAG;EACD,KAAK,EAAE,OAAO;EACd,UAAU,EAAE,MAAM;;;AACpB,GAAG;EACD,KAAK,EAAE,OAAO;EACd,WAAW,EAAE,IAAI;;;AACnB,GAAG;EACD,KAAK,EAAE,OAAO;EACd,UAAU,EAAE,MAAM;;;AACpB,GAAG;EACD,KAAK,EAAE,OAAO;EACd,WAAW,EAAE,IAAI;EACjB,UAAU,EAAE,MAAM;;;AACpB,GAAG;EACD,KAAK,EAAE,OAAO;EACd,gBAAgB,EAAE,OAAO;;;AAC3B,MAAM;EACJ,KAAK,EAAE,OAAO;EACd,gBAAgB,EAAE,OAAO;;;AAC3B,GAAG;EACD,UAAU,EAAE,MAAM;;;AACpB,GAAG;EACD,KAAK,EAAE,OAAO;;;AAChB,GAAG;EACD,KAAK,EAAE,OAAO;;;AAChB,GAAG;EACD,KAAK,EAAE,OAAO;EACd,gBAAgB,EAAE,OAAO;;;AAC3B,MAAM;EACJ,KAAK,EAAE,OAAO;EACd,gBAAgB,EAAE,OAAO;;;AAC3B,GAAG;EACD,KAAK,EAAE,OAAO;;;AAChB,GAAG;EACD,KAAK,EAAE,OAAO;;;AAChB,GAAG;EACD,WAAW,EAAE,IAAI;;;AACnB,GAAG;EACD,KAAK,EAAE,OAAO;EACd,WAAW,EAAE,IAAI;;;AACnB,GAAG;EACD,KAAK,EAAE,OAAO;;;AAChB,GAAG;EACD,WAAW,EAAE,IAAI;;;AACnB,GAAG;EACD,WAAW,EAAE,IAAI;;;AACnB,GAAG;EACD,WAAW,EAAE,IAAI;;;AACnB,GAAG;EACD,WAAW,EAAE,IAAI;;;AACnB,GAAG;EACD,WAAW,EAAE,IAAI;;;AACnB,GAAG;EACD,KAAK,EAAE,OAAO;EACd,WAAW,EAAE,IAAI;;;AACnB,EAAE;EACA,KAAK,EAAE,OAAO;;;AAChB,EAAE;EACA,KAAK,EAAE,OAAO;;;AAChB,EAAE;EACA,KAAK,EAAE,OAAO;;;AAChB,GAAG;EACD,KAAK,EAAE,IAAI;;;AACb,GAAG;EACD,KAAK,EAAE,OAAO;;;AAChB,GAAG;EACD,KAAK,EAAE,OAAO;EACd,WAAW,EAAE,IAAI;;;AACnB,GAAG;EACD,KAAK,EAAE,IAAI;;;AACb,GAAG;EACD,KAAK,EAAE,MAAM;;;AACf,GAAG;EACD,KAAK,EAAE,OAAO;EACd,WAAW,EAAE,IAAI;;;AACnB,GAAG;EACD,KAAK,EAAE,OAAO;EACd,WAAW,EAAE,IAAI;;;AACnB,GAAG;EACD,KAAK,EAAE,OAAO;;;AAChB,GAAG;EACD,KAAK,EAAE,IAAI;;;AACb,GAAG;EACD,KAAK,EAAE,IAAI;;;AACb,GAAG;EACD,WAAW,EAAE,IAAI;;;AACnB,EAAE;EACA,KAAK,EAAE,OAAO;;;AAChB,GAAG;EACD,KAAK,EAAE,OAAO;;;AAChB,GAAG;EACD,KAAK,EAAE,OAAO;;;AAChB,GAAG;EACD,KAAK,EAAE,OAAO;;;AAChB,GAAG;EACD,KAAK,EAAE,OAAO;;;AAChB,GAAG;EACD,KAAK,EAAE,OAAO;;;AAChB,GAAG;EACD,KAAK,EAAE,OAAO;;;AAChB,GAAG;EACD,KAAK,EAAE,OAAO;;;AAChB,GAAG;EACD,KAAK,EAAE,OAAO;;;AAChB,GAAG;EACD,KAAK,EAAE,OAAO;;;AAChB,GAAG;EACD,KAAK,EAAE,OAAO;;;AAChB,GAAG;EACD,KAAK,EAAE,OAAO;;;AAChB,GAAG;EACD,KAAK,EAAE,OAAO;;;AAChB,GAAG;EACD,KAAK,EAAE,OAAO;;;AAChB,GAAG;EACD,KAAK,EAAE,OAAO;;;AAChB,GAAG;EACD,KAAK,EAAE,OAAO;;;AAChB,GAAG;EACD,KAAK,EAAE,OAAO;;;AAChB,GAAG;EACD,KAAK,EAAE,IAAI;;;AACb,GAAG;EACD,KAAK,EAAE,IAAI;;;AACb,GAAG;EACD,KAAK,EAAE,IAAI;;;AACb,GAAG;EACD,KAAK,EAAE,OAAO;;;AAChB,GAAG;EACD,KAAK,EAAE,IAAI;EACX,gBAAgB,EAAE,OAAO;;;ACjJ3B,kBAAkB;EAChB,OAAO,EAAE,YAAY;;AACrB,uCAAsB;EACpB,KAAK,EAAE,KAAK;;AACd,oBAAC;EACC,OAAO,EAAE,YAAY;EACrB,OAAO,EAAE,GAAG;;AACZ,gCAAa;EACX,YAAY,EAAE,CAAC;;AACnB,+FAAI;EACF,OAAO,EAAE,GAAG;EACZ,MAAM,EAAE,IAAI;EACZ,UAAU,EAAE,IAAI;;AAChB,uHAAS;EACP,KAAK,EdqB2B,OAAW;;;AcpBjD,qBAAqB;EACnB,aAAa,EAAE,CAAC;EAChB,KAAK,EdqB+B,OAAW;EcpB/C,SAAS,EAAE,GAAG;EACd,OAAO,EAAE,YAAY;;;AbanB,oCAAsB;EaTxB,qBAAqB;IACnB,OAAO,EAAE,IAAI;;;EACf,uCAAuC;IACrC,OAAO,EAAE,IAAI;;;AAEjB,YAAY;EACV,uCAAuC;IACrC,OAAO,EAAE,IAAI;;;AC9BjB,SAAS;EACP,QAAQ,EAAE,KAAK;EACf,GAAG,ECAO,OAAO;;;ADGjB,gBAAO;EACL,eAAe,EAAE,IAAI;;;AAEzB,cAAc;EjC+FZ,KAAK,EAAE,CAAC;;AACR,2CAAS;EAEP,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,EAAE;;AACb,oBAAO;EACL,KAAK,EAAE,IAAI;;AiCnGb,oCAAM;EACJ,OAAO,EAAE,YAAY;;AACvB,uBAAQ;EACN,UAAU,EAAE,wBAAoB;;AAEhC,6BAAa;EACX,WAAW,EAAE,iBAAyB;;AACxC,8BAAc;EACZ,YAAY,EAAE,iBAAyB;;AAC3C,gBAAC;EACC,MAAM,EAAE,IAAmB;EAC3B,OAAO,EAAE,YAAY;EACrB,WAAW,EAAE,IAAmB;EAChC,OAAO,EAAE,MAAiB;;;AAE9B,iBAAiB;EACf,KAAK,EjBuD+B,KAAK;;AiBtDzC,qDAAiB;EACf,MAAM,EAAE,IAAmB;EAC3B,OAAO,EAAE,YAAY;EACrB,WAAW,EAAE,IAAmB;EAChC,OAAO,EAAE,SAAS;EAClB,aAAa,EAAE,CAAC;EAChB,OAAO,EAAE,KAAK;EACd,WAAW,EAAE,IAAI;EACjB,cAAc,EAAE,SAAS;EACzB,SAAS,EAAE,GAAG;EACd,KAAK,EfT6B,IAAK;EeUvC,WAAW,EAAE,MAAM;;AAErB,oBAAE;EACA,aAAa,EAAE,CAAC;;AAEhB,+BAAY;EACV,UAAU,EAAE,iBAAyB;;AACvC,kCAAe;EACb,aAAa,EAAE,iBAAyB;;AAC1C,4BAAS;EACP,UAAU,EAAE,OAA4C;;AACxD,8BAAC;EACC,KAAK,EfbyB,IAAY;Eec1C,YAAY,EAAE,iBAAsD;EACpE,OAAO,EAAE,gBAAyB;;AAClC,oCAAO;EACL,UAAU,EAAE,OAA4C;;AAC9D,qGAAI;EACF,MAAM,EAAE,IAAI;EACZ,UAAU,EAAE,OAAO;EACnB,KAAK,EAAE,OAAO;EACd,YAAY,EAAE,CAAC;EACf,aAAa,EAAE,CAAC;;AAElB,wCAAmB;EACjB,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,IAAI;EACX,WAAW,EAAE,MAAM;EAGnB,SAAS,EAAE,KAAI;EACf,WAAW,EAAE,KAAK;EAClB,KAAK,EAAE,OAA8B;;AAGzC,2DAAuB;EACrB,KAAK,EfvC6B,OAAW;EewC7C,OAAO,EAAE,gBAAmB;EAC5B,WAAW,EAAE,IAAI;EACjB,QAAQ,EAAE,QAAQ;EAClB,UAAU,EflCwB,OAAyB;EemC3D,MAAM,EAAE,IAAI;EACZ,aAAa,EAAE,iBAAsD;EACrE,UAAU,EAAE,iBAAsD;EAClE,YAAY,EAAE,YAAY;;AAE1B,uEAAO;EACL,UAAU,EfzCsB,OAAyB;;Ae0CzD,+GAAmB;EACjB,KAAK,EflDyB,IAAY;;AemD9C,mGAAmB;EAGjB,OAAO,EAAE,KAAK;EACd,SAAS,EAAE,KAAI;EACf,WAAW,EAAE,KAAK;EAClB,KAAK,EAAE,OAA8B;;AAIvC,sHAAI;EACF,OAAO,EAAE,IAAI;;AACf,sIAAc;EACZ,OAAO,EAAE,KAAK;;AAGd,2CAAG;EACD,UAAU,EAAE,OAA4C;EACxD,OAAO,EAAE,gBAAyB;;AACpC,yDAAiB;EACf,OAAO,EAAE,KAAK;EACd,UAAU,EAAE,OAA4C;EACxD,OAAO,EAAE,gBAAyB;;AACtC,2DAA2B;EACzB,KAAK,Ef3E2B,IAAY;;Ae4E9C,mDAAmB;EACjB,KAAK,EAAE,OAA4C;;AACvD,+BAAa;EACX,SAAS,EAAE,KAAI;;AAEb,2CAAG;EACD,UAAU,EAAE,OAA4C;EACxD,OAAO,EAAE,gBAAyB;;AACpC,yDAAiB;EACf,OAAO,EAAE,KAAK;EACd,UAAU,EAAE,OAA4C;EACxD,OAAO,EAAE,gBAAyB;EAClC,UAAU,EAAE,IAAI;EAChB,aAAa,EAAE,IAAI;;AACvB,2DAA2B;EACzB,KAAK,Ef3F2B,IAAY;;Ae4F9C,mDAAmB;EACjB,KAAK,EAAE,OAA4C;;AACvD,+BAAa;EACX,SAAS,EAAE,KAAI;;AAEjB,+BAAa;EACX,OAAO,EAAE,KAAK;;AAChB,uBAAK;EACH,aAAa,EAAE,CAAC;EAChB,OAAO,EAAE,IAAI;;AAEb,kCAAK;EACH,OAAO,EAAE,KAAK;;AAClB,4BAAU;EACR,aAAa,EAAE,CAAC;EAChB,KAAK,Ef1G6B,OAAW;Ee2G7C,WAAW,EAAE,MAAM;;AACrB,mBAAC;EACC,OAAO,EAAE,YAAY;EACrB,WAAW,EAAE,IAAI;EACjB,OAAO,EAAE,gBAAmB;EAC5B,OAAO,EAAE,KAAK;EACd,QAAQ,EAAE,QAAQ;EAClB,SAAS,EAAE,GAAG;EACd,KAAK,EfnH6B,OAAW;;AeoH7C,yBAAO;EACL,gBAAgB,EAAE,OAAoC;EACtD,MAAM,EAAE,OAAO;;AACf,6CAAmB;EACjB,KAAK,EfxHyB,OAAW;;AeyH7C,0BAAQ;EACN,gBAAgB,EfnHgB,OAAK;EeoHrC,MAAM,EAAE,OAAO;EACf,KAAK,Ef3H2B,IAAM;;Ae4HtC,8CAAmB;EACjB,KAAK,Ef7HyB,IAAM;;;Ae+H5C,mBAAmB;EACjB,OAAO,EAAE,KAAK;EACd,KAAK,EjBvF+B,KAAK;EiBwFzC,OAAO,EAAE,OAAW;EACpB,aAAa,EAAE,OAAW;EAC1B,OAAO,EjBrF6B,GAAG;EiBsFvC,gBAAgB,Ef/HoB,OAAK;EegIzC,UAAU,EAAE,MAAM;EAClB,OAAO,EAAE,OAAW;EACpB,OAAO,EAAE,KAAK;EACd,KAAK,EfpI+B,OAAyB;EeqI7D,aAAa,EAAE,OAAW;;AAC1B,oCAAgB;EACd,KAAK,EAAE,IAAI;EACX,aAAa,EAAE,IAAI;EACnB,OAAO,EAAE,QAAQ;EACjB,YAAY,EAAE,OAAuB;;AACvC,uBAAG;EACD,OAAO,EAAE,KAAK;EACd,MAAM,EAAE,sBAA0B;EAClC,MAAM,EAAE,IAAI;EACZ,KAAK,EAAE,IAAI;EACX,gBAAgB,Ef/IkB,OAAK;EegJvC,OAAO,EAAE,GAAG;EACZ,aAAa,EAAE,IAAI;;AACrB,6DAAqB;EACnB,KAAK,EfpJ6B,OAAyB;EeqJ3D,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,IAAI;EACjB,OAAO,EAAE,YAAY;EACrB,OAAO,EAAE,OAA2C;EACpD,aAAa,EAAE,OAAW;;AAE1B,yEAAO;EACL,UAAU,EAAE,wBAAoB;;AAClC,+EAAQ;EACN,OAAO,EAAE,KAAK;EACd,MAAM,EAAE,MAAM;EACd,MAAM,EAAE,IAAI;EACZ,KAAK,EAAE,IAAI;EACX,aAAa,EAAE,CAAC;EAChB,SAAS,EAAE,IAAI;EACf,UAAU,EAAE,WAAa;;AAEzB,yFAAQ;EACN,UAAU,EAAE,MAAM;;AACxB,iCAAa;EACX,UAAU,EAAE,SAAkB;EAC9B,aAAa,EAAE,OAAW;EAC1B,WAAW,EAAE,MAAM;EACnB,KAAK,EAAE,wBAAoB;;;AAI7B,gCAAM;EACJ,KAAK,EfhL6B,OAAK;;AeiLzC,2BAAC;EACC,KAAK,EfzL6B,OAAW;;Ae0L7C,iCAAO;EACL,gBAAgB,EfpLgB,OAAK;EeqLrC,KAAK,Ef3L2B,IAAM;;;Ae6L5C,gBAAgB;EnC3NR,kBAAoB,EAAE,gBAAM;EAK5B,eAAiB,EAAE,gBAAM;EAezB,UAAY,EAAE,gBAAM;EmCyM1B,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,CAAC;EACV,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,CAAC;;AACV,4BAAa;EACX,IAAI,EAAE,CAAC;EACP,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,CAAC;;AACZ,0BAAW;EACT,KAAK,EAAE,IAAI;EACX,IAAI,EAAE,KAAK;EACX,OAAO,EAAE,CAAC;;AACZ,2BAAY;EACV,KAAK,EAAE,KAAK;EACZ,IAAI,EAAE,IAAI;EACV,OAAO,EAAE,CAAC;;;AAGd,gBAAgB;EACd,UAAU,EAAE,qBAAuC;EACnD,gBAAgB,EAAE,2uCAA2uC;EAC7vC,eAAe,EAAE,SAAsB;;;AAEzC,gBAAgB;EACd,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;;;AAEd,YAAY;EACV,QAAQ,EAAE,KAAK;EACf,GAAG,EAAE,CAAC;EACN,MAAM,EAAE,CAAC;EACT,IAAI,EAAE,CAAC;EACP,cAAc,EAAE,GAAG;EACnB,KAAK,EjBvL+B,KAAK;EiBwLzC,UAAU,EAAE,MAAM;EAClB,UAAU,EAAE,MAAM;EAClB,UAAU,EAAE,IAAI;EAChB,UAAU,EflO0B,OAAsB;EemO1D,OAAO,EjBvL6B,GAAG;;;AiByLzC,eAAe;EACb,KAAK,EAAE,KAAyB;EAChC,QAAQ,EAAE,QAAQ;EAClB,UAAU,EAAE,MAAM;EAClB,UAAU,EAAE,MAAM;EAClB,MAAM,EAAE,IAAI;;;AAEd,WAAW;EACT,OAAO,EAAE,IAAI;EACb,UAAU,Ef3O0B,OAAK;Ee4OzC,KAAK,EflP+B,IAAM;EemP1C,OAAO,EAAE,gBAAuB;EAChC,QAAQ,EAAE,QAAQ;EAClB,WAAW,EAAE,IAAI;EACjB,UAAU,EAAE,MAAM;EAClB,SAAS,EAAE,IAAI;EjCvLf,KAAK,EAAE,CAAC;;AACR,qCAAS;EAEP,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,EAAE;;AACb,iBAAO;EACL,KAAK,EAAE,IAAI;;AiCmLb,aAAC;EACC,KAAK,Ef1P6B,IAAM;Ee2PxC,WAAW,EAAE,IAAI;;AAEnB,eAAG;EACD,YAAY,EAAE,IAAqB;EACnC,MAAM,EAAE,IAAI;EACZ,KAAK,EAAE,IAAI;EACX,gBAAgB,Ef3PkB,OAAK;Ee4PvC,OAAO,EAAE,GAAG;EACZ,aAAa,EAAE,IAAI;;AACrB,aAAC;EACC,SAAS,EAAE,IAAI;EACf,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,OAAO;EACf,WAAW,EAAE,OAAO;;;AAExB,oBAAoB;EAClB,WAAW,EjBjOyB,KAAK;EiBkOzC,UAAU,EfvQ0B,OAAyB;EewQ7D,UAAU,EAAE,IAAI;;;AAElB,eAAe;EACb,OAAO,EAAE,eAAmB;EAC5B,MAAM,EAAE,IAAI;EACZ,SAAS,EAAE,IAAI;EACf,MAAM,EAAE,IAAI;;;AAEd,aAAa;EACX,QAAQ,EAAE,KAAK;EACf,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;EACZ,UAAU,EAAE,kBAAc;EAC1B,OAAO,EAAE,IAAI;EACb,OAAO,EAAE,GAAkB;;AAC3B,gBAAI;EACF,OAAO,EAAE,KAAK;;;AAClB,MAAM;EACJ,KAAK,EfhT+B,IAAW;;AeiT/C,QAAC;EACC,aAAa,EAAE,IAAqB;;AACtC,+FAAgB;EACd,OAAO,EAAE,GAAG;EACZ,WAAW,Ef9QuB,oNAAoN;Ee+QtP,SAAS,EAAE,GAAG;EACd,UAAU,EAAE,IAAI;EAChB,MAAM,EAAE,IAAI;EACZ,KAAK,EfzT6B,IAAW;;;Ae2TjD,mBAAmB;EjC1OjB,KAAK,EAAE,CAAC;;AACR,qDAAS;EAEP,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,EAAE;;AACb,yBAAO;EACL,KAAK,EAAE,IAAI;;;AiCuOf,wBAAwB;EACtB,UAAU,EAAE,IAAI;EjC9OhB,KAAK,EAAE,CAAC;;AACR,+DAAS;EAEP,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,EAAE;;AACb,8BAAO;EACL,KAAK,EAAE,IAAI;;;AiC4Ob,0BAAU;EACR,aAAa,EjB1TqB,IAAI;EiB2TtC,aAAa,EAAE,iBAA6B;EAC5C,cAAc,EjB5ToB,IAAI;;AiB6TxC,sCAAsB;EACpB,UAAU,EAAE,iBAA6B;EACzC,WAAW,EjB/TuB,IAAI;;AiBgUxC,4BAAY;EACV,SAAS,EAAE,IAAI;EACf,aAAa,EAAE,IAAqB;EACpC,OAAO,EAAE,YAAY;;AACvB,wBAAQ;EACN,KAAK,EfhU6B,IAAY;EeiU9C,SAAS,EAAE,GAAG;;;AdtUd,oCAAsB;Ec0UxB,gBAAgB;IACd,UAAU,Ef/TwB,OAAyB;;;EegU7D,WAAW;IACT,OAAO,EAAE,KAAK;;;EAChB,YAAY;IAER,IAAI,EAAE,MAAmB;;EAG3B,kBAAO;IACL,KAAK,EAAE,GAAG;IACV,IAAI,EAAE,CAAC;;;EACX,eAAe;IACb,KAAK,EAAE,IAAI;;;EACb,mBAAmB;IACjB,KAAK,EAAE,IAAI;;;EACb,yBAAyB;IACvB,KAAK,EAAE,IAAI;;;EACb,oBAAoB;IAClB,WAAW,EAAE,CAAC;;EACd,oCAAe;IACb,OAAO,EC7XD,OAAO;;ED8Xf,0BAAO;IACL,QAAQ,EAAE,KAAK;IACf,SAAS,EAAE,IAAI;IACf,IAAI,EAAE,GAAG;IACT,GAAG,EAAE,CAAC;IACN,MAAM,EAAE,IAAI;IACZ,QAAQ,EAAE,MAAM;;;AdtWlB,qCAAsB;EcyWxB,oBAAoB;IAClB,UAAU,EAAE,mBAAe;;;EAC7B,eAAe;IACb,MAAM,EAAE,CAAC;IACT,UAAU,EfjWwB,OAAyB;;;AemW/D,YAAY;EACV,mCAAmC;IACjC,OAAO,EAAE,IAAI;;;EACf,oBAAoB;IAClB,WAAW,EAAE,CAAC;;;AEnZlB,aAAa;EACX,QAAQ,EAAE,KAAK;EACf,MAAM,EAAE,CAAC;EACT,IAAI,EAAE,CAAC;EACP,KAAK,EnB6E+B,KAAK;EmB5EzC,KAAK,EjBuC+B,OAAyB;EiBtC7D,UAAU,EAAE,OAAkC;EAC9C,UAAU,EAAE,kBAAiC;EAC7C,WAAW,EjBkDyB,2DAA2D;EiBjD/F,OAAO,EnB+E6B,GAAG;;AmB9EvC,eAAC;EACC,KAAK,EjBkC6B,OAAK;EiBjCvC,eAAe,EAAE,IAAI;;AACvB,8BAAgB;EACd,OAAO,EAAE,IAAI;;AACf,kCAAoB;EAClB,OAAO,EAAE,IAAqB;EAC9B,gBAAgB,EAAE,OAAkC;EACpD,OAAO,EAAE,KAAK;EACd,UAAU,EAAE,KAAK;EACjB,SAAS,EAAE,GAAG;EACd,MAAM,EAAE,OAAO;EACf,KAAK,EjBX6B,OAAM;ElB4F1C,KAAK,EAAE,CAAC;;AACR,mFAAS;EAEP,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,EAAE;;AACb,wCAAO;EACL,KAAK,EAAE,IAAI;;AmCrFX,gsDAAG;EACD,KAAK,EjBmB2B,OAAyB;;AiBlB3D,0FAAQ;EACN,KAAK,EAAE,IAAI;;AACb,6CAAU;EACR,KAAK,EAAE,IAAI;;AACb,kDAAiB;EACf,gBAAgB,EnBQgB,OAAI;EmBPpC,KAAK,EjBO2B,IAAM;;AiBNxC,yDAAwB;EACtB,gBAAgB,EjBsBgB,OAAO;EiBrBvC,KAAK,EnBzB2B,IAAI;;AmB0BxC,0CAA8B;EAC5B,OAAO,EAAE,KAAK;;AAChB,iCAAmB;EACjB,SAAS,EAAE,GAAG;EACd,OAAO,EAAE,IAAqB;EAC9B,KAAK,EjBJ6B,IAAY;EiBK9C,OAAO,EAAE,IAAI;;AACb,oCAAE;EACA,OAAO,EAAE,KAAK;EACd,MAAM,EAAE,GAAG;EACX,MAAM,EAAE,CAAC;EACT,MAAM,EAAE,MAAM;EACd,OAAO,EAAE,CAAC;EACV,UAAU,EAAE,iBAA6C;;AAC3D,oCAAE;EACA,OAAO,EAAE,YAAY;EACrB,MAAM,EAAE,CAAC;;AACT,sCAAC;EACC,OAAO,EAAE,YAAY;EACrB,OAAO,EAAE,GAAqB;EAC9B,KAAK,EjBZyB,OAAyB;;AiBa7D,uBAAW;EACT,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;EACZ,KAAK,EAAE,IAAI;EACX,IAAI,EAAE,IAAI;EACV,MAAM,EAAE,IAAI;EACZ,SAAS,EnBkByB,KAAK;;AmBjBvC,kCAAU;EACR,KAAK,EAAE,IAAI;;AACb,oEAAQ;EACN,KAAK,EAAE,IAAI;;AACb,qDAA+B;EAC7B,UAAU,EAAE,KAAK;;AACjB,gIAAQ;EACN,KAAK,EAAE,IAAI;;AACb,gEAAU;EACR,KAAK,EAAE,IAAI;;AACf,4CAAoB;EAClB,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;EACZ,WAAW,EAAE,IAAI;EACjB,OAAO,EAAE,KAAuB;EAChC,OAAO,EAAE,KAAK;EACd,UAAU,EAAE,MAAM;;;AhBhDpB,oCAAsB;EgBmDxB,aAAa;IACX,KAAK,EAAE,GAAG;IACV,OAAO,EAAE,IAAI;;EACb,mBAAO;IACL,OAAO,EAAE,KAAK;;;ACtElB,gBAAG;EACD,SAAS,EAAE,IAAI;EACf,MAAM,EAAE,eAAe;;AAEzB,4DAAkC;EAChC,WAAW,EAAE,MAAM;;AAErB,uBAAU;EACR,aAAa,EpBOqB,IAAI;;AoBNtC,iCAAS;EACP,UAAU,EAAE,MAAM;;AAEtB,oCAAuB;EACrB,UAAU,EAAE,MAAM;;AAGpB,4DAAoC;EAClC,aAAa,EpBFqB,IAAI;;AoBaxC,uBAAU;EACR,WAAW,EpBduB,IAAI;EoBetC,WAAW,EpBfuB,IAAI;EoBgBtC,aAAa,EpBhBqB,IAAI;;AoBsBtC,4TAAK;EACH,aAAa,EAAE,CAAC;;AAKlB,qCAAQ;EACN,YAAY,EAAE,GAAG;;AAUrB,8BAAiB;EACf,YAAY,EAAE,kBAAc;;AAC5B,oEAAM;EACJ,UAAU,EAAE,sBAAsB;EAClC,YAAY,EAAE,6BAAyB;;AAG3C,2EAAiD;EAC/C,UAAU,EAAE,WAAW;;AACzB,2EAAiD;EAC/C,UAAU,EAAE,WAAW;;AAGzB,sDAA4B;EAC1B,aAAa,EAAE,IAAqB;;AACtC,wBAAW;EACT,WAAW,EpBvDuB,IAAI;;AoB0DxC,yBAAY;EACV,WAAW,EAAE,IAAI;EACjB,aAAa,EAAE,IAAqB;;AACtC,yBAAY;EACV,KAAK,ElB3D6B,OAAW;;AkB4D/C,yBAAY;EACV,KAAK,EAAE,KAAK;EACZ,MAAM,EAAE,iBAA2C;;AACrD,wBAAW;EACT,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,iBAA2C;;AACrD,0BAAa;EACX,MAAM,EAAE,IAAI;EACZ,OAAO,EAAE,KAAK;;AAMd,qSAAW;EACT,OAAO,EAAE,IAAI;EACb,UAAU,EAAE,MAAM;EAClB,SAAS,EAAE,IAAI;;AAEf,2VAAO;EACL,UAAU,EAAE,OAAO;EACnB,OAAO,EAAE,GAAO;EAChB,WAAW,EAAE,WAAW;EACxB,OAAO,EAAE,YAAY;;AACzB,2VAAmB;EACjB,OAAO,EAAE,YAAY;;AAGzB,qBAAQ;EACN,KAAK,EAAE,KAAK;EACZ,KAAK,EAAE,GAAG;EACV,OAAO,EAAE,KAAK;EACd,MAAM,EAAE,aAAuC;EAC/C,OAAO,EpBhG2B,IAAI;EoBiGtC,UAAU,ElB9EwB,OAAmB;EkB+ErD,MAAM,EAAE,iBAA+B;;AAEvC,2EAAS;EACP,SAAS,EAAE,GAAG;;AAChB,2BAAK;EACH,aAAa,EAAE,CAAC;;AAClB,oCAAc;EACZ,OAAO,EAAE,KAAK;EACd,WAAW,ElB/EqB,8DAA8D;EkBgF9F,WAAW,EAAE,IAAI;EACjB,UAAU,ElBvFsB,OAAmB;EkBwFnD,OAAO,EAAE,QAA2C;EACpD,MAAM,EAAE,KAAkB;EAC1B,aAAa,EpB/GmB,IAAI;EoBgHpC,SAAS,EAAE,IAAI;;AAEnB,yBAAY;EACV,UAAU,ElB3FwB,OAAO;EkB4FzC,OAAO,EAAE,YAAY;EACrB,WAAW,EAAE,IAAI;EACjB,OAAO,EAAE,KAAuB;;AAGlC,kEAAwC;EACtC,cAAc,EAAE,KAAK;EACrB,SAAS,EAAE,GAAG;;AAIhB,0EAAgD;EAC9C,UAAU,EAAE,IAAI;EAChB,MAAM,EAAE,IAAI;EACZ,KAAK,ElB5I6B,IAAW;;AkB6I7C,kKAAM;EACJ,MAAM,EAAE,IAAI;EACZ,gBAAgB,EAAE,sBAAsB;EACxC,WAAW,EAAE,MAAM;;AACrB,4FAAQ;EACN,YAAY,EAAE,CAAC;EACf,aAAa,EAAE,CAAC;EAChB,cAAc,EAAE,GAAG;;AACrB,sKAAI;EACF,KAAK,ElBhJ2B,IAAK;;AkBuJzC,6BAAgB;EAEd,MAAM,EAAE,IAAI;;AACZ,gCAAE;EACA,MAAM,EAAE,IAAI;EACZ,WAAW,EAAE,GAAG;;AAClB,yCAAW;EACT,OAAO,EAAE,YAAY;EACrB,UAAU,EAAE,GAAG;;AACjB,yCAAW;EACT,aAAa,EAAE,IAAI;EACnB,UAAU,EAAE,IAAI;EAChB,WAAW,EAAE,MAAM;;AACrB,yCAAW;EACT,UAAU,EAAE,IAAI;EAChB,YAAY,EAAE,CAAC;;AAGnB,mDAAQ;EAEN,KAAK,EpB7L6B,IAAI;EoB8LtC,OAAO,EAAE,OAAO;;AAChB,6HAAO;EACL,SAAS,EAAE,eAAe;EAC1B,WAAW,EAAE,MAAM;;AAErB,2EAAS;EACP,KAAK,EpBvK2B,OAAI;;AoBwKtC,6HAAW;EACT,WAAW,EAAE,IAAI;EACjB,KAAK,ElB9K2B,OAAW;;AkBgL/C,yDAAY;EACV,KAAK,ElBvK6B,OAAK;;AkBwKzC,eAAE;EACA,aAAa,EpBtLqB,IAAI;;AoBuLtC,kBAAE;EACA,WAAW,EAAE,IAAI;;AAEnB,gFAAgB;EACd,aAAa,EAAE,eAAgC;;AAEjD,kBAAE;EACA,MAAM,EAAE,aAA4C;;AAMxD,8BAAiB;EACf,aAAa,EpBrMqB,IAAI;;AoBuMtC,iCAAE;EACA,OAAO,EAAE,KAAK;EACd,MAAM,EAAE,KAAuB;EAC/B,SAAS,EAAE,GAAG;EACd,WAAW,EAAE,MAAM;EACnB,UAAU,EAAE,OAA0B;EACtC,KAAK,ElBhM2B,OAAK;EkBiMrC,UAAU,EAAE,iBAAoC;EAChD,OAAO,EAAE,GAAqB;EAC9B,QAAQ,EAAE,QAAQ;;AAClB,wCAAQ;EACN,KAAK,EAAE,OAA0B;;AACnC,6CAAW;EACT,KAAK,ElBjNyB,OAAW;EkBkNzC,SAAS,EAAE,eAAe;;AAE9B,oCAAK;EACH,aAAa,EAAE,GAAqB;EACpC,MAAM,EAAE,IAAI;EACZ,WAAW,EAAE,iBAAuB;EACpC,UAAU,EAAE,OAAa;EACzB,KAAK,ElBhO2B,IAAK;;AkBiOrC,gDAAW;EACT,KAAK,ElB3NyB,OAAW;EkB4NzC,SAAS,EAAE,eAAe;;AAC9B,6CAAc;EACZ,UAAU,EAAE,CAAC;;AAEf,yGAAQ;EACN,WAAW,EAAE,IAAI;;AACjB,yRAA2B;EACzB,gBAAgB,EAAE,WAAW;EAC7B,MAAM,EAAE,IAAI;EACZ,OAAO,EAAE,CAAC;EACV,SAAS,EAAE,eAAe;;AAC5B,oIAAU;EACR,WAAW,EAAE,IAAI;;AAErB,wCAAS;EACP,OAAO,EAAE,YAAY;EACrB,OAAO,EAAE,KAAK;EACd,KAAK,EpBtQ2B,IAAI;EoBuQpC,WAAW,EAAE,IAAI;;AACnB,wCAAS;EACP,OAAO,EAAE,YAAY;EACrB,aAAa,EAAE,GAAG;;AAEtB,wDAA8B;EAC5B,OAAO,EAAE,YAAY;EACrB,KAAK,ElB7Q6B,OAAM;EkB8QxC,SAAS,EAAE,GAAG;EACd,YAAY,EpB1PsB,IAAI;;AoB2PxC,2BAAc;EACZ,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,KAAK;;AACd,qBAAQ;EACN,aAAa,EAAE,IAAI;EACnB,WAAW,EAAE,IAAI;;AAEnB,oDAAa;EACX,UAAU,EAAE,OAAO;EACnB,OAAO,EAAE,OAAO;EAChB,WAAW,EAAE,MAAM;EACnB,WAAW,EAAE,OAAO;EACpB,SAAS,EAAE,OAAO;EAClB,KAAK,EAAE,OAAO;EACd,MAAM,EAAE,OAAO;EACf,WAAW,EAAE,OAAO;;AACpB,sFAAgB;EACd,sBAAsB,EAAE,oBAAoB;;AAG5C,oGAAQ;EACN,YAAY,EAAE,GAAG;;AACvB,sBAAS;EACP,MAAM,EAAE,iBAAuC;EAC/C,UAAU,EAAE,OAA6B;EACzC,SAAS,EAAE,GAAG;EACd,WAAW,EAAE,GAAG;EAChB,aAAa,EAAE,GAAqB;EACpC,OAAO,EAAE,SAA4C;EACrD,MAAM,EAAE,QAA2B;;AACrC,6BAAgB;EACd,UAAU,EAAE,MAAM;;;AjB1RlB,oCAAsB;EiBgStB,qBAAQ;IACN,KAAK,EAAE,IAAI;;;ACjUjB,wBAAwB;EACtB,KAAK,EnBkC+B,OAAW;;;AmBhCjD,KAAK;EACH,UAAU,EAAE,MAAM;;;;ECHlB,WAAW,EAAE,aAAa;EAC1B,UAAU,EAAE,MAAM;EAClB,WAAW,EAAE,GAAG;EAChB,GAAG,EAAE,4GAA4G;;;EAGjH,WAAW,EAAE,aAAa;EAC1B,UAAU,EAAE,MAAM;EAClB,WAAW,EAAE,GAAG;EAChB,GAAG,EAAE,2GAA2G;;;EAGhH,WAAW,EAAE,MAAM;EACnB,UAAU,EAAE,MAAM;EAClB,WAAW,EAAE,GAAG;EAChB,GAAG,EAAE,+FAA+F;;;EAGpG,WAAW,EAAE,MAAM;EACnB,UAAU,EAAE,MAAM;EAClB,WAAW,EAAE,GAAG;EAChB,GAAG,EAAE,sFAAsF;;;EAG3F,WAAW,EAAE,aAAa;EAC1B,UAAU,EAAE,MAAM;EAClB,WAAW,EAAE,GAAG;EAChB,GAAG,EAAE,kHAAkH;;;EAGvH,WAAW,EAAE,aAAa;EAC1B,UAAU,EAAE,MAAM;EAClB,WAAW,EAAE,GAAG;EAChB,GAAG,EAAE,yGAAyG", +"sources": ["../../../bower_components/neat/app/assets/stylesheets/grid/_grid.scss","../../../bower_components/bourbon/dist/addons/_prefixer.scss","../../../bower_components/wyrm/sass/wyrm_core/_reset.sass","../../../bower_components/wyrm/sass/wyrm_core/_mixin.sass","../../../bower_components/font-awesome/scss/font-awesome.scss","../../../bower_components/font-awesome/scss/_path.scss","../../../bower_components/font-awesome/scss/_core.scss","../../../bower_components/font-awesome/scss/_larger.scss","../../../bower_components/font-awesome/scss/_fixed-width.scss","../../../bower_components/font-awesome/scss/_list.scss","../../../bower_components/font-awesome/scss/_variables.scss","../../../bower_components/font-awesome/scss/_bordered-pulled.scss","../../../bower_components/font-awesome/scss/_animated.scss","../../../bower_components/font-awesome/scss/_rotated-flipped.scss","../../../bower_components/font-awesome/scss/_mixins.scss","../../../bower_components/font-awesome/scss/_stacked.scss","../../../bower_components/font-awesome/scss/_icons.scss","../../../bower_components/font-awesome/scss/_screen-reader.scss","../../../bower_components/wyrm/sass/wyrm_core/_font_icon_defaults.sass","../../../bower_components/wyrm/sass/wyrm_core/_wy_variables.sass","../../../bower_components/wyrm/sass/wyrm_core/_alert.sass","../../../sass/_theme_variables.sass","../../../bower_components/neat/app/assets/stylesheets/grid/_media.scss","../../../bower_components/wyrm/sass/wyrm_core/_button.sass","../../../bower_components/wyrm/sass/wyrm_core/_dropdown.sass","../../../bower_components/wyrm/sass/wyrm_core/_form.sass","../../../bower_components/neat/app/assets/stylesheets/grid/_outer-container.scss","../../../bower_components/neat/app/assets/stylesheets/settings/_grid.scss","../../../bower_components/neat/app/assets/stylesheets/grid/_span-columns.scss","../../../bower_components/wyrm/sass/wyrm_core/_neat_extra.sass","../../../bower_components/wyrm/sass/wyrm_core/_generic.sass","../../../bower_components/wyrm/sass/wyrm_core/_table.sass","../../../bower_components/wyrm/sass/wyrm_core/_type.sass","../../../bower_components/wyrm/sass/wyrm_addons/pygments/_pygments.sass","../../../bower_components/wyrm/sass/wyrm_addons/pygments/_pygments_light.sass","../../../sass/_theme_breadcrumbs.sass","../../../sass/_theme_layout.sass","../../../bower_components/neat/app/assets/stylesheets/grid/_private.scss","../../../sass/_theme_badge.sass","../../../sass/_theme_rst.sass","../../../sass/_theme_mathjax.sass","../../../sass/_theme_font_local.sass"], +"names": [], +"file": "theme.css" +} diff --git a/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/static/fonts/FontAwesome.otf b/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/static/fonts/FontAwesome.otf new file mode 100644 index 0000000..e69de29 diff --git a/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/static/fonts/Inconsolata-Bold.ttf b/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/static/fonts/Inconsolata-Bold.ttf new file mode 100644 index 0000000..e69de29 diff --git a/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/static/fonts/Inconsolata-Regular.ttf b/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/static/fonts/Inconsolata-Regular.ttf new file mode 100644 index 0000000..e69de29 diff --git a/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/static/fonts/Lato-Bold.ttf b/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/static/fonts/Lato-Bold.ttf new file mode 100644 index 0000000..e69de29 diff --git a/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/static/fonts/Lato-Regular.ttf b/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/static/fonts/Lato-Regular.ttf new file mode 100644 index 0000000..e69de29 diff --git a/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/static/fonts/RobotoSlab-Bold.ttf b/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/static/fonts/RobotoSlab-Bold.ttf new file mode 100644 index 0000000..e69de29 diff --git a/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/static/fonts/RobotoSlab-Regular.ttf b/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/static/fonts/RobotoSlab-Regular.ttf new file mode 100644 index 0000000..e69de29 diff --git a/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/static/fonts/fontawesome-webfont.eot b/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/static/fonts/fontawesome-webfont.eot new file mode 100644 index 0000000..e69de29 diff --git a/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/static/fonts/fontawesome-webfont.svg b/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/static/fonts/fontawesome-webfont.svg new file mode 100644 index 0000000..8b66187 --- /dev/null +++ b/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/static/fonts/fontawesome-webfont.svg @@ -0,0 +1,685 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/static/fonts/fontawesome-webfont.ttf b/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/static/fonts/fontawesome-webfont.ttf new file mode 100644 index 0000000..e69de29 diff --git a/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/static/fonts/fontawesome-webfont.woff b/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/static/fonts/fontawesome-webfont.woff new file mode 100644 index 0000000..e69de29 diff --git a/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/static/fonts/fontawesome-webfont.woff2 b/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/static/fonts/fontawesome-webfont.woff2 new file mode 100644 index 0000000..e69de29 diff --git a/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/static/js/modernizr.min.js b/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/static/js/modernizr.min.js new file mode 100644 index 0000000..f65d479 --- /dev/null +++ b/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/static/js/modernizr.min.js @@ -0,0 +1,4 @@ +/* Modernizr 2.6.2 (Custom Build) | MIT & BSD + * Build: http://modernizr.com/download/#-fontface-backgroundsize-borderimage-borderradius-boxshadow-flexbox-hsla-multiplebgs-opacity-rgba-textshadow-cssanimations-csscolumns-generatedcontent-cssgradients-cssreflections-csstransforms-csstransforms3d-csstransitions-applicationcache-canvas-canvastext-draganddrop-hashchange-history-audio-video-indexeddb-input-inputtypes-localstorage-postmessage-sessionstorage-websockets-websqldatabase-webworkers-geolocation-inlinesvg-smil-svg-svgclippaths-touch-webgl-shiv-mq-cssclasses-addtest-prefixed-teststyles-testprop-testallprops-hasevent-prefixes-domprefixes-load + */ +;window.Modernizr=function(a,b,c){function D(a){j.cssText=a}function E(a,b){return D(n.join(a+";")+(b||""))}function F(a,b){return typeof a===b}function G(a,b){return!!~(""+a).indexOf(b)}function H(a,b){for(var d in a){var e=a[d];if(!G(e,"-")&&j[e]!==c)return b=="pfx"?e:!0}return!1}function I(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:F(f,"function")?f.bind(d||b):f}return!1}function J(a,b,c){var d=a.charAt(0).toUpperCase()+a.slice(1),e=(a+" "+p.join(d+" ")+d).split(" ");return F(b,"string")||F(b,"undefined")?H(e,b):(e=(a+" "+q.join(d+" ")+d).split(" "),I(e,b,c))}function K(){e.input=function(c){for(var d=0,e=c.length;d',a,""].join(""),l.id=h,(m?l:n).innerHTML+=f,n.appendChild(l),m||(n.style.background="",n.style.overflow="hidden",k=g.style.overflow,g.style.overflow="hidden",g.appendChild(n)),i=c(l,a),m?l.parentNode.removeChild(l):(n.parentNode.removeChild(n),g.style.overflow=k),!!i},z=function(b){var c=a.matchMedia||a.msMatchMedia;if(c)return c(b).matches;var d;return y("@media "+b+" { #"+h+" { position: absolute; } }",function(b){d=(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle)["position"]=="absolute"}),d},A=function(){function d(d,e){e=e||b.createElement(a[d]||"div"),d="on"+d;var f=d in e;return f||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(d,""),f=F(e[d],"function"),F(e[d],"undefined")||(e[d]=c),e.removeAttribute(d))),e=null,f}var a={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return d}(),B={}.hasOwnProperty,C;!F(B,"undefined")&&!F(B.call,"undefined")?C=function(a,b){return B.call(a,b)}:C=function(a,b){return b in a&&F(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=w.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(w.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(w.call(arguments)))};return e}),s.flexbox=function(){return J("flexWrap")},s.canvas=function(){var a=b.createElement("canvas");return!!a.getContext&&!!a.getContext("2d")},s.canvastext=function(){return!!e.canvas&&!!F(b.createElement("canvas").getContext("2d").fillText,"function")},s.webgl=function(){return!!a.WebGLRenderingContext},s.touch=function(){var c;return"ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch?c=!0:y(["@media (",n.join("touch-enabled),("),h,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(a){c=a.offsetTop===9}),c},s.geolocation=function(){return"geolocation"in navigator},s.postmessage=function(){return!!a.postMessage},s.websqldatabase=function(){return!!a.openDatabase},s.indexedDB=function(){return!!J("indexedDB",a)},s.hashchange=function(){return A("hashchange",a)&&(b.documentMode===c||b.documentMode>7)},s.history=function(){return!!a.history&&!!history.pushState},s.draganddrop=function(){var a=b.createElement("div");return"draggable"in a||"ondragstart"in a&&"ondrop"in a},s.websockets=function(){return"WebSocket"in a||"MozWebSocket"in a},s.rgba=function(){return D("background-color:rgba(150,255,150,.5)"),G(j.backgroundColor,"rgba")},s.hsla=function(){return D("background-color:hsla(120,40%,100%,.5)"),G(j.backgroundColor,"rgba")||G(j.backgroundColor,"hsla")},s.multiplebgs=function(){return D("background:url(https://),url(https://),red url(https://)"),/(url\s*\(.*?){3}/.test(j.background)},s.backgroundsize=function(){return J("backgroundSize")},s.borderimage=function(){return J("borderImage")},s.borderradius=function(){return J("borderRadius")},s.boxshadow=function(){return J("boxShadow")},s.textshadow=function(){return b.createElement("div").style.textShadow===""},s.opacity=function(){return E("opacity:.55"),/^0.55$/.test(j.opacity)},s.cssanimations=function(){return J("animationName")},s.csscolumns=function(){return J("columnCount")},s.cssgradients=function(){var a="background-image:",b="gradient(linear,left top,right bottom,from(#9f9),to(white));",c="linear-gradient(left top,#9f9, white);";return D((a+"-webkit- ".split(" ").join(b+a)+n.join(c+a)).slice(0,-a.length)),G(j.backgroundImage,"gradient")},s.cssreflections=function(){return J("boxReflect")},s.csstransforms=function(){return!!J("transform")},s.csstransforms3d=function(){var a=!!J("perspective");return a&&"webkitPerspective"in g.style&&y("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",function(b,c){a=b.offsetLeft===9&&b.offsetHeight===3}),a},s.csstransitions=function(){return J("transition")},s.fontface=function(){var a;return y('@font-face {font-family:"font";src:url("https://")}',function(c,d){var e=b.getElementById("smodernizr"),f=e.sheet||e.styleSheet,g=f?f.cssRules&&f.cssRules[0]?f.cssRules[0].cssText:f.cssText||"":"";a=/src/i.test(g)&&g.indexOf(d.split(" ")[0])===0}),a},s.generatedcontent=function(){var a;return y(["#",h,"{font:0/0 a}#",h,':after{content:"',l,'";visibility:hidden;font:3px/1 a}'].join(""),function(b){a=b.offsetHeight>=3}),a},s.video=function(){var a=b.createElement("video"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,""),c.h264=a.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,""),c.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,"")}catch(d){}return c},s.audio=function(){var a=b.createElement("audio"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),c.mp3=a.canPlayType("audio/mpeg;").replace(/^no$/,""),c.wav=a.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),c.m4a=(a.canPlayType("audio/x-m4a;")||a.canPlayType("audio/aac;")).replace(/^no$/,"")}catch(d){}return c},s.localstorage=function(){try{return localStorage.setItem(h,h),localStorage.removeItem(h),!0}catch(a){return!1}},s.sessionstorage=function(){try{return sessionStorage.setItem(h,h),sessionStorage.removeItem(h),!0}catch(a){return!1}},s.webworkers=function(){return!!a.Worker},s.applicationcache=function(){return!!a.applicationCache},s.svg=function(){return!!b.createElementNS&&!!b.createElementNS(r.svg,"svg").createSVGRect},s.inlinesvg=function(){var a=b.createElement("div");return a.innerHTML="",(a.firstChild&&a.firstChild.namespaceURI)==r.svg},s.smil=function(){return!!b.createElementNS&&/SVGAnimate/.test(m.call(b.createElementNS(r.svg,"animate")))},s.svgclippaths=function(){return!!b.createElementNS&&/SVGClipPath/.test(m.call(b.createElementNS(r.svg,"clipPath")))};for(var L in s)C(s,L)&&(x=L.toLowerCase(),e[x]=s[L](),v.push((e[x]?"":"no-")+x));return e.input||K(),e.addTest=function(a,b){if(typeof a=="object")for(var d in a)C(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,typeof f!="undefined"&&f&&(g.className+=" "+(b?"":"no-")+a),e[a]=b}return e},D(""),i=k=null,function(a,b){function k(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function l(){var a=r.elements;return typeof a=="string"?a.split(" "):a}function m(a){var b=i[a[g]];return b||(b={},h++,a[g]=h,i[h]=b),b}function n(a,c,f){c||(c=b);if(j)return c.createElement(a);f||(f=m(c));var g;return f.cache[a]?g=f.cache[a].cloneNode():e.test(a)?g=(f.cache[a]=f.createElem(a)).cloneNode():g=f.createElem(a),g.canHaveChildren&&!d.test(a)?f.frag.appendChild(g):g}function o(a,c){a||(a=b);if(j)return a.createDocumentFragment();c=c||m(a);var d=c.frag.cloneNode(),e=0,f=l(),g=f.length;for(;e",f="hidden"in a,j=a.childNodes.length==1||function(){b.createElement("a");var a=b.createDocumentFragment();return typeof a.cloneNode=="undefined"||typeof a.createDocumentFragment=="undefined"||typeof a.createElement=="undefined"}()}catch(c){f=!0,j=!0}})();var r={elements:c.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:c.shivCSS!==!1,supportsUnknownElements:j,shivMethods:c.shivMethods!==!1,type:"default",shivDocument:q,createElement:n,createDocumentFragment:o};a.html5=r,q(b)}(this,b),e._version=d,e._prefixes=n,e._domPrefixes=q,e._cssomPrefixes=p,e.mq=z,e.hasEvent=A,e.testProp=function(a){return H([a])},e.testAllProps=J,e.testStyles=y,e.prefixed=function(a,b,c){return b?J(a,b,c):J(a,"pfx")},g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+v.join(" "):""),e}(this,this.document),function(a,b,c){function d(a){return"[object Function]"==o.call(a)}function e(a){return"string"==typeof a}function f(){}function g(a){return!a||"loaded"==a||"complete"==a||"uninitialized"==a}function h(){var a=p.shift();q=1,a?a.t?m(function(){("c"==a.t?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){"img"!=a&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l=b.createElement(a),o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};1===y[c]&&(r=1,y[c]=[]),"object"==a?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),"img"!=a&&(r||2===y[c]?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i("c"==b?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),1==p.length&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&"[object Opera]"==o.call(a.opera),l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return"[object Array]"==o.call(a)},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f"); + + // Add expand links to all parents of nested ul + $('.wy-menu-vertical ul').not('.simple').siblings('a').each(function () { + var link = $(this); + expand = $(''); + expand.on('click', function (ev) { + self.toggleCurrent(link); + ev.stopPropagation(); + return false; + }); + link.prepend(expand); + }); + }; + + nav.reset = function () { + // Get anchor from URL and open up nested nav + var anchor = encodeURI(window.location.hash); + if (anchor) { + try { + var link = $('.wy-menu-vertical') + .find('[href="' + anchor + '"]'); + // If we didn't find a link, it may be because we clicked on + // something that is not in the sidebar (eg: when using + // sphinxcontrib.httpdomain it generates headerlinks but those + // aren't picked up and placed in the toctree). So let's find + // the closest header in the document and try with that one. + if (link.length === 0) { + var doc_link = $('.document a[href="' + anchor + '"]'); + var closest_section = doc_link.closest('div.section'); + // Try again with the closest section entry. + link = $('.wy-menu-vertical') + .find('[href="#' + closest_section.attr("id") + '"]'); + + } + $('.wy-menu-vertical li.toctree-l1 li.current') + .removeClass('current'); + link.closest('li.toctree-l2').addClass('current'); + link.closest('li.toctree-l3').addClass('current'); + link.closest('li.toctree-l4').addClass('current'); + } + catch (err) { + console.log("Error expanding nav for anchor", err); + } + } + }; + + nav.onScroll = function () { + this.winScroll = false; + var newWinPosition = this.win.scrollTop(), + winBottom = newWinPosition + this.winHeight, + navPosition = this.navBar.scrollTop(), + newNavPosition = navPosition + (newWinPosition - this.winPosition); + if (newWinPosition < 0 || winBottom > this.docHeight) { + return; + } + this.navBar.scrollTop(newNavPosition); + this.winPosition = newWinPosition; + }; + + nav.onResize = function () { + this.winResize = false; + this.winHeight = this.win.height(); + this.docHeight = $(document).height(); + }; + + nav.hashChange = function () { + this.linkScroll = true; + this.win.one('hashchange', function () { + this.linkScroll = false; + }); + }; + + nav.toggleCurrent = function (elem) { + var parent_li = elem.closest('li'); + parent_li.siblings('li.current').removeClass('current'); + parent_li.siblings().find('li.current').removeClass('current'); + parent_li.find('> ul li.current').removeClass('current'); + parent_li.toggleClass('current'); + } + + return nav; +}; + +module.exports.ThemeNav = ThemeNav(); + +if (typeof(window) != 'undefined') { + window.SphinxRtdTheme = { StickyNav: module.exports.ThemeNav }; +} + +},{"jquery":"jquery"}]},{},["sphinx-rtd-theme"]); diff --git a/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/theme.conf b/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/theme.conf new file mode 100644 index 0000000..f96b584 --- /dev/null +++ b/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/theme.conf @@ -0,0 +1,14 @@ +[theme] +inherit = basic +stylesheet = css/theme.css + +[options] +typekit_id = hiw1hhg +analytics_id = +sticky_navigation = False +logo_only = +collapse_navigation = False +display_version = True +navigation_depth = 4 +prev_next_buttons_location = bottom +canonical_url = diff --git a/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/versions.html b/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/versions.html new file mode 100644 index 0000000..4d78287 --- /dev/null +++ b/docs-src/_theme/sphinx_rtd_theme/sphinx_rtd_theme/versions.html @@ -0,0 +1,37 @@ +{% if READTHEDOCS %} +{# Add rst-badge after rst-versions for small badge style. #} +
+ + Read the Docs + v: {{ current_version }} + + +
+
+
{{ _('Versions') }}
+ {% for slug, url in versions %} +
{{ slug }}
+ {% endfor %} +
+
+
{{ _('Downloads') }}
+ {% for type, url in downloads %} +
{{ type }}
+ {% endfor %} +
+
+
{{ _('On Read the Docs') }}
+
+ {{ _('Project Home') }} +
+
+ {{ _('Builds') }} +
+
+
+ {% trans %}Free document hosting provided by Read the Docs.{% endtrans %} + +
+
+{% endif %} + diff --git a/docs-src/_theme/sphinx_rtd_theme/tox.ini b/docs-src/_theme/sphinx_rtd_theme/tox.ini new file mode 100644 index 0000000..6052fc0 --- /dev/null +++ b/docs-src/_theme/sphinx_rtd_theme/tox.ini @@ -0,0 +1,21 @@ +[tox] +envlist = py{27,34,35,36}-sphinx{13,14,15} + +[tox:travis] +2.7 = py27-sphinx{13,14,15} +3.4 = py34-sphinx{13,14,15} +3.5 = py35-sphinx{13,14,15} +3.6 = py36-sphinx{13,14,15} + +[testenv] +setev = + LANG=C +deps = + . + readthedocs-sphinx-ext + pytest + sphinx13: Sphinx < 1.4 + sphinx14: Sphinx < 1.5 + sphinx15: Sphinx < 1.6 +commands = + py.test {posargs} diff --git a/docs-src/conf.py b/docs-src/conf.py new file mode 100644 index 0000000..c800af1 --- /dev/null +++ b/docs-src/conf.py @@ -0,0 +1,148 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# Django Markdownx documentation build configuration file, created by +# sphinx-quickstart on Fri Mar 10 22:41:38 2017. +# +# This file is execfile()d with the current directory set to its +# containing dir. +# +# Note that not all possible configuration values are present in this +# autogenerated file. +# +# All configuration values have a default; values that are commented out +# serve to show the default. + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. + +from os import path +import sys +from datetime import datetime +from re import compile as re_compile, MULTILINE + +sys.path.insert(0, path.abspath(path.join(path.pardir, path.pardir))) +sys.path.insert(0, path.abspath('_ext')) + +# -- General configuration ------------------------------------------------ + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = [ + 'sphinx.ext.autodoc', + 'sphinx.ext.coverage', + 'sphinx.ext.mathjax', + 'sphinx.ext.viewcode', + 'sphinx.ext.githubpages', + 'classycode', + 'sphinxcontrib.autoanysrc', + # 'edit_on_github' +] + +templates_path = ['_templates'] +html_theme_path = ['_themes'] +html_static_path = ['_static'] +source_suffix = '.rst' +pygments_style = 'sphinx' +html_theme = 'sphinx_rtd_theme' +language = None +exclude_patterns = [] +todo_include_todos = False +html_theme_options = {} +htmlhelp_basename = 'DjangoMarkdownxdoc' +master_doc = 'index' + +# sphinxcontrib-srclinks extension settings: +edit_on_github_project = 'adi-/django-markdownx' +edit_on_github_branch = 'master' + +# General information about the project. +project = 'Django Markdownx' +copyright = '{:%Y} - Adi, Pouria Hadjibagheri'.format(datetime.now()) +author = 'Adi, Pouria Hadjibagheri' + + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, +# author, documentclass [howto, manual, or own class]). +latex_documents = [ + ( + master_doc, + 'DjangoMarkdownx.tex', + 'Django Markdownx Documentation', + 'Adi, Pouria Hadjibagheri', + 'manual' + ), +] + + +# -- Options for manual page output --------------------------------------- + +# One entry per manual page. List of tuples +# (source start file, name, description, authors, manual section). +man_pages = [ + ( + master_doc, + 'djangomarkdownx', + 'Django Markdownx Documentation', + [author], + 1 + ) +] + + +# -- Options for Texinfo output ------------------------------------------- + +# Grouping the document tree into Texinfo files. List of tuples +# (source start file, target name, title, author, +# dir menu entry, description, category) +texinfo_documents = [ + ( + master_doc, + 'DjangoMarkdownx', + 'Django Markdownx Documentation', + author, + 'DjangoMarkdownx', + 'A comprehensive Markdown editor built for Django.', + 'Miscellaneous' + ), +] + + +# -- Options for LaTeX output --------------------------------------------- + +latex_elements = { + # The paper size ('letterpaper' or 'a4paper'). + 'papersize': 'a4paper', + + # The font size ('10pt', '11pt' or '12pt'). + 'pointsize': '12pt', + + # Additional stuff for the LaTeX preamble. + # 'preamble': '', + + # Latex figure (float) alignment + # 'figure_align': 'htbp', +} + + +# The version info for the project you're documenting, acts as replacement for +# |version| and |release|, also used in various other places throughout the +# built documents. +# +# The short X.Y version. +doc_paths = path.dirname(__file__) +init_file = path.join(doc_paths, path.pardir, 'markdownx', '__init__.py') +pattern = re_compile(r"^__version__.+[\'\"](?P(.+))[\'\"][.\n]?$", MULTILINE) + +with open(init_file, mode='r') as dt: + found = pattern.search(dt.read()) + if found: + _version = found.group('version') + + version = str.join('.', _version.split('.')[:2]) + + # The full version, including alpha/beta/rc tags. + release = _version diff --git a/docs-src/customization.rst b/docs-src/customization.rst new file mode 100644 index 0000000..344d956 --- /dev/null +++ b/docs-src/customization.rst @@ -0,0 +1,142 @@ +Customization +============= + + +Settings +-------- + +.. code-block:: python + + INSTALLED_APPS = ( + # [...] + 'markdownx', + ) + + +You may place and alter any of you the variables as follows in your :guilabel:`settings.py` to override default +behaviours. + +---- + +Customization +------------- + +All customizations concerning the back-end behaviour of **MarkdownX** may be applied from the :guilabel:`settings.py` +file. + +Markdownify +........... +Default function that compiles markdown using defined extensions. Using custom function can allow you to +pre-process or post-process markdown text. See below for more info. + +.. code-block:: python + + MARKDOWNX_MARKDOWNIFY_FUNCTION = 'markdownx.utils.markdownify' + +Markdown Extensions +................... + +List of Markdown extensions that you would like to use. See below for additional information. + +.. code-block:: python + + MARKDOWNX_MARKDOWN_EXTENSIONS = [] + + +Configuration object for used markdown extensions. + +.. code-block:: python + + MARKDOWNX_MARKDOWN_EXTENSION_CONFIGS = {} + +Markdown URLs +............. + +URL that trans-compiles the Markdown text and returns HTML. + +.. code-block:: python + + MARKDOWNX_URLS_PATH = '/markdownx/markdownify/' + +URL that accepts file uploads (images) and returns markdown formatted text for the image. + +.. code-block:: python + + MARKDOWNX_UPLOAD_URLS_PATH = '/markdownx/upload/' + +Media Path +.......... + +Path, where images will be stored in :guilabel:`MEDIA_ROOT` folder. + +.. code-block:: python + + MARKDOWNX_MEDIA_PATH = 'markdownx/' + +Image +..... + +Maximum image size allowed in bytes: Default is 50MB, which is equal to 52,428,800 bytes. + +.. tip:: + It is considered a good practice to display large numbers in a meaningful way. For instance, 52,438,800 bytes is + better displayed in code as ``= 50 * 1024 * 1024 # 50 MB in bytes`` instead. + +.. code-block:: python + + MARKDOWNX_UPLOAD_MAX_SIZE = 50 * 1024 * 1024 + +Acceptable file content types (image formats): + + +.. code-block:: python + + MARKDOWNX_UPLOAD_CONTENT_TYPES = ['image/jpeg', 'image/png', 'image/svg+xml'] + +Different options describing final image processing; e.g. size and compression. + +.. Note:: + Quality restrictions do not apply to ``image/svg+xml`` formatted graphics. + +.. code-block:: python + + MARKDOWNX_IMAGE_MAX_SIZE = {'size': (500, 500), 'quality': 90,} + +Security +........ +SVG graphics are in essence XML files formatted in a specific way; which means that they can contain JavaScript codes. +This introduces a potential front-end security vulnerability for prospective users who will see the SVG image in +context; e.g. it may be employed to collect the user's IP address or other personal information. + +.. Note:: + This type of attack is known as `XSS (Cross-site + Scripting) attack `_. + See `this presentation `_ + by Mario Heiderich to learn more on SVG XSS attacks. There are a number of ways to deal with this vulnerability. + + Django is great at security, and provides very good protection against XSS attacks (see the + `documentations `_ for + additional information) providing the + `CSRF protection middleware `_ + is enabled. When it comes to AJAX requests, however, CSRF protection may sometimes be disabled for various reasons. + +.. Important:: + MarkdownX does *not* disable CSRF protection by default. + + +As a last resort, however, we have included an *optional* integrity check against JavaScript tags for SVG +formatted files just in case everything else is disabled. This protection is enabled by default, and may be disabled +by setting the value to ``False`` if so is desired. + +.. code-block:: python + + MARKDOWNX_SVG_JAVASCRIPT_PROTECTION = True + +Editor +...... + +Change the editor's height to match the height of the inner contents whilst typing: + +.. code-block:: python + + MARKDOWNX_EDITOR_RESIZABLE = True diff --git a/docs-src/example.rst b/docs-src/example.rst new file mode 100644 index 0000000..f482e72 --- /dev/null +++ b/docs-src/example.rst @@ -0,0 +1,91 @@ +Example +======= + +Model +----- +.. code-block:: python + :linenos: + + from markdownx.models import MarkdownxField + + class MyModel(models.Model): + myfield = MarkdownxField() + + +... and then, include a form's required media in the template using ``{{ form.media }}``: + +.. code-block:: html + +
{% csrf_token %} + {{ form }} +
+ + {{ form.media }} + + +Form +---- +.. code-block:: python + :linenos: + + from markdownx.fields import MarkdownxFormField + + class MyForm(forms.Form): + myfield = MarkdownxFormField() + + +... and then, include a form's required media in the template using ``{{ form.media }}``: + +.. code-block:: html + +
{% csrf_token %} + {{ form }} +
+ + {{ form.media }} + + +Django Admin +------------ +When using included ``MarkdowxModel`` class in your models, just use ``MarkdownxModelAdmin`` in +your :guilabel:`admin.py` as follows: + +.. code-block:: python + :linenos: + + from django.contrib import admin + from markdownx.admin import MarkdownxModelAdmin + from .models import MyModel + + + admin.site.register(MyModel, MarkdownxModelAdmin) + + +Field customization +................... +We have ensured that **MarkdownX** is fully extensible and provides a high degree of flexibility in development. + +There are times that you may wish to Markdownify a different type field, or utilize your own customized model. To +accommodate this, we have provided the tools to apply **MarkdownX** infrastructure to other fields through *Widgets*. + +For instance, to apply **MarkdownX** to ``TextField`` instances in your Django Admins, you can override the default +widget in the Admins module in :guilabel:`admin.py` of your Django App as follows: + +.. code-block:: python + :linenos: + + from django.db import models + from django.contrib import admin + + from markdownx.widgets import AdminMarkdownxWidget + + from .models import MyModel + + + class MyModelAdmin(admin.ModelAdmin): + formfield_overrides = { + models.TextField: {'widget': AdminMarkdownxWidget}, + } + + + admin.site.register(MyModel, MyModelAdmin) diff --git a/docs-src/getting_started.rst b/docs-src/getting_started.rst new file mode 100644 index 0000000..f75484b --- /dev/null +++ b/docs-src/getting_started.rst @@ -0,0 +1,27 @@ +Getting Started +=============== + +1. Add ``'markdownx'`` to the ``INSTALLED_APPS`` in :guilabel:`settings.py` file: + +.. code-block:: python + + INSTALLED_APPS = ( + # [...] + 'markdownx', + ) + +2. Add url pattern to the :guilabel:`urls.py` file: + +.. code-block:: python + + urlpatterns = [ + # [...] + url(r'^markdownx/', include('markdownx.urls')), + ] + +3. Collect included :guilabel:`markdownx.js` and :guilabel:`markdownx.css` (for Django Admin) to +your :guilabel:`STATIC_ROOT` folder: + +.. code-block:: bash + + python3 manage.py collectstatic diff --git a/docs-src/index.rst b/docs-src/index.rst new file mode 100644 index 0000000..31d4264 --- /dev/null +++ b/docs-src/index.rst @@ -0,0 +1,37 @@ +.. Django Markdownx documentation master file, created by + sphinx-quickstart on Fri Mar 10 22:41:38 2017. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +:github_url: https://github.com/adi-/django-markdownx + +.. automodule:: markdownx + +Contents +-------- +.. toctree:: + :maxdepth: 2 + :glob: + + installation + getting_started + example + customization + translation + js/js + markdownx/markdownx + license + +* :ref:`modindex` +* :ref:`genindex` +* :ref:`search` + +------------ + +Acknowledgements +---------------- +We acknowledge and appreciate every contribution made towards improving **Django MarkdownX**, a list of which can be +found on our `GitHub `_. + +**Django MarkdownX** was inspired by the great `Django Images `_ and +`Django Bootstrap Markdown `_ packages. diff --git a/docs-src/installation.rst b/docs-src/installation.rst new file mode 100644 index 0000000..c892161 --- /dev/null +++ b/docs-src/installation.rst @@ -0,0 +1,41 @@ +Installation +============ +Using PIP +--------- +Django MarkdownX may be installed directly using Python Package Index (PyPi): + +.. code-block:: bash + + python3 -m pip install django-markdownx + + +From the source +--------------- +Should you wish to download and install it using the source code, you can do as follows: + +.. Note:: + Make sure you have activated your virtual environment if you're using one. + +We start off by downloading the source code from GitHub and navigate to the downloaded directory: + +.. code-block:: bash + + git clone https://github.com/adi-/django-markdownx.git + cd django-markdownx/ + + +Install the package. + +.. code-block:: bash + + python3 setup.py install + + +.. Tip:: + You can replace ``python3`` with ``python`` or any of |Supported_versions_of_Python| if + you have multiple versions installed on your machine: + + +.. |Supported_versions_of_Python| image:: https://img.shields.io/pypi/pyversions/django-markdownx.svg + +.. automodule:: setup \ No newline at end of file diff --git a/docs-src/js/docs.rst b/docs-src/js/docs.rst new file mode 100644 index 0000000..0c78b70 --- /dev/null +++ b/docs-src/js/docs.rst @@ -0,0 +1,10 @@ +:github_url: https://github.com/adi-/django-markdownx/tree/master/markdownx/static/markdownx/js + +JavaScript Code +=============== + +.. toctree:: + :maxdepth: 2 + :glob: + + docs/* diff --git a/docs-src/js/docs/markdownx.rst b/docs-src/js/docs/markdownx.rst new file mode 100644 index 0000000..ab66d44 --- /dev/null +++ b/docs-src/js/docs/markdownx.rst @@ -0,0 +1,98 @@ +MarkdownX +--------- + + +.. js:class:: MarkdownX(editor, preview) + + **Example:** + + .. code-block:: javascript + + let editor = document.getElementById('MyMarkdownEditor'), + preview = document.getElementById('MyMarkdownPreview'); + + let mdx = new MarkdownX(editor, preview) + + :param HTMLTextAreaElement editor: Markdown editor element. + :param HTMLElement preview: Markdown preview element. + + .. js:attribute:: editor + + - (*HTMLTextAreaElement*) - Instance editor. + + .. js:attribute:: preview + + - (*HMTLElement*) - Instance preview. + + .. js:attribute:: timeout + + - (*number* | *null*) - Private property; timeout settings. + + .. js:attribute:: _editorIsResizable + + - (*Boolean*) - Private property; ``true`` if instance editor is resizable, otherwise ``false``. + + .. js:function:: _markdownify() + + Private settings for ``timeout``. + + .. js:function:: _routineEventResponse(event) + + Private routine tasks for event handlers (e.g. default preventions). + + :param Event event: Event to be handled. + + + .. js:function:: getEditorHeight(editor) + + :param HTMLTextAreaElement editor: Markdown editor element. + :returns: The editor's height in pixels; e.g. ``"150px"``. + :return type: string + + .. js:function:: inputChanged() + + Event handlers in response to alterations in the instance editor. + + :param Event event: Event to be handled. + + + .. js:function:: onDragEnter(event) + + Event handler for :guilabel:`dragEnter` events. + + :param Event event: Event to be handled. + + + .. js:function:: onDragLeave(event) + + Event handler for :guilabel:`dragLeave` events. + + :param Event event: Event to be handled. + + + .. js:function:: onDrop(event) + + Event handler for :guilabel:`drop` events (in drag and drops). + + :param Event event: Event to be handled. + + + .. js:function:: onKeyDown(event) + + Event handler for :guilabel:`keyDown` events as registered in the instance editor. + + :param Event event: Event to be handled. + :returns: ``null`` if the key pressed is *Tab* (ASCII #9) else ``false``. + :return type: boolean | null + + .. js:function:: sendFile() + + pass + + .. js:function:: getMarkdown() + + pass + + .. js:function:: insertImage() + + pass diff --git a/docs-src/js/docs/utils.rst b/docs-src/js/docs/utils.rst new file mode 100644 index 0000000..0a4e59c --- /dev/null +++ b/docs-src/js/docs/utils.rst @@ -0,0 +1,36 @@ +Utilities +--------- + + +.. js:function:: getCookie(name) + + Looks for a cookie, and if found, returns the values. + + .. Note:: + + Only the first item in the array is returned to eliminate the need for array deconstruction + in the target. + + .. Attention:: + + The function catches the **TypeError** and returns ``null`` if the ``name`` provided for the cookie is not + found. A notification is then provided in the console to inform the developer that the requested cookie does + not exist. + + :param string name: The name of the cookie. + :returns: Value of the cookie with the key ``name`` or ``null``. + + +.. js:function:: preparePostData(data) + + Creates a new instance of **FormData** to be used in AJAX calls. + + :param Object data: Data to be embedded in the form in **JSON** format, where the *key* is the name/ID of the field + whose values are to be altered/created and corresponds to ``dict`` keys in Django + ``request.POST``. + + :param Boolean csrf: If ``true``, includes the CSRF token (under the name ``csrfmiddlewaretoken``) in the form. + Default is ``true``. + + :returns: A new instance **FormData** that incorporated the data embedded in ``data`` and the CSRF token in enabled. + :return type: FormData diff --git a/docs-src/js/events.rst b/docs-src/js/events.rst new file mode 100644 index 0000000..b57fe5a --- /dev/null +++ b/docs-src/js/events.rst @@ -0,0 +1,71 @@ +:github_url: https://github.com/adi-/django-markdownx/tree/master/markdownx/static/markdownx/js + + +Events +====== + +Some **MarkdownX** processes trigger events that may be utilized for to different purposes. To handle such events in +JavaScript, you may take advantage of event listeners as exemplified below. + +---- + +Reference +--------- + ++---------------------+-----------------------------------------+-------------------------------------------------------+ +| Event | JavaScript handler | Description | ++=====================+=========================================+=======================================================+ +| Initialization | ``markdownx.init`` | Triggered after jQuery plugin init. | ++---------------------+-----------------------------------------+-------------------------------------------------------+ +| Update | ``markdownx.update`` | Triggered when editor text is markdownified. | +| | | | +| | | Returns: **response** (*string*) | +| | | variable containing markdownified text. | ++---------------------+-----------------------------------------+-------------------------------------------------------+ +| Update error | ``markdownx.updateError`` | Triggered when a problem occurred during markdownify. | ++---------------------+-----------------------------------------+-------------------------------------------------------+ +| Beginning to upload | ``markdownx.markdownx.fileUploadBegin`` | Triggered when the file is posted. | ++---------------------+-----------------------------------------+-------------------------------------------------------+ +| File upload end | ``markdownx.fileUploadEnd`` | Triggered when the file has been uploaded. | ++---------------------+-----------------------------------------+-------------------------------------------------------+ +| File upload error | ``markdownx.fileUploadError`` | Triggered if the upload didn't work. | ++---------------------+-----------------------------------------+-------------------------------------------------------+ + + +---- + +Examples +-------- + +Initialization + ``markdownx.init`` is an event that does *not* return a response. + +JavaScript ECMA 2015+: + +.. code-block:: javascript + :linenos: + + let element = document.getElementsByClassName('markdownx'); + + Object.keys(element).map(key => + + element[key].addEventListener('markdownx.init', () => console.log("MarkdownX initialized.")) + + ); + + +Update + ``markdownx.update`` is an event that returns a response. + +JavaScript ECMA 2015+: + +.. code-block:: javascript + :linenos: + + let element = document.getElementsByClassName('markdownx'); + + Object.keys(element).map(key => + + element[key].addEventListener('markdownx.update', event => console.log(event.detail)) + + ); diff --git a/docs-src/js/js.rst b/docs-src/js/js.rst new file mode 100644 index 0000000..474bc97 --- /dev/null +++ b/docs-src/js/js.rst @@ -0,0 +1,22 @@ +JavaScript +========== + +.. toctree:: + :maxdepth: 2 + :glob: + + * + +---- + +Compatibility +------------- + +We rely on JavaScript to handle front-end events (e.g. trans-compilation of Markdown to HTML, uploading image). + +**MarkdownX** JavaScript code is written in TypeScript using Pure JavaScript and under ECMA 2016 standard. +Currently, the code is trans-compiled into ECMA 5 (approved in 2011) to provide support for older browsers, +specifically IE 10+. See additional detailed on `browser compatibilities`_. + + +.. _browser compatibilities: https://kangax.github.io/compat-table/es5/ \ No newline at end of file diff --git a/docs-src/license.rst b/docs-src/license.rst new file mode 100644 index 0000000..31a7a3d --- /dev/null +++ b/docs-src/license.rst @@ -0,0 +1,32 @@ +License +------- + +MarkdownX is licensed under the `2-clause BSD `_ +license, and Open Source Initiative approved license. + + +.. image:: _static/osi.png + :alt: Open Source Initiative (OSI) Logo + :align: center + + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +This software is provided by the copyright holders and contributors "as is" and +any express or implied warranties, including, but not limited to, the implied +warranties of merchantability and fitness for a particular purpose are +disclaimed. in no event shall the copyright owner or contributors be liable for +any direct, indirect, incidental, special, exemplary, or consequential damages +(including, but not limited to, procurement of substitute goods or services; +loss of use, data, or profits; or business interruption) however caused and +on any theory of liability, whether in contract, strict liability, or tort +(including negligence or otherwise) arising in any way out of the use of this +software, even if advised of the possibility of such damage. diff --git a/docs-src/markdownx/docs/admins.rst b/docs-src/markdownx/docs/admins.rst new file mode 100644 index 0000000..a9118fb --- /dev/null +++ b/docs-src/markdownx/docs/admins.rst @@ -0,0 +1,6 @@ +:github_url: https://github.com/adi-/django-markdownx/tree/master/markdownx/admin.py + +Admin +----- +.. automodule:: markdownx.admin + :members: diff --git a/docs-src/markdownx/docs/exceptions.rst b/docs-src/markdownx/docs/exceptions.rst new file mode 100644 index 0000000..d4e3cc0 --- /dev/null +++ b/docs-src/markdownx/docs/exceptions.rst @@ -0,0 +1,7 @@ +:github_url: https://github.com/adi-/django-markdownx/tree/master/markdownx/exceptions.py + + +Exceptions +---------- +.. automodule:: markdownx.exceptions + :members: \ No newline at end of file diff --git a/docs-src/markdownx/docs/fields.rst b/docs-src/markdownx/docs/fields.rst new file mode 100644 index 0000000..3502dfc --- /dev/null +++ b/docs-src/markdownx/docs/fields.rst @@ -0,0 +1,6 @@ +:github_url: https://github.com/adi-/django-markdownx/tree/master/markdownx/fields.py + +Fields +------ +.. automodule:: markdownx.fields + :members: diff --git a/docs-src/markdownx/docs/forms.rst b/docs-src/markdownx/docs/forms.rst new file mode 100644 index 0000000..5f82bfc --- /dev/null +++ b/docs-src/markdownx/docs/forms.rst @@ -0,0 +1,9 @@ +:github_url: https://github.com/adi-/django-markdownx/tree/master/markdownx/forms.py + + +Form +---- + +.. automodule:: markdownx.forms + :members: + diff --git a/docs-src/markdownx/docs/models.rst b/docs-src/markdownx/docs/models.rst new file mode 100644 index 0000000..e08b2fb --- /dev/null +++ b/docs-src/markdownx/docs/models.rst @@ -0,0 +1,6 @@ +:github_url: https://github.com/adi-/django-markdownx/tree/master/markdownx/models.py + +Models +------ +.. automodule:: markdownx.models + :members: \ No newline at end of file diff --git a/docs-src/markdownx/docs/utilities.rst b/docs-src/markdownx/docs/utilities.rst new file mode 100644 index 0000000..594b369 --- /dev/null +++ b/docs-src/markdownx/docs/utilities.rst @@ -0,0 +1,6 @@ +:github_url: https://github.com/adi-/django-markdownx/tree/master/markdownx/utils.py + +Utilities +--------- +.. automodule:: markdownx.utils + :members: diff --git a/docs-src/markdownx/docs/views.rst b/docs-src/markdownx/docs/views.rst new file mode 100644 index 0000000..ec1d737 --- /dev/null +++ b/docs-src/markdownx/docs/views.rst @@ -0,0 +1,6 @@ +:github_url: https://github.com/adi-/django-markdownx/tree/master/markdownx/views.py + +Views +----- +.. automodule:: markdownx.views + :members: diff --git a/docs-src/markdownx/markdownx.rst b/docs-src/markdownx/markdownx.rst new file mode 100644 index 0000000..d40813a --- /dev/null +++ b/docs-src/markdownx/markdownx.rst @@ -0,0 +1,7 @@ +MarkdownX Modules +----------------- +.. toctree:: + :maxdepth: 2 + :glob: + + docs/* \ No newline at end of file diff --git a/docs-src/requirements.txt b/docs-src/requirements.txt new file mode 100644 index 0000000..39ec44f --- /dev/null +++ b/docs-src/requirements.txt @@ -0,0 +1,3 @@ +sphinx +sphinx-classy-code +sphinxcontrib-autoanysrc \ No newline at end of file diff --git a/docs-src/translation.rst b/docs-src/translation.rst new file mode 100644 index 0000000..cbff4a8 --- /dev/null +++ b/docs-src/translation.rst @@ -0,0 +1,31 @@ +:github_url: https://github.com/adi-/django-markdownx/tree/master/markdownx/locale + +Translation +=========== + +Django's strength is in its global community. Similarly, **MarkdownX** developers come from across the world too. We are +therefore commit to make the plugin as inclusive as possible. To this end, we provide translation of all messages +produced by **MarkdownX** to various languages. + + +Current languages +----------------- + +- English +- Polish (Polski) +- German (Deutsch) +- French (Français) +- Persian (فارسی) +- Dutch (Nederlands) + +---- + +Your language is not included? +`````````````````````````````` + +Wanna contribute? + Why not help us with the translation of messages? It's not really that long. + + +Even more? + Help us translate the documentations. \ No newline at end of file diff --git a/docs/_images/osi.png b/docs/_images/osi.png new file mode 100644 index 0000000..cdf9d9a Binary files /dev/null and b/docs/_images/osi.png differ diff --git a/docs/_modules/index.html b/docs/_modules/index.html new file mode 100644 index 0000000..258bea4 --- /dev/null +++ b/docs/_modules/index.html @@ -0,0 +1,230 @@ + + + + + + + + + + + Overview: module code — Django Markdownx 2.0.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + +
+
+ + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Overview: module code
  • + + +
  • + + + +
  • + +
+ + +
+
+
+
+ +

All modules for which code is available

+ + +
+
+ +
+
+
+ + +
+ +
+

+ © Copyright 2017 - Adi, Pouria Hadjibagheri. + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/markdownx/exceptions.html b/docs/_modules/markdownx/exceptions.html new file mode 100644 index 0000000..d5ed099 --- /dev/null +++ b/docs/_modules/markdownx/exceptions.html @@ -0,0 +1,279 @@ + + + + + + + + + + + markdownx.exceptions — Django Markdownx 2.0.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + +
+
+ + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • markdownx.exceptions
  • + + +
  • + + + +
  • + +
+ + +
+
+
+
+ +

Source code for markdownx.exceptions

+from django.utils.translation import ugettext_lazy as _
+from django.forms import ValidationError
+
+
+
[docs]class MarkdownxImageUploadError(ValidationError): + """ + + """ + + @staticmethod +
[docs] def not_uploaded(): + """ + No file is available to upload. + + :return: + :rtype: + """ + return MarkdownxImageUploadError(_('No files have been uploaded.'))
+ + @staticmethod +
[docs] def unsupported_format(): + """ + The file is of a format not defined in :guilabel:`settings.py` + or if default, in :guilabel:`markdownx/settings.py`. + + :return: + :rtype: + """ + return MarkdownxImageUploadError(_('File type is not supported.'))
+ + @staticmethod +
[docs] def invalid_size(current, expected): + """ + The file is larger in size that the maximum allow in :guilabel:`settings.py` (or the default). + + :param current: + :type current: + :param expected: + :type expected: + :return: + :rtype: + """ + from django.template.defaultfilters import filesizeformat + + return MarkdownxImageUploadError( + _('Please keep file size under %(max)s. Current file size: %(current)s.') % { + 'max': filesizeformat(expected), + 'current': filesizeformat(current) + } + )
+
+ +
+
+ +
+
+
+ + +
+ +
+

+ © Copyright 2017 - Adi, Pouria Hadjibagheri. + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/markdownx/forms.html b/docs/_modules/markdownx/forms.html new file mode 100644 index 0000000..c38cae3 --- /dev/null +++ b/docs/_modules/markdownx/forms.html @@ -0,0 +1,418 @@ + + + + + + + + + + + markdownx.forms — Django Markdownx 2.0.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + +
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +

Source code for markdownx.forms

+# Python internal library.
+from os import path, SEEK_END
+from uuid import uuid4
+from collections import namedtuple
+
+# Django library.
+from django import forms
+from django.utils.six import BytesIO
+from django.core.files.storage import default_storage
+from django.core.files.uploadedfile import InMemoryUploadedFile
+
+# Internal.
+from .utils import scale_and_crop, has_javascript
+from .exceptions import MarkdownxImageUploadError
+
+from .settings import (
+    MARKDOWNX_IMAGE_MAX_SIZE,
+    MARKDOWNX_MEDIA_PATH,
+    MARKDOWNX_UPLOAD_CONTENT_TYPES,
+    MARKDOWNX_UPLOAD_MAX_SIZE,
+    MARKDOWNX_SVG_JAVASCRIPT_PROTECTION
+)
+
+
+
[docs]class ImageForm(forms.Form): + """ + Used for the handling of images uploaded using the editor through :guilabel:`AJAX`. + """ + + image = forms.FileField() + + # Separately defined as it needs to be + # processed a text file rather than image. + _SVG_TYPE = 'image/svg+xml' + +
[docs] def save(self, commit=True): + """ + Saves the uploaded image in the designated location. + + If image type is not SVG, a byteIO of image content_type is created and + subsequently save; otherwise, the SVG is saved in its existing ``charset`` + as an ``image/svg+xml``. + + *Note*: The dimension of image files (excluding SVG) are set using ``PIL``. + + :param commit: If ``True``, the file is saved to the disk; + otherwise, it is held in the memory. + :type commit: bool + :return: An instance of saved image if ``commit is True``, + else ``namedtuple(path, image)``. + :rtype: bool, namedtuple + """ + image = self.files.get('image') + content_type = image.content_type + file_name = image.name + image_extension = content_type.split('/')[-1].upper() + image_size = getattr(image, '_size') + + if content_type.lower() != self._SVG_TYPE: + # Processing the raster graphic image. + # Note that vector graphics in SVG format + # do not require additional processing and + # may be stored as uploaded. + image = self._process_raster(image, image_extension) + image_size = image.tell() + + # Processed file (or the actual file in the case of SVG) is now + # saved in the memory as a Django object. + uploaded_image = InMemoryUploadedFile( + file=image, + field_name=None, + name=file_name, + content_type=content_type, + size=image_size, + charset=None + ) + + return self._save(uploaded_image, file_name, commit)
+ + def _save(self, image, file_name, commit): + """ + Final saving process, called internally after processing tasks are complete. + + :param image: Prepared image + :type image: django.core.files.uploadedfile.InMemoryUploadedFile + :param file_name: Name of the file using which the image is to be saved. + :type file_name: str + :param commit: If ``True``, the image is saved onto the disk. + :type commit: bool + :return: URL of the uploaded image ``commit=True``, otherwise a namedtuple of ``(path, image)`` where + ``path`` is the absolute path generated for saving the file, and ``image`` is the prepared + image. + :rtype: str, namedtuple + """ + # Defining a universally unique name for the file + # to be saved on the disk. + unique_file_name = self.get_unique_file_name(file_name) + full_path = path.join(MARKDOWNX_MEDIA_PATH, unique_file_name) + + if commit: + default_storage.save(full_path, image) + return default_storage.url(full_path) + + # If `commit is False`, return the path and in-memory image. + image_data = namedtuple('image_data', ['path', 'image']) + return image_data(path=full_path, image=image) + + @staticmethod + def _process_raster(image, extension): + """ + Processing of raster graphic image using Python Imaging Library (PIL). + + This is where raster graphics are processed to the specifications + as defined in ``settings.py``. + + *Note*: The file needs to be uploaded and saved temporarily in the + memory to enable processing tasks using Python Imaging Library (PIL) + to take place and subsequently retained until written onto the disk. + + :param image: Non-SVG image as processed by Django. + :type image: django.forms.BaseForm.file + :param extension: Image extension (e.g.: png, jpg, gif) + :type extension: str + :return: The image object ready to be written into a file. + :rtype: BytesIO + """ + thumb_io = BytesIO() + preped_image = scale_and_crop(image, **MARKDOWNX_IMAGE_MAX_SIZE) + preped_image.save(thumb_io, extension) + thumb_io.seek(0, SEEK_END) + return thumb_io + + @staticmethod +
[docs] def get_unique_file_name(file_name): + """ + Generates a universally unique ID using Python ``UUID`` and attaches the extension of file name to it. + + :param file_name: Name of the uploaded file, including the extension. + :type file_name: str + :return: Universally unique ID, ending with the extension extracted from ``file_name``. + :rtype: str + """ + extension = 1 + extension_dot_index = 1 + + file_name = "{unique_name}.{extension}".format( + unique_name=uuid4(), + extension=path.splitext(file_name)[extension][extension_dot_index:] + ) + return file_name
+ +
[docs] def clean(self): + """ + Checks the upload against allowed extensions and maximum size. + + :return: Upload + """ + upload = self.cleaned_data.get('image') + + # ----------------------------------------------- + # See comments in `self._error_templates` for + # additional information on each error. + # ----------------------------------------------- + if not upload: + raise MarkdownxImageUploadError.not_uploaded() + + content_type = upload.content_type + file_size = getattr(upload, '_size') + + if content_type not in MARKDOWNX_UPLOAD_CONTENT_TYPES: + + raise MarkdownxImageUploadError.unsupported_format() + + elif file_size > MARKDOWNX_UPLOAD_MAX_SIZE: + + raise MarkdownxImageUploadError.invalid_size( + current=file_size, + expected=MARKDOWNX_UPLOAD_MAX_SIZE + ) + + elif (content_type.lower() != self._SVG_TYPE + and MARKDOWNX_SVG_JAVASCRIPT_PROTECTION + and has_javascript(upload.read())): + + raise MarkdownxImageUploadError( + 'Failed security monitoring: SVG file contains JavaScript.' + ) + + return upload
+
+ +
+
+ +
+
+
+ + +
+ +
+

+ © Copyright 2017 - Adi, Pouria Hadjibagheri. + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/markdownx/utils.html b/docs/_modules/markdownx/utils.html new file mode 100644 index 0000000..69c7d45 --- /dev/null +++ b/docs/_modules/markdownx/utils.html @@ -0,0 +1,372 @@ + + + + + + + + + + + markdownx.utils — Django Markdownx 2.0.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + +
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +

Source code for markdownx.utils

+from markdown import markdown
+
+from PIL import Image
+
+from .settings import MARKDOWNX_MARKDOWN_EXTENSIONS, MARKDOWNX_MARKDOWN_EXTENSION_CONFIGS
+
+
+
[docs]def markdownify(content): + """ + + :param content: + :type content: + :return: + :rtype: + """ + md = markdown( + text=content, + extensions=MARKDOWNX_MARKDOWN_EXTENSIONS, + extension_configs=MARKDOWNX_MARKDOWN_EXTENSION_CONFIGS + ) + return md
+ + +
[docs]def scale_and_crop(image, size, crop=False, upscale=False, quality=None): + """ + + :param image: + :type image: + :param size: + :type size: + :param crop: + :type crop: + :param upscale: + :type upscale: + :param quality: + :type quality: + :return: + :rtype: + """ + # ToDo: Possible IO/Runtime exceptions need to handled, and `finally` the file needs to be closed. + + # Open image and store format/metadata. + image.open() + im = Image.open(image) + im_format, im_info = im.format, im.info + if quality: + im_info['quality'] = quality + + # Force PIL to load image data. + im.load() + + source_x, source_y = map(float, im.size) + target_x, target_y = map(float, size) + + if crop or not target_x or not target_y: + scale = max(target_x / source_x, target_y / source_y) + else: + scale = min(target_x / source_x, target_y / source_y) + + # Handle one-dimensional targets. + if not target_x: + target_x = source_x * scale + elif not target_y: + target_y = source_y * scale + + if scale < 1.0 or (scale > 1.0 and upscale): + im = im.resize( + (int(source_x * scale), int(source_y * scale)), + resample=Image.ANTIALIAS + ) + + if crop: + # Use integer values now. + source_x, source_y = im.size + # Difference between new image size and requested size. + diff_x = int(source_x - min(source_x, target_x)) + diff_y = int(source_y - min(source_y, target_y)) + + if diff_x or diff_y: + # Center cropping (default). + halfdiff_x, halfdiff_y = diff_x // 2, diff_y // 2 + box = [ + halfdiff_x, + halfdiff_y, + min(source_x, int(target_x) + halfdiff_x), + min(source_y, int(target_y) + halfdiff_y) + ] + + # Finally, crop the image! + im = im.crop(box) + + # Close image and replace format/metadata, as PIL blows this away. + im.format, im.info = im_format, im_info + image.close() + return im
+ + +
[docs]def has_javascript(data): + """ + + :param data: Contents to be monitored for JavaScript injection. + :type data: str + :return: ``True`` if **data** contains JavaScript tag(s), otherwise ``False``. + :rtype: bool + """ + from re import search, IGNORECASE, MULTILINE + + # ------------------------------------------------ + # Handles JavaScript nodes and stringified nodes. + # ------------------------------------------------ + pattern = ( + r'(<\s*\bscript\b.*>.*)|' + r'(.*\bif\b\s*\(.?={2,3}.*\))|' + r'(.*\bfor\b\s*\(.*\))' + ) + + found = search( + pattern=pattern, + string=data, + flags=IGNORECASE | MULTILINE + ) + + if found is not None: + return True + + # ------------------------------------------------ + # Handles JavaScript injection into attributes + # for element creation. + # ------------------------------------------------ + from xml.etree.ElementTree import fromstring + + parsed_xml = ( + (attribute, value) + for elm in fromstring(data).iter() + for attribute, value in elm.attrib.items() + ) + + for key, val in parsed_xml: + if '"' in val or "'" in val: + return True + + # It is (hopefully) safe. + return False
+
+ +
+
+ +
+
+
+ + +
+ +
+

+ © Copyright 2017 - Adi, Pouria Hadjibagheri. + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/markdownx/views.html b/docs/_modules/markdownx/views.html new file mode 100644 index 0000000..901e198 --- /dev/null +++ b/docs/_modules/markdownx/views.html @@ -0,0 +1,311 @@ + + + + + + + + + + + markdownx.views — Django Markdownx 2.0.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + +
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +

Source code for markdownx.views

+from django.http import HttpResponse, JsonResponse
+from django.utils.module_loading import import_string
+from django.views.generic.edit import View, FormView, BaseFormView
+
+from .forms import ImageForm
+from .settings import MARKDOWNX_MARKDOWNIFY_FUNCTION
+
+
+
[docs]class MarkdownifyView(View): + """ + Conversion of Markdown to HTML. + """ + +
[docs] def post(self, request, *args, **kwargs): + """ + Handling of the conversion from Markdown to HTML using the conversion + function in settings under ``MARKDOWNX_MARKDOWNIFY_FUNCTION``. + + :param request: HTTP request. + :param args: Default Django POST arguments. + :param kwargs: Default Django POST keyword arguments. + :return: HTTP response + :rtype: django.http.HttpResponse + """ + markdownify = import_string(MARKDOWNX_MARKDOWNIFY_FUNCTION) + return HttpResponse(markdownify(request.POST['content']))
+ + +
[docs]class ImageUploadView(BaseFormView): + """ + Handling requests for uploading images. + """ + + # template_name = "dummy.html" + form_class = ImageForm + success_url = '/' + +
[docs] def form_invalid(self, form): + """ + Handling of invalid form events. + + :param form: Django form instance. + :type form: django.forms.Form + :return: JSON response with the HTTP-400 error message for AJAX requests + and the default response for HTTP requests. + :rtype: django.http.JsonResponse, django.http.HttpResponse + """ + response = super(ImageUploadView, self).form_invalid(form) + + if self.request.is_ajax(): + return JsonResponse(form.errors, status=400) + + return response
+ +
[docs] def form_valid(self, form): + """ + If the form is valid, the contents are saved. + + If the **POST** request is AJAX (image uploads), a JSON response will be + produced containing the Markdown encoded image insertion tag with the URL + using which the uploaded image may be accessed. + + JSON response would be as follows: + + .. code-block:: json + + { image_code: "![](/media/image_directory/123-4e6-ga3.png)" } + + :param form: Django form instance. + :type form: django.forms.Form + :return: JSON encoded Markdown tag for AJAX requests, and an appropriate + response for HTTP requests. + :rtype: django.http.JsonResponse, django.http.HttpResponse + """ + response = super(ImageUploadView, self).form_valid(form) + + if self.request.is_ajax(): + image_path = form.save(commit=True) + image_code = '![]({})'.format(image_path) + return JsonResponse({'image_code': image_code}) + + return response
+
+ +
+
+ +
+
+
+ + +
+ +
+

+ © Copyright 2017 - Adi, Pouria Hadjibagheri. + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_sources/customization.rst.txt b/docs/_sources/customization.rst.txt new file mode 100644 index 0000000..344d956 --- /dev/null +++ b/docs/_sources/customization.rst.txt @@ -0,0 +1,142 @@ +Customization +============= + + +Settings +-------- + +.. code-block:: python + + INSTALLED_APPS = ( + # [...] + 'markdownx', + ) + + +You may place and alter any of you the variables as follows in your :guilabel:`settings.py` to override default +behaviours. + +---- + +Customization +------------- + +All customizations concerning the back-end behaviour of **MarkdownX** may be applied from the :guilabel:`settings.py` +file. + +Markdownify +........... +Default function that compiles markdown using defined extensions. Using custom function can allow you to +pre-process or post-process markdown text. See below for more info. + +.. code-block:: python + + MARKDOWNX_MARKDOWNIFY_FUNCTION = 'markdownx.utils.markdownify' + +Markdown Extensions +................... + +List of Markdown extensions that you would like to use. See below for additional information. + +.. code-block:: python + + MARKDOWNX_MARKDOWN_EXTENSIONS = [] + + +Configuration object for used markdown extensions. + +.. code-block:: python + + MARKDOWNX_MARKDOWN_EXTENSION_CONFIGS = {} + +Markdown URLs +............. + +URL that trans-compiles the Markdown text and returns HTML. + +.. code-block:: python + + MARKDOWNX_URLS_PATH = '/markdownx/markdownify/' + +URL that accepts file uploads (images) and returns markdown formatted text for the image. + +.. code-block:: python + + MARKDOWNX_UPLOAD_URLS_PATH = '/markdownx/upload/' + +Media Path +.......... + +Path, where images will be stored in :guilabel:`MEDIA_ROOT` folder. + +.. code-block:: python + + MARKDOWNX_MEDIA_PATH = 'markdownx/' + +Image +..... + +Maximum image size allowed in bytes: Default is 50MB, which is equal to 52,428,800 bytes. + +.. tip:: + It is considered a good practice to display large numbers in a meaningful way. For instance, 52,438,800 bytes is + better displayed in code as ``= 50 * 1024 * 1024 # 50 MB in bytes`` instead. + +.. code-block:: python + + MARKDOWNX_UPLOAD_MAX_SIZE = 50 * 1024 * 1024 + +Acceptable file content types (image formats): + + +.. code-block:: python + + MARKDOWNX_UPLOAD_CONTENT_TYPES = ['image/jpeg', 'image/png', 'image/svg+xml'] + +Different options describing final image processing; e.g. size and compression. + +.. Note:: + Quality restrictions do not apply to ``image/svg+xml`` formatted graphics. + +.. code-block:: python + + MARKDOWNX_IMAGE_MAX_SIZE = {'size': (500, 500), 'quality': 90,} + +Security +........ +SVG graphics are in essence XML files formatted in a specific way; which means that they can contain JavaScript codes. +This introduces a potential front-end security vulnerability for prospective users who will see the SVG image in +context; e.g. it may be employed to collect the user's IP address or other personal information. + +.. Note:: + This type of attack is known as `XSS (Cross-site + Scripting) attack `_. + See `this presentation `_ + by Mario Heiderich to learn more on SVG XSS attacks. There are a number of ways to deal with this vulnerability. + + Django is great at security, and provides very good protection against XSS attacks (see the + `documentations `_ for + additional information) providing the + `CSRF protection middleware `_ + is enabled. When it comes to AJAX requests, however, CSRF protection may sometimes be disabled for various reasons. + +.. Important:: + MarkdownX does *not* disable CSRF protection by default. + + +As a last resort, however, we have included an *optional* integrity check against JavaScript tags for SVG +formatted files just in case everything else is disabled. This protection is enabled by default, and may be disabled +by setting the value to ``False`` if so is desired. + +.. code-block:: python + + MARKDOWNX_SVG_JAVASCRIPT_PROTECTION = True + +Editor +...... + +Change the editor's height to match the height of the inner contents whilst typing: + +.. code-block:: python + + MARKDOWNX_EDITOR_RESIZABLE = True diff --git a/docs/_sources/example.rst.txt b/docs/_sources/example.rst.txt new file mode 100644 index 0000000..f482e72 --- /dev/null +++ b/docs/_sources/example.rst.txt @@ -0,0 +1,91 @@ +Example +======= + +Model +----- +.. code-block:: python + :linenos: + + from markdownx.models import MarkdownxField + + class MyModel(models.Model): + myfield = MarkdownxField() + + +... and then, include a form's required media in the template using ``{{ form.media }}``: + +.. code-block:: html + +
{% csrf_token %} + {{ form }} +
+ + {{ form.media }} + + +Form +---- +.. code-block:: python + :linenos: + + from markdownx.fields import MarkdownxFormField + + class MyForm(forms.Form): + myfield = MarkdownxFormField() + + +... and then, include a form's required media in the template using ``{{ form.media }}``: + +.. code-block:: html + +
{% csrf_token %} + {{ form }} +
+ + {{ form.media }} + + +Django Admin +------------ +When using included ``MarkdowxModel`` class in your models, just use ``MarkdownxModelAdmin`` in +your :guilabel:`admin.py` as follows: + +.. code-block:: python + :linenos: + + from django.contrib import admin + from markdownx.admin import MarkdownxModelAdmin + from .models import MyModel + + + admin.site.register(MyModel, MarkdownxModelAdmin) + + +Field customization +................... +We have ensured that **MarkdownX** is fully extensible and provides a high degree of flexibility in development. + +There are times that you may wish to Markdownify a different type field, or utilize your own customized model. To +accommodate this, we have provided the tools to apply **MarkdownX** infrastructure to other fields through *Widgets*. + +For instance, to apply **MarkdownX** to ``TextField`` instances in your Django Admins, you can override the default +widget in the Admins module in :guilabel:`admin.py` of your Django App as follows: + +.. code-block:: python + :linenos: + + from django.db import models + from django.contrib import admin + + from markdownx.widgets import AdminMarkdownxWidget + + from .models import MyModel + + + class MyModelAdmin(admin.ModelAdmin): + formfield_overrides = { + models.TextField: {'widget': AdminMarkdownxWidget}, + } + + + admin.site.register(MyModel, MyModelAdmin) diff --git a/docs/_sources/getting_started.rst.txt b/docs/_sources/getting_started.rst.txt new file mode 100644 index 0000000..f75484b --- /dev/null +++ b/docs/_sources/getting_started.rst.txt @@ -0,0 +1,27 @@ +Getting Started +=============== + +1. Add ``'markdownx'`` to the ``INSTALLED_APPS`` in :guilabel:`settings.py` file: + +.. code-block:: python + + INSTALLED_APPS = ( + # [...] + 'markdownx', + ) + +2. Add url pattern to the :guilabel:`urls.py` file: + +.. code-block:: python + + urlpatterns = [ + # [...] + url(r'^markdownx/', include('markdownx.urls')), + ] + +3. Collect included :guilabel:`markdownx.js` and :guilabel:`markdownx.css` (for Django Admin) to +your :guilabel:`STATIC_ROOT` folder: + +.. code-block:: bash + + python3 manage.py collectstatic diff --git a/docs/_sources/index.rst.txt b/docs/_sources/index.rst.txt new file mode 100644 index 0000000..31d4264 --- /dev/null +++ b/docs/_sources/index.rst.txt @@ -0,0 +1,37 @@ +.. Django Markdownx documentation master file, created by + sphinx-quickstart on Fri Mar 10 22:41:38 2017. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +:github_url: https://github.com/adi-/django-markdownx + +.. automodule:: markdownx + +Contents +-------- +.. toctree:: + :maxdepth: 2 + :glob: + + installation + getting_started + example + customization + translation + js/js + markdownx/markdownx + license + +* :ref:`modindex` +* :ref:`genindex` +* :ref:`search` + +------------ + +Acknowledgements +---------------- +We acknowledge and appreciate every contribution made towards improving **Django MarkdownX**, a list of which can be +found on our `GitHub `_. + +**Django MarkdownX** was inspired by the great `Django Images `_ and +`Django Bootstrap Markdown `_ packages. diff --git a/docs/_sources/installation.rst.txt b/docs/_sources/installation.rst.txt new file mode 100644 index 0000000..c892161 --- /dev/null +++ b/docs/_sources/installation.rst.txt @@ -0,0 +1,41 @@ +Installation +============ +Using PIP +--------- +Django MarkdownX may be installed directly using Python Package Index (PyPi): + +.. code-block:: bash + + python3 -m pip install django-markdownx + + +From the source +--------------- +Should you wish to download and install it using the source code, you can do as follows: + +.. Note:: + Make sure you have activated your virtual environment if you're using one. + +We start off by downloading the source code from GitHub and navigate to the downloaded directory: + +.. code-block:: bash + + git clone https://github.com/adi-/django-markdownx.git + cd django-markdownx/ + + +Install the package. + +.. code-block:: bash + + python3 setup.py install + + +.. Tip:: + You can replace ``python3`` with ``python`` or any of |Supported_versions_of_Python| if + you have multiple versions installed on your machine: + + +.. |Supported_versions_of_Python| image:: https://img.shields.io/pypi/pyversions/django-markdownx.svg + +.. automodule:: setup \ No newline at end of file diff --git a/docs/_sources/js/docs.rst.txt b/docs/_sources/js/docs.rst.txt new file mode 100644 index 0000000..0c78b70 --- /dev/null +++ b/docs/_sources/js/docs.rst.txt @@ -0,0 +1,10 @@ +:github_url: https://github.com/adi-/django-markdownx/tree/master/markdownx/static/markdownx/js + +JavaScript Code +=============== + +.. toctree:: + :maxdepth: 2 + :glob: + + docs/* diff --git a/docs/_sources/js/docs/markdownx.rst.txt b/docs/_sources/js/docs/markdownx.rst.txt new file mode 100644 index 0000000..ab66d44 --- /dev/null +++ b/docs/_sources/js/docs/markdownx.rst.txt @@ -0,0 +1,98 @@ +MarkdownX +--------- + + +.. js:class:: MarkdownX(editor, preview) + + **Example:** + + .. code-block:: javascript + + let editor = document.getElementById('MyMarkdownEditor'), + preview = document.getElementById('MyMarkdownPreview'); + + let mdx = new MarkdownX(editor, preview) + + :param HTMLTextAreaElement editor: Markdown editor element. + :param HTMLElement preview: Markdown preview element. + + .. js:attribute:: editor + + - (*HTMLTextAreaElement*) - Instance editor. + + .. js:attribute:: preview + + - (*HMTLElement*) - Instance preview. + + .. js:attribute:: timeout + + - (*number* | *null*) - Private property; timeout settings. + + .. js:attribute:: _editorIsResizable + + - (*Boolean*) - Private property; ``true`` if instance editor is resizable, otherwise ``false``. + + .. js:function:: _markdownify() + + Private settings for ``timeout``. + + .. js:function:: _routineEventResponse(event) + + Private routine tasks for event handlers (e.g. default preventions). + + :param Event event: Event to be handled. + + + .. js:function:: getEditorHeight(editor) + + :param HTMLTextAreaElement editor: Markdown editor element. + :returns: The editor's height in pixels; e.g. ``"150px"``. + :return type: string + + .. js:function:: inputChanged() + + Event handlers in response to alterations in the instance editor. + + :param Event event: Event to be handled. + + + .. js:function:: onDragEnter(event) + + Event handler for :guilabel:`dragEnter` events. + + :param Event event: Event to be handled. + + + .. js:function:: onDragLeave(event) + + Event handler for :guilabel:`dragLeave` events. + + :param Event event: Event to be handled. + + + .. js:function:: onDrop(event) + + Event handler for :guilabel:`drop` events (in drag and drops). + + :param Event event: Event to be handled. + + + .. js:function:: onKeyDown(event) + + Event handler for :guilabel:`keyDown` events as registered in the instance editor. + + :param Event event: Event to be handled. + :returns: ``null`` if the key pressed is *Tab* (ASCII #9) else ``false``. + :return type: boolean | null + + .. js:function:: sendFile() + + pass + + .. js:function:: getMarkdown() + + pass + + .. js:function:: insertImage() + + pass diff --git a/docs/_sources/js/docs/utils.rst.txt b/docs/_sources/js/docs/utils.rst.txt new file mode 100644 index 0000000..0a4e59c --- /dev/null +++ b/docs/_sources/js/docs/utils.rst.txt @@ -0,0 +1,36 @@ +Utilities +--------- + + +.. js:function:: getCookie(name) + + Looks for a cookie, and if found, returns the values. + + .. Note:: + + Only the first item in the array is returned to eliminate the need for array deconstruction + in the target. + + .. Attention:: + + The function catches the **TypeError** and returns ``null`` if the ``name`` provided for the cookie is not + found. A notification is then provided in the console to inform the developer that the requested cookie does + not exist. + + :param string name: The name of the cookie. + :returns: Value of the cookie with the key ``name`` or ``null``. + + +.. js:function:: preparePostData(data) + + Creates a new instance of **FormData** to be used in AJAX calls. + + :param Object data: Data to be embedded in the form in **JSON** format, where the *key* is the name/ID of the field + whose values are to be altered/created and corresponds to ``dict`` keys in Django + ``request.POST``. + + :param Boolean csrf: If ``true``, includes the CSRF token (under the name ``csrfmiddlewaretoken``) in the form. + Default is ``true``. + + :returns: A new instance **FormData** that incorporated the data embedded in ``data`` and the CSRF token in enabled. + :return type: FormData diff --git a/docs/_sources/js/events.rst.txt b/docs/_sources/js/events.rst.txt new file mode 100644 index 0000000..b57fe5a --- /dev/null +++ b/docs/_sources/js/events.rst.txt @@ -0,0 +1,71 @@ +:github_url: https://github.com/adi-/django-markdownx/tree/master/markdownx/static/markdownx/js + + +Events +====== + +Some **MarkdownX** processes trigger events that may be utilized for to different purposes. To handle such events in +JavaScript, you may take advantage of event listeners as exemplified below. + +---- + +Reference +--------- + ++---------------------+-----------------------------------------+-------------------------------------------------------+ +| Event | JavaScript handler | Description | ++=====================+=========================================+=======================================================+ +| Initialization | ``markdownx.init`` | Triggered after jQuery plugin init. | ++---------------------+-----------------------------------------+-------------------------------------------------------+ +| Update | ``markdownx.update`` | Triggered when editor text is markdownified. | +| | | | +| | | Returns: **response** (*string*) | +| | | variable containing markdownified text. | ++---------------------+-----------------------------------------+-------------------------------------------------------+ +| Update error | ``markdownx.updateError`` | Triggered when a problem occurred during markdownify. | ++---------------------+-----------------------------------------+-------------------------------------------------------+ +| Beginning to upload | ``markdownx.markdownx.fileUploadBegin`` | Triggered when the file is posted. | ++---------------------+-----------------------------------------+-------------------------------------------------------+ +| File upload end | ``markdownx.fileUploadEnd`` | Triggered when the file has been uploaded. | ++---------------------+-----------------------------------------+-------------------------------------------------------+ +| File upload error | ``markdownx.fileUploadError`` | Triggered if the upload didn't work. | ++---------------------+-----------------------------------------+-------------------------------------------------------+ + + +---- + +Examples +-------- + +Initialization + ``markdownx.init`` is an event that does *not* return a response. + +JavaScript ECMA 2015+: + +.. code-block:: javascript + :linenos: + + let element = document.getElementsByClassName('markdownx'); + + Object.keys(element).map(key => + + element[key].addEventListener('markdownx.init', () => console.log("MarkdownX initialized.")) + + ); + + +Update + ``markdownx.update`` is an event that returns a response. + +JavaScript ECMA 2015+: + +.. code-block:: javascript + :linenos: + + let element = document.getElementsByClassName('markdownx'); + + Object.keys(element).map(key => + + element[key].addEventListener('markdownx.update', event => console.log(event.detail)) + + ); diff --git a/docs/_sources/js/js.rst.txt b/docs/_sources/js/js.rst.txt new file mode 100644 index 0000000..474bc97 --- /dev/null +++ b/docs/_sources/js/js.rst.txt @@ -0,0 +1,22 @@ +JavaScript +========== + +.. toctree:: + :maxdepth: 2 + :glob: + + * + +---- + +Compatibility +------------- + +We rely on JavaScript to handle front-end events (e.g. trans-compilation of Markdown to HTML, uploading image). + +**MarkdownX** JavaScript code is written in TypeScript using Pure JavaScript and under ECMA 2016 standard. +Currently, the code is trans-compiled into ECMA 5 (approved in 2011) to provide support for older browsers, +specifically IE 10+. See additional detailed on `browser compatibilities`_. + + +.. _browser compatibilities: https://kangax.github.io/compat-table/es5/ \ No newline at end of file diff --git a/docs/_sources/license.rst.txt b/docs/_sources/license.rst.txt new file mode 100644 index 0000000..31a7a3d --- /dev/null +++ b/docs/_sources/license.rst.txt @@ -0,0 +1,32 @@ +License +------- + +MarkdownX is licensed under the `2-clause BSD `_ +license, and Open Source Initiative approved license. + + +.. image:: _static/osi.png + :alt: Open Source Initiative (OSI) Logo + :align: center + + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +This software is provided by the copyright holders and contributors "as is" and +any express or implied warranties, including, but not limited to, the implied +warranties of merchantability and fitness for a particular purpose are +disclaimed. in no event shall the copyright owner or contributors be liable for +any direct, indirect, incidental, special, exemplary, or consequential damages +(including, but not limited to, procurement of substitute goods or services; +loss of use, data, or profits; or business interruption) however caused and +on any theory of liability, whether in contract, strict liability, or tort +(including negligence or otherwise) arising in any way out of the use of this +software, even if advised of the possibility of such damage. diff --git a/docs/_sources/markdownx/docs/admins.rst.txt b/docs/_sources/markdownx/docs/admins.rst.txt new file mode 100644 index 0000000..a9118fb --- /dev/null +++ b/docs/_sources/markdownx/docs/admins.rst.txt @@ -0,0 +1,6 @@ +:github_url: https://github.com/adi-/django-markdownx/tree/master/markdownx/admin.py + +Admin +----- +.. automodule:: markdownx.admin + :members: diff --git a/docs/_sources/markdownx/docs/exceptions.rst.txt b/docs/_sources/markdownx/docs/exceptions.rst.txt new file mode 100644 index 0000000..d4e3cc0 --- /dev/null +++ b/docs/_sources/markdownx/docs/exceptions.rst.txt @@ -0,0 +1,7 @@ +:github_url: https://github.com/adi-/django-markdownx/tree/master/markdownx/exceptions.py + + +Exceptions +---------- +.. automodule:: markdownx.exceptions + :members: \ No newline at end of file diff --git a/docs/_sources/markdownx/docs/fields.rst.txt b/docs/_sources/markdownx/docs/fields.rst.txt new file mode 100644 index 0000000..3502dfc --- /dev/null +++ b/docs/_sources/markdownx/docs/fields.rst.txt @@ -0,0 +1,6 @@ +:github_url: https://github.com/adi-/django-markdownx/tree/master/markdownx/fields.py + +Fields +------ +.. automodule:: markdownx.fields + :members: diff --git a/docs/_sources/markdownx/docs/forms.rst.txt b/docs/_sources/markdownx/docs/forms.rst.txt new file mode 100644 index 0000000..5f82bfc --- /dev/null +++ b/docs/_sources/markdownx/docs/forms.rst.txt @@ -0,0 +1,9 @@ +:github_url: https://github.com/adi-/django-markdownx/tree/master/markdownx/forms.py + + +Form +---- + +.. automodule:: markdownx.forms + :members: + diff --git a/docs/_sources/markdownx/docs/models.rst.txt b/docs/_sources/markdownx/docs/models.rst.txt new file mode 100644 index 0000000..e08b2fb --- /dev/null +++ b/docs/_sources/markdownx/docs/models.rst.txt @@ -0,0 +1,6 @@ +:github_url: https://github.com/adi-/django-markdownx/tree/master/markdownx/models.py + +Models +------ +.. automodule:: markdownx.models + :members: \ No newline at end of file diff --git a/docs/_sources/markdownx/docs/utilities.rst.txt b/docs/_sources/markdownx/docs/utilities.rst.txt new file mode 100644 index 0000000..594b369 --- /dev/null +++ b/docs/_sources/markdownx/docs/utilities.rst.txt @@ -0,0 +1,6 @@ +:github_url: https://github.com/adi-/django-markdownx/tree/master/markdownx/utils.py + +Utilities +--------- +.. automodule:: markdownx.utils + :members: diff --git a/docs/_sources/markdownx/docs/views.rst.txt b/docs/_sources/markdownx/docs/views.rst.txt new file mode 100644 index 0000000..ec1d737 --- /dev/null +++ b/docs/_sources/markdownx/docs/views.rst.txt @@ -0,0 +1,6 @@ +:github_url: https://github.com/adi-/django-markdownx/tree/master/markdownx/views.py + +Views +----- +.. automodule:: markdownx.views + :members: diff --git a/docs/_sources/markdownx/markdownx.rst.txt b/docs/_sources/markdownx/markdownx.rst.txt new file mode 100644 index 0000000..d40813a --- /dev/null +++ b/docs/_sources/markdownx/markdownx.rst.txt @@ -0,0 +1,7 @@ +MarkdownX Modules +----------------- +.. toctree:: + :maxdepth: 2 + :glob: + + docs/* \ No newline at end of file diff --git a/docs/_sources/translation.rst.txt b/docs/_sources/translation.rst.txt new file mode 100644 index 0000000..cbff4a8 --- /dev/null +++ b/docs/_sources/translation.rst.txt @@ -0,0 +1,31 @@ +:github_url: https://github.com/adi-/django-markdownx/tree/master/markdownx/locale + +Translation +=========== + +Django's strength is in its global community. Similarly, **MarkdownX** developers come from across the world too. We are +therefore commit to make the plugin as inclusive as possible. To this end, we provide translation of all messages +produced by **MarkdownX** to various languages. + + +Current languages +----------------- + +- English +- Polish (Polski) +- German (Deutsch) +- French (Français) +- Persian (فارسی) +- Dutch (Nederlands) + +---- + +Your language is not included? +`````````````````````````````` + +Wanna contribute? + Why not help us with the translation of messages? It's not really that long. + + +Even more? + Help us translate the documentations. \ No newline at end of file diff --git a/docs/_static/ajax-loader.gif b/docs/_static/ajax-loader.gif new file mode 100644 index 0000000..61faf8c Binary files /dev/null and b/docs/_static/ajax-loader.gif differ diff --git a/docs/_static/basic.css b/docs/_static/basic.css new file mode 100644 index 0000000..7ed0e58 --- /dev/null +++ b/docs/_static/basic.css @@ -0,0 +1,632 @@ +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2016 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 230px; + margin-left: -100%; + font-size: 90%; + word-wrap: break-word; + overflow-wrap : break-word; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar #searchbox input[type="text"] { + width: 170px; +} + +img { + border: 0; + max-width: 100%; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li div.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; + margin-left: auto; + margin-right: auto; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable ul { + margin-top: 0; + margin-bottom: 0; + list-style-type: none; +} + +table.indextable > tbody > tr > td > ul { + padding-left: 0em; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- domain module index --------------------------------------------------- */ + +table.modindextable td { + padding: 2px; + border-collapse: collapse; +} + +/* -- general body styles --------------------------------------------------- */ + +div.body p, div.body dd, div.body li, div.body blockquote { + -moz-hyphens: auto; + -ms-hyphens: auto; + -webkit-hyphens: auto; + hyphens: auto; +} + +a.headerlink { + visibility: hidden; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink, +caption:hover > a.headerlink, +p.caption:hover > a.headerlink, +div.code-block-caption:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px 7px 0 7px; + background-color: #ffe; + width: 40%; + float: right; +} + +p.sidebar-title { + font-weight: bold; +} + +/* -- topics ---------------------------------------------------------------- */ + +div.topic { + border: 1px solid #ccc; + padding: 7px 7px 0 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +div.admonition dl { + margin-bottom: 0; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + border: 0; + border-collapse: collapse; +} + +table caption span.caption-number { + font-style: italic; +} + +table caption span.caption-text { +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +table.footnote td, table.footnote th { + border: 0 !important; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +/* -- figures --------------------------------------------------------------- */ + +div.figure { + margin: 0.5em; + padding: 0.5em; +} + +div.figure p.caption { + padding: 0.3em; +} + +div.figure p.caption span.caption-number { + font-style: italic; +} + +div.figure p.caption span.caption-text { +} + +/* -- field list styles ----------------------------------------------------- */ + +table.field-list td, table.field-list th { + border: 0 !important; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +dl { + margin-bottom: 15px; +} + +dd p { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +dt:target, .highlighted { + background-color: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.optional { + font-size: 1.3em; +} + +.sig-paren { + font-size: larger; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +abbr, acronym { + border-bottom: dotted 1px; + cursor: help; +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +span.pre { + -moz-hyphens: none; + -ms-hyphens: none; + -webkit-hyphens: none; + hyphens: none; +} + +td.linenos pre { + padding: 5px 0px; + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + margin-left: 0.5em; +} + +table.highlighttable td { + padding: 0 0.5em 0 0.5em; +} + +div.code-block-caption { + padding: 2px 5px; + font-size: small; +} + +div.code-block-caption code { + background-color: transparent; +} + +div.code-block-caption + div > div.highlight > pre { + margin-top: 0; +} + +div.code-block-caption span.caption-number { + padding: 0.1em 0.3em; + font-style: italic; +} + +div.code-block-caption span.caption-text { +} + +div.literal-block-wrapper { + padding: 1em 1em 0; +} + +div.literal-block-wrapper div.highlight { + margin: 0; +} + +code.descname { + background-color: transparent; + font-weight: bold; + font-size: 1.2em; +} + +code.descclassname { + background-color: transparent; +} + +code.xref, a code { + background-color: transparent; + font-weight: bold; +} + +h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +span.eqno a.headerlink { + position: relative; + left: 0px; + z-index: 1; +} + +div.math:hover a.headerlink { + visibility: visible; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} \ No newline at end of file diff --git a/docs/_static/comment-bright.png b/docs/_static/comment-bright.png new file mode 100644 index 0000000..15e27ed Binary files /dev/null and b/docs/_static/comment-bright.png differ diff --git a/docs/_static/comment-close.png b/docs/_static/comment-close.png new file mode 100644 index 0000000..4d91bcf Binary files /dev/null and b/docs/_static/comment-close.png differ diff --git a/docs/_static/comment.png b/docs/_static/comment.png new file mode 100644 index 0000000..dfbc0cb Binary files /dev/null and b/docs/_static/comment.png differ diff --git a/docs/_static/css/badge_only.css b/docs/_static/css/badge_only.css new file mode 100644 index 0000000..cb09245 --- /dev/null +++ b/docs/_static/css/badge_only.css @@ -0,0 +1,221 @@ +@charset "UTF-8"; +.fa:before { + -webkit-font-smoothing: antialiased; +} + +.clearfix { + *zoom: 1; +} +.clearfix:before, .clearfix:after { + display: table; + content: ""; +} +.clearfix:after { + clear: both; +} + +@font-face { + font-family: FontAwesome; + font-weight: normal; + font-style: normal; + src: url("../fonts/fontawesome-webfont.eot"); + src: url("../fonts/fontawesome-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/fontawesome-webfont.woff") format("woff"), url("../fonts/fontawesome-webfont.ttf") format("truetype"), url("../fonts/fontawesome-webfont.svg#FontAwesome") format("svg"); +} +.fa:before { + display: inline-block; + font-family: FontAwesome; + font-style: normal; + font-weight: normal; + line-height: 1; + text-decoration: inherit; +} + +a .fa { + display: inline-block; + text-decoration: inherit; +} + +li .fa { + display: inline-block; +} +li .fa-large:before, +li .fa-large:before { + /* 1.5 increased font size for fa-large * 1.25 width */ + width: 1.875em; +} + +ul.fas { + list-style-type: none; + margin-left: 2em; + text-indent: -0.8em; +} +ul.fas li .fa { + width: 0.8em; +} +ul.fas li .fa-large:before, +ul.fas li .fa-large:before { + /* 1.5 increased font size for fa-large * 1.25 width */ + vertical-align: baseline; +} + +.fa-book:before { + content: ""; +} + +.icon-book:before { + content: ""; +} + +.fa-caret-down:before { + content: ""; +} + +.icon-caret-down:before { + content: ""; +} + +.fa-caret-up:before { + content: ""; +} + +.icon-caret-up:before { + content: ""; +} + +.fa-caret-left:before { + content: ""; +} + +.icon-caret-left:before { + content: ""; +} + +.fa-caret-right:before { + content: ""; +} + +.icon-caret-right:before { + content: ""; +} + +.rst-versions { + position: fixed; + bottom: 0; + left: 0; + width: 300px; + color: #fcfcfc; + background: #1f1d1d; + border-top: solid 10px #343131; + font-family: "Lato", "proxima-nova", "Helvetica Neue", Arial, sans-serif; + z-index: 400; +} +.rst-versions a { + color: #2980B9; + text-decoration: none; +} +.rst-versions .rst-badge-small { + display: none; +} +.rst-versions .rst-current-version { + padding: 12px; + background-color: #272525; + display: block; + text-align: right; + font-size: 90%; + cursor: pointer; + color: #27AE60; + *zoom: 1; +} +.rst-versions .rst-current-version:before, .rst-versions .rst-current-version:after { + display: table; + content: ""; +} +.rst-versions .rst-current-version:after { + clear: both; +} +.rst-versions .rst-current-version .fa { + color: #fcfcfc; +} +.rst-versions .rst-current-version .fa-book { + float: left; +} +.rst-versions .rst-current-version .icon-book { + float: left; +} +.rst-versions .rst-current-version.rst-out-of-date { + background-color: #E74C3C; + color: #fff; +} +.rst-versions .rst-current-version.rst-active-old-version { + background-color: #F1C40F; + color: #000; +} +.rst-versions.shift-up .rst-other-versions { + display: block; +} +.rst-versions .rst-other-versions { + font-size: 90%; + padding: 12px; + color: gray; + display: none; +} +.rst-versions .rst-other-versions hr { + display: block; + height: 1px; + border: 0; + margin: 20px 0; + padding: 0; + border-top: solid 1px #413d3d; +} +.rst-versions .rst-other-versions dd { + display: inline-block; + margin: 0; +} +.rst-versions .rst-other-versions dd a { + display: inline-block; + padding: 6px; + color: #fcfcfc; +} +.rst-versions.rst-badge { + width: auto; + bottom: 20px; + right: 20px; + left: auto; + border: none; + max-width: 300px; +} +.rst-versions.rst-badge .icon-book { + float: none; +} +.rst-versions.rst-badge .fa-book { + float: none; +} +.rst-versions.rst-badge.shift-up .rst-current-version { + text-align: right; +} +.rst-versions.rst-badge.shift-up .rst-current-version .fa-book { + float: left; +} +.rst-versions.rst-badge.shift-up .rst-current-version .icon-book { + float: left; +} +.rst-versions.rst-badge .rst-current-version { + width: auto; + height: 30px; + line-height: 30px; + padding: 0 6px; + display: block; + text-align: center; +} + +@media screen and (max-width: 768px) { + .rst-versions { + width: 85%; + display: none; + } + .rst-versions.shift { + display: block; + } +} + +/*# sourceMappingURL=badge_only.css.map */ diff --git a/docs/_static/css/theme.css b/docs/_static/css/theme.css new file mode 100644 index 0000000..3e8c32b --- /dev/null +++ b/docs/_static/css/theme.css @@ -0,0 +1,6025 @@ +@charset "UTF-8"; +* { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +article, aside, details, figcaption, figure, footer, header, hgroup, nav, section { + display: block; +} + +audio, canvas, video { + display: inline-block; + *display: inline; + *zoom: 1; +} + +audio:not([controls]) { + display: none; +} + +[hidden] { + display: none; +} + +* { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +html { + font-size: 100%; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} + +body { + margin: 0; +} + +a:hover, a:active { + outline: 0; +} + +abbr[title] { + border-bottom: 1px dotted; +} + +b, strong { + font-weight: bold; +} + +blockquote { + margin: 0; +} + +dfn { + font-style: italic; +} + +ins { + background: #ff9; + color: #000; + text-decoration: none; +} + +mark { + background: #ff0; + color: #000; + font-style: italic; + font-weight: bold; +} + +pre, code, .rst-content tt, .rst-content code, kbd, samp { + font-family: monospace, serif; + _font-family: "courier new", monospace; + font-size: 1em; +} + +pre { + white-space: pre; +} + +q { + quotes: none; +} + +q:before, q:after { + content: ""; + content: none; +} + +small { + font-size: 85%; +} + +sub, sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +ul, ol, dl { + margin: 0; + padding: 0; + list-style: none; + list-style-image: none; +} + +li { + list-style: none; +} + +dd { + margin: 0; +} + +img { + border: 0; + -ms-interpolation-mode: bicubic; + vertical-align: middle; + max-width: 100%; +} + +svg:not(:root) { + overflow: hidden; +} + +figure { + margin: 0; +} + +form { + margin: 0; +} + +fieldset { + border: 0; + margin: 0; + padding: 0; +} + +label { + cursor: pointer; +} + +legend { + border: 0; + *margin-left: -7px; + padding: 0; + white-space: normal; +} + +button, input, select, textarea { + font-size: 100%; + margin: 0; + vertical-align: baseline; + *vertical-align: middle; +} + +button, input { + line-height: normal; +} + +button, input[type="button"], input[type="reset"], input[type="submit"] { + cursor: pointer; + -webkit-appearance: button; + *overflow: visible; +} + +button[disabled], input[disabled] { + cursor: default; +} + +input[type="checkbox"], input[type="radio"] { + box-sizing: border-box; + padding: 0; + *width: 13px; + *height: 13px; +} + +input[type="search"] { + -webkit-appearance: textfield; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + box-sizing: content-box; +} + +input[type="search"]::-webkit-search-decoration, input[type="search"]::-webkit-search-cancel-button { + -webkit-appearance: none; +} + +button::-moz-focus-inner, input::-moz-focus-inner { + border: 0; + padding: 0; +} + +textarea { + overflow: auto; + vertical-align: top; + resize: vertical; +} + +table { + border-collapse: collapse; + border-spacing: 0; +} + +td { + vertical-align: top; +} + +.chromeframe { + margin: 0.2em 0; + background: #ccc; + color: black; + padding: 0.2em 0; +} + +.ir { + display: block; + border: 0; + text-indent: -999em; + overflow: hidden; + background-color: transparent; + background-repeat: no-repeat; + text-align: left; + direction: ltr; + *line-height: 0; +} + +.ir br { + display: none; +} + +.hidden { + display: none !important; + visibility: hidden; +} + +.visuallyhidden { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; +} + +.visuallyhidden.focusable:active, .visuallyhidden.focusable:focus { + clip: auto; + height: auto; + margin: 0; + overflow: visible; + position: static; + width: auto; +} + +.invisible { + visibility: hidden; +} + +.relative { + position: relative; +} + +big, small { + font-size: 100%; +} + +@media print { + html, body, section { + background: none !important; + } + + * { + box-shadow: none !important; + text-shadow: none !important; + filter: none !important; + -ms-filter: none !important; + } + + a, a:visited { + text-decoration: underline; + } + + .ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after { + content: ""; + } + + pre, blockquote { + page-break-inside: avoid; + } + + thead { + display: table-header-group; + } + + tr, img { + page-break-inside: avoid; + } + + img { + max-width: 100% !important; + } + + @page { + margin: 0.5cm; + } + p, h2, .rst-content .toctree-wrapper p.caption, h3 { + orphans: 3; + widows: 3; + } + + h2, .rst-content .toctree-wrapper p.caption, h3 { + page-break-after: avoid; + } +} +.fa:before, .wy-menu-vertical li span.toctree-expand:before, .wy-menu-vertical li.on a span.toctree-expand:before, .wy-menu-vertical li.current > a span.toctree-expand:before, .rst-content .admonition-title:before, .rst-content h1 .headerlink:before, .rst-content h2 .headerlink:before, .rst-content h3 .headerlink:before, .rst-content h4 .headerlink:before, .rst-content h5 .headerlink:before, .rst-content h6 .headerlink:before, .rst-content dl dt .headerlink:before, .rst-content p.caption .headerlink:before, .rst-content tt.download span:first-child:before, .rst-content code.download span:first-child:before, .icon:before, .wy-dropdown .caret:before, .wy-inline-validate.wy-inline-validate-success .wy-input-context:before, .wy-inline-validate.wy-inline-validate-danger .wy-input-context:before, .wy-inline-validate.wy-inline-validate-warning .wy-input-context:before, .wy-inline-validate.wy-inline-validate-info .wy-input-context:before, .wy-alert, .rst-content .note, .rst-content .attention, .rst-content .caution, .rst-content .danger, .rst-content .error, .rst-content .hint, .rst-content .important, .rst-content .tip, .rst-content .warning, .rst-content .seealso, .rst-content .admonition-todo, .btn, input[type="text"], input[type="password"], input[type="email"], input[type="url"], input[type="date"], input[type="month"], input[type="time"], input[type="datetime"], input[type="datetime-local"], input[type="week"], input[type="number"], input[type="search"], input[type="tel"], input[type="color"], select, textarea, .wy-menu-vertical li.on a, .wy-menu-vertical li.current > a, .wy-side-nav-search > a, .wy-side-nav-search .wy-dropdown > a, .wy-nav-top a { + -webkit-font-smoothing: antialiased; +} + +.clearfix { + *zoom: 1; +} +.clearfix:before, .clearfix:after { + display: table; + content: ""; +} +.clearfix:after { + clear: both; +} + +/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */ +/* FONT PATH + * -------------------------- */ +@font-face { + font-family: 'FontAwesome'; + src: url("../fonts/fontawesome-webfont.eot?v=4.7.0"); + src: url("../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0") format("embedded-opentype"), url("../fonts/fontawesome-webfont.woff2?v=4.7.0") format("woff2"), url("../fonts/fontawesome-webfont.woff?v=4.7.0") format("woff"), url("../fonts/fontawesome-webfont.ttf?v=4.7.0") format("truetype"), url("../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular") format("svg"); + font-weight: normal; + font-style: normal; +} +.fa, .wy-menu-vertical li span.toctree-expand, .wy-menu-vertical li.on a span.toctree-expand, .wy-menu-vertical li.current > a span.toctree-expand, .rst-content .admonition-title, .rst-content h1 .headerlink, .rst-content h2 .headerlink, .rst-content h3 .headerlink, .rst-content h4 .headerlink, .rst-content h5 .headerlink, .rst-content h6 .headerlink, .rst-content dl dt .headerlink, .rst-content p.caption .headerlink, .rst-content tt.download span:first-child, .rst-content code.download span:first-child, .icon { + display: inline-block; + font: normal normal normal 14px/1 FontAwesome; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +/* makes the font 33% larger relative to the icon container */ +.fa-lg { + font-size: 1.33333em; + line-height: 0.75em; + vertical-align: -15%; +} + +.fa-2x { + font-size: 2em; +} + +.fa-3x { + font-size: 3em; +} + +.fa-4x { + font-size: 4em; +} + +.fa-5x { + font-size: 5em; +} + +.fa-fw { + width: 1.28571em; + text-align: center; +} + +.fa-ul { + padding-left: 0; + margin-left: 2.14286em; + list-style-type: none; +} +.fa-ul > li { + position: relative; +} + +.fa-li { + position: absolute; + left: -2.14286em; + width: 2.14286em; + top: 0.14286em; + text-align: center; +} +.fa-li.fa-lg { + left: -1.85714em; +} + +.fa-border { + padding: .2em .25em .15em; + border: solid 0.08em #eee; + border-radius: .1em; +} + +.fa-pull-left { + float: left; +} + +.fa-pull-right { + float: right; +} + +.fa.fa-pull-left, .wy-menu-vertical li span.fa-pull-left.toctree-expand, .wy-menu-vertical li.on a span.fa-pull-left.toctree-expand, .wy-menu-vertical li.current > a span.fa-pull-left.toctree-expand, .rst-content .fa-pull-left.admonition-title, .rst-content h1 .fa-pull-left.headerlink, .rst-content h2 .fa-pull-left.headerlink, .rst-content h3 .fa-pull-left.headerlink, .rst-content h4 .fa-pull-left.headerlink, .rst-content h5 .fa-pull-left.headerlink, .rst-content h6 .fa-pull-left.headerlink, .rst-content dl dt .fa-pull-left.headerlink, .rst-content p.caption .fa-pull-left.headerlink, .rst-content tt.download span.fa-pull-left:first-child, .rst-content code.download span.fa-pull-left:first-child, .fa-pull-left.icon { + margin-right: .3em; +} +.fa.fa-pull-right, .wy-menu-vertical li span.fa-pull-right.toctree-expand, .wy-menu-vertical li.on a span.fa-pull-right.toctree-expand, .wy-menu-vertical li.current > a span.fa-pull-right.toctree-expand, .rst-content .fa-pull-right.admonition-title, .rst-content h1 .fa-pull-right.headerlink, .rst-content h2 .fa-pull-right.headerlink, .rst-content h3 .fa-pull-right.headerlink, .rst-content h4 .fa-pull-right.headerlink, .rst-content h5 .fa-pull-right.headerlink, .rst-content h6 .fa-pull-right.headerlink, .rst-content dl dt .fa-pull-right.headerlink, .rst-content p.caption .fa-pull-right.headerlink, .rst-content tt.download span.fa-pull-right:first-child, .rst-content code.download span.fa-pull-right:first-child, .fa-pull-right.icon { + margin-left: .3em; +} + +/* Deprecated as of 4.4.0 */ +.pull-right { + float: right; +} + +.pull-left { + float: left; +} + +.fa.pull-left, .wy-menu-vertical li span.pull-left.toctree-expand, .wy-menu-vertical li.on a span.pull-left.toctree-expand, .wy-menu-vertical li.current > a span.pull-left.toctree-expand, .rst-content .pull-left.admonition-title, .rst-content h1 .pull-left.headerlink, .rst-content h2 .pull-left.headerlink, .rst-content h3 .pull-left.headerlink, .rst-content h4 .pull-left.headerlink, .rst-content h5 .pull-left.headerlink, .rst-content h6 .pull-left.headerlink, .rst-content dl dt .pull-left.headerlink, .rst-content p.caption .pull-left.headerlink, .rst-content tt.download span.pull-left:first-child, .rst-content code.download span.pull-left:first-child, .pull-left.icon { + margin-right: .3em; +} +.fa.pull-right, .wy-menu-vertical li span.pull-right.toctree-expand, .wy-menu-vertical li.on a span.pull-right.toctree-expand, .wy-menu-vertical li.current > a span.pull-right.toctree-expand, .rst-content .pull-right.admonition-title, .rst-content h1 .pull-right.headerlink, .rst-content h2 .pull-right.headerlink, .rst-content h3 .pull-right.headerlink, .rst-content h4 .pull-right.headerlink, .rst-content h5 .pull-right.headerlink, .rst-content h6 .pull-right.headerlink, .rst-content dl dt .pull-right.headerlink, .rst-content p.caption .pull-right.headerlink, .rst-content tt.download span.pull-right:first-child, .rst-content code.download span.pull-right:first-child, .pull-right.icon { + margin-left: .3em; +} + +.fa-spin { + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; +} + +.fa-pulse { + -webkit-animation: fa-spin 1s infinite steps(8); + animation: fa-spin 1s infinite steps(8); +} + +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +.fa-rotate-90 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; + -webkit-transform: rotate(90deg); + -ms-transform: rotate(90deg); + transform: rotate(90deg); +} + +.fa-rotate-180 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; + -webkit-transform: rotate(180deg); + -ms-transform: rotate(180deg); + transform: rotate(180deg); +} + +.fa-rotate-270 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; + -webkit-transform: rotate(270deg); + -ms-transform: rotate(270deg); + transform: rotate(270deg); +} + +.fa-flip-horizontal { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; + -webkit-transform: scale(-1, 1); + -ms-transform: scale(-1, 1); + transform: scale(-1, 1); +} + +.fa-flip-vertical { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; + -webkit-transform: scale(1, -1); + -ms-transform: scale(1, -1); + transform: scale(1, -1); +} + +:root .fa-rotate-90, +:root .fa-rotate-180, +:root .fa-rotate-270, +:root .fa-flip-horizontal, +:root .fa-flip-vertical { + filter: none; +} + +.fa-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; +} + +.fa-stack-1x, .fa-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; +} + +.fa-stack-1x { + line-height: inherit; +} + +.fa-stack-2x { + font-size: 2em; +} + +.fa-inverse { + color: #fff; +} + +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen + readers do not read off random characters that represent icons */ +.fa-glass:before { + content: ""; +} + +.fa-music:before { + content: ""; +} + +.fa-search:before, .icon-search:before { + content: ""; +} + +.fa-envelope-o:before { + content: ""; +} + +.fa-heart:before { + content: ""; +} + +.fa-star:before { + content: ""; +} + +.fa-star-o:before { + content: ""; +} + +.fa-user:before { + content: ""; +} + +.fa-film:before { + content: ""; +} + +.fa-th-large:before { + content: ""; +} + +.fa-th:before { + content: ""; +} + +.fa-th-list:before { + content: ""; +} + +.fa-check:before { + content: ""; +} + +.fa-remove:before, +.fa-close:before, +.fa-times:before { + content: ""; +} + +.fa-search-plus:before { + content: ""; +} + +.fa-search-minus:before { + content: ""; +} + +.fa-power-off:before { + content: ""; +} + +.fa-signal:before { + content: ""; +} + +.fa-gear:before, +.fa-cog:before { + content: ""; +} + +.fa-trash-o:before { + content: ""; +} + +.fa-home:before, .icon-home:before { + content: ""; +} + +.fa-file-o:before { + content: ""; +} + +.fa-clock-o:before { + content: ""; +} + +.fa-road:before { + content: ""; +} + +.fa-download:before, .rst-content tt.download span:first-child:before, .rst-content code.download span:first-child:before { + content: ""; +} + +.fa-arrow-circle-o-down:before { + content: ""; +} + +.fa-arrow-circle-o-up:before { + content: ""; +} + +.fa-inbox:before { + content: ""; +} + +.fa-play-circle-o:before { + content: ""; +} + +.fa-rotate-right:before, +.fa-repeat:before { + content: ""; +} + +.fa-refresh:before { + content: ""; +} + +.fa-list-alt:before { + content: ""; +} + +.fa-lock:before { + content: ""; +} + +.fa-flag:before { + content: ""; +} + +.fa-headphones:before { + content: ""; +} + +.fa-volume-off:before { + content: ""; +} + +.fa-volume-down:before { + content: ""; +} + +.fa-volume-up:before { + content: ""; +} + +.fa-qrcode:before { + content: ""; +} + +.fa-barcode:before { + content: ""; +} + +.fa-tag:before { + content: ""; +} + +.fa-tags:before { + content: ""; +} + +.fa-book:before, .icon-book:before { + content: ""; +} + +.fa-bookmark:before { + content: ""; +} + +.fa-print:before { + content: ""; +} + +.fa-camera:before { + content: ""; +} + +.fa-font:before { + content: ""; +} + +.fa-bold:before { + content: ""; +} + +.fa-italic:before { + content: ""; +} + +.fa-text-height:before { + content: ""; +} + +.fa-text-width:before { + content: ""; +} + +.fa-align-left:before { + content: ""; +} + +.fa-align-center:before { + content: ""; +} + +.fa-align-right:before { + content: ""; +} + +.fa-align-justify:before { + content: ""; +} + +.fa-list:before { + content: ""; +} + +.fa-dedent:before, +.fa-outdent:before { + content: ""; +} + +.fa-indent:before { + content: ""; +} + +.fa-video-camera:before { + content: ""; +} + +.fa-photo:before, +.fa-image:before, +.fa-picture-o:before { + content: ""; +} + +.fa-pencil:before { + content: ""; +} + +.fa-map-marker:before { + content: ""; +} + +.fa-adjust:before { + content: ""; +} + +.fa-tint:before { + content: ""; +} + +.fa-edit:before, +.fa-pencil-square-o:before { + content: ""; +} + +.fa-share-square-o:before { + content: ""; +} + +.fa-check-square-o:before { + content: ""; +} + +.fa-arrows:before { + content: ""; +} + +.fa-step-backward:before { + content: ""; +} + +.fa-fast-backward:before { + content: ""; +} + +.fa-backward:before { + content: ""; +} + +.fa-play:before { + content: ""; +} + +.fa-pause:before { + content: ""; +} + +.fa-stop:before { + content: ""; +} + +.fa-forward:before { + content: ""; +} + +.fa-fast-forward:before { + content: ""; +} + +.fa-step-forward:before { + content: ""; +} + +.fa-eject:before { + content: ""; +} + +.fa-chevron-left:before { + content: ""; +} + +.fa-chevron-right:before { + content: ""; +} + +.fa-plus-circle:before { + content: ""; +} + +.fa-minus-circle:before { + content: ""; +} + +.fa-times-circle:before, .wy-inline-validate.wy-inline-validate-danger .wy-input-context:before { + content: ""; +} + +.fa-check-circle:before, .wy-inline-validate.wy-inline-validate-success .wy-input-context:before { + content: ""; +} + +.fa-question-circle:before { + content: ""; +} + +.fa-info-circle:before { + content: ""; +} + +.fa-crosshairs:before { + content: ""; +} + +.fa-times-circle-o:before { + content: ""; +} + +.fa-check-circle-o:before { + content: ""; +} + +.fa-ban:before { + content: ""; +} + +.fa-arrow-left:before { + content: ""; +} + +.fa-arrow-right:before { + content: ""; +} + +.fa-arrow-up:before { + content: ""; +} + +.fa-arrow-down:before { + content: ""; +} + +.fa-mail-forward:before, +.fa-share:before { + content: ""; +} + +.fa-expand:before { + content: ""; +} + +.fa-compress:before { + content: ""; +} + +.fa-plus:before { + content: ""; +} + +.fa-minus:before { + content: ""; +} + +.fa-asterisk:before { + content: ""; +} + +.fa-exclamation-circle:before, .wy-inline-validate.wy-inline-validate-warning .wy-input-context:before, .wy-inline-validate.wy-inline-validate-info .wy-input-context:before, .rst-content .admonition-title:before { + content: ""; +} + +.fa-gift:before { + content: ""; +} + +.fa-leaf:before { + content: ""; +} + +.fa-fire:before, .icon-fire:before { + content: ""; +} + +.fa-eye:before { + content: ""; +} + +.fa-eye-slash:before { + content: ""; +} + +.fa-warning:before, +.fa-exclamation-triangle:before { + content: ""; +} + +.fa-plane:before { + content: ""; +} + +.fa-calendar:before { + content: ""; +} + +.fa-random:before { + content: ""; +} + +.fa-comment:before { + content: ""; +} + +.fa-magnet:before { + content: ""; +} + +.fa-chevron-up:before { + content: ""; +} + +.fa-chevron-down:before { + content: ""; +} + +.fa-retweet:before { + content: ""; +} + +.fa-shopping-cart:before { + content: ""; +} + +.fa-folder:before { + content: ""; +} + +.fa-folder-open:before { + content: ""; +} + +.fa-arrows-v:before { + content: ""; +} + +.fa-arrows-h:before { + content: ""; +} + +.fa-bar-chart-o:before, +.fa-bar-chart:before { + content: ""; +} + +.fa-twitter-square:before { + content: ""; +} + +.fa-facebook-square:before { + content: ""; +} + +.fa-camera-retro:before { + content: ""; +} + +.fa-key:before { + content: ""; +} + +.fa-gears:before, +.fa-cogs:before { + content: ""; +} + +.fa-comments:before { + content: ""; +} + +.fa-thumbs-o-up:before { + content: ""; +} + +.fa-thumbs-o-down:before { + content: ""; +} + +.fa-star-half:before { + content: ""; +} + +.fa-heart-o:before { + content: ""; +} + +.fa-sign-out:before { + content: ""; +} + +.fa-linkedin-square:before { + content: ""; +} + +.fa-thumb-tack:before { + content: ""; +} + +.fa-external-link:before { + content: ""; +} + +.fa-sign-in:before { + content: ""; +} + +.fa-trophy:before { + content: ""; +} + +.fa-github-square:before { + content: ""; +} + +.fa-upload:before { + content: ""; +} + +.fa-lemon-o:before { + content: ""; +} + +.fa-phone:before { + content: ""; +} + +.fa-square-o:before { + content: ""; +} + +.fa-bookmark-o:before { + content: ""; +} + +.fa-phone-square:before { + content: ""; +} + +.fa-twitter:before { + content: ""; +} + +.fa-facebook-f:before, +.fa-facebook:before { + content: ""; +} + +.fa-github:before, .icon-github:before { + content: ""; +} + +.fa-unlock:before { + content: ""; +} + +.fa-credit-card:before { + content: ""; +} + +.fa-feed:before, +.fa-rss:before { + content: ""; +} + +.fa-hdd-o:before { + content: ""; +} + +.fa-bullhorn:before { + content: ""; +} + +.fa-bell:before { + content: ""; +} + +.fa-certificate:before { + content: ""; +} + +.fa-hand-o-right:before { + content: ""; +} + +.fa-hand-o-left:before { + content: ""; +} + +.fa-hand-o-up:before { + content: ""; +} + +.fa-hand-o-down:before { + content: ""; +} + +.fa-arrow-circle-left:before, .icon-circle-arrow-left:before { + content: ""; +} + +.fa-arrow-circle-right:before, .icon-circle-arrow-right:before { + content: ""; +} + +.fa-arrow-circle-up:before { + content: ""; +} + +.fa-arrow-circle-down:before { + content: ""; +} + +.fa-globe:before { + content: ""; +} + +.fa-wrench:before { + content: ""; +} + +.fa-tasks:before { + content: ""; +} + +.fa-filter:before { + content: ""; +} + +.fa-briefcase:before { + content: ""; +} + +.fa-arrows-alt:before { + content: ""; +} + +.fa-group:before, +.fa-users:before { + content: ""; +} + +.fa-chain:before, +.fa-link:before, +.icon-link:before { + content: ""; +} + +.fa-cloud:before { + content: ""; +} + +.fa-flask:before { + content: ""; +} + +.fa-cut:before, +.fa-scissors:before { + content: ""; +} + +.fa-copy:before, +.fa-files-o:before { + content: ""; +} + +.fa-paperclip:before { + content: ""; +} + +.fa-save:before, +.fa-floppy-o:before { + content: ""; +} + +.fa-square:before { + content: ""; +} + +.fa-navicon:before, +.fa-reorder:before, +.fa-bars:before { + content: ""; +} + +.fa-list-ul:before { + content: ""; +} + +.fa-list-ol:before { + content: ""; +} + +.fa-strikethrough:before { + content: ""; +} + +.fa-underline:before { + content: ""; +} + +.fa-table:before { + content: ""; +} + +.fa-magic:before { + content: ""; +} + +.fa-truck:before { + content: ""; +} + +.fa-pinterest:before { + content: ""; +} + +.fa-pinterest-square:before { + content: ""; +} + +.fa-google-plus-square:before { + content: ""; +} + +.fa-google-plus:before { + content: ""; +} + +.fa-money:before { + content: ""; +} + +.fa-caret-down:before, .wy-dropdown .caret:before, .icon-caret-down:before { + content: ""; +} + +.fa-caret-up:before { + content: ""; +} + +.fa-caret-left:before { + content: ""; +} + +.fa-caret-right:before { + content: ""; +} + +.fa-columns:before { + content: ""; +} + +.fa-unsorted:before, +.fa-sort:before { + content: ""; +} + +.fa-sort-down:before, +.fa-sort-desc:before { + content: ""; +} + +.fa-sort-up:before, +.fa-sort-asc:before { + content: ""; +} + +.fa-envelope:before { + content: ""; +} + +.fa-linkedin:before { + content: ""; +} + +.fa-rotate-left:before, +.fa-undo:before { + content: ""; +} + +.fa-legal:before, +.fa-gavel:before { + content: ""; +} + +.fa-dashboard:before, +.fa-tachometer:before { + content: ""; +} + +.fa-comment-o:before { + content: ""; +} + +.fa-comments-o:before { + content: ""; +} + +.fa-flash:before, +.fa-bolt:before { + content: ""; +} + +.fa-sitemap:before { + content: ""; +} + +.fa-umbrella:before { + content: ""; +} + +.fa-paste:before, +.fa-clipboard:before { + content: ""; +} + +.fa-lightbulb-o:before { + content: ""; +} + +.fa-exchange:before { + content: ""; +} + +.fa-cloud-download:before { + content: ""; +} + +.fa-cloud-upload:before { + content: ""; +} + +.fa-user-md:before { + content: ""; +} + +.fa-stethoscope:before { + content: ""; +} + +.fa-suitcase:before { + content: ""; +} + +.fa-bell-o:before { + content: ""; +} + +.fa-coffee:before { + content: ""; +} + +.fa-cutlery:before { + content: ""; +} + +.fa-file-text-o:before { + content: ""; +} + +.fa-building-o:before { + content: ""; +} + +.fa-hospital-o:before { + content: ""; +} + +.fa-ambulance:before { + content: ""; +} + +.fa-medkit:before { + content: ""; +} + +.fa-fighter-jet:before { + content: ""; +} + +.fa-beer:before { + content: ""; +} + +.fa-h-square:before { + content: ""; +} + +.fa-plus-square:before { + content: ""; +} + +.fa-angle-double-left:before { + content: ""; +} + +.fa-angle-double-right:before { + content: ""; +} + +.fa-angle-double-up:before { + content: ""; +} + +.fa-angle-double-down:before { + content: ""; +} + +.fa-angle-left:before { + content: ""; +} + +.fa-angle-right:before { + content: ""; +} + +.fa-angle-up:before { + content: ""; +} + +.fa-angle-down:before { + content: ""; +} + +.fa-desktop:before { + content: ""; +} + +.fa-laptop:before { + content: ""; +} + +.fa-tablet:before { + content: ""; +} + +.fa-mobile-phone:before, +.fa-mobile:before { + content: ""; +} + +.fa-circle-o:before { + content: ""; +} + +.fa-quote-left:before { + content: ""; +} + +.fa-quote-right:before { + content: ""; +} + +.fa-spinner:before { + content: ""; +} + +.fa-circle:before { + content: ""; +} + +.fa-mail-reply:before, +.fa-reply:before { + content: ""; +} + +.fa-github-alt:before { + content: ""; +} + +.fa-folder-o:before { + content: ""; +} + +.fa-folder-open-o:before { + content: ""; +} + +.fa-smile-o:before { + content: ""; +} + +.fa-frown-o:before { + content: ""; +} + +.fa-meh-o:before { + content: ""; +} + +.fa-gamepad:before { + content: ""; +} + +.fa-keyboard-o:before { + content: ""; +} + +.fa-flag-o:before { + content: ""; +} + +.fa-flag-checkered:before { + content: ""; +} + +.fa-terminal:before { + content: ""; +} + +.fa-code:before { + content: ""; +} + +.fa-mail-reply-all:before, +.fa-reply-all:before { + content: ""; +} + +.fa-star-half-empty:before, +.fa-star-half-full:before, +.fa-star-half-o:before { + content: ""; +} + +.fa-location-arrow:before { + content: ""; +} + +.fa-crop:before { + content: ""; +} + +.fa-code-fork:before { + content: ""; +} + +.fa-unlink:before, +.fa-chain-broken:before { + content: ""; +} + +.fa-question:before { + content: ""; +} + +.fa-info:before { + content: ""; +} + +.fa-exclamation:before { + content: ""; +} + +.fa-superscript:before { + content: ""; +} + +.fa-subscript:before { + content: ""; +} + +.fa-eraser:before { + content: ""; +} + +.fa-puzzle-piece:before { + content: ""; +} + +.fa-microphone:before { + content: ""; +} + +.fa-microphone-slash:before { + content: ""; +} + +.fa-shield:before { + content: ""; +} + +.fa-calendar-o:before { + content: ""; +} + +.fa-fire-extinguisher:before { + content: ""; +} + +.fa-rocket:before { + content: ""; +} + +.fa-maxcdn:before { + content: ""; +} + +.fa-chevron-circle-left:before { + content: ""; +} + +.fa-chevron-circle-right:before { + content: ""; +} + +.fa-chevron-circle-up:before { + content: ""; +} + +.fa-chevron-circle-down:before { + content: ""; +} + +.fa-html5:before { + content: ""; +} + +.fa-css3:before { + content: ""; +} + +.fa-anchor:before { + content: ""; +} + +.fa-unlock-alt:before { + content: ""; +} + +.fa-bullseye:before { + content: ""; +} + +.fa-ellipsis-h:before { + content: ""; +} + +.fa-ellipsis-v:before { + content: ""; +} + +.fa-rss-square:before { + content: ""; +} + +.fa-play-circle:before { + content: ""; +} + +.fa-ticket:before { + content: ""; +} + +.fa-minus-square:before { + content: ""; +} + +.fa-minus-square-o:before, .wy-menu-vertical li.on a span.toctree-expand:before, .wy-menu-vertical li.current > a span.toctree-expand:before { + content: ""; +} + +.fa-level-up:before { + content: ""; +} + +.fa-level-down:before { + content: ""; +} + +.fa-check-square:before { + content: ""; +} + +.fa-pencil-square:before { + content: ""; +} + +.fa-external-link-square:before { + content: ""; +} + +.fa-share-square:before { + content: ""; +} + +.fa-compass:before { + content: ""; +} + +.fa-toggle-down:before, +.fa-caret-square-o-down:before { + content: ""; +} + +.fa-toggle-up:before, +.fa-caret-square-o-up:before { + content: ""; +} + +.fa-toggle-right:before, +.fa-caret-square-o-right:before { + content: ""; +} + +.fa-euro:before, +.fa-eur:before { + content: ""; +} + +.fa-gbp:before { + content: ""; +} + +.fa-dollar:before, +.fa-usd:before { + content: ""; +} + +.fa-rupee:before, +.fa-inr:before { + content: ""; +} + +.fa-cny:before, +.fa-rmb:before, +.fa-yen:before, +.fa-jpy:before { + content: ""; +} + +.fa-ruble:before, +.fa-rouble:before, +.fa-rub:before { + content: ""; +} + +.fa-won:before, +.fa-krw:before { + content: ""; +} + +.fa-bitcoin:before, +.fa-btc:before { + content: ""; +} + +.fa-file:before { + content: ""; +} + +.fa-file-text:before { + content: ""; +} + +.fa-sort-alpha-asc:before { + content: ""; +} + +.fa-sort-alpha-desc:before { + content: ""; +} + +.fa-sort-amount-asc:before { + content: ""; +} + +.fa-sort-amount-desc:before { + content: ""; +} + +.fa-sort-numeric-asc:before { + content: ""; +} + +.fa-sort-numeric-desc:before { + content: ""; +} + +.fa-thumbs-up:before { + content: ""; +} + +.fa-thumbs-down:before { + content: ""; +} + +.fa-youtube-square:before { + content: ""; +} + +.fa-youtube:before { + content: ""; +} + +.fa-xing:before { + content: ""; +} + +.fa-xing-square:before { + content: ""; +} + +.fa-youtube-play:before { + content: ""; +} + +.fa-dropbox:before { + content: ""; +} + +.fa-stack-overflow:before { + content: ""; +} + +.fa-instagram:before { + content: ""; +} + +.fa-flickr:before { + content: ""; +} + +.fa-adn:before { + content: ""; +} + +.fa-bitbucket:before, .icon-bitbucket:before { + content: ""; +} + +.fa-bitbucket-square:before { + content: ""; +} + +.fa-tumblr:before { + content: ""; +} + +.fa-tumblr-square:before { + content: ""; +} + +.fa-long-arrow-down:before { + content: ""; +} + +.fa-long-arrow-up:before { + content: ""; +} + +.fa-long-arrow-left:before { + content: ""; +} + +.fa-long-arrow-right:before { + content: ""; +} + +.fa-apple:before { + content: ""; +} + +.fa-windows:before { + content: ""; +} + +.fa-android:before { + content: ""; +} + +.fa-linux:before { + content: ""; +} + +.fa-dribbble:before { + content: ""; +} + +.fa-skype:before { + content: ""; +} + +.fa-foursquare:before { + content: ""; +} + +.fa-trello:before { + content: ""; +} + +.fa-female:before { + content: ""; +} + +.fa-male:before { + content: ""; +} + +.fa-gittip:before, +.fa-gratipay:before { + content: ""; +} + +.fa-sun-o:before { + content: ""; +} + +.fa-moon-o:before { + content: ""; +} + +.fa-archive:before { + content: ""; +} + +.fa-bug:before { + content: ""; +} + +.fa-vk:before { + content: ""; +} + +.fa-weibo:before { + content: ""; +} + +.fa-renren:before { + content: ""; +} + +.fa-pagelines:before { + content: ""; +} + +.fa-stack-exchange:before { + content: ""; +} + +.fa-arrow-circle-o-right:before { + content: ""; +} + +.fa-arrow-circle-o-left:before { + content: ""; +} + +.fa-toggle-left:before, +.fa-caret-square-o-left:before { + content: ""; +} + +.fa-dot-circle-o:before { + content: ""; +} + +.fa-wheelchair:before { + content: ""; +} + +.fa-vimeo-square:before { + content: ""; +} + +.fa-turkish-lira:before, +.fa-try:before { + content: ""; +} + +.fa-plus-square-o:before, .wy-menu-vertical li span.toctree-expand:before { + content: ""; +} + +.fa-space-shuttle:before { + content: ""; +} + +.fa-slack:before { + content: ""; +} + +.fa-envelope-square:before { + content: ""; +} + +.fa-wordpress:before { + content: ""; +} + +.fa-openid:before { + content: ""; +} + +.fa-institution:before, +.fa-bank:before, +.fa-university:before { + content: ""; +} + +.fa-mortar-board:before, +.fa-graduation-cap:before { + content: ""; +} + +.fa-yahoo:before { + content: ""; +} + +.fa-google:before { + content: ""; +} + +.fa-reddit:before { + content: ""; +} + +.fa-reddit-square:before { + content: ""; +} + +.fa-stumbleupon-circle:before { + content: ""; +} + +.fa-stumbleupon:before { + content: ""; +} + +.fa-delicious:before { + content: ""; +} + +.fa-digg:before { + content: ""; +} + +.fa-pied-piper-pp:before { + content: ""; +} + +.fa-pied-piper-alt:before { + content: ""; +} + +.fa-drupal:before { + content: ""; +} + +.fa-joomla:before { + content: ""; +} + +.fa-language:before { + content: ""; +} + +.fa-fax:before { + content: ""; +} + +.fa-building:before { + content: ""; +} + +.fa-child:before { + content: ""; +} + +.fa-paw:before { + content: ""; +} + +.fa-spoon:before { + content: ""; +} + +.fa-cube:before { + content: ""; +} + +.fa-cubes:before { + content: ""; +} + +.fa-behance:before { + content: ""; +} + +.fa-behance-square:before { + content: ""; +} + +.fa-steam:before { + content: ""; +} + +.fa-steam-square:before { + content: ""; +} + +.fa-recycle:before { + content: ""; +} + +.fa-automobile:before, +.fa-car:before { + content: ""; +} + +.fa-cab:before, +.fa-taxi:before { + content: ""; +} + +.fa-tree:before { + content: ""; +} + +.fa-spotify:before { + content: ""; +} + +.fa-deviantart:before { + content: ""; +} + +.fa-soundcloud:before { + content: ""; +} + +.fa-database:before { + content: ""; +} + +.fa-file-pdf-o:before { + content: ""; +} + +.fa-file-word-o:before { + content: ""; +} + +.fa-file-excel-o:before { + content: ""; +} + +.fa-file-powerpoint-o:before { + content: ""; +} + +.fa-file-photo-o:before, +.fa-file-picture-o:before, +.fa-file-image-o:before { + content: ""; +} + +.fa-file-zip-o:before, +.fa-file-archive-o:before { + content: ""; +} + +.fa-file-sound-o:before, +.fa-file-audio-o:before { + content: ""; +} + +.fa-file-movie-o:before, +.fa-file-video-o:before { + content: ""; +} + +.fa-file-code-o:before { + content: ""; +} + +.fa-vine:before { + content: ""; +} + +.fa-codepen:before { + content: ""; +} + +.fa-jsfiddle:before { + content: ""; +} + +.fa-life-bouy:before, +.fa-life-buoy:before, +.fa-life-saver:before, +.fa-support:before, +.fa-life-ring:before { + content: ""; +} + +.fa-circle-o-notch:before { + content: ""; +} + +.fa-ra:before, +.fa-resistance:before, +.fa-rebel:before { + content: ""; +} + +.fa-ge:before, +.fa-empire:before { + content: ""; +} + +.fa-git-square:before { + content: ""; +} + +.fa-git:before { + content: ""; +} + +.fa-y-combinator-square:before, +.fa-yc-square:before, +.fa-hacker-news:before { + content: ""; +} + +.fa-tencent-weibo:before { + content: ""; +} + +.fa-qq:before { + content: ""; +} + +.fa-wechat:before, +.fa-weixin:before { + content: ""; +} + +.fa-send:before, +.fa-paper-plane:before { + content: ""; +} + +.fa-send-o:before, +.fa-paper-plane-o:before { + content: ""; +} + +.fa-history:before { + content: ""; +} + +.fa-circle-thin:before { + content: ""; +} + +.fa-header:before { + content: ""; +} + +.fa-paragraph:before { + content: ""; +} + +.fa-sliders:before { + content: ""; +} + +.fa-share-alt:before { + content: ""; +} + +.fa-share-alt-square:before { + content: ""; +} + +.fa-bomb:before { + content: ""; +} + +.fa-soccer-ball-o:before, +.fa-futbol-o:before { + content: ""; +} + +.fa-tty:before { + content: ""; +} + +.fa-binoculars:before { + content: ""; +} + +.fa-plug:before { + content: ""; +} + +.fa-slideshare:before { + content: ""; +} + +.fa-twitch:before { + content: ""; +} + +.fa-yelp:before { + content: ""; +} + +.fa-newspaper-o:before { + content: ""; +} + +.fa-wifi:before { + content: ""; +} + +.fa-calculator:before { + content: ""; +} + +.fa-paypal:before { + content: ""; +} + +.fa-google-wallet:before { + content: ""; +} + +.fa-cc-visa:before { + content: ""; +} + +.fa-cc-mastercard:before { + content: ""; +} + +.fa-cc-discover:before { + content: ""; +} + +.fa-cc-amex:before { + content: ""; +} + +.fa-cc-paypal:before { + content: ""; +} + +.fa-cc-stripe:before { + content: ""; +} + +.fa-bell-slash:before { + content: ""; +} + +.fa-bell-slash-o:before { + content: ""; +} + +.fa-trash:before { + content: ""; +} + +.fa-copyright:before { + content: ""; +} + +.fa-at:before { + content: ""; +} + +.fa-eyedropper:before { + content: ""; +} + +.fa-paint-brush:before { + content: ""; +} + +.fa-birthday-cake:before { + content: ""; +} + +.fa-area-chart:before { + content: ""; +} + +.fa-pie-chart:before { + content: ""; +} + +.fa-line-chart:before { + content: ""; +} + +.fa-lastfm:before { + content: ""; +} + +.fa-lastfm-square:before { + content: ""; +} + +.fa-toggle-off:before { + content: ""; +} + +.fa-toggle-on:before { + content: ""; +} + +.fa-bicycle:before { + content: ""; +} + +.fa-bus:before { + content: ""; +} + +.fa-ioxhost:before { + content: ""; +} + +.fa-angellist:before { + content: ""; +} + +.fa-cc:before { + content: ""; +} + +.fa-shekel:before, +.fa-sheqel:before, +.fa-ils:before { + content: ""; +} + +.fa-meanpath:before { + content: ""; +} + +.fa-buysellads:before { + content: ""; +} + +.fa-connectdevelop:before { + content: ""; +} + +.fa-dashcube:before { + content: ""; +} + +.fa-forumbee:before { + content: ""; +} + +.fa-leanpub:before { + content: ""; +} + +.fa-sellsy:before { + content: ""; +} + +.fa-shirtsinbulk:before { + content: ""; +} + +.fa-simplybuilt:before { + content: ""; +} + +.fa-skyatlas:before { + content: ""; +} + +.fa-cart-plus:before { + content: ""; +} + +.fa-cart-arrow-down:before { + content: ""; +} + +.fa-diamond:before { + content: ""; +} + +.fa-ship:before { + content: ""; +} + +.fa-user-secret:before { + content: ""; +} + +.fa-motorcycle:before { + content: ""; +} + +.fa-street-view:before { + content: ""; +} + +.fa-heartbeat:before { + content: ""; +} + +.fa-venus:before { + content: ""; +} + +.fa-mars:before { + content: ""; +} + +.fa-mercury:before { + content: ""; +} + +.fa-intersex:before, +.fa-transgender:before { + content: ""; +} + +.fa-transgender-alt:before { + content: ""; +} + +.fa-venus-double:before { + content: ""; +} + +.fa-mars-double:before { + content: ""; +} + +.fa-venus-mars:before { + content: ""; +} + +.fa-mars-stroke:before { + content: ""; +} + +.fa-mars-stroke-v:before { + content: ""; +} + +.fa-mars-stroke-h:before { + content: ""; +} + +.fa-neuter:before { + content: ""; +} + +.fa-genderless:before { + content: ""; +} + +.fa-facebook-official:before { + content: ""; +} + +.fa-pinterest-p:before { + content: ""; +} + +.fa-whatsapp:before { + content: ""; +} + +.fa-server:before { + content: ""; +} + +.fa-user-plus:before { + content: ""; +} + +.fa-user-times:before { + content: ""; +} + +.fa-hotel:before, +.fa-bed:before { + content: ""; +} + +.fa-viacoin:before { + content: ""; +} + +.fa-train:before { + content: ""; +} + +.fa-subway:before { + content: ""; +} + +.fa-medium:before { + content: ""; +} + +.fa-yc:before, +.fa-y-combinator:before { + content: ""; +} + +.fa-optin-monster:before { + content: ""; +} + +.fa-opencart:before { + content: ""; +} + +.fa-expeditedssl:before { + content: ""; +} + +.fa-battery-4:before, +.fa-battery:before, +.fa-battery-full:before { + content: ""; +} + +.fa-battery-3:before, +.fa-battery-three-quarters:before { + content: ""; +} + +.fa-battery-2:before, +.fa-battery-half:before { + content: ""; +} + +.fa-battery-1:before, +.fa-battery-quarter:before { + content: ""; +} + +.fa-battery-0:before, +.fa-battery-empty:before { + content: ""; +} + +.fa-mouse-pointer:before { + content: ""; +} + +.fa-i-cursor:before { + content: ""; +} + +.fa-object-group:before { + content: ""; +} + +.fa-object-ungroup:before { + content: ""; +} + +.fa-sticky-note:before { + content: ""; +} + +.fa-sticky-note-o:before { + content: ""; +} + +.fa-cc-jcb:before { + content: ""; +} + +.fa-cc-diners-club:before { + content: ""; +} + +.fa-clone:before { + content: ""; +} + +.fa-balance-scale:before { + content: ""; +} + +.fa-hourglass-o:before { + content: ""; +} + +.fa-hourglass-1:before, +.fa-hourglass-start:before { + content: ""; +} + +.fa-hourglass-2:before, +.fa-hourglass-half:before { + content: ""; +} + +.fa-hourglass-3:before, +.fa-hourglass-end:before { + content: ""; +} + +.fa-hourglass:before { + content: ""; +} + +.fa-hand-grab-o:before, +.fa-hand-rock-o:before { + content: ""; +} + +.fa-hand-stop-o:before, +.fa-hand-paper-o:before { + content: ""; +} + +.fa-hand-scissors-o:before { + content: ""; +} + +.fa-hand-lizard-o:before { + content: ""; +} + +.fa-hand-spock-o:before { + content: ""; +} + +.fa-hand-pointer-o:before { + content: ""; +} + +.fa-hand-peace-o:before { + content: ""; +} + +.fa-trademark:before { + content: ""; +} + +.fa-registered:before { + content: ""; +} + +.fa-creative-commons:before { + content: ""; +} + +.fa-gg:before { + content: ""; +} + +.fa-gg-circle:before { + content: ""; +} + +.fa-tripadvisor:before { + content: ""; +} + +.fa-odnoklassniki:before { + content: ""; +} + +.fa-odnoklassniki-square:before { + content: ""; +} + +.fa-get-pocket:before { + content: ""; +} + +.fa-wikipedia-w:before { + content: ""; +} + +.fa-safari:before { + content: ""; +} + +.fa-chrome:before { + content: ""; +} + +.fa-firefox:before { + content: ""; +} + +.fa-opera:before { + content: ""; +} + +.fa-internet-explorer:before { + content: ""; +} + +.fa-tv:before, +.fa-television:before { + content: ""; +} + +.fa-contao:before { + content: ""; +} + +.fa-500px:before { + content: ""; +} + +.fa-amazon:before { + content: ""; +} + +.fa-calendar-plus-o:before { + content: ""; +} + +.fa-calendar-minus-o:before { + content: ""; +} + +.fa-calendar-times-o:before { + content: ""; +} + +.fa-calendar-check-o:before { + content: ""; +} + +.fa-industry:before { + content: ""; +} + +.fa-map-pin:before { + content: ""; +} + +.fa-map-signs:before { + content: ""; +} + +.fa-map-o:before { + content: ""; +} + +.fa-map:before { + content: ""; +} + +.fa-commenting:before { + content: ""; +} + +.fa-commenting-o:before { + content: ""; +} + +.fa-houzz:before { + content: ""; +} + +.fa-vimeo:before { + content: ""; +} + +.fa-black-tie:before { + content: ""; +} + +.fa-fonticons:before { + content: ""; +} + +.fa-reddit-alien:before { + content: ""; +} + +.fa-edge:before { + content: ""; +} + +.fa-credit-card-alt:before { + content: ""; +} + +.fa-codiepie:before { + content: ""; +} + +.fa-modx:before { + content: ""; +} + +.fa-fort-awesome:before { + content: ""; +} + +.fa-usb:before { + content: ""; +} + +.fa-product-hunt:before { + content: ""; +} + +.fa-mixcloud:before { + content: ""; +} + +.fa-scribd:before { + content: ""; +} + +.fa-pause-circle:before { + content: ""; +} + +.fa-pause-circle-o:before { + content: ""; +} + +.fa-stop-circle:before { + content: ""; +} + +.fa-stop-circle-o:before { + content: ""; +} + +.fa-shopping-bag:before { + content: ""; +} + +.fa-shopping-basket:before { + content: ""; +} + +.fa-hashtag:before { + content: ""; +} + +.fa-bluetooth:before { + content: ""; +} + +.fa-bluetooth-b:before { + content: ""; +} + +.fa-percent:before { + content: ""; +} + +.fa-gitlab:before, .icon-gitlab:before { + content: ""; +} + +.fa-wpbeginner:before { + content: ""; +} + +.fa-wpforms:before { + content: ""; +} + +.fa-envira:before { + content: ""; +} + +.fa-universal-access:before { + content: ""; +} + +.fa-wheelchair-alt:before { + content: ""; +} + +.fa-question-circle-o:before { + content: ""; +} + +.fa-blind:before { + content: ""; +} + +.fa-audio-description:before { + content: ""; +} + +.fa-volume-control-phone:before { + content: ""; +} + +.fa-braille:before { + content: ""; +} + +.fa-assistive-listening-systems:before { + content: ""; +} + +.fa-asl-interpreting:before, +.fa-american-sign-language-interpreting:before { + content: ""; +} + +.fa-deafness:before, +.fa-hard-of-hearing:before, +.fa-deaf:before { + content: ""; +} + +.fa-glide:before { + content: ""; +} + +.fa-glide-g:before { + content: ""; +} + +.fa-signing:before, +.fa-sign-language:before { + content: ""; +} + +.fa-low-vision:before { + content: ""; +} + +.fa-viadeo:before { + content: ""; +} + +.fa-viadeo-square:before { + content: ""; +} + +.fa-snapchat:before { + content: ""; +} + +.fa-snapchat-ghost:before { + content: ""; +} + +.fa-snapchat-square:before { + content: ""; +} + +.fa-pied-piper:before { + content: ""; +} + +.fa-first-order:before { + content: ""; +} + +.fa-yoast:before { + content: ""; +} + +.fa-themeisle:before { + content: ""; +} + +.fa-google-plus-circle:before, +.fa-google-plus-official:before { + content: ""; +} + +.fa-fa:before, +.fa-font-awesome:before { + content: ""; +} + +.fa-handshake-o:before { + content: ""; +} + +.fa-envelope-open:before { + content: ""; +} + +.fa-envelope-open-o:before { + content: ""; +} + +.fa-linode:before { + content: ""; +} + +.fa-address-book:before { + content: ""; +} + +.fa-address-book-o:before { + content: ""; +} + +.fa-vcard:before, +.fa-address-card:before { + content: ""; +} + +.fa-vcard-o:before, +.fa-address-card-o:before { + content: ""; +} + +.fa-user-circle:before { + content: ""; +} + +.fa-user-circle-o:before { + content: ""; +} + +.fa-user-o:before { + content: ""; +} + +.fa-id-badge:before { + content: ""; +} + +.fa-drivers-license:before, +.fa-id-card:before { + content: ""; +} + +.fa-drivers-license-o:before, +.fa-id-card-o:before { + content: ""; +} + +.fa-quora:before { + content: ""; +} + +.fa-free-code-camp:before { + content: ""; +} + +.fa-telegram:before { + content: ""; +} + +.fa-thermometer-4:before, +.fa-thermometer:before, +.fa-thermometer-full:before { + content: ""; +} + +.fa-thermometer-3:before, +.fa-thermometer-three-quarters:before { + content: ""; +} + +.fa-thermometer-2:before, +.fa-thermometer-half:before { + content: ""; +} + +.fa-thermometer-1:before, +.fa-thermometer-quarter:before { + content: ""; +} + +.fa-thermometer-0:before, +.fa-thermometer-empty:before { + content: ""; +} + +.fa-shower:before { + content: ""; +} + +.fa-bathtub:before, +.fa-s15:before, +.fa-bath:before { + content: ""; +} + +.fa-podcast:before { + content: ""; +} + +.fa-window-maximize:before { + content: ""; +} + +.fa-window-minimize:before { + content: ""; +} + +.fa-window-restore:before { + content: ""; +} + +.fa-times-rectangle:before, +.fa-window-close:before { + content: ""; +} + +.fa-times-rectangle-o:before, +.fa-window-close-o:before { + content: ""; +} + +.fa-bandcamp:before { + content: ""; +} + +.fa-grav:before { + content: ""; +} + +.fa-etsy:before { + content: ""; +} + +.fa-imdb:before { + content: ""; +} + +.fa-ravelry:before { + content: ""; +} + +.fa-eercast:before { + content: ""; +} + +.fa-microchip:before { + content: ""; +} + +.fa-snowflake-o:before { + content: ""; +} + +.fa-superpowers:before { + content: ""; +} + +.fa-wpexplorer:before { + content: ""; +} + +.fa-meetup:before { + content: ""; +} + +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; +} + +.sr-only-focusable:active, .sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; +} + +.fa, .wy-menu-vertical li span.toctree-expand, .wy-menu-vertical li.on a span.toctree-expand, .wy-menu-vertical li.current > a span.toctree-expand, .rst-content .admonition-title, .rst-content h1 .headerlink, .rst-content h2 .headerlink, .rst-content h3 .headerlink, .rst-content h4 .headerlink, .rst-content h5 .headerlink, .rst-content h6 .headerlink, .rst-content dl dt .headerlink, .rst-content p.caption .headerlink, .rst-content tt.download span:first-child, .rst-content code.download span:first-child, .icon, .wy-dropdown .caret, .wy-inline-validate.wy-inline-validate-success .wy-input-context, .wy-inline-validate.wy-inline-validate-danger .wy-input-context, .wy-inline-validate.wy-inline-validate-warning .wy-input-context, .wy-inline-validate.wy-inline-validate-info .wy-input-context { + font-family: inherit; +} +.fa:before, .wy-menu-vertical li span.toctree-expand:before, .wy-menu-vertical li.on a span.toctree-expand:before, .wy-menu-vertical li.current > a span.toctree-expand:before, .rst-content .admonition-title:before, .rst-content h1 .headerlink:before, .rst-content h2 .headerlink:before, .rst-content h3 .headerlink:before, .rst-content h4 .headerlink:before, .rst-content h5 .headerlink:before, .rst-content h6 .headerlink:before, .rst-content dl dt .headerlink:before, .rst-content p.caption .headerlink:before, .rst-content tt.download span:first-child:before, .rst-content code.download span:first-child:before, .icon:before, .wy-dropdown .caret:before, .wy-inline-validate.wy-inline-validate-success .wy-input-context:before, .wy-inline-validate.wy-inline-validate-danger .wy-input-context:before, .wy-inline-validate.wy-inline-validate-warning .wy-input-context:before, .wy-inline-validate.wy-inline-validate-info .wy-input-context:before { + font-family: "FontAwesome"; + display: inline-block; + font-style: normal; + font-weight: normal; + line-height: 1; + text-decoration: inherit; +} + +a .fa, a .wy-menu-vertical li span.toctree-expand, .wy-menu-vertical li a span.toctree-expand, .wy-menu-vertical li.on a span.toctree-expand, .wy-menu-vertical li.current > a span.toctree-expand, a .rst-content .admonition-title, .rst-content a .admonition-title, a .rst-content h1 .headerlink, .rst-content h1 a .headerlink, a .rst-content h2 .headerlink, .rst-content h2 a .headerlink, a .rst-content h3 .headerlink, .rst-content h3 a .headerlink, a .rst-content h4 .headerlink, .rst-content h4 a .headerlink, a .rst-content h5 .headerlink, .rst-content h5 a .headerlink, a .rst-content h6 .headerlink, .rst-content h6 a .headerlink, a .rst-content dl dt .headerlink, .rst-content dl dt a .headerlink, a .rst-content p.caption .headerlink, .rst-content p.caption a .headerlink, a .rst-content tt.download span:first-child, .rst-content tt.download a span:first-child, a .rst-content code.download span:first-child, .rst-content code.download a span:first-child, a .icon { + display: inline-block; + text-decoration: inherit; +} + +.btn .fa, .btn .wy-menu-vertical li span.toctree-expand, .wy-menu-vertical li .btn span.toctree-expand, .btn .wy-menu-vertical li.on a span.toctree-expand, .wy-menu-vertical li.on a .btn span.toctree-expand, .btn .wy-menu-vertical li.current > a span.toctree-expand, .wy-menu-vertical li.current > a .btn span.toctree-expand, .btn .rst-content .admonition-title, .rst-content .btn .admonition-title, .btn .rst-content h1 .headerlink, .rst-content h1 .btn .headerlink, .btn .rst-content h2 .headerlink, .rst-content h2 .btn .headerlink, .btn .rst-content h3 .headerlink, .rst-content h3 .btn .headerlink, .btn .rst-content h4 .headerlink, .rst-content h4 .btn .headerlink, .btn .rst-content h5 .headerlink, .rst-content h5 .btn .headerlink, .btn .rst-content h6 .headerlink, .rst-content h6 .btn .headerlink, .btn .rst-content dl dt .headerlink, .rst-content dl dt .btn .headerlink, .btn .rst-content p.caption .headerlink, .rst-content p.caption .btn .headerlink, .btn .rst-content tt.download span:first-child, .rst-content tt.download .btn span:first-child, .btn .rst-content code.download span:first-child, .rst-content code.download .btn span:first-child, .btn .icon, .nav .fa, .nav .wy-menu-vertical li span.toctree-expand, .wy-menu-vertical li .nav span.toctree-expand, .nav .wy-menu-vertical li.on a span.toctree-expand, .wy-menu-vertical li.on a .nav span.toctree-expand, .nav .wy-menu-vertical li.current > a span.toctree-expand, .wy-menu-vertical li.current > a .nav span.toctree-expand, .nav .rst-content .admonition-title, .rst-content .nav .admonition-title, .nav .rst-content h1 .headerlink, .rst-content h1 .nav .headerlink, .nav .rst-content h2 .headerlink, .rst-content h2 .nav .headerlink, .nav .rst-content h3 .headerlink, .rst-content h3 .nav .headerlink, .nav .rst-content h4 .headerlink, .rst-content h4 .nav .headerlink, .nav .rst-content h5 .headerlink, .rst-content h5 .nav .headerlink, .nav .rst-content h6 .headerlink, .rst-content h6 .nav .headerlink, .nav .rst-content dl dt .headerlink, .rst-content dl dt .nav .headerlink, .nav .rst-content p.caption .headerlink, .rst-content p.caption .nav .headerlink, .nav .rst-content tt.download span:first-child, .rst-content tt.download .nav span:first-child, .nav .rst-content code.download span:first-child, .rst-content code.download .nav span:first-child, .nav .icon { + display: inline; +} +.btn .fa.fa-large, .btn .wy-menu-vertical li span.fa-large.toctree-expand, .wy-menu-vertical li .btn span.fa-large.toctree-expand, .btn .rst-content .fa-large.admonition-title, .rst-content .btn .fa-large.admonition-title, .btn .rst-content h1 .fa-large.headerlink, .rst-content h1 .btn .fa-large.headerlink, .btn .rst-content h2 .fa-large.headerlink, .rst-content h2 .btn .fa-large.headerlink, .btn .rst-content h3 .fa-large.headerlink, .rst-content h3 .btn .fa-large.headerlink, .btn .rst-content h4 .fa-large.headerlink, .rst-content h4 .btn .fa-large.headerlink, .btn .rst-content h5 .fa-large.headerlink, .rst-content h5 .btn .fa-large.headerlink, .btn .rst-content h6 .fa-large.headerlink, .rst-content h6 .btn .fa-large.headerlink, .btn .rst-content dl dt .fa-large.headerlink, .rst-content dl dt .btn .fa-large.headerlink, .btn .rst-content p.caption .fa-large.headerlink, .rst-content p.caption .btn .fa-large.headerlink, .btn .rst-content tt.download span.fa-large:first-child, .rst-content tt.download .btn span.fa-large:first-child, .btn .rst-content code.download span.fa-large:first-child, .rst-content code.download .btn span.fa-large:first-child, .btn .fa-large.icon, .nav .fa.fa-large, .nav .wy-menu-vertical li span.fa-large.toctree-expand, .wy-menu-vertical li .nav span.fa-large.toctree-expand, .nav .rst-content .fa-large.admonition-title, .rst-content .nav .fa-large.admonition-title, .nav .rst-content h1 .fa-large.headerlink, .rst-content h1 .nav .fa-large.headerlink, .nav .rst-content h2 .fa-large.headerlink, .rst-content h2 .nav .fa-large.headerlink, .nav .rst-content h3 .fa-large.headerlink, .rst-content h3 .nav .fa-large.headerlink, .nav .rst-content h4 .fa-large.headerlink, .rst-content h4 .nav .fa-large.headerlink, .nav .rst-content h5 .fa-large.headerlink, .rst-content h5 .nav .fa-large.headerlink, .nav .rst-content h6 .fa-large.headerlink, .rst-content h6 .nav .fa-large.headerlink, .nav .rst-content dl dt .fa-large.headerlink, .rst-content dl dt .nav .fa-large.headerlink, .nav .rst-content p.caption .fa-large.headerlink, .rst-content p.caption .nav .fa-large.headerlink, .nav .rst-content tt.download span.fa-large:first-child, .rst-content tt.download .nav span.fa-large:first-child, .nav .rst-content code.download span.fa-large:first-child, .rst-content code.download .nav span.fa-large:first-child, .nav .fa-large.icon { + line-height: 0.9em; +} +.btn .fa.fa-spin, .btn .wy-menu-vertical li span.fa-spin.toctree-expand, .wy-menu-vertical li .btn span.fa-spin.toctree-expand, .btn .rst-content .fa-spin.admonition-title, .rst-content .btn .fa-spin.admonition-title, .btn .rst-content h1 .fa-spin.headerlink, .rst-content h1 .btn .fa-spin.headerlink, .btn .rst-content h2 .fa-spin.headerlink, .rst-content h2 .btn .fa-spin.headerlink, .btn .rst-content h3 .fa-spin.headerlink, .rst-content h3 .btn .fa-spin.headerlink, .btn .rst-content h4 .fa-spin.headerlink, .rst-content h4 .btn .fa-spin.headerlink, .btn .rst-content h5 .fa-spin.headerlink, .rst-content h5 .btn .fa-spin.headerlink, .btn .rst-content h6 .fa-spin.headerlink, .rst-content h6 .btn .fa-spin.headerlink, .btn .rst-content dl dt .fa-spin.headerlink, .rst-content dl dt .btn .fa-spin.headerlink, .btn .rst-content p.caption .fa-spin.headerlink, .rst-content p.caption .btn .fa-spin.headerlink, .btn .rst-content tt.download span.fa-spin:first-child, .rst-content tt.download .btn span.fa-spin:first-child, .btn .rst-content code.download span.fa-spin:first-child, .rst-content code.download .btn span.fa-spin:first-child, .btn .fa-spin.icon, .nav .fa.fa-spin, .nav .wy-menu-vertical li span.fa-spin.toctree-expand, .wy-menu-vertical li .nav span.fa-spin.toctree-expand, .nav .rst-content .fa-spin.admonition-title, .rst-content .nav .fa-spin.admonition-title, .nav .rst-content h1 .fa-spin.headerlink, .rst-content h1 .nav .fa-spin.headerlink, .nav .rst-content h2 .fa-spin.headerlink, .rst-content h2 .nav .fa-spin.headerlink, .nav .rst-content h3 .fa-spin.headerlink, .rst-content h3 .nav .fa-spin.headerlink, .nav .rst-content h4 .fa-spin.headerlink, .rst-content h4 .nav .fa-spin.headerlink, .nav .rst-content h5 .fa-spin.headerlink, .rst-content h5 .nav .fa-spin.headerlink, .nav .rst-content h6 .fa-spin.headerlink, .rst-content h6 .nav .fa-spin.headerlink, .nav .rst-content dl dt .fa-spin.headerlink, .rst-content dl dt .nav .fa-spin.headerlink, .nav .rst-content p.caption .fa-spin.headerlink, .rst-content p.caption .nav .fa-spin.headerlink, .nav .rst-content tt.download span.fa-spin:first-child, .rst-content tt.download .nav span.fa-spin:first-child, .nav .rst-content code.download span.fa-spin:first-child, .rst-content code.download .nav span.fa-spin:first-child, .nav .fa-spin.icon { + display: inline-block; +} + +.btn.fa:before, .wy-menu-vertical li span.btn.toctree-expand:before, .rst-content .btn.admonition-title:before, .rst-content h1 .btn.headerlink:before, .rst-content h2 .btn.headerlink:before, .rst-content h3 .btn.headerlink:before, .rst-content h4 .btn.headerlink:before, .rst-content h5 .btn.headerlink:before, .rst-content h6 .btn.headerlink:before, .rst-content dl dt .btn.headerlink:before, .rst-content p.caption .btn.headerlink:before, .rst-content tt.download span.btn:first-child:before, .rst-content code.download span.btn:first-child:before, .btn.icon:before { + opacity: 0.5; + -webkit-transition: opacity 0.05s ease-in; + -moz-transition: opacity 0.05s ease-in; + transition: opacity 0.05s ease-in; +} + +.btn.fa:hover:before, .wy-menu-vertical li span.btn.toctree-expand:hover:before, .rst-content .btn.admonition-title:hover:before, .rst-content h1 .btn.headerlink:hover:before, .rst-content h2 .btn.headerlink:hover:before, .rst-content h3 .btn.headerlink:hover:before, .rst-content h4 .btn.headerlink:hover:before, .rst-content h5 .btn.headerlink:hover:before, .rst-content h6 .btn.headerlink:hover:before, .rst-content dl dt .btn.headerlink:hover:before, .rst-content p.caption .btn.headerlink:hover:before, .rst-content tt.download span.btn:first-child:hover:before, .rst-content code.download span.btn:first-child:hover:before, .btn.icon:hover:before { + opacity: 1; +} + +.btn-mini .fa:before, .btn-mini .wy-menu-vertical li span.toctree-expand:before, .wy-menu-vertical li .btn-mini span.toctree-expand:before, .btn-mini .rst-content .admonition-title:before, .rst-content .btn-mini .admonition-title:before, .btn-mini .rst-content h1 .headerlink:before, .rst-content h1 .btn-mini .headerlink:before, .btn-mini .rst-content h2 .headerlink:before, .rst-content h2 .btn-mini .headerlink:before, .btn-mini .rst-content h3 .headerlink:before, .rst-content h3 .btn-mini .headerlink:before, .btn-mini .rst-content h4 .headerlink:before, .rst-content h4 .btn-mini .headerlink:before, .btn-mini .rst-content h5 .headerlink:before, .rst-content h5 .btn-mini .headerlink:before, .btn-mini .rst-content h6 .headerlink:before, .rst-content h6 .btn-mini .headerlink:before, .btn-mini .rst-content dl dt .headerlink:before, .rst-content dl dt .btn-mini .headerlink:before, .btn-mini .rst-content p.caption .headerlink:before, .rst-content p.caption .btn-mini .headerlink:before, .btn-mini .rst-content tt.download span:first-child:before, .rst-content tt.download .btn-mini span:first-child:before, .btn-mini .rst-content code.download span:first-child:before, .rst-content code.download .btn-mini span:first-child:before, .btn-mini .icon:before { + font-size: 14px; + vertical-align: -15%; +} + +.wy-alert, .rst-content .note, .rst-content .attention, .rst-content .caution, .rst-content .danger, .rst-content .error, .rst-content .hint, .rst-content .important, .rst-content .tip, .rst-content .warning, .rst-content .seealso, .rst-content .admonition-todo { + padding: 12px; + line-height: 24px; + margin-bottom: 24px; + background: #e7f2fa; +} + +.wy-alert-title, .rst-content .admonition-title { + color: #fff; + font-weight: bold; + display: block; + color: #fff; + background: #6ab0de; + margin: -12px; + padding: 6px 12px; + margin-bottom: 12px; +} + +.wy-alert.wy-alert-danger, .rst-content .wy-alert-danger.note, .rst-content .wy-alert-danger.attention, .rst-content .wy-alert-danger.caution, .rst-content .danger, .rst-content .error, .rst-content .wy-alert-danger.hint, .rst-content .wy-alert-danger.important, .rst-content .wy-alert-danger.tip, .rst-content .wy-alert-danger.warning, .rst-content .wy-alert-danger.seealso, .rst-content .wy-alert-danger.admonition-todo { + background: #fdf3f2; +} +.wy-alert.wy-alert-danger .wy-alert-title, .rst-content .wy-alert-danger.note .wy-alert-title, .rst-content .wy-alert-danger.attention .wy-alert-title, .rst-content .wy-alert-danger.caution .wy-alert-title, .rst-content .danger .wy-alert-title, .rst-content .error .wy-alert-title, .rst-content .wy-alert-danger.hint .wy-alert-title, .rst-content .wy-alert-danger.important .wy-alert-title, .rst-content .wy-alert-danger.tip .wy-alert-title, .rst-content .wy-alert-danger.warning .wy-alert-title, .rst-content .wy-alert-danger.seealso .wy-alert-title, .rst-content .wy-alert-danger.admonition-todo .wy-alert-title, .wy-alert.wy-alert-danger .rst-content .admonition-title, .rst-content .wy-alert.wy-alert-danger .admonition-title, .rst-content .wy-alert-danger.note .admonition-title, .rst-content .wy-alert-danger.attention .admonition-title, .rst-content .wy-alert-danger.caution .admonition-title, .rst-content .danger .admonition-title, .rst-content .error .admonition-title, .rst-content .wy-alert-danger.hint .admonition-title, .rst-content .wy-alert-danger.important .admonition-title, .rst-content .wy-alert-danger.tip .admonition-title, .rst-content .wy-alert-danger.warning .admonition-title, .rst-content .wy-alert-danger.seealso .admonition-title, .rst-content .wy-alert-danger.admonition-todo .admonition-title { + background: #f29f97; +} + +.wy-alert.wy-alert-warning, .rst-content .wy-alert-warning.note, .rst-content .attention, .rst-content .caution, .rst-content .wy-alert-warning.danger, .rst-content .wy-alert-warning.error, .rst-content .wy-alert-warning.hint, .rst-content .wy-alert-warning.important, .rst-content .wy-alert-warning.tip, .rst-content .warning, .rst-content .wy-alert-warning.seealso, .rst-content .admonition-todo { + background: #ffedcc; +} +.wy-alert.wy-alert-warning .wy-alert-title, .rst-content .wy-alert-warning.note .wy-alert-title, .rst-content .attention .wy-alert-title, .rst-content .caution .wy-alert-title, .rst-content .wy-alert-warning.danger .wy-alert-title, .rst-content .wy-alert-warning.error .wy-alert-title, .rst-content .wy-alert-warning.hint .wy-alert-title, .rst-content .wy-alert-warning.important .wy-alert-title, .rst-content .wy-alert-warning.tip .wy-alert-title, .rst-content .warning .wy-alert-title, .rst-content .wy-alert-warning.seealso .wy-alert-title, .rst-content .admonition-todo .wy-alert-title, .wy-alert.wy-alert-warning .rst-content .admonition-title, .rst-content .wy-alert.wy-alert-warning .admonition-title, .rst-content .wy-alert-warning.note .admonition-title, .rst-content .attention .admonition-title, .rst-content .caution .admonition-title, .rst-content .wy-alert-warning.danger .admonition-title, .rst-content .wy-alert-warning.error .admonition-title, .rst-content .wy-alert-warning.hint .admonition-title, .rst-content .wy-alert-warning.important .admonition-title, .rst-content .wy-alert-warning.tip .admonition-title, .rst-content .warning .admonition-title, .rst-content .wy-alert-warning.seealso .admonition-title, .rst-content .admonition-todo .admonition-title { + background: #f0b37e; +} + +.wy-alert.wy-alert-info, .rst-content .note, .rst-content .wy-alert-info.attention, .rst-content .wy-alert-info.caution, .rst-content .wy-alert-info.danger, .rst-content .wy-alert-info.error, .rst-content .wy-alert-info.hint, .rst-content .wy-alert-info.important, .rst-content .wy-alert-info.tip, .rst-content .wy-alert-info.warning, .rst-content .seealso, .rst-content .wy-alert-info.admonition-todo { + background: #e7f2fa; +} +.wy-alert.wy-alert-info .wy-alert-title, .rst-content .note .wy-alert-title, .rst-content .wy-alert-info.attention .wy-alert-title, .rst-content .wy-alert-info.caution .wy-alert-title, .rst-content .wy-alert-info.danger .wy-alert-title, .rst-content .wy-alert-info.error .wy-alert-title, .rst-content .wy-alert-info.hint .wy-alert-title, .rst-content .wy-alert-info.important .wy-alert-title, .rst-content .wy-alert-info.tip .wy-alert-title, .rst-content .wy-alert-info.warning .wy-alert-title, .rst-content .seealso .wy-alert-title, .rst-content .wy-alert-info.admonition-todo .wy-alert-title, .wy-alert.wy-alert-info .rst-content .admonition-title, .rst-content .wy-alert.wy-alert-info .admonition-title, .rst-content .note .admonition-title, .rst-content .wy-alert-info.attention .admonition-title, .rst-content .wy-alert-info.caution .admonition-title, .rst-content .wy-alert-info.danger .admonition-title, .rst-content .wy-alert-info.error .admonition-title, .rst-content .wy-alert-info.hint .admonition-title, .rst-content .wy-alert-info.important .admonition-title, .rst-content .wy-alert-info.tip .admonition-title, .rst-content .wy-alert-info.warning .admonition-title, .rst-content .seealso .admonition-title, .rst-content .wy-alert-info.admonition-todo .admonition-title { + background: #6ab0de; +} + +.wy-alert.wy-alert-success, .rst-content .wy-alert-success.note, .rst-content .wy-alert-success.attention, .rst-content .wy-alert-success.caution, .rst-content .wy-alert-success.danger, .rst-content .wy-alert-success.error, .rst-content .hint, .rst-content .important, .rst-content .tip, .rst-content .wy-alert-success.warning, .rst-content .wy-alert-success.seealso, .rst-content .wy-alert-success.admonition-todo { + background: #dbfaf4; +} +.wy-alert.wy-alert-success .wy-alert-title, .rst-content .wy-alert-success.note .wy-alert-title, .rst-content .wy-alert-success.attention .wy-alert-title, .rst-content .wy-alert-success.caution .wy-alert-title, .rst-content .wy-alert-success.danger .wy-alert-title, .rst-content .wy-alert-success.error .wy-alert-title, .rst-content .hint .wy-alert-title, .rst-content .important .wy-alert-title, .rst-content .tip .wy-alert-title, .rst-content .wy-alert-success.warning .wy-alert-title, .rst-content .wy-alert-success.seealso .wy-alert-title, .rst-content .wy-alert-success.admonition-todo .wy-alert-title, .wy-alert.wy-alert-success .rst-content .admonition-title, .rst-content .wy-alert.wy-alert-success .admonition-title, .rst-content .wy-alert-success.note .admonition-title, .rst-content .wy-alert-success.attention .admonition-title, .rst-content .wy-alert-success.caution .admonition-title, .rst-content .wy-alert-success.danger .admonition-title, .rst-content .wy-alert-success.error .admonition-title, .rst-content .hint .admonition-title, .rst-content .important .admonition-title, .rst-content .tip .admonition-title, .rst-content .wy-alert-success.warning .admonition-title, .rst-content .wy-alert-success.seealso .admonition-title, .rst-content .wy-alert-success.admonition-todo .admonition-title { + background: #1abc9c; +} + +.wy-alert.wy-alert-neutral, .rst-content .wy-alert-neutral.note, .rst-content .wy-alert-neutral.attention, .rst-content .wy-alert-neutral.caution, .rst-content .wy-alert-neutral.danger, .rst-content .wy-alert-neutral.error, .rst-content .wy-alert-neutral.hint, .rst-content .wy-alert-neutral.important, .rst-content .wy-alert-neutral.tip, .rst-content .wy-alert-neutral.warning, .rst-content .wy-alert-neutral.seealso, .rst-content .wy-alert-neutral.admonition-todo { + background: #f3f6f6; +} +.wy-alert.wy-alert-neutral .wy-alert-title, .rst-content .wy-alert-neutral.note .wy-alert-title, .rst-content .wy-alert-neutral.attention .wy-alert-title, .rst-content .wy-alert-neutral.caution .wy-alert-title, .rst-content .wy-alert-neutral.danger .wy-alert-title, .rst-content .wy-alert-neutral.error .wy-alert-title, .rst-content .wy-alert-neutral.hint .wy-alert-title, .rst-content .wy-alert-neutral.important .wy-alert-title, .rst-content .wy-alert-neutral.tip .wy-alert-title, .rst-content .wy-alert-neutral.warning .wy-alert-title, .rst-content .wy-alert-neutral.seealso .wy-alert-title, .rst-content .wy-alert-neutral.admonition-todo .wy-alert-title, .wy-alert.wy-alert-neutral .rst-content .admonition-title, .rst-content .wy-alert.wy-alert-neutral .admonition-title, .rst-content .wy-alert-neutral.note .admonition-title, .rst-content .wy-alert-neutral.attention .admonition-title, .rst-content .wy-alert-neutral.caution .admonition-title, .rst-content .wy-alert-neutral.danger .admonition-title, .rst-content .wy-alert-neutral.error .admonition-title, .rst-content .wy-alert-neutral.hint .admonition-title, .rst-content .wy-alert-neutral.important .admonition-title, .rst-content .wy-alert-neutral.tip .admonition-title, .rst-content .wy-alert-neutral.warning .admonition-title, .rst-content .wy-alert-neutral.seealso .admonition-title, .rst-content .wy-alert-neutral.admonition-todo .admonition-title { + color: #404040; + background: #e1e4e5; +} +.wy-alert.wy-alert-neutral a, .rst-content .wy-alert-neutral.note a, .rst-content .wy-alert-neutral.attention a, .rst-content .wy-alert-neutral.caution a, .rst-content .wy-alert-neutral.danger a, .rst-content .wy-alert-neutral.error a, .rst-content .wy-alert-neutral.hint a, .rst-content .wy-alert-neutral.important a, .rst-content .wy-alert-neutral.tip a, .rst-content .wy-alert-neutral.warning a, .rst-content .wy-alert-neutral.seealso a, .rst-content .wy-alert-neutral.admonition-todo a { + color: #2980B9; +} + +.wy-alert p:last-child, .rst-content .note p:last-child, .rst-content .attention p:last-child, .rst-content .caution p:last-child, .rst-content .danger p:last-child, .rst-content .error p:last-child, .rst-content .hint p:last-child, .rst-content .important p:last-child, .rst-content .tip p:last-child, .rst-content .warning p:last-child, .rst-content .seealso p:last-child, .rst-content .admonition-todo p:last-child { + margin-bottom: 0; +} + +.wy-tray-container { + position: fixed; + bottom: 0px; + left: 0; + z-index: 600; +} +.wy-tray-container li { + display: block; + width: 300px; + background: transparent; + color: #fff; + text-align: center; + box-shadow: 0 5px 5px 0 rgba(0, 0, 0, 0.1); + padding: 0 24px; + min-width: 20%; + opacity: 0; + height: 0; + line-height: 56px; + overflow: hidden; + -webkit-transition: all 0.3s ease-in; + -moz-transition: all 0.3s ease-in; + transition: all 0.3s ease-in; +} +.wy-tray-container li.wy-tray-item-success { + background: #27AE60; +} +.wy-tray-container li.wy-tray-item-info { + background: #2980B9; +} +.wy-tray-container li.wy-tray-item-warning { + background: #E67E22; +} +.wy-tray-container li.wy-tray-item-danger { + background: #E74C3C; +} +.wy-tray-container li.on { + opacity: 1; + height: 56px; +} + +@media screen and (max-width: 768px) { + .wy-tray-container { + bottom: auto; + top: 0; + width: 100%; + } + .wy-tray-container li { + width: 100%; + } +} +button { + font-size: 100%; + margin: 0; + vertical-align: baseline; + *vertical-align: middle; + cursor: pointer; + line-height: normal; + -webkit-appearance: button; + *overflow: visible; +} + +button::-moz-focus-inner, input::-moz-focus-inner { + border: 0; + padding: 0; +} + +button[disabled] { + cursor: default; +} + +.btn { + /* Structure */ + display: inline-block; + border-radius: 2px; + line-height: normal; + white-space: nowrap; + text-align: center; + cursor: pointer; + font-size: 100%; + padding: 6px 12px 8px 12px; + color: #fff; + border: 1px solid rgba(0, 0, 0, 0.1); + background-color: #27AE60; + text-decoration: none; + font-weight: normal; + font-family: "Lato", "proxima-nova", "Helvetica Neue", Arial, sans-serif; + box-shadow: 0px 1px 2px -1px rgba(255, 255, 255, 0.5) inset, 0px -2px 0px 0px rgba(0, 0, 0, 0.1) inset; + outline-none: false; + vertical-align: middle; + *display: inline; + zoom: 1; + -webkit-user-drag: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + -webkit-transition: all 0.1s linear; + -moz-transition: all 0.1s linear; + transition: all 0.1s linear; +} + +.btn-hover { + background: #2e8ece; + color: #fff; +} + +.btn:hover { + background: #2cc36b; + color: #fff; +} +.btn:focus { + background: #2cc36b; + outline: 0; +} +.btn:active { + box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.05) inset, 0px 2px 0px 0px rgba(0, 0, 0, 0.1) inset; + padding: 8px 12px 6px 12px; +} +.btn:visited { + color: #fff; +} +.btn:disabled { + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + filter: alpha(opacity=40); + opacity: 0.4; + cursor: not-allowed; + box-shadow: none; +} + +.btn-disabled { + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + filter: alpha(opacity=40); + opacity: 0.4; + cursor: not-allowed; + box-shadow: none; +} +.btn-disabled:hover, .btn-disabled:focus, .btn-disabled:active { + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + filter: alpha(opacity=40); + opacity: 0.4; + cursor: not-allowed; + box-shadow: none; +} + +.btn::-moz-focus-inner { + padding: 0; + border: 0; +} + +.btn-small { + font-size: 80%; +} + +.btn-info { + background-color: #2980B9 !important; +} +.btn-info:hover { + background-color: #2e8ece !important; +} + +.btn-neutral { + background-color: #f3f6f6 !important; + color: #404040 !important; +} +.btn-neutral:hover { + background-color: #e5ebeb !important; + color: #404040; +} +.btn-neutral:visited { + color: #404040 !important; +} + +.btn-success { + background-color: #27AE60 !important; +} +.btn-success:hover { + background-color: #229955 !important; +} + +.btn-danger { + background-color: #E74C3C !important; +} +.btn-danger:hover { + background-color: #ea6153 !important; +} + +.btn-warning { + background-color: #E67E22 !important; +} +.btn-warning:hover { + background-color: #e98b39 !important; +} + +.btn-invert { + background-color: #222; +} +.btn-invert:hover { + background-color: #2f2f2f !important; +} + +.btn-link { + background-color: transparent !important; + color: #2980B9; + box-shadow: none; + border-color: transparent !important; +} +.btn-link:hover { + background-color: transparent !important; + color: #409ad5 !important; + box-shadow: none; +} +.btn-link:active { + background-color: transparent !important; + color: #409ad5 !important; + box-shadow: none; +} +.btn-link:visited { + color: #9B59B6; +} + +.wy-btn-group .btn, .wy-control .btn { + vertical-align: middle; +} + +.wy-btn-group { + margin-bottom: 24px; + *zoom: 1; +} +.wy-btn-group:before, .wy-btn-group:after { + display: table; + content: ""; +} +.wy-btn-group:after { + clear: both; +} + +.wy-dropdown { + position: relative; + display: inline-block; +} + +.wy-dropdown-active .wy-dropdown-menu { + display: block; +} + +.wy-dropdown-menu { + position: absolute; + left: 0; + display: none; + float: left; + top: 100%; + min-width: 100%; + background: #fcfcfc; + z-index: 100; + border: solid 1px #cfd7dd; + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.1); + padding: 12px; +} +.wy-dropdown-menu > dd > a { + display: block; + clear: both; + color: #404040; + white-space: nowrap; + font-size: 90%; + padding: 0 12px; + cursor: pointer; +} +.wy-dropdown-menu > dd > a:hover { + background: #2980B9; + color: #fff; +} +.wy-dropdown-menu > dd.divider { + border-top: solid 1px #cfd7dd; + margin: 6px 0; +} +.wy-dropdown-menu > dd.search { + padding-bottom: 12px; +} +.wy-dropdown-menu > dd.search input[type="search"] { + width: 100%; +} +.wy-dropdown-menu > dd.call-to-action { + background: #e3e3e3; + text-transform: uppercase; + font-weight: 500; + font-size: 80%; +} +.wy-dropdown-menu > dd.call-to-action:hover { + background: #e3e3e3; +} +.wy-dropdown-menu > dd.call-to-action .btn { + color: #fff; +} + +.wy-dropdown.wy-dropdown-up .wy-dropdown-menu { + bottom: 100%; + top: auto; + left: auto; + right: 0; +} + +.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu { + background: #fcfcfc; + margin-top: 2px; +} +.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a { + padding: 6px 12px; +} +.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a:hover { + background: #2980B9; + color: #fff; +} + +.wy-dropdown.wy-dropdown-left .wy-dropdown-menu { + right: 0; + left: auto; + text-align: right; +} + +.wy-dropdown-arrow:before { + content: " "; + border-bottom: 5px solid whitesmoke; + border-left: 5px solid transparent; + border-right: 5px solid transparent; + position: absolute; + display: block; + top: -4px; + left: 50%; + margin-left: -3px; +} +.wy-dropdown-arrow.wy-dropdown-arrow-left:before { + left: 11px; +} + +.wy-form-stacked select { + display: block; +} + +.wy-form-aligned input, .wy-form-aligned textarea, .wy-form-aligned select, .wy-form-aligned .wy-help-inline, .wy-form-aligned label { + display: inline-block; + *display: inline; + *zoom: 1; + vertical-align: middle; +} + +.wy-form-aligned .wy-control-group > label { + display: inline-block; + vertical-align: middle; + width: 10em; + margin: 6px 12px 0 0; + float: left; +} +.wy-form-aligned .wy-control { + float: left; +} +.wy-form-aligned .wy-control label { + display: block; +} +.wy-form-aligned .wy-control select { + margin-top: 6px; +} + +fieldset { + border: 0; + margin: 0; + padding: 0; +} + +legend { + display: block; + width: 100%; + border: 0; + padding: 0; + white-space: normal; + margin-bottom: 24px; + font-size: 150%; + *margin-left: -7px; +} + +label { + display: block; + margin: 0 0 0.3125em 0; + color: #333; + font-size: 90%; +} + +input, select, textarea { + font-size: 100%; + margin: 0; + vertical-align: baseline; + *vertical-align: middle; +} + +.wy-control-group { + margin-bottom: 24px; + *zoom: 1; + max-width: 68em; + margin-left: auto; + margin-right: auto; + *zoom: 1; +} +.wy-control-group:before, .wy-control-group:after { + display: table; + content: ""; +} +.wy-control-group:after { + clear: both; +} +.wy-control-group:before, .wy-control-group:after { + display: table; + content: ""; +} +.wy-control-group:after { + clear: both; +} + +.wy-control-group.wy-control-group-required > label:after { + content: " *"; + color: #E74C3C; +} + +.wy-control-group .wy-form-full, .wy-control-group .wy-form-halves, .wy-control-group .wy-form-thirds { + padding-bottom: 12px; +} +.wy-control-group .wy-form-full select, .wy-control-group .wy-form-halves select, .wy-control-group .wy-form-thirds select { + width: 100%; +} +.wy-control-group .wy-form-full input[type="text"], .wy-control-group .wy-form-full input[type="password"], .wy-control-group .wy-form-full input[type="email"], .wy-control-group .wy-form-full input[type="url"], .wy-control-group .wy-form-full input[type="date"], .wy-control-group .wy-form-full input[type="month"], .wy-control-group .wy-form-full input[type="time"], .wy-control-group .wy-form-full input[type="datetime"], .wy-control-group .wy-form-full input[type="datetime-local"], .wy-control-group .wy-form-full input[type="week"], .wy-control-group .wy-form-full input[type="number"], .wy-control-group .wy-form-full input[type="search"], .wy-control-group .wy-form-full input[type="tel"], .wy-control-group .wy-form-full input[type="color"], .wy-control-group .wy-form-halves input[type="text"], .wy-control-group .wy-form-halves input[type="password"], .wy-control-group .wy-form-halves input[type="email"], .wy-control-group .wy-form-halves input[type="url"], .wy-control-group .wy-form-halves input[type="date"], .wy-control-group .wy-form-halves input[type="month"], .wy-control-group .wy-form-halves input[type="time"], .wy-control-group .wy-form-halves input[type="datetime"], .wy-control-group .wy-form-halves input[type="datetime-local"], .wy-control-group .wy-form-halves input[type="week"], .wy-control-group .wy-form-halves input[type="number"], .wy-control-group .wy-form-halves input[type="search"], .wy-control-group .wy-form-halves input[type="tel"], .wy-control-group .wy-form-halves input[type="color"], .wy-control-group .wy-form-thirds input[type="text"], .wy-control-group .wy-form-thirds input[type="password"], .wy-control-group .wy-form-thirds input[type="email"], .wy-control-group .wy-form-thirds input[type="url"], .wy-control-group .wy-form-thirds input[type="date"], .wy-control-group .wy-form-thirds input[type="month"], .wy-control-group .wy-form-thirds input[type="time"], .wy-control-group .wy-form-thirds input[type="datetime"], .wy-control-group .wy-form-thirds input[type="datetime-local"], .wy-control-group .wy-form-thirds input[type="week"], .wy-control-group .wy-form-thirds input[type="number"], .wy-control-group .wy-form-thirds input[type="search"], .wy-control-group .wy-form-thirds input[type="tel"], .wy-control-group .wy-form-thirds input[type="color"] { + width: 100%; +} + +.wy-control-group .wy-form-full { + float: left; + display: block; + margin-right: 2.35765%; + width: 100%; + margin-right: 0; +} +.wy-control-group .wy-form-full:last-child { + margin-right: 0; +} + +.wy-control-group .wy-form-halves { + float: left; + display: block; + margin-right: 2.35765%; + width: 48.82117%; +} +.wy-control-group .wy-form-halves:last-child { + margin-right: 0; +} +.wy-control-group .wy-form-halves:nth-of-type(2n) { + margin-right: 0; +} +.wy-control-group .wy-form-halves:nth-of-type(2n+1) { + clear: left; +} + +.wy-control-group .wy-form-thirds { + float: left; + display: block; + margin-right: 2.35765%; + width: 31.76157%; +} +.wy-control-group .wy-form-thirds:last-child { + margin-right: 0; +} +.wy-control-group .wy-form-thirds:nth-of-type(3n) { + margin-right: 0; +} +.wy-control-group .wy-form-thirds:nth-of-type(3n+1) { + clear: left; +} + +.wy-control-group.wy-control-group-no-input .wy-control { + margin: 6px 0 0 0; + font-size: 90%; +} + +.wy-control-no-input { + display: inline-block; + margin: 6px 0 0 0; + font-size: 90%; +} + +.wy-control-group.fluid-input input[type="text"], .wy-control-group.fluid-input input[type="password"], .wy-control-group.fluid-input input[type="email"], .wy-control-group.fluid-input input[type="url"], .wy-control-group.fluid-input input[type="date"], .wy-control-group.fluid-input input[type="month"], .wy-control-group.fluid-input input[type="time"], .wy-control-group.fluid-input input[type="datetime"], .wy-control-group.fluid-input input[type="datetime-local"], .wy-control-group.fluid-input input[type="week"], .wy-control-group.fluid-input input[type="number"], .wy-control-group.fluid-input input[type="search"], .wy-control-group.fluid-input input[type="tel"], .wy-control-group.fluid-input input[type="color"] { + width: 100%; +} + +.wy-form-message-inline { + display: inline-block; + padding-left: 0.3em; + color: #666; + vertical-align: middle; + font-size: 90%; +} + +.wy-form-message { + display: block; + color: #999; + font-size: 70%; + margin-top: 0.3125em; + font-style: italic; +} +.wy-form-message p { + font-size: inherit; + font-style: italic; + margin-bottom: 6px; +} +.wy-form-message p:last-child { + margin-bottom: 0; +} + +input { + line-height: normal; +} + +input[type="button"], input[type="reset"], input[type="submit"] { + -webkit-appearance: button; + cursor: pointer; + font-family: "Lato", "proxima-nova", "Helvetica Neue", Arial, sans-serif; + *overflow: visible; +} +input[type="text"], input[type="password"], input[type="email"], input[type="url"], input[type="date"], input[type="month"], input[type="time"], input[type="datetime"], input[type="datetime-local"], input[type="week"], input[type="number"], input[type="search"], input[type="tel"], input[type="color"] { + -webkit-appearance: none; + padding: 6px; + display: inline-block; + border: 1px solid #ccc; + font-size: 80%; + font-family: "Lato", "proxima-nova", "Helvetica Neue", Arial, sans-serif; + box-shadow: inset 0 1px 3px #ddd; + border-radius: 0; + -webkit-transition: border 0.3s linear; + -moz-transition: border 0.3s linear; + transition: border 0.3s linear; +} +input[type="datetime-local"] { + padding: 0.34375em 0.625em; +} +input[disabled] { + cursor: default; +} +input[type="checkbox"], input[type="radio"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + padding: 0; + margin-right: 0.3125em; + *height: 13px; + *width: 13px; +} +input[type="search"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} +input[type="text"]:focus, input[type="password"]:focus, input[type="email"]:focus, input[type="url"]:focus, input[type="date"]:focus, input[type="month"]:focus, input[type="time"]:focus, input[type="datetime"]:focus, input[type="datetime-local"]:focus, input[type="week"]:focus, input[type="number"]:focus, input[type="search"]:focus, input[type="tel"]:focus, input[type="color"]:focus { + outline: 0; + outline: thin dotted \9; + border-color: #333; +} +input.no-focus:focus { + border-color: #ccc !important; +} +input[type="file"]:focus, input[type="radio"]:focus, input[type="checkbox"]:focus { + outline: thin dotted #333; + outline: 1px auto #129FEA; +} +input[type="text"][disabled], input[type="password"][disabled], input[type="email"][disabled], input[type="url"][disabled], input[type="date"][disabled], input[type="month"][disabled], input[type="time"][disabled], input[type="datetime"][disabled], input[type="datetime-local"][disabled], input[type="week"][disabled], input[type="number"][disabled], input[type="search"][disabled], input[type="tel"][disabled], input[type="color"][disabled] { + cursor: not-allowed; + background-color: #fafafa; +} + +input:focus:invalid, textarea:focus:invalid, select:focus:invalid { + color: #E74C3C; + border: 1px solid #E74C3C; +} + +input:focus:invalid:focus, textarea:focus:invalid:focus, select:focus:invalid:focus { + border-color: #E74C3C; +} + +input[type="file"]:focus:invalid:focus, input[type="radio"]:focus:invalid:focus, input[type="checkbox"]:focus:invalid:focus { + outline-color: #E74C3C; +} + +input.wy-input-large { + padding: 12px; + font-size: 100%; +} + +textarea { + overflow: auto; + vertical-align: top; + width: 100%; + font-family: "Lato", "proxima-nova", "Helvetica Neue", Arial, sans-serif; +} + +select, textarea { + padding: 0.5em 0.625em; + display: inline-block; + border: 1px solid #ccc; + font-size: 80%; + box-shadow: inset 0 1px 3px #ddd; + -webkit-transition: border 0.3s linear; + -moz-transition: border 0.3s linear; + transition: border 0.3s linear; +} + +select { + border: 1px solid #ccc; + background-color: #fff; +} +select[multiple] { + height: auto; +} + +select:focus, textarea:focus { + outline: 0; +} + +select[disabled], textarea[disabled], input[readonly], select[readonly], textarea[readonly] { + cursor: not-allowed; + background-color: #fafafa; +} + +input[type="radio"][disabled], input[type="checkbox"][disabled] { + cursor: not-allowed; +} + +.wy-checkbox, .wy-radio { + margin: 6px 0; + color: #404040; + display: block; +} +.wy-checkbox input, .wy-radio input { + vertical-align: baseline; +} + +.wy-form-message-inline { + display: inline-block; + *display: inline; + *zoom: 1; + vertical-align: middle; +} + +.wy-input-prefix, .wy-input-suffix { + white-space: nowrap; + padding: 6px; +} +.wy-input-prefix .wy-input-context, .wy-input-suffix .wy-input-context { + line-height: 27px; + padding: 0 8px; + display: inline-block; + font-size: 80%; + background-color: #f3f6f6; + border: solid 1px #ccc; + color: #999; +} + +.wy-input-suffix .wy-input-context { + border-left: 0; +} + +.wy-input-prefix .wy-input-context { + border-right: 0; +} + +.wy-switch { + position: relative; + display: block; + height: 24px; + margin-top: 12px; + cursor: pointer; +} +.wy-switch:before { + position: absolute; + content: ""; + display: block; + left: 0; + top: 0; + width: 36px; + height: 12px; + border-radius: 4px; + background: #ccc; + -webkit-transition: all 0.2s ease-in-out; + -moz-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; +} +.wy-switch:after { + position: absolute; + content: ""; + display: block; + width: 18px; + height: 18px; + border-radius: 4px; + background: #999; + left: -3px; + top: -3px; + -webkit-transition: all 0.2s ease-in-out; + -moz-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; +} +.wy-switch span { + position: absolute; + left: 48px; + display: block; + font-size: 12px; + color: #ccc; + line-height: 1; +} + +.wy-switch.active:before { + background: #1e8449; +} +.wy-switch.active:after { + left: 24px; + background: #27AE60; +} + +.wy-switch.disabled { + cursor: not-allowed; + opacity: 0.8; +} + +.wy-control-group.wy-control-group-error .wy-form-message, .wy-control-group.wy-control-group-error > label { + color: #E74C3C; +} +.wy-control-group.wy-control-group-error input[type="text"], .wy-control-group.wy-control-group-error input[type="password"], .wy-control-group.wy-control-group-error input[type="email"], .wy-control-group.wy-control-group-error input[type="url"], .wy-control-group.wy-control-group-error input[type="date"], .wy-control-group.wy-control-group-error input[type="month"], .wy-control-group.wy-control-group-error input[type="time"], .wy-control-group.wy-control-group-error input[type="datetime"], .wy-control-group.wy-control-group-error input[type="datetime-local"], .wy-control-group.wy-control-group-error input[type="week"], .wy-control-group.wy-control-group-error input[type="number"], .wy-control-group.wy-control-group-error input[type="search"], .wy-control-group.wy-control-group-error input[type="tel"], .wy-control-group.wy-control-group-error input[type="color"] { + border: solid 1px #E74C3C; +} +.wy-control-group.wy-control-group-error textarea { + border: solid 1px #E74C3C; +} + +.wy-inline-validate { + white-space: nowrap; +} +.wy-inline-validate .wy-input-context { + padding: 0.5em 0.625em; + display: inline-block; + font-size: 80%; +} + +.wy-inline-validate.wy-inline-validate-success .wy-input-context { + color: #27AE60; +} + +.wy-inline-validate.wy-inline-validate-danger .wy-input-context { + color: #E74C3C; +} + +.wy-inline-validate.wy-inline-validate-warning .wy-input-context { + color: #E67E22; +} + +.wy-inline-validate.wy-inline-validate-info .wy-input-context { + color: #2980B9; +} + +.rotate-90 { + -webkit-transform: rotate(90deg); + -moz-transform: rotate(90deg); + -ms-transform: rotate(90deg); + -o-transform: rotate(90deg); + transform: rotate(90deg); +} + +.rotate-180 { + -webkit-transform: rotate(180deg); + -moz-transform: rotate(180deg); + -ms-transform: rotate(180deg); + -o-transform: rotate(180deg); + transform: rotate(180deg); +} + +.rotate-270 { + -webkit-transform: rotate(270deg); + -moz-transform: rotate(270deg); + -ms-transform: rotate(270deg); + -o-transform: rotate(270deg); + transform: rotate(270deg); +} + +.mirror { + -webkit-transform: scaleX(-1); + -moz-transform: scaleX(-1); + -ms-transform: scaleX(-1); + -o-transform: scaleX(-1); + transform: scaleX(-1); +} +.mirror.rotate-90 { + -webkit-transform: scaleX(-1) rotate(90deg); + -moz-transform: scaleX(-1) rotate(90deg); + -ms-transform: scaleX(-1) rotate(90deg); + -o-transform: scaleX(-1) rotate(90deg); + transform: scaleX(-1) rotate(90deg); +} +.mirror.rotate-180 { + -webkit-transform: scaleX(-1) rotate(180deg); + -moz-transform: scaleX(-1) rotate(180deg); + -ms-transform: scaleX(-1) rotate(180deg); + -o-transform: scaleX(-1) rotate(180deg); + transform: scaleX(-1) rotate(180deg); +} +.mirror.rotate-270 { + -webkit-transform: scaleX(-1) rotate(270deg); + -moz-transform: scaleX(-1) rotate(270deg); + -ms-transform: scaleX(-1) rotate(270deg); + -o-transform: scaleX(-1) rotate(270deg); + transform: scaleX(-1) rotate(270deg); +} + +@media only screen and (max-width: 480px) { + .wy-form button[type="submit"] { + margin: 0.7em 0 0; + } + .wy-form input[type="text"], .wy-form input[type="password"], .wy-form input[type="email"], .wy-form input[type="url"], .wy-form input[type="date"], .wy-form input[type="month"], .wy-form input[type="time"], .wy-form input[type="datetime"], .wy-form input[type="datetime-local"], .wy-form input[type="week"], .wy-form input[type="number"], .wy-form input[type="search"], .wy-form input[type="tel"], .wy-form input[type="color"] { + margin-bottom: 0.3em; + display: block; + } + .wy-form label { + margin-bottom: 0.3em; + display: block; + } + + .wy-form input[type="password"], .wy-form input[type="email"], .wy-form input[type="url"], .wy-form input[type="date"], .wy-form input[type="month"], .wy-form input[type="time"], .wy-form input[type="datetime"], .wy-form input[type="datetime-local"], .wy-form input[type="week"], .wy-form input[type="number"], .wy-form input[type="search"], .wy-form input[type="tel"], .wy-form input[type="color"] { + margin-bottom: 0; + } + + .wy-form-aligned .wy-control-group label { + margin-bottom: 0.3em; + text-align: left; + display: block; + width: 100%; + } + .wy-form-aligned .wy-control { + margin: 1.5em 0 0 0; + } + + .wy-form .wy-help-inline, .wy-form-message-inline, .wy-form-message { + display: block; + font-size: 80%; + padding: 6px 0; + } +} +@media screen and (max-width: 768px) { + .tablet-hide { + display: none; + } +} + +@media screen and (max-width: 480px) { + .mobile-hide { + display: none; + } +} + +.float-left { + float: left; +} + +.float-right { + float: right; +} + +.full-width { + width: 100%; +} + +.wy-table, .rst-content table.docutils, .rst-content table.field-list { + border-collapse: collapse; + border-spacing: 0; + empty-cells: show; + margin-bottom: 24px; +} +.wy-table caption, .rst-content table.docutils caption, .rst-content table.field-list caption { + color: #000; + font: italic 85%/1 arial, sans-serif; + padding: 1em 0; + text-align: center; +} +.wy-table td, .rst-content table.docutils td, .rst-content table.field-list td, .wy-table th, .rst-content table.docutils th, .rst-content table.field-list th { + font-size: 90%; + margin: 0; + overflow: visible; + padding: 8px 16px; +} +.wy-table td:first-child, .rst-content table.docutils td:first-child, .rst-content table.field-list td:first-child, .wy-table th:first-child, .rst-content table.docutils th:first-child, .rst-content table.field-list th:first-child { + border-left-width: 0; +} +.wy-table thead, .rst-content table.docutils thead, .rst-content table.field-list thead { + color: #000; + text-align: left; + vertical-align: bottom; + white-space: nowrap; +} +.wy-table thead th, .rst-content table.docutils thead th, .rst-content table.field-list thead th { + font-weight: bold; + border-bottom: solid 2px #e1e4e5; +} +.wy-table td, .rst-content table.docutils td, .rst-content table.field-list td { + background-color: transparent; + vertical-align: middle; +} + +.wy-table td p, .rst-content table.docutils td p, .rst-content table.field-list td p { + line-height: 18px; +} +.wy-table td p:last-child, .rst-content table.docutils td p:last-child, .rst-content table.field-list td p:last-child { + margin-bottom: 0; +} + +.wy-table .wy-table-cell-min, .rst-content table.docutils .wy-table-cell-min, .rst-content table.field-list .wy-table-cell-min { + width: 1%; + padding-right: 0; +} +.wy-table .wy-table-cell-min input[type=checkbox], .rst-content table.docutils .wy-table-cell-min input[type=checkbox], .rst-content table.field-list .wy-table-cell-min input[type=checkbox], .wy-table .wy-table-cell-min input[type=checkbox], .rst-content table.docutils .wy-table-cell-min input[type=checkbox], .rst-content table.field-list .wy-table-cell-min input[type=checkbox] { + margin: 0; +} + +.wy-table-secondary { + color: gray; + font-size: 90%; +} + +.wy-table-tertiary { + color: gray; + font-size: 80%; +} + +.wy-table-odd td, .wy-table-striped tr:nth-child(2n-1) td, .rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td { + background-color: #f3f6f6; +} + +.wy-table-backed { + background-color: #f3f6f6; +} + +/* BORDERED TABLES */ +.wy-table-bordered-all, .rst-content table.docutils { + border: 1px solid #e1e4e5; +} +.wy-table-bordered-all td, .rst-content table.docutils td { + border-bottom: 1px solid #e1e4e5; + border-left: 1px solid #e1e4e5; +} +.wy-table-bordered-all tbody > tr:last-child td, .rst-content table.docutils tbody > tr:last-child td { + border-bottom-width: 0; +} + +.wy-table-bordered { + border: 1px solid #e1e4e5; +} + +.wy-table-bordered-rows td { + border-bottom: 1px solid #e1e4e5; +} +.wy-table-bordered-rows tbody > tr:last-child td { + border-bottom-width: 0; +} + +.wy-table-horizontal tbody > tr:last-child td { + border-bottom-width: 0; +} +.wy-table-horizontal td, .wy-table-horizontal th { + border-width: 0 0 1px 0; + border-bottom: 1px solid #e1e4e5; +} +.wy-table-horizontal tbody > tr:last-child td { + border-bottom-width: 0; +} + +/* RESPONSIVE TABLES */ +.wy-table-responsive { + margin-bottom: 24px; + max-width: 100%; + overflow: auto; +} +.wy-table-responsive table { + margin-bottom: 0 !important; +} +.wy-table-responsive table td, .wy-table-responsive table th { + white-space: nowrap; +} + +a { + color: #2980B9; + text-decoration: none; + cursor: pointer; +} +a:hover { + color: #3091d1; +} +a:visited { + color: #9B59B6; +} + +html { + height: 100%; + overflow-x: hidden; +} + +body { + font-family: "Lato", "proxima-nova", "Helvetica Neue", Arial, sans-serif; + font-weight: normal; + color: #404040; + min-height: 100%; + overflow-x: hidden; + background: #edf0f2; +} + +.wy-text-left { + text-align: left; +} + +.wy-text-center { + text-align: center; +} + +.wy-text-right { + text-align: right; +} + +.wy-text-large { + font-size: 120%; +} + +.wy-text-normal { + font-size: 100%; +} + +.wy-text-small, small { + font-size: 80%; +} + +.wy-text-strike { + text-decoration: line-through; +} + +.wy-text-warning { + color: #E67E22 !important; +} + +a.wy-text-warning:hover { + color: #eb9950 !important; +} + +.wy-text-info { + color: #2980B9 !important; +} + +a.wy-text-info:hover { + color: #409ad5 !important; +} + +.wy-text-success { + color: #27AE60 !important; +} + +a.wy-text-success:hover { + color: #36d278 !important; +} + +.wy-text-danger { + color: #E74C3C !important; +} + +a.wy-text-danger:hover { + color: #ed7669 !important; +} + +.wy-text-neutral { + color: #404040 !important; +} + +a.wy-text-neutral:hover { + color: #595959 !important; +} + +h1, h2, .rst-content .toctree-wrapper p.caption, h3, h4, h5, h6, legend { + margin-top: 0; + font-weight: 700; + font-family: "Roboto Slab", "ff-tisa-web-pro", "Georgia", Arial, sans-serif; +} + +p { + line-height: 24px; + margin: 0; + font-size: 16px; + margin-bottom: 24px; +} + +h1 { + font-size: 175%; +} + +h2, .rst-content .toctree-wrapper p.caption { + font-size: 150%; +} + +h3 { + font-size: 125%; +} + +h4 { + font-size: 115%; +} + +h5 { + font-size: 110%; +} + +h6 { + font-size: 100%; +} + +hr { + display: block; + height: 1px; + border: 0; + border-top: 1px solid #e1e4e5; + margin: 24px 0; + padding: 0; +} + +code, .rst-content tt, .rst-content code { + white-space: nowrap; + max-width: 100%; + background: #fff; + border: solid 1px #e1e4e5; + font-size: 75%; + padding: 0 5px; + font-family: Consolas, "Andale Mono WT", "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace; + color: #E74C3C; + overflow-x: auto; +} +code.code-large, .rst-content tt.code-large { + font-size: 90%; +} + +.wy-plain-list-disc, .rst-content .section ul, .rst-content .toctree-wrapper ul, article ul { + list-style: disc; + line-height: 24px; + margin-bottom: 24px; +} +.wy-plain-list-disc li, .rst-content .section ul li, .rst-content .toctree-wrapper ul li, article ul li { + list-style: disc; + margin-left: 24px; +} +.wy-plain-list-disc li p:last-child, .rst-content .section ul li p:last-child, .rst-content .toctree-wrapper ul li p:last-child, article ul li p:last-child { + margin-bottom: 0; +} +.wy-plain-list-disc li ul, .rst-content .section ul li ul, .rst-content .toctree-wrapper ul li ul, article ul li ul { + margin-bottom: 0; +} +.wy-plain-list-disc li li, .rst-content .section ul li li, .rst-content .toctree-wrapper ul li li, article ul li li { + list-style: circle; +} +.wy-plain-list-disc li li li, .rst-content .section ul li li li, .rst-content .toctree-wrapper ul li li li, article ul li li li { + list-style: square; +} +.wy-plain-list-disc li ol li, .rst-content .section ul li ol li, .rst-content .toctree-wrapper ul li ol li, article ul li ol li { + list-style: decimal; +} + +.wy-plain-list-decimal, .rst-content .section ol, .rst-content ol.arabic, article ol { + list-style: decimal; + line-height: 24px; + margin-bottom: 24px; +} +.wy-plain-list-decimal li, .rst-content .section ol li, .rst-content ol.arabic li, article ol li { + list-style: decimal; + margin-left: 24px; +} +.wy-plain-list-decimal li p:last-child, .rst-content .section ol li p:last-child, .rst-content ol.arabic li p:last-child, article ol li p:last-child { + margin-bottom: 0; +} +.wy-plain-list-decimal li ul, .rst-content .section ol li ul, .rst-content ol.arabic li ul, article ol li ul { + margin-bottom: 0; +} +.wy-plain-list-decimal li ul li, .rst-content .section ol li ul li, .rst-content ol.arabic li ul li, article ol li ul li { + list-style: disc; +} + +.codeblock-example { + border: 1px solid #e1e4e5; + border-bottom: none; + padding: 24px; + padding-top: 48px; + font-weight: 500; + background: #fff; + position: relative; +} +.codeblock-example:after { + content: "Example"; + position: absolute; + top: 0px; + left: 0px; + background: #9B59B6; + color: white; + padding: 6px 12px; +} +.codeblock-example.prettyprint-example-only { + border: 1px solid #e1e4e5; + margin-bottom: 24px; +} + +.codeblock, pre.literal-block, .rst-content .literal-block, .rst-content pre.literal-block, div[class^='highlight'] { + border: 1px solid #e1e4e5; + padding: 0px; + overflow-x: auto; + background: #fff; + margin: 1px 0 24px 0; +} +.codeblock div[class^='highlight'], pre.literal-block div[class^='highlight'], .rst-content .literal-block div[class^='highlight'], div[class^='highlight'] div[class^='highlight'] { + border: none; + background: none; + margin: 0; +} + +div[class^='highlight'] td.code { + width: 100%; +} + +.linenodiv pre { + border-right: solid 1px #e6e9ea; + margin: 0; + padding: 12px 12px; + font-family: Consolas, "Andale Mono WT", "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace; + font-size: 12px; + line-height: 1.5; + color: #d9d9d9; +} + +div[class^='highlight'] pre { + white-space: pre; + margin: 0; + padding: 12px 12px; + font-family: Consolas, "Andale Mono WT", "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace; + font-size: 12px; + line-height: 1.5; + display: block; + overflow: auto; + color: #404040; +} + +@media print { + .codeblock, pre.literal-block, .rst-content .literal-block, .rst-content pre.literal-block, div[class^='highlight'], div[class^='highlight'] pre { + white-space: pre-wrap; + } +} +.hll { + background-color: #ffffcc; + margin: 0 -12px; + padding: 0 12px; + display: block; +} + +.c { + color: #999988; + font-style: italic; +} + +.err { + color: #a61717; + background-color: #e3d2d2; +} + +.k { + font-weight: bold; +} + +.o { + font-weight: bold; +} + +.cm { + color: #999988; + font-style: italic; +} + +.cp { + color: #999999; + font-weight: bold; +} + +.c1 { + color: #999988; + font-style: italic; +} + +.cs { + color: #999999; + font-weight: bold; + font-style: italic; +} + +.gd { + color: #000000; + background-color: #ffdddd; +} + +.gd .x { + color: #000000; + background-color: #ffaaaa; +} + +.ge { + font-style: italic; +} + +.gr { + color: #aa0000; +} + +.gh { + color: #999999; +} + +.gi { + color: #000000; + background-color: #ddffdd; +} + +.gi .x { + color: #000000; + background-color: #aaffaa; +} + +.go { + color: #888888; +} + +.gp { + color: #555555; +} + +.gs { + font-weight: bold; +} + +.gu { + color: #800080; + font-weight: bold; +} + +.gt { + color: #aa0000; +} + +.kc { + font-weight: bold; +} + +.kd { + font-weight: bold; +} + +.kn { + font-weight: bold; +} + +.kp { + font-weight: bold; +} + +.kr { + font-weight: bold; +} + +.kt { + color: #445588; + font-weight: bold; +} + +.m { + color: #009999; +} + +.s { + color: #dd1144; +} + +.n { + color: #333333; +} + +.na { + color: teal; +} + +.nb { + color: #0086b3; +} + +.nc { + color: #445588; + font-weight: bold; +} + +.no { + color: teal; +} + +.ni { + color: purple; +} + +.ne { + color: #990000; + font-weight: bold; +} + +.nf { + color: #990000; + font-weight: bold; +} + +.nn { + color: #555555; +} + +.nt { + color: navy; +} + +.nv { + color: teal; +} + +.ow { + font-weight: bold; +} + +.w { + color: #bbbbbb; +} + +.mf { + color: #009999; +} + +.mh { + color: #009999; +} + +.mi { + color: #009999; +} + +.mo { + color: #009999; +} + +.sb { + color: #dd1144; +} + +.sc { + color: #dd1144; +} + +.sd { + color: #dd1144; +} + +.s2 { + color: #dd1144; +} + +.se { + color: #dd1144; +} + +.sh { + color: #dd1144; +} + +.si { + color: #dd1144; +} + +.sx { + color: #dd1144; +} + +.sr { + color: #009926; +} + +.s1 { + color: #dd1144; +} + +.ss { + color: #990073; +} + +.bp { + color: #999999; +} + +.vc { + color: teal; +} + +.vg { + color: teal; +} + +.vi { + color: teal; +} + +.il { + color: #009999; +} + +.gc { + color: #999; + background-color: #EAF2F5; +} + +.wy-breadcrumbs li { + display: inline-block; +} +.wy-breadcrumbs li.wy-breadcrumbs-aside { + float: right; +} +.wy-breadcrumbs li a { + display: inline-block; + padding: 5px; +} +.wy-breadcrumbs li a:first-child { + padding-left: 0; +} +.wy-breadcrumbs li code, .wy-breadcrumbs li .rst-content tt, .rst-content .wy-breadcrumbs li tt { + padding: 5px; + border: none; + background: none; +} +.wy-breadcrumbs li code.literal, .wy-breadcrumbs li .rst-content tt.literal, .rst-content .wy-breadcrumbs li tt.literal { + color: #404040; +} + +.wy-breadcrumbs-extra { + margin-bottom: 0; + color: #b3b3b3; + font-size: 80%; + display: inline-block; +} + +@media screen and (max-width: 480px) { + .wy-breadcrumbs-extra { + display: none; + } + + .wy-breadcrumbs li.wy-breadcrumbs-aside { + display: none; + } +} +@media print { + .wy-breadcrumbs li.wy-breadcrumbs-aside { + display: none; + } +} +.wy-affix { + position: fixed; + top: 1.618em; +} + +.wy-menu a:hover { + text-decoration: none; +} + +.wy-menu-horiz { + *zoom: 1; +} +.wy-menu-horiz:before, .wy-menu-horiz:after { + display: table; + content: ""; +} +.wy-menu-horiz:after { + clear: both; +} +.wy-menu-horiz ul, .wy-menu-horiz li { + display: inline-block; +} +.wy-menu-horiz li:hover { + background: rgba(255, 255, 255, 0.1); +} +.wy-menu-horiz li.divide-left { + border-left: solid 1px #404040; +} +.wy-menu-horiz li.divide-right { + border-right: solid 1px #404040; +} +.wy-menu-horiz a { + height: 32px; + display: inline-block; + line-height: 32px; + padding: 0 16px; +} + +.wy-menu-vertical { + width: 300px; +} +.wy-menu-vertical header, .wy-menu-vertical p.caption { + height: 32px; + display: inline-block; + line-height: 32px; + padding: 0 1.618em; + margin-bottom: 0; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 80%; + color: #555; + white-space: nowrap; +} +.wy-menu-vertical ul { + margin-bottom: 0; +} +.wy-menu-vertical li.divide-top { + border-top: solid 1px #404040; +} +.wy-menu-vertical li.divide-bottom { + border-bottom: solid 1px #404040; +} +.wy-menu-vertical li.current { + background: #e3e3e3; +} +.wy-menu-vertical li.current a { + color: gray; + border-right: solid 1px #c9c9c9; + padding: 0.4045em 2.427em; +} +.wy-menu-vertical li.current a:hover { + background: #d6d6d6; +} +.wy-menu-vertical li code, .wy-menu-vertical li .rst-content tt, .rst-content .wy-menu-vertical li tt { + border: none; + background: inherit; + color: inherit; + padding-left: 0; + padding-right: 0; +} +.wy-menu-vertical li span.toctree-expand { + display: block; + float: left; + margin-left: -1.2em; + font-size: 0.8em; + line-height: 1.6em; + color: #4d4d4d; +} +.wy-menu-vertical li.on a, .wy-menu-vertical li.current > a { + color: #404040; + padding: 0.4045em 1.618em; + font-weight: bold; + position: relative; + background: #fcfcfc; + border: none; + border-bottom: solid 1px #c9c9c9; + border-top: solid 1px #c9c9c9; + padding-left: 1.618em -4px; +} +.wy-menu-vertical li.on a:hover, .wy-menu-vertical li.current > a:hover { + background: #fcfcfc; +} +.wy-menu-vertical li.on a:hover span.toctree-expand, .wy-menu-vertical li.current > a:hover span.toctree-expand { + color: gray; +} +.wy-menu-vertical li.on a span.toctree-expand, .wy-menu-vertical li.current > a span.toctree-expand { + display: block; + font-size: 0.8em; + line-height: 1.6em; + color: #333333; +} +.wy-menu-vertical li.toctree-l1.current li.toctree-l2 > ul, .wy-menu-vertical li.toctree-l2.current li.toctree-l3 > ul { + display: none; +} +.wy-menu-vertical li.toctree-l1.current li.toctree-l2.current > ul, .wy-menu-vertical li.toctree-l2.current li.toctree-l3.current > ul { + display: block; +} +.wy-menu-vertical li.toctree-l2.current > a { + background: #c9c9c9; + padding: 0.4045em 2.427em; +} +.wy-menu-vertical li.toctree-l2.current li.toctree-l3 > a { + display: block; + background: #c9c9c9; + padding: 0.4045em 4.045em; +} +.wy-menu-vertical li.toctree-l2 a:hover span.toctree-expand { + color: gray; +} +.wy-menu-vertical li.toctree-l2 span.toctree-expand { + color: #a3a3a3; +} +.wy-menu-vertical li.toctree-l3 { + font-size: 0.9em; +} +.wy-menu-vertical li.toctree-l3.current > a { + background: #bdbdbd; + padding: 0.4045em 4.045em; +} +.wy-menu-vertical li.toctree-l3.current li.toctree-l4 > a { + display: block; + background: #bdbdbd; + padding: 0.4045em 5.663em; + border-top: none; + border-bottom: none; +} +.wy-menu-vertical li.toctree-l3 a:hover span.toctree-expand { + color: gray; +} +.wy-menu-vertical li.toctree-l3 span.toctree-expand { + color: #969696; +} +.wy-menu-vertical li.toctree-l4 { + font-size: 0.9em; +} +.wy-menu-vertical li.current ul { + display: block; +} +.wy-menu-vertical li ul { + margin-bottom: 0; + display: none; +} +.wy-menu-vertical .local-toc li ul { + display: block; +} +.wy-menu-vertical li ul li a { + margin-bottom: 0; + color: #b3b3b3; + font-weight: normal; +} +.wy-menu-vertical a { + display: inline-block; + line-height: 18px; + padding: 0.4045em 1.618em; + display: block; + position: relative; + font-size: 90%; + color: #b3b3b3; +} +.wy-menu-vertical a:hover { + background-color: #4e4a4a; + cursor: pointer; +} +.wy-menu-vertical a:hover span.toctree-expand { + color: #b3b3b3; +} +.wy-menu-vertical a:active { + background-color: #2980B9; + cursor: pointer; + color: #fff; +} +.wy-menu-vertical a:active span.toctree-expand { + color: #fff; +} + +.wy-side-nav-search { + display: block; + width: 300px; + padding: 0.809em; + margin-bottom: 0.809em; + z-index: 200; + background-color: #2980B9; + text-align: center; + padding: 0.809em; + display: block; + color: #fcfcfc; + margin-bottom: 0.809em; +} +.wy-side-nav-search input[type=text] { + width: 100%; + border-radius: 50px; + padding: 6px 12px; + border-color: #2472a4; +} +.wy-side-nav-search img { + display: block; + margin: auto auto 0.809em auto; + height: 45px; + width: 45px; + background-color: #2980B9; + padding: 5px; + border-radius: 100%; +} +.wy-side-nav-search > a, .wy-side-nav-search .wy-dropdown > a { + color: #fcfcfc; + font-size: 100%; + font-weight: bold; + display: inline-block; + padding: 4px 6px; + margin-bottom: 0.809em; +} +.wy-side-nav-search > a:hover, .wy-side-nav-search .wy-dropdown > a:hover { + background: rgba(255, 255, 255, 0.1); +} +.wy-side-nav-search > a img.logo, .wy-side-nav-search .wy-dropdown > a img.logo { + display: block; + margin: 0 auto; + height: auto; + width: auto; + border-radius: 0; + max-width: 100%; + background: transparent; +} +.wy-side-nav-search > a.icon img.logo, .wy-side-nav-search .wy-dropdown > a.icon img.logo { + margin-top: 0.85em; +} +.wy-side-nav-search > div.version { + margin-top: -0.4045em; + margin-bottom: 0.809em; + font-weight: normal; + color: rgba(255, 255, 255, 0.3); +} + +.wy-nav .wy-menu-vertical header { + color: #2980B9; +} +.wy-nav .wy-menu-vertical a { + color: #b3b3b3; +} +.wy-nav .wy-menu-vertical a:hover { + background-color: #2980B9; + color: #fff; +} + +[data-menu-wrap] { + -webkit-transition: all 0.2s ease-in; + -moz-transition: all 0.2s ease-in; + transition: all 0.2s ease-in; + position: absolute; + opacity: 1; + width: 100%; + opacity: 0; +} +[data-menu-wrap].move-center { + left: 0; + right: auto; + opacity: 1; +} +[data-menu-wrap].move-left { + right: auto; + left: -100%; + opacity: 0; +} +[data-menu-wrap].move-right { + right: -100%; + left: auto; + opacity: 0; +} + +.wy-body-for-nav { + background: left repeat-y #fcfcfc; + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxOERBMTRGRDBFMUUxMUUzODUwMkJCOThDMEVFNURFMCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxOERBMTRGRTBFMUUxMUUzODUwMkJCOThDMEVFNURFMCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjE4REExNEZCMEUxRTExRTM4NTAyQkI5OEMwRUU1REUwIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjE4REExNEZDMEUxRTExRTM4NTAyQkI5OEMwRUU1REUwIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+EwrlwAAAAA5JREFUeNpiMDU0BAgwAAE2AJgB9BnaAAAAAElFTkSuQmCC); + background-size: 300px 1px; +} + +.wy-grid-for-nav { + position: absolute; + width: 100%; + height: 100%; +} + +.wy-nav-side { + position: fixed; + top: 0; + bottom: 0; + left: 0; + padding-bottom: 2em; + width: 300px; + overflow-x: hidden; + overflow-y: hidden; + min-height: 100%; + background: #343131; + z-index: 200; +} + +.wy-side-scroll { + width: 320px; + position: relative; + overflow-x: hidden; + overflow-y: scroll; + height: 100%; +} + +.wy-nav-top { + display: none; + background: #2980B9; + color: #fff; + padding: 0.4045em 0.809em; + position: relative; + line-height: 50px; + text-align: center; + font-size: 100%; + *zoom: 1; +} +.wy-nav-top:before, .wy-nav-top:after { + display: table; + content: ""; +} +.wy-nav-top:after { + clear: both; +} +.wy-nav-top a { + color: #fff; + font-weight: bold; +} +.wy-nav-top img { + margin-right: 12px; + height: 45px; + width: 45px; + background-color: #2980B9; + padding: 5px; + border-radius: 100%; +} +.wy-nav-top i { + font-size: 30px; + float: left; + cursor: pointer; + padding-top: inherit; +} + +.wy-nav-content-wrap { + margin-left: 300px; + background: #fcfcfc; + min-height: 100%; +} + +.wy-nav-content { + padding: 1.618em 3.236em; + height: 100%; + max-width: 100%; + margin: auto; +} + +.wy-body-mask { + position: fixed; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.2); + display: none; + z-index: 499; +} +.wy-body-mask.on { + display: block; +} + +footer { + color: #999; +} +footer p { + margin-bottom: 12px; +} +footer span.commit code, footer span.commit .rst-content tt, .rst-content footer span.commit tt { + padding: 0px; + font-family: Consolas, "Andale Mono WT", "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace; + font-size: 1em; + background: none; + border: none; + color: #999; +} + +.rst-footer-buttons { + *zoom: 1; +} +.rst-footer-buttons:before, .rst-footer-buttons:after { + display: table; + content: ""; +} +.rst-footer-buttons:after { + clear: both; +} + +.rst-breadcrumbs-buttons { + margin-top: 12px; + *zoom: 1; +} +.rst-breadcrumbs-buttons:before, .rst-breadcrumbs-buttons:after { + display: table; + content: ""; +} +.rst-breadcrumbs-buttons:after { + clear: both; +} + +#search-results .search li { + margin-bottom: 24px; + border-bottom: solid 1px #e1e4e5; + padding-bottom: 24px; +} +#search-results .search li:first-child { + border-top: solid 1px #e1e4e5; + padding-top: 24px; +} +#search-results .search li a { + font-size: 120%; + margin-bottom: 12px; + display: inline-block; +} +#search-results .context { + color: gray; + font-size: 90%; +} + +@media screen and (max-width: 768px) { + .wy-body-for-nav { + background: #fcfcfc; + } + + .wy-nav-top { + display: block; + } + + .wy-nav-side { + left: -300px; + } + .wy-nav-side.shift { + width: 85%; + left: 0; + } + + .wy-side-scroll { + width: auto; + } + + .wy-side-nav-search { + width: auto; + } + + .wy-menu.wy-menu-vertical { + width: auto; + } + + .wy-nav-content-wrap { + margin-left: 0; + } + .wy-nav-content-wrap .wy-nav-content { + padding: 1.618em; + } + .wy-nav-content-wrap.shift { + position: fixed; + min-width: 100%; + left: 85%; + top: 0; + height: 100%; + overflow: hidden; + } +} +@media screen and (min-width: 1400px) { + .wy-nav-content-wrap { + background: rgba(0, 0, 0, 0.05); + } + + .wy-nav-content { + margin: 0; + background: #fcfcfc; + } +} +@media print { + .rst-versions, footer, .wy-nav-side { + display: none; + } + + .wy-nav-content-wrap { + margin-left: 0; + } +} +.rst-versions { + position: fixed; + bottom: 0; + left: 0; + width: 300px; + color: #fcfcfc; + background: #1f1d1d; + border-top: solid 10px #343131; + font-family: "Lato", "proxima-nova", "Helvetica Neue", Arial, sans-serif; + z-index: 400; +} +.rst-versions a { + color: #2980B9; + text-decoration: none; +} +.rst-versions .rst-badge-small { + display: none; +} +.rst-versions .rst-current-version { + padding: 12px; + background-color: #272525; + display: block; + text-align: right; + font-size: 90%; + cursor: pointer; + color: #27AE60; + *zoom: 1; +} +.rst-versions .rst-current-version:before, .rst-versions .rst-current-version:after { + display: table; + content: ""; +} +.rst-versions .rst-current-version:after { + clear: both; +} +.rst-versions .rst-current-version .fa, .rst-versions .rst-current-version .wy-menu-vertical li span.toctree-expand, .wy-menu-vertical li .rst-versions .rst-current-version span.toctree-expand, .rst-versions .rst-current-version .rst-content .admonition-title, .rst-content .rst-versions .rst-current-version .admonition-title, .rst-versions .rst-current-version .rst-content h1 .headerlink, .rst-content h1 .rst-versions .rst-current-version .headerlink, .rst-versions .rst-current-version .rst-content h2 .headerlink, .rst-content h2 .rst-versions .rst-current-version .headerlink, .rst-versions .rst-current-version .rst-content h3 .headerlink, .rst-content h3 .rst-versions .rst-current-version .headerlink, .rst-versions .rst-current-version .rst-content h4 .headerlink, .rst-content h4 .rst-versions .rst-current-version .headerlink, .rst-versions .rst-current-version .rst-content h5 .headerlink, .rst-content h5 .rst-versions .rst-current-version .headerlink, .rst-versions .rst-current-version .rst-content h6 .headerlink, .rst-content h6 .rst-versions .rst-current-version .headerlink, .rst-versions .rst-current-version .rst-content dl dt .headerlink, .rst-content dl dt .rst-versions .rst-current-version .headerlink, .rst-versions .rst-current-version .rst-content p.caption .headerlink, .rst-content p.caption .rst-versions .rst-current-version .headerlink, .rst-versions .rst-current-version .rst-content tt.download span:first-child, .rst-content tt.download .rst-versions .rst-current-version span:first-child, .rst-versions .rst-current-version .rst-content code.download span:first-child, .rst-content code.download .rst-versions .rst-current-version span:first-child, .rst-versions .rst-current-version .icon { + color: #fcfcfc; +} +.rst-versions .rst-current-version .fa-book, .rst-versions .rst-current-version .icon-book { + float: left; +} +.rst-versions .rst-current-version .icon-book { + float: left; +} +.rst-versions .rst-current-version.rst-out-of-date { + background-color: #E74C3C; + color: #fff; +} +.rst-versions .rst-current-version.rst-active-old-version { + background-color: #F1C40F; + color: #000; +} +.rst-versions.shift-up .rst-other-versions { + display: block; +} +.rst-versions .rst-other-versions { + font-size: 90%; + padding: 12px; + color: gray; + display: none; +} +.rst-versions .rst-other-versions hr { + display: block; + height: 1px; + border: 0; + margin: 20px 0; + padding: 0; + border-top: solid 1px #413d3d; +} +.rst-versions .rst-other-versions dd { + display: inline-block; + margin: 0; +} +.rst-versions .rst-other-versions dd a { + display: inline-block; + padding: 6px; + color: #fcfcfc; +} +.rst-versions.rst-badge { + width: auto; + bottom: 20px; + right: 20px; + left: auto; + border: none; + max-width: 300px; +} +.rst-versions.rst-badge .icon-book { + float: none; +} +.rst-versions.rst-badge .fa-book, .rst-versions.rst-badge .icon-book { + float: none; +} +.rst-versions.rst-badge.shift-up .rst-current-version { + text-align: right; +} +.rst-versions.rst-badge.shift-up .rst-current-version .fa-book, .rst-versions.rst-badge.shift-up .rst-current-version .icon-book { + float: left; +} +.rst-versions.rst-badge.shift-up .rst-current-version .icon-book { + float: left; +} +.rst-versions.rst-badge .rst-current-version { + width: auto; + height: 30px; + line-height: 30px; + padding: 0 6px; + display: block; + text-align: center; +} + +@media screen and (max-width: 768px) { + .rst-versions { + width: 85%; + display: none; + } + .rst-versions.shift { + display: block; + } +} +.rst-content img { + max-width: 100%; + height: auto !important; +} +.rst-content .highlight > pre, .rst-content .linenodiv > pre { + line-height: normal; +} +.rst-content div.figure { + margin-bottom: 24px; +} +.rst-content div.figure p.caption { + font-style: italic; +} +.rst-content div.figure.align-center { + text-align: center; +} +.rst-content .section > img, .rst-content .section > a > img { + margin-bottom: 24px; +} +.rst-content blockquote { + margin-left: 24px; + line-height: 24px; + margin-bottom: 24px; +} +.rst-content .note .last, .rst-content .attention .last, .rst-content .caution .last, .rst-content .danger .last, .rst-content .error .last, .rst-content .hint .last, .rst-content .important .last, .rst-content .tip .last, .rst-content .warning .last, .rst-content .seealso .last, .rst-content .admonition-todo .last { + margin-bottom: 0; +} +.rst-content .admonition-title:before { + margin-right: 4px; +} +.rst-content .admonition table { + border-color: rgba(0, 0, 0, 0.1); +} +.rst-content .admonition table td, .rst-content .admonition table th { + background: transparent !important; + border-color: rgba(0, 0, 0, 0.1) !important; +} +.rst-content .section ol.loweralpha, .rst-content .section ol.loweralpha li { + list-style: lower-alpha; +} +.rst-content .section ol.upperalpha, .rst-content .section ol.upperalpha li { + list-style: upper-alpha; +} +.rst-content .section ol p, .rst-content .section ul p { + margin-bottom: 12px; +} +.rst-content .line-block { + margin-left: 24px; +} +.rst-content .topic-title { + font-weight: bold; + margin-bottom: 12px; +} +.rst-content .toc-backref { + color: #404040; +} +.rst-content .align-right { + float: right; + margin: 0px 0px 24px 24px; +} +.rst-content .align-left { + float: left; + margin: 0px 24px 24px 0px; +} +.rst-content .align-center { + margin: auto; + display: block; +} +.rst-content h1 .headerlink, .rst-content h2 .headerlink, .rst-content .toctree-wrapper p.caption .headerlink, .rst-content h3 .headerlink, .rst-content h4 .headerlink, .rst-content h5 .headerlink, .rst-content h6 .headerlink, .rst-content dl dt .headerlink, .rst-content p.caption .headerlink { + display: none; + visibility: hidden; + font-size: 14px; +} +.rst-content h1 .headerlink:after, .rst-content h2 .headerlink:after, .rst-content .toctree-wrapper p.caption .headerlink:after, .rst-content h3 .headerlink:after, .rst-content h4 .headerlink:after, .rst-content h5 .headerlink:after, .rst-content h6 .headerlink:after, .rst-content dl dt .headerlink:after, .rst-content p.caption .headerlink:after { + visibility: visible; + content: ""; + font-family: FontAwesome; + display: inline-block; +} +.rst-content h1:hover .headerlink, .rst-content h2:hover .headerlink, .rst-content .toctree-wrapper p.caption:hover .headerlink, .rst-content h3:hover .headerlink, .rst-content h4:hover .headerlink, .rst-content h5:hover .headerlink, .rst-content h6:hover .headerlink, .rst-content dl dt:hover .headerlink, .rst-content p.caption:hover .headerlink { + display: inline-block; +} +.rst-content .sidebar { + float: right; + width: 40%; + display: block; + margin: 0 0 24px 24px; + padding: 24px; + background: #f3f6f6; + border: solid 1px #e1e4e5; +} +.rst-content .sidebar p, .rst-content .sidebar ul, .rst-content .sidebar dl { + font-size: 90%; +} +.rst-content .sidebar .last { + margin-bottom: 0; +} +.rst-content .sidebar .sidebar-title { + display: block; + font-family: "Roboto Slab", "ff-tisa-web-pro", "Georgia", Arial, sans-serif; + font-weight: bold; + background: #e1e4e5; + padding: 6px 12px; + margin: -24px; + margin-bottom: 24px; + font-size: 100%; +} +.rst-content .highlighted { + background: #F1C40F; + display: inline-block; + font-weight: bold; + padding: 0 6px; +} +.rst-content .footnote-reference, .rst-content .citation-reference { + vertical-align: super; + font-size: 90%; +} +.rst-content table.docutils.citation, .rst-content table.docutils.footnote { + background: none; + border: none; + color: #999; +} +.rst-content table.docutils.citation td, .rst-content table.docutils.citation tr, .rst-content table.docutils.footnote td, .rst-content table.docutils.footnote tr { + border: none; + background-color: transparent !important; + white-space: normal; +} +.rst-content table.docutils.citation td.label, .rst-content table.docutils.footnote td.label { + padding-left: 0; + padding-right: 0; + vertical-align: top; +} +.rst-content table.docutils.citation tt, .rst-content table.docutils.citation code, .rst-content table.docutils.footnote tt, .rst-content table.docutils.footnote code { + color: #555; +} +.rst-content table.field-list { + border: none; +} +.rst-content table.field-list td { + border: none; + padding-top: 5px; +} +.rst-content table.field-list td > strong { + display: inline-block; + margin-top: 3px; +} +.rst-content table.field-list .field-name { + padding-right: 10px; + text-align: left; + white-space: nowrap; +} +.rst-content table.field-list .field-body { + text-align: left; + padding-left: 0; +} +.rst-content tt, .rst-content tt, .rst-content code { + color: #000; + padding: 2px 5px; +} +.rst-content tt big, .rst-content tt em, .rst-content tt big, .rst-content code big, .rst-content tt em, .rst-content code em { + font-size: 100% !important; + line-height: normal; +} +.rst-content tt.literal, .rst-content tt.literal, .rst-content code.literal { + color: #E74C3C; +} +.rst-content tt.xref, a .rst-content tt, .rst-content tt.xref, .rst-content code.xref, a .rst-content tt, a .rst-content code { + font-weight: bold; + color: #404040; +} +.rst-content a tt, .rst-content a tt, .rst-content a code { + color: #2980B9; +} +.rst-content dl { + margin-bottom: 24px; +} +.rst-content dl dt { + font-weight: bold; +} +.rst-content dl p, .rst-content dl table, .rst-content dl ul, .rst-content dl ol { + margin-bottom: 12px !important; +} +.rst-content dl dd { + margin: 0 0 12px 24px; +} +.rst-content dl:not(.docutils) { + margin-bottom: 24px; +} +.rst-content dl:not(.docutils) dt { + display: table; + margin: 6px 0; + font-size: 90%; + line-height: normal; + background: #e7f2fa; + color: #2980B9; + border-top: solid 3px #6ab0de; + padding: 6px; + position: relative; +} +.rst-content dl:not(.docutils) dt:before { + color: #6ab0de; +} +.rst-content dl:not(.docutils) dt .headerlink { + color: #404040; + font-size: 100% !important; +} +.rst-content dl:not(.docutils) dl dt { + margin-bottom: 6px; + border: none; + border-left: solid 3px #cccccc; + background: #f0f0f0; + color: #555; +} +.rst-content dl:not(.docutils) dl dt .headerlink { + color: #404040; + font-size: 100% !important; +} +.rst-content dl:not(.docutils) dt:first-child { + margin-top: 0; +} +.rst-content dl:not(.docutils) tt, .rst-content dl:not(.docutils) tt, .rst-content dl:not(.docutils) code { + font-weight: bold; +} +.rst-content dl:not(.docutils) tt.descname, .rst-content dl:not(.docutils) tt.descclassname, .rst-content dl:not(.docutils) tt.descname, .rst-content dl:not(.docutils) code.descname, .rst-content dl:not(.docutils) tt.descclassname, .rst-content dl:not(.docutils) code.descclassname { + background-color: transparent; + border: none; + padding: 0; + font-size: 100% !important; +} +.rst-content dl:not(.docutils) tt.descname, .rst-content dl:not(.docutils) tt.descname, .rst-content dl:not(.docutils) code.descname { + font-weight: bold; +} +.rst-content dl:not(.docutils) .optional { + display: inline-block; + padding: 0 4px; + color: #000; + font-weight: bold; +} +.rst-content dl:not(.docutils) .property { + display: inline-block; + padding-right: 8px; +} +.rst-content .viewcode-link, .rst-content .viewcode-back { + display: inline-block; + color: #27AE60; + font-size: 80%; + padding-left: 24px; +} +.rst-content .viewcode-back { + display: block; + float: right; +} +.rst-content p.rubric { + margin-bottom: 12px; + font-weight: bold; +} +.rst-content tt.download, .rst-content code.download { + background: inherit; + padding: inherit; + font-weight: normal; + font-family: inherit; + font-size: inherit; + color: inherit; + border: inherit; + white-space: inherit; +} +.rst-content tt.download span:first-child, .rst-content code.download span:first-child { + -webkit-font-smoothing: subpixel-antialiased; +} +.rst-content tt.download span:first-child:before, .rst-content code.download span:first-child:before { + margin-right: 4px; +} +.rst-content .guilabel { + border: 1px solid #7fbbe3; + background: #e7f2fa; + font-size: 80%; + font-weight: 700; + border-radius: 4px; + padding: 2.4px 6px; + margin: auto 2px; +} +.rst-content .versionmodified { + font-style: italic; +} + +@media screen and (max-width: 480px) { + .rst-content .sidebar { + width: 100%; + } +} +span[id*='MathJax-Span'] { + color: #404040; +} + +.math { + text-align: center; +} + +@font-face { + font-family: "Inconsolata"; + font-style: normal; + font-weight: 400; + src: local("Inconsolata"), local("Inconsolata-Regular"), url(../fonts/Inconsolata-Regular.ttf) format("truetype"); +} +@font-face { + font-family: "Inconsolata"; + font-style: normal; + font-weight: 700; + src: local("Inconsolata Bold"), local("Inconsolata-Bold"), url(../fonts/Inconsolata-Bold.ttf) format("truetype"); +} +@font-face { + font-family: "Lato"; + font-style: normal; + font-weight: 400; + src: local("Lato Regular"), local("Lato-Regular"), url(../fonts/Lato-Regular.ttf) format("truetype"); +} +@font-face { + font-family: "Lato"; + font-style: normal; + font-weight: 700; + src: local("Lato Bold"), local("Lato-Bold"), url(../fonts/Lato-Bold.ttf) format("truetype"); +} +@font-face { + font-family: "Roboto Slab"; + font-style: normal; + font-weight: 400; + src: local("Roboto Slab Regular"), local("RobotoSlab-Regular"), url(../fonts/RobotoSlab-Regular.ttf) format("truetype"); +} +@font-face { + font-family: "Roboto Slab"; + font-style: normal; + font-weight: 700; + src: local("Roboto Slab Bold"), local("RobotoSlab-Bold"), url(../fonts/RobotoSlab-Bold.ttf) format("truetype"); +} + +/*# sourceMappingURL=theme.css.map */ diff --git a/docs/_static/doctools.js b/docs/_static/doctools.js new file mode 100644 index 0000000..8163495 --- /dev/null +++ b/docs/_static/doctools.js @@ -0,0 +1,287 @@ +/* + * doctools.js + * ~~~~~~~~~~~ + * + * Sphinx JavaScript utilities for all documentation. + * + * :copyright: Copyright 2007-2016 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/** + * select a different prefix for underscore + */ +$u = _.noConflict(); + +/** + * make the code below compatible with browsers without + * an installed firebug like debugger +if (!window.console || !console.firebug) { + var names = ["log", "debug", "info", "warn", "error", "assert", "dir", + "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", + "profile", "profileEnd"]; + window.console = {}; + for (var i = 0; i < names.length; ++i) + window.console[names[i]] = function() {}; +} + */ + +/** + * small helper function to urldecode strings + */ +jQuery.urldecode = function(x) { + return decodeURIComponent(x).replace(/\+/g, ' '); +}; + +/** + * small helper function to urlencode strings + */ +jQuery.urlencode = encodeURIComponent; + +/** + * This function returns the parsed url parameters of the + * current request. Multiple values per key are supported, + * it will always return arrays of strings for the value parts. + */ +jQuery.getQueryParameters = function(s) { + if (typeof s == 'undefined') + s = document.location.search; + var parts = s.substr(s.indexOf('?') + 1).split('&'); + var result = {}; + for (var i = 0; i < parts.length; i++) { + var tmp = parts[i].split('=', 2); + var key = jQuery.urldecode(tmp[0]); + var value = jQuery.urldecode(tmp[1]); + if (key in result) + result[key].push(value); + else + result[key] = [value]; + } + return result; +}; + +/** + * highlight a given string on a jquery object by wrapping it in + * span elements with the given class name. + */ +jQuery.fn.highlightText = function(text, className) { + function highlight(node) { + if (node.nodeType == 3) { + var val = node.nodeValue; + var pos = val.toLowerCase().indexOf(text); + if (pos >= 0 && !jQuery(node.parentNode).hasClass(className)) { + var span = document.createElement("span"); + span.className = className; + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore(span, node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling)); + node.nodeValue = val.substr(0, pos); + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this); + }); + } + } + return this.each(function() { + highlight(this); + }); +}; + +/* + * backward compatibility for jQuery.browser + * This will be supported until firefox bug is fixed. + */ +if (!jQuery.browser) { + jQuery.uaMatch = function(ua) { + ua = ua.toLowerCase(); + + var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || + /(webkit)[ \/]([\w.]+)/.exec(ua) || + /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || + /(msie) ([\w.]+)/.exec(ua) || + ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || + []; + + return { + browser: match[ 1 ] || "", + version: match[ 2 ] || "0" + }; + }; + jQuery.browser = {}; + jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; +} + +/** + * Small JavaScript module for the documentation. + */ +var Documentation = { + + init : function() { + this.fixFirefoxAnchorBug(); + this.highlightSearchWords(); + this.initIndexTable(); + + }, + + /** + * i18n support + */ + TRANSLATIONS : {}, + PLURAL_EXPR : function(n) { return n == 1 ? 0 : 1; }, + LOCALE : 'unknown', + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext : function(string) { + var translated = Documentation.TRANSLATIONS[string]; + if (typeof translated == 'undefined') + return string; + return (typeof translated == 'string') ? translated : translated[0]; + }, + + ngettext : function(singular, plural, n) { + var translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated == 'undefined') + return (n == 1) ? singular : plural; + return translated[Documentation.PLURALEXPR(n)]; + }, + + addTranslations : function(catalog) { + for (var key in catalog.messages) + this.TRANSLATIONS[key] = catalog.messages[key]; + this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); + this.LOCALE = catalog.locale; + }, + + /** + * add context elements like header anchor links + */ + addContextElements : function() { + $('div[id] > :header:first').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this headline')). + appendTo(this); + }); + $('dt[id]').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this definition')). + appendTo(this); + }); + }, + + /** + * workaround a firefox stupidity + * see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075 + */ + fixFirefoxAnchorBug : function() { + if (document.location.hash) + window.setTimeout(function() { + document.location.href += ''; + }, 10); + }, + + /** + * highlight the search words provided in the url in the text + */ + highlightSearchWords : function() { + var params = $.getQueryParameters(); + var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; + if (terms.length) { + var body = $('div.body'); + if (!body.length) { + body = $('body'); + } + window.setTimeout(function() { + $.each(terms, function() { + body.highlightText(this.toLowerCase(), 'highlighted'); + }); + }, 10); + $('') + .appendTo($('#searchbox')); + } + }, + + /** + * init the domain index toggle buttons + */ + initIndexTable : function() { + var togglers = $('img.toggler').click(function() { + var src = $(this).attr('src'); + var idnum = $(this).attr('id').substr(7); + $('tr.cg-' + idnum).toggle(); + if (src.substr(-9) == 'minus.png') + $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); + else + $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); + }).css('display', ''); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { + togglers.click(); + } + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords : function() { + $('#searchbox .highlight-link').fadeOut(300); + $('span.highlighted').removeClass('highlighted'); + }, + + /** + * make the url absolute + */ + makeURL : function(relativeURL) { + return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; + }, + + /** + * get the current relative url + */ + getCurrentURL : function() { + var path = document.location.pathname; + var parts = path.split(/\//); + $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { + if (this == '..') + parts.pop(); + }); + var url = parts.join('/'); + return path.substring(url.lastIndexOf('/') + 1, path.length - 1); + }, + + initOnKeyListeners: function() { + $(document).keyup(function(event) { + var activeElementType = document.activeElement.tagName; + // don't navigate when in search box or textarea + if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT') { + switch (event.keyCode) { + case 37: // left + var prevHref = $('link[rel="prev"]').prop('href'); + if (prevHref) { + window.location.href = prevHref; + return false; + } + case 39: // right + var nextHref = $('link[rel="next"]').prop('href'); + if (nextHref) { + window.location.href = nextHref; + return false; + } + } + } + }); + } +}; + +// quick alias for translations +_ = Documentation.gettext; + +$(document).ready(function() { + Documentation.init(); +}); \ No newline at end of file diff --git a/docs/_static/down-pressed.png b/docs/_static/down-pressed.png new file mode 100644 index 0000000..5756c8c Binary files /dev/null and b/docs/_static/down-pressed.png differ diff --git a/docs/_static/down.png b/docs/_static/down.png new file mode 100644 index 0000000..1b3bdad Binary files /dev/null and b/docs/_static/down.png differ diff --git a/docs/_static/file.png b/docs/_static/file.png new file mode 100644 index 0000000..a858a41 Binary files /dev/null and b/docs/_static/file.png differ diff --git a/docs/_static/fonts/Inconsolata-Bold.ttf b/docs/_static/fonts/Inconsolata-Bold.ttf new file mode 100644 index 0000000..809c1f5 Binary files /dev/null and b/docs/_static/fonts/Inconsolata-Bold.ttf differ diff --git a/docs/_static/fonts/Inconsolata-Regular.ttf b/docs/_static/fonts/Inconsolata-Regular.ttf new file mode 100644 index 0000000..fc981ce Binary files /dev/null and b/docs/_static/fonts/Inconsolata-Regular.ttf differ diff --git a/docs/_static/fonts/Lato-Bold.ttf b/docs/_static/fonts/Lato-Bold.ttf new file mode 100644 index 0000000..1d23c70 Binary files /dev/null and b/docs/_static/fonts/Lato-Bold.ttf differ diff --git a/docs/_static/fonts/Lato-Regular.ttf b/docs/_static/fonts/Lato-Regular.ttf new file mode 100644 index 0000000..0f3d0f8 Binary files /dev/null and b/docs/_static/fonts/Lato-Regular.ttf differ diff --git a/docs/_static/fonts/RobotoSlab-Bold.ttf b/docs/_static/fonts/RobotoSlab-Bold.ttf new file mode 100644 index 0000000..df5d1df Binary files /dev/null and b/docs/_static/fonts/RobotoSlab-Bold.ttf differ diff --git a/docs/_static/fonts/RobotoSlab-Regular.ttf b/docs/_static/fonts/RobotoSlab-Regular.ttf new file mode 100644 index 0000000..eb52a79 Binary files /dev/null and b/docs/_static/fonts/RobotoSlab-Regular.ttf differ diff --git a/docs/_static/fonts/fontawesome-webfont.eot b/docs/_static/fonts/fontawesome-webfont.eot new file mode 100644 index 0000000..c7b00d2 Binary files /dev/null and b/docs/_static/fonts/fontawesome-webfont.eot differ diff --git a/docs/_static/fonts/fontawesome-webfont.svg b/docs/_static/fonts/fontawesome-webfont.svg new file mode 100644 index 0000000..8b66187 --- /dev/null +++ b/docs/_static/fonts/fontawesome-webfont.svg @@ -0,0 +1,685 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_static/fonts/fontawesome-webfont.ttf b/docs/_static/fonts/fontawesome-webfont.ttf new file mode 100644 index 0000000..f221e50 Binary files /dev/null and b/docs/_static/fonts/fontawesome-webfont.ttf differ diff --git a/docs/_static/fonts/fontawesome-webfont.woff b/docs/_static/fonts/fontawesome-webfont.woff new file mode 100644 index 0000000..6e7483c Binary files /dev/null and b/docs/_static/fonts/fontawesome-webfont.woff differ diff --git a/docs/_static/fonts/fontawesome-webfont.woff2 b/docs/_static/fonts/fontawesome-webfont.woff2 new file mode 100644 index 0000000..7eb74fd Binary files /dev/null and b/docs/_static/fonts/fontawesome-webfont.woff2 differ diff --git a/docs/_static/jquery-3.1.0.js b/docs/_static/jquery-3.1.0.js new file mode 100644 index 0000000..f2fc274 --- /dev/null +++ b/docs/_static/jquery-3.1.0.js @@ -0,0 +1,10074 @@ +/*eslint-disable no-unused-vars*/ +/*! + * jQuery JavaScript Library v3.1.0 + * https://jquery.com/ + * + * Includes Sizzle.js + * https://sizzlejs.com/ + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license + * https://jquery.org/license + * + * Date: 2016-07-07T21:44Z + */ +( function( global, factory ) { + + "use strict"; + + if ( typeof module === "object" && typeof module.exports === "object" ) { + + // For CommonJS and CommonJS-like environments where a proper `window` + // is present, execute the factory and get jQuery. + // For environments that do not have a `window` with a `document` + // (such as Node.js), expose a factory as module.exports. + // This accentuates the need for the creation of a real `window`. + // e.g. var jQuery = require("jquery")(window); + // See ticket #14549 for more info. + module.exports = global.document ? + factory( global, true ) : + function( w ) { + if ( !w.document ) { + throw new Error( "jQuery requires a window with a document" ); + } + return factory( w ); + }; + } else { + factory( global ); + } + +// Pass this if window is not defined yet +} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) { + +// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 +// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode +// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common +// enough that all such attempts are guarded in a try block. +"use strict"; + +var arr = []; + +var document = window.document; + +var getProto = Object.getPrototypeOf; + +var slice = arr.slice; + +var concat = arr.concat; + +var push = arr.push; + +var indexOf = arr.indexOf; + +var class2type = {}; + +var toString = class2type.toString; + +var hasOwn = class2type.hasOwnProperty; + +var fnToString = hasOwn.toString; + +var ObjectFunctionString = fnToString.call( Object ); + +var support = {}; + + + + function DOMEval( code, doc ) { + doc = doc || document; + + var script = doc.createElement( "script" ); + + script.text = code; + doc.head.appendChild( script ).parentNode.removeChild( script ); + } +/* global Symbol */ +// Defining this global in .eslintrc would create a danger of using the global +// unguarded in another place, it seems safer to define global only for this module + + + +var + version = "3.1.0", + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + + // The jQuery object is actually just the init constructor 'enhanced' + // Need init if jQuery is called (just allow error to be thrown if not included) + return new jQuery.fn.init( selector, context ); + }, + + // Support: Android <=4.0 only + // Make sure we trim BOM and NBSP + rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, + + // Matches dashed string for camelizing + rmsPrefix = /^-ms-/, + rdashAlpha = /-([a-z])/g, + + // Used by jQuery.camelCase as callback to replace() + fcamelCase = function( all, letter ) { + return letter.toUpperCase(); + }; + +jQuery.fn = jQuery.prototype = { + + // The current version of jQuery being used + jquery: version, + + constructor: jQuery, + + // The default length of a jQuery object is 0 + length: 0, + + toArray: function() { + return slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + return num != null ? + + // Return just the one element from the set + ( num < 0 ? this[ num + this.length ] : this[ num ] ) : + + // Return all the elements in a clean array + slice.call( this ); + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + each: function( callback ) { + return jQuery.each( this, callback ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map( this, function( elem, i ) { + return callback.call( elem, i, elem ); + } ) ); + }, + + slice: function() { + return this.pushStack( slice.apply( this, arguments ) ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + eq: function( i ) { + var len = this.length, + j = +i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); + }, + + end: function() { + return this.prevObject || this.constructor(); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: push, + sort: arr.sort, + splice: arr.splice +}; + +jQuery.extend = jQuery.fn.extend = function() { + var options, name, src, copy, copyIsArray, clone, + target = arguments[ 0 ] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + + // Skip the boolean and the target + target = arguments[ i ] || {}; + i++; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !jQuery.isFunction( target ) ) { + target = {}; + } + + // Extend jQuery itself if only one argument is passed + if ( i === length ) { + target = this; + i--; + } + + for ( ; i < length; i++ ) { + + // Only deal with non-null/undefined values + if ( ( options = arguments[ i ] ) != null ) { + + // Extend the base object + for ( name in options ) { + src = target[ name ]; + copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject( copy ) || + ( copyIsArray = jQuery.isArray( copy ) ) ) ) { + + if ( copyIsArray ) { + copyIsArray = false; + clone = src && jQuery.isArray( src ) ? src : []; + + } else { + clone = src && jQuery.isPlainObject( src ) ? src : {}; + } + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend( { + + // Unique for each copy of jQuery on the page + expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), + + // Assume jQuery is ready without the ready module + isReady: true, + + error: function( msg ) { + throw new Error( msg ); + }, + + noop: function() {}, + + isFunction: function( obj ) { + return jQuery.type( obj ) === "function"; + }, + + isArray: Array.isArray, + + isWindow: function( obj ) { + return obj != null && obj === obj.window; + }, + + isNumeric: function( obj ) { + + // As of jQuery 3.0, isNumeric is limited to + // strings and numbers (primitives or objects) + // that can be coerced to finite numbers (gh-2662) + var type = jQuery.type( obj ); + return ( type === "number" || type === "string" ) && + + // parseFloat NaNs numeric-cast false positives ("") + // ...but misinterprets leading-number strings, particularly hex literals ("0x...") + // subtraction forces infinities to NaN + !isNaN( obj - parseFloat( obj ) ); + }, + + isPlainObject: function( obj ) { + var proto, Ctor; + + // Detect obvious negatives + // Use toString instead of jQuery.type to catch host objects + if ( !obj || toString.call( obj ) !== "[object Object]" ) { + return false; + } + + proto = getProto( obj ); + + // Objects with no prototype (e.g., `Object.create( null )`) are plain + if ( !proto ) { + return true; + } + + // Objects with prototype are plain iff they were constructed by a global Object function + Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; + return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; + }, + + isEmptyObject: function( obj ) { + + /* eslint-disable no-unused-vars */ + // See https://github.com/eslint/eslint/issues/6125 + var name; + + for ( name in obj ) { + return false; + } + return true; + }, + + type: function( obj ) { + if ( obj == null ) { + return obj + ""; + } + + // Support: Android <=2.3 only (functionish RegExp) + return typeof obj === "object" || typeof obj === "function" ? + class2type[ toString.call( obj ) ] || "object" : + typeof obj; + }, + + // Evaluates a script in a global context + globalEval: function( code ) { + DOMEval( code ); + }, + + // Convert dashed to camelCase; used by the css and data modules + // Support: IE <=9 - 11, Edge 12 - 13 + // Microsoft forgot to hump their vendor prefix (#9572) + camelCase: function( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); + }, + + nodeName: function( elem, name ) { + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + }, + + each: function( obj, callback ) { + var length, i = 0; + + if ( isArrayLike( obj ) ) { + length = obj.length; + for ( ; i < length; i++ ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } else { + for ( i in obj ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } + + return obj; + }, + + // Support: Android <=4.0 only + trim: function( text ) { + return text == null ? + "" : + ( text + "" ).replace( rtrim, "" ); + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArrayLike( Object( arr ) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + return arr == null ? -1 : indexOf.call( arr, elem, i ); + }, + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + merge: function( first, second ) { + var len = +second.length, + j = 0, + i = first.length; + + for ( ; j < len; j++ ) { + first[ i++ ] = second[ j ]; + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, invert ) { + var callbackInverse, + matches = [], + i = 0, + length = elems.length, + callbackExpect = !invert; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + callbackInverse = !callback( elems[ i ], i ); + if ( callbackInverse !== callbackExpect ) { + matches.push( elems[ i ] ); + } + } + + return matches; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var length, value, + i = 0, + ret = []; + + // Go through the array, translating each of the items to their new values + if ( isArrayLike( elems ) ) { + length = elems.length; + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + } + + // Flatten any nested arrays + return concat.apply( [], ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // Bind a function to a context, optionally partially applying any + // arguments. + proxy: function( fn, context ) { + var tmp, args, proxy; + + if ( typeof context === "string" ) { + tmp = fn[ context ]; + context = fn; + fn = tmp; + } + + // Quick check to determine if target is callable, in the spec + // this throws a TypeError, but we will just return undefined. + if ( !jQuery.isFunction( fn ) ) { + return undefined; + } + + // Simulated bind + args = slice.call( arguments, 2 ); + proxy = function() { + return fn.apply( context || this, args.concat( slice.call( arguments ) ) ); + }; + + // Set the guid of unique handler to the same of original handler, so it can be removed + proxy.guid = fn.guid = fn.guid || jQuery.guid++; + + return proxy; + }, + + now: Date.now, + + // jQuery.support is not used in Core but other projects attach their + // properties to it so it needs to exist. + support: support +} ); + +if ( typeof Symbol === "function" ) { + jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; +} + +// Populate the class2type map +jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), +function( i, name ) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +} ); + +function isArrayLike( obj ) { + + // Support: real iOS 8.2 only (not reproducible in simulator) + // `in` check used to prevent JIT error (gh-2145) + // hasOwn isn't used here due to false negatives + // regarding Nodelist length in IE + var length = !!obj && "length" in obj && obj.length, + type = jQuery.type( obj ); + + if ( type === "function" || jQuery.isWindow( obj ) ) { + return false; + } + + return type === "array" || length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj; +} +var Sizzle = +/*! + * Sizzle CSS Selector Engine v2.3.0 + * https://sizzlejs.com/ + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2016-01-04 + */ +(function( window ) { + +var i, + support, + Expr, + getText, + isXML, + tokenize, + compile, + select, + outermostContext, + sortInput, + hasDuplicate, + + // Local document vars + setDocument, + document, + docElem, + documentIsHTML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, + + // Instance-specific data + expando = "sizzle" + 1 * new Date(), + preferredDoc = window.document, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + } + return 0; + }, + + // Instance methods + hasOwn = ({}).hasOwnProperty, + arr = [], + pop = arr.pop, + push_native = arr.push, + push = arr.push, + slice = arr.slice, + // Use a stripped-down indexOf as it's faster than native + // https://jsperf.com/thor-indexof-vs-for/5 + indexOf = function( list, elem ) { + var i = 0, + len = list.length; + for ( ; i < len; i++ ) { + if ( list[i] === elem ) { + return i; + } + } + return -1; + }, + + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", + + // Regular expressions + + // http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + + // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier + identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", + + // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors + attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + + // Operator (capture 2) + "*([*^$|!~]?=)" + whitespace + + // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + + "*\\]", + + pseudos = ":(" + identifier + ")(?:\\((" + + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: + // 1. quoted (capture 3; capture 4 or capture 5) + "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + + // 2. simple (capture 6) + "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + + // 3. anything else (capture 2) + ".*" + + ")\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rwhitespace = new RegExp( whitespace + "+", "g" ), + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), + + rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ), + + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + "ID": new RegExp( "^#(" + identifier + ")" ), + "CLASS": new RegExp( "^\\.(" + identifier + ")" ), + "TAG": new RegExp( "^(" + identifier + "|[*])" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + rnative = /^[^{]+\{\s*\[native \w/, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rsibling = /[+~]/, + + // CSS escapes + // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), + funescape = function( _, escaped, escapedWhitespace ) { + var high = "0x" + escaped - 0x10000; + // NaN means non-codepoint + // Support: Firefox<24 + // Workaround erroneous numeric interpretation of +"0x" + return high !== high || escapedWhitespace ? + escaped : + high < 0 ? + // BMP codepoint + String.fromCharCode( high + 0x10000 ) : + // Supplemental Plane codepoint (surrogate pair) + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }, + + // CSS string/identifier serialization + // https://drafts.csswg.org/cssom/#common-serializing-idioms + rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g, + fcssescape = function( ch, asCodePoint ) { + if ( asCodePoint ) { + + // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER + if ( ch === "\0" ) { + return "\uFFFD"; + } + + // Control characters and (dependent upon position) numbers get escaped as code points + return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; + } + + // Other potentially-special ASCII characters get backslash-escaped + return "\\" + ch; + }, + + // Used for iframes + // See setDocument() + // Removing the function wrapper causes a "Permission Denied" + // error in IE + unloadHandler = function() { + setDocument(); + }, + + disabledAncestor = addCombinator( + function( elem ) { + return elem.disabled === true; + }, + { dir: "parentNode", next: "legend" } + ); + +// Optimize for push.apply( _, NodeList ) +try { + push.apply( + (arr = slice.call( preferredDoc.childNodes )), + preferredDoc.childNodes + ); + // Support: Android<4.0 + // Detect silently failing push.apply + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { apply: arr.length ? + + // Leverage slice if possible + function( target, els ) { + push_native.apply( target, slice.call(els) ); + } : + + // Support: IE<9 + // Otherwise append directly + function( target, els ) { + var j = target.length, + i = 0; + // Can't trust NodeList.length + while ( (target[j++] = els[i++]) ) {} + target.length = j - 1; + } + }; +} + +function Sizzle( selector, context, results, seed ) { + var m, i, elem, nid, match, groups, newSelector, + newContext = context && context.ownerDocument, + + // nodeType defaults to 9, since context defaults to document + nodeType = context ? context.nodeType : 9; + + results = results || []; + + // Return early from calls with invalid selector or context + if ( typeof selector !== "string" || !selector || + nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { + + return results; + } + + // Try to shortcut find operations (as opposed to filters) in HTML documents + if ( !seed ) { + + if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { + setDocument( context ); + } + context = context || document; + + if ( documentIsHTML ) { + + // If the selector is sufficiently simple, try using a "get*By*" DOM method + // (excepting DocumentFragment context, where the methods don't exist) + if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) { + + // ID selector + if ( (m = match[1]) ) { + + // Document context + if ( nodeType === 9 ) { + if ( (elem = context.getElementById( m )) ) { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + + // Element context + } else { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( newContext && (elem = newContext.getElementById( m )) && + contains( context, elem ) && + elem.id === m ) { + + results.push( elem ); + return results; + } + } + + // Type selector + } else if ( match[2] ) { + push.apply( results, context.getElementsByTagName( selector ) ); + return results; + + // Class selector + } else if ( (m = match[3]) && support.getElementsByClassName && + context.getElementsByClassName ) { + + push.apply( results, context.getElementsByClassName( m ) ); + return results; + } + } + + // Take advantage of querySelectorAll + if ( support.qsa && + !compilerCache[ selector + " " ] && + (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { + + if ( nodeType !== 1 ) { + newContext = context; + newSelector = selector; + + // qSA looks outside Element context, which is not what we want + // Thanks to Andrew Dupont for this workaround technique + // Support: IE <=8 + // Exclude object elements + } else if ( context.nodeName.toLowerCase() !== "object" ) { + + // Capture the context ID, setting it first if necessary + if ( (nid = context.getAttribute( "id" )) ) { + nid = nid.replace( rcssescape, fcssescape ); + } else { + context.setAttribute( "id", (nid = expando) ); + } + + // Prefix every selector in the list + groups = tokenize( selector ); + i = groups.length; + while ( i-- ) { + groups[i] = "#" + nid + " " + toSelector( groups[i] ); + } + newSelector = groups.join( "," ); + + // Expand context for sibling selectors + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || + context; + } + + if ( newSelector ) { + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch ( qsaError ) { + } finally { + if ( nid === expando ) { + context.removeAttribute( "id" ); + } + } + } + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); +} + +/** + * Create key-value caches of limited size + * @returns {function(string, object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var keys = []; + + function cache( key, value ) { + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key + " " ) > Expr.cacheLength ) { + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return (cache[ key + " " ] = value); + } + return cache; +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created element and returns a boolean result + */ +function assert( fn ) { + var el = document.createElement("fieldset"); + + try { + return !!fn( el ); + } catch (e) { + return false; + } finally { + // Remove from its parent by default + if ( el.parentNode ) { + el.parentNode.removeChild( el ); + } + // release memory in IE + el = null; + } +} + +/** + * Adds the same handler for all of the specified attrs + * @param {String} attrs Pipe-separated list of attributes + * @param {Function} handler The method that will be applied + */ +function addHandle( attrs, handler ) { + var arr = attrs.split("|"), + i = arr.length; + + while ( i-- ) { + Expr.attrHandle[ arr[i] ] = handler; + } +} + +/** + * Checks document order of two siblings + * @param {Element} a + * @param {Element} b + * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b + */ +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && a.nodeType === 1 && b.nodeType === 1 && + a.sourceIndex - b.sourceIndex; + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( (cur = cur.nextSibling) ) { + if ( cur === b ) { + return -1; + } + } + } + + return a ? 1 : -1; +} + +/** + * Returns a function to use in pseudos for input types + * @param {String} type + */ +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for buttons + * @param {String} type + */ +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for :enabled/:disabled + * @param {Boolean} disabled true for :disabled; false for :enabled + */ +function createDisabledPseudo( disabled ) { + // Known :disabled false positives: + // IE: *[disabled]:not(button, input, select, textarea, optgroup, option, menuitem, fieldset) + // not IE: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable + return function( elem ) { + + // Check form elements and option elements for explicit disabling + return "label" in elem && elem.disabled === disabled || + "form" in elem && elem.disabled === disabled || + + // Check non-disabled form elements for fieldset[disabled] ancestors + "form" in elem && elem.disabled === false && ( + // Support: IE6-11+ + // Ancestry is covered for us + elem.isDisabled === disabled || + + // Otherwise, assume any non-