From 63d0cff1159d6d40ed867263abee409568f73d29 Mon Sep 17 00:00:00 2001
From: ChrisLovering 
Date: Thu, 26 Oct 2023 13:31:58 +0000
Subject: Deploying to docs from @
 python-discord/bot-core@ee2501e36aa4cb6e809de9873e3d607bdf3309db 🚀
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
 v7.4.0-beta1/.buildinfo                            |   2 +-
 v7.4.0-beta1/_static/basic.css                     |  22 +++++
 v7.4.0-beta1/_static/documentation_options.js      |   3 +-
 v7.4.0-beta1/_static/searchtools.js                |  26 ++++--
 v7.4.0-beta1/_static/sphinx_highlight.js           |  16 +++-
 v7.4.0-beta1/_static/styles/furo.css               |   2 +-
 v7.4.0-beta1/_static/styles/furo.css.map           |   2 +-
 v7.4.0-beta1/changelog.html                        |  32 ++++---
 v7.4.0-beta1/genindex.html                         |  30 +++---
 v7.4.0-beta1/index.html                            |  36 +++----
 v7.4.0-beta1/index_redirect.html                   |  26 +++---
 v7.4.0-beta1/output/botcore.async_stats.html       |  52 ++++++-----
 v7.4.0-beta1/output/botcore.exts.html              |  32 ++++---
 v7.4.0-beta1/output/botcore.html                   | 104 +++++++++++----------
 v7.4.0-beta1/output/botcore.site_api.html          |  98 +++++++++----------
 v7.4.0-beta1/output/botcore.utils.caching.html     |  50 +++++-----
 v7.4.0-beta1/output/botcore.utils.channel.html     |  42 +++++----
 v7.4.0-beta1/output/botcore.utils.html             |  44 +++++----
 .../output/botcore.utils.interactions.html         |  62 ++++++------
 v7.4.0-beta1/output/botcore.utils.logging.html     |  48 +++++-----
 v7.4.0-beta1/output/botcore.utils.members.html     |  44 +++++----
 v7.4.0-beta1/output/botcore.utils.regex.html       |  40 ++++----
 v7.4.0-beta1/output/botcore.utils.scheduling.html  | 102 ++++++++++----------
 v7.4.0-beta1/py-modindex.html                      |  30 +++---
 v7.4.0-beta1/search.html                           |  28 +++---
 v7.4.0-beta1/searchindex.js                        |   2 +-
 v7.4.0-beta1/versions.html                         |  36 ++++---
 27 files changed, 564 insertions(+), 447 deletions(-)
(limited to 'v7.4.0-beta1')
diff --git a/v7.4.0-beta1/.buildinfo b/v7.4.0-beta1/.buildinfo
index ec1a2985..d11687c3 100644
--- a/v7.4.0-beta1/.buildinfo
+++ b/v7.4.0-beta1/.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: 16b86c2963121f4e116758d927440178
+config: 221eb60c5ec2246a94f0b5c502e791c6
 tags: 645f666f9bcd5a90fca523b33c5a78b7
diff --git a/v7.4.0-beta1/_static/basic.css b/v7.4.0-beta1/_static/basic.css
index 7577acb1..30fee9d0 100644
--- a/v7.4.0-beta1/_static/basic.css
+++ b/v7.4.0-beta1/_static/basic.css
@@ -237,6 +237,10 @@ a.headerlink {
     visibility: hidden;
 }
 
+a:visited {
+    color: #551A8B;
+}
+
 h1:hover > a.headerlink,
 h2:hover > a.headerlink,
 h3:hover > a.headerlink,
@@ -670,6 +674,16 @@ dd {
     margin-left: 30px;
 }
 
+.sig dd {
+    margin-top: 0px;
+    margin-bottom: 0px;
+}
+
+.sig dl {
+    margin-top: 0px;
+    margin-bottom: 0px;
+}
+
 dl > dd:last-child,
 dl > dd:last-child > :last-child {
     margin-bottom: 0;
@@ -738,6 +752,14 @@ abbr, acronym {
     cursor: help;
 }
 
+.translated {
+    background-color: rgba(207, 255, 207, 0.2)
+}
+
+.untranslated {
+    background-color: rgba(255, 207, 207, 0.2)
+}
+
 /* -- code displays --------------------------------------------------------- */
 
 pre {
diff --git a/v7.4.0-beta1/_static/documentation_options.js b/v7.4.0-beta1/_static/documentation_options.js
index a4093447..25308020 100644
--- a/v7.4.0-beta1/_static/documentation_options.js
+++ b/v7.4.0-beta1/_static/documentation_options.js
@@ -1,5 +1,4 @@
-var DOCUMENTATION_OPTIONS = {
-    URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
+const DOCUMENTATION_OPTIONS = {
     VERSION: '7.4.0',
     LANGUAGE: 'en',
     COLLAPSE_INDEX: false,
diff --git a/v7.4.0-beta1/_static/searchtools.js b/v7.4.0-beta1/_static/searchtools.js
index 97d56a74..7918c3fa 100644
--- a/v7.4.0-beta1/_static/searchtools.js
+++ b/v7.4.0-beta1/_static/searchtools.js
@@ -57,12 +57,12 @@ const _removeChildren = (element) => {
 const _escapeRegExp = (string) =>
   string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
 
-const _displayItem = (item, searchTerms) => {
+const _displayItem = (item, searchTerms, highlightTerms) => {
   const docBuilder = DOCUMENTATION_OPTIONS.BUILDER;
-  const docUrlRoot = DOCUMENTATION_OPTIONS.URL_ROOT;
   const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX;
   const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX;
   const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY;
+  const contentRoot = document.documentElement.dataset.content_root;
 
   const [docName, title, anchor, descr, score, _filename] = item;
 
@@ -75,20 +75,24 @@ const _displayItem = (item, searchTerms) => {
     if (dirname.match(/\/index\/$/))
       dirname = dirname.substring(0, dirname.length - 6);
     else if (dirname === "index/") dirname = "";
-    requestUrl = docUrlRoot + dirname;
+    requestUrl = contentRoot + dirname;
     linkUrl = requestUrl;
   } else {
     // normal html builders
-    requestUrl = docUrlRoot + docName + docFileSuffix;
+    requestUrl = contentRoot + docName + docFileSuffix;
     linkUrl = docName + docLinkSuffix;
   }
   let linkEl = listItem.appendChild(document.createElement("a"));
   linkEl.href = linkUrl + anchor;
   linkEl.dataset.score = score;
   linkEl.innerHTML = title;
-  if (descr)
+  if (descr) {
     listItem.appendChild(document.createElement("span")).innerHTML =
       " (" + descr + ")";
+    // highlight search terms in the description
+    if (SPHINX_HIGHLIGHT_ENABLED)  // set in sphinx_highlight.js
+      highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted"));
+  }
   else if (showSearchSummary)
     fetch(requestUrl)
       .then((responseData) => responseData.text())
@@ -97,6 +101,9 @@ const _displayItem = (item, searchTerms) => {
           listItem.appendChild(
             Search.makeSearchSummary(data, searchTerms)
           );
+        // highlight search terms in the summary
+        if (SPHINX_HIGHLIGHT_ENABLED)  // set in sphinx_highlight.js
+          highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted"));
       });
   Search.output.appendChild(listItem);
 };
@@ -115,14 +122,15 @@ const _finishSearch = (resultCount) => {
 const _displayNextItem = (
   results,
   resultCount,
-  searchTerms
+  searchTerms,
+  highlightTerms,
 ) => {
   // results left, load the summary and display it
   // this is intended to be dynamic (don't sub resultsCount)
   if (results.length) {
-    _displayItem(results.pop(), searchTerms);
+    _displayItem(results.pop(), searchTerms, highlightTerms);
     setTimeout(
-      () => _displayNextItem(results, resultCount, searchTerms),
+      () => _displayNextItem(results, resultCount, searchTerms, highlightTerms),
       5
     );
   }
@@ -360,7 +368,7 @@ const Search = {
     // console.info("search results:", Search.lastresults);
 
     // print the results
-    _displayNextItem(results, results.length, searchTerms);
+    _displayNextItem(results, results.length, searchTerms, highlightTerms);
   },
 
   /**
diff --git a/v7.4.0-beta1/_static/sphinx_highlight.js b/v7.4.0-beta1/_static/sphinx_highlight.js
index aae669d7..8a96c69a 100644
--- a/v7.4.0-beta1/_static/sphinx_highlight.js
+++ b/v7.4.0-beta1/_static/sphinx_highlight.js
@@ -29,14 +29,19 @@ const _highlight = (node, addItems, text, className) => {
       }
 
       span.appendChild(document.createTextNode(val.substr(pos, text.length)));
+      const rest = document.createTextNode(val.substr(pos + text.length));
       parent.insertBefore(
         span,
         parent.insertBefore(
-          document.createTextNode(val.substr(pos + text.length)),
+          rest,
           node.nextSibling
         )
       );
       node.nodeValue = val.substr(0, pos);
+      /* There may be more occurrences of search term in this node. So call this
+       * function recursively on the remaining fragment.
+       */
+      _highlight(rest, addItems, text, className);
 
       if (isInSVG) {
         const rect = document.createElementNS(
@@ -140,5 +145,10 @@ const SphinxHighlight = {
   },
 };
 
-_ready(SphinxHighlight.highlightSearchWords);
-_ready(SphinxHighlight.initEscapeListener);
+_ready(() => {
+  /* Do not call highlightSearchWords() when we are on the search page.
+   * It will highlight words from the *previous* search query.
+   */
+  if (typeof Search === "undefined") SphinxHighlight.highlightSearchWords();
+  SphinxHighlight.initEscapeListener();
+});
diff --git a/v7.4.0-beta1/_static/styles/furo.css b/v7.4.0-beta1/_static/styles/furo.css
index f8535503..3d29a218 100644
--- a/v7.4.0-beta1/_static/styles/furo.css
+++ b/v7.4.0-beta1/_static/styles/furo.css
@@ -1,2 +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)}a,blockquote,dl,ol,pre,table,ul{page-break-inside:avoid}caption,figure,h1,h2,h3,h4,h5,h6,img{page-break-after:avoid;page-break-inside:avoid}dl,ol,ul{page-break-before:avoid}}.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,\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        user-select: none\n\n  .nav-overlay-icon .icon,\n  .theme-toggle svg\n    height: 1.25rem\n    width: 1.25rem\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","//\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:not(.sig-inline)\n  font-weight: bold\n\n  font-size: var(--api-font-size)\n  font-family: var(--font-stack--monospace)\n\n  margin-left: -0.25rem\n  margin-right: -0.25rem\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  transition: background 100ms ease-out\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, .sig-inline\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  overflow-wrap: break-word\n\n  p &\n    border: 1px solid var(--color-background-border)\n\n.sig-inline\n  font-family: var(--font-stack--monospace)\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  overflow: auto\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\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  float: left\n  font-weight: 500\n  padding-right: 0.25rem\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","// 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  li.has-children\n    > .reference\n      padding-right: var(--sidebar-expander-width)\n\n  // Colorize the top-level list items and icon.\n  .toctree-l1\n    & > .reference,\n    & > label .icon\n      color: var(--color-sidebar-link-text--top-level)\n\n  // Color changes on hover\n  label\n    background: var(--color-sidebar-item-expander-background)\n    &:hover\n      background: var(--color-sidebar-item-expander-background--hover)\n\n  .current > .reference\n    background: var(--color-sidebar-item-background--current)\n    &:hover\n      background: var(--color-sidebar-item-background--hover)\n\n.toctree-checkbox\n  position: absolute\n  display: none\n\n////////////////////////////////////////////////////////////////////////////////\n// Togglable expand/collapse\n////////////////////////////////////////////////////////////////////////////////\n.toctree-checkbox\n  ~ ul\n    display: none\n\n  ~ label .icon svg\n    transform: rotate(90deg)\n\n.toctree-checkbox:checked\n  ~ ul\n    display: block\n\n  ~ label .icon svg\n    transform: rotate(-90deg)\n","// This file contains the styles for the contents of the right sidebar, which\n// contains the table of contents for the current page.\n.toc-title-container\n  padding: var(--toc-title-padding)\n  padding-top: var(--toc-spacing-vertical)\n\n.toc-title\n  color: var(--color-toc-title-text)\n  font-size: var(--toc-title-font-size)\n  padding-left: var(--toc-spacing-horizontal)\n  text-transform: uppercase\n\n// If the ToC is not present, hide these elements coz they're not relevant.\n.no-toc\n  display: none\n\n.toc-tree-container\n  padding-bottom: var(--toc-spacing-vertical)\n\n.toc-tree\n  font-size: var(--toc-font-size)\n  line-height: 1.3\n  border-left: 1px solid var(--color-background-border)\n\n  padding-left: calc(var(--toc-spacing-horizontal) - var(--toc-item-spacing-horizontal))\n\n  // Hide the first \"top level\" bullet.\n  > ul > li:first-child\n    padding-top: 0\n    & > ul\n      padding-left: 0\n    & > a\n      display: none\n\n  ul\n    list-style-type: none\n    margin-top: 0\n    margin-bottom: 0\n    padding-left: var(--toc-item-spacing-horizontal)\n  li\n    padding-top: var(--toc-item-spacing-vertical)\n\n    &.scroll-current >.reference\n      color: var(--color-toc-item-text--active)\n      font-weight: bold\n\n  .reference\n    color: var(--color-toc-item-text)\n    text-decoration: none\n    overflow-wrap: anywhere\n\n.toc-scroll\n  max-height: 100vh\n  overflow-y: scroll\n\n// Be very annoying when someone includes the table of contents\n.contents:not(.this-will-duplicate-information-and-it-is-still-useful-here)\n  color: var(--color-problematic)\n  background: rgba(255, 0, 0, 0.25)\n  &::before\n    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.\"\n","// Shameful hacks, to work around bugs.\n\n// MyST parser doesn't correctly generate classes, to align table contents.\n// https://github.com/executablebooks/MyST-Parser/issues/412\n.text-align\\:left > p\n  text-align: left\n\n.text-align\\:center > p\n  text-align: center\n\n.text-align\\:right > p\n  text-align: right\n"],"names":[],"sourceRoot":""}
\ No newline at end of file
+{"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,iDAMF,gCACE,wBAEF,qCAEE,uBADA,uBACA,CAEF,SACE,wBAtBA,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,+DAGA,4CACA,CACA,iEAGA,sGACA,uCACA,4DAGA,sCACA,2DAEA,4CACA,kEACA,oGACA,CAEA,0GACA,+CAGA,+MAOA,+EACA,wCAIA,4DACA,sEACA,kEACA,sEACA,gDAGA,+DACA,0CACA,gEACA,gGACA,CAGA,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,sDAGA,iCACE,CACA,2FAGA,gCACE,CACA,+DCzEJ,wCAEA,sBAEF,yDAEE,mCACA,wDAGA,2GAGA,wIACE,gDAMJ,kCAGE,6BACA,0CAGA,gEACA,8BACA,uCAKA,sCAIA,kCACA,sDACA,iCACA,sCAOA,sDAKE,gGAIE,+CAGN,sBAEE,yCAMA,0BAMA,yLAMA,aACA,MAEF,6BACE,2DAIF,wCAIE,kCAGA,SACA,kCAKA,mBAGA,CAJA,eACA,CAHF,gBAEE,CAWA,mBACA,mBACA,mDAGA,YACA,CACA,kBACA,CAEE,kBAKJ,OAPE,kBAQA,CADF,GACE,iCACA,wCAEA,wBACA,aACA,CAFA,WAEA,GACA,oBACA,CAFA,gBAEA,aACE,+CAIF,UAJE,kCAIF,WACA,iBACA,GAGA,uBACE,CAJF,yBAGA,CACE,iDACA,uCAEA,yDACE,cACA,wDAKN,yDAIE,uBAEF,kBACE,uBAEA,kDAIA,0DAGA,CAHA,oBAGA,0GAYA,aAEA,CAHA,YAGA,4HAKF,+CAGE,sBAEF,WAKE,0CAEA,CALA,qCAGA,CAJA,WAOA,SAIA,2CAJA,qCAIA,CACE,wBACA,OACA,YAEJ,gBACE,gBAIA,+CAKF,CAGE,kDAGA,CANF,8BAGE,CAGA,YAEA,CAdF,2BACE,CAHA,UAEF,CAYE,UAEA,CACA,0CACF,iEAOE,iCACA,8BAGA,wCAIA,wBAKE,0CAKF,CARE,6DAGA,CALF,qBAEE,CASA,YACA,yBAGA,CAEE,cAKN,CAPI,sBAOJ,gCAGE,qBAEA,WACA,aACA,sCAEA,mBACA,6BAGA,uEADA,qBACA,6BAIA,yBACA,qCAEE,UAEA,YACA,sBAEF,8BAGA,CAPE,aACA,WAMF,4BACE,sBACA,WAMJ,uBACE,cAYE,mBAXA,qDAKA,qCAGA,CAEA,YACA,CAHA,2BAEA,CACA,oCAEA,4CACA,uBAIA,oCAEJ,CAFI,cAIF,iBACE,CAHJ,kBAGI,yBAEA,oCAIA,qDAMF,mEAEA,CACE,8CAKA,gCAEA,qCAGA,oCAGE,sBACA,CAJF,WAEE,CAFF,eAEE,SAEA,mBACA,qCACE,aACA,CAFF,YADA,qBACA,WAEE,sBACA,kEAEN,2BAEE,iDAKA,uCAGF,CACE,0DAKA,kBACF,CAFE,sBAGA,mBACA,0BAEJ,yBAII,aADA,WACA,CAMF,UAFE,kBAEF,CAJF,gBACE,CAHE,iBAMF,6CC9ZF,yBACE,WACA,iBAEA,aAFA,iBAEA,6BAEA,kCACA,mBAKA,gCAGA,CARA,QAEA,CAGA,UALA,qBAEA,qDAGA,CALA,OAQA,4BACE,cAGF,2BACE,gCAEJ,CAHE,UAGF,8CAGE,CAHF,UAGE,wCAGA,qBACA,CAFA,UAEA,6CAGA,yCAIA,sBAHA,UAGA,kCACE,OACA,CAFF,KAEE,cAQF,0CACE,CAFF,kBACA,CACE,wEACA,CARA,YACA,CAKF,mBAFF,OAII,eACA,CAJF,iCAJE,cAGJ,CANI,oBAEA,CAKF,SAIE,2BADA,UACA,kBAGF,sCACA,CAFF,WACE,WACA,qCACE,gCACA,2EACA,sDAKJ,aACE,mDAII,CAJJ,6CAII,kEACA,iBACE,iDACA,+CACE,aACA,WADA,+BACA,uEANN,YACE,mDAEE,mBADF,0CACE,CADF,qBACE,0DACA,YACE,4DACA,sEANN,YACE,8CACA,kBADA,UACA,2CACE,2EACA,cACE,kEACA,mEANN,yBACE,4DACA,sBACE,+EAEE,iEACA,qEANN,sCACE,CAGE,iBAHF,gBAGE,qBACE,CAJJ,uBACA,gDACE,wDACA,6DAHF,2CACA,CADA,gBACA,eACE,CAGE,sBANN,8BACE,CAII,iBAFF,4DACA,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,yDCrEA,sEACE,CACA,6GACE,gEACF,iGAIF,wFACE,qDAGA,mGAEE,2CAEF,4FACE,gCACF,wGACE,8DAEE,6FAIA,iJAKN,6GACE,gDAKF,yDACA,qCAGA,6BACA,kBACA,qDAKA,oCAEA,+DAGA,2CAGE,oDAIA,oEAEE,qBAGJ,wDAEE,uCAEF,kEAGA,8CAEA,uDAKA,oCAEA,yDAEE,gEAKF,+CC5FA,0EAGE,CACA,qDCLJ,+DAIE,sCAIA,kEACE,yBACA,2FAMA,gBACA,yGCbF,mBAOA,2MAIA,4HAYA,0DACE,8GAYF,8HAQE,mBAEA,6HAOF,YAGA,mIAME,eACA,CAFF,YAEE,4FAMJ,8BAEE,uBAYA,sCAEE,CAJF,oBAEA,CARA,wCAEA,CAHA,8BACA,CAFA,eACA,CAGA,wCAEA,CAEA,mDAIE,kCACE,6BACA,4CAKJ,kDAIA,eACE,aAGF,8BACE,uDACA,sCACA,cAEA,+BACA,CAFA,eAEA,wCAEF,YACE,iBACA,mCACA,0DAGF,qBAEE,CAFF,kBAEE,+BAIA,yCAEE,qBADA,gBACA,yBAKF,eACA,CAFF,YACE,CACA,iBACA,qDAEA,mDCvIJ,2FAOE,iCACA,CAEA,eACA,CAHA,kBAEA,CAFA,wBAGA,8BACA,eACE,CAFF,YAEE,0BACA,8CAGA,oBACE,oCAGA,kBACE,8DAEA,iBAEN,UACE,8BAIJ,+CAEE,qDAEF,kDAIE,YAEF,CAFE,YAEF,CCjCE,mFAJA,QACA,UAIE,CADF,iBACE,mCAGA,iDACE,+BAGF,wBAEA,mBAKA,6CAEF,CAHE,mBACA,CAEF,kCAIE,CARA,kBACA,CAFF,eASE,YACA,mBAGF,CAJE,UAIF,wCCjCA,oBDmCE,wBCpCJ,uCACE,8BACA,4CACA,oBAGA,2CCAA,6CAGE,CAPF,uBAIA,CDGA,gDACE,6BCVJ,CAWM,2CAEF,CAJA,kCAEE,CDJF,aCLF,gBDKE,uBCMA,gCAGA,gDAGE,wBAGJ,0BAEA,iBACE,aACF,CADE,UACF,uBACE,aACF,oBACE,YACF,4BACE,6CAMA,CAYF,6DAZE,mCAGE,iCASJ,4BAGE,4DADA,+BACA,CAFA,qBAEA,yBACE,aAEF,wBAHA,SAGA,iHACE,2DAKF,CANA,yCACE,CADF,oCAMA,uSAIA,sGACE,oDChEJ,WAEF,yBACE,QACA,eAEA,gBAEE,uCAGA,CALF,iCAKE,uCAGA,0BACA,CACA,oBACA,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,iBAGJ,CAHI,gBADA,gBAIJ,8CAYI,CAZJ,wCAYI,sVACE,iCAGA,uEAHA,QAGA,qXAKJ,iDAGF,CARM,+CACE,iDAIN,CALI,gBAQN,mHACE,gBAGF,2DACE,0EAOA,0EAKA,6EC/EA,iDACA,gCACA,oDAGA,qBACA,oDCFA,cACA,eAEA,yBAGF,sBAEE,iBACA,sNAWA,iBACE,kBACA,wRAgBA,kBAEA,iOAgBA,uCACE,uEAEA,kBAEF,qUAuBE,iDAIJ,CACA,geCxFF,4BAEE,CAQA,6JACA,iDAIA,sEAGA,mDAOF,iDAGE,4DAIA,8CACA,qDAEE,eAFF,cAEE,oBAEF,uBAFE,kCAGA,eACA,iBACA,mBAIA,mDACA,CAHA,uCAEA,CAJA,0CACA,CAIA,gBAJA,gBACA,oBADA,gBAIA,wBAEJ,gBAGE,6BACA,YAHA,iBAGA,gCACA,iEAEA,6CACA,sDACA,0BADA,wBACA,0BACA,oIAIA,mBAFA,YAEA,qBACA,0CAIE,uBAEF,CAHA,yBACE,CAEF,iDACE,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,kBAIA,wEAEA,wDAIF,kCAOE,iDACA,CARF,WAIE,sCAGA,CANA,2CACA,CAMA,oEARF,iBACE,CACA,qCAMA,iBAuBE,uBAlBF,YAKA,2DALA,uDAKA,CALA,sBAiBA,4CACE,CALA,gRAIF,YACE,UAEN,uBACE,YACA,mCAOE,+CAGA,8BAGF,+CAGA,4BCjNA,SDiNA,qFCjNA,gDAGA,sCACA,qCACA,sDAIF,CAIE,kDAGA,CAPF,0CAOE,kBAEA,kDAEA,CAHA,eACA,CAFA,YACA,CADA,SAIA,mHAIE,CAGA,6CAFA,oCAeE,CAbF,yBACE,qBAEJ,CAGE,oBACA,CAEA,YAFA,2CACF,CACE,uBAEA,mFAEE,CALJ,oBACE,CAEA,UAEE,gCAGF,sDAEA,yCC7CJ,oCAGA,CD6CE,yXAQE,sCCrDJ,wCAGA,oCACE","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/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/_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\n////////////////////////////////////////////////////////////////////////////////\n// Avoid page break in some relevant cases.\n////////////////////////////////////////////////////////////////////////////////\n@media print\n  ul, ol, dl, a, table, pre, blockquote\n    page-break-inside: avoid\n\n  h1, h2, h3, h4, h5, h6, img, figure, caption\n    page-break-inside: avoid\n    page-break-after: avoid\n\n  ul, ol, dl\n    page-break-before: avoid\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.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        user-select: none\n\n  .nav-overlay-icon .icon,\n  .theme-toggle svg\n    height: 1.25rem\n    width: 1.25rem\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","//\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\n.admonition p.admonition-title,\np.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:not(.sig-inline)\n  font-weight: bold\n\n  font-size: var(--api-font-size)\n  font-family: var(--font-stack--monospace)\n\n  margin-left: -0.25rem\n  margin-right: -0.25rem\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  transition: background 100ms ease-out\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\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, .sig-inline\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  pre.literal-block &\n    font-size: inherit\n    padding: 0\n\n  p &\n    border: 1px solid var(--color-background-border)\n\n.sig-inline\n  font-family: var(--font-stack--monospace)\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  overflow: auto\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\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  float: left\n  font-weight: 500\n  padding-right: 0.25rem\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","// 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  li.has-children\n    > .reference\n      padding-right: var(--sidebar-expander-width)\n\n  // Colorize the top-level list items and icon.\n  .toctree-l1\n    & > .reference,\n    & > label .icon\n      color: var(--color-sidebar-link-text--top-level)\n\n  // Color changes on hover\n  label\n    background: var(--color-sidebar-item-expander-background)\n    &:hover\n      background: var(--color-sidebar-item-expander-background--hover)\n\n  .current > .reference\n    background: var(--color-sidebar-item-background--current)\n    &:hover\n      background: var(--color-sidebar-item-background--hover)\n\n.toctree-checkbox\n  position: absolute\n  display: none\n\n////////////////////////////////////////////////////////////////////////////////\n// Togglable expand/collapse\n////////////////////////////////////////////////////////////////////////////////\n.toctree-checkbox\n  ~ ul\n    display: none\n\n  ~ label .icon svg\n    transform: rotate(90deg)\n\n.toctree-checkbox:checked\n  ~ ul\n    display: block\n\n  ~ label .icon svg\n    transform: rotate(-90deg)\n","// This file contains the styles for the contents of the right sidebar, which\n// contains the table of contents for the current page.\n.toc-title-container\n  padding: var(--toc-title-padding)\n  padding-top: var(--toc-spacing-vertical)\n\n.toc-title\n  color: var(--color-toc-title-text)\n  font-size: var(--toc-title-font-size)\n  padding-left: var(--toc-spacing-horizontal)\n  text-transform: uppercase\n\n// If the ToC is not present, hide these elements coz they're not relevant.\n.no-toc\n  display: none\n\n.toc-tree-container\n  padding-bottom: var(--toc-spacing-vertical)\n\n.toc-tree\n  font-size: var(--toc-font-size)\n  line-height: 1.3\n  border-left: 1px solid var(--color-background-border)\n\n  padding-left: calc(var(--toc-spacing-horizontal) - var(--toc-item-spacing-horizontal))\n\n  // Hide the first \"top level\" bullet.\n  > ul > li:first-child\n    padding-top: 0\n    & > ul\n      padding-left: 0\n    & > a\n      display: none\n\n  ul\n    list-style-type: none\n    margin-top: 0\n    margin-bottom: 0\n    padding-left: var(--toc-item-spacing-horizontal)\n  li\n    padding-top: var(--toc-item-spacing-vertical)\n\n    &.scroll-current >.reference\n      color: var(--color-toc-item-text--active)\n      font-weight: bold\n\n  .reference\n    color: var(--color-toc-item-text)\n    text-decoration: none\n    overflow-wrap: anywhere\n\n.toc-scroll\n  max-height: 100vh\n  overflow-y: scroll\n\n// Be very annoying when someone includes the table of contents\n.contents:not(.this-will-duplicate-information-and-it-is-still-useful-here)\n  color: var(--color-problematic)\n  background: rgba(255, 0, 0, 0.25)\n  &::before\n    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.\"\n","// Shameful hacks, to work around bugs.\n\n// MyST parser doesn't correctly generate classes, to align table contents.\n// https://github.com/executablebooks/MyST-Parser/issues/412\n.text-align\\:left > p\n  text-align: left\n\n.text-align\\:center > p\n  text-align: center\n\n.text-align\\:right > p\n  text-align: right\n"],"names":[],"sourceRoot":""}
\ No newline at end of file
diff --git a/v7.4.0-beta1/changelog.html b/v7.4.0-beta1/changelog.html
index 9cd53697..940b03aa 100644
--- a/v7.4.0-beta1/changelog.html
+++ b/v7.4.0-beta1/changelog.html
@@ -1,18 +1,18 @@
 
-
+
   Changelog - Pydis Core v7.4.0-beta1 
-      v7.1.1 
                     
                 
+                    
+                        v10.3.0 
+                     
+                
                     
                         v10.2.0 
                      
@@ -417,7 +421,7 @@
         
         
               
 
 
 
-async   add_cog ( cog ) [source]  
+async   add_cog ( cog ) [source] Add the given cog 
 
 Return type:  
-None 
+None 
  
  
 
 
 
-add_command ( command ) [source]  
+add_command ( command ) [source] Add command 
 
 Return type:  
-None 
+None 
  
  
 
 
 
-clear ( ) [source]  
+clear ( ) [source] Not implemented! Re-instantiate the bot instead of attempting to re-use a closed one.
 
 Return type:  
-None 
+None 
  
  
 
 
 
-async   close ( ) [source]  
+async   close ( ) [source] Close the Discord connection, and the aiohttp session, connector, statsd client, and resolver.
 
 Return type:  
-None 
+None 
  
  
 
 
 
-async   load_extensions ( module ) [source]  
+async   load_extensions ( module ) [source] Load all the extensions within the given module and save them to self.all_extensions 
 This should be ran in a task on the event loop to avoid deadlocks caused by wait_for 
 
 Return type:  
-None 
+None 
  
  
 
 
 
-async   log_to_dev_log ( message ) [source]  
+async   log_to_dev_log ( message ) [source] Log the given message to #dev-log.
 
 Return type:  
-None 
+None 
  
  
 
 
 
-async   on_guild_available ( guild ) [source]  
+async   on_guild_available ( guild ) [source] Set the internal guild available event when self.guild_id becomes available.
 If the cache appears to still be empty (no members, no channels, or no roles), the event
 will not be set and guild_available_but_cache_empty  event will be emitted.
 
 Return type:  
-None 
+None 
  
  
 
 
 
-async   on_guild_unavailable ( guild ) [source]  
+async   on_guild_unavailable ( guild ) [source] Clear the internal guild available event when self.guild_id becomes unavailable.
 
 Return type:  
-None 
+None 
  
  
 
 
 
-async   ping_services ( ) [source]  
+async   ping_services ( ) [source] Ping all required services on setup to ensure they are up before starting.
 
 Return type:  
-None 
+None 
  
  
 
 
 
-remove_command ( name ) [source]  
+remove_command ( name ) [source] Remove a command/alias as normal and then remove its root aliases from the bot.
 Individual root aliases cannot be removed by this function.
 To remove them, either remove the entire command or manually edit bot.all_commands .
 
 Return type:  
-Optional Command 
+Optional Command 
  
  
 
 
 
-async   setup_hook ( ) [source]  
+async   setup_hook ( ) [source] An async init to startup generic services.
 Connects to statsd, and calls
 AsyncStatsClient.create_socket ping_services() 
 
 Return type:  
-None 
+None 
  
  
 
 
 
-async   wait_until_guild_available ( ) [source]  
+async   wait_until_guild_available ( ) [source] Wait until the guild that matches the guild_id 
 The on_ready event is inadequate because it only waits 2 seconds for a GUILD_CREATE
 gateway event before giving up and thus not populating the cache for unavailable guilds.
 
 Return type:  
-None 
+None 
  
  
@@ -589,18 +593,18 @@ gateway event before giving up and thus not populating the cache for unavailable
 
 
 
-exception   StartupError ( base ) [source]  
-Bases: Exception 
+exception   StartupError ( base ) [source] Bases: Exception 
 Exception class for startup errors.
 
 
-__init__ ( base ) [source]  
+__init__ ( base ) [source]  
 
  
 
 
-Subpackages 
+Subpackages 
 
 
 Exts   
  
 
-Submodules 
+Submodules 
 
 
 async_stats 
@@ -776,10 +780,10 @@ gateway event before giving up and thus not populating the cache for unavailable
       
     
      
-
-    
-    
-    
-    
+
+    
+    
+    
+    
     
 
\ No newline at end of file
diff --git a/v7.4.0-beta1/output/botcore.site_api.html b/v7.4.0-beta1/output/botcore.site_api.html
index 8203c239..7086ed36 100644
--- a/v7.4.0-beta1/output/botcore.site_api.html
+++ b/v7.4.0-beta1/output/botcore.site_api.html
@@ -1,18 +1,18 @@
 
-
+
   site_api - Pydis Core v7.4.0-beta1 
-      v7.1.1 
                     
                 
+                    
+                        v10.3.0 
+                     
+                
                     
                         v10.2.0 
                      
@@ -417,22 +421,22 @@
         
         
           
-site_api 
+site_api 
 An API wrapper around the Site API.
 
 
-class   APIClient ( site_api_url site_api_token ** session_kwargs ) [source]  
-Bases: object 
+class   APIClient ( site_api_url site_api_token ** session_kwargs ) [source] Bases: object 
 A wrapper for the Django Site API.
 
 
-__init__ ( site_api_url site_api_token ** session_kwargs ) [source]  
+__init__ ( site_api_url site_api_token ** session_kwargs ) [source] Initialize a new APIClient 
 
 Parameters:  
 
-site_api_url  (str 
site_api_token  (str 
site_api_url  (str 
site_api_token  (str 
session_kwargs  – Keyword arguments to pass to the aiohttp.ClientSession 
 
 
 
-async   close ( ) [source]  
+async   close ( ) [source] Close the aiohttp session.
 
 Return type:  
-None 
+None 
  
  
 
 
 
-async   delete ( endpoint * raise_for_status = True ** kwargs ) [source]  
+async   delete ( endpoint * raise_for_status = True ** kwargs ) [source] Send a DELETE request to the site API and return the JSON response.
 
 Parameters:  
 
-endpoint  (str 
raise_for_status  (bool 
endpoint  (str 
raise_for_status  (bool 
**kwargs  – Any extra keyword arguments to pass to aiohttp.request() 
 
 Return type:  
-Optional dict 
+Optional dict 
 Returns:  
 The JSON response the API returns, or None if the response is 204 No Content.
@@ -473,83 +477,83 @@
 
 
 
-async   get ( endpoint * raise_for_status = True ** kwargs ) [source]  
+async   get ( endpoint * raise_for_status = True ** kwargs ) [source] Equivalent to APIClient.request() 
 
 Return type:  
-dict 
+dict 
  
  
 
 
 
-async   static   maybe_raise_for_status ( response should_raise ) [source]  
+async   static   maybe_raise_for_status ( response should_raise ) [source] Raise ResponseCodeError 
 
 Parameters:  
 
 response  (aiohttp.ClientResponse 
should_raise  (bool 
should_raise  (bool 
 
 Raises:  
 ResponseCodeError should_raise 
 Return type:  
-None 
+None 
  
  
 
 
 
-async   patch ( endpoint * raise_for_status = True ** kwargs ) [source]  
+async   patch ( endpoint * raise_for_status = True ** kwargs ) [source] Equivalent to APIClient.request() 
 
 Return type:  
-dict 
+dict 
  
  
 
 
 
-async   post ( endpoint * raise_for_status = True ** kwargs ) [source]  
+async   post ( endpoint * raise_for_status = True ** kwargs ) [source] Equivalent to APIClient.request() 
 
 Return type:  
-dict 
+dict 
  
  
 
 
 
-async   put ( endpoint * raise_for_status = True ** kwargs ) [source]  
+async   put ( endpoint * raise_for_status = True ** kwargs ) [source] Equivalent to APIClient.request() 
 
 Return type:  
-dict 
+dict 
  
  
 
 
 
-async   request ( method endpoint * raise_for_status = True ** kwargs ) [source]  
+async   request ( method endpoint * raise_for_status = True ** kwargs ) [source] Send an HTTP request to the site API and return the JSON response.
 
 Parameters:  
 
-method  (str 
endpoint  (str 
raise_for_status  (bool 
method  (str 
endpoint  (str 
raise_for_status  (bool 
**kwargs  – Any extra keyword arguments to pass to aiohttp.request() 
 
 Return type:  
-dict 
+dict 
 Returns:  
 The JSON response the API returns.
@@ -564,19 +568,19 @@
 
 
 
-exception   ResponseCodeError ( response response_json = None response_text = None ) [source]  
-Bases: ValueError 
+exception   ResponseCodeError ( response response_json = None response_text = None ) [source] Bases: ValueError 
 Raised in APIClient.request() 
 
 
-__init__ ( response response_json = None response_text = None ) [source]  
+__init__ ( response response_json = None response_text = None ) [source] Initialize a new ResponseCodeError 
 
 Parameters:  
 
 response  (aiohttp.ClientResponse 
response_json  (Optional dict 
response_text  (Optional str 
response_json  (Optional dict 
response_text  (Optional str 
 
  
@@ -584,7 +588,7 @@
 
 
 
-__str__ ( ) [source]  
+__str__ ( ) [source] Return a string representation of the error.
  
 
@@ -676,10 +680,10 @@
       
     
   
-
-    
-    
-    
-    
+
+    
+    
+    
+    
     
 
\ No newline at end of file
diff --git a/v7.4.0-beta1/output/botcore.utils.caching.html b/v7.4.0-beta1/output/botcore.utils.caching.html
index 1e9d46c0..da6a47be 100644
--- a/v7.4.0-beta1/output/botcore.utils.caching.html
+++ b/v7.4.0-beta1/output/botcore.utils.caching.html
@@ -1,18 +1,18 @@
 
-
+
   caching - Pydis Core v7.4.0-beta1 
-      v7.1.1 
                     
                 
+                    
+                        v10.3.0 
+                     
+                
                     
                         v10.2.0 
                      
@@ -417,25 +421,25 @@
         
         
           
-caching 
+caching 
 Utilities related to custom caches.
 
 
-class   AsyncCache ( max_size = 128 ) [source]  
-Bases: object 
+class   AsyncCache ( max_size = 128 ) [source] Bases: object 
 LRU cache implementation for coroutines.
 Once the cache exceeds the maximum size, keys are deleted in FIFO order.
 An offset may be optionally provided to be applied to the coroutine’s arguments when creating the cache key.
 
 
-__call__ ( arg_offset = 0 ) [source]  
+__call__ ( arg_offset = 0 ) [source] Decorator for async cache.
 
 Parameters:  
-arg_offset  (int 
+arg_offset  (int 
 Return type:  
-Callable 
+Callable 
 Returns:  
 A decorator to wrap the target function.
@@ -445,22 +449,22 @@
 
 
 
-__init__ ( max_size = 128 ) [source]  
+__init__ ( max_size = 128 ) [source] Initialise a new AsyncCache 
 
 Parameters:  
-max_size  (int 
+max_size  (int 
  
  
 
 
 
-clear ( ) [source]  
+clear ( ) [source] Clear cache instance.
 
 Return type:  
-None 
+None 
  
  
@@ -542,10 +546,10 @@
       
     
   
-
-    
-    
-    
-    
+
+    
+    
+    
+    
     
 
\ No newline at end of file
diff --git a/v7.4.0-beta1/output/botcore.utils.channel.html b/v7.4.0-beta1/output/botcore.utils.channel.html
index 47af255f..3e396286 100644
--- a/v7.4.0-beta1/output/botcore.utils.channel.html
+++ b/v7.4.0-beta1/output/botcore.utils.channel.html
@@ -1,18 +1,18 @@
 
-
+
   channel - Pydis Core v7.4.0-beta1 
-      v7.1.1 
                     
                 
+                    
+                        v10.3.0 
+                     
+                
                     
                         v10.2.0 
                      
@@ -417,17 +421,17 @@
         
         
           
-channel 
+channel 
 Useful helper functions for interacting with various discord channel objects.
 
 
-async   get_or_fetch_channel ( bot channel_id ) [source]  
+async   get_or_fetch_channel ( bot channel_id ) [source] Attempt to get or fetch the given channel_id 
 
 Parameters:  
 
 bot  (Bot discord.ext.commands.Bot 
channel_id  (int 
channel_id  (int 
 
 Raises:  
@@ -449,17 +453,17 @@
 
 
 
-is_in_category ( channel category_id ) [source]  
+is_in_category ( channel category_id ) [source] Return whether the given channel category_id 
 
 Parameters:  
 
 channel  (TextChannel 
category_id  (int 
category_id  (int 
 
 Return type:  
-bool 
+bool 
 Returns:  
 A bool depending on whether the channel is in the category.
@@ -538,10 +542,10 @@
       
     
   
-
-    
-    
-    
-    
+
+    
+    
+    
+    
     
 
\ No newline at end of file
diff --git a/v7.4.0-beta1/output/botcore.utils.html b/v7.4.0-beta1/output/botcore.utils.html
index 28d762d2..f18f92ba 100644
--- a/v7.4.0-beta1/output/botcore.utils.html
+++ b/v7.4.0-beta1/output/botcore.utils.html
@@ -1,18 +1,18 @@
 
-
+
   Utils - Pydis Core v7.4.0-beta1 
-      v7.1.1 
                     
                 
+                    
+                        v10.3.0 
+                     
+                
                     
                         v10.2.0 
                      
@@ -417,15 +421,15 @@
         
         
           
-Utils 
+Utils 
 Useful utilities and tools for Discord bot development.
 
 
-apply_monkey_patches ( ) [source]  
+apply_monkey_patches ( ) [source] Applies all common monkey patches for our bots.
 
 Return type:  
-None 
+None 
  
 
@@ -440,14 +444,14 @@ that will act as top-level groups rather than being aliases of the command’s g
 
 
 
-unqualify ( name ) [source]  
+unqualify ( name ) [source] Return an unqualified name given a qualified module/package name 
 
 Parameters:  
-name  (str 
+name  (str 
 Return type:  
-str 
+str 
 Returns:  
 The unqualified module name.
@@ -456,7 +460,7 @@ that will act as top-level groups rather than being aliases of the command’s g
  
 
 
-Submodules 
+Submodules 
 
 
 caching 
@@ -595,10 +599,10 @@ that will act as top-level groups rather than being aliases of the command’s g
       
     
      
-
-    
-    
-    
-    
+
+    
+    
+    
+    
     
 
\ No newline at end of file
diff --git a/v7.4.0-beta1/output/botcore.utils.interactions.html b/v7.4.0-beta1/output/botcore.utils.interactions.html
index 4b3ca424..0d5c55a7 100644
--- a/v7.4.0-beta1/output/botcore.utils.interactions.html
+++ b/v7.4.0-beta1/output/botcore.utils.interactions.html
@@ -1,18 +1,18 @@
 
-
+
   interactions - Pydis Core v7.4.0-beta1 
-      v7.1.1 
                     
                 
+                    
+                        v10.3.0 
+                     
+                
                     
                         v10.2.0 
                      
@@ -417,10 +421,10 @@
         
         
           
-interactions 
+interactions 
 
 
-class   DeleteMessageButton ( * style=<ButtonStyle.secondary:  2> label='Delete' **kwargs ) [source]  
+class   DeleteMessageButton ( * style = ('secondary',  2) label = 'Delete' ** kwargs ) [source] Bases: Button 
 A button that can be added to a view to delete the message containing the view on click.
 This button itself carries out no interaction checks, these should be done by the parent view.
@@ -429,22 +433,22 @@
 Parameters:  
 
 style  (ButtonStyle ButtonStyle.secondary 
label  (str 
label  (str 
 
  
 
 
-__init__ ( * style=<ButtonStyle.secondary:  2> label='Delete' **kwargs ) [source]  
+__init__ ( * style = ('secondary',  2) label = 'Delete' ** kwargs ) [source]  
 
 
 
-async   callback ( interaction ) [source]  
+async   callback ( interaction ) [source] Delete the original message on button click.
 
 Return type:  
-None 
+None 
  
  
@@ -453,47 +457,47 @@
 
 
 
-class   ViewWithUserAndRoleCheck ( * allowed_users allowed_roles timeout = 180.0 message = None ) [source]  
+class   ViewWithUserAndRoleCheck ( * allowed_users allowed_roles timeout = 180.0 message = None ) [source] Bases: View 
 A view that allows the original invoker and moderators to interact with it.
 
 Parameters:  
 
-allowed_users  (Sequence int 
allowed_roles  (Sequence int 
timeout  (Optional float 
allowed_users  (Sequence int 
allowed_roles  (Sequence int 
timeout  (Optional float None 
message  (Optional Message 
message  (Optional Message view.message  =  await  ctx.send(  ...  )` 
 
  
 
 
-__init__ ( * allowed_users allowed_roles timeout = 180.0 message = None ) [source]  
+__init__ ( * allowed_users allowed_roles timeout = 180.0 message = None ) [source]  
 
 
 
-async   interaction_check ( interaction ) [source]  
+async   interaction_check ( interaction ) [source] Ensure the user clicking the button is the view invoker, or a moderator.
 
 Parameters:  
 interaction  (Interaction 
 Return type:  
-bool 
+bool 
  
  
 
 
 
-async   on_timeout ( ) [source]  
+async   on_timeout ( ) [source] Remove the view from self.message 
 
 Return type:  
-None 
+None 
  
  
@@ -580,10 +584,10 @@ If None 
   
-
-    
-    
-    
-    
+
+    
+    
+    
+    
     
 
\ No newline at end of file
diff --git a/v7.4.0-beta1/output/botcore.utils.logging.html b/v7.4.0-beta1/output/botcore.utils.logging.html
index 9bda1752..76a29507 100644
--- a/v7.4.0-beta1/output/botcore.utils.logging.html
+++ b/v7.4.0-beta1/output/botcore.utils.logging.html
@@ -1,18 +1,18 @@
 
-
+
   logging - Pydis Core v7.4.0-beta1 
-      v7.1.1 
                     
                 
+                    
+                        v10.3.0 
+                     
+                
                     
                         v10.2.0 
                      
@@ -417,16 +421,16 @@
         
         
           
-logging 
+logging 
 Common logging related functions.
 
 
-class   CustomLogger ( name level = 0 ) [source]  
-Bases: Logger 
-Custom implementation of the logging.Logger trace 
+class   CustomLogger ( name level = 0 ) [source] Bases: Logger 
+Custom implementation of the logging.Logger trace 
 
 
-trace ( msg * args ** kwargs ) [source]  
+trace ( msg * args ** kwargs ) [source] Log the given message with the severity "TRACE" 
 To pass exception information, use the keyword argument exc_info with a true value:
 logger . trace ( "Houston, we have an  %s " ,  "interesting problem" ,  exc_info = 1 ) 
@@ -435,13 +439,13 @@
 
 Parameters:  
 
-msg  (str 
msg  (str 
args  – Passed to the base log function as is.
kwargs  – Passed to the base log function as is.
 
 Return type:  
-None 
+None 
  
 
@@ -450,11 +454,11 @@
 
 
 
-get_logger ( name = None ) [source]  
+get_logger ( name = None ) [source] Utility to make mypy recognise that logger is of type CustomLogger 
 
 Parameters:  
-name  (Optional str 
+name  (Optional str 
 Return type:  
 CustomLogger 
@@ -539,10 +543,10 @@
       
     
     
-
members - Pydis Core v7.4.0-beta1 
-      v7.1.1 
                     
                 
+                    
+                        v10.3.0 
+                     
+                
                     
                         v10.2.0 
                      
@@ -417,25 +421,25 @@
         
         
             
@@ -524,10 +528,10 @@
       
     
   
-
-    
-    
-    
-    
+
+    
+    
+    
+    
     
 
\ No newline at end of file
diff --git a/v7.4.0-beta1/output/botcore.utils.regex.html b/v7.4.0-beta1/output/botcore.utils.regex.html
index 98db3a6d..bbc900a1 100644
--- a/v7.4.0-beta1/output/botcore.utils.regex.html
+++ b/v7.4.0-beta1/output/botcore.utils.regex.html
@@ -1,18 +1,18 @@
 
-
+
   regex - Pydis Core v7.4.0-beta1 
-      v7.1.1 
                     
                 
+                    
+                        v10.3.0 
+                     
+                
                     
                         v10.2.0 
                      
@@ -417,17 +421,17 @@
         
         
           
-regex 
+regex 
 Common regular expressions.
 
 
-DISCORD_INVITE [source]  
+DISCORD_INVITE [source] Regex for Discord server invites.
 
 Warning
 This regex pattern will capture until a whitespace, if you are to use the ‘invite’ capture group in
 any HTTP requests or similar. Please ensure you sanitise the output using something
-such as urllib.parse.quote() 
+such as 
urllib.parse.quote() .
 
 
 
  
@@ -435,7 +439,7 @@ such as 
 
-FORMATTED_CODE_REGEX [source]  
+FORMATTED_CODE_REGEX  [source] Regex for formatted code, using Discord’s code blocks.
 
  
@@ -443,7 +447,7 @@ such as 
 
-RAW_CODE_REGEX [source]  
+RAW_CODE_REGEX  [source] Regex for raw code, not  using Discord’s code blocks.
 
  
@@ -521,10 +525,10 @@ such as 
-    
-    
-    
-    
+
+    
+    
+    
+    
     
 
\ No newline at end of file
diff --git a/v7.4.0-beta1/output/botcore.utils.scheduling.html b/v7.4.0-beta1/output/botcore.utils.scheduling.html
index 673e6076..8d611423 100644
--- a/v7.4.0-beta1/output/botcore.utils.scheduling.html
+++ b/v7.4.0-beta1/output/botcore.utils.scheduling.html
@@ -1,18 +1,18 @@
 
-
+
   scheduling - Pydis Core v7.4.0-beta1 
-       v7.1.1 
                     
                 
+                    
+                        v10.3.0 
+                     
+                
                     
                         v10.2.0 
                      
@@ -417,12 +421,12 @@
         
         
           
-scheduling 
+scheduling 
 Generic python scheduler.
 
 
-class   Scheduler ( name ) [source]  
-Bases: object 
+class   Scheduler ( name ) [source] Bases: object 
 Schedule the execution of coroutines and keep track of them.
 When instantiating a Scheduler 
 Any exception raised in a scheduled task is logged when the task is done.
 
 
-__contains__ ( task_id ) [source]  
-Return True task_id 
+__contains__ ( task_id ) [source] Return True task_id 
 
 Parameters:  
-task_id  (Hashable 
+task_id  (Hashable 
 Return type:  
-bool 
+bool 
 Returns:  
-True 
+True 
  
  
 
 
 
-__init__ ( name ) [source]  
+__init__ ( name ) [source] Initialize a new Scheduler 
 
 Parameters:  
-name  (str Scheduler 
+name  (str Scheduler 
  
  
 
 
 
-cancel ( task_id ) [source]  
+cancel ( task_id ) [source] Unschedule the task identified by task_id 
 
 Parameters:  
-task_id  (Hashable 
+task_id  (Hashable 
 Return type:  
-None 
+None 
  
  
 
 
 
-cancel_all ( ) [source]  
+cancel_all ( ) [source] Unschedule all known tasks.
 
 Return type:  
-None 
+None 
  
  
 
 
 
-schedule ( task_id coroutine ) [source]  
+schedule ( task_id coroutine ) [source] Schedule the execution of a coroutine 
 If a task with task_id coroutine 
 
 Parameters:  
 
-task_id  (Hashable 
coroutine  (Coroutine 
task_id  (Hashable 
coroutine  (Coroutine 
 
 Return type:  
-None 
+None 
  
  
 
 
 
-schedule_at ( time task_id coroutine ) [source]  
+schedule_at ( time task_id coroutine ) [source] Schedule coroutine time 
 If time time 
@@ -517,33 +521,33 @@ prevents unawaited coroutine warnings. Don’t pass a coroutine that’ll be re-
 
 Parameters:  
 
-time  (datetime 
task_id  (Hashable 
coroutine  (Coroutine 
time  (datetime 
task_id  (Hashable 
coroutine  (Coroutine 
 
 Return type:  
-None 
+None 
  
  
 
 
 
-schedule_later ( delay task_id coroutine ) [source]  
+schedule_later ( delay task_id coroutine ) [source] Schedule coroutine delay 
 If a task with task_id coroutine 
 
 Parameters:  
 
-delay  (Union int float 
task_id  (Hashable 
coroutine  (Coroutine 
delay  (Union int float 
task_id  (Hashable 
coroutine  (Coroutine 
 
 Return type:  
-None 
+None 
  
  
@@ -552,24 +556,24 @@ prevents unawaited coroutine warnings. Don’t pass a coroutine that’ll be re-
 
 
 
-create_task ( coro * suppressed_exceptions = () event_loop = None ** kwargs ) [source]  
-Wrapper for creating an asyncio.Task 
+create_task ( coro * suppressed_exceptions = () event_loop = None ** kwargs ) [source] Wrapper for creating an asyncio.Task 
 If the event_loop 
 
 Parameters:  
 
  
 Returns:  
 The wrapped task.
 Return type:  
-asyncio.Task 
+asyncio.Task 
  
  
@@ -654,10 +658,10 @@ otherwise the running loop is used.
       
     
   
-
-    
-    
-    
-    
+
+    
+    
+    
+    
     
 
\ No newline at end of file
diff --git a/v7.4.0-beta1/py-modindex.html b/v7.4.0-beta1/py-modindex.html
index 09f2e1af..5ea217c4 100644
--- a/v7.4.0-beta1/py-modindex.html
+++ b/v7.4.0-beta1/py-modindex.html
@@ -1,16 +1,16 @@
 
-
+
   Python Module Index - Pydis Core v7.4.0-beta1 
-Python Module Index - Pydis Core v7.4.0-beta1 
+v7.1.1 
                     
                 
+                    
+                        v10.3.0 
+                     
+                
                     
                         v10.2.0 
                      
@@ -531,10 +535,10 @@
       
     
   
-
-    
-    
-    
-    
+
+    
+    
+    
+    
     
 
\ No newline at end of file
diff --git a/v7.4.0-beta1/search.html b/v7.4.0-beta1/search.html
index c1aee61b..e1a16469 100644
--- a/v7.4.0-beta1/search.html
+++ b/v7.4.0-beta1/search.html
@@ -1,15 +1,15 @@
 
-
+
   Search - Pydis Core v7.4.0-beta1 Search - Pydis Core v7.4.0-beta1 v7.1.1 
                     
                 
+                    
+                        v10.3.0 
+                     
+                
                     
                         v10.2.0 
                      
@@ -455,11 +459,11 @@
       
     
   
-
-    
-    
-    
-    
+
+    
+    
+    
+    
     
 
 
diff --git a/v7.4.0-beta1/searchindex.js b/v7.4.0-beta1/searchindex.js
index 73a64905..1360f65d 100644
--- a/v7.4.0-beta1/searchindex.js
+++ b/v7.4.0-beta1/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["changelog", "index", "output/botcore", "output/botcore.async_stats", "output/botcore.exts", "output/botcore.site_api", "output/botcore.utils", "output/botcore.utils.caching", "output/botcore.utils.channel", "output/botcore.utils.interactions", "output/botcore.utils.logging", "output/botcore.utils.members", "output/botcore.utils.regex", "output/botcore.utils.scheduling"], "filenames": ["changelog.rst", "index.rst", "output/botcore.rst", "output/botcore.async_stats.rst", "output/botcore.exts.rst", "output/botcore.site_api.rst", "output/botcore.utils.rst", "output/botcore.utils.caching.rst", "output/botcore.utils.channel.rst", "output/botcore.utils.interactions.rst", "output/botcore.utils.logging.rst", "output/botcore.utils.members.rst", "output/botcore.utils.regex.rst", "output/botcore.utils.scheduling.rst"], "titles": ["Changelog", "Bot Core Project Documentation", "Botcore", "async_stats", "Exts", "site_api", "Utils", "caching", "channel", "interactions", "logging", "members", "regex", "scheduling"], "terms": {"7": 0, "4": 0, "0": [0, 7, 9, 10], "17th": 0, "juli": 0, "2022": 0, "featur": [0, 2], "106": 0, "add": [0, 2], "an": [0, 2, 3, 5, 6, 7, 8, 10, 13], "option": [0, 2, 5, 7, 9, 10, 11], "messag": [0, 2, 9, 10, 13], "attr": 0, "botcor": [0, 1, 9], "util": [0, 1, 2, 7, 9, 10], "interact": [0, 2, 6, 8], "viewwithuserandrolecheck": [0, 2, 6, 9], "On": 0, "view": [0, 9], "timeout": [0, 9], "thi": [0, 2, 6, 8, 9, 11, 12, 13], "ha": [0, 6], "": [0, 6, 7, 9, 10, 12, 13], "remov": [0, 2, 9], "set": [0, 2, 9], "3": 0, "1": [0, 10], "16th": 0, "bug": 0, "104": 0, "fix": 0, "deletemessagebutton": [0, 2, 6, 9], "work": 0, "due": 0, "us": [0, 2, 3, 5, 6, 8, 10, 11, 12, 13], "wrong": 0, "delet": [0, 2, 5, 7, 9], "method": [0, 3, 5, 6, 10], "103": 0, "button": [0, 9], "attach": 0, "its": [0, 2], "parent": [0, 9], "gener": [0, 2, 13], "onli": [0, 2], "allow": [0, 2, 9], "specifi": [0, 9], "user": [0, 9], "role": [0, 2, 9, 11], "2": [0, 2, 9], "9th": 0, "98": 0, "close": [0, 1, 2, 5, 13], "botbas": [0, 1, 2], "stat": [0, 3], "_transport": 0, "wa": [0, 8, 13], "creat": [0, 2, 3, 7, 13], "30th": 0, "june": 0, "91": 0, "miss": 0, "await": [0, 9, 11], "ping_servic": [0, 1, 2], "some": 0, "case": 0, "pass": [0, 5, 10, 11, 13], "self": [0, 2, 9], "paramet": [0, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13], "incorrect": 0, "docstr": 0, "member": [0, 2, 6], "handle_role_chang": [0, 2, 6, 11], "96": 0, "attempt": [0, 2, 8, 11], "connect": [0, 2, 3], "statsd_url": [0, 2], "when": [0, 2, 3, 5, 6, 7, 13], "i": [0, 2, 5, 6, 8, 9, 10, 11, 13], "none": [0, 2, 3, 5, 6, 7, 9, 10, 11, 13], "28th": 0, "support": [0, 3, 6, 13], "93": 0, "bump": 0, "discord": [0, 2, 4, 6, 8, 11, 12], "py": 0, "0eb3d26": 0, "auto": 0, "mod": 0, "which": [0, 6, 13], "new": [0, 3, 5, 7, 13], "auto_mod": 0, "message_typ": 0, "need": 0, "our": [0, 6], "filter": 0, "system": 0, "mai": [0, 7], "79": 0, "restor": 0, "site": [0, 5], "sphinx": 0, "multivers": 0, "make": [0, 10], "avail": [0, 2], "older": 0, "doc": 0, "version": 0, "24th": 0, "78": 0, "4cbe8f5": 0, "permiss": [0, 8], "resolut": 0, "deal": 0, "time": [0, 13], "out": [0, 9], "10th": 0, "break": 0, "75": 0, "invit": [0, 12], "regex": [0, 2, 6], "longer": [0, 9], "return": [0, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13], "url": [0, 2, 5], "safe": 0, "result": [0, 13], "refer": 0, "document": 0, "handl": [0, 11, 13], "captur": [0, 12], "all": [0, 2, 3, 6, 13], "charact": 0, "up": [0, 2], "whitespac": [0, 12], "6": 0, "26th": 0, "april": 0, "72": 0, "5a06fa5": 0, "notabl": 0, "one": [0, 2], "commit": 0, "dynam": 0, "extend": 0, "guild": [0, 2, 11], "chunk": 0, "base": [0, 2, 3, 5, 7, 9, 10, 13], "number": 0, "so": [0, 6], "should": [0, 2, 5, 9], "actual": 0, "now": [0, 13], "25th": 0, "69": 0, "get": [0, 2, 5, 8, 11], "21st": 0, "68": 0, "correct": 0, "pyproject": 0, "toml": 0, "directli": 0, "main": 0, "don": [0, 13], "t": [0, 13], "load": [0, 2, 6], "modul": [0, 2, 6, 13], "start": [0, 2, 13], "_": 0, "66": 0, "each": 0, "cog": [0, 2, 4], "own": 0, "task": [0, 2, 13], "avoid": [0, 2], "singl": 0, "crash": 0, "entir": [0, 2], "process": 0, "20th": 0, "65": 0, "unqualifi": [0, 1, 2, 6], "namespac": [0, 13], "bot": [0, 2, 6, 8], "manipul": 0, "extens": [0, 2], "19th": 0, "64": 0, "987235d": 0, "revert": 0, "chang": 0, "help": 0, "command": [0, 2, 6, 8], "behaviour": 0, "broke": 0, "custom": [0, 7, 10], "pagin": 0, "also": [0, 6, 9], "basic": [0, 9], "forum": 0, "channel": [0, 2, 6], "5": 0, "18th": 0, "63": 0, "api_cli": [0, 2], "__init__": [0, 1, 2, 3, 5, 6, 7, 9, 13], "site_api": [0, 1, 2], "apicli": [0, 1, 2, 5], "instanc": [0, 2, 5, 7, 8, 10, 13], "61": 0, "reconnect": 0, "redi": 0, "session": [0, 2, 5], "setup": [0, 2], "5th": 0, "56": 0, "move": 0, "creation": 0, "asyncio": [0, 3, 13], "event": [0, 2, 3, 13], "_guild_avail": 0, "within": [0, 2], "hook": 0, "deprec": 0, "notic": 0, "dummi": [0, 2], "asyncstatsdcli": 0, "befor": [0, 2, 9, 13], "real": 0, "cannot": [0, 2], "made": 0, "init": [0, 2, 3], "2nd": 0, "54": 0, "aiohttp": [0, 2, 5], "asyncresolv": 0, "async": [0, 2, 3, 5, 7, 8, 9, 11], "42": 0, "public": 0, "statsd": [0, 2, 3], "client": [0, 2, 3], "ext": [0, 1, 2, 6, 8], "sub": [0, 2], "class": [0, 2, 3, 5, 7, 9, 10, 13], "abstract": 0, "lot": 0, "logic": 0, "share": 0, "between": 0, "latest": 0, "alpha": 0, "14th": 0, "march": 0, "39": 0, "migrat": 0, "back": 0, "37": 0, "log": [0, 2, 6, 11, 13], "trace": [0, 6, 10], "import": 0, "can": [0, 9, 13], "function": [0, 2, 7, 8, 10, 11, 13], "3rd": 0, "35": 0, "apply_monkey_patch": [0, 1, 2, 6], "februari": 0, "34": 0, "port": [0, 3], "api": [0, 5, 11], "wrapper": [0, 5, 13], "from": [0, 2, 3, 5, 6, 8, 9, 11, 13], "repo": 0, "22nd": 0, "32": 0, "0a0": 0, "disnak": 0, "29": 0, "mani": [0, 2, 7], "common": [0, 2, 6, 10, 12], "cach": [0, 2, 6, 8, 11], "logger": [0, 10], "schedul": [0, 2, 6], "monkei": [0, 6], "patch": [0, 2, 5, 6], "ad": [0, 6, 9, 10], "intersphinx": 0, "januari": 0, "12": 0, "code": [0, 12], "block": [0, 12], "detect": 0, "decemb": 0, "2021": 0, "autogener": 0, "novemb": 0, "core": 0, "packag": [0, 6], "poetri": 0, "lint": 0, "ci": 0, "add_cog": [1, 2], "add_command": [1, 2], "clear": [1, 2, 6, 7], "load_extens": [1, 2], "log_to_dev_log": [1, 2], "on_guild_avail": [1, 2], "on_guild_unavail": [1, 2], "remove_command": [1, 2], "setup_hook": [1, 2], "wait_until_guild_avail": [1, 2], "startuperror": [1, 2], "subpackag": 1, "submodul": 1, "async_stat": [1, 2], "asyncstatscli": [1, 2, 3], "responsecodeerror": [1, 2, 5], "index": 1, "search": 1, "page": 1, "inform": [1, 10], "changelog": 1, "tool": [2, 6], "develop": [2, 6], "arg": [2, 10], "guild_id": 2, "allowed_rol": [2, 9], "http_session": 2, "redis_sess": 2, "kwarg": [2, 5, 9, 10, 13], "sourc": [2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13], "A": [2, 5, 6, 7, 8, 9, 13], "implement": [2, 3, 7, 9, 10], "python": [2, 13], "initialis": [2, 7], "int": [2, 3, 7, 8, 9, 13], "The": [2, 3, 5, 6, 7, 8, 9, 10, 11, 13], "id": [2, 8, 9, 13], "list": 2, "mention": 2, "clientsess": [2, 5], "redissess": 2, "async_rediscach": 2, "str": [2, 3, 5, 6, 9, 10, 13], "server": [2, 12], "If": [2, 5, 9, 13], "given": [2, 3, 6, 8, 10, 11, 13], "oper": [2, 13], "type": [2, 3, 5, 6, 7, 8, 9, 10, 11, 13], "normal": 2, "root": [2, 6], "alias": [2, 6], "Not": 2, "re": [2, 13], "instanti": [2, 9, 13], "instead": [2, 13], "connector": 2, "resolv": 2, "save": 2, "them": [2, 13], "all_extens": 2, "ran": 2, "loop": [2, 3, 13], "deadlock": 2, "caus": [2, 6], "wait_for": 2, "call": [2, 13], "dev": 2, "intern": [2, 6], "becom": 2, "appear": 2, "still": 2, "empti": 2, "guild_available_but_cache_empti": 2, "emit": 2, "unavail": 2, "ping": 2, "requir": [2, 13], "servic": 2, "ensur": [2, 9, 12], "thei": 2, "ar": [2, 7, 9, 12], "name": [2, 6, 10, 13], "alia": [2, 6], "individu": 2, "To": [2, 10], "either": 2, "manual": 2, "edit": 2, "all_command": 2, "startup": 2, "create_socket": [2, 3], "wait": [2, 13], "until": [2, 12], "match": 2, "readi": 2, "on_readi": 2, "inadequ": 2, "becaus": 2, "second": [2, 9, 13], "guild_creat": 2, "gatewai": 2, "give": 2, "thu": 2, "popul": 2, "except": [2, 5, 10, 13], "error": [2, 5, 6, 11], "asynccach": [2, 6, 7], "get_or_fetch_channel": [2, 6, 8], "is_in_categori": [2, 6, 8], "customlogg": [2, 6, 10], "get_logg": [2, 6, 10], "get_or_fetch_memb": [2, 6, 11], "discord_invit": [2, 6, 12], "formatted_code_regex": [2, 6, 12], "raw_code_regex": [2, 6, 12], "create_task": [2, 6, 13], "maybe_raise_for_statu": [2, 5], "post": [2, 5], "put": [2, 5], "request": [2, 5, 12], "__str__": [2, 5], "transport": 3, "commun": 3, "host": 3, "localhost": 3, "8125": 3, "prefix": 3, "statsclientbas": 3, "abstracteventloop": [3, 13], "create_datagram_endpoint": 3, "socket": 3, "reusabl": 4, "around": 5, "site_api_url": 5, "site_api_token": 5, "session_kwarg": 5, "object": [5, 6, 7, 8, 11, 13], "django": 5, "initi": [5, 13], "token": 5, "authent": 5, "keyword": [5, 6, 10], "argument": [5, 6, 7, 10, 11], "constructor": 5, "endpoint": 5, "raise_for_statu": 5, "true": [5, 10, 13], "send": [5, 9], "json": 5, "respons": 5, "bool": [5, 8, 9, 13], "whether": [5, 8], "rais": [5, 8, 11, 13], "ok": 5, "ani": [5, 12, 13], "extra": 5, "dict": 5, "204": 5, "No": 5, "content": 5, "equival": 5, "static": 5, "should_rais": 5, "non": 5, "clientrespons": 5, "check": [5, 8, 9, 13], "http": [5, 12], "response_json": 5, "response_text": 5, "valueerror": 5, "receiv": [5, 8], "text": 5, "string": 5, "represent": 5, "appli": [6, 7], "group": [6, 12], "root_alias": 6, "two": 6, "sequenc": [6, 9], "act": 6, "top": 6, "level": [6, 10], "rather": 6, "than": 6, "being": [6, 11], "It": 6, "store": [6, 7], "attribut": 6, "send_typ": 6, "ignor": 6, "403": 6, "under": 6, "heavi": 6, "cloudflar": 6, "worker": 6, "rout": 6, "thrown": 6, "qualifi": 6, "__call__": [6, 7], "callback": [6, 9], "interaction_check": [6, 9], "on_timeout": [6, 9], "__contains__": [6, 13], "cancel": [6, 13], "cancel_al": [6, 13], "schedule_at": [6, 13], "schedule_lat": [6, 13], "relat": [7, 10], "max_siz": 7, "128": 7, "lru": 7, "coroutin": [7, 11, 13], "onc": 7, "exce": 7, "maximum": 7, "size": 7, "kei": 7, "fifo": 7, "order": [7, 13], "offset": 7, "provid": [7, 13], "arg_offset": 7, "decor": 7, "posit": 7, "callabl": [7, 11], "wrap": [7, 13], "target": 7, "how": [7, 13], "item": 7, "helper": [8, 11], "variou": 8, "channel_id": 8, "fetch": [8, 11], "invaliddata": 8, "unknown": 8, "httpexcept": 8, "retriev": 8, "fail": 8, "notfound": 8, "invalid": 8, "forbidden": 8, "you": [8, 12], "do": 8, "have": [8, 10], "guildchannel": 8, "category_id": 8, "categori": 8, "textchannel": 8, "depend": 8, "style": 9, "buttonstyl": 9, "secondari": 9, "label": 9, "contain": [9, 13], "click": 9, "itself": 9, "carri": 9, "done": [9, 13], "see": 9, "origin": 9, "allowed_us": 9, "180": 9, "invok": 9, "moder": 9, "who": 9, "float": [9, 13], "last": 9, "ui": 9, "accept": 9, "input": 9, "ctx": 9, "similar": [9, 12], "after": [9, 13], "occur": 9, "msg": 10, "sever": 10, "exc_info": 10, "valu": 10, "houston": 10, "we": [10, 11], "interest": 10, "problem": 10, "mypi": 10, "recognis": 10, "interactin": 11, "member_id": 11, "failur": 11, "indic": 11, "could": 11, "found": [11, 13], "coro": [11, 13], "sole": 11, "expect": 11, "add_rol": 11, "remove_rol": 11, "modifi": 11, "purpos": 11, "intend": 11, "regular": 12, "express": 12, "pattern": 12, "pleas": 12, "sanitis": 12, "output": 12, "someth": 12, "urllib": 12, "pars": 12, "quot": 12, "format": 12, "raw": 12, "execut": 13, "keep": 13, "track": 13, "must": 13, "distinguish": 13, "other": 13, "suggest": 13, "immedi": 13, "futur": 13, "uniqu": 13, "prematur": 13, "same": 13, "current": 13, "task_id": 13, "hashabl": 13, "look": 13, "unschedul": 13, "identifi": 13, "warn": 13, "doesn": 13, "exist": 13, "known": 13, "alreadi": 13, "prevent": 13, "unawait": 13, "ll": 13, "elsewher": 13, "timezon": 13, "awar": 13, "calcul": 13, "subtract": 13, "na\u00efv": 13, "utc": 13, "past": 13, "datetim": 13, "delai": 13, "union": 13, "long": 13, "suppressed_except": 13, "event_loop": 13, "otherwis": 13, "run": 13, "typevar": 13, "task_return": 13, "tupl": 13}, "objects": {"": [[2, 0, 0, "-", "botcore"]], "botcore": [[2, 1, 1, "", "BotBase"], [2, 3, 1, "", "StartupError"], [3, 0, 0, "-", "async_stats"], [4, 0, 0, "-", "exts"], [5, 0, 0, "-", "site_api"], [6, 0, 0, "-", "utils"]], "botcore.BotBase": [[2, 2, 1, "", "__init__"], [2, 2, 1, "", "add_cog"], [2, 2, 1, "", "add_command"], [2, 2, 1, "", "clear"], [2, 2, 1, "", "close"], [2, 2, 1, "", "load_extensions"], [2, 2, 1, "", "log_to_dev_log"], [2, 2, 1, "", "on_guild_available"], [2, 2, 1, "", "on_guild_unavailable"], [2, 2, 1, "", "ping_services"], [2, 2, 1, "", "remove_command"], [2, 2, 1, "", "setup_hook"], [2, 2, 1, "", "wait_until_guild_available"]], "botcore.StartupError": [[2, 2, 1, "", "__init__"]], "botcore.async_stats": [[3, 1, 1, "", "AsyncStatsClient"]], "botcore.async_stats.AsyncStatsClient": [[3, 2, 1, "", "__init__"], [3, 2, 1, "", "create_socket"]], "botcore.site_api": [[5, 1, 1, "", "APIClient"], [5, 3, 1, "", "ResponseCodeError"]], "botcore.site_api.APIClient": [[5, 2, 1, "", "__init__"], [5, 2, 1, "", "close"], [5, 2, 1, "", "delete"], [5, 2, 1, "", "get"], [5, 2, 1, "", "maybe_raise_for_status"], [5, 2, 1, "", "patch"], [5, 2, 1, "", "post"], [5, 2, 1, "", "put"], [5, 2, 1, "", "request"]], "botcore.site_api.ResponseCodeError": [[5, 2, 1, "", "__init__"], [5, 2, 1, "", "__str__"]], "botcore.utils": [[6, 4, 1, "", "apply_monkey_patches"], [7, 0, 0, "-", "caching"], [8, 0, 0, "-", "channel"], [9, 0, 0, "-", "interactions"], [10, 0, 0, "-", "logging"], [11, 0, 0, "-", "members"], [12, 0, 0, "-", "regex"], [13, 0, 0, "-", "scheduling"], [6, 4, 1, "", "unqualify"]], "botcore.utils.caching": [[7, 1, 1, "", "AsyncCache"]], "botcore.utils.caching.AsyncCache": [[7, 2, 1, "", "__call__"], [7, 2, 1, "", "__init__"], [7, 2, 1, "", "clear"]], "botcore.utils.channel": [[8, 4, 1, "", "get_or_fetch_channel"], [8, 4, 1, "", "is_in_category"]], "botcore.utils.interactions": [[9, 1, 1, "", "DeleteMessageButton"], [9, 1, 1, "", "ViewWithUserAndRoleCheck"]], "botcore.utils.interactions.DeleteMessageButton": [[9, 2, 1, "", "__init__"], [9, 2, 1, "", "callback"]], "botcore.utils.interactions.ViewWithUserAndRoleCheck": [[9, 2, 1, "", "__init__"], [9, 2, 1, "", "interaction_check"], [9, 2, 1, "", "on_timeout"]], "botcore.utils.logging": [[10, 1, 1, "", "CustomLogger"], [10, 4, 1, "", "get_logger"]], "botcore.utils.logging.CustomLogger": [[10, 2, 1, "", "trace"]], "botcore.utils.members": [[11, 4, 1, "", "get_or_fetch_member"], [11, 4, 1, "", "handle_role_change"]], "botcore.utils.regex": [[12, 5, 1, "", "DISCORD_INVITE"], [12, 5, 1, "", "FORMATTED_CODE_REGEX"], [12, 5, 1, "", "RAW_CODE_REGEX"]], "botcore.utils.scheduling": [[13, 1, 1, "", "Scheduler"], [13, 4, 1, "", "create_task"]], "botcore.utils.scheduling.Scheduler": [[13, 2, 1, "", "__contains__"], [13, 2, 1, "", "__init__"], [13, 2, 1, "", "cancel"], [13, 2, 1, "", "cancel_all"], [13, 2, 1, "", "schedule"], [13, 2, 1, "", "schedule_at"], [13, 2, 1, "", "schedule_later"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:exception", "4": "py:function", "5": "py:data"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "exception", "Python exception"], "4": ["py", "function", "Python function"], "5": ["py", "data", "Python data"]}, "titleterms": {"changelog": 0, "bot": 1, "core": 1, "project": 1, "document": 1, "refer": 1, "modul": 1, "extra": 1, "botcor": 2, "subpackag": 2, "submodul": [2, 6], "async_stat": 3, "ext": 4, "site_api": 5, "util": 6, "cach": 7, "channel": 8, "interact": 9, "log": 10, "member": 11, "regex": 12, "schedul": 13}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx": 57}, "alltitles": {"Utils": [[6, "module-botcore.utils"]], "Submodules": [[6, "submodules"], [2, "submodules"]], "site_api": [[5, "module-botcore.site_api"]], "Bot Core Project Documentation": [[1, "bot-core-project-documentation"]], "Reference": [[1, "reference"]], "Modules:": [[1, null]], "Extras": [[1, "extras"]], "Exts": [[4, "module-botcore.exts"]], "async_stats": [[3, "module-botcore.async_stats"]], "Changelog": [[0, "changelog"]], "Botcore": [[2, "module-botcore"]], "Subpackages": [[2, "subpackages"]], "logging": [[10, "module-botcore.utils.logging"]], "caching": [[7, "module-botcore.utils.caching"]], "interactions": [[9, "module-botcore.utils.interactions"]], "regex": [[12, "module-botcore.utils.regex"]], "scheduling": [[13, "module-botcore.utils.scheduling"]], "channel": [[8, "module-botcore.utils.channel"]], "members": [[11, "module-botcore.utils.members"]]}, "indexentries": {"botbase (class in botcore)": [[2, "botcore.BotBase"]], "startuperror": [[2, "botcore.StartupError"]], "__init__() (botbase method)": [[2, "botcore.BotBase.__init__"]], "__init__() (startuperror method)": [[2, "botcore.StartupError.__init__"]], "add_cog() (botbase method)": [[2, "botcore.BotBase.add_cog"]], "add_command() (botbase method)": [[2, "botcore.BotBase.add_command"]], "botcore": [[2, "module-botcore"]], "clear() (botbase method)": [[2, "botcore.BotBase.clear"]], "close() (botbase method)": [[2, "botcore.BotBase.close"]], "load_extensions() (botbase method)": [[2, "botcore.BotBase.load_extensions"]], "log_to_dev_log() (botbase method)": [[2, "botcore.BotBase.log_to_dev_log"]], "module": [[2, "module-botcore"], [3, "module-botcore.async_stats"], [4, "module-botcore.exts"], [5, "module-botcore.site_api"], [6, "module-botcore.utils"], [7, "module-botcore.utils.caching"], [8, "module-botcore.utils.channel"], [9, "module-botcore.utils.interactions"], [10, "module-botcore.utils.logging"], [11, "module-botcore.utils.members"], [12, "module-botcore.utils.regex"], [13, "module-botcore.utils.scheduling"]], "on_guild_available() (botbase method)": [[2, "botcore.BotBase.on_guild_available"]], "on_guild_unavailable() (botbase method)": [[2, "botcore.BotBase.on_guild_unavailable"]], "ping_services() (botbase method)": [[2, "botcore.BotBase.ping_services"]], "remove_command() (botbase method)": [[2, "botcore.BotBase.remove_command"]], "setup_hook() (botbase method)": [[2, "botcore.BotBase.setup_hook"]], "wait_until_guild_available() (botbase method)": [[2, "botcore.BotBase.wait_until_guild_available"]], "asyncstatsclient (class in botcore.async_stats)": [[3, "botcore.async_stats.AsyncStatsClient"]], "__init__() (asyncstatsclient method)": [[3, "botcore.async_stats.AsyncStatsClient.__init__"]], "botcore.async_stats": [[3, "module-botcore.async_stats"]], "create_socket() (asyncstatsclient method)": [[3, "botcore.async_stats.AsyncStatsClient.create_socket"]], "botcore.exts": [[4, "module-botcore.exts"]], "apiclient (class in botcore.site_api)": [[5, "botcore.site_api.APIClient"]], "responsecodeerror": [[5, "botcore.site_api.ResponseCodeError"]], "__init__() (apiclient method)": [[5, "botcore.site_api.APIClient.__init__"]], "__init__() (responsecodeerror method)": [[5, "botcore.site_api.ResponseCodeError.__init__"]], "__str__() (responsecodeerror method)": [[5, "botcore.site_api.ResponseCodeError.__str__"]], "botcore.site_api": [[5, "module-botcore.site_api"]], "close() (apiclient method)": [[5, "botcore.site_api.APIClient.close"]], "delete() (apiclient method)": [[5, "botcore.site_api.APIClient.delete"]], "get() (apiclient method)": [[5, "botcore.site_api.APIClient.get"]], "maybe_raise_for_status() (apiclient static method)": [[5, "botcore.site_api.APIClient.maybe_raise_for_status"]], "patch() (apiclient method)": [[5, "botcore.site_api.APIClient.patch"]], "post() (apiclient method)": [[5, "botcore.site_api.APIClient.post"]], "put() (apiclient method)": [[5, "botcore.site_api.APIClient.put"]], "request() (apiclient method)": [[5, "botcore.site_api.APIClient.request"]], "apply_monkey_patches() (in module botcore.utils)": [[6, "botcore.utils.apply_monkey_patches"]], "botcore.utils": [[6, "module-botcore.utils"]], "unqualify() (in module botcore.utils)": [[6, "botcore.utils.unqualify"]], "asynccache (class in botcore.utils.caching)": [[7, "botcore.utils.caching.AsyncCache"]], "__call__() (asynccache method)": [[7, "botcore.utils.caching.AsyncCache.__call__"]], "__init__() (asynccache method)": [[7, "botcore.utils.caching.AsyncCache.__init__"]], "botcore.utils.caching": [[7, "module-botcore.utils.caching"]], "clear() (asynccache method)": [[7, "botcore.utils.caching.AsyncCache.clear"]], "botcore.utils.channel": [[8, "module-botcore.utils.channel"]], "get_or_fetch_channel() (in module botcore.utils.channel)": [[8, "botcore.utils.channel.get_or_fetch_channel"]], "is_in_category() (in module botcore.utils.channel)": [[8, "botcore.utils.channel.is_in_category"]], "deletemessagebutton (class in botcore.utils.interactions)": [[9, "botcore.utils.interactions.DeleteMessageButton"]], "viewwithuserandrolecheck (class in botcore.utils.interactions)": [[9, "botcore.utils.interactions.ViewWithUserAndRoleCheck"]], "__init__() (deletemessagebutton method)": [[9, "botcore.utils.interactions.DeleteMessageButton.__init__"]], "__init__() (viewwithuserandrolecheck method)": [[9, "botcore.utils.interactions.ViewWithUserAndRoleCheck.__init__"]], "botcore.utils.interactions": [[9, "module-botcore.utils.interactions"]], "callback() (deletemessagebutton method)": [[9, "botcore.utils.interactions.DeleteMessageButton.callback"]], "interaction_check() (viewwithuserandrolecheck method)": [[9, "botcore.utils.interactions.ViewWithUserAndRoleCheck.interaction_check"]], "on_timeout() (viewwithuserandrolecheck method)": [[9, "botcore.utils.interactions.ViewWithUserAndRoleCheck.on_timeout"]], "customlogger (class in botcore.utils.logging)": [[10, "botcore.utils.logging.CustomLogger"]], "botcore.utils.logging": [[10, "module-botcore.utils.logging"]], "get_logger() (in module botcore.utils.logging)": [[10, "botcore.utils.logging.get_logger"]], "trace() (customlogger method)": [[10, "botcore.utils.logging.CustomLogger.trace"]], "botcore.utils.members": [[11, "module-botcore.utils.members"]], "get_or_fetch_member() (in module botcore.utils.members)": [[11, "botcore.utils.members.get_or_fetch_member"]], "handle_role_change() (in module botcore.utils.members)": [[11, "botcore.utils.members.handle_role_change"]], "discord_invite (in module botcore.utils.regex)": [[12, "botcore.utils.regex.DISCORD_INVITE"]], "formatted_code_regex (in module botcore.utils.regex)": [[12, "botcore.utils.regex.FORMATTED_CODE_REGEX"]], "raw_code_regex (in module botcore.utils.regex)": [[12, "botcore.utils.regex.RAW_CODE_REGEX"]], "botcore.utils.regex": [[12, "module-botcore.utils.regex"]], "scheduler (class in botcore.utils.scheduling)": [[13, "botcore.utils.scheduling.Scheduler"]], "__contains__() (scheduler method)": [[13, "botcore.utils.scheduling.Scheduler.__contains__"]], "__init__() (scheduler method)": [[13, "botcore.utils.scheduling.Scheduler.__init__"]], "botcore.utils.scheduling": [[13, "module-botcore.utils.scheduling"]], "cancel() (scheduler method)": [[13, "botcore.utils.scheduling.Scheduler.cancel"]], "cancel_all() (scheduler method)": [[13, "botcore.utils.scheduling.Scheduler.cancel_all"]], "create_task() (in module botcore.utils.scheduling)": [[13, "botcore.utils.scheduling.create_task"]], "schedule() (scheduler method)": [[13, "botcore.utils.scheduling.Scheduler.schedule"]], "schedule_at() (scheduler method)": [[13, "botcore.utils.scheduling.Scheduler.schedule_at"]], "schedule_later() (scheduler method)": [[13, "botcore.utils.scheduling.Scheduler.schedule_later"]]}})
\ No newline at end of file
+Search.setIndex({"docnames": ["changelog", "index", "output/botcore", "output/botcore.async_stats", "output/botcore.exts", "output/botcore.site_api", "output/botcore.utils", "output/botcore.utils.caching", "output/botcore.utils.channel", "output/botcore.utils.interactions", "output/botcore.utils.logging", "output/botcore.utils.members", "output/botcore.utils.regex", "output/botcore.utils.scheduling"], "filenames": ["changelog.rst", "index.rst", "output/botcore.rst", "output/botcore.async_stats.rst", "output/botcore.exts.rst", "output/botcore.site_api.rst", "output/botcore.utils.rst", "output/botcore.utils.caching.rst", "output/botcore.utils.channel.rst", "output/botcore.utils.interactions.rst", "output/botcore.utils.logging.rst", "output/botcore.utils.members.rst", "output/botcore.utils.regex.rst", "output/botcore.utils.scheduling.rst"], "titles": ["Changelog", "Bot Core Project Documentation", "Botcore", "async_stats", "Exts", "site_api", "Utils", "caching", "channel", "interactions", "logging", "members", "regex", "scheduling"], "terms": {"7": 0, "4": 0, "0": [0, 7, 9, 10], "17th": 0, "juli": 0, "2022": 0, "featur": [0, 2], "106": 0, "add": [0, 2], "an": [0, 2, 3, 5, 6, 7, 8, 10, 13], "option": [0, 2, 5, 7, 9, 10, 11], "messag": [0, 2, 9, 10, 13], "attr": 0, "botcor": [0, 1, 9], "util": [0, 1, 2, 7, 9, 10], "interact": [0, 2, 6, 8], "viewwithuserandrolecheck": [0, 2, 6, 9], "On": 0, "view": [0, 9], "timeout": [0, 9], "thi": [0, 2, 6, 8, 9, 11, 12, 13], "ha": [0, 6], "": [0, 6, 7, 9, 10, 12, 13], "remov": [0, 2, 9], "set": [0, 2, 9], "3": 0, "1": [0, 10], "16th": 0, "bug": 0, "104": 0, "fix": 0, "deletemessagebutton": [0, 2, 6, 9], "work": 0, "due": 0, "us": [0, 2, 3, 5, 6, 8, 10, 11, 12, 13], "wrong": 0, "delet": [0, 2, 5, 7, 9], "method": [0, 3, 5, 6, 10], "103": 0, "button": [0, 9], "attach": 0, "its": [0, 2], "parent": [0, 9], "gener": [0, 2, 13], "onli": [0, 2], "allow": [0, 2, 9], "specifi": [0, 9], "user": [0, 9], "role": [0, 2, 9, 11], "2": [0, 2, 9], "9th": 0, "98": 0, "close": [0, 1, 2, 5, 13], "botbas": [0, 1, 2], "stat": [0, 3], "_transport": 0, "wa": [0, 8, 13], "creat": [0, 2, 3, 7, 13], "30th": 0, "june": 0, "91": 0, "miss": 0, "await": [0, 9, 11], "ping_servic": [0, 1, 2], "some": 0, "case": 0, "pass": [0, 5, 10, 11, 13], "self": [0, 2, 9], "paramet": [0, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13], "incorrect": 0, "docstr": 0, "member": [0, 2, 6], "handle_role_chang": [0, 2, 6, 11], "96": 0, "attempt": [0, 2, 8, 11], "connect": [0, 2, 3], "statsd_url": [0, 2], "when": [0, 2, 3, 5, 6, 7, 13], "i": [0, 2, 5, 6, 8, 9, 10, 11, 13], "none": [0, 2, 3, 5, 6, 7, 9, 10, 11, 13], "28th": 0, "support": [0, 3, 6, 13], "93": 0, "bump": 0, "discord": [0, 2, 4, 6, 8, 11, 12], "py": 0, "0eb3d26": 0, "auto": 0, "mod": 0, "which": [0, 6, 13], "new": [0, 3, 5, 7, 13], "auto_mod": 0, "message_typ": 0, "need": 0, "our": [0, 6], "filter": 0, "system": 0, "mai": [0, 7], "79": 0, "restor": 0, "site": [0, 5], "sphinx": 0, "multivers": 0, "make": [0, 10], "avail": [0, 2], "older": 0, "doc": 0, "version": 0, "24th": 0, "78": 0, "4cbe8f5": 0, "permiss": [0, 8], "resolut": 0, "deal": 0, "time": [0, 13], "out": [0, 9], "10th": 0, "break": 0, "75": 0, "invit": [0, 12], "regex": [0, 2, 6], "longer": [0, 9], "return": [0, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13], "url": [0, 2, 5], "safe": 0, "result": [0, 13], "refer": 0, "document": 0, "handl": [0, 11, 13], "captur": [0, 12], "all": [0, 2, 3, 6, 13], "charact": 0, "up": [0, 2], "whitespac": [0, 12], "6": 0, "26th": 0, "april": 0, "72": 0, "5a06fa5": 0, "notabl": 0, "one": [0, 2], "commit": 0, "dynam": 0, "extend": 0, "guild": [0, 2, 11], "chunk": 0, "base": [0, 2, 3, 5, 7, 9, 10, 13], "number": 0, "so": [0, 6], "should": [0, 2, 5, 9], "actual": 0, "now": [0, 13], "25th": 0, "69": 0, "get": [0, 2, 5, 8, 11], "21st": 0, "68": 0, "correct": 0, "pyproject": 0, "toml": 0, "directli": 0, "main": 0, "don": [0, 13], "t": [0, 13], "load": [0, 2, 6], "modul": [0, 2, 6, 13], "start": [0, 2, 13], "_": 0, "66": 0, "each": 0, "cog": [0, 2, 4], "own": 0, "task": [0, 2, 13], "avoid": [0, 2], "singl": 0, "crash": 0, "entir": [0, 2], "process": 0, "20th": 0, "65": 0, "unqualifi": [0, 1, 2, 6], "namespac": [0, 13], "bot": [0, 2, 6, 8], "manipul": 0, "extens": [0, 2], "19th": 0, "64": 0, "987235d": 0, "revert": 0, "chang": 0, "help": 0, "command": [0, 2, 6, 8], "behaviour": 0, "broke": 0, "custom": [0, 7, 10], "pagin": 0, "also": [0, 6, 9], "basic": [0, 9], "forum": 0, "channel": [0, 2, 6], "5": 0, "18th": 0, "63": 0, "api_cli": [0, 2], "__init__": [0, 1, 2, 3, 5, 6, 7, 9, 13], "site_api": [0, 1, 2], "apicli": [0, 1, 2, 5], "instanc": [0, 2, 5, 7, 8, 10, 13], "61": 0, "reconnect": 0, "redi": 0, "session": [0, 2, 5], "setup": [0, 2], "5th": 0, "56": 0, "move": 0, "creation": 0, "asyncio": [0, 3, 13], "event": [0, 2, 3, 13], "_guild_avail": 0, "within": [0, 2], "hook": 0, "deprec": 0, "notic": 0, "dummi": [0, 2], "asyncstatsdcli": 0, "befor": [0, 2, 9, 13], "real": 0, "cannot": [0, 2], "made": 0, "init": [0, 2, 3], "2nd": 0, "54": 0, "aiohttp": [0, 2, 5], "asyncresolv": 0, "async": [0, 2, 3, 5, 7, 8, 9, 11], "42": 0, "public": 0, "statsd": [0, 2, 3], "client": [0, 2, 3], "ext": [0, 1, 2, 6, 8], "sub": [0, 2], "class": [0, 2, 3, 5, 7, 9, 10, 13], "abstract": 0, "lot": 0, "logic": 0, "share": 0, "between": 0, "latest": 0, "alpha": 0, "14th": 0, "march": 0, "39": 0, "migrat": 0, "back": 0, "37": 0, "log": [0, 2, 6, 11, 13], "trace": [0, 6, 10], "import": 0, "can": [0, 9, 13], "function": [0, 2, 7, 8, 10, 11, 13], "3rd": 0, "35": 0, "apply_monkey_patch": [0, 1, 2, 6], "februari": 0, "34": 0, "port": [0, 3], "api": [0, 5, 11], "wrapper": [0, 5, 13], "from": [0, 2, 3, 5, 6, 8, 9, 11, 13], "repo": 0, "22nd": 0, "32": 0, "0a0": 0, "disnak": 0, "29": 0, "mani": [0, 2, 7], "common": [0, 2, 6, 10, 12], "cach": [0, 2, 6, 8, 11], "logger": [0, 10], "schedul": [0, 2, 6], "monkei": [0, 6], "patch": [0, 2, 5, 6], "ad": [0, 6, 9, 10], "intersphinx": 0, "januari": 0, "12": 0, "code": [0, 12], "block": [0, 12], "detect": 0, "decemb": 0, "2021": 0, "autogener": 0, "novemb": 0, "core": 0, "packag": [0, 6], "poetri": 0, "lint": 0, "ci": 0, "add_cog": [1, 2], "add_command": [1, 2], "clear": [1, 2, 6, 7], "load_extens": [1, 2], "log_to_dev_log": [1, 2], "on_guild_avail": [1, 2], "on_guild_unavail": [1, 2], "remove_command": [1, 2], "setup_hook": [1, 2], "wait_until_guild_avail": [1, 2], "startuperror": [1, 2], "subpackag": 1, "submodul": 1, "async_stat": [1, 2], "asyncstatscli": [1, 2, 3], "responsecodeerror": [1, 2, 5], "index": 1, "search": 1, "page": 1, "inform": [1, 10], "changelog": 1, "tool": [2, 6], "develop": [2, 6], "arg": [2, 10], "guild_id": 2, "allowed_rol": [2, 9], "http_session": 2, "redis_sess": 2, "kwarg": [2, 5, 9, 10, 13], "sourc": [2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13], "A": [2, 5, 6, 7, 8, 9, 13], "implement": [2, 3, 7, 9, 10], "python": [2, 13], "initialis": [2, 7], "int": [2, 3, 7, 8, 9, 13], "The": [2, 3, 5, 6, 7, 8, 9, 10, 11, 13], "id": [2, 8, 9, 13], "list": 2, "mention": 2, "clientsess": [2, 5], "redissess": 2, "async_rediscach": 2, "str": [2, 3, 5, 6, 9, 10, 13], "server": [2, 12], "If": [2, 5, 9, 13], "given": [2, 3, 6, 8, 10, 11, 13], "oper": [2, 13], "type": [2, 3, 5, 6, 7, 8, 9, 10, 11, 13], "normal": 2, "root": [2, 6], "alias": [2, 6], "Not": 2, "re": [2, 13], "instanti": [2, 9, 13], "instead": [2, 13], "connector": 2, "resolv": 2, "save": 2, "them": [2, 13], "all_extens": 2, "ran": 2, "loop": [2, 3, 13], "deadlock": 2, "caus": [2, 6], "wait_for": 2, "call": [2, 13], "dev": 2, "intern": [2, 6], "becom": 2, "appear": 2, "still": 2, "empti": 2, "guild_available_but_cache_empti": 2, "emit": 2, "unavail": 2, "ping": 2, "requir": [2, 13], "servic": 2, "ensur": [2, 9, 12], "thei": 2, "ar": [2, 7, 9, 12], "name": [2, 6, 10, 13], "alia": [2, 6], "individu": 2, "To": [2, 10], "either": 2, "manual": 2, "edit": 2, "all_command": 2, "startup": 2, "create_socket": [2, 3], "wait": [2, 13], "until": [2, 12], "match": 2, "readi": 2, "on_readi": 2, "inadequ": 2, "becaus": 2, "second": [2, 9, 13], "guild_creat": 2, "gatewai": 2, "give": 2, "thu": 2, "popul": 2, "except": [2, 5, 10, 13], "error": [2, 5, 6, 11], "asynccach": [2, 6, 7], "get_or_fetch_channel": [2, 6, 8], "is_in_categori": [2, 6, 8], "customlogg": [2, 6, 10], "get_logg": [2, 6, 10], "get_or_fetch_memb": [2, 6, 11], "discord_invit": [2, 6, 12], "formatted_code_regex": [2, 6, 12], "raw_code_regex": [2, 6, 12], "create_task": [2, 6, 13], "maybe_raise_for_statu": [2, 5], "post": [2, 5], "put": [2, 5], "request": [2, 5, 12], "__str__": [2, 5], "transport": 3, "commun": 3, "host": 3, "localhost": 3, "8125": 3, "prefix": 3, "statsclientbas": 3, "abstracteventloop": [3, 13], "create_datagram_endpoint": 3, "socket": 3, "reusabl": 4, "around": 5, "site_api_url": 5, "site_api_token": 5, "session_kwarg": 5, "object": [5, 6, 7, 8, 11, 13], "django": 5, "initi": [5, 13], "token": 5, "authent": 5, "keyword": [5, 6, 10], "argument": [5, 6, 7, 10, 11], "constructor": 5, "endpoint": 5, "raise_for_statu": 5, "true": [5, 10, 13], "send": [5, 9], "json": 5, "respons": 5, "bool": [5, 8, 9, 13], "whether": [5, 8], "rais": [5, 8, 11, 13], "ok": 5, "ani": [5, 12, 13], "extra": 5, "dict": 5, "204": 5, "No": 5, "content": 5, "equival": 5, "static": 5, "should_rais": 5, "non": 5, "clientrespons": 5, "check": [5, 8, 9, 13], "http": [5, 12], "response_json": 5, "response_text": 5, "valueerror": 5, "receiv": [5, 8], "text": 5, "string": 5, "represent": 5, "appli": [6, 7], "group": [6, 12], "root_alias": 6, "two": 6, "sequenc": [6, 9], "act": 6, "top": 6, "level": [6, 10], "rather": 6, "than": 6, "being": [6, 11], "It": 6, "store": [6, 7], "attribut": 6, "send_typ": 6, "ignor": 6, "403": 6, "under": 6, "heavi": 6, "cloudflar": 6, "worker": 6, "rout": 6, "thrown": 6, "qualifi": 6, "__call__": [6, 7], "callback": [6, 9], "interaction_check": [6, 9], "on_timeout": [6, 9], "__contains__": [6, 13], "cancel": [6, 13], "cancel_al": [6, 13], "schedule_at": [6, 13], "schedule_lat": [6, 13], "relat": [7, 10], "max_siz": 7, "128": 7, "lru": 7, "coroutin": [7, 11, 13], "onc": 7, "exce": 7, "maximum": 7, "size": 7, "kei": 7, "fifo": 7, "order": [7, 13], "offset": 7, "provid": [7, 13], "arg_offset": 7, "decor": 7, "posit": 7, "callabl": [7, 11], "wrap": [7, 13], "target": 7, "how": [7, 13], "item": 7, "helper": [8, 11], "variou": 8, "channel_id": 8, "fetch": [8, 11], "invaliddata": 8, "unknown": 8, "httpexcept": 8, "retriev": 8, "fail": 8, "notfound": 8, "invalid": 8, "forbidden": 8, "you": [8, 12], "do": 8, "have": [8, 10], "guildchannel": 8, "category_id": 8, "categori": 8, "textchannel": 8, "depend": 8, "style": 9, "secondari": 9, "label": 9, "contain": [9, 13], "click": 9, "itself": 9, "carri": 9, "done": [9, 13], "see": 9, "buttonstyl": 9, "origin": 9, "allowed_us": 9, "180": 9, "invok": 9, "moder": 9, "who": 9, "float": [9, 13], "last": 9, "ui": 9, "accept": 9, "input": 9, "ctx": 9, "similar": [9, 12], "after": [9, 13], "occur": 9, "msg": 10, "sever": 10, "exc_info": 10, "valu": 10, "houston": 10, "we": [10, 11], "interest": 10, "problem": 10, "mypi": 10, "recognis": 10, "interactin": 11, "member_id": 11, "failur": 11, "indic": 11, "could": 11, "found": [11, 13], "coro": [11, 13], "sole": 11, "expect": 11, "add_rol": 11, "remove_rol": 11, "modifi": 11, "purpos": 11, "intend": 11, "regular": 12, "express": 12, "pattern": 12, "pleas": 12, "sanitis": 12, "output": 12, "someth": 12, "urllib": 12, "pars": 12, "quot": 12, "format": 12, "raw": 12, "execut": 13, "keep": 13, "track": 13, "must": 13, "distinguish": 13, "other": 13, "suggest": 13, "immedi": 13, "futur": 13, "uniqu": 13, "prematur": 13, "same": 13, "current": 13, "task_id": 13, "hashabl": 13, "look": 13, "unschedul": 13, "identifi": 13, "warn": 13, "doesn": 13, "exist": 13, "known": 13, "alreadi": 13, "prevent": 13, "unawait": 13, "ll": 13, "elsewher": 13, "timezon": 13, "awar": 13, "calcul": 13, "subtract": 13, "na\u00efv": 13, "utc": 13, "past": 13, "datetim": 13, "delai": 13, "union": 13, "long": 13, "suppressed_except": 13, "event_loop": 13, "otherwis": 13, "run": 13, "typevar": 13, "task_return": 13, "tupl": 13}, "objects": {"": [[2, 0, 0, "-", "botcore"]], "botcore": [[2, 1, 1, "", "BotBase"], [2, 3, 1, "", "StartupError"], [3, 0, 0, "-", "async_stats"], [4, 0, 0, "-", "exts"], [5, 0, 0, "-", "site_api"], [6, 0, 0, "-", "utils"]], "botcore.BotBase": [[2, 2, 1, "", "__init__"], [2, 2, 1, "", "add_cog"], [2, 2, 1, "", "add_command"], [2, 2, 1, "", "clear"], [2, 2, 1, "", "close"], [2, 2, 1, "", "load_extensions"], [2, 2, 1, "", "log_to_dev_log"], [2, 2, 1, "", "on_guild_available"], [2, 2, 1, "", "on_guild_unavailable"], [2, 2, 1, "", "ping_services"], [2, 2, 1, "", "remove_command"], [2, 2, 1, "", "setup_hook"], [2, 2, 1, "", "wait_until_guild_available"]], "botcore.StartupError": [[2, 2, 1, "", "__init__"]], "botcore.async_stats": [[3, 1, 1, "", "AsyncStatsClient"]], "botcore.async_stats.AsyncStatsClient": [[3, 2, 1, "", "__init__"], [3, 2, 1, "", "create_socket"]], "botcore.site_api": [[5, 1, 1, "", "APIClient"], [5, 3, 1, "", "ResponseCodeError"]], "botcore.site_api.APIClient": [[5, 2, 1, "", "__init__"], [5, 2, 1, "", "close"], [5, 2, 1, "", "delete"], [5, 2, 1, "", "get"], [5, 2, 1, "", "maybe_raise_for_status"], [5, 2, 1, "", "patch"], [5, 2, 1, "", "post"], [5, 2, 1, "", "put"], [5, 2, 1, "", "request"]], "botcore.site_api.ResponseCodeError": [[5, 2, 1, "", "__init__"], [5, 2, 1, "", "__str__"]], "botcore.utils": [[6, 4, 1, "", "apply_monkey_patches"], [7, 0, 0, "-", "caching"], [8, 0, 0, "-", "channel"], [9, 0, 0, "-", "interactions"], [10, 0, 0, "-", "logging"], [11, 0, 0, "-", "members"], [12, 0, 0, "-", "regex"], [13, 0, 0, "-", "scheduling"], [6, 4, 1, "", "unqualify"]], "botcore.utils.caching": [[7, 1, 1, "", "AsyncCache"]], "botcore.utils.caching.AsyncCache": [[7, 2, 1, "", "__call__"], [7, 2, 1, "", "__init__"], [7, 2, 1, "", "clear"]], "botcore.utils.channel": [[8, 4, 1, "", "get_or_fetch_channel"], [8, 4, 1, "", "is_in_category"]], "botcore.utils.interactions": [[9, 1, 1, "", "DeleteMessageButton"], [9, 1, 1, "", "ViewWithUserAndRoleCheck"]], "botcore.utils.interactions.DeleteMessageButton": [[9, 2, 1, "", "__init__"], [9, 2, 1, "", "callback"]], "botcore.utils.interactions.ViewWithUserAndRoleCheck": [[9, 2, 1, "", "__init__"], [9, 2, 1, "", "interaction_check"], [9, 2, 1, "", "on_timeout"]], "botcore.utils.logging": [[10, 1, 1, "", "CustomLogger"], [10, 4, 1, "", "get_logger"]], "botcore.utils.logging.CustomLogger": [[10, 2, 1, "", "trace"]], "botcore.utils.members": [[11, 4, 1, "", "get_or_fetch_member"], [11, 4, 1, "", "handle_role_change"]], "botcore.utils.regex": [[12, 5, 1, "", "DISCORD_INVITE"], [12, 5, 1, "", "FORMATTED_CODE_REGEX"], [12, 5, 1, "", "RAW_CODE_REGEX"]], "botcore.utils.scheduling": [[13, 1, 1, "", "Scheduler"], [13, 4, 1, "", "create_task"]], "botcore.utils.scheduling.Scheduler": [[13, 2, 1, "", "__contains__"], [13, 2, 1, "", "__init__"], [13, 2, 1, "", "cancel"], [13, 2, 1, "", "cancel_all"], [13, 2, 1, "", "schedule"], [13, 2, 1, "", "schedule_at"], [13, 2, 1, "", "schedule_later"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:exception", "4": "py:function", "5": "py:data"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "exception", "Python exception"], "4": ["py", "function", "Python function"], "5": ["py", "data", "Python data"]}, "titleterms": {"changelog": 0, "bot": 1, "core": 1, "project": 1, "document": 1, "refer": 1, "modul": 1, "extra": 1, "botcor": 2, "subpackag": 2, "submodul": [2, 6], "async_stat": 3, "ext": 4, "site_api": 5, "util": 6, "cach": 7, "channel": 8, "interact": 9, "log": 10, "member": 11, "regex": 12, "schedul": 13}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx": 60}, "alltitles": {"Exts": [[4, "module-botcore.exts"]], "Botcore": [[2, "module-botcore"]], "Subpackages": [[2, "subpackages"]], "Submodules": [[2, "submodules"], [6, "submodules"]], "Utils": [[6, "module-botcore.utils"]], "Changelog": [[0, "changelog"]], "async_stats": [[3, "module-botcore.async_stats"]], "site_api": [[5, "module-botcore.site_api"]], "Bot Core Project Documentation": [[1, "bot-core-project-documentation"]], "Reference": [[1, "reference"]], "Modules:": [[1, null]], "Extras": [[1, "extras"]], "logging": [[10, "module-botcore.utils.logging"]], "channel": [[8, "module-botcore.utils.channel"]], "members": [[11, "module-botcore.utils.members"]], "scheduling": [[13, "module-botcore.utils.scheduling"]], "caching": [[7, "module-botcore.utils.caching"]], "interactions": [[9, "module-botcore.utils.interactions"]], "regex": [[12, "module-botcore.utils.regex"]]}, "indexentries": {"botbase (class in botcore)": [[2, "botcore.BotBase"]], "startuperror": [[2, "botcore.StartupError"]], "__init__() (botbase method)": [[2, "botcore.BotBase.__init__"]], "__init__() (startuperror method)": [[2, "botcore.StartupError.__init__"]], "add_cog() (botbase method)": [[2, "botcore.BotBase.add_cog"]], "add_command() (botbase method)": [[2, "botcore.BotBase.add_command"]], "botcore": [[2, "module-botcore"]], "clear() (botbase method)": [[2, "botcore.BotBase.clear"]], "close() (botbase method)": [[2, "botcore.BotBase.close"]], "load_extensions() (botbase method)": [[2, "botcore.BotBase.load_extensions"]], "log_to_dev_log() (botbase method)": [[2, "botcore.BotBase.log_to_dev_log"]], "module": [[2, "module-botcore"], [3, "module-botcore.async_stats"], [4, "module-botcore.exts"], [5, "module-botcore.site_api"], [6, "module-botcore.utils"], [7, "module-botcore.utils.caching"], [8, "module-botcore.utils.channel"], [9, "module-botcore.utils.interactions"], [10, "module-botcore.utils.logging"], [11, "module-botcore.utils.members"], [12, "module-botcore.utils.regex"], [13, "module-botcore.utils.scheduling"]], "on_guild_available() (botbase method)": [[2, "botcore.BotBase.on_guild_available"]], "on_guild_unavailable() (botbase method)": [[2, "botcore.BotBase.on_guild_unavailable"]], "ping_services() (botbase method)": [[2, "botcore.BotBase.ping_services"]], "remove_command() (botbase method)": [[2, "botcore.BotBase.remove_command"]], "setup_hook() (botbase method)": [[2, "botcore.BotBase.setup_hook"]], "wait_until_guild_available() (botbase method)": [[2, "botcore.BotBase.wait_until_guild_available"]], "asyncstatsclient (class in botcore.async_stats)": [[3, "botcore.async_stats.AsyncStatsClient"]], "__init__() (asyncstatsclient method)": [[3, "botcore.async_stats.AsyncStatsClient.__init__"]], "botcore.async_stats": [[3, "module-botcore.async_stats"]], "create_socket() (asyncstatsclient method)": [[3, "botcore.async_stats.AsyncStatsClient.create_socket"]], "botcore.exts": [[4, "module-botcore.exts"]], "apiclient (class in botcore.site_api)": [[5, "botcore.site_api.APIClient"]], "responsecodeerror": [[5, "botcore.site_api.ResponseCodeError"]], "__init__() (apiclient method)": [[5, "botcore.site_api.APIClient.__init__"]], "__init__() (responsecodeerror method)": [[5, "botcore.site_api.ResponseCodeError.__init__"]], "__str__() (responsecodeerror method)": [[5, "botcore.site_api.ResponseCodeError.__str__"]], "botcore.site_api": [[5, "module-botcore.site_api"]], "close() (apiclient method)": [[5, "botcore.site_api.APIClient.close"]], "delete() (apiclient method)": [[5, "botcore.site_api.APIClient.delete"]], "get() (apiclient method)": [[5, "botcore.site_api.APIClient.get"]], "maybe_raise_for_status() (apiclient static method)": [[5, "botcore.site_api.APIClient.maybe_raise_for_status"]], "patch() (apiclient method)": [[5, "botcore.site_api.APIClient.patch"]], "post() (apiclient method)": [[5, "botcore.site_api.APIClient.post"]], "put() (apiclient method)": [[5, "botcore.site_api.APIClient.put"]], "request() (apiclient method)": [[5, "botcore.site_api.APIClient.request"]], "apply_monkey_patches() (in module botcore.utils)": [[6, "botcore.utils.apply_monkey_patches"]], "botcore.utils": [[6, "module-botcore.utils"]], "unqualify() (in module botcore.utils)": [[6, "botcore.utils.unqualify"]], "asynccache (class in botcore.utils.caching)": [[7, "botcore.utils.caching.AsyncCache"]], "__call__() (asynccache method)": [[7, "botcore.utils.caching.AsyncCache.__call__"]], "__init__() (asynccache method)": [[7, "botcore.utils.caching.AsyncCache.__init__"]], "botcore.utils.caching": [[7, "module-botcore.utils.caching"]], "clear() (asynccache method)": [[7, "botcore.utils.caching.AsyncCache.clear"]], "botcore.utils.channel": [[8, "module-botcore.utils.channel"]], "get_or_fetch_channel() (in module botcore.utils.channel)": [[8, "botcore.utils.channel.get_or_fetch_channel"]], "is_in_category() (in module botcore.utils.channel)": [[8, "botcore.utils.channel.is_in_category"]], "deletemessagebutton (class in botcore.utils.interactions)": [[9, "botcore.utils.interactions.DeleteMessageButton"]], "viewwithuserandrolecheck (class in botcore.utils.interactions)": [[9, "botcore.utils.interactions.ViewWithUserAndRoleCheck"]], "__init__() (deletemessagebutton method)": [[9, "botcore.utils.interactions.DeleteMessageButton.__init__"]], "__init__() (viewwithuserandrolecheck method)": [[9, "botcore.utils.interactions.ViewWithUserAndRoleCheck.__init__"]], "botcore.utils.interactions": [[9, "module-botcore.utils.interactions"]], "callback() (deletemessagebutton method)": [[9, "botcore.utils.interactions.DeleteMessageButton.callback"]], "interaction_check() (viewwithuserandrolecheck method)": [[9, "botcore.utils.interactions.ViewWithUserAndRoleCheck.interaction_check"]], "on_timeout() (viewwithuserandrolecheck method)": [[9, "botcore.utils.interactions.ViewWithUserAndRoleCheck.on_timeout"]], "customlogger (class in botcore.utils.logging)": [[10, "botcore.utils.logging.CustomLogger"]], "botcore.utils.logging": [[10, "module-botcore.utils.logging"]], "get_logger() (in module botcore.utils.logging)": [[10, "botcore.utils.logging.get_logger"]], "trace() (customlogger method)": [[10, "botcore.utils.logging.CustomLogger.trace"]], "botcore.utils.members": [[11, "module-botcore.utils.members"]], "get_or_fetch_member() (in module botcore.utils.members)": [[11, "botcore.utils.members.get_or_fetch_member"]], "handle_role_change() (in module botcore.utils.members)": [[11, "botcore.utils.members.handle_role_change"]], "discord_invite (in module botcore.utils.regex)": [[12, "botcore.utils.regex.DISCORD_INVITE"]], "formatted_code_regex (in module botcore.utils.regex)": [[12, "botcore.utils.regex.FORMATTED_CODE_REGEX"]], "raw_code_regex (in module botcore.utils.regex)": [[12, "botcore.utils.regex.RAW_CODE_REGEX"]], "botcore.utils.regex": [[12, "module-botcore.utils.regex"]], "scheduler (class in botcore.utils.scheduling)": [[13, "botcore.utils.scheduling.Scheduler"]], "__contains__() (scheduler method)": [[13, "botcore.utils.scheduling.Scheduler.__contains__"]], "__init__() (scheduler method)": [[13, "botcore.utils.scheduling.Scheduler.__init__"]], "botcore.utils.scheduling": [[13, "module-botcore.utils.scheduling"]], "cancel() (scheduler method)": [[13, "botcore.utils.scheduling.Scheduler.cancel"]], "cancel_all() (scheduler method)": [[13, "botcore.utils.scheduling.Scheduler.cancel_all"]], "create_task() (in module botcore.utils.scheduling)": [[13, "botcore.utils.scheduling.create_task"]], "schedule() (scheduler method)": [[13, "botcore.utils.scheduling.Scheduler.schedule"]], "schedule_at() (scheduler method)": [[13, "botcore.utils.scheduling.Scheduler.schedule_at"]], "schedule_later() (scheduler method)": [[13, "botcore.utils.scheduling.Scheduler.schedule_later"]]}})
\ No newline at end of file
diff --git a/v7.4.0-beta1/versions.html b/v7.4.0-beta1/versions.html
index 583f231e..d2ba10a7 100644
--- a/v7.4.0-beta1/versions.html
+++ b/v7.4.0-beta1/versions.html
@@ -1,17 +1,17 @@
 
-
+
   Versions - Pydis Core v7.4.0-beta1 
-      v7.1.1 
                     
                 
+                    
+                        v10.3.0 
+                     
+                
                     
                         v10.2.0 
                      
@@ -641,6 +645,12 @@
                         v7.1.1 
                         
                         
+                    
+                
+                    
+                        v10.3.0 
+                        
+                        
                      
                 
                     
@@ -695,10 +705,10 @@
       
     
   
-
-    
-    
-    
-    
+
+    
+    
+    
+    
     
 
\ No newline at end of file
-- 
cgit v1.2.3