{%- block doctype -%}
<!DOCTYPE html>
{%- endblock %}
{%- set reldelim1 = reldelim1 is not defined and ' &raquo;' or reldelim1 %}
{%- set reldelim2 = reldelim2 is not defined and ' |' or reldelim2 %}
{%- set render_sidebar = (not embedded) and (not theme_nosidebar|tobool) and
                         (sidebars != []) %}
{%- set url_root = pathto('', 1) %}
{%- if url_root == '#' %}{% set url_root = '' %}{% endif %}
{%- if not embedded and docstitle %}
  {%- set titlesuffix = " &mdash; "|safe + docstitle|e %}
{%- else %}
  {%- set titlesuffix = "" %}
{%- endif %}

{%- macro searchform(classes, button) %}
<form class="{{classes}}" role="search" action="{{ pathto('search') }}" method="get" autocomplete="off">
  <div class="form-group inner-addon left-addon">
    <i class="glyphicon glyphicon-search"></i>
    <input type="text" name="q" class="form-control" placeholder="Search">
  </div>
  <input type="hidden" name="check_keywords" value="yes" />
  <input type="hidden" name="area" value="default" />
  {% if button %}
    <input type="submit" class="btn btn-default" value="search">
  {% endif %}
</form>
{%- endmacro %}

{%- macro sidebarglobal() %}
  {{ toctree(maxdepth=4|toint, collapse=True,includehidden=theme_globaltoc_includehidden|tobool) }}
{%- endmacro %}

{%- macro sidebar() %}
      {%- if render_sidebar %}
      <div class="sphinxsidebar rightsidebar" role="navigation" aria-label="main navigation">
        <div class="sphinxsidebarwrapper">
          {%- block sidebartoc %}
          {%- include "localtoc.html" %}
          {%- endblock %}
        </div>
      </div>
      {%- endif %}
{%- endmacro %}


{%- macro script() %}
    <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:  {{ has_source|lower }},
        SOURCELINK_SUFFIX: '{{ sourcelink_suffix }}'
      };
    </script>

    <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.1.min.js"></script>
    {% for name in ['underscore.js', 'searchtools_custom.js', 'doctools.js', 'selectlang.js'] %}
    <script type="text/javascript" src="{{ pathto('_static/' + name, 1) }}"></script>
    {% endfor %}

    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
    <script type="text/javascript"> jQuery(function() { Search.loadIndex("{{ pathto('/searchindex.js', 1) }}"); Search.init();}); </script>

    <script>
      (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new
      Date();a=s.createElement(o),
      m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
      })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

      ga('create', 'UA-96378503-1', 'auto');
      ga('send', 'pageview');

    </script>

    <!-- {%- for scriptfile in script_files %} -->
    <!-- <script type="text/javascript" src="{{ pathto(scriptfile, 1) }}"></script> -->
    <!-- {%- endfor %} -->
{%- endmacro %}

{%- macro css() %}
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">

    {% if pagename != 'index' %}
    <link rel="stylesheet" href="{{ pathto('_static/' + style, 1) }}" type="text/css" />
    <link rel="stylesheet" href="{{ pathto('_static/pygments.css', 1) }}" type="text/css" />
    {%- endif %}

    <link rel="stylesheet" href="{{ pathto('_static/mxnet.css', 1) }}" type="text/css">
{%- endmacro %}

<html lang="en">
  <head>
    <meta charset="{{ encoding }}">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    {# The above 3 meta tags *must* come first in the head; any other head content
       must come *after* these tags. #}
    {{ metatags }}
    {%- block htmltitle %}
    <meta property="og:title"              content="{{ title }}" />
    <meta property="og:image"              content="https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/image/og-logo.png" />
    <meta property="og:image:secure_url"              content="https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/image/og-logo.png" />
    {%- if pagename != 'index' and 'no title' not in title %}
    <meta property="og:description"        content="{{ title }}" />
    <title>{{ title|striptags|e }}{{ titlesuffix }}</title>
    {%- elif pagename == 'index' %}
    <meta property="og:description"        content="A flexible and efficient library for deep learning." />
    <title>MXNet: A Scalable Deep Learning Framework</title>
    {%- else %}
    <meta property="og:description"        content="A flexible and efficient library for deep learning." />
    <title>{{ pagename.split('/')[0]|capitalize }}{{ titlesuffix }}</title>
    {%- endif %}
    {%- endblock %}
    {{ css() }}
    {%- if not embedded %}
    {{ script() }}
    {%- if use_opensearch %}
    <link rel="search" type="application/opensearchdescription+xml"
          title="{% trans docstitle=docstitle|e %}Search within {{ docstitle }}{% endtrans %}"
          href="{{ pathto('_static/opensearch.xml', 1) }}"/>
    {%- endif %}
    {%- if favicon %}
    <link rel="shortcut icon" href="{{ pathto('_static/' + favicon, 1) }}"/>
    {%- endif %}
    {%- endif %}
{%- block linktags %}
    {%- if hasdoc('about') %}
    <link rel="author" title="{{ _('About these documents') }}" href="{{ pathto('about') }}" />
    {%- endif %}
    {%- if hasdoc('genindex') %}
    <link rel="index" title="{{ _('Index') }}" href="{{ pathto('genindex') }}" />
    {%- endif %}
    {%- if hasdoc('search') %}
    <link rel="search" title="{{ _('Search') }}" href="{{ pathto('search') }}" />
    {%- endif %}
    {%- if hasdoc('copyright') %}
    <link rel="copyright" title="{{ _('Copyright') }}" href="{{ pathto('copyright') }}" />
    {%- endif %}
    {%- 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 %}
{%- endblock %}
{%- block extrahead %} {% endblock %}

    <link rel="icon" type="image/png" href="https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/image/mxnet-icon.png">
  </head>
  <body role="document" background="https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/image/mxnet-background-compressed.jpeg">
    <div class='content-block'>
    {%- include "navbar.html" %}
    
    {% if pagename != 'index' %}
    <script type="text/javascript">
        $('body').css('background', 'white');
    </script>
    <div class="container">
      <div class="row">
        <div class="sphinxsidebar leftsidebar" role="navigation" aria-label="main navigation">
          <div class="sphinxsidebarwrapper">
            {{sidebarglobal()}}
          </div>
        </div>
        <div class="content">
          <div class="page-tracker"></div>
          {% block body %} {% endblock %}
        </div>
      </div>
      {{ sidebar() }}
    </div>
    {%- include "footer.html" %}
    {%- else %}
    {%- include "index.html" %}
    {%- include "footer.html" %}
    {%- endif %} <!-- pagename != index -->
    </div>

    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>
    <script type="text/javascript" src="{{ pathto('_static/js/sidebar.js', 1) }}"></script>
    <script type="text/javascript" src="{{ pathto('_static/js/search.js', 1) }}"></script>
    <script type="text/javascript" src="{{ pathto('_static/js/navbar.js', 1) }}"></script>
    <script type="text/javascript" src="{{ pathto('_static/js/clipboard.min.js', 1) }}"></script>
    <script type="text/javascript" src="{{ pathto('_static/js/copycode.js', 1) }}"></script>
    <script type="text/javascript" src="{{ pathto('_static/js/page.js', 1) }}"></script>
    <script type="text/javascript">
        $('body').ready(function () {
            $('body').css('visibility', 'visible');
        });
    </script>
  </body>
</html>
