From f62d9946ac612fffe7e239a6d6d0bbb90ffa9b96 Mon Sep 17 00:00:00 2001 From: Mark Qvist Date: Fri, 30 Sep 2022 18:43:04 +0200 Subject: [PATCH] Updated documentation and manual --- docs/Reticulum Manual.pdf | Bin 2366731 -> 2366587 bytes docs/manual/.buildinfo | 2 +- docs/manual/_sources/index.rst.txt | 11 +- docs/manual/_sources/reference.rst.txt | 7 +- docs/manual/_static/basic.css | 47 +- docs/manual/_static/check-solid.svg | 4 + docs/manual/_static/classic.css | 269 ---- docs/manual/_static/clipboard.min.js | 7 + docs/manual/_static/copy-button.svg | 5 + docs/manual/_static/copybutton.css | 93 ++ docs/manual/_static/copybutton.js | 220 ++++ docs/manual/_static/copybutton_funcs.js | 58 + docs/manual/_static/custom.css | 24 + docs/manual/_static/debug.css | 69 ++ docs/manual/_static/pygments.css | 321 +++-- docs/manual/_static/rns_logo_512.png | Bin 0 -> 86758 bytes .../manual/_static/scripts/furo-extensions.js | 0 docs/manual/_static/scripts/furo.js | 3 + .../_static/scripts/furo.js.LICENSE.txt | 7 + docs/manual/_static/scripts/furo.js.map | 1 + docs/manual/_static/sidebar.js | 70 -- docs/manual/_static/skeleton.css | 296 +++++ .../manual/_static/styles/furo-extensions.css | 2 + .../_static/styles/furo-extensions.css.map | 1 + docs/manual/_static/styles/furo.css | 2 + docs/manual/_static/styles/furo.css.map | 1 + docs/manual/examples.html | 409 ++++-- docs/manual/genindex.html | 1098 ++++++++++------- docs/manual/gettingstartedfast.html | 419 +++++-- docs/manual/hardware.html | 421 +++++-- docs/manual/index.html | 408 ++++-- docs/manual/interfaces.html | 419 +++++-- docs/manual/networks.html | 403 ++++-- docs/manual/reference.html | 825 ++++++++----- docs/manual/search.html | 358 ++++-- docs/manual/searchindex.js | 2 +- docs/manual/support.html | 387 ++++-- docs/manual/understanding.html | 435 +++++-- docs/manual/using.html | 415 +++++-- docs/manual/whatis.html | 403 ++++-- docs/source/_static/custom.css | 24 + docs/source/conf.py | 68 +- docs/source/graphics/rns_logo_512.png | Bin 0 -> 86758 bytes docs/source/index.rst | 11 +- docs/source/reference.rst | 7 +- 45 files changed, 5588 insertions(+), 2444 deletions(-) create mode 100644 docs/manual/_static/check-solid.svg delete mode 100644 docs/manual/_static/classic.css create mode 100644 docs/manual/_static/clipboard.min.js create mode 100644 docs/manual/_static/copy-button.svg create mode 100644 docs/manual/_static/copybutton.css create mode 100644 docs/manual/_static/copybutton.js create mode 100644 docs/manual/_static/copybutton_funcs.js create mode 100644 docs/manual/_static/custom.css create mode 100644 docs/manual/_static/debug.css create mode 100644 docs/manual/_static/rns_logo_512.png create mode 100644 docs/manual/_static/scripts/furo-extensions.js create mode 100644 docs/manual/_static/scripts/furo.js create mode 100644 docs/manual/_static/scripts/furo.js.LICENSE.txt create mode 100644 docs/manual/_static/scripts/furo.js.map delete mode 100644 docs/manual/_static/sidebar.js create mode 100644 docs/manual/_static/skeleton.css create mode 100644 docs/manual/_static/styles/furo-extensions.css create mode 100644 docs/manual/_static/styles/furo-extensions.css.map create mode 100644 docs/manual/_static/styles/furo.css create mode 100644 docs/manual/_static/styles/furo.css.map create mode 100644 docs/source/_static/custom.css create mode 100644 docs/source/graphics/rns_logo_512.png diff --git a/docs/Reticulum Manual.pdf b/docs/Reticulum Manual.pdf index 9d2fc0d73539e1b4dda0c45acfd9594644c1bfea..925cf7650b4568563e1eb7e2694c716be4c87c7d 100644 GIT binary patch delta 68630 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⁡a3}jFWC6h4RG7{nUXmI`O-0?ha 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 S<{Ts&3Nkh{3MC~)Peuw`oS`KE delta 68805 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 diff --git a/docs/manual/.buildinfo b/docs/manual/.buildinfo index 8f29c24..8f7c2fc 100644 --- a/docs/manual/.buildinfo +++ b/docs/manual/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: ac2d5f73ab011289e2f4e2a564ac4cac +config: 08677a3d0e0fa273687289188ec1a603 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/manual/_sources/index.rst.txt b/docs/manual/_sources/index.rst.txt index d61a548..6ce79e2 100644 --- a/docs/manual/_sources/index.rst.txt +++ b/docs/manual/_sources/index.rst.txt @@ -5,6 +5,11 @@ This manual aims to provide you with all the information you need to understand Reticulum, build networks or develop programs using it, or to participate in the development of Reticulum itself. +.. only:: html + + Table Of Contents + ================= + .. toctree:: :maxdepth: 3 @@ -16,9 +21,13 @@ to participate in the development of Reticulum itself. interfaces networks examples - reference support +.. toctree:: + :maxdepth: 2 + + reference + .. only:: html diff --git a/docs/manual/_sources/reference.rst.txt b/docs/manual/_sources/reference.rst.txt index 27e6eff..017cf8d 100644 --- a/docs/manual/_sources/reference.rst.txt +++ b/docs/manual/_sources/reference.rst.txt @@ -5,11 +5,8 @@ ************* API Reference ************* -This chapter lists and explains all classes exposed by the Reticulum Network Stack API, along with their methods and usage. It can be used as a reference while writing applications that utilise Reticulum, or read in entirity to gain an understanding of the complete functionality of RNS from a developers perspective. - -Classes -========================= -Communication over a Reticulum network is achieved using a set of classes exposed by the RNS API. +Communication over Reticulum networks is achieved by using a simple set of classes exposed by the RNS API. +This chapter lists and explains all classes exposed by the Reticulum Network Stack API, along with their method signatures and usage. It can be used as a reference while writing applications that utilise Reticulum, or it can be read in entirity to gain an understanding of the complete functionality of RNS from a developers perspective. .. _api-reticulum: diff --git a/docs/manual/_static/basic.css b/docs/manual/_static/basic.css index 4e9a9f1..eeb0519 100644 --- a/docs/manual/_static/basic.css +++ b/docs/manual/_static/basic.css @@ -236,6 +236,16 @@ div.body p, div.body dd, div.body li, div.body blockquote { a.headerlink { visibility: hidden; } +a.brackets:before, +span.brackets > a:before{ + content: "["; +} + +a.brackets:after, +span.brackets > a:after { + content: "]"; +} + h1:hover > a.headerlink, h2:hover > a.headerlink, @@ -324,15 +334,11 @@ aside.sidebar { 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; @@ -371,8 +377,6 @@ div.body p.centered { 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; @@ -380,8 +384,6 @@ div.admonition > :last-child { div.sidebar::after, aside.sidebar::after, -nav.contents::after, -aside.topic::after, div.topic::after, div.admonition::after, blockquote::after { @@ -606,26 +608,19 @@ ol.simple p, ul.simple p { margin-bottom: 0; } -aside.footnote > span, -div.citation > span { +dl.footnote > dt, +dl.citation > dt { float: left; + margin-right: 0.5em; } -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 { + +dl.footnote > dd, +dl.citation > dd { margin-bottom: 0em; } -aside.footnote > p:last-of-type:after, -div.citation > p:last-of-type:after { + +dl.footnote > dd:after, +dl.citation > dd:after { content: ""; clear: both; } @@ -641,6 +636,10 @@ dl.field-list > dt { padding-left: 0.5em; padding-right: 5px; } +dl.field-list > dt:after { + content: ":"; +} + dl.field-list > dd { padding-left: 0.5em; diff --git a/docs/manual/_static/check-solid.svg b/docs/manual/_static/check-solid.svg new file mode 100644 index 0000000..92fad4b --- /dev/null +++ b/docs/manual/_static/check-solid.svg @@ -0,0 +1,4 @@ + + + + diff --git a/docs/manual/_static/classic.css b/docs/manual/_static/classic.css deleted file mode 100644 index 92cac9f..0000000 --- a/docs/manual/_static/classic.css +++ /dev/null @@ -1,269 +0,0 @@ -/* - * classic.css_t - * ~~~~~~~~~~~~~ - * - * Sphinx stylesheet -- classic theme. - * - * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ - -@import url("basic.css"); - -/* -- page layout ----------------------------------------------------------- */ - -html { - /* CSS hack for macOS's scrollbar (see #1125) */ - background-color: #FFFFFF; -} - -body { - font-family: sans-serif; - font-size: 100%; - background-color: #11303d; - color: #000; - margin: 0; - padding: 0; -} - -div.document { - display: flex; - background-color: #1c4e63; -} - -div.documentwrapper { - float: left; - width: 100%; -} - -div.bodywrapper { - margin: 0 0 0 230px; -} - -div.body { - background-color: #ffffff; - color: #000000; - padding: 0 20px 30px 20px; -} - -div.footer { - color: #ffffff; - width: 100%; - padding: 9px 0 9px 0; - text-align: center; - font-size: 75%; -} - -div.footer a { - color: #ffffff; - text-decoration: underline; -} - -div.related { - background-color: #133f52; - line-height: 30px; - color: #ffffff; -} - -div.related a { - color: #ffffff; -} - -div.sphinxsidebar { -} - -div.sphinxsidebar h3 { - font-family: 'Trebuchet MS', sans-serif; - color: #ffffff; - font-size: 1.4em; - font-weight: normal; - margin: 0; - padding: 0; -} - -div.sphinxsidebar h3 a { - color: #ffffff; -} - -div.sphinxsidebar h4 { - font-family: 'Trebuchet MS', sans-serif; - color: #ffffff; - font-size: 1.3em; - font-weight: normal; - margin: 5px 0 0 0; - padding: 0; -} - -div.sphinxsidebar p { - color: #ffffff; -} - -div.sphinxsidebar p.topless { - margin: 5px 10px 10px 10px; -} - -div.sphinxsidebar ul { - margin: 10px; - padding: 0; - color: #ffffff; -} - -div.sphinxsidebar a { - color: #98dbcc; -} - -div.sphinxsidebar input { - border: 1px solid #98dbcc; - font-family: sans-serif; - font-size: 1em; -} - - - -/* -- hyperlink styles ------------------------------------------------------ */ - -a { - color: #355f7c; - text-decoration: none; -} - -a:visited { - color: #355f7c; - text-decoration: none; -} - -a:hover { - text-decoration: underline; -} - - - -/* -- body styles ----------------------------------------------------------- */ - -div.body h1, -div.body h2, -div.body h3, -div.body h4, -div.body h5, -div.body h6 { - font-family: 'Trebuchet MS', sans-serif; - background-color: #f2f2f2; - font-weight: normal; - color: #20435c; - border-bottom: 1px solid #ccc; - margin: 20px -20px 10px -20px; - padding: 3px 0 3px 10px; -} - -div.body h1 { margin-top: 0; font-size: 200%; } -div.body h2 { font-size: 160%; } -div.body h3 { font-size: 140%; } -div.body h4 { font-size: 120%; } -div.body h5 { font-size: 110%; } -div.body h6 { font-size: 100%; } - -a.headerlink { - color: #c60f0f; - font-size: 0.8em; - padding: 0 4px 0 4px; - text-decoration: none; -} - -a.headerlink:hover { - background-color: #c60f0f; - color: white; -} - -div.body p, div.body dd, div.body li, div.body blockquote { - text-align: justify; - line-height: 130%; -} - -div.admonition p.admonition-title + p { - display: inline; -} - -div.admonition p { - margin-bottom: 5px; -} - -div.admonition pre { - margin-bottom: 5px; -} - -div.admonition ul, div.admonition ol { - margin-bottom: 5px; -} - -div.note { - background-color: #eee; - border: 1px solid #ccc; -} - -div.seealso { - background-color: #ffc; - border: 1px solid #ff6; -} -nav.contents, -aside.topic, - -div.topic { - background-color: #eee; -} - -div.warning { - background-color: #ffe4e4; - border: 1px solid #f66; -} - -p.admonition-title { - display: inline; -} - -p.admonition-title:after { - content: ":"; -} - -pre { - padding: 5px; - background-color: unset; - color: unset; - line-height: 120%; - border: 1px solid #ac9; - border-left: none; - border-right: none; -} - -code { - background-color: #ecf0f3; - padding: 0 1px 0 1px; - font-size: 0.95em; -} - -th, dl.field-list > dt { - background-color: #ede; -} - -.warning code { - background: #efc2c2; -} - -.note code { - background: #d6d6d6; -} - -.viewcode-back { - font-family: sans-serif; -} - -div.viewcode-block:target { - background-color: #f4debf; - border-top: 1px solid #ac9; - border-bottom: 1px solid #ac9; -} - -div.code-block-caption { - color: #efefef; - background-color: #1c4e63; -} \ No newline at end of file diff --git a/docs/manual/_static/clipboard.min.js b/docs/manual/_static/clipboard.min.js new file mode 100644 index 0000000..54b3c46 --- /dev/null +++ b/docs/manual/_static/clipboard.min.js @@ -0,0 +1,7 @@ +/*! + * clipboard.js v2.0.8 + * https://clipboardjs.com/ + * + * Licensed MIT © Zeno Rocha + */ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return n={686:function(t,e,n){"use strict";n.d(e,{default:function(){return o}});var e=n(279),i=n.n(e),e=n(370),u=n.n(e),e=n(817),c=n.n(e);function a(t){try{return document.execCommand(t)}catch(t){return}}var f=function(t){t=c()(t);return a("cut"),t};var l=function(t){var e,n,o,r=1 + + + + diff --git a/docs/manual/_static/copybutton.css b/docs/manual/_static/copybutton.css new file mode 100644 index 0000000..40eafe5 --- /dev/null +++ b/docs/manual/_static/copybutton.css @@ -0,0 +1,93 @@ +/* Copy buttons */ +button.copybtn { + position: absolute; + display: flex; + top: .3em; + right: .3em; + width: 1.7em; + height: 1.7em; + opacity: 0; + transition: opacity 0.3s, border .3s, background-color .3s; + user-select: none; + padding: 0; + border: none; + outline: none; + border-radius: 0.4em; + /* The colors that GitHub uses */ + border: #1b1f2426 1px solid; + background-color: #f6f8fa; + color: #57606a; +} + +button.copybtn.success { + border-color: #22863a; + color: #22863a; +} + +button.copybtn svg { + stroke: currentColor; + width: 1.5em; + height: 1.5em; + padding: 0.1em; +} + +div.highlight { + position: relative; +} + +.highlight:hover button.copybtn { + opacity: 1; +} + +.highlight button.copybtn:hover { + background-color: rgb(235, 235, 235); +} + +.highlight button.copybtn:active { + background-color: rgb(187, 187, 187); +} + +/** + * A minimal CSS-only tooltip copied from: + * https://codepen.io/mildrenben/pen/rVBrpK + * + * To use, write HTML like the following: + * + *

Short

+ */ + .o-tooltip--left { + position: relative; + } + + .o-tooltip--left:after { + opacity: 0; + visibility: hidden; + position: absolute; + content: attr(data-tooltip); + padding: .2em; + font-size: .8em; + left: -.2em; + background: grey; + color: white; + white-space: nowrap; + z-index: 2; + border-radius: 2px; + transform: translateX(-102%) translateY(0); + transition: opacity 0.2s cubic-bezier(0.64, 0.09, 0.08, 1), transform 0.2s cubic-bezier(0.64, 0.09, 0.08, 1); +} + +.o-tooltip--left:hover:after { + display: block; + opacity: 1; + visibility: visible; + transform: translateX(-100%) translateY(0); + transition: opacity 0.2s cubic-bezier(0.64, 0.09, 0.08, 1), transform 0.2s cubic-bezier(0.64, 0.09, 0.08, 1); + transition-delay: .5s; +} + +/* By default the copy button shouldn't show up when printing a page */ +@media print { + button.copybtn { + display: none; + } +} diff --git a/docs/manual/_static/copybutton.js b/docs/manual/_static/copybutton.js new file mode 100644 index 0000000..40ac331 --- /dev/null +++ b/docs/manual/_static/copybutton.js @@ -0,0 +1,220 @@ +// Localization support +const messages = { + 'en': { + 'copy': 'Copy', + 'copy_to_clipboard': 'Copy to clipboard', + 'copy_success': 'Copied!', + 'copy_failure': 'Failed to copy', + }, + 'es' : { + 'copy': 'Copiar', + 'copy_to_clipboard': 'Copiar al portapapeles', + 'copy_success': '¡Copiado!', + 'copy_failure': 'Error al copiar', + }, + 'de' : { + 'copy': 'Kopieren', + 'copy_to_clipboard': 'In die Zwischenablage kopieren', + 'copy_success': 'Kopiert!', + 'copy_failure': 'Fehler beim Kopieren', + }, + 'fr' : { + 'copy': 'Copier', + 'copy_to_clipboard': 'Copié dans le presse-papier', + 'copy_success': 'Copié !', + 'copy_failure': 'Échec de la copie', + }, + 'ru': { + 'copy': 'Скопировать', + 'copy_to_clipboard': 'Скопировать в буфер', + 'copy_success': 'Скопировано!', + 'copy_failure': 'Не удалось скопировать', + }, + 'zh-CN': { + 'copy': '复制', + 'copy_to_clipboard': '复制到剪贴板', + 'copy_success': '复制成功!', + 'copy_failure': '复制失败', + }, + 'it' : { + 'copy': 'Copiare', + 'copy_to_clipboard': 'Copiato negli appunti', + 'copy_success': 'Copiato!', + 'copy_failure': 'Errore durante la copia', + } +} + +let locale = 'en' +if( document.documentElement.lang !== undefined + && messages[document.documentElement.lang] !== undefined ) { + locale = document.documentElement.lang +} + +let doc_url_root = DOCUMENTATION_OPTIONS.URL_ROOT; +if (doc_url_root == '#') { + doc_url_root = ''; +} + +/** + * SVG files for our copy buttons + */ +let iconCheck = ` + ${messages[locale]['copy_success']} + + +` + +// If the user specified their own SVG use that, otherwise use the default +let iconCopy = ``; +if (!iconCopy) { + iconCopy = ` + ${messages[locale]['copy_to_clipboard']} + + + +` +} + +/** + * Set up copy/paste for code blocks + */ + +const runWhenDOMLoaded = cb => { + if (document.readyState != 'loading') { + cb() + } else if (document.addEventListener) { + document.addEventListener('DOMContentLoaded', cb) + } else { + document.attachEvent('onreadystatechange', function() { + if (document.readyState == 'complete') cb() + }) + } +} + +const codeCellId = index => `codecell${index}` + +// Clears selected text since ClipboardJS will select the text when copying +const clearSelection = () => { + if (window.getSelection) { + window.getSelection().removeAllRanges() + } else if (document.selection) { + document.selection.empty() + } +} + +// Changes tooltip text for two seconds, then changes it back +const temporarilyChangeTooltip = (el, oldText, newText) => { + el.setAttribute('data-tooltip', newText) + el.classList.add('success') + setTimeout(() => el.setAttribute('data-tooltip', oldText), 2000) + setTimeout(() => el.classList.remove('success'), 2000) +} + +// Changes the copy button icon for two seconds, then changes it back +const temporarilyChangeIcon = (el) => { + el.innerHTML = iconCheck; + setTimeout(() => {el.innerHTML = iconCopy}, 2000) +} + +const addCopyButtonToCodeCells = () => { + // If ClipboardJS hasn't loaded, wait a bit and try again. This + // happens because we load ClipboardJS asynchronously. + if (window.ClipboardJS === undefined) { + setTimeout(addCopyButtonToCodeCells, 250) + return + } + + // Add copybuttons to all of our code cells + const codeCells = document.querySelectorAll('div.highlight pre') + codeCells.forEach((codeCell, index) => { + const id = codeCellId(index) + codeCell.setAttribute('id', id) + + const clipboardButton = id => + `` + codeCell.insertAdjacentHTML('afterend', clipboardButton(id)) + }) + +function escapeRegExp(string) { + return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string +} + +// Callback when a copy button is clicked. Will be passed the node that was clicked +// should then grab the text and replace pieces of text that shouldn't be used in output +function formatCopyText(textContent, copybuttonPromptText, isRegexp = false, onlyCopyPromptLines = true, removePrompts = true, copyEmptyLines = true, lineContinuationChar = "", hereDocDelim = "") { + + var regexp; + var match; + + // Do we check for line continuation characters and "HERE-documents"? + var useLineCont = !!lineContinuationChar + var useHereDoc = !!hereDocDelim + + // create regexp to capture prompt and remaining line + if (isRegexp) { + regexp = new RegExp('^(' + copybuttonPromptText + ')(.*)') + } else { + regexp = new RegExp('^(' + escapeRegExp(copybuttonPromptText) + ')(.*)') + } + + const outputLines = []; + var promptFound = false; + var gotLineCont = false; + var gotHereDoc = false; + const lineGotPrompt = []; + for (const line of textContent.split('\n')) { + match = line.match(regexp) + if (match || gotLineCont || gotHereDoc) { + promptFound = regexp.test(line) + lineGotPrompt.push(promptFound) + if (removePrompts && promptFound) { + outputLines.push(match[2]) + } else { + outputLines.push(line) + } + gotLineCont = line.endsWith(lineContinuationChar) & useLineCont + if (line.includes(hereDocDelim) & useHereDoc) + gotHereDoc = !gotHereDoc + } else if (!onlyCopyPromptLines) { + outputLines.push(line) + } else if (copyEmptyLines && line.trim() === '') { + outputLines.push(line) + } + } + + // If no lines with the prompt were found then just use original lines + if (lineGotPrompt.some(v => v === true)) { + textContent = outputLines.join('\n'); + } + + // Remove a trailing newline to avoid auto-running when pasting + if (textContent.endsWith("\n")) { + textContent = textContent.slice(0, -1) + } + return textContent +} + + +var copyTargetText = (trigger) => { + var target = document.querySelector(trigger.attributes['data-clipboard-target'].value); + return formatCopyText(target.innerText, '', false, true, true, true, '', '') +} + + // Initialize with a callback so we can modify the text before copy + const clipboard = new ClipboardJS('.copybtn', {text: copyTargetText}) + + // Update UI with error/success messages + clipboard.on('success', event => { + clearSelection() + temporarilyChangeTooltip(event.trigger, messages[locale]['copy'], messages[locale]['copy_success']) + temporarilyChangeIcon(event.trigger) + }) + + clipboard.on('error', event => { + temporarilyChangeTooltip(event.trigger, messages[locale]['copy'], messages[locale]['copy_failure']) + }) +} + +runWhenDOMLoaded(addCopyButtonToCodeCells) \ No newline at end of file diff --git a/docs/manual/_static/copybutton_funcs.js b/docs/manual/_static/copybutton_funcs.js new file mode 100644 index 0000000..b9168c5 --- /dev/null +++ b/docs/manual/_static/copybutton_funcs.js @@ -0,0 +1,58 @@ +function escapeRegExp(string) { + return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string +} + +// Callback when a copy button is clicked. Will be passed the node that was clicked +// should then grab the text and replace pieces of text that shouldn't be used in output +export function formatCopyText(textContent, copybuttonPromptText, isRegexp = false, onlyCopyPromptLines = true, removePrompts = true, copyEmptyLines = true, lineContinuationChar = "", hereDocDelim = "") { + + var regexp; + var match; + + // Do we check for line continuation characters and "HERE-documents"? + var useLineCont = !!lineContinuationChar + var useHereDoc = !!hereDocDelim + + // create regexp to capture prompt and remaining line + if (isRegexp) { + regexp = new RegExp('^(' + copybuttonPromptText + ')(.*)') + } else { + regexp = new RegExp('^(' + escapeRegExp(copybuttonPromptText) + ')(.*)') + } + + const outputLines = []; + var promptFound = false; + var gotLineCont = false; + var gotHereDoc = false; + const lineGotPrompt = []; + for (const line of textContent.split('\n')) { + match = line.match(regexp) + if (match || gotLineCont || gotHereDoc) { + promptFound = regexp.test(line) + lineGotPrompt.push(promptFound) + if (removePrompts && promptFound) { + outputLines.push(match[2]) + } else { + outputLines.push(line) + } + gotLineCont = line.endsWith(lineContinuationChar) & useLineCont + if (line.includes(hereDocDelim) & useHereDoc) + gotHereDoc = !gotHereDoc + } else if (!onlyCopyPromptLines) { + outputLines.push(line) + } else if (copyEmptyLines && line.trim() === '') { + outputLines.push(line) + } + } + + // If no lines with the prompt were found then just use original lines + if (lineGotPrompt.some(v => v === true)) { + textContent = outputLines.join('\n'); + } + + // Remove a trailing newline to avoid auto-running when pasting + if (textContent.endsWith("\n")) { + textContent = textContent.slice(0, -1) + } + return textContent +} diff --git a/docs/manual/_static/custom.css b/docs/manual/_static/custom.css new file mode 100644 index 0000000..0abea7b --- /dev/null +++ b/docs/manual/_static/custom.css @@ -0,0 +1,24 @@ +h3 { + margin-top: 1.75rem; + margin-bottom: 0.5rem; +} + +code.literal { + padding-left: 0.25rem !important; + padding-right: 0.25rem !important; + padding-top: 0.25rem !important; + padding-bottom: 0.15rem !important; +} + +img[src*="if_mode_graph_b.png"] { + background-color: rgb(169, 177, 186); +} + +dt.sig { + margin-bottom: 0.75rem; + margin-top: 1.75rem; +} + +div.bottom-of-page div.left-details:not(:first-child) { + display: none !important; +} \ No newline at end of file diff --git a/docs/manual/_static/debug.css b/docs/manual/_static/debug.css new file mode 100644 index 0000000..74d4aec --- /dev/null +++ b/docs/manual/_static/debug.css @@ -0,0 +1,69 @@ +/* + This CSS file should be overridden by the theme authors. It's + meant for debugging and developing the skeleton that this theme provides. +*/ +body { + font-family: -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, + "Apple Color Emoji", "Segoe UI Emoji"; + background: lavender; +} +.sb-announcement { + background: rgb(131, 131, 131); +} +.sb-announcement__inner { + background: black; + color: white; +} +.sb-header { + background: lightskyblue; +} +.sb-header__inner { + background: royalblue; + color: white; +} +.sb-header-secondary { + background: lightcyan; +} +.sb-header-secondary__inner { + background: cornflowerblue; + color: white; +} +.sb-sidebar-primary { + background: lightgreen; +} +.sb-main { + background: blanchedalmond; +} +.sb-main__inner { + background: antiquewhite; +} +.sb-header-article { + background: lightsteelblue; +} +.sb-article-container { + background: snow; +} +.sb-article-main { + background: white; +} +.sb-footer-article { + background: lightpink; +} +.sb-sidebar-secondary { + background: lightgoldenrodyellow; +} +.sb-footer-content { + background: plum; +} +.sb-footer-content__inner { + background: palevioletred; +} +.sb-footer { + background: pink; +} +.sb-footer__inner { + background: salmon; +} +.sb-article { + background: white; +} diff --git a/docs/manual/_static/pygments.css b/docs/manual/_static/pygments.css index 691aeb8..7547150 100644 --- a/docs/manual/_static/pygments.css +++ b/docs/manual/_static/pygments.css @@ -1,74 +1,255 @@ -pre { line-height: 125%; } -td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } -span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } -td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } -span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +.highlight pre { line-height: 125%; } +.highlight td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +.highlight span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +.highlight td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +.highlight span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } .highlight .hll { background-color: #ffffcc } -.highlight { background: #eeffcc; } -.highlight .c { color: #408090; font-style: italic } /* Comment */ -.highlight .err { border: 1px solid #FF0000 } /* Error */ -.highlight .k { color: #007020; font-weight: bold } /* Keyword */ -.highlight .o { color: #666666 } /* Operator */ -.highlight .ch { color: #408090; font-style: italic } /* Comment.Hashbang */ -.highlight .cm { color: #408090; font-style: italic } /* Comment.Multiline */ -.highlight .cp { color: #007020 } /* Comment.Preproc */ -.highlight .cpf { color: #408090; font-style: italic } /* Comment.PreprocFile */ -.highlight .c1 { color: #408090; font-style: italic } /* Comment.Single */ -.highlight .cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */ -.highlight .gd { color: #A00000 } /* Generic.Deleted */ -.highlight .ge { font-style: italic } /* Generic.Emph */ -.highlight .gr { color: #FF0000 } /* Generic.Error */ +.highlight { background: #f8f8f8; } +.highlight .c { color: #8f5902; font-style: italic } /* Comment */ +.highlight .err { color: #a40000; border: 1px solid #ef2929 } /* Error */ +.highlight .g { color: #000000 } /* Generic */ +.highlight .k { color: #204a87; font-weight: bold } /* Keyword */ +.highlight .l { color: #000000 } /* Literal */ +.highlight .n { color: #000000 } /* Name */ +.highlight .o { color: #ce5c00; font-weight: bold } /* Operator */ +.highlight .x { color: #000000 } /* Other */ +.highlight .p { color: #000000; font-weight: bold } /* Punctuation */ +.highlight .ch { color: #8f5902; font-style: italic } /* Comment.Hashbang */ +.highlight .cm { color: #8f5902; font-style: italic } /* Comment.Multiline */ +.highlight .cp { color: #8f5902; font-style: italic } /* Comment.Preproc */ +.highlight .cpf { color: #8f5902; font-style: italic } /* Comment.PreprocFile */ +.highlight .c1 { color: #8f5902; font-style: italic } /* Comment.Single */ +.highlight .cs { color: #8f5902; font-style: italic } /* Comment.Special */ +.highlight .gd { color: #a40000 } /* Generic.Deleted */ +.highlight .ge { color: #000000; font-style: italic } /* Generic.Emph */ +.highlight .gr { color: #ef2929 } /* Generic.Error */ .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ .highlight .gi { color: #00A000 } /* Generic.Inserted */ -.highlight .go { color: #333333 } /* Generic.Output */ -.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ -.highlight .gs { font-weight: bold } /* Generic.Strong */ +.highlight .go { color: #000000; font-style: italic } /* Generic.Output */ +.highlight .gp { color: #8f5902 } /* Generic.Prompt */ +.highlight .gs { color: #000000; font-weight: bold } /* Generic.Strong */ .highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ -.highlight .gt { color: #0044DD } /* Generic.Traceback */ -.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */ -.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */ -.highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */ -.highlight .kp { color: #007020 } /* Keyword.Pseudo */ -.highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */ -.highlight .kt { color: #902000 } /* Keyword.Type */ -.highlight .m { color: #208050 } /* Literal.Number */ -.highlight .s { color: #4070a0 } /* Literal.String */ -.highlight .na { color: #4070a0 } /* Name.Attribute */ -.highlight .nb { color: #007020 } /* Name.Builtin */ -.highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */ -.highlight .no { color: #60add5 } /* Name.Constant */ -.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */ -.highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */ -.highlight .ne { color: #007020 } /* Name.Exception */ -.highlight .nf { color: #06287e } /* Name.Function */ -.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */ -.highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ -.highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */ -.highlight .nv { color: #bb60d5 } /* Name.Variable */ -.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */ -.highlight .w { color: #bbbbbb } /* Text.Whitespace */ -.highlight .mb { color: #208050 } /* Literal.Number.Bin */ -.highlight .mf { color: #208050 } /* Literal.Number.Float */ -.highlight .mh { color: #208050 } /* Literal.Number.Hex */ -.highlight .mi { color: #208050 } /* Literal.Number.Integer */ -.highlight .mo { color: #208050 } /* Literal.Number.Oct */ -.highlight .sa { color: #4070a0 } /* Literal.String.Affix */ -.highlight .sb { color: #4070a0 } /* Literal.String.Backtick */ -.highlight .sc { color: #4070a0 } /* Literal.String.Char */ -.highlight .dl { color: #4070a0 } /* Literal.String.Delimiter */ -.highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */ -.highlight .s2 { color: #4070a0 } /* Literal.String.Double */ -.highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */ -.highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */ -.highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */ -.highlight .sx { color: #c65d09 } /* Literal.String.Other */ -.highlight .sr { color: #235388 } /* Literal.String.Regex */ -.highlight .s1 { color: #4070a0 } /* Literal.String.Single */ -.highlight .ss { color: #517918 } /* Literal.String.Symbol */ -.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */ -.highlight .fm { color: #06287e } /* Name.Function.Magic */ -.highlight .vc { color: #bb60d5 } /* Name.Variable.Class */ -.highlight .vg { color: #bb60d5 } /* Name.Variable.Global */ -.highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */ -.highlight .vm { color: #bb60d5 } /* Name.Variable.Magic */ -.highlight .il { color: #208050 } /* Literal.Number.Integer.Long */ \ No newline at end of file +.highlight .gt { color: #a40000; font-weight: bold } /* Generic.Traceback */ +.highlight .kc { color: #204a87; font-weight: bold } /* Keyword.Constant */ +.highlight .kd { color: #204a87; font-weight: bold } /* Keyword.Declaration */ +.highlight .kn { color: #204a87; font-weight: bold } /* Keyword.Namespace */ +.highlight .kp { color: #204a87; font-weight: bold } /* Keyword.Pseudo */ +.highlight .kr { color: #204a87; font-weight: bold } /* Keyword.Reserved */ +.highlight .kt { color: #204a87; font-weight: bold } /* Keyword.Type */ +.highlight .ld { color: #000000 } /* Literal.Date */ +.highlight .m { color: #0000cf; font-weight: bold } /* Literal.Number */ +.highlight .s { color: #4e9a06 } /* Literal.String */ +.highlight .na { color: #c4a000 } /* Name.Attribute */ +.highlight .nb { color: #204a87 } /* Name.Builtin */ +.highlight .nc { color: #000000 } /* Name.Class */ +.highlight .no { color: #000000 } /* Name.Constant */ +.highlight .nd { color: #5c35cc; font-weight: bold } /* Name.Decorator */ +.highlight .ni { color: #ce5c00 } /* Name.Entity */ +.highlight .ne { color: #cc0000; font-weight: bold } /* Name.Exception */ +.highlight .nf { color: #000000 } /* Name.Function */ +.highlight .nl { color: #f57900 } /* Name.Label */ +.highlight .nn { color: #000000 } /* Name.Namespace */ +.highlight .nx { color: #000000 } /* Name.Other */ +.highlight .py { color: #000000 } /* Name.Property */ +.highlight .nt { color: #204a87; font-weight: bold } /* Name.Tag */ +.highlight .nv { color: #000000 } /* Name.Variable */ +.highlight .ow { color: #204a87; font-weight: bold } /* Operator.Word */ +.highlight .pm { color: #000000; font-weight: bold } /* Punctuation.Marker */ +.highlight .w { color: #f8f8f8 } /* Text.Whitespace */ +.highlight .mb { color: #0000cf; font-weight: bold } /* Literal.Number.Bin */ +.highlight .mf { color: #0000cf; font-weight: bold } /* Literal.Number.Float */ +.highlight .mh { color: #0000cf; font-weight: bold } /* Literal.Number.Hex */ +.highlight .mi { color: #0000cf; font-weight: bold } /* Literal.Number.Integer */ +.highlight .mo { color: #0000cf; font-weight: bold } /* Literal.Number.Oct */ +.highlight .sa { color: #4e9a06 } /* Literal.String.Affix */ +.highlight .sb { color: #4e9a06 } /* Literal.String.Backtick */ +.highlight .sc { color: #4e9a06 } /* Literal.String.Char */ +.highlight .dl { color: #4e9a06 } /* Literal.String.Delimiter */ +.highlight .sd { color: #8f5902; font-style: italic } /* Literal.String.Doc */ +.highlight .s2 { color: #4e9a06 } /* Literal.String.Double */ +.highlight .se { color: #4e9a06 } /* Literal.String.Escape */ +.highlight .sh { color: #4e9a06 } /* Literal.String.Heredoc */ +.highlight .si { color: #4e9a06 } /* Literal.String.Interpol */ +.highlight .sx { color: #4e9a06 } /* Literal.String.Other */ +.highlight .sr { color: #4e9a06 } /* Literal.String.Regex */ +.highlight .s1 { color: #4e9a06 } /* Literal.String.Single */ +.highlight .ss { color: #4e9a06 } /* Literal.String.Symbol */ +.highlight .bp { color: #3465a4 } /* Name.Builtin.Pseudo */ +.highlight .fm { color: #000000 } /* Name.Function.Magic */ +.highlight .vc { color: #000000 } /* Name.Variable.Class */ +.highlight .vg { color: #000000 } /* Name.Variable.Global */ +.highlight .vi { color: #000000 } /* Name.Variable.Instance */ +.highlight .vm { color: #000000 } /* Name.Variable.Magic */ +.highlight .il { color: #0000cf; font-weight: bold } /* Literal.Number.Integer.Long */ +@media not print { +body[data-theme="dark"] .highlight pre { line-height: 125%; } +body[data-theme="dark"] .highlight td.linenos .normal { color: #aaaaaa; background-color: transparent; padding-left: 5px; padding-right: 5px; } +body[data-theme="dark"] .highlight span.linenos { color: #aaaaaa; background-color: transparent; padding-left: 5px; padding-right: 5px; } +body[data-theme="dark"] .highlight td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +body[data-theme="dark"] .highlight span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +body[data-theme="dark"] .highlight .hll { background-color: #404040 } +body[data-theme="dark"] .highlight { background: #202020; color: #d0d0d0 } +body[data-theme="dark"] .highlight .c { color: #ababab; font-style: italic } /* Comment */ +body[data-theme="dark"] .highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ +body[data-theme="dark"] .highlight .esc { color: #d0d0d0 } /* Escape */ +body[data-theme="dark"] .highlight .g { color: #d0d0d0 } /* Generic */ +body[data-theme="dark"] .highlight .k { color: #6ebf26; font-weight: bold } /* Keyword */ +body[data-theme="dark"] .highlight .l { color: #d0d0d0 } /* Literal */ +body[data-theme="dark"] .highlight .n { color: #d0d0d0 } /* Name */ +body[data-theme="dark"] .highlight .o { color: #d0d0d0 } /* Operator */ +body[data-theme="dark"] .highlight .x { color: #d0d0d0 } /* Other */ +body[data-theme="dark"] .highlight .p { color: #d0d0d0 } /* Punctuation */ +body[data-theme="dark"] .highlight .ch { color: #ababab; font-style: italic } /* Comment.Hashbang */ +body[data-theme="dark"] .highlight .cm { color: #ababab; font-style: italic } /* Comment.Multiline */ +body[data-theme="dark"] .highlight .cp { color: #cd2828; font-weight: bold } /* Comment.Preproc */ +body[data-theme="dark"] .highlight .cpf { color: #ababab; font-style: italic } /* Comment.PreprocFile */ +body[data-theme="dark"] .highlight .c1 { color: #ababab; font-style: italic } /* Comment.Single */ +body[data-theme="dark"] .highlight .cs { color: #e50808; font-weight: bold; background-color: #520000 } /* Comment.Special */ +body[data-theme="dark"] .highlight .gd { color: #d22323 } /* Generic.Deleted */ +body[data-theme="dark"] .highlight .ge { color: #d0d0d0; font-style: italic } /* Generic.Emph */ +body[data-theme="dark"] .highlight .gr { color: #d22323 } /* Generic.Error */ +body[data-theme="dark"] .highlight .gh { color: #ffffff; font-weight: bold } /* Generic.Heading */ +body[data-theme="dark"] .highlight .gi { color: #589819 } /* Generic.Inserted */ +body[data-theme="dark"] .highlight .go { color: #cccccc } /* Generic.Output */ +body[data-theme="dark"] .highlight .gp { color: #aaaaaa } /* Generic.Prompt */ +body[data-theme="dark"] .highlight .gs { color: #d0d0d0; font-weight: bold } /* Generic.Strong */ +body[data-theme="dark"] .highlight .gu { color: #ffffff; text-decoration: underline } /* Generic.Subheading */ +body[data-theme="dark"] .highlight .gt { color: #d22323 } /* Generic.Traceback */ +body[data-theme="dark"] .highlight .kc { color: #6ebf26; font-weight: bold } /* Keyword.Constant */ +body[data-theme="dark"] .highlight .kd { color: #6ebf26; font-weight: bold } /* Keyword.Declaration */ +body[data-theme="dark"] .highlight .kn { color: #6ebf26; font-weight: bold } /* Keyword.Namespace */ +body[data-theme="dark"] .highlight .kp { color: #6ebf26 } /* Keyword.Pseudo */ +body[data-theme="dark"] .highlight .kr { color: #6ebf26; font-weight: bold } /* Keyword.Reserved */ +body[data-theme="dark"] .highlight .kt { color: #6ebf26; font-weight: bold } /* Keyword.Type */ +body[data-theme="dark"] .highlight .ld { color: #d0d0d0 } /* Literal.Date */ +body[data-theme="dark"] .highlight .m { color: #51b2fd } /* Literal.Number */ +body[data-theme="dark"] .highlight .s { color: #ed9d13 } /* Literal.String */ +body[data-theme="dark"] .highlight .na { color: #bbbbbb } /* Name.Attribute */ +body[data-theme="dark"] .highlight .nb { color: #2fbccd } /* Name.Builtin */ +body[data-theme="dark"] .highlight .nc { color: #71adff; text-decoration: underline } /* Name.Class */ +body[data-theme="dark"] .highlight .no { color: #40ffff } /* Name.Constant */ +body[data-theme="dark"] .highlight .nd { color: #ffa500 } /* Name.Decorator */ +body[data-theme="dark"] .highlight .ni { color: #d0d0d0 } /* Name.Entity */ +body[data-theme="dark"] .highlight .ne { color: #bbbbbb } /* Name.Exception */ +body[data-theme="dark"] .highlight .nf { color: #71adff } /* Name.Function */ +body[data-theme="dark"] .highlight .nl { color: #d0d0d0 } /* Name.Label */ +body[data-theme="dark"] .highlight .nn { color: #71adff; text-decoration: underline } /* Name.Namespace */ +body[data-theme="dark"] .highlight .nx { color: #d0d0d0 } /* Name.Other */ +body[data-theme="dark"] .highlight .py { color: #d0d0d0 } /* Name.Property */ +body[data-theme="dark"] .highlight .nt { color: #6ebf26; font-weight: bold } /* Name.Tag */ +body[data-theme="dark"] .highlight .nv { color: #40ffff } /* Name.Variable */ +body[data-theme="dark"] .highlight .ow { color: #6ebf26; font-weight: bold } /* Operator.Word */ +body[data-theme="dark"] .highlight .pm { color: #d0d0d0 } /* Punctuation.Marker */ +body[data-theme="dark"] .highlight .w { color: #666666 } /* Text.Whitespace */ +body[data-theme="dark"] .highlight .mb { color: #51b2fd } /* Literal.Number.Bin */ +body[data-theme="dark"] .highlight .mf { color: #51b2fd } /* Literal.Number.Float */ +body[data-theme="dark"] .highlight .mh { color: #51b2fd } /* Literal.Number.Hex */ +body[data-theme="dark"] .highlight .mi { color: #51b2fd } /* Literal.Number.Integer */ +body[data-theme="dark"] .highlight .mo { color: #51b2fd } /* Literal.Number.Oct */ +body[data-theme="dark"] .highlight .sa { color: #ed9d13 } /* Literal.String.Affix */ +body[data-theme="dark"] .highlight .sb { color: #ed9d13 } /* Literal.String.Backtick */ +body[data-theme="dark"] .highlight .sc { color: #ed9d13 } /* Literal.String.Char */ +body[data-theme="dark"] .highlight .dl { color: #ed9d13 } /* Literal.String.Delimiter */ +body[data-theme="dark"] .highlight .sd { color: #ed9d13 } /* Literal.String.Doc */ +body[data-theme="dark"] .highlight .s2 { color: #ed9d13 } /* Literal.String.Double */ +body[data-theme="dark"] .highlight .se { color: #ed9d13 } /* Literal.String.Escape */ +body[data-theme="dark"] .highlight .sh { color: #ed9d13 } /* Literal.String.Heredoc */ +body[data-theme="dark"] .highlight .si { color: #ed9d13 } /* Literal.String.Interpol */ +body[data-theme="dark"] .highlight .sx { color: #ffa500 } /* Literal.String.Other */ +body[data-theme="dark"] .highlight .sr { color: #ed9d13 } /* Literal.String.Regex */ +body[data-theme="dark"] .highlight .s1 { color: #ed9d13 } /* Literal.String.Single */ +body[data-theme="dark"] .highlight .ss { color: #ed9d13 } /* Literal.String.Symbol */ +body[data-theme="dark"] .highlight .bp { color: #2fbccd } /* Name.Builtin.Pseudo */ +body[data-theme="dark"] .highlight .fm { color: #71adff } /* Name.Function.Magic */ +body[data-theme="dark"] .highlight .vc { color: #40ffff } /* Name.Variable.Class */ +body[data-theme="dark"] .highlight .vg { color: #40ffff } /* Name.Variable.Global */ +body[data-theme="dark"] .highlight .vi { color: #40ffff } /* Name.Variable.Instance */ +body[data-theme="dark"] .highlight .vm { color: #40ffff } /* Name.Variable.Magic */ +body[data-theme="dark"] .highlight .il { color: #51b2fd } /* Literal.Number.Integer.Long */ +@media (prefers-color-scheme: dark) { +body:not([data-theme="light"]) .highlight pre { line-height: 125%; } +body:not([data-theme="light"]) .highlight td.linenos .normal { color: #aaaaaa; background-color: transparent; padding-left: 5px; padding-right: 5px; } +body:not([data-theme="light"]) .highlight span.linenos { color: #aaaaaa; background-color: transparent; padding-left: 5px; padding-right: 5px; } +body:not([data-theme="light"]) .highlight td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +body:not([data-theme="light"]) .highlight span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +body:not([data-theme="light"]) .highlight .hll { background-color: #404040 } +body:not([data-theme="light"]) .highlight { background: #202020; color: #d0d0d0 } +body:not([data-theme="light"]) .highlight .c { color: #ababab; font-style: italic } /* Comment */ +body:not([data-theme="light"]) .highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ +body:not([data-theme="light"]) .highlight .esc { color: #d0d0d0 } /* Escape */ +body:not([data-theme="light"]) .highlight .g { color: #d0d0d0 } /* Generic */ +body:not([data-theme="light"]) .highlight .k { color: #6ebf26; font-weight: bold } /* Keyword */ +body:not([data-theme="light"]) .highlight .l { color: #d0d0d0 } /* Literal */ +body:not([data-theme="light"]) .highlight .n { color: #d0d0d0 } /* Name */ +body:not([data-theme="light"]) .highlight .o { color: #d0d0d0 } /* Operator */ +body:not([data-theme="light"]) .highlight .x { color: #d0d0d0 } /* Other */ +body:not([data-theme="light"]) .highlight .p { color: #d0d0d0 } /* Punctuation */ +body:not([data-theme="light"]) .highlight .ch { color: #ababab; font-style: italic } /* Comment.Hashbang */ +body:not([data-theme="light"]) .highlight .cm { color: #ababab; font-style: italic } /* Comment.Multiline */ +body:not([data-theme="light"]) .highlight .cp { color: #cd2828; font-weight: bold } /* Comment.Preproc */ +body:not([data-theme="light"]) .highlight .cpf { color: #ababab; font-style: italic } /* Comment.PreprocFile */ +body:not([data-theme="light"]) .highlight .c1 { color: #ababab; font-style: italic } /* Comment.Single */ +body:not([data-theme="light"]) .highlight .cs { color: #e50808; font-weight: bold; background-color: #520000 } /* Comment.Special */ +body:not([data-theme="light"]) .highlight .gd { color: #d22323 } /* Generic.Deleted */ +body:not([data-theme="light"]) .highlight .ge { color: #d0d0d0; font-style: italic } /* Generic.Emph */ +body:not([data-theme="light"]) .highlight .gr { color: #d22323 } /* Generic.Error */ +body:not([data-theme="light"]) .highlight .gh { color: #ffffff; font-weight: bold } /* Generic.Heading */ +body:not([data-theme="light"]) .highlight .gi { color: #589819 } /* Generic.Inserted */ +body:not([data-theme="light"]) .highlight .go { color: #cccccc } /* Generic.Output */ +body:not([data-theme="light"]) .highlight .gp { color: #aaaaaa } /* Generic.Prompt */ +body:not([data-theme="light"]) .highlight .gs { color: #d0d0d0; font-weight: bold } /* Generic.Strong */ +body:not([data-theme="light"]) .highlight .gu { color: #ffffff; text-decoration: underline } /* Generic.Subheading */ +body:not([data-theme="light"]) .highlight .gt { color: #d22323 } /* Generic.Traceback */ +body:not([data-theme="light"]) .highlight .kc { color: #6ebf26; font-weight: bold } /* Keyword.Constant */ +body:not([data-theme="light"]) .highlight .kd { color: #6ebf26; font-weight: bold } /* Keyword.Declaration */ +body:not([data-theme="light"]) .highlight .kn { color: #6ebf26; font-weight: bold } /* Keyword.Namespace */ +body:not([data-theme="light"]) .highlight .kp { color: #6ebf26 } /* Keyword.Pseudo */ +body:not([data-theme="light"]) .highlight .kr { color: #6ebf26; font-weight: bold } /* Keyword.Reserved */ +body:not([data-theme="light"]) .highlight .kt { color: #6ebf26; font-weight: bold } /* Keyword.Type */ +body:not([data-theme="light"]) .highlight .ld { color: #d0d0d0 } /* Literal.Date */ +body:not([data-theme="light"]) .highlight .m { color: #51b2fd } /* Literal.Number */ +body:not([data-theme="light"]) .highlight .s { color: #ed9d13 } /* Literal.String */ +body:not([data-theme="light"]) .highlight .na { color: #bbbbbb } /* Name.Attribute */ +body:not([data-theme="light"]) .highlight .nb { color: #2fbccd } /* Name.Builtin */ +body:not([data-theme="light"]) .highlight .nc { color: #71adff; text-decoration: underline } /* Name.Class */ +body:not([data-theme="light"]) .highlight .no { color: #40ffff } /* Name.Constant */ +body:not([data-theme="light"]) .highlight .nd { color: #ffa500 } /* Name.Decorator */ +body:not([data-theme="light"]) .highlight .ni { color: #d0d0d0 } /* Name.Entity */ +body:not([data-theme="light"]) .highlight .ne { color: #bbbbbb } /* Name.Exception */ +body:not([data-theme="light"]) .highlight .nf { color: #71adff } /* Name.Function */ +body:not([data-theme="light"]) .highlight .nl { color: #d0d0d0 } /* Name.Label */ +body:not([data-theme="light"]) .highlight .nn { color: #71adff; text-decoration: underline } /* Name.Namespace */ +body:not([data-theme="light"]) .highlight .nx { color: #d0d0d0 } /* Name.Other */ +body:not([data-theme="light"]) .highlight .py { color: #d0d0d0 } /* Name.Property */ +body:not([data-theme="light"]) .highlight .nt { color: #6ebf26; font-weight: bold } /* Name.Tag */ +body:not([data-theme="light"]) .highlight .nv { color: #40ffff } /* Name.Variable */ +body:not([data-theme="light"]) .highlight .ow { color: #6ebf26; font-weight: bold } /* Operator.Word */ +body:not([data-theme="light"]) .highlight .pm { color: #d0d0d0 } /* Punctuation.Marker */ +body:not([data-theme="light"]) .highlight .w { color: #666666 } /* Text.Whitespace */ +body:not([data-theme="light"]) .highlight .mb { color: #51b2fd } /* Literal.Number.Bin */ +body:not([data-theme="light"]) .highlight .mf { color: #51b2fd } /* Literal.Number.Float */ +body:not([data-theme="light"]) .highlight .mh { color: #51b2fd } /* Literal.Number.Hex */ +body:not([data-theme="light"]) .highlight .mi { color: #51b2fd } /* Literal.Number.Integer */ +body:not([data-theme="light"]) .highlight .mo { color: #51b2fd } /* Literal.Number.Oct */ +body:not([data-theme="light"]) .highlight .sa { color: #ed9d13 } /* Literal.String.Affix */ +body:not([data-theme="light"]) .highlight .sb { color: #ed9d13 } /* Literal.String.Backtick */ +body:not([data-theme="light"]) .highlight .sc { color: #ed9d13 } /* Literal.String.Char */ +body:not([data-theme="light"]) .highlight .dl { color: #ed9d13 } /* Literal.String.Delimiter */ +body:not([data-theme="light"]) .highlight .sd { color: #ed9d13 } /* Literal.String.Doc */ +body:not([data-theme="light"]) .highlight .s2 { color: #ed9d13 } /* Literal.String.Double */ +body:not([data-theme="light"]) .highlight .se { color: #ed9d13 } /* Literal.String.Escape */ +body:not([data-theme="light"]) .highlight .sh { color: #ed9d13 } /* Literal.String.Heredoc */ +body:not([data-theme="light"]) .highlight .si { color: #ed9d13 } /* Literal.String.Interpol */ +body:not([data-theme="light"]) .highlight .sx { color: #ffa500 } /* Literal.String.Other */ +body:not([data-theme="light"]) .highlight .sr { color: #ed9d13 } /* Literal.String.Regex */ +body:not([data-theme="light"]) .highlight .s1 { color: #ed9d13 } /* Literal.String.Single */ +body:not([data-theme="light"]) .highlight .ss { color: #ed9d13 } /* Literal.String.Symbol */ +body:not([data-theme="light"]) .highlight .bp { color: #2fbccd } /* Name.Builtin.Pseudo */ +body:not([data-theme="light"]) .highlight .fm { color: #71adff } /* Name.Function.Magic */ +body:not([data-theme="light"]) .highlight .vc { color: #40ffff } /* Name.Variable.Class */ +body:not([data-theme="light"]) .highlight .vg { color: #40ffff } /* Name.Variable.Global */ +body:not([data-theme="light"]) .highlight .vi { color: #40ffff } /* Name.Variable.Instance */ +body:not([data-theme="light"]) .highlight .vm { color: #40ffff } /* Name.Variable.Magic */ +body:not([data-theme="light"]) .highlight .il { color: #51b2fd } /* Literal.Number.Integer.Long */ +} +} \ No newline at end of file diff --git a/docs/manual/_static/rns_logo_512.png b/docs/manual/_static/rns_logo_512.png new file mode 100644 index 0000000000000000000000000000000000000000..ba3940a753a5925e1fa80b15401709321fab5b25 GIT binary patch literal 86758 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 t={212:function(t,e,n){var o,r;r=void 0!==n.g?n.g:"undefined"!=typeof window?window:this,o=function(){return function(t){"use strict";var e={navClass:"active",contentClass:"active",nested:!1,nestedClass:"active",offset:0,reflow:!1,events:!0},n=function(t,e,n){if(n.settings.events){var o=new CustomEvent(t,{bubbles:!0,cancelable:!0,detail:n});e.dispatchEvent(o)}},o=function(t){var e=0;if(t.offsetParent)for(;t;)e+=t.offsetTop,t=t.offsetParent;return e>=0?e:0},r=function(t){t&&t.sort((function(t,e){return o(t.content)=Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight)},l=function(t,e){var n=t[t.length-1];if(function(t,e){return!(!s()||!c(t.content,e,!0))}(n,e))return n;for(var o=t.length-1;o>=0;o--)if(c(t[o].content,e))return t[o]},a=function(t,e){if(e.nested&&t.parentNode){var n=t.parentNode.closest("li");n&&(n.classList.remove(e.nestedClass),a(n,e))}},i=function(t,e){if(t){var o=t.nav.closest("li");o&&(o.classList.remove(e.navClass),t.content.classList.remove(e.contentClass),a(o,e),n("gumshoeDeactivate",o,{link:t.nav,content:t.content,settings:e}))}},u=function(t,e){if(e.nested){var n=t.parentNode.closest("li");n&&(n.classList.add(e.nestedClass),u(n,e))}};return function(o,c){var s,a,d,f,m,v={setup:function(){s=document.querySelectorAll(o),a=[],Array.prototype.forEach.call(s,(function(t){var e=document.getElementById(decodeURIComponent(t.hash.substr(1)));e&&a.push({nav:t,content:e})})),r(a)},detect:function(){var t=l(a,m);t?d&&t.content===d.content||(i(d,m),function(t,e){if(t){var o=t.nav.closest("li");o&&(o.classList.add(e.navClass),t.content.classList.add(e.contentClass),u(o,e),n("gumshoeActivate",o,{link:t.nav,content:t.content,settings:e}))}}(t,m),d=t):d&&(i(d,m),d=null)}},h=function(e){f&&t.cancelAnimationFrame(f),f=t.requestAnimationFrame(v.detect)},g=function(e){f&&t.cancelAnimationFrame(f),f=t.requestAnimationFrame((function(){r(a),v.detect()}))};return v.destroy=function(){d&&i(d,m),t.removeEventListener("scroll",h,!1),m.reflow&&t.removeEventListener("resize",g,!1),a=null,s=null,d=null,f=null,m=null},m=function(){var t={};return Array.prototype.forEach.call(arguments,(function(e){for(var n in e){if(!e.hasOwnProperty(n))return;t[n]=e[n]}})),t}(e,c||{}),v.setup(),v.detect(),t.addEventListener("scroll",h,!1),m.reflow&&t.addEventListener("resize",g,!1),v}}(r)}.apply(e,[]),void 0===o||(t.exports=o)}},e={};function n(o){var r=e[o];if(void 0!==r)return r.exports;var c=e[o]={exports:{}};return t[o].call(c.exports,c,c.exports,n),c.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var o in e)n.o(e,o)&&!n.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{"use strict";var t=n(212),e=n.n(t),o=null,r=null,c=window.pageYOffset||document.documentElement.scrollTop;function s(){const t=localStorage.getItem("theme")||"auto";var e;"light"!==(e=window.matchMedia("(prefers-color-scheme: dark)").matches?"auto"===t?"light":"light"==t?"dark":"auto":"auto"===t?"dark":"dark"==t?"light":"auto")&&"dark"!==e&&"auto"!==e&&(console.error(`Got invalid theme mode: ${e}. Resetting to auto.`),e="auto"),document.body.dataset.theme=e,localStorage.setItem("theme",e),console.log(`Changed to ${e} mode.`)}function l(){!function(){const t=document.getElementsByClassName("theme-toggle");Array.from(t).forEach((t=>{t.addEventListener("click",s)}))}(),function(){let t=0,e=!1;window.addEventListener("scroll",(function(n){t=window.scrollY,e||(window.requestAnimationFrame((function(){var n;n=t,0==Math.floor(r.getBoundingClientRect().top)?r.classList.add("scrolled"):r.classList.remove("scrolled"),function(t){t<64?document.documentElement.classList.remove("show-back-to-top"):tc&&document.documentElement.classList.remove("show-back-to-top"),c=t}(n),function(t){null!==o&&(0==t?o.scrollTo(0,0):Math.ceil(t)>=Math.floor(document.documentElement.scrollHeight-window.innerHeight)?o.scrollTo(0,o.scrollHeight):document.querySelector(".scroll-current"))}(n),e=!1})),e=!0)})),window.scroll()}(),null!==o&&new(e())(".toc-tree a",{reflow:!0,recursive:!0,navClass:"scroll-current",offset:()=>{let t=parseFloat(getComputedStyle(document.documentElement).fontSize);return r.getBoundingClientRect().height+.5*t+1}})}document.addEventListener("DOMContentLoaded",(function(){document.body.parentNode.classList.remove("no-js"),r=document.querySelector("header"),o=document.querySelector(".toc-scroll"),l()}))})()})(); +//# sourceMappingURL=furo.js.map \ No newline at end of file diff --git a/docs/manual/_static/scripts/furo.js.LICENSE.txt b/docs/manual/_static/scripts/furo.js.LICENSE.txt new file mode 100644 index 0000000..1632189 --- /dev/null +++ b/docs/manual/_static/scripts/furo.js.LICENSE.txt @@ -0,0 +1,7 @@ +/*! + * gumshoejs v5.1.2 (patched by @pradyunsg) + * A simple, framework-agnostic scrollspy script. + * (c) 2019 Chris Ferdinandi + * MIT License + * http://github.com/cferdinandi/gumshoe + */ diff --git a/docs/manual/_static/scripts/furo.js.map b/docs/manual/_static/scripts/furo.js.map new file mode 100644 index 0000000..7ed2be8 --- /dev/null +++ b/docs/manual/_static/scripts/furo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"scripts/furo.js","mappings":"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","sources":["webpack:///./src/furo/assets/scripts/gumshoe-patched.js","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/global","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///./src/furo/assets/scripts/furo.js"],"sourcesContent":["/*!\n * gumshoejs v5.1.2 (patched by @pradyunsg)\n * A simple, framework-agnostic scrollspy script.\n * (c) 2019 Chris Ferdinandi\n * MIT License\n * http://github.com/cferdinandi/gumshoe\n */\n\n(function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([], function () {\n return factory(root);\n });\n } else if (typeof exports === \"object\") {\n module.exports = factory(root);\n } else {\n root.Gumshoe = factory(root);\n }\n})(\n typeof global !== \"undefined\"\n ? global\n : typeof window !== \"undefined\"\n ? window\n : this,\n function (window) {\n \"use strict\";\n\n //\n // Defaults\n //\n\n var defaults = {\n // Active classes\n navClass: \"active\",\n contentClass: \"active\",\n\n // Nested navigation\n nested: false,\n nestedClass: \"active\",\n\n // Offset & reflow\n offset: 0,\n reflow: false,\n\n // Event support\n events: true,\n };\n\n //\n // Methods\n //\n\n /**\n * Merge two or more objects together.\n * @param {Object} objects The objects to merge together\n * @returns {Object} Merged values of defaults and options\n */\n var extend = function () {\n var merged = {};\n Array.prototype.forEach.call(arguments, function (obj) {\n for (var key in obj) {\n if (!obj.hasOwnProperty(key)) return;\n merged[key] = obj[key];\n }\n });\n return merged;\n };\n\n /**\n * Emit a custom event\n * @param {String} type The event type\n * @param {Node} elem The element to attach the event to\n * @param {Object} detail Any details to pass along with the event\n */\n var emitEvent = function (type, elem, detail) {\n // Make sure events are enabled\n if (!detail.settings.events) return;\n\n // Create a new event\n var event = new CustomEvent(type, {\n bubbles: true,\n cancelable: true,\n detail: detail,\n });\n\n // Dispatch the event\n elem.dispatchEvent(event);\n };\n\n /**\n * Get an element's distance from the top of the Document.\n * @param {Node} elem The element\n * @return {Number} Distance from the top in pixels\n */\n var getOffsetTop = function (elem) {\n var location = 0;\n if (elem.offsetParent) {\n while (elem) {\n location += elem.offsetTop;\n elem = elem.offsetParent;\n }\n }\n return location >= 0 ? location : 0;\n };\n\n /**\n * Sort content from first to last in the DOM\n * @param {Array} contents The content areas\n */\n var sortContents = function (contents) {\n if (contents) {\n contents.sort(function (item1, item2) {\n var offset1 = getOffsetTop(item1.content);\n var offset2 = getOffsetTop(item2.content);\n if (offset1 < offset2) return -1;\n return 1;\n });\n }\n };\n\n /**\n * Get the offset to use for calculating position\n * @param {Object} settings The settings for this instantiation\n * @return {Float} The number of pixels to offset the calculations\n */\n var getOffset = function (settings) {\n // if the offset is a function run it\n if (typeof settings.offset === \"function\") {\n return parseFloat(settings.offset());\n }\n\n // Otherwise, return it as-is\n return parseFloat(settings.offset);\n };\n\n /**\n * Get the document element's height\n * @private\n * @returns {Number}\n */\n var getDocumentHeight = function () {\n return Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight,\n document.body.offsetHeight,\n document.documentElement.offsetHeight,\n document.body.clientHeight,\n document.documentElement.clientHeight,\n );\n };\n\n /**\n * Determine if an element is in view\n * @param {Node} elem The element\n * @param {Object} settings The settings for this instantiation\n * @param {Boolean} bottom If true, check if element is above bottom of viewport instead\n * @return {Boolean} Returns true if element is in the viewport\n */\n var isInView = function (elem, settings, bottom) {\n var bounds = elem.getBoundingClientRect();\n var offset = getOffset(settings);\n if (bottom) {\n return (\n parseInt(bounds.bottom, 10) <\n (window.innerHeight || document.documentElement.clientHeight)\n );\n }\n return parseInt(bounds.top, 10) <= offset;\n };\n\n /**\n * Check if at the bottom of the viewport\n * @return {Boolean} If true, page is at the bottom of the viewport\n */\n var isAtBottom = function () {\n if (\n Math.ceil(window.innerHeight + window.pageYOffset) >=\n getDocumentHeight()\n )\n return true;\n return false;\n };\n\n /**\n * Check if the last item should be used (even if not at the top of the page)\n * @param {Object} item The last item\n * @param {Object} settings The settings for this instantiation\n * @return {Boolean} If true, use the last item\n */\n var useLastItem = function (item, settings) {\n if (isAtBottom() && isInView(item.content, settings, true)) return true;\n return false;\n };\n\n /**\n * Get the active content\n * @param {Array} contents The content areas\n * @param {Object} settings The settings for this instantiation\n * @return {Object} The content area and matching navigation link\n */\n var getActive = function (contents, settings) {\n var last = contents[contents.length - 1];\n if (useLastItem(last, settings)) return last;\n for (var i = contents.length - 1; i >= 0; i--) {\n if (isInView(contents[i].content, settings)) return contents[i];\n }\n };\n\n /**\n * Deactivate parent navs in a nested navigation\n * @param {Node} nav The starting navigation element\n * @param {Object} settings The settings for this instantiation\n */\n var deactivateNested = function (nav, settings) {\n // If nesting isn't activated, bail\n if (!settings.nested || !nav.parentNode) return;\n\n // Get the parent navigation\n var li = nav.parentNode.closest(\"li\");\n if (!li) return;\n\n // Remove the active class\n li.classList.remove(settings.nestedClass);\n\n // Apply recursively to any parent navigation elements\n deactivateNested(li, settings);\n };\n\n /**\n * Deactivate a nav and content area\n * @param {Object} items The nav item and content to deactivate\n * @param {Object} settings The settings for this instantiation\n */\n var deactivate = function (items, settings) {\n // Make sure there are items to deactivate\n if (!items) return;\n\n // Get the parent list item\n var li = items.nav.closest(\"li\");\n if (!li) return;\n\n // Remove the active class from the nav and content\n li.classList.remove(settings.navClass);\n items.content.classList.remove(settings.contentClass);\n\n // Deactivate any parent navs in a nested navigation\n deactivateNested(li, settings);\n\n // Emit a custom event\n emitEvent(\"gumshoeDeactivate\", li, {\n link: items.nav,\n content: items.content,\n settings: settings,\n });\n };\n\n /**\n * Activate parent navs in a nested navigation\n * @param {Node} nav The starting navigation element\n * @param {Object} settings The settings for this instantiation\n */\n var activateNested = function (nav, settings) {\n // If nesting isn't activated, bail\n if (!settings.nested) return;\n\n // Get the parent navigation\n var li = nav.parentNode.closest(\"li\");\n if (!li) return;\n\n // Add the active class\n li.classList.add(settings.nestedClass);\n\n // Apply recursively to any parent navigation elements\n activateNested(li, settings);\n };\n\n /**\n * Activate a nav and content area\n * @param {Object} items The nav item and content to activate\n * @param {Object} settings The settings for this instantiation\n */\n var activate = function (items, settings) {\n // Make sure there are items to activate\n if (!items) return;\n\n // Get the parent list item\n var li = items.nav.closest(\"li\");\n if (!li) return;\n\n // Add the active class to the nav and content\n li.classList.add(settings.navClass);\n items.content.classList.add(settings.contentClass);\n\n // Activate any parent navs in a nested navigation\n activateNested(li, settings);\n\n // Emit a custom event\n emitEvent(\"gumshoeActivate\", li, {\n link: items.nav,\n content: items.content,\n settings: settings,\n });\n };\n\n /**\n * Create the Constructor object\n * @param {String} selector The selector to use for navigation items\n * @param {Object} options User options and settings\n */\n var Constructor = function (selector, options) {\n //\n // Variables\n //\n\n var publicAPIs = {};\n var navItems, contents, current, timeout, settings;\n\n //\n // Methods\n //\n\n /**\n * Set variables from DOM elements\n */\n publicAPIs.setup = function () {\n // Get all nav items\n navItems = document.querySelectorAll(selector);\n\n // Create contents array\n contents = [];\n\n // Loop through each item, get it's matching content, and push to the array\n Array.prototype.forEach.call(navItems, function (item) {\n // Get the content for the nav item\n var content = document.getElementById(\n decodeURIComponent(item.hash.substr(1)),\n );\n if (!content) return;\n\n // Push to the contents array\n contents.push({\n nav: item,\n content: content,\n });\n });\n\n // Sort contents by the order they appear in the DOM\n sortContents(contents);\n };\n\n /**\n * Detect which content is currently active\n */\n publicAPIs.detect = function () {\n // Get the active content\n var active = getActive(contents, settings);\n\n // if there's no active content, deactivate and bail\n if (!active) {\n if (current) {\n deactivate(current, settings);\n current = null;\n }\n return;\n }\n\n // If the active content is the one currently active, do nothing\n if (current && active.content === current.content) return;\n\n // Deactivate the current content and activate the new content\n deactivate(current, settings);\n activate(active, settings);\n\n // Update the currently active content\n current = active;\n };\n\n /**\n * Detect the active content on scroll\n * Debounced for performance\n */\n var scrollHandler = function (event) {\n // If there's a timer, cancel it\n if (timeout) {\n window.cancelAnimationFrame(timeout);\n }\n\n // Setup debounce callback\n timeout = window.requestAnimationFrame(publicAPIs.detect);\n };\n\n /**\n * Update content sorting on resize\n * Debounced for performance\n */\n var resizeHandler = function (event) {\n // If there's a timer, cancel it\n if (timeout) {\n window.cancelAnimationFrame(timeout);\n }\n\n // Setup debounce callback\n timeout = window.requestAnimationFrame(function () {\n sortContents(contents);\n publicAPIs.detect();\n });\n };\n\n /**\n * Destroy the current instantiation\n */\n publicAPIs.destroy = function () {\n // Undo DOM changes\n if (current) {\n deactivate(current, settings);\n }\n\n // Remove event listeners\n window.removeEventListener(\"scroll\", scrollHandler, false);\n if (settings.reflow) {\n window.removeEventListener(\"resize\", resizeHandler, false);\n }\n\n // Reset variables\n contents = null;\n navItems = null;\n current = null;\n timeout = null;\n settings = null;\n };\n\n /**\n * Initialize the current instantiation\n */\n var init = function () {\n // Merge user options into defaults\n settings = extend(defaults, options || {});\n\n // Setup variables based on the current DOM\n publicAPIs.setup();\n\n // Find the currently active content\n publicAPIs.detect();\n\n // Setup event listeners\n window.addEventListener(\"scroll\", scrollHandler, false);\n if (settings.reflow) {\n window.addEventListener(\"resize\", resizeHandler, false);\n }\n };\n\n //\n // Initialize and return the public APIs\n //\n\n init();\n return publicAPIs;\n };\n\n //\n // Return the Constructor\n //\n\n return Constructor;\n },\n);\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","import Gumshoe from \"./gumshoe-patched.js\";\n\n////////////////////////////////////////////////////////////////////////////////\n// Scroll Handling\n////////////////////////////////////////////////////////////////////////////////\nvar tocScroll = null;\nvar header = null;\nvar lastScrollTop = window.pageYOffset || document.documentElement.scrollTop;\nconst GO_TO_TOP_OFFSET = 64;\n\nfunction scrollHandlerForHeader() {\n if (Math.floor(header.getBoundingClientRect().top) == 0) {\n header.classList.add(\"scrolled\");\n } else {\n header.classList.remove(\"scrolled\");\n }\n}\n\nfunction scrollHandlerForBackToTop(positionY) {\n if (positionY < GO_TO_TOP_OFFSET) {\n document.documentElement.classList.remove(\"show-back-to-top\");\n } else {\n if (positionY < lastScrollTop) {\n document.documentElement.classList.add(\"show-back-to-top\");\n } else if (positionY > lastScrollTop) {\n document.documentElement.classList.remove(\"show-back-to-top\");\n }\n }\n lastScrollTop = positionY;\n}\n\nfunction scrollHandlerForTOC(positionY) {\n if (tocScroll === null) {\n return;\n }\n\n // top of page.\n if (positionY == 0) {\n tocScroll.scrollTo(0, 0);\n } else if (\n // bottom of page.\n Math.ceil(positionY) >=\n Math.floor(document.documentElement.scrollHeight - window.innerHeight)\n ) {\n tocScroll.scrollTo(0, tocScroll.scrollHeight);\n } else {\n // somewhere in the middle.\n const current = document.querySelector(\".scroll-current\");\n if (current == null) {\n return;\n }\n\n // https://github.com/pypa/pip/issues/9159 This breaks scroll behaviours.\n // // scroll the currently \"active\" heading in toc, into view.\n // const rect = current.getBoundingClientRect();\n // if (0 > rect.top) {\n // current.scrollIntoView(true); // the argument is \"alignTop\"\n // } else if (rect.bottom > window.innerHeight) {\n // current.scrollIntoView(false);\n // }\n }\n}\n\nfunction scrollHandler(positionY) {\n scrollHandlerForHeader();\n scrollHandlerForBackToTop(positionY);\n scrollHandlerForTOC(positionY);\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Theme Toggle\n////////////////////////////////////////////////////////////////////////////////\nfunction setTheme(mode) {\n if (mode !== \"light\" && mode !== \"dark\" && mode !== \"auto\") {\n console.error(`Got invalid theme mode: ${mode}. Resetting to auto.`);\n mode = \"auto\";\n }\n\n document.body.dataset.theme = mode;\n localStorage.setItem(\"theme\", mode);\n console.log(`Changed to ${mode} mode.`);\n}\n\nfunction cycleThemeOnce() {\n const currentTheme = localStorage.getItem(\"theme\") || \"auto\";\n const prefersDark = window.matchMedia(\"(prefers-color-scheme: dark)\").matches;\n\n if (prefersDark) {\n // Auto (dark) -> Light -> Dark\n if (currentTheme === \"auto\") {\n setTheme(\"light\");\n } else if (currentTheme == \"light\") {\n setTheme(\"dark\");\n } else {\n setTheme(\"auto\");\n }\n } else {\n // Auto (light) -> Dark -> Light\n if (currentTheme === \"auto\") {\n setTheme(\"dark\");\n } else if (currentTheme == \"dark\") {\n setTheme(\"light\");\n } else {\n setTheme(\"auto\");\n }\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Setup\n////////////////////////////////////////////////////////////////////////////////\nfunction setupScrollHandler() {\n // Taken from https://developer.mozilla.org/en-US/docs/Web/API/Document/scroll_event\n let last_known_scroll_position = 0;\n let ticking = false;\n\n window.addEventListener(\"scroll\", function (e) {\n last_known_scroll_position = window.scrollY;\n\n if (!ticking) {\n window.requestAnimationFrame(function () {\n scrollHandler(last_known_scroll_position);\n ticking = false;\n });\n\n ticking = true;\n }\n });\n window.scroll();\n}\n\nfunction setupScrollSpy() {\n if (tocScroll === null) {\n return;\n }\n\n // Scrollspy -- highlight table on contents, based on scroll\n new Gumshoe(\".toc-tree a\", {\n reflow: true,\n recursive: true,\n navClass: \"scroll-current\",\n offset: () => {\n let rem = parseFloat(getComputedStyle(document.documentElement).fontSize);\n return header.getBoundingClientRect().height + 0.5 * rem + 1;\n },\n });\n}\n\nfunction setupTheme() {\n // Attach event handlers for toggling themes\n const buttons = document.getElementsByClassName(\"theme-toggle\");\n Array.from(buttons).forEach((btn) => {\n btn.addEventListener(\"click\", cycleThemeOnce);\n });\n}\n\nfunction setup() {\n setupTheme();\n setupScrollHandler();\n setupScrollSpy();\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Main entrypoint\n////////////////////////////////////////////////////////////////////////////////\nfunction main() {\n document.body.parentNode.classList.remove(\"no-js\");\n\n header = document.querySelector(\"header\");\n tocScroll = document.querySelector(\".toc-scroll\");\n\n setup();\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", main);\n"],"names":["root","g","window","this","defaults","navClass","contentClass","nested","nestedClass","offset","reflow","events","emitEvent","type","elem","detail","settings","event","CustomEvent","bubbles","cancelable","dispatchEvent","getOffsetTop","location","offsetParent","offsetTop","sortContents","contents","sort","item1","item2","content","isInView","bottom","bounds","getBoundingClientRect","parseFloat","getOffset","parseInt","innerHeight","document","documentElement","clientHeight","top","isAtBottom","Math","ceil","pageYOffset","max","body","scrollHeight","offsetHeight","getActive","last","length","item","useLastItem","i","deactivateNested","nav","parentNode","li","closest","classList","remove","deactivate","items","link","activateNested","add","selector","options","navItems","current","timeout","publicAPIs","querySelectorAll","Array","prototype","forEach","call","getElementById","decodeURIComponent","hash","substr","push","active","activate","scrollHandler","cancelAnimationFrame","requestAnimationFrame","detect","resizeHandler","destroy","removeEventListener","merged","arguments","obj","key","hasOwnProperty","extend","setup","addEventListener","factory","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","n","getter","__esModule","d","a","definition","o","Object","defineProperty","enumerable","get","globalThis","Function","e","prop","tocScroll","header","lastScrollTop","scrollTop","cycleThemeOnce","currentTheme","localStorage","getItem","mode","matchMedia","matches","console","error","dataset","theme","setItem","log","buttons","getElementsByClassName","from","btn","setupTheme","last_known_scroll_position","ticking","scrollY","positionY","floor","scrollHandlerForBackToTop","scrollTo","querySelector","scrollHandlerForTOC","scroll","setupScrollHandler","recursive","rem","getComputedStyle","fontSize","height"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/manual/_static/sidebar.js b/docs/manual/_static/sidebar.js deleted file mode 100644 index ae3080b..0000000 --- a/docs/manual/_static/sidebar.js +++ /dev/null @@ -1,70 +0,0 @@ -/* - * sidebar.js - * ~~~~~~~~~~ - * - * This script makes the Sphinx sidebar collapsible. - * - * .sphinxsidebar contains .sphinxsidebarwrapper. This script adds - * in .sphixsidebar, after .sphinxsidebarwrapper, the #sidebarbutton - * used to collapse and expand the sidebar. - * - * When the sidebar is collapsed the .sphinxsidebarwrapper is hidden - * and the width of the sidebar and the margin-left of the document - * are decreased. When the sidebar is expanded the opposite happens. - * This script saves a per-browser/per-session cookie used to - * remember the position of the sidebar among the pages. - * Once the browser is closed the cookie is deleted and the position - * reset to the default (expanded). - * - * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ - -const initialiseSidebar = () => { - - - - - // global elements used by the functions. - const bodyWrapper = document.getElementsByClassName("bodywrapper")[0] - const sidebar = document.getElementsByClassName("sphinxsidebar")[0] - const sidebarWrapper = document.getElementsByClassName('sphinxsidebarwrapper')[0] - const sidebarButton = document.getElementById("sidebarbutton") - const sidebarArrow = sidebarButton.querySelector('span') - - // for some reason, the document has no sidebar; do not run into errors - if (typeof sidebar === "undefined") return; - - const flipArrow = element => element.innerText = (element.innerText === "»") ? "«" : "»" - - const collapse_sidebar = () => { - bodyWrapper.style.marginLeft = ".8em"; - sidebar.style.width = ".8em" - sidebarWrapper.style.display = "none" - flipArrow(sidebarArrow) - sidebarButton.title = _('Expand sidebar') - window.localStorage.setItem("sidebar", "collapsed") - } - - const expand_sidebar = () => { - bodyWrapper.style.marginLeft = "" - sidebar.style.removeProperty("width") - sidebarWrapper.style.display = "" - flipArrow(sidebarArrow) - sidebarButton.title = _('Collapse sidebar') - window.localStorage.setItem("sidebar", "expanded") - } - - sidebarButton.addEventListener("click", () => { - (sidebarWrapper.style.display === "none") ? expand_sidebar() : collapse_sidebar() - }) - - if (!window.localStorage.getItem("sidebar")) return - const value = window.localStorage.getItem("sidebar") - if (value === "collapsed") collapse_sidebar(); - else if (value === "expanded") expand_sidebar(); -} - -if (document.readyState !== "loading") initialiseSidebar() -else document.addEventListener("DOMContentLoaded", initialiseSidebar) \ No newline at end of file diff --git a/docs/manual/_static/skeleton.css b/docs/manual/_static/skeleton.css new file mode 100644 index 0000000..467c878 --- /dev/null +++ b/docs/manual/_static/skeleton.css @@ -0,0 +1,296 @@ +/* Some sane resets. */ +html { + height: 100%; +} + +body { + margin: 0; + min-height: 100%; +} + +/* All the flexbox magic! */ +body, +.sb-announcement, +.sb-content, +.sb-main, +.sb-container, +.sb-container__inner, +.sb-article-container, +.sb-footer-content, +.sb-header, +.sb-header-secondary, +.sb-footer { + display: flex; +} + +/* These order things vertically */ +body, +.sb-main, +.sb-article-container { + flex-direction: column; +} + +/* Put elements in the center */ +.sb-header, +.sb-header-secondary, +.sb-container, +.sb-content, +.sb-footer, +.sb-footer-content { + justify-content: center; +} +/* Put elements at the ends */ +.sb-article-container { + justify-content: space-between; +} + +/* These elements grow. */ +.sb-main, +.sb-content, +.sb-container, +article { + flex-grow: 1; +} + +/* Because padding making this wider is not fun */ +article { + box-sizing: border-box; +} + +/* The announcements element should never be wider than the page. */ +.sb-announcement { + max-width: 100%; +} + +.sb-sidebar-primary, +.sb-sidebar-secondary { + flex-shrink: 0; + width: 17rem; +} + +.sb-announcement__inner { + justify-content: center; + + box-sizing: border-box; + height: 3rem; + + overflow-x: auto; + white-space: nowrap; +} + +/* Sidebars, with checkbox-based toggle */ +.sb-sidebar-primary, +.sb-sidebar-secondary { + position: fixed; + height: 100%; + top: 0; +} + +.sb-sidebar-primary { + left: -17rem; + transition: left 250ms ease-in-out; +} +.sb-sidebar-secondary { + right: -17rem; + transition: right 250ms ease-in-out; +} + +.sb-sidebar-toggle { + display: none; +} +.sb-sidebar-overlay { + position: fixed; + top: 0; + width: 0; + height: 0; + + transition: width 0ms ease 250ms, height 0ms ease 250ms, opacity 250ms ease; + + opacity: 0; + background-color: rgba(0, 0, 0, 0.54); +} + +#sb-sidebar-toggle--primary:checked + ~ .sb-sidebar-overlay[for="sb-sidebar-toggle--primary"], +#sb-sidebar-toggle--secondary:checked + ~ .sb-sidebar-overlay[for="sb-sidebar-toggle--secondary"] { + width: 100%; + height: 100%; + opacity: 1; + transition: width 0ms ease, height 0ms ease, opacity 250ms ease; +} + +#sb-sidebar-toggle--primary:checked ~ .sb-container .sb-sidebar-primary { + left: 0; +} +#sb-sidebar-toggle--secondary:checked ~ .sb-container .sb-sidebar-secondary { + right: 0; +} + +/* Full-width mode */ +.drop-secondary-sidebar-for-full-width-content + .hide-when-secondary-sidebar-shown { + display: none !important; +} +.drop-secondary-sidebar-for-full-width-content .sb-sidebar-secondary { + display: none !important; +} + +/* Mobile views */ +.sb-page-width { + width: 100%; +} + +.sb-article-container, +.sb-footer-content__inner, +.drop-secondary-sidebar-for-full-width-content .sb-article, +.drop-secondary-sidebar-for-full-width-content .match-content-width { + width: 100vw; +} + +.sb-article, +.match-content-width { + padding: 0 1rem; + box-sizing: border-box; +} + +@media (min-width: 32rem) { + .sb-article, + .match-content-width { + padding: 0 2rem; + } +} + +/* Tablet views */ +@media (min-width: 42rem) { + .sb-article-container { + width: auto; + } + .sb-footer-content__inner, + .drop-secondary-sidebar-for-full-width-content .sb-article, + .drop-secondary-sidebar-for-full-width-content .match-content-width { + width: 42rem; + } + .sb-article, + .match-content-width { + width: 42rem; + } +} +@media (min-width: 46rem) { + .sb-footer-content__inner, + .drop-secondary-sidebar-for-full-width-content .sb-article, + .drop-secondary-sidebar-for-full-width-content .match-content-width { + width: 46rem; + } + .sb-article, + .match-content-width { + width: 46rem; + } +} +@media (min-width: 50rem) { + .sb-footer-content__inner, + .drop-secondary-sidebar-for-full-width-content .sb-article, + .drop-secondary-sidebar-for-full-width-content .match-content-width { + width: 50rem; + } + .sb-article, + .match-content-width { + width: 50rem; + } +} + +/* Tablet views */ +@media (min-width: 59rem) { + .sb-sidebar-secondary { + position: static; + } + .hide-when-secondary-sidebar-shown { + display: none !important; + } + .sb-footer-content__inner, + .drop-secondary-sidebar-for-full-width-content .sb-article, + .drop-secondary-sidebar-for-full-width-content .match-content-width { + width: 59rem; + } + .sb-article, + .match-content-width { + width: 42rem; + } +} +@media (min-width: 63rem) { + .sb-footer-content__inner, + .drop-secondary-sidebar-for-full-width-content .sb-article, + .drop-secondary-sidebar-for-full-width-content .match-content-width { + width: 63rem; + } + .sb-article, + .match-content-width { + width: 46rem; + } +} +@media (min-width: 67rem) { + .sb-footer-content__inner, + .drop-secondary-sidebar-for-full-width-content .sb-article, + .drop-secondary-sidebar-for-full-width-content .match-content-width { + width: 67rem; + } + .sb-article, + .match-content-width { + width: 50rem; + } +} + +/* Desktop views */ +@media (min-width: 76rem) { + .sb-sidebar-primary { + position: static; + } + .hide-when-primary-sidebar-shown { + display: none !important; + } + .sb-footer-content__inner, + .drop-secondary-sidebar-for-full-width-content .sb-article, + .drop-secondary-sidebar-for-full-width-content .match-content-width { + width: 59rem; + } + .sb-article, + .match-content-width { + width: 42rem; + } +} + +/* Full desktop views */ +@media (min-width: 80rem) { + .sb-article, + .match-content-width { + width: 46rem; + } + .sb-footer-content__inner, + .drop-secondary-sidebar-for-full-width-content .sb-article, + .drop-secondary-sidebar-for-full-width-content .match-content-width { + width: 63rem; + } +} + +@media (min-width: 84rem) { + .sb-article, + .match-content-width { + width: 50rem; + } + .sb-footer-content__inner, + .drop-secondary-sidebar-for-full-width-content .sb-article, + .drop-secondary-sidebar-for-full-width-content .match-content-width { + width: 67rem; + } +} + +@media (min-width: 88rem) { + .sb-footer-content__inner, + .drop-secondary-sidebar-for-full-width-content .sb-article, + .drop-secondary-sidebar-for-full-width-content .match-content-width { + width: 67rem; + } + .sb-page-width { + width: 88rem; + } +} diff --git a/docs/manual/_static/styles/furo-extensions.css b/docs/manual/_static/styles/furo-extensions.css new file mode 100644 index 0000000..bc447f2 --- /dev/null +++ b/docs/manual/_static/styles/furo-extensions.css @@ -0,0 +1,2 @@ +#furo-sidebar-ad-placement{padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)}#furo-sidebar-ad-placement .ethical-sidebar{background:var(--color-background-secondary);border:none;box-shadow:none}#furo-sidebar-ad-placement .ethical-sidebar:hover{background:var(--color-background-hover)}#furo-sidebar-ad-placement .ethical-sidebar a{color:var(--color-foreground-primary)}#furo-sidebar-ad-placement .ethical-callout a{color:var(--color-foreground-secondary)!important}#furo-readthedocs-versions{background:transparent;display:block;position:static;width:100%}#furo-readthedocs-versions .rst-versions{background:#1a1c1e}#furo-readthedocs-versions .rst-current-version{background:var(--color-sidebar-item-background);cursor:unset}#furo-readthedocs-versions .rst-current-version:hover{background:var(--color-sidebar-item-background)}#furo-readthedocs-versions .rst-current-version .fa-book{color:var(--color-foreground-primary)}#furo-readthedocs-versions>.rst-other-versions{padding:0}#furo-readthedocs-versions>.rst-other-versions small{opacity:1}#furo-readthedocs-versions .injected .rst-versions{position:unset}#furo-readthedocs-versions:focus-within,#furo-readthedocs-versions:hover{box-shadow:0 0 0 1px var(--color-sidebar-background-border)}#furo-readthedocs-versions:focus-within .rst-current-version,#furo-readthedocs-versions:hover .rst-current-version{background:#1a1c1e;font-size:inherit;height:auto;line-height:inherit;padding:12px;text-align:right}#furo-readthedocs-versions:focus-within .rst-current-version .fa-book,#furo-readthedocs-versions:hover .rst-current-version .fa-book{color:#fff;float:left}#furo-readthedocs-versions:focus-within .fa-caret-down,#furo-readthedocs-versions:hover .fa-caret-down{display:none}#furo-readthedocs-versions:focus-within .injected,#furo-readthedocs-versions:focus-within .rst-current-version,#furo-readthedocs-versions:focus-within .rst-other-versions,#furo-readthedocs-versions:hover .injected,#furo-readthedocs-versions:hover .rst-current-version,#furo-readthedocs-versions:hover .rst-other-versions{display:block}#furo-readthedocs-versions:focus-within>.rst-current-version,#furo-readthedocs-versions:hover>.rst-current-version{display:none}.highlight:hover button.copybtn{color:var(--color-code-foreground)}.highlight button.copybtn{align-items:center;background-color:var(--color-code-background);border:none;color:var(--color-background-item);cursor:pointer;height:1.25em;opacity:1;right:.5rem;top:.625rem;transition:color .3s,opacity .3s;width:1.25em}.highlight button.copybtn:hover{background-color:var(--color-code-background);color:var(--color-brand-content)}.highlight button.copybtn:after{background-color:transparent;color:var(--color-code-foreground);display:none}.highlight button.copybtn.success{color:#22863a;transition:color 0ms}.highlight button.copybtn.success:after{display:block}.highlight button.copybtn svg{padding:0}body{--sd-color-primary:var(--color-brand-primary);--sd-color-primary-highlight:var(--color-brand-content);--sd-color-primary-text:var(--color-background-primary);--sd-color-shadow:rgba(0,0,0,.05);--sd-color-card-border:var(--color-card-border);--sd-color-card-border-hover:var(--color-brand-content);--sd-color-card-background:var(--color-card-background);--sd-color-card-text:var(--color-foreground-primary);--sd-color-card-header:var(--color-card-marginals-background);--sd-color-card-footer:var(--color-card-marginals-background);--sd-color-tabs-label-active:var(--color-brand-content);--sd-color-tabs-label-hover:var(--color-foreground-muted);--sd-color-tabs-label-inactive:var(--color-foreground-muted);--sd-color-tabs-underline-active:var(--color-brand-content);--sd-color-tabs-underline-hover:var(--color-foreground-border);--sd-color-tabs-underline-inactive:var(--color-background-border);--sd-color-tabs-overline:var(--color-background-border);--sd-color-tabs-underline:var(--color-background-border)}.sd-tab-content{box-shadow:0 -2px var(--sd-color-tabs-overline),0 1px var(--sd-color-tabs-underline)}.sd-card{box-shadow:0 .1rem .25rem var(--sd-color-shadow),0 0 .0625rem rgba(0,0,0,.1)}.sd-shadow-sm{box-shadow:0 .1rem .25rem var(--sd-color-shadow),0 0 .0625rem rgba(0,0,0,.1)!important}.sd-shadow-md{box-shadow:0 .3rem .75rem var(--sd-color-shadow),0 0 .0625rem rgba(0,0,0,.1)!important}.sd-shadow-lg{box-shadow:0 .6rem 1.5rem var(--sd-color-shadow),0 0 .0625rem rgba(0,0,0,.1)!important}.sd-card-hover:hover{transform:none}.sd-cards-carousel{gap:.25rem;padding:.25rem}body{--tabs--label-text:var(--color-foreground-muted);--tabs--label-text--hover:var(--color-foreground-muted);--tabs--label-text--active:var(--color-brand-content);--tabs--label-text--active--hover:var(--color-brand-content);--tabs--label-background:transparent;--tabs--label-background--hover:transparent;--tabs--label-background--active:transparent;--tabs--label-background--active--hover:transparent;--tabs--padding-x:0.25em;--tabs--margin-x:1em;--tabs--border:var(--color-background-border);--tabs--label-border:transparent;--tabs--label-border--hover:var(--color-foreground-muted);--tabs--label-border--active:var(--color-brand-content);--tabs--label-border--active--hover:var(--color-brand-content)}[role=main] .container{max-width:none;padding-left:0;padding-right:0}.shadow.docutils{border:none;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .0625rem rgba(0,0,0,.1)!important}.sphinx-bs .card{background-color:var(--color-background-secondary);color:var(--color-foreground)} +/*# sourceMappingURL=furo-extensions.css.map*/ \ No newline at end of file diff --git a/docs/manual/_static/styles/furo-extensions.css.map b/docs/manual/_static/styles/furo-extensions.css.map new file mode 100644 index 0000000..9ba5637 --- /dev/null +++ b/docs/manual/_static/styles/furo-extensions.css.map @@ -0,0 +1 @@ +{"version":3,"file":"styles/furo-extensions.css","mappings":"AAGA,2BACE,oFACA,4CAKE,6CAHA,YACA,eAEA,CACA,kDACE,yCAEF,8CACE,sCAEJ,8CACE,kDAEJ,2BAGE,uBACA,cAHA,gBACA,UAEA,CAGA,yCACE,mBAEF,gDAEE,gDADA,YACA,CACA,sDACE,gDACF,yDACE,sCAEJ,+CACE,UACA,qDACE,UAGF,mDACE,eAEJ,yEAEE,4DAEA,mHASE,mBAPA,kBAEA,YADA,oBAGA,aADA,gBAIA,CAEA,qIAEE,WADA,UACA,CAEJ,uGACE,aAEF,iUAGE,cAEF,mHACE,aC1EJ,gCACE,mCAEF,0BAKE,mBAUA,8CACA,YAFA,mCAKA,eAZA,cALA,UASA,YADA,YAYA,iCAdA,YAcA,CAEA,gCAEE,8CADA,gCACA,CAEF,gCAGE,6BADA,mCADA,YAEA,CAEF,kCAEE,cADA,oBACA,CACA,wCACE,cAEJ,8BACE,UC5CN,KAEE,6CAA8C,CAC9C,uDAAwD,CACxD,uDAAwD,CAGxD,iCAAsC,CAGtC,+CAAgD,CAChD,uDAAwD,CACxD,uDAAwD,CACxD,oDAAqD,CACrD,6DAA8D,CAC9D,6DAA8D,CAG9D,uDAAwD,CACxD,yDAA0D,CAC1D,4DAA6D,CAC7D,2DAA4D,CAC5D,8DAA+D,CAC/D,iEAAkE,CAClE,uDAAwD,CACxD,wDAAyD,CAG3D,gBACE,qFAGF,SACE,6EAEF,cACE,uFAEF,cACE,uFAEF,cACE,uFAGF,qBACE,eAEF,mBACE,WACA,eChDF,KACE,gDAAiD,CACjD,uDAAwD,CACxD,qDAAsD,CACtD,4DAA6D,CAC7D,oCAAqC,CACrC,2CAA4C,CAC5C,4CAA6C,CAC7C,mDAAoD,CACpD,wBAAyB,CACzB,oBAAqB,CACrB,6CAA8C,CAC9C,gCAAiC,CACjC,yDAA0D,CAC1D,uDAAwD,CACxD,8DAA+D,CCbjE,uBACE,eACA,eACA,gBAGF,iBACE,YACA,+EAGF,iBACE,mDACA","sources":["webpack:///./src/furo/assets/styles/extensions/_readthedocs.sass","webpack:///./src/furo/assets/styles/extensions/_copybutton.sass","webpack:///./src/furo/assets/styles/extensions/_sphinx-design.sass","webpack:///./src/furo/assets/styles/extensions/_sphinx-inline-tabs.sass","webpack:///./src/furo/assets/styles/extensions/_sphinx-panels.sass"],"sourcesContent":["// This file contains the styles used for tweaking how ReadTheDoc's embedded\n// contents would show up inside the theme.\n\n#furo-sidebar-ad-placement\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)\n .ethical-sidebar\n // Remove the border and box-shadow.\n border: none\n box-shadow: none\n // Manage the background colors.\n background: var(--color-background-secondary)\n &:hover\n background: var(--color-background-hover)\n // Ensure the text is legible.\n a\n color: var(--color-foreground-primary)\n\n .ethical-callout a\n color: var(--color-foreground-secondary) !important\n\n#furo-readthedocs-versions\n position: static\n width: 100%\n background: transparent\n display: block\n\n // Make the background color fit with the theme's aesthetic.\n .rst-versions\n background: rgb(26, 28, 30)\n\n .rst-current-version\n cursor: unset\n background: var(--color-sidebar-item-background)\n &:hover\n background: var(--color-sidebar-item-background)\n .fa-book\n color: var(--color-foreground-primary)\n\n > .rst-other-versions\n padding: 0\n small\n opacity: 1\n\n .injected\n .rst-versions\n position: unset\n\n &:hover,\n &:focus-within\n box-shadow: 0 0 0 1px var(--color-sidebar-background-border)\n\n .rst-current-version\n // Undo the tweaks done in RTD's CSS\n font-size: inherit\n line-height: inherit\n height: auto\n text-align: right\n padding: 12px\n\n // Match the rest of the body\n background: #1a1c1e\n\n .fa-book\n float: left\n color: white\n\n .fa-caret-down\n display: none\n\n .rst-current-version,\n .rst-other-versions,\n .injected\n display: block\n\n > .rst-current-version\n display: none\n",".highlight\n &:hover button.copybtn\n color: var(--color-code-foreground)\n\n button.copybtn\n // Make it visible\n opacity: 1\n\n // Align things correctly\n align-items: center\n\n height: 1.25em\n width: 1.25em\n\n top: 0.625rem // $code-spacing-vertical\n right: 0.5rem\n\n // Make it look better\n color: var(--color-background-item)\n background-color: var(--color-code-background)\n border: none\n\n // Change to cursor to make it obvious that you can click on it\n cursor: pointer\n\n // Transition smoothly, for aesthetics\n transition: color 300ms, opacity 300ms\n\n &:hover\n color: var(--color-brand-content)\n background-color: var(--color-code-background)\n\n &::after\n display: none\n color: var(--color-code-foreground)\n background-color: transparent\n\n &.success\n transition: color 0ms\n color: #22863a\n &::after\n display: block\n\n svg\n padding: 0\n","body\n // Colors\n --sd-color-primary: var(--color-brand-primary)\n --sd-color-primary-highlight: var(--color-brand-content)\n --sd-color-primary-text: var(--color-background-primary)\n\n // Shadows\n --sd-color-shadow: rgba(0, 0, 0, 0.05)\n\n // Cards\n --sd-color-card-border: var(--color-card-border)\n --sd-color-card-border-hover: var(--color-brand-content)\n --sd-color-card-background: var(--color-card-background)\n --sd-color-card-text: var(--color-foreground-primary)\n --sd-color-card-header: var(--color-card-marginals-background)\n --sd-color-card-footer: var(--color-card-marginals-background)\n\n // Tabs\n --sd-color-tabs-label-active: var(--color-brand-content)\n --sd-color-tabs-label-hover: var(--color-foreground-muted)\n --sd-color-tabs-label-inactive: var(--color-foreground-muted)\n --sd-color-tabs-underline-active: var(--color-brand-content)\n --sd-color-tabs-underline-hover: var(--color-foreground-border)\n --sd-color-tabs-underline-inactive: var(--color-background-border)\n --sd-color-tabs-overline: var(--color-background-border)\n --sd-color-tabs-underline: var(--color-background-border)\n\n// Tabs\n.sd-tab-content\n box-shadow: 0 -2px var(--sd-color-tabs-overline), 0 1px var(--sd-color-tabs-underline)\n\n// Shadows\n.sd-card // Have a shadow by default\n box-shadow: 0 0.1rem 0.25rem var(--sd-color-shadow), 0 0 0.0625rem rgba(0, 0, 0, 0.1)\n\n.sd-shadow-sm\n box-shadow: 0 0.1rem 0.25rem var(--sd-color-shadow), 0 0 0.0625rem rgba(0, 0, 0, 0.1) !important\n\n.sd-shadow-md\n box-shadow: 0 0.3rem 0.75rem var(--sd-color-shadow), 0 0 0.0625rem rgba(0, 0, 0, 0.1) !important\n\n.sd-shadow-lg\n box-shadow: 0 0.6rem 1.5rem var(--sd-color-shadow), 0 0 0.0625rem rgba(0, 0, 0, 0.1) !important\n\n// Cards\n.sd-card-hover:hover // Don't change scale on hover\n transform: none\n\n.sd-cards-carousel // Have a bit of gap in the carousel by default\n gap: 0.25rem\n padding: 0.25rem\n","// This file contains styles to tweak sphinx-inline-tabs to work well with Furo.\n\nbody\n --tabs--label-text: var(--color-foreground-muted)\n --tabs--label-text--hover: var(--color-foreground-muted)\n --tabs--label-text--active: var(--color-brand-content)\n --tabs--label-text--active--hover: var(--color-brand-content)\n --tabs--label-background: transparent\n --tabs--label-background--hover: transparent\n --tabs--label-background--active: transparent\n --tabs--label-background--active--hover: transparent\n --tabs--padding-x: 0.25em\n --tabs--margin-x: 1em\n --tabs--border: var(--color-background-border)\n --tabs--label-border: transparent\n --tabs--label-border--hover: var(--color-foreground-muted)\n --tabs--label-border--active: var(--color-brand-content)\n --tabs--label-border--active--hover: var(--color-brand-content)\n","// This file contains styles to tweak sphinx-panels to work well with Furo.\n\n// sphinx-panels includes Bootstrap 4, which uses .container which can conflict\n// with docutils' `.. container::` directive.\n[role=\"main\"] .container\n max-width: initial\n padding-left: initial\n padding-right: initial\n\n// Make the panels look nicer!\n.shadow.docutils\n border: none\n box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), 0 0 0.0625rem rgba(0, 0, 0, 0.1) !important\n\n// Make panel colors respond to dark mode\n.sphinx-bs .card\n background-color: var(--color-background-secondary)\n color: var(--color-foreground)\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/docs/manual/_static/styles/furo.css b/docs/manual/_static/styles/furo.css new file mode 100644 index 0000000..16a3d67 --- /dev/null +++ b/docs/manual/_static/styles/furo.css @@ -0,0 +1,2 @@ +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{-webkit-text-size-adjust:100%;line-height:1.15}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}@media print{.content-icon-container,.headerlink,.mobile-header,.related-pages{display:none!important}.highlight{border:.1pt solid var(--color-foreground-border)}}.visually-hidden{clip:rect(0,0,0,0)!important;border:0!important;height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}:-moz-focusring{outline:auto}body{--font-stack:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;--font-stack--monospace:"SFMono-Regular",Menlo,Consolas,Monaco,Liberation Mono,Lucida Console,monospace;--font-size--normal:100%;--font-size--small:87.5%;--font-size--small--2:81.25%;--font-size--small--3:75%;--font-size--small--4:62.5%;--sidebar-caption-font-size:var(--font-size--small--2);--sidebar-item-font-size:var(--font-size--small);--sidebar-search-input-font-size:var(--font-size--small);--toc-font-size:var(--font-size--small--3);--toc-font-size--mobile:var(--font-size--normal);--toc-title-font-size:var(--font-size--small--4);--admonition-font-size:0.8125rem;--admonition-title-font-size:0.8125rem;--code-font-size:var(--font-size--small--2);--api-font-size:var(--font-size--small);--header-height:calc(var(--sidebar-item-line-height) + var(--sidebar-item-spacing-vertical)*4);--header-padding:0.5rem;--sidebar-tree-space-above:1.5rem;--sidebar-caption-space-above:1rem;--sidebar-item-line-height:1rem;--sidebar-item-spacing-vertical:0.5rem;--sidebar-item-spacing-horizontal:1rem;--sidebar-item-height:calc(var(--sidebar-item-line-height) + var(--sidebar-item-spacing-vertical)*2);--sidebar-expander-width:var(--sidebar-item-height);--sidebar-search-space-above:0.5rem;--sidebar-search-input-spacing-vertical:0.5rem;--sidebar-search-input-spacing-horizontal:0.5rem;--sidebar-search-input-height:1rem;--sidebar-search-icon-size:var(--sidebar-search-input-height);--toc-title-padding:0.25rem 0;--toc-spacing-vertical:1.5rem;--toc-spacing-horizontal:1.5rem;--toc-item-spacing-vertical:0.4rem;--toc-item-spacing-horizontal:1rem;--icon-search:url('data:image/svg+xml;charset=utf-8,');--icon-pencil:url('data:image/svg+xml;charset=utf-8,');--icon-abstract:url('data:image/svg+xml;charset=utf-8,');--icon-info:url('data:image/svg+xml;charset=utf-8,');--icon-flame:url('data:image/svg+xml;charset=utf-8,');--icon-question:url('data:image/svg+xml;charset=utf-8,');--icon-warning:url('data:image/svg+xml;charset=utf-8,');--icon-failure:url('data:image/svg+xml;charset=utf-8,');--icon-spark:url('data:image/svg+xml;charset=utf-8,');--color-admonition-title--caution:#ff9100;--color-admonition-title-background--caution:rgba(255,145,0,.1);--color-admonition-title--warning:#ff9100;--color-admonition-title-background--warning:rgba(255,145,0,.1);--color-admonition-title--danger:#ff5252;--color-admonition-title-background--danger:rgba(255,82,82,.1);--color-admonition-title--attention:#ff5252;--color-admonition-title-background--attention:rgba(255,82,82,.1);--color-admonition-title--error:#ff5252;--color-admonition-title-background--error:rgba(255,82,82,.1);--color-admonition-title--hint:#00c852;--color-admonition-title-background--hint:rgba(0,200,82,.1);--color-admonition-title--tip:#00c852;--color-admonition-title-background--tip:rgba(0,200,82,.1);--color-admonition-title--important:#00bfa5;--color-admonition-title-background--important:rgba(0,191,165,.1);--color-admonition-title--note:#00b0ff;--color-admonition-title-background--note:rgba(0,176,255,.1);--color-admonition-title--seealso:#448aff;--color-admonition-title-background--seealso:rgba(68,138,255,.1);--color-admonition-title--admonition-todo:grey;--color-admonition-title-background--admonition-todo:hsla(0,0%,50%,.1);--color-admonition-title:#651fff;--color-admonition-title-background:rgba(101,31,255,.1);--icon-admonition-default:var(--icon-abstract);--color-topic-title:#14b8a6;--color-topic-title-background:rgba(20,184,166,.1);--icon-topic-default:var(--icon-pencil);--color-problematic:#b30000;--color-foreground-primary:#000;--color-foreground-secondary:#5a5c63;--color-foreground-muted:#646776;--color-foreground-border:#878787;--color-background-primary:#fff;--color-background-secondary:#f8f9fb;--color-background-hover:#efeff4;--color-background-hover--transparent:#efeff400;--color-background-border:#eeebee;--color-background-item:#ccc;--color-announcement-background:#000000dd;--color-announcement-text:#eeebee;--color-brand-primary:#2962ff;--color-brand-content:#2a5adf;--color-api-background:var(--color-background-secondary);--color-api-background-hover:var(--color-background-hover);--color-api-overall:var(--color-foreground-secondary);--color-api-name:var(--color-problematic);--color-api-pre-name:var(--color-problematic);--color-api-paren:var(--color-foreground-secondary);--color-api-keyword:var(--color-foreground-primary);--color-highlight-on-target:#ffc;--color-inline-code-background:var(--color-background-secondary);--color-highlighted-background:#def;--color-highlighted-text:var(--color-foreground-primary);--color-guilabel-background:#ddeeff80;--color-guilabel-border:#bedaf580;--color-guilabel-text:var(--color-foreground-primary);--color-admonition-background:transparent;--color-table-header-background:var(--color-background-secondary);--color-table-border:var(--color-background-border);--color-card-border:var(--color-background-secondary);--color-card-background:transparent;--color-card-marginals-background:var(--color-background-secondary);--color-header-background:var(--color-background-primary);--color-header-border:var(--color-background-border);--color-header-text:var(--color-foreground-primary);--color-sidebar-background:var(--color-background-secondary);--color-sidebar-background-border:var(--color-background-border);--color-sidebar-brand-text:var(--color-foreground-primary);--color-sidebar-caption-text:var(--color-foreground-muted);--color-sidebar-link-text:var(--color-foreground-secondary);--color-sidebar-link-text--top-level:var(--color-brand-primary);--color-sidebar-item-background:var(--color-sidebar-background);--color-sidebar-item-background--current:var( --color-sidebar-item-background );--color-sidebar-item-background--hover:linear-gradient(90deg,var(--color-background-hover--transparent) 0%,var(--color-background-hover) var(--sidebar-item-spacing-horizontal),var(--color-background-hover) 100%);--color-sidebar-item-expander-background:transparent;--color-sidebar-item-expander-background--hover:var( --color-background-hover );--color-sidebar-search-text:var(--color-foreground-primary);--color-sidebar-search-background:var(--color-background-secondary);--color-sidebar-search-background--focus:var(--color-background-primary);--color-sidebar-search-border:var(--color-background-border);--color-sidebar-search-icon:var(--color-foreground-muted);--color-toc-background:var(--color-background-primary);--color-toc-title-text:var(--color-foreground-muted);--color-toc-item-text:var(--color-foreground-secondary);--color-toc-item-text--hover:var(--color-foreground-primary);--color-toc-item-text--active:var(--color-brand-primary);--color-content-foreground:var(--color-foreground-primary);--color-content-background:transparent;--color-link:var(--color-brand-content);--color-link--hover:var(--color-brand-content);--color-link-underline:var(--color-background-border);--color-link-underline--hover:var(--color-foreground-border)}.only-light{display:block!important}html body .only-dark{display:none!important}@media not print{body[data-theme=dark]{--color-problematic:#ee5151;--color-foreground-primary:#ffffffcc;--color-foreground-secondary:#9ca0a5;--color-foreground-muted:#81868d;--color-foreground-border:#666;--color-background-primary:#131416;--color-background-secondary:#1a1c1e;--color-background-hover:#1e2124;--color-background-hover--transparent:#1e212400;--color-background-border:#303335;--color-background-item:#444;--color-announcement-background:#000000dd;--color-announcement-text:#eeebee;--color-brand-primary:#2b8cee;--color-brand-content:#368ce2;--color-highlighted-background:#083563;--color-guilabel-background:#08356380;--color-guilabel-border:#13395f80;--color-api-keyword:var(--color-foreground-secondary);--color-highlight-on-target:#330;--color-admonition-background:#18181a;--color-card-border:var(--color-background-secondary);--color-card-background:#18181a;--color-card-marginals-background:var(--color-background-hover)}html body[data-theme=dark] .only-light{display:none!important}body[data-theme=dark] .only-dark{display:block!important}@media(prefers-color-scheme:dark){body:not([data-theme=light]){--color-problematic:#ee5151;--color-foreground-primary:#ffffffcc;--color-foreground-secondary:#9ca0a5;--color-foreground-muted:#81868d;--color-foreground-border:#666;--color-background-primary:#131416;--color-background-secondary:#1a1c1e;--color-background-hover:#1e2124;--color-background-hover--transparent:#1e212400;--color-background-border:#303335;--color-background-item:#444;--color-announcement-background:#000000dd;--color-announcement-text:#eeebee;--color-brand-primary:#2b8cee;--color-brand-content:#368ce2;--color-highlighted-background:#083563;--color-guilabel-background:#08356380;--color-guilabel-border:#13395f80;--color-api-keyword:var(--color-foreground-secondary);--color-highlight-on-target:#330;--color-admonition-background:#18181a;--color-card-border:var(--color-background-secondary);--color-card-background:#18181a;--color-card-marginals-background:var(--color-background-hover)}html body:not([data-theme=light]) .only-light{display:none!important}body:not([data-theme=light]) .only-dark{display:block!important}}}body[data-theme=auto] .theme-toggle svg.theme-icon-when-auto,body[data-theme=dark] .theme-toggle svg.theme-icon-when-dark,body[data-theme=light] .theme-toggle svg.theme-icon-when-light{display:block}body{font-family:var(--font-stack)}code,kbd,pre,samp{font-family:var(--font-stack--monospace)}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}article{line-height:1.5}h1,h2,h3,h4,h5,h6{border-radius:.5rem;font-weight:700;line-height:1.25;margin:.5rem -.5rem;padding-left:.5rem;padding-right:.5rem}h1+p,h2+p,h3+p,h4+p,h5+p,h6+p{margin-top:0}h1{font-size:2.5em;margin-bottom:1rem}h1,h2{margin-top:1.75rem}h2{font-size:2em}h3{font-size:1.5em}h4{font-size:1.25em}h5{font-size:1.125em}h6{font-size:1em}small{font-size:80%;opacity:75%}p{margin-bottom:.75rem;margin-top:.5rem}hr.docutils{background-color:var(--color-background-border);border:0;height:1px;margin:2rem 0;padding:0}.centered{text-align:center}a{color:var(--color-link);text-decoration:underline;-webkit-text-decoration-color:var(--color-link-underline);text-decoration-color:var(--color-link-underline)}a:hover{color:var(--color-link--hover);-webkit-text-decoration-color:var(--color-link-underline--hover);text-decoration-color:var(--color-link-underline--hover)}a.muted-link{color:inherit}a.muted-link:hover{color:var(--color-link);-webkit-text-decoration-color:var(--color-link-underline--hover);text-decoration-color:var(--color-link-underline--hover)}html{overflow-x:hidden;overflow-y:scroll;scroll-behavior:smooth}.sidebar-scroll,.toc-scroll,article[role=main] *{scrollbar-color:var(--color-foreground-border) transparent;scrollbar-width:thin}.sidebar-scroll::-webkit-scrollbar,.toc-scroll::-webkit-scrollbar,article[role=main] ::-webkit-scrollbar{height:.25rem;width:.25rem}.sidebar-scroll::-webkit-scrollbar-thumb,.toc-scroll::-webkit-scrollbar-thumb,article[role=main] ::-webkit-scrollbar-thumb{background-color:var(--color-foreground-border);border-radius:.125rem}body,html{background:var(--color-background-primary);color:var(--color-foreground-primary);height:100%}article{background:var(--color-content-background);color:var(--color-content-foreground)}.page{display:flex;min-height:100%}.mobile-header{background-color:var(--color-header-background);border-bottom:1px solid var(--color-header-border);color:var(--color-header-text);display:none;height:var(--header-height);width:100%;z-index:10}.mobile-header.scrolled{border-bottom:none;box-shadow:0 0 .2rem rgba(0,0,0,.1),0 .2rem .4rem rgba(0,0,0,.2)}.mobile-header .header-center a{color:var(--color-header-text);text-decoration:none}.main{display:flex;flex:1}.sidebar-drawer{background:var(--color-sidebar-background);border-right:1px solid var(--color-sidebar-background-border);box-sizing:border-box;display:flex;justify-content:flex-end;min-width:15em;width:calc(50% - 26em)}.sidebar-container,.toc-drawer{box-sizing:border-box;width:15em}.toc-drawer{background:var(--color-toc-background);padding-right:1rem}.sidebar-sticky,.toc-sticky{display:flex;flex-direction:column;height:min(100%,100vh);height:100vh;position:-webkit-sticky;position:sticky;top:0}.sidebar-scroll,.toc-scroll{flex-grow:1;flex-shrink:1;overflow:auto;scroll-behavior:smooth}.content{display:flex;flex-direction:column;justify-content:space-between;padding:0 3em;width:46em}.icon{display:inline-block;height:1rem;width:1rem}.icon svg{height:100%;width:100%}.announcement{align-items:center;background-color:var(--color-announcement-background);color:var(--color-announcement-text);display:flex;height:var(--header-height);overflow-x:auto}.announcement+.page{min-height:calc(100% - var(--header-height))}.announcement-content{box-sizing:border-box;min-width:100%;padding:.5rem;text-align:center;white-space:nowrap}.announcement-content a{color:var(--color-announcement-text);-webkit-text-decoration-color:var(--color-announcement-text);text-decoration-color:var(--color-announcement-text)}.announcement-content a:hover{color:var(--color-announcement-text);-webkit-text-decoration-color:var(--color-link--hover);text-decoration-color:var(--color-link--hover)}.no-js .theme-toggle-container{display:none}.theme-toggle-container{vertical-align:middle}.theme-toggle{background:transparent;border:none;cursor:pointer;padding:0}.theme-toggle svg{color:var(--color-foreground-primary);display:none;height:1rem;vertical-align:middle;width:1rem}.theme-toggle-header{float:left;padding:1rem .5rem}.nav-overlay-icon,.toc-overlay-icon{cursor:pointer;display:none}.nav-overlay-icon .icon,.toc-overlay-icon .icon{color:var(--color-foreground-secondary);height:1rem;width:1rem}.nav-overlay-icon,.toc-header-icon{align-items:center;justify-content:center}.toc-content-icon{height:1.5rem;width:1.5rem}.content-icon-container{display:flex;float:right;gap:.5rem;margin-bottom:1rem;margin-left:1rem;margin-top:1.5rem}.content-icon-container .edit-this-page svg{color:inherit;height:1rem;width:1rem}.sidebar-toggle{display:none;position:absolute}.sidebar-toggle[name=__toc]{left:20px}.sidebar-toggle:checked{left:40px}.overlay{background-color:rgba(0,0,0,.54);height:0;opacity:0;position:fixed;top:0;transition:width 0ms,height 0ms,opacity .25s ease-out;width:0}.sidebar-overlay{z-index:20}.toc-overlay{z-index:40}.sidebar-drawer{transition:left .25s ease-in-out;z-index:30}.toc-drawer{transition:right .25s ease-in-out;z-index:50}#__navigation:checked~.sidebar-overlay{height:100%;opacity:1;width:100%}#__navigation:checked~.page .sidebar-drawer{left:0;top:0}#__toc:checked~.toc-overlay{height:100%;opacity:1;width:100%}#__toc:checked~.page .toc-drawer{right:0;top:0}.back-to-top{background:var(--color-background-primary);border-radius:1rem;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 1px 0 hsla(220,9%,46%,.502);display:none;font-size:.8125rem;left:0;margin-left:50%;padding:.5rem .75rem .5rem .5rem;position:fixed;text-decoration:none;top:1rem;transform:translateX(-50%);z-index:10}.back-to-top svg{fill:currentColor;display:inline-block;height:1rem;width:1rem}.back-to-top span{margin-left:.25rem}.show-back-to-top .back-to-top{align-items:center;display:flex}@media(min-width:97em){html{font-size:110%}}@media(max-width:82em){.toc-content-icon{display:flex}.toc-drawer{border-left:1px solid var(--color-background-muted);height:100vh;position:fixed;right:-15em;top:0}.toc-tree{border-left:none;font-size:var(--toc-font-size--mobile)}.sidebar-drawer{width:calc(50% - 18.5em)}}@media(max-width:67em){.nav-overlay-icon{display:flex}.sidebar-drawer{height:100vh;left:-15em;position:fixed;top:0;width:15em}.toc-header-icon{display:flex}.theme-toggle-content,.toc-content-icon{display:none}.theme-toggle-header{display:block}.mobile-header{align-items:center;display:flex;justify-content:space-between;position:-webkit-sticky;position:sticky;top:0}.mobile-header .header-left,.mobile-header .header-right{display:flex;height:var(--header-height);padding:0 var(--header-padding)}.mobile-header .header-left label,.mobile-header .header-right label{height:100%;width:100%}:target{scroll-margin-top:var(--header-height)}.back-to-top{top:calc(var(--header-height) + .5rem)}.page{flex-direction:column;justify-content:center}.content{margin-left:auto;margin-right:auto}}@media(max-width:52em){.content{overflow-x:auto;width:100%}}@media(max-width:46em){.content{padding:0 1em}article aside.sidebar{float:none;margin:1rem 0;width:100%}}.admonition,.topic{background:var(--color-admonition-background);border-radius:.2rem;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .0625rem rgba(0,0,0,.1);font-size:var(--admonition-font-size);margin:1rem auto;overflow:hidden;padding:0 .5rem .5rem;page-break-inside:avoid}.admonition>:nth-child(2),.topic>:nth-child(2){margin-top:0}.admonition>:last-child,.topic>:last-child{margin-bottom:0}p.admonition-title,p.topic-title{font-size:var(--admonition-title-font-size);font-weight:500;line-height:1.3;margin:0 -.5rem .5rem;padding:.4rem .5rem .4rem 2rem;position:relative}p.admonition-title:before,p.topic-title:before{content:"";height:1rem;left:.5rem;position:absolute;width:1rem}p.admonition-title{background-color:var(--color-admonition-title-background)}p.admonition-title:before{background-color:var(--color-admonition-title);-webkit-mask-image:var(--icon-admonition-default);mask-image:var(--icon-admonition-default);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}p.topic-title{background-color:var(--color-topic-title-background)}p.topic-title:before{background-color:var(--color-topic-title);-webkit-mask-image:var(--icon-topic-default);mask-image:var(--icon-topic-default);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.admonition{border-left:.2rem solid var(--color-admonition-title)}.admonition.caution{border-left-color:var(--color-admonition-title--caution)}.admonition.caution>.admonition-title{background-color:var(--color-admonition-title-background--caution)}.admonition.caution>.admonition-title:before{background-color:var(--color-admonition-title--caution);-webkit-mask-image:var(--icon-spark);mask-image:var(--icon-spark)}.admonition.warning{border-left-color:var(--color-admonition-title--warning)}.admonition.warning>.admonition-title{background-color:var(--color-admonition-title-background--warning)}.admonition.warning>.admonition-title:before{background-color:var(--color-admonition-title--warning);-webkit-mask-image:var(--icon-warning);mask-image:var(--icon-warning)}.admonition.danger{border-left-color:var(--color-admonition-title--danger)}.admonition.danger>.admonition-title{background-color:var(--color-admonition-title-background--danger)}.admonition.danger>.admonition-title:before{background-color:var(--color-admonition-title--danger);-webkit-mask-image:var(--icon-spark);mask-image:var(--icon-spark)}.admonition.attention{border-left-color:var(--color-admonition-title--attention)}.admonition.attention>.admonition-title{background-color:var(--color-admonition-title-background--attention)}.admonition.attention>.admonition-title:before{background-color:var(--color-admonition-title--attention);-webkit-mask-image:var(--icon-warning);mask-image:var(--icon-warning)}.admonition.error{border-left-color:var(--color-admonition-title--error)}.admonition.error>.admonition-title{background-color:var(--color-admonition-title-background--error)}.admonition.error>.admonition-title:before{background-color:var(--color-admonition-title--error);-webkit-mask-image:var(--icon-failure);mask-image:var(--icon-failure)}.admonition.hint{border-left-color:var(--color-admonition-title--hint)}.admonition.hint>.admonition-title{background-color:var(--color-admonition-title-background--hint)}.admonition.hint>.admonition-title:before{background-color:var(--color-admonition-title--hint);-webkit-mask-image:var(--icon-question);mask-image:var(--icon-question)}.admonition.tip{border-left-color:var(--color-admonition-title--tip)}.admonition.tip>.admonition-title{background-color:var(--color-admonition-title-background--tip)}.admonition.tip>.admonition-title:before{background-color:var(--color-admonition-title--tip);-webkit-mask-image:var(--icon-info);mask-image:var(--icon-info)}.admonition.important{border-left-color:var(--color-admonition-title--important)}.admonition.important>.admonition-title{background-color:var(--color-admonition-title-background--important)}.admonition.important>.admonition-title:before{background-color:var(--color-admonition-title--important);-webkit-mask-image:var(--icon-flame);mask-image:var(--icon-flame)}.admonition.note{border-left-color:var(--color-admonition-title--note)}.admonition.note>.admonition-title{background-color:var(--color-admonition-title-background--note)}.admonition.note>.admonition-title:before{background-color:var(--color-admonition-title--note);-webkit-mask-image:var(--icon-pencil);mask-image:var(--icon-pencil)}.admonition.seealso{border-left-color:var(--color-admonition-title--seealso)}.admonition.seealso>.admonition-title{background-color:var(--color-admonition-title-background--seealso)}.admonition.seealso>.admonition-title:before{background-color:var(--color-admonition-title--seealso);-webkit-mask-image:var(--icon-info);mask-image:var(--icon-info)}.admonition.admonition-todo{border-left-color:var(--color-admonition-title--admonition-todo)}.admonition.admonition-todo>.admonition-title{background-color:var(--color-admonition-title-background--admonition-todo)}.admonition.admonition-todo>.admonition-title:before{background-color:var(--color-admonition-title--admonition-todo);-webkit-mask-image:var(--icon-pencil);mask-image:var(--icon-pencil)}.admonition-todo>.admonition-title{text-transform:uppercase}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dd{margin-left:2rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dd>:first-child{margin-top:.125rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list,dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dd>:last-child{margin-bottom:.75rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list>dt{font-size:var(--font-size--small);text-transform:uppercase}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd:empty{margin-bottom:.5rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd>ul{margin-left:-1.2rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd>ul>li>p:nth-child(2){margin-top:0}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd>ul>li>p+p:last-child:empty{margin-bottom:0;margin-top:0}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple)>dt{color:var(--color-api-overall)}.sig{background:var(--color-api-background);border-radius:.25rem;font-family:var(--font-stack--monospace);font-size:var(--api-font-size);font-weight:700;padding:.25rem .5rem .25rem 3em;text-indent:-2.5em}.sig:hover{background:var(--color-api-background-hover)}.sig a.reference .viewcode-link{font-weight:400;width:3.5rem}.sig span.pre{overflow-wrap:anywhere}em.property{font-style:normal}em.property:first-child{color:var(--color-api-keyword)}.sig-name{color:var(--color-api-name)}.sig-prename{color:var(--color-api-pre-name);font-weight:400}.sig-paren{color:var(--color-api-paren)}.sig-param{font-style:normal}.versionmodified{font-style:italic}div.deprecated p,div.versionadded p,div.versionchanged p{margin-bottom:.125rem;margin-top:.125rem}.viewcode-back,.viewcode-link{float:right;text-align:right}.line-block{margin-bottom:.75rem;margin-top:.5rem}.line-block .line-block{margin-bottom:0;margin-top:0;padding-left:1rem}.code-block-caption,article p.caption,table>caption{font-size:var(--font-size--small);text-align:center}.toctree-wrapper.compound .caption,.toctree-wrapper.compound :not(.caption)>.caption-text{font-size:var(--font-size--small);margin-bottom:0;text-align:initial;text-transform:uppercase}.toctree-wrapper.compound>ul{margin-bottom:0;margin-top:0}code.literal{background:var(--color-inline-code-background);border-radius:.2em;font-size:var(--font-size--small--2);padding:.1em .2em}p code.literal{border:1px solid var(--color-background-border)}div[class*=" highlight-"],div[class^=highlight-]{display:flex;margin:1em 0}div[class*=" highlight-"] .table-wrapper,div[class^=highlight-] .table-wrapper,pre{margin:0;padding:0}article[role=main] .highlight pre{line-height:1.5}.highlight pre,pre.literal-block{font-size:var(--code-font-size);overflow:auto;padding:.625rem .875rem}pre.literal-block{background-color:var(--color-code-background);border-radius:.2rem;color:var(--color-code-foreground);margin-bottom:1rem;margin-top:1rem}.highlight{border-radius:.2rem;width:100%}.highlight .gp,.highlight span.linenos{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.highlight .hll{display:block;margin-left:-.875rem;margin-right:-.875rem;padding-left:.875rem;padding-right:.875rem}.code-block-caption{background-color:var(--color-code-background);border-bottom:1px solid;border-radius:.25rem;border-bottom-left-radius:0;border-bottom-right-radius:0;border-color:var(--color-background-border);color:var(--color-code-foreground);display:flex;font-weight:300;padding:.625rem .875rem}.code-block-caption+div[class]{margin-top:0}.code-block-caption+div[class] pre{border-top-left-radius:0;border-top-right-radius:0}.highlighttable{display:block;width:100%}.highlighttable tbody{display:block}.highlighttable tr{display:flex}.highlighttable td.linenos{background-color:var(--color-code-background);border-bottom-left-radius:.2rem;border-top-left-radius:.2rem;color:var(--color-code-foreground);padding:.625rem 0 .625rem .875rem}.highlighttable .linenodiv{box-shadow:-.0625rem 0 var(--color-foreground-border) inset;font-size:var(--code-font-size);padding-right:.875rem}.highlighttable td.code{display:block;flex:1;overflow:hidden;padding:0}.highlighttable td.code .highlight{border-bottom-left-radius:0;border-top-left-radius:0}.highlight span.linenos{box-shadow:-.0625rem 0 var(--color-foreground-border) inset;display:inline-block;margin-right:.875rem;padding-left:0;padding-right:.875rem}.footnote-reference{font-size:var(--font-size--small--4);vertical-align:super}dl.footnote.brackets{color:var(--color-foreground-secondary);display:grid;font-size:var(--font-size--small);grid-template-columns:-webkit-max-content auto;grid-template-columns:max-content auto}dl.footnote.brackets dt{margin:0}dl.footnote.brackets dt>.fn-backref{margin-left:.25rem}dl.footnote.brackets dt:after{content:":"}dl.footnote.brackets dt .brackets:before{content:"["}dl.footnote.brackets dt .brackets:after{content:"]"}dl.footnote.brackets dd{margin:0;padding:0 1rem}aside.footnote{color:var(--color-foreground-secondary);font-size:var(--font-size--small)}aside.footnote>span,div.citation>span{font-weight:500}aside.footnote>p,div.citation>p{margin-left:2rem}img{box-sizing:border-box;height:auto;max-width:100%}article .figure,article figure{border-radius:.2rem;margin:0}article .figure :last-child,article figure :last-child{margin-bottom:0}article .align-left{clear:left;float:left;margin:0 1rem 1rem}article .align-right{clear:right;float:right;margin:0 1rem 1rem}article .align-center,article .align-default{display:block;margin-left:auto;margin-right:auto;text-align:center}article table.align-default{display:table;text-align:initial}.domainindex-jumpbox,.genindex-jumpbox{border-bottom:1px solid var(--color-background-border);border-top:1px solid var(--color-background-border);padding:.25rem}.domainindex-section h2,.genindex-section h2{margin-bottom:.5rem;margin-top:.75rem}.domainindex-section ul,.genindex-section ul{margin-bottom:0;margin-top:0}ol,ul{margin-bottom:1rem;margin-top:1rem;padding-left:1.2rem}ol li>p:first-child,ul li>p:first-child{margin-bottom:.25rem;margin-top:.25rem}ol li>p:last-child,ul li>p:last-child{margin-top:.25rem}ol li>ol,ol li>ul,ul li>ol,ul li>ul{margin-bottom:.5rem;margin-top:.5rem}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}.simple li>ol,.simple li>ul,.toctree-wrapper li>ol,.toctree-wrapper li>ul{margin-bottom:0;margin-top:0}.field-list dt,.option-list dt,dl.footnote dt,dl.glossary dt,dl.simple dt,dl:not([class]) dt{font-weight:500;margin-top:.25rem}.field-list dt+dt,.option-list dt+dt,dl.footnote dt+dt,dl.glossary dt+dt,dl.simple dt+dt,dl:not([class]) dt+dt{margin-top:0}.field-list dt .classifier:before,.option-list dt .classifier:before,dl.footnote dt .classifier:before,dl.glossary dt .classifier:before,dl.simple dt .classifier:before,dl:not([class]) dt .classifier:before{content:":";margin-left:.2rem;margin-right:.2rem}.field-list dd ul,.field-list dd>p:first-child,.option-list dd ul,.option-list dd>p:first-child,dl.footnote dd ul,dl.footnote dd>p:first-child,dl.glossary dd ul,dl.glossary dd>p:first-child,dl.simple dd ul,dl.simple dd>p:first-child,dl:not([class]) dd ul,dl:not([class]) dd>p:first-child{margin-top:.125rem}.field-list dd ul,.option-list dd ul,dl.footnote dd ul,dl.glossary dd ul,dl.simple dd ul,dl:not([class]) dd ul{margin-bottom:.125rem}.math-wrapper{overflow-x:auto;width:100%}div.math{position:relative;text-align:center}div.math .headerlink,div.math:focus .headerlink{display:none}div.math:hover .headerlink{display:inline-block}div.math span.eqno{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);z-index:1}abbr[title]{cursor:help}.problematic{color:var(--color-problematic)}kbd:not(.compound){background-color:var(--color-background-secondary);border:1px solid var(--color-foreground-border);border-radius:.2rem;box-shadow:0 .0625rem 0 rgba(0,0,0,.2),inset 0 0 0 .125rem var(--color-background-primary);color:var(--color-foreground-primary);display:inline-block;font-size:var(--font-size--small--3);margin:0 .2rem;padding:0 .2rem;vertical-align:text-bottom}blockquote{background:var(--color-background-secondary);border-left:4px solid var(--color-background-border);margin-left:0;margin-right:0;padding:.5rem 1rem}blockquote .attribution{font-weight:600;text-align:right}blockquote.highlights,blockquote.pull-quote{font-size:1.25em}blockquote.epigraph,blockquote.pull-quote{border-left-width:0;border-radius:.5rem}blockquote.highlights{background:transparent;border-left-width:0}p .reference img{vertical-align:middle}p.rubric{font-size:1.125em;font-weight:700;line-height:1.25}dd p.rubric{font-size:var(--font-size--small);font-weight:inherit;line-height:inherit;text-transform:uppercase}article .sidebar{background-color:var(--color-background-secondary);border:1px solid var(--color-background-border);border-radius:.2rem;clear:right;float:right;margin-left:1rem;margin-right:0;width:30%}article .sidebar>*{padding-left:1rem;padding-right:1rem}article .sidebar>ol,article .sidebar>ul{padding-left:2.2rem}article .sidebar .sidebar-title{border-bottom:1px solid var(--color-background-border);font-weight:500;margin:0;padding:.5rem 1rem}.table-wrapper{margin-bottom:.5rem;margin-top:1rem;overflow-x:auto;padding:.2rem .2rem .75rem;width:100%}table.docutils{border-collapse:collapse;border-radius:.2rem;border-spacing:0;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .0625rem rgba(0,0,0,.1)}table.docutils th{background:var(--color-table-header-background)}table.docutils td,table.docutils th{border-bottom:1px solid var(--color-table-border);border-left:1px solid var(--color-table-border);border-right:1px solid var(--color-table-border);padding:0 .25rem}table.docutils td p,table.docutils th p{margin:.25rem}table.docutils td:first-child,table.docutils th:first-child{border-left:none}table.docutils td:last-child,table.docutils th:last-child{border-right:none}table.docutils td.text-left,table.docutils th.text-left{text-align:left}table.docutils td.text-right,table.docutils th.text-right{text-align:right}table.docutils td.text-center,table.docutils th.text-center{text-align:center}:target{scroll-margin-top:.5rem}@media(max-width:67em){:target{scroll-margin-top:calc(.5rem + var(--header-height))}section>span:target{scroll-margin-top:calc(.8rem + var(--header-height))}}.headerlink{font-weight:100;-webkit-user-select:none;-moz-user-select:none;user-select:none}.code-block-caption>.headerlink,dl dt>.headerlink,figcaption p>.headerlink,h1>.headerlink,h2>.headerlink,h3>.headerlink,h4>.headerlink,h5>.headerlink,h6>.headerlink,p.caption>.headerlink,table>caption>.headerlink{margin-left:.5rem;visibility:hidden}.code-block-caption:hover>.headerlink,dl dt:hover>.headerlink,figcaption p:hover>.headerlink,h1:hover>.headerlink,h2:hover>.headerlink,h3:hover>.headerlink,h4:hover>.headerlink,h5:hover>.headerlink,h6:hover>.headerlink,p.caption:hover>.headerlink,table>caption:hover>.headerlink{visibility:visible}.code-block-caption>.toc-backref,dl dt>.toc-backref,figcaption p>.toc-backref,h1>.toc-backref,h2>.toc-backref,h3>.toc-backref,h4>.toc-backref,h5>.toc-backref,h6>.toc-backref,p.caption>.toc-backref,table>caption>.toc-backref{color:inherit;-webkit-text-decoration-line:none;text-decoration-line:none}figure:hover>figcaption>p>.headerlink,table:hover>caption>.headerlink{visibility:visible}:target>h1:first-of-type,:target>h2:first-of-type,:target>h3:first-of-type,:target>h4:first-of-type,:target>h5:first-of-type,:target>h6:first-of-type,span:target~h1:first-of-type,span:target~h2:first-of-type,span:target~h3:first-of-type,span:target~h4:first-of-type,span:target~h5:first-of-type,span:target~h6:first-of-type{background-color:var(--color-highlight-on-target)}:target>h1:first-of-type code.literal,:target>h2:first-of-type code.literal,:target>h3:first-of-type code.literal,:target>h4:first-of-type code.literal,:target>h5:first-of-type code.literal,:target>h6:first-of-type code.literal,span:target~h1:first-of-type code.literal,span:target~h2:first-of-type code.literal,span:target~h3:first-of-type code.literal,span:target~h4:first-of-type code.literal,span:target~h5:first-of-type code.literal,span:target~h6:first-of-type code.literal{background-color:transparent}.literal-block-wrapper:target .code-block-caption,.this-will-duplicate-information-and-it-is-still-useful-here li :target,figure:target,table:target>caption{background-color:var(--color-highlight-on-target)}dt:target{background-color:var(--color-highlight-on-target)!important}.footnote-reference:target,.footnote>dt:target+dd{background-color:var(--color-highlight-on-target)}.guilabel{background-color:var(--color-guilabel-background);border:1px solid var(--color-guilabel-border);border-radius:.5em;color:var(--color-guilabel-text);font-size:.9em;padding:0 .3em}footer{display:flex;flex-direction:column;font-size:var(--font-size--small);margin-top:2rem}.bottom-of-page{align-items:center;border-top:1px solid var(--color-background-border);color:var(--color-foreground-secondary);display:flex;justify-content:space-between;line-height:1.5;margin-top:1rem;padding-bottom:1rem;padding-top:1rem}@media(max-width:46em){.bottom-of-page{flex-direction:column-reverse;gap:.25rem;text-align:center}}.bottom-of-page .left-details{font-size:var(--font-size--small)}.bottom-of-page .right-details{display:flex;flex-direction:column;gap:.25rem;text-align:right}.bottom-of-page .icons{display:flex;font-size:1rem;gap:.25rem;justify-content:flex-end}.bottom-of-page .icons a{text-decoration:none}.bottom-of-page .icons img,.bottom-of-page .icons svg{font-size:1.125rem;height:1em;width:1em}.related-pages a{align-items:center;display:flex;text-decoration:none}.related-pages a:hover .page-info .title{color:var(--color-link);text-decoration:underline;-webkit-text-decoration-color:var(--color-link-underline);text-decoration-color:var(--color-link-underline)}.related-pages a svg.furo-related-icon,.related-pages a svg.furo-related-icon>use{color:var(--color-foreground-border);flex-shrink:0;height:.75rem;margin:0 .5rem;width:.75rem}.related-pages a.next-page{clear:right;float:right;max-width:50%;text-align:right}.related-pages a.prev-page{clear:left;float:left;max-width:50%}.related-pages a.prev-page svg{transform:rotate(180deg)}.page-info{display:flex;flex-direction:column;overflow-wrap:anywhere}.next-page .page-info{align-items:flex-end}.page-info .context{align-items:center;color:var(--color-foreground-muted);display:flex;font-size:var(--font-size--small);padding-bottom:.1rem;text-decoration:none}ul.search{list-style:none;padding-left:0}ul.search li{border-bottom:1px solid var(--color-background-border);padding:1rem 0}[role=main] .highlighted{background-color:var(--color-highlighted-background);color:var(--color-highlighted-text)}.sidebar-brand{display:flex;flex-direction:column;flex-shrink:0;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal);text-decoration:none}.sidebar-brand-text{color:var(--color-sidebar-brand-text);font-size:1.5rem;overflow-wrap:break-word}.sidebar-brand-text,.sidebar-logo-container{margin:var(--sidebar-item-spacing-vertical) 0}.sidebar-logo{display:block;margin:0 auto;max-width:100%}.sidebar-search-container{align-items:center;background:var(--color-sidebar-search-background);display:flex;margin-top:var(--sidebar-search-space-above);position:relative}.sidebar-search-container:focus-within,.sidebar-search-container:hover{background:var(--color-sidebar-search-background--focus)}.sidebar-search-container:before{background-color:var(--color-sidebar-search-icon);content:"";height:var(--sidebar-search-icon-size);left:var(--sidebar-item-spacing-horizontal);-webkit-mask-image:var(--icon-search);mask-image:var(--icon-search);position:absolute;width:var(--sidebar-search-icon-size)}.sidebar-search{background:transparent;border:none;border-bottom:1px solid var(--color-sidebar-search-border);border-top:1px solid var(--color-sidebar-search-border);box-sizing:border-box;color:var(--color-sidebar-search-foreground);padding:var(--sidebar-search-input-spacing-vertical) var(--sidebar-search-input-spacing-horizontal) var(--sidebar-search-input-spacing-vertical) calc(var(--sidebar-item-spacing-horizontal) + var(--sidebar-search-input-spacing-horizontal) + var(--sidebar-search-icon-size));width:100%;z-index:10}.sidebar-search:focus{outline:none}.sidebar-search::-moz-placeholder{font-size:var(--sidebar-search-input-font-size)}.sidebar-search::placeholder{font-size:var(--sidebar-search-input-font-size)}#searchbox .highlight-link{margin:0;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal) 0;text-align:center}#searchbox .highlight-link a{color:var(--color-sidebar-search-icon);font-size:var(--font-size--small--2)}.sidebar-tree{font-size:var(--sidebar-item-font-size);margin-bottom:var(--sidebar-item-spacing-vertical);margin-top:var(--sidebar-tree-space-above)}.sidebar-tree ul{display:flex;flex-direction:column;list-style:none;margin-bottom:0;margin-top:0;padding:0}.sidebar-tree li{margin:0;position:relative}.sidebar-tree li>ul{margin-left:var(--sidebar-item-spacing-horizontal)}.sidebar-tree .icon,.sidebar-tree .reference{color:var(--color-sidebar-link-text)}.sidebar-tree .reference{box-sizing:border-box;display:inline-block;height:100%;line-height:var(--sidebar-item-line-height);overflow-wrap:anywhere;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal);text-decoration:none;width:100%}.sidebar-tree .reference:hover{background:var(--color-sidebar-item-background--hover)}.sidebar-tree .reference.external:after{color:var(--color-sidebar-link-text);content:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='12' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' stroke-width='1.5' stroke='%23607D8B' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M0 0h24v24H0z' stroke='none'/%3E%3Cpath d='M11 7H6a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2-2v-5M10 14 20 4M15 4h5v5'/%3E%3C/svg%3E");margin:0 .25rem;vertical-align:middle}.sidebar-tree .current-page>.reference{font-weight:700}.sidebar-tree label{align-items:center;cursor:pointer;display:flex;height:var(--sidebar-item-height);justify-content:center;position:absolute;right:0;top:0;width:var(--sidebar-expander-width)}.sidebar-tree .caption,.sidebar-tree :not(.caption)>.caption-text{color:var(--color-sidebar-caption-text);font-size:var(--sidebar-caption-font-size);font-weight:700;margin:var(--sidebar-caption-space-above) 0 0 0;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal);text-transform:uppercase}.sidebar-tree li.has-children>.reference{padding-right:var(--sidebar-expander-width)}.sidebar-tree .toctree-l1>.reference,.sidebar-tree .toctree-l1>label .icon{color:var(--color-sidebar-link-text--top-level)}.sidebar-tree label{background:var(--color-sidebar-item-expander-background)}.sidebar-tree label:hover{background:var(--color-sidebar-item-expander-background--hover)}.sidebar-tree .current>.reference{background:var(--color-sidebar-item-background--current)}.sidebar-tree .current>.reference:hover{background:var(--color-sidebar-item-background--hover)}.toctree-checkbox{display:none;position:absolute}.toctree-checkbox~ul{display:none}.toctree-checkbox~label .icon svg{transform:rotate(90deg)}.toctree-checkbox:checked~ul{display:block}.toctree-checkbox:checked~label .icon svg{transform:rotate(-90deg)}.toc-title-container{padding:var(--toc-title-padding);padding-top:var(--toc-spacing-vertical)}.toc-title{color:var(--color-toc-title-text);font-size:var(--toc-title-font-size);padding-left:var(--toc-spacing-horizontal);text-transform:uppercase}.no-toc{display:none}.toc-tree-container{padding-bottom:var(--toc-spacing-vertical)}.toc-tree{border-left:1px solid var(--color-background-border);font-size:var(--toc-font-size);line-height:1.3;padding-left:calc(var(--toc-spacing-horizontal) - var(--toc-item-spacing-horizontal))}.toc-tree>ul>li:first-child{padding-top:0}.toc-tree>ul>li:first-child>ul{padding-left:0}.toc-tree>ul>li:first-child>a{display:none}.toc-tree ul{list-style-type:none;margin-bottom:0;margin-top:0;padding-left:var(--toc-item-spacing-horizontal)}.toc-tree li{padding-top:var(--toc-item-spacing-vertical)}.toc-tree li.scroll-current>.reference{color:var(--color-toc-item-text--active);font-weight:700}.toc-tree .reference{color:var(--color-toc-item-text);overflow-wrap:anywhere;text-decoration:none}.toc-scroll{max-height:100vh;overflow-y:scroll}.contents:not(.this-will-duplicate-information-and-it-is-still-useful-here){background:rgba(255,0,0,.25);color:var(--color-problematic)}.contents:not(.this-will-duplicate-information-and-it-is-still-useful-here):before{content:"ERROR: Adding a table of contents in Furo-based documentation is unnecessary, and does not work well with existing styling.Add a 'this-will-duplicate-information-and-it-is-still-useful-here' class, if you want an escape hatch."}.text-align\:left>p{text-align:left}.text-align\:center>p{text-align:center}.text-align\:right>p{text-align:right} +/*# sourceMappingURL=furo.css.map*/ \ No newline at end of file diff --git a/docs/manual/_static/styles/furo.css.map b/docs/manual/_static/styles/furo.css.map new file mode 100644 index 0000000..03770b0 --- /dev/null +++ b/docs/manual/_static/styles/furo.css.map @@ -0,0 +1 @@ +{"version":3,"file":"styles/furo.css","mappings":"AAAA,2EAA2E,CAU3E,KAEE,6BAA8B,CAD9B,gBAEF,CASA,KACE,QACF,CAMA,KACE,aACF,CAOA,GACE,aAAc,CACd,cACF,CAUA,GACE,sBAAuB,CACvB,QAAS,CACT,gBACF,CAOA,IACE,+BAAiC,CACjC,aACF,CASA,EACE,4BACF,CAOA,YACE,kBAAmB,CACnB,yBAA0B,CAC1B,gCACF,CAMA,SAEE,kBACF,CAOA,cAGE,+BAAiC,CACjC,aACF,CAeA,QAEE,aAAc,CACd,aAAc,CACd,iBAAkB,CAClB,uBACF,CAEA,IACE,aACF,CAEA,IACE,SACF,CASA,IACE,iBACF,CAUA,sCAKE,mBAAoB,CACpB,cAAe,CACf,gBAAiB,CACjB,QACF,CAOA,aAEE,gBACF,CAOA,cAEE,mBACF,CAMA,gDAIE,yBACF,CAMA,wHAIE,iBAAkB,CAClB,SACF,CAMA,4GAIE,6BACF,CAMA,SACE,0BACF,CASA,OACE,qBAAsB,CACtB,aAAc,CACd,aAAc,CACd,cAAe,CACf,SAAU,CACV,kBACF,CAMA,SACE,uBACF,CAMA,SACE,aACF,CAOA,6BAEE,qBAAsB,CACtB,SACF,CAMA,kFAEE,WACF,CAOA,cACE,4BAA6B,CAC7B,mBACF,CAMA,yCACE,uBACF,CAOA,6BACE,yBAA0B,CAC1B,YACF,CASA,QACE,aACF,CAMA,QACE,iBACF,CAiBA,kBACE,YACF,CCvVA,aAcE,kEACE,uBAOF,WACE,iDARA,CCpBJ,iBAOE,6BAEA,mBANA,qBAEA,sBACA,0BAFA,oBAHA,4BAOA,6BANA,mBAOA,CAEF,gBACE,aCPF,KCGE,mHAEA,wGAGA,wBAAyB,CACzB,wBAAyB,CACzB,4BAA6B,CAC7B,yBAA0B,CAC1B,2BAA4B,CAG5B,sDAAuD,CACvD,gDAAiD,CACjD,wDAAyD,CAGzD,0CAA2C,CAC3C,gDAAiD,CACjD,gDAAiD,CAKjD,gCAAiC,CACjC,sCAAuC,CAGvC,2CAA4C,CAG5C,uCAAwC,CChCxC,+FAGA,uBAAwB,CAGxB,iCAAkC,CAClC,kCAAmC,CAEnC,+BAAgC,CAChC,sCAAuC,CACvC,sCAAuC,CACvC,qGAIA,mDAAoD,CAEpD,mCAAoC,CACpC,8CAA+C,CAC/C,gDAAiD,CACjD,kCAAmC,CACnC,6DAA8D,CAG9D,6BAA8B,CAC9B,6BAA8B,CAC9B,+BAAgC,CAChC,kCAAmC,CACnC,kCAAmC,CCPjC,ukBCYA,srCAZF,kaCVA,mLAOA,oTAWA,2UAaA,0CACA,gEACA,0CAGA,gEAUA,yCACA,+DAIA,4CACA,kEAGA,sGAEA,mGAGA,sCACA,2DAEA,4CACA,kEACA,uCACA,6DAEA,2GACA,+CAGA,+MAOA,4BACA,2FAIA,4DACA,sEACA,kEACA,sEACA,gDAGA,kCACA,uEACA,mCACA,4DACA,yDAGA,2DACA,qDAGA,0CACA,8CACA,oDACA,oDL7GF,iCAEA,iEAME,oCKyGA,yDAIA,sCACA,kCACA,sDAGA,0CACA,kEACA,oDAEA,sDAGA,oCACA,oEAIA,CAGA,yDAGA,qDACA,oDAGA,6DAIA,iEAGA,2DAEA,2DL9IE,4DAEA,gEAIF,gEKgGA,gFAIA,oNAOA,qDAEA,gFAIA,4DAIA,oEAMA,yEAIA,6DACA,0DAGA,uDAGA,qDAEA,wDLpII,6DAEA,yDACE,2DAMN,uCAIA,yCACE,8CAGF,sDMjDA,6DAKA,oCAIA,4CACA,kBAGF,sBAMA,2BAME,qCAGA,qCAEA,iCAEA,+BAEA,mCAEA,qCAIA,CACA,gCACA,gDAKA,kCAIA,6BAEA,0CAQA,kCAIF,8BAGE,8BACA,uCAGF,sCAKE,kCAEA,sDACA,uEAGE,sDACA,gGACF,wCAGI,sBACA,yHCzEJ,2BACA,qCAGF,sEAGE,kEAGA,sHAGA,2IACE,8BACA,8BAOF,uCAEA,wEAGA,sDACA,iCAKA,CAEF,qCAEE,sDACA,gCACA,gEAKA,+CAOE,sBACA,gEAGA,GAYF,yLACA,gDAGA,mBAEA,wCACA,wCAGF,CAEE,iCAGF,wBACE,mBAIF,oBAFE,eAEF,CAJE,gBAEA,CAMA,mBACA,mBAGA,mDAIA,YACA,mBAEA,CACA,kBAGF,OAJE,kBAQA,CAJF,GACE,aAGA,IACA,mCACA,qBAEF,IACE,oBAEA,aACA,CAFA,WAEA,GAEE,oBAKJ,CAPE,gBAOF,aACE,+CAGA,UAHA,kCAGA,4BACA,GAEA,uBACA,CAHA,yBAEA,CACA,yDAGF,kDAEE,SACA,8BAEA,iEAGE,yDACA,sEAEA,iEAEE,yHAKN,kDAMA,0DAIE,CANA,oBAMA,0GAOA,aAEF,CAHE,YAGF,4HAWE,+CACE,iCAIJ,0CAGE,CALE,qCAEJ,CAHI,WAMF,SAIA,0CAIA,CANF,qCAME,mBACA,gBACA,gBAIA,+CAEE,CAIF,kDAGF,CAPI,8BAGJ,CAKE,YACF,CAbE,2BAEA,CAHA,WAYF,UAEA,yBACE,kBAIA,iEAKA,iCAGA,mDAEA,mBACF,OACE,iBAQA,0CAIA,CAPA,6DAGA,CALF,qBAEE,CAOA,qCAEE,CAGA,eAHA,sBAGA,gCAKF,qBACE,WACA,aACA,sCAEA,mBAOJ,6BASE,kCACA,CAHA,sBACA,aACA,CARA,uBAGA,gBAEA,MAIA,6BAEA,yBACA,2DAEA,sBAGA,8BACA,CANA,wBAMA,2BAEE,YACA,sBACA,WAEF,CAFE,UAEF,eAeF,kBAEE,CAhBE,qDAGA,qCAOJ,CAEI,YAEJ,CAJA,2BAEI,CAIF,eACE,qBACF,4CAIE,uBACA,sBACF,cACE,CAFA,aACF,CAEE,kBADA,kBACA,yBAGF,oCACE,6DAMF,qDAGE,CC1VY,8BDgWd,oCAEA,uDAEA,CACE,8CAIA,gCAEA,YACA,8CACA,CAEA,oCAGE,CAHF,oCAGE,mBAEA,mDADA,YADA,qBACA,WACA,sBAEE,WAGN,kBACE,qCAIA,eADF,YACE,iDAKA,uCAEA,YACA,+CAMA,kBAEJ,CAHI,sBAGJ,mBAEI,cAEF,qCAGE,YE1ZJ,CFyZI,WACA,CExZF,SAEA,CAFA,mBADA,gBACA,CAFF,iBAIE,6CAEA,yBACA,uFAEA,kCAGA,mBAOA,gCAGF,CAPE,SAIA,UAPA,cAGA,4DAIA,CAJA,OAOF,kBACE,wBACA,2BAEA,gCACA,CAFA,UAEA,aAGA,iCACA,CAHA,UAGA,wCAIA,sBAHA,UAGA,6CAGE,OADA,KACA,CACA,4BAIJ,WACE,WADF,UACE,kCACA,QADA,KACA,cAEE,0CACA,CADA,mBACA,wEAIF,CANE,aACA,mBADA,MACA,CAKF,eACE,CANA,iCADA,eADF,oBACE,CACA,SAMA,2BADF,UACE,kBACA,gFACA,kDAMF,mBADF,YACE,6BAGE,uCACE,2CAEE,oDADF,4BACE,YADF,KAEE,kEACE,yCACA,uDANN,iBACE,uBACA,CADA,+BACA,uEACE,kCACA,6BAEE,mBADA,0CACA,CAFF,uBACE,sBACA,0DALJ,wEACA,sEACE,YACA,yDACE,oDACA,6DANN,kCACE,kCACA,gBADA,UACA,yBACE,wDACA,cADA,UACA,qBACE,6CACA,yFALJ,sCACA,CAEE,gBACE,CAHJ,gBAGI,sBAHJ,uBACE,4DACA,4CACE,iDAJJ,2CACA,CADA,gBAEE,gBAGE,sBALJ,+BAII,iBAFF,gDACA,WACE,YADF,uCACE,6EACA,2BANN,8CACE,kDACA,0CACE,8BACA,yFACE,sBACA,sFALJ,mEACA,sBACE,kEACA,6EACE,uCACA,kEALJ,qGAEE,kEACA,6EACE,uCACA,kEALJ,8CACA,uDACE,sEACA,2EACE,sCACA,iEALJ,mGACA,qCACE,oDACA,0DACE,6GACA,gDAGR,yDCpEA,sEACE,CACA,6GACE,gEACF,iGAIF,wFACE,qDAGA,mGAEE,2CAEF,4FACE,gCACF,wGACE,8DAEE,6FAIA,iJAKN,6GACE,gDAKF,yDAGA,qCACA,6BAIA,kBACA,qDAIA,oCAGE,+DAIA,2CAKF,oDAIA,sCAEE,8BACJ,qBACE,wDAGA,uCAEA,kEAIF,8CAGE,uDAEE,oCAGJ,4BAEE,6BC9FA,gEAGE,+CCHJ,0EAGE,sDAKA,gEACE,qCACA,8BAEA,oCAGF,wBACE,4FCdF,gBAEA,yGAIE,kBAOJ,CAKE,2MAUE,oBAEF,wGASE,iCAEA,CAJF,wBAIE,8GAOF,mBAGA,2GAEE,mBAGF,6HAQF,YACE,mIAOA,eAEA,CAFA,YAEA,4FAEA,8BAEA,MAaA,sCAIA,CANE,oBAEF,CAXE,wCACE,CAHJ,8BAEE,CAFF,gBASA,+BACA,mBAOA,YACE,6EACA,eACA,aACA,eACA,mCACA,0CAEF,8BA7FwB,CA+FtB,qCACA,6CAGF,CAHE,eAGF,wCAGE,YACA,iBAEA,mCACE,0DAMF,qBACA,CAFF,kBAEE,+BAEA,4BACA,2EC/HF,8CACA,qDAKA,iCACA,kBAEA,2FACA,iCAEE,CAEE,eAEF,CAHA,kBACE,CAFF,wBAIA,8BAIE,gBAHA,YAGA,4DAEA,mBACE,qCAGJ,kBACA,gBAGJ,+CAEE,kDAEF,YAEE,CAFF,YAEE,CChCA,2FAGA,6CACE,eAGA,iEACE,CAGF,aACA,CAJE,uBAIF,mBAMA,6CAEF,CAJE,mBAEC,CAEH,kCAGE,CARF,kBACE,CAHA,eAUA,YACA,mBACA,CAFA,UAEA,wCC/BJ,mBACE,CDkCE,wBACA,sBCpCJ,iBACE,mDACA,2CACA,sBAGA,qBCDA,6CAIE,CAPF,uBAGA,CDGE,oBACF,yDAEE,CCDE,2CAGF,CAJA,kCACE,CDJJ,YACE,CAIA,eCTF,CDKE,uBCMA,gCACE,YAEF,oCAEE,wBACA,0BAIF,iBAEA,cADF,UACE,uBAEA,iCACF,YACE,4BACF,6CAOE,CAYF,gCATI,4BASJ,CAZE,mCAEE,iCAUJ,4BAGE,4DAFA,+BAEA,CAHF,qBAGE,sCACE,OAEF,iBAHA,SAGA,4KAMA,CANA,8EAMA,ySAEE,QAEF,2ICjEJ,WACE,yCAIA,WACA,yBAEA,uCAIA,uCAGA,CALE,iCAKF,uCAGE,eACA,iCClBJ,gBACE,KAGF,qBACE,YAGF,CAHE,cAGF,gCAEE,mBACA,iEAEA,oCACA,wCAEA,sBACA,WAEA,CAFA,YAEA,8EAEA,mCAFA,iBAEA,6BAIA,wEAKA,sDAIE,CARF,mDAIA,CAIE,cAEF,8CAIA,oBAFE,iBAEF,8CAGE,eAEF,CAFE,YAEF,OAEE,kBAGJ,CAJI,eACA,CAFF,mBAKF,yCCjDE,oBACA,CAFA,iBAEA,uCAKE,iBACA,qCAGA,mBCZJ,CDWI,gBCXJ,6BAEE,eACA,sBAGA,eAEA,sBACA,oDACA,iGAMA,gBAFE,YAEF,8FAME,iJClBF,YACA,gNAUE,6BAEF,oTAcI,kBACF,gHAIA,qBACE,eACF,qDACE,kBACF,6DACE,4BCxCJ,oBAEF,qCAEI,+CAGF,uBACE,uDAGJ,oBAkBE,mDAhBA,+CAaA,CAbA,oBAaA,0FAEE,CAFF,gGAbA,+BAaA,0BAGA,mQAIA,oNAEE,kCADA,gBACA,aAGJ,sDAHI,mBAGJ,yBAYI,+VACE,sDAGA,iBAHA,2BAGA,kWAGN,iDAEE,CALI,gGAGN,CAHM,gBAKJ,yCAGF,0EACE,2EAGF,iBACE,yDAOA,0EAGF,6EAEE,iBC/EA,wDACA,4DACA,qBAEA,oDCDA,6BACA,yBACA,sBAEA,iBAGF,sNAYE,iBAEA,kBAdF,wRA8BI,kBACA,iOAkBA,aACA,4DACE,uEAEA,uVAoBA,iDAKA,ieC1EJ,4BACA,CCFF,6JAEE,iDACA,sEAIA,mDAGA,iDAOF,4DAGE,8CAEA,CAEA,kBACA,CAHA,gCAEA,CACA,eADA,cACA,oBAEE,uBAFF,kCAEE,gCAEF,kBACE,CAIA,mDAEA,CAHA,uCACA,CALF,aACE,6BAEA,CAIA,gBAJA,mCACA,CADA,gBAIA,wBACA,6CAGF,YAHE,iBAGF,gCAGA,iEACA,6CAEA,qDACA,6EACA,2EACA,8GAEA,yCAGA,uBACA,CAFA,yBACA,CACA,yDAKA,kDACE,mFAKJ,oCACE,CANE,aAKJ,CACE,qEAIA,YAFA,WAEA,CAHA,aACA,CAEA,gBACE,4BACA,sBADA,aACA,gCAMF,oCACA,yDACA,2CAEA,qBAGE,kBAEA,CACA,mCAIF,CARE,YACA,CAOF,iCAEE,CAPA,oBACA,CAQA,oBACE,uDAEJ,sDAGA,CAHA,cAGA,0BACE,oDAIA,oCACA,4BACA,sBAGA,cAEA,oFAGA,sBAEA,yDACE,CAIA,iBAJA,wBAIA,6CAJA,6CAOA,4BAGJ,CAHI,cAGJ,yCAGA,kBACE,CAIA,iDAEA,CATA,YAEF,CACE,4CAGA,kBAKA,wEAIF,wDACE,kCAOA,kDAPA,UACA,CAKA,sCACA,CANA,2CAGA,CAGA,qCAKA,8BACE,CAZF,kBAGA,qCASE,iBAoBJ,sBAOA,CAvBE,sEAKF,CALE,wDAJE,qBAIF,CAaE,4CAGJ,CANA,gRAGI,YAUJ,iCAGA,+CACE,+CAMF,6EClNF,4BAKE,SAJA,qFAIA,kBACA,8BACA,uCACA,oCAIA,eAEF,uCACE,CAGA,kDAEA,CALA,0CAKA,kBAEA,mEAFA,YAEA,CAFA,SAEA,kBAGA,QACE,CADF,iBACE,qBACA,kDAEA,CAIA,6CAHE,oCAgBF,CAbA,yBAEA,qBACA,CACF,oBACE,CAGE,YAHF,2CAEA,uBACE,oFAKF,CANA,qBACE,UAKF,gCACA,sDAOJ,yCChDE,oCAGI,CD6CN,yXCnDE,gBAEF,sBAIE","sources":["webpack:///./node_modules/normalize.css/normalize.css","webpack:///./src/furo/assets/styles/base/_print.sass","webpack:///./src/furo/assets/styles/base/_screen-readers.sass","webpack:///./src/furo/assets/styles/base/_theme.sass","webpack:///./src/furo/assets/styles/variables/_fonts.scss","webpack:///./src/furo/assets/styles/variables/_spacing.scss","webpack:///./src/furo/assets/styles/variables/_icons.scss","webpack:///./src/furo/assets/styles/variables/_admonitions.scss","webpack:///./src/furo/assets/styles/variables/_colors.scss","webpack:///./src/furo/assets/styles/base/_typography.sass","webpack:///./src/furo/assets/styles/_scaffold.sass","webpack:///./src/furo/assets/styles/variables/_layout.scss","webpack:///./src/furo/assets/styles/content/_admonitions.sass","webpack:///./src/furo/assets/styles/content/_api.sass","webpack:///./src/furo/assets/styles/content/_blocks.sass","webpack:///./src/furo/assets/styles/content/_captions.sass","webpack:///./src/furo/assets/styles/content/_code.sass","webpack:///./src/furo/assets/styles/content/_footnotes.sass","webpack:///./src/furo/assets/styles/content/_images.sass","webpack:///./src/furo/assets/styles/content/_indexes.sass","webpack:///./src/furo/assets/styles/content/_lists.sass","webpack:///./src/furo/assets/styles/content/_math.sass","webpack:///./src/furo/assets/styles/content/_misc.sass","webpack:///./src/furo/assets/styles/content/_rubrics.sass","webpack:///./src/furo/assets/styles/content/_sidebar.sass","webpack:///./src/furo/assets/styles/content/_tables.sass","webpack:///./src/furo/assets/styles/content/_target.sass","webpack:///./src/furo/assets/styles/content/_gui-labels.sass","webpack:///./src/furo/assets/styles/components/_footer.sass","webpack:///./src/furo/assets/styles/components/_search.sass","webpack:///./src/furo/assets/styles/components/_sidebar.sass","webpack:///./src/furo/assets/styles/components/_table_of_contents.sass","webpack:///./src/furo/assets/styles/_shame.sass"],"sourcesContent":["/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput { /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n","// This file contains styles for managing print media.\n\n////////////////////////////////////////////////////////////////////////////////\n// Hide elements not relevant to print media.\n////////////////////////////////////////////////////////////////////////////////\n@media print\n // Hide icon container.\n .content-icon-container\n display: none !important\n\n // Hide showing header links if hovering over when printing.\n .headerlink\n display: none !important\n\n // Hide mobile header.\n .mobile-header\n display: none !important\n\n // Hide navigation links.\n .related-pages\n display: none !important\n\n////////////////////////////////////////////////////////////////////////////////\n// Tweaks related to decolorization.\n////////////////////////////////////////////////////////////////////////////////\n@media print\n // Apply a border around code which no longer have a color background.\n .highlight\n border: 0.1pt solid var(--color-foreground-border)\n",".visually-hidden\n position: absolute !important\n width: 1px !important\n height: 1px !important\n padding: 0 !important\n margin: -1px !important\n overflow: hidden !important\n clip: rect(0,0,0,0) !important\n white-space: nowrap !important\n border: 0 !important\n\n:-moz-focusring\n outline: auto\n","// This file serves as the \"skeleton\" of the theming logic.\n//\n// This contains the bulk of the logic for handling dark mode, color scheme\n// toggling and the handling of color-scheme-specific hiding of elements.\n\nbody\n @include fonts\n @include spacing\n @include icons\n @include admonitions\n @include default-admonition(#651fff, \"abstract\")\n @include default-topic(#14B8A6, \"pencil\")\n\n @include colors\n\n.only-light\n display: block !important\nhtml body .only-dark\n display: none !important\n\n// Ignore dark-mode hints if print media.\n@media not print\n // Enable dark-mode, if requested.\n body[data-theme=\"dark\"]\n @include colors-dark\n\n html & .only-light\n display: none !important\n .only-dark\n display: block !important\n\n // Enable dark mode, unless explicitly told to avoid.\n @media (prefers-color-scheme: dark)\n body:not([data-theme=\"light\"])\n @include colors-dark\n\n html & .only-light\n display: none !important\n .only-dark\n display: block !important\n\n//\n// Theme toggle presentation\n//\nbody[data-theme=\"auto\"]\n .theme-toggle svg.theme-icon-when-auto\n display: block\n\nbody[data-theme=\"dark\"]\n .theme-toggle svg.theme-icon-when-dark\n display: block\n\nbody[data-theme=\"light\"]\n .theme-toggle svg.theme-icon-when-light\n display: block\n","// Fonts used by this theme.\n//\n// There are basically two things here -- using the system font stack and\n// defining sizes for various elements in %ages. We could have also used `em`\n// but %age is easier to reason about for me.\n\n@mixin fonts {\n // These are adapted from https://systemfontstack.com/\n --font-stack: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial,\n sans-serif, Apple Color Emoji, Segoe UI Emoji;\n --font-stack--monospace: \"SFMono-Regular\", Menlo, Consolas, Monaco,\n Liberation Mono, Lucida Console, monospace;\n\n --font-size--normal: 100%;\n --font-size--small: 87.5%;\n --font-size--small--2: 81.25%;\n --font-size--small--3: 75%;\n --font-size--small--4: 62.5%;\n\n // Sidebar\n --sidebar-caption-font-size: var(--font-size--small--2);\n --sidebar-item-font-size: var(--font-size--small);\n --sidebar-search-input-font-size: var(--font-size--small);\n\n // Table of Contents\n --toc-font-size: var(--font-size--small--3);\n --toc-font-size--mobile: var(--font-size--normal);\n --toc-title-font-size: var(--font-size--small--4);\n\n // Admonitions\n //\n // These aren't defined in terms of %ages, since nesting these is permitted.\n --admonition-font-size: 0.8125rem;\n --admonition-title-font-size: 0.8125rem;\n\n // Code\n --code-font-size: var(--font-size--small--2);\n\n // API\n --api-font-size: var(--font-size--small);\n}\n","// Spacing for various elements on the page\n//\n// If the user wants to tweak things in a certain way, they are permitted to.\n// They also have to deal with the consequences though!\n\n@mixin spacing {\n // Header!\n --header-height: calc(\n var(--sidebar-item-line-height) + 4 * #{var(--sidebar-item-spacing-vertical)}\n );\n --header-padding: 0.5rem;\n\n // Sidebar\n --sidebar-tree-space-above: 1.5rem;\n --sidebar-caption-space-above: 1rem;\n\n --sidebar-item-line-height: 1rem;\n --sidebar-item-spacing-vertical: 0.5rem;\n --sidebar-item-spacing-horizontal: 1rem;\n --sidebar-item-height: calc(\n var(--sidebar-item-line-height) + 2 *#{var(--sidebar-item-spacing-vertical)}\n );\n\n --sidebar-expander-width: var(--sidebar-item-height); // be square\n\n --sidebar-search-space-above: 0.5rem;\n --sidebar-search-input-spacing-vertical: 0.5rem;\n --sidebar-search-input-spacing-horizontal: 0.5rem;\n --sidebar-search-input-height: 1rem;\n --sidebar-search-icon-size: var(--sidebar-search-input-height);\n\n // Table of Contents\n --toc-title-padding: 0.25rem 0;\n --toc-spacing-vertical: 1.5rem;\n --toc-spacing-horizontal: 1.5rem;\n --toc-item-spacing-vertical: 0.4rem;\n --toc-item-spacing-horizontal: 1rem;\n}\n","// Expose theme icons as CSS variables.\n\n$icons: (\n // Adapted from tabler-icons\n // url: https://tablericons.com/\n \"search\":\n url('data:image/svg+xml;charset=utf-8,'),\n // Factored out from mkdocs-material on 24-Aug-2020.\n // url: https://squidfunk.github.io/mkdocs-material/reference/admonitions/\n \"pencil\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"abstract\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"info\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"flame\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"question\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"warning\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"failure\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"spark\":\n url('data:image/svg+xml;charset=utf-8,')\n);\n\n@mixin icons {\n @each $name, $glyph in $icons {\n --icon-#{$name}: #{$glyph};\n }\n}\n","// Admonitions\n\n// Structure of these is:\n// admonition-class: color \"icon-name\";\n//\n// The colors are translated into CSS variables below. The icons are\n// used directly in the main declarations to set the `mask-image` in\n// the title.\n\n// prettier-ignore\n$admonitions: (\n // Each of these has an reST directives for it.\n \"caution\": #ff9100 \"spark\",\n \"warning\": #ff9100 \"warning\",\n \"danger\": #ff5252 \"spark\",\n \"attention\": #ff5252 \"warning\",\n \"error\": #ff5252 \"failure\",\n \"hint\": #00c852 \"question\",\n \"tip\": #00c852 \"info\",\n \"important\": #00bfa5 \"flame\",\n \"note\": #00b0ff \"pencil\",\n \"seealso\": #448aff \"info\",\n \"admonition-todo\": #808080 \"pencil\"\n);\n\n@mixin default-admonition($color, $icon-name) {\n --color-admonition-title: #{$color};\n --color-admonition-title-background: #{rgba($color, 0.1)};\n\n --icon-admonition-default: var(--icon-#{$icon-name});\n}\n\n@mixin default-topic($color, $icon-name) {\n --color-topic-title: #{$color};\n --color-topic-title-background: #{rgba($color, 0.1)};\n\n --icon-topic-default: var(--icon-#{$icon-name});\n}\n\n@mixin admonitions {\n @each $name, $values in $admonitions {\n --color-admonition-title--#{$name}: #{nth($values, 1)};\n --color-admonition-title-background--#{$name}: #{rgba(\n nth($values, 1),\n 0.1\n )};\n }\n}\n","// Colors used throughout this theme.\n//\n// The aim is to give the user more control. Thus, instead of hard-coding colors\n// in various parts of the stylesheet, the approach taken is to define all\n// colors as CSS variables and reusing them in all the places.\n//\n// `colors-dark` depends on `colors` being included at a lower specificity.\n\n@mixin colors {\n --color-problematic: #b30000;\n\n // Base Colors\n --color-foreground-primary: black; // for main text and headings\n --color-foreground-secondary: #5a5c63; // for secondary text\n --color-foreground-muted: #646776; // for muted text\n --color-foreground-border: #878787; // for content borders\n\n --color-background-primary: white; // for content\n --color-background-secondary: #f8f9fb; // for navigation + ToC\n --color-background-hover: #efeff4ff; // for navigation-item hover\n --color-background-hover--transparent: #efeff400;\n --color-background-border: #eeebee; // for UI borders\n --color-background-item: #ccc; // for \"background\" items (eg: copybutton)\n\n // Announcements\n --color-announcement-background: #000000dd;\n --color-announcement-text: #eeebee;\n\n // Brand colors\n --color-brand-primary: #2962ff;\n --color-brand-content: #2a5adf;\n\n // API documentation\n --color-api-background: var(--color-background-secondary);\n --color-api-background-hover: var(--color-background-hover);\n --color-api-overall: var(--color-foreground-secondary);\n --color-api-name: var(--color-problematic);\n --color-api-pre-name: var(--color-problematic);\n --color-api-paren: var(--color-foreground-secondary);\n --color-api-keyword: var(--color-foreground-primary);\n --color-highlight-on-target: #ffffcc;\n\n // Inline code background\n --color-inline-code-background: var(--color-background-secondary);\n\n // Highlighted text (search)\n --color-highlighted-background: #ddeeff;\n --color-highlighted-text: var(--color-foreground-primary);\n\n // GUI Labels\n --color-guilabel-background: #ddeeff80;\n --color-guilabel-border: #bedaf580;\n --color-guilabel-text: var(--color-foreground-primary);\n\n // Admonitions!\n --color-admonition-background: transparent;\n\n //////////////////////////////////////////////////////////////////////////////\n // Everything below this should be one of:\n // - var(...)\n // - *-gradient(...)\n // - special literal values (eg: transparent, none)\n //////////////////////////////////////////////////////////////////////////////\n\n // Tables\n --color-table-header-background: var(--color-background-secondary);\n --color-table-border: var(--color-background-border);\n\n // Cards\n --color-card-border: var(--color-background-secondary);\n --color-card-background: transparent;\n --color-card-marginals-background: var(--color-background-secondary);\n\n // Header\n --color-header-background: var(--color-background-primary);\n --color-header-border: var(--color-background-border);\n --color-header-text: var(--color-foreground-primary);\n\n // Sidebar (left)\n --color-sidebar-background: var(--color-background-secondary);\n --color-sidebar-background-border: var(--color-background-border);\n\n --color-sidebar-brand-text: var(--color-foreground-primary);\n --color-sidebar-caption-text: var(--color-foreground-muted);\n --color-sidebar-link-text: var(--color-foreground-secondary);\n --color-sidebar-link-text--top-level: var(--color-brand-primary);\n\n --color-sidebar-item-background: var(--color-sidebar-background);\n --color-sidebar-item-background--current: var(\n --color-sidebar-item-background\n );\n --color-sidebar-item-background--hover: linear-gradient(\n 90deg,\n var(--color-background-hover--transparent) 0%,\n var(--color-background-hover) var(--sidebar-item-spacing-horizontal),\n var(--color-background-hover) 100%\n );\n\n --color-sidebar-item-expander-background: transparent;\n --color-sidebar-item-expander-background--hover: var(\n --color-background-hover\n );\n\n --color-sidebar-search-text: var(--color-foreground-primary);\n --color-sidebar-search-background: var(--color-background-secondary);\n --color-sidebar-search-background--focus: var(--color-background-primary);\n --color-sidebar-search-border: var(--color-background-border);\n --color-sidebar-search-icon: var(--color-foreground-muted);\n\n // Table of Contents (right)\n --color-toc-background: var(--color-background-primary);\n --color-toc-title-text: var(--color-foreground-muted);\n --color-toc-item-text: var(--color-foreground-secondary);\n --color-toc-item-text--hover: var(--color-foreground-primary);\n --color-toc-item-text--active: var(--color-brand-primary);\n\n // Actual page contents\n --color-content-foreground: var(--color-foreground-primary);\n --color-content-background: transparent;\n\n // Links\n --color-link: var(--color-brand-content);\n --color-link--hover: var(--color-brand-content);\n --color-link-underline: var(--color-background-border);\n --color-link-underline--hover: var(--color-foreground-border);\n}\n\n@mixin colors-dark {\n --color-problematic: #ee5151;\n\n // Base Colors\n --color-foreground-primary: #ffffffcc; // for main text and headings\n --color-foreground-secondary: #9ca0a5; // for secondary text\n --color-foreground-muted: #81868d; // for muted text\n --color-foreground-border: #666666; // for content borders\n\n --color-background-primary: #131416; // for content\n --color-background-secondary: #1a1c1e; // for navigation + ToC\n --color-background-hover: #1e2124ff; // for navigation-item hover\n --color-background-hover--transparent: #1e212400;\n --color-background-border: #303335; // for UI borders\n --color-background-item: #444; // for \"background\" items (eg: copybutton)\n\n // Announcements\n --color-announcement-background: #000000dd;\n --color-announcement-text: #eeebee;\n\n // Brand colors\n --color-brand-primary: #2b8cee;\n --color-brand-content: #368ce2;\n\n // Highlighted text (search)\n --color-highlighted-background: #083563;\n\n // GUI Labels\n --color-guilabel-background: #08356380;\n --color-guilabel-border: #13395f80;\n\n // API documentation\n --color-api-keyword: var(--color-foreground-secondary);\n --color-highlight-on-target: #333300;\n\n // Admonitions\n --color-admonition-background: #18181a;\n\n // Cards\n --color-card-border: var(--color-background-secondary);\n --color-card-background: #18181a;\n --color-card-marginals-background: var(--color-background-hover);\n}\n","// This file contains the styling for making the content throughout the page,\n// including fonts, paragraphs, headings and spacing among these elements.\n\nbody\n font-family: var(--font-stack)\npre,\ncode,\nkbd,\nsamp\n font-family: var(--font-stack--monospace)\n\n// Make fonts look slightly nicer.\nbody\n -webkit-font-smoothing: antialiased\n -moz-osx-font-smoothing: grayscale\n\n// Line height from Bootstrap 4.1\narticle\n line-height: 1.5\n\n//\n// Headings\n//\nh1,\nh2,\nh3,\nh4,\nh5,\nh6\n line-height: 1.25\n font-weight: bold\n\n border-radius: 0.5rem\n margin-top: 0.5rem\n margin-bottom: 0.5rem\n margin-left: -0.5rem\n margin-right: -0.5rem\n padding-left: 0.5rem\n padding-right: 0.5rem\n\n + p\n margin-top: 0\n\nh1\n font-size: 2.5em\n margin-top: 1.75rem\n margin-bottom: 1rem\nh2\n font-size: 2em\n margin-top: 1.75rem\nh3\n font-size: 1.5em\nh4\n font-size: 1.25em\nh5\n font-size: 1.125em\nh6\n font-size: 1em\n\nsmall\n opacity: 75%\n font-size: 80%\n\n// Paragraph\np\n margin-top: 0.5rem\n margin-bottom: 0.75rem\n\n// Horizontal rules\nhr.docutils\n height: 1px\n padding: 0\n margin: 2rem 0\n background-color: var(--color-background-border)\n border: 0\n\n.centered\n text-align: center\n\n// Links\na\n text-decoration: underline\n\n color: var(--color-link)\n text-decoration-color: var(--color-link-underline)\n\n &:hover\n color: var(--color-link--hover)\n text-decoration-color: var(--color-link-underline--hover)\n &.muted-link\n color: inherit\n &:hover\n color: var(--color-link)\n text-decoration-color: var(--color-link-underline--hover)\n","// This file contains the styles for the overall layouting of the documentation\n// skeleton, including the responsive changes as well as sidebar toggles.\n//\n// This is implemented as a mobile-last design, which isn't ideal, but it is\n// reasonably good-enough and I got pretty tired by the time I'd finished this\n// to move the rules around to fix this. Shouldn't take more than 3-4 hours,\n// if you know what you're doing tho.\n\n// HACK: Not all browsers account for the scrollbar width in media queries.\n// This results in horizontal scrollbars in the breakpoint where we go\n// from displaying everything to hiding the ToC. We accomodate for this by\n// adding a bit of padding to the TOC drawer, disabling the horizontal\n// scrollbar and allowing the scrollbars to cover the padding.\n// https://www.456bereastreet.com/archive/201301/media_query_width_and_vertical_scrollbars/\n\n// HACK: Always having the scrollbar visible, prevents certain browsers from\n// causing the content to stutter horizontally between taller-than-viewport and\n// not-taller-than-viewport pages.\n\nhtml\n overflow-x: hidden\n overflow-y: scroll\n scroll-behavior: smooth\n\n.sidebar-scroll, .toc-scroll, article[role=main] *\n // Override Firefox scrollbar style\n scrollbar-width: thin\n scrollbar-color: var(--color-foreground-border) transparent\n\n // Override Chrome scrollbar styles\n &::-webkit-scrollbar\n width: 0.25rem\n height: 0.25rem\n &::-webkit-scrollbar-thumb\n background-color: var(--color-foreground-border)\n border-radius: 0.125rem\n\n//\n// Overalls\n//\nhtml,\nbody\n height: 100%\n color: var(--color-foreground-primary)\n background: var(--color-background-primary)\n\narticle\n color: var(--color-content-foreground)\n background: var(--color-content-background)\n\n.page\n display: flex\n // fill the viewport for pages with little content.\n min-height: 100%\n\n.mobile-header\n width: 100%\n height: var(--header-height)\n background-color: var(--color-header-background)\n color: var(--color-header-text)\n border-bottom: 1px solid var(--color-header-border)\n\n // Looks like sub-script/super-script have this, and we need this to\n // be \"on top\" of those.\n z-index: 10\n\n // We don't show the header on large screens.\n display: none\n\n // Add shadow when scrolled\n &.scrolled\n border-bottom: none\n box-shadow: 0 0 0.2rem rgba(0, 0, 0, 0.1), 0 0.2rem 0.4rem rgba(0, 0, 0, 0.2)\n\n .header-center\n a\n color: var(--color-header-text)\n text-decoration: none\n\n.main\n display: flex\n flex: 1\n\n// Sidebar (left) also covers the entire left portion of screen.\n.sidebar-drawer\n box-sizing: border-box\n\n border-right: 1px solid var(--color-sidebar-background-border)\n background: var(--color-sidebar-background)\n\n display: flex\n justify-content: flex-end\n // These next two lines took me two days to figure out.\n width: calc((100% - #{$full-width}) / 2 + #{$sidebar-width})\n min-width: $sidebar-width\n\n// Scroll-along sidebars\n.sidebar-container,\n.toc-drawer\n box-sizing: border-box\n width: $sidebar-width\n\n.toc-drawer\n background: var(--color-toc-background)\n // See HACK described on top of this document\n padding-right: 1rem\n\n.sidebar-sticky,\n.toc-sticky\n position: sticky\n top: 0\n height: min(100%, 100vh)\n height: 100vh\n\n display: flex\n flex-direction: column\n\n.sidebar-scroll,\n.toc-scroll\n flex-grow: 1\n flex-shrink: 1\n\n overflow: auto\n scroll-behavior: smooth\n\n// Central items.\n.content\n padding: 0 $content-padding\n width: $content-width\n\n display: flex\n flex-direction: column\n justify-content: space-between\n\n.icon\n display: inline-block\n height: 1rem\n width: 1rem\n svg\n width: 100%\n height: 100%\n\n//\n// Accommodate announcement banner\n//\n.announcement\n background-color: var(--color-announcement-background)\n color: var(--color-announcement-text)\n\n height: var(--header-height)\n display: flex\n align-items: center\n overflow-x: auto\n & + .page\n min-height: calc(100% - var(--header-height))\n\n.announcement-content\n box-sizing: border-box\n padding: 0.5rem\n min-width: 100%\n white-space: nowrap\n text-align: center\n\n a\n color: var(--color-announcement-text)\n text-decoration-color: var(--color-announcement-text)\n\n &:hover\n color: var(--color-announcement-text)\n text-decoration-color: var(--color-link--hover)\n\n////////////////////////////////////////////////////////////////////////////////\n// Toggles for theme\n////////////////////////////////////////////////////////////////////////////////\n.no-js .theme-toggle-container // don't show theme toggle if there's no JS\n display: none\n\n.theme-toggle-container\n vertical-align: middle\n\n.theme-toggle\n cursor: pointer\n border: none\n padding: 0\n background: transparent\n\n.theme-toggle svg\n vertical-align: middle\n height: 1rem\n width: 1rem\n color: var(--color-foreground-primary)\n display: none\n\n.theme-toggle-header\n float: left\n padding: 1rem 0.5rem\n\n////////////////////////////////////////////////////////////////////////////////\n// Toggles for elements\n////////////////////////////////////////////////////////////////////////////////\n.toc-overlay-icon, .nav-overlay-icon\n display: none\n cursor: pointer\n\n .icon\n color: var(--color-foreground-secondary)\n height: 1rem\n width: 1rem\n\n.toc-header-icon, .nav-overlay-icon\n // for when we set display: flex\n justify-content: center\n align-items: center\n\n.toc-content-icon\n height: 1.5rem\n width: 1.5rem\n\n.content-icon-container\n float: right\n display: flex\n margin-top: 1.5rem\n margin-left: 1rem\n margin-bottom: 1rem\n gap: 0.5rem\n\n .edit-this-page svg\n color: inherit\n height: 1rem\n width: 1rem\n\n.sidebar-toggle\n position: absolute\n display: none\n// \n.sidebar-toggle[name=\"__toc\"]\n left: 20px\n.sidebar-toggle:checked\n left: 40px\n// \n\n.overlay\n position: fixed\n top: 0\n width: 0\n height: 0\n\n transition: width 0ms, height 0ms, opacity 250ms ease-out\n\n opacity: 0\n background-color: rgba(0, 0, 0, 0.54)\n.sidebar-overlay\n z-index: 20\n.toc-overlay\n z-index: 40\n\n// Keep things on top and smooth.\n.sidebar-drawer\n z-index: 30\n transition: left 250ms ease-in-out\n.toc-drawer\n z-index: 50\n transition: right 250ms ease-in-out\n\n// Show the Sidebar\n#__navigation:checked\n & ~ .sidebar-overlay\n width: 100%\n height: 100%\n opacity: 1\n & ~ .page\n .sidebar-drawer\n top: 0\n left: 0\n // Show the toc sidebar\n#__toc:checked\n & ~ .toc-overlay\n width: 100%\n height: 100%\n opacity: 1\n & ~ .page\n .toc-drawer\n top: 0\n right: 0\n\n////////////////////////////////////////////////////////////////////////////////\n// Back to top\n////////////////////////////////////////////////////////////////////////////////\n.back-to-top\n text-decoration: none\n\n display: none\n position: fixed\n left: 0\n top: 1rem\n padding: 0.5rem\n padding-right: 0.75rem\n border-radius: 1rem\n font-size: 0.8125rem\n\n background: var(--color-background-primary)\n box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), #6b728080 0px 0px 1px 0px\n\n z-index: 10\n\n margin-left: 50%\n transform: translateX(-50%)\n svg\n height: 1rem\n width: 1rem\n fill: currentColor\n display: inline-block\n\n span\n margin-left: 0.25rem\n\n .show-back-to-top &\n display: flex\n align-items: center\n\n////////////////////////////////////////////////////////////////////////////////\n// Responsive layouting\n////////////////////////////////////////////////////////////////////////////////\n// Make things a bit bigger on bigger screens.\n@media (min-width: $full-width + $sidebar-width)\n html\n font-size: 110%\n\n@media (max-width: $full-width)\n // Collapse \"toc\" into the icon.\n .toc-content-icon\n display: flex\n .toc-drawer\n position: fixed\n height: 100vh\n top: 0\n right: -$sidebar-width\n border-left: 1px solid var(--color-background-muted)\n .toc-tree\n border-left: none\n font-size: var(--toc-font-size--mobile)\n\n // Accomodate for a changed content width.\n .sidebar-drawer\n width: calc((100% - #{$full-width - $sidebar-width}) / 2 + #{$sidebar-width})\n\n@media (max-width: $full-width - $sidebar-width)\n // Collapse \"navigation\".\n .nav-overlay-icon\n display: flex\n .sidebar-drawer\n position: fixed\n height: 100vh\n width: $sidebar-width\n\n top: 0\n left: -$sidebar-width\n\n // Swap which icon is visible.\n .toc-header-icon\n display: flex\n .toc-content-icon, .theme-toggle-content\n display: none\n .theme-toggle-header\n display: block\n\n // Show the header.\n .mobile-header\n position: sticky\n top: 0\n display: flex\n justify-content: space-between\n align-items: center\n\n .header-left,\n .header-right\n display: flex\n height: var(--header-height)\n padding: 0 var(--header-padding)\n label\n height: 100%\n width: 100%\n\n // Add a scroll margin for the content\n :target\n scroll-margin-top: var(--header-height)\n\n // Show back-to-top below the header\n .back-to-top\n top: calc(var(--header-height) + 0.5rem)\n\n // Center the page, and accommodate for the header.\n .page\n flex-direction: column\n justify-content: center\n .content\n margin-left: auto\n margin-right: auto\n\n@media (max-width: $content-width + 2* $content-padding)\n // Content should respect window limits.\n .content\n width: 100%\n overflow-x: auto\n\n@media (max-width: $content-width)\n .content\n padding: 0 $content-padding--small\n // Don't float sidebars to the right.\n article aside.sidebar\n float: none\n width: 100%\n margin: 1rem 0\n","// Overall Layout Variables\n//\n// Because CSS variables can't be used in media queries. The fact that this\n// makes the layout non-user-configurable is a good thing.\n$content-padding: 3em;\n$content-padding--small: 1em;\n$content-width: 46em;\n$sidebar-width: 15em;\n$full-width: $content-width + 2 * ($content-padding + $sidebar-width);\n","//\n// The design here is strongly inspired by mkdocs-material.\n.admonition, .topic\n margin: 1rem auto\n padding: 0 0.5rem 0.5rem 0.5rem\n\n background: var(--color-admonition-background)\n\n border-radius: 0.2rem\n box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), 0 0 0.0625rem rgba(0, 0, 0, 0.1)\n\n font-size: var(--admonition-font-size)\n\n overflow: hidden\n page-break-inside: avoid\n\n // First element should have no margin, since the title has it.\n > :nth-child(2)\n margin-top: 0\n\n // Last item should have no margin, since we'll control that w/ padding\n > :last-child\n margin-bottom: 0\n\np.admonition-title, p.topic-title\n position: relative\n margin: 0 -0.5rem 0.5rem\n padding-left: 2rem\n padding-right: .5rem\n padding-top: .4rem\n padding-bottom: .4rem\n\n font-weight: 500\n font-size: var(--admonition-title-font-size)\n line-height: 1.3\n\n // Our fancy icon\n &::before\n content: \"\"\n position: absolute\n left: 0.5rem\n width: 1rem\n height: 1rem\n\n// Default styles\np.admonition-title\n background-color: var(--color-admonition-title-background)\n &::before\n background-color: var(--color-admonition-title)\n mask-image: var(--icon-admonition-default)\n mask-repeat: no-repeat\n\np.topic-title\n background-color: var(--color-topic-title-background)\n &::before\n background-color: var(--color-topic-title)\n mask-image: var(--icon-topic-default)\n mask-repeat: no-repeat\n\n//\n// Variants\n//\n.admonition\n border-left: 0.2rem solid var(--color-admonition-title)\n\n @each $type, $value in $admonitions\n &.#{$type}\n border-left-color: var(--color-admonition-title--#{$type})\n > .admonition-title\n background-color: var(--color-admonition-title-background--#{$type})\n &::before\n background-color: var(--color-admonition-title--#{$type})\n mask-image: var(--icon-#{nth($value, 2)})\n\n.admonition-todo > .admonition-title\n text-transform: uppercase\n","// This file stylizes the API documentation (stuff generated by autodoc). It's\n// deeply nested due to how autodoc structures the HTML without enough classes\n// to select the relevant items.\n\n// API docs!\ndl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple)\n // Tweak the spacing of all the things!\n dd\n margin-left: 2rem\n > :first-child\n margin-top: 0.125rem\n > :last-child\n margin-bottom: 0.75rem\n\n // This is used for the arguments\n .field-list\n margin-bottom: 0.75rem\n\n // \"Headings\" (like \"Parameters\" and \"Return\")\n > dt\n text-transform: uppercase\n font-size: var(--font-size--small)\n\n dd:empty\n margin-bottom: 0.5rem\n dd > ul\n margin-left: -1.2rem\n > li\n > p:nth-child(2)\n margin-top: 0\n // When the last-empty-paragraph follows a paragraph, it doesn't need\n // to augument the existing spacing.\n > p + p:last-child:empty\n margin-top: 0\n margin-bottom: 0\n\n // Colorize the elements\n > dt\n color: var(--color-api-overall)\n\n.sig\n font-weight: bold\n\n font-size: var(--api-font-size)\n font-family: var(--font-stack--monospace)\n\n padding-top: 0.25rem\n padding-bottom: 0.25rem\n padding-right: 0.5rem\n\n // These are intentionally em, to properly match the font size.\n padding-left: 3em\n text-indent: -2.5em\n\n border-radius: 0.25rem\n\n background: var(--color-api-background)\n\n &:hover\n background: var(--color-api-background-hover)\n\n // adjust the size of the [source] link on the right.\n a.reference\n .viewcode-link\n font-weight: normal\n width: 3.5rem\n\n // Break words when they're too long\n span.pre\n overflow-wrap: anywhere\n\nem.property\n font-style: normal\n &:first-child\n color: var(--color-api-keyword)\n.sig-name\n color: var(--color-api-name)\n.sig-prename\n font-weight: normal\n color: var(--color-api-pre-name)\n.sig-paren\n color: var(--color-api-paren)\n.sig-param\n font-style: normal\n\n.versionmodified\n font-style: italic\ndiv.versionadded, div.versionchanged, div.deprecated\n p\n margin-top: 0.125rem\n margin-bottom: 0.125rem\n\n// Align the [docs] and [source] to the right.\n.viewcode-link, .viewcode-back\n float: right\n text-align: right\n",".line-block\n margin-top: 0.5rem\n margin-bottom: 0.75rem\n .line-block\n margin-top: 0rem\n margin-bottom: 0rem\n padding-left: 1rem\n","// Captions\narticle p.caption,\ntable > caption,\n.code-block-caption\n font-size: var(--font-size--small)\n text-align: center\n\n// Caption above a TOCTree\n.toctree-wrapper.compound\n .caption, :not(.caption) > .caption-text\n font-size: var(--font-size--small)\n text-transform: uppercase\n\n text-align: initial\n margin-bottom: 0\n\n > ul\n margin-top: 0\n margin-bottom: 0\n","// Inline code\ncode.literal\n background: var(--color-inline-code-background)\n border-radius: 0.2em\n // Make the font smaller, and use padding to recover.\n font-size: var(--font-size--small--2)\n padding: 0.1em 0.2em\n\n p &\n border: 1px solid var(--color-background-border)\n\n// Code and Literal Blocks\n$code-spacing-vertical: 0.625rem\n$code-spacing-horizontal: 0.875rem\n\n// Wraps every literal block + line numbers.\ndiv[class*=\" highlight-\"],\ndiv[class^=\"highlight-\"]\n margin: 1em 0\n display: flex\n\n .table-wrapper\n margin: 0\n padding: 0\n\npre\n margin: 0\n padding: 0\n\n // Needed to have more specificity than pygments' \"pre\" selector. :(\n article[role=\"main\"] .highlight &\n line-height: 1.5\n\n &.literal-block,\n .highlight &\n font-size: var(--code-font-size)\n padding: $code-spacing-vertical $code-spacing-horizontal\n overflow: auto\n\n // Make it look like all the other blocks.\n &.literal-block\n margin-top: 1rem\n margin-bottom: 1rem\n\n border-radius: 0.2rem\n background-color: var(--color-code-background)\n color: var(--color-code-foreground)\n\n// All code is always contained in this.\n.highlight\n width: 100%\n border-radius: 0.2rem\n\n // Make line numbers and prompts un-selectable.\n .gp, span.linenos\n user-select: none\n pointer-events: none\n\n // Expand the line-highlighting.\n .hll\n display: block\n margin-left: -$code-spacing-horizontal\n margin-right: -$code-spacing-horizontal\n padding-left: $code-spacing-horizontal\n padding-right: $code-spacing-horizontal\n\n/* Make code block captions be nicely integrated */\n.code-block-caption\n display: flex\n padding: $code-spacing-vertical $code-spacing-horizontal\n\n border-radius: 0.25rem\n border-bottom-left-radius: 0\n border-bottom-right-radius: 0\n font-weight: 300\n border-bottom: 1px solid\n\n background-color: var(--color-code-background)\n color: var(--color-code-foreground)\n border-color: var(--color-background-border)\n\n + div[class]\n margin-top: 0\n pre\n border-top-left-radius: 0\n border-top-right-radius: 0\n\n// When `html_codeblock_linenos_style` is table.\n.highlighttable\n width: 100%\n display: block\n tbody\n display: block\n\n tr\n display: flex\n\n // Line numbers\n td.linenos\n background-color: var(--color-code-background)\n color: var(--color-code-foreground)\n padding: $code-spacing-vertical $code-spacing-horizontal\n padding-right: 0\n border-top-left-radius: 0.2rem\n border-bottom-left-radius: 0.2rem\n\n .linenodiv\n padding-right: $code-spacing-horizontal\n font-size: var(--code-font-size)\n box-shadow: -0.0625rem 0 var(--color-foreground-border) inset\n\n // Actual code\n td.code\n padding: 0\n display: block\n flex: 1\n overflow: hidden\n\n .highlight\n border-top-left-radius: 0\n border-bottom-left-radius: 0\n\n// When `html_codeblock_linenos_style` is inline.\n.highlight\n span.linenos\n display: inline-block\n padding-left: 0\n padding-right: $code-spacing-horizontal\n margin-right: $code-spacing-horizontal\n box-shadow: -0.0625rem 0 var(--color-foreground-border) inset\n","// Inline Footnote Reference\n.footnote-reference\n font-size: var(--font-size--small--4)\n vertical-align: super\n\n// Definition list, listing the content of each note.\n// docutils <= 0.17\ndl.footnote.brackets\n font-size: var(--font-size--small)\n color: var(--color-foreground-secondary)\n\n display: grid\n grid-template-columns: max-content auto\n dt\n margin: 0\n > .fn-backref\n margin-left: 0.25rem\n\n &:after\n content: \":\"\n\n .brackets\n &:before\n content: \"[\"\n &:after\n content: \"]\"\n\n dd\n margin: 0\n padding: 0 1rem\n\n// docutils >= 0.18\naside.footnote\n font-size: var(--font-size--small)\n color: var(--color-foreground-secondary)\n\naside.footnote > span,\ndiv.citation > span\n font-weight: 500\n\naside.footnote > p,\ndiv.citation > p\n margin-left: 2rem\n","//\n// Figures\n//\nimg\n box-sizing: border-box\n max-width: 100%\n height: auto\n\narticle\n figure, .figure\n border-radius: 0.2rem\n\n margin: 0\n :last-child\n margin-bottom: 0\n\n .align-left\n float: left\n clear: left\n margin: 0 1rem 1rem\n\n .align-right\n float: right\n clear: right\n margin: 0 1rem 1rem\n\n .align-default,\n .align-center\n display: block\n text-align: center\n margin-left: auto\n margin-right: auto\n\n // WELL, table needs to be stylised like a table.\n table.align-default\n display: table\n text-align: initial\n",".genindex-jumpbox, .domainindex-jumpbox\n border-top: 1px solid var(--color-background-border)\n border-bottom: 1px solid var(--color-background-border)\n padding: 0.25rem\n\n.genindex-section, .domainindex-section\n h2\n margin-top: 0.75rem\n margin-bottom: 0.5rem\n ul\n margin-top: 0\n margin-bottom: 0\n","ul,\nol\n padding-left: 1.2rem\n\n // Space lists out like paragraphs\n margin-top: 1rem\n margin-bottom: 1rem\n // reduce margins within li.\n li\n > p:first-child\n margin-top: 0.25rem\n margin-bottom: 0.25rem\n\n > p:last-child\n margin-top: 0.25rem\n\n > ul,\n > ol\n margin-top: 0.5rem\n margin-bottom: 0.5rem\n\nol\n &.arabic\n list-style: decimal\n &.loweralpha\n list-style: lower-alpha\n &.upperalpha\n list-style: upper-alpha\n &.lowerroman\n list-style: lower-roman\n &.upperroman\n list-style: upper-roman\n\n// Don't space lists out when they're \"simple\" or in a `.. toctree::`\n.simple,\n.toctree-wrapper\n li\n > ul,\n > ol\n margin-top: 0\n margin-bottom: 0\n\n// Definition Lists\n.field-list,\n.option-list,\ndl:not([class]),\ndl.simple,\ndl.footnote,\ndl.glossary\n dt\n font-weight: 500\n margin-top: 0.25rem\n + dt\n margin-top: 0\n\n .classifier::before\n content: \":\"\n margin-left: 0.2rem\n margin-right: 0.2rem\n\n dd\n > p:first-child,\n ul\n margin-top: 0.125rem\n\n ul\n margin-bottom: 0.125rem\n",".math-wrapper\n width: 100%\n overflow-x: auto\n\ndiv.math\n position: relative\n text-align: center\n\n .headerlink,\n &:focus .headerlink\n display: none\n\n &:hover .headerlink\n display: inline-block\n\n span.eqno\n position: absolute\n right: 0.5rem\n top: 50%\n transform: translate(0, -50%)\n z-index: 1\n","// Abbreviations\nabbr[title]\n cursor: help\n\n// \"Problematic\" content, as identified by Sphinx\n.problematic\n color: var(--color-problematic)\n\n// Keyboard / Mouse \"instructions\"\nkbd:not(.compound)\n margin: 0 0.2rem\n padding: 0 0.2rem\n border-radius: 0.2rem\n border: 1px solid var(--color-foreground-border)\n color: var(--color-foreground-primary)\n vertical-align: text-bottom\n\n font-size: var(--font-size--small--3)\n display: inline-block\n\n box-shadow: 0 0.0625rem 0 rgba(0, 0, 0, 0.2), inset 0 0 0 0.125rem var(--color-background-primary)\n\n background-color: var(--color-background-secondary)\n\n// Blockquote\nblockquote\n border-left: 4px solid var(--color-background-border)\n background: var(--color-background-secondary)\n\n margin-left: 0\n margin-right: 0\n padding: 0.5rem 1rem\n\n .attribution\n font-weight: 600\n text-align: right\n\n &.pull-quote,\n &.highlights\n font-size: 1.25em\n\n &.epigraph,\n &.pull-quote\n border-left-width: 0\n border-radius: 0.5rem\n\n &.highlights\n border-left-width: 0\n background: transparent\n\n// Center align embedded-in-text images\np .reference img\n vertical-align: middle\n","p.rubric\n line-height: 1.25\n font-weight: bold\n font-size: 1.125em\n\n // For Numpy-style documentation that's got rubrics within it.\n // https://github.com/pradyunsg/furo/discussions/505\n dd &\n line-height: inherit\n font-weight: inherit\n\n font-size: var(--font-size--small)\n text-transform: uppercase\n","article .sidebar\n float: right\n clear: right\n width: 30%\n\n margin-left: 1rem\n margin-right: 0\n\n border-radius: 0.2rem\n background-color: var(--color-background-secondary)\n border: var(--color-background-border) 1px solid\n\n > *\n padding-left: 1rem\n padding-right: 1rem\n\n > ul, > ol // lists need additional padding, because bullets.\n padding-left: 2.2rem\n\n .sidebar-title\n margin: 0\n padding: 0.5rem 1rem\n border-bottom: var(--color-background-border) 1px solid\n\n font-weight: 500\n\n// TODO: subtitle\n// TODO: dedicated variables?\n",".table-wrapper\n width: 100%\n overflow-x: auto\n margin-top: 1rem\n margin-bottom: 0.5rem\n padding: 0.2rem 0.2rem 0.75rem\n\ntable.docutils\n border-radius: 0.2rem\n border-spacing: 0\n border-collapse: collapse\n\n box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), 0 0 0.0625rem rgba(0, 0, 0, 0.1)\n\n th\n background: var(--color-table-header-background)\n\n td,\n th\n // Space things out properly\n padding: 0 0.25rem\n\n // Get the borders looking just-right.\n border-left: 1px solid var(--color-table-border)\n border-right: 1px solid var(--color-table-border)\n border-bottom: 1px solid var(--color-table-border)\n\n p\n margin: 0.25rem\n\n &:first-child\n border-left: none\n &:last-child\n border-right: none\n\n // MyST-parser tables set these classes for control of column alignment\n &.text-left\n text-align: left\n &.text-right\n text-align: right\n &.text-center\n text-align: center\n",":target\n scroll-margin-top: 0.5rem\n\n@media (max-width: $full-width - $sidebar-width)\n :target\n scroll-margin-top: calc(0.5rem + var(--header-height))\n\n // When a heading is selected\n section > span:target\n scroll-margin-top: calc(0.8rem + var(--header-height))\n\n// Permalinks\n.headerlink\n font-weight: 100\n user-select: none\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\ndl dt,\np.caption,\nfigcaption p,\ntable > caption,\n.code-block-caption\n > .headerlink\n margin-left: 0.5rem\n visibility: hidden\n &:hover > .headerlink\n visibility: visible\n\n // Don't change to link-like, if someone adds the contents directive.\n > .toc-backref\n color: inherit\n text-decoration-line: none\n\n// Figure and table captions are special.\nfigure:hover > figcaption > p > .headerlink,\ntable:hover > caption > .headerlink\n visibility: visible\n\n:target >, // Regular section[id] style anchors\nspan:target ~ // Non-regular span[id] style \"extra\" anchors\n h1,\n h2,\n h3,\n h4,\n h5,\n h6\n &:nth-of-type(1)\n background-color: var(--color-highlight-on-target)\n // .headerlink\n // visibility: visible\n code.literal\n background-color: transparent\n\ntable:target > caption,\nfigure:target\n background-color: var(--color-highlight-on-target)\n\n// Inline page contents\n.this-will-duplicate-information-and-it-is-still-useful-here li :target\n background-color: var(--color-highlight-on-target)\n\n// Code block permalinks\n.literal-block-wrapper:target .code-block-caption\n background-color: var(--color-highlight-on-target)\n\n// When a definition list item is selected\n//\n// There isn't really an alternative to !important here, due to the\n// high-specificity of API documentation's selector.\ndt:target\n background-color: var(--color-highlight-on-target) !important\n\n// When a footnote reference is selected\n.footnote > dt:target + dd,\n.footnote-reference:target\n background-color: var(--color-highlight-on-target)\n",".guilabel\n background-color: var(--color-guilabel-background)\n border: 1px solid var(--color-guilabel-border)\n color: var(--color-guilabel-text)\n\n padding: 0 0.3em\n border-radius: 0.5em\n font-size: 0.9em\n","// This file contains the styles used for stylizing the footer that's shown\n// below the content.\n\nfooter\n font-size: var(--font-size--small)\n display: flex\n flex-direction: column\n\n margin-top: 2rem\n\n// Bottom of page information\n.bottom-of-page\n display: flex\n align-items: center\n justify-content: space-between\n\n margin-top: 1rem\n padding-top: 1rem\n padding-bottom: 1rem\n\n color: var(--color-foreground-secondary)\n border-top: 1px solid var(--color-background-border)\n\n line-height: 1.5\n\n @media (max-width: $content-width)\n text-align: center\n flex-direction: column-reverse\n gap: 0.25rem\n\n .left-details\n font-size: var(--font-size--small)\n\n .right-details\n display: flex\n flex-direction: column\n gap: 0.25rem\n text-align: right\n\n .icons\n display: flex\n justify-content: flex-end\n gap: 0.25rem\n font-size: 1rem\n\n a\n text-decoration: none\n\n svg,\n img\n font-size: 1.125rem\n height: 1em\n width: 1em\n\n// Next/Prev page information\n.related-pages\n a\n display: flex\n align-items: center\n\n text-decoration: none\n &:hover .page-info .title\n text-decoration: underline\n color: var(--color-link)\n text-decoration-color: var(--color-link-underline)\n\n svg.furo-related-icon,\n svg.furo-related-icon > use\n flex-shrink: 0\n\n color: var(--color-foreground-border)\n\n width: 0.75rem\n height: 0.75rem\n margin: 0 0.5rem\n\n &.next-page\n max-width: 50%\n\n float: right\n clear: right\n text-align: right\n\n &.prev-page\n max-width: 50%\n\n float: left\n clear: left\n\n svg\n transform: rotate(180deg)\n\n.page-info\n display: flex\n flex-direction: column\n overflow-wrap: anywhere\n\n .next-page &\n align-items: flex-end\n\n .context\n display: flex\n align-items: center\n\n padding-bottom: 0.1rem\n\n color: var(--color-foreground-muted)\n font-size: var(--font-size--small)\n text-decoration: none\n","//\n// Search Page Listing\n//\nul.search\n padding-left: 0\n list-style: none\n\n li\n padding: 1rem 0\n border-bottom: 1px solid var(--color-background-border)\n\n//\n// Highlighted by links in search page\n//\n[role=main] .highlighted\n background-color: var(--color-highlighted-background)\n color: var(--color-highlighted-text)\n","// This file contains the styles for the contents of the left sidebar, which\n// contains the navigation tree, logo, search etc.\n\n////////////////////////////////////////////////////////////////////////////////\n// Brand on top of the scrollable tree.\n////////////////////////////////////////////////////////////////////////////////\n.sidebar-brand\n display: flex\n flex-direction: column\n flex-shrink: 0\n\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)\n text-decoration: none\n\n.sidebar-brand-text\n color: var(--color-sidebar-brand-text)\n overflow-wrap: break-word\n margin: var(--sidebar-item-spacing-vertical) 0\n font-size: 1.5rem\n\n.sidebar-logo-container\n margin: var(--sidebar-item-spacing-vertical) 0\n\n.sidebar-logo\n margin: 0 auto\n display: block\n max-width: 100%\n\n////////////////////////////////////////////////////////////////////////////////\n// Search\n////////////////////////////////////////////////////////////////////////////////\n.sidebar-search-container\n display: flex\n align-items: center\n margin-top: var(--sidebar-search-space-above)\n\n position: relative\n\n background: var(--color-sidebar-search-background)\n &:hover,\n &:focus-within\n background: var(--color-sidebar-search-background--focus)\n\n &::before\n content: \"\"\n position: absolute\n left: var(--sidebar-item-spacing-horizontal)\n width: var(--sidebar-search-icon-size)\n height: var(--sidebar-search-icon-size)\n\n background-color: var(--color-sidebar-search-icon)\n mask-image: var(--icon-search)\n\n.sidebar-search\n box-sizing: border-box\n\n border: none\n border-top: 1px solid var(--color-sidebar-search-border)\n border-bottom: 1px solid var(--color-sidebar-search-border)\n\n padding-top: var(--sidebar-search-input-spacing-vertical)\n padding-bottom: var(--sidebar-search-input-spacing-vertical)\n padding-right: var(--sidebar-search-input-spacing-horizontal)\n padding-left: calc(var(--sidebar-item-spacing-horizontal) + var(--sidebar-search-input-spacing-horizontal) + var(--sidebar-search-icon-size))\n\n width: 100%\n\n color: var(--color-sidebar-search-foreground)\n background: transparent\n z-index: 10\n\n &:focus\n outline: none\n\n &::placeholder\n font-size: var(--sidebar-search-input-font-size)\n\n//\n// Hide Search Matches link\n//\n#searchbox .highlight-link\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal) 0\n margin: 0\n text-align: center\n\n a\n color: var(--color-sidebar-search-icon)\n font-size: var(--font-size--small--2)\n\n////////////////////////////////////////////////////////////////////////////////\n// Structure/Skeleton of the navigation tree (left)\n////////////////////////////////////////////////////////////////////////////////\n.sidebar-tree\n font-size: var(--sidebar-item-font-size)\n margin-top: var(--sidebar-tree-space-above)\n margin-bottom: var(--sidebar-item-spacing-vertical)\n\n ul\n padding: 0\n margin-top: 0\n margin-bottom: 0\n\n display: flex\n flex-direction: column\n\n list-style: none\n\n li\n position: relative\n margin: 0\n\n > ul\n margin-left: var(--sidebar-item-spacing-horizontal)\n\n .icon\n color: var(--color-sidebar-link-text)\n\n .reference\n box-sizing: border-box\n color: var(--color-sidebar-link-text)\n\n // Fill the parent.\n display: inline-block\n line-height: var(--sidebar-item-line-height)\n text-decoration: none\n\n // Don't allow long words to cause wrapping.\n overflow-wrap: anywhere\n\n height: 100%\n width: 100%\n\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)\n\n &:hover\n background: var(--color-sidebar-item-background--hover)\n\n // Add a nice little \"external-link\" arrow here.\n &.external::after\n content: url('data:image/svg+xml,')\n margin: 0 0.25rem\n vertical-align: middle\n color: var(--color-sidebar-link-text)\n\n // Make the current page reference bold.\n .current-page > .reference\n font-weight: bold\n\n label\n position: absolute\n top: 0\n right: 0\n height: var(--sidebar-item-height)\n width: var(--sidebar-expander-width)\n\n cursor: pointer\n\n display: flex\n justify-content: center\n align-items: center\n\n .caption, :not(.caption) > .caption-text\n font-size: var(--sidebar-caption-font-size)\n color: var(--color-sidebar-caption-text)\n\n font-weight: bold\n text-transform: uppercase\n\n margin: var(--sidebar-caption-space-above) 0 0 0\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)\n\n // If it has children, add a bit more padding to wrap the content to avoid\n // overlapping with the