{% assign pagepathparts = page.path | split: "/" %}
  {% assign numparts = pagepathparts | size %}
  {% case numparts %)
    {% when 1 %}
      {% assign folder1 = "" %}
      {% assign folder2 = "" %}
    {% when 2 %}
      {% assign folder1 = pagepathparts[0] %}
      {% assign folder2 = "" %}
    {% when 3 %}
      {% assign folder1 = pagepathparts[0] %}
      {% assign folder2 = pagepathparts[1] %}
  {% endcase %}
  {% for entry in site.data.toc.toc %}
    {% for p in site.pages %}
      {% if p.path == entry.path %}
        
          <div class="toc-title-wrapper">
          {% if p.path == page.path %}
            <!-- <div class="toc-title-arrow"> -->
              <h3 class="toc-current">{{ p.title }}</h3>
              <svg viewBox="0 0 926.23699 573.74994" version="1.1" x="0px" y="0px" width="8" height="8" class="toc-arrow-rot">
                <g transform="translate(904.92214,-879.1482)"><path d="
                m -673.67664,1221.6502 -231.2455,-231.24803 55.6165,
                -55.627 c 30.5891,-30.59485 56.1806,-55.627 56.8701,-55.627 0.6894,
                0 79.8637,78.60862 175.9427,174.68583 l 174.6892,174.6858 174.6892,
                -174.6858 c 96.079,-96.07721 175.253196,-174.68583 175.942696,
                -174.68583 0.6895,0 26.281,25.03215 56.8701,
                55.627 l 55.6165,55.627 -231.245496,231.24803 c -127.185,127.1864
                -231.5279,231.248 -231.873,231.248 -0.3451,0 -104.688,
                -104.0616 -231.873,-231.248 z
              " fill="currentColor"></path></g></svg>
            <!-- </div> -->
            <div class="accordion-content">
            {% for p2 in entry.children %}
              {% for q in site.pages %}
                {% if p2.path == q.path %}
                  <div class="toc_entry">
                  {% if q.path == page.path %}
                    <h4 class="toc-current">{{ q.title }}</h4>
                    <svg viewBox="0 0 926.23699 573.74994" version="1.1" x="0px" y="0px" width="7" height="7" class="toc-arrow-rot">
                        <g transform="translate(904.92214,-879.1482)"><path d="
                        m -673.67664,1221.6502 -231.2455,-231.24803 55.6165,
                        -55.627 c 30.5891,-30.59485 56.1806,-55.627 56.8701,-55.627 0.6894,
                        0 79.8637,78.60862 175.9427,174.68583 l 174.6892,174.6858 174.6892,
                        -174.6858 c 96.079,-96.07721 175.253196,-174.68583 175.942696,
                        -174.68583 0.6895,0 26.281,25.03215 56.8701,
                        55.627 l 55.6165,55.627 -231.245496,231.24803 c -127.185,127.1864
                        -231.5279,231.248 -231.873,231.248 -0.3451,0 -104.688,
                        -104.0616 -231.873,-231.248 z
                      " fill="currentColor"></path></g></svg>
                  {% else %}
                    <h4 class="toc-link"><a href="{{ q.url | remove_first: '/'}}">{{ q.title }}</a></h4>
                    <svg viewBox="0 0 926.23699 573.74994" version="1.1" x="0px" y="0px" width="7" height="7" class="toc-arrow">
                        <g transform="translate(904.92214,-879.1482)"><path d="
                        m -673.67664,1221.6502 -231.2455,-231.24803 55.6165,
                        -55.627 c 30.5891,-30.59485 56.1806,-55.627 56.8701,-55.627 0.6894,
                        0 79.8637,78.60862 175.9427,174.68583 l 174.6892,174.6858 174.6892,
                        -174.6858 c 96.079,-96.07721 175.253196,-174.68583 175.942696,
                        -174.68583 0.6895,0 26.281,25.03215 56.8701,
                        55.627 l 55.6165,55.627 -231.245496,231.24803 c -127.185,127.1864
                        -231.5279,231.248 -231.873,231.248 -0.3451,0 -104.688,
                        -104.0616 -231.873,-231.248 z
                      " fill="currentColor"></path></g></svg>
                  {% endif %}
                  </div>
                {% endif %}
              {% endfor %}
              {% if p2.children %}
                {% assign entrypathparts = p2.children[0].path | split: "/" %}
                {% if folder2 == entrypathparts[1] %}
                  <div class="menu_div2">
                  {% for p3 in p2.children %}
                    {% for r in site.pages %}
                      {% if p3.path == r.path %}
                        <div class="toc_entry">
                        {% if r.path == page.path %}
                          <h5 class="toc-current">{{ r.title }}</h5>
                          <svg viewBox="0 0 926.23699 573.74994" version="1.1" x="0px" y="0px" width="7" height="7" class="toc-arrow-rot">
                              <g transform="translate(904.92214,-879.1482)"><path d="
                              m -673.67664,1221.6502 -231.2455,-231.24803 55.6165,
                              -55.627 c 30.5891,-30.59485 56.1806,-55.627 56.8701,-55.627 0.6894,
                              0 79.8637,78.60862 175.9427,174.68583 l 174.6892,174.6858 174.6892,
                              -174.6858 c 96.079,-96.07721 175.253196,-174.68583 175.942696,
                              -174.68583 0.6895,0 26.281,25.03215 56.8701,
                              55.627 l 55.6165,55.627 -231.245496,231.24803 c -127.185,127.1864
                              -231.5279,231.248 -231.873,231.248 -0.3451,0 -104.688,
                              -104.0616 -231.873,-231.248 z
                            " fill="currentColor"></path></g></svg>
                        {% else %}
                          <h5 class="toc-link"><a href="{{ r.url | remove_first: '/'}}">{{ r.title }}</a></h5>
                          <svg viewBox="0 0 926.23699 573.74994" version="1.1" x="0px" y="0px" width="7" height="7" class="toc-arrow">
                              <g transform="translate(904.92214,-879.1482)"><path d="
                              m -673.67664,1221.6502 -231.2455,-231.24803 55.6165,
                              -55.627 c 30.5891,-30.59485 56.1806,-55.627 56.8701,-55.627 0.6894,
                              0 79.8637,78.60862 175.9427,174.68583 l 174.6892,174.6858 174.6892,
                              -174.6858 c 96.079,-96.07721 175.253196,-174.68583 175.942696,
                              -174.68583 0.6895,0 26.281,25.03215 56.8701,
                              55.627 l 55.6165,55.627 -231.245496,231.24803 c -127.185,127.1864
                              -231.5279,231.248 -231.873,231.248 -0.3451,0 -104.688,
                              -104.0616 -231.873,-231.248 z
                            " fill="currentColor"></path></g></svg>
                        {% endif %}
                        </div>
                      {% endif %}
                    {% endfor %}
                  {% endfor %}
                  </div>
                {% endif %}
              {% endif %}
            {% endfor %}
            </div>         
          {% else %}
            <h3 class="toc-link"><a href="{{ p.url | remove_first: '/'}}">{{ p.title }}</a></h3>
            <svg viewBox="0 0 926.23699 573.74994" version="1.1" x="0px" y="0px" width="8" height="8" class="toc-arrow">
                <g transform="translate(904.92214,-879.1482)"><path d="
                m -673.67664,1221.6502 -231.2455,-231.24803 55.6165,
                -55.627 c 30.5891,-30.59485 56.1806,-55.627 56.8701,-55.627 0.6894,
                0 79.8637,78.60862 175.9427,174.68583 l 174.6892,174.6858 174.6892,
                -174.6858 c 96.079,-96.07721 175.253196,-174.68583 175.942696,
                -174.68583 0.6895,0 26.281,25.03215 56.8701,
                55.627 l 55.6165,55.627 -231.245496,231.24803 c -127.185,127.1864
                -231.5279,231.248 -231.873,231.248 -0.3451,0 -104.688,
                -104.0616 -231.873,-231.248 z
              " fill="currentColor"></path></g></svg>
          {% endif %}
          </div>
        
      {% if entry.children %}
        {% assign entrypathparts = entry.children[0].path | split: "/" %}
        {% if folder1 == entrypathparts[0] %}
          <div class="toc-title-wrapper">
            <div class="accordion-content">
            
            {% for p2 in entry.children %}
              {% for q in site.pages %}
                {% if p2.path == q.path %}
                  <div class="toc_entry">
                  {% if q.path == page.path %}
                    <h4 class="toc-current">{{ q.title }}</h4>
                    <svg viewBox="0 0 926.23699 573.74994" version="1.1" x="0px" y="0px" width="7" height="7" class="toc-arrow-rot">
                        <g transform="translate(904.92214,-879.1482)"><path d="
                        m -673.67664,1221.6502 -231.2455,-231.24803 55.6165,
                        -55.627 c 30.5891,-30.59485 56.1806,-55.627 56.8701,-55.627 0.6894,
                        0 79.8637,78.60862 175.9427,174.68583 l 174.6892,174.6858 174.6892,
                        -174.6858 c 96.079,-96.07721 175.253196,-174.68583 175.942696,
                        -174.68583 0.6895,0 26.281,25.03215 56.8701,
                        55.627 l 55.6165,55.627 -231.245496,231.24803 c -127.185,127.1864
                        -231.5279,231.248 -231.873,231.248 -0.3451,0 -104.688,
                        -104.0616 -231.873,-231.248 z
                      " fill="currentColor"></path></g></svg>
                    <div class="menu_div2">
                      {% for p3 in p2.children %}
                        {% for r in site.pages %}
                          {% if p3.path == r.path %}
                            <div class="toc_entry">
                            {% if r.path == page.path %}
                              <h5 class="toc-current">{{ r.title }}</h5>
                            {% else %}
                              <h5 class="toc-link"><a href="{{ r.url | remove_first: '/'}}">{{ r.title }}</a></h5>
                            {% endif %}
                            </div>
                          {% endif %}
                        {% endfor %}
                      {% endfor %}
                    </div>
                    
                  {% else %}
                    <h4 class="toc-link"><a href="{{ q.url | remove_first: '/'}}">{{ q.title }}</a></h4>
                    <svg viewBox="0 0 926.23699 573.74994" version="1.1" x="0px" y="0px" width="7" height="7" class="toc-arrow">
                        <g transform="translate(904.92214,-879.1482)"><path d="
                        m -673.67664,1221.6502 -231.2455,-231.24803 55.6165,
                        -55.627 c 30.5891,-30.59485 56.1806,-55.627 56.8701,-55.627 0.6894,
                        0 79.8637,78.60862 175.9427,174.68583 l 174.6892,174.6858 174.6892,
                        -174.6858 c 96.079,-96.07721 175.253196,-174.68583 175.942696,
                        -174.68583 0.6895,0 26.281,25.03215 56.8701,
                        55.627 l 55.6165,55.627 -231.245496,231.24803 c -127.185,127.1864
                        -231.5279,231.248 -231.873,231.248 -0.3451,0 -104.688,
                        -104.0616 -231.873,-231.248 z
                      " fill="currentColor"></path></g></svg>
                  {% endif %}
                  </div>
                {% endif %}
              {% endfor %}
              {% if p2.children %}
                {% assign entrypathparts = p2.children[0].path | split: "/" %}
                {% if folder2 == entrypathparts[1] %}
                  <div class="menu_div2">
                  {% for p3 in p2.children %}
                    {% for r in site.pages %}
                      {% if p3.path == r.path %}
                        <div class="toc_entry">
                        {% if r.path == page.path %}
                          <h5 class="toc-current">{{ r.title }}</h4>
                        {% else %}
                          <h5 class="toc-link"><a href="{{ r.url | remove_first: '/'}}">{{ r.title }}</a></h5>
                        {% endif %}
                        </div>
                      {% endif %}
                    {% endfor %}
                  {% endfor %}
                  </div>
                {% endif %}
              {% endif %}
            {% endfor %}
            </div>  
          </div>
          {% endif %}
        {% endif %}
        
      {% endif %}
    {% endfor %}
  {% endfor %}