diff --git a/2.2.2/.buildinfo b/2.2.2/.buildinfo
new file mode 100644
index 0000000..5a1aa77
--- /dev/null
+++ b/2.2.2/.buildinfo
@@ -0,0 +1,4 @@
+# Sphinx build info version 1
+# This file records the configuration used when building these files. When it is not found, a full rebuild will be done.
+config: b7d7f1b29d670bfaabeb3dbef2e0fc5c
+tags: 645f666f9bcd5a90fca523b33c5a78b7
diff --git a/2.2.2/CHANGELOG.html b/2.2.2/CHANGELOG.html
new file mode 100644
index 0000000..e809f2e
--- /dev/null
+++ b/2.2.2/CHANGELOG.html
@@ -0,0 +1,512 @@
+
+
+
+
+
This release brings some new features and enables compatibility with ansible-core-2.19.
+The inventory now tries to lookup winrm services for Windows hosts if enabled.
+The unset_ansible_port option was added to the inventory. It allows to control if the value of ansible_port should be unset if no non-default value was found.
+The hidden_fields argument was added to kubevirt_vm and kubevirt_{vm,vmi}_info which allows to hide and ignore certain fields in the returned definition of a VM or VMI.
+If no namespaces were configured the inventory now tries to use OCP Projects if available.
+It is now possible to switch between running and run_strategy with kubevirt_vm.
+This is a maintenance release with no functional changes compared to version 2.2.0. Only the changelog was fixed.
The deprecation of the ‘connections’ parameter is continued by dropping support for multiple connections. Inventory configurations with a single connection remain working for now. This backwards compatibility will be dropped in version 3.0.0 of the collection.
+Inventory source caching is now working and allows to reduce the load on the control plane of a cluster from which an inventory is built.
The content of this collection is made by people like you, a community of individuals collaborating on making the world better through developing automation software.
+
We are actively accepting new contributors.
+
Any kind of contribution is very welcome.
+
You don’t know how to start? Refer to our contribution guide!
+
+
+
+
\ No newline at end of file
diff --git a/2.2.2/_sources/CHANGELOG.rst.txt b/2.2.2/_sources/CHANGELOG.rst.txt
new file mode 100644
index 0000000..b5d3b25
--- /dev/null
+++ b/2.2.2/_sources/CHANGELOG.rst.txt
@@ -0,0 +1,220 @@
+=============================================
+KubeVirt Collection for Ansible Release Notes
+=============================================
+
+.. contents:: Topics
+
+This changelog describes changes after version 1.0.0.
+
+v2.2.2
+======
+
+Release Summary
+---------------
+
+This is a maintenance release to trigger a rebuild. No functional changes.
+
+v2.2.1
+======
+
+Release Summary
+---------------
+
+This release brings some new features and enables compatibility with ansible-core-2.19.
+The inventory now tries to lookup winrm services for Windows hosts if enabled.
+The unset_ansible_port option was added to the inventory. It allows to control if the value of ansible_port should be unset if no non-default value was found.
+The hidden_fields argument was added to kubevirt_vm and kubevirt_{vm,vmi}_info which allows to hide and ignore certain fields in the returned definition of a VM or VMI.
+If no namespaces were configured the inventory now tries to use OCP Projects if available.
+It is now possible to switch between running and run_strategy with kubevirt_vm.
+This is a maintenance release with no functional changes compared to version 2.2.0. Only the changelog was fixed.
+
+Minor Changes
+-------------
+
+- chore: Bump supported python and ansible-core versions `#176 `_
+- feat(inventory): Add unset_ansible_port option `#173 `_
+- feat(inventory): Lookup winrm services for Windows hosts `#171 `_
+- feat(inventory): Use OCP projects if available `#179 `_
+- feat(modules): Add hidden_fields argument `#178 `_
+- fix(kubevirt_vm): Allow switching between running and run_strategy `#180 `_
+- fix: Ensure compatibility with ansible-core >= 2.19 `#175 `_
+
+v2.2.0
+======
+
+Release Summary
+---------------
+
+This release brings some new features and enables compatibility with ansible-core-2.19.
+
+v2.1.0
+======
+
+Release Summary
+---------------
+
+The kubevirt_vmi_info module was added to this collection.
+
+Minor Changes
+-------------
+
+- Run integration tests in random namespaces `#130 `_
+- feat: Add kubevirt_vmi_info module `#129 `_
+
+v2.0.0
+======
+
+Release Summary
+---------------
+
+The deprecation of the 'connections' parameter is continued by dropping support for multiple connections. Inventory configurations with a single connection remain working for now. This backwards compatibility will be dropped in version 3.0.0 of the collection.
+Inventory source caching is now working and allows to reduce the load on the control plane of a cluster from which an inventory is built.
+
+Minor Changes
+-------------
+
+- Several small cleanups `#122 `_
+- feat(kubevirt_vm): Add support for RunStrategy `#124 `_
+
+Breaking Changes / Porting Guide
+--------------------------------
+
+- chore: Bump version to 2.0.0 `#125 `_
+- cleanup(inventory): Drop support for multiple connections `#117 `_
+
+Bugfixes
+--------
+
+- fix(inventory): Fix inventory source caching `#119 `_
+
+v1.5.0
+======
+
+Release Summary
+---------------
+
+Support for stopped VMs, deprecation of the 'connections' parameter and many cleanups.
+
+Major Changes
+-------------
+
+- chore: Update supported ansible-core versions to >=2.15 `#105 `_
+- feat,test(inventory): Support listing stopped VMs and major rework of unit tests `#114 `_
+
+Minor Changes
+-------------
+
+- Bump e2e software versions `#109 `_
+- Make kubevirt_vm tests more robust `#103 `_
+- Several minor improvements `#115 `_
+- chore: Ensure compatibility with kubernetes.core >=3.1.0,<6.0.0 `#111 `_
+- kubevirt_vm integration tests: changed ssh key type to RSA for FIPS mode `#108 `_
+
+Bugfixes
+--------
+
+- fix(tests,kubevirt_vm): Fix assertion in verify.yml `#106 `_
+
+v1.4.0
+======
+
+Release Summary
+---------------
+
+Compatibility with kubernetes.core >=3.1.0,<4.1.0 and some minor enhancements.
+
+Minor Changes
+-------------
+
+- Provide links for docsite and improve docs by adding markup `#95 `_
+- cleanup: Cleanup YAML passed to k8s module `#88 `_
+- docs: Use proper type for connections parameter `#90 `_
+- feat(kubevirt_vm_info): Set wait_condition based on running `#91 `_
+
+Bugfixes
+--------
+
+- fix(kubevirt_vm): Set wait_condition based on running `#89 `_
+- fix: Ensure compatibility with kubernetes.core >=3.10,<4.1.0 `#100 `_
+
+v1.3.2
+======
+
+Release Summary
+---------------
+
+No functional changes, hotfix release to retrigger the downstream build and to keep in sync with Ansible Automation Hub.
+
+v1.3.1
+======
+
+Release Summary
+---------------
+
+No functional changes, only updates to the shipped documentation.
+
+v1.3.0
+======
+
+Minor Changes
+-------------
+
+- feat: Add append_base_domain option to connections `#72 `_
+- feat: Give secondary interfaces a higher priority over services `#76 `_
+
+Bugfixes
+--------
+
+- feat: Set ansible_connection to winrm for Windows hosts `#75 `_
+- fix: Explicity set ansible_port `#70 `_
+- fix: Return early to avoid adding empty groups. `#73 `_
+
+v1.2.3
+======
+
+Release Summary
+---------------
+
+No functional changes, hotfix release to retrigger the downstream build and to keep in sync with Ansible Automation Hub.
+
+v1.2.2
+======
+
+Release Summary
+---------------
+
+No functional changes, only cleanup of files included in the release tarball and vendoring of documentation fragments.
+
+v1.2.1
+======
+
+Release Summary
+---------------
+
+Mostly code cleanups and dependency updates to ensure compatibility with KubeVirt >= 1.1.0
+
+v1.2.0
+======
+
+Release Summary
+---------------
+
+Not released due to issues in the release process
+
+v1.1.0
+======
+
+Minor Changes
+-------------
+
+- Add kubevirt_vm_info module to describe existing VirtualMachines
+- inventory: Allow to control creation of additional groups
+- inventory: Drop creation of the namespace_vmis_group as it is redundant
+
+v1.0.0
+======
+
+Release Summary
+---------------
+
+Initial release
diff --git a/2.2.2/_sources/CONTRIBUTING.md.txt b/2.2.2/_sources/CONTRIBUTING.md.txt
new file mode 100644
index 0000000..0676146
--- /dev/null
+++ b/2.2.2/_sources/CONTRIBUTING.md.txt
@@ -0,0 +1,3 @@
+# Contributing
+
+Refer to the [KubeVirt Contributing guidelines](https://github.com/kubevirt/kubevirt/blob/main/CONTRIBUTING.md).
diff --git a/2.2.2/_sources/README.md.txt b/2.2.2/_sources/README.md.txt
new file mode 100644
index 0000000..22102f6
--- /dev/null
+++ b/2.2.2/_sources/README.md.txt
@@ -0,0 +1,117 @@
+# Lean Ansible bindings for KubeVirt
+
+[](https://github.com/kubevirt/kubevirt.core/actions)
+
+
+This repository hosts the `kubevirt.core` Ansible Collection, which provides virtual machine operations and an inventory source for use with Ansible.
+
+
+## Ansible and Python version compatibility
+
+This collection has been tested against Ansible versions **>=2.16,<=2.19** and Python versions **>=3.10,<=3.13**.
+
+See the [Ansible core support matrix](https://docs.ansible.com/ansible/latest/reference_appendices/release_and_maintenance.html#ansible-core-support-matrix) for supported combinations.
+
+
+## Included content
+
+### Plugins
+
+* `kubevirt`: Inventory source for KubeVirt VirtualMachines
+* `kubevirt_vm`: Create or delete KubeVirt VirtualMachines
+* `kubevirt_vm_info`: Describe KubeVirt VirtualMachines
+* `kubevirt_vmi_info`: Describe KubeVirt VirtualMachineInstances
+
+## Using this collection
+
+
+### Installing the Collection from Ansible Galaxy
+
+Before using this collection, you need to install it with the Ansible Galaxy command-line tool:
+```bash
+ansible-galaxy collection install kubevirt.core
+```
+
+
+### Build and install locally
+
+Clone the repository, checkout the tag you want to build, or pick the main branch for the development version; then:
+```bash
+ansible-galaxy collection build .
+ansible-galaxy collection install kubevirt-kubevirt.core-*.tar.gz
+```
+
+### Dependencies
+
+
+#### Ansible collections
+
+* [kubernetes.core](https://galaxy.ansible.com/ui/repo/published/kubernetes/core)>=5.2.0,<6.0.0
+
+To install all the dependencies:
+```bash
+ansible-galaxy collection install -r requirements.yml
+```
+
+
+#### Python libraries
+
+- jsonpatch
+- kubernetes>=28.1.0
+- PyYAML>=3.11
+
+To install all the dependencies:
+```bash
+pip install -r requirements.txt
+```
+
+See [Ansible Using collections](https://docs.ansible.com/ansible/devel/user_guide/collections_using.html) for more details.
+
+
+## Code of Conduct
+
+We follow the [KubeVirt Code of Conduct](https://github.com/kubevirt/kubevirt/blob/main/CODE_OF_CONDUCT.md).
+
+## Contributing to this collection
+
+The content of this collection is made by people like you, a community of individuals collaborating on making the world better through developing automation software.
+
+We are actively accepting new contributors.
+
+Any kind of contribution is very welcome.
+
+You don't know how to start? Refer to our [contribution guide](CONTRIBUTING.md)!
+
+We use the following guidelines:
+
+* [CONTRIBUTING.md](CONTRIBUTING.md)
+* [REVIEW_CHECKLIST.md](REVIEW_CHECKLIST.md)
+* [Ansible Community Guide](https://docs.ansible.com/ansible/latest/community/index.html)
+* [Ansible Development Guide](https://docs.ansible.com/ansible/devel/dev_guide/index.html)
+* [Ansible Collection Development Guide](https://docs.ansible.com/ansible/devel/dev_guide/developing_collections.html#contributing-to-collections)
+
+## Collection maintenance
+
+The current maintainers are listed in the [OWNERS](OWNERS) file. If you have questions or need help, feel free to mention them in the proposals.
+
+To learn how to maintain / become a maintainer of this collection, refer to the [Maintainer guidelines](https://docs.ansible.com/ansible/devel/community/maintainers.html).
+
+## Release policy
+
+The release policy of the collection can be found at [docs/releasing.md](docs/releasing.md).
+
+## Governance
+
+The process of decision making in this collection is based on discussing and finding consensus among participants.
+
+Every voice is important. If you have something on your mind, create an issue or dedicated discussion and let's discuss it!
+
+
+
+
+
+## Licensing
+
+Apache License 2.0
+
+See [LICENSE](./LICENSE) to see the full text.
diff --git a/2.2.2/_sources/developing.md.txt b/2.2.2/_sources/developing.md.txt
new file mode 100644
index 0000000..0434ed6
--- /dev/null
+++ b/2.2.2/_sources/developing.md.txt
@@ -0,0 +1,34 @@
+## Contributor's Guidelines
+
+- All YAML files named with `.yml` extension
+- Use spaces around jinja variables. `{{ var }}` over `{{var}}`
+- Variables that are internal to the role should be lowercase and start with the role name
+- Keep roles self contained - Roles should avoid including tasks from other roles when possible
+- Plays should do nothing more than include a list of roles except where `pre_tasks` and `post_tasks` are required when possible
+- Separators - Use valid name, ie. underscores (e.g. `my_role` `my_playbook`) not dashes (`my-role`)
+- Paths - When defining paths, do not include trailing slashes (e.g. `my_path: /foo` not `my_path: /foo/`). When concatenating paths, follow the same convention (e.g. `{{ my_path }}/bar` not `{{ my_path }}bar`)
+- Indentation - Use 2 spaces for each indent
+- `vars/` vs `defaults/` - internal or interpolated variables that don't need to change or be overridden by user go in `vars/`, those that a user would likely override, go under `defaults/` directory
+- All arguments have a specification in `meta/argument_specs.yml`
+- All playbooks/roles should be focused on compatibility with Ansible Automation Platform
+
+## Development environment
+
+To develop and to run tests you need to install `tox` and `tox-ansible` on
+your machine.
+
+```
+pip install --user tox tox-ansible
+```
+
+### Virtualenv for development
+
+To build a virtualenv for development purposes run the following command:
+
+```
+make build-venv
+```
+
+The resulting virtualenv will be symlinked to `.venv`, which for example can
+be selected as virtualenv in VSCode (`Shift+Ctrl+P` and then
+`Python: Select Interpreter`).
diff --git a/2.2.2/_sources/index.rst.txt b/2.2.2/_sources/index.rst.txt
new file mode 100644
index 0000000..2d9da6d
--- /dev/null
+++ b/2.2.2/_sources/index.rst.txt
@@ -0,0 +1,26 @@
+.. Red Hat kubevirt.core Ansible Collection documentation main file
+
+Welcome to kubevirt.core Collection documentation
+=================================================
+
+.. toctree::
+ :maxdepth: 2
+ :caption: User documentation
+
+ README
+ plugins/index
+ roles/index
+
+.. toctree::
+ :maxdepth: 2
+ :caption: Developer documentation
+
+ testing
+ developing
+ releasing
+
+.. toctree::
+ :maxdepth: 2
+ :caption: General
+
+ Changelog
diff --git a/2.2.2/_sources/plugins/index.rst.txt b/2.2.2/_sources/plugins/index.rst.txt
new file mode 100644
index 0000000..3f7272e
--- /dev/null
+++ b/2.2.2/_sources/plugins/index.rst.txt
@@ -0,0 +1,17 @@
+Plugin Index
+============
+
+.. toctree::
+ :caption: inventory plugins
+ :maxdepth: 0
+
+ kubevirt
+
+.. toctree::
+ :caption: modules plugins
+ :maxdepth: 0
+
+ kubevirt_vm
+ kubevirt_vm_info
+ kubevirt_vmi_info
+
diff --git a/2.2.2/_sources/plugins/kubevirt.rst.txt b/2.2.2/_sources/plugins/kubevirt.rst.txt
new file mode 100644
index 0000000..5f85b7d
--- /dev/null
+++ b/2.2.2/_sources/plugins/kubevirt.rst.txt
@@ -0,0 +1,1121 @@
+.. Document meta
+
+:orphan:
+
+.. |antsibull-internal-nbsp| unicode:: 0xA0
+ :trim:
+
+.. meta::
+ :antsibull-docs: 2.16.3
+
+.. Anchors
+
+.. _ansible_collections.kubevirt.core.kubevirt_inventory:
+
+.. Anchors: short name for ansible.builtin
+
+.. Title
+
+kubevirt -- Inventory source for KubeVirt VirtualMachines and VirtualMachineInstances
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+.. Collection note
+
+.. note::
+ This inventory plugin is part of the `kubevirt.core collection `_.
+
+ It is not included in ``ansible-core``.
+ To check whether it is installed, run :code:`ansible-galaxy collection list`.
+
+ To install it, use: :code:`ansible-galaxy collection install kubevirt.core`.
+ You need further requirements to be able to use this inventory plugin,
+ see :ref:`Requirements ` for details.
+
+ To use it in a playbook, specify: :code:`kubevirt.core.kubevirt`.
+
+.. version_added
+
+
+.. contents::
+ :local:
+ :depth: 1
+
+.. Deprecated
+
+
+Synopsis
+--------
+
+.. Description
+
+- Fetch virtual machines from one or more namespaces with an optional label selector.
+- Groups by cluster name, namespaces and labels.
+- Uses :ansval:`\*.kubevirt.[yml\|yaml]` YAML configuration file to set parameter values.
+- By default it uses the active context in :emphasis:`~/.kube/config` and will return all virtual machines for all namespaces the active user is authorized to access.
+
+
+.. Aliases
+
+
+.. Requirements
+
+.. _ansible_collections.kubevirt.core.kubevirt_inventory_requirements:
+
+Requirements
+------------
+The below requirements are needed on the local controller node that executes this inventory.
+
+- python \>= 3.9
+- kubernetes \>= 28.1.0
+- PyYAML \>= 3.11
+
+
+
+
+
+
+.. Options
+
+Parameters
+----------
+
+.. raw:: html
+
+
+
+
+
Parameter
+
Comments
+
+
+
+
+
+
+
api_key
+
+
+ string
+
+
+
+
+
Token used to authenticate with the API.
+
Can also be specified via K8S_AUTH_API_KEY environment variable.
+
+
+
+
+
+
api_version
+
+
+ string
+
+
+
+
+
Specify the used KubeVirt API version.
+
Default:"kubevirt.io/v1"
+
+
+
+
+
+
append_base_domain
+
+
+ boolean
+
+
+
+
+
Append the base domain of the cluster to host names constructed from SSH Services of type NodePort.
+
Choices:
+
+
false← (default)
+
true
+
+
+
+
+
+
+
+
base_domain
+
+
+ string
+
+
+
+
+
Override the base domain used to construct host names. Used in case of kubesecondarydns or Services of type NodePort if append_base_domain is set.
+
+
+
+
+
+
+
ca_cert
+
+
aliases: ssl_ca_cert
+
+ path
+
+
+
+
+
Path to a CA certificate used to authenticate with the API. The full certificate chain must be provided to avoid certificate validation errors.
+
Can also be specified via K8S_AUTH_SSL_CA_CERT environment variable.
+
+
+
+
+
+
cache
+
+
+ boolean
+
+
+
+
+
Toggle to enable/disable the caching of the inventory's source data, requires a cache plugin setup to work.
+
Choices:
+
+
false← (default)
+
true
+
+
+
Configuration:
+
+
+
INI entry
+
[inventory]
+ cache = false
+
+
+
+
Environment variable: ANSIBLE_INVENTORY_CACHE
+
+
+
+
+
+
+
+
+
cache_connection
+
+
+ string
+
+
+
+
+
Cache connection data or path, read cache plugin documentation for specifics.
Path to a certificate used to authenticate with the API.
+
Can also be specified via K8S_AUTH_CERT_FILE environment variable.
+
+
+
+
+
+
+
client_key
+
+
aliases: key_file
+
+ path
+
+
+
+
+
Path to a key file used to authenticate with the API.
+
Can also be specified via K8S_AUTH_KEY_FILE environment variable.
+
+
+
+
+
+
compose
+
+
+ dictionary
+
+
+
+
+
Create vars from jinja2 expressions.
+
Default:{}
+
+
+
+
+
+
connections
+
+
+ string
+
+
+
+
+
Optional list of cluster connection settings.
+
This parameter is deprecated. Split your connections into multiple configuration files and move parameters of each connection to the configuration top level.
+
Deprecated in version 1.5.0, will be removed in version 3.0.0.
+
+
+
+
+
+
context
+
+
+ string
+
+
+
+
+
The name of a context found in the config file.
+
Can also be specified via K8S_AUTH_CONTEXT environment variable.
+
+
+
+
+
+
create_groups
+
+
+ boolean
+
+
+
+
+
Enable the creation of groups from labels on VirtualMachines and VirtualMachineInstances.
+
Choices:
+
+
false← (default)
+
true
+
+
+
+
+
+
+
+
groups
+
+
+ dictionary
+
+
+
+
+
Add hosts to group based on Jinja2 conditionals.
+
Default:{}
+
+
+
+
+
+
host
+
+
+ string
+
+
+
+
+
Provide a URL for accessing the API.
+
Can also be specified via K8S_AUTH_HOST environment variable.
+
+
+
+
+
+
host_format
+
+
+ string
+
+
+
+
+
Specify the format of the host in the inventory group. Available specifiers: name, namespace and uid.
+
Default:"{namespace}-{name}"
+
+
+
+
+
+
impersonate_groups
+
+
+ list
+ / elements=string
+
+
+
+
+
Group(s) to impersonate for the operation.
+
Can also be specified via K8S_AUTH_IMPERSONATE_GROUPS environment variable, e.g. Group1,Group2.
+
+
+
+
+
+
impersonate_user
+
+
+ string
+
+
+
+
+
Username to impersonate for the operation.
+
Can also be specified via K8S_AUTH_IMPERSONATE_USER environment variable.
+
+
+
+
+
+
keyed_groups
+
+
+ list
+ / elements=dictionary
+
+
+
+
+
Add hosts to group based on the values of a variable.
+
Default:[]
+
+
+
+
+
+
default_value
+
+
+ string
+
+
added in ansible-core 2.12
+
+
+
+
The default value when the host variable's value is an empty string.
Enable kubesecondarydns derived host names when using a secondary network interface.
+
Choices:
+
+
false← (default)
+
true
+
+
+
+
+
+
+
+
kubeconfig
+
+
+ any
+
+
+
+
+
Path to an existing Kubernetes config file. If not provided, and no other connection options are provided, the Kubernetes client will attempt to load the default configuration file from ~/.kube/config.
+
Can also be specified via K8S_AUTH_KUBECONFIG environment variable.
+
Multiple Kubernetes config file can be provided using separator ; for Windows platform or : for others platforms.
+
The kubernetes configuration can be provided as dictionary. This feature requires a python kubernetes client version >= 17.17.0.
+
+
+
+
+
+
label_selector
+
+
+ string
+
+
+
+
+
Define a label selector to select a subset of the fetched virtual machines.
By default, a keyed group that does not have a prefix or a separator provided will have a name that starts with an underscore.
+
This is because the default prefix is "" and the default separator is "_".
+
Set this option to false to omit the leading underscore (or other separator) if no prefix is given.
+
If the group name is derived from a mapping the separator is still used to concatenate the items.
+
To not use a separator in the group name at all, set the separator for the keyed group to an empty string instead.
+
Choices:
+
+
false
+
true← (default)
+
+
+
+
+
+
+
+
name
+
+
+ string
+
+
+
+
+
Optional name to assign to the cluster. If not provided, a name is constructed from the server and port.
+
+
+
+
+
+
namespaces
+
+
+ string
+
+
+
+
+
List of namespaces. If not specified, will fetch virtual machines from all namespaces the user is authorized to access.
+
+
+
+
+
+
+
network_name
+
+
aliases: interface_name
+
+ string
+
+
+
+
+
In case multiple networks are attached to a virtual machine, define which interface should be returned as primary IP address.
+
+
+
+
+
+
no_proxy
+
+
+ string
+
+
+
+
+
The comma separated list of hosts/domains/IP/CIDR that shouldn't go through proxy.
+
Can also be specified via K8S_AUTH_NO_PROXY environment variable.
+
Please note that this module does not pick up typical proxy settings from the environment (e.g. NO_PROXY).
+
This feature requires kubernetes>=19.15.0. When kubernetes library is less than 19.15.0, it fails even no_proxy set in correct.
+
Example value is localhost,.local,.example.com,127.0.0.1,127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16.
+
+
+
+
+
+
password
+
+
+ string
+
+
+
+
+
Provide a password for authenticating with the API.
+
Can also be specified via K8S_AUTH_PASSWORD environment variable.
+
Please read the description of the username option for a discussion of when this option is applicable.
+
+
+
+
+
+
persist_config
+
+
+ boolean
+
+
+
+
+
Whether or not to save the kube config refresh tokens.
+
Can also be specified via K8S_AUTH_PERSIST_CONFIG environment variable.
+
When the k8s context is using a user credentials with refresh tokens (like oidc or gke/gcloud auth), the token is refreshed by the k8s python client library but not saved by default. So the old refresh token can expire and the next auth might fail. Setting this flag to true will tell the k8s python client to save the new refresh token to the kube config file.
Enable the use of Services to establish an SSH connection to a virtual machine.
+
Services are only used if no network_name was provided.
+
Choices:
+
+
false
+
true← (default)
+
+
+
+
+
+
+
+
username
+
+
+ string
+
+
+
+
+
Provide a username for authenticating with the API.
+
Can also be specified via K8S_AUTH_USERNAME environment variable.
+
+
+
+
+
+
+
validate_certs
+
+
aliases: verify_ssl
+
+ boolean
+
+
+
+
+
Whether or not to verify the API server's SSL certificates.
+
Can also be specified via K8S_AUTH_VERIFY_SSL environment variable.
+
Choices:
+
+
false
+
true
+
+
+
+
+
+
+
+
+
+.. Attributes
+
+
+.. Notes
+
+Notes
+-----
+
+.. note::
+ - To avoid SSL certificate validation errors when :ansopt:`kubevirt.core.kubevirt#inventory:validate\_certs=yes`\ , the full certificate chain for the API server must be provided via :ansopt:`kubevirt.core.kubevirt#inventory:ca\_cert` or in the :ansopt:`kubevirt.core.kubevirt#inventory:kubeconfig` file.
+
+.. Seealso
+
+
+.. Examples
+
+Examples
+--------
+
+.. code-block:: yaml+jinja
+
+ # Filename must end with kubevirt.[yml|yaml]
+
+ # Authenticate with token and return all virtual machines from all accessible namespaces
+ - plugin: kubevirt.core.kubevirt
+ host: https://192.168.64.4:8443
+ api_key: xxxxxxxxxxxxxxxx
+ validate_certs: false
+
+ # Use default ~/.kube/config and return virtual machines from namespace testing connected to network bridge-network
+ - plugin: kubevirt.core.kubevirt
+ namespaces:
+ - testing
+ network_name: bridge-network
+
+ # Use default ~/.kube/config and return virtual machines from namespace testing with label app=test
+ - plugin: kubevirt.core.kubevirt
+ namespaces:
+ - testing
+ label_selector: app=test
+
+ # Use a custom config file and a specific context
+ - plugin: kubevirt.core.kubevirt
+ kubeconfig: /path/to/config
+ context: 'awx/192-168-64-4:8443/developer'
+
+
+
+.. Facts
+
+
+.. Return values
+
+
+.. Status (Presently only deprecated)
+
+
+.. Authors
+
+Authors
+~~~~~~~
+
+- KubeVirt.io Project
+
+
+.. hint::
+ Configuration entries for each entry type have a low to high priority order. For example, a variable that is lower in the list will override a variable that is higher up.
+
+.. Extra links
+
+
+.. Parsing errors
diff --git a/2.2.2/_sources/plugins/kubevirt_vm.rst.txt b/2.2.2/_sources/plugins/kubevirt_vm.rst.txt
new file mode 100644
index 0000000..db71a4c
--- /dev/null
+++ b/2.2.2/_sources/plugins/kubevirt_vm.rst.txt
@@ -0,0 +1,969 @@
+.. Document meta
+
+:orphan:
+
+.. |antsibull-internal-nbsp| unicode:: 0xA0
+ :trim:
+
+.. meta::
+ :antsibull-docs: 2.16.3
+
+.. Anchors
+
+.. _ansible_collections.kubevirt.core.kubevirt_vm_module:
+
+.. Anchors: short name for ansible.builtin
+
+.. Title
+
+kubevirt_vm -- Create or delete KubeVirt VirtualMachines
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+.. Collection note
+
+.. note::
+ This module is part of the `kubevirt.core collection `_.
+
+ It is not included in ``ansible-core``.
+ To check whether it is installed, run :code:`ansible-galaxy collection list`.
+
+ To install it, use: :code:`ansible-galaxy collection install kubevirt.core`.
+ You need further requirements to be able to use this module,
+ see :ref:`Requirements ` for details.
+
+ To use it in a playbook, specify: :code:`kubevirt.core.kubevirt_vm`.
+
+.. version_added
+
+
+.. contents::
+ :local:
+ :depth: 1
+
+.. Deprecated
+
+
+Synopsis
+--------
+
+.. Description
+
+- Use the Kubernetes Python client to perform create or delete operations on KubeVirt VirtualMachines.
+- Pass options to create the VirtualMachine as module arguments.
+- Authenticate using either a config file, certificates, password or token.
+- Supports check mode.
+
+
+.. Aliases
+
+
+.. Requirements
+
+.. _ansible_collections.kubevirt.core.kubevirt_vm_module_requirements:
+
+Requirements
+------------
+The below requirements are needed on the host that executes this module.
+
+- python \>= 3.9
+- kubernetes \>= 28.1.0
+- PyYAML \>= 3.11
+- jsonpatch
+
+
+
+
+
+
+.. Options
+
+Parameters
+----------
+
+.. raw:: html
+
+
Path to an existing Kubernetes config file. If not provided, and no other connection options are provided, the Kubernetes client will attempt to load the default configuration file from ~/.kube/config.
+
Can also be specified via K8S_AUTH_KUBECONFIG environment variable.
+
Multiple Kubernetes config file can be provided using separator ; for Windows platform or : for others platforms.
+
The kubernetes configuration can be provided as dictionary. This feature requires a python kubernetes client version >= 17.17.0.
+
+
+
+
+
+
labels
+
+
+ dictionary
+
+
+
+
Specify labels to set on the VirtualMachine.
+
+
+
+
+
+
name
+
+
+ string
+
+
+
+
Specify the name of the VirtualMachine.
+
This option is ignored when state=present is not set.
The comma separated list of hosts/domains/IP/CIDR that shouldn't go through proxy.
+
Can also be specified via K8S_AUTH_NO_PROXY environment variable.
+
Please note that this module does not pick up typical proxy settings from the environment (e.g. NO_PROXY).
+
This feature requires kubernetes>=19.15.0. When kubernetes library is less than 19.15.0, it fails even no_proxy set in correct.
+
Example value is localhost,.local,.example.com,127.0.0.1,127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16.
+
+
+
+
+
+
password
+
+
+ string
+
+
+
+
Provide a password for authenticating with the API.
+
Can also be specified via K8S_AUTH_PASSWORD environment variable.
+
Please read the description of the username option for a discussion of when this option is applicable.
+
+
+
+
+
+
persist_config
+
+
+ boolean
+
+
+
+
Whether or not to save the kube config refresh tokens.
+
Can also be specified via K8S_AUTH_PERSIST_CONFIG environment variable.
+
When the k8s context is using a user credentials with refresh tokens (like oidc or gke/gcloud auth), the token is refreshed by the k8s python client library but not saved by default. So the old refresh token can expire and the next auth might fail. Setting this flag to true will tell the k8s python client to save the new refresh token to the kube config file.
+
Disabled by default.
+
Choices:
+
+
false
+
true
+
+
+
+
+
+
+
+
preference
+
+
+ dictionary
+
+
+
+
Specify the Preference matcher of the VirtualMachine.
+
+
+
+.. Status (Presently only deprecated)
+
+
+.. Authors
+
+Authors
+~~~~~~~
+
+- KubeVirt.io Project
+
+
+
+.. Extra links
+
+
+.. Parsing errors
diff --git a/2.2.2/_sources/plugins/kubevirt_vm_info.rst.txt b/2.2.2/_sources/plugins/kubevirt_vm_info.rst.txt
new file mode 100644
index 0000000..dafa327
--- /dev/null
+++ b/2.2.2/_sources/plugins/kubevirt_vm_info.rst.txt
@@ -0,0 +1,748 @@
+.. Document meta
+
+:orphan:
+
+.. |antsibull-internal-nbsp| unicode:: 0xA0
+ :trim:
+
+.. meta::
+ :antsibull-docs: 2.16.3
+
+.. Anchors
+
+.. _ansible_collections.kubevirt.core.kubevirt_vm_info_module:
+
+.. Anchors: short name for ansible.builtin
+
+.. Title
+
+kubevirt_vm_info -- Describe KubeVirt VirtualMachines
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+.. Collection note
+
+.. note::
+ This module is part of the `kubevirt.core collection `_.
+
+ It is not included in ``ansible-core``.
+ To check whether it is installed, run :code:`ansible-galaxy collection list`.
+
+ To install it, use: :code:`ansible-galaxy collection install kubevirt.core`.
+ You need further requirements to be able to use this module,
+ see :ref:`Requirements ` for details.
+
+ To use it in a playbook, specify: :code:`kubevirt.core.kubevirt_vm_info`.
+
+.. version_added
+
+
+.. contents::
+ :local:
+ :depth: 1
+
+.. Deprecated
+
+
+Synopsis
+--------
+
+.. Description
+
+- Use the Kubernetes Python client to perform read operations on KubeVirt :literal:`VirtualMachines`.
+- Pass options to find :literal:`VirtualMachines` as module arguments.
+- Authenticate using either a config file, certificates, password or token.
+- Supports check mode.
+
+
+.. Aliases
+
+
+.. Requirements
+
+.. _ansible_collections.kubevirt.core.kubevirt_vm_info_module_requirements:
+
+Requirements
+------------
+The below requirements are needed on the host that executes this module.
+
+- python \>= 3.9
+- kubernetes \>= 28.1.0
+- PyYAML \>= 3.11
+
+
+
+
+
+
+.. Options
+
+Parameters
+----------
+
+.. raw:: html
+
+
+
+
+
Parameter
+
Comments
+
+
+
+
+
+
+
api_key
+
+
+ string
+
+
+
+
Token used to authenticate with the API.
+
Can also be specified via K8S_AUTH_API_KEY environment variable.
+
+
+
+
+
+
api_version
+
+
+ string
+
+
+
+
Use this to set the API version of KubeVirt.
+
Default:"kubevirt.io/v1"
+
+
+
+
+
+
+
ca_cert
+
+
aliases: ssl_ca_cert
+
+ path
+
+
+
+
Path to a CA certificate used to authenticate with the API. The full certificate chain must be provided to avoid certificate validation errors.
+
Can also be specified via K8S_AUTH_SSL_CA_CERT environment variable.
+
+
+
+
+
+
+
client_cert
+
+
aliases: cert_file
+
+ path
+
+
+
+
Path to a certificate used to authenticate with the API.
+
Can also be specified via K8S_AUTH_CERT_FILE environment variable.
+
+
+
+
+
+
+
client_key
+
+
aliases: key_file
+
+ path
+
+
+
+
Path to a key file used to authenticate with the API.
+
Can also be specified via K8S_AUTH_KEY_FILE environment variable.
+
+
+
+
+
+
context
+
+
+ string
+
+
+
+
The name of a context found in the config file.
+
Can also be specified via K8S_AUTH_CONTEXT environment variable.
Can also be specified via K8S_AUTH_HOST environment variable.
+
+
+
+
+
+
impersonate_groups
+
+
+ list
+ / elements=string
+
+
+
+
Group(s) to impersonate for the operation.
+
Can also be specified via K8S_AUTH_IMPERSONATE_GROUPS environment variable, e.g. Group1,Group2.
+
+
+
+
+
+
impersonate_user
+
+
+ string
+
+
+
+
Username to impersonate for the operation.
+
Can also be specified via K8S_AUTH_IMPERSONATE_USER environment variable.
+
+
+
+
+
+
kubeconfig
+
+
+ any
+
+
+
+
Path to an existing Kubernetes config file. If not provided, and no other connection options are provided, the Kubernetes client will attempt to load the default configuration file from ~/.kube/config.
+
Can also be specified via K8S_AUTH_KUBECONFIG environment variable.
+
Multiple Kubernetes config file can be provided using separator ; for Windows platform or : for others platforms.
+
The kubernetes configuration can be provided as dictionary. This feature requires a python kubernetes client version >= 17.17.0.
+
+
+
+
+
+
label_selectors
+
+
+ list
+ / elements=string
+
+
+
+
List of label selectors to use to filter results.
+
Default:[]
+
+
+
+
+
+
name
+
+
+ string
+
+
+
+
Specify the name of the VirtualMachine.
+
+
+
+
+
+
namespace
+
+
+ string
+
+
+
+
Specify the namespace of VirtualMachines.
+
+
+
+
+
+
no_proxy
+
+
+ string
+
+
+
+
The comma separated list of hosts/domains/IP/CIDR that shouldn't go through proxy.
+
Can also be specified via K8S_AUTH_NO_PROXY environment variable.
+
Please note that this module does not pick up typical proxy settings from the environment (e.g. NO_PROXY).
+
This feature requires kubernetes>=19.15.0. When kubernetes library is less than 19.15.0, it fails even no_proxy set in correct.
+
Example value is localhost,.local,.example.com,127.0.0.1,127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16.
+
+
+
+
+
+
password
+
+
+ string
+
+
+
+
Provide a password for authenticating with the API.
+
Can also be specified via K8S_AUTH_PASSWORD environment variable.
+
Please read the description of the username option for a discussion of when this option is applicable.
+
+
+
+
+
+
persist_config
+
+
+ boolean
+
+
+
+
Whether or not to save the kube config refresh tokens.
+
Can also be specified via K8S_AUTH_PERSIST_CONFIG environment variable.
+
When the k8s context is using a user credentials with refresh tokens (like oidc or gke/gcloud auth), the token is refreshed by the k8s python client library but not saved by default. So the old refresh token can expire and the next auth might fail. Setting this flag to true will tell the k8s python client to save the new refresh token to the kube config file.
+
Disabled by default.
+
Choices:
+
+
false
+
true
+
+
+
+
+
+
+
+
proxy
+
+
+ string
+
+
+
+
The URL of an HTTP proxy to use for the connection.
+
Can also be specified via K8S_AUTH_PROXY environment variable.
+
Please note that this module does not pick up typical proxy settings from the environment (e.g. HTTP_PROXY).
+
+
+
+.. Attributes
+
+
+.. Notes
+
+Notes
+-----
+
+.. note::
+ - To avoid SSL certificate validation errors when :ansopt:`kubevirt.core.kubevirt\_vm\_info#module:validate\_certs=yes`\ , the full certificate chain for the API server must be provided via :ansopt:`kubevirt.core.kubevirt\_vm\_info#module:ca\_cert` or in the :ansopt:`kubevirt.core.kubevirt\_vm\_info#module:kubeconfig` file.
+
+.. Seealso
+
+
+.. Examples
+
+Examples
+--------
+
+.. code-block:: yaml+jinja
+
+ - name: Get an existing VirtualMachine
+ kubevirt.core.kubevirt_vm_info:
+ name: testvm
+ namespace: default
+ register: default_testvm
+
+ - name: Get a list of all VirtualMachines
+ kubevirt.core.kubevirt_vm_info:
+ namespace: default
+ register: vm_list
+
+ - name: Get a list of all VirtualMachines from any namespace
+ kubevirt.core.kubevirt_vm_info:
+ register: vm_list
+
+ - name: Search for all VirtualMachines labelled app=test
+ kubevirt.core.kubevirt_vm_info:
+ label_selectors:
+ - app=test
+
+ - name: Wait until the VirtualMachine is running
+ kubevirt.core.kubevirt_vm_info:
+ name: testvm
+ namespace: default
+ wait: true
+
+ - name: Wait until the VirtualMachine is stopped
+ kubevirt.core.kubevirt_vm_info:
+ name: testvm
+ namespace: default
+ running: false
+ wait: true
+
+
+
+.. Facts
+
+
+.. Return values
+
+Return Values
+-------------
+Common return values are documented :ref:`here `, the following are the fields unique to this module:
+
+.. raw:: html
+
+
+
+
+
Key
+
Description
+
+
+
+
+
+
+
api_found
+
+
+ boolean
+
+
+
+
Whether the specified api_version and VirtualMachineKind were successfully mapped to an existing API on the target cluster.
+
Returned: always
+
+
+
+
+
+
resources
+
+
+ complex
+
+
+
+
The VirtualMachines that exist.
+
Returned: success
+
+
+
+
+
+
api_version
+
+
+ string
+
+
+
+
The versioned schema of this representation of an object.
+
Returned: success
+
+
+
+
+
+
kind
+
+
+ string
+
+
+
+
Represents the REST resource this object represents.
+
Returned: success
+
+
+
+
+
+
metadata
+
+
+ dictionary
+
+
+
+
Standard object metadata. Includes name, namespace, annotations, labels, etc.
+
Returned: success
+
+
+
+
+
+
spec
+
+
+ dictionary
+
+
+
+
Specific attributes of the VirtualMachine. Can vary based on the api_version.
+
Returned: success
+
+
+
+
+
+
status
+
+
+ dictionary
+
+
+
+
Current status details for the VirtualMachine.
+
Returned: success
+
+
+
+
+
+
+
+
+.. Status (Presently only deprecated)
+
+
+.. Authors
+
+Authors
+~~~~~~~
+
+- KubeVirt.io Project
+
+
+
+.. Extra links
+
+
+.. Parsing errors
diff --git a/2.2.2/_sources/plugins/kubevirt_vmi_info.rst.txt b/2.2.2/_sources/plugins/kubevirt_vmi_info.rst.txt
new file mode 100644
index 0000000..c773df5
--- /dev/null
+++ b/2.2.2/_sources/plugins/kubevirt_vmi_info.rst.txt
@@ -0,0 +1,718 @@
+.. Document meta
+
+:orphan:
+
+.. |antsibull-internal-nbsp| unicode:: 0xA0
+ :trim:
+
+.. meta::
+ :antsibull-docs: 2.16.3
+
+.. Anchors
+
+.. _ansible_collections.kubevirt.core.kubevirt_vmi_info_module:
+
+.. Anchors: short name for ansible.builtin
+
+.. Title
+
+kubevirt_vmi_info -- Describe KubeVirt VirtualMachineInstances
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+.. Collection note
+
+.. note::
+ This module is part of the `kubevirt.core collection `_.
+
+ It is not included in ``ansible-core``.
+ To check whether it is installed, run :code:`ansible-galaxy collection list`.
+
+ To install it, use: :code:`ansible-galaxy collection install kubevirt.core`.
+ You need further requirements to be able to use this module,
+ see :ref:`Requirements ` for details.
+
+ To use it in a playbook, specify: :code:`kubevirt.core.kubevirt_vmi_info`.
+
+.. version_added
+
+
+.. contents::
+ :local:
+ :depth: 1
+
+.. Deprecated
+
+
+Synopsis
+--------
+
+.. Description
+
+- Use the Kubernetes Python client to perform read operations on KubeVirt :literal:`VirtualMachineInstances`.
+- Pass options to find :literal:`VirtualMachineInstances` as module arguments.
+- Authenticate using either a config file, certificates, password or token.
+- Supports check mode.
+
+
+.. Aliases
+
+
+.. Requirements
+
+.. _ansible_collections.kubevirt.core.kubevirt_vmi_info_module_requirements:
+
+Requirements
+------------
+The below requirements are needed on the host that executes this module.
+
+- python \>= 3.9
+- kubernetes \>= 28.1.0
+- PyYAML \>= 3.11
+
+
+
+
+
+
+.. Options
+
+Parameters
+----------
+
+.. raw:: html
+
+
+
+
+
Parameter
+
Comments
+
+
+
+
+
+
+
api_key
+
+
+ string
+
+
+
+
Token used to authenticate with the API.
+
Can also be specified via K8S_AUTH_API_KEY environment variable.
+
+
+
+
+
+
api_version
+
+
+ string
+
+
+
+
Use this to set the API version of KubeVirt.
+
Default:"kubevirt.io/v1"
+
+
+
+
+
+
+
ca_cert
+
+
aliases: ssl_ca_cert
+
+ path
+
+
+
+
Path to a CA certificate used to authenticate with the API. The full certificate chain must be provided to avoid certificate validation errors.
+
Can also be specified via K8S_AUTH_SSL_CA_CERT environment variable.
+
+
+
+
+
+
+
client_cert
+
+
aliases: cert_file
+
+ path
+
+
+
+
Path to a certificate used to authenticate with the API.
+
Can also be specified via K8S_AUTH_CERT_FILE environment variable.
+
+
+
+
+
+
+
client_key
+
+
aliases: key_file
+
+ path
+
+
+
+
Path to a key file used to authenticate with the API.
+
Can also be specified via K8S_AUTH_KEY_FILE environment variable.
+
+
+
+
+
+
context
+
+
+ string
+
+
+
+
The name of a context found in the config file.
+
Can also be specified via K8S_AUTH_CONTEXT environment variable.
Can also be specified via K8S_AUTH_HOST environment variable.
+
+
+
+
+
+
impersonate_groups
+
+
+ list
+ / elements=string
+
+
+
+
Group(s) to impersonate for the operation.
+
Can also be specified via K8S_AUTH_IMPERSONATE_GROUPS environment variable, e.g. Group1,Group2.
+
+
+
+
+
+
impersonate_user
+
+
+ string
+
+
+
+
Username to impersonate for the operation.
+
Can also be specified via K8S_AUTH_IMPERSONATE_USER environment variable.
+
+
+
+
+
+
kubeconfig
+
+
+ any
+
+
+
+
Path to an existing Kubernetes config file. If not provided, and no other connection options are provided, the Kubernetes client will attempt to load the default configuration file from ~/.kube/config.
+
Can also be specified via K8S_AUTH_KUBECONFIG environment variable.
+
Multiple Kubernetes config file can be provided using separator ; for Windows platform or : for others platforms.
+
The kubernetes configuration can be provided as dictionary. This feature requires a python kubernetes client version >= 17.17.0.
+
+
+
+
+
+
label_selectors
+
+
+ list
+ / elements=string
+
+
+
+
List of label selectors to use to filter results.
+
Default:[]
+
+
+
+
+
+
name
+
+
+ string
+
+
+
+
Specify the name of the VirtualMachineInstance.
+
+
+
+
+
+
namespace
+
+
+ string
+
+
+
+
Specify the namespace of VirtualMachineInstances.
+
+
+
+
+
+
no_proxy
+
+
+ string
+
+
+
+
The comma separated list of hosts/domains/IP/CIDR that shouldn't go through proxy.
+
Can also be specified via K8S_AUTH_NO_PROXY environment variable.
+
Please note that this module does not pick up typical proxy settings from the environment (e.g. NO_PROXY).
+
This feature requires kubernetes>=19.15.0. When kubernetes library is less than 19.15.0, it fails even no_proxy set in correct.
+
Example value is localhost,.local,.example.com,127.0.0.1,127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16.
+
+
+
+
+
+
password
+
+
+ string
+
+
+
+
Provide a password for authenticating with the API.
+
Can also be specified via K8S_AUTH_PASSWORD environment variable.
+
Please read the description of the username option for a discussion of when this option is applicable.
+
+
+
+
+
+
persist_config
+
+
+ boolean
+
+
+
+
Whether or not to save the kube config refresh tokens.
+
Can also be specified via K8S_AUTH_PERSIST_CONFIG environment variable.
+
When the k8s context is using a user credentials with refresh tokens (like oidc or gke/gcloud auth), the token is refreshed by the k8s python client library but not saved by default. So the old refresh token can expire and the next auth might fail. Setting this flag to true will tell the k8s python client to save the new refresh token to the kube config file.
+
Disabled by default.
+
Choices:
+
+
false
+
true
+
+
+
+
+
+
+
+
proxy
+
+
+ string
+
+
+
+
The URL of an HTTP proxy to use for the connection.
+
Can also be specified via K8S_AUTH_PROXY environment variable.
+
Please note that this module does not pick up typical proxy settings from the environment (e.g. HTTP_PROXY).
+
+
+
+.. Attributes
+
+
+.. Notes
+
+Notes
+-----
+
+.. note::
+ - To avoid SSL certificate validation errors when :ansopt:`kubevirt.core.kubevirt\_vmi\_info#module:validate\_certs=yes`\ , the full certificate chain for the API server must be provided via :ansopt:`kubevirt.core.kubevirt\_vmi\_info#module:ca\_cert` or in the :ansopt:`kubevirt.core.kubevirt\_vmi\_info#module:kubeconfig` file.
+
+.. Seealso
+
+
+.. Examples
+
+Examples
+--------
+
+.. code-block:: yaml+jinja
+
+ - name: Get an existing VirtualMachineInstance
+ kubevirt.core.kubevirt_vmi_info:
+ name: testvmi
+ namespace: default
+ register: default_testvmi
+
+ - name: Get a list of all VirtualMachinesInstances
+ kubevirt.core.kubevirt_vmi_info:
+ namespace: default
+ register: vmi_list
+
+ - name: Get a list of all VirtualMachineInstances from any namespace
+ kubevirt.core.kubevirt_vmi_info:
+ register: vmi_list
+
+ - name: Search for all VirtualMachineInstances labelled app=test
+ kubevirt.core.kubevirt_vmi_info:
+ label_selectors:
+ - app=test
+
+ - name: Wait until the VirtualMachineInstace is ready
+ kubevirt.core.kubevirt_vm_info:
+ name: testvm
+ namespace: default
+ wait: true
+
+
+
+.. Facts
+
+
+.. Return values
+
+Return Values
+-------------
+Common return values are documented :ref:`here `, the following are the fields unique to this module:
+
+.. raw:: html
+
+
+
+
+
Key
+
Description
+
+
+
+
+
+
+
api_found
+
+
+ boolean
+
+
+
+
Whether the specified api_version and VirtualMachineInstanceKind were successfully mapped to an existing API on the target cluster.
+
Returned: always
+
+
+
+
+
+
resources
+
+
+ complex
+
+
+
+
The VirtualMachineInstances that exist.
+
Returned: success
+
+
+
+
+
+
api_version
+
+
+ string
+
+
+
+
The versioned schema of this representation of an object.
+
Returned: success
+
+
+
+
+
+
kind
+
+
+ string
+
+
+
+
Represents the REST resource this object represents.
+
Returned: success
+
+
+
+
+
+
metadata
+
+
+ dictionary
+
+
+
+
Standard object metadata. Includes name, namespace, annotations, labels, etc.
+
Returned: success
+
+
+
+
+
+
spec
+
+
+ dictionary
+
+
+
+
Specific attributes of the VirtualMachineInstance. Can vary based on the api_version.
+
Returned: success
+
+
+
+
+
+
status
+
+
+ dictionary
+
+
+
+
Current status details for the VirtualMachineInstance.
+
Returned: success
+
+
+
+
+
+
+
+
+.. Status (Presently only deprecated)
+
+
+.. Authors
+
+Authors
+~~~~~~~
+
+- KubeVirt.io Project
+
+
+
+.. Extra links
+
+
+.. Parsing errors
diff --git a/2.2.2/_sources/releasing.md.txt b/2.2.2/_sources/releasing.md.txt
new file mode 100644
index 0000000..537ba1e
--- /dev/null
+++ b/2.2.2/_sources/releasing.md.txt
@@ -0,0 +1,61 @@
+# Collection Versioning Strategy
+
+Each supported collection maintained by Ansible follows Semantic Versioning 2.0.0 (https://semver.org/), for example:
+Given a version number MAJOR.MINOR.PATCH, the following is incremented:
+
+MAJOR version: when making incompatible API changes (see Feature Release scenarios below for examples)
+
+MINOR version: when adding features or functionality in a backwards compatible manner, or updating testing matrix and/or metadata (deprecation)
+
+PATCH version: when adding backwards compatible bug fixes or security fixes (strict).
+
+Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.
+
+The first version of a generally available supported collection on Ansible Automation Hub shall be version 1.0.0. NOTE: By default, all newly created collections may begin with a smaller default version of 0.1.0, and therefore a version of 1.0.0 should be explicitly stated by the collection maintainer.
+
+## New content is added to an existing collection
+
+Assuming the current release is 1.0.0, and a new module is ready to be added to the collection, the minor version would be incremented to 1.1.0. The change in the MINOR version indicates an additive change was made while maintaining backward compatibility for existing content within the collection.
+
+
+## New feature to existing plugin or role within a collection (backwards compatible)
+
+Assuming the current release is 1.0.0, and new features for an existing module are ready for release . We would increment the MINOR version to 1.1.0. The change in the MINOR version indicates an additive change was made while maintaining backward compatibility for existing content within the collection.
+
+
+## Bug fix or security fix to existing content within a collection
+
+Assuming the current release is 1.0.0 and a bug is fixed prior to the next minor release, the PATCH version would be incremented to 1.0.1. The patch indicates only a bug was fixed within a current version. The PATCH release does not contain new content, nor was functionality removed. Bug fixes may be included in a MINOR or MAJOR feature release if the timing allows, eliminating the need for a PATCH dedicated to the fix.
+
+
+## Breaking change to any content within a collection
+
+Assuming the current release is 1.0.0, and a breaking change (API or module) is introduced for a user or developer. The MAJOR version would be incremented to 2.0.0.
+
+Examples of breaking changes within a collection may include but are not limited to:
+
+ - Argspec changes for a module that require either inventory structure or playbook changes.
+ - A change in the shape of either the inbound or returned payload of a filter plugin.
+ - Changes to a connection plugin that require additional inventory parameters or ansible.cfg entries.
+ - New functionality added to a module that changes the outcome of that module as released in previous versions.
+ - The removal of plugins from a collection.
+
+
+## Content removed from a collection
+
+Deleting a module or API is a breaking change. Please see the 'Breaking change' section for how to version this.
+
+
+## A typographical error was fixed in the documentation for a collection
+
+A correction to the README would be considered a bug fix and the PATCH incremented. See 'Bug fix' above.
+
+
+## Documentation added/removed/modified within a collection
+
+Only the PATCH version should be increased for a release that contains changes limited to revised documentation.
+
+
+## Release automation
+
+New releases are triggered by annotated git tags named after semantic versioning. The automation publishes the built artifacts to ansible-galaxy and github releases page.
diff --git a/2.2.2/_sources/roles/index.rst.txt b/2.2.2/_sources/roles/index.rst.txt
new file mode 100644
index 0000000..224d9c7
--- /dev/null
+++ b/2.2.2/_sources/roles/index.rst.txt
@@ -0,0 +1,5 @@
+Role Index
+==========
+
+.. toctree::
+ *
diff --git a/2.2.2/_sources/testing.md.txt b/2.2.2/_sources/testing.md.txt
new file mode 100644
index 0000000..965f417
--- /dev/null
+++ b/2.2.2/_sources/testing.md.txt
@@ -0,0 +1,138 @@
+# Testing
+
+## Sanity and unit tests
+
+Sanity and unit tests can be run in two ways:
+
+- with `tox` and the `tox-ansible` plugin (both need to be installed on the dev machine)
+- with `ansible-test`
+
+For development purposes `tox` and `tox-ansible` are better suited, as they allow
+debugging of issues in the collection on the developer's machine.
+
+For verification purposes of the collection the compatibility with `ansible-test`
+is ensured.
+
+### Running tests with tox-ansible
+
+Run sanity tests with `tox-ansible` like so:
+
+```
+make test-sanity
+```
+
+Run unit tests with `tox-ansible` like so:
+
+```
+make test-unit
+```
+
+### Running tests with ansible-test
+
+In order to test changes with `ansible-test`, it is recommended to bind mount
+the repository to `~/.ansible/collections/ansible_collections/kubevirt/core`
+if you did not check it out into this location.
+
+This can be done with:
+
+```
+mkdir -p ~/.ansible/collections/ansible_collections/kubevirt/core
+sudo mount --bind /kubevirt.core ~/.ansible/collections/ansible_collections/kubevirt/core
+cd ~/.ansible/collections/ansible_collections/kubevirt/core
+```
+
+Run sanity tests with `ansible-test` like so:
+
+```
+ANSIBLE_TEST_PREFER_PODMAN=1 ansible-test sanity --docker
+```
+
+Run unit tests with `ansible-test` like so:
+
+```
+ANSIBLE_TEST_PREFER_PODMAN=1 ansible-test units --docker
+```
+
+### Running tests with coverage analysis
+
+Coverage analysis produces a report about the code paths covered by the unit tests.
+
+It is required to bind mount the project as shown in section [Running tests with ansible-test](#running-tests-with-ansible-test).
+
+Run `ansible-test` with:
+
+```
+ANSIBLE_TEST_PREFER_PODMAN=1 ansible-test units --docker --coverage
+```
+
+Create the coverage report in HTML format using:
+
+```
+ansible-test coverage html
+```
+
+Or in XML format using:
+
+```
+ansible-test coverage xml
+```
+
+Multiple coverage report formats are supported such as: plain text, XML or HTML. If HTML format is used as shown above, the report can be accessed in the following location: `~/.ansible/collections/ansible_collections/kubevirt/tests/output/reports/coverage/index.html` or in `~/.ansible/collections/ansible_collections/kubevirt/tests/output/reports/coverage/coverage.xml` if XML format is choosen.
+
+## Integration tests
+
+Integration tests require a working cluster and can be run with
+`ansible-test`.
+
+### Continuous integration
+
+The `hack/e2e-setup.sh` script contains the steps necessary to reproduce the
+CI integration test environment, which relies on `docker` or `podman`,
+`kubectl` and `kind`.
+
+To create the CI integration test environment on your machine run:
+
+```
+make cluster-up
+```
+
+To remove the test CI integration test environment run:
+
+```
+make cluster-down
+```
+
+### Running integration tests with ansible test
+
+Run integration tests with ansible-test like so:
+
+```
+ansible-test integration
+```
+
+## Example config and playbooks
+
+Sample playbooks and inventory configurations are provided in the `examples/` directory; to run the playbooks locally, build the testing environment with the script above, then the steps are as follows:
+
+```bash
+# setup environment
+pip install ansible-core
+# clone the repository
+git clone https://github.com/kubevirt/kubevirt.core
+cd kubevirt.core
+# install collection dependencies
+ansible-galaxy collection install -r requirements.yml
+# install collection python deps
+pip install -r requirements.txt
+# setup environment
+hack/e2e-setup.sh
+# run inventory source
+ansible-inventory -i examples/inventory.kubevirt.yml
+# create a virtual machine
+ansible-playbook -i examples/inventory.kubevirt.yml examples/play-create-min.yml
+# terminate a virtual machine
+ansible-playbook -i examples/inventory.kubevirt.yml examples/play-delete.yml
+# terminate the environment
+hack/e2e-setup.sh --cleanup
+```
+
diff --git a/2.2.2/_static/_sphinx_javascript_frameworks_compat.js b/2.2.2/_static/_sphinx_javascript_frameworks_compat.js
new file mode 100644
index 0000000..8141580
--- /dev/null
+++ b/2.2.2/_static/_sphinx_javascript_frameworks_compat.js
@@ -0,0 +1,123 @@
+/* Compatability shim for jQuery and underscores.js.
+ *
+ * Copyright Sphinx contributors
+ * Released under the two clause BSD licence
+ */
+
+/**
+ * small helper function to urldecode strings
+ *
+ * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL
+ */
+jQuery.urldecode = function(x) {
+ if (!x) {
+ return 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, addItems) {
+ if (node.nodeType === 3) {
+ var val = node.nodeValue;
+ var pos = val.toLowerCase().indexOf(text);
+ if (pos >= 0 &&
+ !jQuery(node.parentNode).hasClass(className) &&
+ !jQuery(node.parentNode).hasClass("nohighlight")) {
+ var span;
+ var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg");
+ if (isInSVG) {
+ span = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
+ } else {
+ 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);
+ if (isInSVG) {
+ var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect");
+ var bbox = node.parentElement.getBBox();
+ rect.x.baseVal.value = bbox.x;
+ rect.y.baseVal.value = bbox.y;
+ rect.width.baseVal.value = bbox.width;
+ rect.height.baseVal.value = bbox.height;
+ rect.setAttribute('class', className);
+ addItems.push({
+ "parent": node.parentNode,
+ "target": rect});
+ }
+ }
+ }
+ else if (!jQuery(node).is("button, select, textarea")) {
+ jQuery.each(node.childNodes, function() {
+ highlight(this, addItems);
+ });
+ }
+ }
+ var addItems = [];
+ var result = this.each(function() {
+ highlight(this, addItems);
+ });
+ for (var i = 0; i < addItems.length; ++i) {
+ jQuery(addItems[i].parent).before(addItems[i].target);
+ }
+ return result;
+};
+
+/*
+ * 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;
+}
diff --git a/2.2.2/_static/ansible-basic-sphinx-ext.css b/2.2.2/_static/ansible-basic-sphinx-ext.css
new file mode 100644
index 0000000..6f28727
--- /dev/null
+++ b/2.2.2/_static/ansible-basic-sphinx-ext.css
@@ -0,0 +1,2 @@
+@charset "UTF-8";
+/* Copyright (c) Ansible and contributors */table.documentation-table{border-bottom:1px solid #000;border-right:1px solid #000}table.documentation-table td,table.documentation-table th{padding:4px;border-left:1px solid #000;border-top:1px solid #000}table.documentation-table td.elbow-placeholder{border-left:1px solid #000;border-top:0;width:30px;min-width:30px}table.documentation-table td{vertical-align:top}table.documentation-table td:first-child{white-space:nowrap}table.documentation-table .value-type{font-size:x-small;color:purple;display:inline}table.documentation-table .value-separator{font-size:x-small;display:inline}table.documentation-table .value-required{font-size:x-small;color:red;display:inline}table.documentation-table tr .ansibleOptionLink{display:inline-block;visibility:hidden}table.documentation-table tr .ansibleOptionLink:after{content:"🔗"}table.documentation-table tr:hover .ansibleOptionLink:after{visibility:visible}
\ No newline at end of file
diff --git a/2.2.2/_static/antsibull-minimal.css b/2.2.2/_static/antsibull-minimal.css
new file mode 100644
index 0000000..5298b2b
--- /dev/null
+++ b/2.2.2/_static/antsibull-minimal.css
@@ -0,0 +1,4 @@
+@charset "UTF-8";
+/* Copyright (c) Ansible and contributors */
+/* GNU General Public License v3.0+ (see https://www.gnu.org/licenses/gpl-3.0.txt) */
+:root{--antsibull-links-background:#5bbdbf;--antsibull-links-background-active:#91d9db;--antsibull-links-focus-outline:#204748;--antsibull-links-text:#fff;--antsibull-table-background-header:#6ab0de;--antsibull-table-background-even:#e7f2fa;--antsibull-table-background-odd:#fff;--antsibull-table-border:#000;--antsibull-narrowtable-background:#e7f2fa;--antsibull-option-type:purple;--antsibull-option-elements:purple;--antsibull-option-required:red;--antsibull-option-version-added:#006400;--antsibull-option-aliases:#006400;--antsibull-option-default:blue;--antsibull-option-sample:blue;--antsibull-option-sample-header:#000;--antsibull-attribute-support-none:red;--antsibull-attribute-support-partial:#a5a500;--antsibull-attribute-support-full:green;--antsibull-attribute-support-na:inherit;--antsibull-deprecation-border:#000;--antsibull-deprecation-background:#eee;--antsibull-deprecation-color:#000}.ansible-links{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;justify-content:flex-start}.ansible-links>*{margin:2px 4px!important}.ansible-links>li{list-style:none!important}.ansible-links>li>p{display:inline}.ansible-links a{background-color:var(--antsibull-links-background);border-radius:3px;color:var(--antsibull-links-text);cursor:pointer;display:block;padding:4px 12px}.ansible-links a:active,.ansible-links a:focus,.ansible-links a:hover{background-color:var(--antsibull-links-background-active)}.ansible-links a:focus{outline:3px solid var(--antsibull-links-focus-outline)}table.documentation-table{border-bottom:1px solid var(--antsibull-table-border);border-right:1px solid var(--antsibull-table-border)}table.documentation-table th{background-color:var(--antsibull-table-background-header)}table.documentation-table td,table.documentation-table th{border-left:1px solid var(--antsibull-table-border);border-top:1px solid var(--antsibull-table-border);padding:4px}table.documentation-table td.elbow-placeholder{border-top:0;min-width:30px;width:30px}table.documentation-table td{vertical-align:top}table.documentation-table td:first-child{white-space:nowrap}table.documentation-table tr .ansibleOptionLink{display:inline-block}table.documentation-table tr .ansibleOptionLink:after{content:"🔗";opacity:0}table.documentation-table tr:hover .ansibleOptionLink:after{opacity:1}table.documentation-table tr:nth-child(odd){background-color:var(--antsibull-table-background-odd)}table.documentation-table tr:nth-child(2n){background-color:var(--antsibull-table-background-even)}table.ansible-option-table{border-color:var(--antsibull-table-border)!important;display:table;height:1px}table.ansible-option-table tr{height:100%}table.ansible-option-table td,table.ansible-option-table th{border-color:var(--antsibull-table-border)!important;border-bottom:none!important;vertical-align:top!important}table.ansible-option-table th>p{font-size:medium!important}table.ansible-option-table thead tr{background-color:var(--antsibull-table-background-header)}table.ansible-option-table tbody .row-odd td{background-color:var(--antsibull-table-background-odd)!important}table.ansible-option-table tbody .row-even td{background-color:var(--antsibull-table-background-even)!important}table.ansible-option-table ul>li>p{margin:0!important}table.ansible-option-table ul>li>div[class^=highlight]{margin-bottom:4px!important}table.ansible-option-table p.ansible-option-title{display:inline}table.ansible-option-table .ansible-option-type-line{font-size:small;margin-bottom:0}table.ansible-option-table .ansible-option-type{color:var(--antsibull-option-type)}table.ansible-option-table .ansible-option-elements{color:var(--antsibull-option-elements)}table.ansible-option-table .ansible-option-required{color:var(--antsibull-option-required)}table.ansible-option-table .ansible-option-versionadded{color:var(--antsibull-option-version-added);font-size:small}table.ansible-option-table .ansible-option-aliases{color:var(--antsibull-option-aliases);white-space:normal}table.ansible-option-table .ansible-option-line{margin-top:8px}table.ansible-option-table .ansible-option-choices-default-mark,table.ansible-option-table .ansible-option-default,table.ansible-option-table .ansible-option-default-bold{color:var(--antsibull-option-default)}table.ansible-option-table .ansible-option-sample{color:var(--antsibull-option-sample);word-wrap:break-word;word-break:break-all}table.ansible-option-table .ansible-option-sample-bold{color:var(--antsibull-option-sample-header)}table.ansible-option-table .ansible-attribute-support-none{color:var(--antsibull-attribute-support-none)}table.ansible-option-table .ansible-attribute-support-partial{color:var(--antsibull-attribute-support-partial)}table.ansible-option-table .ansible-attribute-support-full{color:var(--antsibull-attribute-support-full)}table.ansible-option-table .ansible-attribute-support-na{color:var(--antsibull-attribute-support-na)}table.ansible-option-table .ansibleOptionLink{display:inline-block}table.ansible-option-table .ansibleOptionLink:after{content:"🔗";opacity:0}table.ansible-option-table p{margin:0 0 8px}table.ansible-option-table tr:hover .ansibleOptionLink:after{opacity:1}table.ansible-option-table td{padding:0!important;white-space:normal}table.ansible-option-table td>div.ansible-option-cell{border-top:1px solid var(--antsibull-table-border);padding:8px 16px}table.ansible-option-table td:first-child{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;height:inherit;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}table.ansible-option-table td:first-child>div.ansible-option-cell{height:inherit;-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;max-width:100%;white-space:nowrap}table.ansible-option-table .ansible-option-indent{border-right:1px solid var(--antsibull-table-border);margin-left:2em}table.ansible-option-table .ansible-attribute-support-label{display:none}@media (max-width:1200px){table.ansible-option-table{border:none!important;display:block;height:unset}table.ansible-option-table thead{display:none}table.ansible-option-table tbody,table.ansible-option-table td,table.ansible-option-table tr{border:none!important;display:block}table.ansible-option-table tbody .row-even td,table.ansible-option-table tbody .row-odd td{background-color:unset!important}table.ansible-option-table td>div.ansible-option-cell{border-top:none}table.ansible-option-table td:first-child>div.ansible-option-cell{background-color:var(--antsibull-narrowtable-background)!important}table.ansible-option-table td:not(:first-child){display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}table.ansible-option-table td:not(:first-child)>div.ansible-option-cell{margin-left:1em}table.ansible-option-table .ansible-option-indent,table.ansible-option-table .ansible-option-indent-desc{border:none;border-right:3px solid var(--antsibull-narrowtable-background);margin-left:1em}table.ansible-option-table .ansible-attribute-support-label{display:unset}}.ansible-version-added{font-style:italic}.ansible-option a.reference.external,.ansible-option a.reference.external:hover,.ansible-option a.reference.internal,.ansible-option a.reference.internal:hover,.ansible-option-value a.reference.external,.ansible-option-value a.reference.external:hover,.ansible-option-value a.reference.internal,.ansible-option-value a.reference.internal:hover,.ansible-return-value a.reference.external,.ansible-return-value a.reference.external:hover,.ansible-return-value a.reference.internal,.ansible-return-value a.reference.internal:hover{color:unset}.ansible-deprecation-marker{background-color:var(--antsibull-deprecation-background);border:2px solid var(--antsibull-deprecation-border);border-radius:1em;color:var(--antsibull-deprecation-color);padding:.2em .4em}
\ No newline at end of file
diff --git a/2.2.2/_static/basic.css b/2.2.2/_static/basic.css
new file mode 100644
index 0000000..4738b2e
--- /dev/null
+++ b/2.2.2/_static/basic.css
@@ -0,0 +1,906 @@
+/*
+ * Sphinx stylesheet -- basic theme.
+ */
+
+/* -- main layout ----------------------------------------------------------- */
+
+div.clearer {
+ clear: both;
+}
+
+div.section::after {
+ display: block;
+ content: '';
+ clear: left;
+}
+
+/* -- 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 form.search {
+ overflow: hidden;
+}
+
+div.sphinxsidebar #searchbox input[type="text"] {
+ float: left;
+ width: 80%;
+ padding: 0.25em;
+ box-sizing: border-box;
+}
+
+div.sphinxsidebar #searchbox input[type="submit"] {
+ float: left;
+ width: 20%;
+ border-left: none;
+ padding: 0.25em;
+ box-sizing: border-box;
+}
+
+
+img {
+ border: 0;
+ max-width: 100%;
+}
+
+/* -- search page ----------------------------------------------------------- */
+
+ul.search {
+ margin-top: 10px;
+}
+
+ul.search li {
+ padding: 5px 0;
+}
+
+ul.search li a {
+ font-weight: bold;
+}
+
+ul.search li p.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 {
+ min-width: 360px;
+ max-width: 800px;
+}
+
+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;
+}
+
+a:visited {
+ color: #551A8B;
+}
+
+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, .figure.align-left, object.align-left {
+ clear: left;
+ float: left;
+ margin-right: 1em;
+}
+
+img.align-right, figure.align-right, .figure.align-right, object.align-right {
+ clear: right;
+ float: right;
+ margin-left: 1em;
+}
+
+img.align-center, figure.align-center, .figure.align-center, object.align-center {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+img.align-default, figure.align-default, .figure.align-default {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+.align-left {
+ text-align: left;
+}
+
+.align-center {
+ text-align: center;
+}
+
+.align-default {
+ text-align: center;
+}
+
+.align-right {
+ text-align: right;
+}
+
+/* -- sidebars -------------------------------------------------------------- */
+
+div.sidebar,
+aside.sidebar {
+ margin: 0 0 0.5em 1em;
+ border: 1px solid #ddb;
+ padding: 7px;
+ background-color: #ffe;
+ width: 40%;
+ float: right;
+ clear: right;
+ overflow-x: auto;
+}
+
+p.sidebar-title {
+ font-weight: bold;
+}
+
+nav.contents,
+aside.topic,
+div.admonition, div.topic, blockquote {
+ clear: left;
+}
+
+/* -- topics ---------------------------------------------------------------- */
+
+nav.contents,
+aside.topic,
+div.topic {
+ border: 1px solid #ccc;
+ padding: 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;
+}
+
+p.admonition-title {
+ margin: 0px 10px 5px 0px;
+ font-weight: bold;
+}
+
+div.body p.centered {
+ text-align: center;
+ margin-top: 25px;
+}
+
+/* -- content of sidebars/topics/admonitions -------------------------------- */
+
+div.sidebar > :last-child,
+aside.sidebar > :last-child,
+nav.contents > :last-child,
+aside.topic > :last-child,
+div.topic > :last-child,
+div.admonition > :last-child {
+ margin-bottom: 0;
+}
+
+div.sidebar::after,
+aside.sidebar::after,
+nav.contents::after,
+aside.topic::after,
+div.topic::after,
+div.admonition::after,
+blockquote::after {
+ display: block;
+ content: '';
+ clear: both;
+}
+
+/* -- tables ---------------------------------------------------------------- */
+
+table.docutils {
+ margin-top: 10px;
+ margin-bottom: 10px;
+ border: 0;
+ border-collapse: collapse;
+}
+
+table.align-center {
+ margin-left: auto;
+ margin-right: auto;
+}
+
+table.align-default {
+ margin-left: auto;
+ margin-right: auto;
+}
+
+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;
+}
+
+th {
+ text-align: left;
+ padding-right: 5px;
+}
+
+table.citation {
+ border-left: solid 1px gray;
+ margin-left: 1px;
+}
+
+table.citation td {
+ border-bottom: none;
+}
+
+th > :first-child,
+td > :first-child {
+ margin-top: 0px;
+}
+
+th > :last-child,
+td > :last-child {
+ margin-bottom: 0px;
+}
+
+/* -- figures --------------------------------------------------------------- */
+
+div.figure, figure {
+ margin: 0.5em;
+ padding: 0.5em;
+}
+
+div.figure p.caption, figcaption {
+ padding: 0.3em;
+}
+
+div.figure p.caption span.caption-number,
+figcaption span.caption-number {
+ font-style: italic;
+}
+
+div.figure p.caption span.caption-text,
+figcaption 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;
+}
+
+.field-name {
+ -moz-hyphens: manual;
+ -ms-hyphens: manual;
+ -webkit-hyphens: manual;
+ hyphens: manual;
+}
+
+/* -- hlist styles ---------------------------------------------------------- */
+
+table.hlist {
+ margin: 1em 0;
+}
+
+table.hlist td {
+ vertical-align: top;
+}
+
+/* -- object description styles --------------------------------------------- */
+
+.sig {
+ font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace;
+}
+
+.sig-name, code.descname {
+ background-color: transparent;
+ font-weight: bold;
+}
+
+.sig-name {
+ font-size: 1.1em;
+}
+
+code.descname {
+ font-size: 1.2em;
+}
+
+.sig-prename, code.descclassname {
+ background-color: transparent;
+}
+
+.optional {
+ font-size: 1.3em;
+}
+
+.sig-paren {
+ font-size: larger;
+}
+
+.sig-param.n {
+ font-style: italic;
+}
+
+/* C++ specific styling */
+
+.sig-inline.c-texpr,
+.sig-inline.cpp-texpr {
+ font-family: unset;
+}
+
+.sig.c .k, .sig.c .kt,
+.sig.cpp .k, .sig.cpp .kt {
+ color: #0033B3;
+}
+
+.sig.c .m,
+.sig.cpp .m {
+ color: #1750EB;
+}
+
+.sig.c .s, .sig.c .sc,
+.sig.cpp .s, .sig.cpp .sc {
+ color: #067D17;
+}
+
+
+/* -- 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;
+}
+
+:not(li) > ol > li:first-child > :first-child,
+:not(li) > ul > li:first-child > :first-child {
+ margin-top: 0px;
+}
+
+:not(li) > ol > li:last-child > :last-child,
+:not(li) > ul > li:last-child > :last-child {
+ margin-bottom: 0px;
+}
+
+ol.simple ol p,
+ol.simple ul p,
+ul.simple ol p,
+ul.simple ul p {
+ margin-top: 0;
+}
+
+ol.simple > li:not(:first-child) > p,
+ul.simple > li:not(:first-child) > p {
+ margin-top: 0;
+}
+
+ol.simple p,
+ul.simple p {
+ margin-bottom: 0;
+}
+
+aside.footnote > span,
+div.citation > span {
+ float: left;
+}
+aside.footnote > span:last-of-type,
+div.citation > span:last-of-type {
+ padding-right: 0.5em;
+}
+aside.footnote > p {
+ margin-left: 2em;
+}
+div.citation > p {
+ margin-left: 4em;
+}
+aside.footnote > p:last-of-type,
+div.citation > p:last-of-type {
+ margin-bottom: 0em;
+}
+aside.footnote > p:last-of-type:after,
+div.citation > p:last-of-type:after {
+ content: "";
+ clear: both;
+}
+
+dl.field-list {
+ display: grid;
+ grid-template-columns: fit-content(30%) auto;
+}
+
+dl.field-list > dt {
+ font-weight: bold;
+ word-break: break-word;
+ padding-left: 0.5em;
+ padding-right: 5px;
+}
+
+dl.field-list > dd {
+ padding-left: 0.5em;
+ margin-top: 0em;
+ margin-left: 0em;
+ margin-bottom: 0em;
+}
+
+dl {
+ margin-bottom: 15px;
+}
+
+dd > :first-child {
+ margin-top: 0px;
+}
+
+dd ul, dd table {
+ margin-bottom: 10px;
+}
+
+dd {
+ margin-top: 3px;
+ margin-bottom: 10px;
+ margin-left: 30px;
+}
+
+.sig dd {
+ margin-top: 0px;
+ margin-bottom: 0px;
+}
+
+.sig dl {
+ margin-top: 0px;
+ margin-bottom: 0px;
+}
+
+dl > dd:last-child,
+dl > dd:last-child > :last-child {
+ margin-bottom: 0;
+}
+
+dt:target, span.highlighted {
+ background-color: #fbe54e;
+}
+
+rect.highlighted {
+ fill: #fbe54e;
+}
+
+dl.glossary dt {
+ font-weight: bold;
+ font-size: 1.1em;
+}
+
+.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;
+}
+
+.classifier:before {
+ font-style: normal;
+ margin: 0 0.5em;
+ content: ":";
+ display: inline-block;
+}
+
+abbr, acronym {
+ border-bottom: dotted 1px;
+ cursor: help;
+}
+
+/* -- code displays --------------------------------------------------------- */
+
+pre {
+ overflow: auto;
+ overflow-y: hidden; /* fixes display issues on Chrome browsers */
+}
+
+pre, div[class*="highlight-"] {
+ clear: both;
+}
+
+span.pre {
+ -moz-hyphens: none;
+ -ms-hyphens: none;
+ -webkit-hyphens: none;
+ hyphens: none;
+ white-space: nowrap;
+}
+
+div[class*="highlight-"] {
+ margin: 1em 0;
+}
+
+td.linenos pre {
+ border: 0;
+ background-color: transparent;
+ color: #aaa;
+}
+
+table.highlighttable {
+ display: block;
+}
+
+table.highlighttable tbody {
+ display: block;
+}
+
+table.highlighttable tr {
+ display: flex;
+}
+
+table.highlighttable td {
+ margin: 0;
+ padding: 0;
+}
+
+table.highlighttable td.linenos {
+ padding-right: 0.5em;
+}
+
+table.highlighttable td.code {
+ flex: 1;
+ overflow: hidden;
+}
+
+.highlight .hll {
+ display: block;
+}
+
+div.highlight pre,
+table.highlighttable pre {
+ margin: 0;
+}
+
+div.code-block-caption + div {
+ margin-top: 0;
+}
+
+div.code-block-caption {
+ margin-top: 1em;
+ padding: 2px 5px;
+ font-size: small;
+}
+
+div.code-block-caption code {
+ background-color: transparent;
+}
+
+table.highlighttable td.linenos,
+span.linenos,
+div.highlight span.gp { /* gp: Generic.Prompt */
+ user-select: none;
+ -webkit-user-select: text; /* Safari fallback only */
+ -webkit-user-select: none; /* Chrome/Safari */
+ -moz-user-select: none; /* Firefox */
+ -ms-user-select: none; /* IE10+ */
+}
+
+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 {
+ margin: 1em 0;
+}
+
+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: absolute;
+ 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/2.2.2/_static/css/badge_only.css b/2.2.2/_static/css/badge_only.css
new file mode 100644
index 0000000..88ba55b
--- /dev/null
+++ b/2.2.2/_static/css/badge_only.css
@@ -0,0 +1 @@
+.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-style:normal;font-weight:400;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#FontAwesome) format("svg")}.fa:before{font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1}.fa:before,a .fa{text-decoration:inherit}.fa:before,a .fa,li .fa{display:inline-block}li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before,.icon-book:before{content:"\f02d"}.fa-caret-down:before,.icon-caret-down:before{content:"\f0d7"}.fa-caret-up:before,.icon-caret-up:before{content:"\f0d8"}.fa-caret-left:before,.icon-caret-left:before{content:"\f0d9"}.fa-caret-right:before,.icon-caret-right:before{content:"\f0da"}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;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}.rst-versions .rst-current-version:after{clear:both;content:"";display:block}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.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{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #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-other-versions .rtd-current-item{font-weight:700}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.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>.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}}#flyout-search-form{padding:6px}
\ No newline at end of file
diff --git a/2.2.2/_static/css/fonts/Roboto-Slab-Bold.woff b/2.2.2/_static/css/fonts/Roboto-Slab-Bold.woff
new file mode 100644
index 0000000..6cb6000
Binary files /dev/null and b/2.2.2/_static/css/fonts/Roboto-Slab-Bold.woff differ
diff --git a/2.2.2/_static/css/fonts/Roboto-Slab-Bold.woff2 b/2.2.2/_static/css/fonts/Roboto-Slab-Bold.woff2
new file mode 100644
index 0000000..7059e23
Binary files /dev/null and b/2.2.2/_static/css/fonts/Roboto-Slab-Bold.woff2 differ
diff --git a/2.2.2/_static/css/fonts/Roboto-Slab-Regular.woff b/2.2.2/_static/css/fonts/Roboto-Slab-Regular.woff
new file mode 100644
index 0000000..f815f63
Binary files /dev/null and b/2.2.2/_static/css/fonts/Roboto-Slab-Regular.woff differ
diff --git a/2.2.2/_static/css/fonts/Roboto-Slab-Regular.woff2 b/2.2.2/_static/css/fonts/Roboto-Slab-Regular.woff2
new file mode 100644
index 0000000..f2c76e5
Binary files /dev/null and b/2.2.2/_static/css/fonts/Roboto-Slab-Regular.woff2 differ
diff --git a/2.2.2/_static/css/fonts/fontawesome-webfont.eot b/2.2.2/_static/css/fonts/fontawesome-webfont.eot
new file mode 100644
index 0000000..e9f60ca
Binary files /dev/null and b/2.2.2/_static/css/fonts/fontawesome-webfont.eot differ
diff --git a/2.2.2/_static/css/fonts/fontawesome-webfont.svg b/2.2.2/_static/css/fonts/fontawesome-webfont.svg
new file mode 100644
index 0000000..855c845
--- /dev/null
+++ b/2.2.2/_static/css/fonts/fontawesome-webfont.svg
@@ -0,0 +1,2671 @@
+
+
+
diff --git a/2.2.2/_static/css/fonts/fontawesome-webfont.ttf b/2.2.2/_static/css/fonts/fontawesome-webfont.ttf
new file mode 100644
index 0000000..35acda2
Binary files /dev/null and b/2.2.2/_static/css/fonts/fontawesome-webfont.ttf differ
diff --git a/2.2.2/_static/css/fonts/fontawesome-webfont.woff b/2.2.2/_static/css/fonts/fontawesome-webfont.woff
new file mode 100644
index 0000000..400014a
Binary files /dev/null and b/2.2.2/_static/css/fonts/fontawesome-webfont.woff differ
diff --git a/2.2.2/_static/css/fonts/fontawesome-webfont.woff2 b/2.2.2/_static/css/fonts/fontawesome-webfont.woff2
new file mode 100644
index 0000000..4d13fc6
Binary files /dev/null and b/2.2.2/_static/css/fonts/fontawesome-webfont.woff2 differ
diff --git a/2.2.2/_static/css/fonts/lato-bold-italic.woff b/2.2.2/_static/css/fonts/lato-bold-italic.woff
new file mode 100644
index 0000000..88ad05b
Binary files /dev/null and b/2.2.2/_static/css/fonts/lato-bold-italic.woff differ
diff --git a/2.2.2/_static/css/fonts/lato-bold-italic.woff2 b/2.2.2/_static/css/fonts/lato-bold-italic.woff2
new file mode 100644
index 0000000..c4e3d80
Binary files /dev/null and b/2.2.2/_static/css/fonts/lato-bold-italic.woff2 differ
diff --git a/2.2.2/_static/css/fonts/lato-bold.woff b/2.2.2/_static/css/fonts/lato-bold.woff
new file mode 100644
index 0000000..c6dff51
Binary files /dev/null and b/2.2.2/_static/css/fonts/lato-bold.woff differ
diff --git a/2.2.2/_static/css/fonts/lato-bold.woff2 b/2.2.2/_static/css/fonts/lato-bold.woff2
new file mode 100644
index 0000000..bb19504
Binary files /dev/null and b/2.2.2/_static/css/fonts/lato-bold.woff2 differ
diff --git a/2.2.2/_static/css/fonts/lato-normal-italic.woff b/2.2.2/_static/css/fonts/lato-normal-italic.woff
new file mode 100644
index 0000000..76114bc
Binary files /dev/null and b/2.2.2/_static/css/fonts/lato-normal-italic.woff differ
diff --git a/2.2.2/_static/css/fonts/lato-normal-italic.woff2 b/2.2.2/_static/css/fonts/lato-normal-italic.woff2
new file mode 100644
index 0000000..3404f37
Binary files /dev/null and b/2.2.2/_static/css/fonts/lato-normal-italic.woff2 differ
diff --git a/2.2.2/_static/css/fonts/lato-normal.woff b/2.2.2/_static/css/fonts/lato-normal.woff
new file mode 100644
index 0000000..ae1307f
Binary files /dev/null and b/2.2.2/_static/css/fonts/lato-normal.woff differ
diff --git a/2.2.2/_static/css/fonts/lato-normal.woff2 b/2.2.2/_static/css/fonts/lato-normal.woff2
new file mode 100644
index 0000000..3bf9843
Binary files /dev/null and b/2.2.2/_static/css/fonts/lato-normal.woff2 differ
diff --git a/2.2.2/_static/css/theme.css b/2.2.2/_static/css/theme.css
new file mode 100644
index 0000000..0f14f10
--- /dev/null
+++ b/2.2.2/_static/css/theme.css
@@ -0,0 +1,4 @@
+html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}[hidden],audio:not([controls]){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:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}blockquote{margin:0}dfn{font-style:italic}ins{background:#ff9;text-decoration:none}ins,mark{color:#000}mark{background:#ff0;font-style:italic;font-weight:700}.rst-content code,.rst-content tt,code,kbd,pre,samp{font-family:monospace,serif;_font-family:courier new,monospace;font-size:1em}pre{white-space:pre}q{quotes:none}q:after,q:before{content:"";content:none}small{font-size:85%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}dl,ol,ul{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,form{margin:0}label{cursor:pointer}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=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}textarea{resize:vertical}table{border-collapse:collapse;border-spacing:0}td{vertical-align:top}.chromeframe{margin:.2em 0;background:#ccc;color:#000;padding:.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{body,html,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^="#"]:after,a[href^="javascript:"]:after{content:""}blockquote,pre{page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}.rst-content .toctree-wrapper>p.caption,h2,h3,p{orphans:3;widows:3}.rst-content .toctree-wrapper>p.caption,h2,h3{page-break-after:avoid}}.btn,.fa:before,.icon:before,.rst-content .admonition,.rst-content .admonition-title:before,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .code-block-caption .headerlink:before,.rst-content .danger,.rst-content .eqno .headerlink:before,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink: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 p.caption .headerlink:before,.rst-content p .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-alert,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.toctree-expand:before,input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:after,.clearfix:before{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-face{font-family:FontAwesome;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713);src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix&v=4.7.0) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#fontawesomeregular) format("svg");font-weight:400;font-style:normal}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.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 p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.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:.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa-pull-left.icon,.fa.fa-pull-left,.rst-content .code-block-caption .fa-pull-left.headerlink,.rst-content .eqno .fa-pull-left.headerlink,.rst-content .fa-pull-left.admonition-title,.rst-content code.download span.fa-pull-left:first-child,.rst-content dl dt .fa-pull-left.headerlink,.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 p .fa-pull-left.headerlink,.rst-content table>caption .fa-pull-left.headerlink,.rst-content tt.download span.fa-pull-left:first-child,.wy-menu-vertical li.current>a button.fa-pull-left.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-left.toctree-expand,.wy-menu-vertical li button.fa-pull-left.toctree-expand{margin-right:.3em}.fa-pull-right.icon,.fa.fa-pull-right,.rst-content .code-block-caption .fa-pull-right.headerlink,.rst-content .eqno .fa-pull-right.headerlink,.rst-content .fa-pull-right.admonition-title,.rst-content code.download span.fa-pull-right:first-child,.rst-content dl dt .fa-pull-right.headerlink,.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 p .fa-pull-right.headerlink,.rst-content table>caption .fa-pull-right.headerlink,.rst-content tt.download span.fa-pull-right:first-child,.wy-menu-vertical li.current>a button.fa-pull-right.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-right.toctree-expand,.wy-menu-vertical li button.fa-pull-right.toctree-expand{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left,.pull-left.icon,.rst-content .code-block-caption .pull-left.headerlink,.rst-content .eqno .pull-left.headerlink,.rst-content .pull-left.admonition-title,.rst-content code.download span.pull-left:first-child,.rst-content dl dt .pull-left.headerlink,.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 p .pull-left.headerlink,.rst-content table>caption .pull-left.headerlink,.rst-content tt.download span.pull-left:first-child,.wy-menu-vertical li.current>a button.pull-left.toctree-expand,.wy-menu-vertical li.on a button.pull-left.toctree-expand,.wy-menu-vertical li button.pull-left.toctree-expand{margin-right:.3em}.fa.pull-right,.pull-right.icon,.rst-content .code-block-caption .pull-right.headerlink,.rst-content .eqno .pull-right.headerlink,.rst-content .pull-right.admonition-title,.rst-content code.download span.pull-right:first-child,.rst-content dl dt .pull-right.headerlink,.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 p .pull-right.headerlink,.rst-content table>caption .pull-right.headerlink,.rst-content tt.download span.pull-right:first-child,.wy-menu-vertical li.current>a button.pull-right.toctree-expand,.wy-menu-vertical li.on a button.pull-right.toctree-expand,.wy-menu-vertical li button.pull-right.toctree-expand{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-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:scaleX(-1);-ms-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.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-close:before,.fa-remove: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-cog:before,.fa-gear: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 code.download span:first-child:before,.rst-content tt.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-repeat:before,.fa-rotate-right: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-image:before,.fa-photo: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,.rst-content .admonition-title:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context: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-exclamation-triangle:before,.fa-warning: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-cogs:before,.fa-gears: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-floppy-o:before,.fa-save:before{content:""}.fa-square:before{content:""}.fa-bars:before,.fa-navicon:before,.fa-reorder: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,.icon-caret-down:before,.wy-dropdown .caret:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-sort:before,.fa-unsorted:before{content:""}.fa-sort-desc:before,.fa-sort-down:before{content:""}.fa-sort-asc:before,.fa-sort-up:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-gavel:before,.fa-legal:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-bolt:before,.fa-flash:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-clipboard:before,.fa-paste: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-chain-broken:before,.fa-unlink: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.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.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-caret-square-o-down:before,.fa-toggle-down:before{content:""}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:""}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:""}.fa-eur:before,.fa-euro:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-inr:before,.fa-rupee:before{content:""}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:""}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:""}.fa-krw:before,.fa-won: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-caret-square-o-left:before,.fa-toggle-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-try:before,.fa-turkish-lira:before{content:""}.fa-plus-square-o:before,.wy-menu-vertical li button.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-bank:before,.fa-institution:before,.fa-university:before{content:""}.fa-graduation-cap:before,.fa-mortar-board: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-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:""}.fa-file-archive-o:before,.fa-file-zip-o:before{content:""}.fa-file-audio-o:before,.fa-file-sound-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-ring:before,.fa-life-saver:before,.fa-support:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-rebel:before,.fa-resistance:before{content:""}.fa-empire:before,.fa-ge:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-paper-plane:before,.fa-send:before{content:""}.fa-paper-plane-o:before,.fa-send-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-futbol-o:before,.fa-soccer-ball-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-ils:before,.fa-shekel:before,.fa-sheqel: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-bed:before,.fa-hotel:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-y-combinator:before,.fa-yc:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery-full:before,.fa-battery: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-paper-o:before,.fa-hand-stop-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-television:before,.fa-tv: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-american-sign-language-interpreting:before,.fa-asl-interpreting:before{content:""}.fa-deaf:before,.fa-deafness:before,.fa-hard-of-hearing:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-sign-language:before,.fa-signing: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-address-card:before,.fa-vcard:before{content:""}.fa-address-card-o:before,.fa-vcard-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-full:before,.fa-thermometer: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-bath:before,.fa-bathtub:before,.fa-s15: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,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.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 p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-dropdown .caret,.wy-inline-validate.wy-inline-validate-danger .wy-input-context,.wy-inline-validate.wy-inline-validate-info .wy-input-context,.wy-inline-validate.wy-inline-validate-success .wy-input-context,.wy-inline-validate.wy-inline-validate-warning .wy-input-context,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{font-family:inherit}.fa:before,.icon:before,.rst-content .admonition-title:before,.rst-content .code-block-caption .headerlink:before,.rst-content .eqno .headerlink:before,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink: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 p.caption .headerlink:before,.rst-content p .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.toctree-expand:before{font-family:FontAwesome;display:inline-block;font-style:normal;font-weight:400;line-height:1;text-decoration:inherit}.rst-content .code-block-caption a .headerlink,.rst-content .eqno a .headerlink,.rst-content a .admonition-title,.rst-content code.download a span:first-child,.rst-content dl dt a .headerlink,.rst-content h1 a .headerlink,.rst-content h2 a .headerlink,.rst-content h3 a .headerlink,.rst-content h4 a .headerlink,.rst-content h5 a .headerlink,.rst-content h6 a .headerlink,.rst-content p.caption a .headerlink,.rst-content p a .headerlink,.rst-content table>caption a .headerlink,.rst-content tt.download a span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li a button.toctree-expand,a .fa,a .icon,a .rst-content .admonition-title,a .rst-content .code-block-caption .headerlink,a .rst-content .eqno .headerlink,a .rst-content code.download span:first-child,a .rst-content dl dt .headerlink,a .rst-content h1 .headerlink,a .rst-content h2 .headerlink,a .rst-content h3 .headerlink,a .rst-content h4 .headerlink,a .rst-content h5 .headerlink,a .rst-content h6 .headerlink,a .rst-content p.caption .headerlink,a .rst-content p .headerlink,a .rst-content table>caption .headerlink,a .rst-content tt.download span:first-child,a .wy-menu-vertical li button.toctree-expand{display:inline-block;text-decoration:inherit}.btn .fa,.btn .icon,.btn .rst-content .admonition-title,.btn .rst-content .code-block-caption .headerlink,.btn .rst-content .eqno .headerlink,.btn .rst-content code.download span:first-child,.btn .rst-content dl dt .headerlink,.btn .rst-content h1 .headerlink,.btn .rst-content h2 .headerlink,.btn .rst-content h3 .headerlink,.btn .rst-content h4 .headerlink,.btn .rst-content h5 .headerlink,.btn .rst-content h6 .headerlink,.btn .rst-content p .headerlink,.btn .rst-content table>caption .headerlink,.btn .rst-content tt.download span:first-child,.btn .wy-menu-vertical li.current>a button.toctree-expand,.btn .wy-menu-vertical li.on a button.toctree-expand,.btn .wy-menu-vertical li button.toctree-expand,.nav .fa,.nav .icon,.nav .rst-content .admonition-title,.nav .rst-content .code-block-caption .headerlink,.nav .rst-content .eqno .headerlink,.nav .rst-content code.download span:first-child,.nav .rst-content dl dt .headerlink,.nav .rst-content h1 .headerlink,.nav .rst-content h2 .headerlink,.nav .rst-content h3 .headerlink,.nav .rst-content h4 .headerlink,.nav .rst-content h5 .headerlink,.nav .rst-content h6 .headerlink,.nav .rst-content p .headerlink,.nav .rst-content table>caption .headerlink,.nav .rst-content tt.download span:first-child,.nav .wy-menu-vertical li.current>a button.toctree-expand,.nav .wy-menu-vertical li.on a button.toctree-expand,.nav .wy-menu-vertical li button.toctree-expand,.rst-content .btn .admonition-title,.rst-content .code-block-caption .btn .headerlink,.rst-content .code-block-caption .nav .headerlink,.rst-content .eqno .btn .headerlink,.rst-content .eqno .nav .headerlink,.rst-content .nav .admonition-title,.rst-content code.download .btn span:first-child,.rst-content code.download .nav span:first-child,.rst-content dl dt .btn .headerlink,.rst-content dl dt .nav .headerlink,.rst-content h1 .btn .headerlink,.rst-content h1 .nav .headerlink,.rst-content h2 .btn .headerlink,.rst-content h2 .nav .headerlink,.rst-content h3 .btn .headerlink,.rst-content h3 .nav .headerlink,.rst-content h4 .btn .headerlink,.rst-content h4 .nav .headerlink,.rst-content h5 .btn .headerlink,.rst-content h5 .nav .headerlink,.rst-content h6 .btn .headerlink,.rst-content h6 .nav .headerlink,.rst-content p .btn .headerlink,.rst-content p .nav .headerlink,.rst-content table>caption .btn .headerlink,.rst-content table>caption .nav .headerlink,.rst-content tt.download .btn span:first-child,.rst-content tt.download .nav span:first-child,.wy-menu-vertical li .btn button.toctree-expand,.wy-menu-vertical li.current>a .btn button.toctree-expand,.wy-menu-vertical li.current>a .nav button.toctree-expand,.wy-menu-vertical li .nav button.toctree-expand,.wy-menu-vertical li.on a .btn button.toctree-expand,.wy-menu-vertical li.on a .nav button.toctree-expand{display:inline}.btn .fa-large.icon,.btn .fa.fa-large,.btn .rst-content .code-block-caption .fa-large.headerlink,.btn .rst-content .eqno .fa-large.headerlink,.btn .rst-content .fa-large.admonition-title,.btn .rst-content code.download span.fa-large:first-child,.btn .rst-content dl dt .fa-large.headerlink,.btn .rst-content h1 .fa-large.headerlink,.btn .rst-content h2 .fa-large.headerlink,.btn .rst-content h3 .fa-large.headerlink,.btn .rst-content h4 .fa-large.headerlink,.btn .rst-content h5 .fa-large.headerlink,.btn .rst-content h6 .fa-large.headerlink,.btn .rst-content p .fa-large.headerlink,.btn .rst-content table>caption .fa-large.headerlink,.btn .rst-content tt.download span.fa-large:first-child,.btn .wy-menu-vertical li button.fa-large.toctree-expand,.nav .fa-large.icon,.nav .fa.fa-large,.nav .rst-content .code-block-caption .fa-large.headerlink,.nav .rst-content .eqno .fa-large.headerlink,.nav .rst-content .fa-large.admonition-title,.nav .rst-content code.download span.fa-large:first-child,.nav .rst-content dl dt .fa-large.headerlink,.nav .rst-content h1 .fa-large.headerlink,.nav .rst-content h2 .fa-large.headerlink,.nav .rst-content h3 .fa-large.headerlink,.nav .rst-content h4 .fa-large.headerlink,.nav .rst-content h5 .fa-large.headerlink,.nav .rst-content h6 .fa-large.headerlink,.nav .rst-content p .fa-large.headerlink,.nav .rst-content table>caption .fa-large.headerlink,.nav .rst-content tt.download span.fa-large:first-child,.nav .wy-menu-vertical li button.fa-large.toctree-expand,.rst-content .btn .fa-large.admonition-title,.rst-content .code-block-caption .btn .fa-large.headerlink,.rst-content .code-block-caption .nav .fa-large.headerlink,.rst-content .eqno .btn .fa-large.headerlink,.rst-content .eqno .nav .fa-large.headerlink,.rst-content .nav .fa-large.admonition-title,.rst-content code.download .btn span.fa-large:first-child,.rst-content code.download .nav span.fa-large:first-child,.rst-content dl dt .btn .fa-large.headerlink,.rst-content dl dt .nav .fa-large.headerlink,.rst-content h1 .btn .fa-large.headerlink,.rst-content h1 .nav .fa-large.headerlink,.rst-content h2 .btn .fa-large.headerlink,.rst-content h2 .nav .fa-large.headerlink,.rst-content h3 .btn .fa-large.headerlink,.rst-content h3 .nav .fa-large.headerlink,.rst-content h4 .btn .fa-large.headerlink,.rst-content h4 .nav .fa-large.headerlink,.rst-content h5 .btn .fa-large.headerlink,.rst-content h5 .nav .fa-large.headerlink,.rst-content h6 .btn .fa-large.headerlink,.rst-content h6 .nav .fa-large.headerlink,.rst-content p .btn .fa-large.headerlink,.rst-content p .nav .fa-large.headerlink,.rst-content table>caption .btn .fa-large.headerlink,.rst-content table>caption .nav .fa-large.headerlink,.rst-content tt.download .btn span.fa-large:first-child,.rst-content tt.download .nav span.fa-large:first-child,.wy-menu-vertical li .btn button.fa-large.toctree-expand,.wy-menu-vertical li .nav button.fa-large.toctree-expand{line-height:.9em}.btn .fa-spin.icon,.btn .fa.fa-spin,.btn .rst-content .code-block-caption .fa-spin.headerlink,.btn .rst-content .eqno .fa-spin.headerlink,.btn .rst-content .fa-spin.admonition-title,.btn .rst-content code.download span.fa-spin:first-child,.btn .rst-content dl dt .fa-spin.headerlink,.btn .rst-content h1 .fa-spin.headerlink,.btn .rst-content h2 .fa-spin.headerlink,.btn .rst-content h3 .fa-spin.headerlink,.btn .rst-content h4 .fa-spin.headerlink,.btn .rst-content h5 .fa-spin.headerlink,.btn .rst-content h6 .fa-spin.headerlink,.btn .rst-content p .fa-spin.headerlink,.btn .rst-content table>caption .fa-spin.headerlink,.btn .rst-content tt.download span.fa-spin:first-child,.btn .wy-menu-vertical li button.fa-spin.toctree-expand,.nav .fa-spin.icon,.nav .fa.fa-spin,.nav .rst-content .code-block-caption .fa-spin.headerlink,.nav .rst-content .eqno .fa-spin.headerlink,.nav .rst-content .fa-spin.admonition-title,.nav .rst-content code.download span.fa-spin:first-child,.nav .rst-content dl dt .fa-spin.headerlink,.nav .rst-content h1 .fa-spin.headerlink,.nav .rst-content h2 .fa-spin.headerlink,.nav .rst-content h3 .fa-spin.headerlink,.nav .rst-content h4 .fa-spin.headerlink,.nav .rst-content h5 .fa-spin.headerlink,.nav .rst-content h6 .fa-spin.headerlink,.nav .rst-content p .fa-spin.headerlink,.nav .rst-content table>caption .fa-spin.headerlink,.nav .rst-content tt.download span.fa-spin:first-child,.nav .wy-menu-vertical li button.fa-spin.toctree-expand,.rst-content .btn .fa-spin.admonition-title,.rst-content .code-block-caption .btn .fa-spin.headerlink,.rst-content .code-block-caption .nav .fa-spin.headerlink,.rst-content .eqno .btn .fa-spin.headerlink,.rst-content .eqno .nav .fa-spin.headerlink,.rst-content .nav .fa-spin.admonition-title,.rst-content code.download .btn span.fa-spin:first-child,.rst-content code.download .nav span.fa-spin:first-child,.rst-content dl dt .btn .fa-spin.headerlink,.rst-content dl dt .nav .fa-spin.headerlink,.rst-content h1 .btn .fa-spin.headerlink,.rst-content h1 .nav .fa-spin.headerlink,.rst-content h2 .btn .fa-spin.headerlink,.rst-content h2 .nav .fa-spin.headerlink,.rst-content h3 .btn .fa-spin.headerlink,.rst-content h3 .nav .fa-spin.headerlink,.rst-content h4 .btn .fa-spin.headerlink,.rst-content h4 .nav .fa-spin.headerlink,.rst-content h5 .btn .fa-spin.headerlink,.rst-content h5 .nav .fa-spin.headerlink,.rst-content h6 .btn .fa-spin.headerlink,.rst-content h6 .nav .fa-spin.headerlink,.rst-content p .btn .fa-spin.headerlink,.rst-content p .nav .fa-spin.headerlink,.rst-content table>caption .btn .fa-spin.headerlink,.rst-content table>caption .nav .fa-spin.headerlink,.rst-content tt.download .btn span.fa-spin:first-child,.rst-content tt.download .nav span.fa-spin:first-child,.wy-menu-vertical li .btn button.fa-spin.toctree-expand,.wy-menu-vertical li .nav button.fa-spin.toctree-expand{display:inline-block}.btn.fa:before,.btn.icon:before,.rst-content .btn.admonition-title:before,.rst-content .code-block-caption .btn.headerlink:before,.rst-content .eqno .btn.headerlink:before,.rst-content code.download span.btn:first-child:before,.rst-content dl dt .btn.headerlink: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 p .btn.headerlink:before,.rst-content table>caption .btn.headerlink:before,.rst-content tt.download span.btn:first-child:before,.wy-menu-vertical li button.btn.toctree-expand:before{opacity:.5;-webkit-transition:opacity .05s ease-in;-moz-transition:opacity .05s ease-in;transition:opacity .05s ease-in}.btn.fa:hover:before,.btn.icon:hover:before,.rst-content .btn.admonition-title:hover:before,.rst-content .code-block-caption .btn.headerlink:hover:before,.rst-content .eqno .btn.headerlink:hover:before,.rst-content code.download span.btn:first-child:hover:before,.rst-content dl dt .btn.headerlink: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 p .btn.headerlink:hover:before,.rst-content table>caption .btn.headerlink:hover:before,.rst-content tt.download span.btn:first-child:hover:before,.wy-menu-vertical li button.btn.toctree-expand:hover:before{opacity:1}.btn-mini .fa:before,.btn-mini .icon:before,.btn-mini .rst-content .admonition-title:before,.btn-mini .rst-content .code-block-caption .headerlink:before,.btn-mini .rst-content .eqno .headerlink:before,.btn-mini .rst-content code.download span:first-child:before,.btn-mini .rst-content dl dt .headerlink:before,.btn-mini .rst-content h1 .headerlink:before,.btn-mini .rst-content h2 .headerlink:before,.btn-mini .rst-content h3 .headerlink:before,.btn-mini .rst-content h4 .headerlink:before,.btn-mini .rst-content h5 .headerlink:before,.btn-mini .rst-content h6 .headerlink:before,.btn-mini .rst-content p .headerlink:before,.btn-mini .rst-content table>caption .headerlink:before,.btn-mini .rst-content tt.download span:first-child:before,.btn-mini .wy-menu-vertical li button.toctree-expand:before,.rst-content .btn-mini .admonition-title:before,.rst-content .code-block-caption .btn-mini .headerlink:before,.rst-content .eqno .btn-mini .headerlink:before,.rst-content code.download .btn-mini span:first-child:before,.rst-content dl dt .btn-mini .headerlink:before,.rst-content h1 .btn-mini .headerlink:before,.rst-content h2 .btn-mini .headerlink:before,.rst-content h3 .btn-mini .headerlink:before,.rst-content h4 .btn-mini .headerlink:before,.rst-content h5 .btn-mini .headerlink:before,.rst-content h6 .btn-mini .headerlink:before,.rst-content p .btn-mini .headerlink:before,.rst-content table>caption .btn-mini .headerlink:before,.rst-content tt.download .btn-mini span:first-child:before,.wy-menu-vertical li .btn-mini button.toctree-expand:before{font-size:14px;vertical-align:-15%}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.wy-alert{padding:12px;line-height:24px;margin-bottom:24px;background:#e7f2fa}.rst-content .admonition-title,.wy-alert-title{font-weight:700;display:block;color:#fff;background:#6ab0de;padding:6px 12px;margin:-12px -12px 12px}.rst-content .danger,.rst-content .error,.rst-content .wy-alert-danger.admonition,.rst-content .wy-alert-danger.admonition-todo,.rst-content .wy-alert-danger.attention,.rst-content .wy-alert-danger.caution,.rst-content .wy-alert-danger.hint,.rst-content .wy-alert-danger.important,.rst-content .wy-alert-danger.note,.rst-content .wy-alert-danger.seealso,.rst-content .wy-alert-danger.tip,.rst-content .wy-alert-danger.warning,.wy-alert.wy-alert-danger{background:#fdf3f2}.rst-content .danger .admonition-title,.rst-content .danger .wy-alert-title,.rst-content .error .admonition-title,.rst-content .error .wy-alert-title,.rst-content .wy-alert-danger.admonition-todo .admonition-title,.rst-content .wy-alert-danger.admonition-todo .wy-alert-title,.rst-content .wy-alert-danger.admonition .admonition-title,.rst-content .wy-alert-danger.admonition .wy-alert-title,.rst-content .wy-alert-danger.attention .admonition-title,.rst-content .wy-alert-danger.attention .wy-alert-title,.rst-content .wy-alert-danger.caution .admonition-title,.rst-content .wy-alert-danger.caution .wy-alert-title,.rst-content .wy-alert-danger.hint .admonition-title,.rst-content .wy-alert-danger.hint .wy-alert-title,.rst-content .wy-alert-danger.important .admonition-title,.rst-content .wy-alert-danger.important .wy-alert-title,.rst-content .wy-alert-danger.note .admonition-title,.rst-content .wy-alert-danger.note .wy-alert-title,.rst-content .wy-alert-danger.seealso .admonition-title,.rst-content .wy-alert-danger.seealso .wy-alert-title,.rst-content .wy-alert-danger.tip .admonition-title,.rst-content .wy-alert-danger.tip .wy-alert-title,.rst-content .wy-alert-danger.warning .admonition-title,.rst-content .wy-alert-danger.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-danger .admonition-title,.wy-alert.wy-alert-danger .rst-content .admonition-title,.wy-alert.wy-alert-danger .wy-alert-title{background:#f29f97}.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .warning,.rst-content .wy-alert-warning.admonition,.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.note,.rst-content .wy-alert-warning.seealso,.rst-content .wy-alert-warning.tip,.wy-alert.wy-alert-warning{background:#ffedcc}.rst-content .admonition-todo .admonition-title,.rst-content .admonition-todo .wy-alert-title,.rst-content .attention .admonition-title,.rst-content .attention .wy-alert-title,.rst-content .caution .admonition-title,.rst-content .caution .wy-alert-title,.rst-content .warning .admonition-title,.rst-content .warning .wy-alert-title,.rst-content .wy-alert-warning.admonition .admonition-title,.rst-content .wy-alert-warning.admonition .wy-alert-title,.rst-content .wy-alert-warning.danger .admonition-title,.rst-content .wy-alert-warning.danger .wy-alert-title,.rst-content .wy-alert-warning.error .admonition-title,.rst-content .wy-alert-warning.error .wy-alert-title,.rst-content .wy-alert-warning.hint .admonition-title,.rst-content .wy-alert-warning.hint .wy-alert-title,.rst-content .wy-alert-warning.important .admonition-title,.rst-content .wy-alert-warning.important .wy-alert-title,.rst-content .wy-alert-warning.note .admonition-title,.rst-content .wy-alert-warning.note .wy-alert-title,.rst-content .wy-alert-warning.seealso .admonition-title,.rst-content .wy-alert-warning.seealso .wy-alert-title,.rst-content .wy-alert-warning.tip .admonition-title,.rst-content .wy-alert-warning.tip .wy-alert-title,.rst-content .wy-alert.wy-alert-warning .admonition-title,.wy-alert.wy-alert-warning .rst-content .admonition-title,.wy-alert.wy-alert-warning .wy-alert-title{background:#f0b37e}.rst-content .note,.rst-content .seealso,.rst-content .wy-alert-info.admonition,.rst-content .wy-alert-info.admonition-todo,.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,.wy-alert.wy-alert-info{background:#e7f2fa}.rst-content .note .admonition-title,.rst-content .note .wy-alert-title,.rst-content .seealso .admonition-title,.rst-content .seealso .wy-alert-title,.rst-content .wy-alert-info.admonition-todo .admonition-title,.rst-content .wy-alert-info.admonition-todo .wy-alert-title,.rst-content .wy-alert-info.admonition .admonition-title,.rst-content .wy-alert-info.admonition .wy-alert-title,.rst-content .wy-alert-info.attention .admonition-title,.rst-content .wy-alert-info.attention .wy-alert-title,.rst-content .wy-alert-info.caution .admonition-title,.rst-content .wy-alert-info.caution .wy-alert-title,.rst-content .wy-alert-info.danger .admonition-title,.rst-content .wy-alert-info.danger .wy-alert-title,.rst-content .wy-alert-info.error .admonition-title,.rst-content .wy-alert-info.error .wy-alert-title,.rst-content .wy-alert-info.hint .admonition-title,.rst-content .wy-alert-info.hint .wy-alert-title,.rst-content .wy-alert-info.important .admonition-title,.rst-content .wy-alert-info.important .wy-alert-title,.rst-content .wy-alert-info.tip .admonition-title,.rst-content .wy-alert-info.tip .wy-alert-title,.rst-content .wy-alert-info.warning .admonition-title,.rst-content .wy-alert-info.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-info .admonition-title,.wy-alert.wy-alert-info .rst-content .admonition-title,.wy-alert.wy-alert-info .wy-alert-title{background:#6ab0de}.rst-content .hint,.rst-content .important,.rst-content .tip,.rst-content .wy-alert-success.admonition,.rst-content .wy-alert-success.admonition-todo,.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 .wy-alert-success.note,.rst-content .wy-alert-success.seealso,.rst-content .wy-alert-success.warning,.wy-alert.wy-alert-success{background:#dbfaf4}.rst-content .hint .admonition-title,.rst-content .hint .wy-alert-title,.rst-content .important .admonition-title,.rst-content .important .wy-alert-title,.rst-content .tip .admonition-title,.rst-content .tip .wy-alert-title,.rst-content .wy-alert-success.admonition-todo .admonition-title,.rst-content .wy-alert-success.admonition-todo .wy-alert-title,.rst-content .wy-alert-success.admonition .admonition-title,.rst-content .wy-alert-success.admonition .wy-alert-title,.rst-content .wy-alert-success.attention .admonition-title,.rst-content .wy-alert-success.attention .wy-alert-title,.rst-content .wy-alert-success.caution .admonition-title,.rst-content .wy-alert-success.caution .wy-alert-title,.rst-content .wy-alert-success.danger .admonition-title,.rst-content .wy-alert-success.danger .wy-alert-title,.rst-content .wy-alert-success.error .admonition-title,.rst-content .wy-alert-success.error .wy-alert-title,.rst-content .wy-alert-success.note .admonition-title,.rst-content .wy-alert-success.note .wy-alert-title,.rst-content .wy-alert-success.seealso .admonition-title,.rst-content .wy-alert-success.seealso .wy-alert-title,.rst-content .wy-alert-success.warning .admonition-title,.rst-content .wy-alert-success.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-success .admonition-title,.wy-alert.wy-alert-success .rst-content .admonition-title,.wy-alert.wy-alert-success .wy-alert-title{background:#1abc9c}.rst-content .wy-alert-neutral.admonition,.rst-content .wy-alert-neutral.admonition-todo,.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.note,.rst-content .wy-alert-neutral.seealso,.rst-content .wy-alert-neutral.tip,.rst-content .wy-alert-neutral.warning,.wy-alert.wy-alert-neutral{background:#f3f6f6}.rst-content .wy-alert-neutral.admonition-todo .admonition-title,.rst-content .wy-alert-neutral.admonition-todo .wy-alert-title,.rst-content .wy-alert-neutral.admonition .admonition-title,.rst-content .wy-alert-neutral.admonition .wy-alert-title,.rst-content .wy-alert-neutral.attention .admonition-title,.rst-content .wy-alert-neutral.attention .wy-alert-title,.rst-content .wy-alert-neutral.caution .admonition-title,.rst-content .wy-alert-neutral.caution .wy-alert-title,.rst-content .wy-alert-neutral.danger .admonition-title,.rst-content .wy-alert-neutral.danger .wy-alert-title,.rst-content .wy-alert-neutral.error .admonition-title,.rst-content .wy-alert-neutral.error .wy-alert-title,.rst-content .wy-alert-neutral.hint .admonition-title,.rst-content .wy-alert-neutral.hint .wy-alert-title,.rst-content .wy-alert-neutral.important .admonition-title,.rst-content .wy-alert-neutral.important .wy-alert-title,.rst-content .wy-alert-neutral.note .admonition-title,.rst-content .wy-alert-neutral.note .wy-alert-title,.rst-content .wy-alert-neutral.seealso .admonition-title,.rst-content .wy-alert-neutral.seealso .wy-alert-title,.rst-content .wy-alert-neutral.tip .admonition-title,.rst-content .wy-alert-neutral.tip .wy-alert-title,.rst-content .wy-alert-neutral.warning .admonition-title,.rst-content .wy-alert-neutral.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-neutral .admonition-title,.wy-alert.wy-alert-neutral .rst-content .admonition-title,.wy-alert.wy-alert-neutral .wy-alert-title{color:#404040;background:#e1e4e5}.rst-content .wy-alert-neutral.admonition-todo a,.rst-content .wy-alert-neutral.admonition 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.note a,.rst-content .wy-alert-neutral.seealso a,.rst-content .wy-alert-neutral.tip a,.rst-content .wy-alert-neutral.warning a,.wy-alert.wy-alert-neutral a{color:#2980b9}.rst-content .admonition-todo p:last-child,.rst-content .admonition 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 .note p:last-child,.rst-content .seealso p:last-child,.rst-content .tip p:last-child,.rst-content .warning p:last-child,.wy-alert p:last-child{margin-bottom:0}.wy-tray-container{position:fixed;bottom:0;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,.1);padding:0 24px;min-width:20%;opacity:0;height:0;line-height:56px;overflow:hidden;-webkit-transition:all .3s ease-in;-moz-transition:all .3s ease-in;transition:all .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{display:inline-block;border-radius:2px;line-height:normal;white-space:nowrap;text-align:center;cursor:pointer;font-size:100%;padding:6px 12px 8px;color:#fff;border:1px solid rgba(0,0,0,.1);background-color:#27ae60;text-decoration:none;font-weight:400;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 2px -1px hsla(0,0%,100%,.5),inset 0 -2px 0 0 rgba(0,0,0,.1);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 .1s linear;-moz-transition:all .1s linear;transition:all .1s linear}.btn-hover{background:#2e8ece;color:#fff}.btn:hover{background:#2cc36b;color:#fff}.btn:focus{background:#2cc36b;outline:0}.btn:active{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.05),inset 0 2px 0 0 rgba(0,0,0,.1);padding:8px 12px 6px}.btn:visited{color:#fff}.btn-disabled,.btn-disabled:active,.btn-disabled:focus,.btn-disabled:hover,.btn:disabled{background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);opacity:.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:#295!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:active,.btn-link:hover{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:after,.wy-btn-group:before{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:1px solid #cfd7dd;box-shadow:0 2px 2px 0 rgba(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:1px solid #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 #f5f5f5;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 .wy-help-inline,.wy-form-aligned input,.wy-form-aligned label,.wy-form-aligned select,.wy-form-aligned textarea{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{margin:0}fieldset,legend{border:0;padding:0}legend{width:100%;white-space:normal;margin-bottom:24px;font-size:150%;*margin-left:-7px}label,legend{display:block}label{margin:0 0 .3125em;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;max-width:1200px;margin-left:auto;margin-right:auto;*zoom:1}.wy-control-group:after,.wy-control-group:before{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 input[type=color],.wy-control-group .wy-form-full input[type=date],.wy-control-group .wy-form-full input[type=datetime-local],.wy-control-group .wy-form-full input[type=datetime],.wy-control-group .wy-form-full input[type=email],.wy-control-group .wy-form-full input[type=month],.wy-control-group .wy-form-full input[type=number],.wy-control-group .wy-form-full input[type=password],.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=text],.wy-control-group .wy-form-full input[type=time],.wy-control-group .wy-form-full input[type=url],.wy-control-group .wy-form-full input[type=week],.wy-control-group .wy-form-full select,.wy-control-group .wy-form-halves input[type=color],.wy-control-group .wy-form-halves input[type=date],.wy-control-group .wy-form-halves input[type=datetime-local],.wy-control-group .wy-form-halves input[type=datetime],.wy-control-group .wy-form-halves input[type=email],.wy-control-group .wy-form-halves input[type=month],.wy-control-group .wy-form-halves input[type=number],.wy-control-group .wy-form-halves input[type=password],.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=text],.wy-control-group .wy-form-halves input[type=time],.wy-control-group .wy-form-halves input[type=url],.wy-control-group .wy-form-halves input[type=week],.wy-control-group .wy-form-halves select,.wy-control-group .wy-form-thirds input[type=color],.wy-control-group .wy-form-thirds input[type=date],.wy-control-group .wy-form-thirds input[type=datetime-local],.wy-control-group .wy-form-thirds input[type=datetime],.wy-control-group .wy-form-thirds input[type=email],.wy-control-group .wy-form-thirds input[type=month],.wy-control-group .wy-form-thirds input[type=number],.wy-control-group .wy-form-thirds input[type=password],.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=text],.wy-control-group .wy-form-thirds input[type=time],.wy-control-group .wy-form-thirds input[type=url],.wy-control-group .wy-form-thirds input[type=week],.wy-control-group .wy-form-thirds select{width:100%}.wy-control-group .wy-form-full{float:left;display:block;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,.wy-control-group .wy-form-halves:nth-of-type(2n){margin-right:0}.wy-control-group .wy-form-halves:nth-of-type(odd){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,.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,.wy-control-no-input{margin:6px 0 0;font-size:90%}.wy-control-no-input{display:inline-block}.wy-control-group.fluid-input input[type=color],.wy-control-group.fluid-input input[type=date],.wy-control-group.fluid-input input[type=datetime-local],.wy-control-group.fluid-input input[type=datetime],.wy-control-group.fluid-input input[type=email],.wy-control-group.fluid-input input[type=month],.wy-control-group.fluid-input input[type=number],.wy-control-group.fluid-input input[type=password],.wy-control-group.fluid-input input[type=search],.wy-control-group.fluid-input input[type=tel],.wy-control-group.fluid-input input[type=text],.wy-control-group.fluid-input input[type=time],.wy-control-group.fluid-input input[type=url],.wy-control-group.fluid-input input[type=week]{width:100%}.wy-form-message-inline{padding-left:.3em;color:#666;font-size:90%}.wy-form-message{display:block;color:#999;font-size:70%;margin-top:.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=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week]{-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 .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}input[type=datetime-local]{padding:.34375em .625em}input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{padding:0;margin-right:.3125em;*height:13px;*width:13px}input[type=checkbox],input[type=radio],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=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus{outline:0;outline:thin dotted\9;border-color:#333}input.no-focus:focus{border-color:#ccc!important}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:thin dotted #333;outline:1px auto #129fea}input[type=color][disabled],input[type=date][disabled],input[type=datetime-local][disabled],input[type=datetime][disabled],input[type=email][disabled],input[type=month][disabled],input[type=number][disabled],input[type=password][disabled],input[type=search][disabled],input[type=tel][disabled],input[type=text][disabled],input[type=time][disabled],input[type=url][disabled],input[type=week][disabled]{cursor:not-allowed;background-color:#fafafa}input:focus:invalid,select:focus:invalid,textarea:focus:invalid{color:#e74c3c;border:1px solid #e74c3c}input:focus:invalid:focus,select:focus:invalid:focus,textarea:focus:invalid:focus{border-color:#e74c3c}input[type=checkbox]:focus:invalid:focus,input[type=file]:focus:invalid:focus,input[type=radio]: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:.5em .625em;display:inline-block;border:1px solid #ccc;font-size:80%;box-shadow:inset 0 1px 3px #ddd;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}select{border:1px solid #ccc;background-color:#fff}select[multiple]{height:auto}select:focus,textarea:focus{outline:0}input[readonly],select[disabled],select[readonly],textarea[disabled],textarea[readonly]{cursor:not-allowed;background-color:#fafafa}input[type=checkbox][disabled],input[type=radio][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:1px solid #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{left:0;top:0;width:36px;height:12px;background:#ccc}.wy-switch:after,.wy-switch:before{position:absolute;content:"";display:block;border-radius:4px;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.wy-switch:after{width:18px;height:18px;background:#999;left:-3px;top:-3px}.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:.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=color],.wy-control-group.wy-control-group-error input[type=date],.wy-control-group.wy-control-group-error input[type=datetime-local],.wy-control-group.wy-control-group-error input[type=datetime],.wy-control-group.wy-control-group-error input[type=email],.wy-control-group.wy-control-group-error input[type=month],.wy-control-group.wy-control-group-error input[type=number],.wy-control-group.wy-control-group-error input[type=password],.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=text],.wy-control-group.wy-control-group-error input[type=time],.wy-control-group.wy-control-group-error input[type=url],.wy-control-group.wy-control-group-error input[type=week],.wy-control-group.wy-control-group-error textarea{border:1px solid #e74c3c}.wy-inline-validate{white-space:nowrap}.wy-inline-validate .wy-input-context{padding:.5em .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:.7em 0 0}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=text],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week],.wy-form label{margin-bottom:.3em;display:block}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week]{margin-bottom:0}.wy-form-aligned .wy-control-group label{margin-bottom:.3em;text-align:left;display:block;width:100%}.wy-form-aligned .wy-control{margin:1.5em 0 0}.wy-form-message,.wy-form-message-inline,.wy-form .wy-help-inline{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%}.rst-content table.docutils,.rst-content table.field-list,.wy-table{border-collapse:collapse;border-spacing:0;empty-cells:show;margin-bottom:24px}.rst-content table.docutils caption,.rst-content table.field-list caption,.wy-table caption{color:#000;font:italic 85%/1 arial,sans-serif;padding:1em 0;text-align:center}.rst-content table.docutils td,.rst-content table.docutils th,.rst-content table.field-list td,.rst-content table.field-list th,.wy-table td,.wy-table th{font-size:90%;margin:0;overflow:visible;padding:8px 16px}.rst-content table.docutils td:first-child,.rst-content table.docutils th:first-child,.rst-content table.field-list td:first-child,.rst-content table.field-list th:first-child,.wy-table td:first-child,.wy-table th:first-child{border-left-width:0}.rst-content table.docutils thead,.rst-content table.field-list thead,.wy-table thead{color:#000;text-align:left;vertical-align:bottom;white-space:nowrap}.rst-content table.docutils thead th,.rst-content table.field-list thead th,.wy-table thead th{font-weight:700;border-bottom:2px solid #e1e4e5}.rst-content table.docutils td,.rst-content table.field-list td,.wy-table td{background-color:transparent;vertical-align:middle}.rst-content table.docutils td p,.rst-content table.field-list td p,.wy-table td p{line-height:18px}.rst-content table.docutils td p:last-child,.rst-content table.field-list td p:last-child,.wy-table td p:last-child{margin-bottom:0}.rst-content table.docutils .wy-table-cell-min,.rst-content table.field-list .wy-table-cell-min,.wy-table .wy-table-cell-min{width:1%;padding-right:0}.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]{margin:0}.wy-table-secondary{color:grey;font-size:90%}.wy-table-tertiary{color:grey;font-size:80%}.rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td,.wy-table-backed,.wy-table-odd td,.wy-table-striped tr:nth-child(2n-1) td{background-color:#f3f6f6}.rst-content table.docutils,.wy-table-bordered-all{border:1px solid #e1e4e5}.rst-content table.docutils td,.wy-table-bordered-all td{border-bottom:1px solid #e1e4e5;border-left:1px solid #e1e4e5}.rst-content table.docutils tbody>tr:last-child td,.wy-table-bordered-all 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 td,.wy-table-horizontal th{border-width:0 0 1px;border-bottom:1px solid #e1e4e5}.wy-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.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%}body,html{overflow-x:hidden}body{font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;font-weight:400;color:#404040;min-height:100%;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}.rst-content .toctree-wrapper>p.caption,h1,h2,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;font-size:16px;margin:0 0 24px}h1{font-size:175%}.rst-content .toctree-wrapper>p.caption,h2{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}.rst-content code,.rst-content tt,code{white-space:nowrap;max-width:100%;background:#fff;border:1px solid #e1e4e5;font-size:75%;padding:0 5px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#e74c3c;overflow-x:auto}.rst-content tt.code-large,code.code-large{font-size:90%}.rst-content .section ul,.rst-content .toctree-wrapper ul,.rst-content section ul,.wy-plain-list-disc,article ul{list-style:disc;line-height:24px;margin-bottom:24px}.rst-content .section ul li,.rst-content .toctree-wrapper ul li,.rst-content section ul li,.wy-plain-list-disc li,article ul li{list-style:disc;margin-left:24px}.rst-content .section ul li p:last-child,.rst-content .section ul li ul,.rst-content .toctree-wrapper ul li p:last-child,.rst-content .toctree-wrapper ul li ul,.rst-content section ul li p:last-child,.rst-content section ul li ul,.wy-plain-list-disc li p:last-child,.wy-plain-list-disc li ul,article ul li p:last-child,article ul li ul{margin-bottom:0}.rst-content .section ul li li,.rst-content .toctree-wrapper ul li li,.rst-content section ul li li,.wy-plain-list-disc li li,article ul li li{list-style:circle}.rst-content .section ul li li li,.rst-content .toctree-wrapper ul li li li,.rst-content section ul li li li,.wy-plain-list-disc li li li,article ul li li li{list-style:square}.rst-content .section ul li ol li,.rst-content .toctree-wrapper ul li ol li,.rst-content section ul li ol li,.wy-plain-list-disc li ol li,article ul li ol li{list-style:decimal}.rst-content .section ol,.rst-content .section ol.arabic,.rst-content .toctree-wrapper ol,.rst-content .toctree-wrapper ol.arabic,.rst-content section ol,.rst-content section ol.arabic,.wy-plain-list-decimal,article ol{list-style:decimal;line-height:24px;margin-bottom:24px}.rst-content .section ol.arabic li,.rst-content .section ol li,.rst-content .toctree-wrapper ol.arabic li,.rst-content .toctree-wrapper ol li,.rst-content section ol.arabic li,.rst-content section ol li,.wy-plain-list-decimal li,article ol li{list-style:decimal;margin-left:24px}.rst-content .section ol.arabic li ul,.rst-content .section ol li p:last-child,.rst-content .section ol li ul,.rst-content .toctree-wrapper ol.arabic li ul,.rst-content .toctree-wrapper ol li p:last-child,.rst-content .toctree-wrapper ol li ul,.rst-content section ol.arabic li ul,.rst-content section ol li p:last-child,.rst-content section ol li ul,.wy-plain-list-decimal li p:last-child,.wy-plain-list-decimal li ul,article ol li p:last-child,article ol li ul{margin-bottom:0}.rst-content .section ol.arabic li ul li,.rst-content .section ol li ul li,.rst-content .toctree-wrapper ol.arabic li ul li,.rst-content .toctree-wrapper ol li ul li,.rst-content section ol.arabic li ul li,.rst-content section ol li ul li,.wy-plain-list-decimal li ul li,article ol li ul li{list-style:disc}.wy-breadcrumbs{*zoom:1}.wy-breadcrumbs:after,.wy-breadcrumbs:before{display:table;content:""}.wy-breadcrumbs:after{clear:both}.wy-breadcrumbs>li{display:inline-block;padding-top:5px}.wy-breadcrumbs>li.wy-breadcrumbs-aside{float:right}.rst-content .wy-breadcrumbs>li code,.rst-content .wy-breadcrumbs>li tt,.wy-breadcrumbs>li .rst-content tt,.wy-breadcrumbs>li code{all:inherit;color:inherit}.breadcrumb-item:before{content:"/";color:#bbb;font-size:13px;padding:0 6px 0 3px}.wy-breadcrumbs-extra{margin-bottom:0;color:#b3b3b3;font-size:80%;display:inline-block}@media screen and (max-width:480px){.wy-breadcrumbs-extra,.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}@media print{.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}html{font-size:16px}.wy-affix{position:fixed;top:1.618em}.wy-menu a:hover{text-decoration:none}.wy-menu-horiz{*zoom:1}.wy-menu-horiz:after,.wy-menu-horiz:before{display:table;content:""}.wy-menu-horiz:after{clear:both}.wy-menu-horiz li,.wy-menu-horiz ul{display:inline-block}.wy-menu-horiz li:hover{background:hsla(0,0%,100%,.1)}.wy-menu-horiz li.divide-left{border-left:1px solid #404040}.wy-menu-horiz li.divide-right{border-right:1px solid #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{color:#55a5d9;height:32px;line-height:32px;padding:0 1.618em;margin:12px 0 0;display:block;font-weight:700;text-transform:uppercase;font-size:85%;white-space:nowrap}.wy-menu-vertical ul{margin-bottom:0}.wy-menu-vertical li.divide-top{border-top:1px solid #404040}.wy-menu-vertical li.divide-bottom{border-bottom:1px solid #404040}.wy-menu-vertical li.current{background:#e3e3e3}.wy-menu-vertical li.current a{color:grey;border-right:1px solid #c9c9c9;padding:.4045em 2.427em}.wy-menu-vertical li.current a:hover{background:#d6d6d6}.rst-content .wy-menu-vertical li tt,.wy-menu-vertical li .rst-content tt,.wy-menu-vertical li code{border:none;background:inherit;color:inherit;padding-left:0;padding-right:0}.wy-menu-vertical li button.toctree-expand{display:block;float:left;margin-left:-1.2em;line-height:18px;color:#4d4d4d;border:none;background:none;padding:0}.wy-menu-vertical li.current>a,.wy-menu-vertical li.on a{color:#404040;font-weight:700;position:relative;background:#fcfcfc;border:none;padding:.4045em 1.618em}.wy-menu-vertical li.current>a:hover,.wy-menu-vertical li.on a:hover{background:#fcfcfc}.wy-menu-vertical li.current>a:hover button.toctree-expand,.wy-menu-vertical li.on a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand{display:block;line-height:18px;color:#333}.wy-menu-vertical li.toctree-l1.current>a{border-bottom:1px solid #c9c9c9;border-top:1px solid #c9c9c9}.wy-menu-vertical .toctree-l1.current .toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .toctree-l11>ul{display:none}.wy-menu-vertical .toctree-l1.current .current.toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .current.toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .current.toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .current.toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .current.toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .current.toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .current.toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .current.toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .current.toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .current.toctree-l11>ul{display:block}.wy-menu-vertical li.toctree-l3,.wy-menu-vertical li.toctree-l4{font-size:.9em}.wy-menu-vertical li.toctree-l2 a,.wy-menu-vertical li.toctree-l3 a,.wy-menu-vertical li.toctree-l4 a,.wy-menu-vertical li.toctree-l5 a,.wy-menu-vertical li.toctree-l6 a,.wy-menu-vertical li.toctree-l7 a,.wy-menu-vertical li.toctree-l8 a,.wy-menu-vertical li.toctree-l9 a,.wy-menu-vertical li.toctree-l10 a{color:#404040}.wy-menu-vertical li.toctree-l2 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l3 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l4 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l5 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l6 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l7 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l8 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l9 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l10 a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a,.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a,.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a,.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a,.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a,.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a,.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a,.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{display:block}.wy-menu-vertical li.toctree-l2.current>a{padding:.4045em 2.427em}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{padding:.4045em 1.618em .4045em 4.045em}.wy-menu-vertical li.toctree-l3.current>a{padding:.4045em 4.045em}.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{padding:.4045em 1.618em .4045em 5.663em}.wy-menu-vertical li.toctree-l4.current>a{padding:.4045em 5.663em}.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a{padding:.4045em 1.618em .4045em 7.281em}.wy-menu-vertical li.toctree-l5.current>a{padding:.4045em 7.281em}.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a{padding:.4045em 1.618em .4045em 8.899em}.wy-menu-vertical li.toctree-l6.current>a{padding:.4045em 8.899em}.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a{padding:.4045em 1.618em .4045em 10.517em}.wy-menu-vertical li.toctree-l7.current>a{padding:.4045em 10.517em}.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a{padding:.4045em 1.618em .4045em 12.135em}.wy-menu-vertical li.toctree-l8.current>a{padding:.4045em 12.135em}.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a{padding:.4045em 1.618em .4045em 13.753em}.wy-menu-vertical li.toctree-l9.current>a{padding:.4045em 13.753em}.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a{padding:.4045em 1.618em .4045em 15.371em}.wy-menu-vertical li.toctree-l10.current>a{padding:.4045em 15.371em}.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{padding:.4045em 1.618em .4045em 16.989em}.wy-menu-vertical li.toctree-l2.current>a,.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{background:#c9c9c9}.wy-menu-vertical li.toctree-l2 button.toctree-expand{color:#a3a3a3}.wy-menu-vertical li.toctree-l3.current>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{background:#bdbdbd}.wy-menu-vertical li.toctree-l3 button.toctree-expand{color:#969696}.wy-menu-vertical li.current ul{display:block}.wy-menu-vertical li ul{margin-bottom:0;display:none}.wy-menu-vertical li ul li a{margin-bottom:0;color:#d9d9d9;font-weight:400}.wy-menu-vertical a{line-height:18px;padding:.4045em 1.618em;display:block;position:relative;font-size:90%;color:#d9d9d9}.wy-menu-vertical a:hover{background-color:#4e4a4a;cursor:pointer}.wy-menu-vertical a:hover button.toctree-expand{color:#d9d9d9}.wy-menu-vertical a:active{background-color:#2980b9;cursor:pointer;color:#fff}.wy-menu-vertical a:active button.toctree-expand{color:#fff}.wy-side-nav-search{display:block;width:300px;padding:.809em;margin-bottom:.809em;z-index:200;background-color:#2980b9;text-align:center;color:#fcfcfc}.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 .809em;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-side-nav-search .wy-dropdown>a,.wy-side-nav-search>a{color:#fcfcfc;font-size:100%;font-weight:700;display:inline-block;padding:4px 6px;margin-bottom:.809em;max-width:100%}.wy-side-nav-search .wy-dropdown>a:hover,.wy-side-nav-search .wy-dropdown>aactive,.wy-side-nav-search .wy-dropdown>afocus,.wy-side-nav-search>a:hover,.wy-side-nav-search>aactive,.wy-side-nav-search>afocus{background:hsla(0,0%,100%,.1)}.wy-side-nav-search .wy-dropdown>a img.logo,.wy-side-nav-search>a img.logo{display:block;margin:0 auto;height:auto;width:auto;border-radius:0;max-width:100%;background:transparent}.wy-side-nav-search .wy-dropdown>a.icon,.wy-side-nav-search>a.icon{display:block}.wy-side-nav-search .wy-dropdown>a.icon img.logo,.wy-side-nav-search>a.icon img.logo{margin-top:.85em}.wy-side-nav-search>div.switch-menus{position:relative;display:block;margin-top:-.4045em;margin-bottom:.809em;font-weight:400;color:hsla(0,0%,100%,.3)}.wy-side-nav-search>div.switch-menus>div.language-switch,.wy-side-nav-search>div.switch-menus>div.version-switch{display:inline-block;padding:.2em}.wy-side-nav-search>div.switch-menus>div.language-switch select,.wy-side-nav-search>div.switch-menus>div.version-switch select{display:inline-block;margin-right:-2rem;padding-right:2rem;max-width:240px;text-align-last:center;background:none;border:none;border-radius:0;box-shadow:none;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;font-size:1em;font-weight:400;color:hsla(0,0%,100%,.3);cursor:pointer;appearance:none;-webkit-appearance:none;-moz-appearance:none}.wy-side-nav-search>div.switch-menus>div.language-switch select:active,.wy-side-nav-search>div.switch-menus>div.language-switch select:focus,.wy-side-nav-search>div.switch-menus>div.language-switch select:hover,.wy-side-nav-search>div.switch-menus>div.version-switch select:active,.wy-side-nav-search>div.switch-menus>div.version-switch select:focus,.wy-side-nav-search>div.switch-menus>div.version-switch select:hover{background:hsla(0,0%,100%,.1);color:hsla(0,0%,100%,.5)}.wy-side-nav-search>div.switch-menus>div.language-switch select option,.wy-side-nav-search>div.switch-menus>div.version-switch select option{color:#000}.wy-side-nav-search>div.switch-menus>div.language-switch:has(>select):after,.wy-side-nav-search>div.switch-menus>div.version-switch:has(>select):after{display:inline-block;width:1.5em;height:100%;padding:.1em;content:"\f0d7";font-size:1em;line-height:1.2em;font-family:FontAwesome;text-align:center;pointer-events:none;box-sizing:border-box}.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 .2s ease-in;-moz-transition:all .2s ease-in;transition:all .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:#fcfcfc}.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%;color:#9b9b9b;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:.4045em .809em;position:relative;line-height:50px;text-align:center;font-size:100%;*zoom:1}.wy-nav-top:after,.wy-nav-top:before{display:table;content:""}.wy-nav-top:after{clear:both}.wy-nav-top a{color:#fff;font-weight:700}.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:800px;margin:auto}.wy-body-mask{position:fixed;width:100%;height:100%;background:rgba(0,0,0,.2);display:none;z-index:499}.wy-body-mask.on{display:block}footer{color:grey}footer p{margin-bottom:12px}.rst-content footer span.commit tt,footer span.commit .rst-content tt,footer span.commit code{padding:0;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:1em;background:none;border:none;color:grey}.rst-footer-buttons{*zoom:1}.rst-footer-buttons:after,.rst-footer-buttons:before{width:100%;display:table;content:""}.rst-footer-buttons:after{clear:both}.rst-breadcrumbs-buttons{margin-top:12px;*zoom:1}.rst-breadcrumbs-buttons:after,.rst-breadcrumbs-buttons:before{display:table;content:""}.rst-breadcrumbs-buttons:after{clear:both}#search-results .search li{margin-bottom:24px;border-bottom:1px solid #e1e4e5;padding-bottom:24px}#search-results .search li:first-child{border-top:1px solid #e1e4e5;padding-top:24px}#search-results .search li a{font-size:120%;margin-bottom:12px;display:inline-block}#search-results .context{color:grey;font-size:90%}.genindextable li>ul{margin-left:24px}@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-menu.wy-menu-vertical,.wy-side-nav-search,.wy-side-scroll{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:1100px){.wy-nav-content-wrap{background:rgba(0,0,0,.05)}.wy-nav-content{margin:0;background:#fcfcfc}}@media print{.rst-versions,.wy-nav-side,footer{display:none}.wy-nav-content-wrap{margin-left:0}}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;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:after,.rst-versions .rst-current-version:before{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-content .code-block-caption .rst-versions .rst-current-version .headerlink,.rst-content .eqno .rst-versions .rst-current-version .headerlink,.rst-content .rst-versions .rst-current-version .admonition-title,.rst-content code.download .rst-versions .rst-current-version span:first-child,.rst-content dl dt .rst-versions .rst-current-version .headerlink,.rst-content h1 .rst-versions .rst-current-version .headerlink,.rst-content h2 .rst-versions .rst-current-version .headerlink,.rst-content h3 .rst-versions .rst-current-version .headerlink,.rst-content h4 .rst-versions .rst-current-version .headerlink,.rst-content h5 .rst-versions .rst-current-version .headerlink,.rst-content h6 .rst-versions .rst-current-version .headerlink,.rst-content p .rst-versions .rst-current-version .headerlink,.rst-content table>caption .rst-versions .rst-current-version .headerlink,.rst-content tt.download .rst-versions .rst-current-version span:first-child,.rst-versions .rst-current-version .fa,.rst-versions .rst-current-version .icon,.rst-versions .rst-current-version .rst-content .admonition-title,.rst-versions .rst-current-version .rst-content .code-block-caption .headerlink,.rst-versions .rst-current-version .rst-content .eqno .headerlink,.rst-versions .rst-current-version .rst-content code.download span:first-child,.rst-versions .rst-current-version .rst-content dl dt .headerlink,.rst-versions .rst-current-version .rst-content h1 .headerlink,.rst-versions .rst-current-version .rst-content h2 .headerlink,.rst-versions .rst-current-version .rst-content h3 .headerlink,.rst-versions .rst-current-version .rst-content h4 .headerlink,.rst-versions .rst-current-version .rst-content h5 .headerlink,.rst-versions .rst-current-version .rst-content h6 .headerlink,.rst-versions .rst-current-version .rst-content p .headerlink,.rst-versions .rst-current-version .rst-content table>caption .headerlink,.rst-versions .rst-current-version .rst-content tt.download span:first-child,.rst-versions .rst-current-version .wy-menu-vertical li button.toctree-expand,.wy-menu-vertical li .rst-versions .rst-current-version button.toctree-expand{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.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{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #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-other-versions .rtd-current-item{font-weight:700}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.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>.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}}#flyout-search-form{padding:6px}.rst-content .toctree-wrapper>p.caption,.rst-content h1,.rst-content h2,.rst-content h3,.rst-content h4,.rst-content h5,.rst-content h6{margin-bottom:24px}.rst-content img{max-width:100%;height:auto}.rst-content div.figure,.rst-content figure{margin-bottom:24px}.rst-content div.figure .caption-text,.rst-content figure .caption-text{font-style:italic}.rst-content div.figure p:last-child.caption,.rst-content figure p:last-child.caption{margin-bottom:0}.rst-content div.figure.align-center,.rst-content figure.align-center{text-align:center}.rst-content .section>a>img,.rst-content .section>img,.rst-content section>a>img,.rst-content section>img{margin-bottom:24px}.rst-content abbr[title]{text-decoration:none}.rst-content.style-external-links a.reference.external:after{font-family:FontAwesome;content:"\f08e";color:#b3b3b3;vertical-align:super;font-size:60%;margin:0 .2em}.rst-content blockquote{margin-left:24px;line-height:24px;margin-bottom:24px}.rst-content pre.literal-block{white-space:pre;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;display:block;overflow:auto}.rst-content div[class^=highlight],.rst-content pre.literal-block{border:1px solid #e1e4e5;overflow-x:auto;margin:1px 0 24px}.rst-content div[class^=highlight] div[class^=highlight],.rst-content pre.literal-block div[class^=highlight]{padding:0;border:none;margin:0}.rst-content div[class^=highlight] td.code{width:100%}.rst-content .linenodiv pre{border-right:1px solid #e6e9ea;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;user-select:none;pointer-events:none}.rst-content div[class^=highlight] pre{white-space:pre;margin:0;padding:12px;display:block;overflow:auto}.rst-content div[class^=highlight] pre .hll{display:block;margin:0 -12px;padding:0 12px}.rst-content .linenodiv pre,.rst-content div[class^=highlight] pre,.rst-content pre.literal-block{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:12px;line-height:1.4}.rst-content div.highlight .gp,.rst-content div.highlight span.linenos{user-select:none;pointer-events:none}.rst-content div.highlight span.linenos{display:inline-block;padding-left:0;padding-right:12px;margin-right:12px;border-right:1px solid #e6e9ea}.rst-content .code-block-caption{font-style:italic;font-size:85%;line-height:1;padding:1em 0;text-align:center}@media print{.rst-content .codeblock,.rst-content div[class^=highlight],.rst-content div[class^=highlight] pre{white-space:pre-wrap}}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning{clear:both}.rst-content .admonition-todo .last,.rst-content .admonition-todo>:last-child,.rst-content .admonition .last,.rst-content .admonition>:last-child,.rst-content .attention .last,.rst-content .attention>:last-child,.rst-content .caution .last,.rst-content .caution>:last-child,.rst-content .danger .last,.rst-content .danger>:last-child,.rst-content .error .last,.rst-content .error>:last-child,.rst-content .hint .last,.rst-content .hint>:last-child,.rst-content .important .last,.rst-content .important>:last-child,.rst-content .note .last,.rst-content .note>:last-child,.rst-content .seealso .last,.rst-content .seealso>:last-child,.rst-content .tip .last,.rst-content .tip>:last-child,.rst-content .warning .last,.rst-content .warning>:last-child{margin-bottom:0}.rst-content .admonition-title:before{margin-right:4px}.rst-content .admonition table{border-color:rgba(0,0,0,.1)}.rst-content .admonition table td,.rst-content .admonition table th{background:transparent!important;border-color:rgba(0,0,0,.1)!important}.rst-content .section ol.loweralpha,.rst-content .section ol.loweralpha>li,.rst-content .toctree-wrapper ol.loweralpha,.rst-content .toctree-wrapper ol.loweralpha>li,.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,.rst-content .toctree-wrapper ol.upperalpha,.rst-content .toctree-wrapper ol.upperalpha>li,.rst-content section ol.upperalpha,.rst-content section ol.upperalpha>li{list-style:upper-alpha}.rst-content .section ol li>*,.rst-content .section ul li>*,.rst-content .toctree-wrapper ol li>*,.rst-content .toctree-wrapper ul li>*,.rst-content section ol li>*,.rst-content section ul li>*{margin-top:12px;margin-bottom:12px}.rst-content .section ol li>:first-child,.rst-content .section ul li>:first-child,.rst-content .toctree-wrapper ol li>:first-child,.rst-content .toctree-wrapper ul li>:first-child,.rst-content section ol li>:first-child,.rst-content section ul li>:first-child{margin-top:0}.rst-content .section ol li>p,.rst-content .section ol li>p:last-child,.rst-content .section ul li>p,.rst-content .section ul li>p:last-child,.rst-content .toctree-wrapper ol li>p,.rst-content .toctree-wrapper ol li>p:last-child,.rst-content .toctree-wrapper ul li>p,.rst-content .toctree-wrapper ul li>p:last-child,.rst-content section ol li>p,.rst-content section ol li>p:last-child,.rst-content section ul li>p,.rst-content section ul li>p:last-child{margin-bottom:12px}.rst-content .section ol li>p:only-child,.rst-content .section ol li>p:only-child:last-child,.rst-content .section ul li>p:only-child,.rst-content .section ul li>p:only-child:last-child,.rst-content .toctree-wrapper ol li>p:only-child,.rst-content .toctree-wrapper ol li>p:only-child:last-child,.rst-content .toctree-wrapper ul li>p:only-child,.rst-content .toctree-wrapper ul li>p:only-child:last-child,.rst-content section ol li>p:only-child,.rst-content section ol li>p:only-child:last-child,.rst-content section ul li>p:only-child,.rst-content section ul li>p:only-child:last-child{margin-bottom:0}.rst-content .section ol li>ol,.rst-content .section ol li>ul,.rst-content .section ul li>ol,.rst-content .section ul li>ul,.rst-content .toctree-wrapper ol li>ol,.rst-content .toctree-wrapper ol li>ul,.rst-content .toctree-wrapper ul li>ol,.rst-content .toctree-wrapper ul li>ul,.rst-content section ol li>ol,.rst-content section ol li>ul,.rst-content section ul li>ol,.rst-content section ul li>ul{margin-bottom:12px}.rst-content .section ol.simple li>*,.rst-content .section ol.simple li ol,.rst-content .section ol.simple li ul,.rst-content .section ul.simple li>*,.rst-content .section ul.simple li ol,.rst-content .section ul.simple li ul,.rst-content .toctree-wrapper ol.simple li>*,.rst-content .toctree-wrapper ol.simple li ol,.rst-content .toctree-wrapper ol.simple li ul,.rst-content .toctree-wrapper ul.simple li>*,.rst-content .toctree-wrapper ul.simple li ol,.rst-content .toctree-wrapper ul.simple li ul,.rst-content section ol.simple li>*,.rst-content section ol.simple li ol,.rst-content section ol.simple li ul,.rst-content section ul.simple li>*,.rst-content section ul.simple li ol,.rst-content section ul.simple li ul{margin-top:0;margin-bottom:0}.rst-content .line-block{margin-left:0;margin-bottom:24px;line-height:24px}.rst-content .line-block .line-block{margin-left:24px;margin-bottom:0}.rst-content .topic-title{font-weight:700;margin-bottom:12px}.rst-content .toc-backref{color:#404040}.rst-content .align-right{float:right;margin:0 0 24px 24px}.rst-content .align-left{float:left;margin:0 24px 24px 0}.rst-content .align-center{margin:auto}.rst-content .align-center:not(table){display:block}.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink,.rst-content dl dt .headerlink,.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 p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink{opacity:0;font-size:14px;font-family:FontAwesome;margin-left:.5em}.rst-content .code-block-caption .headerlink:focus,.rst-content .code-block-caption:hover .headerlink,.rst-content .eqno .headerlink:focus,.rst-content .eqno:hover .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink:focus,.rst-content .toctree-wrapper>p.caption:hover .headerlink,.rst-content dl dt .headerlink:focus,.rst-content dl dt:hover .headerlink,.rst-content h1 .headerlink:focus,.rst-content h1:hover .headerlink,.rst-content h2 .headerlink:focus,.rst-content h2:hover .headerlink,.rst-content h3 .headerlink:focus,.rst-content h3:hover .headerlink,.rst-content h4 .headerlink:focus,.rst-content h4:hover .headerlink,.rst-content h5 .headerlink:focus,.rst-content h5:hover .headerlink,.rst-content h6 .headerlink:focus,.rst-content h6:hover .headerlink,.rst-content p.caption .headerlink:focus,.rst-content p.caption:hover .headerlink,.rst-content p .headerlink:focus,.rst-content p:hover .headerlink,.rst-content table>caption .headerlink:focus,.rst-content table>caption:hover .headerlink{opacity:1}.rst-content p a{overflow-wrap:anywhere}.rst-content .wy-table td p,.rst-content .wy-table td ul,.rst-content .wy-table th p,.rst-content .wy-table th ul,.rst-content table.docutils td p,.rst-content table.docutils td ul,.rst-content table.docutils th p,.rst-content table.docutils th ul,.rst-content table.field-list td p,.rst-content table.field-list td ul,.rst-content table.field-list th p,.rst-content table.field-list th ul{font-size:inherit}.rst-content .btn:focus{outline:2px solid}.rst-content table>caption .headerlink:after{font-size:12px}.rst-content .centered{text-align:center}.rst-content .sidebar{float:right;width:40%;display:block;margin:0 0 24px 24px;padding:24px;background:#f3f6f6;border:1px solid #e1e4e5}.rst-content .sidebar dl,.rst-content .sidebar p,.rst-content .sidebar ul{font-size:90%}.rst-content .sidebar .last,.rst-content .sidebar>:last-child{margin-bottom:0}.rst-content .sidebar .sidebar-title{display:block;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif;font-weight:700;background:#e1e4e5;padding:6px 12px;margin:-24px -24px 24px;font-size:100%}.rst-content .highlighted{background:#f1c40f;box-shadow:0 0 0 2px #f1c40f;display:inline;font-weight:700}.rst-content .citation-reference,.rst-content .footnote-reference{vertical-align:baseline;position:relative;top:-.4em;line-height:0;font-size:90%}.rst-content .citation-reference>span.fn-bracket,.rst-content .footnote-reference>span.fn-bracket{display:none}.rst-content .hlist{width:100%}.rst-content dl dt span.classifier:before{content:" : "}.rst-content dl dt span.classifier-delimiter{display:none!important}html.writer-html4 .rst-content table.docutils.citation,html.writer-html4 .rst-content table.docutils.footnote{background:none;border:none}html.writer-html4 .rst-content table.docutils.citation td,html.writer-html4 .rst-content table.docutils.citation tr,html.writer-html4 .rst-content table.docutils.footnote td,html.writer-html4 .rst-content table.docutils.footnote tr{border:none;background-color:transparent!important;white-space:normal}html.writer-html4 .rst-content table.docutils.citation td.label,html.writer-html4 .rst-content table.docutils.footnote td.label{padding-left:0;padding-right:0;vertical-align:top}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{display:grid;grid-template-columns:auto minmax(80%,95%)}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{display:inline-grid;grid-template-columns:max-content auto}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{display:grid;grid-template-columns:auto auto minmax(.65rem,auto) minmax(40%,95%)}html.writer-html5 .rst-content aside.citation>span.label,html.writer-html5 .rst-content aside.footnote>span.label,html.writer-html5 .rst-content div.citation>span.label{grid-column-start:1;grid-column-end:2}html.writer-html5 .rst-content aside.citation>span.backrefs,html.writer-html5 .rst-content aside.footnote>span.backrefs,html.writer-html5 .rst-content div.citation>span.backrefs{grid-column-start:2;grid-column-end:3;grid-row-start:1;grid-row-end:3}html.writer-html5 .rst-content aside.citation>p,html.writer-html5 .rst-content aside.footnote>p,html.writer-html5 .rst-content div.citation>p{grid-column-start:4;grid-column-end:5}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{margin-bottom:24px}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{padding-left:1rem}html.writer-html5 .rst-content dl.citation>dd,html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dd,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dd,html.writer-html5 .rst-content dl.footnote>dt{margin-bottom:0}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.footnote{font-size:.9rem}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.footnote>dt{margin:0 .5rem .5rem 0;line-height:1.2rem;word-break:break-all;font-weight:400}html.writer-html5 .rst-content dl.citation>dt>span.brackets:before,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:before{content:"["}html.writer-html5 .rst-content dl.citation>dt>span.brackets:after,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:after{content:"]"}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a{word-break:keep-all}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a:not(:first-child):before,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content dl.citation>dd,html.writer-html5 .rst-content dl.footnote>dd{margin:0 0 .5rem;line-height:1.2rem}html.writer-html5 .rst-content dl.citation>dd p,html.writer-html5 .rst-content dl.footnote>dd p{font-size:.9rem}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{padding-left:1rem;padding-right:1rem;font-size:.9rem;line-height:1.2rem}html.writer-html5 .rst-content aside.citation p,html.writer-html5 .rst-content aside.footnote p,html.writer-html5 .rst-content div.citation p{font-size:.9rem;line-height:1.2rem;margin-bottom:12px}html.writer-html5 .rst-content aside.citation span.backrefs,html.writer-html5 .rst-content aside.footnote span.backrefs,html.writer-html5 .rst-content div.citation span.backrefs{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content aside.citation span.backrefs>a,html.writer-html5 .rst-content aside.footnote span.backrefs>a,html.writer-html5 .rst-content div.citation span.backrefs>a{word-break:keep-all}html.writer-html5 .rst-content aside.citation span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content aside.footnote span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content div.citation span.backrefs>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content aside.citation span.label,html.writer-html5 .rst-content aside.footnote span.label,html.writer-html5 .rst-content div.citation span.label{line-height:1.2rem}html.writer-html5 .rst-content aside.citation-list,html.writer-html5 .rst-content aside.footnote-list,html.writer-html5 .rst-content div.citation-list{margin-bottom:24px}html.writer-html5 .rst-content dl.option-list kbd{font-size:.9rem}.rst-content table.docutils.footnote,html.writer-html4 .rst-content table.docutils.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content aside.footnote-list aside.footnote,html.writer-html5 .rst-content div.citation-list>div.citation,html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.footnote{color:grey}.rst-content table.docutils.footnote code,.rst-content table.docutils.footnote tt,html.writer-html4 .rst-content table.docutils.citation code,html.writer-html4 .rst-content table.docutils.citation tt,html.writer-html5 .rst-content aside.footnote-list aside.footnote code,html.writer-html5 .rst-content aside.footnote-list aside.footnote tt,html.writer-html5 .rst-content aside.footnote code,html.writer-html5 .rst-content aside.footnote tt,html.writer-html5 .rst-content div.citation-list>div.citation code,html.writer-html5 .rst-content div.citation-list>div.citation tt,html.writer-html5 .rst-content dl.citation code,html.writer-html5 .rst-content dl.citation tt,html.writer-html5 .rst-content dl.footnote code,html.writer-html5 .rst-content dl.footnote tt{color:#555}.rst-content .wy-table-responsive.citation,.rst-content .wy-table-responsive.footnote{margin-bottom:0}.rst-content .wy-table-responsive.citation+:not(.citation),.rst-content .wy-table-responsive.footnote+:not(.footnote){margin-top:24px}.rst-content .wy-table-responsive.citation:last-child,.rst-content .wy-table-responsive.footnote:last-child{margin-bottom:24px}.rst-content table.docutils th{border-color:#e1e4e5}html.writer-html5 .rst-content table.docutils th{border:1px solid #e1e4e5}html.writer-html5 .rst-content table.docutils td>p,html.writer-html5 .rst-content table.docutils th>p{line-height:1rem;margin-bottom:0;font-size:.9rem}.rst-content table.docutils td .last,.rst-content table.docutils td .last>:last-child{margin-bottom:0}.rst-content table.field-list,.rst-content table.field-list td{border:none}.rst-content table.field-list td p{line-height:inherit}.rst-content table.field-list td>strong{display:inline-block}.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}.rst-content code,.rst-content tt{color:#000;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;padding:2px 5px}.rst-content code big,.rst-content code em,.rst-content tt big,.rst-content tt em{font-size:100%!important;line-height:normal}.rst-content code.literal,.rst-content tt.literal{color:#e74c3c;white-space:normal}.rst-content code.xref,.rst-content tt.xref,a .rst-content code,a .rst-content tt{font-weight:700;color:#404040;overflow-wrap:normal}.rst-content kbd,.rst-content pre,.rst-content samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace}.rst-content a code,.rst-content a tt{color:#2980b9}.rst-content dl{margin-bottom:24px}.rst-content dl dt{font-weight:700;margin-bottom:12px}.rst-content dl ol,.rst-content dl p,.rst-content dl table,.rst-content dl ul{margin-bottom:12px}.rst-content dl dd{margin:0 0 12px 24px;line-height:24px}.rst-content dl dd>ol:last-child,.rst-content dl dd>p:last-child,.rst-content dl dd>table:last-child,.rst-content dl dd>ul:last-child{margin-bottom:0}html.writer-html4 .rst-content dl:not(.docutils),html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple){margin-bottom:24px}html.writer-html4 .rst-content dl:not(.docutils)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt{display:table;margin:6px 0;font-size:90%;line-height:normal;background:#e7f2fa;color:#2980b9;border-top:3px solid #6ab0de;padding:6px;position:relative}html.writer-html4 .rst-content dl:not(.docutils)>dt:before,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt:before{color:#6ab0de}html.writer-html4 .rst-content dl:not(.docutils)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt{margin-bottom:6px;border:none;border-left:3px solid #ccc;background:#f0f0f0;color:#555}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils)>dt:first-child,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt:first-child{margin-top:0}html.writer-html4 .rst-content dl:not(.docutils) code.descclassname,html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descclassname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descname{background-color:transparent;border:none;padding:0;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descname{font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .optional,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .optional{display:inline-block;padding:0 4px;color:#000;font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .property,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .property{display:inline-block;padding-right:8px;max-width:100%}html.writer-html4 .rst-content dl:not(.docutils) .k,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .k{font-style:italic}html.writer-html4 .rst-content dl:not(.docutils) .descclassname,html.writer-html4 .rst-content dl:not(.docutils) .descname,html.writer-html4 .rst-content dl:not(.docutils) .sig-name,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .sig-name{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#000}.rst-content .viewcode-back,.rst-content .viewcode-link{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:700}.rst-content code.download,.rst-content tt.download{background:inherit;padding:inherit;font-weight:400;font-family:inherit;font-size:inherit;color:inherit;border:inherit;white-space:inherit}.rst-content code.download span:first-child,.rst-content tt.download span:first-child{-webkit-font-smoothing:subpixel-antialiased}.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{margin-right:4px}.rst-content .guilabel,.rst-content .menuselection{font-size:80%;font-weight:700;border-radius:4px;padding:2.4px 6px;margin:auto 2px}.rst-content .guilabel,.rst-content .menuselection{border:1px solid #7fbbe3;background:#e7f2fa}.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>.kbd,.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>kbd{color:inherit;font-size:80%;background-color:#fff;border:1px solid #a6a6a6;border-radius:4px;box-shadow:0 2px grey;padding:2.4px 6px;margin:auto 0}.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:Lato;src:url(fonts/lato-normal.woff2?bd03a2cc277bbbc338d464e679fe9942) format("woff2"),url(fonts/lato-normal.woff?27bd77b9162d388cb8d4c4217c7c5e2a) format("woff");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold.woff2?cccb897485813c7c256901dbca54ecf2) format("woff2"),url(fonts/lato-bold.woff?d878b6c29b10beca227e9eef4246111b) format("woff");font-weight:700;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold-italic.woff2?0b6bb6725576b072c5d0b02ecdd1900d) format("woff2"),url(fonts/lato-bold-italic.woff?9c7e4e9eb485b4a121c760e61bc3707c) format("woff");font-weight:700;font-style:italic;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-normal-italic.woff2?4eb103b4d12be57cb1d040ed5e162e9d) format("woff2"),url(fonts/lato-normal-italic.woff?f28f2d6482446544ef1ea1ccc6dd5892) format("woff");font-weight:400;font-style:italic;font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:400;src:url(fonts/Roboto-Slab-Regular.woff2?7abf5b8d04d26a2cafea937019bca958) format("woff2"),url(fonts/Roboto-Slab-Regular.woff?c1be9284088d487c5e3ff0a10a92e58c) format("woff");font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:700;src:url(fonts/Roboto-Slab-Bold.woff2?9984f4a9bda09be08e83f2506954adbe) format("woff2"),url(fonts/Roboto-Slab-Bold.woff?bed5564a116b05148e3b3bea6fb1162a) format("woff");font-display:block}
\ No newline at end of file
diff --git a/2.2.2/_static/doctools.js b/2.2.2/_static/doctools.js
new file mode 100644
index 0000000..0398ebb
--- /dev/null
+++ b/2.2.2/_static/doctools.js
@@ -0,0 +1,149 @@
+/*
+ * Base JavaScript utilities for all Sphinx HTML documentation.
+ */
+"use strict";
+
+const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([
+ "TEXTAREA",
+ "INPUT",
+ "SELECT",
+ "BUTTON",
+]);
+
+const _ready = (callback) => {
+ if (document.readyState !== "loading") {
+ callback();
+ } else {
+ document.addEventListener("DOMContentLoaded", callback);
+ }
+};
+
+/**
+ * Small JavaScript module for the documentation.
+ */
+const Documentation = {
+ init: () => {
+ Documentation.initDomainIndexTable();
+ Documentation.initOnKeyListeners();
+ },
+
+ /**
+ * i18n support
+ */
+ TRANSLATIONS: {},
+ PLURAL_EXPR: (n) => (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: (string) => {
+ const translated = Documentation.TRANSLATIONS[string];
+ switch (typeof translated) {
+ case "undefined":
+ return string; // no translation
+ case "string":
+ return translated; // translation exists
+ default:
+ return translated[0]; // (singular, plural) translation tuple exists
+ }
+ },
+
+ ngettext: (singular, plural, n) => {
+ const translated = Documentation.TRANSLATIONS[singular];
+ if (typeof translated !== "undefined")
+ return translated[Documentation.PLURAL_EXPR(n)];
+ return n === 1 ? singular : plural;
+ },
+
+ addTranslations: (catalog) => {
+ Object.assign(Documentation.TRANSLATIONS, catalog.messages);
+ Documentation.PLURAL_EXPR = new Function(
+ "n",
+ `return (${catalog.plural_expr})`
+ );
+ Documentation.LOCALE = catalog.locale;
+ },
+
+ /**
+ * helper function to focus on search bar
+ */
+ focusSearchBar: () => {
+ document.querySelectorAll("input[name=q]")[0]?.focus();
+ },
+
+ /**
+ * Initialise the domain index toggle buttons
+ */
+ initDomainIndexTable: () => {
+ const toggler = (el) => {
+ const idNumber = el.id.substr(7);
+ const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`);
+ if (el.src.substr(-9) === "minus.png") {
+ el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`;
+ toggledRows.forEach((el) => (el.style.display = "none"));
+ } else {
+ el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`;
+ toggledRows.forEach((el) => (el.style.display = ""));
+ }
+ };
+
+ const togglerElements = document.querySelectorAll("img.toggler");
+ togglerElements.forEach((el) =>
+ el.addEventListener("click", (event) => toggler(event.currentTarget))
+ );
+ togglerElements.forEach((el) => (el.style.display = ""));
+ if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler);
+ },
+
+ initOnKeyListeners: () => {
+ // only install a listener if it is really needed
+ if (
+ !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS &&
+ !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS
+ )
+ return;
+
+ document.addEventListener("keydown", (event) => {
+ // bail for input elements
+ if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return;
+ // bail with special keys
+ if (event.altKey || event.ctrlKey || event.metaKey) return;
+
+ if (!event.shiftKey) {
+ switch (event.key) {
+ case "ArrowLeft":
+ if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break;
+
+ const prevLink = document.querySelector('link[rel="prev"]');
+ if (prevLink && prevLink.href) {
+ window.location.href = prevLink.href;
+ event.preventDefault();
+ }
+ break;
+ case "ArrowRight":
+ if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break;
+
+ const nextLink = document.querySelector('link[rel="next"]');
+ if (nextLink && nextLink.href) {
+ window.location.href = nextLink.href;
+ event.preventDefault();
+ }
+ break;
+ }
+ }
+
+ // some keyboard layouts may need Shift to get /
+ switch (event.key) {
+ case "/":
+ if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break;
+ Documentation.focusSearchBar();
+ event.preventDefault();
+ }
+ });
+ },
+};
+
+// quick alias for translations
+const _ = Documentation.gettext;
+
+_ready(Documentation.init);
diff --git a/2.2.2/_static/documentation_options.js b/2.2.2/_static/documentation_options.js
new file mode 100644
index 0000000..7e4c114
--- /dev/null
+++ b/2.2.2/_static/documentation_options.js
@@ -0,0 +1,13 @@
+const DOCUMENTATION_OPTIONS = {
+ VERSION: '',
+ LANGUAGE: 'en',
+ COLLAPSE_INDEX: false,
+ BUILDER: 'html',
+ FILE_SUFFIX: '.html',
+ LINK_SUFFIX: '.html',
+ HAS_SOURCE: true,
+ SOURCELINK_SUFFIX: '.txt',
+ NAVIGATION_WITH_KEYS: false,
+ SHOW_SEARCH_SUMMARY: true,
+ ENABLE_SEARCH_SHORTCUTS: true,
+};
\ No newline at end of file
diff --git a/2.2.2/_static/file.png b/2.2.2/_static/file.png
new file mode 100644
index 0000000..a858a41
Binary files /dev/null and b/2.2.2/_static/file.png differ
diff --git a/2.2.2/_static/fonts/Lato/lato-bold.eot b/2.2.2/_static/fonts/Lato/lato-bold.eot
new file mode 100644
index 0000000..3361183
Binary files /dev/null and b/2.2.2/_static/fonts/Lato/lato-bold.eot differ
diff --git a/2.2.2/_static/fonts/Lato/lato-bold.ttf b/2.2.2/_static/fonts/Lato/lato-bold.ttf
new file mode 100644
index 0000000..29f691d
Binary files /dev/null and b/2.2.2/_static/fonts/Lato/lato-bold.ttf differ
diff --git a/2.2.2/_static/fonts/Lato/lato-bold.woff b/2.2.2/_static/fonts/Lato/lato-bold.woff
new file mode 100644
index 0000000..c6dff51
Binary files /dev/null and b/2.2.2/_static/fonts/Lato/lato-bold.woff differ
diff --git a/2.2.2/_static/fonts/Lato/lato-bold.woff2 b/2.2.2/_static/fonts/Lato/lato-bold.woff2
new file mode 100644
index 0000000..bb19504
Binary files /dev/null and b/2.2.2/_static/fonts/Lato/lato-bold.woff2 differ
diff --git a/2.2.2/_static/fonts/Lato/lato-bolditalic.eot b/2.2.2/_static/fonts/Lato/lato-bolditalic.eot
new file mode 100644
index 0000000..3d41549
Binary files /dev/null and b/2.2.2/_static/fonts/Lato/lato-bolditalic.eot differ
diff --git a/2.2.2/_static/fonts/Lato/lato-bolditalic.ttf b/2.2.2/_static/fonts/Lato/lato-bolditalic.ttf
new file mode 100644
index 0000000..f402040
Binary files /dev/null and b/2.2.2/_static/fonts/Lato/lato-bolditalic.ttf differ
diff --git a/2.2.2/_static/fonts/Lato/lato-bolditalic.woff b/2.2.2/_static/fonts/Lato/lato-bolditalic.woff
new file mode 100644
index 0000000..88ad05b
Binary files /dev/null and b/2.2.2/_static/fonts/Lato/lato-bolditalic.woff differ
diff --git a/2.2.2/_static/fonts/Lato/lato-bolditalic.woff2 b/2.2.2/_static/fonts/Lato/lato-bolditalic.woff2
new file mode 100644
index 0000000..c4e3d80
Binary files /dev/null and b/2.2.2/_static/fonts/Lato/lato-bolditalic.woff2 differ
diff --git a/2.2.2/_static/fonts/Lato/lato-italic.eot b/2.2.2/_static/fonts/Lato/lato-italic.eot
new file mode 100644
index 0000000..3f82642
Binary files /dev/null and b/2.2.2/_static/fonts/Lato/lato-italic.eot differ
diff --git a/2.2.2/_static/fonts/Lato/lato-italic.ttf b/2.2.2/_static/fonts/Lato/lato-italic.ttf
new file mode 100644
index 0000000..b4bfc9b
Binary files /dev/null and b/2.2.2/_static/fonts/Lato/lato-italic.ttf differ
diff --git a/2.2.2/_static/fonts/Lato/lato-italic.woff b/2.2.2/_static/fonts/Lato/lato-italic.woff
new file mode 100644
index 0000000..76114bc
Binary files /dev/null and b/2.2.2/_static/fonts/Lato/lato-italic.woff differ
diff --git a/2.2.2/_static/fonts/Lato/lato-italic.woff2 b/2.2.2/_static/fonts/Lato/lato-italic.woff2
new file mode 100644
index 0000000..3404f37
Binary files /dev/null and b/2.2.2/_static/fonts/Lato/lato-italic.woff2 differ
diff --git a/2.2.2/_static/fonts/Lato/lato-regular.eot b/2.2.2/_static/fonts/Lato/lato-regular.eot
new file mode 100644
index 0000000..11e3f2a
Binary files /dev/null and b/2.2.2/_static/fonts/Lato/lato-regular.eot differ
diff --git a/2.2.2/_static/fonts/Lato/lato-regular.ttf b/2.2.2/_static/fonts/Lato/lato-regular.ttf
new file mode 100644
index 0000000..74decd9
Binary files /dev/null and b/2.2.2/_static/fonts/Lato/lato-regular.ttf differ
diff --git a/2.2.2/_static/fonts/Lato/lato-regular.woff b/2.2.2/_static/fonts/Lato/lato-regular.woff
new file mode 100644
index 0000000..ae1307f
Binary files /dev/null and b/2.2.2/_static/fonts/Lato/lato-regular.woff differ
diff --git a/2.2.2/_static/fonts/Lato/lato-regular.woff2 b/2.2.2/_static/fonts/Lato/lato-regular.woff2
new file mode 100644
index 0000000..3bf9843
Binary files /dev/null and b/2.2.2/_static/fonts/Lato/lato-regular.woff2 differ
diff --git a/2.2.2/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot b/2.2.2/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot
new file mode 100644
index 0000000..79dc8ef
Binary files /dev/null and b/2.2.2/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot differ
diff --git a/2.2.2/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf b/2.2.2/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf
new file mode 100644
index 0000000..df5d1df
Binary files /dev/null and b/2.2.2/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf differ
diff --git a/2.2.2/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff b/2.2.2/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff
new file mode 100644
index 0000000..6cb6000
Binary files /dev/null and b/2.2.2/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff differ
diff --git a/2.2.2/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2 b/2.2.2/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2
new file mode 100644
index 0000000..7059e23
Binary files /dev/null and b/2.2.2/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2 differ
diff --git a/2.2.2/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot b/2.2.2/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot
new file mode 100644
index 0000000..2f7ca78
Binary files /dev/null and b/2.2.2/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot differ
diff --git a/2.2.2/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf b/2.2.2/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf
new file mode 100644
index 0000000..eb52a79
Binary files /dev/null and b/2.2.2/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf differ
diff --git a/2.2.2/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff b/2.2.2/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff
new file mode 100644
index 0000000..f815f63
Binary files /dev/null and b/2.2.2/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff differ
diff --git a/2.2.2/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 b/2.2.2/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2
new file mode 100644
index 0000000..f2c76e5
Binary files /dev/null and b/2.2.2/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 differ
diff --git a/2.2.2/_static/jquery.js b/2.2.2/_static/jquery.js
new file mode 100644
index 0000000..c4c6022
--- /dev/null
+++ b/2.2.2/_static/jquery.js
@@ -0,0 +1,2 @@
+/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */
+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"
Use spaces around jinja variables. {{var}} over {{var}}
+
Variables that are internal to the role should be lowercase and start with the role name
+
Keep roles self contained - Roles should avoid including tasks from other roles when possible
+
Plays should do nothing more than include a list of roles except where pre_tasks and post_tasks are required when possible
+
Separators - Use valid name, ie. underscores (e.g. my_rolemy_playbook) not dashes (my-role)
+
Paths - When defining paths, do not include trailing slashes (e.g. my_path:/foo not my_path:/foo/). When concatenating paths, follow the same convention (e.g. {{my_path}}/bar not {{my_path}}bar)
+
Indentation - Use 2 spaces for each indent
+
vars/ vs defaults/ - internal or interpolated variables that don’t need to change or be overridden by user go in vars/, those that a user would likely override, go under defaults/ directory
+
All arguments have a specification in meta/argument_specs.yml
+
All playbooks/roles should be focused on compatibility with Ansible Automation Platform
To build a virtualenv for development purposes run the following command:
+
make build-venv
+
+
+
The resulting virtualenv will be symlinked to .venv, which for example can
+be selected as virtualenv in VSCode (Shift+Ctrl+P and then
+Python:SelectInterpreter).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/2.2.2/genindex.html b/2.2.2/genindex.html
new file mode 100644
index 0000000..88b496b
--- /dev/null
+++ b/2.2.2/genindex.html
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+ Index — KubeVirt Ansible Collection documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Index
+
+
+
+
+
+
+
+
+
+
Index
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/2.2.2/index.html b/2.2.2/index.html
new file mode 100644
index 0000000..ebdcbb1
--- /dev/null
+++ b/2.2.2/index.html
@@ -0,0 +1,200 @@
+
+
+
+
+
+
+
+
+ Welcome to kubevirt.core Collection documentation — KubeVirt Ansible Collection documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
It is not included in ansible-core.
+To check whether it is installed, run ansible-galaxycollectionlist.
+
To install it, use: ansible-galaxycollectioninstallkubevirt.core.
+You need further requirements to be able to use this inventory plugin,
+see Requirements for details.
+
To use it in a playbook, specify: kubevirt.core.kubevirt.
Fetch virtual machines from one or more namespaces with an optional label selector.
+
Groups by cluster name, namespaces and labels.
+
Uses *.kubevirt.[yml|yaml] YAML configuration file to set parameter values.
+
By default it uses the active context in ~/.kube/config and will return all virtual machines for all namespaces the active user is authorized to access.
Path to a certificate used to authenticate with the API.
+
Can also be specified via K8S_AUTH_CERT_FILE environment variable.
+
+
+
+
+
+
+
client_key
+
+
aliases: key_file
+
+ path
+
+
+
+
+
Path to a key file used to authenticate with the API.
+
Can also be specified via K8S_AUTH_KEY_FILE environment variable.
+
+
+
+
+
+
compose
+
+
+ dictionary
+
+
+
+
+
Create vars from jinja2 expressions.
+
Default:{}
+
+
+
+
+
+
connections
+
+
+ string
+
+
+
+
+
Optional list of cluster connection settings.
+
This parameter is deprecated. Split your connections into multiple configuration files and move parameters of each connection to the configuration top level.
+
Deprecated in version 1.5.0, will be removed in version 3.0.0.
+
+
+
+
+
+
context
+
+
+ string
+
+
+
+
+
The name of a context found in the config file.
+
Can also be specified via K8S_AUTH_CONTEXT environment variable.
+
+
+
+
+
+
create_groups
+
+
+ boolean
+
+
+
+
+
Enable the creation of groups from labels on VirtualMachines and VirtualMachineInstances.
+
Choices:
+
+
false← (default)
+
true
+
+
+
+
+
+
+
+
groups
+
+
+ dictionary
+
+
+
+
+
Add hosts to group based on Jinja2 conditionals.
+
Default:{}
+
+
+
+
+
+
host
+
+
+ string
+
+
+
+
+
Provide a URL for accessing the API.
+
Can also be specified via K8S_AUTH_HOST environment variable.
+
+
+
+
+
+
host_format
+
+
+ string
+
+
+
+
+
Specify the format of the host in the inventory group. Available specifiers: name, namespace and uid.
+
Default:"{namespace}-{name}"
+
+
+
+
+
+
impersonate_groups
+
+
+ list
+ / elements=string
+
+
+
+
+
Group(s) to impersonate for the operation.
+
Can also be specified via K8S_AUTH_IMPERSONATE_GROUPS environment variable, e.g. Group1,Group2.
+
+
+
+
+
+
impersonate_user
+
+
+ string
+
+
+
+
+
Username to impersonate for the operation.
+
Can also be specified via K8S_AUTH_IMPERSONATE_USER environment variable.
+
+
+
+
+
+
keyed_groups
+
+
+ list
+ / elements=dictionary
+
+
+
+
+
Add hosts to group based on the values of a variable.
+
Default:[]
+
+
+
+
+
+
default_value
+
+
+ string
+
+
added in ansible-core 2.12
+
+
+
+
The default value when the host variable's value is an empty string.
Enable kubesecondarydns derived host names when using a secondary network interface.
+
Choices:
+
+
false← (default)
+
true
+
+
+
+
+
+
+
+
kubeconfig
+
+
+ any
+
+
+
+
+
Path to an existing Kubernetes config file. If not provided, and no other connection options are provided, the Kubernetes client will attempt to load the default configuration file from ~/.kube/config.
+
Can also be specified via K8S_AUTH_KUBECONFIG environment variable.
+
Multiple Kubernetes config file can be provided using separator ; for Windows platform or : for others platforms.
+
The kubernetes configuration can be provided as dictionary. This feature requires a python kubernetes client version >= 17.17.0.
+
+
+
+
+
+
label_selector
+
+
+ string
+
+
+
+
+
Define a label selector to select a subset of the fetched virtual machines.
By default, a keyed group that does not have a prefix or a separator provided will have a name that starts with an underscore.
+
This is because the default prefix is "" and the default separator is "_".
+
Set this option to false to omit the leading underscore (or other separator) if no prefix is given.
+
If the group name is derived from a mapping the separator is still used to concatenate the items.
+
To not use a separator in the group name at all, set the separator for the keyed group to an empty string instead.
+
Choices:
+
+
false
+
true← (default)
+
+
+
+
+
+
+
+
name
+
+
+ string
+
+
+
+
+
Optional name to assign to the cluster. If not provided, a name is constructed from the server and port.
+
+
+
+
+
+
namespaces
+
+
+ string
+
+
+
+
+
List of namespaces. If not specified, will fetch virtual machines from all namespaces the user is authorized to access.
+
+
+
+
+
+
+
network_name
+
+
aliases: interface_name
+
+ string
+
+
+
+
+
In case multiple networks are attached to a virtual machine, define which interface should be returned as primary IP address.
+
+
+
+
+
+
no_proxy
+
+
+ string
+
+
+
+
+
The comma separated list of hosts/domains/IP/CIDR that shouldn't go through proxy.
+
Can also be specified via K8S_AUTH_NO_PROXY environment variable.
+
Please note that this module does not pick up typical proxy settings from the environment (e.g. NO_PROXY).
+
This feature requires kubernetes>=19.15.0. When kubernetes library is less than 19.15.0, it fails even no_proxy set in correct.
+
Example value is localhost,.local,.example.com,127.0.0.1,127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16.
+
+
+
+
+
+
password
+
+
+ string
+
+
+
+
+
Provide a password for authenticating with the API.
+
Can also be specified via K8S_AUTH_PASSWORD environment variable.
+
Please read the description of the username option for a discussion of when this option is applicable.
+
+
+
+
+
+
persist_config
+
+
+ boolean
+
+
+
+
+
Whether or not to save the kube config refresh tokens.
+
Can also be specified via K8S_AUTH_PERSIST_CONFIG environment variable.
+
When the k8s context is using a user credentials with refresh tokens (like oidc or gke/gcloud auth), the token is refreshed by the k8s python client library but not saved by default. So the old refresh token can expire and the next auth might fail. Setting this flag to true will tell the k8s python client to save the new refresh token to the kube config file.
To avoid SSL certificate validation errors when validate_certs=yes, the full certificate chain for the API server must be provided via ca_cert or in the kubeconfig file.
# Filename must end with kubevirt.[yml|yaml]
+
+# Authenticate with token and return all virtual machines from all accessible namespaces
+-plugin:kubevirt.core.kubevirt
+host:https://192.168.64.4:8443
+api_key:xxxxxxxxxxxxxxxx
+validate_certs:false
+
+# Use default ~/.kube/config and return virtual machines from namespace testing connected to network bridge-network
+-plugin:kubevirt.core.kubevirt
+namespaces:
+-testing
+network_name:bridge-network
+
+# Use default ~/.kube/config and return virtual machines from namespace testing with label app=test
+-plugin:kubevirt.core.kubevirt
+namespaces:
+-testing
+label_selector:app=test
+
+# Use a custom config file and a specific context
+-plugin:kubevirt.core.kubevirt
+kubeconfig:/path/to/config
+context:'awx/192-168-64-4:8443/developer'
+
Configuration entries for each entry type have a low to high priority order. For example, a variable that is lower in the list will override a variable that is higher up.
It is not included in ansible-core.
+To check whether it is installed, run ansible-galaxycollectionlist.
+
To install it, use: ansible-galaxycollectioninstallkubevirt.core.
+You need further requirements to be able to use this module,
+see Requirements for details.
+
To use it in a playbook, specify: kubevirt.core.kubevirt_vm.
Path to an existing Kubernetes config file. If not provided, and no other connection options are provided, the Kubernetes client will attempt to load the default configuration file from ~/.kube/config.
+
Can also be specified via K8S_AUTH_KUBECONFIG environment variable.
+
Multiple Kubernetes config file can be provided using separator ; for Windows platform or : for others platforms.
+
The kubernetes configuration can be provided as dictionary. This feature requires a python kubernetes client version >= 17.17.0.
+
+
+
+
+
+
labels
+
+
+ dictionary
+
+
+
+
Specify labels to set on the VirtualMachine.
+
+
+
+
+
+
name
+
+
+ string
+
+
+
+
Specify the name of the VirtualMachine.
+
This option is ignored when state=present is not set.
The comma separated list of hosts/domains/IP/CIDR that shouldn't go through proxy.
+
Can also be specified via K8S_AUTH_NO_PROXY environment variable.
+
Please note that this module does not pick up typical proxy settings from the environment (e.g. NO_PROXY).
+
This feature requires kubernetes>=19.15.0. When kubernetes library is less than 19.15.0, it fails even no_proxy set in correct.
+
Example value is localhost,.local,.example.com,127.0.0.1,127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16.
+
+
+
+
+
+
password
+
+
+ string
+
+
+
+
Provide a password for authenticating with the API.
+
Can also be specified via K8S_AUTH_PASSWORD environment variable.
+
Please read the description of the username option for a discussion of when this option is applicable.
+
+
+
+
+
+
persist_config
+
+
+ boolean
+
+
+
+
Whether or not to save the kube config refresh tokens.
+
Can also be specified via K8S_AUTH_PERSIST_CONFIG environment variable.
+
When the k8s context is using a user credentials with refresh tokens (like oidc or gke/gcloud auth), the token is refreshed by the k8s python client library but not saved by default. So the old refresh token can expire and the next auth might fail. Setting this flag to true will tell the k8s python client to save the new refresh token to the kube config file.
+
Disabled by default.
+
Choices:
+
+
false
+
true
+
+
+
+
+
+
+
+
preference
+
+
+ dictionary
+
+
+
+
Specify the Preference matcher of the VirtualMachine.
To avoid SSL certificate validation errors when validate_certs=yes, the full certificate chain for the API server must be provided via ca_cert or in the kubeconfig file.
It is not included in ansible-core.
+To check whether it is installed, run ansible-galaxycollectionlist.
+
To install it, use: ansible-galaxycollectioninstallkubevirt.core.
+You need further requirements to be able to use this module,
+see Requirements for details.
+
To use it in a playbook, specify: kubevirt.core.kubevirt_vm_info.
Can also be specified via K8S_AUTH_HOST environment variable.
+
+
+
+
+
+
impersonate_groups
+
+
+ list
+ / elements=string
+
+
+
+
Group(s) to impersonate for the operation.
+
Can also be specified via K8S_AUTH_IMPERSONATE_GROUPS environment variable, e.g. Group1,Group2.
+
+
+
+
+
+
impersonate_user
+
+
+ string
+
+
+
+
Username to impersonate for the operation.
+
Can also be specified via K8S_AUTH_IMPERSONATE_USER environment variable.
+
+
+
+
+
+
kubeconfig
+
+
+ any
+
+
+
+
Path to an existing Kubernetes config file. If not provided, and no other connection options are provided, the Kubernetes client will attempt to load the default configuration file from ~/.kube/config.
+
Can also be specified via K8S_AUTH_KUBECONFIG environment variable.
+
Multiple Kubernetes config file can be provided using separator ; for Windows platform or : for others platforms.
+
The kubernetes configuration can be provided as dictionary. This feature requires a python kubernetes client version >= 17.17.0.
+
+
+
+
+
+
label_selectors
+
+
+ list
+ / elements=string
+
+
+
+
List of label selectors to use to filter results.
+
Default:[]
+
+
+
+
+
+
name
+
+
+ string
+
+
+
+
Specify the name of the VirtualMachine.
+
+
+
+
+
+
namespace
+
+
+ string
+
+
+
+
Specify the namespace of VirtualMachines.
+
+
+
+
+
+
no_proxy
+
+
+ string
+
+
+
+
The comma separated list of hosts/domains/IP/CIDR that shouldn't go through proxy.
+
Can also be specified via K8S_AUTH_NO_PROXY environment variable.
+
Please note that this module does not pick up typical proxy settings from the environment (e.g. NO_PROXY).
+
This feature requires kubernetes>=19.15.0. When kubernetes library is less than 19.15.0, it fails even no_proxy set in correct.
+
Example value is localhost,.local,.example.com,127.0.0.1,127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16.
+
+
+
+
+
+
password
+
+
+ string
+
+
+
+
Provide a password for authenticating with the API.
+
Can also be specified via K8S_AUTH_PASSWORD environment variable.
+
Please read the description of the username option for a discussion of when this option is applicable.
+
+
+
+
+
+
persist_config
+
+
+ boolean
+
+
+
+
Whether or not to save the kube config refresh tokens.
+
Can also be specified via K8S_AUTH_PERSIST_CONFIG environment variable.
+
When the k8s context is using a user credentials with refresh tokens (like oidc or gke/gcloud auth), the token is refreshed by the k8s python client library but not saved by default. So the old refresh token can expire and the next auth might fail. Setting this flag to true will tell the k8s python client to save the new refresh token to the kube config file.
+
Disabled by default.
+
Choices:
+
+
false
+
true
+
+
+
+
+
+
+
+
proxy
+
+
+ string
+
+
+
+
The URL of an HTTP proxy to use for the connection.
+
Can also be specified via K8S_AUTH_PROXY environment variable.
+
Please note that this module does not pick up typical proxy settings from the environment (e.g. HTTP_PROXY).
To avoid SSL certificate validation errors when validate_certs=yes, the full certificate chain for the API server must be provided via ca_cert or in the kubeconfig file.
-name:Get an existing VirtualMachine
+kubevirt.core.kubevirt_vm_info:
+name:testvm
+namespace:default
+register:default_testvm
+
+-name:Get a list of all VirtualMachines
+kubevirt.core.kubevirt_vm_info:
+namespace:default
+register:vm_list
+
+-name:Get a list of all VirtualMachines from any namespace
+kubevirt.core.kubevirt_vm_info:
+register:vm_list
+
+-name:Search for all VirtualMachines labelled app=test
+kubevirt.core.kubevirt_vm_info:
+label_selectors:
+-app=test
+
+-name:Wait until the VirtualMachine is running
+kubevirt.core.kubevirt_vm_info:
+name:testvm
+namespace:default
+wait:true
+
+-name:Wait until the VirtualMachine is stopped
+kubevirt.core.kubevirt_vm_info:
+name:testvm
+namespace:default
+running:false
+wait:true
+
It is not included in ansible-core.
+To check whether it is installed, run ansible-galaxycollectionlist.
+
To install it, use: ansible-galaxycollectioninstallkubevirt.core.
+You need further requirements to be able to use this module,
+see Requirements for details.
+
To use it in a playbook, specify: kubevirt.core.kubevirt_vmi_info.
Can also be specified via K8S_AUTH_HOST environment variable.
+
+
+
+
+
+
impersonate_groups
+
+
+ list
+ / elements=string
+
+
+
+
Group(s) to impersonate for the operation.
+
Can also be specified via K8S_AUTH_IMPERSONATE_GROUPS environment variable, e.g. Group1,Group2.
+
+
+
+
+
+
impersonate_user
+
+
+ string
+
+
+
+
Username to impersonate for the operation.
+
Can also be specified via K8S_AUTH_IMPERSONATE_USER environment variable.
+
+
+
+
+
+
kubeconfig
+
+
+ any
+
+
+
+
Path to an existing Kubernetes config file. If not provided, and no other connection options are provided, the Kubernetes client will attempt to load the default configuration file from ~/.kube/config.
+
Can also be specified via K8S_AUTH_KUBECONFIG environment variable.
+
Multiple Kubernetes config file can be provided using separator ; for Windows platform or : for others platforms.
+
The kubernetes configuration can be provided as dictionary. This feature requires a python kubernetes client version >= 17.17.0.
+
+
+
+
+
+
label_selectors
+
+
+ list
+ / elements=string
+
+
+
+
List of label selectors to use to filter results.
+
Default:[]
+
+
+
+
+
+
name
+
+
+ string
+
+
+
+
Specify the name of the VirtualMachineInstance.
+
+
+
+
+
+
namespace
+
+
+ string
+
+
+
+
Specify the namespace of VirtualMachineInstances.
+
+
+
+
+
+
no_proxy
+
+
+ string
+
+
+
+
The comma separated list of hosts/domains/IP/CIDR that shouldn't go through proxy.
+
Can also be specified via K8S_AUTH_NO_PROXY environment variable.
+
Please note that this module does not pick up typical proxy settings from the environment (e.g. NO_PROXY).
+
This feature requires kubernetes>=19.15.0. When kubernetes library is less than 19.15.0, it fails even no_proxy set in correct.
+
Example value is localhost,.local,.example.com,127.0.0.1,127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16.
+
+
+
+
+
+
password
+
+
+ string
+
+
+
+
Provide a password for authenticating with the API.
+
Can also be specified via K8S_AUTH_PASSWORD environment variable.
+
Please read the description of the username option for a discussion of when this option is applicable.
+
+
+
+
+
+
persist_config
+
+
+ boolean
+
+
+
+
Whether or not to save the kube config refresh tokens.
+
Can also be specified via K8S_AUTH_PERSIST_CONFIG environment variable.
+
When the k8s context is using a user credentials with refresh tokens (like oidc or gke/gcloud auth), the token is refreshed by the k8s python client library but not saved by default. So the old refresh token can expire and the next auth might fail. Setting this flag to true will tell the k8s python client to save the new refresh token to the kube config file.
+
Disabled by default.
+
Choices:
+
+
false
+
true
+
+
+
+
+
+
+
+
proxy
+
+
+ string
+
+
+
+
The URL of an HTTP proxy to use for the connection.
+
Can also be specified via K8S_AUTH_PROXY environment variable.
+
Please note that this module does not pick up typical proxy settings from the environment (e.g. HTTP_PROXY).
To avoid SSL certificate validation errors when validate_certs=yes, the full certificate chain for the API server must be provided via ca_cert or in the kubeconfig file.
-name:Get an existing VirtualMachineInstance
+kubevirt.core.kubevirt_vmi_info:
+name:testvmi
+namespace:default
+register:default_testvmi
+
+-name:Get a list of all VirtualMachinesInstances
+kubevirt.core.kubevirt_vmi_info:
+namespace:default
+register:vmi_list
+
+-name:Get a list of all VirtualMachineInstances from any namespace
+kubevirt.core.kubevirt_vmi_info:
+register:vmi_list
+
+-name:Search for all VirtualMachineInstances labelled app=test
+kubevirt.core.kubevirt_vmi_info:
+label_selectors:
+-app=test
+
+-name:Wait until the VirtualMachineInstace is ready
+kubevirt.core.kubevirt_vm_info:
+name:testvm
+namespace:default
+wait:true
+
Each supported collection maintained by Ansible follows Semantic Versioning 2.0.0 (https://semver.org/), for example:
+Given a version number MAJOR.MINOR.PATCH, the following is incremented:
+
MAJOR version: when making incompatible API changes (see Feature Release scenarios below for examples)
+
MINOR version: when adding features or functionality in a backwards compatible manner, or updating testing matrix and/or metadata (deprecation)
+
PATCH version: when adding backwards compatible bug fixes or security fixes (strict).
+
Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.
+
The first version of a generally available supported collection on Ansible Automation Hub shall be version 1.0.0. NOTE: By default, all newly created collections may begin with a smaller default version of 0.1.0, and therefore a version of 1.0.0 should be explicitly stated by the collection maintainer.
Assuming the current release is 1.0.0, and a new module is ready to be added to the collection, the minor version would be incremented to 1.1.0. The change in the MINOR version indicates an additive change was made while maintaining backward compatibility for existing content within the collection.
+
+
+
New feature to existing plugin or role within a collection (backwards compatible)
+
Assuming the current release is 1.0.0, and new features for an existing module are ready for release . We would increment the MINOR version to 1.1.0. The change in the MINOR version indicates an additive change was made while maintaining backward compatibility for existing content within the collection.
+
+
+
Bug fix or security fix to existing content within a collection
+
Assuming the current release is 1.0.0 and a bug is fixed prior to the next minor release, the PATCH version would be incremented to 1.0.1. The patch indicates only a bug was fixed within a current version. The PATCH release does not contain new content, nor was functionality removed. Bug fixes may be included in a MINOR or MAJOR feature release if the timing allows, eliminating the need for a PATCH dedicated to the fix.
+
+
+
Breaking change to any content within a collection
+
Assuming the current release is 1.0.0, and a breaking change (API or module) is introduced for a user or developer. The MAJOR version would be incremented to 2.0.0.
+
Examples of breaking changes within a collection may include but are not limited to:
+
+
Argspec changes for a module that require either inventory structure or playbook changes.
+
A change in the shape of either the inbound or returned payload of a filter plugin.
+
Changes to a connection plugin that require additional inventory parameters or ansible.cfg entries.
+
New functionality added to a module that changes the outcome of that module as released in previous versions.
New releases are triggered by annotated git tags named after semantic versioning. The automation publishes the built artifacts to ansible-galaxy and github releases page.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/2.2.2/roles/index.html b/2.2.2/roles/index.html
new file mode 100644
index 0000000..6faeee6
--- /dev/null
+++ b/2.2.2/roles/index.html
@@ -0,0 +1,128 @@
+
+
+
+
+
+
+
+
+ Role Index — KubeVirt Ansible Collection documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/2.2.2/searchindex.js b/2.2.2/searchindex.js
new file mode 100644
index 0000000..8f3fd1a
--- /dev/null
+++ b/2.2.2/searchindex.js
@@ -0,0 +1 @@
+Search.setIndex({"alltitles":{"A typographical error was fixed in the documentation for a collection":[[10,"a-typographical-error-was-fixed-in-the-documentation-for-a-collection"]],"Ansible and Python version compatibility":[[2,"ansible-and-python-version-compatibility"]],"Ansible collections":[[2,"ansible-collections"]],"Authors":[[6,"authors"],[7,"authors"],[8,"authors"],[9,"authors"]],"Breaking Changes / Porting Guide":[[0,"breaking-changes-porting-guide"]],"Breaking change to any content within a collection":[[10,"breaking-change-to-any-content-within-a-collection"]],"Bug fix or security fix to existing content within a collection":[[10,"bug-fix-or-security-fix-to-existing-content-within-a-collection"]],"Bugfixes":[[0,"bugfixes"],[0,"id30"],[0,"id38"],[0,"id46"]],"Build and install locally":[[2,"build-and-install-locally"]],"Code of Conduct":[[2,"code-of-conduct"]],"Collection Versioning Strategy":[[10,null]],"Collection maintenance":[[2,"collection-maintenance"]],"Content removed from a collection":[[10,"content-removed-from-a-collection"]],"Continuous integration":[[12,"continuous-integration"]],"Contributing":[[1,null]],"Contributing to this collection":[[2,"contributing-to-this-collection"]],"Contributor\u2019s Guidelines":[[3,null]],"Dependencies":[[2,"dependencies"]],"Developer documentation":[[4,null]],"Development environment":[[3,"development-environment"]],"Documentation added/removed/modified within a collection":[[10,"documentation-added-removed-modified-within-a-collection"]],"Example config and playbooks":[[12,"example-config-and-playbooks"]],"Examples":[[6,"examples"],[7,"examples"],[8,"examples"],[9,"examples"]],"General":[[4,null]],"Governance":[[2,"governance"]],"Included content":[[2,"included-content"]],"Installing the Collection from Ansible Galaxy":[[2,"installing-the-collection-from-ansible-galaxy"]],"Integration tests":[[12,"integration-tests"]],"KubeVirt Collection for Ansible Release Notes":[[0,null]],"Lean Ansible bindings for KubeVirt":[[2,null]],"Licensing":[[2,"licensing"]],"Major Changes":[[0,"major-changes"]],"Minor Changes":[[0,"minor-changes"],[0,"id11"],[0,"id15"],[0,"id24"],[0,"id33"],[0,"id43"],[0,"id54"]],"New content is added to an existing collection":[[10,"new-content-is-added-to-an-existing-collection"]],"New feature to existing plugin or role within a collection (backwards compatible)":[[10,"new-feature-to-existing-plugin-or-role-within-a-collection-backwards-compatible"]],"Notes":[[6,"notes"],[7,"notes"],[8,"notes"],[9,"notes"]],"Parameters":[[6,"parameters"],[7,"parameters"],[8,"parameters"],[9,"parameters"]],"Plugin Index":[[5,null]],"Plugins":[[2,"plugins"]],"Python libraries":[[2,"python-libraries"]],"Release Summary":[[0,"release-summary"],[0,"id1"],[0,"id9"],[0,"id10"],[0,"id14"],[0,"id21"],[0,"id32"],[0,"id41"],[0,"id42"],[0,"id50"],[0,"id51"],[0,"id52"],[0,"id53"],[0,"id55"]],"Release automation":[[10,"release-automation"]],"Release policy":[[2,"release-policy"]],"Requirements":[[6,"requirements"],[7,"requirements"],[8,"requirements"],[9,"requirements"]],"Return Values":[[7,"return-values"],[8,"return-values"],[9,"return-values"]],"Role Index":[[11,null]],"Running integration tests with ansible test":[[12,"running-integration-tests-with-ansible-test"]],"Running tests with ansible-test":[[12,"running-tests-with-ansible-test"]],"Running tests with coverage analysis":[[12,"running-tests-with-coverage-analysis"]],"Running tests with tox-ansible":[[12,"running-tests-with-tox-ansible"]],"Sanity and unit tests":[[12,"sanity-and-unit-tests"]],"Synopsis":[[6,"synopsis"],[7,"synopsis"],[8,"synopsis"],[9,"synopsis"]],"Testing":[[12,null]],"Topics":[[0,"topics"]],"User documentation":[[4,null]],"Using this collection":[[2,"using-this-collection"]],"Virtualenv for development":[[3,"virtualenv-for-development"]],"Welcome to kubevirt.core Collection documentation":[[4,null]],"inventory plugins":[[5,null]],"kubevirt \u2013 Inventory source for KubeVirt VirtualMachines and VirtualMachineInstances":[[6,null]],"kubevirt_vm \u2013 Create or delete KubeVirt VirtualMachines":[[7,null]],"kubevirt_vm_info \u2013 Describe KubeVirt VirtualMachines":[[8,null]],"kubevirt_vmi_info \u2013 Describe KubeVirt VirtualMachineInstances":[[9,null]],"modules plugins":[[5,null]],"v1.0.0":[[0,"v1-0-0"]],"v1.1.0":[[0,"v1-1-0"]],"v1.2.0":[[0,"v1-2-0"]],"v1.2.1":[[0,"v1-2-1"]],"v1.2.2":[[0,"v1-2-2"]],"v1.2.3":[[0,"v1-2-3"]],"v1.3.0":[[0,"v1-3-0"]],"v1.3.1":[[0,"v1-3-1"]],"v1.3.2":[[0,"v1-3-2"]],"v1.4.0":[[0,"v1-4-0"]],"v1.5.0":[[0,"v1-5-0"]],"v2.0.0":[[0,"v2-0-0"]],"v2.1.0":[[0,"v2-1-0"]],"v2.2.0":[[0,"v2-2-0"]],"v2.2.1":[[0,"v2-2-1"]],"v2.2.2":[[0,"v2-2-2"]]},"docnames":["CHANGELOG","CONTRIBUTING","README","developing","index","plugins/index","plugins/kubevirt","plugins/kubevirt_vm","plugins/kubevirt_vm_info","plugins/kubevirt_vmi_info","releasing","roles/index","testing"],"envversion":{"sphinx":65,"sphinx.domains.c":3,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":9,"sphinx.domains.index":1,"sphinx.domains.javascript":3,"sphinx.domains.math":2,"sphinx.domains.python":4,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.intersphinx":1},"filenames":["CHANGELOG.rst","CONTRIBUTING.md","README.md","developing.md","index.rst","plugins/index.rst","plugins/kubevirt.rst","plugins/kubevirt_vm.rst","plugins/kubevirt_vm_info.rst","plugins/kubevirt_vmi_info.rst","releasing.md","roles/index.rst","testing.md"],"indexentries":{},"objects":{},"objnames":{},"objtypes":{},"terms":{"":[2,4,6,7,8,9,12],"0":[2,4,6,7,8,9,10],"1":[2,4,6,7,8,9,10,12],"10":[0,2,6,7,8,9],"100":0,"103":0,"105":0,"106":0,"108":0,"109":0,"11":[2,6,7,8,9],"111":0,"114":0,"115":0,"117":0,"119":0,"12":[6,7,8,9],"120":[7,8,9],"122":0,"124":0,"125":0,"127":[6,7,8,9],"129":0,"13":2,"130":0,"15":[0,6,7,8,9],"16":[2,6,7,8,9],"168":[6,7,8,9],"17":[6,7,8,9],"171":0,"172":[6,7,8,9],"173":0,"175":0,"176":0,"178":0,"179":0,"180":0,"19":[0,2,6,7,8,9],"192":[6,7,8,9],"2":[2,3,4,6,7,8,9,10],"28":[2,6,7,8,9],"3":[2,4,6,7,8,9],"34":[6,7,8,9],"3600":6,"4":[4,6,8],"48":7,"5":[2,4,6,7,8,9],"5gi":7,"6":[0,2],"64":6,"70":0,"72":0,"73":0,"75":0,"76":0,"8":[6,7,8,9],"8443":6,"88":0,"89":0,"9":[6,7,8,9],"90":0,"91":0,"95":0,"A":[4,6],"By":[6,8,9,10],"For":[6,12],"If":[0,2,6,7,8,9,12],"In":[6,12],"It":[0,6,7,8,9,12],"No":0,"Not":0,"Or":12,"The":[0,2,3,6,7,8,9,10,12],"To":[2,3,6,7,8,9,12],"Will":7,"_":6,"_info":0,"_v1_datavolumetemplatespec":7,"_v1_virtualmachineinstancespec":7,"aaaa":7,"abl":[6,7,8,9],"about":12,"abov":[10,12],"absent":7,"accept":2,"access":[6,7,8,9,12],"accessmod":7,"across":7,"activ":[2,6],"ad":[0,4,6,7,8,9],"add":[0,6],"addit":[0,10],"address":6,"affect":8,"after":[0,6,10],"against":2,"agent":[6,7,8,9],"alias":[6,7,8,9],"all":[2,3,6,8,9,10],"allow":[0,10,12],"alreadi":7,"also":[6,7,8,9],"alwai":[6,7,8,9],"among":2,"an":[0,2,4,6,7,8,9],"ani":[2,4,6,7,8,9],"annot":[7,8,9,10],"ansibl":[3,4,6,7,8,9,10],"ansible_cache_plugin":6,"ansible_cache_plugin_connect":6,"ansible_cache_plugin_prefix":6,"ansible_cache_plugin_timeout":6,"ansible_collect":12,"ansible_connect":0,"ansible_inventory_":6,"ansible_inventory_cach":6,"ansible_inventory_cache_connect":6,"ansible_inventory_cache_plugin":6,"ansible_inventory_cache_plugin_prefix":6,"ansible_inventory_cache_timeout":6,"ansible_inventory_use_extra_var":6,"ansible_port":[0,6],"ansible_test_prefer_podman":12,"apach":2,"api":[6,7,8,9,10],"api_found":[8,9],"api_kei":[6,7,8,9],"api_vers":[6,7,8,9],"app":[6,7,8,9],"append":6,"append_base_domain":[0,6],"applic":[6,7,8,9],"ar":[2,3,6,7,8,9,10,12],"argspec":10,"argument":[0,3,7,8,9],"argument_spec":3,"around":3,"artifact":10,"assert":0,"assign":6,"assum":10,"attach":6,"attempt":[6,7,8,9],"attribut":[7,8,9],"auth":[6,7,8,9],"authent":[6,7,8,9],"author":5,"autom":[0,2,3,4],"automat":7,"avail":[0,6,10],"avoid":[0,3,6,7,8,9],"awx":6,"background":7,"backward":[0,4],"bar":3,"base":[0,2,6,8,9],"base_domain":6,"basi":7,"basic":[6,7,8,9],"basic_auth":[6,7,8,9],"becaus":6,"becom":2,"been":2,"befor":2,"begin":10,"behavior":[7,8],"below":[6,7,8,9,10],"better":[2,12],"between":[0,7,8,9],"bind":[4,12],"boolean":[6,7,8,9],"both":12,"branch":2,"break":4,"bridg":[6,7],"bring":0,"bug":4,"build":[0,3,6,10,12],"built":[0,10],"bump":0,"ca":[6,7,8,9],"ca_cert":[6,7,8,9],"cach":[0,6],"cache_connect":6,"cache_plugin":6,"cache_prefix":6,"cache_timeout":6,"can":[2,3,6,7,8,9,12],"case":[6,7],"cd":12,"cert_fil":[6,7,8,9],"certain":0,"certif":[6,7,8,9],"cfg":10,"chain":[6,7,8,9],"chang":[3,4,7,12],"changelog":[0,4],"charact":7,"check":[6,7,8,9,12],"checkout":2,"choic":[6,7,8,9],"choosen":12,"chore":0,"ci":12,"cidr":[6,7,8,9],"cleanup":[0,12],"client":[6,7,8,9],"client_cert":[6,7,8,9],"client_kei":[6,7,8,9],"clone":[2,12],"cloud":7,"cloudinit":7,"cloudinitnocloud":7,"cluster":[0,6,7,8,9,12],"code":[0,4,12],"collabor":2,"collect":[6,7,8,9,12],"colon":[6,7,8,9],"com":[6,7,8,9,12],"combin":2,"comma":[6,7,8,9],"command":[2,3],"comment":[6,7,8,9],"common":[7,8,9],"commun":2,"compar":0,"compat":[0,3,4,12],"complex":[7,8,9],"compos":6,"composit":6,"concaten":[3,6],"condit":[6,7,8],"conduct":4,"config":[4,6,7,8,9],"configur":[0,6,7,8,9,12],"conjunct":6,"connect":[0,6,7,8,9,10],"consensu":2,"consid":10,"construct":6,"contain":[3,10,12],"containerdisk":7,"content":4,"context":[6,7,8,9],"continu":[0,6],"contribut":4,"contributor":[2,4],"control":[0,6,7],"convent":3,"core":[0,2,6,7,8,9,12],"correct":[6,7,8,9,10],"cover":12,"creat":[2,4,5,6,10,12],"create_group":6,"creation":[0,6],"credenti":[6,7,8,9],"ctrl":3,"current":[2,8,9,10],"custom":6,"dash":3,"data":6,"data_volume_templ":7,"datavolum":7,"debug":12,"decis":2,"dedic":[2,10],"default":[0,3,6,7,8,9,10],"default_testvm":8,"default_testvmi":9,"default_valu":6,"defin":[3,6],"definit":[0,7],"delet":[2,4,5,10,12],"delete_opt":7,"dep":12,"depend":[0,7,12],"deprec":[0,6,10],"deriv":6,"describ":[0,2,4,5],"descript":[6,7,8,9],"detail":[2,6,7,8,9],"determin":7,"dev":12,"develop":[2,6,10,12],"devic":7,"dictionari":[6,7,8,9],"did":12,"differ":7,"directori":[3,12],"disabl":[6,7,8,9],"discuss":[2,6,7,8,9],"do":3,"doc":[0,2],"docker":[7,12],"docsit":0,"document":[0,6,7,8,9],"doe":[6,7,8,9,10],"domain":[6,7,8,9],"don":[2,3],"done":12,"down":12,"downstream":0,"drop":0,"due":0,"durat":[6,7],"dv":7,"e":[3,6,7,8,9],"e2":[0,12],"each":[3,6,10],"earli":0,"ed25519":7,"either":[7,8,9,10],"elaps":7,"element":[6,7,8,9],"elimin":10,"empti":[0,6,7],"en":[6,7,8,9],"enabl":[0,6],"end":[6,7,8,9],"enhanc":0,"ensur":[0,6,12],"entri":[6,10],"environ":[4,6,7,8,9,12],"error":[4,6,7,8,9],"establish":6,"etc":[8,9],"even":[6,7,8,9],"everi":2,"exampl":[3,4,5,10],"except":3,"exclus":[6,7],"execut":[6,7,8,9],"exist":[0,4,6,7,8,9],"expir":[6,7,8,9],"explic":0,"explicitli":10,"express":6,"extens":[3,10],"extra":6,"fact":6,"fact_cach":6,"fact_caching_connect":6,"fact_caching_prefix":6,"fact_caching_timeout":6,"fail":[6,7,8,9],"fals":[6,7,8,9],"fatal":6,"feat":0,"featur":[0,4,6,7,8,9],"fedora":7,"feel":2,"fetch":6,"field":[0,7,8,9],"field_selector":[8,9],"file":[0,2,3,6,7,8,9],"filenam":6,"filter":[8,9,10],"find":[2,8,9],"fip":0,"first":10,"fix":[0,4],"flag":[6,7,8,9],"focus":3,"follow":[2,3,7,8,9,10,12],"foo":[3,6,7,8,9],"forc":7,"foreground":7,"format":[6,10,12],"found":[0,2,6,7,8,9],"fragment":0,"free":2,"from":[0,3,4,6,7,8,9],"full":[2,6,7,8,9],"function":[0,10],"further":[6,7,8,9],"g":[3,6,7,8,9],"galaxi":[6,7,8,9,10,12],"gcloud":[6,7,8,9],"gener":[6,7,10],"generate_nam":7,"get":[8,9],"git":[10,12],"github":[10,12],"give":0,"given":[6,10],"gke":[6,7,8,9],"go":[3,6,7,8,9],"govern":4,"group":[0,6,7,8,9],"group1":[6,7,8,9],"group2":[6,7,8,9],"gt":[6,7,8,9],"guid":2,"guidelin":[1,2,4],"gz":2,"ha":2,"hack":12,"halt":7,"have":[2,3,6],"header":[6,7,8,9],"help":2,"here":[6,7,8,9],"hidden_field":[0,7,8,9],"hide":[0,7,8,9],"high":6,"higher":[0,6],"highest":6,"highlight":[6,7,8,9],"host":[0,2,6,7,8,9],"host_format":6,"hotfix":0,"how":[2,7,8,9,10],"html":[6,7,8,9,12],"http":[6,7,8,9,10,12],"http_proxi":[6,7,8,9],"hub":[0,10],"i":[0,2,4,6,7,8,9,12],"ie":3,"ignor":[0,6,7,8,9],"imag":7,"imperson":[6,7,8,9],"impersonate_group":[6,7,8,9],"impersonate_us":[6,7,8,9],"import":2,"improv":0,"inbound":10,"includ":[0,3,4,6,7,8,9,10],"incompat":10,"increas":10,"increment":10,"indent":3,"index":[4,12],"indic":10,"individu":2,"ini":6,"initi":0,"input":6,"instal":[3,6,7,8,9,12],"instancetyp":7,"instead":6,"integ":[6,7,8,9],"integr":[0,4],"interfac":[0,6,7],"interface_nam":6,"intern":3,"interpol":3,"interpret":3,"introduc":10,"invalid":6,"inventori":[0,2,4,10,12],"inventory_plugin":6,"io":[6,7,8,9],"ip":[6,7,8,9],"issu":[0,2,12],"item":6,"its":7,"jinja":3,"jinja2":6,"jsonpatch":[2,7],"k8":[0,6,7,8,9],"k8s_auth_api_kei":[6,7,8,9],"k8s_auth_cert_fil":[6,7,8,9],"k8s_auth_context":[6,7,8,9],"k8s_auth_host":[6,7,8,9],"k8s_auth_impersonate_group":[6,7,8,9],"k8s_auth_impersonate_us":[6,7,8,9],"k8s_auth_key_fil":[6,7,8,9],"k8s_auth_kubeconfig":[6,7,8,9],"k8s_auth_no_proxi":[6,7,8,9],"k8s_auth_password":[6,7,8,9],"k8s_auth_persist_config":[6,7,8,9],"k8s_auth_proxi":[6,7,8,9],"k8s_auth_proxy_headers_basic_auth":[6,7,8,9],"k8s_auth_proxy_headers_proxy_basic_auth":[6,7,8,9],"k8s_auth_proxy_headers_user_ag":[6,7,8,9],"k8s_auth_ssl_ca_cert":[6,7,8,9],"k8s_auth_usernam":[6,7,8,9],"k8s_auth_verify_ssl":[6,7,8,9],"keep":[0,3],"kei":[0,6,7,8,9],"key_fil":[6,7,8,9],"keyed_group":6,"kind":[2,8,9,12],"kindexgw":7,"know":2,"kube":[6,7,8,9],"kube_secondary_dn":6,"kubeconfig":[6,7,8,9],"kubectl":12,"kubemacpool":[7,8,9],"kubernet":[0,2,6,7,8,9],"kubesecondarydn":6,"kubevirt":[1,5,12],"kubevirt_":0,"kubevirt_vm":[0,2,4,5],"kubevirt_vm_info":[0,2,4,5,9],"kubevirt_vmi_info":[0,2,4,5],"label":[6,7,8,9,10],"label_selector":[6,8,9],"latest":[6,7,8,9],"lead":6,"leading_separ":6,"lean":4,"learn":2,"less":[6,7,8,9],"let":2,"level":6,"librari":[6,7,8,9],"licens":4,"like":[2,3,6,7,8,9,12],"limit":10,"line":2,"link":0,"list":[0,2,3,6,7,8,9],"load":[0,6,7,8,9],"local":[6,7,8,9,12],"localhost":[6,7,8,9],"locat":12,"long":[7,8,9],"lookup":0,"low":6,"lower":6,"lowercas":3,"machin":[2,3,6,12],"made":[2,10],"mai":[7,10],"main":[2,7],"maintain":[2,10],"mainten":[0,4],"major":10,"make":[0,2,3,6,10,12],"make_head":[6,7,8,9],"managedfield":[7,8,9],"mani":0,"manner":10,"manual":7,"map":[6,8,9],"markup":0,"masquerad":7,"match":[7,8,9],"matcher":7,"matrix":[2,10],"md":2,"medium":7,"memori":6,"mention":2,"merg":6,"met":7,"meta":3,"metadata":[7,8,9,10],"method":7,"might":[6,7,8,9],"min":12,"mind":2,"minor":10,"mkdir":12,"mode":[0,7,8,9],"modifi":[4,8],"modul":[0,6,7,8,9,10],"more":[0,2,3,6],"mostli":0,"mount":12,"move":6,"multipl":[0,6,7,8,9,12],"multu":7,"must":[6,7,8,9],"mutual":[6,7],"my":3,"my_path":3,"my_playbook":3,"my_rol":3,"name":[3,6,7,8,9,10],"namespac":[0,6,7,8,9],"namespace_vmis_group":0,"necessari":12,"need":[2,3,6,7,8,9,10,12],"network":[6,7],"network_nam":6,"networknam":7,"new":[0,2,4,6,7,8,9],"newli":10,"next":[6,7,8,9,10],"no_proxi":[6,7,8,9],"node":6,"nodeport":6,"non":[0,6],"nor":10,"note":[5,10],"noth":3,"now":0,"number":[7,8,9,10],"object":[7,8,9],"ocp":0,"oidc":[6,7,8,9],"old":[6,7,8,9],"omit":6,"onc":7,"one":6,"onli":[0,6,7,10],"oper":[2,6,7,8,9],"option":[0,6,7,8,9],"order":[6,12],"org":10,"orphan":7,"other":[3,6,7,8,9],"otherwis":6,"our":2,"out":12,"outcom":10,"output":12,"over":[0,3],"overrid":[3,6],"overridden":3,"owner":2,"p":[3,12],"page":10,"paramet":[0,5,10],"parent":6,"parent_group":6,"part":[6,7,8,9],"particip":2,"pass":[0,7,8,9],"password":[6,7,8,9],"patch":[7,10],"path":[3,6,7,8,9,12],"payload":10,"peopl":2,"perform":[7,8,9],"persist_config":[6,7,8,9],"pick":[2,6,7,8,9],"pip":[2,3,12],"plai":[3,12],"plain":12,"plane":0,"platform":[3,6,7,8,9],"playbook":[3,4,6,7,8,9,10],"pleas":[6,7,8,9,10],"plugin":[4,6,12],"pod":7,"podman":12,"polici":[4,7],"port":6,"possibl":[0,3,6],"post_task":3,"pre":10,"pre_task":3,"preced":6,"precondit":7,"prefer":7,"prefix":6,"present":7,"previou":10,"primari":6,"prior":10,"prioriti":[0,6],"proce":7,"process":[0,2],"produc":12,"project":[0,6,7,8,9,12],"project_dir":12,"propagationpolici":7,"proper":0,"propos":2,"provid":[0,2,6,7,8,9,12],"proxi":[6,7,8,9],"proxy_basic_auth":[6,7,8,9],"proxy_head":[6,7,8,9],"publish":10,"purpos":[3,12],"python":[0,3,4,6,7,8,9,12],"pyyaml":[2,6,7,8,9],"quai":7,"question":2,"r":[2,12],"random":[0,7],"read":[6,7,8,9],"readi":[7,8,9,10],"readm":10,"readthedoc":[6,7,8,9],"readwriteonc":7,"rebuild":0,"recommend":12,"reduc":0,"redund":0,"refer":[1,2,6,7,8,9],"refresh":[6,7,8,9],"regist":[8,9],"registri":7,"releas":4,"reli":12,"remain":0,"remov":[4,6,12],"replac":7,"report":12,"repositori":[2,12],"repres":[6,7,8,9],"represent":[8,9],"reproduc":12,"request":7,"requir":[2,3,5,10,12],"rerunonfailur":7,"resourc":[7,8,9],"resourcevers":7,"rest":[8,9],"result":[3,7,8,9],"retrigg":0,"return":[0,5,6,10],"review_checklist":2,"revis":10,"rework":0,"robust":0,"role":[3,4],"rsa":0,"run":[0,3,6,7,8,9],"run_strategi":[0,7],"runstrategi":[0,7],"same":3,"sampl":[7,12],"saniti":4,"save":[6,7,8,9],"scenario":10,"schema":[8,9],"script":12,"search":[8,9],"second":[6,7,8,9],"secondari":[0,6],"section":[10,12],"secur":4,"see":[2,6,7,8,9,10],"select":[3,6],"selector":[6,8,9],"self":3,"semant":10,"semver":10,"separ":[3,6,7,8,9],"server":[6,7,8,9],"servic":[0,6],"set":[0,6,7,8,9],"setup":[6,12],"sever":0,"sh":12,"shall":10,"shape":10,"shift":3,"ship":0,"should":[0,3,6,7,8,10],"shouldn":[6,7,8,9],"shown":12,"sinc":6,"singl":0,"skip":6,"slash":3,"sleep":[7,8,9],"small":0,"smaller":10,"so":[6,7,8,9,12],"softwar":[0,2],"some":0,"someth":2,"sourc":[0,2,4,5,7,12],"space":3,"spec":[7,8,9],"specif":[3,6,8,9],"specifi":[6,7,8,9],"split":6,"ssh":[0,6,7],"ssh_authorized_kei":7,"ssl":[6,7,8,9],"ssl_ca_cert":[6,7,8,9],"standard":[8,9],"start":[2,3,6],"state":[7,8,9,10],"statu":[8,9],"step":12,"still":6,"stop":[0,8],"storag":7,"strategi":4,"strict":[6,10],"string":[6,7,8,9],"structur":10,"subset":6,"success":[7,8,9],"successfulli":[8,9],"sudo":12,"suit":12,"support":[0,2,7,8,9,10,12],"switch":0,"symlink":3,"sync":0,"synopsi":5,"t":[2,3,6,7,8,9],"tabl":6,"tag":[2,10],"tar":2,"tarbal":0,"target":[7,8,9],"task":[3,7],"tell":[6,7,8,9],"templat":7,"termin":12,"test":[0,2,3,4,6,7,8,9,10],"testdv":7,"testvm":[7,8,9],"testvmi":9,"text":[2,12],"than":[3,6,7,8,9],"thei":[6,12],"them":2,"therefor":10,"thi":[0,4,6,7,8,9,10,12],"those":[3,6,7],"through":[2,6,7,8,9],"time":[7,10],"timestamp":[7,8,9],"toggl":6,"token":[6,7,8,9],"tool":2,"top":6,"tox":3,"trail":3,"trailing_separ":6,"transact":[7,8,9],"tri":0,"trigger":[0,10],"true":[6,7,8,9],"try":6,"two":12,"txt":[2,12],"type":[0,6,7],"typic":[6,7,8,9],"typograph":4,"u1":7,"uid":[6,7],"under":3,"underscor":[3,6],"uniqu":[7,8,9],"unit":[0,4],"unset":[0,6],"unset_ansible_port":[0,6],"until":[8,9],"up":[6,7,8,9,12],"updat":[0,10],"url":[6,7,8,9],"urllib3":[6,7,8,9],"us":[0,3,4,6,7,8,9,12],"use_extra_var":6,"use_servic":6,"user":[3,6,7,8,9,10],"user_ag":[6,7,8,9],"userdata":7,"usernam":[6,7,8,9],"util":[6,7,8,9],"v":3,"v1":[4,6,7,8,9],"v2":4,"valid":[3,6,7,8,9],"validate_cert":[6,7,8,9],"valu":[0,5,6],"var":[3,6],"vari":[7,8,9],"variabl":[3,6,7,8,9],"vendor":0,"venv":3,"veri":2,"verif":12,"verifi":[0,6,7,8,9],"verify_ssl":[6,7,8,9],"version":[0,4,6,7,8,9],"via":[6,7,8,9],"virtual":[2,6,12],"virtualenv":4,"virtualmachin":[0,2,4,5],"virtualmachineinst":[2,4,5],"virtualmachineinstac":9,"virtualmachinesinst":9,"vm":0,"vm_list":8,"vmi":0,"vmi_list":9,"voic":2,"volum":7,"vscode":3,"wa":[0,4,6,7],"wai":12,"wait":[7,8,9],"wait_condit":0,"wait_sleep":[7,8,9],"wait_timeout":[7,8,9],"want":[2,6,7,8,9],"we":[2,6,10],"welcom":2,"were":[0,8,9],"when":[3,6,7,8,9,10],"where":3,"whether":[6,7,8,9],"which":[0,2,3,6,12],"while":10,"window":[0,6,7,8,9],"winrm":0,"within":4,"work":[0,6,12],"world":2,"would":[3,10],"x27":[6,7,8,9],"xml":12,"xxxxxxxxxxxxxxxx":6,"yaml":[0,3,6],"ye":[6,7,8,9],"yml":[0,2,3,6,12],"you":[2,3,6,7,8,9,12],"your":[2,3,6,12]},"titles":["KubeVirt Collection for Ansible Release Notes","Contributing","Lean Ansible bindings for KubeVirt","Contributor\u2019s Guidelines","Welcome to kubevirt.core Collection documentation","Plugin Index","kubevirt \u2013 Inventory source for KubeVirt VirtualMachines and VirtualMachineInstances","kubevirt_vm \u2013 Create or delete KubeVirt VirtualMachines","kubevirt_vm_info \u2013 Describe KubeVirt VirtualMachines","kubevirt_vmi_info \u2013 Describe KubeVirt VirtualMachineInstances","Collection Versioning Strategy","Role Index","Testing"],"titleterms":{"":3,"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"A":10,"ad":10,"an":10,"analysi":12,"ani":10,"ansibl":[0,2,12],"author":[6,7,8,9],"autom":10,"backward":10,"bind":2,"break":[0,10],"bug":10,"bugfix":0,"build":2,"chang":[0,10],"code":2,"collect":[0,2,4,10],"compat":[2,10],"conduct":2,"config":12,"content":[2,10],"continu":12,"contribut":[1,2],"contributor":3,"core":4,"coverag":12,"creat":7,"delet":7,"depend":2,"describ":[8,9],"develop":[3,4],"document":[4,10],"environ":3,"error":10,"exampl":[6,7,8,9,12],"exist":10,"featur":10,"fix":10,"from":[2,10],"galaxi":2,"gener":4,"govern":2,"guid":0,"guidelin":3,"i":10,"includ":2,"index":[5,11],"instal":2,"integr":12,"inventori":[5,6],"kubevirt":[0,2,4,6,7,8,9],"kubevirt_vm":7,"kubevirt_vm_info":8,"kubevirt_vmi_info":9,"lean":2,"librari":2,"licens":2,"local":2,"mainten":2,"major":0,"minor":0,"modifi":10,"modul":5,"new":10,"note":[0,6,7,8,9],"paramet":[6,7,8,9],"playbook":12,"plugin":[2,5,10],"polici":2,"port":0,"python":2,"releas":[0,2,10],"remov":10,"requir":[6,7,8,9],"return":[7,8,9],"role":[10,11],"run":12,"saniti":12,"secur":10,"sourc":6,"strategi":10,"summari":0,"synopsi":[6,7,8,9],"test":12,"thi":2,"topic":0,"tox":12,"typograph":10,"unit":12,"us":2,"user":4,"v1":0,"v2":0,"valu":[7,8,9],"version":[2,10],"virtualenv":3,"virtualmachin":[6,7,8],"virtualmachineinst":[6,9],"wa":10,"welcom":4,"within":10}})
\ No newline at end of file
diff --git a/2.2.2/testing.html b/2.2.2/testing.html
new file mode 100644
index 0000000..b509257
--- /dev/null
+++ b/2.2.2/testing.html
@@ -0,0 +1,250 @@
+
+
+
+
+
+
+
+
+ Testing — KubeVirt Ansible Collection documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
In order to test changes with ansible-test, it is recommended to bind mount
+the repository to ~/.ansible/collections/ansible_collections/kubevirt/core
+if you did not check it out into this location.
ANSIBLE_TEST_PREFER_PODMAN=1 ansible-test units --docker --coverage
+
+
+
Create the coverage report in HTML format using:
+
ansible-test coverage html
+
+
+
Or in XML format using:
+
ansible-test coverage xml
+
+
+
Multiple coverage report formats are supported such as: plain text, XML or HTML. If HTML format is used as shown above, the report can be accessed in the following location: ~/.ansible/collections/ansible_collections/kubevirt/tests/output/reports/coverage/index.html or in ~/.ansible/collections/ansible_collections/kubevirt/tests/output/reports/coverage/coverage.xml if XML format is choosen.
The hack/e2e-setup.sh script contains the steps necessary to reproduce the
+CI integration test environment, which relies on docker or podman,
+kubectl and kind.
+
To create the CI integration test environment on your machine run:
+
make cluster-up
+
+
+
To remove the test CI integration test environment run:
Sample playbooks and inventory configurations are provided in the examples/ directory; to run the playbooks locally, build the testing environment with the script above, then the steps are as follows:
+
# setup environment
+pipinstallansible-core
+# clone the repository
+gitclonehttps://github.com/kubevirt/kubevirt.core
+cdkubevirt.core
+# install collection dependencies
+ansible-galaxycollectioninstall-rrequirements.yml
+# install collection python deps
+pipinstall-rrequirements.txt
+# setup environment
+hack/e2e-setup.sh
+# run inventory source
+ansible-inventory-iexamples/inventory.kubevirt.yml
+# create a virtual machine
+ansible-playbook-iexamples/inventory.kubevirt.ymlexamples/play-create-min.yml
+# terminate a virtual machine
+ansible-playbook-iexamples/inventory.kubevirt.ymlexamples/play-delete.yml
+# terminate the environment
+hack/e2e-setup.sh--cleanup
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/index.html b/index.html
index de2c815..b1d3edb 100644
--- a/index.html
+++ b/index.html
@@ -43,6 +43,7 @@