---
layout: docpage
{% block title %}
title: "Documentation"
{% endblock%}
is_homepage: false
is_sphinx_doc: true
{% for doc in parents %}
doc-parent: "{{ doc.title }}"
{% endfor %}
doc-title: "{{ title }}"
doc-header-links: '
  <link rel="top" title="{{ docstitle|e }}" href="{{ pathto('index') }}"/>
  {%- if parents %}
      <link rel="up" title="{{ parents[-1].title|striptags|e }}" href="{{ parents[-1].link|e }}"/>
  {%- endif %}
  {%- if next %}
      <link rel="next" title="{{ next.title|striptags|e }}" href="{{ next.link|e }}"/>
  {%- endif %}
  {%- if prev %}
      <link rel="prev" title="{{ prev.title|striptags|e }}" href="{{ prev.link|e }}"/>
  {%- endif %}
'
doc-search-path: "{{ pathto('search') }}"
{% block extrafooter %}
extra-footer: '
<script type="text/javascript">
    var DOCUMENTATION_OPTIONS = {
      URL_ROOT:    "{{ url_root }}",
      VERSION:     "{{ release|e }}",
      COLLAPSE_INDEX: false,
      FILE_SUFFIX: "{{ "" if no_search_suffix else file_suffix }}",
      HAS_SOURCE:  false,
      SOURCELINK_SUFFIX: "{{ sourcelink_suffix }}"
    };
</script>
'
{% endblock %}
---
<div class="container-fluid">
  <div class="row">
    <div class="col-md-3">
      <div class="doc-navigation">
        <div class="doc-menu" role="navigation">
          <div class="navbar-header">
            <button type="button" class="pull-left navbar-toggle" data-toggle="collapse" data-target=".sidebar-navbar-collapse">
              <span class="sr-only">Toggle navigation</span>
              <span class="icon-bar"></span>
              <span class="icon-bar"></span>
              <span class="icon-bar"></span>
            </button>
          </div>
          <div class="navbar-collapse collapse sidebar-navbar-collapse">
            <form id="doc-search-form" class="navbar-form" action="{{ pathto('search') }}" method="get" role="search">
              <div class="form-group">
                <input type="text" size="30" class="form-control input-sm" name="q" placeholder="Search docs">
                <input type="hidden" name="check_keywords" value="yes" />
                <input type="hidden" name="area" value="default" />
              </div>
            </form>
            {% block menu %}
            {% set toctree = toctree(maxdepth=3, collapse=True, includehidden=True) %}
            {% if toctree %}
            {{ toctree }}
            {% else %}
            <!-- Local TOC -->
            <div class="local-toc">{{ toc }}</div>
            {% endif %}
            {% endblock %}
          </div><!--/.nav-collapse -->
        </div>
      </div>
    </div>
    <div class="col-md-8">
      <div class="content doc-content">
        <div class="content-container">
          {% block body %}{% endblock %}

          {% if next or prev %}
          <div class="doc-prev-next-links" role="navigation" aria-label="footer navigation">
            {% if next %}
            <a href="{{ next.link|e }}" class="btn btn-default pull-right " role="button" title="{{ next.title|striptags|e }}" accesskey="n">Next <span class="glyphicon glyphicon-circle-arrow-right" aria-hidden="true"></span></a>
            {% endif %}
            {% if prev %}
            <a href="{{ prev.link|e }}" class="btn btn-default" role="button" title="{{ prev.title|striptags|e }}" accesskey="p"><span class="glyphicon glyphicon-circle-arrow-left" aria-hidden="true"></span> Previous</a>
            {% endif %}
          </div>
          {% endif %}
        </div>
      </div>
    </div>
  </div>
</div>
