</div>
      </main><!-- #body-inner -->
{{- partial "custom-comments.html" . }}
    </div><!-- #body -->
{{- $outputFormat := partial "output-format.hugo" .Page }}
{{- partial "output-partial.hugo" (dict "base" "menu" "page" . "parameter" . "outputFormat" $outputFormat) }}
    <script src="{{"js/clipboard.min.js" | relURL}}{{ if not .Site.Params.disableAssetsBusting }}?{{ now.Unix }}{{ end }}" defer></script>
    <script src="{{"js/perfect-scrollbar.min.js" | relURL}}{{ if not .Site.Params.disableAssetsBusting }}?{{ now.Unix }}{{ end }}" defer></script>
{{- $wantsMathJax := or (.Page.Store.Get "hasMathJax") (and (.Page.Store.Get (printf "%sIsNested" $outputFormat)) (.Page.Store.Get "nestedHasMathJax")) }}
{{- if $wantsMathJax }}
  {{- if isset .Params "mathjaxinitialize" }}
    {{- $.Scratch.Set "mathJaxInitialize" .Params.mathJaxInitialize }}
  {{- else if isset .Site.Params "mathjaxinitialize" }}
    {{- $.Scratch.Set "mathJaxInitialize" .Site.Params.mathJaxInitialize }}
  {{- else }}
    {{- $.Scratch.Set "mathJaxInitialize" "{}" }}
  {{- end }}
    <script>
      function useMathJax( config ){
        if( !Object.assign ){
          // We don't support MathJax for IE11 anyways, so bail out early
          return;
        }
        window.MathJax = Object.assign( window.MathJax || {}, {
          loader: {
            load: ['[tex]/mhchem']
          },
          startup: {
            elements: [
              '.math'
            ]
          },
          tex: {
            inlineMath: [
              ['$', '$'], // allow for single dollars as we set startup.elements
              ['\\(', '\\)']
            ]
          },
          options: {
            enableMenu: false // avoid translation hassle for context menu
          }
        }, config );
      }
      useMathJax( JSON.parse({{ $.Scratch.Get "mathJaxInitialize" }}) );
    </script>
  {{- if isset .Params "custommathjaxurl" }}
    <script id="MathJax-script" async src="{{ .Params.customMathJaxURL }}"></script>
  {{- else if isset .Site.Params "custommathjaxurl" }}
    <script id="MathJax-script" async src="{{ .Site.Params.customMathJaxURL }}"></script>
  {{- else }}
    <script id="MathJax-script" async src="{{"js/mathjax/tex-mml-chtml.js" | relURL}}{{ if not .Site.Params.disableAssetsBusting }}?{{ now.Unix }}{{ end }}"></script>
  {{- end }}
{{- end }}
{{- $wantsMermaid := or (.Page.Store.Get "hasMermaid") (and (.Page.Store.Get (printf "%sIsNested" $outputFormat)) (.Page.Store.Get "nestedHasMermaid")) }}
{{- if $wantsMermaid }}
    <script src="{{"js/d3/d3-color.min.js" | relURL}}{{ if not .Site.Params.disableAssetsBusting }}?{{ now.Unix }}{{ end }}" defer></script>
    <script src="{{"js/d3/d3-dispatch.min.js" | relURL}}{{ if not .Site.Params.disableAssetsBusting }}?{{ now.Unix }}{{ end }}" defer></script>
    <script src="{{"js/d3/d3-drag.min.js" | relURL}}{{ if not .Site.Params.disableAssetsBusting }}?{{ now.Unix }}{{ end }}" defer></script>
    <script src="{{"js/d3/d3-ease.min.js" | relURL}}{{ if not .Site.Params.disableAssetsBusting }}?{{ now.Unix }}{{ end }}" defer></script>
    <script src="{{"js/d3/d3-interpolate.min.js" | relURL}}{{ if not .Site.Params.disableAssetsBusting }}?{{ now.Unix }}{{ end }}" defer></script>
    <script src="{{"js/d3/d3-selection.min.js" | relURL}}{{ if not .Site.Params.disableAssetsBusting }}?{{ now.Unix }}{{ end }}" defer></script>
    <script src="{{"js/d3/d3-timer.min.js" | relURL}}{{ if not .Site.Params.disableAssetsBusting }}?{{ now.Unix }}{{ end }}" defer></script>
    <script src="{{"js/d3/d3-transition.min.js" | relURL}}{{ if not .Site.Params.disableAssetsBusting }}?{{ now.Unix }}{{ end }}" defer></script>
    <script src="{{"js/d3/d3-zoom.min.js" | relURL}}{{ if not .Site.Params.disableAssetsBusting }}?{{ now.Unix }}{{ end }}" defer></script>
  {{- if isset .Params "custommermaidurl" }}
    <script src="{{ .Params.customMermaidURL }}" defer></script>
  {{- else if isset .Site.Params "custommermaidurl" }}
    <script src="{{ .Site.Params.customMermaidURL }}" defer></script>
  {{- else }}
    <script src="{{"js/mermaid.min.js" | relURL}}{{ if not .Site.Params.disableAssetsBusting }}?{{ now.Unix }}{{ end }}" defer></script>
  {{- end }}
  {{- if isset .Params "mermaidinitialize" }}
    {{- $.Scratch.Set "mermaidInitialize" .Params.mermaidInitialize }}
  {{- else if isset .Site.Params "mermaidinitialize" }}
    {{- $.Scratch.Set "mermaidInitialize" .Site.Params.mermaidInitialize }}
  {{- else }}
    {{- $.Scratch.Set "mermaidInitialize" "{}" }}
  {{- end }}
    <script>
      window.themeUseMermaid = JSON.parse({{ $.Scratch.Get "mermaidInitialize" }});
    </script>
{{- end }}
{{- $wantsOpenapi := or (.Page.Store.Get "hasOpenapi") (and (.Page.Store.Get (printf "%sIsNested" $outputFormat)) (.Page.Store.Get "nestedHasOpenapi")) }}
{{- if $wantsOpenapi }}
  {{- $urlOpenapi := "" }}
  {{- if isset .Params "customopenapiurl" }}
    {{- $urlOpenapi = .Params.customOpenapiURL }}
  {{- else if isset .Site.Params "customopenapiurl" }}
    {{- $urlOpenapi = .Site.Params.customOpenapiURL }}
  {{- else }}
    {{- $urlOpenapi = "js/swagger-ui/swagger-ui-bundle.js" | relURL }}
    {{- if not .Site.Params.disableAssetsBusting }}
      {{- $urlOpenapi = printf "%s?%d" $urlOpenapi now.Unix }}
    {{- end }}
  {{- end }}
    <script>window.noZensmooth = true;</script>
    <script src="{{ $urlOpenapi }}" defer></script>
  {{- $urlOpenapi := replace $urlOpenapi "swagger-ui-bundle" "swagger-ui-standalone-preset" }}
    <script src="{{ $urlOpenapi }}" defer></script>
  {{- $urlOpenapi := replace $urlOpenapi "swagger-ui-standalone-preset" "swagger-ui" }}
  {{- $urlOpenapi := replace $urlOpenapi ".js" ".css" }}
    <script>
      window.themeUseOpenapi = { css: {{ $urlOpenapi }}, assetsBuster: {{ cond (not .Site.Params.disableAssetsBusting) now.Unix 0 }} };
    </script>
{{- end }}
    <script src="{{"js/theme.js" | relURL}}{{ if not .Site.Params.disableAssetsBusting }}?{{ now.Unix }}{{ end }}" defer></script>
    {{- partial "custom-footer.html" . }}
  </body>
</html>