From 9163de9a194d6f2d260048797f4c9ad538daf56d Mon Sep 17 00:00:00 2001 From: libhal-bot Date: Tue, 14 Jul 2026 16:20:37 +0000 Subject: [PATCH 1/8] Add libhal-arm-mcu main API documentation --- .../main/.doctrees/environment.pickle | Bin 1519113 -> 1519524 bytes .../_static/scripts/pydata-sphinx-theme.js | 2 +- .../scripts/pydata-sphinx-theme.js.map | 2 +- .../_static/styles/pydata-sphinx-theme.css | 4 ++-- .../styles/pydata-sphinx-theme.css.map | 2 +- .../main/_static/webpack-macros.html | 14 ++++++------ libhal-arm-mcu/main/cortex_m/dwt_counter.html | 21 +++++++++--------- libhal-arm-mcu/main/cortex_m/index.html | 21 +++++++++--------- libhal-arm-mcu/main/cortex_m/interrupt.html | 21 +++++++++--------- libhal-arm-mcu/main/cortex_m/startup.html | 21 +++++++++--------- .../main/cortex_m/system_control.html | 21 +++++++++--------- .../main/cortex_m/systick_timer.html | 21 +++++++++--------- libhal-arm-mcu/main/genindex.html | 18 +++++++-------- libhal-arm-mcu/main/index.html | 18 +++++++-------- libhal-arm-mcu/main/lpc40/adc.html | 21 +++++++++--------- libhal-arm-mcu/main/lpc40/can.html | 21 +++++++++--------- libhal-arm-mcu/main/lpc40/clock.html | 21 +++++++++--------- libhal-arm-mcu/main/lpc40/constants.html | 21 +++++++++--------- libhal-arm-mcu/main/lpc40/dac.html | 21 +++++++++--------- libhal-arm-mcu/main/lpc40/dma.html | 21 +++++++++--------- libhal-arm-mcu/main/lpc40/dma_spi.html | 21 +++++++++--------- libhal-arm-mcu/main/lpc40/i2c.html | 21 +++++++++--------- libhal-arm-mcu/main/lpc40/index.html | 21 +++++++++--------- libhal-arm-mcu/main/lpc40/input_pin.html | 21 +++++++++--------- libhal-arm-mcu/main/lpc40/interrupt.html | 21 +++++++++--------- libhal-arm-mcu/main/lpc40/interrupt_pin.html | 21 +++++++++--------- libhal-arm-mcu/main/lpc40/output_pin.html | 21 +++++++++--------- libhal-arm-mcu/main/lpc40/pin.html | 21 +++++++++--------- libhal-arm-mcu/main/lpc40/power.html | 21 +++++++++--------- libhal-arm-mcu/main/lpc40/pwm.html | 21 +++++++++--------- libhal-arm-mcu/main/lpc40/spi.html | 21 +++++++++--------- libhal-arm-mcu/main/lpc40/stream_dac.html | 21 +++++++++--------- libhal-arm-mcu/main/lpc40/uart.html | 21 +++++++++--------- libhal-arm-mcu/main/search.html | 18 +++++++-------- libhal-arm-mcu/main/stm32_generic/i2c.html | 21 +++++++++--------- libhal-arm-mcu/main/stm32_generic/index.html | 21 +++++++++--------- libhal-arm-mcu/main/stm32_generic/pwm.html | 21 +++++++++--------- .../stm32_generic/quadrature_encoder.html | 21 +++++++++--------- libhal-arm-mcu/main/stm32_generic/spi.html | 21 +++++++++--------- libhal-arm-mcu/main/stm32_generic/timer.html | 21 +++++++++--------- libhal-arm-mcu/main/stm32_generic/uart.html | 21 +++++++++--------- libhal-arm-mcu/main/stm32f1/adc.html | 21 +++++++++--------- libhal-arm-mcu/main/stm32f1/can.html | 21 +++++++++--------- libhal-arm-mcu/main/stm32f1/can2.html | 21 +++++++++--------- libhal-arm-mcu/main/stm32f1/clock.html | 21 +++++++++--------- libhal-arm-mcu/main/stm32f1/constants.html | 21 +++++++++--------- libhal-arm-mcu/main/stm32f1/dma.html | 21 +++++++++--------- libhal-arm-mcu/main/stm32f1/gpio.html | 21 +++++++++--------- .../main/stm32f1/independent_watchdog.html | 21 +++++++++--------- libhal-arm-mcu/main/stm32f1/index.html | 21 +++++++++--------- libhal-arm-mcu/main/stm32f1/input_pin.html | 21 +++++++++--------- libhal-arm-mcu/main/stm32f1/interrupt.html | 21 +++++++++--------- libhal-arm-mcu/main/stm32f1/output_pin.html | 21 +++++++++--------- libhal-arm-mcu/main/stm32f1/pin.html | 21 +++++++++--------- libhal-arm-mcu/main/stm32f1/pwm.html | 21 +++++++++--------- libhal-arm-mcu/main/stm32f1/spi.html | 21 +++++++++--------- libhal-arm-mcu/main/stm32f1/timer.html | 21 +++++++++--------- libhal-arm-mcu/main/stm32f1/uart.html | 21 +++++++++--------- libhal-arm-mcu/main/stm32f1/usart.html | 21 +++++++++--------- libhal-arm-mcu/main/stm32f1/usb.html | 21 +++++++++--------- libhal-arm-mcu/main/stm32f40/constants.html | 21 +++++++++--------- libhal-arm-mcu/main/stm32f40/index.html | 21 +++++++++--------- libhal-arm-mcu/main/stm32f411/clock.html | 21 +++++++++--------- libhal-arm-mcu/main/stm32f411/constants.html | 21 +++++++++--------- libhal-arm-mcu/main/stm32f411/dma.html | 21 +++++++++--------- libhal-arm-mcu/main/stm32f411/i2c.html | 21 +++++++++--------- libhal-arm-mcu/main/stm32f411/index.html | 21 +++++++++--------- libhal-arm-mcu/main/stm32f411/input_pin.html | 21 +++++++++--------- libhal-arm-mcu/main/stm32f411/interrupt.html | 21 +++++++++--------- libhal-arm-mcu/main/stm32f411/output_pin.html | 21 +++++++++--------- libhal-arm-mcu/main/stm32f411/pin.html | 21 +++++++++--------- libhal-arm-mcu/main/stm32f411/spi.html | 21 +++++++++--------- libhal-arm-mcu/main/stm32f411/uart.html | 21 +++++++++--------- 73 files changed, 743 insertions(+), 679 deletions(-) diff --git a/libhal-arm-mcu/main/.doctrees/environment.pickle b/libhal-arm-mcu/main/.doctrees/environment.pickle index 8309c0e4082b2e8ea75941ebbe869ee7b979522d..eb39c99654248d817f4b625aa21bbb58aa6ed7f4 100644 GIT binary patch delta 96000 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

&y5s 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 F{{zPV{bc|E delta 95205 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"use strict";function e(e){"loading"!=document.readyState?e():document.addEventListener("DOMContentLoaded",e)}const t=e=>"string"==typeof e&&/^[v\d]/.test(e)&&o.test(e),n=(e,t,n)=>{u(n);const o=((e,t)=>{const n=r(e),o=r(t),s=n.pop(),a=o.pop(),i=c(n,o);return 0!==i?i:s&&a?c(s.split("."),a.split(".")):s||a?s?-1:1:0})(e,t);return d[n].includes(o)},o=/^[v^~<>=]*?(\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+))?(?:-([\da-z\-]+(?:\.[\da-z\-]+)*))?(?:\+[\da-z\-]+(?:\.[\da-z\-]+)*)?)?)?$/i,r=e=>{if("string"!=typeof e)throw new TypeError("Invalid argument expected string");const t=e.match(o);if(!t)throw new Error(`Invalid argument not valid semver ('${e}' received)`);return t.shift(),t},s=e=>"*"===e||"x"===e||"X"===e,a=e=>{const t=parseInt(e,10);return isNaN(t)?e:t},i=(e,t)=>{if(s(e)||s(t))return 0;const[n,o]=((e,t)=>typeof e!=typeof t?[String(e),String(t)]:[e,t])(a(e),a(t));return n>o?1:n{for(let n=0;n":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1]},l=Object.keys(d),u=e=>{if("string"!=typeof e)throw new TypeError("Invalid operator type, expected string but got "+typeof e);if(-1===l.indexOf(e))throw new Error(`Invalid operator, expected one of ${l.join("|")}`)};var m=window.matchMedia("(prefers-color-scheme: dark)");function h(e){document.documentElement.dataset.theme=m.matches?"dark":"light"}function p(e){"light"!==e&&"dark"!==e&&"auto"!==e&&(console.error(`Got invalid theme mode: ${e}. Resetting to auto.`),e="auto");var t=m.matches?"dark":"light";document.documentElement.dataset.mode=e;var n="auto"==e?t:e;document.documentElement.dataset.theme=n,document.querySelectorAll(".dropdown-menu").forEach(e=>{"dark"===n?e.classList.add("dropdown-menu-dark"):e.classList.remove("dropdown-menu-dark")}),localStorage.setItem("mode",e),localStorage.setItem("theme",n),console.log(`[PST]: Changed to ${e} mode using the ${n} theme.`),m.onchange="auto"==e?h:""}function f(e){const t="active";document.querySelectorAll(".theme-change-button").forEach(n=>{n.dataset.mode===e?n.classList.add(t):n.classList.remove(t)})}function g(e){const t=e.currentTarget.dataset.mode;p(t),f(t)}var v=()=>{let e=document.querySelectorAll("form.bd-search");return e.length?(1==e.length?e[0]:document.querySelector(":not(#pst-search-dialog) > form.bd-search")).querySelector("input"):void 0},y=()=>{const e=v(),t=document.getElementById("pst-search-dialog");t&&(e===t.querySelector("input")?t.open?t.close():t.showModal():document.activeElement===e?e.blur():(e.focus(),e.select(),e.scrollIntoView({block:"center"})))},w=0===navigator.platform.indexOf("Mac")||"iPhone"===navigator.platform;const b=({currentTarget:e,clientX:t,clientY:n})=>{if(!e.open)return;const{left:o,right:r,top:s,bottom:a}=e.getBoundingClientRect();(t{if(!DOCUMENTATION_OPTIONS.search_as_you_type)return;let e=document.querySelector("#search-results");e&&e.remove(),e=document.createElement("section"),e.classList.add("empty"),e.tabIndex=-1,e.addEventListener("keydown",e=>{"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),y(),E())}),e.id="search-results",document.querySelector("#pst-search-dialog").appendChild(e);const t=document.documentElement.dataset.content_root,n=new MutationObserver(()=>{Array.from(document.querySelectorAll("#search-results .search a")).forEach(e=>{e.tabIndex=0;const n=e.getAttribute("href");n.startsWith(t)||(e.href=`${t}${n}`)})});let o=!1;new MutationObserver(()=>{if(o)return;const e=document.querySelector("#search-results .search");e&&(n.observe(e,{childList:!0}),o=!0)}).observe(e,{childList:!0})},S=()=>"dirhtml"==DOCUMENTATION_OPTIONS.BUILDER?DOCUMENTATION_OPTIONS.pagename.endsWith("index")?`${DOCUMENTATION_OPTIONS.pagename.substring(0,DOCUMENTATION_OPTIONS.pagename.length-5)}`:`${DOCUMENTATION_OPTIONS.pagename}/`:`${DOCUMENTATION_OPTIONS.pagename}.html`;async function T(e){document.querySelector("#bd-header-version-warning").remove();const t=DOCUMENTATION_OPTIONS.VERSION,n=new Date,o=JSON.parse(localStorage.getItem("pst_banner_pref")||"{}");console.debug(`[PST] Dismissing the version warning banner on ${t} starting ${n}.`),o[t]=n,localStorage.setItem("pst_banner_pref",JSON.stringify(o))}async function O(e){e.preventDefault();const t=S();let n=e.currentTarget.getAttribute("href"),o=n.replace(t,"");try{(await fetch(n,{method:"HEAD"})).ok?location.href=n:location.href=o}catch(e){location.href=o}}async function _(){var e=document.querySelectorAll(".version-switcher__button");const o=e.length>0,r=DOCUMENTATION_OPTIONS.hasOwnProperty("theme_switcher_json_url"),s=DOCUMENTATION_OPTIONS.show_version_warning_banner;if(r&&(o||s)){const o=await async function(e){const t=S();try{var n=new URL(e)}catch(o){if(!(o instanceof TypeError))throw o;{"file:"==window.location.protocol&&console.info("[PST] looks like you're viewing this site from a local filesystem, so the version switcher won't work unless you've disabled CORS. See https://pydata-sphinx-theme.readthedocs.io/en/stable/user_guide/version-dropdown.html");const o=window.location.href.indexOf(t),r=-1==o?window.location.href:window.location.href.substring(0,o);n=new URL(e,r)}}const o=await fetch(n);return await o.json()}(DOCUMENTATION_OPTIONS.theme_switcher_json_url);o&&(function(e,t){const n=S();t.forEach(e=>{e.dataset.activeVersionName="",e.dataset.activeVersion=""});const o=(e=e.map(e=>(e.match=e.version==DOCUMENTATION_OPTIONS.theme_switcher_version_match,e.preferred=e.preferred||!1,"name"in e||(e.name=e.version),e))).map(e=>e.preferred&&e.match).some(Boolean);var r=!1;e.forEach(e=>{const s=document.createElement("a");s.setAttribute("class","dropdown-item list-group-item list-group-item-action py-1"),s.setAttribute("href",`${e.url}${n}`),s.setAttribute("role","option");const a=document.createElement("span");a.textContent=`${e.name}`,s.appendChild(a),s.dataset.versionName=e.name,s.dataset.version=e.version;let i=o&&e.preferred,c=!o&&!r&&e.match;(i||c)&&(s.classList.add("active"),t.forEach(t=>{t.innerText=e.name,t.dataset.activeVersionName=e.name,t.dataset.activeVersion=e.version}),r=!0),document.querySelectorAll(".version-switcher__menu").forEach(e=>{let t=s.cloneNode(!0);t.onclick=O,e.append(t)})})}(o,e),s&&function(e){var o=DOCUMENTATION_OPTIONS.VERSION,r=e.filter(e=>e.preferred);if(1!==r.length){const e=0==r.length?"No":"Multiple";return void console.log(`[PST] ${e} versions marked "preferred" found in versions JSON, ignoring.`)}const s=r[0].version,a=r[0].url,i=t(o)&&t(s);if(i&&n(o,s,"="))return void console.log("[PST]: This is the preferred version of the docs, not showing the warning banner.");const c=JSON.parse(localStorage.getItem("pst_banner_pref")||"{}")[o];if(null!=c){const e=new Date(c),t=(new Date-e)/864e5;if(t<14)return void console.info(`[PST] Suppressing version warning banner; was dismissed ${Math.floor(t)} day(s) ago`)}const d=document.querySelector("#bd-header-version-warning"),l=document.createElement("div"),u=document.createElement("div"),m=document.createElement("strong"),h=document.createElement("a"),p=document.createElement("a");l.classList="bd-header-announcement__content ms-auto me-auto",u.classList="sidebar-message",h.classList="btn text-wrap font-weight-bold ms-3 my-1 align-baseline pst-button-link-to-stable-version",h.href=`${a}${S()}`,h.innerText="Switch to stable version",h.onclick=O,p.classList="ms-3 my-1 align-baseline";const f=document.createElement("i");p.append(f),f.classList="fa-solid fa-xmark",p.onclick=T,u.innerText="This is documentation for ";const g=o.includes("dev")||o.includes("rc")||o.includes("pre"),v=i&&n(o,s,">");g||v?m.innerText="an unstable development version":i&&n(o,s,"<")?m.innerText=`an old version (${o})`:m.innerText=o?`version ${o}`:"an unknown version",d.appendChild(l),d.append(p),l.appendChild(u),u.appendChild(m),u.appendChild(document.createTextNode(".")),u.appendChild(h),d.classList.remove("d-none")}(o))}}function I(){const e=()=>{document.querySelectorAll(["pre",".nboutput > .output_area",".cell_output > .output",".jp-RenderedHTMLCommon",".pst-scrollable-table-container"].join(", ")).forEach(e=>{e.tabIndex=e.scrollWidth>e.clientWidth||e.scrollHeight>e.clientHeight?0:-1})},t=L(e,300);window.addEventListener("resize",t),new MutationObserver(t).observe(document.getElementById("main-content"),{subtree:!0,childList:!0}),e()}function L(e,t){let n=null;return(...o)=>{clearTimeout(n),n=setTimeout(()=>{e(...o)},t)}}async function N(){const e=document.querySelector(".bd-header-announcement"),t=JSON.parse(localStorage.getItem("pst_announcement_banner_pref")||"{}").closed;if(null!=t){const n=new Date(t),o=(new Date-n)/864e5;if(o<14)return console.info(`[PST] Suppressing announcement banner; was dismissed ${Math.floor(o)} day(s) ago`),void e.remove()}const{pstAnnouncementUrl:n}=e?e.dataset:null;if(!n)return;try{const t=await fetch(n);if(!t.ok)throw new Error(`[PST]: HTTP response status not ok: ${t.status} ${t.statusText}`);let o=await t.text();if(o=o.trim(),0===o.length)return void console.log(`[PST]: Empty announcement at: ${n}`);e.innerHTML=`

${o}
`,e.classList.remove("d-none")}catch(e){console.log(`[PST]: Failed to load announcement at: ${n}`),console.error(e)}console.debug("[PST] Adding close button to announcement banner");const o=document.createElement("a");o.classList="ms-3 my-1 align-baseline";const r=document.createElement("i");o.append(r),r.classList="fa-solid fa-xmark",o.onclick=A,e.append(o)}async function A(e){document.querySelector(".bd-header-announcement").remove();const t=new Date,n=JSON.parse(localStorage.getItem("pst_announcement_banner_pref")||"{}");console.debug(`[PST] Dismissing the announcement banner starting ${t}.`),n.closed=t.toISOString(),localStorage.setItem("pst_announcement_banner_pref",JSON.stringify(n))}e(async function(){await Promise.allSettled([_(),N()]);const e=document.querySelector(".pst-async-banner-revealer");if(!e)return;e.classList.remove("d-none");const t=Array.from(e.children).reduce((e,t)=>e+t.offsetHeight,0);e.style.setProperty("height",`${t}px`),setTimeout(()=>{e.style.setProperty("height","auto")},320)}),e(function(){const e=document.documentElement.dataset.mode;p(e),f(e),document.querySelectorAll(".theme-change-button").forEach(e=>{e.addEventListener("click",g)})}),e(function(){if(!document.querySelector(".bd-docs-nav"))return;var e=document.querySelector("div.bd-sidebar");let t=parseInt(sessionStorage.getItem("sidebar-scroll-top"),10);if(isNaN(t)){var n=document.querySelector(".bd-docs-nav").querySelectorAll(".active");if(n.length>0){var o=n[n.length-1],r=o.getBoundingClientRect().y-e.getBoundingClientRect().y;if(o.getBoundingClientRect().y>.5*window.innerHeight){let t=.25;e.scrollTop=r-e.clientHeight*t,console.log("[PST]: Scrolled sidebar using last active link...")}}}else e.scrollTop=t,console.log("[PST]: Scrolled sidebar using stored browser position...");window.addEventListener("beforeunload",()=>{sessionStorage.setItem("sidebar-scroll-top",e.scrollTop)})}),e(()=>{(()=>{let e=document.querySelectorAll(".search-button__kbd-shortcut");w&&e.forEach(e=>e.querySelector("kbd.kbd-shortcut__modifier").innerText="⌘")})(),window.addEventListener("keydown",e=>{let t=v();e.shiftKey||e.altKey||(w?!e.metaKey||e.ctrlKey:e.metaKey||!e.ctrlKey)||!/^k$/i.test(e.key)?document.activeElement===t&&/Escape/i.test(e.key)&&(y(),E()):(e.preventDefault(),y())},!0),document.querySelectorAll(".search-button__button").forEach(e=>{e.onclick=y});const e=document.getElementById("pst-search-dialog");e&&e.addEventListener("click",b)}),e(()=>{if(!DOCUMENTATION_OPTIONS.search_as_you_type)return;if(window.location.pathname.endsWith("/search.html"))return;if(!Search)return;E();let e=null,t="";const n=document.querySelector("#pst-search-dialog input[name=q]");n.addEventListener("keyup",()=>{const o=n.value;if(""===o)return t="",void E();o!==t&&(E(),t=o,e&&window.clearTimeout(e),e=window.setTimeout(()=>{Search.performSearch(o),document.querySelector("#search-results").classList.remove("empty"),e=null},300))})}),e(function(){const e=document.getElementById("pst-primary-sidebar"),t=document.getElementById("pst-secondary-sidebar"),n=document.getElementById("pst-primary-sidebar-modal"),o=document.getElementById("pst-secondary-sidebar-modal"),r=document.querySelector(".primary-toggle"),s=document.querySelector(".secondary-toggle"),a=(e,t)=>{Array.from(e.childNodes).forEach(e=>t.appendChild(e)),Array.from(e.classList).forEach(n=>{e.classList.remove(n),t.classList.add(n)})};[[r,n,e],[s,o,t]].forEach(([e,t,n])=>{e&&t&&n&&(e.addEventListener("click",e=>{e.preventDefault(),e.stopPropagation();const o=document.activeElement;a(n,t),t.showModal(),t.addEventListener("close",()=>{o&&o.focus&&o.focus()},{once:!0})}),t.addEventListener("click",b),t.addEventListener("keydown",e=>{"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),t.close())}),t.addEventListener("close",()=>{a(t,n)}))})}),e(function(){const e=document.querySelector("#pst-page-toc-nav");if(!e)return;const t=Array.from(e.querySelectorAll(".toc-entry")),n=Array.from(e.querySelectorAll("a"));if(0===n.length)return;let o=!1;function r(e){if(e.length>1){const t=n.find(t=>t.hash===e);t&&(o=!0,setTimeout(()=>{o=!1},1e3),s(t))}}function s(e){n.forEach(t=>{t===e?(t.classList.add("active"),t.setAttribute("aria-current","true")):(t.classList.remove("active"),t.removeAttribute("aria-current"))}),t.forEach(t=>{t.contains(e)?t.classList.add("active"):t.classList.remove("active")})}r(window.location.hash),window.addEventListener("hashchange",()=>{r(window.location.hash)}),window.addEventListener("click",e=>{const t=e.target.closest("a");t&&t.hash===window.location.hash&&t.origin===window.location.origin&&r(t.hash)});const a=new Map;let i;function c(){i&&i.disconnect();const e=document.querySelector("#pst-header").getBoundingClientRect().height;i=new IntersectionObserver(function(e){if(o)return;const t=e.filter(e=>e.isIntersecting).pop();if(!t)return;const n=t.target;s(a.get(n))},{root:null,rootMargin:`-${e}px 0px -70% 0px`,threshold:0}),Array.from(a.keys()).forEach(e=>{i.observe(e)})}n.forEach(e=>{const t=function(e){const t=e.getAttribute("href");if(!t.startsWith("#"))return;const n=t.substring(1);if(!n)return;const o=document.getElementById(n);return o.querySelector(":is(h1,h2,h3,h4,h5,h6)")||o}(e);t&&a.set(t,e)}),window.addEventListener("resize",L(c,300)),c()}),e(()=>{try{!function(){const e=document.getElementById("pst-collapse-sidebar-button"),t=document.getElementById("pst-primary-sidebar");if(!e||!t)return;const n=Array.from(t.children),o=new bootstrap.Tooltip(e,{title:e.querySelector(".pst-expand-sidebar-label").textContent,trigger:"manual",placement:"left",fallbackPlacements:["right"],offset:[0,12]}),r=()=>{"false"===e.getAttribute("aria-expanded")&&o.show()},s=()=>{o.hide()};e.addEventListener("click",()=>{if("true"===e.dataset.busy)return;e.dataset.busy="true";const o=window.matchMedia("(prefers-reduced-motion)").matches;"true"===e.getAttribute("aria-expanded")?function(o){n.forEach(e=>e.style.width=e.getBoundingClientRect().width+"px");const r=()=>{e.setAttribute("aria-expanded","false"),e.dataset.busy=!1};o?(t.classList.add("pst-squeeze"),r()):(t.addEventListener("transitionend",function e(){r(),t.removeEventListener("transitionend",e)}),t.classList.add("pst-squeeze"))}(o):function(o){s();const r=()=>{n.forEach(e=>e.style.width=null),e.setAttribute("aria-expanded","true"),e.dataset.busy=!1};o?(t.classList.remove("pst-squeeze"),r()):(t.addEventListener("transitionend",function e(){r(),t.removeEventListener("transitionend",e)}),t.classList.remove("pst-squeeze"))}(o)}),e.addEventListener("focus",r),e.addEventListener("mouseenter",r),e.addEventListener("mouseleave",s),e.addEventListener("blur",s)}()}catch(e){console.log("[PST] Error setting up collapse sidebar button"),console.error(e)}}),"complete"===document.readyState?I():window.addEventListener("load",I)})(); +(()=>{"use strict";function e(e){"loading"!=document.readyState?e():document.addEventListener("DOMContentLoaded",e)}const t=e=>"string"==typeof e&&/^[v\d]/.test(e)&&o.test(e),n=(e,t,n)=>{u(n);const o=((e,t)=>{const n=r(e),o=r(t),s=n.pop(),a=o.pop(),i=c(n,o);return 0!==i?i:s&&a?c(s.split("."),a.split(".")):s||a?s?-1:1:0})(e,t);return d[n].includes(o)},o=/^[v^~<>=]*?(\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+))?(?:-([\da-z\-]+(?:\.[\da-z\-]+)*))?(?:\+[\da-z\-]+(?:\.[\da-z\-]+)*)?)?)?$/i,r=e=>{if("string"!=typeof e)throw new TypeError("Invalid argument expected string");const t=e.match(o);if(!t)throw new Error(`Invalid argument not valid semver ('${e}' received)`);return t.shift(),t},s=e=>"*"===e||"x"===e||"X"===e,a=e=>{const t=parseInt(e,10);return isNaN(t)?e:t},i=(e,t)=>{if(s(e)||s(t))return 0;const[n,o]=((e,t)=>typeof e!=typeof t?[String(e),String(t)]:[e,t])(a(e),a(t));return n>o?1:n{for(let n=0;n":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1]},l=Object.keys(d),u=e=>{if("string"!=typeof e)throw new TypeError("Invalid operator type, expected string but got "+typeof e);if(-1===l.indexOf(e))throw new Error(`Invalid operator, expected one of ${l.join("|")}`)};var m=window.matchMedia("(prefers-color-scheme: dark)");function h(e){document.documentElement.dataset.theme=m.matches?"dark":"light"}function p(e){"light"!==e&&"dark"!==e&&"auto"!==e&&(console.error(`Got invalid theme mode: ${e}. Resetting to auto.`),e="auto");var t=m.matches?"dark":"light";document.documentElement.dataset.mode=e;var n="auto"==e?t:e;document.documentElement.dataset.theme=n,document.querySelectorAll(".dropdown-menu").forEach(e=>{"dark"===n?e.classList.add("dropdown-menu-dark"):e.classList.remove("dropdown-menu-dark")}),localStorage.setItem("mode",e),localStorage.setItem("theme",n),console.log(`[PST]: Changed to ${e} mode using the ${n} theme.`),m.onchange="auto"==e?h:""}function f(e){const t="active";document.querySelectorAll(".theme-change-button").forEach(n=>{n.dataset.mode===e?n.classList.add(t):n.classList.remove(t)})}function g(e){const t=e.currentTarget.dataset.mode;p(t),f(t)}var v=()=>{let e=document.querySelectorAll("form.bd-search");return e.length?(1==e.length?e[0]:document.querySelector(":not(#pst-search-dialog) > form.bd-search")).querySelector("input"):void 0},y=()=>{const e=v(),t=document.getElementById("pst-search-dialog");t&&(e===t.querySelector("input")?t.open?t.close():t.showModal():document.activeElement===e?e.blur():(e.focus(),e.select(),e.scrollIntoView({block:"center"})))},w=0===navigator.platform.indexOf("Mac")||"iPhone"===navigator.platform;const b=({currentTarget:e,clientX:t,clientY:n})=>{if(!e.open)return;const{left:o,right:r,top:s,bottom:a}=e.getBoundingClientRect();(t{if(!DOCUMENTATION_OPTIONS.search_as_you_type)return;let e=document.querySelector("#search-results");e&&e.remove(),e=document.createElement("section"),e.classList.add("empty"),e.tabIndex=-1,e.addEventListener("keydown",e=>{"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),y(),E())}),e.id="search-results",document.querySelector("#pst-search-dialog").appendChild(e);const t=document.documentElement.dataset.content_root,n=new MutationObserver(()=>{Array.from(document.querySelectorAll("#search-results .search a")).forEach(e=>{e.tabIndex=0;const n=e.getAttribute("href");n.startsWith(t)||(e.href=`${t}${n}`)})});let o=!1;new MutationObserver(()=>{if(o)return;const e=document.querySelector("#search-results .search");e&&(n.observe(e,{childList:!0}),o=!0)}).observe(e,{childList:!0})},S=()=>"dirhtml"==DOCUMENTATION_OPTIONS.BUILDER?DOCUMENTATION_OPTIONS.pagename.endsWith("index")?`${DOCUMENTATION_OPTIONS.pagename.substring(0,DOCUMENTATION_OPTIONS.pagename.length-5)}`:`${DOCUMENTATION_OPTIONS.pagename}/`:`${DOCUMENTATION_OPTIONS.pagename}.html`;async function T(e){document.querySelector("#bd-header-version-warning").remove();const t=DOCUMENTATION_OPTIONS.VERSION,n=new Date,o=JSON.parse(localStorage.getItem("pst_banner_pref")||"{}");console.debug(`[PST] Dismissing the version warning banner on ${t} starting ${n}.`),o[t]=n,localStorage.setItem("pst_banner_pref",JSON.stringify(o))}async function O(e){e.preventDefault();const t=S();let n=e.currentTarget.getAttribute("href"),o=n.replace(t,"");try{(await fetch(n,{method:"HEAD"})).ok?location.href=n:location.href=o}catch(e){location.href=o}}async function _(){var e=document.querySelectorAll(".version-switcher__button");const o=e.length>0,r=DOCUMENTATION_OPTIONS.hasOwnProperty("theme_switcher_json_url"),s=DOCUMENTATION_OPTIONS.show_version_warning_banner;if(r&&(o||s)){const o=await async function(e){const t=S();try{var n=new URL(e)}catch(o){if(!(o instanceof TypeError))throw o;{"file:"==window.location.protocol&&console.info("[PST] looks like you're viewing this site from a local filesystem, so the version switcher won't work unless you've disabled CORS. See https://pydata-sphinx-theme.readthedocs.io/en/stable/user_guide/version-dropdown.html");const o=t?window.location.href.indexOf(t):-1,r=-1==o?window.location.href:window.location.href.substring(0,o);n=new URL(e,r)}}const o=await fetch(n);return await o.json()}(DOCUMENTATION_OPTIONS.theme_switcher_json_url);o&&(function(e,t){const n=S();t.forEach(e=>{e.dataset.activeVersionName="",e.dataset.activeVersion=""});const o=(e=e.map(e=>(e.match=e.version==DOCUMENTATION_OPTIONS.theme_switcher_version_match,e.preferred=e.preferred||!1,"name"in e||(e.name=e.version),e))).map(e=>e.preferred&&e.match).some(Boolean);var r=!1;e.forEach(e=>{const s=document.createElement("a");s.setAttribute("class","dropdown-item list-group-item list-group-item-action py-1"),s.setAttribute("href",`${e.url}${n}`),s.setAttribute("role","option");const a=document.createElement("span");a.textContent=`${e.name}`,s.appendChild(a),s.dataset.versionName=e.name,s.dataset.version=e.version;let i=o&&e.preferred,c=!o&&!r&&e.match;(i||c)&&(s.classList.add("active"),t.forEach(t=>{t.innerText=e.name,t.dataset.activeVersionName=e.name,t.dataset.activeVersion=e.version}),r=!0),document.querySelectorAll(".version-switcher__menu").forEach(e=>{let t=s.cloneNode(!0);t.onclick=O,e.append(t)})})}(o,e),s&&function(e){var o=DOCUMENTATION_OPTIONS.VERSION,r=e.filter(e=>e.preferred);if(1!==r.length){const e=0==r.length?"No":"Multiple";return void console.log(`[PST] ${e} versions marked "preferred" found in versions JSON, ignoring.`)}const s=r[0].version,a=r[0].url,i=t(o)&&t(s);if(i&&n(o,s,"="))return void console.log("[PST]: This is the preferred version of the docs, not showing the warning banner.");const c=JSON.parse(localStorage.getItem("pst_banner_pref")||"{}")[o];if(null!=c){const e=new Date(c),t=(new Date-e)/864e5;if(t<14)return void console.info(`[PST] Suppressing version warning banner; was dismissed ${Math.floor(t)} day(s) ago`)}const d=document.querySelector("#bd-header-version-warning"),l=document.createElement("div"),u=document.createElement("div"),m=document.createElement("strong"),h=document.createElement("a"),p=document.createElement("a");l.classList="bd-header-announcement__content ms-auto me-auto",u.classList="sidebar-message",h.classList="btn text-wrap font-weight-bold ms-3 my-1 align-baseline pst-button-link-to-stable-version",h.href=`${a}${S()}`,h.innerText="Switch to stable version",h.onclick=O,p.classList="ms-3 my-1 align-baseline";const f=document.createElement("i");p.append(f),f.classList="fa-solid fa-xmark",p.onclick=T,u.innerText="This is documentation for ";const g=o.includes("dev")||o.includes("rc")||o.includes("pre"),v=i&&n(o,s,">");g||v?m.innerText="an unstable development version":i&&n(o,s,"<")?m.innerText=`an old version (${o})`:m.innerText=o?`version ${o}`:"an unknown version",d.appendChild(l),d.append(p),l.appendChild(u),u.appendChild(m),u.appendChild(document.createTextNode(".")),u.appendChild(h),d.classList.remove("d-none")}(o))}}function I(){const e=()=>{document.querySelectorAll(["pre",".nboutput > .output_area",".cell_output > .output",".jp-RenderedHTMLCommon",".pst-scrollable-table-container"].join(", ")).forEach(e=>{e.tabIndex=e.scrollWidth>e.clientWidth||e.scrollHeight>e.clientHeight?0:-1})},t=L(e,300);window.addEventListener("resize",t),new MutationObserver(t).observe(document.getElementById("main-content"),{subtree:!0,childList:!0}),e()}function L(e,t){let n=null;return(...o)=>{clearTimeout(n),n=setTimeout(()=>{e(...o)},t)}}async function N(){const e=document.querySelector(".bd-header-announcement"),t=JSON.parse(localStorage.getItem("pst_announcement_banner_pref")||"{}").closed;if(null!=t){const n=new Date(t),o=(new Date-n)/864e5;if(o<14)return console.info(`[PST] Suppressing announcement banner; was dismissed ${Math.floor(o)} day(s) ago`),void e.remove()}const{pstAnnouncementUrl:n}=e?e.dataset:null;if(!n)return;try{const t=await fetch(n);if(!t.ok)throw new Error(`[PST]: HTTP response status not ok: ${t.status} ${t.statusText}`);let o=await t.text();if(o=o.trim(),0===o.length)return void console.log(`[PST]: Empty announcement at: ${n}`);e.innerHTML=`
${o}
`,e.classList.remove("d-none")}catch(e){console.log(`[PST]: Failed to load announcement at: ${n}`),console.error(e)}console.debug("[PST] Adding close button to announcement banner");const o=document.createElement("a");o.classList="ms-3 my-1 align-baseline";const r=document.createElement("i");o.append(r),r.classList="fa-solid fa-xmark",o.onclick=A,e.append(o)}async function A(e){document.querySelector(".bd-header-announcement").remove();const t=new Date,n=JSON.parse(localStorage.getItem("pst_announcement_banner_pref")||"{}");console.debug(`[PST] Dismissing the announcement banner starting ${t}.`),n.closed=t.toISOString(),localStorage.setItem("pst_announcement_banner_pref",JSON.stringify(n))}e(async function(){await Promise.allSettled([_(),N()]);const e=document.querySelector(".pst-async-banner-revealer");if(!e)return;e.classList.remove("d-none");const t=Array.from(e.children).reduce((e,t)=>e+t.offsetHeight,0);e.style.setProperty("height",`${t}px`),setTimeout(()=>{e.style.setProperty("height","auto")},320)}),e(function(){const e=document.documentElement.dataset.mode;p(e),f(e),document.querySelectorAll(".theme-change-button").forEach(e=>{e.addEventListener("click",g)})}),e(function(){if(!document.querySelector(".bd-docs-nav"))return;var e=document.querySelector("div.bd-sidebar");let t=parseInt(sessionStorage.getItem("sidebar-scroll-top"),10);if(isNaN(t)){var n=document.querySelector(".bd-docs-nav").querySelectorAll(".active");if(n.length>0){var o=n[n.length-1],r=o.getBoundingClientRect().y-e.getBoundingClientRect().y;if(o.getBoundingClientRect().y>.5*window.innerHeight){let t=.25;e.scrollTop=r-e.clientHeight*t,console.log("[PST]: Scrolled sidebar using last active link...")}}}else e.scrollTop=t,console.log("[PST]: Scrolled sidebar using stored browser position...");window.addEventListener("beforeunload",()=>{sessionStorage.setItem("sidebar-scroll-top",e.scrollTop)})}),e(()=>{(()=>{let e=document.querySelectorAll(".search-button__kbd-shortcut");w&&e.forEach(e=>e.querySelector("kbd.kbd-shortcut__modifier").innerText="⌘")})(),window.addEventListener("keydown",e=>{let t=v();e.shiftKey||e.altKey||(w?!e.metaKey||e.ctrlKey:e.metaKey||!e.ctrlKey)||!/^k$/i.test(e.key)?document.activeElement===t&&/Escape/i.test(e.key)&&(y(),E()):(e.preventDefault(),y())},!0),document.querySelectorAll(".search-button__button").forEach(e=>{e.onclick=y});const e=document.getElementById("pst-search-dialog");e&&e.addEventListener("click",b)}),e(()=>{if(!DOCUMENTATION_OPTIONS.search_as_you_type)return;if(window.location.pathname.endsWith("/search.html"))return;if(!Search)return;E();let e=null,t="";const n=document.querySelector("#pst-search-dialog input[name=q]");n.addEventListener("keyup",()=>{const o=n.value;if(""===o)return t="",void E();o!==t&&(E(),t=o,e&&window.clearTimeout(e),e=window.setTimeout(()=>{Search.performSearch(o),document.querySelector("#search-results").classList.remove("empty"),e=null},300))})}),e(function(){const e=document.getElementById("pst-primary-sidebar"),t=document.getElementById("pst-secondary-sidebar"),n=document.getElementById("pst-primary-sidebar-modal"),o=document.getElementById("pst-secondary-sidebar-modal"),r=document.querySelector(".primary-toggle"),s=document.querySelector(".secondary-toggle"),a=(e,t)=>{Array.from(e.childNodes).forEach(e=>t.appendChild(e)),Array.from(e.classList).forEach(n=>{e.classList.remove(n),t.classList.add(n)})};[[r,n,e],[s,o,t]].forEach(([e,t,n])=>{e&&t&&n&&(e.addEventListener("click",e=>{e.preventDefault(),e.stopPropagation();const o=document.activeElement;a(n,t),t.showModal(),t.addEventListener("close",()=>{o&&o.focus&&o.focus()},{once:!0})}),t.addEventListener("click",b),t.addEventListener("keydown",e=>{"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),t.close())}),t.addEventListener("close",()=>{a(t,n)}))})}),e(function(){const e=document.querySelector("#pst-page-toc-nav");if(!e)return;const t=Array.from(e.querySelectorAll(".toc-entry")),n=Array.from(e.querySelectorAll("a"));if(0===n.length)return;let o=!1;function r(e){if(e.length>1){const t=n.find(t=>t.hash===e);t&&(o=!0,setTimeout(()=>{o=!1},1e3),s(t))}}function s(e){n.forEach(t=>{t===e?(t.classList.add("active"),t.setAttribute("aria-current","true")):(t.classList.remove("active"),t.removeAttribute("aria-current"))}),t.forEach(t=>{t.contains(e)?t.classList.add("active"):t.classList.remove("active")})}r(window.location.hash),window.addEventListener("hashchange",()=>{r(window.location.hash)}),window.addEventListener("click",e=>{const t=e.target.closest("a");t&&t.hash===window.location.hash&&t.origin===window.location.origin&&r(t.hash)});const a=new Map;let i;function c(){i&&i.disconnect();const e=document.querySelector("#pst-header").getBoundingClientRect().height;i=new IntersectionObserver(function(e){if(o)return;const t=e.filter(e=>e.isIntersecting).pop();if(!t)return;const n=t.target;s(a.get(n))},{root:null,rootMargin:`-${e}px 0px -70% 0px`,threshold:0}),Array.from(a.keys()).forEach(e=>{i.observe(e)})}n.forEach(e=>{const t=function(e){const t=e.getAttribute("href");if(!t.startsWith("#"))return;const n=t.substring(1);if(!n)return;const o=document.getElementById(n);return o.querySelector(":is(h1,h2,h3,h4,h5,h6)")||o}(e);t&&a.set(t,e)}),window.addEventListener("resize",L(c,300)),c()}),e(()=>{try{!function(){const e=document.getElementById("pst-collapse-sidebar-button"),t=document.getElementById("pst-primary-sidebar");if(!e||!t)return;const n=Array.from(t.children),o=new bootstrap.Tooltip(e,{title:e.querySelector(".pst-expand-sidebar-label").textContent,trigger:"manual",placement:"left",fallbackPlacements:["right"],offset:[0,12]}),r=()=>{"false"===e.getAttribute("aria-expanded")&&o.show()},s=()=>{o.hide()};e.addEventListener("click",()=>{if("true"===e.dataset.busy)return;e.dataset.busy="true";const o=window.matchMedia("(prefers-reduced-motion)").matches;"true"===e.getAttribute("aria-expanded")?function(o){n.forEach(e=>e.style.width=e.getBoundingClientRect().width+"px");const r=()=>{e.setAttribute("aria-expanded","false"),e.dataset.busy=!1};o?(t.classList.add("pst-squeeze"),r()):(t.addEventListener("transitionend",function e(){r(),t.removeEventListener("transitionend",e)}),t.classList.add("pst-squeeze"))}(o):function(o){s();const r=()=>{n.forEach(e=>e.style.width=null),e.setAttribute("aria-expanded","true"),e.dataset.busy=!1};o?(t.classList.remove("pst-squeeze"),r()):(t.addEventListener("transitionend",function e(){r(),t.removeEventListener("transitionend",e)}),t.classList.remove("pst-squeeze"))}(o)}),e.addEventListener("focus",r),e.addEventListener("mouseenter",r),e.addEventListener("mouseleave",s),e.addEventListener("blur",s)}()}catch(e){console.log("[PST] Error setting up collapse sidebar button"),console.error(e)}}),"complete"===document.readyState?I():window.addEventListener("load",I)})(); //# sourceMappingURL=pydata-sphinx-theme.js.map \ No newline at end of file diff --git a/libhal-arm-mcu/main/_static/scripts/pydata-sphinx-theme.js.map b/libhal-arm-mcu/main/_static/scripts/pydata-sphinx-theme.js.map index aeed567..bc383c3 100644 --- a/libhal-arm-mcu/main/_static/scripts/pydata-sphinx-theme.js.map +++ b/libhal-arm-mcu/main/_static/scripts/pydata-sphinx-theme.js.map @@ -1 +1 @@ -{"version":3,"file":"scripts/pydata-sphinx-theme.js","mappings":"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","sources":["webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/scripts/mixin.js","webpack://pydata_sphinx_theme/./node_modules/compare-versions/lib/esm/index.js","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/scripts/pydata-sphinx-theme.js"],"sourcesContent":["/* define several functions to replace jQuery methods\n * inspired by https://tobiasahlin.com/blog/move-from-jquery-to-vanilla-javascript/\n */\n\n/**\n * Execute a method if DOM has finished loading\n *\n * @param {function} callback the method to execute\n */\nexport function documentReady(callback) {\n if (document.readyState != \"loading\") callback();\n else document.addEventListener(\"DOMContentLoaded\", callback);\n}\n","/**\n * Compare [semver](https://semver.org/) version strings to find greater, equal or lesser.\n * This library supports the full semver specification, including comparing versions with different number of digits like `1.0.0`, `1.0`, `1`, and pre-release versions like `1.0.0-alpha`.\n * @param v1 - First version to compare\n * @param v2 - Second version to compare\n * @returns Numeric value compatible with the [Array.sort(fn) interface](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#Parameters).\n */\nexport const compareVersions = (v1, v2) => {\n // validate input and split into segments\n const n1 = validateAndParse(v1);\n const n2 = validateAndParse(v2);\n // pop off the patch\n const p1 = n1.pop();\n const p2 = n2.pop();\n // validate numbers\n const r = compareSegments(n1, n2);\n if (r !== 0)\n return r;\n // validate pre-release\n if (p1 && p2) {\n return compareSegments(p1.split('.'), p2.split('.'));\n }\n else if (p1 || p2) {\n return p1 ? -1 : 1;\n }\n return 0;\n};\n/**\n * Validate [semver](https://semver.org/) version strings.\n *\n * @param version Version number to validate\n * @returns `true` if the version number is a valid semver version number, `false` otherwise.\n *\n * @example\n * ```\n * validate('1.0.0-rc.1'); // return true\n * validate('1.0-rc.1'); // return false\n * validate('foo'); // return false\n * ```\n */\nexport const validate = (version) => typeof version === 'string' && /^[v\\d]/.test(version) && semver.test(version);\n/**\n * Compare [semver](https://semver.org/) version strings using the specified operator.\n *\n * @param v1 First version to compare\n * @param v2 Second version to compare\n * @param operator Allowed arithmetic operator to use\n * @returns `true` if the comparison between the firstVersion and the secondVersion satisfies the operator, `false` otherwise.\n *\n * @example\n * ```\n * compare('10.1.8', '10.0.4', '>'); // return true\n * compare('10.0.1', '10.0.1', '='); // return true\n * compare('10.1.1', '10.2.2', '<'); // return true\n * compare('10.1.1', '10.2.2', '<='); // return true\n * compare('10.1.1', '10.2.2', '>='); // return false\n * ```\n */\nexport const compare = (v1, v2, operator) => {\n // validate input operator\n assertValidOperator(operator);\n // since result of compareVersions can only be -1 or 0 or 1\n // a simple map can be used to replace switch\n const res = compareVersions(v1, v2);\n return operatorResMap[operator].includes(res);\n};\n/**\n * Match [npm semver](https://docs.npmjs.com/cli/v6/using-npm/semver) version range.\n *\n * @param version Version number to match\n * @param range Range pattern for version\n * @returns `true` if the version number is within the range, `false` otherwise.\n *\n * @example\n * ```\n * satisfies('1.1.0', '^1.0.0'); // return true\n * satisfies('1.1.0', '~1.0.0'); // return false\n * ```\n */\nexport const satisfies = (version, range) => {\n // if no range operator then \"=\"\n const m = range.match(/^([<>=~^]+)/);\n const op = m ? m[1] : '=';\n // if gt/lt/eq then operator compare\n if (op !== '^' && op !== '~')\n return compare(version, range, op);\n // else range of either \"~\" or \"^\" is assumed\n const [v1, v2, v3, , vp] = validateAndParse(version);\n const [r1, r2, r3, , rp] = validateAndParse(range);\n const v = [v1, v2, v3];\n const r = [r1, r2 !== null && r2 !== void 0 ? r2 : 'x', r3 !== null && r3 !== void 0 ? r3 : 'x'];\n // validate pre-release\n if (rp) {\n if (!vp)\n return false;\n if (compareSegments(v, r) !== 0)\n return false;\n if (compareSegments(vp.split('.'), rp.split('.')) === -1)\n return false;\n }\n // first non-zero number\n const nonZero = r.findIndex((v) => v !== '0') + 1;\n // pointer to where segments can be >=\n const i = op === '~' ? 2 : nonZero > 1 ? nonZero : 1;\n // before pointer must be equal\n if (compareSegments(v.slice(0, i), r.slice(0, i)) !== 0)\n return false;\n // after pointer must be >=\n if (compareSegments(v.slice(i), r.slice(i)) === -1)\n return false;\n return true;\n};\nconst semver = /^[v^~<>=]*?(\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+))?(?:-([\\da-z\\-]+(?:\\.[\\da-z\\-]+)*))?(?:\\+[\\da-z\\-]+(?:\\.[\\da-z\\-]+)*)?)?)?$/i;\nconst validateAndParse = (version) => {\n if (typeof version !== 'string') {\n throw new TypeError('Invalid argument expected string');\n }\n const match = version.match(semver);\n if (!match) {\n throw new Error(`Invalid argument not valid semver ('${version}' received)`);\n }\n match.shift();\n return match;\n};\nconst isWildcard = (s) => s === '*' || s === 'x' || s === 'X';\nconst tryParse = (v) => {\n const n = parseInt(v, 10);\n return isNaN(n) ? v : n;\n};\nconst forceType = (a, b) => typeof a !== typeof b ? [String(a), String(b)] : [a, b];\nconst compareStrings = (a, b) => {\n if (isWildcard(a) || isWildcard(b))\n return 0;\n const [ap, bp] = forceType(tryParse(a), tryParse(b));\n if (ap > bp)\n return 1;\n if (ap < bp)\n return -1;\n return 0;\n};\nconst compareSegments = (a, b) => {\n for (let i = 0; i < Math.max(a.length, b.length); i++) {\n const r = compareStrings(a[i] || '0', b[i] || '0');\n if (r !== 0)\n return r;\n }\n return 0;\n};\nconst operatorResMap = {\n '>': [1],\n '>=': [0, 1],\n '=': [0],\n '<=': [-1, 0],\n '<': [-1],\n};\nconst allowedOperators = Object.keys(operatorResMap);\nconst assertValidOperator = (op) => {\n if (typeof op !== 'string') {\n throw new TypeError(`Invalid operator type, expected string but got ${typeof op}`);\n }\n if (allowedOperators.indexOf(op) === -1) {\n throw new Error(`Invalid operator, expected one of ${allowedOperators.join('|')}`);\n }\n};\n//# sourceMappingURL=index.js.map","// Define the custom behavior of the page\nimport { documentReady } from \"./mixin\";\nimport { compare, validate } from \"compare-versions\";\n\nimport \"../styles/pydata-sphinx-theme.scss\";\n\n/*******************************************************************************\n * Theme interaction\n */\n\nvar prefersDark = window.matchMedia(\"(prefers-color-scheme: dark)\");\n\n/**\n * set the the body theme to the one specified by the user browser\n *\n * @param {event} e\n */\nfunction autoTheme(e) {\n document.documentElement.dataset.theme = prefersDark.matches\n ? \"dark\"\n : \"light\";\n}\n\n/**\n * Set the theme using the specified mode.\n * It can be one of [\"auto\", \"dark\", \"light\"]\n *\n * @param {str} mode\n */\nfunction setTheme(mode) {\n if (mode !== \"light\" && mode !== \"dark\" && mode !== \"auto\") {\n console.error(`Got invalid theme mode: ${mode}. Resetting to auto.`);\n mode = \"auto\";\n }\n\n // get the theme\n var colorScheme = prefersDark.matches ? \"dark\" : \"light\";\n document.documentElement.dataset.mode = mode;\n var theme = mode == \"auto\" ? colorScheme : mode;\n document.documentElement.dataset.theme = theme;\n // TODO: remove this line after Bootstrap upgrade\n // v5.3 has a colors mode: https://getbootstrap.com/docs/5.3/customize/color-modes/\n document.querySelectorAll(\".dropdown-menu\").forEach((el) => {\n if (theme === \"dark\") {\n el.classList.add(\"dropdown-menu-dark\");\n } else {\n el.classList.remove(\"dropdown-menu-dark\");\n }\n });\n\n // save mode and theme\n localStorage.setItem(\"mode\", mode);\n localStorage.setItem(\"theme\", theme);\n console.log(`[PST]: Changed to ${mode} mode using the ${theme} theme.`);\n\n // add a listener if set on auto\n prefersDark.onchange = mode == \"auto\" ? autoTheme : \"\";\n}\n\n/**\n * Update the active dropdown item based on the current color mode.\n */\nfunction updateColorModeDropdown(mode) {\n const activeClass = \"active\";\n document.querySelectorAll(\".theme-change-button\").forEach((el) => {\n if (el.dataset.mode === mode) {\n el.classList.add(activeClass);\n } else {\n el.classList.remove(activeClass);\n }\n });\n}\n\n/**\n * Change the color mode based on the clicked dropdown item.\n */\nfunction changeColorMode(e) {\n const btn = e.currentTarget;\n const mode = btn.dataset.mode;\n setTheme(mode);\n updateColorModeDropdown(mode);\n}\n\n/**\n * add the theme listener on the btns of the navbar\n */\nfunction addModeListener() {\n // the theme was set a first time using the initial mini-script\n // running setMode will ensure the use of the dark mode if auto is selected\n const mode = document.documentElement.dataset.mode;\n setTheme(mode);\n updateColorModeDropdown(mode);\n\n // Attach click handlers to color mode dropdown items\n document.querySelectorAll(\".theme-change-button\").forEach((el) => {\n el.addEventListener(\"click\", changeColorMode);\n });\n}\n\n/*******************************************************************************\n * Scroll\n */\n\n/**\n * Navigation sidebar scrolling to active page\n */\nfunction scrollToActive() {\n // If the docs nav doesn't exist, do nothing (e.g., on search page)\n if (!document.querySelector(\".bd-docs-nav\")) {\n return;\n }\n\n var sidebar = document.querySelector(\"div.bd-sidebar\");\n\n // Remember the sidebar scroll position between page loads\n // Inspired on source of revealjs.com\n let storedScrollTop = parseInt(\n sessionStorage.getItem(\"sidebar-scroll-top\"),\n 10,\n );\n\n if (!isNaN(storedScrollTop)) {\n // If we've got a saved scroll position, just use that\n sidebar.scrollTop = storedScrollTop;\n console.log(\"[PST]: Scrolled sidebar using stored browser position...\");\n } else {\n // Otherwise, calculate a position to scroll to based on the lowest `active` link\n var sidebarNav = document.querySelector(\".bd-docs-nav\");\n var active_pages = sidebarNav.querySelectorAll(\".active\");\n if (active_pages.length > 0) {\n // Use the last active page as the offset since it's the page we're on\n var latest_active = active_pages[active_pages.length - 1];\n var offset =\n latest_active.getBoundingClientRect().y -\n sidebar.getBoundingClientRect().y;\n // Only scroll the navbar if the active link is lower than 50% of the page\n if (latest_active.getBoundingClientRect().y > window.innerHeight * 0.5) {\n let buffer = 0.25; // Buffer so we have some space above the scrolled item\n sidebar.scrollTop = offset - sidebar.clientHeight * buffer;\n console.log(\"[PST]: Scrolled sidebar using last active link...\");\n }\n }\n }\n\n // Store the sidebar scroll position\n window.addEventListener(\"beforeunload\", () => {\n sessionStorage.setItem(\"sidebar-scroll-top\", sidebar.scrollTop);\n });\n}\n\n/*******************************************************************************\n * Search\n */\n\n/**\n * Find any search forms on the page and return their input element\n */\nvar findSearchInput = () => {\n let forms = document.querySelectorAll(\"form.bd-search\");\n if (!forms.length) {\n // no search form found\n return;\n } else {\n var form;\n if (forms.length == 1) {\n // there is exactly one search form (persistent or hidden)\n form = forms[0];\n } else {\n // must be at least one persistent form, use the first persistent one\n form = document.querySelector(\n \":not(#pst-search-dialog) > form.bd-search\",\n );\n }\n return form.querySelector(\"input\");\n }\n};\n\n/**\n * Activate the search field on the page.\n * - If there is a search field already visible it will be activated.\n * - If not, then a search field will pop up.\n */\nvar toggleSearchField = () => {\n // Find the search input to highlight\n const input = findSearchInput();\n\n // if the input field is the hidden one (the one associated with the\n // search button) then toggle the button state (to show/hide the field)\n const searchDialog = document.getElementById(\"pst-search-dialog\");\n if (!searchDialog) {\n // Search dialog was disabled via disable_search theme option; nothing to do.\n return;\n }\n const hiddenInput = searchDialog.querySelector(\"input\");\n if (input === hiddenInput) {\n if (searchDialog.open) {\n searchDialog.close();\n } else {\n // Note: browsers should focus the input field inside the modal dialog\n // automatically when it is opened.\n searchDialog.showModal();\n }\n } else {\n // if the input field is not the hidden one, then toggle its focus state\n\n if (document.activeElement === input) {\n input.blur();\n } else {\n input.focus();\n input.select();\n input.scrollIntoView({ block: \"center\" });\n }\n }\n};\n\n/**\n * Add an event listener for toggleSearchField() for Ctrl/Cmd + K\n */\nvar addEventListenerForSearchKeyboard = () => {\n window.addEventListener(\n \"keydown\",\n (event) => {\n let input = findSearchInput();\n // toggle on Ctrl+k or ⌘+k\n if (\n // Ignore if shift or alt are pressed\n !event.shiftKey &&\n !event.altKey &&\n // On Mac use ⌘, all other OS use Ctrl\n (useCommandKey\n ? event.metaKey && !event.ctrlKey\n : !event.metaKey && event.ctrlKey) &&\n // Case-insensitive so the shortcut still works with caps lock\n /^k$/i.test(event.key)\n ) {\n event.preventDefault();\n toggleSearchField();\n }\n // also allow Escape key to hide (but not show) the dynamic search field\n else if (document.activeElement === input && /Escape/i.test(event.key)) {\n toggleSearchField();\n resetSearchAsYouTypeResults();\n }\n },\n true,\n );\n};\n\n/**\n * If the user is on a Mac, use command (⌘) instead of control (ctrl) key\n *\n * Note: `navigator.platform` is deprecated; however MDN still recommends using\n * it for the one specific use case of detecting whether a keyboard shortcut\n * should use control or command:\n * https://developer.mozilla.org/en-US/docs/Web/API/Navigator/platform#examples\n */\nvar useCommandKey =\n navigator.platform.indexOf(\"Mac\") === 0 || navigator.platform === \"iPhone\";\n\n/**\n * Change the search hint to `meta key` if we are a Mac\n */\n\nvar changeSearchShortcutKey = () => {\n let shortcuts = document.querySelectorAll(\".search-button__kbd-shortcut\");\n if (useCommandKey) {\n shortcuts.forEach(\n (f) => (f.querySelector(\"kbd.kbd-shortcut__modifier\").innerText = \"⌘\"),\n );\n }\n};\n\nconst closeDialogOnBackdropClick = ({\n currentTarget: dialog,\n clientX,\n clientY,\n}) => {\n if (!dialog.open) {\n return;\n }\n\n // Dialog.getBoundingClientRect() does not include ::backdrop. (This is the\n // trick that allows us to determine if click was inside or outside of the\n // dialog: click handler includes backdrop, getBoundingClientRect does not.)\n const { left, right, top, bottom } = dialog.getBoundingClientRect();\n\n // 0, 0 means top left\n const clickWasOutsideDialog =\n clientX < left || right < clientX || clientY < top || bottom < clientY;\n\n if (clickWasOutsideDialog) {\n dialog.close();\n }\n};\n\n/**\n * Activate callbacks for search button popup\n */\nvar setupSearchButtons = () => {\n changeSearchShortcutKey();\n addEventListenerForSearchKeyboard();\n\n // Add the search button trigger event callback\n document.querySelectorAll(\".search-button__button\").forEach((btn) => {\n btn.onclick = toggleSearchField;\n });\n\n // If user clicks outside the search modal dialog, then close it.\n const searchDialog = document.getElementById(\"pst-search-dialog\");\n if (!searchDialog) {\n // Search dialog was disabled via disable_search theme option; nothing to do.\n return;\n }\n // Dialog click handler includes clicks on dialog ::backdrop.\n searchDialog.addEventListener(\"click\", closeDialogOnBackdropClick);\n};\n\n/*******************************************************************************\n * Inline search results (search-as-you-type)\n *\n * Immediately displays search results under the search query textbox.\n *\n * The search is conducted by Sphinx's built-in search tools (searchtools.js).\n * Usually searchtools.js is only available on /search.html but\n * pydata-sphinx-theme (PST) has been modified to load searchtools.js on every\n * page. After the user types something into PST's search query textbox,\n * searchtools.js executes the search and populates the results into\n * the #search-results container. searchtools.js expects the results container\n * to have that exact ID.\n */\nvar setupSearchAsYouType = () => {\n if (!DOCUMENTATION_OPTIONS.search_as_you_type) {\n return;\n }\n\n // Don't interfere with the default search UX on /search.html.\n if (window.location.pathname.endsWith(\"/search.html\")) {\n return;\n }\n\n // Bail if the Search class is not available. Search-as-you-type is\n // impossible without that class. layout.html should ensure that\n // searchtools.js loads.\n //\n // Search class is defined in upstream Sphinx:\n // https://github.com/sphinx-doc/sphinx/blob/6678e357048ea1767daaad68e7e0569786f3b458/sphinx/themes/basic/static/searchtools.js#L181\n if (!Search) {\n return;\n }\n\n // Destroy the previous search container and create a new one.\n resetSearchAsYouTypeResults();\n let timeoutId = null;\n let lastQuery = \"\";\n const searchInput = document.querySelector(\n \"#pst-search-dialog input[name=q]\",\n );\n\n // Initiate searches whenever the user types stuff in the search modal textbox.\n searchInput.addEventListener(\"keyup\", () => {\n const query = searchInput.value;\n\n // Don't search when there's nothing in the query textbox.\n if (query === \"\") {\n lastQuery = \"\";\n resetSearchAsYouTypeResults(); // Remove previous results.\n return;\n }\n\n // Don't search if there is no detectable change between\n // the last query and the current query. E.g. the user presses\n // Tab to start navigating the search results.\n if (query === lastQuery) {\n return;\n }\n\n // The user has changed the search query. Delete the old results\n // and start setting up the new container.\n resetSearchAsYouTypeResults();\n\n // Debounce so that the search only starts when the user stops typing.\n const delay_ms = 300;\n lastQuery = query;\n if (timeoutId) {\n window.clearTimeout(timeoutId);\n }\n timeoutId = window.setTimeout(() => {\n Search.performSearch(query);\n document.querySelector(\"#search-results\").classList.remove(\"empty\");\n timeoutId = null;\n }, delay_ms);\n });\n};\n\n// Delete the old search results container (if it exists) and set up a new one.\n//\n// There is some complexity around ensuring that the search results links are\n// correct because we're extending searchtools.js past its assumed usage.\n// Sphinx assumes that searches are only executed from /search.html and\n// therefore it assumes that all search results links should be relative to\n// the root directory of the website. In our case the search can now execute\n// from any page of the website so we must fix the relative URLs that\n// searchtools.js generates.\nvar resetSearchAsYouTypeResults = () => {\n if (!DOCUMENTATION_OPTIONS.search_as_you_type) {\n return;\n }\n // If a search-as-you-type results container was previously added,\n // remove it now.\n let results = document.querySelector(\"#search-results\");\n if (results) {\n results.remove();\n }\n\n // Create a new search-as-you-type results container.\n results = document.createElement(\"section\");\n results.classList.add(\"empty\");\n // Remove the container element from the tab order. Individual search\n // results are still focusable.\n results.tabIndex = -1;\n // When focus is on a search result, make sure that pressing Escape closes\n // the search modal.\n results.addEventListener(\"keydown\", (event) => {\n if (event.key === \"Escape\") {\n event.preventDefault();\n event.stopPropagation();\n toggleSearchField();\n resetSearchAsYouTypeResults();\n }\n });\n // IMPORTANT: The search results container MUST have this exact ID.\n // searchtools.js is hardcoded to populate into the node with this ID.\n results.id = \"search-results\";\n let modal = document.querySelector(\"#pst-search-dialog\");\n modal.appendChild(results);\n\n // Get the relative path back to the root of the website.\n const root = document.documentElement.dataset.content_root;\n\n // As Sphinx populates the search results, this observer makes sure that\n // each URL is correct (i.e. doesn't 404).\n const linkObserver = new MutationObserver(() => {\n const links = Array.from(\n document.querySelectorAll(\"#search-results .search a\"),\n );\n // Check every link every time because the timing of when new results are\n // added is unpredictable and it's not an expensive operation.\n links.forEach((link) => {\n link.tabIndex = 0; // Use natural tab order for search results.\n // Don't use the link.href getter because the browser computes the href\n // as a full URL. We need the relative URL that Sphinx generates.\n const href = link.getAttribute(\"href\");\n if (href.startsWith(root)) {\n // No work needed. The root has already been prepended to the href.\n return;\n }\n link.href = `${root}${href}`;\n });\n });\n\n // The node that linkObserver watches doesn't exist until the user types\n // something into the search textbox. This second observer (resultsObserver)\n // just waits for #search-results to exist and then registers\n // linkObserver on it.\n let isObserved = false;\n const resultsObserver = new MutationObserver(() => {\n if (isObserved) {\n return;\n }\n const container = document.querySelector(\"#search-results .search\");\n if (!container) {\n return;\n }\n linkObserver.observe(container, { childList: true });\n isObserved = true;\n });\n resultsObserver.observe(results, { childList: true });\n};\n\n/*******************************************************************************\n * Version Switcher\n * Note that this depends on two variables existing that are defined in\n * and `html-page-context` hook:\n *\n * - DOCUMENTATION_OPTIONS.pagename\n * - DOCUMENTATION_OPTIONS.theme_switcher_url\n */\n\n/**\n * path component of URL\n */\nvar getCurrentUrlPath = () => {\n if (DOCUMENTATION_OPTIONS.BUILDER == \"dirhtml\") {\n return DOCUMENTATION_OPTIONS.pagename.endsWith(\"index\")\n ? `${DOCUMENTATION_OPTIONS.pagename.substring(0, DOCUMENTATION_OPTIONS.pagename.length - \"index\".length)}`\n : `${DOCUMENTATION_OPTIONS.pagename}/`;\n }\n return `${DOCUMENTATION_OPTIONS.pagename}.html`;\n};\n\n/**\n * Allow user to dismiss the warning banner about the docs version being dev / old.\n * We store the dismissal date and version, to give us flexibility about making the\n * dismissal last for longer than one browser session, if we decide to do that.\n *\n * @param {event} event the event that trigger the check\n */\nasync function DismissBannerAndStorePref(event) {\n const banner = document.querySelector(\"#bd-header-version-warning\");\n banner.remove();\n const version = DOCUMENTATION_OPTIONS.VERSION;\n const now = new Date();\n const banner_pref = JSON.parse(\n localStorage.getItem(\"pst_banner_pref\") || \"{}\",\n );\n console.debug(\n `[PST] Dismissing the version warning banner on ${version} starting ${now}.`,\n );\n banner_pref[version] = now;\n localStorage.setItem(\"pst_banner_pref\", JSON.stringify(banner_pref));\n}\n\n/**\n * Check if corresponding page path exists in other version of docs\n * and, if so, go there instead of the homepage of the other docs version\n *\n * @param {event} event the event that trigger the check\n */\nasync function checkPageExistsAndRedirect(event) {\n // ensure we don't follow the initial link\n event.preventDefault();\n const currentFilePath = getCurrentUrlPath();\n let tryUrl = event.currentTarget.getAttribute(\"href\");\n let otherDocsHomepage = tryUrl.replace(currentFilePath, \"\");\n try {\n let head = await fetch(tryUrl, { method: \"HEAD\" });\n if (head.ok) {\n location.href = tryUrl; // the page exists, go there\n } else {\n location.href = otherDocsHomepage;\n }\n } catch (err) {\n // something went wrong, probably CORS restriction, fallback to other docs homepage\n location.href = otherDocsHomepage;\n }\n}\n\n/**\n * Load and parse the version switcher JSON file from an absolute or relative URL.\n *\n * @param {string} url The URL to load version switcher entries from.\n */\nasync function fetchVersionSwitcherJSON(url) {\n const currentPath = getCurrentUrlPath();\n // first check if it's a valid URL\n try {\n var result = new URL(url);\n } catch (err) {\n if (err instanceof TypeError) {\n // Assume we got a relative path, and fix accordingly.\n if (window.location.protocol == \"file:\") {\n // Here instead of returning `null` we work out what the file path would be\n // anyway (same code path as for served docs), as a convenience to folks who\n // routinely disable CORS when they boot up their browser.\n console.info(\n \"[PST] looks like you're viewing this site from a local filesystem, so \" +\n \"the version switcher won't work unless you've disabled CORS. See \" +\n \"https://pydata-sphinx-theme.readthedocs.io/en/stable/user_guide/version-dropdown.html\",\n );\n }\n const cutoff = window.location.href.indexOf(currentPath);\n // cutoff == -1 can happen e.g. on the homepage of locally served docs, where you\n // get something like http://127.0.0.1:8000/ (no trailing `index.html`)\n const origin =\n cutoff == -1\n ? window.location.href\n : window.location.href.substring(0, cutoff);\n result = new URL(url, origin);\n } else {\n // something unexpected happened\n throw err;\n }\n }\n // load and return the JSON\n const response = await fetch(result);\n const data = await response.json();\n return data;\n}\n\n// Populate the version switcher from the JSON data\nfunction populateVersionSwitcher(data, versionSwitcherBtns) {\n const currentFilePath = getCurrentUrlPath();\n versionSwitcherBtns.forEach((btn) => {\n // Set empty strings by default so that these attributes exist and can be used in CSS selectors\n btn.dataset[\"activeVersionName\"] = \"\";\n btn.dataset[\"activeVersion\"] = \"\";\n });\n // in case there are multiple entries with the same version string, this helps us\n // decide which entry's `name` to put on the button itself. Without this, it would\n // always be the *last* version-matching entry; now it will be either the\n // version-matching entry that is also marked as `\"preferred\": true`, or if that\n // doesn't exist: the *first* version-matching entry.\n data = data.map((entry) => {\n // does this entry match the version that we're currently building/viewing?\n entry.match =\n entry.version == DOCUMENTATION_OPTIONS.theme_switcher_version_match;\n entry.preferred = entry.preferred || false;\n // if no custom name specified (e.g., \"latest\"), use version string\n if (!(\"name\" in entry)) {\n entry.name = entry.version;\n }\n return entry;\n });\n const hasMatchingPreferredEntry = data\n .map((entry) => entry.preferred && entry.match)\n .some(Boolean);\n var foundMatch = false;\n // create links to the corresponding page in the other docs versions\n data.forEach((entry) => {\n // create the node\n const anchor = document.createElement(\"a\");\n anchor.setAttribute(\n \"class\",\n \"dropdown-item list-group-item list-group-item-action py-1\",\n );\n anchor.setAttribute(\"href\", `${entry.url}${currentFilePath}`);\n anchor.setAttribute(\"role\", \"option\");\n const span = document.createElement(\"span\");\n span.textContent = `${entry.name}`;\n anchor.appendChild(span);\n // Add dataset values for the version and name in case people want\n // to apply CSS styling based on this information.\n anchor.dataset[\"versionName\"] = entry.name;\n anchor.dataset[\"version\"] = entry.version;\n // replace dropdown button text with the preferred display name of the\n // currently-viewed version, rather than using sphinx's {{ version }} variable.\n // also highlight the dropdown entry for the currently-viewed version's entry\n let matchesAndIsPreferred = hasMatchingPreferredEntry && entry.preferred;\n let matchesAndIsFirst =\n !hasMatchingPreferredEntry && !foundMatch && entry.match;\n if (matchesAndIsPreferred || matchesAndIsFirst) {\n anchor.classList.add(\"active\");\n versionSwitcherBtns.forEach((btn) => {\n btn.innerText = entry.name;\n btn.dataset[\"activeVersionName\"] = entry.name;\n btn.dataset[\"activeVersion\"] = entry.version;\n });\n foundMatch = true;\n }\n // There may be multiple version-switcher elements, e.g. one\n // in a slide-over panel displayed on smaller screens.\n document.querySelectorAll(\".version-switcher__menu\").forEach((menu) => {\n // we need to clone the node for each menu, but onclick attributes are not\n // preserved by `.cloneNode()` so we add onclick here after cloning.\n let node = anchor.cloneNode(true);\n node.onclick = checkPageExistsAndRedirect;\n // on click, AJAX calls will check if the linked page exists before\n // trying to redirect, and if not, will redirect to the homepage\n // for that version of the docs.\n menu.append(node);\n });\n });\n}\n\n/*******************************************************************************\n * Warning banner when viewing non-stable version of the docs.\n */\n\n/**\n * Show a warning banner when viewing a non-stable version of the docs.\n *\n * adapted 2023-06 from https://mne.tools/versionwarning.js, which was\n * originally adapted 2020-05 from https://scikit-learn.org/versionwarning.js\n *\n * @param {Array} data The version data used to populate the switcher menu.\n */\nfunction showVersionWarningBanner(data) {\n var version = DOCUMENTATION_OPTIONS.VERSION;\n // figure out what latest stable version is\n var preferredEntries = data.filter((entry) => entry.preferred);\n if (preferredEntries.length !== 1) {\n const howMany = preferredEntries.length == 0 ? \"No\" : \"Multiple\";\n console.log(\n `[PST] ${howMany} versions marked \"preferred\" found in versions JSON, ignoring.`,\n );\n return;\n }\n const preferredVersion = preferredEntries[0].version;\n const preferredURL = preferredEntries[0].url;\n // if already on preferred version, nothing to do\n const versionsAreComparable = validate(version) && validate(preferredVersion);\n if (versionsAreComparable && compare(version, preferredVersion, \"=\")) {\n console.log(\n \"[PST]: This is the preferred version of the docs, not showing the warning banner.\",\n );\n return;\n }\n // check if banner has been dismissed recently\n const dismiss_date_str = JSON.parse(\n localStorage.getItem(\"pst_banner_pref\") || \"{}\",\n )[version];\n if (dismiss_date_str != null) {\n const dismiss_date = new Date(dismiss_date_str);\n const now = new Date();\n const milliseconds_in_a_day = 24 * 60 * 60 * 1000;\n const days_passed = (now - dismiss_date) / milliseconds_in_a_day;\n const timeout_in_days = 14;\n if (days_passed < timeout_in_days) {\n console.info(\n `[PST] Suppressing version warning banner; was dismissed ${Math.floor(\n days_passed,\n )} day(s) ago`,\n );\n return;\n }\n }\n\n // now construct the warning banner\n const banner = document.querySelector(\"#bd-header-version-warning\");\n const middle = document.createElement(\"div\");\n const inner = document.createElement(\"div\");\n const bold = document.createElement(\"strong\");\n const button = document.createElement(\"a\");\n const close_btn = document.createElement(\"a\");\n // these classes exist since pydata-sphinx-theme v0.10.0\n // the init class is used for animation\n middle.classList = \"bd-header-announcement__content ms-auto me-auto\";\n inner.classList = \"sidebar-message\";\n button.classList =\n \"btn text-wrap font-weight-bold ms-3 my-1 align-baseline pst-button-link-to-stable-version\";\n button.href = `${preferredURL}${getCurrentUrlPath()}`;\n button.innerText = \"Switch to stable version\";\n button.onclick = checkPageExistsAndRedirect;\n close_btn.classList = \"ms-3 my-1 align-baseline\";\n const close_x = document.createElement(\"i\");\n close_btn.append(close_x);\n close_x.classList = \"fa-solid fa-xmark\";\n close_btn.onclick = DismissBannerAndStorePref;\n // add the version-dependent text\n inner.innerText = \"This is documentation for \";\n const isDev =\n version.includes(\"dev\") ||\n version.includes(\"rc\") ||\n version.includes(\"pre\");\n const newerThanPreferred =\n versionsAreComparable && compare(version, preferredVersion, \">\");\n if (isDev || newerThanPreferred) {\n bold.innerText = \"an unstable development version\";\n } else if (versionsAreComparable && compare(version, preferredVersion, \"<\")) {\n bold.innerText = `an old version (${version})`;\n } else if (!version) {\n bold.innerText = \"an unknown version\"; // e.g., an empty string\n } else {\n bold.innerText = `version ${version}`;\n }\n banner.appendChild(middle);\n banner.append(close_btn);\n middle.appendChild(inner);\n inner.appendChild(bold);\n inner.appendChild(document.createTextNode(\".\"));\n inner.appendChild(button);\n banner.classList.remove(\"d-none\");\n}\n\nasync function fetchAndUseVersions() {\n // fetch the JSON version data (only once), then use it to populate the version\n // switcher and maybe show the version warning bar\n var versionSwitcherBtns = document.querySelectorAll(\n \".version-switcher__button\",\n );\n const hasSwitcherMenu = versionSwitcherBtns.length > 0;\n const hasVersionsJSON = DOCUMENTATION_OPTIONS.hasOwnProperty(\n \"theme_switcher_json_url\",\n );\n const wantsWarningBanner = DOCUMENTATION_OPTIONS.show_version_warning_banner;\n\n if (hasVersionsJSON && (hasSwitcherMenu || wantsWarningBanner)) {\n const data = await fetchVersionSwitcherJSON(\n DOCUMENTATION_OPTIONS.theme_switcher_json_url,\n );\n // TODO: remove the `if(data)` once the `return null` is fixed within fetchVersionSwitcherJSON.\n // We don't really want the switcher and warning bar to silently not work.\n if (data) {\n populateVersionSwitcher(data, versionSwitcherBtns);\n if (wantsWarningBanner) {\n showVersionWarningBanner(data);\n }\n }\n }\n}\n\n/*******************************************************************************\n * Sidebar modals (for mobile / narrow screens)\n */\nfunction setupMobileSidebarKeyboardHandlers() {\n // These are the left and right sidebars for wider screens. We cut and paste\n // the content from these widescreen sidebars into the mobile dialogs, when\n // the user clicks the hamburger icon button\n const primarySidebar = document.getElementById(\"pst-primary-sidebar\");\n const secondarySidebar = document.getElementById(\"pst-secondary-sidebar\");\n\n // These are the corresponding left/right elements, which are empty\n // until the user clicks the hamburger icon\n const primaryDialog = document.getElementById(\"pst-primary-sidebar-modal\");\n const secondaryDialog = document.getElementById(\n \"pst-secondary-sidebar-modal\",\n );\n\n // These are the hamburger-style buttons in the header nav bar. They only\n // appear at narrow screen width.\n const primaryToggle = document.querySelector(\".primary-toggle\");\n const secondaryToggle = document.querySelector(\".secondary-toggle\");\n\n // Cut nodes and classes from `from`, paste into/onto `to`\n const cutAndPasteNodesAndClasses = (from, to) => {\n Array.from(from.childNodes).forEach((node) => to.appendChild(node));\n Array.from(from.classList).forEach((cls) => {\n from.classList.remove(cls);\n to.classList.add(cls);\n });\n };\n\n // Hook up the ways to open and close the dialog\n [\n [primaryToggle, primaryDialog, primarySidebar],\n [secondaryToggle, secondaryDialog, secondarySidebar],\n ].forEach(([toggleButton, dialog, sidebar]) => {\n if (!toggleButton || !dialog || !sidebar) {\n return;\n }\n\n // Clicking the button can only open the sidebar, not close it.\n // Clicking the button is also the *only* way to open the sidebar.\n toggleButton.addEventListener(\"click\", (event) => {\n event.preventDefault();\n event.stopPropagation();\n\n // Save focus so we can restore it when the dialog closes\n const previouslyFocused = document.activeElement;\n\n // When we open the dialog, we cut and paste the nodes and classes from\n // the widescreen sidebar into the dialog\n cutAndPasteNodesAndClasses(sidebar, dialog);\n\n dialog.showModal();\n\n // Restore focus when dialog closes\n dialog.addEventListener(\n \"close\",\n () => {\n if (previouslyFocused && previouslyFocused.focus) {\n previouslyFocused.focus();\n }\n },\n { once: true },\n );\n });\n\n // Listen for clicks on the backdrop in order to close the dialog\n dialog.addEventListener(\"click\", closeDialogOnBackdropClick);\n\n // We have to manually attach the escape key because there's some code in\n // Sphinx's Sphinx_highlight.js that prevents the default behavior of the\n // escape key\n dialog.addEventListener(\"keydown\", (event) => {\n if (event.key === \"Escape\") {\n event.preventDefault();\n event.stopPropagation();\n dialog.close();\n }\n });\n\n // When the dialog is closed, move the nodes (and classes) back to their\n // original place\n dialog.addEventListener(\"close\", () => {\n cutAndPasteNodesAndClasses(dialog, sidebar);\n });\n });\n}\n\n/**\n * When the page loads, or the window resizes, or descendant nodes are added or\n * removed from the main element, check all code blocks and Jupyter notebook\n * outputs, and for each one that has scrollable overflow, set tabIndex = 0.\n */\nfunction addTabStopsToScrollableElements() {\n const updateTabStops = () => {\n document\n .querySelectorAll(\n [\n // code blocks\n \"pre\",\n // NBSphinx notebook output\n \".nboutput > .output_area\",\n // Myst-NB\n \".cell_output > .output\",\n // ipywidgets\n \".jp-RenderedHTMLCommon\",\n // [rST table nodes](https://www.docutils.org/docs/ref/doctree.html#table)\n \".pst-scrollable-table-container\",\n ].join(\", \"),\n )\n .forEach((el) => {\n el.tabIndex =\n el.scrollWidth > el.clientWidth || el.scrollHeight > el.clientHeight\n ? 0\n : -1;\n });\n };\n const debouncedUpdateTabStops = debounce(updateTabStops, 300);\n\n // On window resize\n window.addEventListener(\"resize\", debouncedUpdateTabStops);\n\n // The following MutationObserver is for ipywidgets, which take some time to\n // finish loading and rendering on the page (so even after the \"load\" event is\n // fired, they still have not finished rendering). Would be nice to replace\n // the MutationObserver if there is a way to hook into the ipywidgets code to\n // know when it is done.\n const mainObserver = new MutationObserver(debouncedUpdateTabStops);\n\n // On descendant nodes added/removed from main element\n mainObserver.observe(document.getElementById(\"main-content\"), {\n subtree: true,\n childList: true,\n });\n\n // On page load (when this function gets called)\n updateTabStops();\n}\nfunction debounce(callback, wait) {\n let timeoutId = null;\n return (...args) => {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(() => {\n callback(...args);\n }, wait);\n };\n}\n\n/*******************************************************************************\n * Announcement banner - fetch and load remote HTML\n */\nasync function setupAnnouncementBanner() {\n const banner = document.querySelector(\".bd-header-announcement\");\n\n // check if banner has been dismissed recently\n const dismiss_date_str = JSON.parse(\n localStorage.getItem(\"pst_announcement_banner_pref\") || \"{}\",\n )[\"closed\"];\n if (dismiss_date_str != null) {\n const dismiss_date = new Date(dismiss_date_str);\n const now = new Date();\n const milliseconds_in_a_day = 24 * 60 * 60 * 1000;\n const days_passed = (now - dismiss_date) / milliseconds_in_a_day;\n const timeout_in_days = 14;\n if (days_passed < timeout_in_days) {\n console.info(\n `[PST] Suppressing announcement banner; was dismissed ${Math.floor(\n days_passed,\n )} day(s) ago`,\n );\n banner.remove();\n return;\n }\n }\n\n const { pstAnnouncementUrl } = banner ? banner.dataset : null;\n\n if (!pstAnnouncementUrl) {\n return;\n }\n\n try {\n const response = await fetch(pstAnnouncementUrl);\n if (!response.ok) {\n throw new Error(\n `[PST]: HTTP response status not ok: ${response.status} ${response.statusText}`,\n );\n }\n let data = await response.text();\n data = data.trim();\n if (data.length === 0) {\n console.log(`[PST]: Empty announcement at: ${pstAnnouncementUrl}`);\n return;\n }\n banner.innerHTML = `
${data}
`;\n banner.classList.remove(\"d-none\");\n } catch (_error) {\n console.log(`[PST]: Failed to load announcement at: ${pstAnnouncementUrl}`);\n console.error(_error);\n }\n\n // Add close button\n console.debug(\"[PST] Adding close button to announcement banner\");\n const close_btn = document.createElement(\"a\");\n close_btn.classList = \"ms-3 my-1 align-baseline\";\n const close_x = document.createElement(\"i\");\n close_btn.append(close_x);\n close_x.classList = \"fa-solid fa-xmark\";\n close_btn.onclick = DismissAnnouncementBannerAndStorePref;\n banner.append(close_btn);\n}\n\nasync function DismissAnnouncementBannerAndStorePref(event) {\n const banner = document.querySelector(\".bd-header-announcement\");\n banner.remove();\n const now = new Date();\n const banner_pref = JSON.parse(\n localStorage.getItem(\"pst_announcement_banner_pref\") || \"{}\",\n );\n console.debug(`[PST] Dismissing the announcement banner starting ${now}.`);\n banner_pref[\"closed\"] = now.toISOString();\n localStorage.setItem(\n \"pst_announcement_banner_pref\",\n JSON.stringify(banner_pref),\n );\n}\n\n/*******************************************************************************\n * Reveal (and animate) the banners (version warning, announcement) together\n */\nasync function fetchRevealBannersTogether() {\n // Wait until finished fetching and loading banners\n await Promise.allSettled([fetchAndUseVersions(), setupAnnouncementBanner()]);\n\n // The revealer element should have CSS rules that set height to 0, overflow\n // to hidden, and an animation transition on the height (unless the user has\n // turned off animations)\n const revealer = document.querySelector(\".pst-async-banner-revealer\");\n if (!revealer) {\n return;\n }\n\n // Remove the d-none (display-none) class to calculate the children heights.\n revealer.classList.remove(\"d-none\");\n\n // Add together the heights of the element's children\n const height = Array.from(revealer.children).reduce(\n (height, el) => height + el.offsetHeight,\n 0,\n );\n\n // Use the calculated height to give the revealer a non-zero height (if\n // animations allowed, the height change will animate)\n revealer.style.setProperty(\"height\", `${height}px`);\n\n // Wait for a bit more than 300ms (the transition duration), then set height\n // to auto so the banner can resize if the window is resized.\n setTimeout(() => {\n revealer.style.setProperty(\"height\", \"auto\");\n }, 320);\n}\n\n/**\n * Add the machinery needed to highlight elements in the TOC when scrolling.\n *\n */\nfunction setupArticleTocSyncing() {\n // Right sidebar table of contents container\n const pageToc = document.querySelector(\"#pst-page-toc-nav\");\n\n // Not all pages have or include a table of contents. (For example, in the PST\n // docs, at the time of this writing: /user_guide/index.html.)\n if (!pageToc) {\n return;\n }\n\n // The table of contents is a list of .toc-entry items each of which contains\n // a link and possibly a nested list representing one level deeper in the\n // table of contents.\n const tocEntries = Array.from(pageToc.querySelectorAll(\".toc-entry\"));\n const tocLinks = Array.from(pageToc.querySelectorAll(\"a\"));\n\n // If there are no links in the TOC, there's no syncing to be done.\n // (Currently, the template does not render the TOC container if there are no\n // TOC links, so this condition should never evaluate to true if the TOC\n // container is found on the page, but should the template change in the\n // future, this check will prevent a runtime error.)\n if (tocLinks.length === 0) {\n return;\n }\n\n // Create a boolean variable that allows us to turn off the intersection\n // observer (and then later back on). When the website visitor clicks an\n // in-page link, we want that entry in the TOC to be highlighted/activated,\n // NOT whichever TOC link the intersection observer callback would otherwise\n // highlight.\n let disableObserver = false;\n\n function temporarilyDisableObserver(time) {\n disableObserver = true;\n setTimeout(() => {\n disableObserver = false;\n }, time);\n }\n\n /**\n * If the provided URL hash fragment (beginning with \"#\") matches an entry in\n * the page table of contents, highlight that entry and temporarily disable\n * the intersection observer while the page scrolls to the corresponding\n * heading.\n */\n function syncTocHash(hash) {\n if (hash.length > 1) {\n const matchingTocLink = tocLinks.find((tocLink) => tocLink.hash === hash);\n if (matchingTocLink) {\n // It's important to disable the intersection observer before\n // highlighting the TOC link and its corresponding article heading. This\n // is because the browser takes a little time to scroll to the article\n // heading, and while scrolling, it could trigger intersection events\n // that cause some other link in the table of contents to be\n // highlighted.\n temporarilyDisableObserver(1000);\n activate(matchingTocLink);\n }\n }\n }\n\n // On page load...\n //\n // When the page loads, sync the page's table of contents.\n syncTocHash(window.location.hash);\n\n // On navigation to another part of the page...\n //\n // When the user navigates to another part of the page, sync the page's table\n // of contents.\n window.addEventListener(\"hashchange\", () => {\n // By the time this event is fired, window.location.hash has already been\n // updated with the new hash\n syncTocHash(window.location.hash);\n });\n\n // On return to the same part of the page...\n //\n // The hashchange event will handle most cases where we need to sync the table\n // of contents with a hash link click. But there is one edge case it doesn't\n // handle, which is when the user clicks an internal page link whose hash is\n // already in the browser address bar. For example, the user loads the page at\n // #first-heading, scrolls to the bottom of the page, then clicks in the\n // sidebar table of contents to go back up to the first heading in the\n // article. In this case the \"hashchange\" event will not fire. Nonetheless, we\n // want to guarantee that the TOC entry for the first heading gets\n // highlighted. Note we cannot rely exclusively on the \"click\" event for all\n // internal page navigations because it will not fire in the edge case where\n // the user modifies the hash directly in the browser address bar.\n window.addEventListener(\"click\", (event) => {\n const link = event.target.closest(\"a\");\n if (\n link &&\n link.hash === window.location.hash &&\n link.origin === window.location.origin\n ) {\n syncTocHash(link.hash);\n }\n });\n\n /**\n * Activate an element and its chain of ancestor TOC entries; deactivate\n * everything else in the TOC. Together with the theme CSS, this unfolds\n * the TOC out to the given entry and highlights that entry.\n *\n * @param {HTMLElement} tocLink The TOC entry to be highlighted\n */\n function activate(tocLink) {\n tocLinks.forEach((el) => {\n if (el === tocLink) {\n el.classList.add(\"active\");\n el.setAttribute(\"aria-current\", \"true\");\n } else {\n el.classList.remove(\"active\");\n el.removeAttribute(\"aria-current\");\n }\n });\n tocEntries.forEach((el) => {\n if (el.contains(tocLink)) {\n el.classList.add(\"active\");\n } else {\n el.classList.remove(\"active\");\n }\n });\n }\n\n /**\n * Get the heading in the article associated with the link in the table of contents\n *\n * @param {HTMLElement} tocLink TOC DOM element to use to grab an article heading\n *\n * @returns The article heading that the TOC element links to\n */\n function getHeading(tocLink) {\n const href = tocLink.getAttribute(\"href\");\n if (!href.startsWith(\"#\")) {\n return;\n }\n const id = href.substring(1);\n // There are cases where href=\"#\" (for example, the first one at /examples/kitchen-sink/structure.html)\n if (!id) {\n return;\n }\n // Use getElementById() because querySelector() requires escaping the id string\n const target = document.getElementById(id);\n // Often the target is a section but we want to track section's heading\n const heading = target.querySelector(\":is(h1,h2,h3,h4,h5,h6)\");\n // Fallback to the target if there is no heading (for example, links on the\n // PST docs page /examples/kitchen-sink/api.html target
elements)\n return heading || target;\n }\n\n // Map heading elements to their associated TOC links\n const headingsToTocLinks = new Map();\n tocLinks.forEach((tocLink) => {\n const heading = getHeading(tocLink);\n if (heading) {\n headingsToTocLinks.set(heading, tocLink);\n }\n });\n\n let observer;\n\n function connectIntersectionObserver() {\n if (observer) {\n observer.disconnect();\n }\n\n const header = document.querySelector(\"#pst-header\");\n const headerHeight = header.getBoundingClientRect().height;\n\n // Intersection observer options\n const options = {\n root: null,\n rootMargin: `-${headerHeight}px 0px -70% 0px`, // Use -70% for the bottom margin so that intersection events happen in only the top third of the viewport\n threshold: 0, // Trigger as soon as the heading goes into (or out of) the top 30% of the viewport\n };\n\n /**\n *\n * @param {IntersectionObserverEntry[]} entries Objects containing threshold-crossing\n * event information\n *\n */\n function callback(entries) {\n if (disableObserver) {\n return;\n }\n const entry = entries.filter((entry) => entry.isIntersecting).pop();\n if (!entry) {\n return;\n }\n const heading = entry.target;\n const tocLink = headingsToTocLinks.get(heading);\n activate(tocLink);\n }\n\n observer = new IntersectionObserver(callback, options);\n Array.from(headingsToTocLinks.keys()).forEach((heading) => {\n observer.observe(heading);\n });\n }\n\n // If the user resizes the window, the header height may change and the\n // intersection observer's root margin will need to be recalculated\n window.addEventListener(\"resize\", debounce(connectIntersectionObserver, 300));\n connectIntersectionObserver();\n}\n\n/*******************************************************************************\n * Set up expand/collapse button for primary sidebar\n */\nfunction setupCollapseSidebarButton() {\n const button = document.getElementById(\"pst-collapse-sidebar-button\");\n const sidebar = document.getElementById(\"pst-primary-sidebar\");\n\n // If this page rendered without the button or sidebar, then there's nothing to do.\n if (!button || !sidebar) {\n return;\n }\n\n const sidebarSections = Array.from(sidebar.children);\n\n const expandTooltip = new bootstrap.Tooltip(button, {\n title: button.querySelector(\".pst-expand-sidebar-label\").textContent,\n\n // In manual testing, relying on Bootstrap to handle \"hover\" and \"focus\" was buggy.\n trigger: \"manual\",\n\n placement: \"left\",\n fallbackPlacements: [\"right\"],\n\n // Offsetting the tooltip a bit more than the default [0, 0] solves an issue\n // where the appearance of the tooltip triggers a mouseleave event which in\n // turn triggers the call to hide the tooltip. So in certain areas around\n // the button, it would appear to the user that tooltip flashes in and then\n // back out.\n offset: [0, 12],\n });\n\n const showTooltip = () => {\n // Only show the \"expand sidebar\" tooltip when the sidebar is not expanded\n if (button.getAttribute(\"aria-expanded\") === \"false\") {\n expandTooltip.show();\n }\n };\n const hideTooltip = () => {\n expandTooltip.hide();\n };\n\n function squeezeSidebar(prefersReducedMotion, done) {\n // Before squeezing the sidebar, freeze the widths of its subsections.\n // Otherwise, the subsections will also narrow and cause the text in the\n // sidebar to reflow and wrap, which we don't want. This is necessary\n // because we do not remove the sidebar contents from the layout (with\n // `display: none`). Rather, we hide the contents from both sighted users\n // and screen readers (with `visibility: hidden`). This provides better\n // stability to the overall layout.\n sidebarSections.forEach(\n (el) => (el.style.width = el.getBoundingClientRect().width + \"px\"),\n );\n\n const afterSqueeze = () => {\n // After squeezing the sidebar, set aria-expanded to false\n button.setAttribute(\"aria-expanded\", \"false\"); // \"false\" is in quotes because HTML attributes are strings\n\n button.dataset.busy = false;\n };\n\n if (prefersReducedMotion) {\n sidebar.classList.add(\"pst-squeeze\");\n afterSqueeze();\n } else {\n sidebar.addEventListener(\"transitionend\", function onTransitionEnd() {\n afterSqueeze();\n sidebar.removeEventListener(\"transitionend\", onTransitionEnd);\n });\n sidebar.classList.add(\"pst-squeeze\");\n }\n }\n\n function expandSidebar(prefersReducedMotion, done) {\n hideTooltip();\n\n const afterExpand = () => {\n // After expanding the sidebar (which may be delayed by a CSS transition),\n // unfreeze the widths of the subsections that were frozen when the sidebar\n // was squeezed.\n sidebarSections.forEach((el) => (el.style.width = null));\n\n // After expanding the sidebar, set aria-expanded to \"true\" - in quotes\n // because HTML attributes are strings.\n button.setAttribute(\"aria-expanded\", \"true\");\n\n button.dataset.busy = false;\n };\n\n if (prefersReducedMotion) {\n sidebar.classList.remove(\"pst-squeeze\");\n afterExpand();\n } else {\n sidebar.addEventListener(\"transitionend\", function onTransitionEnd() {\n afterExpand();\n sidebar.removeEventListener(\"transitionend\", onTransitionEnd);\n });\n sidebar.classList.remove(\"pst-squeeze\");\n }\n }\n\n button.addEventListener(\"click\", () => {\n if (button.dataset.busy === \"true\") {\n return;\n }\n button.dataset.busy = \"true\";\n\n const prefersReducedMotion = window.matchMedia(\n \"(prefers-reduced-motion)\", // must be in parentheses\n ).matches;\n\n if (button.getAttribute(\"aria-expanded\") === \"true\") {\n squeezeSidebar(prefersReducedMotion);\n } else {\n expandSidebar(prefersReducedMotion);\n }\n });\n\n button.addEventListener(\"focus\", showTooltip);\n button.addEventListener(\"mouseenter\", showTooltip);\n button.addEventListener(\"mouseleave\", hideTooltip);\n button.addEventListener(\"blur\", hideTooltip);\n}\n\n/*******************************************************************************\n * Call functions after document loading.\n */\n\n// This one first to kick off the network request for the version warning\n// and announcement banner data as early as possible.\ndocumentReady(fetchRevealBannersTogether);\n\ndocumentReady(addModeListener);\ndocumentReady(scrollToActive);\ndocumentReady(setupSearchButtons);\ndocumentReady(setupSearchAsYouType);\ndocumentReady(setupMobileSidebarKeyboardHandlers);\ndocumentReady(setupArticleTocSyncing);\ndocumentReady(() => {\n try {\n setupCollapseSidebarButton();\n } catch (err) {\n // This exact error message is used in pytest tests\n console.log(\"[PST] Error setting up collapse sidebar button\");\n console.error(err);\n }\n});\n\n// Determining whether an element has scrollable content depends on stylesheets,\n// so we're checking for the \"load\" event rather than \"DOMContentLoaded\"\nif (document.readyState === \"complete\") {\n addTabStopsToScrollableElements();\n} else {\n window.addEventListener(\"load\", addTabStopsToScrollableElements);\n}\n"],"names":["documentReady","callback","document","readyState","addEventListener","validate","version","test","semver","compare","v1","v2","operator","assertValidOperator","res","n1","validateAndParse","n2","p1","pop","p2","r","compareSegments","split","compareVersions","operatorResMap","includes","TypeError","match","Error","shift","isWildcard","s","tryParse","v","n","parseInt","isNaN","compareStrings","a","b","ap","bp","String","forceType","i","Math","max","length","allowedOperators","Object","keys","op","indexOf","join","prefersDark","window","matchMedia","autoTheme","e","documentElement","dataset","theme","matches","setTheme","mode","console","error","colorScheme","querySelectorAll","forEach","el","classList","add","remove","localStorage","setItem","log","onchange","updateColorModeDropdown","activeClass","changeColorMode","currentTarget","findSearchInput","forms","querySelector","toggleSearchField","input","searchDialog","getElementById","open","close","showModal","activeElement","blur","focus","select","scrollIntoView","block","useCommandKey","navigator","platform","closeDialogOnBackdropClick","dialog","clientX","clientY","left","right","top","bottom","getBoundingClientRect","resetSearchAsYouTypeResults","DOCUMENTATION_OPTIONS","search_as_you_type","results","createElement","tabIndex","event","key","preventDefault","stopPropagation","id","appendChild","root","content_root","linkObserver","MutationObserver","Array","from","link","href","getAttribute","startsWith","isObserved","container","observe","childList","getCurrentUrlPath","BUILDER","pagename","endsWith","substring","async","DismissBannerAndStorePref","VERSION","now","Date","banner_pref","JSON","parse","getItem","debug","stringify","checkPageExistsAndRedirect","currentFilePath","tryUrl","otherDocsHomepage","replace","fetch","method","ok","location","err","fetchAndUseVersions","versionSwitcherBtns","hasSwitcherMenu","hasVersionsJSON","hasOwnProperty","wantsWarningBanner","show_version_warning_banner","data","url","currentPath","result","URL","protocol","info","cutoff","origin","response","json","fetchVersionSwitcherJSON","theme_switcher_json_url","btn","hasMatchingPreferredEntry","map","entry","theme_switcher_version_match","preferred","name","some","Boolean","foundMatch","anchor","setAttribute","span","textContent","matchesAndIsPreferred","matchesAndIsFirst","innerText","menu","node","cloneNode","onclick","append","populateVersionSwitcher","preferredEntries","filter","howMany","preferredVersion","preferredURL","versionsAreComparable","dismiss_date_str","dismiss_date","days_passed","floor","banner","middle","inner","bold","button","close_btn","close_x","isDev","newerThanPreferred","createTextNode","showVersionWarningBanner","addTabStopsToScrollableElements","updateTabStops","scrollWidth","clientWidth","scrollHeight","clientHeight","debouncedUpdateTabStops","debounce","subtree","wait","timeoutId","args","clearTimeout","setTimeout","setupAnnouncementBanner","pstAnnouncementUrl","status","statusText","text","trim","innerHTML","_error","DismissAnnouncementBannerAndStorePref","toISOString","Promise","allSettled","revealer","height","children","reduce","offsetHeight","style","setProperty","sidebar","storedScrollTop","sessionStorage","active_pages","latest_active","offset","y","innerHeight","buffer","scrollTop","shortcuts","f","changeSearchShortcutKey","shiftKey","altKey","metaKey","ctrlKey","pathname","Search","lastQuery","searchInput","query","value","performSearch","primarySidebar","secondarySidebar","primaryDialog","secondaryDialog","primaryToggle","secondaryToggle","cutAndPasteNodesAndClasses","to","childNodes","cls","toggleButton","previouslyFocused","once","pageToc","tocEntries","tocLinks","disableObserver","syncTocHash","hash","matchingTocLink","find","tocLink","activate","removeAttribute","contains","target","closest","headingsToTocLinks","Map","observer","connectIntersectionObserver","disconnect","headerHeight","IntersectionObserver","entries","isIntersecting","heading","get","rootMargin","threshold","getHeading","set","sidebarSections","expandTooltip","bootstrap","Tooltip","title","trigger","placement","fallbackPlacements","showTooltip","show","hideTooltip","hide","busy","prefersReducedMotion","width","afterSqueeze","onTransitionEnd","removeEventListener","squeezeSidebar","afterExpand","expandSidebar","setupCollapseSidebarButton"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"scripts/pydata-sphinx-theme.js","mappings":"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","sources":["webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/scripts/mixin.js","webpack://pydata_sphinx_theme/./node_modules/compare-versions/lib/esm/index.js","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/scripts/pydata-sphinx-theme.js"],"sourcesContent":["/* define several functions to replace jQuery methods\n * inspired by https://tobiasahlin.com/blog/move-from-jquery-to-vanilla-javascript/\n */\n\n/**\n * Execute a method if DOM has finished loading\n *\n * @param {function} callback the method to execute\n */\nexport function documentReady(callback) {\n if (document.readyState != \"loading\") callback();\n else document.addEventListener(\"DOMContentLoaded\", callback);\n}\n","/**\n * Compare [semver](https://semver.org/) version strings to find greater, equal or lesser.\n * This library supports the full semver specification, including comparing versions with different number of digits like `1.0.0`, `1.0`, `1`, and pre-release versions like `1.0.0-alpha`.\n * @param v1 - First version to compare\n * @param v2 - Second version to compare\n * @returns Numeric value compatible with the [Array.sort(fn) interface](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#Parameters).\n */\nexport const compareVersions = (v1, v2) => {\n // validate input and split into segments\n const n1 = validateAndParse(v1);\n const n2 = validateAndParse(v2);\n // pop off the patch\n const p1 = n1.pop();\n const p2 = n2.pop();\n // validate numbers\n const r = compareSegments(n1, n2);\n if (r !== 0)\n return r;\n // validate pre-release\n if (p1 && p2) {\n return compareSegments(p1.split('.'), p2.split('.'));\n }\n else if (p1 || p2) {\n return p1 ? -1 : 1;\n }\n return 0;\n};\n/**\n * Validate [semver](https://semver.org/) version strings.\n *\n * @param version Version number to validate\n * @returns `true` if the version number is a valid semver version number, `false` otherwise.\n *\n * @example\n * ```\n * validate('1.0.0-rc.1'); // return true\n * validate('1.0-rc.1'); // return false\n * validate('foo'); // return false\n * ```\n */\nexport const validate = (version) => typeof version === 'string' && /^[v\\d]/.test(version) && semver.test(version);\n/**\n * Compare [semver](https://semver.org/) version strings using the specified operator.\n *\n * @param v1 First version to compare\n * @param v2 Second version to compare\n * @param operator Allowed arithmetic operator to use\n * @returns `true` if the comparison between the firstVersion and the secondVersion satisfies the operator, `false` otherwise.\n *\n * @example\n * ```\n * compare('10.1.8', '10.0.4', '>'); // return true\n * compare('10.0.1', '10.0.1', '='); // return true\n * compare('10.1.1', '10.2.2', '<'); // return true\n * compare('10.1.1', '10.2.2', '<='); // return true\n * compare('10.1.1', '10.2.2', '>='); // return false\n * ```\n */\nexport const compare = (v1, v2, operator) => {\n // validate input operator\n assertValidOperator(operator);\n // since result of compareVersions can only be -1 or 0 or 1\n // a simple map can be used to replace switch\n const res = compareVersions(v1, v2);\n return operatorResMap[operator].includes(res);\n};\n/**\n * Match [npm semver](https://docs.npmjs.com/cli/v6/using-npm/semver) version range.\n *\n * @param version Version number to match\n * @param range Range pattern for version\n * @returns `true` if the version number is within the range, `false` otherwise.\n *\n * @example\n * ```\n * satisfies('1.1.0', '^1.0.0'); // return true\n * satisfies('1.1.0', '~1.0.0'); // return false\n * ```\n */\nexport const satisfies = (version, range) => {\n // if no range operator then \"=\"\n const m = range.match(/^([<>=~^]+)/);\n const op = m ? m[1] : '=';\n // if gt/lt/eq then operator compare\n if (op !== '^' && op !== '~')\n return compare(version, range, op);\n // else range of either \"~\" or \"^\" is assumed\n const [v1, v2, v3, , vp] = validateAndParse(version);\n const [r1, r2, r3, , rp] = validateAndParse(range);\n const v = [v1, v2, v3];\n const r = [r1, r2 !== null && r2 !== void 0 ? r2 : 'x', r3 !== null && r3 !== void 0 ? r3 : 'x'];\n // validate pre-release\n if (rp) {\n if (!vp)\n return false;\n if (compareSegments(v, r) !== 0)\n return false;\n if (compareSegments(vp.split('.'), rp.split('.')) === -1)\n return false;\n }\n // first non-zero number\n const nonZero = r.findIndex((v) => v !== '0') + 1;\n // pointer to where segments can be >=\n const i = op === '~' ? 2 : nonZero > 1 ? nonZero : 1;\n // before pointer must be equal\n if (compareSegments(v.slice(0, i), r.slice(0, i)) !== 0)\n return false;\n // after pointer must be >=\n if (compareSegments(v.slice(i), r.slice(i)) === -1)\n return false;\n return true;\n};\nconst semver = /^[v^~<>=]*?(\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+))?(?:-([\\da-z\\-]+(?:\\.[\\da-z\\-]+)*))?(?:\\+[\\da-z\\-]+(?:\\.[\\da-z\\-]+)*)?)?)?$/i;\nconst validateAndParse = (version) => {\n if (typeof version !== 'string') {\n throw new TypeError('Invalid argument expected string');\n }\n const match = version.match(semver);\n if (!match) {\n throw new Error(`Invalid argument not valid semver ('${version}' received)`);\n }\n match.shift();\n return match;\n};\nconst isWildcard = (s) => s === '*' || s === 'x' || s === 'X';\nconst tryParse = (v) => {\n const n = parseInt(v, 10);\n return isNaN(n) ? v : n;\n};\nconst forceType = (a, b) => typeof a !== typeof b ? [String(a), String(b)] : [a, b];\nconst compareStrings = (a, b) => {\n if (isWildcard(a) || isWildcard(b))\n return 0;\n const [ap, bp] = forceType(tryParse(a), tryParse(b));\n if (ap > bp)\n return 1;\n if (ap < bp)\n return -1;\n return 0;\n};\nconst compareSegments = (a, b) => {\n for (let i = 0; i < Math.max(a.length, b.length); i++) {\n const r = compareStrings(a[i] || '0', b[i] || '0');\n if (r !== 0)\n return r;\n }\n return 0;\n};\nconst operatorResMap = {\n '>': [1],\n '>=': [0, 1],\n '=': [0],\n '<=': [-1, 0],\n '<': [-1],\n};\nconst allowedOperators = Object.keys(operatorResMap);\nconst assertValidOperator = (op) => {\n if (typeof op !== 'string') {\n throw new TypeError(`Invalid operator type, expected string but got ${typeof op}`);\n }\n if (allowedOperators.indexOf(op) === -1) {\n throw new Error(`Invalid operator, expected one of ${allowedOperators.join('|')}`);\n }\n};\n//# sourceMappingURL=index.js.map","// Define the custom behavior of the page\nimport { documentReady } from \"./mixin\";\nimport { compare, validate } from \"compare-versions\";\n\nimport \"../styles/pydata-sphinx-theme.scss\";\n\n/*******************************************************************************\n * Theme interaction\n */\n\nvar prefersDark = window.matchMedia(\"(prefers-color-scheme: dark)\");\n\n/**\n * set the the body theme to the one specified by the user browser\n *\n * @param {event} e\n */\nfunction autoTheme(e) {\n document.documentElement.dataset.theme = prefersDark.matches\n ? \"dark\"\n : \"light\";\n}\n\n/**\n * Set the theme using the specified mode.\n * It can be one of [\"auto\", \"dark\", \"light\"]\n *\n * @param {str} mode\n */\nfunction setTheme(mode) {\n if (mode !== \"light\" && mode !== \"dark\" && mode !== \"auto\") {\n console.error(`Got invalid theme mode: ${mode}. Resetting to auto.`);\n mode = \"auto\";\n }\n\n // get the theme\n var colorScheme = prefersDark.matches ? \"dark\" : \"light\";\n document.documentElement.dataset.mode = mode;\n var theme = mode == \"auto\" ? colorScheme : mode;\n document.documentElement.dataset.theme = theme;\n // TODO: remove this line after Bootstrap upgrade\n // v5.3 has a colors mode: https://getbootstrap.com/docs/5.3/customize/color-modes/\n document.querySelectorAll(\".dropdown-menu\").forEach((el) => {\n if (theme === \"dark\") {\n el.classList.add(\"dropdown-menu-dark\");\n } else {\n el.classList.remove(\"dropdown-menu-dark\");\n }\n });\n\n // save mode and theme\n localStorage.setItem(\"mode\", mode);\n localStorage.setItem(\"theme\", theme);\n console.log(`[PST]: Changed to ${mode} mode using the ${theme} theme.`);\n\n // add a listener if set on auto\n prefersDark.onchange = mode == \"auto\" ? autoTheme : \"\";\n}\n\n/**\n * Update the active dropdown item based on the current color mode.\n */\nfunction updateColorModeDropdown(mode) {\n const activeClass = \"active\";\n document.querySelectorAll(\".theme-change-button\").forEach((el) => {\n if (el.dataset.mode === mode) {\n el.classList.add(activeClass);\n } else {\n el.classList.remove(activeClass);\n }\n });\n}\n\n/**\n * Change the color mode based on the clicked dropdown item.\n */\nfunction changeColorMode(e) {\n const btn = e.currentTarget;\n const mode = btn.dataset.mode;\n setTheme(mode);\n updateColorModeDropdown(mode);\n}\n\n/**\n * add the theme listener on the btns of the navbar\n */\nfunction addModeListener() {\n // the theme was set a first time using the initial mini-script\n // running setMode will ensure the use of the dark mode if auto is selected\n const mode = document.documentElement.dataset.mode;\n setTheme(mode);\n updateColorModeDropdown(mode);\n\n // Attach click handlers to color mode dropdown items\n document.querySelectorAll(\".theme-change-button\").forEach((el) => {\n el.addEventListener(\"click\", changeColorMode);\n });\n}\n\n/*******************************************************************************\n * Scroll\n */\n\n/**\n * Navigation sidebar scrolling to active page\n */\nfunction scrollToActive() {\n // If the docs nav doesn't exist, do nothing (e.g., on search page)\n if (!document.querySelector(\".bd-docs-nav\")) {\n return;\n }\n\n var sidebar = document.querySelector(\"div.bd-sidebar\");\n\n // Remember the sidebar scroll position between page loads\n // Inspired on source of revealjs.com\n let storedScrollTop = parseInt(\n sessionStorage.getItem(\"sidebar-scroll-top\"),\n 10,\n );\n\n if (!isNaN(storedScrollTop)) {\n // If we've got a saved scroll position, just use that\n sidebar.scrollTop = storedScrollTop;\n console.log(\"[PST]: Scrolled sidebar using stored browser position...\");\n } else {\n // Otherwise, calculate a position to scroll to based on the lowest `active` link\n var sidebarNav = document.querySelector(\".bd-docs-nav\");\n var active_pages = sidebarNav.querySelectorAll(\".active\");\n if (active_pages.length > 0) {\n // Use the last active page as the offset since it's the page we're on\n var latest_active = active_pages[active_pages.length - 1];\n var offset =\n latest_active.getBoundingClientRect().y -\n sidebar.getBoundingClientRect().y;\n // Only scroll the navbar if the active link is lower than 50% of the page\n if (latest_active.getBoundingClientRect().y > window.innerHeight * 0.5) {\n let buffer = 0.25; // Buffer so we have some space above the scrolled item\n sidebar.scrollTop = offset - sidebar.clientHeight * buffer;\n console.log(\"[PST]: Scrolled sidebar using last active link...\");\n }\n }\n }\n\n // Store the sidebar scroll position\n window.addEventListener(\"beforeunload\", () => {\n sessionStorage.setItem(\"sidebar-scroll-top\", sidebar.scrollTop);\n });\n}\n\n/*******************************************************************************\n * Search\n */\n\n/**\n * Find any search forms on the page and return their input element\n */\nvar findSearchInput = () => {\n let forms = document.querySelectorAll(\"form.bd-search\");\n if (!forms.length) {\n // no search form found\n return;\n } else {\n var form;\n if (forms.length == 1) {\n // there is exactly one search form (persistent or hidden)\n form = forms[0];\n } else {\n // must be at least one persistent form, use the first persistent one\n form = document.querySelector(\n \":not(#pst-search-dialog) > form.bd-search\",\n );\n }\n return form.querySelector(\"input\");\n }\n};\n\n/**\n * Activate the search field on the page.\n * - If there is a search field already visible it will be activated.\n * - If not, then a search field will pop up.\n */\nvar toggleSearchField = () => {\n // Find the search input to highlight\n const input = findSearchInput();\n\n // if the input field is the hidden one (the one associated with the\n // search button) then toggle the button state (to show/hide the field)\n const searchDialog = document.getElementById(\"pst-search-dialog\");\n if (!searchDialog) {\n // Search dialog was disabled via disable_search theme option; nothing to do.\n return;\n }\n const hiddenInput = searchDialog.querySelector(\"input\");\n if (input === hiddenInput) {\n if (searchDialog.open) {\n searchDialog.close();\n } else {\n // Note: browsers should focus the input field inside the modal dialog\n // automatically when it is opened.\n searchDialog.showModal();\n }\n } else {\n // if the input field is not the hidden one, then toggle its focus state\n\n if (document.activeElement === input) {\n input.blur();\n } else {\n input.focus();\n input.select();\n input.scrollIntoView({ block: \"center\" });\n }\n }\n};\n\n/**\n * Add an event listener for toggleSearchField() for Ctrl/Cmd + K\n */\nvar addEventListenerForSearchKeyboard = () => {\n window.addEventListener(\n \"keydown\",\n (event) => {\n let input = findSearchInput();\n // toggle on Ctrl+k or ⌘+k\n if (\n // Ignore if shift or alt are pressed\n !event.shiftKey &&\n !event.altKey &&\n // On Mac use ⌘, all other OS use Ctrl\n (useCommandKey\n ? event.metaKey && !event.ctrlKey\n : !event.metaKey && event.ctrlKey) &&\n // Case-insensitive so the shortcut still works with caps lock\n /^k$/i.test(event.key)\n ) {\n event.preventDefault();\n toggleSearchField();\n }\n // also allow Escape key to hide (but not show) the dynamic search field\n else if (document.activeElement === input && /Escape/i.test(event.key)) {\n toggleSearchField();\n resetSearchAsYouTypeResults();\n }\n },\n true,\n );\n};\n\n/**\n * If the user is on a Mac, use command (⌘) instead of control (ctrl) key\n *\n * Note: `navigator.platform` is deprecated; however MDN still recommends using\n * it for the one specific use case of detecting whether a keyboard shortcut\n * should use control or command:\n * https://developer.mozilla.org/en-US/docs/Web/API/Navigator/platform#examples\n */\nvar useCommandKey =\n navigator.platform.indexOf(\"Mac\") === 0 || navigator.platform === \"iPhone\";\n\n/**\n * Change the search hint to `meta key` if we are a Mac\n */\n\nvar changeSearchShortcutKey = () => {\n let shortcuts = document.querySelectorAll(\".search-button__kbd-shortcut\");\n if (useCommandKey) {\n shortcuts.forEach(\n (f) => (f.querySelector(\"kbd.kbd-shortcut__modifier\").innerText = \"⌘\"),\n );\n }\n};\n\nconst closeDialogOnBackdropClick = ({\n currentTarget: dialog,\n clientX,\n clientY,\n}) => {\n if (!dialog.open) {\n return;\n }\n\n // Dialog.getBoundingClientRect() does not include ::backdrop. (This is the\n // trick that allows us to determine if click was inside or outside of the\n // dialog: click handler includes backdrop, getBoundingClientRect does not.)\n const { left, right, top, bottom } = dialog.getBoundingClientRect();\n\n // 0, 0 means top left\n const clickWasOutsideDialog =\n clientX < left || right < clientX || clientY < top || bottom < clientY;\n\n if (clickWasOutsideDialog) {\n dialog.close();\n }\n};\n\n/**\n * Activate callbacks for search button popup\n */\nvar setupSearchButtons = () => {\n changeSearchShortcutKey();\n addEventListenerForSearchKeyboard();\n\n // Add the search button trigger event callback\n document.querySelectorAll(\".search-button__button\").forEach((btn) => {\n btn.onclick = toggleSearchField;\n });\n\n // If user clicks outside the search modal dialog, then close it.\n const searchDialog = document.getElementById(\"pst-search-dialog\");\n if (!searchDialog) {\n // Search dialog was disabled via disable_search theme option; nothing to do.\n return;\n }\n // Dialog click handler includes clicks on dialog ::backdrop.\n searchDialog.addEventListener(\"click\", closeDialogOnBackdropClick);\n};\n\n/*******************************************************************************\n * Inline search results (search-as-you-type)\n *\n * Immediately displays search results under the search query textbox.\n *\n * The search is conducted by Sphinx's built-in search tools (searchtools.js).\n * Usually searchtools.js is only available on /search.html but\n * pydata-sphinx-theme (PST) has been modified to load searchtools.js on every\n * page. After the user types something into PST's search query textbox,\n * searchtools.js executes the search and populates the results into\n * the #search-results container. searchtools.js expects the results container\n * to have that exact ID.\n */\nvar setupSearchAsYouType = () => {\n if (!DOCUMENTATION_OPTIONS.search_as_you_type) {\n return;\n }\n\n // Don't interfere with the default search UX on /search.html.\n if (window.location.pathname.endsWith(\"/search.html\")) {\n return;\n }\n\n // Bail if the Search class is not available. Search-as-you-type is\n // impossible without that class. layout.html should ensure that\n // searchtools.js loads.\n //\n // Search class is defined in upstream Sphinx:\n // https://github.com/sphinx-doc/sphinx/blob/6678e357048ea1767daaad68e7e0569786f3b458/sphinx/themes/basic/static/searchtools.js#L181\n if (!Search) {\n return;\n }\n\n // Destroy the previous search container and create a new one.\n resetSearchAsYouTypeResults();\n let timeoutId = null;\n let lastQuery = \"\";\n const searchInput = document.querySelector(\n \"#pst-search-dialog input[name=q]\",\n );\n\n // Initiate searches whenever the user types stuff in the search modal textbox.\n searchInput.addEventListener(\"keyup\", () => {\n const query = searchInput.value;\n\n // Don't search when there's nothing in the query textbox.\n if (query === \"\") {\n lastQuery = \"\";\n resetSearchAsYouTypeResults(); // Remove previous results.\n return;\n }\n\n // Don't search if there is no detectable change between\n // the last query and the current query. E.g. the user presses\n // Tab to start navigating the search results.\n if (query === lastQuery) {\n return;\n }\n\n // The user has changed the search query. Delete the old results\n // and start setting up the new container.\n resetSearchAsYouTypeResults();\n\n // Debounce so that the search only starts when the user stops typing.\n const delay_ms = 300;\n lastQuery = query;\n if (timeoutId) {\n window.clearTimeout(timeoutId);\n }\n timeoutId = window.setTimeout(() => {\n Search.performSearch(query);\n document.querySelector(\"#search-results\").classList.remove(\"empty\");\n timeoutId = null;\n }, delay_ms);\n });\n};\n\n// Delete the old search results container (if it exists) and set up a new one.\n//\n// There is some complexity around ensuring that the search results links are\n// correct because we're extending searchtools.js past its assumed usage.\n// Sphinx assumes that searches are only executed from /search.html and\n// therefore it assumes that all search results links should be relative to\n// the root directory of the website. In our case the search can now execute\n// from any page of the website so we must fix the relative URLs that\n// searchtools.js generates.\nvar resetSearchAsYouTypeResults = () => {\n if (!DOCUMENTATION_OPTIONS.search_as_you_type) {\n return;\n }\n // If a search-as-you-type results container was previously added,\n // remove it now.\n let results = document.querySelector(\"#search-results\");\n if (results) {\n results.remove();\n }\n\n // Create a new search-as-you-type results container.\n results = document.createElement(\"section\");\n results.classList.add(\"empty\");\n // Remove the container element from the tab order. Individual search\n // results are still focusable.\n results.tabIndex = -1;\n // When focus is on a search result, make sure that pressing Escape closes\n // the search modal.\n results.addEventListener(\"keydown\", (event) => {\n if (event.key === \"Escape\") {\n event.preventDefault();\n event.stopPropagation();\n toggleSearchField();\n resetSearchAsYouTypeResults();\n }\n });\n // IMPORTANT: The search results container MUST have this exact ID.\n // searchtools.js is hardcoded to populate into the node with this ID.\n results.id = \"search-results\";\n let modal = document.querySelector(\"#pst-search-dialog\");\n modal.appendChild(results);\n\n // Get the relative path back to the root of the website.\n const root = document.documentElement.dataset.content_root;\n\n // As Sphinx populates the search results, this observer makes sure that\n // each URL is correct (i.e. doesn't 404).\n const linkObserver = new MutationObserver(() => {\n const links = Array.from(\n document.querySelectorAll(\"#search-results .search a\"),\n );\n // Check every link every time because the timing of when new results are\n // added is unpredictable and it's not an expensive operation.\n links.forEach((link) => {\n link.tabIndex = 0; // Use natural tab order for search results.\n // Don't use the link.href getter because the browser computes the href\n // as a full URL. We need the relative URL that Sphinx generates.\n const href = link.getAttribute(\"href\");\n if (href.startsWith(root)) {\n // No work needed. The root has already been prepended to the href.\n return;\n }\n link.href = `${root}${href}`;\n });\n });\n\n // The node that linkObserver watches doesn't exist until the user types\n // something into the search textbox. This second observer (resultsObserver)\n // just waits for #search-results to exist and then registers\n // linkObserver on it.\n let isObserved = false;\n const resultsObserver = new MutationObserver(() => {\n if (isObserved) {\n return;\n }\n const container = document.querySelector(\"#search-results .search\");\n if (!container) {\n return;\n }\n linkObserver.observe(container, { childList: true });\n isObserved = true;\n });\n resultsObserver.observe(results, { childList: true });\n};\n\n/*******************************************************************************\n * Version Switcher\n * Note that this depends on two variables existing that are defined in\n * and `html-page-context` hook:\n *\n * - DOCUMENTATION_OPTIONS.pagename\n * - DOCUMENTATION_OPTIONS.theme_switcher_url\n */\n\n/**\n * path component of URL\n */\nvar getCurrentUrlPath = () => {\n if (DOCUMENTATION_OPTIONS.BUILDER == \"dirhtml\") {\n return DOCUMENTATION_OPTIONS.pagename.endsWith(\"index\")\n ? `${DOCUMENTATION_OPTIONS.pagename.substring(0, DOCUMENTATION_OPTIONS.pagename.length - \"index\".length)}`\n : `${DOCUMENTATION_OPTIONS.pagename}/`;\n }\n return `${DOCUMENTATION_OPTIONS.pagename}.html`;\n};\n\n/**\n * Allow user to dismiss the warning banner about the docs version being dev / old.\n * We store the dismissal date and version, to give us flexibility about making the\n * dismissal last for longer than one browser session, if we decide to do that.\n *\n * @param {event} event the event that trigger the check\n */\nasync function DismissBannerAndStorePref(event) {\n const banner = document.querySelector(\"#bd-header-version-warning\");\n banner.remove();\n const version = DOCUMENTATION_OPTIONS.VERSION;\n const now = new Date();\n const banner_pref = JSON.parse(\n localStorage.getItem(\"pst_banner_pref\") || \"{}\",\n );\n console.debug(\n `[PST] Dismissing the version warning banner on ${version} starting ${now}.`,\n );\n banner_pref[version] = now;\n localStorage.setItem(\"pst_banner_pref\", JSON.stringify(banner_pref));\n}\n\n/**\n * Check if corresponding page path exists in other version of docs\n * and, if so, go there instead of the homepage of the other docs version\n *\n * @param {event} event the event that trigger the check\n */\nasync function checkPageExistsAndRedirect(event) {\n // ensure we don't follow the initial link\n event.preventDefault();\n const currentFilePath = getCurrentUrlPath();\n let tryUrl = event.currentTarget.getAttribute(\"href\");\n let otherDocsHomepage = tryUrl.replace(currentFilePath, \"\");\n try {\n let head = await fetch(tryUrl, { method: \"HEAD\" });\n if (head.ok) {\n location.href = tryUrl; // the page exists, go there\n } else {\n location.href = otherDocsHomepage;\n }\n } catch (err) {\n // something went wrong, probably CORS restriction, fallback to other docs homepage\n location.href = otherDocsHomepage;\n }\n}\n\n/**\n * Load and parse the version switcher JSON file from an absolute or relative URL.\n *\n * @param {string} url The URL to load version switcher entries from.\n */\nasync function fetchVersionSwitcherJSON(url) {\n const currentPath = getCurrentUrlPath();\n // first check if it's a valid URL\n try {\n var result = new URL(url);\n } catch (err) {\n if (err instanceof TypeError) {\n // Assume we got a relative path, and fix accordingly.\n if (window.location.protocol == \"file:\") {\n // Here instead of returning `null` we work out what the file path would be\n // anyway (same code path as for served docs), as a convenience to folks who\n // routinely disable CORS when they boot up their browser.\n console.info(\n \"[PST] looks like you're viewing this site from a local filesystem, so \" +\n \"the version switcher won't work unless you've disabled CORS. See \" +\n \"https://pydata-sphinx-theme.readthedocs.io/en/stable/user_guide/version-dropdown.html\",\n );\n }\n const cutoff = currentPath\n ? window.location.href.indexOf(currentPath)\n : -1;\n // cutoff == -1 can happen e.g. on the homepage of locally served docs, where you\n // get something like http://127.0.0.1:8000/ (no trailing `index.html`)\n const origin =\n cutoff == -1\n ? window.location.href\n : window.location.href.substring(0, cutoff);\n result = new URL(url, origin);\n } else {\n // something unexpected happened\n throw err;\n }\n }\n // load and return the JSON\n const response = await fetch(result);\n const data = await response.json();\n return data;\n}\n\n// Populate the version switcher from the JSON data\nfunction populateVersionSwitcher(data, versionSwitcherBtns) {\n const currentFilePath = getCurrentUrlPath();\n versionSwitcherBtns.forEach((btn) => {\n // Set empty strings by default so that these attributes exist and can be used in CSS selectors\n btn.dataset[\"activeVersionName\"] = \"\";\n btn.dataset[\"activeVersion\"] = \"\";\n });\n // in case there are multiple entries with the same version string, this helps us\n // decide which entry's `name` to put on the button itself. Without this, it would\n // always be the *last* version-matching entry; now it will be either the\n // version-matching entry that is also marked as `\"preferred\": true`, or if that\n // doesn't exist: the *first* version-matching entry.\n data = data.map((entry) => {\n // does this entry match the version that we're currently building/viewing?\n entry.match =\n entry.version == DOCUMENTATION_OPTIONS.theme_switcher_version_match;\n entry.preferred = entry.preferred || false;\n // if no custom name specified (e.g., \"latest\"), use version string\n if (!(\"name\" in entry)) {\n entry.name = entry.version;\n }\n return entry;\n });\n const hasMatchingPreferredEntry = data\n .map((entry) => entry.preferred && entry.match)\n .some(Boolean);\n var foundMatch = false;\n // create links to the corresponding page in the other docs versions\n data.forEach((entry) => {\n // create the node\n const anchor = document.createElement(\"a\");\n anchor.setAttribute(\n \"class\",\n \"dropdown-item list-group-item list-group-item-action py-1\",\n );\n anchor.setAttribute(\"href\", `${entry.url}${currentFilePath}`);\n anchor.setAttribute(\"role\", \"option\");\n const span = document.createElement(\"span\");\n span.textContent = `${entry.name}`;\n anchor.appendChild(span);\n // Add dataset values for the version and name in case people want\n // to apply CSS styling based on this information.\n anchor.dataset[\"versionName\"] = entry.name;\n anchor.dataset[\"version\"] = entry.version;\n // replace dropdown button text with the preferred display name of the\n // currently-viewed version, rather than using sphinx's {{ version }} variable.\n // also highlight the dropdown entry for the currently-viewed version's entry\n let matchesAndIsPreferred = hasMatchingPreferredEntry && entry.preferred;\n let matchesAndIsFirst =\n !hasMatchingPreferredEntry && !foundMatch && entry.match;\n if (matchesAndIsPreferred || matchesAndIsFirst) {\n anchor.classList.add(\"active\");\n versionSwitcherBtns.forEach((btn) => {\n btn.innerText = entry.name;\n btn.dataset[\"activeVersionName\"] = entry.name;\n btn.dataset[\"activeVersion\"] = entry.version;\n });\n foundMatch = true;\n }\n // There may be multiple version-switcher elements, e.g. one\n // in a slide-over panel displayed on smaller screens.\n document.querySelectorAll(\".version-switcher__menu\").forEach((menu) => {\n // we need to clone the node for each menu, but onclick attributes are not\n // preserved by `.cloneNode()` so we add onclick here after cloning.\n let node = anchor.cloneNode(true);\n node.onclick = checkPageExistsAndRedirect;\n // on click, AJAX calls will check if the linked page exists before\n // trying to redirect, and if not, will redirect to the homepage\n // for that version of the docs.\n menu.append(node);\n });\n });\n}\n\n/*******************************************************************************\n * Warning banner when viewing non-stable version of the docs.\n */\n\n/**\n * Show a warning banner when viewing a non-stable version of the docs.\n *\n * adapted 2023-06 from https://mne.tools/versionwarning.js, which was\n * originally adapted 2020-05 from https://scikit-learn.org/versionwarning.js\n *\n * @param {Array} data The version data used to populate the switcher menu.\n */\nfunction showVersionWarningBanner(data) {\n var version = DOCUMENTATION_OPTIONS.VERSION;\n // figure out what latest stable version is\n var preferredEntries = data.filter((entry) => entry.preferred);\n if (preferredEntries.length !== 1) {\n const howMany = preferredEntries.length == 0 ? \"No\" : \"Multiple\";\n console.log(\n `[PST] ${howMany} versions marked \"preferred\" found in versions JSON, ignoring.`,\n );\n return;\n }\n const preferredVersion = preferredEntries[0].version;\n const preferredURL = preferredEntries[0].url;\n // if already on preferred version, nothing to do\n const versionsAreComparable = validate(version) && validate(preferredVersion);\n if (versionsAreComparable && compare(version, preferredVersion, \"=\")) {\n console.log(\n \"[PST]: This is the preferred version of the docs, not showing the warning banner.\",\n );\n return;\n }\n // check if banner has been dismissed recently\n const dismiss_date_str = JSON.parse(\n localStorage.getItem(\"pst_banner_pref\") || \"{}\",\n )[version];\n if (dismiss_date_str != null) {\n const dismiss_date = new Date(dismiss_date_str);\n const now = new Date();\n const milliseconds_in_a_day = 24 * 60 * 60 * 1000;\n const days_passed = (now - dismiss_date) / milliseconds_in_a_day;\n const timeout_in_days = 14;\n if (days_passed < timeout_in_days) {\n console.info(\n `[PST] Suppressing version warning banner; was dismissed ${Math.floor(\n days_passed,\n )} day(s) ago`,\n );\n return;\n }\n }\n\n // now construct the warning banner\n const banner = document.querySelector(\"#bd-header-version-warning\");\n const middle = document.createElement(\"div\");\n const inner = document.createElement(\"div\");\n const bold = document.createElement(\"strong\");\n const button = document.createElement(\"a\");\n const close_btn = document.createElement(\"a\");\n // these classes exist since pydata-sphinx-theme v0.10.0\n // the init class is used for animation\n middle.classList = \"bd-header-announcement__content ms-auto me-auto\";\n inner.classList = \"sidebar-message\";\n button.classList =\n \"btn text-wrap font-weight-bold ms-3 my-1 align-baseline pst-button-link-to-stable-version\";\n button.href = `${preferredURL}${getCurrentUrlPath()}`;\n button.innerText = \"Switch to stable version\";\n button.onclick = checkPageExistsAndRedirect;\n close_btn.classList = \"ms-3 my-1 align-baseline\";\n const close_x = document.createElement(\"i\");\n close_btn.append(close_x);\n close_x.classList = \"fa-solid fa-xmark\";\n close_btn.onclick = DismissBannerAndStorePref;\n // add the version-dependent text\n inner.innerText = \"This is documentation for \";\n const isDev =\n version.includes(\"dev\") ||\n version.includes(\"rc\") ||\n version.includes(\"pre\");\n const newerThanPreferred =\n versionsAreComparable && compare(version, preferredVersion, \">\");\n if (isDev || newerThanPreferred) {\n bold.innerText = \"an unstable development version\";\n } else if (versionsAreComparable && compare(version, preferredVersion, \"<\")) {\n bold.innerText = `an old version (${version})`;\n } else if (!version) {\n bold.innerText = \"an unknown version\"; // e.g., an empty string\n } else {\n bold.innerText = `version ${version}`;\n }\n banner.appendChild(middle);\n banner.append(close_btn);\n middle.appendChild(inner);\n inner.appendChild(bold);\n inner.appendChild(document.createTextNode(\".\"));\n inner.appendChild(button);\n banner.classList.remove(\"d-none\");\n}\n\nasync function fetchAndUseVersions() {\n // fetch the JSON version data (only once), then use it to populate the version\n // switcher and maybe show the version warning bar\n var versionSwitcherBtns = document.querySelectorAll(\n \".version-switcher__button\",\n );\n const hasSwitcherMenu = versionSwitcherBtns.length > 0;\n const hasVersionsJSON = DOCUMENTATION_OPTIONS.hasOwnProperty(\n \"theme_switcher_json_url\",\n );\n const wantsWarningBanner = DOCUMENTATION_OPTIONS.show_version_warning_banner;\n\n if (hasVersionsJSON && (hasSwitcherMenu || wantsWarningBanner)) {\n const data = await fetchVersionSwitcherJSON(\n DOCUMENTATION_OPTIONS.theme_switcher_json_url,\n );\n // TODO: remove the `if(data)` once the `return null` is fixed within fetchVersionSwitcherJSON.\n // We don't really want the switcher and warning bar to silently not work.\n if (data) {\n populateVersionSwitcher(data, versionSwitcherBtns);\n if (wantsWarningBanner) {\n showVersionWarningBanner(data);\n }\n }\n }\n}\n\n/*******************************************************************************\n * Sidebar modals (for mobile / narrow screens)\n */\nfunction setupMobileSidebarKeyboardHandlers() {\n // These are the left and right sidebars for wider screens. We cut and paste\n // the content from these widescreen sidebars into the mobile dialogs, when\n // the user clicks the hamburger icon button\n const primarySidebar = document.getElementById(\"pst-primary-sidebar\");\n const secondarySidebar = document.getElementById(\"pst-secondary-sidebar\");\n\n // These are the corresponding left/right elements, which are empty\n // until the user clicks the hamburger icon\n const primaryDialog = document.getElementById(\"pst-primary-sidebar-modal\");\n const secondaryDialog = document.getElementById(\n \"pst-secondary-sidebar-modal\",\n );\n\n // These are the hamburger-style buttons in the header nav bar. They only\n // appear at narrow screen width.\n const primaryToggle = document.querySelector(\".primary-toggle\");\n const secondaryToggle = document.querySelector(\".secondary-toggle\");\n\n // Cut nodes and classes from `from`, paste into/onto `to`\n const cutAndPasteNodesAndClasses = (from, to) => {\n Array.from(from.childNodes).forEach((node) => to.appendChild(node));\n Array.from(from.classList).forEach((cls) => {\n from.classList.remove(cls);\n to.classList.add(cls);\n });\n };\n\n // Hook up the ways to open and close the dialog\n [\n [primaryToggle, primaryDialog, primarySidebar],\n [secondaryToggle, secondaryDialog, secondarySidebar],\n ].forEach(([toggleButton, dialog, sidebar]) => {\n if (!toggleButton || !dialog || !sidebar) {\n return;\n }\n\n // Clicking the button can only open the sidebar, not close it.\n // Clicking the button is also the *only* way to open the sidebar.\n toggleButton.addEventListener(\"click\", (event) => {\n event.preventDefault();\n event.stopPropagation();\n\n // Save focus so we can restore it when the dialog closes\n const previouslyFocused = document.activeElement;\n\n // When we open the dialog, we cut and paste the nodes and classes from\n // the widescreen sidebar into the dialog\n cutAndPasteNodesAndClasses(sidebar, dialog);\n\n dialog.showModal();\n\n // Restore focus when dialog closes\n dialog.addEventListener(\n \"close\",\n () => {\n if (previouslyFocused && previouslyFocused.focus) {\n previouslyFocused.focus();\n }\n },\n { once: true },\n );\n });\n\n // Listen for clicks on the backdrop in order to close the dialog\n dialog.addEventListener(\"click\", closeDialogOnBackdropClick);\n\n // We have to manually attach the escape key because there's some code in\n // Sphinx's Sphinx_highlight.js that prevents the default behavior of the\n // escape key\n dialog.addEventListener(\"keydown\", (event) => {\n if (event.key === \"Escape\") {\n event.preventDefault();\n event.stopPropagation();\n dialog.close();\n }\n });\n\n // When the dialog is closed, move the nodes (and classes) back to their\n // original place\n dialog.addEventListener(\"close\", () => {\n cutAndPasteNodesAndClasses(dialog, sidebar);\n });\n });\n}\n\n/**\n * When the page loads, or the window resizes, or descendant nodes are added or\n * removed from the main element, check all code blocks and Jupyter notebook\n * outputs, and for each one that has scrollable overflow, set tabIndex = 0.\n */\nfunction addTabStopsToScrollableElements() {\n const updateTabStops = () => {\n document\n .querySelectorAll(\n [\n // code blocks\n \"pre\",\n // NBSphinx notebook output\n \".nboutput > .output_area\",\n // Myst-NB\n \".cell_output > .output\",\n // ipywidgets\n \".jp-RenderedHTMLCommon\",\n // [rST table nodes](https://www.docutils.org/docs/ref/doctree.html#table)\n \".pst-scrollable-table-container\",\n ].join(\", \"),\n )\n .forEach((el) => {\n el.tabIndex =\n el.scrollWidth > el.clientWidth || el.scrollHeight > el.clientHeight\n ? 0\n : -1;\n });\n };\n const debouncedUpdateTabStops = debounce(updateTabStops, 300);\n\n // On window resize\n window.addEventListener(\"resize\", debouncedUpdateTabStops);\n\n // The following MutationObserver is for ipywidgets, which take some time to\n // finish loading and rendering on the page (so even after the \"load\" event is\n // fired, they still have not finished rendering). Would be nice to replace\n // the MutationObserver if there is a way to hook into the ipywidgets code to\n // know when it is done.\n const mainObserver = new MutationObserver(debouncedUpdateTabStops);\n\n // On descendant nodes added/removed from main element\n mainObserver.observe(document.getElementById(\"main-content\"), {\n subtree: true,\n childList: true,\n });\n\n // On page load (when this function gets called)\n updateTabStops();\n}\nfunction debounce(callback, wait) {\n let timeoutId = null;\n return (...args) => {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(() => {\n callback(...args);\n }, wait);\n };\n}\n\n/*******************************************************************************\n * Announcement banner - fetch and load remote HTML\n */\nasync function setupAnnouncementBanner() {\n const banner = document.querySelector(\".bd-header-announcement\");\n\n // check if banner has been dismissed recently\n const dismiss_date_str = JSON.parse(\n localStorage.getItem(\"pst_announcement_banner_pref\") || \"{}\",\n )[\"closed\"];\n if (dismiss_date_str != null) {\n const dismiss_date = new Date(dismiss_date_str);\n const now = new Date();\n const milliseconds_in_a_day = 24 * 60 * 60 * 1000;\n const days_passed = (now - dismiss_date) / milliseconds_in_a_day;\n const timeout_in_days = 14;\n if (days_passed < timeout_in_days) {\n console.info(\n `[PST] Suppressing announcement banner; was dismissed ${Math.floor(\n days_passed,\n )} day(s) ago`,\n );\n banner.remove();\n return;\n }\n }\n\n const { pstAnnouncementUrl } = banner ? banner.dataset : null;\n\n if (!pstAnnouncementUrl) {\n return;\n }\n\n try {\n const response = await fetch(pstAnnouncementUrl);\n if (!response.ok) {\n throw new Error(\n `[PST]: HTTP response status not ok: ${response.status} ${response.statusText}`,\n );\n }\n let data = await response.text();\n data = data.trim();\n if (data.length === 0) {\n console.log(`[PST]: Empty announcement at: ${pstAnnouncementUrl}`);\n return;\n }\n banner.innerHTML = `
${data}
`;\n banner.classList.remove(\"d-none\");\n } catch (_error) {\n console.log(`[PST]: Failed to load announcement at: ${pstAnnouncementUrl}`);\n console.error(_error);\n }\n\n // Add close button\n console.debug(\"[PST] Adding close button to announcement banner\");\n const close_btn = document.createElement(\"a\");\n close_btn.classList = \"ms-3 my-1 align-baseline\";\n const close_x = document.createElement(\"i\");\n close_btn.append(close_x);\n close_x.classList = \"fa-solid fa-xmark\";\n close_btn.onclick = DismissAnnouncementBannerAndStorePref;\n banner.append(close_btn);\n}\n\nasync function DismissAnnouncementBannerAndStorePref(event) {\n const banner = document.querySelector(\".bd-header-announcement\");\n banner.remove();\n const now = new Date();\n const banner_pref = JSON.parse(\n localStorage.getItem(\"pst_announcement_banner_pref\") || \"{}\",\n );\n console.debug(`[PST] Dismissing the announcement banner starting ${now}.`);\n banner_pref[\"closed\"] = now.toISOString();\n localStorage.setItem(\n \"pst_announcement_banner_pref\",\n JSON.stringify(banner_pref),\n );\n}\n\n/*******************************************************************************\n * Reveal (and animate) the banners (version warning, announcement) together\n */\nasync function fetchRevealBannersTogether() {\n // Wait until finished fetching and loading banners\n await Promise.allSettled([fetchAndUseVersions(), setupAnnouncementBanner()]);\n\n // The revealer element should have CSS rules that set height to 0, overflow\n // to hidden, and an animation transition on the height (unless the user has\n // turned off animations)\n const revealer = document.querySelector(\".pst-async-banner-revealer\");\n if (!revealer) {\n return;\n }\n\n // Remove the d-none (display-none) class to calculate the children heights.\n revealer.classList.remove(\"d-none\");\n\n // Add together the heights of the element's children\n const height = Array.from(revealer.children).reduce(\n (height, el) => height + el.offsetHeight,\n 0,\n );\n\n // Use the calculated height to give the revealer a non-zero height (if\n // animations allowed, the height change will animate)\n revealer.style.setProperty(\"height\", `${height}px`);\n\n // Wait for a bit more than 300ms (the transition duration), then set height\n // to auto so the banner can resize if the window is resized.\n setTimeout(() => {\n revealer.style.setProperty(\"height\", \"auto\");\n }, 320);\n}\n\n/**\n * Add the machinery needed to highlight elements in the TOC when scrolling.\n *\n */\nfunction setupArticleTocSyncing() {\n // Right sidebar table of contents container\n const pageToc = document.querySelector(\"#pst-page-toc-nav\");\n\n // Not all pages have or include a table of contents. (For example, in the PST\n // docs, at the time of this writing: /user_guide/index.html.)\n if (!pageToc) {\n return;\n }\n\n // The table of contents is a list of .toc-entry items each of which contains\n // a link and possibly a nested list representing one level deeper in the\n // table of contents.\n const tocEntries = Array.from(pageToc.querySelectorAll(\".toc-entry\"));\n const tocLinks = Array.from(pageToc.querySelectorAll(\"a\"));\n\n // If there are no links in the TOC, there's no syncing to be done.\n // (Currently, the template does not render the TOC container if there are no\n // TOC links, so this condition should never evaluate to true if the TOC\n // container is found on the page, but should the template change in the\n // future, this check will prevent a runtime error.)\n if (tocLinks.length === 0) {\n return;\n }\n\n // Create a boolean variable that allows us to turn off the intersection\n // observer (and then later back on). When the website visitor clicks an\n // in-page link, we want that entry in the TOC to be highlighted/activated,\n // NOT whichever TOC link the intersection observer callback would otherwise\n // highlight.\n let disableObserver = false;\n\n function temporarilyDisableObserver(time) {\n disableObserver = true;\n setTimeout(() => {\n disableObserver = false;\n }, time);\n }\n\n /**\n * If the provided URL hash fragment (beginning with \"#\") matches an entry in\n * the page table of contents, highlight that entry and temporarily disable\n * the intersection observer while the page scrolls to the corresponding\n * heading.\n */\n function syncTocHash(hash) {\n if (hash.length > 1) {\n const matchingTocLink = tocLinks.find((tocLink) => tocLink.hash === hash);\n if (matchingTocLink) {\n // It's important to disable the intersection observer before\n // highlighting the TOC link and its corresponding article heading. This\n // is because the browser takes a little time to scroll to the article\n // heading, and while scrolling, it could trigger intersection events\n // that cause some other link in the table of contents to be\n // highlighted.\n temporarilyDisableObserver(1000);\n activate(matchingTocLink);\n }\n }\n }\n\n // On page load...\n //\n // When the page loads, sync the page's table of contents.\n syncTocHash(window.location.hash);\n\n // On navigation to another part of the page...\n //\n // When the user navigates to another part of the page, sync the page's table\n // of contents.\n window.addEventListener(\"hashchange\", () => {\n // By the time this event is fired, window.location.hash has already been\n // updated with the new hash\n syncTocHash(window.location.hash);\n });\n\n // On return to the same part of the page...\n //\n // The hashchange event will handle most cases where we need to sync the table\n // of contents with a hash link click. But there is one edge case it doesn't\n // handle, which is when the user clicks an internal page link whose hash is\n // already in the browser address bar. For example, the user loads the page at\n // #first-heading, scrolls to the bottom of the page, then clicks in the\n // sidebar table of contents to go back up to the first heading in the\n // article. In this case the \"hashchange\" event will not fire. Nonetheless, we\n // want to guarantee that the TOC entry for the first heading gets\n // highlighted. Note we cannot rely exclusively on the \"click\" event for all\n // internal page navigations because it will not fire in the edge case where\n // the user modifies the hash directly in the browser address bar.\n window.addEventListener(\"click\", (event) => {\n const link = event.target.closest(\"a\");\n if (\n link &&\n link.hash === window.location.hash &&\n link.origin === window.location.origin\n ) {\n syncTocHash(link.hash);\n }\n });\n\n /**\n * Activate an element and its chain of ancestor TOC entries; deactivate\n * everything else in the TOC. Together with the theme CSS, this unfolds\n * the TOC out to the given entry and highlights that entry.\n *\n * @param {HTMLElement} tocLink The TOC entry to be highlighted\n */\n function activate(tocLink) {\n tocLinks.forEach((el) => {\n if (el === tocLink) {\n el.classList.add(\"active\");\n el.setAttribute(\"aria-current\", \"true\");\n } else {\n el.classList.remove(\"active\");\n el.removeAttribute(\"aria-current\");\n }\n });\n tocEntries.forEach((el) => {\n if (el.contains(tocLink)) {\n el.classList.add(\"active\");\n } else {\n el.classList.remove(\"active\");\n }\n });\n }\n\n /**\n * Get the heading in the article associated with the link in the table of contents\n *\n * @param {HTMLElement} tocLink TOC DOM element to use to grab an article heading\n *\n * @returns The article heading that the TOC element links to\n */\n function getHeading(tocLink) {\n const href = tocLink.getAttribute(\"href\");\n if (!href.startsWith(\"#\")) {\n return;\n }\n const id = href.substring(1);\n // There are cases where href=\"#\" (for example, the first one at /examples/kitchen-sink/structure.html)\n if (!id) {\n return;\n }\n // Use getElementById() because querySelector() requires escaping the id string\n const target = document.getElementById(id);\n // Often the target is a section but we want to track section's heading\n const heading = target.querySelector(\":is(h1,h2,h3,h4,h5,h6)\");\n // Fallback to the target if there is no heading (for example, links on the\n // PST docs page /examples/kitchen-sink/api.html target
elements)\n return heading || target;\n }\n\n // Map heading elements to their associated TOC links\n const headingsToTocLinks = new Map();\n tocLinks.forEach((tocLink) => {\n const heading = getHeading(tocLink);\n if (heading) {\n headingsToTocLinks.set(heading, tocLink);\n }\n });\n\n let observer;\n\n function connectIntersectionObserver() {\n if (observer) {\n observer.disconnect();\n }\n\n const header = document.querySelector(\"#pst-header\");\n const headerHeight = header.getBoundingClientRect().height;\n\n // Intersection observer options\n const options = {\n root: null,\n rootMargin: `-${headerHeight}px 0px -70% 0px`, // Use -70% for the bottom margin so that intersection events happen in only the top third of the viewport\n threshold: 0, // Trigger as soon as the heading goes into (or out of) the top 30% of the viewport\n };\n\n /**\n *\n * @param {IntersectionObserverEntry[]} entries Objects containing threshold-crossing\n * event information\n *\n */\n function callback(entries) {\n if (disableObserver) {\n return;\n }\n const entry = entries.filter((entry) => entry.isIntersecting).pop();\n if (!entry) {\n return;\n }\n const heading = entry.target;\n const tocLink = headingsToTocLinks.get(heading);\n activate(tocLink);\n }\n\n observer = new IntersectionObserver(callback, options);\n Array.from(headingsToTocLinks.keys()).forEach((heading) => {\n observer.observe(heading);\n });\n }\n\n // If the user resizes the window, the header height may change and the\n // intersection observer's root margin will need to be recalculated\n window.addEventListener(\"resize\", debounce(connectIntersectionObserver, 300));\n connectIntersectionObserver();\n}\n\n/*******************************************************************************\n * Set up expand/collapse button for primary sidebar\n */\nfunction setupCollapseSidebarButton() {\n const button = document.getElementById(\"pst-collapse-sidebar-button\");\n const sidebar = document.getElementById(\"pst-primary-sidebar\");\n\n // If this page rendered without the button or sidebar, then there's nothing to do.\n if (!button || !sidebar) {\n return;\n }\n\n const sidebarSections = Array.from(sidebar.children);\n\n const expandTooltip = new bootstrap.Tooltip(button, {\n title: button.querySelector(\".pst-expand-sidebar-label\").textContent,\n\n // In manual testing, relying on Bootstrap to handle \"hover\" and \"focus\" was buggy.\n trigger: \"manual\",\n\n placement: \"left\",\n fallbackPlacements: [\"right\"],\n\n // Offsetting the tooltip a bit more than the default [0, 0] solves an issue\n // where the appearance of the tooltip triggers a mouseleave event which in\n // turn triggers the call to hide the tooltip. So in certain areas around\n // the button, it would appear to the user that tooltip flashes in and then\n // back out.\n offset: [0, 12],\n });\n\n const showTooltip = () => {\n // Only show the \"expand sidebar\" tooltip when the sidebar is not expanded\n if (button.getAttribute(\"aria-expanded\") === \"false\") {\n expandTooltip.show();\n }\n };\n const hideTooltip = () => {\n expandTooltip.hide();\n };\n\n function squeezeSidebar(prefersReducedMotion, done) {\n // Before squeezing the sidebar, freeze the widths of its subsections.\n // Otherwise, the subsections will also narrow and cause the text in the\n // sidebar to reflow and wrap, which we don't want. This is necessary\n // because we do not remove the sidebar contents from the layout (with\n // `display: none`). Rather, we hide the contents from both sighted users\n // and screen readers (with `visibility: hidden`). This provides better\n // stability to the overall layout.\n sidebarSections.forEach(\n (el) => (el.style.width = el.getBoundingClientRect().width + \"px\"),\n );\n\n const afterSqueeze = () => {\n // After squeezing the sidebar, set aria-expanded to false\n button.setAttribute(\"aria-expanded\", \"false\"); // \"false\" is in quotes because HTML attributes are strings\n\n button.dataset.busy = false;\n };\n\n if (prefersReducedMotion) {\n sidebar.classList.add(\"pst-squeeze\");\n afterSqueeze();\n } else {\n sidebar.addEventListener(\"transitionend\", function onTransitionEnd() {\n afterSqueeze();\n sidebar.removeEventListener(\"transitionend\", onTransitionEnd);\n });\n sidebar.classList.add(\"pst-squeeze\");\n }\n }\n\n function expandSidebar(prefersReducedMotion, done) {\n hideTooltip();\n\n const afterExpand = () => {\n // After expanding the sidebar (which may be delayed by a CSS transition),\n // unfreeze the widths of the subsections that were frozen when the sidebar\n // was squeezed.\n sidebarSections.forEach((el) => (el.style.width = null));\n\n // After expanding the sidebar, set aria-expanded to \"true\" - in quotes\n // because HTML attributes are strings.\n button.setAttribute(\"aria-expanded\", \"true\");\n\n button.dataset.busy = false;\n };\n\n if (prefersReducedMotion) {\n sidebar.classList.remove(\"pst-squeeze\");\n afterExpand();\n } else {\n sidebar.addEventListener(\"transitionend\", function onTransitionEnd() {\n afterExpand();\n sidebar.removeEventListener(\"transitionend\", onTransitionEnd);\n });\n sidebar.classList.remove(\"pst-squeeze\");\n }\n }\n\n button.addEventListener(\"click\", () => {\n if (button.dataset.busy === \"true\") {\n return;\n }\n button.dataset.busy = \"true\";\n\n const prefersReducedMotion = window.matchMedia(\n \"(prefers-reduced-motion)\", // must be in parentheses\n ).matches;\n\n if (button.getAttribute(\"aria-expanded\") === \"true\") {\n squeezeSidebar(prefersReducedMotion);\n } else {\n expandSidebar(prefersReducedMotion);\n }\n });\n\n button.addEventListener(\"focus\", showTooltip);\n button.addEventListener(\"mouseenter\", showTooltip);\n button.addEventListener(\"mouseleave\", hideTooltip);\n button.addEventListener(\"blur\", hideTooltip);\n}\n\n/*******************************************************************************\n * Call functions after document loading.\n */\n\n// This one first to kick off the network request for the version warning\n// and announcement banner data as early as possible.\ndocumentReady(fetchRevealBannersTogether);\n\ndocumentReady(addModeListener);\ndocumentReady(scrollToActive);\ndocumentReady(setupSearchButtons);\ndocumentReady(setupSearchAsYouType);\ndocumentReady(setupMobileSidebarKeyboardHandlers);\ndocumentReady(setupArticleTocSyncing);\ndocumentReady(() => {\n try {\n setupCollapseSidebarButton();\n } catch (err) {\n // This exact error message is used in pytest tests\n console.log(\"[PST] Error setting up collapse sidebar button\");\n console.error(err);\n }\n});\n\n// Determining whether an element has scrollable content depends on stylesheets,\n// so we're checking for the \"load\" event rather than \"DOMContentLoaded\"\nif (document.readyState === \"complete\") {\n addTabStopsToScrollableElements();\n} else {\n window.addEventListener(\"load\", addTabStopsToScrollableElements);\n}\n"],"names":["documentReady","callback","document","readyState","addEventListener","validate","version","test","semver","compare","v1","v2","operator","assertValidOperator","res","n1","validateAndParse","n2","p1","pop","p2","r","compareSegments","split","compareVersions","operatorResMap","includes","TypeError","match","Error","shift","isWildcard","s","tryParse","v","n","parseInt","isNaN","compareStrings","a","b","ap","bp","String","forceType","i","Math","max","length","allowedOperators","Object","keys","op","indexOf","join","prefersDark","window","matchMedia","autoTheme","e","documentElement","dataset","theme","matches","setTheme","mode","console","error","colorScheme","querySelectorAll","forEach","el","classList","add","remove","localStorage","setItem","log","onchange","updateColorModeDropdown","activeClass","changeColorMode","currentTarget","findSearchInput","forms","querySelector","toggleSearchField","input","searchDialog","getElementById","open","close","showModal","activeElement","blur","focus","select","scrollIntoView","block","useCommandKey","navigator","platform","closeDialogOnBackdropClick","dialog","clientX","clientY","left","right","top","bottom","getBoundingClientRect","resetSearchAsYouTypeResults","DOCUMENTATION_OPTIONS","search_as_you_type","results","createElement","tabIndex","event","key","preventDefault","stopPropagation","id","appendChild","root","content_root","linkObserver","MutationObserver","Array","from","link","href","getAttribute","startsWith","isObserved","container","observe","childList","getCurrentUrlPath","BUILDER","pagename","endsWith","substring","async","DismissBannerAndStorePref","VERSION","now","Date","banner_pref","JSON","parse","getItem","debug","stringify","checkPageExistsAndRedirect","currentFilePath","tryUrl","otherDocsHomepage","replace","fetch","method","ok","location","err","fetchAndUseVersions","versionSwitcherBtns","hasSwitcherMenu","hasVersionsJSON","hasOwnProperty","wantsWarningBanner","show_version_warning_banner","data","url","currentPath","result","URL","protocol","info","cutoff","origin","response","json","fetchVersionSwitcherJSON","theme_switcher_json_url","btn","hasMatchingPreferredEntry","map","entry","theme_switcher_version_match","preferred","name","some","Boolean","foundMatch","anchor","setAttribute","span","textContent","matchesAndIsPreferred","matchesAndIsFirst","innerText","menu","node","cloneNode","onclick","append","populateVersionSwitcher","preferredEntries","filter","howMany","preferredVersion","preferredURL","versionsAreComparable","dismiss_date_str","dismiss_date","days_passed","floor","banner","middle","inner","bold","button","close_btn","close_x","isDev","newerThanPreferred","createTextNode","showVersionWarningBanner","addTabStopsToScrollableElements","updateTabStops","scrollWidth","clientWidth","scrollHeight","clientHeight","debouncedUpdateTabStops","debounce","subtree","wait","timeoutId","args","clearTimeout","setTimeout","setupAnnouncementBanner","pstAnnouncementUrl","status","statusText","text","trim","innerHTML","_error","DismissAnnouncementBannerAndStorePref","toISOString","Promise","allSettled","revealer","height","children","reduce","offsetHeight","style","setProperty","sidebar","storedScrollTop","sessionStorage","active_pages","latest_active","offset","y","innerHeight","buffer","scrollTop","shortcuts","f","changeSearchShortcutKey","shiftKey","altKey","metaKey","ctrlKey","pathname","Search","lastQuery","searchInput","query","value","performSearch","primarySidebar","secondarySidebar","primaryDialog","secondaryDialog","primaryToggle","secondaryToggle","cutAndPasteNodesAndClasses","to","childNodes","cls","toggleButton","previouslyFocused","once","pageToc","tocEntries","tocLinks","disableObserver","syncTocHash","hash","matchingTocLink","find","tocLink","activate","removeAttribute","contains","target","closest","headingsToTocLinks","Map","observer","connectIntersectionObserver","disconnect","headerHeight","IntersectionObserver","entries","isIntersecting","heading","get","rootMargin","threshold","getHeading","set","sidebarSections","expandTooltip","bootstrap","Tooltip","title","trigger","placement","fallbackPlacements","showTooltip","show","hideTooltip","hide","busy","prefersReducedMotion","width","afterSqueeze","onTransitionEnd","removeEventListener","squeezeSidebar","afterExpand","expandSidebar","setupCollapseSidebarButton"],"sourceRoot":""} \ No newline at end of file diff --git a/libhal-arm-mcu/main/_static/styles/pydata-sphinx-theme.css b/libhal-arm-mcu/main/_static/styles/pydata-sphinx-theme.css index c7a35aa..e55c4ed 100644 --- a/libhal-arm-mcu/main/_static/styles/pydata-sphinx-theme.css +++ b/libhal-arm-mcu/main/_static/styles/pydata-sphinx-theme.css @@ -21,7 +21,7 @@ * Font Awesome Free 7.2.0 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) * Copyright 2026 Fonticons, Inc. - */:host,:root{--fa-family-brands:"Font Awesome 7 Brands";--fa-font-brands:normal 400 1em/1 var(--fa-family-brands)}@font-face{font-display:block;font-family:Font Awesome\ 7 Brands;font-style:normal;font-weight:400;src:url(../vendor/fontawesome/webfonts/fa-brands-400.woff2)}.fa-brands,.fa-classic.fa-brands,.fab{--fa-family:var(--fa-family-brands);--fa-style:400}.fa-firefox-browser{--fa:"\e007"}.fa-ideal{--fa:"\e013"}.fa-microblog{--fa:"\e01a"}.fa-pied-piper-square,.fa-square-pied-piper{--fa:"\e01e"}.fa-unity{--fa:"\e049"}.fa-dailymotion{--fa:"\e052"}.fa-instagram-square,.fa-square-instagram{--fa:"\e055"}.fa-mixer{--fa:"\e056"}.fa-shopify{--fa:"\e057"}.fa-deezer{--fa:"\e077"}.fa-edge-legacy{--fa:"\e078"}.fa-google-pay{--fa:"\e079"}.fa-rust{--fa:"\e07a"}.fa-tiktok{--fa:"\e07b"}.fa-unsplash{--fa:"\e07c"}.fa-cloudflare{--fa:"\e07d"}.fa-guilded{--fa:"\e07e"}.fa-hive{--fa:"\e07f"}.fa-42-group,.fa-innosoft{--fa:"\e080"}.fa-instalod{--fa:"\e081"}.fa-octopus-deploy{--fa:"\e082"}.fa-perbyte{--fa:"\e083"}.fa-uncharted{--fa:"\e084"}.fa-watchman-monitoring{--fa:"\e087"}.fa-wodu{--fa:"\e088"}.fa-wirsindhandwerk,.fa-wsh{--fa:"\e2d0"}.fa-bots{--fa:"\e340"}.fa-cmplid{--fa:"\e360"}.fa-bilibili{--fa:"\e3d9"}.fa-golang{--fa:"\e40f"}.fa-pix{--fa:"\e43a"}.fa-sitrox{--fa:"\e44a"}.fa-hashnode{--fa:"\e499"}.fa-meta{--fa:"\e49b"}.fa-padlet{--fa:"\e4a0"}.fa-nfc-directional{--fa:"\e530"}.fa-nfc-symbol{--fa:"\e531"}.fa-screenpal{--fa:"\e570"}.fa-space-awesome{--fa:"\e5ac"}.fa-square-font-awesome{--fa:"\e5ad"}.fa-gitlab-square,.fa-square-gitlab{--fa:"\e5ae"}.fa-odysee{--fa:"\e5c6"}.fa-stubber{--fa:"\e5c7"}.fa-debian{--fa:"\e60b"}.fa-shoelace{--fa:"\e60c"}.fa-threads{--fa:"\e618"}.fa-square-threads{--fa:"\e619"}.fa-square-x-twitter{--fa:"\e61a"}.fa-x-twitter{--fa:"\e61b"}.fa-opensuse{--fa:"\e62b"}.fa-letterboxd{--fa:"\e62d"}.fa-square-letterboxd{--fa:"\e62e"}.fa-mintbit{--fa:"\e62f"}.fa-google-scholar{--fa:"\e63b"}.fa-brave{--fa:"\e63c"}.fa-brave-reverse{--fa:"\e63d"}.fa-pixiv{--fa:"\e640"}.fa-upwork{--fa:"\e641"}.fa-webflow{--fa:"\e65c"}.fa-signal-messenger{--fa:"\e663"}.fa-bluesky{--fa:"\e671"}.fa-jxl{--fa:"\e67b"}.fa-square-upwork{--fa:"\e67c"}.fa-web-awesome{--fa:"\e682"}.fa-square-web-awesome{--fa:"\e683"}.fa-square-web-awesome-stroke{--fa:"\e684"}.fa-dart-lang{--fa:"\e693"}.fa-flutter{--fa:"\e694"}.fa-files-pinwheel{--fa:"\e69f"}.fa-css{--fa:"\e6a2"}.fa-square-bluesky{--fa:"\e6a3"}.fa-openai{--fa:"\e7cf"}.fa-square-linkedin{--fa:"\e7d0"}.fa-cash-app{--fa:"\e7d4"}.fa-disqus{--fa:"\e7d5"}.fa-11ty,.fa-eleventy{--fa:"\e7d6"}.fa-kakao-talk{--fa:"\e7d7"}.fa-linktree{--fa:"\e7d8"}.fa-notion{--fa:"\e7d9"}.fa-pandora{--fa:"\e7da"}.fa-pixelfed{--fa:"\e7db"}.fa-tidal{--fa:"\e7dc"}.fa-vsco{--fa:"\e7dd"}.fa-w3c{--fa:"\e7de"}.fa-lumon{--fa:"\e7e2"}.fa-lumon-drop{--fa:"\e7e3"}.fa-square-figma{--fa:"\e7e4"}.fa-tex{--fa:"\e7ff"}.fa-duolingo{--fa:"\e812"}.fa-supportnow{--fa:"\e833"}.fa-tor-browser{--fa:"\e838"}.fa-typescript{--fa:"\e840"}.fa-square-deskpro{--fa:"\e844"}.fa-circle-zulip{--fa:"\e851"}.fa-julia{--fa:"\e852"}.fa-zulip{--fa:"\e853"}.fa-unison{--fa:"\e854"}.fa-bgg,.fa-board-game-geek{--fa:"\e855"}.fa-ko-fi{--fa:"\e856"}.fa-kubernetes{--fa:"\e857"}.fa-postgresql{--fa:"\e858"}.fa-scaleway{--fa:"\e859"}.fa-venmo{--fa:"\e85a"}.fa-venmo-v{--fa:"\e85b"}.fa-unreal-engine{--fa:"\e85c"}.fa-globaleaks{--fa:"\e85d"}.fa-solana{--fa:"\e85e"}.fa-threema{--fa:"\e85f"}.fa-forgejo{--fa:"\e860"}.fa-claude{--fa:"\e861"}.fa-gitee{--fa:"\e863"}.fa-xmpp{--fa:"\e864"}.fa-fediverse{--fa:"\e865"}.fa-tailwind-css{--fa:"\e866"}.fa-arch-linux{--fa:"\e867"}.fa-svelte{--fa:"\e868"}.fa-hugging-face{--fa:"\e869"}.fa-leetcode{--fa:"\e86a"}.fa-openstreetmap{--fa:"\e86b"}.fa-ultralytics{--fa:"\e86d"}.fa-ultralytics-hub{--fa:"\e86e"}.fa-ultralytics-yolo{--fa:"\e86f"}.fa-obsidian{--fa:"\e879"}.fa-zoom{--fa:"\e87b"}.fa-vim{--fa:"\e88a"}.fa-symfonycasts{--fa:"\e8ab"}.fa-square-twitter,.fa-twitter-square{--fa:"\f081"}.fa-facebook-square,.fa-square-facebook{--fa:"\f082"}.fa-linkedin{--fa:"\f08c"}.fa-github-square,.fa-square-github{--fa:"\f092"}.fa-twitter{--fa:"\f099"}.fa-facebook{--fa:"\f09a"}.fa-github{--fa:"\f09b"}.fa-pinterest{--fa:"\f0d2"}.fa-pinterest-square,.fa-square-pinterest{--fa:"\f0d3"}.fa-google-plus-square,.fa-square-google-plus{--fa:"\f0d4"}.fa-google-plus-g{--fa:"\f0d5"}.fa-linkedin-in{--fa:"\f0e1"}.fa-github-alt{--fa:"\f113"}.fa-maxcdn{--fa:"\f136"}.fa-html5{--fa:"\f13b"}.fa-css3{--fa:"\f13c"}.fa-btc{--fa:"\f15a"}.fa-youtube{--fa:"\f167"}.fa-xing{--fa:"\f168"}.fa-square-xing,.fa-xing-square{--fa:"\f169"}.fa-dropbox{--fa:"\f16b"}.fa-stack-overflow{--fa:"\f16c"}.fa-instagram{--fa:"\f16d"}.fa-flickr{--fa:"\f16e"}.fa-adn{--fa:"\f170"}.fa-bitbucket{--fa:"\f171"}.fa-tumblr{--fa:"\f173"}.fa-square-tumblr,.fa-tumblr-square{--fa:"\f174"}.fa-apple{--fa:"\f179"}.fa-windows{--fa:"\f17a"}.fa-android{--fa:"\f17b"}.fa-linux{--fa:"\f17c"}.fa-dribbble{--fa:"\f17d"}.fa-skype{--fa:"\f17e"}.fa-foursquare{--fa:"\f180"}.fa-trello{--fa:"\f181"}.fa-gratipay{--fa:"\f184"}.fa-vk{--fa:"\f189"}.fa-weibo{--fa:"\f18a"}.fa-renren{--fa:"\f18b"}.fa-pagelines{--fa:"\f18c"}.fa-stack-exchange{--fa:"\f18d"}.fa-square-vimeo,.fa-vimeo-square{--fa:"\f194"}.fa-slack,.fa-slack-hash{--fa:"\f198"}.fa-wordpress{--fa:"\f19a"}.fa-openid{--fa:"\f19b"}.fa-yahoo{--fa:"\f19e"}.fa-google{--fa:"\f1a0"}.fa-reddit{--fa:"\f1a1"}.fa-reddit-square,.fa-square-reddit{--fa:"\f1a2"}.fa-stumbleupon-circle{--fa:"\f1a3"}.fa-stumbleupon{--fa:"\f1a4"}.fa-delicious{--fa:"\f1a5"}.fa-digg{--fa:"\f1a6"}.fa-pied-piper-pp{--fa:"\f1a7"}.fa-pied-piper-alt{--fa:"\f1a8"}.fa-drupal{--fa:"\f1a9"}.fa-joomla{--fa:"\f1aa"}.fa-behance{--fa:"\f1b4"}.fa-behance-square,.fa-square-behance{--fa:"\f1b5"}.fa-steam{--fa:"\f1b6"}.fa-square-steam,.fa-steam-square{--fa:"\f1b7"}.fa-spotify{--fa:"\f1bc"}.fa-deviantart{--fa:"\f1bd"}.fa-soundcloud{--fa:"\f1be"}.fa-vine{--fa:"\f1ca"}.fa-codepen{--fa:"\f1cb"}.fa-jsfiddle{--fa:"\f1cc"}.fa-rebel{--fa:"\f1d0"}.fa-empire{--fa:"\f1d1"}.fa-git-square,.fa-square-git{--fa:"\f1d2"}.fa-git{--fa:"\f1d3"}.fa-hacker-news{--fa:"\f1d4"}.fa-tencent-weibo{--fa:"\f1d5"}.fa-qq{--fa:"\f1d6"}.fa-weixin{--fa:"\f1d7"}.fa-slideshare{--fa:"\f1e7"}.fa-twitch{--fa:"\f1e8"}.fa-yelp{--fa:"\f1e9"}.fa-paypal{--fa:"\f1ed"}.fa-google-wallet{--fa:"\f1ee"}.fa-cc-visa{--fa:"\f1f0"}.fa-cc-mastercard{--fa:"\f1f1"}.fa-cc-discover{--fa:"\f1f2"}.fa-cc-amex{--fa:"\f1f3"}.fa-cc-paypal{--fa:"\f1f4"}.fa-cc-stripe{--fa:"\f1f5"}.fa-lastfm{--fa:"\f202"}.fa-lastfm-square,.fa-square-lastfm{--fa:"\f203"}.fa-ioxhost{--fa:"\f208"}.fa-angellist{--fa:"\f209"}.fa-buysellads{--fa:"\f20d"}.fa-connectdevelop{--fa:"\f20e"}.fa-dashcube{--fa:"\f210"}.fa-forumbee{--fa:"\f211"}.fa-leanpub{--fa:"\f212"}.fa-sellsy{--fa:"\f213"}.fa-shirtsinbulk{--fa:"\f214"}.fa-simplybuilt{--fa:"\f215"}.fa-skyatlas{--fa:"\f216"}.fa-pinterest-p{--fa:"\f231"}.fa-whatsapp{--fa:"\f232"}.fa-viacoin{--fa:"\f237"}.fa-medium,.fa-medium-m{--fa:"\f23a"}.fa-y-combinator{--fa:"\f23b"}.fa-optin-monster{--fa:"\f23c"}.fa-opencart{--fa:"\f23d"}.fa-expeditedssl{--fa:"\f23e"}.fa-cc-jcb{--fa:"\f24b"}.fa-cc-diners-club{--fa:"\f24c"}.fa-creative-commons{--fa:"\f25e"}.fa-gg{--fa:"\f260"}.fa-gg-circle{--fa:"\f261"}.fa-odnoklassniki{--fa:"\f263"}.fa-odnoklassniki-square,.fa-square-odnoklassniki{--fa:"\f264"}.fa-get-pocket{--fa:"\f265"}.fa-wikipedia-w{--fa:"\f266"}.fa-safari{--fa:"\f267"}.fa-chrome{--fa:"\f268"}.fa-firefox{--fa:"\f269"}.fa-opera{--fa:"\f26a"}.fa-internet-explorer{--fa:"\f26b"}.fa-contao{--fa:"\f26d"}.fa-500px{--fa:"\f26e"}.fa-amazon{--fa:"\f270"}.fa-houzz{--fa:"\f27c"}.fa-vimeo-v{--fa:"\f27d"}.fa-black-tie{--fa:"\f27e"}.fa-fonticons{--fa:"\f280"}.fa-reddit-alien{--fa:"\f281"}.fa-edge{--fa:"\f282"}.fa-codiepie{--fa:"\f284"}.fa-modx{--fa:"\f285"}.fa-fort-awesome{--fa:"\f286"}.fa-usb{--fa:"\f287"}.fa-product-hunt{--fa:"\f288"}.fa-mixcloud{--fa:"\f289"}.fa-scribd{--fa:"\f28a"}.fa-bluetooth{--fa:"\f293"}.fa-bluetooth-b{--fa:"\f294"}.fa-gitlab{--fa:"\f296"}.fa-wpbeginner{--fa:"\f297"}.fa-wpforms{--fa:"\f298"}.fa-envira{--fa:"\f299"}.fa-glide{--fa:"\f2a5"}.fa-glide-g{--fa:"\f2a6"}.fa-viadeo{--fa:"\f2a9"}.fa-square-viadeo,.fa-viadeo-square{--fa:"\f2aa"}.fa-snapchat,.fa-snapchat-ghost{--fa:"\f2ab"}.fa-snapchat-square,.fa-square-snapchat{--fa:"\f2ad"}.fa-pied-piper{--fa:"\f2ae"}.fa-first-order{--fa:"\f2b0"}.fa-yoast{--fa:"\f2b1"}.fa-themeisle{--fa:"\f2b2"}.fa-google-plus{--fa:"\f2b3"}.fa-font-awesome,.fa-font-awesome-flag,.fa-font-awesome-logo-full{--fa:"\f2b4"}.fa-linode{--fa:"\f2b8"}.fa-quora{--fa:"\f2c4"}.fa-free-code-camp{--fa:"\f2c5"}.fa-telegram,.fa-telegram-plane{--fa:"\f2c6"}.fa-bandcamp{--fa:"\f2d5"}.fa-grav{--fa:"\f2d6"}.fa-etsy{--fa:"\f2d7"}.fa-imdb{--fa:"\f2d8"}.fa-ravelry{--fa:"\f2d9"}.fa-sellcast{--fa:"\f2da"}.fa-superpowers{--fa:"\f2dd"}.fa-wpexplorer{--fa:"\f2de"}.fa-meetup{--fa:"\f2e0"}.fa-font-awesome-alt,.fa-square-font-awesome-stroke{--fa:"\f35c"}.fa-accessible-icon{--fa:"\f368"}.fa-accusoft{--fa:"\f369"}.fa-adversal{--fa:"\f36a"}.fa-affiliatetheme{--fa:"\f36b"}.fa-algolia{--fa:"\f36c"}.fa-amilia{--fa:"\f36d"}.fa-angrycreative{--fa:"\f36e"}.fa-app-store{--fa:"\f36f"}.fa-app-store-ios{--fa:"\f370"}.fa-apper{--fa:"\f371"}.fa-asymmetrik{--fa:"\f372"}.fa-audible{--fa:"\f373"}.fa-avianex{--fa:"\f374"}.fa-aws{--fa:"\f375"}.fa-bimobject{--fa:"\f378"}.fa-bitcoin{--fa:"\f379"}.fa-bity{--fa:"\f37a"}.fa-blackberry{--fa:"\f37b"}.fa-blogger{--fa:"\f37c"}.fa-blogger-b{--fa:"\f37d"}.fa-buromobelexperte{--fa:"\f37f"}.fa-centercode{--fa:"\f380"}.fa-cloudscale{--fa:"\f383"}.fa-cloudsmith{--fa:"\f384"}.fa-cloudversify{--fa:"\f385"}.fa-cpanel{--fa:"\f388"}.fa-css3-alt{--fa:"\f38b"}.fa-cuttlefish{--fa:"\f38c"}.fa-d-and-d{--fa:"\f38d"}.fa-deploydog{--fa:"\f38e"}.fa-deskpro{--fa:"\f38f"}.fa-digital-ocean{--fa:"\f391"}.fa-discord{--fa:"\f392"}.fa-discourse{--fa:"\f393"}.fa-dochub{--fa:"\f394"}.fa-docker{--fa:"\f395"}.fa-draft2digital{--fa:"\f396"}.fa-dribbble-square,.fa-square-dribbble{--fa:"\f397"}.fa-dyalog{--fa:"\f399"}.fa-earlybirds{--fa:"\f39a"}.fa-erlang{--fa:"\f39d"}.fa-facebook-f{--fa:"\f39e"}.fa-facebook-messenger{--fa:"\f39f"}.fa-firstdraft{--fa:"\f3a1"}.fa-fonticons-fi{--fa:"\f3a2"}.fa-fort-awesome-alt{--fa:"\f3a3"}.fa-freebsd{--fa:"\f3a4"}.fa-gitkraken{--fa:"\f3a6"}.fa-gofore{--fa:"\f3a7"}.fa-goodreads{--fa:"\f3a8"}.fa-goodreads-g{--fa:"\f3a9"}.fa-google-drive{--fa:"\f3aa"}.fa-google-play{--fa:"\f3ab"}.fa-gripfire{--fa:"\f3ac"}.fa-grunt{--fa:"\f3ad"}.fa-gulp{--fa:"\f3ae"}.fa-hacker-news-square,.fa-square-hacker-news{--fa:"\f3af"}.fa-hire-a-helper{--fa:"\f3b0"}.fa-hotjar{--fa:"\f3b1"}.fa-hubspot{--fa:"\f3b2"}.fa-itunes{--fa:"\f3b4"}.fa-itunes-note{--fa:"\f3b5"}.fa-jenkins{--fa:"\f3b6"}.fa-joget{--fa:"\f3b7"}.fa-js{--fa:"\f3b8"}.fa-js-square,.fa-square-js{--fa:"\f3b9"}.fa-keycdn{--fa:"\f3ba"}.fa-kickstarter,.fa-square-kickstarter{--fa:"\f3bb"}.fa-kickstarter-k{--fa:"\f3bc"}.fa-laravel{--fa:"\f3bd"}.fa-line{--fa:"\f3c0"}.fa-lyft{--fa:"\f3c3"}.fa-magento{--fa:"\f3c4"}.fa-medapps{--fa:"\f3c6"}.fa-medrt{--fa:"\f3c8"}.fa-microsoft{--fa:"\f3ca"}.fa-mix{--fa:"\f3cb"}.fa-mizuni{--fa:"\f3cc"}.fa-monero{--fa:"\f3d0"}.fa-napster{--fa:"\f3d2"}.fa-node-js{--fa:"\f3d3"}.fa-npm{--fa:"\f3d4"}.fa-ns8{--fa:"\f3d5"}.fa-nutritionix{--fa:"\f3d6"}.fa-page4{--fa:"\f3d7"}.fa-palfed{--fa:"\f3d8"}.fa-patreon{--fa:"\f3d9"}.fa-periscope{--fa:"\f3da"}.fa-phabricator{--fa:"\f3db"}.fa-phoenix-framework{--fa:"\f3dc"}.fa-playstation{--fa:"\f3df"}.fa-pushed{--fa:"\f3e1"}.fa-python{--fa:"\f3e2"}.fa-red-river{--fa:"\f3e3"}.fa-rendact,.fa-wpressr{--fa:"\f3e4"}.fa-replyd{--fa:"\f3e6"}.fa-resolving{--fa:"\f3e7"}.fa-rocketchat{--fa:"\f3e8"}.fa-rockrms{--fa:"\f3e9"}.fa-schlix{--fa:"\f3ea"}.fa-searchengin{--fa:"\f3eb"}.fa-servicestack{--fa:"\f3ec"}.fa-sistrix{--fa:"\f3ee"}.fa-speakap{--fa:"\f3f3"}.fa-staylinked{--fa:"\f3f5"}.fa-steam-symbol{--fa:"\f3f6"}.fa-sticker-mule{--fa:"\f3f7"}.fa-studiovinari{--fa:"\f3f8"}.fa-supple{--fa:"\f3f9"}.fa-uber{--fa:"\f402"}.fa-uikit{--fa:"\f403"}.fa-uniregistry{--fa:"\f404"}.fa-untappd{--fa:"\f405"}.fa-ussunnah{--fa:"\f407"}.fa-vaadin{--fa:"\f408"}.fa-viber{--fa:"\f409"}.fa-vimeo{--fa:"\f40a"}.fa-vnv{--fa:"\f40b"}.fa-square-whatsapp,.fa-whatsapp-square{--fa:"\f40c"}.fa-whmcs{--fa:"\f40d"}.fa-wordpress-simple{--fa:"\f411"}.fa-xbox{--fa:"\f412"}.fa-yandex{--fa:"\f413"}.fa-yandex-international{--fa:"\f414"}.fa-apple-pay{--fa:"\f415"}.fa-cc-apple-pay{--fa:"\f416"}.fa-fly{--fa:"\f417"}.fa-node{--fa:"\f419"}.fa-osi{--fa:"\f41a"}.fa-react{--fa:"\f41b"}.fa-autoprefixer{--fa:"\f41c"}.fa-less{--fa:"\f41d"}.fa-sass{--fa:"\f41e"}.fa-vuejs{--fa:"\f41f"}.fa-angular{--fa:"\f420"}.fa-aviato{--fa:"\f421"}.fa-ember{--fa:"\f423"}.fa-gitter{--fa:"\f426"}.fa-hooli{--fa:"\f427"}.fa-strava{--fa:"\f428"}.fa-stripe{--fa:"\f429"}.fa-stripe-s{--fa:"\f42a"}.fa-typo3{--fa:"\f42b"}.fa-amazon-pay{--fa:"\f42c"}.fa-cc-amazon-pay{--fa:"\f42d"}.fa-ethereum{--fa:"\f42e"}.fa-korvue{--fa:"\f42f"}.fa-elementor{--fa:"\f430"}.fa-square-youtube,.fa-youtube-square{--fa:"\f431"}.fa-flipboard{--fa:"\f44d"}.fa-hips{--fa:"\f452"}.fa-php{--fa:"\f457"}.fa-quinscape{--fa:"\f459"}.fa-readme{--fa:"\f4d5"}.fa-java{--fa:"\f4e4"}.fa-pied-piper-hat{--fa:"\f4e5"}.fa-creative-commons-by{--fa:"\f4e7"}.fa-creative-commons-nc{--fa:"\f4e8"}.fa-creative-commons-nc-eu{--fa:"\f4e9"}.fa-creative-commons-nc-jp{--fa:"\f4ea"}.fa-creative-commons-nd{--fa:"\f4eb"}.fa-creative-commons-pd{--fa:"\f4ec"}.fa-creative-commons-pd-alt{--fa:"\f4ed"}.fa-creative-commons-remix{--fa:"\f4ee"}.fa-creative-commons-sa{--fa:"\f4ef"}.fa-creative-commons-sampling{--fa:"\f4f0"}.fa-creative-commons-sampling-plus{--fa:"\f4f1"}.fa-creative-commons-share{--fa:"\f4f2"}.fa-creative-commons-zero{--fa:"\f4f3"}.fa-ebay{--fa:"\f4f4"}.fa-keybase{--fa:"\f4f5"}.fa-mastodon{--fa:"\f4f6"}.fa-r-project{--fa:"\f4f7"}.fa-researchgate{--fa:"\f4f8"}.fa-teamspeak{--fa:"\f4f9"}.fa-first-order-alt{--fa:"\f50a"}.fa-fulcrum{--fa:"\f50b"}.fa-galactic-republic{--fa:"\f50c"}.fa-galactic-senate{--fa:"\f50d"}.fa-jedi-order{--fa:"\f50e"}.fa-mandalorian{--fa:"\f50f"}.fa-old-republic{--fa:"\f510"}.fa-phoenix-squadron{--fa:"\f511"}.fa-sith{--fa:"\f512"}.fa-trade-federation{--fa:"\f513"}.fa-wolf-pack-battalion{--fa:"\f514"}.fa-hornbill{--fa:"\f592"}.fa-mailchimp{--fa:"\f59e"}.fa-megaport{--fa:"\f5a3"}.fa-nimblr{--fa:"\f5a8"}.fa-rev{--fa:"\f5b2"}.fa-shopware{--fa:"\f5b5"}.fa-squarespace{--fa:"\f5be"}.fa-themeco{--fa:"\f5c6"}.fa-weebly{--fa:"\f5cc"}.fa-wix{--fa:"\f5cf"}.fa-ello{--fa:"\f5f1"}.fa-hackerrank{--fa:"\f5f7"}.fa-kaggle{--fa:"\f5fa"}.fa-markdown{--fa:"\f60f"}.fa-neos{--fa:"\f612"}.fa-zhihu{--fa:"\f63f"}.fa-alipay{--fa:"\f642"}.fa-the-red-yeti{--fa:"\f69d"}.fa-critical-role{--fa:"\f6c9"}.fa-d-and-d-beyond{--fa:"\f6ca"}.fa-dev{--fa:"\f6cc"}.fa-fantasy-flight-games{--fa:"\f6dc"}.fa-wizards-of-the-coast{--fa:"\f730"}.fa-think-peaks{--fa:"\f731"}.fa-reacteurope{--fa:"\f75d"}.fa-artstation{--fa:"\f77a"}.fa-atlassian{--fa:"\f77b"}.fa-canadian-maple-leaf{--fa:"\f785"}.fa-centos{--fa:"\f789"}.fa-confluence{--fa:"\f78d"}.fa-dhl{--fa:"\f790"}.fa-diaspora{--fa:"\f791"}.fa-fedex{--fa:"\f797"}.fa-fedora{--fa:"\f798"}.fa-figma{--fa:"\f799"}.fa-intercom{--fa:"\f7af"}.fa-invision{--fa:"\f7b0"}.fa-jira{--fa:"\f7b1"}.fa-mendeley{--fa:"\f7b3"}.fa-raspberry-pi{--fa:"\f7bb"}.fa-redhat{--fa:"\f7bc"}.fa-sketch{--fa:"\f7c6"}.fa-sourcetree{--fa:"\f7d3"}.fa-suse{--fa:"\f7d6"}.fa-ubuntu{--fa:"\f7df"}.fa-ups{--fa:"\f7e0"}.fa-usps{--fa:"\f7e1"}.fa-yarn{--fa:"\f7e3"}.fa-airbnb{--fa:"\f834"}.fa-battle-net{--fa:"\f835"}.fa-bootstrap{--fa:"\f836"}.fa-buffer{--fa:"\f837"}.fa-chromecast{--fa:"\f838"}.fa-evernote{--fa:"\f839"}.fa-itch-io{--fa:"\f83a"}.fa-salesforce{--fa:"\f83b"}.fa-speaker-deck{--fa:"\f83c"}.fa-symfony{--fa:"\f83d"}.fa-waze{--fa:"\f83f"}.fa-yammer{--fa:"\f840"}.fa-git-alt{--fa:"\f841"}.fa-stackpath{--fa:"\f842"}.fa-cotton-bureau{--fa:"\f89e"}.fa-buy-n-large{--fa:"\f8a6"}.fa-mdb{--fa:"\f8ca"}.fa-orcid{--fa:"\f8d2"}.fa-swift{--fa:"\f8e1"}.fa-umbraco{--fa:"\f8e8"}html{--pst-header-height:4rem;--pst-header-article-height:calc(var(--pst-header-height)*2/3);--pst-sidebar-secondary:17rem;--pst-font-size-base:1rem;--pst-font-size-h1:2.625rem;--pst-font-size-h2:2.125rem;--pst-font-size-h3:1.75rem;--pst-font-size-h4:1.5rem;--pst-font-size-h5:1.25rem;--pst-font-size-h6:1rem;--pst-font-size-milli:0.9rem;--pst-sidebar-font-size:0.9rem;--pst-sidebar-font-size-mobile:1.1rem;--pst-sidebar-header-font-size:1.2rem;--pst-sidebar-header-font-weight:600;--pst-admonition-font-weight-heading:600;--pst-font-weight-caption:300;--pst-font-weight-heading:600;--pst-font-family-base-system:system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--pst-font-family-monospace-system:ui-monospace,"Cascadia Code","Source Code Pro","Menlo","Consolas","DejaVu Sans Mono",monospace;--pst-font-family-base:var(--pst-font-family-base-system);--pst-font-family-heading:var(--pst-font-family-base-system);--pst-font-family-monospace:var(--pst-font-family-monospace-system);--pst-font-size-icon:1.5rem;--pst-icon-check-circle:"";--pst-icon-info-circle:"";--pst-icon-exclamation-triangle:"";--pst-icon-exclamation-circle:"";--pst-icon-times-circle:"";--pst-icon-lightbulb:"";--pst-icon-download:"";--pst-icon-angle-left:"";--pst-icon-angle-right:"";--pst-icon-external-link:"";--pst-icon-search-minus:"";--pst-icon-github:"";--pst-icon-gitlab:"";--pst-icon-share:"";--pst-icon-bell:"";--pst-icon-pencil:"";--pst-breadcrumb-divider:"";--pst-icon-admonition-default:var(--pst-icon-bell);--pst-icon-admonition-note:var(--pst-icon-info-circle);--pst-icon-admonition-attention:var(--pst-icon-exclamation-circle);--pst-icon-admonition-caution:var(--pst-icon-exclamation-triangle);--pst-icon-admonition-warning:var(--pst-icon-exclamation-triangle);--pst-icon-admonition-danger:var(--pst-icon-exclamation-triangle);--pst-icon-admonition-error:var(--pst-icon-times-circle);--pst-icon-admonition-hint:var(--pst-icon-lightbulb);--pst-icon-admonition-tip:var(--pst-icon-lightbulb);--pst-icon-admonition-important:var(--pst-icon-exclamation-circle);--pst-icon-admonition-seealso:var(--pst-icon-share);--pst-icon-admonition-todo:var(--pst-icon-pencil);--pst-icon-versionmodified-default:var(--pst-icon-exclamation-circle);--pst-icon-versionmodified-added:var(--pst-icon-exclamation-circle);--pst-icon-versionmodified-changed:var(--pst-icon-exclamation-circle);--pst-icon-versionmodified-deprecated:var(--pst-icon-exclamation-circle);--pst-icon-versionmodified-removed:var(--pst-icon-exclamation-circle);font-size:var(--pst-font-size-base);scroll-padding-top:calc(var(--pst-header-height) + 1rem)}body{background-color:var(--pst-color-background);color:var(--pst-color-text-base);display:flex;flex-direction:column;font-family:var(--pst-font-family-base);font-weight:400;line-height:1.65;min-height:100vh}body::-webkit-scrollbar-track{background-color:var(--pst-color-background)}p{font-size:1em;margin-bottom:1.15rem}p.rubric{border-bottom:1px solid var(--pst-color-border)}p.centered{text-align:center}a{color:var(--pst-color-link);overflow-wrap:break-word;text-decoration:underline;text-decoration-thickness:max(1px,.0625rem);text-underline-offset:.1578em}a:hover{color:var(--pst-color-link-hover);text-decoration-skip-ink:none;text-decoration-thickness:max(3px,.1875rem,.12em)}a:active,a:visited{color:var(--pst-color-link)}a:visited:hover{color:var(--pst-color-link-hover)}a.headerlink{color:var(--pst-color-secondary);font-size:.8em;margin-left:.2em;padding:0 4px;text-decoration:none;user-select:none}a.github:before,a.gitlab:before{color:var(--pst-color-text-muted);font:var(--fa-font-brands);margin-right:.25rem}a.github:before{content:var(--pst-icon-github)}a.gitlab:before{content:var(--pst-icon-gitlab)}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:var(--pst-font-family-heading);font-weight:var(--pst-font-weight-heading);line-height:1.15;margin:2.75rem 0 1.05rem}.h1,h1{font-size:var(--pst-font-size-h1);margin-top:0}.h1,.h2,h1,h2{color:var(--pst-heading-color,--pst-color-heading)}.h2,h2{font-size:var(--pst-font-size-h2)}.h3,h3{font-size:var(--pst-font-size-h3)}.h3,.h4,h3,h4{color:var(--pst-heading-color,--pst-color-heading)}.h4,h4{font-size:var(--pst-font-size-h4)}.h5,h5{font-size:var(--pst-font-size-h5)}.h5,.h6,h5,h6{color:var(--pst-color-text-base)}.h6,h6{font-size:var(--pst-font-size-h6)}.small,.text_small,small{font-size:var(--pst-font-size-milli)}hr{border:0;border-top:1px solid var(--pst-color-border)}code,kbd,pre,samp{font-family:var(--pst-font-family-monospace)}kbd{background-color:var(--pst-color-on-background);color:var(--pst-color-text-muted)}kbd:not(.compound){border:1px solid var(--pst-color-border);box-shadow:1px 1px 1px var(--pst-color-shadow);margin:0 .1rem;padding:.1rem .4rem}code{color:var(--pst-color-inline-code)}pre{background-color:var(--pst-color-surface);border:1px solid var(--pst-color-border);border-radius:.25rem;color:var(--pst-color-text-base);line-height:1.2em;margin:1.5em 0;padding:1rem}pre .linenos{opacity:.8;padding-right:10px}#pst-back-to-top{background-color:var(--pst-color-secondary);border:none;color:var(--pst-color-secondary-text);display:none;left:50vw;position:fixed;top:90vh;transform:translate(-50%);z-index:1080}#pst-back-to-top .fa-arrow-up{margin-inline-end:.5em}#pst-back-to-top:hover{background-color:var(--pst-color-secondary-highlight);color:var(--pst-color-link-hover);color:var(--pst-color-secondary-highlight-text);text-decoration:underline;text-decoration-skip-ink:none;text-decoration-thickness:max(1px,.0625rem);text-decoration-thickness:max(3px,.1875rem,.12em);text-decoration-thickness:1px;text-underline-offset:.1578em}#pst-back-to-top:focus-visible{box-shadow:none;outline:var(--pst-color-accent) solid .1875rem;outline-color:var(--pst-color-secondary);outline-offset:.1875rem}:focus-visible{box-shadow:none;outline:var(--pst-color-accent) solid .1875rem}.skip-link{background-color:var(--pst-color-warning);border-bottom:1px solid var(--pst-color-border);left:0;padding:.5rem;position:fixed;right:0;text-align:center;top:0;transform:translateY(-100%);transition:transform .15s ease-in-out;z-index:1055}.skip-link:focus-within{transform:translateY(0)}.skip-link a{color:var(--pst-color-warning-text)!important}.skip-link a:focus-visible{outline-color:#14181e}.bd-container{display:flex;flex-grow:1;justify-content:center}.bd-container .bd-container__inner{display:flex}.bd-page-width{width:100%}@media (min-width:960px){.bd-page-width{max-width:88rem}}.pst-async-banner-revealer{height:0;overflow:hidden;transition:height .3s ease-in-out}@media (prefers-reduced-motion){.pst-async-banner-revealer{transition:none}}#bd-header-version-warning,.bd-header-announcement{align-items:center;display:flex;justify-content:center;min-height:3rem;padding:.5rem 12.5%;position:relative;text-align:center;width:100%}@media (max-width:959.98px){#bd-header-version-warning,.bd-header-announcement{padding:.5rem 2%}}#bd-header-version-warning p,.bd-header-announcement p{font-weight:700;margin:0}#bd-header-version-warning a,.bd-header-announcement a{color:var(--pst-color-link-higher-contrast)}#bd-header-version-warning a:hover,.bd-header-announcement a:hover{color:var(--pst-color-link-hover);cursor:pointer;text-decoration:underline;text-decoration-skip-ink:none;text-decoration-thickness:max(1px,.0625rem);text-decoration-thickness:max(3px,.1875rem,.12em);text-underline-offset:.1578em}#bd-header-version-warning .pst-button-link-to-stable-version,.bd-header-announcement .pst-button-link-to-stable-version{background-color:var(--pst-color-danger);border-color:var(--pst-color-danger);border-radius:.25rem;box-shadow:0 .2rem .5rem var(--pst-color-shadow),0 0 .0625rem var(--pst-color-shadow)!important;color:var(--pst-color-danger-text)}#bd-header-version-warning .pst-button-link-to-stable-version:hover,.bd-header-announcement .pst-button-link-to-stable-version:hover{background-color:var(--pst-color-danger-highlight);border-color:var(--pst-color-danger-highlight);color:var(--pst-color-link-hover);color:var(--pst-color-danger-highlight-text);text-decoration:underline;text-decoration-skip-ink:none;text-decoration-thickness:max(1px,.0625rem);text-decoration-thickness:max(3px,.1875rem,.12em);text-decoration-thickness:1px;text-underline-offset:.1578em}#bd-header-version-warning .pst-button-link-to-stable-version:focus-visible,.bd-header-announcement .pst-button-link-to-stable-version:focus-visible{outline:.1875rem solid var(--pst-color-danger);outline-offset:.1875rem}.bd-header-announcement{background-color:var(--pst-color-secondary-bg)}#bd-header-version-warning{background-color:var(--pst-color-danger-bg)}.bd-main{display:flex;flex-direction:column;flex-grow:1;min-width:0}.bd-main .bd-content{display:flex;height:100%;justify-content:center}.bd-main .bd-content .bd-article-container{display:flex;flex-direction:column;justify-content:start;max-width:60em;overflow-x:auto;padding:1rem;width:100%}@media (min-width:1200px){.bd-main .bd-content .bd-article-container .bd-article{padding-left:2rem;padding-top:1.5rem}}.bd-main .bd-content .bd-article-container .bd-article :target>:is(h1,.h1,h2,.h2,h3,.h3,h4,.h4,h5,.h5){background-color:var(--pst-color-target)}.bd-main .bd-content .bd-article-container .bd-article :is(h1,.h1,h2,.h2,h3,.h3,h4,.h4,h5,.h5,h6,.h6)>code{display:inline-block}.bd-footer{border-top:1px solid var(--pst-color-border);width:100%}.bd-footer .bd-footer__inner{display:flex;flex-grow:1;margin:auto;padding:1rem}.bd-footer .footer-items__center,.bd-footer .footer-items__end,.bd-footer .footer-items__start{display:flex;flex-direction:column;flex-grow:1;gap:.5rem;justify-content:center}.bd-footer .footer-items__center{text-align:center}.bd-footer .footer-items__end{text-align:end}.bd-footer .footer-item p{margin-bottom:0}.bd-footer-article{margin-top:auto}.bd-footer-article .footer-article-items{display:flex;flex-direction:column}.bd-footer-content .footer-content-items{display:flex;flex-direction:column;margin-top:auto}.pst-sticky-header{position:sticky;top:0;z-index:1030}.pst-sticky-header .bd-header{position:static}.bd-header{background-color:var(--pst-color-on-background)!important;box-shadow:0 .125rem .25rem 0 var(--pst-color-shadow);justify-content:center;max-width:100vw;padding:0;position:sticky;top:0;width:100%;z-index:1030}.bd-header .bd-header__inner{align-items:center;display:flex;height:fit-content;padding-left:1rem;padding-right:1rem}.bd-header :focus-visible{border-radius:.125rem}.bd-header .navbar-item{align-items:center;display:flex;height:var(--pst-header-height);max-height:var(--pst-header-height)}.bd-header .navbar-header-items{display:none;flex-shrink:1}@media (min-width:960px){.bd-header .navbar-header-items{display:inherit;flex-grow:1;padding:0 0 0 .5rem}}.bd-header .navbar-header-items__center,.bd-header .navbar-header-items__end,.bd-header .navbar-header-items__start{align-items:center;display:flex;flex-flow:wrap;row-gap:0}.bd-header .navbar-header-items__center,.bd-header .navbar-header-items__end{column-gap:1.12rem}.bd-header .navbar-header-items__start{flex-shrink:0;gap:.5rem;margin-right:auto}.bd-header .navbar-header-items__end{justify-content:end}.bd-header ul.navbar-nav{display:flex}@media (min-width:960px){.bd-header ul.navbar-nav{align-items:baseline}}.bd-header ul.navbar-nav>li.nav-item{margin-inline:2px}.bd-header ul.navbar-nav>li.nav-item>.nav-link{color:var(--pst-color-text-muted);padding-inline:6px;position:relative}.bd-header ul.navbar-nav>li.nav-item>.nav-link:before{background-color:transparent;content:"";display:block;inset:0;bottom:calc(max(3px, .1875rem, .12em)*-1);margin:max(3px,.1875rem,.12em) 0;position:absolute}.bd-header ul.navbar-nav>li.nav-item>.nav-link:hover{color:var(--pst-color-secondary);text-decoration:none}.bd-header ul.navbar-nav>li.nav-item>.nav-link:hover:before{border-bottom:max(3px,.1875rem,.12em) solid var(--pst-color-secondary)}.bd-header ul.navbar-nav>li.nav-item>.nav-link:focus-visible{box-shadow:none;outline:3px solid var(--pst-color-accent);outline-offset:.1875rem}.bd-header ul.navbar-nav>li.nav-item.current>.nav-link{color:var(--pst-color-primary)}.bd-header ul.navbar-nav>li.nav-item.current>.nav-link:before{border-bottom:3px solid var(--pst-color-primary)}.bd-header ul.navbar-nav>li.nav-item.dropdown{margin-inline:4px}.bd-header ul.navbar-nav>li.nav-item.dropdown button{padding-inline:8px}.bd-header ul.navbar-nav>li.nav-item.dropdown>.dropdown-toggle{border-radius:.125rem;color:var(--pst-color-text-muted)}.bd-header ul.navbar-nav>li.nav-item.dropdown>.dropdown-toggle:focus-visible{box-shadow:0 0 0 .1875rem var(--pst-color-accent)}.bd-header ul.navbar-nav>li.nav-item.dropdown>.dropdown-toggle:hover{box-shadow:0 0 0 .1875rem var(--pst-color-link-hover);color:var(--pst-color-text-base);text-decoration:none}.bd-header ul.navbar-nav li a.nav-link.dropdown-item{color:var(--pst-color-text-muted);text-decoration:none}.bd-header ul.navbar-nav li a.nav-link.dropdown-item:hover{color:var(--pst-color-link-hover);text-decoration:underline;text-decoration-skip-ink:none;text-decoration-thickness:max(1px,.0625rem);text-decoration-thickness:max(3px,.1875rem,.12em);text-underline-offset:.1578em}.bd-header ul.navbar-nav .dropdown button{border:none;display:unset}.bd-header ul.navbar-nav .dropdown button:hover{color:var(--pst-color-link-hover);text-decoration:underline;text-decoration-skip-ink:none;text-decoration-thickness:max(1px,.0625rem);text-decoration-thickness:max(3px,.1875rem,.12em);text-underline-offset:.1578em}.bd-header ul.navbar-nav .dropdown .dropdown-menu{background-color:var(--pst-color-on-background);border:1px solid var(--pst-color-border);box-shadow:0 0 .3rem .1rem var(--pst-color-shadow);margin:.5rem 0;min-width:20rem;padding:.5rem 0;z-index:1070}.bd-header ul.navbar-nav .dropdown .dropdown-menu .dropdown-item{padding:.25rem 1.5rem}.bd-header ul.navbar-nav .dropdown .dropdown-menu .dropdown-item:focus:not(:hover,:active){background-color:inherit}.bd-header ul.navbar-nav .dropdown .dropdown-menu .dropdown-item:focus-visible{z-index:10}.bd-header ul.navbar-nav .dropdown .dropdown-menu:not(.show){display:none}.bd-header button.sidebar-toggle{background-color:inherit;color:var(--pst-color-muted);font-size:var(--pst-font-size-icon);margin-bottom:0;padding:.5rem}.bd-header button.primary-toggle{margin-right:1rem}@media (min-width:960px){.bd-header button.primary-toggle{display:none}}.bd-header button.secondary-toggle{margin-left:1rem}@media (min-width:1200px){.bd-header button.secondary-toggle{display:none}}@media (min-width:960px){.navbar-center-items .navbar-item{display:inline-block}}.nav-link{transition:none}.nav-link:hover{color:var(--pst-color-link-hover);text-decoration:underline;text-decoration-skip-ink:none;text-decoration-thickness:max(1px,.0625rem);text-decoration-thickness:max(3px,.1875rem,.12em);text-underline-offset:.1578em}.nav-link.nav-external:after{content:var(--pst-icon-external-link);font:var(--fa-font-solid);font-size:.75em;margin-left:.3em}.bd-navbar-elements li.nav-item i{font-size:.7rem;padding-left:2px;vertical-align:middle}.navbar-persistent--mobile{margin-left:auto}@media (min-width:960px){.navbar-persistent--mobile{display:none}}.navbar-persistent--container{display:none}@media (min-width:960px){.navbar-persistent--container{display:flex}}.header-article__inner{padding:0 .5rem}.header-article__inner .header-article-item{min-height:var(--pst-header-article-height)}.header-article__inner .header-article-items__end{margin-left:auto}.bd-sidebar-primary{background-color:var(--pst-color-background);border-right:1px solid var(--pst-color-border);display:flex;flex:0 0 auto;flex-direction:column;font-size:var(--pst-sidebar-font-size-mobile);gap:1rem;max-height:calc(100vh - var(--pst-header-height));overflow:hidden auto;padding:1rem;position:sticky;top:var(--pst-header-height);width:25%}@media (min-width:960px){.bd-sidebar-primary{font-size:var(--pst-sidebar-font-size)}}.bd-sidebar-primary :focus-visible{border-radius:.125rem}.bd-sidebar-primary .nav-link{font-size:var(--pst-sidebar-font-size-mobile)}.bd-sidebar-primary.no-sidebar{border-right:0}@media (min-width:960px){.bd-sidebar-primary.hide-on-wide{display:none}}.bd-sidebar-primary .h1,.bd-sidebar-primary .h2,.bd-sidebar-primary .h3,.bd-sidebar-primary .h4,.bd-sidebar-primary h1,.bd-sidebar-primary h2,.bd-sidebar-primary h3,.bd-sidebar-primary h4{color:var(--pst-color-text-base)}.bd-sidebar-primary .sidebar-primary-items__end .sidebar-primary-item,.bd-sidebar-primary .sidebar-primary-items__start .sidebar-primary-item{padding:.5rem 0}.bd-sidebar-primary .sidebar-header-items{display:flex;flex-direction:column}.bd-sidebar-primary .sidebar-header-items .sidebar-header-items__title{color:var(--pst-color-text-base);font-size:var(--pst-sidebar-header-font-size);font-weight:var(--pst-sidebar-header-font-weight);margin-bottom:.5rem}.bd-sidebar-primary .sidebar-header-items .bd-navbar-elements .nav-link:focus-visible{box-shadow:none;outline:var(--pst-color-accent) solid .1875rem;outline-offset:.1875rem}.bd-sidebar-primary .sidebar-header-items .sidebar-header-items__center{display:flex;flex-direction:column}.bd-sidebar-primary .sidebar-header-items .sidebar-header-items__end{align-items:center;display:flex;gap:1rem}@media (min-width:960px){.bd-sidebar-primary .sidebar-header-items{display:none}}.bd-sidebar-primary .sidebar-primary-items__start{border-top:1px solid var(--pst-color-border)}@media (min-width:960px){.bd-sidebar-primary .sidebar-primary-items__start{border-top:none}}.bd-sidebar-primary .sidebar-primary-items__end{margin-bottom:1em;margin-top:auto}.bd-sidebar-primary .list-caption{list-style:none;padding-left:0}.bd-sidebar-primary .list-caption li.toctree-l0.has-children>details>summary{align-items:baseline;display:flex;height:auto;justify-content:space-between;position:relative;width:auto}.bd-sidebar-primary .list-caption li.toctree-l0.has-children>details>summary .toctree-toggle{flex:0 0 auto}.bd-sidebar-primary .list-caption li.toctree-l0.has-children>details>summary .toctree-toggle .fa-chevron-down{font-size:1rem}.bd-sidebar-primary li.has-children{position:relative}.bd-sidebar-primary li.has-children .caption,.bd-sidebar-primary li.has-children>.reference{margin-right:calc(30px + .1875rem);padding-top:.25rem}.bd-sidebar-primary li.has-children>details>summary{list-style:none}.bd-sidebar-primary li.has-children>details>summary::-webkit-details-marker{display:none}.bd-sidebar-primary li.has-children>details>summary:focus-visible{outline:none}.bd-sidebar-primary li.has-children>details>summary:focus-visible>.toctree-toggle{outline:var(--pst-color-accent) solid .1875rem;outline-offset:-.1875rem}.bd-sidebar-primary li.has-children>details>summary .toctree-toggle{align-items:center;cursor:pointer;display:inline-flex;height:30px;justify-content:center;position:absolute;right:0;top:0;width:30px}.bd-sidebar-primary li.has-children>details>summary .toctree-toggle .fa-chevron-down{font-size:.75rem}.bd-sidebar-primary li.has-children>details[open]>summary .fa-chevron-down{transform:rotate(180deg)}nav.bd-links{margin-right:-1rem}@media (min-width:960px){nav.bd-links{display:block}}nav.bd-links ul{display:block;list-style:none}nav.bd-links ul ul{padding:0 0 0 1rem}nav.bd-links li>a{box-shadow:none;color:var(--pst-color-text-muted);display:block;margin-right:.1875rem;padding:.25rem .65rem;text-decoration:none}nav.bd-links li>a:hover{background-color:transparent;text-decoration:underline;text-decoration-skip-ink:none;text-decoration-thickness:max(3px,.1875rem,.12em)}nav.bd-links li>a:active,nav.bd-links li>a:hover{color:var(--pst-color-link-hover)}nav.bd-links li>a:focus-visible{box-shadow:0 0 0 .1875rem var(--pst-color-accent);outline:none;z-index:10}nav.bd-links li>a.reference.external:after{content:var(--pst-icon-external-link);font:var(--fa-font-solid);font-size:.75em;margin-left:.3em}nav.bd-links .current>a{background-color:transparent;box-shadow:inset max(3px,.1875rem,.12em) 0 0 var(--pst-color-primary);color:var(--pst-color-primary);font-weight:600}nav.bd-links .current>a:focus-visible{box-shadow:inset max(3px,.1875rem,.12em) 0 0 var(--pst-color-primary),0 0 0 .1875rem var(--pst-color-accent);outline:none}nav.bd-links p.bd-links__title{font-size:var(--pst-sidebar-header-font-size)}nav.bd-links p.bd-links__title,nav.bd-links p.caption{font-weight:var(--pst-sidebar-header-font-weight);margin-bottom:.5rem}nav.bd-links p.caption{color:var(--pst-color-text-base);font-size:var(--pst-sidebar-font-size-mobile);margin-top:1.25rem;position:relative}nav.bd-links p.caption:first-child{margin-top:0}@media (min-width:960px){nav.bd-links p.caption{font-size:var(--pst-sidebar-font-size)}}.bd-sidebar-secondary{background-color:var(--pst-color-background);display:flex;flex-direction:column;flex-shrink:0;font-size:var(--pst-sidebar-font-size-mobile);max-height:calc(100vh - var(--pst-header-height));order:2;overflow-y:auto;padding:2rem 1rem 1rem;position:sticky;top:var(--pst-header-height);width:var(--pst-sidebar-secondary)}@media (min-width:1200px){.bd-sidebar-secondary{font-size:var(--pst-sidebar-font-size)}}.sidebar-secondary-item{padding:.5rem}@media (min-width:1200px){.sidebar-secondary-item{border-left:1px solid var(--pst-color-border);padding-left:1rem}}.sidebar-secondary-item i{padding-right:.5rem}.bd-sidebar::backdrop{background-color:#000;opacity:.5}@media (max-width:959.98px){.bd-sidebar-primary{border:0;flex-grow:0.75;height:100dvh;left:0;margin-left:-75%;max-height:100dvh;max-width:350px;position:fixed;top:0;transition:visibility .2s ease-out,margin .2s ease-out;visibility:hidden;width:75%;z-index:1055}}.bd-sidebar-primary[open]{margin-left:0;visibility:visible}@media (max-width:1199.98px){.bd-sidebar-secondary{border:0;flex-grow:0.75;height:100dvh;margin-right:-75%;max-height:100dvh;max-width:350px;position:fixed;right:0;top:0;transition:visibility .2s ease-out,margin .2s ease-out;visibility:hidden;width:75%;z-index:1055}}.bd-sidebar-secondary[open]{margin-right:0;visibility:visible}ul.bd-breadcrumbs{display:flex;flex-wrap:wrap;font-size:.8rem;list-style:none;padding-left:0}ul.bd-breadcrumbs li.breadcrumb-item{align-items:center;display:flex;font-weight:700;overflow-x:hidden;white-space:nowrap}ul.bd-breadcrumbs li.breadcrumb-item .ellipsis,ul.bd-breadcrumbs li.breadcrumb-item a{margin:.1875rem;overflow-x:hidden;text-overflow:ellipsis}ul.bd-breadcrumbs li.breadcrumb-item a{color:var(--pst-color-text-muted);text-decoration:none}ul.bd-breadcrumbs li.breadcrumb-item a:hover{color:var(--pst-color-link-hover);text-decoration:underline;text-decoration-skip-ink:none;text-decoration-thickness:max(1px,.0625rem);text-decoration-thickness:max(3px,.1875rem,.12em);text-underline-offset:.1578em}ul.bd-breadcrumbs li.breadcrumb-item:not(.breadcrumb-home):before{color:var(--pst-color-text-muted);content:var(--pst-breadcrumb-divider);font:var(--fa-font-solid);font-size:.8rem;padding:0 .5rem}html .pst-navbar-icon{align-items:center;border:none;border-radius:0;box-sizing:border-box;color:var(--pst-color-text-muted);display:flex;font-size:1rem;height:2.15rem;justify-content:center;line-height:1.65;min-height:24px;min-width:24px;padding:.25rem 0;position:relative}html .pst-navbar-icon:before{background-color:transparent;content:"";display:block;inset:0;bottom:calc(max(3px, .1875rem, .12em)*-1);margin:max(3px,.1875rem,.12em) 0;position:absolute}html .pst-navbar-icon:hover{color:var(--pst-color-secondary);text-decoration:none}html .pst-navbar-icon:hover:before{border-bottom:max(3px,.1875rem,.12em) solid var(--pst-color-secondary)}html .pst-navbar-icon:focus-visible{box-shadow:none;outline:3px solid var(--pst-color-accent);outline-offset:.1875rem}ul.navbar-icon-links{align-items:center;column-gap:1.12rem;display:flex;flex-flow:row wrap;justify-content:space-evenly;list-style:none;margin-bottom:0;padding-left:0}ul.navbar-icon-links svg.fa-brands,ul.navbar-icon-links svg.fa-regular,ul.navbar-icon-links svg.fa-solid{font-size:var(--pst-font-size-icon);font-style:normal;vertical-align:middle}ul.navbar-icon-links img.icon-link-image{border-radius:.2rem;height:1.5em}ul.navbar-icon-links .fa-pydata{stroke:var(--pst-color-background);stroke-linejoin:round;stroke-width:.35}.navbar-brand{align-items:center;display:flex;flex-shrink:0;gap:.5rem;height:var(--pst-header-height);margin:0;max-height:var(--pst-header-height);padding:.5rem 0;position:relative;width:auto}.navbar-brand p{color:var(--pst-color-text-base);margin-bottom:0}.navbar-brand img{height:100%;max-width:100%;width:auto}.navbar-brand:hover,.navbar-brand:visited:hover{color:var(--pst-color-link-hover);color:var(--pst-color-text-base);text-decoration:underline;text-decoration-skip-ink:none;text-decoration-thickness:max(1px,.0625rem);text-decoration-thickness:max(3px,.1875rem,.12em);text-underline-offset:.1578em}ul.navbar-nav ul{padding:0 0 0 1rem}ul.navbar-nav li{display:flex;flex-direction:column}ul.navbar-nav li a{align-items:center;color:var(--pst-color-text-muted);display:flex;height:100%;padding-bottom:.25rem;padding-top:.25rem;text-decoration:none}ul.navbar-nav li a:hover{color:var(--pst-color-link-hover);text-decoration:underline;text-decoration-skip-ink:none;text-decoration-thickness:max(1px,.0625rem);text-decoration-thickness:max(3px,.1875rem,.12em);text-underline-offset:.1578em}.page-toc .section-nav{border-bottom:none;padding-left:0}.page-toc .section-nav ul{padding-left:1rem}.page-toc .nav-link{font-size:var(--pst-sidebar-font-size-mobile)}@media (min-width:1200px){.page-toc .nav-link{font-size:var(--pst-sidebar-font-size)}}.page-toc .onthispage{color:var(--pst-color-text-base);font-weight:var(--pst-sidebar-header-font-weight);margin-bottom:.5rem}.prev-next-area{width:100%}.prev-next-area p{color:var(--pst-color-text-muted);line-height:1.3em;margin:0 .3em}.prev-next-area i{font-size:1.2em}.prev-next-area a{align-items:center;border:none;color:var(--pst-color-text-muted);display:flex;max-width:45%;overflow-x:hidden;padding:10px;text-decoration:none}.prev-next-area a p.prev-next-title{color:var(--pst-color-link);font-size:1.1em;font-weight:var(--pst-admonition-font-weight-heading);overflow-wrap:break-word;text-decoration:underline;text-decoration-thickness:max(1px,.0625rem);text-underline-offset:.1578em}.prev-next-area a p.prev-next-title:hover{color:var(--pst-color-link-hover);text-decoration-skip-ink:none;text-decoration-thickness:max(3px,.1875rem,.12em)}.prev-next-area a p.prev-next-title:active,.prev-next-area a p.prev-next-title:visited{color:var(--pst-color-link)}.prev-next-area a p.prev-next-title:visited:hover{color:var(--pst-color-link-hover)}.prev-next-area a:hover p.prev-next-title,.prev-next-area a:visited:hover p.prev-next-title{color:var(--pst-color-link-hover);text-decoration:underline;text-decoration-skip-ink:none;text-decoration-thickness:max(1px,.0625rem);text-decoration-thickness:max(3px,.1875rem,.12em);text-underline-offset:.1578em}.prev-next-area a .prev-next-info{flex-direction:column;margin:0 .5em}.prev-next-area a .prev-next-info .prev-next-subtitle{text-transform:capitalize}.prev-next-area a.left-prev{float:left}.prev-next-area a.right-next{float:right}.prev-next-area a.right-next div.prev-next-info{text-align:right}.bd-search{border:1px solid var(--pst-color-border);border-radius:.25rem;color:var(--pst-color-text-base);gap:.5rem;padding-left:.5rem;position:relative}.bd-search,.bd-search:active{background-color:var(--pst-color-background)}.bd-search:active{color:var(--pst-color-text-muted)}.bd-search:focus-within{box-shadow:0 0 0 .1875rem var(--pst-color-accent)}.bd-search:focus-within input:focus{box-shadow:none}.bd-search .icon{color:var(--pst-color-border);left:25px;position:absolute}.bd-search .fa-solid.fa-magnifying-glass{color:var(--pst-color-text-muted);left:calc(1.25rem - .35em);position:absolute}.bd-search input.form-control{background-color:var(--pst-color-background);border:none;color:var(--pst-color-text-base)}.bd-search input.form-control::placeholder{color:var(--pst-color-text-muted)}.bd-search input.form-control::-webkit-search-cancel-button,.bd-search input.form-control::-webkit-search-decoration{appearance:none}.bd-search input.form-control:focus,.bd-search input.form-control:focus-visible{color:var(--pst-color-text-muted)}.bd-search .search-button__kbd-shortcut{color:var(--pst-color-border);display:none;margin-inline-end:.5rem}@media (min-width:720px){.bd-search .search-button__kbd-shortcut{display:flex}}.search-button i{font-size:1.3rem}#pst-search-dialog[open]{background-color:transparent;border:none;margin:15vh auto 0;max-height:80vh;max-width:800px;padding:.1875rem;width:90%}#pst-search-dialog[open]::backdrop{background-color:#000;opacity:.5}#pst-search-dialog[open] form.bd-search{flex-grow:0}#pst-search-dialog[open] form.bd-search input,#pst-search-dialog[open] form.bd-search svg{font-size:var(--pst-font-size-icon)}#pst-search-dialog[open] #search-results{background-color:var(--pst-color-background);overflow-y:scroll;padding:1em}#pst-search-dialog[open] #search-results a{color:var(--pst-color-link)}#pst-search-dialog[open] #search-results.empty{display:none}.search-button-field{align-items:center;background-color:var(--pst-color-surface);border:1px solid var(--pst-color-border);border-radius:1.5em;color:var(--pst-color-text-muted);display:inline-flex;padding:.5em}.search-button-field:hover{box-shadow:0 0 0 .1875rem var(--pst-color-link-hover)}.search-button-field:focus-visible{border-radius:1.5em}.search-button-field .search-button__default-text{font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);margin-left:.5em;margin-right:.5em}.search-button-field .kbd-shortcut__modifier{font-size:.75em}.search-button-field>*{align-items:center}.search-button-field>:not(svg){display:none}@media (min-width:960px){.search-button-field>:not(svg){display:flex}}div#searchbox p.highlight-link{box-shadow:0 .2rem .5rem var(--pst-color-shadow),0 0 .0625rem var(--pst-color-shadow)!important;margin:1rem 0;width:fit-content}@media (min-width:1200px){div#searchbox p.highlight-link{margin-left:2rem}}div#searchbox p.highlight-link a{background-color:var(--pst-color-primary);border-radius:.25rem;color:var(--pst-color-primary-text);font-size:1.25rem;padding:.75rem;text-decoration:none;transition:box-shadow .25s ease-out}div#searchbox p.highlight-link a:hover{box-shadow:inset 0 0 50px 50px rgba(0,0,0,.25)}div#searchbox p.highlight-link a:before{color:unset;content:var(--pst-icon-search-minus);font:var(--fa-font-solid);margin-right:.5rem}.bd-sidebar-primary .sidebar-primary-item.pst-sidebar-collapse{padding-top:0}.bd-sidebar-primary #pst-collapse-sidebar-button{align-items:center;background-color:transparent;border:0;bottom:.2em;display:flex;flex-direction:row;gap:.25rem;min-height:24px;min-width:24px;outline-offset:.125rem;padding:0;position:relative;text-align:start}@media (max-width:959.98px){.bd-sidebar-primary #pst-collapse-sidebar-button{display:none}}.bd-sidebar-primary #pst-collapse-sidebar-button .pst-icon{color:var(--pst-color-link);height:1.3em;padding:.4em 0}.bd-sidebar-primary #pst-collapse-sidebar-button .pst-collapse-sidebar-label{color:var(--pst-color-link);height:100%;overflow-wrap:break-word;text-decoration:underline;text-decoration-thickness:max(1px,.0625rem);text-underline-offset:.1578em;width:100%}.bd-sidebar-primary #pst-collapse-sidebar-button .pst-collapse-sidebar-label:hover{color:var(--pst-color-link-hover);text-decoration-skip-ink:none;text-decoration-thickness:max(3px,.1875rem,.12em)}.bd-sidebar-primary #pst-collapse-sidebar-button .pst-collapse-sidebar-label:active,.bd-sidebar-primary #pst-collapse-sidebar-button .pst-collapse-sidebar-label:visited{color:var(--pst-color-link)}.bd-sidebar-primary #pst-collapse-sidebar-button .pst-collapse-sidebar-label:visited:hover{color:var(--pst-color-link-hover)}.bd-sidebar-primary #pst-collapse-sidebar-button .pst-expand-sidebar-label{height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;width:1px!important;clip:rect(0,0,0,0)!important;border:0!important;visibility:hidden;white-space:nowrap!important}.bd-sidebar-primary #pst-collapse-sidebar-button .pst-expand-sidebar-label:not(caption){position:absolute!important}.bd-sidebar-primary #pst-collapse-sidebar-button:hover .pst-icon{color:var(--pst-color-link-hover)}.bd-sidebar-primary #pst-collapse-sidebar-button:hover .pst-collapse-sidebar-label{color:var(--pst-color-link-hover);text-decoration:underline;text-decoration-skip-ink:none;text-decoration-thickness:max(1px,.0625rem);text-decoration-thickness:max(3px,.1875rem,.12em);text-underline-offset:.1578em}@media (prefers-reduced-motion:no-preference){.bd-sidebar-primary{transition:width .4s ease}.bd-sidebar-primary #pst-collapse-sidebar-button .pst-icon{transition:transform .4s ease,padding .4s ease}.bd-sidebar-primary.pst-squeeze .pst-collapse-sidebar-label{transition:opacity .4s linear,visibility 0s linear .4s,width 0s linear .4s,height 0s linear .4s}.bd-sidebar-primary.pst-squeeze .sidebar-primary-item:not(.pst-sidebar-collapse){transition:opacity .4s linear,visibility 0s linear .4s}.bd-sidebar-primary.pst-squeeze .pst-expand-sidebar-label{transition:visibility 0s linear .4s}.bd-sidebar-primary:not(.pst-squeeze) .pst-collapse-sidebar-label{transition:opacity .4s linear,visibility 0s linear "0s",width 0s linear "0s",height 0s linear "0s"}.bd-sidebar-primary:not(.pst-squeeze) .sidebar-primary-item:not(.pst-sidebar-collapse){transition:opacity .4s linear,visibility 0s linear "0s"}.bd-sidebar-primary:not(.pst-squeeze) .pst-expand-sidebar-label{transition:visibility 0s linear "0s"}}.bd-sidebar-primary.pst-squeeze{overflow:hidden;width:4rem}.bd-sidebar-primary.pst-squeeze #pst-collapse-sidebar-button .pst-icon{transform:translateX(.25em) rotate(180deg)}.bd-sidebar-primary.pst-squeeze #pst-collapse-sidebar-button .pst-collapse-sidebar-label{height:0;opacity:0;visibility:hidden;width:0}.bd-sidebar-primary.pst-squeeze #pst-collapse-sidebar-button .pst-expand-sidebar-label{visibility:visible}.bd-sidebar-primary.pst-squeeze .sidebar-primary-item:not(.pst-sidebar-collapse){opacity:0;visibility:hidden}.bd-sidebar-primary:not(.pst-squeeze) .pst-expand-sidebar-label{visibility:hidden}.theme-switch-button .theme-switch{display:none}.theme-switch-button .theme-switch .fa-lg{aspect-ratio:1/1}.theme-switch-button .theme-switch.fa-moon{transform:scaleX(.871459695) scaleY(.8748241913)}html[data-mode=auto] .theme-switch-button .theme-switch[data-mode=auto],html[data-mode=dark] .theme-switch-button .theme-switch[data-mode=dark],html[data-mode=light] .theme-switch-button .theme-switch[data-mode=light]{display:inline}button.btn.version-switcher__button{border-color:var(--pst-color-border);color:var(--pst-color-text-base);margin-bottom:1em}@media (min-width:960px){button.btn.version-switcher__button{margin-bottom:unset}}button.btn.version-switcher__button:hover{border-color:transparent;box-shadow:0 0 0 .1875rem var(--pst-color-secondary)}button.btn.version-switcher__button:active{border-color:var(--pst-color-border);color:var(--pst-color-text-base)}button.btn.version-switcher__button:focus-visible{border-color:transparent}.version-switcher__menu{border-color:var(--pst-color-border);border-radius:var(--bs-dropdown-border-radius)}.version-switcher__menu a.list-group-item{background-color:var(--pst-color-on-background);color:var(--pst-color-text-base);padding:.75rem 1.25rem}.version-switcher__menu a.list-group-item:not(:last-child){border-bottom:1px solid var(--pst-color-border)}.version-switcher__menu a.list-group-item:hover{background-color:var(--pst-color-surface);color:var(--pst-color-link-hover);text-decoration:underline;text-decoration-skip-ink:none;text-decoration-thickness:max(1px,.0625rem);text-decoration-thickness:max(3px,.1875rem,.12em);text-underline-offset:.1578em}.version-switcher__menu a.list-group-item.active{box-shadow:inset max(3px,.1875rem,.12em) 0 0 var(--pst-color-primary);color:var(--pst-color-primary);font-weight:600;position:relative;z-index:1}.version-switcher__menu a.list-group-item.active:focus-visible{box-shadow:inset max(3px,.1875rem,.12em) 0 0 var(--pst-color-primary),0 0 0 .1875rem var(--pst-color-accent);outline:none}.version-switcher__menu a.list-group-item.active span:before{content:"";height:100%;left:0;position:absolute;top:0;width:100%;z-index:-1}.version-switcher__menu a.list-group-item:focus-visible{z-index:10}.version-switcher__menu,button.version-switcher__button{box-sizing:border-box;font-size:1.1em;min-height:24px;min-width:24px;z-index:1055}@media (min-width:960px){.version-switcher__menu,button.version-switcher__button{font-size:unset}}nav.page-toc{margin-bottom:1rem}.bd-toc .nav .nav{display:none}.bd-toc .nav .nav.pst-show_toc_level,.bd-toc .nav>.active>ul,.toc-entry{display:block}.toc-entry a.nav-link,.toc-entry a>code{color:var(--pst-color-text-muted)}.toc-entry a.nav-link{display:block;margin-left:-1rem;padding:.25rem 0 .25rem 1rem;text-decoration:none}.toc-entry a.nav-link:hover{background-color:transparent;text-decoration:underline;text-decoration-skip-ink:none;text-decoration-thickness:max(3px,.1875rem,.12em)}.toc-entry a.nav-link:active,.toc-entry a.nav-link:hover{color:var(--pst-color-link-hover)}.toc-entry a.nav-link:focus-visible{box-shadow:0 0 0 .1875rem var(--pst-color-accent);outline:none;z-index:10}.toc-entry a.nav-link.active,.toc-entry a.nav-link[aria-current=true]{background-color:transparent;box-shadow:inset max(3px,.1875rem,.12em) 0 0 var(--pst-color-primary);color:var(--pst-color-primary);font-weight:600}.toc-entry a.nav-link.active:focus-visible,.toc-entry a.nav-link[aria-current=true]:focus-visible{box-shadow:inset max(3px,.1875rem,.12em) 0 0 var(--pst-color-primary),0 0 0 .1875rem var(--pst-color-accent);outline:none}.toc-entry a.nav-link.active:hover,.toc-entry a.nav-link[aria-current=true]:hover{color:var(--pst-color-link-hover)}.toc-entry a.nav-link:focus-visible{border-radius:.125rem}div.deprecated,div.versionadded,div.versionchanged,div.versionremoved{background-color:var(--pst-color-on-background);border-left:.2rem solid;border-color:var(--pst-color-info);border-radius:.25rem;box-shadow:0 .2rem .5rem var(--pst-color-shadow),0 0 .0625rem var(--pst-color-shadow)!important;break-inside:avoid;margin:1.5625em auto;overflow:hidden;padding:0 .6rem;position:relative;vertical-align:middle}div.deprecated>p,div.versionadded>p,div.versionchanged>p,div.versionremoved>p{margin-bottom:.6rem;margin-top:.6rem}div.deprecated a,div.versionadded a,div.versionchanged a,div.versionremoved a{color:var(--pst-color-link-higher-contrast)}div.versionadded{background-color:var(--pst-color-success-bg);border-color:var(--pst-color-success)}div.versionchanged{background-color:var(--pst-color-warning-bg);border-color:var(--pst-color-warning)}html[data-theme=dark] div.versionchanged a{color:#abdde6}div.deprecated,div.versionremoved{background-color:var(--pst-color-danger-bg);border-color:var(--pst-color-danger)}span.versionmodified{font-weight:600}span.versionmodified:before{color:var(--pst-color-info);content:var(--pst-icon-versionmodified-default);font:var(--fa-font-solid);margin-right:.6rem}span.versionmodified.added:before{color:var(--pst-color-success);content:var(--pst-icon-versionmodified-added)}span.versionmodified.changed:before{color:var(--pst-color-warning);content:var(--pst-icon-versionmodified-changed)}span.versionmodified.deprecated:before{color:var(--pst-color-danger);content:var(--pst-icon-versionmodified-deprecated)}span.versionmodified.removed:before{color:var(--pst-color-danger);content:var(--pst-icon-versionmodified-removed)}.sidebar-indices-items{border-top:1px solid var(--pst-color-border);display:flex;flex-direction:column}@media (min-width:960px){.sidebar-indices-items{border-top:none}}.sidebar-indices-items .sidebar-indices-items__title{color:var(--pst-color-text-base);font-size:var(--pst-sidebar-header-font-size);font-weight:var(--pst-sidebar-header-font-weight);margin-bottom:.5rem}.sidebar-indices-items ul.indices-link{list-style:none;margin-right:-1rem;padding:0}.sidebar-indices-items ul.indices-link li>a{color:var(--pst-color-text-muted);display:block;padding:.25rem 0}.sidebar-indices-items ul.indices-link li>a:hover{background-color:transparent;color:var(--pst-color-primary);text-decoration:none}.admonition,div.admonition{background-color:var(--pst-color-on-background);border-left:.2rem solid;border-color:var(--pst-color-info);border-radius:.25rem;box-shadow:0 .2rem .5rem var(--pst-color-shadow),0 0 .0625rem var(--pst-color-shadow)!important;break-inside:avoid;margin:1.5625em auto;overflow:hidden;padding:0 .6rem .8rem}.admonition :last-child,div.admonition :last-child{margin-bottom:0}.admonition p.admonition-title~*,div.admonition p.admonition-title~*{margin-left:1.4rem;margin-right:1.4rem}.admonition>ol,.admonition>ul,div.admonition>ol,div.admonition>ul{margin-left:1em}.admonition>.admonition-title,div.admonition>.admonition-title{background-color:var(--pst-color-info-bg);font-weight:var(--pst-admonition-font-weight-heading);margin:0 -.6rem;padding:.4rem .6rem .4rem 2rem;position:relative;z-index:1}.admonition>.admonition-title:before,div.admonition>.admonition-title:before{content:"";height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:-1}.admonition>.admonition-title:after,div.admonition>.admonition-title:after{color:var(--pst-color-info);content:var(--pst-icon-admonition-default);font:var(--fa-font-solid);height:1rem;left:0;line-height:inherit;margin:0 .5rem;opacity:1;position:absolute;top:.4rem;width:1rem}.admonition>.admonition-title+*,div.admonition>.admonition-title+*{margin-top:.4em}.admonition.attention,div.admonition.attention{border-color:var(--pst-color-attention)}.admonition.attention>.admonition-title,div.admonition.attention>.admonition-title{background-color:var(--pst-color-attention-bg)}.admonition.attention>.admonition-title:after,div.admonition.attention>.admonition-title:after{color:var(--pst-color-attention);content:var(--pst-icon-admonition-attention)}.admonition.caution,div.admonition.caution{border-color:var(--pst-color-warning)}.admonition.caution>.admonition-title,div.admonition.caution>.admonition-title{background-color:var(--pst-color-warning-bg)}.admonition.caution>.admonition-title:after,div.admonition.caution>.admonition-title:after{color:var(--pst-color-warning);content:var(--pst-icon-admonition-caution)}.admonition.warning,div.admonition.warning{border-color:var(--pst-color-warning)}.admonition.warning>.admonition-title,div.admonition.warning>.admonition-title{background-color:var(--pst-color-warning-bg)}.admonition.warning>.admonition-title:after,div.admonition.warning>.admonition-title:after{color:var(--pst-color-warning);content:var(--pst-icon-admonition-warning)}.admonition.danger,div.admonition.danger{border-color:var(--pst-color-danger)}.admonition.danger>.admonition-title,div.admonition.danger>.admonition-title{background-color:var(--pst-color-danger-bg)}.admonition.danger>.admonition-title:after,div.admonition.danger>.admonition-title:after{color:var(--pst-color-danger);content:var(--pst-icon-admonition-danger)}.admonition.error,div.admonition.error{border-color:var(--pst-color-danger)}.admonition.error>.admonition-title,div.admonition.error>.admonition-title{background-color:var(--pst-color-danger-bg)}.admonition.error>.admonition-title:after,div.admonition.error>.admonition-title:after{color:var(--pst-color-danger);content:var(--pst-icon-admonition-error)}.admonition.hint,div.admonition.hint{border-color:var(--pst-color-success)}.admonition.hint>.admonition-title,div.admonition.hint>.admonition-title{background-color:var(--pst-color-success-bg)}.admonition.hint>.admonition-title:after,div.admonition.hint>.admonition-title:after{color:var(--pst-color-success);content:var(--pst-icon-admonition-hint)}.admonition.tip,div.admonition.tip{border-color:var(--pst-color-success)}.admonition.tip>.admonition-title,div.admonition.tip>.admonition-title{background-color:var(--pst-color-success-bg)}.admonition.tip>.admonition-title:after,div.admonition.tip>.admonition-title:after{color:var(--pst-color-success);content:var(--pst-icon-admonition-tip)}.admonition.important,div.admonition.important{border-color:var(--pst-color-attention)}.admonition.important>.admonition-title,div.admonition.important>.admonition-title{background-color:var(--pst-color-attention-bg)}.admonition.important>.admonition-title:after,div.admonition.important>.admonition-title:after{color:var(--pst-color-attention);content:var(--pst-icon-admonition-important)}.admonition.note,div.admonition.note{border-color:var(--pst-color-info)}.admonition.note>.admonition-title,div.admonition.note>.admonition-title{background-color:var(--pst-color-info-bg)}.admonition.note>.admonition-title:after,div.admonition.note>.admonition-title:after{color:var(--pst-color-info);content:var(--pst-icon-admonition-note)}.admonition.seealso,div.admonition.seealso{border-color:var(--pst-color-success)}.admonition.seealso>.admonition-title,div.admonition.seealso>.admonition-title{background-color:var(--pst-color-success-bg)}.admonition.seealso>.admonition-title:after,div.admonition.seealso>.admonition-title:after{color:var(--pst-color-success);content:var(--pst-icon-admonition-seealso)}.admonition.admonition-todo,div.admonition.admonition-todo{border-color:var(--pst-color-secondary)}.admonition.admonition-todo>.admonition-title,div.admonition.admonition-todo>.admonition-title{background-color:var(--pst-color-secondary-bg)}.admonition.admonition-todo>.admonition-title:after,div.admonition.admonition-todo>.admonition-title:after{color:var(--pst-color-secondary);content:var(--pst-icon-admonition-todo)}.admonition.sidebar,div.admonition.sidebar{border-width:0 0 0 .2rem;clear:both;float:right;margin-left:.5rem;margin-top:0;max-width:40%}.admonition.sidebar.attention,.admonition.sidebar.important,div.admonition.sidebar.attention,div.admonition.sidebar.important{border-color:var(--pst-color-attention)}.admonition.sidebar.caution,.admonition.sidebar.warning,div.admonition.sidebar.caution,div.admonition.sidebar.warning{border-color:var(--pst-color-warning)}.admonition.sidebar.danger,.admonition.sidebar.error,div.admonition.sidebar.danger,div.admonition.sidebar.error{border-color:var(--pst-color-danger)}.admonition.sidebar.hint,.admonition.sidebar.seealso,.admonition.sidebar.tip,div.admonition.sidebar.hint,div.admonition.sidebar.seealso,div.admonition.sidebar.tip{border-color:var(--pst-color-success)}.admonition.sidebar.note,.admonition.sidebar.todo,div.admonition.sidebar.note,div.admonition.sidebar.todo{border-color:var(--pst-color-info)}.admonition.sidebar p.admonition-title~*,div.admonition.sidebar p.admonition-title~*{margin-left:0;margin-right:0}aside.topic,div.topic,div.topic.contents,nav.contents{background-color:var(--pst-color-surface);border-color:var(--pst-color-border);border-radius:.25rem;box-shadow:0 .2rem .5rem var(--pst-color-shadow),0 0 .0625rem var(--pst-color-shadow)!important;display:flex;flex-direction:column;padding:1rem 1.25rem}aside.topic .topic-title,div.topic .topic-title,div.topic.contents .topic-title,nav.contents .topic-title{margin:0 0 .5rem}aside.topic p,div.topic p,div.topic.contents p,nav.contents p{color:var(--pst-color-on-surface)!important}aside.topic a,div.topic a,div.topic.contents a,nav.contents a{color:var(--pst-color-link-higher-contrast)}aside.topic ul.simple,div.topic ul.simple,div.topic.contents ul.simple,nav.contents ul.simple{padding-left:1rem}aside.topic ul.simple ul,div.topic ul.simple ul,div.topic.contents ul.simple ul,nav.contents ul.simple ul{padding-left:2em}aside.sidebar{background-color:var(--pst-color-surface);border:1px solid var(--pst-color-border);border-radius:.25rem;margin-left:.5rem;padding:0}aside.sidebar>:last-child{padding-bottom:1rem}aside.sidebar p.sidebar-title{border-bottom:1px solid var(--pst-color-border);font-family:var(--pst-font-family-heading);font-weight:var(--pst-admonition-font-weight-heading);margin-bottom:0;padding-bottom:.5rem;padding-top:.5rem;position:relative}aside.sidebar>:not(.sidebar-title):first-child,aside.sidebar>p.sidebar-title+*{margin-top:1rem}aside.sidebar>*{padding-left:1rem;padding-right:1rem}p.rubric{display:flex;flex-direction:column}.seealso dd{margin-bottom:0;margin-top:0}table.field-list{border-collapse:separate;border-spacing:10px;margin-left:1px}table.field-list th.field-name{background-color:var(--pst-color-surface);padding:1px 8px 1px 5px;white-space:nowrap}table.field-list td.field-body p{font-style:italic}table.field-list td.field-body p>strong{font-style:normal}table.field-list td.field-body blockquote{border-left:none;margin:0 0 .3em;padding-left:30px}.table.autosummary td:first-child{white-space:nowrap}.sig{font-family:var(--pst-font-family-monospace)}.sig-inline.c-texpr,.sig-inline.cpp-texpr{font-family:unset}.sig.c .k,.sig.c .kt,.sig.c .m,.sig.c .s,.sig.c .sc,.sig.cpp .k,.sig.cpp .kt,.sig.cpp .m,.sig.cpp .s,.sig.cpp .sc{color:var(--pst-color-text-base)}.sig-name{color:var(--pst-color-inline-code)}.sig-param .default_value,.sig-param .o{color:var(--pst-color-text-muted);font-weight:400}dt:target,span.highlighted{background-color:var(--pst-color-target)}.viewcode-back{font-family:var(--pst-font-family-base)}.viewcode-block:target{background-color:var(--pst-color-target);border-bottom:1px solid var(--pst-color-border);border-top:1px solid var(--pst-color-border);position:relative}dl>dt>a:has(.viewcode-link){float:right}dl>dt>a:has(.viewcode-link) .viewcode-link{float:none}dl[class]:not(.option-list,.field-list,.footnote,.glossary,.simple){margin-bottom:3rem}dl[class]:not(.option-list,.field-list,.footnote,.glossary,.simple) dd{margin-left:2rem}dl[class]:not(.option-list,.field-list,.footnote,.glossary,.simple) dd>dl.simple>dt{display:flex}dl[class]:not(.option-list,.field-list,.footnote,.glossary,.simple) dl.field-list{display:grid;grid-template-columns:unset}dl[class]:not(.option-list,.field-list,.footnote,.glossary,.simple) dt.field-even,dl[class]:not(.option-list,.field-list,.footnote,.glossary,.simple) dt.field-odd{background-color:var(--pst-color-surface);margin-bottom:.1rem;margin-top:.2rem}div.highlight,div.literal-block-wrapper,div[class*=highlight-]{border-radius:.25rem;break-inside:avoid;display:flex;flex-direction:column;width:unset}div.literal-block-wrapper{border:1px solid var(--pst-color-border);border-radius:.25rem}div.literal-block-wrapper div.code-block-caption{border-bottom:1px solid var(--pst-color-border);font-size:1rem;font-weight:var(--pst-font-weight-caption);margin:0;padding:.5rem}div.literal-block-wrapper div.code-block-caption a.headerlink{font-size:inherit}div.literal-block-wrapper div[class*=highlight-]{border-radius:0;margin:0}div.literal-block-wrapper div[class*=highlight-] pre{border:none;box-shadow:none}code.literal{background-color:var(--pst-color-surface);border:1px solid var(--pst-color-border);border-radius:.25rem;padding:.1rem .25rem}a>code{color:var(--pst-color-link-higher-contrast)}a:hover>code{color:var(--pst-color-link-hover)}span.linenos{opacity:.8!important}figure>a,figure>a>img,figure>img,figure>video{display:block;margin-left:auto;margin-right:auto}figure a.headerlink{font-size:inherit;position:absolute}figure:hover a.headerlink{visibility:visible}figure figcaption{color:var(--pst-color-text-muted);font-family:var(--pst-font-family-heading);font-weight:var(--pst-font-weight-caption);margin-left:auto;margin-right:auto;margin-top:.3rem;text-align:center}figure figcaption>p:last-child{margin-bottom:0}figure figcaption p{display:inline-block;text-align:start}figure figcaption table.table{margin-left:auto;margin-right:auto;width:fit-content}dt.label>span.brackets:not(:only-child):before{content:"["}dt.label>span.brackets:not(:only-child):after{content:"]"}a.footnote-reference{font-size:small;vertical-align:super}aside.footnote{margin-bottom:.5rem}aside.footnote:last-child{margin-bottom:1rem}aside.footnote span.backrefs,aside.footnote span.label{font-weight:700}aside.footnote:target{background-color:var(--pst-color-target)}div.doctest>div.highlight span.gp,span.linenos,table.highlighttable td.linenos{user-select:none}dd{margin-bottom:10px;margin-left:30px;margin-top:3px}ol,ul{padding-inline-start:2rem}ol li>p:first-child,ul li>p:first-child{margin-bottom:.25rem;margin-top:.25rem}blockquote{background-color:var(--pst-color-surface);border-left:.25em solid var(--pst-color-blockquote-notch);border-radius:.25rem;color:var(--pst-color-text-muted);padding:1em;position:relative}blockquote p{color:var(--pst-color-text-base)}blockquote .line-block{margin:0}blockquote p:last-child{margin-bottom:0}blockquote:before{content:"";height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%}blockquote a{color:var(--pst-color-link-higher-contrast)}blockquote:before{z-index:-1}span.guilabel{font-size:80%}span.guilabel,span.menuselection{background-color:var(--pst-color-info-bg);border:1px solid var(--pst-color-info);border-radius:4px;font-weight:700;margin:auto 2px;padding:2.4px 6px;position:relative}span.guilabel:before,span.menuselection:before{content:"";height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:-1}a.reference.download:before{color:var(--pst-color-text-muted);content:var(--pst-icon-download);font:var(--fa-font-solid);font-size:.8em;padding:0 .25em}table{margin-left:auto;margin-right:auto}table.table-right{margin-right:0}table.table-left{margin-left:0}table caption{caption-side:top;color:var(--pst-color-text-muted);text-align:center}td.text-left,th.text-left{text-align:left}td.text-right,th.text-right{text-align:right}td.text-center,th.text-center{text-align:center}.table{border:1px solid var(--pst-color-table-outer-border);color:var(--pst-color-table);--bs-table-bg:transparent;--bs-table-color:var( + */:host,:root{--fa-family-brands:"Font Awesome 7 Brands";--fa-font-brands:normal 400 1em/1 var(--fa-family-brands)}@font-face{font-display:block;font-family:Font Awesome\ 7 Brands;font-style:normal;font-weight:400;src:url(../vendor/fontawesome/webfonts/fa-brands-400.woff2)}.fa-brands,.fa-classic.fa-brands,.fab{--fa-family:var(--fa-family-brands);--fa-style:400}.fa-firefox-browser{--fa:"\e007"}.fa-ideal{--fa:"\e013"}.fa-microblog{--fa:"\e01a"}.fa-pied-piper-square,.fa-square-pied-piper{--fa:"\e01e"}.fa-unity{--fa:"\e049"}.fa-dailymotion{--fa:"\e052"}.fa-instagram-square,.fa-square-instagram{--fa:"\e055"}.fa-mixer{--fa:"\e056"}.fa-shopify{--fa:"\e057"}.fa-deezer{--fa:"\e077"}.fa-edge-legacy{--fa:"\e078"}.fa-google-pay{--fa:"\e079"}.fa-rust{--fa:"\e07a"}.fa-tiktok{--fa:"\e07b"}.fa-unsplash{--fa:"\e07c"}.fa-cloudflare{--fa:"\e07d"}.fa-guilded{--fa:"\e07e"}.fa-hive{--fa:"\e07f"}.fa-42-group,.fa-innosoft{--fa:"\e080"}.fa-instalod{--fa:"\e081"}.fa-octopus-deploy{--fa:"\e082"}.fa-perbyte{--fa:"\e083"}.fa-uncharted{--fa:"\e084"}.fa-watchman-monitoring{--fa:"\e087"}.fa-wodu{--fa:"\e088"}.fa-wirsindhandwerk,.fa-wsh{--fa:"\e2d0"}.fa-bots{--fa:"\e340"}.fa-cmplid{--fa:"\e360"}.fa-bilibili{--fa:"\e3d9"}.fa-golang{--fa:"\e40f"}.fa-pix{--fa:"\e43a"}.fa-sitrox{--fa:"\e44a"}.fa-hashnode{--fa:"\e499"}.fa-meta{--fa:"\e49b"}.fa-padlet{--fa:"\e4a0"}.fa-nfc-directional{--fa:"\e530"}.fa-nfc-symbol{--fa:"\e531"}.fa-screenpal{--fa:"\e570"}.fa-space-awesome{--fa:"\e5ac"}.fa-square-font-awesome{--fa:"\e5ad"}.fa-gitlab-square,.fa-square-gitlab{--fa:"\e5ae"}.fa-odysee{--fa:"\e5c6"}.fa-stubber{--fa:"\e5c7"}.fa-debian{--fa:"\e60b"}.fa-shoelace{--fa:"\e60c"}.fa-threads{--fa:"\e618"}.fa-square-threads{--fa:"\e619"}.fa-square-x-twitter{--fa:"\e61a"}.fa-x-twitter{--fa:"\e61b"}.fa-opensuse{--fa:"\e62b"}.fa-letterboxd{--fa:"\e62d"}.fa-square-letterboxd{--fa:"\e62e"}.fa-mintbit{--fa:"\e62f"}.fa-google-scholar{--fa:"\e63b"}.fa-brave{--fa:"\e63c"}.fa-brave-reverse{--fa:"\e63d"}.fa-pixiv{--fa:"\e640"}.fa-upwork{--fa:"\e641"}.fa-webflow{--fa:"\e65c"}.fa-signal-messenger{--fa:"\e663"}.fa-bluesky{--fa:"\e671"}.fa-jxl{--fa:"\e67b"}.fa-square-upwork{--fa:"\e67c"}.fa-web-awesome{--fa:"\e682"}.fa-square-web-awesome{--fa:"\e683"}.fa-square-web-awesome-stroke{--fa:"\e684"}.fa-dart-lang{--fa:"\e693"}.fa-flutter{--fa:"\e694"}.fa-files-pinwheel{--fa:"\e69f"}.fa-css{--fa:"\e6a2"}.fa-square-bluesky{--fa:"\e6a3"}.fa-openai{--fa:"\e7cf"}.fa-square-linkedin{--fa:"\e7d0"}.fa-cash-app{--fa:"\e7d4"}.fa-disqus{--fa:"\e7d5"}.fa-11ty,.fa-eleventy{--fa:"\e7d6"}.fa-kakao-talk{--fa:"\e7d7"}.fa-linktree{--fa:"\e7d8"}.fa-notion{--fa:"\e7d9"}.fa-pandora{--fa:"\e7da"}.fa-pixelfed{--fa:"\e7db"}.fa-tidal{--fa:"\e7dc"}.fa-vsco{--fa:"\e7dd"}.fa-w3c{--fa:"\e7de"}.fa-lumon{--fa:"\e7e2"}.fa-lumon-drop{--fa:"\e7e3"}.fa-square-figma{--fa:"\e7e4"}.fa-tex{--fa:"\e7ff"}.fa-duolingo{--fa:"\e812"}.fa-supportnow{--fa:"\e833"}.fa-tor-browser{--fa:"\e838"}.fa-typescript{--fa:"\e840"}.fa-square-deskpro{--fa:"\e844"}.fa-circle-zulip{--fa:"\e851"}.fa-julia{--fa:"\e852"}.fa-zulip{--fa:"\e853"}.fa-unison{--fa:"\e854"}.fa-bgg,.fa-board-game-geek{--fa:"\e855"}.fa-ko-fi{--fa:"\e856"}.fa-kubernetes{--fa:"\e857"}.fa-postgresql{--fa:"\e858"}.fa-scaleway{--fa:"\e859"}.fa-venmo{--fa:"\e85a"}.fa-venmo-v{--fa:"\e85b"}.fa-unreal-engine{--fa:"\e85c"}.fa-globaleaks{--fa:"\e85d"}.fa-solana{--fa:"\e85e"}.fa-threema{--fa:"\e85f"}.fa-forgejo{--fa:"\e860"}.fa-claude{--fa:"\e861"}.fa-gitee{--fa:"\e863"}.fa-xmpp{--fa:"\e864"}.fa-fediverse{--fa:"\e865"}.fa-tailwind-css{--fa:"\e866"}.fa-arch-linux{--fa:"\e867"}.fa-svelte{--fa:"\e868"}.fa-hugging-face{--fa:"\e869"}.fa-leetcode{--fa:"\e86a"}.fa-openstreetmap{--fa:"\e86b"}.fa-ultralytics{--fa:"\e86d"}.fa-ultralytics-hub{--fa:"\e86e"}.fa-ultralytics-yolo{--fa:"\e86f"}.fa-obsidian{--fa:"\e879"}.fa-zoom{--fa:"\e87b"}.fa-vim{--fa:"\e88a"}.fa-symfonycasts{--fa:"\e8ab"}.fa-square-twitter,.fa-twitter-square{--fa:"\f081"}.fa-facebook-square,.fa-square-facebook{--fa:"\f082"}.fa-linkedin{--fa:"\f08c"}.fa-github-square,.fa-square-github{--fa:"\f092"}.fa-twitter{--fa:"\f099"}.fa-facebook{--fa:"\f09a"}.fa-github{--fa:"\f09b"}.fa-pinterest{--fa:"\f0d2"}.fa-pinterest-square,.fa-square-pinterest{--fa:"\f0d3"}.fa-google-plus-square,.fa-square-google-plus{--fa:"\f0d4"}.fa-google-plus-g{--fa:"\f0d5"}.fa-linkedin-in{--fa:"\f0e1"}.fa-github-alt{--fa:"\f113"}.fa-maxcdn{--fa:"\f136"}.fa-html5{--fa:"\f13b"}.fa-css3{--fa:"\f13c"}.fa-btc{--fa:"\f15a"}.fa-youtube{--fa:"\f167"}.fa-xing{--fa:"\f168"}.fa-square-xing,.fa-xing-square{--fa:"\f169"}.fa-dropbox{--fa:"\f16b"}.fa-stack-overflow{--fa:"\f16c"}.fa-instagram{--fa:"\f16d"}.fa-flickr{--fa:"\f16e"}.fa-adn{--fa:"\f170"}.fa-bitbucket{--fa:"\f171"}.fa-tumblr{--fa:"\f173"}.fa-square-tumblr,.fa-tumblr-square{--fa:"\f174"}.fa-apple{--fa:"\f179"}.fa-windows{--fa:"\f17a"}.fa-android{--fa:"\f17b"}.fa-linux{--fa:"\f17c"}.fa-dribbble{--fa:"\f17d"}.fa-skype{--fa:"\f17e"}.fa-foursquare{--fa:"\f180"}.fa-trello{--fa:"\f181"}.fa-gratipay{--fa:"\f184"}.fa-vk{--fa:"\f189"}.fa-weibo{--fa:"\f18a"}.fa-renren{--fa:"\f18b"}.fa-pagelines{--fa:"\f18c"}.fa-stack-exchange{--fa:"\f18d"}.fa-square-vimeo,.fa-vimeo-square{--fa:"\f194"}.fa-slack,.fa-slack-hash{--fa:"\f198"}.fa-wordpress{--fa:"\f19a"}.fa-openid{--fa:"\f19b"}.fa-yahoo{--fa:"\f19e"}.fa-google{--fa:"\f1a0"}.fa-reddit{--fa:"\f1a1"}.fa-reddit-square,.fa-square-reddit{--fa:"\f1a2"}.fa-stumbleupon-circle{--fa:"\f1a3"}.fa-stumbleupon{--fa:"\f1a4"}.fa-delicious{--fa:"\f1a5"}.fa-digg{--fa:"\f1a6"}.fa-pied-piper-pp{--fa:"\f1a7"}.fa-pied-piper-alt{--fa:"\f1a8"}.fa-drupal{--fa:"\f1a9"}.fa-joomla{--fa:"\f1aa"}.fa-behance{--fa:"\f1b4"}.fa-behance-square,.fa-square-behance{--fa:"\f1b5"}.fa-steam{--fa:"\f1b6"}.fa-square-steam,.fa-steam-square{--fa:"\f1b7"}.fa-spotify{--fa:"\f1bc"}.fa-deviantart{--fa:"\f1bd"}.fa-soundcloud{--fa:"\f1be"}.fa-vine{--fa:"\f1ca"}.fa-codepen{--fa:"\f1cb"}.fa-jsfiddle{--fa:"\f1cc"}.fa-rebel{--fa:"\f1d0"}.fa-empire{--fa:"\f1d1"}.fa-git-square,.fa-square-git{--fa:"\f1d2"}.fa-git{--fa:"\f1d3"}.fa-hacker-news{--fa:"\f1d4"}.fa-tencent-weibo{--fa:"\f1d5"}.fa-qq{--fa:"\f1d6"}.fa-weixin{--fa:"\f1d7"}.fa-slideshare{--fa:"\f1e7"}.fa-twitch{--fa:"\f1e8"}.fa-yelp{--fa:"\f1e9"}.fa-paypal{--fa:"\f1ed"}.fa-google-wallet{--fa:"\f1ee"}.fa-cc-visa{--fa:"\f1f0"}.fa-cc-mastercard{--fa:"\f1f1"}.fa-cc-discover{--fa:"\f1f2"}.fa-cc-amex{--fa:"\f1f3"}.fa-cc-paypal{--fa:"\f1f4"}.fa-cc-stripe{--fa:"\f1f5"}.fa-lastfm{--fa:"\f202"}.fa-lastfm-square,.fa-square-lastfm{--fa:"\f203"}.fa-ioxhost{--fa:"\f208"}.fa-angellist{--fa:"\f209"}.fa-buysellads{--fa:"\f20d"}.fa-connectdevelop{--fa:"\f20e"}.fa-dashcube{--fa:"\f210"}.fa-forumbee{--fa:"\f211"}.fa-leanpub{--fa:"\f212"}.fa-sellsy{--fa:"\f213"}.fa-shirtsinbulk{--fa:"\f214"}.fa-simplybuilt{--fa:"\f215"}.fa-skyatlas{--fa:"\f216"}.fa-pinterest-p{--fa:"\f231"}.fa-whatsapp{--fa:"\f232"}.fa-viacoin{--fa:"\f237"}.fa-medium,.fa-medium-m{--fa:"\f23a"}.fa-y-combinator{--fa:"\f23b"}.fa-optin-monster{--fa:"\f23c"}.fa-opencart{--fa:"\f23d"}.fa-expeditedssl{--fa:"\f23e"}.fa-cc-jcb{--fa:"\f24b"}.fa-cc-diners-club{--fa:"\f24c"}.fa-creative-commons{--fa:"\f25e"}.fa-gg{--fa:"\f260"}.fa-gg-circle{--fa:"\f261"}.fa-odnoklassniki{--fa:"\f263"}.fa-odnoklassniki-square,.fa-square-odnoklassniki{--fa:"\f264"}.fa-get-pocket{--fa:"\f265"}.fa-wikipedia-w{--fa:"\f266"}.fa-safari{--fa:"\f267"}.fa-chrome{--fa:"\f268"}.fa-firefox{--fa:"\f269"}.fa-opera{--fa:"\f26a"}.fa-internet-explorer{--fa:"\f26b"}.fa-contao{--fa:"\f26d"}.fa-500px{--fa:"\f26e"}.fa-amazon{--fa:"\f270"}.fa-houzz{--fa:"\f27c"}.fa-vimeo-v{--fa:"\f27d"}.fa-black-tie{--fa:"\f27e"}.fa-fonticons{--fa:"\f280"}.fa-reddit-alien{--fa:"\f281"}.fa-edge{--fa:"\f282"}.fa-codiepie{--fa:"\f284"}.fa-modx{--fa:"\f285"}.fa-fort-awesome{--fa:"\f286"}.fa-usb{--fa:"\f287"}.fa-product-hunt{--fa:"\f288"}.fa-mixcloud{--fa:"\f289"}.fa-scribd{--fa:"\f28a"}.fa-bluetooth{--fa:"\f293"}.fa-bluetooth-b{--fa:"\f294"}.fa-gitlab{--fa:"\f296"}.fa-wpbeginner{--fa:"\f297"}.fa-wpforms{--fa:"\f298"}.fa-envira{--fa:"\f299"}.fa-glide{--fa:"\f2a5"}.fa-glide-g{--fa:"\f2a6"}.fa-viadeo{--fa:"\f2a9"}.fa-square-viadeo,.fa-viadeo-square{--fa:"\f2aa"}.fa-snapchat,.fa-snapchat-ghost{--fa:"\f2ab"}.fa-snapchat-square,.fa-square-snapchat{--fa:"\f2ad"}.fa-pied-piper{--fa:"\f2ae"}.fa-first-order{--fa:"\f2b0"}.fa-yoast{--fa:"\f2b1"}.fa-themeisle{--fa:"\f2b2"}.fa-google-plus{--fa:"\f2b3"}.fa-font-awesome,.fa-font-awesome-flag,.fa-font-awesome-logo-full{--fa:"\f2b4"}.fa-linode{--fa:"\f2b8"}.fa-quora{--fa:"\f2c4"}.fa-free-code-camp{--fa:"\f2c5"}.fa-telegram,.fa-telegram-plane{--fa:"\f2c6"}.fa-bandcamp{--fa:"\f2d5"}.fa-grav{--fa:"\f2d6"}.fa-etsy{--fa:"\f2d7"}.fa-imdb{--fa:"\f2d8"}.fa-ravelry{--fa:"\f2d9"}.fa-sellcast{--fa:"\f2da"}.fa-superpowers{--fa:"\f2dd"}.fa-wpexplorer{--fa:"\f2de"}.fa-meetup{--fa:"\f2e0"}.fa-font-awesome-alt,.fa-square-font-awesome-stroke{--fa:"\f35c"}.fa-accessible-icon{--fa:"\f368"}.fa-accusoft{--fa:"\f369"}.fa-adversal{--fa:"\f36a"}.fa-affiliatetheme{--fa:"\f36b"}.fa-algolia{--fa:"\f36c"}.fa-amilia{--fa:"\f36d"}.fa-angrycreative{--fa:"\f36e"}.fa-app-store{--fa:"\f36f"}.fa-app-store-ios{--fa:"\f370"}.fa-apper{--fa:"\f371"}.fa-asymmetrik{--fa:"\f372"}.fa-audible{--fa:"\f373"}.fa-avianex{--fa:"\f374"}.fa-aws{--fa:"\f375"}.fa-bimobject{--fa:"\f378"}.fa-bitcoin{--fa:"\f379"}.fa-bity{--fa:"\f37a"}.fa-blackberry{--fa:"\f37b"}.fa-blogger{--fa:"\f37c"}.fa-blogger-b{--fa:"\f37d"}.fa-buromobelexperte{--fa:"\f37f"}.fa-centercode{--fa:"\f380"}.fa-cloudscale{--fa:"\f383"}.fa-cloudsmith{--fa:"\f384"}.fa-cloudversify{--fa:"\f385"}.fa-cpanel{--fa:"\f388"}.fa-css3-alt{--fa:"\f38b"}.fa-cuttlefish{--fa:"\f38c"}.fa-d-and-d{--fa:"\f38d"}.fa-deploydog{--fa:"\f38e"}.fa-deskpro{--fa:"\f38f"}.fa-digital-ocean{--fa:"\f391"}.fa-discord{--fa:"\f392"}.fa-discourse{--fa:"\f393"}.fa-dochub{--fa:"\f394"}.fa-docker{--fa:"\f395"}.fa-draft2digital{--fa:"\f396"}.fa-dribbble-square,.fa-square-dribbble{--fa:"\f397"}.fa-dyalog{--fa:"\f399"}.fa-earlybirds{--fa:"\f39a"}.fa-erlang{--fa:"\f39d"}.fa-facebook-f{--fa:"\f39e"}.fa-facebook-messenger{--fa:"\f39f"}.fa-firstdraft{--fa:"\f3a1"}.fa-fonticons-fi{--fa:"\f3a2"}.fa-fort-awesome-alt{--fa:"\f3a3"}.fa-freebsd{--fa:"\f3a4"}.fa-gitkraken{--fa:"\f3a6"}.fa-gofore{--fa:"\f3a7"}.fa-goodreads{--fa:"\f3a8"}.fa-goodreads-g{--fa:"\f3a9"}.fa-google-drive{--fa:"\f3aa"}.fa-google-play{--fa:"\f3ab"}.fa-gripfire{--fa:"\f3ac"}.fa-grunt{--fa:"\f3ad"}.fa-gulp{--fa:"\f3ae"}.fa-hacker-news-square,.fa-square-hacker-news{--fa:"\f3af"}.fa-hire-a-helper{--fa:"\f3b0"}.fa-hotjar{--fa:"\f3b1"}.fa-hubspot{--fa:"\f3b2"}.fa-itunes{--fa:"\f3b4"}.fa-itunes-note{--fa:"\f3b5"}.fa-jenkins{--fa:"\f3b6"}.fa-joget{--fa:"\f3b7"}.fa-js{--fa:"\f3b8"}.fa-js-square,.fa-square-js{--fa:"\f3b9"}.fa-keycdn{--fa:"\f3ba"}.fa-kickstarter,.fa-square-kickstarter{--fa:"\f3bb"}.fa-kickstarter-k{--fa:"\f3bc"}.fa-laravel{--fa:"\f3bd"}.fa-line{--fa:"\f3c0"}.fa-lyft{--fa:"\f3c3"}.fa-magento{--fa:"\f3c4"}.fa-medapps{--fa:"\f3c6"}.fa-medrt{--fa:"\f3c8"}.fa-microsoft{--fa:"\f3ca"}.fa-mix{--fa:"\f3cb"}.fa-mizuni{--fa:"\f3cc"}.fa-monero{--fa:"\f3d0"}.fa-napster{--fa:"\f3d2"}.fa-node-js{--fa:"\f3d3"}.fa-npm{--fa:"\f3d4"}.fa-ns8{--fa:"\f3d5"}.fa-nutritionix{--fa:"\f3d6"}.fa-page4{--fa:"\f3d7"}.fa-palfed{--fa:"\f3d8"}.fa-patreon{--fa:"\f3d9"}.fa-periscope{--fa:"\f3da"}.fa-phabricator{--fa:"\f3db"}.fa-phoenix-framework{--fa:"\f3dc"}.fa-playstation{--fa:"\f3df"}.fa-pushed{--fa:"\f3e1"}.fa-python{--fa:"\f3e2"}.fa-red-river{--fa:"\f3e3"}.fa-rendact,.fa-wpressr{--fa:"\f3e4"}.fa-replyd{--fa:"\f3e6"}.fa-resolving{--fa:"\f3e7"}.fa-rocketchat{--fa:"\f3e8"}.fa-rockrms{--fa:"\f3e9"}.fa-schlix{--fa:"\f3ea"}.fa-searchengin{--fa:"\f3eb"}.fa-servicestack{--fa:"\f3ec"}.fa-sistrix{--fa:"\f3ee"}.fa-speakap{--fa:"\f3f3"}.fa-staylinked{--fa:"\f3f5"}.fa-steam-symbol{--fa:"\f3f6"}.fa-sticker-mule{--fa:"\f3f7"}.fa-studiovinari{--fa:"\f3f8"}.fa-supple{--fa:"\f3f9"}.fa-uber{--fa:"\f402"}.fa-uikit{--fa:"\f403"}.fa-uniregistry{--fa:"\f404"}.fa-untappd{--fa:"\f405"}.fa-ussunnah{--fa:"\f407"}.fa-vaadin{--fa:"\f408"}.fa-viber{--fa:"\f409"}.fa-vimeo{--fa:"\f40a"}.fa-vnv{--fa:"\f40b"}.fa-square-whatsapp,.fa-whatsapp-square{--fa:"\f40c"}.fa-whmcs{--fa:"\f40d"}.fa-wordpress-simple{--fa:"\f411"}.fa-xbox{--fa:"\f412"}.fa-yandex{--fa:"\f413"}.fa-yandex-international{--fa:"\f414"}.fa-apple-pay{--fa:"\f415"}.fa-cc-apple-pay{--fa:"\f416"}.fa-fly{--fa:"\f417"}.fa-node{--fa:"\f419"}.fa-osi{--fa:"\f41a"}.fa-react{--fa:"\f41b"}.fa-autoprefixer{--fa:"\f41c"}.fa-less{--fa:"\f41d"}.fa-sass{--fa:"\f41e"}.fa-vuejs{--fa:"\f41f"}.fa-angular{--fa:"\f420"}.fa-aviato{--fa:"\f421"}.fa-ember{--fa:"\f423"}.fa-gitter{--fa:"\f426"}.fa-hooli{--fa:"\f427"}.fa-strava{--fa:"\f428"}.fa-stripe{--fa:"\f429"}.fa-stripe-s{--fa:"\f42a"}.fa-typo3{--fa:"\f42b"}.fa-amazon-pay{--fa:"\f42c"}.fa-cc-amazon-pay{--fa:"\f42d"}.fa-ethereum{--fa:"\f42e"}.fa-korvue{--fa:"\f42f"}.fa-elementor{--fa:"\f430"}.fa-square-youtube,.fa-youtube-square{--fa:"\f431"}.fa-flipboard{--fa:"\f44d"}.fa-hips{--fa:"\f452"}.fa-php{--fa:"\f457"}.fa-quinscape{--fa:"\f459"}.fa-readme{--fa:"\f4d5"}.fa-java{--fa:"\f4e4"}.fa-pied-piper-hat{--fa:"\f4e5"}.fa-creative-commons-by{--fa:"\f4e7"}.fa-creative-commons-nc{--fa:"\f4e8"}.fa-creative-commons-nc-eu{--fa:"\f4e9"}.fa-creative-commons-nc-jp{--fa:"\f4ea"}.fa-creative-commons-nd{--fa:"\f4eb"}.fa-creative-commons-pd{--fa:"\f4ec"}.fa-creative-commons-pd-alt{--fa:"\f4ed"}.fa-creative-commons-remix{--fa:"\f4ee"}.fa-creative-commons-sa{--fa:"\f4ef"}.fa-creative-commons-sampling{--fa:"\f4f0"}.fa-creative-commons-sampling-plus{--fa:"\f4f1"}.fa-creative-commons-share{--fa:"\f4f2"}.fa-creative-commons-zero{--fa:"\f4f3"}.fa-ebay{--fa:"\f4f4"}.fa-keybase{--fa:"\f4f5"}.fa-mastodon{--fa:"\f4f6"}.fa-r-project{--fa:"\f4f7"}.fa-researchgate{--fa:"\f4f8"}.fa-teamspeak{--fa:"\f4f9"}.fa-first-order-alt{--fa:"\f50a"}.fa-fulcrum{--fa:"\f50b"}.fa-galactic-republic{--fa:"\f50c"}.fa-galactic-senate{--fa:"\f50d"}.fa-jedi-order{--fa:"\f50e"}.fa-mandalorian{--fa:"\f50f"}.fa-old-republic{--fa:"\f510"}.fa-phoenix-squadron{--fa:"\f511"}.fa-sith{--fa:"\f512"}.fa-trade-federation{--fa:"\f513"}.fa-wolf-pack-battalion{--fa:"\f514"}.fa-hornbill{--fa:"\f592"}.fa-mailchimp{--fa:"\f59e"}.fa-megaport{--fa:"\f5a3"}.fa-nimblr{--fa:"\f5a8"}.fa-rev{--fa:"\f5b2"}.fa-shopware{--fa:"\f5b5"}.fa-squarespace{--fa:"\f5be"}.fa-themeco{--fa:"\f5c6"}.fa-weebly{--fa:"\f5cc"}.fa-wix{--fa:"\f5cf"}.fa-ello{--fa:"\f5f1"}.fa-hackerrank{--fa:"\f5f7"}.fa-kaggle{--fa:"\f5fa"}.fa-markdown{--fa:"\f60f"}.fa-neos{--fa:"\f612"}.fa-zhihu{--fa:"\f63f"}.fa-alipay{--fa:"\f642"}.fa-the-red-yeti{--fa:"\f69d"}.fa-critical-role{--fa:"\f6c9"}.fa-d-and-d-beyond{--fa:"\f6ca"}.fa-dev{--fa:"\f6cc"}.fa-fantasy-flight-games{--fa:"\f6dc"}.fa-wizards-of-the-coast{--fa:"\f730"}.fa-think-peaks{--fa:"\f731"}.fa-reacteurope{--fa:"\f75d"}.fa-artstation{--fa:"\f77a"}.fa-atlassian{--fa:"\f77b"}.fa-canadian-maple-leaf{--fa:"\f785"}.fa-centos{--fa:"\f789"}.fa-confluence{--fa:"\f78d"}.fa-dhl{--fa:"\f790"}.fa-diaspora{--fa:"\f791"}.fa-fedex{--fa:"\f797"}.fa-fedora{--fa:"\f798"}.fa-figma{--fa:"\f799"}.fa-intercom{--fa:"\f7af"}.fa-invision{--fa:"\f7b0"}.fa-jira{--fa:"\f7b1"}.fa-mendeley{--fa:"\f7b3"}.fa-raspberry-pi{--fa:"\f7bb"}.fa-redhat{--fa:"\f7bc"}.fa-sketch{--fa:"\f7c6"}.fa-sourcetree{--fa:"\f7d3"}.fa-suse{--fa:"\f7d6"}.fa-ubuntu{--fa:"\f7df"}.fa-ups{--fa:"\f7e0"}.fa-usps{--fa:"\f7e1"}.fa-yarn{--fa:"\f7e3"}.fa-airbnb{--fa:"\f834"}.fa-battle-net{--fa:"\f835"}.fa-bootstrap{--fa:"\f836"}.fa-buffer{--fa:"\f837"}.fa-chromecast{--fa:"\f838"}.fa-evernote{--fa:"\f839"}.fa-itch-io{--fa:"\f83a"}.fa-salesforce{--fa:"\f83b"}.fa-speaker-deck{--fa:"\f83c"}.fa-symfony{--fa:"\f83d"}.fa-waze{--fa:"\f83f"}.fa-yammer{--fa:"\f840"}.fa-git-alt{--fa:"\f841"}.fa-stackpath{--fa:"\f842"}.fa-cotton-bureau{--fa:"\f89e"}.fa-buy-n-large{--fa:"\f8a6"}.fa-mdb{--fa:"\f8ca"}.fa-orcid{--fa:"\f8d2"}.fa-swift{--fa:"\f8e1"}.fa-umbraco{--fa:"\f8e8"}html{--pst-header-height:4rem;--pst-header-article-height:calc(var(--pst-header-height)*2/3);--pst-sidebar-secondary:17rem;--pst-font-size-base:1rem;--pst-font-size-h1:2.625rem;--pst-font-size-h2:2.125rem;--pst-font-size-h3:1.75rem;--pst-font-size-h4:1.5rem;--pst-font-size-h5:1.25rem;--pst-font-size-h6:1rem;--pst-font-size-milli:0.9rem;--pst-sidebar-font-size:0.9rem;--pst-sidebar-font-size-mobile:1.1rem;--pst-sidebar-header-font-size:1.2rem;--pst-sidebar-header-font-weight:600;--pst-admonition-font-weight-heading:600;--pst-font-weight-caption:300;--pst-font-weight-heading:600;--pst-font-family-base-system:system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--pst-font-family-monospace-system:ui-monospace,"Cascadia Code","Source Code Pro","Menlo","Consolas","DejaVu Sans Mono",monospace;--pst-font-family-base:var(--pst-font-family-base-system);--pst-font-family-heading:var(--pst-font-family-base-system);--pst-font-family-monospace:var(--pst-font-family-monospace-system);--pst-font-size-icon:1.5rem;--pst-icon-check-circle:"";--pst-icon-info-circle:"";--pst-icon-exclamation-triangle:"";--pst-icon-exclamation-circle:"";--pst-icon-times-circle:"";--pst-icon-lightbulb:"";--pst-icon-download:"";--pst-icon-angle-left:"";--pst-icon-angle-right:"";--pst-icon-external-link:"";--pst-icon-search-minus:"";--pst-icon-github:"";--pst-icon-gitlab:"";--pst-icon-share:"";--pst-icon-bell:"";--pst-icon-pencil:"";--pst-breadcrumb-divider:"";--pst-icon-admonition-default:var(--pst-icon-bell);--pst-icon-admonition-note:var(--pst-icon-info-circle);--pst-icon-admonition-attention:var(--pst-icon-exclamation-circle);--pst-icon-admonition-caution:var(--pst-icon-exclamation-triangle);--pst-icon-admonition-warning:var(--pst-icon-exclamation-triangle);--pst-icon-admonition-danger:var(--pst-icon-exclamation-triangle);--pst-icon-admonition-error:var(--pst-icon-times-circle);--pst-icon-admonition-hint:var(--pst-icon-lightbulb);--pst-icon-admonition-tip:var(--pst-icon-lightbulb);--pst-icon-admonition-important:var(--pst-icon-exclamation-circle);--pst-icon-admonition-seealso:var(--pst-icon-share);--pst-icon-admonition-todo:var(--pst-icon-pencil);--pst-icon-versionmodified-default:var(--pst-icon-exclamation-circle);--pst-icon-versionmodified-added:var(--pst-icon-exclamation-circle);--pst-icon-versionmodified-changed:var(--pst-icon-exclamation-circle);--pst-icon-versionmodified-deprecated:var(--pst-icon-exclamation-circle);--pst-icon-versionmodified-removed:var(--pst-icon-exclamation-circle);font-size:var(--pst-font-size-base);scroll-padding-top:calc(var(--pst-header-height) + 1rem)}body{background-color:var(--pst-color-background);color:var(--pst-color-text-base);display:flex;flex-direction:column;font-family:var(--pst-font-family-base);font-weight:400;line-height:1.65;min-height:100vh}body::-webkit-scrollbar-track{background-color:var(--pst-color-background)}p{font-size:1em;margin-bottom:1.15rem}p.rubric{border-bottom:1px solid var(--pst-color-border)}p.centered{text-align:center}a{color:var(--pst-color-link);overflow-wrap:break-word;text-decoration:underline;text-decoration-thickness:max(1px,.0625rem);text-underline-offset:.1578em}a:hover{color:var(--pst-color-link-hover);text-decoration-skip-ink:none;text-decoration-thickness:max(3px,.1875rem,.12em)}a:active,a:visited{color:var(--pst-color-link)}a:visited:hover{color:var(--pst-color-link-hover)}a.headerlink{color:var(--pst-color-secondary);font-size:.8em;margin-left:.2em;padding:0 4px;text-decoration:none;user-select:none}a.github:before,a.gitlab:before{color:var(--pst-color-text-muted);font:var(--fa-font-brands);margin-right:.25rem}a.github:before{content:var(--pst-icon-github)}a.gitlab:before{content:var(--pst-icon-gitlab)}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:var(--pst-font-family-heading);font-weight:var(--pst-font-weight-heading);line-height:1.15;margin:2.75rem 0 1.05rem}.h1,h1{font-size:var(--pst-font-size-h1);margin-top:0}.h1,.h2,h1,h2{color:var(--pst-heading-color,--pst-color-heading)}.h2,h2{font-size:var(--pst-font-size-h2)}.h3,h3{font-size:var(--pst-font-size-h3)}.h3,.h4,h3,h4{color:var(--pst-heading-color,--pst-color-heading)}.h4,h4{font-size:var(--pst-font-size-h4)}.h5,h5{font-size:var(--pst-font-size-h5)}.h5,.h6,h5,h6{color:var(--pst-color-text-base)}.h6,h6{font-size:var(--pst-font-size-h6)}.small,.text_small,small{font-size:var(--pst-font-size-milli)}hr{border:0;border-top:1px solid var(--pst-color-border)}code,kbd,pre,samp{font-family:var(--pst-font-family-monospace)}kbd{background-color:var(--pst-color-on-background);color:var(--pst-color-text-muted)}kbd:not(.compound){border:1px solid var(--pst-color-border);box-shadow:1px 1px 1px var(--pst-color-shadow);margin:0 .1rem;padding:.1rem .4rem}code{color:var(--pst-color-inline-code)}pre{background-color:var(--pst-color-surface);border:1px solid var(--pst-color-border);border-radius:.25rem;color:var(--pst-color-text-base);line-height:1.2em;margin:1.5em 0;padding:1rem}pre .linenos{opacity:.8;padding-right:10px}#pst-back-to-top{background-color:var(--pst-color-secondary);border:none;color:var(--pst-color-secondary-text);display:none;left:50vw;position:fixed;top:90vh;transform:translate(-50%);z-index:1080}#pst-back-to-top .fa-arrow-up{margin-inline-end:.5em}#pst-back-to-top:hover{background-color:var(--pst-color-secondary-highlight);color:var(--pst-color-link-hover);color:var(--pst-color-secondary-highlight-text);text-decoration:underline;text-decoration-skip-ink:none;text-decoration-thickness:max(1px,.0625rem);text-decoration-thickness:max(3px,.1875rem,.12em);text-decoration-thickness:1px;text-underline-offset:.1578em}#pst-back-to-top:focus-visible{box-shadow:none;outline:var(--pst-color-accent) solid .1875rem;outline-color:var(--pst-color-secondary);outline-offset:.1875rem}:focus-visible{box-shadow:none;outline:var(--pst-color-accent) solid .1875rem}.skip-link{background-color:var(--pst-color-warning);border-bottom:1px solid var(--pst-color-border);left:0;padding:.5rem;position:fixed;right:0;text-align:center;top:0;transform:translateY(-100%);transition:transform .15s ease-in-out;z-index:1055}.skip-link:focus-within{transform:translateY(0)}.skip-link a{color:var(--pst-color-warning-text)!important}.skip-link a:focus-visible{outline-color:#14181e}.bd-container{display:flex;flex-grow:1;justify-content:center}.bd-container .bd-container__inner{display:flex}.bd-page-width{width:100%}@media (min-width:960px){.bd-page-width{max-width:88rem}}.pst-async-banner-revealer{height:0;overflow:hidden;transition:height .3s ease-in-out}@media (prefers-reduced-motion){.pst-async-banner-revealer{transition:none}}#bd-header-version-warning,.bd-header-announcement{align-items:center;display:flex;justify-content:center;min-height:3rem;padding:.5rem 12.5%;position:relative;text-align:center;width:100%}@media (max-width:959.98px){#bd-header-version-warning,.bd-header-announcement{padding:.5rem 2%}}#bd-header-version-warning p,.bd-header-announcement p{font-weight:700;margin:0}#bd-header-version-warning a,.bd-header-announcement a{color:var(--pst-color-link-higher-contrast)}#bd-header-version-warning a:hover,.bd-header-announcement a:hover{color:var(--pst-color-link-hover);cursor:pointer;text-decoration:underline;text-decoration-skip-ink:none;text-decoration-thickness:max(1px,.0625rem);text-decoration-thickness:max(3px,.1875rem,.12em);text-underline-offset:.1578em}#bd-header-version-warning .pst-button-link-to-stable-version,.bd-header-announcement .pst-button-link-to-stable-version{background-color:var(--pst-color-danger);border-color:var(--pst-color-danger);border-radius:.25rem;box-shadow:0 .2rem .5rem var(--pst-color-shadow),0 0 .0625rem var(--pst-color-shadow)!important;color:var(--pst-color-danger-text)}#bd-header-version-warning .pst-button-link-to-stable-version:hover,.bd-header-announcement .pst-button-link-to-stable-version:hover{background-color:var(--pst-color-danger-highlight);border-color:var(--pst-color-danger-highlight);color:var(--pst-color-link-hover);color:var(--pst-color-danger-highlight-text);text-decoration:underline;text-decoration-skip-ink:none;text-decoration-thickness:max(1px,.0625rem);text-decoration-thickness:max(3px,.1875rem,.12em);text-decoration-thickness:1px;text-underline-offset:.1578em}#bd-header-version-warning .pst-button-link-to-stable-version:focus-visible,.bd-header-announcement .pst-button-link-to-stable-version:focus-visible{outline:.1875rem solid var(--pst-color-danger);outline-offset:.1875rem}.bd-header-announcement{background-color:var(--pst-color-secondary-bg)}#bd-header-version-warning{background-color:var(--pst-color-danger-bg)}.bd-main{display:flex;flex-direction:column;flex-grow:1;min-width:0}.bd-main .bd-content{display:flex;height:100%;justify-content:center}.bd-main .bd-content .bd-article-container{display:flex;flex-direction:column;justify-content:start;max-width:60em;overflow-x:auto;padding:1rem;width:100%}@media (min-width:1200px){.bd-main .bd-content .bd-article-container .bd-article{padding-left:2rem;padding-top:1.5rem}}.bd-main .bd-content .bd-article-container .bd-article :target>:is(h1,.h1,h2,.h2,h3,.h3,h4,.h4,h5,.h5){background-color:var(--pst-color-target)}.bd-main .bd-content .bd-article-container .bd-article :is(h1,.h1,h2,.h2,h3,.h3,h4,.h4,h5,.h5,h6,.h6)>code{display:inline-block}.bd-footer{border-top:1px solid var(--pst-color-border);width:100%}.bd-footer .bd-footer__inner{display:flex;flex-grow:1;margin:auto;padding:1rem}.bd-footer .footer-items__center,.bd-footer .footer-items__end,.bd-footer .footer-items__start{display:flex;flex-direction:column;flex-grow:1;gap:.5rem;justify-content:center}.bd-footer .footer-items__center{text-align:center}.bd-footer .footer-items__end{text-align:end}.bd-footer .footer-item p{margin-bottom:0}.bd-footer-article{margin-top:auto}.bd-footer-article .footer-article-items{display:flex;flex-direction:column}.bd-footer-content .footer-content-items{display:flex;flex-direction:column;margin-top:auto}.pst-sticky-header{position:sticky;top:0;z-index:1030}.pst-sticky-header .bd-header{position:static}.bd-header{background-color:var(--pst-color-on-background)!important;box-shadow:0 .125rem .25rem 0 var(--pst-color-shadow);justify-content:center;max-width:100vw;padding:0;position:sticky;top:0;width:100%;z-index:1030}.bd-header .bd-header__inner{align-items:center;display:flex;height:fit-content;padding:.5rem 1rem}.bd-header :focus-visible{border-radius:.125rem}.bd-header .navbar-item{align-items:center;display:flex}.bd-header .navbar-header-items{display:none;flex-shrink:1}@media (min-width:960px){.bd-header .navbar-header-items{display:inherit;flex-grow:1;flex-wrap:wrap;padding:0 0 0 .5rem;row-gap:.5rem}}.bd-header .navbar-header-items__center,.bd-header .navbar-header-items__end,.bd-header .navbar-header-items__start{align-items:center;display:flex;flex-flow:nowrap;row-gap:0}.bd-header .navbar-header-items__center,.bd-header .navbar-header-items__end{column-gap:1.12rem}.bd-header .navbar-header-items__start{flex-shrink:0;gap:.5rem;margin-right:auto}.bd-header .navbar-header-items__end{justify-content:end}.bd-header ul.navbar-nav{display:flex;flex-wrap:wrap}@media (min-width:960px){.bd-header ul.navbar-nav{align-items:baseline}}.bd-header ul.navbar-nav>li.nav-item{margin-inline:2px}.bd-header ul.navbar-nav>li.nav-item>.nav-link{color:var(--pst-color-text-muted);padding-inline:6px;position:relative}.bd-header ul.navbar-nav>li.nav-item>.nav-link:before{background-color:transparent;content:"";display:block;inset:0;bottom:calc(max(3px, .1875rem, .12em)*-1);margin:max(3px,.1875rem,.12em) 0;position:absolute}.bd-header ul.navbar-nav>li.nav-item>.nav-link:hover{color:var(--pst-color-secondary);text-decoration:none}.bd-header ul.navbar-nav>li.nav-item>.nav-link:hover:before{border-bottom:max(3px,.1875rem,.12em) solid var(--pst-color-secondary)}.bd-header ul.navbar-nav>li.nav-item>.nav-link:focus-visible{box-shadow:none;outline:3px solid var(--pst-color-accent);outline-offset:.1875rem}.bd-header ul.navbar-nav>li.nav-item.current>.nav-link{color:var(--pst-color-primary)}.bd-header ul.navbar-nav>li.nav-item.current>.nav-link:before{border-bottom:3px solid var(--pst-color-primary)}.bd-header ul.navbar-nav>li.nav-item.dropdown{margin-inline:4px}.bd-header ul.navbar-nav>li.nav-item.dropdown button{padding-inline:8px}.bd-header ul.navbar-nav>li.nav-item.dropdown>.dropdown-toggle{border-radius:.125rem;color:var(--pst-color-text-muted)}.bd-header ul.navbar-nav>li.nav-item.dropdown>.dropdown-toggle:focus-visible{box-shadow:0 0 0 .1875rem var(--pst-color-accent)}.bd-header ul.navbar-nav>li.nav-item.dropdown>.dropdown-toggle:hover{box-shadow:0 0 0 .1875rem var(--pst-color-link-hover);color:var(--pst-color-text-base);text-decoration:none}.bd-header ul.navbar-nav li a.nav-link.dropdown-item{color:var(--pst-color-text-muted);text-decoration:none}.bd-header ul.navbar-nav li a.nav-link.dropdown-item:hover{color:var(--pst-color-link-hover);text-decoration:underline;text-decoration-skip-ink:none;text-decoration-thickness:max(1px,.0625rem);text-decoration-thickness:max(3px,.1875rem,.12em);text-underline-offset:.1578em}.bd-header ul.navbar-nav .dropdown button{border:none;display:unset}.bd-header ul.navbar-nav .dropdown button:hover{color:var(--pst-color-link-hover);text-decoration:underline;text-decoration-skip-ink:none;text-decoration-thickness:max(1px,.0625rem);text-decoration-thickness:max(3px,.1875rem,.12em);text-underline-offset:.1578em}.bd-header ul.navbar-nav .dropdown .dropdown-menu{background-color:var(--pst-color-on-background);border:1px solid var(--pst-color-border);box-shadow:0 0 .3rem .1rem var(--pst-color-shadow);margin:.5rem 0;min-width:20rem;padding:.5rem 0;z-index:1070}.bd-header ul.navbar-nav .dropdown .dropdown-menu .dropdown-item{padding:.25rem 1.5rem}.bd-header ul.navbar-nav .dropdown .dropdown-menu .dropdown-item:focus:not(:hover,:active){background-color:inherit}.bd-header ul.navbar-nav .dropdown .dropdown-menu .dropdown-item:focus-visible{z-index:10}.bd-header ul.navbar-nav .dropdown .dropdown-menu:not(.show){display:none}.bd-header button.sidebar-toggle{background-color:inherit;color:var(--pst-color-muted);font-size:var(--pst-font-size-icon);margin-bottom:0;padding:.5rem}.bd-header button.primary-toggle{margin-right:1rem}@media (min-width:960px){.bd-header button.primary-toggle{display:none}}.bd-header button.secondary-toggle{margin-left:1rem}@media (min-width:1200px){.bd-header button.secondary-toggle{display:none}}@media (min-width:960px){.navbar-center-items .navbar-item{display:inline-block}}.nav-link{transition:none}.nav-link:hover{color:var(--pst-color-link-hover);text-decoration:underline;text-decoration-skip-ink:none;text-decoration-thickness:max(1px,.0625rem);text-decoration-thickness:max(3px,.1875rem,.12em);text-underline-offset:.1578em}.nav-link.nav-external:after{content:var(--pst-icon-external-link);font:var(--fa-font-solid);font-size:.75em;margin-left:.3em}.bd-navbar-elements li.nav-item i{font-size:.7rem;padding-left:2px;vertical-align:middle}.navbar-persistent--mobile{margin-left:auto}@media (min-width:960px){.navbar-persistent--mobile{display:none}}.navbar-persistent--container{display:none}@media (min-width:960px){.navbar-persistent--container{display:flex}}.header-article__inner{padding:0 .5rem}.header-article__inner .header-article-item{min-height:var(--pst-header-article-height)}.header-article__inner .header-article-items__end{margin-left:auto}.bd-sidebar-primary{background-color:var(--pst-color-background);border-right:1px solid var(--pst-color-border);display:flex;flex:0 0 auto;flex-direction:column;font-size:var(--pst-sidebar-font-size-mobile);gap:1rem;max-height:calc(100vh - var(--pst-header-height));overflow:hidden auto;padding:1rem;position:sticky;top:var(--pst-header-height);width:25%}@media (min-width:960px){.bd-sidebar-primary{font-size:var(--pst-sidebar-font-size)}}.bd-sidebar-primary :focus-visible{border-radius:.125rem}.bd-sidebar-primary .nav-link{font-size:var(--pst-sidebar-font-size-mobile)}.bd-sidebar-primary.no-sidebar{border-right:0}@media (min-width:960px){.bd-sidebar-primary.hide-on-wide{display:none}}.bd-sidebar-primary .h1,.bd-sidebar-primary .h2,.bd-sidebar-primary .h3,.bd-sidebar-primary .h4,.bd-sidebar-primary h1,.bd-sidebar-primary h2,.bd-sidebar-primary h3,.bd-sidebar-primary h4{color:var(--pst-color-text-base)}.bd-sidebar-primary .sidebar-primary-items__end .sidebar-primary-item,.bd-sidebar-primary .sidebar-primary-items__start .sidebar-primary-item{padding:.5rem 0}.bd-sidebar-primary .sidebar-header-items{display:flex;flex-direction:column}.bd-sidebar-primary .sidebar-header-items .sidebar-header-items__title{color:var(--pst-color-text-base);font-size:var(--pst-sidebar-header-font-size);font-weight:var(--pst-sidebar-header-font-weight);margin-bottom:.5rem}.bd-sidebar-primary .sidebar-header-items .bd-navbar-elements .nav-link:focus-visible{box-shadow:none;outline:var(--pst-color-accent) solid .1875rem;outline-offset:.1875rem}.bd-sidebar-primary .sidebar-header-items .sidebar-header-items__center{display:flex;flex-direction:column}.bd-sidebar-primary .sidebar-header-items .sidebar-header-items__end{align-items:center;display:flex;gap:1rem}@media (min-width:960px){.bd-sidebar-primary .sidebar-header-items{display:none}}.bd-sidebar-primary .sidebar-primary-items__start{border-top:1px solid var(--pst-color-border)}@media (min-width:960px){.bd-sidebar-primary .sidebar-primary-items__start{border-top:none}}.bd-sidebar-primary .sidebar-primary-items__end{margin-bottom:1em;margin-top:auto}.bd-sidebar-primary .list-caption{list-style:none;padding-left:0}.bd-sidebar-primary .list-caption li.toctree-l0.has-children>details>summary{align-items:baseline;display:flex;height:auto;justify-content:space-between;position:relative;width:auto}.bd-sidebar-primary .list-caption li.toctree-l0.has-children>details>summary .toctree-toggle{flex:0 0 auto}.bd-sidebar-primary .list-caption li.toctree-l0.has-children>details>summary .toctree-toggle .fa-chevron-down{font-size:1rem}.bd-sidebar-primary li.has-children{position:relative}.bd-sidebar-primary li.has-children .caption,.bd-sidebar-primary li.has-children>.reference{margin-right:calc(30px + .1875rem);padding-top:.25rem}.bd-sidebar-primary li.has-children>details>summary{list-style:none}.bd-sidebar-primary li.has-children>details>summary::-webkit-details-marker{display:none}.bd-sidebar-primary li.has-children>details>summary:focus-visible{outline:none}.bd-sidebar-primary li.has-children>details>summary:focus-visible>.toctree-toggle{outline:var(--pst-color-accent) solid .1875rem;outline-offset:-.1875rem}.bd-sidebar-primary li.has-children>details>summary .toctree-toggle{align-items:center;cursor:pointer;display:inline-flex;height:30px;justify-content:center;position:absolute;right:0;top:0;width:30px}.bd-sidebar-primary li.has-children>details>summary .toctree-toggle .fa-chevron-down{font-size:.75rem}.bd-sidebar-primary li.has-children>details[open]>summary .fa-chevron-down{transform:rotate(180deg)}nav.bd-links{margin-right:-1rem}@media (min-width:960px){nav.bd-links{display:block}}nav.bd-links ul{display:block;list-style:none}nav.bd-links ul ul{padding:0 0 0 1rem}nav.bd-links li>a{box-shadow:none;color:var(--pst-color-text-muted);display:block;margin-right:.1875rem;padding:.25rem .65rem;text-decoration:none}nav.bd-links li>a:hover{background-color:transparent;text-decoration:underline;text-decoration-skip-ink:none;text-decoration-thickness:max(3px,.1875rem,.12em)}nav.bd-links li>a:active,nav.bd-links li>a:hover{color:var(--pst-color-link-hover)}nav.bd-links li>a:focus-visible{box-shadow:0 0 0 .1875rem var(--pst-color-accent);outline:none;z-index:10}nav.bd-links li>a.reference.external:after{content:var(--pst-icon-external-link);font:var(--fa-font-solid);font-size:.75em;margin-left:.3em}nav.bd-links .current>a{background-color:transparent;box-shadow:inset max(3px,.1875rem,.12em) 0 0 var(--pst-color-primary);color:var(--pst-color-primary);font-weight:600}nav.bd-links .current>a:focus-visible{box-shadow:inset max(3px,.1875rem,.12em) 0 0 var(--pst-color-primary),0 0 0 .1875rem var(--pst-color-accent);outline:none}nav.bd-links p.bd-links__title{font-size:var(--pst-sidebar-header-font-size)}nav.bd-links p.bd-links__title,nav.bd-links p.caption{font-weight:var(--pst-sidebar-header-font-weight);margin-bottom:.5rem}nav.bd-links p.caption{color:var(--pst-color-text-base);font-size:var(--pst-sidebar-font-size-mobile);margin-top:1.25rem;position:relative}nav.bd-links p.caption:first-child{margin-top:0}@media (min-width:960px){nav.bd-links p.caption{font-size:var(--pst-sidebar-font-size)}}.bd-sidebar-secondary{background-color:var(--pst-color-background);display:flex;flex-direction:column;flex-shrink:0;font-size:var(--pst-sidebar-font-size-mobile);max-height:calc(100vh - var(--pst-header-height));order:2;overflow-y:auto;padding:2rem 1rem 1rem;position:sticky;top:var(--pst-header-height);width:var(--pst-sidebar-secondary)}@media (min-width:1200px){.bd-sidebar-secondary{font-size:var(--pst-sidebar-font-size)}}.sidebar-secondary-item{padding:.5rem}@media (min-width:1200px){.sidebar-secondary-item{border-left:1px solid var(--pst-color-border);padding-left:1rem}}.sidebar-secondary-item i{padding-right:.5rem}.bd-sidebar::backdrop{background-color:#000;opacity:.5}@media (max-width:959.98px){.bd-sidebar-primary{border:0;flex-grow:0.75;height:100dvh;left:0;margin-left:-75%;max-height:100dvh;max-width:350px;position:fixed;top:0;transition:visibility .2s ease-out,margin .2s ease-out;visibility:hidden;width:75%;z-index:1055}}.bd-sidebar-primary[open]{margin-left:0;visibility:visible}@media (max-width:1199.98px){.bd-sidebar-secondary{border:0;flex-grow:0.75;height:100dvh;margin-right:-75%;max-height:100dvh;max-width:350px;position:fixed;right:0;top:0;transition:visibility .2s ease-out,margin .2s ease-out;visibility:hidden;width:75%;z-index:1055}}.bd-sidebar-secondary[open]{margin-right:0;visibility:visible}ul.bd-breadcrumbs{display:flex;flex-wrap:wrap;font-size:.8rem;list-style:none;padding-left:0}ul.bd-breadcrumbs li.breadcrumb-item{align-items:center;display:flex;font-weight:700;overflow-x:hidden;white-space:nowrap}ul.bd-breadcrumbs li.breadcrumb-item .ellipsis,ul.bd-breadcrumbs li.breadcrumb-item a{margin:.1875rem;overflow-x:hidden;text-overflow:ellipsis}ul.bd-breadcrumbs li.breadcrumb-item a{color:var(--pst-color-text-muted);text-decoration:none}ul.bd-breadcrumbs li.breadcrumb-item a:hover{color:var(--pst-color-link-hover);text-decoration:underline;text-decoration-skip-ink:none;text-decoration-thickness:max(1px,.0625rem);text-decoration-thickness:max(3px,.1875rem,.12em);text-underline-offset:.1578em}ul.bd-breadcrumbs li.breadcrumb-item:not(.breadcrumb-home):before{color:var(--pst-color-text-muted);content:var(--pst-breadcrumb-divider);font:var(--fa-font-solid);font-size:.8rem;padding:0 .5rem}html .pst-navbar-icon{align-items:center;border:none;border-radius:0;box-sizing:border-box;color:var(--pst-color-text-muted);display:flex;font-size:1rem;height:2.15rem;justify-content:center;line-height:1.65;min-height:24px;min-width:24px;padding:.25rem 0;position:relative}html .pst-navbar-icon:before{background-color:transparent;content:"";display:block;inset:0;bottom:calc(max(3px, .1875rem, .12em)*-1);margin:max(3px,.1875rem,.12em) 0;position:absolute}html .pst-navbar-icon:hover{color:var(--pst-color-secondary);text-decoration:none}html .pst-navbar-icon:hover:before{border-bottom:max(3px,.1875rem,.12em) solid var(--pst-color-secondary)}html .pst-navbar-icon:focus-visible{box-shadow:none;outline:3px solid var(--pst-color-accent);outline-offset:.1875rem}ul.navbar-icon-links{align-items:center;column-gap:1.12rem;display:flex;flex-flow:row wrap;justify-content:space-evenly;list-style:none;margin-bottom:0;padding-left:0}ul.navbar-icon-links svg.fa-brands,ul.navbar-icon-links svg.fa-regular,ul.navbar-icon-links svg.fa-solid{font-size:var(--pst-font-size-icon);font-style:normal;vertical-align:middle}ul.navbar-icon-links img.icon-link-image{border-radius:.2rem;height:1.5em}ul.navbar-icon-links .fa-pydata{stroke:var(--pst-color-background);stroke-linejoin:round;stroke-width:.35}.navbar-brand{align-items:center;display:flex;flex-shrink:0;gap:.5rem;height:var(--pst-header-height);margin:0;max-height:var(--pst-header-height);padding:.5rem 0;position:relative;width:auto}.navbar-brand p{color:var(--pst-color-text-base);margin-bottom:0}.navbar-brand img{height:100%;max-width:100%;width:auto}.navbar-brand:hover,.navbar-brand:visited:hover{color:var(--pst-color-link-hover);color:var(--pst-color-text-base);text-decoration:underline;text-decoration-skip-ink:none;text-decoration-thickness:max(1px,.0625rem);text-decoration-thickness:max(3px,.1875rem,.12em);text-underline-offset:.1578em}ul.navbar-nav ul{padding:0 0 0 1rem}ul.navbar-nav li{display:flex;flex-direction:column}ul.navbar-nav li a{align-items:center;color:var(--pst-color-text-muted);display:flex;height:100%;padding-bottom:.25rem;padding-top:.25rem;text-decoration:none}ul.navbar-nav li a:hover{color:var(--pst-color-link-hover);text-decoration:underline;text-decoration-skip-ink:none;text-decoration-thickness:max(1px,.0625rem);text-decoration-thickness:max(3px,.1875rem,.12em);text-underline-offset:.1578em}.page-toc .section-nav{border-bottom:none;padding-left:0}.page-toc .section-nav ul{padding-left:1rem}.page-toc .nav-link{font-size:var(--pst-sidebar-font-size-mobile)}@media (min-width:1200px){.page-toc .nav-link{font-size:var(--pst-sidebar-font-size)}}.page-toc .onthispage{color:var(--pst-color-text-base);font-weight:var(--pst-sidebar-header-font-weight);margin-bottom:.5rem}.prev-next-area{width:100%}.prev-next-area p{color:var(--pst-color-text-muted);line-height:1.3em;margin:0 .3em}.prev-next-area i{font-size:1.2em}.prev-next-area a{align-items:center;border:none;color:var(--pst-color-text-muted);display:flex;max-width:45%;overflow-x:hidden;padding:10px;text-decoration:none}.prev-next-area a p.prev-next-title{color:var(--pst-color-link);font-size:1.1em;font-weight:var(--pst-admonition-font-weight-heading);overflow-wrap:break-word;text-decoration:underline;text-decoration-thickness:max(1px,.0625rem);text-underline-offset:.1578em}.prev-next-area a p.prev-next-title:hover{color:var(--pst-color-link-hover);text-decoration-skip-ink:none;text-decoration-thickness:max(3px,.1875rem,.12em)}.prev-next-area a p.prev-next-title:active,.prev-next-area a p.prev-next-title:visited{color:var(--pst-color-link)}.prev-next-area a p.prev-next-title:visited:hover{color:var(--pst-color-link-hover)}.prev-next-area a:hover p.prev-next-title,.prev-next-area a:visited:hover p.prev-next-title{color:var(--pst-color-link-hover);text-decoration:underline;text-decoration-skip-ink:none;text-decoration-thickness:max(1px,.0625rem);text-decoration-thickness:max(3px,.1875rem,.12em);text-underline-offset:.1578em}.prev-next-area a .prev-next-info{flex-direction:column;margin:0 .5em}.prev-next-area a .prev-next-info .prev-next-subtitle{text-transform:capitalize}.prev-next-area a.left-prev{float:left}.prev-next-area a.right-next{float:right}.prev-next-area a.right-next div.prev-next-info{text-align:right}.bd-search{border:1px solid var(--pst-color-border);border-radius:.25rem;color:var(--pst-color-text-base);gap:.5rem;padding-left:.5rem;position:relative}.bd-search,.bd-search:active{background-color:var(--pst-color-background)}.bd-search:active{color:var(--pst-color-text-muted)}.bd-search:focus-within{box-shadow:0 0 0 .1875rem var(--pst-color-accent)}.bd-search:focus-within input:focus{box-shadow:none}.bd-search .icon{color:var(--pst-color-border);left:25px;position:absolute}.bd-search .fa-solid.fa-magnifying-glass{color:var(--pst-color-text-muted);left:calc(1.25rem - .35em);position:absolute}.bd-search input.form-control{background-color:var(--pst-color-background);border:none;color:var(--pst-color-text-base)}.bd-search input.form-control::placeholder{color:var(--pst-color-text-muted)}.bd-search input.form-control::-webkit-search-cancel-button,.bd-search input.form-control::-webkit-search-decoration{appearance:none}.bd-search input.form-control:focus,.bd-search input.form-control:focus-visible{color:var(--pst-color-text-muted)}.bd-search .search-button__kbd-shortcut{color:var(--pst-color-border);display:none;margin-inline-end:.5rem}@media (min-width:720px){.bd-search .search-button__kbd-shortcut{display:flex}}.search-button i{font-size:1.3rem}#pst-search-dialog[open]{background-color:transparent;border:none;margin:15vh auto 0;max-height:80vh;max-width:800px;padding:.1875rem;width:90%}#pst-search-dialog[open]::backdrop{background-color:#000;opacity:.5}#pst-search-dialog[open] form.bd-search{flex-grow:0}#pst-search-dialog[open] form.bd-search input,#pst-search-dialog[open] form.bd-search svg{font-size:var(--pst-font-size-icon)}#pst-search-dialog[open] #search-results{background-color:var(--pst-color-background);overflow-y:scroll;padding:1em}#pst-search-dialog[open] #search-results a{color:var(--pst-color-link)}#pst-search-dialog[open] #search-results.empty{display:none}.search-button-field{align-items:center;background-color:var(--pst-color-surface);border:1px solid var(--pst-color-border);border-radius:1.5em;color:var(--pst-color-text-muted);display:inline-flex;padding:.5em}.search-button-field:hover{box-shadow:0 0 0 .1875rem var(--pst-color-link-hover)}.search-button-field:focus-visible{border-radius:1.5em}.search-button-field .search-button__default-text{font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);margin-left:.5em;margin-right:.5em}.search-button-field .kbd-shortcut__modifier{font-size:.75em}.search-button-field>*{align-items:center}.search-button-field>:not(svg){display:none}@media (min-width:960px){.search-button-field>:not(svg){display:flex}}div#searchbox p.highlight-link{box-shadow:0 .2rem .5rem var(--pst-color-shadow),0 0 .0625rem var(--pst-color-shadow)!important;margin:1rem 0;width:fit-content}@media (min-width:1200px){div#searchbox p.highlight-link{margin-left:2rem}}div#searchbox p.highlight-link a{background-color:var(--pst-color-primary);border-radius:.25rem;color:var(--pst-color-primary-text);font-size:1.25rem;padding:.75rem;text-decoration:none;transition:box-shadow .25s ease-out}div#searchbox p.highlight-link a:hover{box-shadow:inset 0 0 50px 50px rgba(0,0,0,.25)}div#searchbox p.highlight-link a:before{color:unset;content:var(--pst-icon-search-minus);font:var(--fa-font-solid);margin-right:.5rem}.bd-sidebar-primary .sidebar-primary-item.pst-sidebar-collapse{padding-top:0}.bd-sidebar-primary #pst-collapse-sidebar-button{align-items:center;background-color:transparent;border:0;bottom:.2em;display:flex;flex-direction:row;gap:.25rem;min-height:24px;min-width:24px;outline-offset:.125rem;padding:0;position:relative;text-align:start}@media (max-width:959.98px){.bd-sidebar-primary #pst-collapse-sidebar-button{display:none}}.bd-sidebar-primary #pst-collapse-sidebar-button .pst-icon{box-sizing:content-box;color:var(--pst-color-link);height:1.3em;padding:.4em 0}.bd-sidebar-primary #pst-collapse-sidebar-button .pst-collapse-sidebar-label{color:var(--pst-color-link);height:100%;overflow-wrap:break-word;text-decoration:underline;text-decoration-thickness:max(1px,.0625rem);text-underline-offset:.1578em;width:100%}.bd-sidebar-primary #pst-collapse-sidebar-button .pst-collapse-sidebar-label:hover{color:var(--pst-color-link-hover);text-decoration-skip-ink:none;text-decoration-thickness:max(3px,.1875rem,.12em)}.bd-sidebar-primary #pst-collapse-sidebar-button .pst-collapse-sidebar-label:active,.bd-sidebar-primary #pst-collapse-sidebar-button .pst-collapse-sidebar-label:visited{color:var(--pst-color-link)}.bd-sidebar-primary #pst-collapse-sidebar-button .pst-collapse-sidebar-label:visited:hover{color:var(--pst-color-link-hover)}.bd-sidebar-primary #pst-collapse-sidebar-button .pst-expand-sidebar-label{height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;width:1px!important;clip:rect(0,0,0,0)!important;border:0!important;visibility:hidden;white-space:nowrap!important}.bd-sidebar-primary #pst-collapse-sidebar-button .pst-expand-sidebar-label:not(caption){position:absolute!important}.bd-sidebar-primary #pst-collapse-sidebar-button:hover .pst-icon{color:var(--pst-color-link-hover)}.bd-sidebar-primary #pst-collapse-sidebar-button:hover .pst-collapse-sidebar-label{color:var(--pst-color-link-hover);text-decoration:underline;text-decoration-skip-ink:none;text-decoration-thickness:max(1px,.0625rem);text-decoration-thickness:max(3px,.1875rem,.12em);text-underline-offset:.1578em}@media (prefers-reduced-motion:no-preference){.bd-sidebar-primary{transition:width .4s ease}.bd-sidebar-primary #pst-collapse-sidebar-button .pst-icon{transition:transform .4s ease,padding .4s ease}.bd-sidebar-primary.pst-squeeze .pst-collapse-sidebar-label{transition:opacity .4s linear,visibility 0s linear .4s,width 0s linear .4s,height 0s linear .4s}.bd-sidebar-primary.pst-squeeze .sidebar-primary-item:not(.pst-sidebar-collapse){transition:opacity .4s linear,visibility 0s linear .4s}.bd-sidebar-primary.pst-squeeze .pst-expand-sidebar-label{transition:visibility 0s linear .4s}.bd-sidebar-primary:not(.pst-squeeze) .pst-collapse-sidebar-label{transition:opacity .4s linear,visibility 0s linear "0s",width 0s linear "0s",height 0s linear "0s"}.bd-sidebar-primary:not(.pst-squeeze) .sidebar-primary-item:not(.pst-sidebar-collapse){transition:opacity .4s linear,visibility 0s linear "0s"}.bd-sidebar-primary:not(.pst-squeeze) .pst-expand-sidebar-label{transition:visibility 0s linear "0s"}}.bd-sidebar-primary.pst-squeeze{overflow:hidden;width:4rem}.bd-sidebar-primary.pst-squeeze #pst-collapse-sidebar-button .pst-icon{transform:translateX(.25em) rotate(180deg)}.bd-sidebar-primary.pst-squeeze #pst-collapse-sidebar-button .pst-collapse-sidebar-label{height:0;opacity:0;visibility:hidden;width:0}.bd-sidebar-primary.pst-squeeze #pst-collapse-sidebar-button .pst-expand-sidebar-label{visibility:visible}.bd-sidebar-primary.pst-squeeze .sidebar-primary-item:not(.pst-sidebar-collapse){opacity:0;visibility:hidden}.bd-sidebar-primary:not(.pst-squeeze) .pst-expand-sidebar-label{visibility:hidden}.theme-switch-button .theme-switch{display:none}.theme-switch-button .theme-switch .fa-lg{aspect-ratio:1/1}.theme-switch-button .theme-switch.fa-moon{transform:scaleX(.871459695) scaleY(.8748241913)}html[data-mode=auto] .theme-switch-button .theme-switch[data-mode=auto],html[data-mode=dark] .theme-switch-button .theme-switch[data-mode=dark],html[data-mode=light] .theme-switch-button .theme-switch[data-mode=light]{display:inline}button.btn.version-switcher__button{border-color:var(--pst-color-border);color:var(--pst-color-text-base);margin-bottom:1em}@media (min-width:960px){button.btn.version-switcher__button{margin-bottom:unset}}button.btn.version-switcher__button:hover{border-color:transparent;box-shadow:0 0 0 .1875rem var(--pst-color-secondary)}button.btn.version-switcher__button:active{border-color:var(--pst-color-border);color:var(--pst-color-text-base)}button.btn.version-switcher__button:focus-visible{border-color:transparent}.version-switcher__menu{border-color:var(--pst-color-border);border-radius:var(--bs-dropdown-border-radius)}.version-switcher__menu a.list-group-item{background-color:var(--pst-color-on-background);color:var(--pst-color-text-base);padding:.75rem 1.25rem}.version-switcher__menu a.list-group-item:not(:last-child){border-bottom:1px solid var(--pst-color-border)}.version-switcher__menu a.list-group-item:hover{background-color:var(--pst-color-surface);color:var(--pst-color-link-hover);text-decoration:underline;text-decoration-skip-ink:none;text-decoration-thickness:max(1px,.0625rem);text-decoration-thickness:max(3px,.1875rem,.12em);text-underline-offset:.1578em}.version-switcher__menu a.list-group-item.active{box-shadow:inset max(3px,.1875rem,.12em) 0 0 var(--pst-color-primary);color:var(--pst-color-primary);font-weight:600;position:relative;z-index:1}.version-switcher__menu a.list-group-item.active:focus-visible{box-shadow:inset max(3px,.1875rem,.12em) 0 0 var(--pst-color-primary),0 0 0 .1875rem var(--pst-color-accent);outline:none}.version-switcher__menu a.list-group-item.active span:before{content:"";height:100%;left:0;position:absolute;top:0;width:100%;z-index:-1}.version-switcher__menu a.list-group-item:focus-visible{z-index:10}.version-switcher__menu,button.version-switcher__button{box-sizing:border-box;font-size:1.1em;min-height:24px;min-width:24px;z-index:1055}@media (min-width:960px){.version-switcher__menu,button.version-switcher__button{font-size:unset}}nav.page-toc{margin-bottom:1rem}.bd-toc .nav .nav{display:none}.bd-toc .nav .nav.pst-show_toc_level,.bd-toc .nav>.active>ul,.toc-entry{display:block}.toc-entry a.nav-link,.toc-entry a>code{color:var(--pst-color-text-muted)}.toc-entry a.nav-link{display:block;margin-left:-1rem;padding:.25rem 0 .25rem 1rem;text-decoration:none}.toc-entry a.nav-link:hover{background-color:transparent;text-decoration:underline;text-decoration-skip-ink:none;text-decoration-thickness:max(3px,.1875rem,.12em)}.toc-entry a.nav-link:active,.toc-entry a.nav-link:hover{color:var(--pst-color-link-hover)}.toc-entry a.nav-link:focus-visible{box-shadow:0 0 0 .1875rem var(--pst-color-accent);outline:none;z-index:10}.toc-entry a.nav-link.active,.toc-entry a.nav-link[aria-current=true]{background-color:transparent;box-shadow:inset max(3px,.1875rem,.12em) 0 0 var(--pst-color-primary);color:var(--pst-color-primary);font-weight:600}.toc-entry a.nav-link.active:focus-visible,.toc-entry a.nav-link[aria-current=true]:focus-visible{box-shadow:inset max(3px,.1875rem,.12em) 0 0 var(--pst-color-primary),0 0 0 .1875rem var(--pst-color-accent);outline:none}.toc-entry a.nav-link.active:hover,.toc-entry a.nav-link[aria-current=true]:hover{color:var(--pst-color-link-hover)}.toc-entry a.nav-link:focus-visible{border-radius:.125rem}div.deprecated,div.versionadded,div.versionchanged,div.versionremoved{background-color:var(--pst-color-on-background);border-left:.2rem solid;border-color:var(--pst-color-info);border-radius:.25rem;box-shadow:0 .2rem .5rem var(--pst-color-shadow),0 0 .0625rem var(--pst-color-shadow)!important;break-inside:avoid;margin:1.5625em auto;overflow:hidden;padding:0 .6rem;position:relative;vertical-align:middle}div.deprecated>p,div.versionadded>p,div.versionchanged>p,div.versionremoved>p{margin-bottom:.6rem;margin-top:.6rem}div.deprecated a,div.versionadded a,div.versionchanged a,div.versionremoved a{color:var(--pst-color-link-higher-contrast)}div.versionadded{background-color:var(--pst-color-success-bg);border-color:var(--pst-color-success)}div.versionchanged{background-color:var(--pst-color-warning-bg);border-color:var(--pst-color-warning)}html[data-theme=dark] div.versionchanged a{color:#abdde6}div.deprecated,div.versionremoved{background-color:var(--pst-color-danger-bg);border-color:var(--pst-color-danger)}span.versionmodified{font-weight:600}span.versionmodified:before{color:var(--pst-color-info);content:var(--pst-icon-versionmodified-default);font:var(--fa-font-solid);margin-right:.6rem}span.versionmodified.added:before{color:var(--pst-color-success);content:var(--pst-icon-versionmodified-added)}span.versionmodified.changed:before{color:var(--pst-color-warning);content:var(--pst-icon-versionmodified-changed)}span.versionmodified.deprecated:before{color:var(--pst-color-danger);content:var(--pst-icon-versionmodified-deprecated)}span.versionmodified.removed:before{color:var(--pst-color-danger);content:var(--pst-icon-versionmodified-removed)}.sidebar-indices-items{border-top:1px solid var(--pst-color-border);display:flex;flex-direction:column}@media (min-width:960px){.sidebar-indices-items{border-top:none}}.sidebar-indices-items .sidebar-indices-items__title{color:var(--pst-color-text-base);font-size:var(--pst-sidebar-header-font-size);font-weight:var(--pst-sidebar-header-font-weight);margin-bottom:.5rem}.sidebar-indices-items ul.indices-link{list-style:none;margin-right:-1rem;padding:0}.sidebar-indices-items ul.indices-link li>a{color:var(--pst-color-text-muted);display:block;padding:.25rem 0}.sidebar-indices-items ul.indices-link li>a:hover{background-color:transparent;color:var(--pst-color-primary);text-decoration:none}.admonition,div.admonition{background-color:var(--pst-color-on-background);border-left:.2rem solid;border-color:var(--pst-color-info);border-radius:.25rem;box-shadow:0 .2rem .5rem var(--pst-color-shadow),0 0 .0625rem var(--pst-color-shadow)!important;break-inside:avoid;margin:1.5625em auto;overflow:hidden;padding:0 .6rem .8rem}.admonition :last-child,div.admonition :last-child{margin-bottom:0}.admonition p.admonition-title~*,div.admonition p.admonition-title~*{margin-left:1.4rem;margin-right:1.4rem}.admonition>ol,.admonition>ul,div.admonition>ol,div.admonition>ul{margin-left:1em}.admonition>.admonition-title,div.admonition>.admonition-title{background-color:var(--pst-color-info-bg);font-weight:var(--pst-admonition-font-weight-heading);margin:0 -.6rem;padding:.4rem .6rem .4rem 2rem;position:relative;z-index:1}.admonition>.admonition-title:before,div.admonition>.admonition-title:before{content:"";height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:-1}.admonition>.admonition-title:after,div.admonition>.admonition-title:after{color:var(--pst-color-info);content:var(--pst-icon-admonition-default);font:var(--fa-font-solid);height:1rem;left:0;line-height:inherit;margin:0 .5rem;opacity:1;position:absolute;top:.4rem;width:1rem}.admonition>.admonition-title+*,div.admonition>.admonition-title+*{margin-top:.4em}.admonition.attention,div.admonition.attention{border-color:var(--pst-color-attention)}.admonition.attention>.admonition-title,div.admonition.attention>.admonition-title{background-color:var(--pst-color-attention-bg)}.admonition.attention>.admonition-title:after,div.admonition.attention>.admonition-title:after{color:var(--pst-color-attention);content:var(--pst-icon-admonition-attention)}.admonition.caution,div.admonition.caution{border-color:var(--pst-color-warning)}.admonition.caution>.admonition-title,div.admonition.caution>.admonition-title{background-color:var(--pst-color-warning-bg)}.admonition.caution>.admonition-title:after,div.admonition.caution>.admonition-title:after{color:var(--pst-color-warning);content:var(--pst-icon-admonition-caution)}.admonition.warning,div.admonition.warning{border-color:var(--pst-color-warning)}.admonition.warning>.admonition-title,div.admonition.warning>.admonition-title{background-color:var(--pst-color-warning-bg)}.admonition.warning>.admonition-title:after,div.admonition.warning>.admonition-title:after{color:var(--pst-color-warning);content:var(--pst-icon-admonition-warning)}.admonition.danger,div.admonition.danger{border-color:var(--pst-color-danger)}.admonition.danger>.admonition-title,div.admonition.danger>.admonition-title{background-color:var(--pst-color-danger-bg)}.admonition.danger>.admonition-title:after,div.admonition.danger>.admonition-title:after{color:var(--pst-color-danger);content:var(--pst-icon-admonition-danger)}.admonition.error,div.admonition.error{border-color:var(--pst-color-danger)}.admonition.error>.admonition-title,div.admonition.error>.admonition-title{background-color:var(--pst-color-danger-bg)}.admonition.error>.admonition-title:after,div.admonition.error>.admonition-title:after{color:var(--pst-color-danger);content:var(--pst-icon-admonition-error)}.admonition.hint,div.admonition.hint{border-color:var(--pst-color-success)}.admonition.hint>.admonition-title,div.admonition.hint>.admonition-title{background-color:var(--pst-color-success-bg)}.admonition.hint>.admonition-title:after,div.admonition.hint>.admonition-title:after{color:var(--pst-color-success);content:var(--pst-icon-admonition-hint)}.admonition.tip,div.admonition.tip{border-color:var(--pst-color-success)}.admonition.tip>.admonition-title,div.admonition.tip>.admonition-title{background-color:var(--pst-color-success-bg)}.admonition.tip>.admonition-title:after,div.admonition.tip>.admonition-title:after{color:var(--pst-color-success);content:var(--pst-icon-admonition-tip)}.admonition.important,div.admonition.important{border-color:var(--pst-color-attention)}.admonition.important>.admonition-title,div.admonition.important>.admonition-title{background-color:var(--pst-color-attention-bg)}.admonition.important>.admonition-title:after,div.admonition.important>.admonition-title:after{color:var(--pst-color-attention);content:var(--pst-icon-admonition-important)}.admonition.note,div.admonition.note{border-color:var(--pst-color-info)}.admonition.note>.admonition-title,div.admonition.note>.admonition-title{background-color:var(--pst-color-info-bg)}.admonition.note>.admonition-title:after,div.admonition.note>.admonition-title:after{color:var(--pst-color-info);content:var(--pst-icon-admonition-note)}.admonition.seealso,div.admonition.seealso{border-color:var(--pst-color-success)}.admonition.seealso>.admonition-title,div.admonition.seealso>.admonition-title{background-color:var(--pst-color-success-bg)}.admonition.seealso>.admonition-title:after,div.admonition.seealso>.admonition-title:after{color:var(--pst-color-success);content:var(--pst-icon-admonition-seealso)}.admonition.admonition-todo,div.admonition.admonition-todo{border-color:var(--pst-color-secondary)}.admonition.admonition-todo>.admonition-title,div.admonition.admonition-todo>.admonition-title{background-color:var(--pst-color-secondary-bg)}.admonition.admonition-todo>.admonition-title:after,div.admonition.admonition-todo>.admonition-title:after{color:var(--pst-color-secondary);content:var(--pst-icon-admonition-todo)}.admonition.sidebar,div.admonition.sidebar{border-width:0 0 0 .2rem;clear:both;float:right;margin-left:.5rem;margin-top:0;max-width:40%}.admonition.sidebar.attention,.admonition.sidebar.important,div.admonition.sidebar.attention,div.admonition.sidebar.important{border-color:var(--pst-color-attention)}.admonition.sidebar.caution,.admonition.sidebar.warning,div.admonition.sidebar.caution,div.admonition.sidebar.warning{border-color:var(--pst-color-warning)}.admonition.sidebar.danger,.admonition.sidebar.error,div.admonition.sidebar.danger,div.admonition.sidebar.error{border-color:var(--pst-color-danger)}.admonition.sidebar.hint,.admonition.sidebar.seealso,.admonition.sidebar.tip,div.admonition.sidebar.hint,div.admonition.sidebar.seealso,div.admonition.sidebar.tip{border-color:var(--pst-color-success)}.admonition.sidebar.note,.admonition.sidebar.todo,div.admonition.sidebar.note,div.admonition.sidebar.todo{border-color:var(--pst-color-info)}.admonition.sidebar p.admonition-title~*,div.admonition.sidebar p.admonition-title~*{margin-left:0;margin-right:0}aside.topic,div.topic,div.topic.contents,nav.contents{background-color:var(--pst-color-surface);border-color:var(--pst-color-border);border-radius:.25rem;box-shadow:0 .2rem .5rem var(--pst-color-shadow),0 0 .0625rem var(--pst-color-shadow)!important;display:flex;flex-direction:column;padding:1rem 1.25rem}aside.topic .topic-title,div.topic .topic-title,div.topic.contents .topic-title,nav.contents .topic-title{margin:0 0 .5rem}aside.topic p,div.topic p,div.topic.contents p,nav.contents p{color:var(--pst-color-on-surface)!important}aside.topic a,div.topic a,div.topic.contents a,nav.contents a{color:var(--pst-color-link-higher-contrast)}aside.topic ul.simple,div.topic ul.simple,div.topic.contents ul.simple,nav.contents ul.simple{padding-left:1rem}aside.topic ul.simple ul,div.topic ul.simple ul,div.topic.contents ul.simple ul,nav.contents ul.simple ul{padding-left:2em}aside.sidebar{background-color:var(--pst-color-surface);border:1px solid var(--pst-color-border);border-radius:.25rem;margin-left:.5rem;padding:0}aside.sidebar>:last-child{padding-bottom:1rem}aside.sidebar p.sidebar-title{border-bottom:1px solid var(--pst-color-border);font-family:var(--pst-font-family-heading);font-weight:var(--pst-admonition-font-weight-heading);margin-bottom:0;padding-bottom:.5rem;padding-top:.5rem;position:relative}aside.sidebar>:not(.sidebar-title):first-child,aside.sidebar>p.sidebar-title+*{margin-top:1rem}aside.sidebar>*{padding-left:1rem;padding-right:1rem}p.rubric{display:flex;flex-direction:column}.seealso dd{margin-bottom:0;margin-top:0}table.field-list{border-collapse:separate;border-spacing:10px;margin-left:1px}table.field-list th.field-name{background-color:var(--pst-color-surface);padding:1px 8px 1px 5px;white-space:nowrap}table.field-list td.field-body p{font-style:italic}table.field-list td.field-body p>strong{font-style:normal}table.field-list td.field-body blockquote{border-left:none;margin:0 0 .3em;padding-left:30px}.table.autosummary td:first-child{white-space:nowrap}.sig{font-family:var(--pst-font-family-monospace)}.sig-inline.c-texpr,.sig-inline.cpp-texpr{font-family:unset}.sig.c .k,.sig.c .kt,.sig.c .m,.sig.c .s,.sig.c .sc,.sig.cpp .k,.sig.cpp .kt,.sig.cpp .m,.sig.cpp .s,.sig.cpp .sc{color:var(--pst-color-text-base)}.sig-name{color:var(--pst-color-inline-code)}.sig-param .default_value,.sig-param .o{color:var(--pst-color-text-muted);font-weight:400}dt:target,span.highlighted{background-color:var(--pst-color-target)}.viewcode-back{font-family:var(--pst-font-family-base)}.viewcode-block:target{background-color:var(--pst-color-target);border-bottom:1px solid var(--pst-color-border);border-top:1px solid var(--pst-color-border);position:relative}dl>dt>a:has(.viewcode-link){float:right}dl>dt>a:has(.viewcode-link) .viewcode-link{float:none}dl[class]:not(.option-list,.field-list,.footnote,.glossary,.simple){margin-bottom:3rem}dl[class]:not(.option-list,.field-list,.footnote,.glossary,.simple) dd{margin-left:2rem}dl[class]:not(.option-list,.field-list,.footnote,.glossary,.simple) dd>dl.simple>dt{display:flex}dl[class]:not(.option-list,.field-list,.footnote,.glossary,.simple) dl.field-list{display:grid;grid-template-columns:unset}dl[class]:not(.option-list,.field-list,.footnote,.glossary,.simple) dt.field-even,dl[class]:not(.option-list,.field-list,.footnote,.glossary,.simple) dt.field-odd{background-color:var(--pst-color-surface);margin-bottom:.1rem;margin-top:.2rem}div.highlight,div.literal-block-wrapper,div[class*=highlight-]{border-radius:.25rem;break-inside:avoid;display:flex;flex-direction:column;width:unset}div.literal-block-wrapper{border:1px solid var(--pst-color-border);border-radius:.25rem}div.literal-block-wrapper div.code-block-caption{border-bottom:1px solid var(--pst-color-border);font-size:1rem;font-weight:var(--pst-font-weight-caption);margin:0;padding:.5rem}div.literal-block-wrapper div.code-block-caption a.headerlink{font-size:inherit}div.literal-block-wrapper div[class*=highlight-]{border-radius:0;margin:0}div.literal-block-wrapper div[class*=highlight-] pre{border:none;box-shadow:none}code.literal{background-color:var(--pst-color-surface);border:1px solid var(--pst-color-border);border-radius:.25rem;padding:.1rem .25rem}a>code{color:var(--pst-color-link-higher-contrast)}a:hover>code{color:var(--pst-color-link-hover)}span.linenos{opacity:.8!important}figure>a,figure>a>img,figure>img,figure>video{display:block;margin-left:auto;margin-right:auto}figure a.headerlink{font-size:inherit;position:absolute}figure:hover a.headerlink{visibility:visible}figure figcaption{color:var(--pst-color-text-muted);font-family:var(--pst-font-family-heading);font-weight:var(--pst-font-weight-caption);margin-left:auto;margin-right:auto;margin-top:.3rem;text-align:center}figure figcaption>p:last-child{margin-bottom:0}figure figcaption p{display:inline-block;text-align:start}figure figcaption table.table{margin-left:auto;margin-right:auto;width:fit-content}dt.label>span.brackets:not(:only-child):before{content:"["}dt.label>span.brackets:not(:only-child):after{content:"]"}a.footnote-reference{font-size:small;vertical-align:super}aside.footnote{margin-bottom:.5rem}aside.footnote:last-child{margin-bottom:1rem}aside.footnote span.backrefs,aside.footnote span.label{font-weight:700}aside.footnote:target{background-color:var(--pst-color-target)}div.doctest>div.highlight span.gp,span.linenos,table.highlighttable td.linenos{user-select:none}dd{margin-bottom:10px;margin-left:30px;margin-top:3px}ol,ul{padding-inline-start:2rem}ol li>p:first-child,ul li>p:first-child{margin-bottom:.25rem;margin-top:.25rem}blockquote{background-color:var(--pst-color-surface);border-left:.25em solid var(--pst-color-blockquote-notch);border-radius:.25rem;color:var(--pst-color-text-muted);padding:1em;position:relative}blockquote p{color:var(--pst-color-text-base)}blockquote .line-block{margin:0}blockquote p:last-child{margin-bottom:0}blockquote:before{content:"";height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%}blockquote a{color:var(--pst-color-link-higher-contrast)}blockquote:before{z-index:-1}span.guilabel{font-size:80%}span.guilabel,span.menuselection{background-color:var(--pst-color-info-bg);border:1px solid var(--pst-color-info);border-radius:4px;font-weight:700;margin:auto 2px;padding:2.4px 6px;position:relative}span.guilabel:before,span.menuselection:before{content:"";height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:-1}a.reference.download:before{color:var(--pst-color-text-muted);content:var(--pst-icon-download);font:var(--fa-font-solid);font-size:.8em;padding:0 .25em}table{margin-left:auto;margin-right:auto}table.table-right{margin-right:0}table.table-left{margin-left:0}table caption{caption-side:top;color:var(--pst-color-text-muted);text-align:center}td.text-left,th.text-left{text-align:left}td.text-right,th.text-right{text-align:right}td.text-center,th.text-center{text-align:center}.table{border:1px solid var(--pst-color-table-outer-border);color:var(--pst-color-table);--bs-table-bg:transparent;--bs-table-color:var( --pst-color-text-base - )}.table a{color:var(--pst-color-link-higher-contrast)}.table td~td,.table td~th,.table th~td,.table th~th{border-left:1px solid var(--pst-color-table-inner-border)}.table thead tr{background-color:var(--pst-color-table-heading-bg);border-bottom:2px solid var(--pst-color-primary)}.table tbody tr:nth-child(odd){background-color:var(--pst-color-table-row-zebra-low-bg)}.table tbody tr:nth-child(2n){background-color:var(--pst-color-table-row-zebra-high-bg)}.pst-scrollable-table-container{overflow-x:auto}.toctree-wrapper p.caption{font-size:1.5em;margin-bottom:0}.toctree-wrapper>ul{padding-left:0}.toctree-wrapper li[class^=toctree-l]{list-style:none;margin-bottom:.2em}.toctree-wrapper li[class^=toctree-l]>a{font-size:1.1em;list-style:none}.toctree-wrapper li[class^=toctree-l]>ul{list-style:none;padding-inline-start:1.5em}.toctree-wrapper .toctree-l1>a{font-size:1.3em}div.topic.contents ul.simple,nav.contents ul.simple{list-style:none;padding-left:0}div.math,span.math{align-items:center;display:flex;max-width:100%;overflow:hidden}span.math{align-items:baseline;display:inline-flex}div.math{flex-direction:row-reverse;gap:.5em}div.math span.eqno a.headerlink{font-size:1em;position:relative}div.math mjx-container{flex-grow:1;overflow:auto;padding-bottom:.2rem}div.math mjx-container mjx-assistive-mml{height:0}.ablog-sidebar-item .h2,.ablog-sidebar-item .h3,.ablog-sidebar-item h2,.ablog-sidebar-item h3{font-size:var(--pst-sidebar-header-font-size);margin-top:.5rem}.ablog-sidebar-item .h2 a,.ablog-sidebar-item .h3 a,.ablog-sidebar-item h2 a,.ablog-sidebar-item h3 a{color:var(--pst-color-text-base)}.ablog-sidebar-item ul{display:flex;flex-direction:column;gap:.5em;list-style:none;margin-bottom:0;overflow-y:hidden;padding-left:0}.ablog-sidebar-item ul.ablog-cloud{flex-flow:row wrap;gap:.5rem}.ablog-sidebar-item ul.ablog-cloud li{align-items:center;display:flex}.ablog__prev-next{display:flex;font-size:1.2em;padding:1rem 0}.ablog__prev-next>span{display:flex;max-width:45%}.ablog__prev-next>span a{align-items:center;display:flex;gap:1rem;line-height:1.5rem;margin-left:auto}.ablog__prev-next>span a i:before{color:var(--pst-color-text-base)}.ablog__prev-next span.ablog__prev i.fa-arrow-circle-left:before{content:var(--pst-icon-angle-left)}.ablog__prev-next span.ablog__spacer{display:none}.ablog__prev-next span.ablog__next{margin-left:auto;text-align:right}.ablog__prev-next span.ablog__next i.fa-arrow-circle-right:before{content:var(--pst-icon-angle-right)}.ablog__collection,.postlist{padding-left:0}.ablog__collection .ablog-post,.postlist .ablog-post{list-style:none}.ablog__collection .ablog-post .ablog-archive,.postlist .ablog-post .ablog-archive{display:flex;flex-flow:row wrap;font-size:.75rem;gap:1rem;list-style:none;padding-left:0}.ablog__collection .ablog-post .ablog-post-title,.postlist .ablog-post .ablog-post-title{font-size:1.25rem;margin-top:0}.ablog__collection .ablog-post .ablog-post-title a,.postlist .ablog-post .ablog-post-title a{font-weight:700}.ablog__collection .ablog-post .ablog-post-expand,.postlist .ablog-post .ablog-post-expand{margin-bottom:.5rem}.docutils.container{margin-left:unset;margin-right:unset;max-width:unset;padding-left:unset;padding-right:unset;width:unset}.btn{--bs-btn-focus-box-shadow:0 0 0 0.1875rem var(--pst-color-accent)}div.highlight button.copybtn{align-items:center;background-color:var(--pst-color-surface);border:none;display:flex;justify-content:center}div.highlight button.copybtn:not(.success){color:var(--pst-color-muted)}div.highlight button.copybtn:hover:not(.success){background-color:var(--pst-color-shadow);color:var(--pst-color-text)}div.highlight button.copybtn.o-tooltip--left:after{background-color:var(--pst-color-surface);color:var(--pst-color-text)}div.highlight button.copybtn:focus{opacity:1}div.highlight button.copybtn:focus-visible{outline:var(--pst-color-accent) solid .1875rem}div.highlight:has(button.copybtn){min-height:2em}#ethical-ad-placement .ethical-footer a,#ethical-ad-placement .ethical-footer a:active,#ethical-ad-placement .ethical-footer a:hover,#ethical-ad-placement .ethical-footer a:visited,#ethical-ad-placement .ethical-sidebar a,#ethical-ad-placement .ethical-sidebar a:active,#ethical-ad-placement .ethical-sidebar a:hover,#ethical-ad-placement .ethical-sidebar a:visited{color:var(--pst-color-text-base)}#ethical-ad-placement .ethical-footer,#ethical-ad-placement .ethical-sidebar{background-color:var(--pst-color-background);border:1px solid var(--pst-color-border);border-radius:5px;color:var(--pst-color-text-base);font-size:14px;line-height:20px}.bd-content div.jupyter_container{background-color:unset;border:none;box-shadow:none}.bd-content div.jupyter_container div.highlight,.bd-content div.jupyter_container div.output{border-radius:.25rem}.bd-content div.jupyter_container div.highlight{background-color:var(--pst-color-surface)}.bd-content div.jupyter_container .cell_input,.bd-content div.jupyter_container .cell_output{border-radius:.25rem}.bd-content div.jupyter_container .cell_input pre,.bd-content div.jupyter_container .cell_output pre{padding:1rem}section#inspiration-for-design-and-ux p.sd-card-text img{max-height:220 px;padding:10%;width:100%}html[data-theme=dark] div.graphviz>object.inheritance{color-scheme:normal;filter:brightness(.8) invert(.82) contrast(1.2)}html[data-theme=dark] pre.mermaid>svg{filter:brightness(.8) invert(.82) contrast(1.2)}.xr-wrap[hidden]{display:block!important}.jp-OutputArea-output.lm-Widget{overflow:auto}:root{--pst-teal-50:#f4fbfc;--pst-teal-100:#e9f6f8;--pst-teal-200:#d0ecf1;--pst-teal-300:#abdde6;--pst-teal-400:#3fb1c5;--pst-teal-500:#0a7d91;--pst-teal-600:#085d6c;--pst-teal-700:#064752;--pst-teal-800:#042c33;--pst-teal-900:#021b1f;--pst-violet-50:#f4eefb;--pst-violet-100:#e0c7ff;--pst-violet-200:#d5b4fd;--pst-violet-300:#b780ff;--pst-violet-400:#9c5ffd;--pst-violet-500:#8045e5;--pst-violet-600:#6432bd;--pst-violet-700:#4b258f;--pst-violet-800:#341a61;--pst-violet-900:#1e0e39;--pst-gray-50:#f9f9fa;--pst-gray-100:#f3f4f5;--pst-gray-200:#e5e7ea;--pst-gray-300:#d1d5da;--pst-gray-400:#9ca4af;--pst-gray-500:#677384;--pst-gray-600:#48566b;--pst-gray-700:#29313d;--pst-gray-800:#222832;--pst-gray-900:#14181e;--pst-pink-50:#fcf8fd;--pst-pink-100:#fcf0fa;--pst-pink-200:#f8dff5;--pst-pink-300:#f3c7ee;--pst-pink-400:#e47fd7;--pst-pink-500:#c132af;--pst-pink-600:#912583;--pst-pink-700:#6e1c64;--pst-pink-800:#46123f;--pst-pink-900:#2b0b27;--pst-foundation-white:#fff;--pst-foundation-black:#14181e}html:not([data-theme]){--pst-color-primary:#0a7d91;--pst-color-primary-bg:#d0ecf1;--pst-color-secondary:#8045e5;--pst-color-secondary-bg:#e0c7ff;--pst-color-accent:#c132af;--pst-color-accent-bg:#f8dff5;--pst-color-info:#276be9;--pst-color-info-bg:#dce7fc;--pst-color-warning:#f66a0a;--pst-color-warning-bg:#f8e3d0;--pst-color-success:#00843f;--pst-color-success-bg:#d6ece1;--pst-color-attention:var(--pst-color-warning);--pst-color-attention-bg:var(--pst-color-warning-bg);--pst-color-danger:#d72d47;--pst-color-danger-bg:#f9e1e4;--pst-color-text-base:#222832;--pst-color-text-muted:#48566b;--pst-color-shadow:rgba(0,0,0,.1);--pst-color-border:#d1d5da;--pst-color-border-muted:rgba(23,23,26,.2);--pst-color-blockquote-notch:#677384;--pst-color-inline-code:#912583;--pst-color-link-higher-contrast:#085d6c;--pst-color-target:#f3cf95;--pst-color-table:#14181e;--pst-color-table-row-hover-bg:#d5b4fd;--pst-color-table-inner-border:#e5e7ea;--pst-color-background:#fff;--pst-color-on-background:#fff;--pst-color-surface:#f3f4f5;--pst-color-on-surface:#222832;--pst-color-heading:var(--pst-color-text-base);--pst-color-link:var(--pst-color-primary);--pst-color-link-hover:var(--pst-color-secondary);--pst-color-table-outer-border:var(--pst-color-surface);--pst-color-table-heading-bg:var(--pst-color-surface);--pst-color-table-row-zebra-high-bg:var(--pst-color-on-background);--pst-color-table-row-zebra-low-bg:var(--pst-color-surface)}html:not([data-theme]) .only-dark,html:not([data-theme]) .only-dark~figcaption{display:none!important}html[data-theme=light]{--pst-color-primary-bg:#d0ecf1;--pst-color-secondary-bg:#e0c7ff;--pst-color-accent:#c132af;--pst-color-accent-bg:#f8dff5;--pst-color-info-bg:#dce7fc;--pst-color-warning-bg:#f8e3d0;--pst-color-success-bg:#d6ece1;--pst-color-attention:var(--pst-color-warning);--pst-color-attention-bg:var(--pst-color-warning-bg);--pst-color-danger-bg:#f9e1e4;--pst-color-text-base:#222832;--pst-color-text-muted:#48566b;--pst-color-shadow:rgba(0,0,0,.1);--pst-color-border:#d1d5da;--pst-color-border-muted:rgba(23,23,26,.2);--pst-color-blockquote-notch:#677384;--pst-color-inline-code:#912583;--pst-color-link-higher-contrast:#085d6c;--pst-color-target:#f3cf95;--pst-color-table:#14181e;--pst-color-table-row-hover-bg:#d5b4fd;--pst-color-table-inner-border:#e5e7ea;--pst-color-background:#fff;--pst-color-on-background:#fff;--pst-color-surface:#f3f4f5;--pst-color-on-surface:#222832;--pst-color-heading:var(--pst-color-text-base);--pst-color-link:var(--pst-color-primary);--pst-color-link-hover:var(--pst-color-secondary);--pst-color-table-outer-border:var(--pst-color-surface);--pst-color-table-heading-bg:var(--pst-color-surface);--pst-color-table-row-zebra-high-bg:var(--pst-color-on-background);--pst-color-table-row-zebra-low-bg:var(--pst-color-surface);color-scheme:light}html[data-theme=light] .only-dark,html[data-theme=light] .only-dark~figcaption{display:none!important}html[data-theme=dark]{--pst-color-primary-bg:#042c33;--pst-color-secondary-bg:#341a61;--pst-color-accent:#e47fd7;--pst-color-accent-bg:#46123f;--pst-color-info-bg:#06245d;--pst-color-warning-bg:#652a02;--pst-color-success-bg:#002f17;--pst-color-attention:var(--pst-color-warning);--pst-color-attention-bg:var(--pst-color-warning-bg);--pst-color-danger-bg:#4e111b;--pst-color-text-base:#ced6dd;--pst-color-text-muted:#9ca4af;--pst-color-shadow:rgba(0,0,0,.2);--pst-color-border:#48566b;--pst-color-border-muted:#29313d;--pst-color-blockquote-notch:#9ca4af;--pst-color-inline-code:#f3c7ee;--pst-color-link-higher-contrast:#3fb1c5;--pst-color-target:#675c04;--pst-color-table:#fff;--pst-color-table-row-hover-bg:#4b258f;--pst-color-table-inner-border:#364150;--pst-color-background:#14181e;--pst-color-on-background:#222832;--pst-color-surface:#29313d;--pst-color-on-surface:#f3f4f5;--pst-color-heading:var(--pst-color-text-base);--pst-color-link:var(--pst-color-primary);--pst-color-link-hover:var(--pst-color-secondary);--pst-color-table-outer-border:var(--pst-color-surface);--pst-color-table-heading-bg:var(--pst-color-surface);--pst-color-table-row-zebra-high-bg:var(--pst-color-on-background);--pst-color-table-row-zebra-low-bg:var(--pst-color-surface);color-scheme:dark}html[data-theme=dark] .only-light,html[data-theme=dark] .only-light~figcaption{display:none!important}html[data-theme=dark] img:not(.only-dark,.dark-light){filter:brightness(.8) contrast(1.2)}html[data-theme=dark] .bd-content img:not(.only-dark,.dark-light){background-color:#fff;border-radius:.25rem}html[data-theme=dark] .MathJax_SVG *{fill:var(--pst-color-text-base)}.pst-color-primary{color:var(--pst-color-primary)}.pst-color-secondary{color:var(--pst-color-secondary)}.pst-color-accent{color:var(--pst-color-accent)}.pst-color-info{color:var(--pst-color-info)}.pst-color-warning{color:var(--pst-color-warning)}.pst-color-success{color:var(--pst-color-success)}.pst-color-attention{color:var(--pst-color-attention)}.pst-color-danger{color:var(--pst-color-danger)}.pst-color-text-base{color:var(--pst-color-text-base)}.pst-color-text-muted{color:var(--pst-color-text-muted)}.pst-color-shadow{color:var(--pst-color-shadow)}.pst-color-border{color:var(--pst-color-border)}.pst-color-border-muted{color:var(--pst-color-border-muted)}.pst-color-blockquote-notch{color:var(--pst-color-blockquote-notch)}.pst-color-inline-code{color:var(--pst-color-inline-code)}.pst-color-link-higher-contrast{color:var(--pst-color-link-higher-contrast)}.pst-color-target{color:var(--pst-color-target)}.pst-color-table{color:var(--pst-color-table)}.pst-color-table-row-hover{color:var(--pst-color-table-row-hover)}.pst-color-table-inner-border{color:var(--pst-color-table-inner-border)}.pst-color-background{color:var(--pst-color-background)}.pst-color-on-background{color:var(--pst-color-on-background)}.pst-color-surface{color:var(--pst-color-surface)}.pst-color-on-surface{color:var(--pst-color-on-surface)}html[data-theme=light]{--pst-color-primary:#0a7d91;--pst-color-primary-text:#fff;--pst-color-primary-highlight:#086b7c;--sd-color-primary:var(--pst-color-primary);--sd-color-primary-text:var(--pst-color-primary-text);--sd-color-primary-highlight:var(--pst-color-primary-highlight);--pst-color-primary-highlight-text:#fff;--sd-color-primary-bg:#d0ecf1;--sd-color-primary-bg-text:#14181e;--pst-color-secondary:#8045e5;--pst-color-secondary-text:#fff;--pst-color-secondary-highlight:#651ee0;--sd-color-secondary:var(--pst-color-secondary);--sd-color-secondary-text:var(--pst-color-secondary-text);--sd-color-secondary-highlight:var(--pst-color-secondary-highlight);--pst-color-secondary-highlight-text:#fff;--sd-color-secondary-bg:#e0c7ff;--sd-color-secondary-bg-text:#14181e;--pst-color-success:#00843f;--pst-color-success-text:#fff;--pst-color-success-highlight:#007036;--sd-color-success:var(--pst-color-success);--sd-color-success-text:var(--pst-color-success-text);--sd-color-success-highlight:var(--pst-color-success-highlight);--pst-color-success-highlight-text:#fff;--sd-color-success-bg:#d6ece1;--sd-color-success-bg-text:#14181e;--pst-color-info:#276be9;--pst-color-info-text:#fff;--pst-color-info-highlight:#1457d3;--sd-color-info:var(--pst-color-info);--sd-color-info-text:var(--pst-color-info-text);--sd-color-info-highlight:var(--pst-color-info-highlight);--pst-color-info-highlight-text:#fff;--sd-color-info-bg:#dce7fc;--sd-color-info-bg-text:#14181e;--pst-color-warning:#f66a0a;--pst-color-warning-text:#14181e;--pst-color-warning-highlight:#d25a07;--sd-color-warning:var(--pst-color-warning);--sd-color-warning-text:var(--pst-color-warning-text);--sd-color-warning-highlight:var(--pst-color-warning-highlight);--pst-color-warning-highlight-text:#14181e;--sd-color-warning-bg:#f8e3d0;--sd-color-warning-bg-text:#14181e;--pst-color-danger:#d72d47;--pst-color-danger-text:#fff;--pst-color-danger-highlight:#bb2239;--sd-color-danger:var(--pst-color-danger);--sd-color-danger-text:var(--pst-color-danger-text);--sd-color-danger-highlight:var(--pst-color-danger-highlight);--pst-color-danger-highlight-text:#fff;--sd-color-danger-bg:#f9e1e4;--sd-color-danger-bg-text:#14181e;--pst-color-light:#f3f4f5;--pst-color-light-text:#14181e;--pst-color-light-highlight:#c9cfd6;--sd-color-light:var(--pst-color-light);--sd-color-light-text:var(--pst-color-light-text);--sd-color-light-highlight:var(--pst-color-light-highlight);--pst-color-light-highlight-text:#14181e;--sd-color-light-bg:#f7f7f8;--sd-color-light-bg-text:#14181e;--pst-color-muted:#29313d;--pst-color-muted-text:#fff;--pst-color-muted-highlight:#212936;--sd-color-muted:var(--pst-color-muted);--sd-color-muted-text:var(--pst-color-muted-text);--sd-color-muted-highlight:var(--pst-color-muted-highlight);--pst-color-muted-highlight-text:#fff;--sd-color-muted-bg:#5a6c86;--sd-color-muted-bg-text:#fff;--pst-color-dark:#222832;--pst-color-dark-text:#fff;--pst-color-dark-highlight:#1b222c;--sd-color-dark:var(--pst-color-dark);--sd-color-dark-text:var(--pst-color-dark-text);--sd-color-dark-highlight:var(--pst-color-dark-highlight);--pst-color-dark-highlight-text:#fff;--pst-color-black:#14181e;--pst-color-black-text:#fff;--pst-color-black-highlight:#10141a;--sd-color-black:var(--pst-color-black);--sd-color-black-text:var(--pst-color-black-text);--sd-color-black-highlight:var(--pst-color-black-highlight);--pst-color-black-highlight-text:#fff;--pst-color-white:#fff;--pst-color-white-text:#14181e;--pst-color-white-highlight:#dbd7d7;--sd-color-white:var(--pst-color-white);--sd-color-white-text:var(--pst-color-white-text);--sd-color-white-highlight:var(--pst-color-white-highlight);--pst-color-white-highlight-text:#14181e}html[data-theme=dark]{--pst-color-primary:#3fb1c5;--pst-color-primary-text:#14181e;--pst-color-primary-highlight:#319aac;--sd-color-primary:var(--pst-color-primary);--sd-color-primary-text:var(--pst-color-primary-text);--sd-color-primary-highlight:var(--pst-color-primary-highlight);--pst-color-primary-highlight-text:#14181e;--sd-color-primary-bg:#042c33;--sd-color-primary-bg-text:#fff;--pst-color-secondary:#9c5ffd;--pst-color-secondary-text:#14181e;--pst-color-secondary-highlight:#7c2bfc;--sd-color-secondary:var(--pst-color-secondary);--sd-color-secondary-text:var(--pst-color-secondary-text);--sd-color-secondary-highlight:var(--pst-color-secondary-highlight);--pst-color-secondary-highlight-text:#fff;--sd-color-secondary-bg:#341a61;--sd-color-secondary-bg-text:#fff;--pst-color-success:#5fb488;--pst-color-success-text:#14181e;--pst-color-success-highlight:#47a373;--sd-color-success:var(--pst-color-success);--sd-color-success-text:var(--pst-color-success-text);--sd-color-success-highlight:var(--pst-color-success-highlight);--pst-color-success-highlight-text:#14181e;--sd-color-success-bg:#002f17;--sd-color-success-bg-text:#fff;--pst-color-info:#79a3f2;--pst-color-info-text:#14181e;--pst-color-info-highlight:#4681ee;--sd-color-info:var(--pst-color-info);--sd-color-info-text:var(--pst-color-info-text);--sd-color-info-highlight:var(--pst-color-info-highlight);--pst-color-info-highlight-text:#14181e;--sd-color-info-bg:#06245d;--sd-color-info-bg-text:#fff;--pst-color-warning:#ff9245;--pst-color-warning-text:#14181e;--pst-color-warning-highlight:#ff7614;--sd-color-warning:var(--pst-color-warning);--sd-color-warning-text:var(--pst-color-warning-text);--sd-color-warning-highlight:var(--pst-color-warning-highlight);--pst-color-warning-highlight-text:#14181e;--sd-color-warning-bg:#652a02;--sd-color-warning-bg-text:#fff;--pst-color-danger:#e78894;--pst-color-danger-text:#14181e;--pst-color-danger-highlight:#df596a;--sd-color-danger:var(--pst-color-danger);--sd-color-danger-text:var(--pst-color-danger-text);--sd-color-danger-highlight:var(--pst-color-danger-highlight);--pst-color-danger-highlight-text:#14181e;--sd-color-danger-bg:#4e111b;--sd-color-danger-bg-text:#fff;--pst-color-light:#f3f4f5;--pst-color-light-text:#14181e;--pst-color-light-highlight:#c9cfd6;--sd-color-light:var(--pst-color-light);--sd-color-light-text:var(--pst-color-light-text);--sd-color-light-highlight:var(--pst-color-light-highlight);--pst-color-light-highlight-text:#14181e;--sd-color-light-bg:#a3abb2;--sd-color-light-bg-text:#14181e;--pst-color-muted:#f3f4f5;--pst-color-muted-text:#14181e;--pst-color-muted-highlight:#c9cfd6;--sd-color-muted:var(--pst-color-muted);--sd-color-muted-text:var(--pst-color-muted-text);--sd-color-muted-highlight:var(--pst-color-muted-highlight);--pst-color-muted-highlight-text:#14181e;--sd-color-muted-bg:#1d222b;--sd-color-muted-bg-text:#fff;--pst-color-dark:#222832;--pst-color-dark-text:#fff;--pst-color-dark-highlight:#1b222c;--sd-color-dark:var(--pst-color-dark);--sd-color-dark-text:var(--pst-color-dark-text);--sd-color-dark-highlight:var(--pst-color-dark-highlight);--pst-color-dark-highlight-text:#fff;--pst-color-black:#14181e;--pst-color-black-text:#fff;--pst-color-black-highlight:#10141a;--sd-color-black:var(--pst-color-black);--sd-color-black-text:var(--pst-color-black-text);--sd-color-black-highlight:var(--pst-color-black-highlight);--pst-color-black-highlight-text:#fff;--pst-color-white:#fff;--pst-color-white-text:#14181e;--pst-color-white-highlight:#dbd7d7;--sd-color-white:var(--pst-color-white);--sd-color-white-text:var(--pst-color-white-text);--sd-color-white-highlight:var(--pst-color-white-highlight);--pst-color-white-highlight-text:#14181e}html[data-theme=dark],html[data-theme=light]{--sd-color-card-border:var(--pst-color-border)}html[data-theme=light] .sd-shadow-lg,html[data-theme=light] .sd-shadow-md,html[data-theme=light] .sd-shadow-sm,html[data-theme=light] .sd-shadow-xs{box-shadow:0 .2rem .5rem var(--pst-color-shadow),0 0 .0625rem var(--pst-color-shadow)!important}.bd-content .sd-card{border:1px solid var(--pst-color-border);overflow:hidden}.bd-content .sd-card .sd-card-header{background-color:var(--pst-color-on-background);border-bottom:1px solid var(--pst-color-border)}.bd-content .sd-card .sd-card-footer{border-top:1px solid var(--pst-color-border)}.bd-content .sd-card .sd-card-body,.bd-content .sd-card .sd-card-footer{background-color:var(--pst-color-on-background)}.bd-content .sd-card .sd-stretched-link:focus-visible{outline:none}.bd-content .sd-card .sd-stretched-link:focus-visible:after{border-radius:.25rem;outline:var(--pst-color-accent) solid .1875rem}.bd-content .sd-card.sd-card-hover:hover{border-color:var(--pst-color-link-hover)}.bd-content .sd-tab-set>input:checked+label{background-color:var(--pst-color-on-background);border-color:var(--pst-color-primary) var(--pst-color-primary) transparent;border-radius:.125rem .125rem 0 0;border-style:solid solid none;border-width:.125rem .125rem 0;color:var(--pst-color-primary);transform:translateY(.125rem)}.bd-content .sd-tab-set>input:focus-visible+label{background-color:var(--pst-color-accent-bg);border:.125rem solid var(--pst-color-accent);border-radius:.125rem;color:var(--pst-color-on-surface)}.bd-content .sd-tab-set>input:not(:checked,:focus-visible)+label:hover{border-color:transparent;color:var(--pst-color-secondary);text-decoration-line:underline;text-decoration-thickness:max(3px,.1875rem,.12em)}.bd-content .sd-tab-set>label{background-color:var(--pst-color-surface);border:.125rem solid transparent;border-radius:.125rem .125rem 0 0;color:var(--pst-color-on-surface);line-height:1.95;margin-inline-end:.25rem;padding:0 .75em}.bd-content .sd-tab-set .sd-tab-content,html[data-theme=dark] .bd-content .sd-tab-set>label{background-color:var(--pst-color-on-background)}.bd-content .sd-tab-set .sd-tab-content{border:.125rem solid var(--pst-color-primary);border-radius:.1875rem;box-shadow:unset;padding:.625rem}details.sd-dropdown{border:0!important;box-shadow:0 .2rem .5rem var(--pst-color-shadow),0 0 .0625rem var(--pst-color-shadow)!important}details.sd-dropdown summary.sd-card-header{align-items:center;border:0!important;display:flex;font-weight:600;padding-bottom:.5rem;padding-top:.5rem;position:relative;--pst-sd-dropdown-color:var(--pst-gray-500);--pst-sd-dropdown-bg-color:var(--pst-color-surface);background-color:var(--pst-sd-dropdown-bg-color)!important;border-left:.2rem solid var(--pst-sd-dropdown-color)!important}details.sd-dropdown summary.sd-card-header+div.sd-summary-content{border:0;--pst-sd-dropdown-color:var(--sd-color-card-border)}details.sd-dropdown summary.sd-card-header.sd-bg-primary,details.sd-dropdown summary.sd-card-header.sd-bg-primary+div.sd-summary-content{--pst-sd-dropdown-color:var(--sd-color-primary);--pst-sd-dropdown-bg-color:var(--sd-color-primary-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-text-primary{color:var(--sd-color-primary-bg-text)!important}details.sd-dropdown summary.sd-card-header.sd-bg-secondary,details.sd-dropdown summary.sd-card-header.sd-bg-secondary+div.sd-summary-content{--pst-sd-dropdown-color:var(--sd-color-secondary);--pst-sd-dropdown-bg-color:var(--sd-color-secondary-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-text-secondary{color:var(--sd-color-secondary-bg-text)!important}details.sd-dropdown summary.sd-card-header.sd-bg-success,details.sd-dropdown summary.sd-card-header.sd-bg-success+div.sd-summary-content{--pst-sd-dropdown-color:var(--sd-color-success);--pst-sd-dropdown-bg-color:var(--sd-color-success-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-text-success{color:var(--sd-color-success-bg-text)!important}details.sd-dropdown summary.sd-card-header.sd-bg-info,details.sd-dropdown summary.sd-card-header.sd-bg-info+div.sd-summary-content{--pst-sd-dropdown-color:var(--sd-color-info);--pst-sd-dropdown-bg-color:var(--sd-color-info-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-text-info{color:var(--sd-color-info-bg-text)!important}details.sd-dropdown summary.sd-card-header.sd-bg-warning,details.sd-dropdown summary.sd-card-header.sd-bg-warning+div.sd-summary-content{--pst-sd-dropdown-color:var(--sd-color-warning);--pst-sd-dropdown-bg-color:var(--sd-color-warning-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-text-warning{color:var(--sd-color-warning-bg-text)!important}details.sd-dropdown summary.sd-card-header.sd-bg-danger,details.sd-dropdown summary.sd-card-header.sd-bg-danger+div.sd-summary-content{--pst-sd-dropdown-color:var(--sd-color-danger);--pst-sd-dropdown-bg-color:var(--sd-color-danger-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-text-danger{color:var(--sd-color-danger-bg-text)!important}details.sd-dropdown summary.sd-card-header.sd-bg-light,details.sd-dropdown summary.sd-card-header.sd-bg-light+div.sd-summary-content{--pst-sd-dropdown-color:var(--sd-color-light);--pst-sd-dropdown-bg-color:var(--sd-color-light-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-text-light{color:var(--sd-color-light-bg-text)!important}details.sd-dropdown summary.sd-card-header.sd-bg-muted,details.sd-dropdown summary.sd-card-header.sd-bg-muted+div.sd-summary-content{--pst-sd-dropdown-color:var(--sd-color-muted);--pst-sd-dropdown-bg-color:var(--sd-color-muted-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-text-muted{color:var(--sd-color-muted-bg-text)!important}details.sd-dropdown summary.sd-card-header.sd-bg-dark,details.sd-dropdown summary.sd-card-header.sd-bg-dark+div.sd-summary-content{--pst-sd-dropdown-color:var(--sd-color-dark);--pst-sd-dropdown-bg-color:var(--sd-color-dark-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-text-dark{color:var(--sd-color-dark-bg-text)!important}details.sd-dropdown summary.sd-card-header.sd-bg-black,details.sd-dropdown summary.sd-card-header.sd-bg-black+div.sd-summary-content{--pst-sd-dropdown-color:var(--sd-color-black);--pst-sd-dropdown-bg-color:var(--sd-color-black-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-text-black{color:var(--sd-color-black-bg-text)!important}details.sd-dropdown summary.sd-card-header.sd-bg-white,details.sd-dropdown summary.sd-card-header.sd-bg-white+div.sd-summary-content{--pst-sd-dropdown-color:var(--sd-color-white);--pst-sd-dropdown-bg-color:var(--sd-color-white-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-text-white{color:var(--sd-color-white-bg-text)!important}details.sd-dropdown summary.sd-card-header:before{content:"";height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:-1}details.sd-dropdown summary.sd-card-header+div.sd-summary-content{background-color:var(--pst-color-on-background);border-bottom-left-radius:calc(.25rem - 1px);border-left:.2rem solid var(--pst-sd-dropdown-color)!important}details.sd-dropdown summary.sd-card-header span.sd-summary-icon{align-items:center;color:var(--pst-sd-dropdown-color)!important;display:inline-flex}details.sd-dropdown summary.sd-card-header span.sd-summary-icon svg{opacity:1}details.sd-dropdown summary.sd-card-header .sd-summary-down,details.sd-dropdown summary.sd-card-header .sd-summary-up{top:.7rem}details.sd-dropdown summary.sd-card-header:hover{filter:brightness(.9)}html[data-theme=dark] details.sd-dropdown summary.sd-card-header:hover{filter:brightness(1.1)}details.sd-dropdown summary.sd-card-header:focus:focus-visible{border-radius:.1875rem;outline:var(--pst-color-accent) solid .1875rem;outline-offset:.125rem}details.sd-dropdown[open] summary.sd-card-header:focus:focus-visible{border-bottom-left-radius:0;border-bottom-right-radius:0}html .sd-btn{min-width:2.25rem;padding:.3125rem .75rem .4375rem}html .sd-btn:hover{color:var(--pst-color-link-hover);text-decoration:underline;text-decoration-skip-ink:none;text-decoration-thickness:max(1px,.0625rem);text-decoration-thickness:max(3px,.1875rem,.12em);text-decoration-thickness:1px;text-underline-offset:.1578em}html .sd-btn-primary:hover{color:var(--pst-color-primary-highlight-text)!important}html .sd-btn-secondary:hover{color:var(--pst-color-secondary-highlight-text)!important}html .sd-btn-success:hover{color:var(--pst-color-success-highlight-text)!important}html .sd-btn-info:hover{color:var(--pst-color-info-highlight-text)!important}html .sd-btn-warning:hover{color:var(--pst-color-warning-highlight-text)!important}html .sd-btn-danger:hover{color:var(--pst-color-danger-highlight-text)!important}html .sd-btn-light:hover{color:var(--pst-color-light-highlight-text)!important}html .sd-btn-muted:hover{color:var(--pst-color-muted-highlight-text)!important}html .sd-btn-dark:hover{color:var(--pst-color-dark-highlight-text)!important}html .sd-btn-black:hover{color:var(--pst-color-black-highlight-text)!important}html .sd-btn-white:hover{color:var(--pst-color-white-highlight-text)!important}html .sd-btn-outline-primary:focus-visible,html .sd-btn-primary:focus-visible{background-color:var(--sd-color-primary)!important;border-color:var(--sd-color-primary)!important;border-radius:.1875rem;outline:var(--sd-color-primary) solid .1875rem;outline-offset:.125rem}html .sd-btn-outline-secondary:focus-visible,html .sd-btn-secondary:focus-visible{background-color:var(--sd-color-secondary)!important;border-color:var(--sd-color-secondary)!important;border-radius:.1875rem;outline:var(--sd-color-secondary) solid .1875rem;outline-offset:.125rem}html .sd-btn-outline-success:focus-visible,html .sd-btn-success:focus-visible{background-color:var(--sd-color-success)!important;border-color:var(--sd-color-success)!important;border-radius:.1875rem;outline:var(--sd-color-success) solid .1875rem;outline-offset:.125rem}html .sd-btn-info:focus-visible,html .sd-btn-outline-info:focus-visible{background-color:var(--sd-color-info)!important;border-color:var(--sd-color-info)!important;border-radius:.1875rem;outline:var(--sd-color-info) solid .1875rem;outline-offset:.125rem}html .sd-btn-outline-warning:focus-visible,html .sd-btn-warning:focus-visible{background-color:var(--sd-color-warning)!important;border-color:var(--sd-color-warning)!important;border-radius:.1875rem;outline:var(--sd-color-warning) solid .1875rem;outline-offset:.125rem}html .sd-btn-danger:focus-visible,html .sd-btn-outline-danger:focus-visible{background-color:var(--sd-color-danger)!important;border-color:var(--sd-color-danger)!important;border-radius:.1875rem;outline:var(--sd-color-danger) solid .1875rem;outline-offset:.125rem}html .sd-btn-light:focus-visible,html .sd-btn-outline-light:focus-visible{background-color:var(--sd-color-light)!important;border-color:var(--sd-color-light)!important;border-radius:.1875rem;outline:var(--sd-color-light) solid .1875rem;outline-offset:.125rem}html .sd-btn-muted:focus-visible,html .sd-btn-outline-muted:focus-visible{background-color:var(--sd-color-muted)!important;border-color:var(--sd-color-muted)!important;border-radius:.1875rem;outline:var(--sd-color-muted) solid .1875rem;outline-offset:.125rem}html .sd-btn-dark:focus-visible,html .sd-btn-outline-dark:focus-visible{background-color:var(--sd-color-dark)!important;border-color:var(--sd-color-dark)!important;border-radius:.1875rem;outline:var(--sd-color-dark) solid .1875rem;outline-offset:.125rem}html .sd-btn-black:focus-visible,html .sd-btn-outline-black:focus-visible{background-color:var(--sd-color-black)!important;border-color:var(--sd-color-black)!important;border-radius:.1875rem;outline:var(--sd-color-black) solid .1875rem;outline-offset:.125rem}html .sd-btn-outline-white:focus-visible,html .sd-btn-white:focus-visible{background-color:var(--sd-color-white)!important;border-color:var(--sd-color-white)!important;border-radius:.1875rem;outline:var(--sd-color-white) solid .1875rem;outline-offset:.125rem}.bd-content .dropdown.admonition.toggle .admonition-title:hover .tb-icon{opacity:1;scale:1.1}.bd-content .dropdown.admonition.toggle .admonition-title .tb-icon{opacity:.6}.bd-content .dropdown.admonition.toggle .admonition-title:hover{filter:brightness(.9)}html[data-theme=dark] .bd-content .dropdown.admonition.toggle .admonition-title:hover{filter:brightness(1.1)}.bd-content .dropdown.admonition.toggle .admonition-title:hover{box-shadow:none}.bd-content .dropdown.admonition.toggle button.toggle-button{color:inherit}.bd-content .dropdown.admonition.toggle button.toggle-button.toggle-button-hidden .toggle-chevron-right{transform:rotate(90deg);transition:none}.bd-content .dropdown.admonition.toggle button.toggle-button .toggle-chevron-right{transform:rotate(-90deg);transition:none}.bd-content .dropdown.admonition.toggle:has(:focus-visible){overflow:visible}.bd-content .dropdown.admonition.toggle:has(:focus-visible) .admonition-title:before{border-radius:.1875rem;content:"";height:100%;left:-.2rem;outline:var(--pst-color-accent) solid .1875rem;outline-offset:.125rem;width:calc(100% + .2rem)}.bd-content .dropdown.admonition.toggle:has(:focus-visible):not(.toggle-hidden) .admonition-title:before{border-bottom-left-radius:0;border-bottom-right-radius:0}.bd-content details.toggle-details summary{border-left:3px solid var(--pst-color-primary)}.bd-content details.toggle-details summary .toggle-chevron-right{transform:rotate(90deg);transition:none}.bd-content details.toggle-details summary:hover .tb-icon{opacity:1;scale:1.1}.bd-content details.toggle-details summary .tb-icon{opacity:.6}.bd-content details.toggle-details summary:hover{filter:brightness(.9)}html[data-theme=dark] .bd-content details.toggle-details summary:hover{filter:brightness(1.1)}.bd-content details.toggle-details summary:hover{box-shadow:none}.bd-content details.toggle-details summary:focus-visible{outline-offset:.125rem}.bd-content details.toggle-details[open] .toggle-chevron-right{transform:rotate(-90deg);transition:none}.bd-content details.toggle-details[open] :focus-visible{border-bottom-left-radius:0;border-bottom-right-radius:0}html .jp-RenderedHTMLCommon,html div.rendered_html{margin:.1875rem}html .jp-RenderedHTMLCommon table,html div.rendered_html table{table-layout:auto}.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe,.bd-content .nboutput .output_area.rendered_html table.dataframe{border:1px solid var(--pst-color-table-outer-border);color:var(--pst-color-table)}.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe a,.bd-content .nboutput .output_area.rendered_html table.dataframe a{color:var(--pst-color-link-higher-contrast)}.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe td~td,.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe td~th,.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe th~td,.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe th~th,.bd-content .nboutput .output_area.rendered_html table.dataframe td~td,.bd-content .nboutput .output_area.rendered_html table.dataframe td~th,.bd-content .nboutput .output_area.rendered_html table.dataframe th~td,.bd-content .nboutput .output_area.rendered_html table.dataframe th~th{border-left:1px solid var(--pst-color-table-inner-border)}.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe thead tr,.bd-content .nboutput .output_area.rendered_html table.dataframe thead tr{background-color:var(--pst-color-table-heading-bg);border-bottom:2px solid var(--pst-color-primary)}.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe tbody tr:nth-child(odd),.bd-content .nboutput .output_area.rendered_html table.dataframe tbody tr:nth-child(odd){background-color:var(--pst-color-table-row-zebra-low-bg)}.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe tbody tr:nth-child(2n),.bd-content .nboutput .output_area.rendered_html table.dataframe tbody tr:nth-child(2n){background-color:var(--pst-color-table-row-zebra-high-bg)}.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe tbody tr:hover,.bd-content .nboutput .output_area.rendered_html table.dataframe tbody tr:hover{background-color:var(--pst-color-table-row-hover-bg)}html[data-theme=dark] .bd-content .nboutput .output_area .widget-subarea,html[data-theme=dark] .bd-content .nboutput .output_area.rendered_html:not(:has(table.dataframe)){background-color:var(--pst-color-text-base);border-radius:.25rem;color:var(--pst-color-on-background);padding:.5rem}html[data-theme=dark] .bd-content .nboutput .output_area.stderr{background-color:var(--pst-color-danger)}div.nblast.container{margin-bottom:1rem}html[data-theme=light] .nbinput.container .prompt pre{color:#005b82}html[data-theme=dark] .nbinput.container .prompt pre{color:#00e0e0}html[data-theme=light] .nboutput.container .prompt pre{color:#a12236}html[data-theme=dark] .nboutput.container .prompt pre{color:#ffa07a}div.cell_output .output{max-width:100%;overflow-x:auto}.bd-content div.cell_output table.dataframe{border:1px solid var(--pst-color-table-outer-border);color:var(--pst-color-table)}.bd-content div.cell_output table.dataframe a{color:var(--pst-color-link-higher-contrast)}.bd-content div.cell_output table.dataframe td~td,.bd-content div.cell_output table.dataframe td~th,.bd-content div.cell_output table.dataframe th~td,.bd-content div.cell_output table.dataframe th~th{border-left:1px solid var(--pst-color-table-inner-border)}.bd-content div.cell_output table.dataframe thead tr{background-color:var(--pst-color-table-heading-bg);border-bottom:2px solid var(--pst-color-primary)}.bd-content div.cell_output table.dataframe tbody tr:nth-child(odd){background-color:var(--pst-color-table-row-zebra-low-bg)}.bd-content div.cell_output table.dataframe tbody tr:nth-child(2n){background-color:var(--pst-color-table-row-zebra-high-bg)}.bd-content div.cell_output table.dataframe tbody tr:hover{background-color:var(--pst-color-table-row-hover-bg)}html[data-theme=dark] .bd-content div.cell_output .text_html:not(:has(table.dataframe)),html[data-theme=dark] .bd-content div.cell_output .widget-subarea,html[data-theme=dark] .bd-content div.cell_output img{background-color:var(--pst-color-text-base);border-radius:.25rem;color:var(--pst-color-on-background);padding:.5rem}.bd-content div.cell_input{display:flex;flex-direction:column;justify-content:stretch}.bd-content div.cell_input,.bd-content div.output{border-radius:.25rem}.bd-content div.output table{table-layout:auto}html[data-theme=dark] .bd-content img.leaflet-tile.leaflet-tile-loaded{border-radius:0;padding:0}.bd-search-container div#search-results>.h2,.bd-search-container div#search-results>h2{font-size:var(--pst-font-size-icon);margin-top:1rem}.bd-search-container div#search-results p.search-summary{color:var(--pst-color-text-muted)}.bd-search-container ul.search{list-style:none;margin:0}.bd-search-container ul.search li{background-image:none;border-top:1px solid var(--pst-color-text-muted);margin:1rem 0;padding:1rem 0}.bd-search-container ul.search li>a{font-size:1.2em}.bd-search-container ul.search li div.context,.bd-search-container ul.search li p.context{color:var(--pst-color-text-base);margin:.5em 0 0}.bd-search-container ul.search li div.context a:before,.bd-search-container ul.search li p.context a:before{color:var(--pst-color-text-muted);content:"#";padding-right:.2em} + )}.table a{color:var(--pst-color-link-higher-contrast)}.table td~td,.table td~th,.table th~td,.table th~th{border-left:1px solid var(--pst-color-table-inner-border)}.table thead tr{background-color:var(--pst-color-table-heading-bg);border-bottom:2px solid var(--pst-color-primary)}.table tbody tr:nth-child(odd){background-color:var(--pst-color-table-row-zebra-low-bg)}.table tbody tr:nth-child(2n){background-color:var(--pst-color-table-row-zebra-high-bg)}.pst-scrollable-table-container{overflow-x:auto}.toctree-wrapper p.caption{font-size:1.5em;margin-bottom:0}.toctree-wrapper>ul{padding-left:0}.toctree-wrapper li[class^=toctree-l]{list-style:none;margin-bottom:.2em}.toctree-wrapper li[class^=toctree-l]>a{font-size:1.1em;list-style:none}.toctree-wrapper li[class^=toctree-l]>ul{list-style:none;padding-inline-start:1.5em}.toctree-wrapper .toctree-l1>a{font-size:1.3em}div.topic.contents ul.simple,nav.contents ul.simple{list-style:none;padding-left:0}div.math,span.math{align-items:center;display:flex;max-width:100%;overflow:hidden}span.math{align-items:baseline;display:inline-flex}div.math{flex-direction:row-reverse;gap:.5em}div.math span.eqno a.headerlink{font-size:1em;position:relative}div.math mjx-container{flex-grow:1;overflow:auto hidden;padding-bottom:.2rem}div.math mjx-container mjx-assistive-mml{height:0}.ablog-sidebar-item .h2,.ablog-sidebar-item .h3,.ablog-sidebar-item h2,.ablog-sidebar-item h3{font-size:var(--pst-sidebar-header-font-size);margin-top:.5rem}.ablog-sidebar-item .h2 a,.ablog-sidebar-item .h3 a,.ablog-sidebar-item h2 a,.ablog-sidebar-item h3 a{color:var(--pst-color-text-base)}.ablog-sidebar-item ul{display:flex;flex-direction:column;gap:.5em;list-style:none;margin-bottom:0;overflow-y:hidden;padding-left:0}.ablog-sidebar-item ul.ablog-cloud{flex-flow:row wrap;gap:.5rem}.ablog-sidebar-item ul.ablog-cloud li{align-items:center;display:flex}.ablog__prev-next{display:flex;font-size:1.2em;padding:1rem 0}.ablog__prev-next>span{display:flex;max-width:45%}.ablog__prev-next>span a{align-items:center;display:flex;gap:1rem;line-height:1.5rem;margin-left:auto}.ablog__prev-next>span a i:before{color:var(--pst-color-text-base)}.ablog__prev-next span.ablog__prev i.fa-arrow-circle-left:before{content:var(--pst-icon-angle-left)}.ablog__prev-next span.ablog__spacer{display:none}.ablog__prev-next span.ablog__next{margin-left:auto;text-align:right}.ablog__prev-next span.ablog__next i.fa-arrow-circle-right:before{content:var(--pst-icon-angle-right)}.ablog__collection,.postlist{padding-left:0}.ablog__collection .ablog-post,.postlist .ablog-post{list-style:none}.ablog__collection .ablog-post .ablog-archive,.postlist .ablog-post .ablog-archive{display:flex;flex-flow:row wrap;font-size:.75rem;gap:1rem;list-style:none;padding-left:0}.ablog__collection .ablog-post .ablog-post-title,.postlist .ablog-post .ablog-post-title{font-size:1.25rem;margin-top:0}.ablog__collection .ablog-post .ablog-post-title a,.postlist .ablog-post .ablog-post-title a{font-weight:700}.ablog__collection .ablog-post .ablog-post-expand,.postlist .ablog-post .ablog-post-expand{margin-bottom:.5rem}.docutils.container{margin-left:unset;margin-right:unset;max-width:unset;padding-left:unset;padding-right:unset;width:unset}.btn{--bs-btn-focus-box-shadow:0 0 0 0.1875rem var(--pst-color-accent)}div.highlight button.copybtn{align-items:center;background-color:var(--pst-color-surface);border:none;display:flex;justify-content:center}div.highlight button.copybtn:not(.success){color:var(--pst-color-muted)}div.highlight button.copybtn:hover:not(.success){background-color:var(--pst-color-shadow);color:var(--pst-color-text)}div.highlight button.copybtn.o-tooltip--left:after{background-color:var(--pst-color-surface);color:var(--pst-color-text)}div.highlight button.copybtn:focus{opacity:1}div.highlight button.copybtn:focus-visible{outline:var(--pst-color-accent) solid .1875rem}div.highlight:has(button.copybtn){min-height:2em}#ethical-ad-placement .ethical-footer a,#ethical-ad-placement .ethical-footer a:active,#ethical-ad-placement .ethical-footer a:hover,#ethical-ad-placement .ethical-footer a:visited,#ethical-ad-placement .ethical-sidebar a,#ethical-ad-placement .ethical-sidebar a:active,#ethical-ad-placement .ethical-sidebar a:hover,#ethical-ad-placement .ethical-sidebar a:visited{color:var(--pst-color-text-base)}#ethical-ad-placement .ethical-footer,#ethical-ad-placement .ethical-sidebar{background-color:var(--pst-color-background);border:1px solid var(--pst-color-border);border-radius:5px;color:var(--pst-color-text-base);font-size:14px;line-height:20px}.bd-content div.jupyter_container{background-color:unset;border:none;box-shadow:none}.bd-content div.jupyter_container div.highlight,.bd-content div.jupyter_container div.output{border-radius:.25rem}.bd-content div.jupyter_container div.highlight{background-color:var(--pst-color-surface)}.bd-content div.jupyter_container .cell_input,.bd-content div.jupyter_container .cell_output{border-radius:.25rem}.bd-content div.jupyter_container .cell_input pre,.bd-content div.jupyter_container .cell_output pre{padding:1rem}section#inspiration-for-design-and-ux p.sd-card-text img{max-height:220 px;padding:10%;width:100%}html[data-theme=dark] div.graphviz>object.inheritance{color-scheme:normal;filter:brightness(.8) invert(.82) contrast(1.2)}html[data-theme=dark] pre.mermaid>svg{filter:brightness(.8) invert(.82) contrast(1.2)}.xr-wrap[hidden]{display:block!important}.jp-OutputArea-output.lm-Widget{overflow:auto}:root{--pst-teal-50:#f4fbfc;--pst-teal-100:#e9f6f8;--pst-teal-200:#d0ecf1;--pst-teal-300:#abdde6;--pst-teal-400:#3fb1c5;--pst-teal-500:#0a7d91;--pst-teal-600:#085d6c;--pst-teal-700:#064752;--pst-teal-800:#042c33;--pst-teal-900:#021b1f;--pst-violet-50:#f4eefb;--pst-violet-100:#e0c7ff;--pst-violet-200:#d5b4fd;--pst-violet-300:#b780ff;--pst-violet-400:#9c5ffd;--pst-violet-500:#8045e5;--pst-violet-600:#6432bd;--pst-violet-700:#4b258f;--pst-violet-800:#341a61;--pst-violet-900:#1e0e39;--pst-gray-50:#f9f9fa;--pst-gray-100:#f3f4f5;--pst-gray-200:#e5e7ea;--pst-gray-300:#d1d5da;--pst-gray-400:#9ca4af;--pst-gray-500:#677384;--pst-gray-600:#48566b;--pst-gray-700:#29313d;--pst-gray-800:#222832;--pst-gray-900:#14181e;--pst-pink-50:#fcf8fd;--pst-pink-100:#fcf0fa;--pst-pink-200:#f8dff5;--pst-pink-300:#f3c7ee;--pst-pink-400:#e47fd7;--pst-pink-500:#c132af;--pst-pink-600:#912583;--pst-pink-700:#6e1c64;--pst-pink-800:#46123f;--pst-pink-900:#2b0b27;--pst-foundation-white:#fff;--pst-foundation-black:#14181e}html:not([data-theme]){--pst-color-primary:#0a7d91;--pst-color-primary-bg:#d0ecf1;--pst-color-secondary:#8045e5;--pst-color-secondary-bg:#e0c7ff;--pst-color-accent:#c132af;--pst-color-accent-bg:#f8dff5;--pst-color-info:#276be9;--pst-color-info-bg:#dce7fc;--pst-color-warning:#f66a0a;--pst-color-warning-bg:#f8e3d0;--pst-color-success:#00843f;--pst-color-success-bg:#d6ece1;--pst-color-attention:var(--pst-color-warning);--pst-color-attention-bg:var(--pst-color-warning-bg);--pst-color-danger:#d72d47;--pst-color-danger-bg:#f9e1e4;--pst-color-text-base:#222832;--pst-color-text-muted:#48566b;--pst-color-shadow:rgba(0,0,0,.1);--pst-color-border:#d1d5da;--pst-color-border-muted:rgba(23,23,26,.2);--pst-color-blockquote-notch:#677384;--pst-color-inline-code:#912583;--pst-color-link-higher-contrast:#085d6c;--pst-color-target:#f3cf95;--pst-color-table:#14181e;--pst-color-table-row-hover-bg:#d5b4fd;--pst-color-table-inner-border:#e5e7ea;--pst-color-background:#fff;--pst-color-on-background:#fff;--pst-color-surface:#f3f4f5;--pst-color-on-surface:#222832;--pst-color-heading:var(--pst-color-text-base);--pst-color-link:var(--pst-color-primary);--pst-color-link-hover:var(--pst-color-secondary);--pst-color-table-outer-border:var(--pst-color-surface);--pst-color-table-heading-bg:var(--pst-color-surface);--pst-color-table-row-zebra-high-bg:var(--pst-color-on-background);--pst-color-table-row-zebra-low-bg:var(--pst-color-surface)}html:not([data-theme]) .only-dark,html:not([data-theme]) .only-dark~figcaption{display:none!important}html[data-theme=light]{--pst-color-primary-bg:#d0ecf1;--pst-color-secondary-bg:#e0c7ff;--pst-color-accent:#c132af;--pst-color-accent-bg:#f8dff5;--pst-color-info-bg:#dce7fc;--pst-color-warning-bg:#f8e3d0;--pst-color-success-bg:#d6ece1;--pst-color-attention:var(--pst-color-warning);--pst-color-attention-bg:var(--pst-color-warning-bg);--pst-color-danger-bg:#f9e1e4;--pst-color-text-base:#222832;--pst-color-text-muted:#48566b;--pst-color-shadow:rgba(0,0,0,.1);--pst-color-border:#d1d5da;--pst-color-border-muted:rgba(23,23,26,.2);--pst-color-blockquote-notch:#677384;--pst-color-inline-code:#912583;--pst-color-link-higher-contrast:#085d6c;--pst-color-target:#f3cf95;--pst-color-table:#14181e;--pst-color-table-row-hover-bg:#d5b4fd;--pst-color-table-inner-border:#e5e7ea;--pst-color-background:#fff;--pst-color-on-background:#fff;--pst-color-surface:#f3f4f5;--pst-color-on-surface:#222832;--pst-color-heading:var(--pst-color-text-base);--pst-color-link:var(--pst-color-primary);--pst-color-link-hover:var(--pst-color-secondary);--pst-color-table-outer-border:var(--pst-color-surface);--pst-color-table-heading-bg:var(--pst-color-surface);--pst-color-table-row-zebra-high-bg:var(--pst-color-on-background);--pst-color-table-row-zebra-low-bg:var(--pst-color-surface);color-scheme:light}html[data-theme=light] .only-dark,html[data-theme=light] .only-dark~figcaption{display:none!important}html[data-theme=dark]{--pst-color-primary-bg:#042c33;--pst-color-secondary-bg:#341a61;--pst-color-accent:#e47fd7;--pst-color-accent-bg:#46123f;--pst-color-info-bg:#06245d;--pst-color-warning-bg:#652a02;--pst-color-success-bg:#002f17;--pst-color-attention:var(--pst-color-warning);--pst-color-attention-bg:var(--pst-color-warning-bg);--pst-color-danger-bg:#4e111b;--pst-color-text-base:#ced6dd;--pst-color-text-muted:#9ca4af;--pst-color-shadow:rgba(0,0,0,.2);--pst-color-border:#48566b;--pst-color-border-muted:#29313d;--pst-color-blockquote-notch:#9ca4af;--pst-color-inline-code:#f3c7ee;--pst-color-link-higher-contrast:#3fb1c5;--pst-color-target:#675c04;--pst-color-table:#fff;--pst-color-table-row-hover-bg:#4b258f;--pst-color-table-inner-border:#364150;--pst-color-background:#14181e;--pst-color-on-background:#222832;--pst-color-surface:#29313d;--pst-color-on-surface:#f3f4f5;--pst-color-heading:var(--pst-color-text-base);--pst-color-link:var(--pst-color-primary);--pst-color-link-hover:var(--pst-color-secondary);--pst-color-table-outer-border:var(--pst-color-surface);--pst-color-table-heading-bg:var(--pst-color-surface);--pst-color-table-row-zebra-high-bg:var(--pst-color-on-background);--pst-color-table-row-zebra-low-bg:var(--pst-color-surface);color-scheme:dark}html[data-theme=dark] .only-light,html[data-theme=dark] .only-light~figcaption{display:none!important}html[data-theme=dark] img:not(.only-dark,.dark-light){filter:brightness(.8) contrast(1.2)}html[data-theme=dark] .bd-content img:not(.only-dark,.dark-light){background-color:#fff;border-radius:.25rem}html[data-theme=dark] .MathJax_SVG *{fill:var(--pst-color-text-base)}.pst-color-primary{color:var(--pst-color-primary)}.pst-color-secondary{color:var(--pst-color-secondary)}.pst-color-accent{color:var(--pst-color-accent)}.pst-color-info{color:var(--pst-color-info)}.pst-color-warning{color:var(--pst-color-warning)}.pst-color-success{color:var(--pst-color-success)}.pst-color-attention{color:var(--pst-color-attention)}.pst-color-danger{color:var(--pst-color-danger)}.pst-color-text-base{color:var(--pst-color-text-base)}.pst-color-text-muted{color:var(--pst-color-text-muted)}.pst-color-shadow{color:var(--pst-color-shadow)}.pst-color-border{color:var(--pst-color-border)}.pst-color-border-muted{color:var(--pst-color-border-muted)}.pst-color-blockquote-notch{color:var(--pst-color-blockquote-notch)}.pst-color-inline-code{color:var(--pst-color-inline-code)}.pst-color-link-higher-contrast{color:var(--pst-color-link-higher-contrast)}.pst-color-target{color:var(--pst-color-target)}.pst-color-table{color:var(--pst-color-table)}.pst-color-table-row-hover{color:var(--pst-color-table-row-hover)}.pst-color-table-inner-border{color:var(--pst-color-table-inner-border)}.pst-color-background{color:var(--pst-color-background)}.pst-color-on-background{color:var(--pst-color-on-background)}.pst-color-surface{color:var(--pst-color-surface)}.pst-color-on-surface{color:var(--pst-color-on-surface)}html[data-theme=light]{--pst-color-primary:#0a7d91;--pst-color-primary-text:#fff;--pst-color-primary-highlight:#086b7c;--sd-color-primary:var(--pst-color-primary);--sd-color-primary-text:var(--pst-color-primary-text);--sd-color-primary-highlight:var(--pst-color-primary-highlight);--pst-color-primary-highlight-text:#fff;--sd-color-primary-bg:#d0ecf1;--sd-color-primary-bg-text:#14181e;--pst-color-secondary:#8045e5;--pst-color-secondary-text:#fff;--pst-color-secondary-highlight:#651ee0;--sd-color-secondary:var(--pst-color-secondary);--sd-color-secondary-text:var(--pst-color-secondary-text);--sd-color-secondary-highlight:var(--pst-color-secondary-highlight);--pst-color-secondary-highlight-text:#fff;--sd-color-secondary-bg:#e0c7ff;--sd-color-secondary-bg-text:#14181e;--pst-color-success:#00843f;--pst-color-success-text:#fff;--pst-color-success-highlight:#007036;--sd-color-success:var(--pst-color-success);--sd-color-success-text:var(--pst-color-success-text);--sd-color-success-highlight:var(--pst-color-success-highlight);--pst-color-success-highlight-text:#fff;--sd-color-success-bg:#d6ece1;--sd-color-success-bg-text:#14181e;--pst-color-info:#276be9;--pst-color-info-text:#fff;--pst-color-info-highlight:#1457d3;--sd-color-info:var(--pst-color-info);--sd-color-info-text:var(--pst-color-info-text);--sd-color-info-highlight:var(--pst-color-info-highlight);--pst-color-info-highlight-text:#fff;--sd-color-info-bg:#dce7fc;--sd-color-info-bg-text:#14181e;--pst-color-warning:#f66a0a;--pst-color-warning-text:#14181e;--pst-color-warning-highlight:#d25a07;--sd-color-warning:var(--pst-color-warning);--sd-color-warning-text:var(--pst-color-warning-text);--sd-color-warning-highlight:var(--pst-color-warning-highlight);--pst-color-warning-highlight-text:#14181e;--sd-color-warning-bg:#f8e3d0;--sd-color-warning-bg-text:#14181e;--pst-color-danger:#d72d47;--pst-color-danger-text:#fff;--pst-color-danger-highlight:#bb2239;--sd-color-danger:var(--pst-color-danger);--sd-color-danger-text:var(--pst-color-danger-text);--sd-color-danger-highlight:var(--pst-color-danger-highlight);--pst-color-danger-highlight-text:#fff;--sd-color-danger-bg:#f9e1e4;--sd-color-danger-bg-text:#14181e;--pst-color-light:#f3f4f5;--pst-color-light-text:#14181e;--pst-color-light-highlight:#c9cfd6;--sd-color-light:var(--pst-color-light);--sd-color-light-text:var(--pst-color-light-text);--sd-color-light-highlight:var(--pst-color-light-highlight);--pst-color-light-highlight-text:#14181e;--sd-color-light-bg:#f7f7f8;--sd-color-light-bg-text:#14181e;--pst-color-muted:#29313d;--pst-color-muted-text:#fff;--pst-color-muted-highlight:#212936;--sd-color-muted:var(--pst-color-muted);--sd-color-muted-text:var(--pst-color-muted-text);--sd-color-muted-highlight:var(--pst-color-muted-highlight);--pst-color-muted-highlight-text:#fff;--sd-color-muted-bg:#5a6c86;--sd-color-muted-bg-text:#fff;--pst-color-dark:#222832;--pst-color-dark-text:#fff;--pst-color-dark-highlight:#1b222c;--sd-color-dark:var(--pst-color-dark);--sd-color-dark-text:var(--pst-color-dark-text);--sd-color-dark-highlight:var(--pst-color-dark-highlight);--pst-color-dark-highlight-text:#fff;--pst-color-black:#14181e;--pst-color-black-text:#fff;--pst-color-black-highlight:#10141a;--sd-color-black:var(--pst-color-black);--sd-color-black-text:var(--pst-color-black-text);--sd-color-black-highlight:var(--pst-color-black-highlight);--pst-color-black-highlight-text:#fff;--pst-color-white:#fff;--pst-color-white-text:#14181e;--pst-color-white-highlight:#dbd7d7;--sd-color-white:var(--pst-color-white);--sd-color-white-text:var(--pst-color-white-text);--sd-color-white-highlight:var(--pst-color-white-highlight);--pst-color-white-highlight-text:#14181e}html[data-theme=dark]{--pst-color-primary:#3fb1c5;--pst-color-primary-text:#14181e;--pst-color-primary-highlight:#319aac;--sd-color-primary:var(--pst-color-primary);--sd-color-primary-text:var(--pst-color-primary-text);--sd-color-primary-highlight:var(--pst-color-primary-highlight);--pst-color-primary-highlight-text:#14181e;--sd-color-primary-bg:#042c33;--sd-color-primary-bg-text:#fff;--pst-color-secondary:#9c5ffd;--pst-color-secondary-text:#14181e;--pst-color-secondary-highlight:#7c2bfc;--sd-color-secondary:var(--pst-color-secondary);--sd-color-secondary-text:var(--pst-color-secondary-text);--sd-color-secondary-highlight:var(--pst-color-secondary-highlight);--pst-color-secondary-highlight-text:#fff;--sd-color-secondary-bg:#341a61;--sd-color-secondary-bg-text:#fff;--pst-color-success:#5fb488;--pst-color-success-text:#14181e;--pst-color-success-highlight:#47a373;--sd-color-success:var(--pst-color-success);--sd-color-success-text:var(--pst-color-success-text);--sd-color-success-highlight:var(--pst-color-success-highlight);--pst-color-success-highlight-text:#14181e;--sd-color-success-bg:#002f17;--sd-color-success-bg-text:#fff;--pst-color-info:#79a3f2;--pst-color-info-text:#14181e;--pst-color-info-highlight:#4681ee;--sd-color-info:var(--pst-color-info);--sd-color-info-text:var(--pst-color-info-text);--sd-color-info-highlight:var(--pst-color-info-highlight);--pst-color-info-highlight-text:#14181e;--sd-color-info-bg:#06245d;--sd-color-info-bg-text:#fff;--pst-color-warning:#ff9245;--pst-color-warning-text:#14181e;--pst-color-warning-highlight:#ff7614;--sd-color-warning:var(--pst-color-warning);--sd-color-warning-text:var(--pst-color-warning-text);--sd-color-warning-highlight:var(--pst-color-warning-highlight);--pst-color-warning-highlight-text:#14181e;--sd-color-warning-bg:#652a02;--sd-color-warning-bg-text:#fff;--pst-color-danger:#e78894;--pst-color-danger-text:#14181e;--pst-color-danger-highlight:#df596a;--sd-color-danger:var(--pst-color-danger);--sd-color-danger-text:var(--pst-color-danger-text);--sd-color-danger-highlight:var(--pst-color-danger-highlight);--pst-color-danger-highlight-text:#14181e;--sd-color-danger-bg:#4e111b;--sd-color-danger-bg-text:#fff;--pst-color-light:#f3f4f5;--pst-color-light-text:#14181e;--pst-color-light-highlight:#c9cfd6;--sd-color-light:var(--pst-color-light);--sd-color-light-text:var(--pst-color-light-text);--sd-color-light-highlight:var(--pst-color-light-highlight);--pst-color-light-highlight-text:#14181e;--sd-color-light-bg:#a3abb2;--sd-color-light-bg-text:#14181e;--pst-color-muted:#f3f4f5;--pst-color-muted-text:#14181e;--pst-color-muted-highlight:#c9cfd6;--sd-color-muted:var(--pst-color-muted);--sd-color-muted-text:var(--pst-color-muted-text);--sd-color-muted-highlight:var(--pst-color-muted-highlight);--pst-color-muted-highlight-text:#14181e;--sd-color-muted-bg:#1d222b;--sd-color-muted-bg-text:#fff;--pst-color-dark:#222832;--pst-color-dark-text:#fff;--pst-color-dark-highlight:#1b222c;--sd-color-dark:var(--pst-color-dark);--sd-color-dark-text:var(--pst-color-dark-text);--sd-color-dark-highlight:var(--pst-color-dark-highlight);--pst-color-dark-highlight-text:#fff;--pst-color-black:#14181e;--pst-color-black-text:#fff;--pst-color-black-highlight:#10141a;--sd-color-black:var(--pst-color-black);--sd-color-black-text:var(--pst-color-black-text);--sd-color-black-highlight:var(--pst-color-black-highlight);--pst-color-black-highlight-text:#fff;--pst-color-white:#fff;--pst-color-white-text:#14181e;--pst-color-white-highlight:#dbd7d7;--sd-color-white:var(--pst-color-white);--sd-color-white-text:var(--pst-color-white-text);--sd-color-white-highlight:var(--pst-color-white-highlight);--pst-color-white-highlight-text:#14181e}html[data-theme=dark],html[data-theme=light]{--sd-color-card-border:var(--pst-color-border)}html[data-theme=light] .sd-shadow-lg,html[data-theme=light] .sd-shadow-md,html[data-theme=light] .sd-shadow-sm,html[data-theme=light] .sd-shadow-xs{box-shadow:0 .2rem .5rem var(--pst-color-shadow),0 0 .0625rem var(--pst-color-shadow)!important}.bd-content .sd-card{border:1px solid var(--pst-color-border);overflow:hidden}.bd-content .sd-card .sd-card-header{background-color:var(--pst-color-on-background);border-bottom:1px solid var(--pst-color-border)}.bd-content .sd-card .sd-card-footer{border-top:1px solid var(--pst-color-border)}.bd-content .sd-card .sd-card-body,.bd-content .sd-card .sd-card-footer{background-color:var(--pst-color-on-background)}.bd-content .sd-card .sd-stretched-link:focus-visible{outline:none}.bd-content .sd-card .sd-stretched-link:focus-visible:after{border-radius:.25rem;outline:var(--pst-color-accent) solid .1875rem}.bd-content .sd-card.sd-card-hover:hover{border-color:var(--pst-color-link-hover)}.bd-content .sd-tab-set>input:checked+label{background-color:var(--pst-color-on-background);border-color:var(--pst-color-primary) var(--pst-color-primary) transparent;border-radius:.125rem .125rem 0 0;border-style:solid solid none;border-width:.125rem .125rem 0;color:var(--pst-color-primary);transform:translateY(.125rem)}.bd-content .sd-tab-set>input:focus-visible+label{background-color:var(--pst-color-accent-bg);border:.125rem solid var(--pst-color-accent);border-radius:.125rem;color:var(--pst-color-on-surface)}.bd-content .sd-tab-set>input:not(:checked,:focus-visible)+label:hover{border-color:transparent;color:var(--pst-color-secondary);text-decoration-line:underline;text-decoration-thickness:max(3px,.1875rem,.12em)}.bd-content .sd-tab-set>label{background-color:var(--pst-color-surface);border:.125rem solid transparent;border-radius:.125rem .125rem 0 0;color:var(--pst-color-on-surface);line-height:1.95;margin-inline-end:.25rem;padding:0 .75em}.bd-content .sd-tab-set .sd-tab-content,html[data-theme=dark] .bd-content .sd-tab-set>label{background-color:var(--pst-color-on-background)}.bd-content .sd-tab-set .sd-tab-content{border:.125rem solid var(--pst-color-primary);border-radius:.1875rem;box-shadow:unset;padding:.625rem}details.sd-dropdown{border:0!important;box-shadow:0 .2rem .5rem var(--pst-color-shadow),0 0 .0625rem var(--pst-color-shadow)!important}details.sd-dropdown summary.sd-card-header{align-items:center;border:0!important;display:flex;font-weight:600;padding-bottom:.5rem;padding-top:.5rem;position:relative;--pst-sd-dropdown-color:var(--pst-gray-500);--pst-sd-dropdown-bg-color:var(--pst-color-surface);background-color:var(--pst-sd-dropdown-bg-color)!important;border-left:.2rem solid var(--pst-sd-dropdown-color)!important}details.sd-dropdown summary.sd-card-header+div.sd-summary-content{border:0;--pst-sd-dropdown-color:var(--sd-color-card-border)}details.sd-dropdown summary.sd-card-header.sd-bg-primary,details.sd-dropdown summary.sd-card-header.sd-bg-primary+div.sd-summary-content{--pst-sd-dropdown-color:var(--sd-color-primary);--pst-sd-dropdown-bg-color:var(--sd-color-primary-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-text-primary{color:var(--sd-color-primary-bg-text)!important}details.sd-dropdown summary.sd-card-header.sd-bg-secondary,details.sd-dropdown summary.sd-card-header.sd-bg-secondary+div.sd-summary-content{--pst-sd-dropdown-color:var(--sd-color-secondary);--pst-sd-dropdown-bg-color:var(--sd-color-secondary-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-text-secondary{color:var(--sd-color-secondary-bg-text)!important}details.sd-dropdown summary.sd-card-header.sd-bg-success,details.sd-dropdown summary.sd-card-header.sd-bg-success+div.sd-summary-content{--pst-sd-dropdown-color:var(--sd-color-success);--pst-sd-dropdown-bg-color:var(--sd-color-success-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-text-success{color:var(--sd-color-success-bg-text)!important}details.sd-dropdown summary.sd-card-header.sd-bg-info,details.sd-dropdown summary.sd-card-header.sd-bg-info+div.sd-summary-content{--pst-sd-dropdown-color:var(--sd-color-info);--pst-sd-dropdown-bg-color:var(--sd-color-info-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-text-info{color:var(--sd-color-info-bg-text)!important}details.sd-dropdown summary.sd-card-header.sd-bg-warning,details.sd-dropdown summary.sd-card-header.sd-bg-warning+div.sd-summary-content{--pst-sd-dropdown-color:var(--sd-color-warning);--pst-sd-dropdown-bg-color:var(--sd-color-warning-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-text-warning{color:var(--sd-color-warning-bg-text)!important}details.sd-dropdown summary.sd-card-header.sd-bg-danger,details.sd-dropdown summary.sd-card-header.sd-bg-danger+div.sd-summary-content{--pst-sd-dropdown-color:var(--sd-color-danger);--pst-sd-dropdown-bg-color:var(--sd-color-danger-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-text-danger{color:var(--sd-color-danger-bg-text)!important}details.sd-dropdown summary.sd-card-header.sd-bg-light,details.sd-dropdown summary.sd-card-header.sd-bg-light+div.sd-summary-content{--pst-sd-dropdown-color:var(--sd-color-light);--pst-sd-dropdown-bg-color:var(--sd-color-light-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-text-light{color:var(--sd-color-light-bg-text)!important}details.sd-dropdown summary.sd-card-header.sd-bg-muted,details.sd-dropdown summary.sd-card-header.sd-bg-muted+div.sd-summary-content{--pst-sd-dropdown-color:var(--sd-color-muted);--pst-sd-dropdown-bg-color:var(--sd-color-muted-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-text-muted{color:var(--sd-color-muted-bg-text)!important}details.sd-dropdown summary.sd-card-header.sd-bg-dark,details.sd-dropdown summary.sd-card-header.sd-bg-dark+div.sd-summary-content{--pst-sd-dropdown-color:var(--sd-color-dark);--pst-sd-dropdown-bg-color:var(--sd-color-dark-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-text-dark{color:var(--sd-color-dark-bg-text)!important}details.sd-dropdown summary.sd-card-header.sd-bg-black,details.sd-dropdown summary.sd-card-header.sd-bg-black+div.sd-summary-content{--pst-sd-dropdown-color:var(--sd-color-black);--pst-sd-dropdown-bg-color:var(--sd-color-black-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-text-black{color:var(--sd-color-black-bg-text)!important}details.sd-dropdown summary.sd-card-header.sd-bg-white,details.sd-dropdown summary.sd-card-header.sd-bg-white+div.sd-summary-content{--pst-sd-dropdown-color:var(--sd-color-white);--pst-sd-dropdown-bg-color:var(--sd-color-white-bg)}details.sd-dropdown summary.sd-card-header.sd-bg-text-white{color:var(--sd-color-white-bg-text)!important}details.sd-dropdown summary.sd-card-header:before{content:"";height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:-1}details.sd-dropdown summary.sd-card-header+div.sd-summary-content{background-color:var(--pst-color-on-background);border-bottom-left-radius:calc(.25rem - 1px);border-left:.2rem solid var(--pst-sd-dropdown-color)!important}details.sd-dropdown summary.sd-card-header span.sd-summary-icon{align-items:center;color:var(--pst-sd-dropdown-color)!important;display:inline-flex}details.sd-dropdown summary.sd-card-header span.sd-summary-icon svg{opacity:1}details.sd-dropdown summary.sd-card-header .sd-summary-down,details.sd-dropdown summary.sd-card-header .sd-summary-up{top:.7rem}details.sd-dropdown summary.sd-card-header:hover{filter:brightness(.9)}html[data-theme=dark] details.sd-dropdown summary.sd-card-header:hover{filter:brightness(1.1)}details.sd-dropdown summary.sd-card-header:focus:focus-visible{border-radius:.1875rem;outline:var(--pst-color-accent) solid .1875rem;outline-offset:.125rem}details.sd-dropdown[open] summary.sd-card-header:focus:focus-visible{border-bottom-left-radius:0;border-bottom-right-radius:0}html .sd-btn{min-width:2.25rem;padding:.3125rem .75rem .4375rem}html .sd-btn:hover{color:var(--pst-color-link-hover);text-decoration:underline;text-decoration-skip-ink:none;text-decoration-thickness:max(1px,.0625rem);text-decoration-thickness:max(3px,.1875rem,.12em);text-decoration-thickness:1px;text-underline-offset:.1578em}html .sd-btn-primary:hover{color:var(--pst-color-primary-highlight-text)!important}html .sd-btn-secondary:hover{color:var(--pst-color-secondary-highlight-text)!important}html .sd-btn-success:hover{color:var(--pst-color-success-highlight-text)!important}html .sd-btn-info:hover{color:var(--pst-color-info-highlight-text)!important}html .sd-btn-warning:hover{color:var(--pst-color-warning-highlight-text)!important}html .sd-btn-danger:hover{color:var(--pst-color-danger-highlight-text)!important}html .sd-btn-light:hover{color:var(--pst-color-light-highlight-text)!important}html .sd-btn-muted:hover{color:var(--pst-color-muted-highlight-text)!important}html .sd-btn-dark:hover{color:var(--pst-color-dark-highlight-text)!important}html .sd-btn-black:hover{color:var(--pst-color-black-highlight-text)!important}html .sd-btn-white:hover{color:var(--pst-color-white-highlight-text)!important}html .sd-btn-outline-primary:focus-visible,html .sd-btn-primary:focus-visible{background-color:var(--sd-color-primary)!important;border-color:var(--sd-color-primary)!important;border-radius:.1875rem;outline:var(--sd-color-primary) solid .1875rem;outline-offset:.125rem}html .sd-btn-outline-secondary:focus-visible,html .sd-btn-secondary:focus-visible{background-color:var(--sd-color-secondary)!important;border-color:var(--sd-color-secondary)!important;border-radius:.1875rem;outline:var(--sd-color-secondary) solid .1875rem;outline-offset:.125rem}html .sd-btn-outline-success:focus-visible,html .sd-btn-success:focus-visible{background-color:var(--sd-color-success)!important;border-color:var(--sd-color-success)!important;border-radius:.1875rem;outline:var(--sd-color-success) solid .1875rem;outline-offset:.125rem}html .sd-btn-info:focus-visible,html .sd-btn-outline-info:focus-visible{background-color:var(--sd-color-info)!important;border-color:var(--sd-color-info)!important;border-radius:.1875rem;outline:var(--sd-color-info) solid .1875rem;outline-offset:.125rem}html .sd-btn-outline-warning:focus-visible,html .sd-btn-warning:focus-visible{background-color:var(--sd-color-warning)!important;border-color:var(--sd-color-warning)!important;border-radius:.1875rem;outline:var(--sd-color-warning) solid .1875rem;outline-offset:.125rem}html .sd-btn-danger:focus-visible,html .sd-btn-outline-danger:focus-visible{background-color:var(--sd-color-danger)!important;border-color:var(--sd-color-danger)!important;border-radius:.1875rem;outline:var(--sd-color-danger) solid .1875rem;outline-offset:.125rem}html .sd-btn-light:focus-visible,html .sd-btn-outline-light:focus-visible{background-color:var(--sd-color-light)!important;border-color:var(--sd-color-light)!important;border-radius:.1875rem;outline:var(--sd-color-light) solid .1875rem;outline-offset:.125rem}html .sd-btn-muted:focus-visible,html .sd-btn-outline-muted:focus-visible{background-color:var(--sd-color-muted)!important;border-color:var(--sd-color-muted)!important;border-radius:.1875rem;outline:var(--sd-color-muted) solid .1875rem;outline-offset:.125rem}html .sd-btn-dark:focus-visible,html .sd-btn-outline-dark:focus-visible{background-color:var(--sd-color-dark)!important;border-color:var(--sd-color-dark)!important;border-radius:.1875rem;outline:var(--sd-color-dark) solid .1875rem;outline-offset:.125rem}html .sd-btn-black:focus-visible,html .sd-btn-outline-black:focus-visible{background-color:var(--sd-color-black)!important;border-color:var(--sd-color-black)!important;border-radius:.1875rem;outline:var(--sd-color-black) solid .1875rem;outline-offset:.125rem}html .sd-btn-outline-white:focus-visible,html .sd-btn-white:focus-visible{background-color:var(--sd-color-white)!important;border-color:var(--sd-color-white)!important;border-radius:.1875rem;outline:var(--sd-color-white) solid .1875rem;outline-offset:.125rem}.bd-content .dropdown.admonition.toggle .admonition-title:hover .tb-icon{opacity:1;scale:1.1}.bd-content .dropdown.admonition.toggle .admonition-title .tb-icon{opacity:.6}.bd-content .dropdown.admonition.toggle .admonition-title:hover{filter:brightness(.9)}html[data-theme=dark] .bd-content .dropdown.admonition.toggle .admonition-title:hover{filter:brightness(1.1)}.bd-content .dropdown.admonition.toggle .admonition-title:hover{box-shadow:none}.bd-content .dropdown.admonition.toggle button.toggle-button{color:inherit}.bd-content .dropdown.admonition.toggle button.toggle-button.toggle-button-hidden .toggle-chevron-right{transform:rotate(90deg);transition:none}.bd-content .dropdown.admonition.toggle button.toggle-button .toggle-chevron-right{transform:rotate(-90deg);transition:none}.bd-content .dropdown.admonition.toggle:has(:focus-visible){overflow:visible}.bd-content .dropdown.admonition.toggle:has(:focus-visible) .admonition-title:before{border-radius:.1875rem;content:"";height:100%;left:-.2rem;outline:var(--pst-color-accent) solid .1875rem;outline-offset:.125rem;width:calc(100% + .2rem)}.bd-content .dropdown.admonition.toggle:has(:focus-visible):not(.toggle-hidden) .admonition-title:before{border-bottom-left-radius:0;border-bottom-right-radius:0}.bd-content details.toggle-details summary{border-left:3px solid var(--pst-color-primary)}.bd-content details.toggle-details summary .toggle-chevron-right{transform:rotate(90deg);transition:none}.bd-content details.toggle-details summary:hover .tb-icon{opacity:1;scale:1.1}.bd-content details.toggle-details summary .tb-icon{opacity:.6}.bd-content details.toggle-details summary:hover{filter:brightness(.9)}html[data-theme=dark] .bd-content details.toggle-details summary:hover{filter:brightness(1.1)}.bd-content details.toggle-details summary:hover{box-shadow:none}.bd-content details.toggle-details summary:focus-visible{outline-offset:.125rem}.bd-content details.toggle-details[open] .toggle-chevron-right{transform:rotate(-90deg);transition:none}.bd-content details.toggle-details[open] :focus-visible{border-bottom-left-radius:0;border-bottom-right-radius:0}html .jp-RenderedHTMLCommon,html div.rendered_html{margin:.1875rem}html .jp-RenderedHTMLCommon table,html div.rendered_html table{table-layout:auto}.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe,.bd-content .nboutput .output_area.rendered_html table.dataframe{border:1px solid var(--pst-color-table-outer-border);color:var(--pst-color-table)}.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe a,.bd-content .nboutput .output_area.rendered_html table.dataframe a{color:var(--pst-color-link-higher-contrast)}.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe td~td,.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe td~th,.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe th~td,.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe th~th,.bd-content .nboutput .output_area.rendered_html table.dataframe td~td,.bd-content .nboutput .output_area.rendered_html table.dataframe td~th,.bd-content .nboutput .output_area.rendered_html table.dataframe th~td,.bd-content .nboutput .output_area.rendered_html table.dataframe th~th{border-left:1px solid var(--pst-color-table-inner-border)}.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe thead tr,.bd-content .nboutput .output_area.rendered_html table.dataframe thead tr{background-color:var(--pst-color-table-heading-bg);border-bottom:2px solid var(--pst-color-primary)}.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe tbody tr:nth-child(odd),.bd-content .nboutput .output_area.rendered_html table.dataframe tbody tr:nth-child(odd){background-color:var(--pst-color-table-row-zebra-low-bg)}.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe tbody tr:nth-child(2n),.bd-content .nboutput .output_area.rendered_html table.dataframe tbody tr:nth-child(2n){background-color:var(--pst-color-table-row-zebra-high-bg)}.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe tbody tr:hover,.bd-content .nboutput .output_area.rendered_html table.dataframe tbody tr:hover{background-color:var(--pst-color-table-row-hover-bg)}html[data-theme=dark] .bd-content .nboutput .output_area .widget-subarea,html[data-theme=dark] .bd-content .nboutput .output_area.rendered_html:not(:has(table.dataframe)){background-color:var(--pst-color-text-base);border-radius:.25rem;color:var(--pst-color-on-background);padding:.5rem}html[data-theme=dark] .bd-content .nboutput .output_area.stderr{background-color:var(--pst-color-danger)}div.nblast.container{margin-bottom:1rem}html[data-theme=light] .nbinput.container .prompt pre{color:#005b82}html[data-theme=dark] .nbinput.container .prompt pre{color:#00e0e0}html[data-theme=light] .nboutput.container .prompt pre{color:#a12236}html[data-theme=dark] .nboutput.container .prompt pre{color:#ffa07a}div.cell_output .output{max-width:100%;overflow-x:auto}.bd-content div.cell_output table.dataframe{border:1px solid var(--pst-color-table-outer-border);color:var(--pst-color-table)}.bd-content div.cell_output table.dataframe a{color:var(--pst-color-link-higher-contrast)}.bd-content div.cell_output table.dataframe td~td,.bd-content div.cell_output table.dataframe td~th,.bd-content div.cell_output table.dataframe th~td,.bd-content div.cell_output table.dataframe th~th{border-left:1px solid var(--pst-color-table-inner-border)}.bd-content div.cell_output table.dataframe thead tr{background-color:var(--pst-color-table-heading-bg);border-bottom:2px solid var(--pst-color-primary)}.bd-content div.cell_output table.dataframe tbody tr:nth-child(odd){background-color:var(--pst-color-table-row-zebra-low-bg)}.bd-content div.cell_output table.dataframe tbody tr:nth-child(2n){background-color:var(--pst-color-table-row-zebra-high-bg)}.bd-content div.cell_output table.dataframe tbody tr:hover{background-color:var(--pst-color-table-row-hover-bg)}html[data-theme=dark] .bd-content div.cell_output .text_html:not(:has(table.dataframe)),html[data-theme=dark] .bd-content div.cell_output .widget-subarea,html[data-theme=dark] .bd-content div.cell_output img{background-color:var(--pst-color-text-base);border-radius:.25rem;color:var(--pst-color-on-background);padding:.5rem}.bd-content div.cell_input{display:flex;flex-direction:column;justify-content:stretch}.bd-content div.cell_input,.bd-content div.output{border-radius:.25rem}.bd-content div.output table{table-layout:auto}html[data-theme=dark] .bd-content img.leaflet-tile.leaflet-tile-loaded{border-radius:0;padding:0}.bd-search-container div#search-results>.h2,.bd-search-container div#search-results>h2{font-size:var(--pst-font-size-icon);margin-top:1rem}.bd-search-container div#search-results p.search-summary{color:var(--pst-color-text-muted)}.bd-search-container ul.search{list-style:none;margin:0}.bd-search-container ul.search li{background-image:none;border-top:1px solid var(--pst-color-text-muted);margin:1rem 0;padding:1rem 0}.bd-search-container ul.search li>a{font-size:1.2em}.bd-search-container ul.search li div.context,.bd-search-container ul.search li p.context{color:var(--pst-color-text-base);margin:.5em 0 0}.bd-search-container ul.search li div.context a:before,.bd-search-container ul.search li p.context a:before{color:var(--pst-color-text-muted);content:"#";padding-right:.2em} /*# sourceMappingURL=pydata-sphinx-theme.css.map*/ \ No newline at end of file diff --git a/libhal-arm-mcu/main/_static/styles/pydata-sphinx-theme.css.map b/libhal-arm-mcu/main/_static/styles/pydata-sphinx-theme.css.map index 89100ac..dff8d5a 100644 --- a/libhal-arm-mcu/main/_static/styles/pydata-sphinx-theme.css.map +++ b/libhal-arm-mcu/main/_static/styles/pydata-sphinx-theme.css.map @@ -1 +1 @@ -{"version":3,"file":"styles/pydata-sphinx-theme.css","mappings":"AAsGE,gBC+kBF;ACprBE;;;;EAAA,CCDF,4BASI,qQAIA,sMAIA,iKAIA,sNAIA,iRAIA,iPAIA,iRAGF,2BACA,qBAMA,yMACA,mGACA,4EAOA,gDC2OI,wBALI,CDpOR,0BACA,0BAKA,wBACA,6BACA,kBACA,6BAEA,yBACA,8BAEA,wCACA,kCACA,0BACA,kCAEA,sCACA,iCACA,yBACA,iCAGA,2BAEA,wBACA,+BACA,+BAEA,8BACA,oCAMA,wBACA,6BACA,0BAGA,sBACA,wBACA,0BACA,+CAEA,4BACA,8BACA,6BACA,2BACA,4BACA,mDACA,8BAGA,8CACA,uDACA,gDACA,uDAIA,gCACA,0BACA,8CAIA,8BACA,qCACA,gCACA,sCFFF,CI9GI,qBFsHA,iBAAkB,CAGlB,wBACA,gCACA,qBACA,0BAEA,yBACA,oCAEA,2CACA,qCACA,0BACA,+BAEA,yCACA,oCACA,yBACA,8BAGE,iRAIA,iPAIA,iRAGF,2BAEA,wBACA,8BACA,gCACA,sCAEA,wBACA,6BACA,0BAEA,0BACA,kDAEA,8BACA,qCACA,gCACA,sCFFJ,CKtKA,iBAGE,qBLyKF,CK3IA,KAQE,mCAFA,2BAJA,uCF6OI,kCALI,CEtOR,uCACA,uCAJA,QAAS,CAMT,qCAEA,6BAA8B,CAC9B,yCL8IF,CKrIA,GAIE,wCAFA,aCmnB4B,CDpnB5B,cAIA,WLwIF,CK9HA,0CAOE,8BAFA,eCwjB4B,CDvjB5B,eCwjB4B,CD5jB5B,mBCwjB4B,CDzjB5B,YLqIF,CK5HA,OFuMQ,gCHvER,CGrFI,0BE3CJ,OF8MQ,gBH1EN,CACF,CKhIA,OFkMQ,+BH9DR,CG9FI,0BEtCJ,OFyMQ,cHjEN,CACF,CKpIA,OF6LQ,6BHrDR,CGvGI,0BEjCJ,OFoMQ,iBHxDN,CACF,CKxIA,OFwLQ,+BH5CR,CGhHI,0BE5BJ,OF+LQ,gBH/CN,CACF,CK5IA,OF+KM,iBH/BN,CK3IA,OF0KM,cH3BN,CKpIA,EAEE,kBCwV0B,CDzV1B,YLwIF,CK7HA,YAEE,WAAY,CADZ,gCAAiC,CAEjC,6BLgIF,CK1HA,QAEE,iBAAkB,CAClB,mBAAoB,CAFpB,kBL+HF,CKvHA,MAEE,iBL0HF,CKvHA,SAIE,kBAAmB,CADnB,YL2HF,CKvHA,wBAIE,eL0HF,CKvHA,GACE,eL0HF,CKrHA,GACE,oBACA,aLwHF,CKlHA,WACE,eLqHF,CK7GA,SAEE,kBLgHF,CKxGA,aF6EM,gBH+BN,CKrGA,WAGE,wCADA,gCADA,eL0GF,CK/FA,QF0DM,eALI,CEjDR,aAAc,CAFd,iBAAkB,CAGlB,uBLkGF,CK/FA,IAAM,aLmGN,CKlGA,IAAM,SLsGN,CKjGA,EACE,6DLqGF,CKlGE,QACE,kDLoGJ,CKzFE,4DAEE,aAAc,CACd,oBL2FJ,CKpFA,kBAIE,oCCgV4B,CHlUxB,aH0EN,CKhFA,IACE,aAAc,CFKV,gBALI,CEER,kBAAmB,CADnB,YAAa,CAEb,aLoFF,CK/EE,SAEE,aAAc,CFLZ,iBALI,CEWN,iBLiFJ,CK7EA,KAEE,2BFZI,gBALI,CEkBR,oBLgFF,CK7EE,OACE,aL+EJ,CK3EA,IAIE,qCCy5CkC,CC9rDhC,qBFoSF,uBCy5CkC,CHj7C9B,gBALI,CE2BR,wBLkFF,CK5EE,QF5BI,aALI,CEkCN,SL+EJ,CKpEA,OACE,eLuEF,CKjEA,QAEE,qBLoEF,CK5DA,MAEE,wBAAyB,CADzB,mBLgEF,CK5DA,QAGE,+BC4Z4B,CD7Z5B,oBC2X4B,CD5X5B,iBC4X4B,CDzX5B,eL+DF,CKxDA,GAEE,kBAAmB,CACnB,+BL0DF,CKvDA,2BAQE,cAAe,CAFf,oBL4DF,CKlDA,MACE,oBLqDF,CK/CA,OAEE,eLiDF,CKzCA,iCACE,SL4CF,CKvCA,sCAME,mBAAoB,CF5HhB,iBALI,CEmIR,mBAAoB,CAHpB,QL6CF,CKtCA,cAEE,mBLyCF,CKpCA,cACE,cLuCF,CKpCA,OAGE,gBLqCF,CKlCE,gBACE,SLoCJ,CK7BA,0IACE,sBLgCF,CKxBA,gDAIE,yBL2BF,CKxBI,4GACE,cL6BN,CKtBA,mBAEE,iBAAkB,CADlB,SL0BF,CKpBA,SACE,eLuBF,CKbA,SAIE,QAAS,CADT,QAAS,CAFT,WAAY,CACZ,SLkBF,CKRA,OACE,UAAW,CF9ML,gCEoNN,mBAAoB,CAHpB,mBCmN4B,CDpN5B,SAAU,CADV,ULeF,CG1XI,0BEyWJ,OFtMQ,gBH2NN,CACF,CKbE,SACE,ULeJ,CKRA,+OAOE,SLWF,CKRA,4BACE,WLWF,CKFA,cACE,4BAA6B,CAC7B,mBLKF,CKcA,4BACE,uBLHF,CKQA,+BACE,SLLF,CKYA,uBAEE,yBAA0B,CAD1B,YLRF,CKcA,OACE,oBLXF,CKgBA,OACE,QLbF,CKoBA,QAEE,cAAe,CADf,iBLhBF,CKyBA,SACE,uBLtBF,CK8BA,SACE,sBL3BF,CD1iBA,MImQM,iBALI,CJ5PR,eC6iBF,CDxiBE,WIgQM,iCJ5PJ,eOynBkB,CPxnBlB,eCyiBJ,CG1cI,0BJpGF,WIuQM,cH2SN,CACF,CDnjBE,WIgQM,iCJ5PJ,eOynBkB,CPxnBlB,eCojBJ,CGrdI,0BJpGF,WIuQM,gBHsTN,CACF,CD9jBE,WIgQM,iCJ5PJ,eOynBkB,CPxnBlB,eC+jBJ,CGheI,0BJpGF,WIuQM,cHiUN,CACF,CDzkBE,WIgQM,iCJ5PJ,eOynBkB,CPxnBlB,eC0kBJ,CG3eI,0BJpGF,WIuQM,gBH4UN,CACF,CDplBE,WIgQM,iCJ5PJ,eOynBkB,CPxnBlB,eCqlBJ,CGtfI,0BJpGF,WIuQM,cHuVN,CACF,CD/lBE,WIgQM,iCJ5PJ,eOynBkB,CPxnBlB,eCgmBJ,CGjgBI,0BJpGF,WIuQM,gBHkWN,CACF,CD7kBA,4BS3DE,eAAgB,CADhB,cRmpBF,CDplBA,kBACE,oBCulBF,CDrlBE,mCACE,kBCulBJ,CD7kBA,YI8MM,gBALI,CJvMR,wBCglBF,CD5kBA,YIwMM,iBALI,CJlMR,kBCglBF,CD7kBE,wBACE,eC+kBJ,CD3kBA,mBAIE,aOtFS,CHiRL,gBALI,CJxLR,kBUjGO,CVgGP,gBCilBF,CD5kBE,0BACE,YC8kBJ,CUxqBA,0BCCE,WAAY,CAHZ,cXwrBF,CUtrBA,eAEE,kCJ+jDkC,CI9jDlC,2DHGE,sCGLF,cVqrBF,CUvqBA,QAEE,oBVyqBF,CUtqBA,YAEE,aAAc,CADd,mBV0qBF,CUtqBA,gBAEE,+BJkjDkC,CH3zC9B,gBHkbN,CY3sBE,oFCHA,qBACA,gBAKA,gBAAiB,CADjB,iBAAkB,CADlB,yCADA,0CADA,Ub2tBF,CcjqBI,yBF5CE,yBACE,eZitBN,CACF,CcvqBI,yBF5CE,uCACE,eZstBN,CACF,Cc5qBI,yBF5CE,qDACE,eZ2tBN,CACF,CcjrBI,0BF5CE,mEACE,gBZguBN,CACF,CejvBA,MAEI,yHfsvBJ,CejvBE,KCNA,qBACA,gBACA,YAAa,CACb,cAAe,CAIf,yCADA,0CADA,sChB4vBF,CexvBI,OCOF,aAAc,CAKd,8BAHA,cAAe,CAEf,yCADA,0CAFA,UhBwvBF,CgBrsBM,KACE,WhBwsBR,CgBrsBM,iBApCJ,aAAc,CACd,UhB6uBF,CgB/tBE,cACE,aAAc,CACd,UhBkuBJ,CgBpuBE,cACE,aAAc,CACd,ShBuuBJ,CgBzuBE,cACE,aAAc,CACd,kBhB4uBJ,CgB9uBE,cACE,aAAc,CACd,ShBivBJ,CgBnvBE,cACE,aAAc,CACd,ShBsvBJ,CgBxvBE,cACE,aAAc,CACd,kBhB2vBJ,CgB5tBM,UAhDJ,aAAc,CACd,UhBgxBF,CgB3tBU,OAhEN,aAAc,CACd,iBhB+xBJ,CgBhuBU,OAhEN,aAAc,CACd,kBhBoyBJ,CgBruBU,OAhEN,aAAc,CACd,ShByyBJ,CgB1uBU,OAhEN,aAAc,CACd,kBhB8yBJ,CgB/uBU,OAhEN,aAAc,CACd,kBhBmzBJ,CgBpvBU,OAhEN,aAAc,CACd,ShBwzBJ,CgBzvBU,OAhEN,aAAc,CACd,kBhB6zBJ,CgB9vBU,OAhEN,aAAc,CACd,kBhBk0BJ,CgBnwBU,OAhEN,aAAc,CACd,ShBu0BJ,CgBxwBU,QAhEN,aAAc,CACd,kBhB40BJ,CgB7wBU,QAhEN,aAAc,CACd,kBhBi1BJ,CgBlxBU,QAhEN,aAAc,CACd,UhBs1BJ,CgB/wBY,UAxDV,uBhB20BF,CgBnxBY,UAxDV,wBhB+0BF,CgBvxBY,UAxDV,ehBm1BF,CgB3xBY,UAxDV,wBhBu1BF,CgB/xBY,UAxDV,wBhB21BF,CgBnyBY,UAxDV,ehB+1BF,CgBvyBY,UAxDV,wBhBm2BF,CgB3yBY,UAxDV,wBhBu2BF,CgB/yBY,UAxDV,ehB22BF,CgBnzBY,WAxDV,wBhB+2BF,CgBvzBY,WAxDV,wBhBm3BF,CgBhzBQ,WAEE,ehBmzBV,CgBhzBQ,WAEE,ehBmzBV,CgB1zBQ,WAEE,qBhB6zBV,CgB1zBQ,WAEE,qBhB6zBV,CgBp0BQ,WAEE,oBhBu0BV,CgBp0BQ,WAEE,oBhBu0BV,CgB90BQ,WAEE,kBhBi1BV,CgB90BQ,WAEE,kBhBi1BV,CgBx1BQ,WAEE,oBhB21BV,CgBx1BQ,WAEE,oBhB21BV,CgBl2BQ,WAEE,kBhBq2BV,CgBl2BQ,WAEE,kBhBq2BV,Cc/5BI,yBEUE,QACE,WhBy5BN,CgBt5BI,oBApCJ,aAAc,CACd,UhB67BA,CgB/6BA,iBACE,aAAc,CACd,UhBi7BF,CgBn7BA,iBACE,aAAc,CACd,ShBq7BF,CgBv7BA,iBACE,aAAc,CACd,kBhBy7BF,CgB37BA,iBACE,aAAc,CACd,ShB67BF,CgB/7BA,iBACE,aAAc,CACd,ShBi8BF,CgBn8BA,iBACE,aAAc,CACd,kBhBq8BF,CgBt6BI,aAhDJ,aAAc,CACd,UhBy9BA,CgBp6BQ,UAhEN,aAAc,CACd,iBhBu+BF,CgBx6BQ,UAhEN,aAAc,CACd,kBhB2+BF,CgB56BQ,UAhEN,aAAc,CACd,ShB++BF,CgBh7BQ,UAhEN,aAAc,CACd,kBhBm/BF,CgBp7BQ,UAhEN,aAAc,CACd,kBhBu/BF,CgBx7BQ,UAhEN,aAAc,CACd,ShB2/BF,CgB57BQ,UAhEN,aAAc,CACd,kBhB+/BF,CgBh8BQ,UAhEN,aAAc,CACd,kBhBmgCF,CgBp8BQ,UAhEN,aAAc,CACd,ShBugCF,CgBx8BQ,WAhEN,aAAc,CACd,kBhB2gCF,CgB58BQ,WAhEN,aAAc,CACd,kBhB+gCF,CgBh9BQ,WAhEN,aAAc,CACd,UhBmhCF,CgB58BU,aAxDV,ahBugCA,CgB/8BU,aAxDV,uBhB0gCA,CgBl9BU,aAxDV,wBhB6gCA,CgBr9BU,aAxDV,ehBghCA,CgBx9BU,aAxDV,wBhBmhCA,CgB39BU,aAxDV,wBhBshCA,CgB99BU,aAxDV,ehByhCA,CgBj+BU,aAxDV,wBhB4hCA,CgBp+BU,aAxDV,wBhB+hCA,CgBv+BU,aAxDV,ehBkiCA,CgB1+BU,cAxDV,wBhBqiCA,CgB7+BU,cAxDV,wBhBwiCA,CgBr+BM,iBAEE,ehBu+BR,CgBp+BM,iBAEE,ehBs+BR,CgB7+BM,iBAEE,qBhB++BR,CgB5+BM,iBAEE,qBhB8+BR,CgBr/BM,iBAEE,oBhBu/BR,CgBp/BM,iBAEE,oBhBs/BR,CgB7/BM,iBAEE,kBhB+/BR,CgB5/BM,iBAEE,kBhB8/BR,CgBrgCM,iBAEE,oBhBugCR,CgBpgCM,iBAEE,oBhBsgCR,CgB7gCM,iBAEE,kBhB+gCR,CgB5gCM,iBAEE,kBhB8gCR,CACF,CczkCI,yBEUE,QACE,WhBkkCN,CgB/jCI,oBApCJ,aAAc,CACd,UhBsmCA,CgBxlCA,iBACE,aAAc,CACd,UhB0lCF,CgB5lCA,iBACE,aAAc,CACd,ShB8lCF,CgBhmCA,iBACE,aAAc,CACd,kBhBkmCF,CgBpmCA,iBACE,aAAc,CACd,ShBsmCF,CgBxmCA,iBACE,aAAc,CACd,ShB0mCF,CgB5mCA,iBACE,aAAc,CACd,kBhB8mCF,CgB/kCI,aAhDJ,aAAc,CACd,UhBkoCA,CgB7kCQ,UAhEN,aAAc,CACd,iBhBgpCF,CgBjlCQ,UAhEN,aAAc,CACd,kBhBopCF,CgBrlCQ,UAhEN,aAAc,CACd,ShBwpCF,CgBzlCQ,UAhEN,aAAc,CACd,kBhB4pCF,CgB7lCQ,UAhEN,aAAc,CACd,kBhBgqCF,CgBjmCQ,UAhEN,aAAc,CACd,ShBoqCF,CgBrmCQ,UAhEN,aAAc,CACd,kBhBwqCF,CgBzmCQ,UAhEN,aAAc,CACd,kBhB4qCF,CgB7mCQ,UAhEN,aAAc,CACd,ShBgrCF,CgBjnCQ,WAhEN,aAAc,CACd,kBhBorCF,CgBrnCQ,WAhEN,aAAc,CACd,kBhBwrCF,CgBznCQ,WAhEN,aAAc,CACd,UhB4rCF,CgBrnCU,aAxDV,ahBgrCA,CgBxnCU,aAxDV,uBhBmrCA,CgB3nCU,aAxDV,wBhBsrCA,CgB9nCU,aAxDV,ehByrCA,CgBjoCU,aAxDV,wBhB4rCA,CgBpoCU,aAxDV,wBhB+rCA,CgBvoCU,aAxDV,ehBksCA,CgB1oCU,aAxDV,wBhBqsCA,CgB7oCU,aAxDV,wBhBwsCA,CgBhpCU,aAxDV,ehB2sCA,CgBnpCU,cAxDV,wBhB8sCA,CgBtpCU,cAxDV,wBhBitCA,CgB9oCM,iBAEE,ehBgpCR,CgB7oCM,iBAEE,ehB+oCR,CgBtpCM,iBAEE,qBhBwpCR,CgBrpCM,iBAEE,qBhBupCR,CgB9pCM,iBAEE,oBhBgqCR,CgB7pCM,iBAEE,oBhB+pCR,CgBtqCM,iBAEE,kBhBwqCR,CgBrqCM,iBAEE,kBhBuqCR,CgB9qCM,iBAEE,oBhBgrCR,CgB7qCM,iBAEE,oBhB+qCR,CgBtrCM,iBAEE,kBhBwrCR,CgBrrCM,iBAEE,kBhBurCR,CACF,CclvCI,yBEUE,QACE,WhB2uCN,CgBxuCI,oBApCJ,aAAc,CACd,UhB+wCA,CgBjwCA,iBACE,aAAc,CACd,UhBmwCF,CgBrwCA,iBACE,aAAc,CACd,ShBuwCF,CgBzwCA,iBACE,aAAc,CACd,kBhB2wCF,CgB7wCA,iBACE,aAAc,CACd,ShB+wCF,CgBjxCA,iBACE,aAAc,CACd,ShBmxCF,CgBrxCA,iBACE,aAAc,CACd,kBhBuxCF,CgBxvCI,aAhDJ,aAAc,CACd,UhB2yCA,CgBtvCQ,UAhEN,aAAc,CACd,iBhByzCF,CgB1vCQ,UAhEN,aAAc,CACd,kBhB6zCF,CgB9vCQ,UAhEN,aAAc,CACd,ShBi0CF,CgBlwCQ,UAhEN,aAAc,CACd,kBhBq0CF,CgBtwCQ,UAhEN,aAAc,CACd,kBhBy0CF,CgB1wCQ,UAhEN,aAAc,CACd,ShB60CF,CgB9wCQ,UAhEN,aAAc,CACd,kBhBi1CF,CgBlxCQ,UAhEN,aAAc,CACd,kBhBq1CF,CgBtxCQ,UAhEN,aAAc,CACd,ShBy1CF,CgB1xCQ,WAhEN,aAAc,CACd,kBhB61CF,CgB9xCQ,WAhEN,aAAc,CACd,kBhBi2CF,CgBlyCQ,WAhEN,aAAc,CACd,UhBq2CF,CgB9xCU,aAxDV,ahBy1CA,CgBjyCU,aAxDV,uBhB41CA,CgBpyCU,aAxDV,wBhB+1CA,CgBvyCU,aAxDV,ehBk2CA,CgB1yCU,aAxDV,wBhBq2CA,CgB7yCU,aAxDV,wBhBw2CA,CgBhzCU,aAxDV,ehB22CA,CgBnzCU,aAxDV,wBhB82CA,CgBtzCU,aAxDV,wBhBi3CA,CgBzzCU,aAxDV,ehBo3CA,CgB5zCU,cAxDV,wBhBu3CA,CgB/zCU,cAxDV,wBhB03CA,CgBvzCM,iBAEE,ehByzCR,CgBtzCM,iBAEE,ehBwzCR,CgB/zCM,iBAEE,qBhBi0CR,CgB9zCM,iBAEE,qBhBg0CR,CgBv0CM,iBAEE,oBhBy0CR,CgBt0CM,iBAEE,oBhBw0CR,CgB/0CM,iBAEE,kBhBi1CR,CgB90CM,iBAEE,kBhBg1CR,CgBv1CM,iBAEE,oBhBy1CR,CgBt1CM,iBAEE,oBhBw1CR,CgB/1CM,iBAEE,kBhBi2CR,CgB91CM,iBAEE,kBhBg2CR,CACF,Cc35CI,0BEUE,QACE,WhBo5CN,CgBj5CI,oBApCJ,aAAc,CACd,UhBw7CA,CgB16CA,iBACE,aAAc,CACd,UhB46CF,CgB96CA,iBACE,aAAc,CACd,ShBg7CF,CgBl7CA,iBACE,aAAc,CACd,kBhBo7CF,CgBt7CA,iBACE,aAAc,CACd,ShBw7CF,CgB17CA,iBACE,aAAc,CACd,ShB47CF,CgB97CA,iBACE,aAAc,CACd,kBhBg8CF,CgBj6CI,aAhDJ,aAAc,CACd,UhBo9CA,CgB/5CQ,UAhEN,aAAc,CACd,iBhBk+CF,CgBn6CQ,UAhEN,aAAc,CACd,kBhBs+CF,CgBv6CQ,UAhEN,aAAc,CACd,ShB0+CF,CgB36CQ,UAhEN,aAAc,CACd,kBhB8+CF,CgB/6CQ,UAhEN,aAAc,CACd,kBhBk/CF,CgBn7CQ,UAhEN,aAAc,CACd,ShBs/CF,CgBv7CQ,UAhEN,aAAc,CACd,kBhB0/CF,CgB37CQ,UAhEN,aAAc,CACd,kBhB8/CF,CgB/7CQ,UAhEN,aAAc,CACd,ShBkgDF,CgBn8CQ,WAhEN,aAAc,CACd,kBhBsgDF,CgBv8CQ,WAhEN,aAAc,CACd,kBhB0gDF,CgB38CQ,WAhEN,aAAc,CACd,UhB8gDF,CgBv8CU,aAxDV,ahBkgDA,CgB18CU,aAxDV,uBhBqgDA,CgB78CU,aAxDV,wBhBwgDA,CgBh9CU,aAxDV,ehB2gDA,CgBn9CU,aAxDV,wBhB8gDA,CgBt9CU,aAxDV,wBhBihDA,CgBz9CU,aAxDV,ehBoh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Ac,CACd,SrBk2DJ,CqB91DE,2BACE,+Bf40BoC,Ce10BpC,SrB+1DJ,CqBv1DE,uBAEE,uCf8yBoC,Ce3yBpC,SrBs1DJ,CqBl1DE,oCE1FA,sCjBqiCgC,Cel8B9B,cAAe,CAFf,oBAAqB,CAGrB,8CfgsB0B,Ce/rB1B,eAAgB,CAPhB,0BfsyBoC,CexyBpC,wBACA,wBforB0B,CetrB1B,uBAKA,mBAAoB,CCpFlB,6HtB86DN,CsB16DM,uCD0EJ,oCCzEM,etB66DN,CACF,CqBt1DE,yEACE,uCrBw1DJ,CqB/0DA,wBAOE,4BAA6B,CAC7B,wBAAyB,CACzB,sCAHA,0Bf2xBsC,CehyBtC,aAAc,CAId,efwf4B,Cezf5B,eAAgB,CADhB,kBADA,UrBy1DF,CqBh1DE,8BACE,SrBk1DJ,CqB/0DE,gFAGE,cAAe,CADf,erBi1DJ,CqBr0DA,iBdjII,yCJ4QE,iBALI,CkBrIR,yDf4wBsC,Ce3wBtC,oBrB00DF,CqBt0DE,uCAEE,sBACA,uBfooB0B,CetoB1B,oBrB00DJ,CqBp0DA,iBd9II,yCJ4QE,iBALI,CkBxHR,wDfgwBsC,Ce/vBtC,kBrBy0DF,CqBr0DE,uCAEE,oBACA,sBf2nB0B,Ce7nB1B,kBrBy0DJ,CqB/zDE,sBACE,0DrBk0DJ,CqB/zDE,yBACE,yDrBi0DJ,CqB9zDE,yBACE,wDrBg0DJ,CqB3zDA,oBAEE,sDf8tBsC,Ce7tBtC,efilB4B,CenlB5B,UrBg0DF,CqB5zDE,mDACE,crB8zDJ,CqB3zDE,uCACE,kBAAoB,CdvLpB,qCPq/DJ,CqB1zDE,0CACE,kBAAoB,Cd5LpB,qCPy/DJ,CqBzzDE,oCAAoB,qDrB4zDtB,CqB3zDE,oCAAoB,oDrB8zDtB,CwB7gEA,aACE,sQAUA,eAAgB,CAChB,kClBk3BsC,CkBj3BtC,iFAEA,uClB+9BkC,CkBh+BlC,2BAA4B,CAE5B,yBlB+9BkC,CkB99BlC,2DjBHE,sCiBJF,0BlBy3BsC,CkBh4BtC,aAAc,CrBuRV,cALI,CqB7QR,elB+lB4B,CkB9lB5B,elBsmB4B,CkB1mB5B,uCFMI,oEESJ,CAhBA,UxB6hEF,CsBlhEM,uCEfN,aFgBQ,etBqhEN,CACF,CwBhhEE,mBACE,oBlBs3BoC,CkBh3BlC,iDlBi+B4B,CkBt+B9B,SxBmhEJ,CwB1gEE,0DAGE,qBAAsB,CADtB,oBxB4gEJ,CwBxgEE,sBAEE,uCxBygEJ,CwBpgEE,4BACE,iBAAkB,CAClB,sCxBsgEJ,CwBlgEA,gBjBtCI,yCJ4QE,iBALI,CqB/NR,qBlBquB4B,CkBpuB5B,kBlBquB4B,CkBvuB5B,kBxBygEF,CwBlgEA,gBjB9CI,yCJ4QE,iBALI,CqBvNR,oBlBiuB4B,CkBhuB5B,iBlBiuB4B,CkBnuB5B,iBxBygEF,CwBhgEI,kCACE,qQxBmgEN,CyB3kEA,YACE,aAAc,CAGd,qBnBq6BwC,CmBv6BxC,iBnBq6BwC,CmBp6BxC,kBzB+kEF,CyB5kEE,8BACE,UAAW,CACX,kBzB8kEJ,CyB1kEA,oBAEE,cAAe,CADf,mBnB25BwC,CmBz5BxC,gBzB6kEF,CyB3kEE,sCACE,WAAY,CAEZ,aAAc,CADd,mBzB8kEJ,CyBzkEA,kBACE,qCAOA,eAAgB,CAChB,yCACA,+CAEA,uBAA2B,CAD3B,2BAA4B,CAE5B,uBAAwB,CACxB,0DnB24BwC,CmBt5BxC,aAAc,CAEd,UnBy4BwC,CmBx4BxC,iBASA,wBAAyB,CARzB,kBAAmB,CAHnB,SzBslEF,CyBxkEE,iClB3BE,mBPsmEJ,CyBvkEE,8BAEE,iBzBwkEJ,CyBrkEE,yBACE,sBzBukEJ,CyBpkEE,wBACE,oBnBs1BoC,CmBp1BpC,iDhBnCoB,CgBkCpB,SzBukEJ,CyBnkEE,0BACE,wBnB5BM,CmB6BN,oBzBqkEJ,CyBnkEI,yCAII,oQzBkkER,CyB9jEI,sCAII,4KzB6jER,CyBxjEE,+CACE,wBnBjDM,CmBkDN,oBnBlDM,CmBuDJ,8PzBsjEN,CyBljEE,2BAEE,WAAY,CACZ,UnBk2BuC,CmBp2BvC,mBzBsjEJ,CyB7iEI,2FACE,cAAe,CACf,UzB+iEN,CyBjiEA,aACE,kBzBoiEF,CyBliEE,+BACE,qLAIA,0CACA,qBAAgC,ClBjHhC,kBkB+GA,mBHlHE,+CGsHF,CALA,SzBwiEJ,CsBrpEM,uCG0GJ,+BHzGM,etBwpEN,CACF,CyBtiEI,qCACE,0KzBwiEN,CyBriEI,uCACE,wBnB60B4B,CmBx0B1B,uKzBmiER,CyB9hEE,gCAEE,cAAe,CADf,mBzBiiEJ,CyB9hEI,kDAEE,aAAc,CADd,mBzBiiEN,CyB3hEA,mBACE,oBAAqB,CACrB,iBzB8hEF,CyB3hEA,WACE,iBAAkB,CAClB,kBAAsB,CACtB,mBzB8hEF,CyB1hEI,mDAEE,WAAY,CACZ,WnBspBwB,CmBxpBxB,mBzB8hEN,CyBrhEI,8EACE,0LzBwhEN,C0B3sEA,YAIE,eAAgB,CAChB,4BAA6B,CAH7B,gBACA,SAAU,CAFV,U1BktEF,C0B5sEE,kBACE,S1B8sEJ,C0B1sEI,wCAA0B,gE1B6sE9B,C0B5sEI,oCAA0B,gE1B+sE9B,C0B5sEE,8BACE,Q1B8sEJ,C0B3sEE,kCAIE,eAAgB,CH1BlB,wBjBkCQ,CoBNN,QpB6/BuC,CC1gCvC,mBmBSA,WpB8/BuC,CoB7/BvC,mBJbE,sGImBF,CARA,U1BotEJ,CsB3tEM,uCIMJ,kCJLM,etB8tEN,CACF,C0B/sEI,yCHjCF,wBvBmvEF,C0B7sEE,2CAKE,uCpBu+B8B,CoBt+B9B,wBAAyB,CnB7BzB,mBmB0BA,iBAAkB,CAClB,cpBu+B8B,CoBz+B9B,YpBw+B8B,CoBz+B9B,U1BqtEJ,C0B3sEE,8BAGE,eAAgB,CHpDlB,wBjBkCQ,CoBoBN,QpBm+BuC,CC1gCvC,mBmBoCA,WpBm+BuC,CgB1gCrC,sGI6CF,CAPA,U1BmtEJ,CsBrvEM,uCIiCJ,8BJhCM,etBwvEN,CACF,C0B/sEI,qCH3DF,wBvB6wEF,C0B7sEE,8BAKE,uCpB68B8B,CoB58B9B,wBAAyB,CnBvDzB,mBmBoDA,iBAAkB,CAClB,cpB68B8B,CoB/8B9B,YpB88B8B,CoB/8B9B,U1BqtEJ,C0B3sEE,qBACE,mB1B6sEJ,C0B3sEI,2CACE,0C1B6sEN,C0B1sEI,uCACE,0C1B4sEN,C2BnyEA,eACE,iB3BsyEF,C2BpyEE,gGAGE,8CrBwiCoC,CqBtiCpC,gBrBuiCoC,CqBxiCpC,kD3BuyEJ,C2BnyEE,qBAYE,gDAPA,WAAY,CAFZ,MAAO,CAIP,eAAgB,CADhB,oBAKA,mBAAoB,CAVpB,iBAAkB,CAOlB,gBAAiB,CACjB,sBAAuB,CAPvB,KAAM,CAWN,oBAAqB,CLRnB,4DKSF,CAJA,kBAAmB,CANnB,S3B+yEJ,CsB1yEM,uCKTJ,qBLUM,etB6yEN,CACF,C2BvyEE,oEAEE,mB3ByyEJ,C2BvyEI,8FACE,iB3B0yEN,C2BvyEI,oMAGE,sBrB4gCkC,CqB7gClC,oB3B2yEN,C2BvyEI,sGAEE,sBrBugCkC,CqBxgClC,oB3B2yEN,C2BtyEE,4BAEE,sBrBigCoC,CqBlgCpC,oB3ByyEJ,C2BjyEI,mLACE,yCACA,0D3BsyEN,C2BpyEM,2MAME,kCrBg0BgC,CCh3BpC,sCoB+CI,UAAW,CADX,YrBm/BgC,CqBr/BhC,mBADA,iBAAkB,CAElB,U3B6yER,C2BnyEI,oDACE,yCACA,0D3BqyEN,C2BhyEI,6CACE,qC3BkyEN,C2B9xEE,2EAEE,a3BgyEJ,C2B9xEI,uFACE,uC3BiyEN,C4Bx3EA,aAIE,mBAAoB,CAFpB,YAAa,CACb,cAAe,CAFf,iBAAkB,CAIlB,U5B23EF,C4Bz3EE,iFAIE,aAAc,CAEd,WAAY,CAHZ,iBAAkB,CAElB,Q5B43EJ,C4Bv3EE,0GAGE,S5By3EJ,C4Bn3EE,kBACE,iBAAkB,CAClB,S5Bq3EJ,C4Bn3EI,wBACE,S5Bq3EN,C4B12EA,kBAEE,kBAAmB,CAQnB,sCtB06BsC,CsBz6BtC,2DrBtCE,sCqBkCF,0BtBm1BsC,CsBz1BtC,YAAa,CzBgPT,cALI,CyBvOR,etByjB4B,CsBxjB5B,etBgkB4B,CsBnkB5B,uBAKA,iBAAkB,CAClB,kB5Bg3EF,C4Bp2EA,kHrBhDI,yCJ4QE,iBALI,CyBnNR,kB5By2EF,C4Bp2EA,kHrBzDI,yCJ4QE,iBALI,CyB1MR,oB5By2EF,C4Bp2EA,0DAEE,kB5Bu2EF,C4Bj1EI,iqBrBzEA,6BADA,yBP06EJ,C4Bn1EE,0IrBxEE,4BADA,yBqB0EA,2C5Bu1EJ,C4Bn1EE,uHrB7EE,4BADA,wBPs6EJ,C6B77EE,gBAME,gCvBkjCqB,CuBvjCrB,YAAa,C1BoQX,gBALI,C0B7PN,iBvBu0BoC,CuBx0BpC,U7Bm8EJ,C6B57EE,eAWE,kCvBoiCqB,CC/jCrB,sCsB0BA,UvBqiCqB,CuB3iCrB,YAAa,C1BwPX,iBALI,C0BhPN,iBAFA,cAAe,CACf,qBALA,iBAAkB,CAClB,QAAS,CACT,S7Bu8EJ,C6B17EI,8HAEE,a7B+7EN,C6B9+EI,0DAyDI,wQAEA,yDADA,2BAA4B,CAE5B,4DAPF,8CvBuhCmB,CuBphCjB,kC7B+7ER,C6Bx7EM,sEACE,8CvB4gCiB,CuBvgCf,uD7Bs7EV,C6B3/EI,0EAgFI,8EADA,kC7Bi7ER,C6BhgFI,wDAuFE,8C7B66EN,C6B16EQ,4NAEE,gRAEA,6DACA,sEAFA,sB7B66EV,C6Bv6EM,oEACE,8CvBw+BiB,CuBn+Bf,uD7Bq6EV,C6B9gFI,sEAkHI,2B7Bg6ER,C6BlhFI,kEAyHE,8C7B65EN,C6B35EM,kFACE,2C7B65ER,C6B15EM,8EACE,uD7B45ER,C6Bz5EM,sGACE,gC7B25ER,C6Bt5EI,qDACE,gB7By5EN,C6BniFI,kVAoJM,S7Bu5EV,C6BvhFE,kBAME,kCvBkjCqB,CuBvjCrB,YAAa,C1BoQX,gBALI,C0B7PN,iBvBu0BoC,CuBx0BpC,U7B6hFJ,C6BthFE,iBAWE,iCvBoiCqB,CC/jCrB,sCsB0BA,UvBqiCqB,CuB3iCrB,YAAa,C1BwPX,iBALI,C0BhPN,iBAFA,cAAe,CACf,qBALA,iBAAkB,CAClB,QAAS,CACT,S7BiiFJ,C6BphFI,8IAEE,a7ByhFN,C6BxkFI,8DAyDI,0VAEA,yDADA,2BAA4B,CAE5B,4DAPF,gDvBuhCmB,CuBphCjB,kC7ByhFR,C6BlhFM,0EACE,gDvB4gCiB,CuBvgCf,sD7BghFV,C6BrlFI,8EAgFI,8EADA,kC7B2gFR,C6B1lFI,4DAuFE,gD7BugFN,C6BpgFQ,oOAEE,kWAEA,6DACA,sEAFA,sB7BugFV,C6BjgFM,wEACE,gDvBw+BiB,CuBn+Bf,sD7B+/EV,C6BxmFI,0EAkHI,2B7B0/ER,C6B5mFI,sEAyHE,gD7Bu/EN,C6Br/EM,sFACE,6C7Bu/ER,C6Bp/EM,kFACE,sD7Bs/ER,C6Bn/EM,0GACE,kC7Bq/ER,C6Bh/EI,uDACE,gB7Bm/EN,C6B7nFI,8VAsJM,S7B++EV,C8BvoFA,KAEE,2BACA,4BACA,uB3BuRI,uBALI,C2BhRR,yBACA,yBACA,oCACA,wBACA,6CACA,kCACA,+CACA,wCACA,iFACA,+BACA,kFPhBA,iCOkCqB,CAFrB,mEvBjBE,0CuBUF,0BAKA,eAXA,oBAAqB,CAErB,sC3BsQI,iCALI,C2B/PR,sCACA,sCAJA,wDAMA,iBAAkB,CAClB,qBRfI,6HQwBJ,CALA,gBAAiB,CAFjB,qB9B4oFF,CsBzpFM,uCQhBN,KRiBQ,etB4pFN,CACF,C8BxoFE,WAGE,wCACA,8CAHA,+B9B4oFJ,C8BtoFE,sBAGE,kCACA,wCAFA,yB9ByoFJ,C8BpoFE,mBPpDA,uCOsDuB,CACrB,8CAME,0CARF,gCAGA,S9BuoFJ,C8B9nFE,8BACE,8CAME,0CALF,S9BioFJ,C8BxnFE,mGAME,yCAGA,+CAJA,gC9BwnFJ,C8BjnFI,yKAKI,yC9B+mFR,C8B1mFE,sCAKI,yC9BwmFN,C8BpmFE,mDAKE,2CAEA,iDAJA,mCAKA,uCAJA,mB9BumFJ,C8BvlFE,aC/GA,oBACA,oBACA,8BACA,0BACA,0BACA,oCACA,qCACA,2BACA,2BACA,qCACA,wDACA,6BACA,6BACA,sC/B0sFF,C8BxmFE,eC/GA,oBACA,oBACA,8BACA,0BACA,0BACA,oCACA,sCACA,2BACA,2BACA,qCACA,wDACA,6BACA,6BACA,sC/B2tFF,C8BznFE,aC/GA,oBACA,oBACA,8BACA,0BACA,0BACA,oCACA,qCACA,2BACA,2BACA,qCACA,wDACA,6BACA,6BACA,sC/B4uFF,C8B1oFE,UC/GA,oBACA,oBACA,8BACA,0BACA,0BACA,oCACA,qCACA,2BACA,2BACA,qCACA,wDACA,6BACA,6BACA,sC/B6vFF,C8B3pFE,aC/GA,oBACA,oBACA,8BACA,0BACA,0BACA,oCACA,oCACA,2BACA,2BACA,qCACA,wDACA,6BACA,6BACA,sC/B8wFF,C8B5qFE,YC/GA,oBACA,oBACA,8BACA,0BACA,0BACA,oCACA,oCACA,2BACA,2BACA,qCACA,wDACA,6BACA,6BACA,sC/B+xFF,C8B7rFE,WC/GA,oBACA,oBACA,8BACA,0BACA,0BACA,oCACA,sCACA,2BACA,2BACA,qCACA,wDACA,6BACA,6BACA,sC/BgzFF,C8B9sFE,UC/GA,oBACA,oBACA,8BACA,0BACA,0BACA,oCACA,mCACA,2BACA,2BACA,qCACA,wDACA,6BACA,6BACA,sC/Bi0FF,C8BrsFE,qBChHA,uBACA,8BACA,0BACA,0BACA,oCACA,qCACA,2BACA,2BACA,qCACA,wDACA,gCACA,iCACA,uCACA,kB/ByzFF,C8BttFE,uBChHA,uBACA,8BACA,0BACA,0BACA,oCACA,sCACA,2BACA,2BACA,qCACA,wDACA,gCACA,iCACA,uCACA,kB/B00FF,C8BvuFE,qBChHA,uBACA,8BACA,0BACA,0BACA,oCACA,oCACA,2BACA,2BACA,qCACA,wDACA,gCACA,iCACA,uCACA,kB/B21FF,C8BxvFE,kBChHA,uBACA,8BACA,0BACA,0BACA,oCACA,qCACA,2BACA,2BACA,qCACA,wDACA,gCACA,iCACA,uCACA,kB/B42FF,C8BzwFE,qBChHA,uBACA,8BACA,0BACA,0BACA,oCACA,oCACA,2BACA,2BACA,qCACA,wDACA,gCACA,iCACA,uCACA,kB/B63FF,C8B1xFE,oBChHA,uBACA,8BACA,0BACA,0BACA,oCACA,oCACA,2BACA,2BACA,qCACA,wDACA,gCACA,iCACA,uCACA,kB/B84FF,C8B3yFE,mBChHA,uBACA,8BACA,0BACA,0BACA,oCACA,sCACA,2BACA,2BACA,qCACA,wDACA,gCACA,iCACA,uCACA,kB/B+5FF,C8B5zFE,kBChHA,uBACA,8BACA,0BACA,0BACA,oCACA,mCACA,2BACA,2BACA,qCACA,wDACA,gCACA,iCACA,uCACA,kB/Bg7FF,C8Bj0FA,UACE,yBACA,oCACA,wBACA,kCACA,gDACA,wCACA,iDACA,yCACA,gCACA,2CACA,+BACA,qCAEA,yB9Bm0FF,C8BzzFE,wBACE,yB9B2zFJ,C8BxzFE,gBACE,+B9B0zFJ,C8B/yFA,2BCjJE,0BACA,wB5B8NI,0BALI,C4BvNR,iD/Bo8FF,C8BlzFA,2BCrJE,2BACA,0B5B8NI,2BALI,C4BvNR,iD/B28FF,CgC9gGA,MVgBM,8BtBkgGN,CsB9/FM,uCUpBN,MVqBQ,etBigGN,CACF,CgCphGE,iBACE,ShCshGJ,CgChhGE,qBACE,YhCmhGJ,CgC/gGA,YACE,QAAS,CACT,eAAgB,CVDZ,2BtBohGN,CsBhhGM,uCULN,YVMQ,etBmhGN,CACF,CgCrhGE,gCAEE,WAAY,CVNV,0BUOF,CAFA,OhCyhGJ,CsB1hGM,uCUAJ,gCVCM,etB6hGN,CACF,CiCljGA,sEAME,iBjCqjGF,CiCljGA,iBACE,kBjCqjGF,CkC7hGI,uBA/BF,eAAgB,CAChB,mCAFA,oCADA,sBAqCI,UAAW,CAHX,oBAAqB,CACrB,kB5B6hBwB,C4B5hBxB,qBlCoiGN,CkC3gGI,6BACE,alC6gGN,CiC3jGA,eAEE,0BACA,8BACA,0BACA,+BACA,8B9BuQI,4BALI,C8BhQR,yCACA,mCACA,8DACA,oDACA,kDACA,yFACA,4DACA,sCACA,8CACA,8CACA,oDACA,qDACA,yDACA,sDACA,2DACA,kCACA,qCACA,mCACA,oCACA,sCAcA,2BAA4B,CAD5B,uCAEA,6E1BzCE,+C0BoCF,+BALA,YAAa,C9B6OT,sCALI,C8BjOR,eAAgB,CAJhB,QAAS,CAFT,uCACA,kEAJA,iBAAkB,CAQlB,eAAgB,CAPhB,iCjCukGF,CiCxjGE,+BAEE,MAAO,CACP,qCAFA,QjC4jGJ,CiCliGI,qBACE,mBjCqiGN,CiCniGM,qCAEE,MAAO,CADP,UjCsiGR,CiCjiGI,mBACE,iBjCoiGN,CiCliGM,mCAEE,SAAU,CADV,OjCqiGR,Cc9kGI,yBmB4BA,wBACE,mBjCsjGJ,CiCpjGI,wCAEE,MAAO,CADP,UjCujGN,CiCljGE,sBACE,iBjCojGJ,CiCljGI,sCAEE,SAAU,CADV,OjCqjGN,CACF,Cc/lGI,yBmB4BA,wBACE,mBjCskGJ,CiCpkGI,wCAEE,MAAO,CADP,UjCukGN,CiClkGE,sBACE,iBjCokGJ,CiClkGI,sCAEE,SAAU,CADV,OjCqkGN,CACF,Cc/mGI,yBmB4BA,wBACE,mBjCslGJ,CiCplGI,wCAEE,MAAO,CADP,UjCulGN,CiCllGE,sBACE,iBjColGJ,CiCllGI,sCAEE,SAAU,CADV,OjCqlGN,CACF,Cc/nGI,0BmB4BA,wBACE,mBjCsmGJ,CiCpmGI,wCAEE,MAAO,CADP,UjCumGN,CiClmGE,sBACE,iBjComGJ,CiClmGI,sCAEE,SAAU,CADV,OjCqmGN,CACF,CiC3lGE,uCAEE,WAAY,CAEZ,wCADA,YAAa,CAFb,QjCgmGJ,CkCjrGI,+BAxBF,yBACA,mCAFA,oCADA,YAAa,CA8BT,UAAW,CAHX,oBAAqB,CACrB,kB5B6hBwB,C4B5hBxB,qBlCwrGN,CkC/pGI,qCACE,alCiqGN,CiCjmGE,wCAGE,SAAU,CAEV,sCADA,YAAa,CAFb,UAAW,CADX,KjCwmGJ,CkCtsGI,gCAjBF,qCACA,uBAFA,cAAe,CADf,kCAuBI,UAAW,CAHX,oBAAqB,CACrB,kB5B6hBwB,C4B5hBxB,qBlC6sGN,CkCprGI,sCACE,alCsrGN,CiC5mGI,gCACE,gBjC8mGN,CiCxmGE,0CAGE,SAAU,CAEV,uCADA,YAAa,CAFb,UAAW,CADX,KjC+mGJ,CkC9tGI,kCAIE,UAAW,CAHX,oBAAqB,CAenB,YAAa,CAdf,kB5B6hBwB,C4B5hBxB,qBlCiuGN,CkCjtGM,mCA7BJ,qCADA,wBADA,kCAmCM,UAAW,CAHX,oBAAqB,CACrB,mB5B0gBsB,C4BzgBtB,qBlC0tGR,CkCptGI,wCACE,alCstGN,CiC3nGI,mCACE,gBjC6nGN,CiCtnGA,kBAIE,mDAHA,QAAS,CACT,6CAGA,SAAU,CAFV,ejC2nGF,CiCnnGA,eAUE,4BAA6B,CAC7B,QAAS,C1BtKP,sD0B+JF,UAAW,CAEX,oCALA,aAAc,CAId,e3Byb4B,C2B3b5B,4EAIA,kBAAmB,CACnB,qBACA,kBAAmB,CAPnB,UjCgoGF,CiCpnGE,0CVxLA,iDU4LuB,CAFrB,yCjCsnGJ,CiCjnGE,4CV/LA,kDUmMuB,CAFrB,2CACA,oBjCmnGJ,CiC/mGE,gDAIE,4BAA6B,CAF7B,6CACA,mBjCinGJ,CiC1mGA,oBACE,ajC6mGF,CiCzmGA,iBAKE,sCAJA,aAAc,C9BqEV,iBALI,C8B9DR,eAAgB,CADhB,gFAIA,kBjC4mGF,CiCxmGA,oBAGE,oCAFA,aAAc,CACd,2EjC4mGF,CiCvmGA,oBAEE,4BACA,yBACA,8DACA,2BACA,iCACA,oCACA,4DACA,qDACA,yDACA,sDACA,0CACA,kCjCymGF,CmC/1GA,+BAGE,mBAAoB,CADpB,iBAAkB,CAElB,qBnCk2GF,CmCh2GE,yCAEE,aAAc,CADd,iBnCo2GJ,CmC91GE,kXAME,SnCs2GJ,CmCj2GA,aACE,YAAa,CACb,cAAe,CACf,0BnCo2GF,CmCl2GE,0BACE,UnCo2GJ,CmCh2GA,W5BhBI,qCPo3GJ,CmCh2GE,qFAEE,2CnCk2GJ,CmC91GE,qJ5BTE,6BADA,yBP82GJ,CmC11GE,6G5BLE,4BADA,wBPs2GJ,CmC70GA,uBAEE,sBADA,sBnCi1GF,CmC90GE,wGAGE,anC80GJ,CmC30GE,yCACE,cnC60GJ,CmCz0GA,yEAEE,qBADA,qBnC60GF,CmCz0GA,yEAEE,oBADA,oBnC60GF,CmCxzGA,oBAEE,sBAAuB,CADvB,qBAAsB,CAEtB,sBnC2zGF,CmCzzGE,wDAEE,UnC2zGJ,CmCxzGE,4FAEE,0CnC0zGJ,CmCtzGE,qH5BzFE,4BADA,4BPq5GJ,CmCtzGE,oF5B7GE,yBACA,yBPu6GJ,CoC/7GA,KAEE,6BACA,+BAEA,4BACA,yCACA,qDACA,uDAGA,YAAa,CACb,cAAe,CAGf,eAAgB,CADhB,eAAgB,CADhB,cpCg8GF,CoC37GA,UAOE,eAAgB,CAChB,QAAS,CAHT,+BAJA,aAAc,CjCuQV,sCALI,CiC/PR,2CAFA,kEAIA,qBdbI,iGtB88GN,CsB18GM,uCcGN,UdFQ,etB68GN,CACF,CoCj8GE,gCAEE,oCpCk8GJ,CoC97GE,wBAEE,iD3BfoB,C2BcpB,SpCi8GJ,CoC57GE,sCAEE,wCAEA,cAAe,CADf,mBpC87GJ,CoCr7GA,UAEE,kDACA,kDACA,oDACA,2GACA,yDACA,+CACA,uGAGA,mFpCq7GF,CoCn7GE,oBAEE,yD7B7CA,wDACA,yD6B2CA,sDpCw7GJ,CoCp7GI,oDAIE,wDADA,iBpCq7GN,CoCh7GE,8DAGE,mDACA,yDAFA,0CpCo7GJ,CoC/6GE,yB7B/DE,yBACA,0B6BgEA,mDpCk7GJ,CoCv6GA,WAEE,qDACA,sCACA,qCpCy6GF,CoCt6GE,qB7B5FE,+CPqgHJ,CoCr6GE,uDb/GA,mDakHuB,CADrB,2CpCw6GJ,CoC95GA,eAEE,4BACA,yCACA,8DAGA,+BpC85GF,CoC55GE,yBAGE,qEADA,cAAe,CADf,epCg6GJ,CoC55GI,8DAEE,gCpC65GN,CoCz5GE,+DAIE,gCAAiC,CADjC,gDADA,epC65GJ,CoCj5GE,wCAEE,aAAc,CACd,iBpCo5GJ,CoC/4GE,kDAEE,YAAa,CACb,WAAY,CACZ,iBpCk5GJ,CoC54GE,iEACE,UpCg5GJ,CoCt4GE,uBACE,YpCy4GJ,CoCv4GE,qBACE,apCy4GJ,CqCtkHA,QAEE,wBACA,6BACA,0DACA,+DACA,kEACA,8DACA,sCACA,kCACA,oCACA,6DACA,mEACA,sCACA,sCACA,sCACA,sCACA,qRACA,yEACA,0DACA,0CACA,4DAMA,kBAAmB,CAFnB,YAAa,CACb,cAAe,CAEf,6BAA8B,CAC9B,8DALA,iBrC2kHF,CqChkHE,oIAGE,kBAAmB,CAFnB,YAAa,CACb,iBAAkB,CAElB,6BrCukHJ,CqCnjHA,cAKE,mClC0NI,0CALI,CkCvNR,+CADA,gDADA,6CAKA,qBACA,kBrCqjHF,CqCnjHE,wCAEE,wCrCojHJ,CqC1iHA,YAEE,0BACA,+BAEA,4BACA,2CACA,uDACA,6DAGA,YAAa,CACb,qBAAsB,CAGtB,eAAgB,CADhB,eAAgB,CADhB,crC2iHF,CqCtiHI,wDAEE,mCrCuiHN,CqCniHE,2BACE,erCqiHJ,CqC5hHA,aAGE,6BADA,oB/B6gCkC,C+B9gClC,iBrCiiHF,CqC7hHE,yDAGE,mCrC+hHJ,CqClhHA,iBAKE,kBAAmB,CAJnB,eAAgB,CAChB,WrCshHF,CqC/gHA,gBAKE,4BAA6B,CAC7B,0E9BxIE,qD8BsIF,6BlCsII,4CALI,CkClIR,aAAc,CAFd,8EftII,8CtB+pHN,CsB3pHM,uCeiIN,gBfhIQ,etB8pHN,CACF,CqCrhHE,sBACE,oBrCuhHJ,CqCphHE,sBAGE,sDADA,SAAU,CADV,oBrCwhHJ,CqChhHA,qBAKE,kDAEA,uBAA2B,CAD3B,2BAA4B,CAE5B,oBAAqB,CAPrB,oBAAqB,CAErB,YAAa,CACb,qBAAsB,CAFtB,WrCyhHF,CqChhHA,mBACE,wCACA,erCmhHF,Cc7oHI,yBuBsIA,kBAEI,gBAAiB,CACjB,0BrC0gHN,CqCxgHM,8BACE,kBrC0gHR,CqCxgHQ,6CACE,iBrC0gHV,CqCvgHQ,wCAEE,iDADA,iDrC0gHV,CqCrgHM,qCACE,gBrCugHR,CqCpgHM,mCACE,sBAAwB,CACxB,erCsgHR,CqCngHM,kCACE,YrCqgHR,CqClgHM,6BAQE,sCAAwC,CACxC,kBAAoB,CALpB,WAAY,CAEZ,qBAAuB,CAJvB,eAAgB,CAQhB,wBAA0B,Cf9N9B,eegOI,CALA,4BAA8B,CAF9B,oBAAsB,CAFtB,YrC2gHR,CqC//GQ,+CACE,YrCigHV,CqC9/GQ,6CACE,YAAa,CACb,WAAY,CAEZ,kBAAmB,CADnB,SrCigHV,CACF,Cc7rHI,yBuBsIA,kBAEI,gBAAiB,CACjB,0BrCyjHN,CqCvjHM,8BACE,kBrCyjHR,CqCvjHQ,6CACE,iBrCyjHV,CqCtjHQ,wCAEE,iDADA,iDrCyjHV,CqCpjHM,qCACE,gBrCsjHR,CqCnjHM,mCACE,sBAAwB,CACxB,erCqjHR,CqCljHM,kCACE,YrCojHR,CqCjjHM,6BAQE,sCAAwC,CACxC,kBAAoB,CALpB,WAAY,CAEZ,qBAAuB,CAJvB,eAAgB,CAQhB,wBAA0B,Cf9N9B,eegOI,CALA,4BAA8B,CAF9B,oBAAsB,CAFtB,YrC0jHR,CqC9iHQ,+CACE,YrCgjHV,CqC7iHQ,6CACE,YAAa,CACb,WAAY,CAEZ,kBAAmB,CADnB,SrCgjHV,CACF,Cc5uHI,yBuBsIA,kBAEI,gBAAiB,CACjB,0BrCwmHN,CqCtmHM,8BACE,kBrCwmHR,CqCtmHQ,6CACE,iBrCwmHV,CqCrmHQ,wCAEE,iDADA,iDrCwmHV,CqCnmHM,qCACE,gBrCqmHR,CqClmHM,mCACE,sBAAwB,CACxB,erComHR,CqCjmHM,kCACE,YrCmmHR,CqChmHM,6BAQE,sCAAwC,CACxC,kBAAoB,CALpB,WAAY,CAEZ,qBAAuB,CAJvB,eAAgB,CAQhB,wBAA0B,Cf9N9B,eegOI,CALA,4BAA8B,CAF9B,oBAAsB,CAFtB,YrCymHR,CqC7lHQ,+CACE,YrC+lHV,CqC5lHQ,6CACE,YAAa,CACb,WAAY,CAEZ,kBAAmB,CADnB,SrC+lHV,CACF,Cc3xHI,0BuBsIA,kBAEI,gBAAiB,CACjB,0BrCupHN,CqCrpHM,8BACE,kBrCupHR,CqCrpHQ,6CACE,iBrCupHV,CqCppHQ,wCAEE,iDADA,iDrCupHV,CqClpHM,qCACE,gBrCopHR,CqCjpHM,mCACE,sBAAwB,CACxB,erCmpHR,CqChpHM,kCACE,YrCkpHR,CqC/oHM,6BAQE,sCAAwC,CACxC,kBAAoB,CALpB,WAAY,CAEZ,qBAAuB,CAJvB,eAAgB,CAQhB,wBAA0B,Cf9N9B,eegOI,CALA,4BAA8B,CAF9B,oBAAsB,CAFtB,YrCwpHR,CqC5oHQ,+CACE,YrC8oHV,CqC3oHQ,6CACE,YAAa,CACb,WAAY,CAEZ,kBAAmB,CADnB,SrC8oHV,CACF,CqCpsHI,eAEI,gBAAiB,CACjB,0BrCqsHR,CqCnsHQ,2BACE,kBrCqsHV,CqCnsHU,0CACE,iBrCqsHZ,CqClsHU,qCAEE,iDADA,iDrCqsHZ,CqChsHQ,kCACE,gBrCksHV,CqC/rHQ,gCACE,sBAAwB,CACxB,erCisHV,CqC9rHQ,+BACE,YrCgsHV,CqC7rHQ,0BAQE,sCAAwC,CACxC,kBAAoB,CALpB,WAAY,CAEZ,qBAAuB,CAJvB,eAAgB,CAQhB,wBAA0B,Cf9N9B,eegOI,CALA,4BAA8B,CAF9B,oBAAsB,CAFtB,YrCssHV,CqC1rHU,4CACE,YrC4rHZ,CqCzrHU,0CACE,YAAa,CACb,WAAY,CAEZ,kBAAmB,CADnB,SrC4rHZ,CqC1qHA,yCAGE,sCACA,4CACA,+CACA,8BACA,6BACA,mCACA,mDrC6qHF,CqCtqHI,mFANF,uRrCgrHF,CsCl8HA,MAEE,wBACA,wBACA,gCACA,wBACA,2BACA,8CACA,0DACA,gDACA,uBACA,qFACA,+BACA,6BACA,qDACA,sBACA,mBACA,kBACA,+BACA,mCACA,+BAQA,2BAJA,YAAa,CACb,qBAAsB,CAEtB,6BADA,WAAY,CAHZ,iBAAkB,CAMlB,oBAAqB,CAErB,0BAA2B,CAD3B,mCAEA,qE/BjBE,0CPo9HJ,CsC/7HE,SAEE,aAAc,CADd,ctCk8HJ,CsC97HE,kBAEE,qBAAsB,CADtB,kBtCi8HJ,CsC97HI,8B/BrBA,0DACA,2D+BqBE,kBtCk8HN,CsC97HI,6B/BXA,6DADA,8D+BaE,qBtCk8HN,CsC37HE,8DAEE,YtC67HJ,CsCz7HA,WAKE,2BAFA,aAAc,CACd,uDtC27HF,CsCv7HA,YAEE,iCADA,2CtC27HF,CsCv7HA,eAGE,oCAFA,kDtC47HF,CsCv7HA,qCAJE,etC+7HF,CsCl7HE,sBACE,mCtCq7HJ,CsC76HA,aAIE,uCACA,4EAFA,+BADA,eAAgB,CADhB,iEtCo7HF,CsC96HE,yB/B7FE,uFP8gIJ,CsC56HA,aAGE,uCACA,yEAFA,+BADA,iEtCk7HF,CsC76HE,wB/BxGE,uFPwhIJ,CsCt6HA,kBAIE,eAAgB,CAFhB,oDACA,mDAFA,mDtC46HF,CsCv6HE,mCACE,mCACA,qCtCy6HJ,CsCr6HA,mBAEE,mDADA,mDtCy6HF,CsCp6HA,kB/BpII,iD+BwIF,QAAS,CACT,MAAO,CACP,2CALA,iBAAkB,CAElB,OAAQ,CADR,KtC46HF,CsCp6HA,yCAGE,UtCu6HF,CsCp6HA,wB/B3II,0DACA,0DPojIJ,CsCr6HA,2B/BjII,6DADA,6DP6iIJ,CsC95HE,kBACE,yCtCi6HJ,Cc5hII,yBwBuHJ,YAQI,YAAa,CACb,kBtCi6HF,CsC95HE,kBAEE,WAAY,CACZ,etC+5HJ,CsC75HI,wBAEE,aAAc,CADd,atCg6HN,CsC15HM,mC/B1KJ,6BADA,yBPykIF,CsC35HQ,iGAGE,yBtC45HV,CsC15HQ,oGAGE,4BtC25HV,CsCv5HM,oC/B3KJ,4BADA,wBPukIF,CsCx5HQ,mGAGE,wBtCy5HV,CsCv5HQ,sGAGE,2BtCw5HV,CACF,CuC7nIA,WAEE,0CACA,oCACA,0KACA,mDACA,mDACA,qDACA,0FACA,qCACA,kCACA,8CACA,6CACA,qPACA,sCACA,kDACA,8DACA,4PACA,4EACA,sCACA,mCACA,4DACA,oDvC+nIF,CuC3nIA,kBAGE,kBAAmB,CAMnB,4CACA,QAAS,ChCrBP,gBgCkBF,oCALA,YAAa,CpC+PT,cALI,CoChPR,oBAAqB,CAPrB,4EAJA,iBAAkB,CAOlB,eAAgB,CjBtBZ,yCiB2BJ,CATA,UvCuoIF,CsBrpIM,uCiBUN,kBjBTQ,etBwpIN,CACF,CuCjoIE,kCAEE,+CACA,gGAFA,sCvCqoIJ,CuCjoII,wCACE,qDACA,gDvCmoIN,CuC9nIE,wBAME,8CACA,2BAA4B,CAC5B,mDAHA,UAAW,CAJX,aAAc,CAEd,0CACA,gBAAiB,CjB7Cf,kDiBkDF,CAPA,wCvCuoIJ,CsB9qIM,uCiBqCJ,wBjBpCM,etBirIN,CACF,CuCloIE,wBACE,SvCooIJ,CuCjoIE,wBAGE,oDADA,SAAU,CADV,SvCqoIJ,CuC/nIA,kBACE,evCkoIF,CuC/nIA,gBAEE,wCACA,+EAFA,+BvCooIF,CuChoIE,8BhC7DE,yDACA,yDPgsIJ,CuCjoII,kEhChEA,+DACA,+DPosIJ,CuChoIE,oCACE,YvCkoIJ,CuC9nIE,6BhC3DE,4DADA,4DP8rIJ,CuC9nIM,2EhC/DF,kEADA,kEPksIJ,CuC7nII,iDhCpEA,4DADA,4DPssIJ,CuC3nIA,gBACE,6EvC8nIF,CuCrnIE,iCAEE,aAAc,ChC9Gd,gBgC6GA,cvC0nIJ,CuCtnII,6CAAgB,YvCynIpB,CuCxnII,4CAAe,evC2nInB,CuChnII,yMhC7HA,ePmvIJ,CuC9mII,6CACE,qTACA,2TvCinIN,CwC3wIA,YAEE,4BACA,4BACA,mCAEA,qBACA,gCACA,wDACA,sCACA,4DASA,yCjCAE,iDiCNF,YAAa,CACb,cAAe,CrCiRX,wCALI,CqCxQR,eAAgB,CAFhB,iDADA,qExC+wIF,CwCrwIE,kCACE,gDxCwwIJ,CwCtwII,yCAGE,yCACA,yCAHA,UAAW,CACX,iDxC0wIN,CwCpwIE,wBACE,4CxCswIJ,CyC3yIA,YAEE,kCACA,mCtC4RI,8BALI,CsCrRR,2CACA,qCACA,oDACA,oDACA,sDACA,uDACA,+CACA,0DACA,uDACA,gDACA,yEACA,kCACA,kCACA,4CACA,yDACA,mDACA,6DAGA,YAAa,CjCnBb,eAAgB,CADhB,cRi0IF,CyCzyIA,WAOE,yCACA,iFAHA,iCAHA,aAAc,CtCiQV,wCALI,CsC3PR,sEAFA,iBAAkB,CAKlB,qBnBlBI,6HtBi0IN,CsB7zIM,uCmBQN,WnBPQ,etBg0IN,CACF,CyC/yIE,iBAIE,+CACA,qDAHA,uCADA,SzCozIJ,CyC7yIE,iBAGE,+CAEA,iDAHA,uCAEA,SnC2uCgC,CmC9uChC,SzCmzIJ,CyC5yIE,qClBnDA,+CkBuDuB,CACrB,sDAFA,wCADA,SzCgzIJ,CyC1yIE,yCAIE,kDACA,wDAHA,0CACA,mBzC6yIJ,CyCtyIE,wCACE,2CzCyyIJ,CyCpyIM,kClC7BF,6DADA,yDPs0IJ,CyClyIM,iClCjDF,8DADA,0DPw1IJ,CyCrxIA,eClGE,iCACA,kCvC0RI,iCALI,CuCnRR,wD1C23IF,CyCxxIA,eCtGE,iCACA,kCvC0RI,kCALI,CuCnRR,wD1Ck4IF,C2Cp4IA,OAEE,4BACA,4BxCuRI,2BALI,CwChRR,2BACA,sBACA,iDpCOE,4CoCCF,4BALA,oBAAqB,CxCgRjB,mCALI,CwCxQR,wCACA,aAAc,CAHd,4DAKA,iBAAkB,CAElB,uBAAwB,CADxB,kB3Cs4IF,C2Ch4IE,aACE,Y3Ck4IJ,C2C73IA,YACE,iBAAkB,CAClB,Q3Cg4IF,C4Ch6IA,OAEE,0BACA,0BACA,0BACA,8BACA,yBACA,oCACA,4EACA,iDACA,8BAOA,oCACA,8BrCHE,4CqCCF,4BADA,4CADA,4DADA,iB5Cs6IF,C4C55IA,eAEE,a5C85IF,C4C15IA,YAEE,iCADA,e5C85IF,C4Cr5IA,mBACE,kB5Cw5IF,C4Cr5IE,8BAKE,qBAJA,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAEN,S5Cw5IJ,C4C/4IE,eACE,iDACA,0CACA,wDACA,qD5Ck5IJ,C4Ct5IE,iBACE,mDACA,4CACA,0DACA,uD5Cy5IJ,C4C75IE,eACE,iDACA,0CACA,wDACA,qD5Cg6IJ,C4Cp6IE,YACE,8CACA,uCACA,qDACA,kD5Cu6IJ,C4C36IE,eACE,iDACA,0CACA,wDACA,qD5C86IJ,C4Cl7IE,cACE,gDACA,yCACA,uDACA,oD5Cq7IJ,C4Cz7IE,aACE,+CACA,wCACA,sDACA,mD5C47IJ,C4Ch8IE,YACE,8CACA,uCACA,qDACA,kD5Cm8IJ,C6C//IE,gCACE,GAAK,0B7CmgJP,CACF,C6C//IA,4BAGE,0B1CkRI,+BALI,C0C3QR,wCACA,oDACA,oDACA,6BACA,6BACA,6CAOA,uCtCRE,+CsCIF,YAAa,C1CwQT,sCALI,C0ClQR,iCACA,e7CigJF,C6C1/IA,cAQE,2CAHA,mCAJA,YAAa,CACb,qBAAsB,CACtB,sBAAuB,CACvB,eAAgB,CAEhB,iBAAkB,CvBtBd,4CuByBJ,CAFA,kB7C+/IF,CsBlhJM,uCuBYN,cvBXQ,etBqhJN,CACF,C6C//IA,sBtBAE,sKsBEA,mE7CkgJF,C6C//IA,4BACE,gB7CkgJF,C6C//IA,0CACE,U7CkgJF,C6C9/IE,uBACE,iD7CigJJ,C6C9/IM,uCAJJ,uBAKM,c7CigJN,CACF,C8C7jJA,YAEE,2CACA,qCACA,oDACA,oDACA,sDACA,oCACA,sCACA,uDACA,4DACA,sDACA,yDACA,wDACA,yDACA,8CACA,kCACA,kCACA,4CvCHE,iDuCMF,YAAa,CACb,qBAAsB,CAItB,eAAgB,CADhB,c9C6jJF,C8CxjJA,qBAEE,qBAAsB,CADtB,oB9C4jJF,C8CzjJE,6CAEE,kCAAoC,CACpC,yB9C0jJJ,C8CjjJA,wBAEE,wCACA,kBAAmB,CAFnB,U9CsjJF,C8CjjJE,4DAKE,sDAFA,8CACA,oBAAqB,CAFrB,S9CqjJJ,C8C/iJE,+BAEE,uDADA,8C9CkjJJ,C8CziJA,iBAME,yCACA,iFAHA,iCAFA,aAAc,CACd,gFAFA,iBAAkB,CAIlB,oB9C8iJF,C8C1iJE,6BvCvDE,+BACA,+BPomJJ,C8C1iJE,4BvC5CE,kCADA,kCP2lJJ,C8C1iJE,oDAIE,kDAFA,0CACA,mB9C4iJJ,C8CviJE,wBAGE,gDACA,sDAFA,wCADA,S9C4iJJ,C8CriJE,kCACE,kB9CuiJJ,C8CriJI,yCAEE,mDADA,qD9CwiJN,C8C1hJI,uBACE,kB9C6hJN,C8C1hJQ,qEvCvDJ,6DAZA,yBPimJJ,C8CzhJQ,qEvC5DJ,4BAZA,0DPqmJJ,C8CxhJQ,+CACE,Y9C0hJV,C8CvhJQ,yDAEE,mBAAoB,CADpB,kD9C0hJV,C8CvhJU,gEAEE,oDADA,sD9C0hJZ,Cc/mJI,yBgC8DA,0BACE,kB9CqjJJ,C8CljJM,wEvCvDJ,6DAZA,yBPynJF,C8CjjJM,wEvC5DJ,4BAZA,0DP6nJF,C8ChjJM,kDACE,Y9CkjJR,C8C/iJM,4DAEE,mBAAoB,CADpB,kD9CkjJR,C8C/iJQ,mEAEE,oDADA,sD9CkjJV,CACF,CcxoJI,yBgC8DA,0BACE,kB9C6kJJ,C8C1kJM,wEvCvDJ,6DAZA,yBPipJF,C8CzkJM,wEvC5DJ,4BAZA,0DPqpJF,C8CxkJM,kDACE,Y9C0kJR,C8CvkJM,4DAEE,mBAAoB,CADpB,kD9C0kJR,C8CvkJQ,mEAEE,oDADA,sD9C0kJV,CACF,CchqJI,yBgC8DA,0BACE,kB9CqmJJ,C8ClmJM,wEvCvDJ,6DAZA,yBPyqJF,C8CjmJM,wEvC5DJ,4BAZA,0DP6qJF,C8ChmJM,kDACE,Y9CkmJR,C8C/lJM,4DAEE,mBAAoB,CADpB,kD9CkmJR,C8C/lJQ,mEAEE,oDADA,sD9CkmJV,CACF,CcxrJI,0BgC8DA,0BACE,kB9C6nJJ,C8C1nJM,wEvCvDJ,6DAZA,yBPisJF,C8CznJM,wEvC5DJ,4BAZA,0DPqsJF,C8CxnJM,kDACE,Y9C0nJR,C8CvnJM,4DAEE,mBAAoB,CADpB,kD9C0nJR,C8CvnJQ,mEAEE,oDADA,sD9C0nJV,CACF,C8C5mJA,kBvChJI,eP+vJJ,C8C5mJE,mCACE,kD9C8mJJ,C8C5mJI,8CACE,qB9C8mJN,C8CjmJE,yBACE,sDACA,+CACA,6DACA,4DACA,gEACA,6DACA,iEACA,yDACA,0DACA,mE9ComJJ,C8C9mJE,2BACE,wDACA,iDACA,+DACA,4DACA,kEACA,6DACA,mEACA,2DACA,4DACA,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F,CwE79MQ,gBAOI,iCxE09MZ,CwEj+MQ,WAOI,4BxE89MZ,CwEr+MQ,cAOI,+BxEk+MZ,CwEz+MQ,cAOI,+BxEs+MZ,CwE7+MQ,mBAOI,oCxE0+MZ,CwEj/MQ,gBAOI,iCxE8+MZ,CwEr/MQ,aAOI,oBxEk/MZ,CwEz/MQ,WAOI,qBxEs/MZ,CwE7/MQ,YAOI,oBxE0/MZ,CwEjgNQ,oBAOI,4BxE8/MZ,CwErgNQ,kBAOI,0BxEkgNZ,CwEzgNQ,iBAOI,yBxEsgNZ,CwE7gNQ,kBAOI,+BxE0gNZ,CwEjhNQ,iBAOI,yBxE8gNZ,CwErhNQ,WAOI,mBxEkhNZ,CwEzhNQ,YAOI,qBxEshNZ,CwE7hNQ,YAOI,oBxE0hNZ,CwEjiNQ,YAOI,qBxE8hNZ,CwEriNQ,aAOI,mBxEkiNZ,CwEziNQ,eAOI,uBxEsiNZ,CwE7iNQ,iBAOI,yBxE0iNZ,CwEjjNQ,kBAOI,0BxE8iNZ,CwErjNQ,iBAOI,yBxEkjNZ,CwEzjNQ,iBAOI,yBxEsjNZ,CwE7jNQ,mBAOI,2BxE0jNZ,CwEjkNQ,oBAOI,4BxE8jNZ,CwErkNQ,mBAOI,2BxEkkNZ,CwEzkNQ,iBAOI,yBxEskNZ,CwE7kNQ,mBAOI,2BxE0kNZ,CwEjlNQ,oBAOI,4BxE8kNZ,CwErlNQ,mBAOI,2BxEklNZ,CwEzlNQ,UAOI,wBxEslNZ,CwE7lNQ,gBAOI,8BxE0lNZ,CwEjmNQ,SAOI,uBxE8lNZ,CwErmNQ,QAOI,sBxEkmNZ,CwEzmNQ,eAOI,6BxEsmNZ,CwE7mNQ,SAOI,uBxE0mNZ,CwEjnNQ,aAOI,2BxE8mNZ,CwErnNQ,cAOI,4BxEknNZ,CwEznNQ,QAOI,sBxEsnNZ,CwE7nNQ,eAOI,6BxE0nNZ,CwEjoNQ,QAOI,sBxE8nNZ,CwEroNQ,QAOI,yCxEkoNZ,CwEzoNQ,WAOI,4CxEsoNZ,CwE7oNQ,WAOI,4CxE0oNZ,CwEjpNQ,aAOI,yBxE8oNZ,CwE/pNQ,oBACE,8ExEkqNV,CwEnqNQ,sBACE,gFxEsqNV,CwEvqNQ,oBACE,8ExE0qNV,CwE3qNQ,iBACE,2ExE8qNV,CwE/qNQ,oBACE,8ExEkrNV,CwEnrNQ,mBACE,6ExEsrNV,CwEvrNQ,kBACE,4ExE0rNV,CwE3rNQ,iBACE,2ExE8rNV,CwErrNQ,iBAOI,yBxEkrNZ,CwEzrNQ,mBAOI,2BxEsrNZ,CwE7rNQ,mBAOI,2BxE0rNZ,CwEjsNQ,gBAOI,wBxE8rNZ,CwErsNQ,iBAOI,yBxEksNZ,CwEzsNQ,OAOI,exEssNZ,CwE7sNQ,QAOI,iBxE0sNZ,CwEjtNQ,SAOI,kBxE8sNZ,CwErtNQ,UAOI,kBxEktNZ,CwEztNQ,WAOI,oBxEstNZ,CwE7tNQ,YAOI,qBxE0tNZ,CwEjuNQ,SAOI,gBxE8tNZ,CwEruNQ,UAOI,kBxEkuNZ,CwEzuNQ,WAOI,mBxEsuNZ,CwE7uNQ,OAOI,iBxE0uNZ,CwEjvNQ,QAOI,mBxE8uNZ,CwErvNQ,SAOI,oBxEkvNZ,CwEzvNQ,kBAOI,wCxEsvNZ,CwE7vNQ,oBAOI,oCxE0vNZ,CwEjwNQ,oBAOI,oCxE8vNZ,CwErwNQ,QAOI,qFxEkwNZ,CwEzwNQ,UAOI,kBxEswNZ,CwE7wNQ,YAOI,yFxE0wNZ,CwEjxNQ,cAOI,sBxE8wNZ,CwErxNQ,YAOI,2FxEkxNZ,CwEzxNQ,cAOI,wBxEsxNZ,CwE7xNQ,eAOI,4FxE0xNZ,CwEjyNQ,iBAOI,yBxE8xNZ,CwEryNQ,cAOI,0FxEkyNZ,CwEzyNQ,gBAOI,uBxEsyNZ,CwE7yNQ,gBAIQ,sBAGJ,2ExE2yNZ,CwElzNQ,kBAIQ,sBAGJ,6ExEgzNZ,CwEvzNQ,gBAIQ,sBAGJ,2ExEqzNZ,CwE5zNQ,aAIQ,sBAGJ,wExE0zNZ,CwEj0NQ,gBAIQ,sBAGJ,2ExE+zNZ,CwEt0NQ,eAIQ,sBAGJ,0ExEo0NZ,CwE30NQ,cAIQ,sBAGJ,yExEy0NZ,CwEh1NQ,aAIQ,sBAGJ,wExE80NZ,CwEr1NQ,cAIQ,sBAGJ,yExEm1NZ,CwE11NQ,cAIQ,sBAGJ,yExEw1NZ,CwE/1NQ,uBAOI,sDxE41NZ,CwEn2NQ,yBAOI,wDxEg2NZ,CwEv2NQ,uBAOI,sDxEo2NZ,CwE32NQ,oBAOI,mDxEw2NZ,CwE/2NQ,uBAOI,sDxE42NZ,CwEn3NQ,sBAOI,qDxEg3NZ,CwEv3NQ,qBAOI,oDxEo3NZ,CwE33NQ,oBAOI,mDxEw3NZ,CwE/3NQ,UAOI,0BxE43NZ,CwEn4NQ,UAOI,0BxEg4NZ,CwEv4NQ,UAOI,0BxEo4NZ,CwE34NQ,UAOI,0BxEw4NZ,CwE/4NQ,UAOI,0BxE44NZ,CwE75NQ,mBACE,uBxEg6NV,CwEj6NQ,mBACE,wBxEo6NV,CwEr6NQ,mBACE,uBxEw6NV,CwEz6NQ,mBACE,wBxE46NV,CwE76NQ,oBACE,qBxEg7NV,CwEv6NQ,MAOI,mBxEo6NZ,CwE36NQ,MAOI,mBxEw6NZ,CwE/6NQ,MAOI,mBxE46NZ,CwEn7NQ,OAOI,oBxEg7NZ,CwEv7NQ,QAOI,oBxEo7NZ,CwE37NQ,QAOI,wBxEw7NZ,CwE/7NQ,QAOI,qBxE47NZ,CwEn8NQ,YAOI,yBxEg8NZ,CwEv8NQ,MAOI,oBxEo8NZ,CwE38NQ,MAOI,oBxEw8NZ,CwE/8NQ,MAOI,oBxE48NZ,CwEn9NQ,OAOI,qBxEg9NZ,CwEv9NQ,QAOI,qBxEo9NZ,CwE39NQ,QAOI,yBxEw9NZ,CwE/9NQ,QAOI,sBxE49NZ,CwEn+NQ,YAOI,0BxEg+NZ,CwEv+NQ,WAOI,uBxEo+NZ,CwE3+NQ,UAOI,4BxEw+NZ,CwE/+NQ,aAOI,+BxE4+NZ,CwEn/NQ,kBAOI,oCxEg/NZ,CwEv/NQ,qBAOI,uCxEo/NZ,CwE3/NQ,aAOI,qBxEw/NZ,CwE//NQ,aAOI,qBxE4/NZ,CwEngOQ,eAOI,uBxEggOZ,CwEvgOQ,eAOI,uBxEogOZ,CwE3gOQ,WAOI,wBxEwgOZ,CwE/gOQ,aAOI,0BxE4gOZ,CwEnhOQ,mBAOI,gCxEghOZ,CwEvhOQ,uBAOI,oCxEohOZ,CwE3hOQ,qBAOI,kCxEwhOZ,CwE/hOQ,wBAOI,gCxE4hOZ,CwEniOQ,yBAOI,uCxEgiOZ,CwEviOQ,wBAOI,sCxEoiOZ,CwE3iOQ,wBAOI,sCxEwiOZ,CwE/iOQ,mBAOI,gCxE4iOZ,CwEnjOQ,iBAOI,8BxEgjOZ,CwEvjOQ,oBAOI,4BxEojOZ,CwE3jOQ,sBAOI,8BxEwjOZ,CwE/jOQ,qBAOI,6BxE4jOZ,CwEnkOQ,qBAOI,kCxEgkOZ,CwEvkOQ,mBAOI,gCxEokOZ,CwE3kOQ,sBAOI,8BxEwkOZ,CwE/kOQ,uBAOI,qCxE4kOZ,CwEnlOQ,sBAOI,oCxEglOZ,CwEvlOQ,uBAOI,+BxEolOZ,CwE3lOQ,iBAOI,yBxEwlOZ,CwE/lOQ,kBAOI,+BxE4lOZ,CwEnmOQ,gBAOI,6BxEgmOZ,CwEvmOQ,mBAOI,2BxEomOZ,CwE3mOQ,qBAOI,6BxEwmOZ,CwE/mOQ,oBAOI,4BxE4mOZ,CwEnnOQ,aAOI,kBxEgnOZ,CwEvnOQ,SAOI,iBxEonOZ,CwE3nOQ,SAOI,iBxEwnOZ,CwE/nOQ,SAOI,iBxE4nOZ,CwEnoOQ,SAOI,iBxEgoOZ,CwEvoOQ,SAOI,iBxEooOZ,CwE3oOQ,SAOI,iBxEwoOZ,CwE/oOQ,YAOI,iBxE4oOZ,CwEnpOQ,KAOI,kBxEgpOZ,CwEvpOQ,KAOI,uBxEopOZ,CwE3pOQ,KAOI,sBxEwpOZ,CwE/pOQ,KAOI,qBxE4pOZ,CwEnqOQ,KAOI,uBxEgqOZ,CwEvqOQ,KAOI,qBxEoqOZ,CwE3qOQ,QAOI,qBxEwqOZ,CwE/qOQ,MAOI,gDxE6qOZ,CwEprOQ,MAOI,0DxEkrOZ,CwEzrOQ,MAOI,wDxEurOZ,CwE9rOQ,MAOI,sDxE4rOZ,CwEnsOQ,MAOI,0DxEisOZ,CwExsOQ,MAOI,sDxEssOZ,CwE7sOQ,SAOI,sDxE2sOZ,CwEltOQ,MAOI,gDxEgtOZ,CwEvtOQ,MAOI,0DxEqtOZ,CwE5tOQ,MAOI,wDxE0tOZ,CwEjuOQ,MAOI,sDxE+tOZ,CwEtuOQ,MAOI,0DxEouOZ,CwE3uOQ,MAOI,sDxEyuOZ,CwEhvOQ,SAOI,sDxE8uOZ,CwErvOQ,MAOI,sBxEkvOZ,CwEzvOQ,MAOI,2BxEsvOZ,CwE7vOQ,MAOI,0BxE0vOZ,CwEjwOQ,MAOI,yBxE8vOZ,CwErwOQ,MAOI,2BxEkwOZ,CwEzwOQ,MAOI,yBxEswOZ,CwE7wOQ,SAOI,yBxE0wOZ,CwEjxOQ,MAOI,wBxE8wOZ,CwErxOQ,MAOI,6BxEkxOZ,CwEzxOQ,MAOI,4BxEsxOZ,CwE7xOQ,MAOI,2BxE0xOZ,CwEjyOQ,MAOI,6BxE8xOZ,CwEryOQ,MAOI,2BxEkyOZ,CwEzyOQ,SAOI,2BxEsyOZ,CwE7yOQ,MAOI,yBxE0yOZ,CwEjzOQ,MAOI,8BxE8yOZ,CwErzOQ,MAOI,6BxEkzOZ,CwEzzOQ,MAOI,4BxEszOZ,CwE7zOQ,MAOI,8BxE0zOZ,CwEj0OQ,MAOI,4BxE8zOZ,CwEr0OQ,SAOI,4BxEk0OZ,CwEz0OQ,MAOI,uBxEs0OZ,CwE70OQ,MAOI,4BxE00OZ,CwEj1OQ,MAOI,2BxE80OZ,CwEr1OQ,MAOI,0BxEk1OZ,CwEz1OQ,MAOI,4BxEs1OZ,CwE71OQ,MAOI,0BxE01OZ,CwEj2OQ,SAOI,0BxE81OZ,CwEr2OQ,KAOI,mBxEk2OZ,CwEz2OQ,KAOI,wBxEs2OZ,CwE72OQ,KAOI,uBxE02OZ,CwEj3OQ,KAOI,sBxE82OZ,CwEr3OQ,KAOI,wBxEk3OZ,CwEz3OQ,KAOI,sBxEs3OZ,CwE73OQ,MAOI,kDxE23OZ,CwEl4OQ,MAOI,4DxEg4OZ,CwEv4OQ,MAOI,0DxEq4OZ,CwE54OQ,MAOI,wDxE04OZ,CwEj5OQ,MAOI,4DxE+4OZ,CwEt5OQ,MAOI,wDxEo5OZ,CwE35OQ,MAOI,kDxEy5OZ,CwEh6OQ,MAOI,4DxE85OZ,CwEr6OQ,MAOI,0DxEm6OZ,CwE16OQ,MAOI,wDxEw6OZ,CwE/6OQ,MAOI,4DxE66OZ,CwEp7OQ,MAOI,wDxEk7OZ,CwEz7OQ,MAOI,uBxEs7OZ,CwE77OQ,MAOI,4BxE07OZ,CwEj8OQ,MAOI,2BxE87OZ,CwEr8OQ,MAOI,0BxEk8OZ,CwEz8OQ,MAOI,4BxEs8OZ,CwE78OQ,MAOI,0BxE08OZ,CwEj9OQ,MAOI,yBxE88OZ,CwEr9OQ,MAOI,8BxEk9OZ,CwEz9OQ,MAOI,6BxEs9OZ,CwE79OQ,MAOI,4BxE09OZ,CwEj+OQ,MAOI,8BxE89OZ,CwEr+OQ,MAOI,4BxEk+OZ,CwEz+OQ,MAOI,0BxEs+OZ,CwE7+OQ,MAOI,+BxE0+OZ,CwEj/OQ,MAOI,8BxE8+OZ,CwEr/OQ,MAOI,6BxEk/OZ,CwEz/OQ,MAOI,+BxEs/OZ,CwE7/OQ,MAOI,6BxE0/OZ,CwEjgPQ,MAOI,wBxE8/OZ,CwErgPQ,MAOI,6BxEkgPZ,CwEzgPQ,MAOI,4BxEsgPZ,CwE7gPQ,MAOI,2BxE0gPZ,CwEjhPQ,MAOI,6BxE8gPZ,CwErhPQ,MAOI,2BxEkhPZ,CwEzhPQ,OAOI,exEshPZ,CwE7hPQ,OAOI,oBxE0hPZ,CwEjiPQ,OAOI,mBxE8hPZ,CwEriPQ,OAOI,kBxEkiPZ,CwEziPQ,OAOI,oBxEsiPZ,CwE7iPQ,OAOI,kBxE0iPZ,CwEjjPQ,WAOI,mBxE8iPZ,CwErjPQ,WAOI,wBxEkjPZ,CwEzjPQ,WAOI,uBxEsjPZ,CwE7jPQ,WAOI,sBxE0jPZ,CwEjkPQ,WAOI,wBxE8jPZ,CwErkPQ,WAOI,sBxEkkPZ,CwEzkPQ,cAOI,sBxEskPZ,CwE7kPQ,cAOI,2BxE0kPZ,CwEjlPQ,cAOI,0BxE8kPZ,CwErlPQ,cAOI,yBxEklPZ,CwEzlPQ,cAOI,2BxEslPZ,CwE7lPQ,cAOI,yBxE0lPZ,CwEjmPQ,gBAOI,8CxE8lPZ,CwErmPQ,MAOI,0CxEkmPZ,CwEzmPQ,MAOI,yCxEsmPZ,CwE7mPQ,MAOI,uCxE0mPZ,CwEjnPQ,MAOI,yCxE8mPZ,CwErnPQ,MAOI,2BxEknPZ,CwEznPQ,MAOI,wBxEsnPZ,CwE7nPQ,YAOI,2BxE0nPZ,CwEjoPQ,YAOI,2BxE8nPZ,CwEroPQ,YAOI,6BxEkoPZ,CwEzoPQ,UAOI,yBxEsoPZ,CwE7oPQ,WAOI,yBxE0oPZ,CwEjpPQ,WAOI,yBxE8oPZ,CwErpPQ,aAOI,yBxEkpPZ,CwEzpPQ,SAOI,yBxEspPZ,CwE7pPQ,WAOI,4BxE0pPZ,CwEjqPQ,MAOI,uBxE8pPZ,CwErqPQ,OAOI,0BxEkqPZ,CwEzqPQ,SAOI,yBxEsqPZ,CwE7qPQ,OAOI,uBxE0qPZ,CwEjrPQ,YAOI,yBxE8qPZ,CwErrPQ,UAOI,0BxEkrPZ,CwEzrPQ,aAOI,2BxEsrPZ,CwE7rPQ,sBAOI,8BxE0rPZ,CwEjsPQ,2BAOI,mCxE8rPZ,CwErsPQ,8BAOI,sCxEksPZ,CwEzsPQ,gBAOI,kCxEssPZ,CwE7sPQ,gBAOI,kCxE0sPZ,CwEjtPQ,iBAOI,mCxE8sPZ,CwErtPQ,WAOI,4BxEktPZ,CwEztPQ,aAOI,4BxEstPZ,CwE7tPQ,YAOI,8DxE4tPZ,CwEnuPQ,cAIQ,oBAGJ,kExEkuPZ,CwEzuPQ,gBAIQ,oBAGJ,oExEuuPZ,CwE9uPQ,cAIQ,oBAGJ,kExE4uPZ,CwEnvPQ,WAIQ,oBAGJ,+DxEivPZ,CwExvPQ,cAIQ,oBAGJ,kExEsvPZ,CwE7vPQ,aAIQ,oBAGJ,iExE2vPZ,CwElwPQ,YAIQ,oBAGJ,gExEgwPZ,CwEvwPQ,WAIQ,oBAGJ,+DxEqwPZ,CwE5wPQ,YAIQ,oBAGJ,gExE0wPZ,CwEjxPQ,YAIQ,oBAGJ,gExE+wPZ,CwEtxPQ,WAIQ,oBAGJ,qExEoxPZ,CwE3xPQ,YAIQ,oBAGJ,yCxEyxPZ,CwEhyPQ,eAIQ,oBAGJ,8BxE8xPZ,CwEryPQ,eAIQ,oBAGJ,kCxEmyPZ,CwE1yPQ,qBAIQ,oBAGJ,yCxEwyPZ,CwE/yPQ,oBAIQ,oBAGJ,wCxE6yPZ,CwEpzPQ,oBAIQ,oBAGJ,wCxEkzPZ,CwEzzPQ,YAIQ,oBAGJ,uBxEuzPZ,CwEx0PQ,iBACE,sBxE20PV,CwE50PQ,iBACE,qBxE+0PV,CwEh1PQ,iBACE,sBxEm1PV,CwEp1PQ,kBACE,mBxEu1PV,CwE90PQ,uBAOI,+CxE20PZ,CwEl1PQ,yBAOI,iDxE+0PZ,CwEt1PQ,uBAOI,+CxEm1PZ,CwE11PQ,oBAOI,4CxEu1PZ,CwE91PQ,uBAOI,+CxE21PZ,CwEl2PQ,sBAOI,8CxE+1PZ,CwEt2PQ,qBAOI,6CxEm2PZ,CwE12PQ,oBAOI,4CxEu2PZ,CwEn3PU,8CACE,qBxE03PZ,CwE33PU,8CACE,sBxEk4PZ,CwEn4PU,8CACE,qBxE04PZ,CwE34PU,8CACE,sBxEk5PZ,CwEn5PU,gDACE,mBxE05PZ,CwE14PU,0CAOI,sCxE24Pd,CwEl5PU,0CAOI,qCxEm5Pd,CwE15PU,0CAOI,sCxE25Pd,CwE96PQ,wBAIQ,8BAGJ,4FxE46PZ,CwEn7PQ,0BAIQ,8BAGJ,8FxEi7PZ,CwEx7PQ,wBAIQ,8BAGJ,4FxEs7PZ,CwE77PQ,qBAIQ,8BAGJ,yFxE27PZ,CwEl8PQ,wBAIQ,8BAGJ,4FxEg8PZ,CwEv8PQ,uBAIQ,8BAGJ,2FxEq8PZ,CwE58PQ,sBAIQ,8BAGJ,0FxE08PZ,CwEj9PQ,qBAIQ,8BAGJ,yFxE+8PZ,CwEt9PQ,gBAIQ,8BAGJ,iGxEo9PZ,CwEh+PU,gEACE,6BxEu+PZ,CwEx+PU,kEACE,+BxE++PZ,CwEh/PU,kEACE,gCxEu/PZ,CwEx/PU,kEACE,+BxE+/PZ,CwEhgQU,kEACE,gCxEugQZ,CwExgQU,oEACE,6BxE+gQZ,CwE3gQQ,YAIQ,kBAGJ,2ExEygQZ,CwEhhQQ,cAIQ,kBAGJ,6ExE8gQZ,CwErhQQ,YAIQ,kBAGJ,2ExEmhQZ,CwE1hQQ,SAIQ,kBAGJ,wExEwhQZ,CwE/hQQ,YAIQ,kBAGJ,2ExE6hQZ,CwEpiQQ,WAIQ,kBAGJ,0ExEkiQZ,CwEziQQ,UAIQ,kBAGJ,yExEuiQZ,CwE9iQQ,SAIQ,kBAGJ,wExE4iQZ,CwEnjQQ,UAIQ,kBAGJ,yExEijQZ,CwExjQQ,UAIQ,kBAGJ,yExEsjQZ,CwE7jQQ,SAIQ,kBAGJ,2ExE2jQZ,CwElkQQ,gBAIQ,kBAGJ,sCxEgkQZ,CwEvkQQ,mBAIQ,kBAGJ,gFxEqkQZ,CwE5kQQ,kBAIQ,kBAGJ,+ExE0kQZ,CwE3lQQ,eACE,mBxE8lQV,CwE/lQQ,eACE,oBxEkmQV,CwEnmQQ,eACE,mBxEsmQV,CwEvmQQ,eACE,oBxE0mQV,CwE3mQQ,gBACE,iBxE8mQV,CwErmQQ,mBAOI,sDxEkmQZ,CwEzmQQ,qBAOI,wDxEsmQZ,CwE7mQQ,mBAOI,sDxE0mQZ,CwEjnQQ,gBAOI,mDxE8mQZ,CwErnQQ,mBAOI,sDxEknQZ,CwEznQQ,kBAOI,qDxEsnQZ,CwE7nQQ,iBAOI,oDxE0nQZ,CwEjoQQ,gBAOI,mDxE8nQZ,CwEroQQ,aAOI,6CxEkoQZ,CwEzoQQ,iBAOI,yBxEsoQZ,CwE7oQQ,kBAOI,0BxE0oQZ,CwEjpQQ,kBAOI,0BxE8oQZ,CwErpQQ,SAOI,6BxEkpQZ,CwEzpQQ,SAOI,6BxEspQZ,CwE7pQQ,SAOI,+CxE0pQZ,CwEjqQQ,WAOI,yBxE8pQZ,CwErqQQ,WAOI,kDxEkqQZ,CwEzqQQ,WAOI,+CxEsqQZ,CwE7qQQ,WAOI,kDxE0qQZ,CwEjrQQ,WAOI,kDxE8qQZ,CwErrQQ,WAOI,mDxEkrQZ,CwEzrQQ,gBAOI,2BxEsrQZ,CwE7rQQ,cAOI,oDxE0rQZ,CwEjsQQ,aAOI,kHxE+rQZ,CwEtsQQ,eAOI,sExEosQZ,CwE3sQQ,eAOI,wHxEysQZ,CwEhtQQ,eAOI,kHxE8sQZ,CwErtQQ,eAOI,wHxEmtQZ,CwE1tQQ,eAOI,wHxEwtQZ,CwE/tQQ,eAOI,0HxE6tQZ,CwEpuQQ,oBAOI,0ExEkuQZ,CwEzuQQ,kBAOI,4HxEuuQZ,CwE9uQQ,aAOI,sHxE4uQZ,CwEnvQQ,eAOI,0ExEivQZ,CwExvQQ,eAOI,4HxEsvQZ,CwE7vQQ,eAOI,sHxE2vQZ,CwElwQQ,eAOI,4HxEgwQZ,CwEvwQQ,eAOI,4HxEqwQZ,CwE5wQQ,eAOI,8HxE0wQZ,CwEjxQQ,oBAOI,8ExE+wQZ,CwEtxQQ,kBAOI,gIxEoxQZ,CwE3xQQ,gBAOI,wHxEyxQZ,CwEhyQQ,kBAOI,4ExE8xQZ,CwEryQQ,kBAOI,8HxEmyQZ,CwE1yQQ,kBAOI,wHxEwyQZ,CwE/yQQ,kBAOI,8HxE6yQZ,CwEpzQQ,kBAOI,8HxEkzQZ,CwEzzQQ,kBAOI,gIxEuzQZ,CwE9zQQ,uBAOI,gFxE4zQZ,CwEn0QQ,qBAOI,kIxEi0QZ,CwEx0QQ,eAOI,oHxEs0QZ,CwE70QQ,iBAOI,wExE20QZ,CwEl1QQ,iBAOI,0HxEg1QZ,CwEv1QQ,iBAOI,oHxEq1QZ,CwE51QQ,iBAOI,0HxE01QZ,CwEj2QQ,iBAOI,0HxE+1QZ,CwEt2QQ,iBAOI,4HxEo2QZ,CwE32QQ,sBAOI,4ExEy2QZ,CwEh3QQ,oBAOI,8HxE82QZ,CwEr3QQ,SAOI,4BxEk3QZ,CwEz3QQ,WAOI,2BxEs3QZ,CwE73QQ,MAOI,oBxE03QZ,CwEj4QQ,KAOI,mBxE83QZ,CwEr4QQ,KAOI,mBxEk4QZ,CwEz4QQ,KAOI,mBxEs4QZ,CwE74QQ,KAOI,mBxE04QZ,Ccp5QI,yB0DGI,gBAOI,oBxE+4QV,CwEt5QM,cAOI,qBxEk5QV,CwEz5QM,eAOI,oBxEq5QV,CwE55QM,uBAOI,4BxEw5QV,CwE/5QM,qBAOI,0BxE25QV,CwEl6QM,oBAOI,yBxE85QV,CwEr6QM,qBAOI,+BxEi6QV,CwEx6QM,oBAOI,yBxEo6QV,CwE36QM,aAOI,wBxEu6QV,CwE96QM,mBAOI,8BxE06QV,CwEj7QM,YAOI,uBxE66QV,CwEp7QM,WAOI,sBxEg7QV,CwEv7QM,kBAOI,6BxEm7QV,CwE17QM,YAOI,uBxEs7QV,CwE77QM,gBAOI,2BxEy7QV,CwEh8QM,iBAOI,4BxE47QV,CwEn8QM,WAOI,sBxE+7QV,CwEt8QM,kBAOI,6BxEk8QV,CwEz8QM,WAOI,sBxEq8QV,CwE58QM,cAOI,uBxEw8QV,CwE/8QM,aAOI,4BxE28QV,CwEl9QM,gBAOI,+BxE88QV,CwEr9QM,qBAOI,oCxEi9QV,CwEx9QM,wBAOI,uCxEo9QV,CwE39QM,gBAOI,qBxEu9QV,CwE99QM,gBAOI,qBxE09QV,CwEj+QM,kBAOI,uBxE69QV,CwEp+QM,kBAOI,uBxEg+QV,CwEv+QM,cAOI,wBxEm+QV,CwE1+QM,gBAOI,0BxEs+QV,CwE7+QM,sBAOI,gCxEy+QV,CwEh/QM,0BAOI,oCxE4+QV,CwEn/QM,wBAOI,kCxE++QV,CwEt/QM,2BAOI,gCxEk/QV,CwEz/QM,4BAOI,uCxEq/QV,CwE5/QM,2BAOI,sCxEw/QV,CwE//QM,2BAOI,sCxE2/QV,CwElgRM,sBAOI,gCxE8/QV,CwErgRM,oBAOI,8BxEigRV,CwExgRM,uBAOI,4BxEogRV,CwE3gRM,yBAOI,8BxEugRV,CwE9gRM,wBAOI,6BxE0gRV,CwEjhRM,wBAOI,kCxE6gRV,CwEphRM,sBAOI,gCxEghRV,CwEvhRM,yBAOI,8BxEmhRV,CwE1hRM,0BAOI,qCxEshRV,CwE7hRM,yBAOI,oCxEyhRV,CwEhiRM,0BAOI,+BxE4hRV,CwEniRM,oBAOI,yBxE+hRV,CwEtiRM,qBAOI,+BxEkiRV,CwEziRM,mBAOI,6BxEqiRV,CwE5iRM,sBAOI,2BxEwiRV,CwE/iRM,wBAOI,6BxE2iRV,CwEljRM,uBAOI,4BxE8iRV,CwErjRM,gBAOI,kBxEijRV,CwExjRM,YAOI,iBxEojRV,CwE3jRM,YAOI,iBxEujRV,CwE9jRM,YAOI,iBxE0jRV,CwEjkRM,YAOI,iBxE6jRV,CwEpkRM,YAOI,iBxEgkRV,CwEvkRM,YAOI,iBxEmkRV,CwE1kRM,eAOI,iBxEskRV,CwE7kRM,QAOI,kBxEykRV,CwEhlRM,QAOI,uBxE4kRV,CwEnlRM,QAOI,sBxE+kRV,CwEtlRM,QAOI,qBxEklRV,CwEzlRM,QAOI,uBxEqlRV,CwE5lRM,QAOI,qBxEwlRV,CwE/lRM,WAOI,qBxE2lRV,CwElmRM,SAOI,gDxE+lRV,CwEtmRM,SAOI,0DxEmmRV,CwE1mRM,SAOI,wDxEumRV,CwE9mRM,SAOI,sDxE2mRV,CwElnRM,SAOI,0DxE+mRV,CwEtnRM,SAOI,sDxEmnRV,CwE1nRM,YAOI,sDxEunRV,CwE9nRM,SAOI,gDxE2nRV,CwEloRM,SAOI,0DxE+nRV,CwEtoRM,SAOI,wDxEmoRV,CwE1oRM,SAOI,sDxEuoRV,CwE9oRM,SAOI,0DxE2oRV,CwElpRM,SAOI,sDxE+oRV,CwEtpRM,YAOI,sDxEmpRV,CwE1pRM,SAOI,sBxEspRV,CwE7pRM,SAOI,2BxEypRV,CwEhqRM,SAOI,0BxE4pRV,CwEnqRM,SAOI,yBxE+pRV,CwEtqRM,SAOI,2BxEkqRV,CwEzqRM,SAOI,yBxEqqRV,CwE5qRM,YAOI,yBxEwqRV,CwE/qRM,SAOI,wBxE2qRV,CwElrRM,SAOI,6BxE8qRV,CwErrRM,SAOI,4BxEirRV,CwExrRM,SAOI,2BxEorRV,CwE3rRM,SAOI,6BxEurRV,CwE9rRM,SAOI,2BxE0rRV,CwEjsRM,YAOI,2BxE6rRV,CwEpsRM,SAOI,yBxEgsRV,CwEvsRM,SAOI,8BxEmsRV,CwE1sRM,SAOI,6BxEssRV,CwE7sRM,SAOI,4BxEysRV,CwEhtRM,SAOI,8BxE4sRV,CwEntRM,SAOI,4BxE+sRV,CwEttRM,YAOI,4BxEktRV,CwEztRM,SAOI,uBxEqtRV,CwE5tRM,SAOI,4BxEwtRV,CwE/tRM,SAOI,2BxE2tRV,CwEluRM,SAOI,0BxE8tRV,CwEruRM,SAOI,4BxEiuRV,CwExuRM,SAOI,0BxEouRV,CwE3uRM,YAOI,0BxEuuRV,CwE9uRM,QAOI,mBxE0uRV,CwEjvRM,QAOI,wBxE6uRV,CwEpvRM,QAOI,uBxEgvRV,CwEvvRM,QAOI,sBxEmvRV,CwE1vRM,QAOI,wBxEsvRV,CwE7vRM,QAOI,sBxEyvRV,CwEhwRM,SAOI,kDxE6vRV,CwEpwRM,SAOI,4DxEiwRV,CwExwRM,SAOI,0DxEqwRV,CwE5wRM,SAOI,wDxEywRV,CwEhxRM,SAOI,4DxE6wRV,CwEpxRM,SAOI,wDxEixRV,CwExxRM,SAOI,kDxEqxRV,CwE5xRM,SAOI,4DxEyxRV,CwEhyRM,SAOI,0DxE6xRV,CwEpyRM,SAOI,wDxEiyRV,CwExyRM,SAOI,4DxEqyRV,CwE5yRM,SAOI,wDxEyyRV,CwEhzRM,SAOI,uBxE4yRV,CwEnzRM,SAOI,4BxE+yRV,CwEtzRM,SAOI,2BxEkzRV,CwEzzRM,SAOI,0BxEqzRV,CwE5zRM,SAOI,4BxEwzRV,CwE/zRM,SAOI,0BxE2zRV,CwEl0RM,SAOI,yBxE8zRV,CwEr0RM,SAOI,8BxEi0RV,CwEx0RM,SAOI,6BxEo0RV,CwE30RM,SAOI,4BxEu0RV,CwE90RM,SAOI,8BxE00RV,CwEj1RM,SAOI,4BxE60RV,CwEp1RM,SAOI,0BxEg1RV,CwEv1RM,SAOI,+BxEm1RV,CwE11RM,SAOI,8BxEs1RV,CwE71RM,SAOI,6BxEy1RV,CwEh2RM,SAOI,+BxE41RV,CwEn2RM,SAOI,6BxE+1RV,CwEt2RM,SAOI,wBxEk2RV,CwEz2RM,SAOI,6BxEq2RV,CwE52RM,SAOI,4BxEw2RV,CwE/2RM,SAOI,2BxE22RV,CwEl3RM,SAOI,6BxE82RV,CwEr3RM,SAOI,2BxEi3RV,CwEx3RM,UAOI,exEo3RV,CwE33RM,UAOI,oBxEu3RV,CwE93RM,UAOI,mBxE03RV,CwEj4RM,UAOI,kBxE63RV,CwEp4RM,UAOI,oBxEg4RV,CwEv4RM,UAOI,kBxEm4RV,CwE14RM,cAOI,mBxEs4RV,CwE74RM,cAOI,wBxEy4RV,CwEh5RM,cAOI,uBxE44RV,CwEn5RM,cAOI,sBxE+4RV,CwEt5RM,cAOI,wBxEk5RV,CwEz5RM,cAOI,sBxEq5RV,CwE55RM,iBAOI,sBxEw5RV,CwE/5RM,iBAOI,2BxE25RV,CwEl6RM,iBAOI,0BxE85RV,CwEr6RM,iBAOI,yBxEi6RV,CwEx6RM,iBAOI,2BxEo6RV,CwE36RM,iBAOI,yBxEu6RV,CwE96RM,eAOI,yBxE06RV,CwEj7RM,aAOI,0BxE66RV,CwEp7RM,gBAOI,2BxEg7RV,CACF,Cc37RI,yB0DGI,gBAOI,oBxEq7RV,CwE57RM,cAOI,qBxEw7RV,CwE/7RM,eAOI,oBxE27RV,CwEl8RM,uBAOI,4BxE87RV,CwEr8RM,qBAOI,0BxEi8RV,CwEx8RM,oBAOI,yBxEo8RV,CwE38RM,qBAOI,+BxEu8RV,CwE98RM,oBAOI,yBxE08RV,CwEj9RM,aAOI,wBxE68RV,CwEp9RM,mBAOI,8BxEg9RV,CwEv9RM,YAOI,uBxEm9RV,CwE19RM,WAOI,sBxEs9RV,CwE79RM,kBAOI,6BxEy9RV,CwEh+RM,YAOI,uBxE49RV,CwEn+RM,gBAOI,2BxE+9RV,CwEt+RM,iBAOI,4BxEk+RV,CwEz+RM,WAOI,sBxEq+RV,CwE5+RM,kBAOI,6BxEw+RV,CwE/+RM,WAOI,sBxE2+RV,CwEl/RM,cAOI,uBxE8+RV,CwEr/RM,aAOI,4BxEi/RV,CwEx/RM,gBAOI,+BxEo/RV,CwE3/RM,qBAOI,oCxEu/RV,CwE9/RM,wBAOI,uCxE0/RV,CwEjgSM,gBAOI,qBxE6/RV,CwEpgSM,gBAOI,qBxEggSV,CwEvgSM,kBAOI,uBxEmgSV,CwE1gSM,kBAOI,uBxEsgSV,CwE7gSM,cAOI,wBxEygSV,CwEhhSM,gBAOI,0BxE4gSV,CwEnhSM,sBAOI,gCxE+gSV,CwEthSM,0BAOI,oCxEkhSV,CwEzhSM,wBAOI,kCxEqhSV,CwE5hSM,2BAOI,gCxEwhSV,CwE/hSM,4BAOI,uCxE2hSV,CwEliSM,2BAOI,sCxE8hSV,CwEriSM,2BAOI,sCxEiiSV,CwExiSM,sBAOI,gCxEoiSV,CwE3iSM,oBAOI,8BxEuiSV,CwE9iSM,uBAOI,4BxE0iSV,CwEjjSM,yBAOI,8BxE6iSV,CwEpjSM,wBAOI,6BxEgjSV,CwEvjSM,wBAOI,kCxEmjSV,CwE1jSM,sBAOI,gCxEsjSV,CwE7jSM,yBAOI,8BxEyjSV,CwEhkSM,0BAOI,qCxE4jSV,CwEnkSM,yBAOI,oCxE+jSV,CwEtkSM,0BAOI,+BxEkkSV,CwEzkSM,oBAOI,yBxEqkSV,CwE5kSM,qBAOI,+BxEwkSV,CwE/kSM,mBAOI,6BxE2kSV,CwEllSM,sBAOI,2BxE8kSV,CwErlSM,wBAOI,6BxEilSV,CwExlSM,uBAOI,4BxEolSV,CwE3lSM,gBAOI,kBxEulSV,CwE9lSM,YAOI,iBxE0lSV,CwEjmSM,YAOI,iBxE6lSV,CwEpmSM,YAOI,iBxEgmSV,CwEvmSM,YAOI,iBxEmmSV,CwE1mSM,YAOI,iBxEsmSV,CwE7mSM,YAOI,iBxEymSV,CwEhnSM,eAOI,iBxE4mSV,CwEnnSM,QAOI,kBxE+mSV,CwEtnSM,QAOI,uBxEknSV,CwEznSM,QAOI,sBxEqnSV,CwE5nSM,QAOI,qBxEwnSV,CwE/nSM,QAOI,uBxE2nSV,CwEloSM,QAOI,qBxE8nSV,CwEroSM,WAOI,qBxEioSV,CwExoSM,SAOI,gDxEqoSV,CwE5oSM,SAOI,0DxEyoSV,CwEhpSM,SAOI,wDxE6oSV,CwEppSM,SAOI,sDxEipSV,CwExpSM,SAOI,0DxEqpSV,CwE5pSM,SAOI,sDxEypSV,CwEhqSM,YAOI,sDxE6pSV,CwEpqSM,SAOI,gDxEiqSV,CwExqSM,SAOI,0DxEqqSV,CwE5qSM,SAOI,wDxEyqSV,CwEhrSM,SAOI,sDxE6qSV,CwEprSM,SAOI,0DxEirSV,CwExrSM,SAOI,sDxEqrSV,CwE5rSM,YAOI,sDxEyrSV,CwEhsSM,SAOI,sBxE4rSV,CwEnsSM,SAOI,2BxE+rSV,CwEtsSM,SAOI,0BxEksSV,CwEzsSM,SAOI,yBxEqsSV,CwE5sSM,SAOI,2BxEwsSV,CwE/sSM,SAOI,yBxE2sSV,CwEltSM,YAOI,yBxE8sSV,CwErtSM,SAOI,wBxEitSV,CwExtSM,SAOI,6BxEotSV,CwE3tSM,SAOI,4BxEutSV,CwE9tSM,SAOI,2BxE0tSV,CwEjuSM,SAOI,6BxE6tSV,CwEpuSM,SAOI,2BxEguSV,CwEvuSM,YAOI,2BxEmuSV,CwE1uSM,SAOI,yBxEsuSV,CwE7uSM,SAOI,8BxEyuSV,CwEhvSM,SAOI,6BxE4uSV,CwEnvSM,SAOI,4BxE+uSV,CwEtvSM,SAOI,8BxEkvSV,CwEzvSM,SAOI,4BxEqvSV,CwE5vSM,YAOI,4BxEwvSV,CwE/vSM,SAOI,uBxE2vSV,CwElwSM,SAOI,4BxE8vSV,CwErwSM,SAOI,2BxEiwSV,CwExwSM,SAOI,0BxEowSV,CwE3wSM,SAOI,4BxEuwSV,CwE9wSM,SAOI,0BxE0wSV,CwEjxSM,YAOI,0BxE6wSV,CwEpxSM,QAOI,mBxEgxSV,CwEvxSM,QAOI,wBxEmxSV,CwE1xSM,QAOI,uBxEsxSV,CwE7xSM,QAOI,sBxEyxSV,CwEhySM,QAOI,wBxE4xSV,CwEnySM,QAOI,sBxE+xSV,CwEtySM,SAOI,kDxEmySV,CwE1ySM,SAOI,4DxEuySV,CwE9ySM,SAOI,0DxE2ySV,CwElzSM,SAOI,wDxE+ySV,CwEtzSM,SAOI,4DxEmzSV,CwE1zSM,SAOI,wDxEuzSV,CwE9zSM,SAOI,kDxE2zSV,CwEl0SM,SAOI,4DxE+zSV,CwEt0SM,SAOI,0DxEm0SV,CwE10SM,SAOI,wDxEu0SV,CwE90SM,SAOI,4DxE20SV,CwEl1SM,SAOI,wDxE+0SV,CwEt1SM,SAOI,uBxEk1SV,CwEz1SM,SAOI,4BxEq1SV,CwE51SM,SAOI,2BxEw1SV,CwE/1SM,SAOI,0BxE21SV,CwEl2SM,SAOI,4BxE81SV,CwEr2SM,SAOI,0BxEi2SV,CwEx2SM,SAOI,yBxEo2SV,CwE32SM,SAOI,8BxEu2SV,CwE92SM,SAOI,6BxE02SV,CwEj3SM,SAOI,4BxE62SV,CwEp3SM,SAOI,8BxEg3SV,CwEv3SM,SAOI,4BxEm3SV,CwE13SM,SAOI,0BxEs3SV,CwE73SM,SAOI,+BxEy3SV,CwEh4SM,SAOI,8BxE43SV,CwEn4SM,SAOI,6BxE+3SV,CwEt4SM,SAOI,+BxEk4SV,CwEz4SM,SAOI,6BxEq4SV,CwE54SM,SAOI,wBxEw4SV,CwE/4SM,SAOI,6BxE24SV,CwEl5SM,SAOI,4BxE84SV,CwEr5SM,SAOI,2BxEi5SV,CwEx5SM,SAOI,6BxEo5SV,CwE35SM,SAOI,2BxEu5SV,CwE95SM,UAOI,exE05SV,CwEj6SM,UAOI,oBxE65SV,CwEp6SM,UAOI,mBxEg6SV,CwEv6SM,UAOI,kBxEm6SV,CwE16SM,UAOI,oBxEs6SV,CwE76SM,UAOI,kBxEy6SV,CwEh7SM,cAOI,mBxE46SV,CwEn7SM,cAOI,wBxE+6SV,CwEt7SM,cAOI,uBxEk7SV,CwEz7SM,cAOI,sBxEq7SV,CwE57SM,cAOI,wBxEw7SV,CwE/7SM,cAOI,sBxE27SV,CwEl8SM,iBAOI,sBxE87SV,CwEr8SM,iBAOI,2BxEi8SV,CwEx8SM,iBAOI,0BxEo8SV,CwE38SM,iBAOI,yBxEu8SV,CwE98SM,iBAOI,2BxE08SV,CwEj9SM,iBAOI,yBxE68SV,CwEp9SM,eAOI,yBxEg9SV,CwEv9SM,aAOI,0BxEm9SV,CwE19SM,gBAOI,2BxEs9SV,CACF,Ccj+SI,yB0DGI,gBAOI,oBxE29SV,CwEl+SM,cAOI,qBxE89SV,CwEr+SM,eAOI,oBxEi+SV,CwEx+SM,uBAOI,4BxEo+SV,CwE3+SM,qBAOI,0BxEu+SV,CwE9+SM,oBAOI,yBxE0+SV,CwEj/SM,qBAOI,+BxE6+SV,CwEp/SM,oBAOI,yBxEg/SV,CwEv/SM,aAOI,wBxEm/SV,CwE1/SM,mBAOI,8BxEs/SV,CwE7/SM,YAOI,uBxEy/SV,CwEhgTM,WAOI,sBxE4/SV,CwEngTM,kBAOI,6BxE+/SV,CwEtgTM,YAOI,uBxEkgTV,CwEzgTM,gBAOI,2BxEqgTV,CwE5gTM,iBAOI,4BxEwgTV,CwE/gTM,WAOI,sBxE2gTV,CwElhTM,kBAOI,6BxE8gTV,CwErhTM,WAOI,sBxEihTV,CwExhTM,cAOI,uBxEohTV,CwE3hTM,aAOI,4BxEuhTV,CwE9hTM,gBAOI,+BxE0hTV,CwEjiTM,qBAOI,oCxE6hTV,CwEpiTM,wBAOI,uCxEgiTV,CwEviTM,gBAOI,qBxEmiTV,CwE1iTM,gBAOI,qBxEsiTV,CwE7iTM,kBAOI,uBxEyiTV,CwEhjTM,kBAOI,uBxE4iTV,CwEnjTM,cAOI,wBxE+iTV,CwEtjTM,gBAOI,0BxEkjTV,CwEzjTM,sBAOI,gCxEqjTV,CwE5jTM,0BAOI,oCxEwjTV,CwE/jTM,wBAOI,kCxE2jTV,CwElkTM,2BAOI,gCxE8jTV,CwErkTM,4BAOI,uCxEikTV,CwExkTM,2BAOI,sCxEokTV,CwE3kTM,2BAOI,sCxEukTV,CwE9kTM,sBAOI,gCxE0kTV,CwEjlTM,oBAOI,8BxE6kTV,CwEplTM,uBAOI,4BxEglTV,CwEvlTM,yBAOI,8BxEmlTV,CwE1lTM,wBAOI,6BxEslTV,CwE7lTM,wBAOI,kCxEylTV,CwEhmTM,sBAOI,gCxE4lTV,CwEnmTM,yBAOI,8BxE+lTV,CwEtmTM,0BAOI,qCxEkmTV,CwEzmTM,yBAOI,oCxEqmTV,CwE5mTM,0BAOI,+BxEwmTV,CwE/mTM,oBAOI,yBxE2mTV,CwElnTM,qBAOI,+BxE8mTV,CwErnTM,mBAOI,6BxEinTV,CwExnTM,sBAOI,2BxEonTV,CwE3nTM,wBAOI,6BxEunTV,CwE9nTM,uBAOI,4BxE0nTV,CwEjoTM,gBAOI,kBxE6nTV,CwEpoTM,YAOI,iBxEgoTV,CwEvoTM,YAOI,iBxEmoTV,CwE1oTM,YAOI,iBxEsoTV,CwE7oTM,YAOI,iBxEyoTV,CwEhpTM,YAOI,iBxE4oTV,CwEnpTM,YAOI,iBxE+oTV,CwEtpTM,eAOI,iBxEkpTV,CwEzpTM,QAOI,kBxEqpTV,CwE5pTM,QAOI,uBxEwpTV,CwE/pTM,QAOI,sBxE2pTV,CwElqTM,QAOI,qBxE8pTV,CwErqTM,QAOI,uBxEiqTV,CwExqTM,QAOI,qBxEoqTV,CwE3qTM,WAOI,qBxEuqTV,CwE9qTM,SAOI,gDxE2qTV,CwElrTM,SAOI,0DxE+qTV,CwEtrTM,SAOI,wDxEmrTV,CwE1rTM,SAOI,sDxEurTV,CwE9rTM,SAOI,0DxE2rTV,CwElsTM,SAOI,sDxE+rTV,CwEtsTM,YAOI,sDxEmsTV,CwE1sTM,SAOI,gDxEusTV,CwE9sTM,SAOI,0DxE2sTV,CwEltTM,SAOI,wDxE+sTV,CwEttTM,SAOI,sDxEmtTV,CwE1tTM,SAOI,0DxEutTV,CwE9tTM,SAOI,sDxE2tTV,CwEluTM,YAOI,sDxE+tTV,CwEtuTM,SAOI,sBxEkuTV,CwEzuTM,SAOI,2BxEquTV,CwE5uTM,SAOI,0BxEwuTV,CwE/uTM,SAOI,yBxE2uTV,CwElvTM,SAOI,2BxE8uTV,CwErvTM,SAOI,yBxEivTV,CwExvTM,YAOI,yBxEovTV,CwE3vTM,SAOI,wBxEuvTV,CwE9vTM,SAOI,6BxE0vTV,CwEjwTM,SAOI,4BxE6vTV,CwEpwTM,SAOI,2BxEgwTV,CwEvwTM,SAOI,6BxEmwTV,CwE1wTM,SAOI,2BxEswTV,CwE7wTM,YAOI,2BxEywTV,CwEhxTM,SAOI,yBxE4wTV,CwEnxTM,SAOI,8BxE+wTV,CwEtxTM,SAOI,6BxEkxTV,CwEzxTM,SAOI,4BxEqxTV,CwE5xTM,SAOI,8BxEwxTV,CwE/xTM,SAOI,4BxE2xTV,CwElyTM,YAOI,4BxE8xTV,CwEryTM,SAOI,uBxEiyTV,CwExyTM,SAOI,4BxEoyTV,CwE3yTM,SAOI,2BxEuyTV,CwE9yTM,SAOI,0BxE0yTV,CwEjzTM,SAOI,4BxE6yTV,CwEpzTM,SAOI,0BxEgzTV,CwEvzTM,YAOI,0BxEmzTV,CwE1zTM,QAOI,mBxEszTV,CwE7zTM,QAOI,wBxEyzTV,CwEh0TM,QAOI,uBxE4zTV,CwEn0TM,QAOI,sBxE+zTV,CwEt0TM,QAOI,wBxEk0TV,CwEz0TM,QAOI,sBxEq0TV,CwE50TM,SAOI,kDxEy0TV,CwEh1TM,SAOI,4DxE60TV,CwEp1TM,SAOI,0DxEi1TV,CwEx1TM,SAOI,wDxEq1TV,CwE51TM,SAOI,4DxEy1TV,CwEh2TM,SAOI,wDxE61TV,CwEp2TM,SAOI,kDxEi2TV,CwEx2TM,SAOI,4DxEq2TV,CwE52TM,SAOI,0DxEy2TV,CwEh3TM,SAOI,wDxE62TV,CwEp3TM,SAOI,4DxEi3TV,CwEx3TM,SAOI,wDxEq3TV,CwE53TM,SAOI,uBxEw3TV,CwE/3TM,SAOI,4BxE23TV,CwEl4TM,SAOI,2BxE83TV,CwEr4TM,SAOI,0BxEi4TV,CwEx4TM,SAOI,4BxEo4TV,CwE34TM,SAOI,0BxEu4TV,CwE94TM,SAOI,yBxE04TV,CwEj5TM,SAOI,8BxE64TV,CwEp5TM,SAOI,6BxEg5TV,CwEv5TM,SAOI,4BxEm5TV,CwE15TM,SAOI,8BxEs5TV,CwE75TM,SAOI,4BxEy5TV,CwEh6TM,SAOI,0BxE45TV,CwEn6TM,SAOI,+BxE+5TV,CwEt6TM,SAOI,8BxEk6TV,CwEz6TM,SAOI,6BxEq6TV,CwE56TM,SAOI,+BxEw6TV,CwE/6TM,SAOI,6BxE26TV,CwEl7TM,SAOI,wBxE86TV,CwEr7TM,SAOI,6BxEi7TV,CwEx7TM,SAOI,4BxEo7TV,CwE37TM,SAOI,2BxEu7TV,CwE97TM,SAOI,6BxE07TV,CwEj8TM,SAOI,2BxE67TV,CwEp8TM,UAOI,exEg8TV,CwEv8TM,UAOI,oBxEm8TV,CwE18TM,UAOI,mBxEs8TV,CwE78TM,UAOI,kBxEy8TV,CwEh9TM,UAOI,oBxE48TV,CwEn9TM,UAOI,kBxE+8TV,CwEt9TM,cAOI,mBxEk9TV,CwEz9TM,cAOI,wBxEq9TV,CwE59TM,cAOI,uBxEw9TV,CwE/9TM,cAOI,sBxE29TV,CwEl+TM,cAOI,wBxE89TV,CwEr+TM,cAOI,sBxEi+TV,CwEx+TM,iBAOI,sBxEo+TV,CwE3+TM,iBAOI,2BxEu+TV,CwE9+TM,iBAOI,0BxE0+TV,CwEj/TM,iBAOI,yBxE6+TV,CwEp/TM,iBAOI,2BxEg/TV,CwEv/TM,iBAOI,yBxEm/TV,CwE1/TM,eAOI,yBxEs/TV,CwE7/TM,aAOI,0BxEy/TV,CwEhgUM,gBAOI,2BxE4/TV,CACF,CcvgUI,0B0DGI,gBAOI,oBxEigUV,CwExgUM,cAOI,qBxEogUV,CwE3gUM,eAOI,oBxEugUV,CwE9gUM,uBAOI,4BxE0gUV,CwEjhUM,qBAOI,0BxE6gUV,CwEphUM,oBAOI,yBxEghUV,CwEvhUM,qBAOI,+BxEmhUV,CwE1hUM,oBAOI,yBxEshUV,CwE7hUM,aAOI,wBxEyhUV,CwEhiUM,mBAOI,8BxE4hUV,CwEniUM,YAOI,uBxE+hUV,CwEtiUM,WAOI,sBxEkiUV,CwEziUM,kBAOI,6BxEqiUV,CwE5iUM,YAOI,uBxEwiUV,CwE/iUM,gBAOI,2BxE2iUV,CwEljUM,iBAOI,4BxE8iUV,CwErjUM,WAOI,sBxEijUV,CwExjUM,kBAOI,6BxEojUV,CwE3jUM,WAOI,sBxEujUV,CwE9jUM,cAOI,uBxE0jUV,CwEjkUM,aAOI,4BxE6jUV,CwEpkUM,gBAOI,+BxEgkUV,CwEvkUM,qBAOI,oCxEmkUV,CwE1kUM,wBAOI,uCxEskUV,CwE7kUM,gBAOI,qBxEykUV,CwEhlUM,gBAOI,qBxE4kUV,CwEnlUM,kBAOI,uBxE+kUV,CwEtlUM,kBAOI,uBxEklUV,CwEzlUM,cAOI,wBxEqlUV,CwE5lUM,gBAOI,0BxEwlUV,CwE/lUM,sBAOI,gCxE2lUV,CwElmUM,0BAOI,oCxE8lUV,CwErmUM,wBAOI,kCxEimUV,CwExmUM,2BAOI,gCxEomUV,CwE3mUM,4BAOI,uCxEumUV,CwE9mUM,2BAOI,sCxE0mUV,CwEjnUM,2BAOI,sCxE6mUV,CwEpnUM,sBAOI,gCxEgnUV,CwEvnUM,oBAOI,8BxEmnUV,CwE1nUM,uBAOI,4BxEsnUV,CwE7nUM,yBAOI,8BxEynUV,CwEhoUM,wBAOI,6BxE4nUV,CwEnoUM,wBAOI,kCxE+nUV,CwEtoUM,sBAOI,gCxEkoUV,CwEzoUM,yBAOI,8BxEqoUV,CwE5oUM,0BAOI,qCxEwoUV,CwE/oUM,yBAOI,oCxE2oUV,CwElpUM,0BAOI,+BxE8oUV,CwErpUM,oBAOI,yBxEipUV,CwExpUM,qBAOI,+BxEopUV,CwE3pUM,mBAOI,6BxEupUV,CwE9pUM,sBAOI,2BxE0pUV,CwEjqUM,wBAOI,6BxE6pUV,CwEpqUM,uBAOI,4BxEgqUV,CwEvqUM,gBAOI,kBxEmqUV,CwE1qUM,YAOI,iBxEsqUV,CwE7qUM,YAOI,iBxEyqUV,CwEhrUM,YAOI,iBxE4qUV,CwEnrUM,YAOI,iBxE+qUV,CwEtrUM,YAOI,iBxEkrUV,CwEzrUM,YAOI,iBxEqrUV,CwE5rUM,eAOI,iBxEwrUV,CwE/rUM,QAOI,kBxE2rUV,CwElsUM,QAOI,uBxE8rUV,CwErsUM,QAOI,sBxEisUV,CwExsUM,QAOI,qBxEosUV,CwE3sUM,QAOI,uBxEusUV,CwE9sUM,QAOI,qBxE0sUV,CwEjtUM,WAOI,qBxE6sUV,CwEptUM,SAOI,gDxEitUV,CwExtUM,SAOI,0DxEqtUV,CwE5tUM,SAOI,wDxEytUV,CwEhuUM,SAOI,sDxE6tUV,CwEpuUM,SAOI,0DxEiuUV,CwExuUM,SAOI,sDxEquUV,CwE5uUM,YAOI,sDxEyuUV,CwEhvUM,SAOI,gDxE6uUV,CwEpvUM,SAOI,0DxEivUV,CwExvUM,SAOI,wDxEqvUV,CwE5vUM,SAOI,sDxEyvUV,CwEhwUM,SAOI,0DxE6vUV,CwEpwUM,SAOI,sDxEiwUV,CwExwUM,YAOI,sDxEqwUV,CwE5wUM,SAOI,sBxEwwUV,CwE/wUM,SAOI,2BxE2wUV,CwElxUM,SAOI,0BxE8wUV,CwErxUM,SAOI,yBxEixUV,CwExxUM,SAOI,2BxEoxUV,CwE3xUM,SAOI,yBxEuxUV,CwE9xUM,YAOI,yBxE0xUV,CwEjyUM,SAOI,wBxE6xUV,CwEpyUM,SAOI,6BxEgyUV,CwEvyUM,SAOI,4BxEmyUV,CwE1yUM,SAOI,2BxEsyUV,CwE7yUM,SAOI,6BxEyyUV,CwEhzUM,SAOI,2BxE4yUV,CwEnzUM,YAOI,2BxE+yUV,CwEtzUM,SAOI,yBxEkzUV,CwEzzUM,SAOI,8BxEqzUV,CwE5zUM,SAOI,6BxEwzUV,CwE/zUM,SAOI,4BxE2zUV,CwEl0UM,SAOI,8BxE8zUV,CwEr0UM,SAOI,4BxEi0UV,CwEx0UM,YAOI,4BxEo0UV,CwE30UM,SAOI,uBxEu0UV,CwE90UM,SAOI,4BxE00UV,CwEj1UM,SAOI,2BxE60UV,CwEp1UM,SAOI,0BxEg1UV,CwEv1UM,SAOI,4BxEm1UV,CwE11UM,SAOI,0BxEs1UV,CwE71UM,YAOI,0BxEy1UV,CwEh2UM,QAOI,mBxE41UV,CwEn2UM,QAOI,wBxE+1UV,CwEt2UM,QAOI,uBxEk2UV,CwEz2UM,QAOI,sBxEq2UV,CwE52UM,QAOI,wBxEw2UV,CwE/2UM,QAOI,sBxE22UV,CwEl3UM,SAOI,kDxE+2UV,CwEt3UM,SAOI,4DxEm3UV,CwE13UM,SAOI,0DxEu3UV,CwE93UM,SAOI,wDxE23UV,CwEl4UM,SAOI,4DxE+3UV,CwEt4UM,SAOI,wDxEm4UV,CwE14UM,SAOI,kDxEu4UV,CwE94UM,SAOI,4DxE24UV,CwEl5UM,SAOI,0DxE+4UV,CwEt5UM,SAOI,wDxEm5UV,CwE15UM,SAOI,4DxEu5UV,CwE95UM,SAOI,wDxE25UV,CwEl6UM,SAOI,uBxE85UV,CwEr6UM,SAOI,4BxEi6UV,CwEx6UM,SAOI,2BxEo6UV,CwE36UM,SAOI,0BxEu6UV,CwE96UM,SAOI,4BxE06UV,CwEj7UM,SAOI,0BxE66UV,CwEp7UM,SAOI,yBxEg7UV,CwEv7UM,SAOI,8BxEm7UV,CwE17UM,SAOI,6BxEs7UV,CwE77UM,SAOI,4BxEy7UV,CwEh8UM,SAOI,8BxE47UV,CwEn8UM,SAOI,4BxE+7UV,CwEt8UM,SAOI,0BxEk8UV,CwEz8UM,SAOI,+BxEq8UV,CwE58UM,SAOI,8BxEw8UV,CwE/8UM,SAOI,6BxE28UV,CwEl9UM,SAOI,+BxE88UV,CwEr9UM,SAOI,6BxEi9UV,CwEx9UM,SAOI,wBxEo9UV,CwE39UM,SAOI,6BxEu9UV,CwE99UM,SAOI,4BxE09UV,CwEj+UM,SAOI,2BxE69UV,CwEp+UM,SAOI,6BxEg+UV,CwEv+UM,SAOI,2BxEm+UV,CwE1+UM,UAOI,exEs+UV,CwE7+UM,UAOI,oBxEy+UV,CwEh/UM,UAOI,mBxE4+UV,CwEn/UM,UAOI,kBxE++UV,CwEt/UM,UAOI,oBxEk/UV,CwEz/UM,UAOI,kBxEq/UV,CwE5/UM,cAOI,mBxEw/UV,CwE//UM,cAOI,wBxE2/UV,CwElgVM,cAOI,uBxE8/UV,CwErgVM,cAOI,sBxEigVV,CwExgVM,cAOI,wBxEogVV,CwE3gVM,cAOI,sBxEugVV,CwE9gVM,iBAOI,sBxE0gVV,CwEjhVM,iBAOI,2BxE6gVV,CwEphVM,iBAOI,0BxEghVV,CwEvhVM,iBAOI,yBxEmhVV,CwE1hVM,iBAOI,2BxEshVV,CwE7hVM,iBAOI,yBxEyhVV,CwEhiVM,eAOI,yBxE4hVV,CwEniVM,aAOI,0BxE+hVV,CwEtiVM,gBAOI,2BxEkiVV,CwEziVM,MAOI,0BxEuiVV,CwE9iVM,MAOI,wBxE0iVV,CwEjjVM,MAOI,2BxE6iVV,CwEpjVM,MAOI,0BxEgjVV,CAbF,CyEtkVA,aD4BQ,gBAOI,wBxEqjVV,CwE5jVM,sBAOI,8BxEwjVV,CwE/jVM,eAOI,uBxE2jVV,CwElkVM,cAOI,sBxE8jVV,CwErkVM,qBAOI,6BxEikVV,CwExkVM,eAOI,uBxEokVV,CwE3kVM,mBAOI,2BxEukVV,CwE9kVM,oBAOI,4BxE0kVV,CwEjlVM,cAOI,sBxE6kVV,CwEplVM,qBAOI,6BxEglVV,CwEvlVM,cAOI,sBxEmlVV,CACF,C0ExpVA,gECCE,2EACA,kCAAmC,CACnC,iCAAkC,CAClC,uCACA,8BACA,4BAA6B,CAC7B,iBAAkB,CAClB,mBAAoB,CACpB,mBAAoB,CACpB,gCACA,aAAc,CACd,iBAAkB,CAClB,mBAAoB,CACpB,4B3EiqVF,C0EpqVA,4EAUE,oB1EqqVF,C0ElqVA,8BACA,4EAUI,iB1EmqVF,CACF,C4ErsVE,OACE,a5EusVJ,C4ExsVE,OACE,a5E2sVJ,C4E5sVE,OACE,a5E+sVJ,C4EhtVE,OACE,a5EmtVJ,C4EptVE,OACE,a5EutVJ,C4ExtVE,OACE,a5E2tVJ,C4E5tVE,OACE,a5E+tVJ,C4EhuVE,OACE,a5EmuVJ,C4EpuVE,OACE,a5EuuVJ,C4ExuVE,QACE,c5E2uVJ,C4EruVE,QDUA,iBACA,iBACA,qB3E+tVF,C4E3uVE,ODUA,gBACA,qBACA,qB3EquVF,C4EjvVE,ODUA,iBACA,qBACA,uB3E2uVF,C4EvvVE,ODUA,iBACA,kBACA,sB3EivVF,C4E7vVE,ODUA,gBACA,qBACA,sB3EuvVF,C4EnwVE,QDUA,cACA,qBACA,uB3E6vVF,C6EnxVA,eACE,e7EsxVF,C6EnxVA,uBAEE,iB7EsxVF,C8E5xVA,OACE,oBAAqB,CACrB,8CACA,sB9E+xVF,C8E7xVE,UAAO,iB9EiyVT,C8E9xVA,OACE,oDAIA,mBAAoB,CAHpB,iBAAkB,CAClB,iBAAkB,CAClB,4B9EkyVF,C+ElyVA,WACE,yCACA,2CACA,0CACA,4CACA,mDACA,8C/E+yVF,CgFj0VA,6BAEE,kBAAmB,CACnB,4ChFo0VF,CgFj0VA,4BAEE,gBAAiB,CACjB,8ChFo0VF,CiF70VA,SAEE,6CACA,yDACA,mDACA,uEAJA,uBAKA,gEjFg1VF,CiF70VA,WAEE,6CACA,yDACA,mDACA,uEAJA,yBAKA,gFjFg1VF,CiF70VA,SAKE,uEAJA,uBAKA,4EjFg1VF,CiF70VA,uBAPE,6CACA,yDACA,kDjF21VF,CiFt1VA,cAKE,uEAJA,4BAKA,4EjFg1VF,CiF70VA,SAEE,6CACA,yDACA,mDACA,uEAJA,uBAKA,gEjFg1VF,CiF70VA,UAIE,mDACA,uEAJA,wBAKA,2DjFg1VF,CiF70VA,mBAPE,6CACA,wDjF41VF,CiFt1VA,SAIE,mDACA,uEAJA,uBAKA,2DjFg1VF,CiF70VA,iBACE,gCjFg1VF,CiF70VA,yBAGE,yDACA,mDACA,uEAHA,uBAIA,6DjFg1VF,CiF10VA,uCACE,gGASE,wBAA0B,CAC1B,yBjF60VF,CACF,CiF10VA,mBACE,OAAU,kBjF60VV,CiF50VA,IAAM,0CjF+0VN,CACF,CiF70VA,qBACE,GAAO,gCjFg1VP,CiF/0VA,IAAO,mGjFk1VP,CiFj1VA,IAAO,6HjFo1VP,CiFn1VA,IAAO,mGjFs1VP,CiFr1VA,IAAO,+DjFw1VP,CiFv1VA,IAAO,gCjF01VP,CiFz1VA,GAAO,gCjF41VP,CACF,CiF11VA,mBACE,IAAM,iCjF61VN,CACF,CiF31VA,wBACE,MACE,uCACA,kBjF61VF,CiF31VA,IACE,SAAU,CACV,gDjF61VF,CACF,CiF11VA,mBACE,IACE,yGjF41VF,CACF,CiFz1VA,oBACE,GAAK,wBjF41VL,CiF31VA,GAAK,uBjF81VL,CiF71VA,OAAU,wBjFg2VV,CiF/1VA,QAAW,uBjFk2VX,CiFj2VA,IAAM,wBjFo2VN,CiFn2VA,IAAM,uBjFs2VN,CiFr2VA,IAAM,wBjFw2VN,CiFv2VA,IAAM,uBjF02VN,CiFz2VA,OAAY,sBjF42VZ,CACF,CiF12VA,mBACE,GAAK,sBjF62VL,CiF52VA,GAAO,uBjF+2VP,CACF,CkFhgWA,cACE,uBlFkgWF,CkF//VA,eACE,wBlFkgWF,CkF//VA,eACE,wBlFkgWF,CkF//VA,oBACE,oBlFkgWF,CkF//VA,kBACE,oBlFkgWF,CkF//VA,mDAEE,mBlFkgWF,CkF//VA,cACE,0ClFkgWF,CmF5hWA,UACE,oBAAqB,CACrB,UAAW,CACX,eAAgB,CAChB,iBAAkB,CAClB,qBCqCuB,CDpCvB,WnF+hWF,CmF5hWA,0BAEE,gBAEA,OAAQ,CACR,iBAAkB,CAClB,iBAAkB,CAClB,sBACA,oCnF8hWF,CmF3hWA,aACE,mBnF8hWF,CmF3hWA,aACE,anF8hWF,CmF3hWA,YACE,4BnF8hWF,CqFrjWE,MACE,WrF0jWJ,CqF3jWE,MACE,WrF8jWJ,CqF/jWE,MACE,WrFkkWJ,CqFnkWE,MACE,WrFskWJ,CqFvkWE,MACE,WrF0kWJ,CqF3kWE,MACE,WrF8kWJ,CqF/kWE,MACE,WrFklWJ,CqFnlWE,MACE,WrFslWJ,CqFvlWE,MACE,WrF0lWJ,CqF3lWE,MACE,WrF8lWJ,CqF/lWE,gBACE,SrFkmWJ,CqFnmWE,YACE,SrFsmWJ,CqFvmWE,mCACE,SrFknWJ,CqFnnWE,2BACE,SrF0nWJ,CqF3nWE,aACE,SrF8nWJ,CqF/nWE,iBACE,SrFsoWJ,CqFvoWE,cACE,SrF0oWJ,CqF3oWE,WACE,SrF8oWJ,CqF/oWE,iBACE,SrFkpWJ,CqFnpWE,aACE,SrFspWJ,CqFvpWE,OACE,SrF0pWJ,CqF3pWE,MACE,QrF8pWJ,CqF/pWE,MACE,QrFkqWJ,CqFnqWE,MACE,QrFsqWJ,CqFvqWE,MACE,QrF0qWJ,CqF3qWE,MACE,QrF8qWJ,CqF/qWE,MACE,QrFkrWJ,CqFnrWE,MACE,QrFsrWJ,CqFvrWE,MACE,QrF0rWJ,CqF3rWE,MACE,QrF8rWJ,CqF/rWE,MACE,QrFksWJ,CqFnsWE,MACE,QrFssWJ,CqFvsWE,MACE,QrF0sWJ,CqF3sWE,MACE,QrF8sWJ,CqF/sWE,MACE,QrFktWJ,CqFntWE,MACE,QrFstWJ,CqFvtWE,MACE,QrF0tWJ,CqF3tWE,MACE,QrF8tWJ,CqF/tWE,MACE,QrFkuWJ,CqFnuWE,MACE,QrFsuWJ,CqFvuWE,MACE,QrF0uWJ,CqF3uWE,MACE,QrF8uWJ,CqF/uWE,MACE,QrFkvWJ,CqFnvWE,MACE,QrFsvWJ,CqFvvWE,MACE,QrF0vWJ,CqF3vWE,MACE,QrF8vWJ,CqF/vWE,MACE,QrFkwWJ,CqFnwWE,WACE,YrFswWJ,CqFvwWE,gBACE,YrF0wWJ,CqF3wWE,yBACE,YrF8wWJ,CqF/wWE,iBACE,YrFkxWJ,CqFnxWE,gDACE,YrF0xWJ,CqF3xWE,4CACE,YrFkyWJ,CqFnyWE,YACE,YrFsyWJ,CqFvyWE,aACE,YrF0yWJ,CqF3yWE,cACE,YrF8yWJ,CqF/yWE,eACE,YrFkzWJ,CqFnzWE,yBACE,YrFszWJ,CqFvzWE,kBACE,YrF0zWJ,CqF3zWE,iCACE,YrFk0WJ,CqFn0WE,uEACE,YrF80WJ,CqF/0WE,oBACE,YrFk1WJ,CqFn1WE,0BACE,YrFs1WJ,CqFv1WE,mBACE,YrF01WJ,CqF31WE,oBACE,YrF81WJ,CqF/1WE,uBACE,YrFk2WJ,CqFn2WE,kCACE,YrF02WJ,CqF32WE,gBACE,YrF82WJ,CqF/2WE,+CACE,YrFs3WJ,CqFv3WE,gBACE,YrF03WJ,CqF33WE,iBACE,YrF83WJ,CqF/3WE,cACE,YrFk4WJ,CqFn4WE,iBACE,YrFs4WJ,CqFv4WE,SACE,YrF04WJ,CqF34WE,SACE,YrF84WJ,CqF/4WE,iBACE,YrFk5WJ,CqFn5WE,mCACE,YrF05WJ,CqF35WE,gBACE,YrF85WJ,CqF/5WE,uBACE,YrFk6WJ,CqFn6WE,gBACE,YrFs6WJ,CqFv6WE,UACE,YrF06WJ,CqF36WE,gBACE,YrF86WJ,CqF/6WE,YACE,YrFk7WJ,CqFn7WE,SACE,YrFs7WJ,CqFv7WE,iBACE,YrF07WJ,CqF37WE,qBACE,YrF87WJ,CqF/7WE,mBACE,YrFk8WJ,CqFn8WE,0BACE,YrFs8WJ,CqFv8WE,iBACE,YrF08WJ,CqF38WE,cACE,YrF88WJ,CqF/8WE,iBACE,YrFk9WJ,CqFn9WE,mBACE,YrFs9WJ,CqFv9WE,kBACE,YrF09WJ,CqF39WE,kBACE,YrF89WJ,CqF/9WE,cACE,YrFk+WJ,CqFn+WE,iBACE,YrFs+WJ,CqFv+WE,gBACE,YrF0+WJ,CqF3+WE,iBACE,YrF8+WJ,CqF/+WE,4BACE,YrFk/WJ,CqFn/WE,WACE,YrFs/WJ,CqFv/WE,iBACE,YrF0/WJ,CqF3/WE,cACE,YrF8/WJ,CqF//WE,sBACE,YrFkgXJ,CqFngXE,eACE,YrFsgXJ,CqFvgXE,kBACE,YrF0gXJ,CqF3gXE,YACE,YrF8gXJ,CqF/gXE,cACE,YrFkhXJ,CqFnhXE,aACE,YrFshXJ,CqFvhXE,wBACE,YrF0hXJ,CqF3hXE,gBACE,YrF8hXJ,CqF/hXE,kBACE,YrFkiXJ,CqFniXE,eACE,YrFsiXJ,CqFviXE,iBACE,YrF0iXJ,CqF3iXE,QACE,YrF8iXJ,CqF/iXE,mBACE,YrFkjXJ,CqFnjXE,6BACE,YrF0jXJ,CqF3jXE,+CACE,YrFskXJ,CqFvkXE,aACE,YrF0kXJ,CqF3kXE,cACE,YrF8kXJ,CqF/kXE,kBACE,YrFklXJ,CqFnlXE,eACE,YrFslXJ,CqFvlXE,cACE,YrF0lXJ,CqF3lXE,cACE,YrF8lXJ,CqF/lXE,gBACE,YrFkmXJ,CqFnmXE,eACE,YrFsmXJ,CqFvmXE,WACE,YrF0mXJ,CqF3mXE,aACE,YrF8mXJ,CqF/mXE,gBACE,YrFknXJ,CqFnnXE,cACE,YrFsnXJ,CqFvnXE,aACE,YrF0nXJ,CqF3nXE,gBACE,YrF8nXJ,CqF/nXE,WACE,YrFkoXJ,CqFnoXE,aACE,YrFsoXJ,CqFvoXE,gBACE,YrF0oXJ,CqF3oXE,+CACE,YrFspXJ,CqFvpXE,UACE,YrF0pXJ,CqF3pXE,gDACE,YrFkqXJ,CqFnqXE,4BACE,YrF0qXJ,CqF3qXE,uCACE,YrFkrXJ,CqFnrXE,0BACE,YrFsrXJ,CqFvrXE,cACE,YrF0rXJ,CqF3rXE,oBACE,YrF8rXJ,CqF/rXE,8BACE,YrFssXJ,CqFvsXE,gBACE,YrF0sXJ,CqF3sXE,kBACE,YrF8sXJ,CqF/sXE,cACE,YrFktXJ,CqFntXE,eACE,YrFstXJ,CqFvtXE,aACE,YrF0tXJ,CqF3tXE,YACE,YrF8tXJ,CqF/tXE,WACE,YrFkuXJ,CqFnuXE,wBACE,YrFsuXJ,CqFvuXE,iBACE,YrF0uXJ,CqF3uXE,iBACE,YrF8uXJ,CqF/uXE,wBACE,YrFkvXJ,CqFnvXE,sBACE,YrFsvXJ,CqFvvXE,oCACE,YrF8vXJ,CqF/vXE,cACE,YrFkwXJ,CqFnwXE,qBACE,YrFswXJ,CqFvwXE,cACE,YrF0wXJ,CqF3wXE,gBACE,YrF8wXJ,CqF/wXE,sBACE,YrFkxXJ,CqFnxXE,wBACE,YrFsxXJ,CqFvxXE,8BACE,YrF0xXJ,CqF3xXE,wBACE,YrF8xXJ,CqF/xXE,gBACE,YrFkyXJ,CqFnyXE,8BACE,YrFsyXJ,CqFvyXE,uBACE,YrF0yXJ,CqF3yXE,wBACE,YrF8yXJ,CqF/yXE,+BACE,YrFkzXJ,CqFnzXE,6BACE,YrFszXJ,CqFvzXE,wBACE,YrF0zXJ,CqF3zXE,wBACE,YrF8zXJ,CqF/zXE,0BACE,YrFk0XJ,CqFn0XE,8BACE,YrFs0XJ,CqFv0XE,gBACE,YrF00XJ,CqF30XE,6BACE,YrF80XJ,CqF/0XE,qBACE,YrFk1XJ,CqFn1XE,kBACE,YrFs1XJ,CqFv1XE,kBACE,YrF01XJ,CqF31XE,sBACE,YrF81XJ,CqF/1XE,wBACE,YrFk2XJ,CqFn2XE,sBACE,YrFs2XJ,CqFv2XE,cACE,YrF02XJ,CqF32XE,mBACE,YrF82XJ,CqF/2XE,iBACE,YrFk3XJ,CqFn3XE,cACE,YrFs3XJ,CqFv3XE,kBACE,YrF03XJ,CqF33XE,WACE,YrF83XJ,CqF/3XE,wBACE,YrFk4XJ,CqFn4XE,8BACE,YrFs4XJ,CqFv4XE,wBACE,YrF04XJ,CqF34XE,gBACE,YrF84XJ,CqF/4XE,iBACE,YrFk5XJ,CqFn5XE,WACE,YrFs5XJ,CqFv5XE,SACE,YrF05XJ,CqF35XE,gCACE,YrF85XJ,CqF/5XE,0BACE,YrFk6XJ,CqFn6XE,gCACE,YrFs6XJ,CqFv6XE,0BACE,YrF06XJ,CqF36XE,kBACE,YrF86XJ,CqF/6XE,kBACE,YrFk7XJ,CqFn7XE,iBACE,YrFs7XJ,CqFv7XE,oBACE,YrF07XJ,CqF37XE,gBACE,YrF87XJ,CqF/7XE,kBACE,YrFk8XJ,CqFn8XE,mBACE,YrFs8XJ,CqFv8XE,UACE,YrF08XJ,CqF38XE,WACE,YrF88XJ,CqF/8XE,eACE,YrFk9XJ,CqFn9XE,oCACE,YrF09XJ,CqF39XE,aACE,YrF89XJ,CqF/9XE,iBACE,YrFk+XJ,CqFn+XE,uBACE,YrFs+XJ,CqFv+XE,wBACE,YrF0+XJ,CqF3+XE,aACE,YrF8+XJ,CqF/+XE,kBACE,YrFk/XJ,CqFn/XE,0BACE,YrFs/XJ,CqFv/XE,cACE,YrF0/XJ,CqF3/XE,UACE,YrF8/XJ,CqF//XE,4BACE,YrFkgYJ,CqFngYE,sBACE,YrFsgYJ,CqFvgYE,yBACE,YrF0gYJ,CqF3gYE,gBACE,YrF8gYJ,CqF/gYE,gBACE,YrFkhYJ,CqFnhYE,cACE,YrFshYJ,CqFvhYE,eACE,YrF0hYJ,CqF3hYE,gBACE,YrF8hYJ,CqF/hYE,wBACE,YrFkiYJ,CqFniYE,wBACE,YrFsiYJ,CqFviYE,sBACE,YrF0iYJ,CqF3iYE,cACE,YrF8iYJ,CqF/iYE,gBACE,YrFkjYJ,CqFnjYE,wBACE,YrFsjYJ,CqFvjYE,yBACE,YrF0jYJ,CqF3jYE,sBACE,YrF8jYJ,CqF/jYE,uBACE,YrFkkYJ,CqFnkYE,6BACE,YrFskYJ,CqFvkYE,uBACE,YrF0kYJ,CqF3kYE,sBACE,YrF8kYJ,CqF/kYE,uBACE,YrFklYJ,CqFnlYE,sBACE,YrFslYJ,CqFvlYE,cACE,YrF0lYJ,CqF3lYE,mBACE,YrF8lYJ,CqF/lYE,mBACE,YrFkmYJ,CqFnmYE,uBACE,YrFsmYJ,CqFvmYE,6BACE,YrF0mYJ,CqF3mYE,uBACE,YrF8mYJ,CqF/mYE,eACE,YrFknYJ,CqFnnYE,eACE,YrFsnYJ,CqFvnYE,sBACE,YrF0nYJ,CqF3nYE,yCACE,YrF8nYJ,CqF/nYE,eACE,YrFkoYJ,CqFnoYE,+BACE,YrFsoYJ,CqFvoYE,qCACE,YrF0oYJ,CqF3oYE,+BACE,YrF8oYJ,CqF/oYE,uBACE,YrFkpYJ,CqFnpYE,kBACE,YrFspYJ,CqFvpYE,QACE,YrF0pYJ,CqF3pYE,cACE,YrF8pYJ,CqF/pYE,mBACE,YrFkqYJ,CqFnqYE,kBACE,YrFsqYJ,CqFvqYE,gBACE,YrF0qYJ,CqF3qYE,iBACE,YrF8qYJ,CqF/qYE,kBACE,YrFkrYJ,CqFnrYE,gBACE,YrFsrYJ,CqFvrYE,kBACE,YrF0rYJ,CqF3rYE,sBACE,YrF8rYJ,CqF/rYE,WACE,YrFksYJ,CqFnsYE,iCACE,YrFssYJ,CqFvsYE,2BACE,YrF0sYJ,CqF3sYE,yBACE,YrF8sYJ,CqF/sYE,oBACE,YrFktYJ,CqFntYE,oBACE,YrFstYJ,CqFvtYE,iBACE,YrF0tYJ,CqF3tYE,wBACE,YrF8tYJ,CqF/tYE,wBACE,YrFkuYJ,CqFnuYE,qBACE,YrFsuYJ,CqFvuYE,aACE,YrF0uYJ,CqF3uYE,iBACE,YrF8uYJ,CqF/uYE,UACE,YrFkvYJ,CqFnvYE,kBACE,YrFsvYJ,CqFvvYE,iBACE,YrF0vYJ,CqF3vYE,aACE,YrF8vYJ,CqF/vYE,iBACE,YrFkwYJ,CqFnwYE,gBACE,YrFswYJ,CqFvwYE,mBACE,YrF0wYJ,CqF3wYE,mBACE,YrF8wYJ,CqF/wYE,gBACE,YrFkxYJ,CqFnxYE,8BACE,YrFsxYJ,CqFvxYE,8BACE,YrF0xYJ,CqF3xYE,yBACE,YrF8xYJ,CqF/xYE,iBACE,YrFkyYJ,CqFnyYE,gBACE,YrFsyYJ,CqFvyYE,sBACE,YrF0yYJ,CqF3yYE,wBACE,YrF8yYJ,CqF/yYE,8BACE,YrFkzYJ,CqFnzYE,wBACE,YrFszYJ,CqFvzYE,uBACE,YrF0zYJ,CqF3zYE,2BACE,YrF8zYJ,CqF/zYE,wBACE,YrFk0YJ,CqFn0YE,uBACE,YrFs0YJ,CqFv0YE,oBACE,YrF00YJ,CqF30YE,mBACE,YrF80YJ,CqF/0YE,yBACE,YrFk1YJ,CqFn1YE,sBACE,YrFs1YJ,CqFv1YE,qBACE,YrF01YJ,CqF31YE,6BACE,YrF81YJ,CqF/1YE,0BACE,YrFk2YJ,CqFn2YE,8BACE,YrFs2YJ,CqFv2YE,gBACE,YrF02YJ,CqF32YE,iBACE,YrF82YJ,CqF/2YE,mBACE,YrFk3YJ,CqFn3YE,mCACE,YrFs3YJ,CqFv3YE,+BACE,YrF03YJ,CqF33YE,2CACE,YrF83YJ,CqF/3YE,2BACE,YrFk4YJ,CqFn4YE,uBACE,YrFs4YJ,CqFv4YE,6BACE,YrF04YJ,CqF34YE,uBACE,YrF84YJ,CqF/4YE,eACE,YrFk5YJ,CqFn5YE,gBACE,YrFs5YJ,CqFv5YE,qBACE,YrF05YJ,CqF35YE,sBACE,YrF85YJ,CqF/5YE,4BACE,YrFk6YJ,CqFn6YE,sBACE,YrFs6YJ,CqFv6YE,qBACE,YrF06YJ,CqF36YE,sBACE,YrF86YJ,CqF/6YE,iBACE,YrFk7YJ,CqFn7YE,iBACE,YrFs7YJ,CqFv7YE,gBACE,YrF07YJ,CqF37YE,sBACE,YrF87YJ,CqF/7YE,4BACE,YrFk8YJ,CqFn8YE,sBACE,YrFs8YJ,CqFv8YE,cACE,YrF08YJ,CqF38YE,gBACE,YrF88YJ,CqF/8YE,QACE,YrFk9YJ,CqFn9YE,eACE,YrFs9YJ,CqFv9YE,wBACE,YrF09YJ,CqF39YE,8BACE,YrF89YJ,CqF/9YE,wBACE,YrFk+YJ,CqFn+YE,gBACE,YrFs+YJ,CqFv+YE,gBACE,YrF0+YJ,CqF3+YE,kBACE,YrF8+YJ,CqF/+YE,eACE,YrFk/YJ,CqFn/YE,eACE,YrFs/YJ,CqFv/YE,iBACE,YrF0/YJ,CqF3/YE,eACE,YrF8/YJ,CqF//YE,2BACE,YrFkgZJ,CqFngZE,iBACE,YrFsgZJ,CqFvgZE,sEACE,YrFshZJ,CqFvhZE,mBACE,YrF0hZJ,CqF3hZE,SACE,YrF8hZJ,CqF/hZE,iBACE,YrFkiZJ,CqFniZE,SACE,YrFsiZJ,CqFviZE,4BACE,YrF0iZJ,CqF3iZE,0BACE,YrF8iZJ,CqF/iZE,yBACE,YrFkjZJ,CqFnjZE,qBACE,YrFsjZJ,CqFvjZE,UACE,YrF0jZJ,CqF3jZE,oBACE,YrF8jZJ,CqF/jZE,qBACE,YrFkkZJ,CqFnkZE,eACE,YrFskZJ,CqFvkZE,sBACE,YrF0kZJ,CqF3kZE,cACE,YrF8kZJ,CqF/kZE,WACE,YrFklZJ,CqFnlZE,kBACE,YrFslZJ,CqFvlZE,sBACE,YrF0lZJ,CqF3lZE,kBACE,YrF8lZJ,CqF/lZE,gBACE,YrFkmZJ,CqFnmZE,mBACE,YrFsmZJ,CqFvmZE,gBACE,YrF0mZJ,CqF3mZE,wBACE,YrF8mZJ,CqF/mZE,eACE,YrFknZJ,CqFnnZE,eACE,YrFsnZJ,CqFvnZE,oBACE,YrF0nZJ,CqF3nZE,qBACE,YrF8nZJ,CqF/nZE,sBACE,YrFkoZJ,CqFnoZE,eACE,YrFsoZJ,CqFvoZE,iCACE,YrF0oZJ,CqF3oZE,SACE,YrF8oZJ,CqF/oZE,iBACE,YrFkpZJ,CqFnpZE,gBACE,YrFspZJ,CqFvpZE,mBACE,YrF0pZJ,CqF3pZE,sBACE,YrF8pZJ,CqF/pZE,sBACE,YrFkqZJ,CqFnqZE,0BACE,YrFsqZJ,CqFvqZE,eACE,YrF0qZJ,CqF3qZE,YACE,YrF8qZJ,CqF/qZE,eACE,YrFkrZJ,CqFnrZE,4BACE,YrFsrZJ,CqFvrZE,yBACE,YrF0rZJ,CqF3rZE,yCACE,YrFssZJ,CqFvsZE,2BACE,YrF0sZJ,CqF3sZE,kBACE,YrF8sZJ,CqF/sZE,kBACE,YrFktZJ,CqFntZE,kBACE,YrFstZJ,CqFvtZE,qBACE,YrF0tZJ,CqF3tZE,kBACE,YrF8tZJ,CqF/tZE,uBACE,YrFkuZJ,CqFnuZE,kBACE,YrFsuZJ,CqFvuZE,aACE,YrF0uZJ,CqF3uZE,eACE,YrF8uZJ,CqF/uZE,WACE,YrFkvZJ,CqFnvZE,uBACE,YrFsvZJ,CqFvvZE,mBACE,YrF0vZJ,CqF3vZE,sBACE,YrF8vZJ,CqF/vZE,uBACE,YrFkwZJ,CqFnwZE,aACE,YrFswZJ,CqFvwZE,0BACE,YrF8wZJ,CqF/wZE,aACE,YrFkxZJ,CqFnxZE,UACE,YrFsxZJ,CqFvxZE,WACE,YrF0xZJ,CqF3xZE,cACE,YrF8xZJ,CqF/xZE,WACE,YrFkyZJ,CqFnyZE,QACE,YrFsyZJ,CqFvyZE,UACE,YrF0yZJ,CqF3yZE,WACE,YrF8yZJ,CqF/yZE,gBACE,YrFkzZJ,CqFnzZE,YACE,YrFszZJ,CqFvzZE,WACE,YrF0zZJ,CqF3zZE,UACE,YrF8zZJ,CqF/zZE,0CACE,YrFs0ZJ,CqFv0ZE,UACE,YrF00ZJ,CqF30ZE,gCACE,YrFk1ZJ,CqFn1ZE,UACE,YrFs1ZJ,CqFv1ZE,SACE,YrF01ZJ,CqF31ZE,qCACE,YrFs2ZJ,CqFv2ZE,sCACE,YrFk3ZJ,CqFn3ZE,mCACE,YrF03ZJ,CqF33ZE,uBACE,YrFk4ZJ,CqFn4ZE,2BACE,YrF04ZJ,CqF34ZE,UACE,YrF84ZJ,CqF/4ZE,sDACE,YrFk6ZJ,CqFn6ZE,0CACE,YrF06ZJ,CqF36ZE,4CACE,YrFk7ZJ,CqFn7ZE,cACE,YrFs7ZJ,CqFv7ZE,2CACE,YrFk8ZJ,CqFn8ZE,iBACE,YrF08ZJ,CqF38ZE,gDACE,YrF09ZJ,CqF39ZE,yBACE,YrFk+ZJ,CqFn+ZE,SACE,YrFs+ZJ,CqFv+ZE,aACE,YrF0+ZJ,CqF3+ZE,UACE,YrF8+ZJ,CqF/+ZE,gFACE,YrF8/ZJ,CqF//ZE,uCACE,YrF0gaJ,CqF3gaE,gCACE,YrFkhaJ,CqFnhaE,SACE,YrFshaJ,CqFvhaE,SACE,YrF0haJ,CqF3haE,wDACE,YrFsiaJ,CqFviaE,eACE,YrF0iaJ,CqF3iaE,+BACE,YrFkjaJ,CqFnjaE,8BACE,YrF0jaJ,CqF3jaE,WACE,YrF8jaJ,CqF/jaE,YACE,YrFkkaJ,CqFnkaE,QACE,YrFskaJ,CqFvkaE,SACE,YrF0kaJ,CqF3kaE,SACE,YrF8kaJ,CqF/kaE,aACE,YrFklaJ,CqFnlaE,UACE,YrFslaJ,CqFvlaE,0BACE,YrF8laJ,CqF/laE,SACE,YrFkmaJ,CqFnmaE,SACE,YrFsmaJ,CqFvmaE,WACE,YrF0maJ,CqF3maE,gBACE,YrF8maJ,CqF/maE,eACE,YrFknaJ,CqFnnaE,eACE,YrFsnaJ,CqFvnaE,iBACE,YrF0naJ,CqF3naE,gBACE,YrF8naJ,CqF/naE,kBACE,YrFkoaJ,CqFnoaE,0BACE,YrF0oaJ,CqF3oaE,uBACE,YrFkpaJ,CqFnpaE,WACE,YrFspaJ,CqFvpaE,2BACE,YrF8paJ,CqF/paE,UACE,YrFkqaJ,CqFnqaE,gCACE,YrF0qaJ,CqF3qaE,kCACE,YrFkraJ,CqFnraE,qBACE,YrF0raJ,CqF3raE,2BACE,YrFksaJ,CqFnsaE,yCACE,YrF0saJ,CqF3saE,oCACE,YrFktaJ,CqFntaE,oCACE,YrF0taJ,CqF3taE,aACE,YrF8taJ,CqF/taE,SACE,YrFkuaJ,CqFnuaE,UACE,YrFsuaJ,CqFvuaE,SACE,YrF0uaJ,CqF3uaE,YACE,YrF8uaJ,CqF/uaE,kCACE,YrFsvaJ,CqFvvaE,kCACE,YrF8vaJ,CqF/vaE,UACE,YrFkwaJ,CqFnwaE,iBACE,YrFswaJ,CqFvwaE,kBACE,YrF0waJ,CqF3waE,gCACE,YrFkxaJ,CqFnxaE,kCACE,YrF0xaJ,CqF3xaE,mDACE,YrFsyaJ,CqFvyaE,kCACE,YrF8yaJ,CqF/yaE,wCACE,YrFszaJ,CqFvzaE,gCACE,YrF8zaJ,CqF/zaE,eACE,YrFk0aJ,CqFn0aE,mBACE,YrF00aJ,CqF30aE,eACE,YrF80aJ,CqF/0aE,gBACE,YrFk1aJ,CqFn1aE,aACE,YrFs1aJ,CqFv1aE,eACE,YrF01aJ,CqF31aE,2BACE,YrFk2aJ,CqFn2aE,WACE,YrFs2aJ,CqFv2aE,aACE,YrF02aJ,CqF32aE,uBACE,YrFk3aJ,CqFn3aE,8CACE,YrF03aJ,CqF33aE,SACE,YrF83aJ,CqF/3aE,SACE,YrFk4aJ,CqFn4aE,SACE,YrFs4aJ,CqFv4aE,QACE,YrF04aJ,CqF34aE,cACE,YrF84aJ,CqF/4aE,8DACE,YrF05aJ,CqF35aE,UACE,YrF85aJ,CqF/5aE,mCACE,YrFs6aJ,CqFv6aE,uBACE,YrF86aJ,CqF/6aE,YACE,YrFk7aJ,CqFn7aE,WACE,YrFs7aJ,CqFv7aE,eACE,YrF07aJ,CqF37aE,iBACE,YrF87aJ,CqF/7aE,YACE,YrFk8aJ,CqFn8aE,oCACE,YrF08aJ,CqF38aE,4BACE,YrFk9aJ,CqFn9aE,gBACE,YrFs9aJ,CqFv9aE,gCACE,YrF89aJ,CqF/9aE,mCACE,YrFs+aJ,CqFv+aE,4BACE,YrF8+aJ,CqF/+aE,iBACE,YrFk/aJ,CqFn/aE,QACE,YrFs/aJ,CqFv/aE,mBACE,YrF8/aJ,CqF//aE,aACE,YrFkgbJ,CqFngbE,cACE,YrFsgbJ,CqFvgbE,0CACE,YrF8gbJ,CqF/gbE,6BACE,YrFshbJ,CqFvhbE,iDACE,YrF8hbJ,CqF/hbE,uCACE,YrFsibJ,CqFvibE,WACE,YrF0ibJ,CqF3ibE,WACE,YrF8ibJ,CqF/ibE,UACE,YrFkjbJ,CqFnjbE,UACE,YrFsjbJ,CqFvjbE,kCACE,YrF8jbJ,CqF/jbE,WACE,YrFkkbJ,CqFnkbE,oCACE,YrF0kbJ,CqF3kbE,iBACE,YrFklbJ,CqFnlbE,uBACE,YrF0lbJ,CqF3lbE,aACE,YrF8lbJ,CqF/lbE,gBACE,YrFkmbJ,CqFnmbE,qBACE,YrFsmbJ,CqFvmbE,oBACE,YrF0mbJ,CqF3mbE,kBACE,YrF8mbJ,CqF/mbE,oBACE,YrFknbJ,CqFnnbE,4CACE,YrF0nbJ,CqF3nbE,8CACE,YrFkobJ,CqFnobE,wCACE,YrF0obJ,CqF3obE,4CACE,YrFkpbJ,CqFnpbE,UACE,YrFspbJ,CqFvpbE,WACE,YrF0pbJ,CqF3pbE,yBACE,YrFkqbJ,CqFnqbE,WACE,YrFsqbJ,CqFvqbE,cACE,YrF0qbJ,CqF3qbE,sCACE,YrFkrbJ,CqFnrbE,UACE,YrFsrbJ,CqFvrbE,mBACE,YrF8rbJ,CqF/rbE,UACE,YrFksbJ,CqFnsbE,UACE,YrFssbJ,CqFvsbE,qBACE,YrF8sbJ,CqF/sbE,SACE,YrFktbJ,CqFntbE,cACE,YrFstbJ,CqFvtbE,yBACE,YrF8tbJ,CqF/tbE,WACE,YrFkubJ,CqFnubE,qBACE,YrF0ubJ,CqF3ubE,0BACE,YrFkvbJ,CqFnvbE,0CACE,YrF8vbJ,CqF/vbE,kBACE,YrFkwbJ,CqFnwbE,cACE,YrFswbJ,CqFvwbE,UACE,YrF0wbJ,CqF3wbE,yBACE,YrFkxbJ,CqFnxbE,UACE,YrFsxbJ,CqFvxbE,eACE,YrF0xbJ,CqF3xbE,eACE,YrF8xbJ,CqF/xbE,aACE,YrFkybJ,CqFnybE,eACE,YrFsybJ,CqFvybE,gBACE,YrF0ybJ,CqF3ybE,8BACE,YrFkzbJ,CqFnzbE,sBACE,YrF0zbJ,CqF3zbE,4BACE,YrFk0bJ,CqFn0bE,yBACE,YrF00bJ,CqF30bE,aACE,YrF80bJ,CqF/0bE,qGACE,YrFk2bJ,CqFn2bE,oBACE,YrF02bJ,CqF32bE,iBACE,YrFk3bJ,CqFn3bE,YACE,YrFs3bJ,CqFv3bE,aACE,YrF03bJ,CqF33bE,6BACE,YrFk4bJ,CqFn4bE,cACE,YrFs4bJ,CqFv4bE,wCACE,YrF84bJ,CqF/4bE,+DACE,YrF05bJ,CqF35bE,yDACE,YrFs6bJ,CqFv6bE,4BACE,YrF86bJ,CqF/6bE,gBACE,YrFk7bJ,CqFn7bE,aACE,YrFs7bJ,CqFv7bE,SACE,YrF07bJ,CqF37bE,0BACE,YrFk8bJ,CqFn8bE,gDACE,YrF88bJ,CqF/8bE,gCACE,YrFs9bJ,CqFv9bE,gCACE,YrF89bJ,CqF/9bE,gCACE,YrFs+bJ,CqFv+bE,4BACE,YrF8+bJ,CqF/+bE,0BACE,YrFs/bJ,CqFv/bE,gCACE,YrF8/bJ,CqF//bE,sCACE,YrFsgcJ,CqFvgcE,wCACE,YrF8gcJ,CqF/gcE,kCACE,YrFshcJ,CqFvhcE,sCACE,YrF8hcJ,CqF/hcE,eACE,YrFkicJ,CqFnicE,gBACE,YrFsicJ,CqFvicE,aACE,YrF0icJ,CqF3icE,eACE,YrF8icJ,CqF/icE,WACE,YrFkjcJ,CqFnjcE,kBACE,YrFsjcJ,CqFvjcE,kBACE,YrF0jcJ,CqF3jcE,kCACE,YrFkkcJ,CqFnkcE,oCACE,YrF0kcJ,CqF3kcE,YACE,YrF8kcJ,CqF/kcE,WACE,YrFklcJ,CqFnlcE,yBACE,YrF0lcJ,CqF3lcE,yBACE,YrFkmcJ,CqFnmcE,qBACE,YrF0mcJ,CqF3mcE,YACE,YrF8mcJ,CqF/mcE,aACE,YrFkncJ,CqFnncE,mBACE,YrFsncJ,CqFvncE,aACE,YrF0ncJ,CqF3ncE,SACE,YrF8ncJ,CqF/ncE,iCACE,YrFsocJ,CqFvocE,mBACE,YrF0ocJ,CqF3ocE,SACE,YrF8ocJ,CqF/ocE,gBACE,YrFkpcJ,CqFnpcE,2DACE,YrFkqcJ,CqFnqcE,SACE,YrFsqcJ,CqFvqcE,gBACE,YrF0qcJ,CqF3qcE,cACE,YrF8qcJ,CqF/qcE,WACE,YrFkrcJ,CqFnrcE,iBACE,YrFsrcJ,CqFvrcE,eACE,YrF0rcJ,CqF3rcE,qBACE,YrF8rcJ,CqF/rcE,4BACE,YrFsscJ,CqFvscE,aACE,YrF0scJ,CqF3scE,sBACE,YrF8scJ,CqF/scE,WACE,YrFktcJ,CqFntcE,gDACE,YrF0tcJ,CqF3tcE,kDACE,YrFkucJ,CqFnucE,4CACE,YrF0ucJ,CqF3ucE,gDACE,YrFkvcJ,CqFnvcE,WACE,YrFsvcJ,CqFvvcE,kCACE,YrF8vcJ,CqF/vcE,aACE,YrFkwcJ,CqFnwcE,4BACE,YrF0wcJ,CqF3wcE,qCACE,YrFkxcJ,CqFnxcE,8BACE,YrF0xcJ,CqF3xcE,gCACE,YrFkycJ,CqFnycE,WACE,YrFsycJ,CqFvycE,kCACE,YrF8ycJ,CqF/ycE,+BACE,YrFszcJ,CqFvzcE,mCACE,YrF8zcJ,CqF/zcE,kCACE,YrFs0cJ,CqFv0cE,gDACE,YrFk1cJ,CqFn1cE,mDACE,YrF01cJ,CqF31cE,uCACE,YrFk2cJ,CqFn2cE,YACE,YrFs2cJ,CqFv2cE,4CACE,YrF82cJ,CqF/2cE,wCACE,YrFs3cJ,CqFv3cE,8CACE,YrF83cJ,CqF/3cE,+BACE,YrF04cJ,CqF34cE,yCACE,YrFs5cJ,CqFv5cE,yBACE,YrF85cJ,CqF/5cE,6CACE,YrFk7cJ,CqFn7cE,4CACE,YrFk8cJ,CqFn8cE,6BACE,YrF88cJ,CqF/8cE,SACE,YrFk9cJ,CqFn9cE,0CACE,YrF89cJ,CqF/9cE,0DACE,YrF0+cJ,CqF3+cE,mCACE,YrFk/cJ,CqFn/cE,mEACE,YrF8/cJ,CqF//cE,2CACE,YrFsgdJ,CqFvgdE,8DACE,YrFkhdJ,CqFnhdE,qCACE,YrF0hdJ,CqF3hdE,cACE,YrF8hdJ,CqF/hdE,gBACE,YrFkidJ,CqFnidE,wCACE,YrF0idJ,CqF3idE,oCACE,YrFkjdJ,CqFnjdE,wCACE,YrF0jdJ,CqF3jdE,0CACE,YrFkkdJ,CqFnkdE,4BACE,YrF0kdJ,CqF3kdE,oBACE,YrFkldJ,CqFnldE,QACE,YrFsldJ,CqFvldE,SACE,YrF0ldJ,CqF3ldE,4BACE,YrFkmdJ,CqFnmdE,QACE,YrFsmdJ,CqFvmdE,4CACE,YrF8mdJ,CqF/mdE,8BACE,YrFsndJ,CqFvndE,eACE,YrF0ndJ,CqF3ndE,cACE,YrF8ndJ,CqF/ndE,oCACE,YrFsodJ,CqFvodE,wCACE,YrF8odJ,CqF/odE,wEACE,YrFkqdJ,CqFnqdE,oCACE,YrF0qdJ,CqF3qdE,aACE,YrF8qdJ,CqF/qdE,QACE,YrFkrdJ,CqFnrdE,aACE,YrFsrdJ,CqFvrdE,UACE,YrF0rdJ,CqF3rdE,QACE,YrF8rdJ,CqF/rdE,SACE,YrFksdJ,CqFnsdE,UACE,YrFssdJ,CqFvsdE,YACE,YrF0sdJ,CqF3sdE,uBACE,YrFktdJ,CqFntdE,iBACE,YrF0tdJ,CqF3tdE,SACE,YrF8tdJ,CqF/tdE,aACE,YrFkudJ,CqFnudE,aACE,YrFsudJ,CqFvudE,cACE,YrF0udJ,CqF3udE,eACE,YrF8udJ,CqF/udE,oBACE,YrFkvdJ,CqFnvdE,eACE,YrFsvdJ,CqFvvdE,iCACE,YrF8vdJ,CqF/vdE,eACE,YrFkwdJ,CqFnwdE,eACE,YrFswdJ,CqFvwdE,cACE,YrF0wdJ,CqF3wdE,cACE,YrF8wdJ,CqF/wdE,iBACE,YrFkxdJ,CqFnxdE,gBACE,YrFsxdJ,CqFvxdE,kCACE,YrF8xdJ,CqF/xdE,uBACE,YrFsydJ,CqFvydE,cACE,YrF0ydJ,CqF3ydE,0BACE,YrFkzdJ,CqFnzdE,8BACE,YrF0zdJ,CqF3zdE,4CACE,YrFk0dJ,CqFn0dE,SACE,YrFs0dJ,CqFv0dE,2CACE,YrFk1dJ,CqFn1dE,qBACE,YrF01dJ,CqF31dE,eACE,YrF81dJ,CqF/1dE,SACE,YrFk2dJ,CqFn2dE,cACE,YrFs2dJ,CqFv2dE,oCACE,YrFk3dJ,CqFn3dE,eACE,YrFs3dJ,CqFv3dE,eACE,YrF03dJ,CqF33dE,UACE,YrF83dJ,CqF/3dE,cACE,YrFk4dJ,CqFn4dE,qDACE,YrF84dJ,CqF/4dE,+BACE,YrFs5dJ,CqFv5dE,4CACE,YrFk6dJ,CqFn6dE,8BACE,YrF06dJ,CqF36dE,4BACE,YrFk7dJ,CqFn7dE,8BACE,YrF07dJ,CqF37dE,eACE,YrF87dJ,CqF/7dE,cACE,YrFk8dJ,CqFn8dE,YACE,YrFs8dJ,CqFv8dE,QACE,YrF08dJ,CqF38dE,sBACE,YrF88dJ,CqF/8dE,8DACE,YrFk+dJ,CqFn+dE,cACE,YrFs+dJ,CqFv+dE,oBACE,YrF0+dJ,CqF3+dE,YACE,YrF8+dJ,CqF/+dE,SACE,YrFk/dJ,CqFn/dE,gBACE,YrFs/dJ,CqFv/dE,eACE,YrF0/dJ,CqF3/dE,gBACE,YrF8/dJ,CqF//dE,8BACE,YrFsgeJ,CqFvgeE,UACE,YrF0geJ,CqF3geE,SACE,YrF8geJ,CqF/geE,YACE,YrFkheJ,CqFnheE,mBACE,YrFsheJ,CqFvheE,oCACE,YrF8heJ,CqF/heE,iBACE,YrFkieJ,CqFnieE,gBACE,YrFsieJ,CqFvieE,eACE,YrF0ieJ,CqF3ieE,gBACE,YrF8ieJ,CqF/ieE,qCACE,YrFsjeJ,CqFvjeE,wCACE,YrF8jeJ,CqF/jeE,WACE,YrFkkeJ,CqFnkeE,eACE,YrFskeJ,CqFvkeE,WACE,YrF0keJ,CqF3keE,cACE,YrF8keJ,CqF/keE,8BACE,YrFsleJ,CqFvleE,QACE,YrF0leJ,CqF3leE,UACE,YrF8leJ,CqF/leE,4BACE,YrFsmeJ,CqFvmeE,2CACE,YrFkneJ,CqFnneE,yCACE,YrF0neJ,CqF3neE,+BACE,YrFkoeJ,CqFnoeE,kCACE,YrF0oeJ,CqF3oeE,gCACE,YrFkpeJ,CqFnpeE,oCACE,YrF0peJ,CqF3peE,aACE,YrF8peJ,CqF/peE,iBACE,YrFkqeJ,CqFnqeE,mBACE,YrFsqeJ,CqFvqeE,gCACE,YrF8qeJ,CqF/qeE,UACE,YrFkreJ,CqFnreE,qCACE,YrF0reJ,CqF3reE,oCACE,YrFkseJ,CqFnseE,mCACE,YrF0seJ,CqF3seE,kCACE,YrFkteJ,CqFnteE,kCACE,YrF0teJ,CqF3teE,iCACE,YrFkueJ,CqFnueE,wBACE,YrF0ueJ,CqF3ueE,kBACE,YrF8ueJ,CqF/ueE,gBACE,YrFkveJ,CqFnveE,eACE,YrFsveJ,CqFvveE,iBACE,YrF0veJ,CqF3veE,eACE,YrF8veJ,CqF/veE,cACE,YrFkweJ,CqFnweE,eACE,YrFsweJ,CqFvweE,iCACE,YrFkxeJ,CqFnxeE,kBACE,YrFsxeJ,CqFvxeE,mBACE,YrF0xeJ,CqF3xeE,sCACE,YrFkyeJ,CqFnyeE,mBACE,YrFsyeJ,CqFvyeE,aACE,YrF0yeJ,CqF3yeE,YACE,YrF8yeJ,CqF/yeE,6BACE,YrFszeJ,CqFvzeE,QACE,YrF0zeJ,CqF3zeE,4BACE,YrFk0eJ,CqFn0eE,kCACE,YrF00eJ,CqF30eE,gCACE,YrFk1eJ,CqFn1eE,kCACE,YrF01eJ,CqF31eE,wCACE,YrFk2eJ,CqFn2eE,qBACE,YrFs2eJ,CqFv2eE,uCACE,YrF82eJ,CqF/2eE,sBACE,YrFk3eJ,CqFn3eE,0CACE,YrF03eJ,CqF33eE,YACE,YrF83eJ,CqF/3eE,+CACE,YrFs4eJ,CqFv4eE,sIACE,YrFs5eJ,CqFv5eE,uDACE,YrFs6eJ,CqFv6eE,wCACE,YrFk7eJ,CqFn7eE,kCACE,YrF07eJ,CqF37eE,qDACE,YrFk9eJ,CqFn9eE,kBACE,YrFs9eJ,CqFv9eE,kCACE,YrF89eJ,CqF/9eE,4CACE,YrF0+eJ,CqF3+eE,gCACE,YrFk/eJ,CqFn/eE,aACE,YrFs/eJ,CqFv/eE,gCACE,YrF8/eJ,CqF//eE,8EACE,YrF8gfJ,CqF/gfE,kGACE,YrF8hfJ,CqF/hfE,8EACE,YrF8ifJ,CqF/ifE,oFACE,YrF8jfJ,CqF/jfE,gFACE,YrF8kfJ,CqF/kfE,WACE,YrFklfJ,CqFnlfE,qBACE,YrF0lfJ,CqF3lfE,YACE,YrF8lfJ,CqF/lfE,oBACE,YrFkmfJ,CqFnmfE,oBACE,YrFsmfJ,CqFvmfE,mBACE,YrF0mfJ,CqF3mfE,mDACE,YrFsnfJ,CqFvnfE,cACE,YrF0nfJ,CqF3nfE,cACE,YrF8nfJ,CqF/nfE,4BACE,YrFsofJ,CqFvofE,yBACE,YrF8ofJ,CqF/ofE,iEACE,YrF8pfJ,CqF/pfE,4BACE,YrFsqfJ,CqFvqfE,wBACE,YrF8qfJ,CqF/qfE,cACE,YrFkrfJ,CqFnrfE,wCACE,YrF0rfJ,CqF3rfE,qCACE,YrFksfJ,CqFnsfE,iDACE,YrF8sfJ,CqF/sfE,QACE,YrFktfJ,CqFntfE,WACE,YrFstfJ,CqFvtfE,0BACE,YrF8tfJ,CqF/tfE,QACE,YrFkufJ,CqFnufE,yBACE,YrF0ufJ,CqF3ufE,YACE,YrF8ufJ,CqF/ufE,sCACE,YrFsvfJ,CqFvvfE,sCACE,YrF8vfJ,CqF/vfE,wCACE,YrFswfJ,CqFvwfE,kCACE,YrF8wfJ,CqF/wfE,YACE,YrFkxfJ,CqFnxfE,2BACE,YrF0xfJ,CqF3xfE,mCACE,YrFkyfJ,CqFnyfE,cACE,YrFsyfJ,CqFvyfE,gCACE,YrF8yfJ,CqF/yfE,6BACE,YrFszfJ,CqFvzfE,gBACE,YrF0zfJ,CqF3zfE,0CACE,YrFk0fJ,CqFn0fE,0CACE,YrF00fJ,CqF30fE,4CACE,YrFk1fJ,CqFn1fE,sCACE,YrF01fJ,CqF31fE,+CACE,YrFk2fJ,CqFn2fE,iDACE,YrF02fJ,CqF32fE,gCACE,YrFk3fJ,CqFn3fE,WACE,YrFs3fJ,CqFv3fE,gBACE,YrF03fJ,CqF33fE,eACE,YrF83fJ,CqF/3fE,4BACE,YrFs4fJ,CqFv4fE,QACE,YrF04fJ,CqF34fE,iCACE,YrFk5fJ,CqFn5fE,6BACE,YrF05fJ,CqF35fE,cACE,YrF85fJ,CqF/5fE,oCACE,YrFs6fJ,CqFv6fE,wCACE,YrF86fJ,CqF/6fE,wCACE,YrFs7fJ,CqFv7fE,+CACE,YrFk8fJ,CqFn8fE,yCACE,YrF08fJ,CqF38fE,oCACE,YrFk9fJ,CqFn9fE,gBACE,YrFs9fJ,CqFv9fE,gCACE,YrF89fJ,CqF/9fE,yBACE,YrFs+fJ,CqFv+fE,iCACE,YrF8+fJ,CqF/+fE,wCACE,YrFs/fJ,CqFv/fE,8BACE,YrF8/fJ,CqF//fE,iCACE,YrFsggBJ,CqFvggBE,6EACE,YrFshgBJ,CqFvhgBE,sDACE,YrF8hgBJ,CqF/hgBE,sDACE,YrFsigBJ,CqFvigBE,sBACE,YrF0igBJ,CqF3igBE,+BACE,YrFkjgBJ,CqFnjgBE,mCACE,YrF0jgBJ,CqF3jgBE,iBACE,YrF8jgBJ,CqF/jgBE,UACE,YrFkkgBJ,CqFnkgBE,iBACE,YrFskgBJ,CqFvkgBE,gBACE,YrF0kgBJ,CqF3kgBE,eACE,YrF8kgBJ,CqF/kgBE,iBACE,YrFklgBJ,CqFnlgBE,eACE,YrFslgBJ,CqFvlgBE,gBACE,YrF0lgBJ,CqF3lgBE,eACE,YrF8lgBJ,CqF/lgBE,aACE,YrFkmgBJ,CqFnmgBE,+BACE,YrF0mgBJ,CqF3mgBE,gCACE,YrFkngBJ,CqFnngBE,gBACE,YrFsngBJ,CqFvngBE,sDACE,YrFkogBJ,CqFnogBE,gBACE,YrFsogBJ,CqFvogBE,wEACE,YrFkpgBJ,CqFnpgBE,mCACE,YrF0pgBJ,CqF3pgBE,4BACE,YrFkqgBJ,CqFnqgBE,yBACE,YrF0qgBJ,CqF3qgBE,QACE,YrF8qgBJ,CqF/qgBE,0CACE,YrF0rgBJ,CqF3rgBE,sBACE,YrF8rgBJ,CqF/rgBE,+BACE,YrFssgBJ,CqFvsgBE,aACE,YrF0sgBJ,CqF3sgBE,oBACE,YrF8sgBJ,CqF/sgBE,mBACE,YrFktgBJ,CqFntgBE,wCACE,YrF0tgBJ,CqF3tgBE,QACE,YrF8tgBJ,CqF/tgBE,wBACE,YrFsugBJ,CqFvugBE,mCACE,YrF8ugBJ,CqF/ugBE,iBACE,YrFkvgBJ,CqFnvgBE,uCACE,YrF0vgBJ,CqF3vgBE,8BACE,YrFkwgBJ,CqFnwgBE,iCACE,YrF0wgBJ,CqF3wgBE,iCACE,YrFkxgBJ,CqFnxgBE,kBACE,YrFsxgBJ,CqFvxgBE,WACE,YrF0xgBJ,CqF3xgBE,UACE,YrF8xgBJ,CqF/xgBE,wBACE,YrFkygBJ,CqFnygBE,4DACE,YrF0ygBJ,CqF3ygBE,6BACE,YrFkzgBJ,CqFnzgBE,iCACE,YrF0zgBJ,CqF3zgBE,YACE,YrF8zgBJ,CqF/zgBE,YACE,YrFk0gBJ,CqFn0gBE,YACE,YrFs0gBJ,CqFv0gBE,gBACE,YrF00gBJ,CqF30gBE,SACE,YrF80gBJ,CqF/0gBE,UACE,YrFk1gBJ,CqFn1gBE,cACE,YrFs1gBJ,CqFv1gBE,4BACE,YrF81gBJ,CqF/1gBE,UACE,YrFk2gBJ,CqFn2gBE,aACE,YrFs2gBJ,CqFv2gBE,gCACE,YrF82gBJ,CqF/2gBE,kBACE,YrFk3gBJ,CqFn3gBE,UACE,YrFs3gBJ,CqFv3gBE,qCACE,YrF83gBJ,CqF/3gBE,SACE,YrFk4gBJ,CqFn4gBE,iBACE,YrFs4gBJ,CqFv4gBE,uBACE,YrF04gBJ,CqF34gBE,6CACE,YrFk5gBJ,CqFn5gBE,gDACE,YrF05gBJ,CqF35gBE,kBACE,YrF85gBJ,CqF/5gBE,sCACE,YrFs6gBJ,CqFv6gBE,kBACE,YrF06gBJ,CqF36gBE,sCACE,YrFk7gBJ,CqFn7gBE,eACE,YrFs7gBJ,CqFv7gBE,WACE,YrF07gBJ,CqF37gBE,UACE,YrF87gBJ,CqF/7gBE,wBACE,YrFs8gBJ,CqFv8gBE,0BACE,YrF88gBJ,CqF/8gBE,mCACE,YrFs9gBJ,CqFv9gBE,SACE,YrF09gBJ,CqF39gBE,qCACE,YrFk+gBJ,CqFn+gBE,iBACE,YrFs+gBJ,CqFv+gBE,gBACE,YrF0+gBJ,CqF3+gBE,eACE,YrF8+gBJ,CqF/+gBE,mBACE,YrFk/gBJ,CqFn/gBE,eACE,YrFs/gBJ,CqFv/gBE,eACE,YrF0/gBJ,CqF3/gBE,2BACE,YrFkghBJ,CqFnghBE,2BACE,YrF0ghBJ,CqF3ghBE,gCACE,YrFkhhBJ,CqFnhhBE,kBACE,YrFshhBJ,CqFvhhBE,cACE,YrF0hhBJ,CqF3hhBE,eACE,YrF8hhBJ,CqF/hhBE,eACE,YrFkihBJ,CqFnihBE,gBACE,YrFsihBJ,CqFvihBE,uDACE,YrFkjhBJ,CqFnjhBE,aACE,YrFsjhBJ,CqFvjhBE,aACE,YrF0jhBJ,CqF3jhBE,6BACE,YrFkkhBJ,CqFnkhBE,4CACE,YrF0khBJ,CqF3khBE,kDACE,YrFklhBJ,CqFnlhBE,YACE,YrFslhBJ,CqFvlhBE,cACE,YrF0lhBJ,CqF3lhBE,wCACE,YrFkmhBJ,CqFnmhBE,UACE,YrFsmhBJ,CqFvmhBE,8BACE,YrF8mhBJ,CqF/mhBE,2CACE,YrFsnhBJ,CqFvnhBE,WACE,YrF0nhBJ,CqF3nhBE,UACE,YrF8nhBJ,CqF/nhBE,iBACE,YrFkohBJ,CqFnohBE,SACE,YrFsohBJ,CqFvohBE,UACE,YrF0ohBJ,CqF3ohBE,SACE,YrF8ohBJ,CqF/ohBE,cACE,YrFkphBJ,CqFnphBE,cACE,YrFsphBJ,CqFvphBE,aACE,YrF0phBJ,CqF3phBE,aACE,YrF8phBJ,CqF/phBE,eACE,YrFkqhBJ,CqFnqhBE,aACE,YrFsqhBJ,CqFvqhBE,WACE,YrF0qhBJ,CqF3qhBE,gBACE,YrF8qhBJ,CqF/qhBE,cACE,YrFkrhBJ,CqFnrhBE,YACE,YrFsrhBJ,CqFvrhBE,SACE,YrF0rhBJ,CqF3rhBE,aACE,YrF8rhBJ,CqF/rhBE,YACE,YrFkshBJ,CqFnshBE,uBACE,YrFsshBJ,CqFvshBE,eACE,YrF0shBJ,CqF3shBE,aACE,YrF8shBJ,CqF/shBE,cACE,YrFkthBJ,CqFnthBE,oBACE,YrFsthBJ,CqFvthBE,WACE,YrF0thBJ,CqF3thBE,oDACE,YrFkuhBJ,CqFnuhBE,oBACE,YrFsuhBJ,CqFvuhBE,8CACE,YrF8uhBJ,CqF/uhBE,gBACE,YrFkvhBJ,CqFnvhBE,2CACE,YrF0vhBJ,CqF3vhBE,cACE,YrF8vhBJ,CqF/vhBE,YACE,YrFkwhBJ,CqFnwhBE,+BACE,YrF0whBJ,CqF3whBE,wCACE,YrFkxhBJ,CqFnxhBE,YACE,YrFsxhBJ,CqFvxhBE,UACE,YrF0xhBJ,CqF3xhBE,UACE,YrF8xhBJ,CqF/xhBE,mBACE,YrFkyhBJ,CqFnyhBE,qBACE,YrFsyhBJ,CqFvyhBE,mBACE,YrF0yhBJ,CqF3yhBE,WACE,YrF8yhBJ,CqF/yhBE,gBACE,YrFkzhBJ,CqFnzhBE,gBACE,YrFszhBJ,CqFvzhBE,UACE,YrF0zhBJ,CqF3zhBE,gCACE,YrFk0hBJ,CqFn0hBE,UACE,YrFs0hBJ,CqFv0hBE,uBACE,YrF80hBJ,CqF/0hBE,0CACE,YrF01hBJ,CqF31hBE,gBACE,YrF81hBJ,CqF/1hBE,YACE,YrFk2hBJ,CqFn2hBE,iCACE,YrF82hBJ,CqF/2hBE,+BACE,YrFs3hBJ,CqFv3hBE,WACE,YrF03hBJ,CqF33hBE,yBACE,YrFk4hBJ,CqFn4hBE,YACE,YrFs4hBJ,CqFv4hBE,yBACE,YrF84hBJ,CqF/4hBE,UACE,YrFk5hBJ,CqFn5hBE,8BACE,YrF05hBJ,CqF35hBE,iBACE,YrF85hBJ,CqF/5hBE,SACE,YrFk6hBJ,CqFn6hBE,UACE,YrFs6hBJ,CqFv6hBE,2BACE,YrF86hBJ,CqF/6hBE,aACE,YrFk7hBJ,CqFn7hBE,iBACE,YrFs7hBJ,CqFv7hBE,sCACE,YrF87hBJ,CqF/7hBE,sCACE,YrFs8hBJ,CqFv8hBE,WACE,YrF08hBJ,CqF38hBE,gBACE,YrF88hBJ,CqF/8hBE,6BACE,YrFs9hBJ,CqFv9hBE,8CACE,YrF89hBJ,CqF/9hBE,yBACE,YrFs+hBJ,CqFv+hBE,0CACE,YrF8+hBJ,CqF/+hBE,SACE,YrFk/hBJ,CqFn/hBE,kBACE,YrFs/hBJ,CqFv/hBE,oCACE,YrF8/hBJ,CqF//hBE,kBACE,YrFkgiBJ,CqFngiBE,sCACE,YrF0giBJ,CqF3giBE,0CACE,YrFkhiBJ,CqFnhiBE,wCACE,YrF0hiBJ,CqF3hiBE,iBACE,YrF8hiBJ,CqF/hiBE,wBACE,YrFkiiBJ,CqFniiBE,sBACE,YrFsiiBJ,CqFviiBE,mBACE,YrF0iiBJ,CqF3iiBE,kCACE,YrFkjiBJ,CqFnjiBE,SACE,YrFsjiBJ,CqFvjiBE,cACE,YrF0jiBJ,CqF3jiBE,gBACE,YrF8jiBJ,CqF/jiBE,SACE,YrFkkiBJ,CqFnkiBE,6BACE,YrF0kiBJ,CqF3kiBE,mCACE,YrFkliBJ,CqFnliBE,wCACE,YrF0liBJ,CqF3liBE,kCACE,YrFkmiBJ,CqFnmiBE,kEACE,YrFkniBJ,CqFnniBE,8BACE,YrF0niBJ,CqF3niBE,6BACE,YrFkoiBJ,CqFnoiBE,uBACE,YrF0oiBJ,CqF3oiBE,gCACE,YrFkpiBJ,CqFnpiBE,iCACE,YrF0piBJ,CqF3piBE,6CACE,YrFkqiBJ,CqFnqiBE,qCACE,YrF0qiBJ,CqF3qiBE,qCACE,YrFkriBJ,CqFnriBE,iDACE,YrF0riBJ,CqF3riBE,mCACE,YrFksiBJ,CqFnsiBE,mCACE,YrF0siBJ,CqF3siBE,qCACE,YrFktiBJ,CqFntiBE,mDACE,YrF0tiBJ,CqF3tiBE,+CACE,YrFkuiBJ,CqFnuiBE,iCACE,YrF0uiBJ,CqF3uiBE,iDACE,YrFsviBJ,CqFvviBE,oCACE,YrF8viBJ,CqF/viBE,YACE,YrFkwiBJ,CqFnwiBE,gBACE,YrFswiBJ,CqFvwiBE,+BACE,YrF8wiBJ,CqF/wiBE,UACE,YrFkxiBJ,CqFnxiBE,UACE,YrFsxiBJ,CqFvxiBE,uBACE,YrF8xiBJ,CqF/xiBE,iCACE,YrFsyiBJ,CqFvyiBE,6CACE,YrF8yiBJ,CqF/yiBE,yBACE,YrFsziBJ,CqFvziBE,mCACE,YrF8ziBJ,CqF/ziBE,uCACE,YrFs0iBJ,CqFv0iBE,mCACE,YrF80iBJ,CqF/0iBE,2CACE,YrFs1iBJ,CqFv1iBE,gCACE,YrF81iBJ,CqF/1iBE,wCACE,YrFs2iBJ,CqFv2iBE,WACE,YrF02iBJ,CqF32iBE,UACE,YrF82iBJ,CqF/2iBE,iCACE,YrFs3iBJ,CqFv3iBE,2CACE,YrF83iBJ,CqF/3iBE,aACE,YrFk4iBJ,CqFn4iBE,kBACE,YrFs4iBJ,CqFv4iBE,iBACE,YrF04iBJ,CqF34iBE,aACE,YrF84iBJ,CqF/4iBE,cACE,YrFk5iBJ,CqFn5iBE,YACE,YrFs5iBJ,CqFv5iBE,+BACE,YrF85iBJ,CqF/5iBE,kBACE,YrFk6iBJ,CqFn6iBE,oBACE,YrFs6iBJ,CqFv6iBE,iBACE,YrF06iBJ,CqF36iBE,6BACE,YrFk7iBJ,CqFn7iBE,+BACE,YrF07iBJ,CqF37iBE,gCACE,YrFk8iBJ,CqFn8iBE,cACE,YrFs8iBJ,CqFv8iBE,mCACE,YrF88iBJ,CqF/8iBE,gBACE,YrFk9iBJ,CqFn9iBE,QACE,YrFs9iBJ,CqFv9iBE,YACE,YrF09iBJ,CqF39iBE,cACE,YrF89iBJ,CqF/9iBE,UACE,YrFk+iBJ,CqFn+iBE,uCACE,YrF0+iBJ,CqF3+iBE,qBACE,YrF8+iBJ,CqF/+iBE,+BACE,YrFs/iBJ,CqFv/iBE,eACE,YrF0/iBJ,CqF3/iBE,gCACE,YrFkgjBJ,CqFngjBE,oDACE,YrF8gjBJ,CqF/gjBE,iCACE,YrFshjBJ,CqFvhjBE,yBACE,YrF8hjBJ,CqF/hjBE,UACE,YrFkijBJ,CqFnijBE,mBACE,YrFsijBJ,CqFvijBE,mBACE,YrF0ijBJ,CqF3ijBE,wCACE,YrFkjjBJ,CqFnjjBE,yCACE,YrF0jjBJ,CqF3jjBE,8BACE,YrFkkjBJ,CqFnkjBE,SACE,YrFskjBJ,CqFvkjBE,SACE,YrF0kjBJ,CqF3kjBE,qCACE,YrFkljBJ,CqFnljBE,UACE,YrFsljBJ,CqFvljBE,yBACE,YrF8ljBJ,CqF/ljBE,gCACE,YrFsmjBJ,CqFvmjBE,4BACE,YrF8mjBJ,CqF/mjBE,aACE,YrFknjBJ,CqFnnjBE,qBACE,YrFsnjBJ,CqFvnjBE,sCACE,YrF8njBJ,CqF/njBE,oCACE,YrFsojBJ,CqFvojBE,gBACE,YrF0ojBJ,CqF3ojBE,gBACE,YrF8ojBJ,CqF/ojBE,qCACE,YrFspjBJ,CqFvpjBE,UACE,YrF0pjBJ,CqF3pjBE,eACE,YrF8pjBJ,CqF/pjBE,YACE,YrFkqjBJ,CqFnqjBE,SACE,YrFsqjBJ,CqFvqjBE,sCACE,YrF8qjBJ,CqF/qjBE,iBACE,YrFkrjBJ,CqFnrjBE,iEACE,YrFksjBJ,CqFnsjBE,0DACE,YrF8sjBJ,CqF/sjBE,6DACE,YrF0tjBJ,CqF3tjBE,yDACE,YrFsujBJ,CqFvujBE,UACE,YrF0ujBJ,CqF3ujBE,eACE,YrF8ujBJ,CqF/ujBE,oCACE,YrFsvjBJ,CqFvvjBE,kBACE,YrF0vjBJ,CqF3vjBE,kBACE,YrF8vjBJ,CqF/vjBE,iBACE,YrFkwjBJ,CqFnwjBE,wBACE,YrF0wjBJ,CqF3wjBE,SACE,YrF8wjBJ,CqF/wjBE,yBACE,YrFsxjBJ,CqFvxjBE,sCACE,YrF8xjBJ,CqF/xjBE,SACE,YrFkyjBJ,CqFnyjBE,mBACE,YrFsyjBJ,CqFvyjBE,oBACE,YrF0yjBJ,CqF3yjBE,UACE,YrF8yjBJ,CqF/yjBE,iBACE,YrFkzjBJ,CqFnzjBE,uBACE,YrFszjBJ,CqFvzjBE,iBACE,YrF0zjBJ,CqF3zjBE,gBACE,YrF8zjBJ,CqF/zjBE,2CACE,YrFs0jBJ,CqFv0jBE,YACE,YrF00jBJ,CqF30jBE,UACE,YrF80jBJ,CqF/0jBE,qBACE,YrFs1jBJ,CqFv1jBE,SACE,YrF01jBJ,CqF31jBE,2CACE,YrFk2jBJ,CqFn2jBE,UACE,YrFs2jBJ,CqFv2jBE,WACE,YrF02jBJ,CqF32jBE,aACE,YrF82jBJ,CqF/2jBE,iCACE,YrFs3jBJ,CqFv3jBE,YACE,YrF03jBJ,CqF33jBE,WACE,YrF83jBJ,CqF/3jBE,OACE,YrFk4jBJ,CqFn4jBE,gDACE,YrF04jBJ,CqF34jBE,UACE,YrF84jBJ,CqF/4jBE,qBACE,YrFk5jBJ,CqFn5jBE,kCACE,YrF05jBJ,CqF35jBE,sCACE,YrFk6jBJ,CqFn6jBE,4BACE,YrF06jBJ,CqF36jBE,oCACE,YrFk7jBJ,CqFn7jBE,yBACE,YrF07jBJ,CqF37jBE,8CACE,YrFk8jBJ,CqFn8jBE,kDACE,YrF08jBJ,CqF38jBE,UACE,YrF88jBJ,CqF/8jBE,6CACE,YrFs9jBJ,CqFv9jBE,sBACE,YrF09jBJ,CqF39jBE,kBACE,YrF89jBJ,CqF/9jBE,cACE,YrFk+jBJ,CqFn+jBE,2BACE,YrF0+jBJ,CqF3+jBE,eACE,YrF8+jBJ,CqF/+jBE,WACE,YrFk/jBJ,CqFn/jBE,6BACE,YrF0/jBJ,CqF3/jBE,kDACE,YrFsgkBJ,CqFvgkBE,aACE,YrF0gkBJ,CqF3gkBE,kBACE,YrF8gkBJ,CqF/gkBE,6BACE,YrFshkBJ,CqFvhkBE,eACE,YrF0hkBJ,CqF3hkBE,QACE,YrF8hkBJ,CqF/hkBE,UACE,YrFkikBJ,CqFnikBE,eACE,YrFsikBJ,CqFvikBE,cACE,YrF0ikBJ,CqF3ikBE,QACE,YrF8ikBJ,CqF/ikBE,aACE,YrFkjkBJ,CqFnjkBE,YACE,YrFsjkBJ,CqFvjkBE,QACE,YrF0jkBJ,CqF3jkBE,WACE,YrF8jkBJ,CqF/jkBE,mBACE,YrFkkkBJ,CqFnkkBE,YACE,YrFskkBJ,CqFvkkBE,aACE,YrF0kkBJ,CqF3kkBE,8BACE,YrFklkBJ,CqFnlkBE,UACE,YrFslkBJ,CqFvlkBE,WACE,YrF0lkBJ,CqF3lkBE,aACE,YrF8lkBJ,CqF/lkBE,eACE,YrFkmkBJ,CqFnmkBE,6BACE,YrF0mkBJ,CqF3mkBE,UACE,YrF8mkBJ,CqF/mkBE,UACE,YrFknkBJ,CqFnnkBE,yCACE,YrF0nkBJ,CqF3nkBE,6BACE,YrFkokBJ,CqFnokBE,SACE,YrFsokBJ,CqFvokBE,aACE,YrF0okBJ,CqF3okBE,kBACE,YrF8okBJ,CqF/okBE,UACE,YrFkpkBJ,CqFnpkBE,SACE,YrFspkBJ,CqFvpkBE,+BACE,YrF8pkBJ,CqF/pkBE,WACE,YrFkqkBJ,CqFnqkBE,qBACE,YrFsqkBJ,CqFvqkBE,UACE,YrF0qkBJ,CqF3qkBE,WACE,YrF8qkBJ,CqF/qkBE,6DACE,YrF0rkBJ,CqF3rkBE,YACE,YrF8rkBJ,CqF/rkBE,iBACE,YrFkskBJ,CqFnskBE,iBACE,YrFsskBJ,CqFvskBE,kBACE,YrF0skBJ,CqF3skBE,SACE,YrF8skBJ,CqF/skBE,gBACE,YrFktkBJ,CqFntkBE,mBACE,YrFstkBJ,CqFvtkBE,oBACE,YrF0tkBJ,CqF3tkBE,eACE,YrF8tkBJ,CqF/tkBE,wBACE,YrFkukBJ,CqFnukBE,mBACE,YrFsukBJ,CqFvukBE,aACE,YrF0ukBJ,CqF3ukBE,aACE,YrF8ukBJ,CqF/ukBE,cACE,YrFkvkBJ,CqFnvkBE,mCACE,YrF0vkBJ,CqF3vkBE,WACE,YrF8vkBJ,CqF/vkBE,iBACE,YrFkwkBJ,CqFnwkBE,2BACE,YrF0wkBJ,CqF3wkBE,YACE,YrF8wkBJ,CqF/wkBE,eACE,YrFkxkBJ,CqFnxkBE,SACE,YrFsxkBJ,CqFvxkBE,qBACE,YrF0xkBJ,CqF3xkBE,oBACE,YrF8xkBJ,CqF/xkBE,gCACE,YrFsykBJ,CqFvykBE,YACE,YrF0ykBJ,CqF3ykBE,YACE,YrF8ykBJ,CqF/ykBE,+BACE,YrFszkBJ,CqFvzkBE,UACE,YrF0zkBJ,CqF3zkBE,SACE,YrF8zkBJ,CqF/zkBE,oCACE,YrFs0kBJ,CqFv0kBE,cACE,YrF00kBJ,CqF30kBE,SACE,YrF80kBJ,CqF/0kBE,iBACE,YrFk1kBJ,CqFn1kBE,kBACE,YrFs1kBJ,CqFv1kBE,eACE,YrF01kBJ,CqF31kBE,WACE,YrF81kBJ,CqF/1kBE,kBACE,YrFk2kBJ,CqFn2kBE,qCACE,YrF02kBJ,CqF32kBE,aACE,YrF82kBJ,CqF/2kBE,kBACE,YrFk3kBJ,CqFn3kBE,aACE,YrFs3kBJ,CqFv3kBE,UACE,YrF03kBJ,CqF33kBE,uCACE,YrFk4kBJ,CqFn4kBE,oCACE,YrF04kBJ,CqF34kBE,kCACE,YrFk5kBJ,CqFn5kBE,eACE,YrFs5kBJ,CqFv5kBE,wBACE,YrF05kBJ,CqF35kBE,WACE,YrF85kBJ,CqF/5kBE,iCACE,YrFs6kBJ,CqFv6kBE,gBACE,YrF06kBJ,CqF36kBE,eACE,YrF86kBJ,CqF/6kBE,YACE,YrFk7kBJ,CqFn7kBE,UACE,YrFs7kBJ,CqFv7kBE,WACE,YrF07kBJ,CqF37kBE,YACE,YrF87kBJ,CqF/7kBE,cACE,YrFk8kBJ,CqFn8kBE,uCACE,YrF08kBJ,CqF38kBE,aACE,YrF88kBJ,CqF/8kBE,cACE,YrFk9kBJ,CqFn9kBE,mBACE,YrFs9kBJ,CqFv9kBE,YACE,YrF09kBJ,CqF39kBE,aACE,YrF89kBJ,CqF/9kBE,+BACE,YrFs+kBJ,CqFv+kBE,6BACE,YrF8+kBJ,CqF/+kBE,2CACE,YrFs/kBJ,CqFv/kBE,WACE,YrF0/kBJ,CqF3/kBE,wBACE,YrFkglBJ,CqFnglBE,yCACE,YrF0glBJ,CqF3glBE,YACE,YrF8glBJ,CqF/glBE,aACE,YrFkhlBJ,CqFnhlBE,yBACE,YrF0hlBJ,CqF3hlBE,WACE,YrF8hlBJ,CqF/hlBE,iCACE,YrFsilBJ,CqFvilBE,uBACE,YrF8ilBJ,CqF/ilBE,mCACE,YrFsjlBJ,CqFvjlBE,UACE,YrF0jlBJ,CqF3jlBE,iBACE,YrF8jlBJ,CqF/jlBE,gBACE,YrFkklBJ,CqFnklBE,WACE,YrFsklBJ,CqFvklBE,6CACE,YrF8klBJ,CqF/klBE,mBACE,YrFkllBJ,CqFnllBE,oBACE,YrFsllBJ,CqFvllBE,WACE,YrF0llBJ,CqF3llBE,YACE,YrF8llBJ,CqF/llBE,QACE,YrFkmlBJ,CqFnmlBE,gBACE,YrFsmlBJ,CqFvmlBE,yBACE,YrF8mlBJ,CqF/mlBE,uBACE,YrFknlBJ,CqFnnlBE,4CACE,YrF8nlBJ,CqF/nlBE,kBACE,YrFkolBJ,CqFnolBE,WACE,YrFsolBJ,CqFvolBE,cACE,YrF0olBJ,CqF3olBE,mBACE,YrF8olBJ,CqF/olBE,UACE,YrFkplBJ,CqFnplBE,eACE,YrFsplBJ,CqFvplBE,gBACE,YrF0plBJ,CqF3plBE,gBACE,YrF8plBJ,CqF/plBE,2BACE,YrFsqlBJ,CqFvqlBE,gCACE,YrF8qlBJ,CqF/qlBE,qCACE,YrFsrlBJ,CqFvrlBE,6CACE,YrF8rlBJ,CqF/rlBE,eACE,YrFkslBJ,CqFnslBE,gBACE,YrFsslBJ,CqFvslBE,6BACE,YrF8slBJ,CqF/slBE,eACE,YrFktlBJ,CqFntlBE,gBACE,YrFstlBJ,CqFvtlBE,qCACE,YrF8tlBJ,CqF/tlBE,+BACE,YrFsulBJ,CqFvulBE,QACE,YrF0ulBJ,CqF3ulBE,sCACE,YrFkvlBJ,CqFnvlBE,6BACE,YrF0vlBJ,CqF3vlBE,2CACE,YrFkwlBJ,CqFnwlBE,+BACE,YrF0wlBJ,CqF3wlBE,iCACE,YrFkxlBJ,CqFnxlBE,+DACE,YrF8xlBJ,CqF/xlBE,uCACE,YrFsylBJ,CqFvylBE,wEACE,YrFkzlBJ,CqFnzlBE,+CACE,YrF0zlBJ,CqF3zlBE,mEACE,YrFs0lBJ,CqFv0lBE,yCACE,YrF80lBJ,CqF/0lBE,gBACE,YrFk1lBJ,CqFn1lBE,cACE,YrFs1lBJ,CqFv1lBE,eACE,YrF01lBJ,CqF31lBE,oBACE,YrF81lBJ,CqF/1lBE,6BACE,YrFs2lBJ,CqFv2lBE,UACE,YrF02lBJ,CqF32lBE,iBACE,YrF82lBJ,CqF/2lBE,kBACE,YrFk3lBJ,CqFn3lBE,YACE,YrFs3lBJ;;AsFj4lBA;;;;EAAA,CASA,YAEE,yDtFk4lBF,CsF33lBA,WAIE,kBF6BuB,CEhCvB,iCACA,iBAAkB,CAClB,eAAgB,CAEhB,0DtF83lBF,CsF13lBA,KACE,oCtF63lBF,CsFr3lBA,eAPE,ctFo4lBF;;AuFj6lBA;;;;EAAA,CASA,YACE,0CACA,4DAGA,kDvF+5lBF,CuF35lBA,WAIE,kBH6BuB,CGhCvB,iCACA,iBAAkB,CAClB,eAAgB,CAEhB,4DvF85lBF,CuF15lBA,KACE,qCACA,cvF45lBF,CuFz5lBA,YACE,oCvF45lBF,CuFz5lBA,YACE,cvF45lBF;;AwFj8lBA;;;;EAAA,CASA,YACE,2CACA,yDxFg8lBF,CwF77lBA,WAIE,kBJiCuB,CIpCvB,mCACA,iBAAkB,CAClB,eAAgB,CAEhB,2DxFg8lBF,CwF77lBA,sCAGE,oCACA,cxF+7lBF,CwF37lBE,oBACE,YxF87lBJ,CwF/7lBE,UACE,YxFk8lBJ,CwFn8lBE,cACE,YxFs8lBJ,CwFv8lBE,4CACE,YxF88lBJ,CwF/8lBE,UACE,YxFk9lBJ,CwFn9lBE,gBACE,YxFs9lBJ,CwFv9lBE,0CACE,YxF89lBJ,CwF/9lBE,UACE,YxFk+lBJ,CwFn+lBE,YACE,YxFs+lBJ,CwFv+lBE,WACE,YxF0+lBJ,CwF3+lBE,gBACE,YxF8+lBJ,CwF/+lBE,eACE,YxFk/lBJ,CwFn/lBE,SACE,YxFs/lBJ,CwFv/lBE,WACE,YxF0/lBJ,CwF3/lBE,aACE,YxF8/lBJ,CwF//lBE,eACE,YxFkgmBJ,CwFngmBE,YACE,YxFsgmBJ,CwFvgmBE,SACE,YxF0gmBJ,CwF3gmBE,0BACE,YxFkhmBJ,CwFnhmBE,aACE,YxFshmBJ,CwFvhmBE,mBACE,YxF0hmBJ,CwF3hmBE,YACE,YxF8hmBJ,CwF/hmBE,cACE,YxFkimBJ,CwFnimBE,wBACE,YxFsimBJ,CwFvimBE,SACE,YxF0imBJ,CwF3imBE,4BACE,YxFkjmBJ,CwFnjmBE,SACE,YxFsjmBJ,CwFvjmBE,WACE,YxF0jmBJ,CwF3jmBE,aACE,YxF8jmBJ,CwF/jmBE,WACE,YxFkkmBJ,CwFnkmBE,QACE,YxFskmBJ,CwFvkmBE,WACE,YxF0kmBJ,CwF3kmBE,aACE,YxF8kmBJ,CwF/kmBE,SACE,YxFklmBJ,CwFnlmBE,WACE,YxFslmBJ,CwFvlmBE,oBACE,YxF0lmBJ,CwF3lmBE,eACE,YxF8lmBJ,CwF/lmBE,cACE,YxFkmmBJ,CwFnmmBE,kBACE,YxFsmmBJ,CwFvmmBE,wBACE,YxF0mmBJ,CwF3mmBE,oCACE,YxFknmBJ,CwFnnmBE,WACE,YxFsnmBJ,CwFvnmBE,YACE,YxF0nmBJ,CwF3nmBE,WACE,YxF8nmBJ,CwF/nmBE,aACE,YxFkomBJ,CwFnomBE,YACE,YxFsomBJ,CwFvomBE,mBACE,YxF0omBJ,CwF3omBE,qBACE,YxF8omBJ,CwF/omBE,cACE,YxFkpmBJ,CwFnpmBE,aACE,YxFspmBJ,CwFvpmBE,eACE,YxF0pmBJ,CwF3pmBE,sBACE,YxF8pmBJ,CwF/pmBE,YACE,YxFkqmBJ,CwFnqmBE,mBACE,YxFsqmBJ,CwFvqmBE,UACE,YxF0qmBJ,CwF3qmBE,kBACE,YxF8qmBJ,CwF/qmBE,UACE,YxFkrmBJ,CwFnrmBE,WACE,YxFsrmBJ,CwFvrmBE,YACE,YxF0rmBJ,CwF3rmBE,qBACE,YxF8rmBJ,CwF/rmBE,YACE,YxFksmBJ,CwFnsmBE,QACE,YxFssmBJ,CwFvsmBE,kBACE,YxF0smBJ,CwF3smBE,gBACE,YxF8smBJ,CwF/smBE,uBACE,YxFktmBJ,CwFntmBE,8BACE,YxFstmBJ,CwFvtmBE,cACE,YxF0tmBJ,CwF3tmBE,YACE,YxF8tmBJ,CwF/tmBE,mBACE,YxFkumBJ,CwFnumBE,QACE,YxFsumBJ,CwFvumBE,mBACE,YxF0umBJ,CwF3umBE,WACE,YxF8umBJ,CwF/umBE,oBACE,YxFkvmBJ,CwFnvmBE,aACE,YxFsvmBJ,CwFvvmBE,WACE,YxF0vmBJ,CwF3vmBE,sBACE,YxFkwmBJ,CwFnwmBE,eACE,YxFswmBJ,CwFvwmBE,aACE,YxF0wmBJ,CwF3wmBE,WACE,YxF8wmBJ,CwF/wmBE,YACE,YxFkxmBJ,CwFnxmBE,aACE,YxFsxmBJ,CwFvxmBE,UACE,YxF0xmBJ,CwF3xmBE,SACE,YxF8xmBJ,CwF/xmBE,QACE,YxFkymBJ,CwFnymBE,UACE,YxFsymBJ,CwFvymBE,eACE,YxF0ymBJ,CwF3ymBE,iBACE,YxF8ymBJ,CwF/ymBE,QACE,YxFkzmBJ,CwFnzmBE,aACE,YxFszmBJ,CwFvzmBE,eACE,YxF0zmBJ,CwF3zmBE,gBACE,YxF8zmBJ,CwF/zmBE,eACE,YxFk0mBJ,CwFn0mBE,mBACE,YxFs0mBJ,CwFv0mBE,iBACE,YxF00mBJ,CwF30mBE,UACE,YxF80mBJ,CwF/0mBE,UACE,YxFk1mBJ,CwFn1mBE,WACE,YxFs1mBJ,CwFv1mBE,4BACE,YxF81mBJ,CwF/1mBE,UACE,YxFk2mBJ,CwFn2mBE,eACE,YxFs2mBJ,CwFv2mBE,eACE,YxF02mBJ,CwF32mBE,aACE,YxF82mBJ,CwF/2mBE,UACE,YxFk3mBJ,CwFn3mBE,YACE,YxFs3mBJ,CwFv3mBE,kBACE,YxF03mBJ,CwF33mBE,eACE,YxF83mBJ,CwF/3mBE,WACE,YxFk4mBJ,CwFn4mBE,YACE,YxFs4mBJ,CwFv4mBE,YACE,YxF04mBJ,CwF34mBE,WACE,YxF84mBJ,CwF/4mBE,UACE,YxFk5mBJ,CwFn5mBE,SACE,YxFs5mBJ,CwFv5mBE,cACE,YxF05mBJ,CwF35mBE,iBACE,YxF85mBJ,CwF/5mBE,eACE,YxFk6mBJ,CwFn6mBE,WACE,YxFs6mBJ,CwFv6mBE,iBACE,YxF06mBJ,CwF36mBE,aACE,YxF86mBJ,CwF/6mBE,kBACE,YxFk7mBJ,CwFn7mBE,gBACE,YxFs7mBJ,CwFv7mBE,oBACE,YxF07mBJ,CwF37mBE,qBACE,YxF87mBJ,CwF/7mBE,aACE,YxFk8mBJ,CwFn8mBE,SACE,YxFs8mBJ,CwFv8mBE,QACE,YxF08mBJ,CwF38mBE,iBACE,YxF88mBJ,CwF/8mBE,sCACE,YxFs9mBJ,CwFv9mBE,wCACE,YxF89mBJ,CwF/9mBE,aACE,YxFk+mBJ,CwFn+mBE,oCACE,YxF0+mBJ,CwF3+mBE,YACE,YxF8+mBJ,CwF/+mBE,aACE,YxFk/mBJ,CwFn/mBE,WACE,YxFs/mBJ,CwFv/mBE,cACE,YxF0/mBJ,CwF3/mBE,0CACE,YxFkgnBJ,CwFngnBE,8CACE,YxF0gnBJ,CwF3gnBE,kBACE,YxF8gnBJ,CwF/gnBE,gBACE,YxFkhnBJ,CwFnhnBE,eACE,YxFshnBJ,CwFvhnBE,WACE,YxF0hnBJ,CwF3hnBE,UACE,YxF8hnBJ,CwF/hnBE,SACE,YxFkinBJ,CwFninBE,QACE,YxFsinBJ,CwFvinBE,YACE,YxF0inBJ,CwF3inBE,SACE,YxF8inBJ,CwF/inBE,gCACE,YxFsjnBJ,CwFvjnBE,YACE,YxF0jnBJ,CwF3jnBE,mBACE,YxF8jnBJ,CwF/jnBE,cACE,YxFkknBJ,CwFnknBE,WACE,YxFsknBJ,CwFvknBE,QACE,YxF0knBJ,CwF3knBE,cACE,YxF8knBJ,CwF/knBE,WACE,YxFklnBJ,CwFnlnBE,oCACE,YxF0lnBJ,CwF3lnBE,UACE,YxF8lnBJ,CwF/lnBE,YACE,YxFkmnBJ,CwFnmnBE,YACE,YxFsmnBJ,CwFvmnBE,UACE,YxF0mnBJ,CwF3mnBE,aACE,YxF8mnBJ,CwF/mnBE,UACE,YxFknnBJ,CwFnnnBE,eACE,YxFsnnBJ,CwFvnnBE,WACE,YxF0nnBJ,CwF3nnBE,aACE,YxF8nnBJ,CwF/nnBE,OACE,YxFkonBJ,CwFnonBE,UACE,YxFsonBJ,CwFvonBE,WACE,YxF0onBJ,CwF3onBE,cACE,YxF8onBJ,CwF/onBE,mBACE,YxFkpnBJ,CwFnpnBE,kCACE,YxF0pnBJ,CwF3pnBE,yBACE,YxFkqnBJ,CwFnqnBE,cACE,YxFsqnBJ,CwFvqnBE,WACE,YxF0qnBJ,CwF3qnBE,UACE,YxF8qnBJ,CwF/qnBE,WACE,YxFkrnBJ,CwFnrnBE,WACE,YxFsrnBJ,CwFvrnBE,oCACE,YxF8rnBJ,CwF/rnBE,uBACE,YxFksnBJ,CwFnsnBE,gBACE,YxFssnBJ,CwFvsnBE,cACE,YxF0snBJ,CwF3snBE,SACE,YxF8snBJ,CwF/snBE,kBACE,YxFktnBJ,CwFntnBE,mBACE,YxFstnBJ,CwFvtnBE,WACE,YxF0tnBJ,CwF3tnBE,WACE,YxF8tnBJ,CwF/tnBE,YACE,YxFkunBJ,CwFnunBE,sCACE,YxF0unBJ,CwF3unBE,UACE,YxF8unBJ,CwF/unBE,kCACE,YxFsvnBJ,CwFvvnBE,YACE,YxF0vnBJ,CwF3vnBE,eACE,YxF8vnBJ,CwF/vnBE,eACE,YxFkwnBJ,CwFnwnBE,SACE,YxFswnBJ,CwFvwnBE,YACE,YxF0wnBJ,CwF3wnBE,aACE,YxF8wnBJ,CwF/wnBE,UACE,YxFkxnBJ,CwFnxnBE,WACE,YxFsxnBJ,CwFvxnBE,8BACE,YxF8xnBJ,CwF/xnBE,QACE,YxFkynBJ,CwFnynBE,gBACE,YxFsynBJ,CwFvynBE,kBACE,YxF0ynBJ,CwF3ynBE,OACE,YxF8ynBJ,CwF/ynBE,WACE,YxFkznBJ,CwFnznBE,eACE,YxFsznBJ,CwFvznBE,WACE,YxF0znBJ,CwF3znBE,SACE,YxF8znBJ,CwF/znBE,WACE,YxFk0nBJ,CwFn0nBE,kBACE,YxFs0nBJ,CwFv0nBE,YACE,YxF00nBJ,CwF30nBE,kBACE,YxF80nBJ,CwF/0nBE,gBACE,YxFk1nBJ,CwFn1nBE,YACE,YxFs1nBJ,CwFv1nBE,cACE,YxF01nBJ,CwF31nBE,cACE,YxF81nBJ,CwF/1nBE,WACE,YxFk2nBJ,CwFn2nBE,oCACE,YxF02nBJ,CwF32nBE,YACE,YxF82nBJ,CwF/2nBE,cACE,YxFk3nBJ,CwFn3nBE,eACE,YxFs3nBJ,CwFv3nBE,mBACE,YxF03nBJ,CwF33nBE,aACE,YxF83nBJ,CwF/3nBE,aACE,YxFk4nBJ,CwFn4nBE,YACE,YxFs4nBJ,CwFv4nBE,WACE,YxF04nBJ,CwF34nBE,iBACE,YxF84nBJ,CwF/4nBE,gBACE,YxFk5nBJ,CwFn5nBE,aACE,YxFs5nBJ,CwFv5nBE,gBACE,YxF05nBJ,CwF35nBE,aACE,YxF85nBJ,CwF/5nBE,YACE,YxFk6nBJ,CwFn6nBE,wBACE,YxF06nBJ,CwF36nBE,iBACE,YxF86nBJ,CwF/6nBE,kBACE,YxFk7nBJ,CwFn7nBE,aACE,YxFs7nBJ,CwFv7nBE,iBACE,YxF07nBJ,CwF37nBE,WACE,YxF87nBJ,CwF/7nBE,mBACE,YxFk8nBJ,CwFn8nBE,qBACE,YxFs8nBJ,CwFv8nBE,OACE,YxF08nBJ,CwF38nBE,cACE,YxF88nBJ,CwF/8nBE,kBACE,YxFk9nBJ,CwFn9nBE,kDACE,YxF09nBJ,CwF39nBE,eACE,YxF89nBJ,CwF/9nBE,gBACE,YxFk+nBJ,CwFn+nBE,WACE,YxFs+nBJ,CwFv+nBE,WACE,YxF0+nBJ,CwF3+nBE,YACE,YxF8+nBJ,CwF/+nBE,UACE,YxFk/nBJ,CwFn/nBE,sBACE,YxFs/nBJ,CwFv/nBE,WACE,YxF0/nBJ,CwF3/nBE,UACE,YxF8/nBJ,CwF//nBE,WACE,YxFkgoBJ,CwFngoBE,UACE,YxFsgoBJ,CwFvgoBE,YACE,YxF0goBJ,CwF3goBE,cACE,YxF8goBJ,CwF/goBE,cACE,YxFkhoBJ,CwFnhoBE,iBACE,YxFshoBJ,CwFvhoBE,SACE,YxF0hoBJ,CwF3hoBE,aACE,YxF8hoBJ,CwF/hoBE,SACE,YxFkioBJ,CwFnioBE,iBACE,YxFsioBJ,CwFvioBE,QACE,YxF0ioBJ,CwF3ioBE,iBACE,YxF8ioBJ,CwF/ioBE,aACE,YxFkjoBJ,CwFnjoBE,WACE,YxFsjoBJ,CwFvjoBE,cACE,YxF0joBJ,CwF3joBE,gBACE,YxF8joBJ,CwF/joBE,WACE,YxFkkoBJ,CwFnkoBE,eACE,YxFskoBJ,CwFvkoBE,YACE,YxF0koBJ,CwF3koBE,WACE,YxF8koBJ,CwF/koBE,UACE,YxFkloBJ,CwFnloBE,YACE,YxFsloBJ,CwFvloBE,WACE,YxF0loBJ,CwF3loBE,oCACE,YxFkmoBJ,CwFnmoBE,gCACE,YxF0moBJ,CwF3moBE,wCACE,YxFknoBJ,CwFnnoBE,eACE,YxFsnoBJ,CwFvnoBE,gBACE,YxF0noBJ,CwF3noBE,UACE,YxF8noBJ,CwF/noBE,cACE,YxFkooBJ,CwFnooBE,gBACE,YxFsooBJ,CwFvooBE,kEACE,YxFkpoBJ,CwFnpoBE,WACE,YxFspoBJ,CwFvpoBE,UACE,YxF0poBJ,CwF3poBE,mBACE,YxF8poBJ,CwF/poBE,gCACE,YxFsqoBJ,CwFvqoBE,aACE,YxF0qoBJ,CwF3qoBE,SACE,YxF8qoBJ,CwF/qoBE,SACE,YxFkroBJ,CwFnroBE,SACE,YxFsroBJ,CwFvroBE,YACE,YxF0roBJ,CwF3roBE,aACE,YxF8roBJ,CwF/roBE,gBACE,YxFksoBJ,CwFnsoBE,eACE,YxFssoBJ,CwFvsoBE,WACE,YxF0soBJ,CwF3soBE,oDACE,YxFktoBJ,CwFntoBE,oBACE,YxFstoBJ,CwFvtoBE,aACE,YxF0toBJ,CwF3toBE,aACE,YxF8toBJ,CwF/toBE,mBACE,YxFkuoBJ,CwFnuoBE,YACE,YxFsuoBJ,CwFvuoBE,WACE,YxF0uoBJ,CwF3uoBE,kBACE,YxF8uoBJ,CwF/uoBE,cACE,YxFkvoBJ,CwFnvoBE,kBACE,YxFsvoBJ,CwFvvoBE,UACE,YxF0voBJ,CwF3voBE,eACE,YxF8voBJ,CwF/voBE,YACE,YxFkwoBJ,CwFnwoBE,YACE,YxFswoBJ,CwFvwoBE,QACE,YxF0woBJ,CwF3woBE,cACE,YxF8woBJ,CwF/woBE,YACE,YxFkxoBJ,CwFnxoBE,SACE,YxFsxoBJ,CwFvxoBE,eACE,YxF0xoBJ,CwF3xoBE,YACE,YxF8xoBJ,CwF/xoBE,cACE,YxFkyoBJ,CwFnyoBE,qBACE,YxFsyoBJ,CwFvyoBE,eACE,YxF0yoBJ,CwF3yoBE,eACE,YxF8yoBJ,CwF/yoBE,eACE,YxFkzoBJ,CwFnzoBE,iBACE,YxFszoBJ,CwFvzoBE,WACE,YxF0zoBJ,CwF3zoBE,aACE,YxF8zoBJ,CwF/zoBE,eACE,YxFk0oBJ,CwFn0oBE,YACE,YxFs0oBJ,CwFv0oBE,cACE,YxF00oBJ,CwF30oBE,YACE,YxF80oBJ,CwF/0oBE,kBACE,YxFk1oBJ,CwFn1oBE,YACE,YxFs1oBJ,CwFv1oBE,cACE,YxF01oBJ,CwF31oBE,WACE,YxF81oBJ,CwF/1oBE,WACE,YxFk2oBJ,CwFn2oBE,kBACE,YxFs2oBJ,CwFv2oBE,wCACE,YxF82oBJ,CwF/2oBE,WACE,YxFk3oBJ,CwFn3oBE,eACE,YxFs3oBJ,CwFv3oBE,WACE,YxF03oBJ,CwF33oBE,eACE,YxF83oBJ,CwF/3oBE,uBACE,YxFk4oBJ,CwFn4oBE,eACE,YxFs4oBJ,CwFv4oBE,iBACE,YxF04oBJ,CwF34oBE,qBACE,YxF84oBJ,CwF/4oBE,YACE,YxFk5oBJ,CwFn5oBE,cACE,YxFs5oBJ,CwFv5oBE,WACE,YxF05oBJ,CwF35oBE,cACE,YxF85oBJ,CwF/5oBE,gBACE,YxFk6oBJ,CwFn6oBE,iBACE,YxFs6oBJ,CwFv6oBE,gBACE,YxF06oBJ,CwF36oBE,aACE,YxF86oBJ,CwF/6oBE,UACE,YxFk7oBJ,CwFn7oBE,SACE,YxFs7oBJ,CwFv7oBE,8CACE,YxF87oBJ,CwF/7oBE,kBACE,YxFk8oBJ,CwFn8oBE,WACE,YxFs8oBJ,CwFv8oBE,YACE,YxF08oBJ,CwF38oBE,WACE,YxF88oBJ,CwF/8oBE,gBACE,YxFk9oBJ,CwFn9oBE,YACE,YxFs9oBJ,CwFv9oBE,UACE,YxF09oBJ,CwF39oBE,OACE,YxF89oBJ,CwF/9oBE,4BACE,YxFs+oBJ,CwFv+oBE,WACE,YxF0+oBJ,CwF3+oBE,uCACE,YxFk/oBJ,CwFn/oBE,kBACE,YxFs/oBJ,CwFv/oBE,YACE,YxF0/oBJ,CwF3/oBE,SACE,YxF8/oBJ,CwF//oBE,SACE,YxFkgpBJ,CwFngpBE,YACE,YxFsgpBJ,CwFvgpBE,YACE,YxF0gpBJ,CwF3gpBE,UACE,YxF8gpBJ,CwF/gpBE,cACE,YxFkhpBJ,CwFnhpBE,QACE,YxFshpBJ,CwFvhpBE,WACE,YxF0hpBJ,CwF3hpBE,WACE,YxF8hpBJ,CwF/hpBE,YACE,YxFkipBJ,CwFnipBE,YACE,YxFsipBJ,CwFvipBE,QACE,YxF0ipBJ,CwF3ipBE,QACE,YxF8ipBJ,CwF/ipBE,gBACE,YxFkjpBJ,CwFnjpBE,UACE,YxFsjpBJ,CwFvjpBE,WACE,YxF0jpBJ,CwF3jpBE,YACE,YxF8jpBJ,CwF/jpBE,cACE,YxFkkpBJ,CwFnkpBE,gBACE,YxFskpBJ,CwFvkpBE,sBACE,YxF0kpBJ,CwF3kpBE,gBACE,YxF8kpBJ,CwF/kpBE,WACE,YxFklpBJ,CwFnlpBE,WACE,YxFslpBJ,CwFvlpBE,cACE,YxF0lpBJ,CwF3lpBE,wBACE,YxFkmpBJ,CwFnmpBE,WACE,YxFsmpBJ,CwFvmpBE,cACE,YxF0mpBJ,CwF3mpBE,eACE,YxF8mpBJ,CwF/mpBE,YACE,YxFknpBJ,CwFnnpBE,WACE,YxFsnpBJ,CwFvnpBE,gBACE,YxF0npBJ,CwF3npBE,iBACE,YxF8npBJ,CwF/npBE,YACE,YxFkopBJ,CwFnopBE,YACE,YxFsopBJ,CwFvopBE,eACE,YxF0opBJ,CwF3opBE,iBACE,YxF8opBJ,CwF/opBE,iBACE,YxFkppBJ,CwFnppBE,iBACE,YxFsppBJ,CwFvppBE,WACE,YxF0ppBJ,CwF3ppBE,SACE,YxF8ppBJ,CwF/ppBE,UACE,YxFkqpBJ,CwFnqpBE,gBACE,YxFsqpBJ,CwFvqpBE,YACE,YxF0qpBJ,CwF3qpBE,aACE,YxF8qpBJ,CwF/qpBE,WACE,YxFkrpBJ,CwFnrpBE,UACE,YxFsrpBJ,CwFvrpBE,UACE,YxF0rpBJ,CwF3rpBE,QACE,YxF8rpBJ,CwF/rpBE,wCACE,YxFsspBJ,CwFvspBE,UACE,YxF0spBJ,CwF3spBE,qBACE,YxF8spBJ,CwF/spBE,SACE,YxFktpBJ,CwFntpBE,WACE,YxFstpBJ,CwFvtpBE,yBACE,YxF0tpBJ,CwF3tpBE,cACE,YxF8tpBJ,CwF/tpBE,iBACE,YxFkupBJ,CwFnupBE,QACE,YxFsupBJ,CwFvupBE,SACE,YxF0upBJ,CwF3upBE,QACE,YxF8upBJ,CwF/upBE,UACE,YxFkvpBJ,CwFnvpBE,iBACE,YxFsvpBJ,CwFvvpBE,SACE,YxF0vpBJ,CwF3vpBE,SACE,YxF8vpBJ,CwF/vpBE,UACE,YxFkwpBJ,CwFnwpBE,YACE,YxFswpBJ,CwFvwpBE,WACE,YxF0wpBJ,CwF3wpBE,UACE,YxF8wpBJ,CwF/wpBE,WACE,YxFkxpBJ,CwFnxpBE,UACE,YxFsxpBJ,CwFvxpBE,WACE,YxF0xpBJ,CwF3xpBE,WACE,YxF8xpBJ,CwF/xpBE,aACE,YxFkypBJ,CwFnypBE,UACE,YxFsypBJ,CwFvypBE,eACE,YxF0ypBJ,CwF3ypBE,kBACE,YxF8ypBJ,CwF/ypBE,aACE,YxFkzpBJ,CwFnzpBE,WACE,YxFszpBJ,CwFvzpBE,cACE,YxF0zpBJ,CwF3zpBE,sCACE,YxFk0pBJ,CwFn0pBE,cACE,YxFs0pBJ,CwFv0pBE,SACE,YxF00pBJ,CwF30pBE,QACE,YxF80pBJ,CwF/0pBE,cACE,YxFk1pBJ,CwFn1pBE,WACE,YxFs1pBJ,CwFv1pBE,SACE,YxF01pBJ,CwF31pBE,mBACE,YxF81pBJ,CwF/1pBE,wBACE,YxFk2pBJ,CwFn2pBE,wBACE,YxFs2pBJ,CwFv2pBE,2BACE,YxF02pBJ,CwF32pBE,2BACE,YxF82pBJ,CwF/2pBE,wBACE,YxFk3pBJ,CwFn3pBE,wBACE,YxFs3pBJ,CwFv3pBE,4BACE,YxF03pBJ,CwF33pBE,2BACE,YxF83pBJ,CwF/3pBE,wBACE,YxFk4pBJ,CwFn4pBE,8BACE,YxFs4pBJ,CwFv4pBE,mCACE,YxF04pBJ,CwF34pBE,2BACE,YxF84pBJ,CwF/4pBE,0BACE,YxFk5pBJ,CwFn5pBE,SACE,YxFs5pBJ,CwFv5pBE,YACE,YxF05pBJ,CwF35pBE,aACE,YxF85pBJ,CwF/5pBE,cACE,YxFk6pBJ,CwFn6pBE,iBACE,YxFs6pBJ,CwFv6pBE,cACE,YxF06pBJ,CwF36pBE,oBACE,YxF86pBJ,CwF/6pBE,YACE,YxFk7pBJ,CwFn7pBE,sBACE,YxFs7pBJ,CwFv7pBE,oBACE,YxF07pBJ,CwF37pBE,eACE,YxF87pBJ,CwF/7pBE,gBACE,YxFk8pBJ,CwFn8pBE,iBACE,YxFs8pBJ,CwFv8pBE,qBACE,YxF08pBJ,CwF38pBE,SACE,YxF88pBJ,CwF/8pBE,qBACE,YxFk9pBJ,CwFn9pBE,wBACE,YxFs9pBJ,CwFv9pBE,aACE,YxF09pBJ,CwF39pBE,cACE,YxF89pBJ,CwF/9pBE,aACE,YxFk+pBJ,CwFn+pBE,WACE,YxFs+pBJ,CwFv+pBE,QACE,YxF0+pBJ,CwF3+pBE,aACE,YxF8+pBJ,CwF/+pBE,gBACE,YxFk/pBJ,CwFn/pBE,YACE,YxFs/pBJ,CwFv/pBE,WACE,YxF0/pBJ,CwF3/pBE,QACE,YxF8/pBJ,CwF//pBE,SACE,YxFkgqBJ,CwFngqBE,eACE,YxFsgqBJ,CwFvgqBE,WACE,YxF0gqBJ,CwF3gqBE,aACE,YxF8gqBJ,CwF/gqBE,SACE,YxFkhqBJ,CwFnhqBE,UACE,YxFshqBJ,CwFvhqBE,WACE,YxF0hqBJ,CwF3hqBE,iBACE,YxF8hqBJ,CwF/hqBE,kBACE,YxFkiqBJ,CwFniqBE,mBACE,YxFsiqBJ,CwFviqBE,QACE,YxF0iqBJ,CwF3iqBE,yBACE,YxF8iqBJ,CwF/iqBE,yBACE,YxFkjqBJ,CwFnjqBE,gBACE,YxFsjqBJ,CwFvjqBE,gBACE,YxF0jqBJ,CwF3jqBE,eACE,YxF8jqBJ,CwF/jqBE,cACE,YxFkkqBJ,CwFnkqBE,wBACE,YxFskqBJ,CwFvkqBE,WACE,YxF0kqBJ,CwF3kqBE,eACE,YxF8kqBJ,CwF/kqBE,QACE,YxFklqBJ,CwFnlqBE,aACE,YxFslqBJ,CwFvlqBE,UACE,YxF0lqBJ,CwF3lqBE,WACE,YxF8lqBJ,CwF/lqBE,UACE,YxFkmqBJ,CwFnmqBE,aACE,YxFsmqBJ,CwFvmqBE,aACE,YxF0mqBJ,CwF3mqBE,SACE,YxF8mqBJ,CwF/mqBE,aACE,YxFknqBJ,CwFnnqBE,iBACE,YxFsnqBJ,CwFvnqBE,WACE,YxF0nqBJ,CwF3nqBE,WACE,YxF8nqBJ,CwF/nqBE,eACE,YxFkoqBJ,CwFnoqBE,SACE,YxFsoqBJ,CwFvoqBE,WACE,Yx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M,4EASE,kDACA,8CAPA,sBzI5VW,CyI0VX,8CACA,sBlJslyBR,CkJxlyBM,0EASE,iDACA,6CAPA,sBzI5VW,CyI0VX,6CACA,sBlJ8lyBR,CkJhmyBM,0EASE,iDACA,6CAPA,sBzI5VW,CyI0VX,6CACA,sBlJsmyBR,CkJxmyBM,wEASE,gDACA,4CAPA,sBzI5VW,CyI0VX,4CACA,sBlJ8myBR,CkJhnyBM,0EASE,iDACA,6CAPA,sBzI5VW,CyI0VX,6CACA,sBlJsnyBR,CkJxnyBM,0EASE,iDACA,6CAPA,sBzI5VW,CyI0VX,6CACA,sBlJ8nyBR,CmJt9yBI,yEACE,SAAU,CACV,SnJg+yBN,CmJ79yBI,mEACE,UnJ+9yBN,CmGl7yBE,gEACE,qBnGo7yBJ,CmGl7yBI,sFACE,sBnGo7yBN,CmJ19yBM,gEACE,enJ49yBR,CmJx9yBI,6DACE,anJ09yBN,CmJjgzBI,wGACE,uBAAwB,CACxB,enJmgzBN,CmJ9/yBI,mFACE,wBAAyB,CACzB,enJggzBN,CmJj9yBI,4DAGE,gBnJ0+yBN,CmJj9yBM,qFAUE,sB1IjFW,C0IwEX,UAAW,CAMX,WAAY,CAFZ,YAGA,8C1InEa,C0IoEb,sB1IvEY,C0IoEZ,wBnJo9yBR,CmJ58yBM,yGACE,2BAA4B,CAC5B,4BnJ88yBR,CmJt8yBI,2CACE,8CnJw8yBN,CmJrjzBI,iEACE,uBAAwB,CACxB,enJujzBN,CmJzizBI,0DACE,SAAU,CACV,SnJ2izBN,CmJxizBI,oDACE,UnJ0izBN,CmG7/yBE,iDACE,qBnG+/yBJ,CmG7/yBI,uEACE,sBnG+/yBN,CmJn9yBM,iDACE,enJq9yBR,CmJl9yBM,yDACE,sBnJo9yBR,CmJrkzBI,+DACE,wBAAyB,CACzB,enJukzBN,CmJh9yBM,wDACE,2BAA4B,CAC5B,4BnJk9yBR,CoJnlzBA,mDAME,epJ4lzBF,CoJ1lzBE,+DACE,iBpJ6lzBJ,CoJplzBM,2IjDHJ,oDAAqD,CADrD,4BnG8lzBF,CmGxlzBE,+IACE,2CnG2lzBJ,CmGtlzBI,4lBAEE,yDnG8lzBN,CmGzlzBI,6JACE,kDAAmD,CACnD,gDnG4lzBN,CmGtlzBM,2LACE,wDnGylzBR,CmGtlzBM,yLACE,yDnGylzBR,CoJjnzBU,yKACE,oDpJonzBZ,CoJ5mzBM,2KjDvBJ,2CAA4C,CAC5C,oBAAsB,CAFtB,oCAAqC,CAGrC,anGwozBF,CoJ7mzBM,gEACE,wCpJ+mzBR,CoJxmzBA,qBACE,kBpJ2mzBF,CoJjmzBE,sDAEE,apJmmzBJ,CoJhmzBE,qDAEE,apJimzBJ,CoJ1lzBE,uDAEE,apJ4lzBJ,CoJzlzBE,sDAEE,apJ0lzBJ,CoJllzBA,wBACE,cAAe,CACf,epJwlzBF,CoJnlzBE,4CjD7EA,oDAAqD,CADrD,4BnGsqzBF,CmGhqzBE,8CACE,2CnGkqzBJ,CmG7pzBI,wMAEE,yDnGiqzBN,CmG5pzBI,qDACE,kDAAmD,CACnD,gDnG8pzBN,CmGxpzBM,oEACE,wDnG0pzBR,CmGvpzBM,mEACE,yDnGypzBR,CoJvmzBM,2DACE,oDpJymzBR,CoJnmzBI,gNjD/FF,2CAA4C,CAC5C,oBAAsB,CAFtB,oCAAqC,CAGrC,anGwszBF,CoJhmzBE,2BACE,YAAa,CACb,qBAAsB,CACtB,uBpJmmzBJ,CoJhmzBE,kDAEE,oBpJkmzBJ,CoJ9lzBI,6BACE,iBpJgmzBN,CqJhuzBA,uEACE,eAAgB,CAChB,SrJ4uzBF,CsJ9uzBI,uFACE,mCAAoC,CACpC,etJyvzBN,CsJtvzBI,yDACE,iCtJwvzBN,CsJpvzBE,+BAEE,eAAgB,CADhB,QtJuvzBJ,CsJpvzBI,kCACE,qBAAsB,CAGtB,gDAAiD,CADjD,aAAc,CADd,ctJwvzBN,CsJnvzBM,oCACE,etJqvzBR,CsJlvzBM,0FAEE,gCAAiC,CACjC,etJovzBR,CsJjvzBQ,4GAGE,iCAAkC,CAFlC,WAAY,CACZ,kBtJqvzBV","sources":["webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_type.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/pydata-sphinx-theme.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/mixins/_banner.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_root.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/vendor/_rfs.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/mixins/_color-mode.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_reboot.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_variables.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/mixins/_border-radius.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/mixins/_lists.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/variables/_bootstrap.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_images.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/mixins/_image.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_containers.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/mixins/_container.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/mixins/_breakpoints.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_grid.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/mixins/_grid.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_tables.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/mixins/_table-variants.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/forms/_labels.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/forms/_form-text.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/forms/_form-control.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/mixins/_transition.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/mixins/_gradients.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/forms/_form-select.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/forms/_form-check.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/forms/_form-range.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/forms/_floating-labels.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/forms/_input-group.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/mixins/_forms.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_buttons.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/mixins/_buttons.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_transitions.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_dropdown.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/mixins/_caret.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_button-group.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_nav.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_navbar.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_card.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_accordion.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_breadcrumb.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_pagination.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/mixins/_pagination.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_badge.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_alert.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_progress.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_list-group.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_close.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_toasts.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_modal.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/mixins/_backdrop.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_tooltip.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/mixins/_reset-text.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_popover.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_carousel.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/mixins/_clearfix.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_spinners.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_offcanvas.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/_placeholders.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/helpers/_color-bg.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/helpers/_colored-links.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/helpers/_focus-ring.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/helpers/_icon-link.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/helpers/_ratio.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/helpers/_position.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/helpers/_stacks.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/helpers/_visually-hidden.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/mixins/_visually-hidden.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/helpers/_stretched-link.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/helpers/_text-truncation.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/mixins/_text-truncate.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/helpers/_vr.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/mixins/_utilities.scss","webpack://pydata_sphinx_theme/./node_modules/bootstrap/scss/utilities/_api.scss","webpack://pydata_sphinx_theme/./node_modules/@fortawesome/fontawesome-free/scss/_core.scss","webpack://pydata_sphinx_theme/./node_modules/@fortawesome/fontawesome-free/scss/_mixins.scss","webpack://pydata_sphinx_theme/./node_modules/@fortawesome/fontawesome-free/scss/_sizing.scss","webpack://pydata_sphinx_theme/./node_modules/@fortawesome/fontawesome-free/scss/_widths.scss","webpack://pydata_sphinx_theme/./node_modules/@fortawesome/fontawesome-free/scss/_list.scss","webpack://pydata_sphinx_theme/./node_modules/@fortawesome/fontawesome-free/scss/_bordered.scss","webpack://pydata_sphinx_theme/./node_modules/@fortawesome/fontawesome-free/scss/_pulled.scss","webpack://pydata_sphinx_theme/./node_modules/@fortawesome/fontawesome-free/scss/_animated.scss","webpack://pydata_sphinx_theme/./node_modules/@fortawesome/fontawesome-free/scss/_rotated-flipped.scss","webpack://pydata_sphinx_theme/./node_modules/@fortawesome/fontawesome-free/scss/_stacked.scss","webpack://pydata_sphinx_theme/./node_modules/@fortawesome/fontawesome-free/scss/_variables.scss","webpack://pydata_sphinx_theme/./node_modules/@fortawesome/fontawesome-free/scss/_icons.scss","webpack://pydata_sphinx_theme/./node_modules/@fortawesome/fontawesome-free/scss/solid.scss","webpack://pydata_sphinx_theme/./node_modules/@fortawesome/fontawesome-free/scss/regular.scss","webpack://pydata_sphinx_theme/./node_modules/@fortawesome/fontawesome-free/scss/brands.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/variables/_layout.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/variables/_fonts.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/variables/_icons.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/variables/_admonitions.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/variables/_versionmodified.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/base/_base.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/abstracts/_links.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/sections/_skip-link.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/sections/_container.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/sections/_announcement.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/abstracts/_mixins.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/sections/_article.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/sections/_footer.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/sections/_footer-article.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/sections/_footer-content.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/sections/_header.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/sections/_header-article.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/sections/_sidebar-primary.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/sections/_sidebar-secondary.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/sections/_sidebar-toggle.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/components/_breadcrumbs.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/components/_icon-links.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/components/header/_header-logo.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/components/_navbar-links.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/components/_page-toc.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/components/_prev-next.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/components/_search.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/components/_searchbox.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/components/_sidebar-collapse.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/components/_switcher-theme.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/components/_switcher-version.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/components/_toc-inpage.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/components/_versionmodified.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/components/_indices.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/content/_admonitions.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/abstracts/_color.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/content/_api.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/content/_code.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/content/_figures.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/content/_footnotes.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/content/_hacks.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/content/_lists.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/content/_quotes.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/content/_spans.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/content/_tables.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/content/_toctree.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/content/_math.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/extensions/_ablog.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/extensions/_bootstrap.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/extensions/_copybutton.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/extensions/_ethical-ads.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/extensions/_execution.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/extensions/_gallery_grid.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/extensions/_graphviz.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/extensions/_mermaid.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/extensions/_pydata.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/variables/_color.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/extensions/_sphinx_design.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/extensions/_togglebutton.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/extensions/_notebooks.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/extensions/_leaflet.scss","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/styles/pages/_search.scss"],"sourcesContent":["//\n// Headings\n//\n.h1 {\n @extend h1;\n}\n\n.h2 {\n @extend h2;\n}\n\n.h3 {\n @extend h3;\n}\n\n.h4 {\n @extend h4;\n}\n\n.h5 {\n @extend h5;\n}\n\n.h6 {\n @extend h6;\n}\n\n\n.lead {\n @include font-size($lead-font-size);\n font-weight: $lead-font-weight;\n}\n\n// Type display classes\n@each $display, $font-size in $display-font-sizes {\n .display-#{$display} {\n @include font-size($font-size);\n font-family: $display-font-family;\n font-style: $display-font-style;\n font-weight: $display-font-weight;\n line-height: $display-line-height;\n }\n}\n\n//\n// Emphasis\n//\n.small {\n @extend small;\n}\n\n.mark {\n @extend mark;\n}\n\n//\n// Lists\n//\n\n.list-unstyled {\n @include list-unstyled();\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n @include list-unstyled();\n}\n.list-inline-item {\n display: inline-block;\n\n &:not(:last-child) {\n margin-right: $list-inline-padding;\n }\n}\n\n\n//\n// Misc\n//\n\n// Builds on `abbr`\n.initialism {\n @include font-size($initialism-font-size);\n text-transform: uppercase;\n}\n\n// Blockquotes\n.blockquote {\n margin-bottom: $blockquote-margin-y;\n @include font-size($blockquote-font-size);\n\n > :last-child {\n margin-bottom: 0;\n }\n}\n\n.blockquote-footer {\n margin-top: -$blockquote-margin-y;\n margin-bottom: $blockquote-margin-y;\n @include font-size($blockquote-footer-font-size);\n color: $blockquote-footer-color;\n\n &::before {\n content: \"\\2014\\00A0\"; // em dash, nbsp\n }\n}\n","@charset \"UTF-8\";\n/*!\n * Bootstrap v5.3.3 (https://getbootstrap.com/)\n * Copyright 2011-2024 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n:root,\n[data-bs-theme=light] {\n --bs-blue: #0d6efd;\n --bs-indigo: #6610f2;\n --bs-purple: #6f42c1;\n --bs-pink: #d63384;\n --bs-red: #dc3545;\n --bs-orange: #fd7e14;\n --bs-yellow: #ffc107;\n --bs-green: #198754;\n --bs-teal: #20c997;\n --bs-cyan: #0dcaf0;\n --bs-black: #000;\n --bs-white: #fff;\n --bs-gray: #6c757d;\n --bs-gray-dark: #343a40;\n --bs-gray-100: #f8f9fa;\n --bs-gray-200: #e9ecef;\n --bs-gray-300: #dee2e6;\n --bs-gray-400: #ced4da;\n --bs-gray-500: #adb5bd;\n --bs-gray-600: #6c757d;\n --bs-gray-700: #495057;\n --bs-gray-800: #343a40;\n --bs-gray-900: #212529;\n --bs-primary: #0d6efd;\n --bs-secondary: #6c757d;\n --bs-success: #198754;\n --bs-info: #0dcaf0;\n --bs-warning: #ffc107;\n --bs-danger: #dc3545;\n --bs-light: #f8f9fa;\n --bs-dark: #212529;\n --bs-primary-rgb: 13, 110, 253;\n --bs-secondary-rgb: 108, 117, 125;\n --bs-success-rgb: 25, 135, 84;\n --bs-info-rgb: 13, 202, 240;\n --bs-warning-rgb: 255, 193, 7;\n --bs-danger-rgb: 220, 53, 69;\n --bs-light-rgb: 248, 249, 250;\n --bs-dark-rgb: 33, 37, 41;\n --bs-primary-text-emphasis: #052c65;\n --bs-secondary-text-emphasis: #2b2f32;\n --bs-success-text-emphasis: #0a3622;\n --bs-info-text-emphasis: #055160;\n --bs-warning-text-emphasis: #664d03;\n --bs-danger-text-emphasis: #58151c;\n --bs-light-text-emphasis: #495057;\n --bs-dark-text-emphasis: #495057;\n --bs-primary-bg-subtle: #cfe2ff;\n --bs-secondary-bg-subtle: #e2e3e5;\n --bs-success-bg-subtle: #d1e7dd;\n --bs-info-bg-subtle: #cff4fc;\n --bs-warning-bg-subtle: #fff3cd;\n --bs-danger-bg-subtle: #f8d7da;\n --bs-light-bg-subtle: #fcfcfd;\n --bs-dark-bg-subtle: #ced4da;\n --bs-primary-border-subtle: #9ec5fe;\n --bs-secondary-border-subtle: #c4c8cb;\n --bs-success-border-subtle: #a3cfbb;\n --bs-info-border-subtle: #9eeaf9;\n --bs-warning-border-subtle: #ffe69c;\n --bs-danger-border-subtle: #f1aeb5;\n --bs-light-border-subtle: #e9ecef;\n --bs-dark-border-subtle: #adb5bd;\n --bs-white-rgb: 255, 255, 255;\n --bs-black-rgb: 0, 0, 0;\n --bs-font-sans-serif: system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", \"Liberation Sans\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));\n --bs-body-font-family: var(--bs-font-sans-serif);\n --bs-body-font-size: 1rem;\n --bs-body-font-weight: 400;\n --bs-body-line-height: 1.5;\n --bs-body-color: #212529;\n --bs-body-color-rgb: 33, 37, 41;\n --bs-body-bg: #fff;\n --bs-body-bg-rgb: 255, 255, 255;\n --bs-emphasis-color: #000;\n --bs-emphasis-color-rgb: 0, 0, 0;\n --bs-secondary-color: rgba(33, 37, 41, 0.75);\n --bs-secondary-color-rgb: 33, 37, 41;\n --bs-secondary-bg: #e9ecef;\n --bs-secondary-bg-rgb: 233, 236, 239;\n --bs-tertiary-color: rgba(33, 37, 41, 0.5);\n --bs-tertiary-color-rgb: 33, 37, 41;\n --bs-tertiary-bg: #f8f9fa;\n --bs-tertiary-bg-rgb: 248, 249, 250;\n --bs-heading-color: inherit;\n --bs-link-color: #0d6efd;\n --bs-link-color-rgb: 13, 110, 253;\n --bs-link-decoration: underline;\n --bs-link-hover-color: #0a58ca;\n --bs-link-hover-color-rgb: 10, 88, 202;\n --bs-code-color: #d63384;\n --bs-highlight-color: #212529;\n --bs-highlight-bg: #fff3cd;\n --bs-border-width: 1px;\n --bs-border-style: solid;\n --bs-border-color: #dee2e6;\n --bs-border-color-translucent: rgba(0, 0, 0, 0.175);\n --bs-border-radius: 0.375rem;\n --bs-border-radius-sm: 0.25rem;\n --bs-border-radius-lg: 0.5rem;\n --bs-border-radius-xl: 1rem;\n --bs-border-radius-xxl: 2rem;\n --bs-border-radius-2xl: var(--bs-border-radius-xxl);\n --bs-border-radius-pill: 50rem;\n --bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);\n --bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);\n --bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175);\n --bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075);\n --bs-focus-ring-width: 0.1875rem;\n --bs-focus-ring-opacity: 1;\n --bs-focus-ring-color: var(--pst-color-accent);\n --bs-form-valid-color: #198754;\n --bs-form-valid-border-color: #198754;\n --bs-form-invalid-color: #dc3545;\n --bs-form-invalid-border-color: #dc3545;\n}\n\n[data-bs-theme=dark] {\n color-scheme: dark;\n --bs-body-color: #dee2e6;\n --bs-body-color-rgb: 222, 226, 230;\n --bs-body-bg: #212529;\n --bs-body-bg-rgb: 33, 37, 41;\n --bs-emphasis-color: #fff;\n --bs-emphasis-color-rgb: 255, 255, 255;\n --bs-secondary-color: rgba(222, 226, 230, 0.75);\n --bs-secondary-color-rgb: 222, 226, 230;\n --bs-secondary-bg: #343a40;\n --bs-secondary-bg-rgb: 52, 58, 64;\n --bs-tertiary-color: rgba(222, 226, 230, 0.5);\n --bs-tertiary-color-rgb: 222, 226, 230;\n --bs-tertiary-bg: #2b3035;\n --bs-tertiary-bg-rgb: 43, 48, 53;\n --bs-primary-text-emphasis: #6ea8fe;\n --bs-secondary-text-emphasis: #a7acb1;\n --bs-success-text-emphasis: #75b798;\n --bs-info-text-emphasis: #6edff6;\n --bs-warning-text-emphasis: #ffda6a;\n --bs-danger-text-emphasis: #ea868f;\n --bs-light-text-emphasis: #f8f9fa;\n --bs-dark-text-emphasis: #dee2e6;\n --bs-primary-bg-subtle: #031633;\n --bs-secondary-bg-subtle: #161719;\n --bs-success-bg-subtle: #051b11;\n --bs-info-bg-subtle: #032830;\n --bs-warning-bg-subtle: #332701;\n --bs-danger-bg-subtle: #2c0b0e;\n --bs-light-bg-subtle: #343a40;\n --bs-dark-bg-subtle: #1a1d20;\n --bs-primary-border-subtle: #084298;\n --bs-secondary-border-subtle: #41464b;\n --bs-success-border-subtle: #0f5132;\n --bs-info-border-subtle: #087990;\n --bs-warning-border-subtle: #997404;\n --bs-danger-border-subtle: #842029;\n --bs-light-border-subtle: #495057;\n --bs-dark-border-subtle: #343a40;\n --bs-heading-color: inherit;\n --bs-link-color: #6ea8fe;\n --bs-link-hover-color: #8bb9fe;\n --bs-link-color-rgb: 110, 168, 254;\n --bs-link-hover-color-rgb: 139, 185, 254;\n --bs-code-color: #e685b5;\n --bs-highlight-color: #dee2e6;\n --bs-highlight-bg: #664d03;\n --bs-border-color: #495057;\n --bs-border-color-translucent: rgba(255, 255, 255, 0.15);\n --bs-form-valid-color: #75b798;\n --bs-form-valid-border-color: #75b798;\n --bs-form-invalid-color: #ea868f;\n --bs-form-invalid-border-color: #ea868f;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nbody {\n margin: 0;\n font-family: var(--bs-body-font-family);\n font-size: var(--bs-body-font-size);\n font-weight: var(--bs-body-font-weight);\n line-height: var(--bs-body-line-height);\n color: var(--bs-body-color);\n text-align: var(--bs-body-text-align);\n background-color: var(--bs-body-bg);\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\nhr {\n margin: 1rem 0;\n color: inherit;\n border: 0;\n border-top: var(--bs-border-width) solid;\n opacity: 0.25;\n}\n\nh6, .h6, h5, .h5, h4, .h4, h3, .h3, h2, .h2, h1, .h1 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n font-weight: 500;\n line-height: 1.2;\n color: var(--bs-heading-color);\n}\n\nh1, .h1 {\n font-size: calc(1.375rem + 1.5vw);\n}\n@media (min-width: 1200px) {\n h1, .h1 {\n font-size: 2.5rem;\n }\n}\n\nh2, .h2 {\n font-size: calc(1.325rem + 0.9vw);\n}\n@media (min-width: 1200px) {\n h2, .h2 {\n font-size: 2rem;\n }\n}\n\nh3, .h3 {\n font-size: calc(1.3rem + 0.6vw);\n}\n@media (min-width: 1200px) {\n h3, .h3 {\n font-size: 1.75rem;\n }\n}\n\nh4, .h4 {\n font-size: calc(1.275rem + 0.3vw);\n}\n@media (min-width: 1200px) {\n h4, .h4 {\n font-size: 1.5rem;\n }\n}\n\nh5, .h5 {\n font-size: 1.25rem;\n}\n\nh6, .h6 {\n font-size: 1rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title] {\n text-decoration: underline dotted;\n cursor: help;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul {\n padding-left: 2rem;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: 0.5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall, .small {\n font-size: 0.875em;\n}\n\nmark, .mark {\n padding: 0.1875em;\n color: var(--bs-highlight-color);\n background-color: var(--bs-highlight-bg);\n}\n\nsub,\nsup {\n position: relative;\n font-size: 0.75em;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\na {\n color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 1));\n text-decoration: underline;\n}\na:hover {\n --bs-link-color-rgb: var(--bs-link-hover-color-rgb);\n}\n\na:not([href]):not([class]), a:not([href]):not([class]):hover {\n color: inherit;\n text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: var(--bs-font-monospace);\n font-size: 1em;\n}\n\npre {\n display: block;\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n font-size: 0.875em;\n}\npre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n}\n\ncode {\n font-size: 0.875em;\n color: var(--bs-code-color);\n word-wrap: break-word;\n}\na > code {\n color: inherit;\n}\n\nkbd {\n padding: 0.1875rem 0.375rem;\n font-size: 0.875em;\n color: var(--bs-body-bg);\n background-color: var(--bs-body-color);\n border-radius: 0.25rem;\n}\nkbd kbd {\n padding: 0;\n font-size: 1em;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg,\nsvg {\n vertical-align: middle;\n}\n\ntable {\n caption-side: bottom;\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n color: var(--bs-secondary-color);\n text-align: left;\n}\n\nth {\n text-align: inherit;\n text-align: -webkit-match-parent;\n}\n\nthead,\ntbody,\ntfoot,\ntr,\ntd,\nth {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n}\n\nlabel {\n display: inline-block;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus:not(:focus-visible) {\n outline: 0;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\n[role=button] {\n cursor: pointer;\n}\n\nselect {\n word-wrap: normal;\n}\nselect:disabled {\n opacity: 1;\n}\n\n[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator {\n display: none !important;\n}\n\nbutton,\n[type=button],\n[type=reset],\n[type=submit] {\n -webkit-appearance: button;\n}\nbutton:not(:disabled),\n[type=button]:not(:disabled),\n[type=reset]:not(:disabled),\n[type=submit]:not(:disabled) {\n cursor: pointer;\n}\n\n::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ntextarea {\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n float: left;\n width: 100%;\n padding: 0;\n margin-bottom: 0.5rem;\n font-size: calc(1.275rem + 0.3vw);\n line-height: inherit;\n}\n@media (min-width: 1200px) {\n legend {\n font-size: 1.5rem;\n }\n}\nlegend + * {\n clear: left;\n}\n\n::-webkit-datetime-edit-fields-wrapper,\n::-webkit-datetime-edit-text,\n::-webkit-datetime-edit-minute,\n::-webkit-datetime-edit-hour-field,\n::-webkit-datetime-edit-day-field,\n::-webkit-datetime-edit-month-field,\n::-webkit-datetime-edit-year-field {\n padding: 0;\n}\n\n::-webkit-inner-spin-button {\n height: auto;\n}\n\n[type=search] {\n -webkit-appearance: textfield;\n outline-offset: -2px;\n}\n\n/* rtl:raw:\n[type=\"tel\"],\n[type=\"url\"],\n[type=\"email\"],\n[type=\"number\"] {\n direction: ltr;\n}\n*/\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-color-swatch-wrapper {\n padding: 0;\n}\n\n::file-selector-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\niframe {\n border: 0;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[hidden] {\n display: none !important;\n}\n\n.lead {\n font-size: 1.25rem;\n font-weight: 300;\n}\n\n.display-1 {\n font-size: calc(1.625rem + 4.5vw);\n font-weight: 300;\n line-height: 1.2;\n}\n@media (min-width: 1200px) {\n .display-1 {\n font-size: 5rem;\n }\n}\n\n.display-2 {\n font-size: calc(1.575rem + 3.9vw);\n font-weight: 300;\n line-height: 1.2;\n}\n@media (min-width: 1200px) {\n .display-2 {\n font-size: 4.5rem;\n }\n}\n\n.display-3 {\n font-size: calc(1.525rem + 3.3vw);\n font-weight: 300;\n line-height: 1.2;\n}\n@media (min-width: 1200px) {\n .display-3 {\n font-size: 4rem;\n }\n}\n\n.display-4 {\n font-size: calc(1.475rem + 2.7vw);\n font-weight: 300;\n line-height: 1.2;\n}\n@media (min-width: 1200px) {\n .display-4 {\n font-size: 3.5rem;\n }\n}\n\n.display-5 {\n font-size: calc(1.425rem + 2.1vw);\n font-weight: 300;\n line-height: 1.2;\n}\n@media (min-width: 1200px) {\n .display-5 {\n font-size: 3rem;\n }\n}\n\n.display-6 {\n font-size: calc(1.375rem + 1.5vw);\n font-weight: 300;\n line-height: 1.2;\n}\n@media (min-width: 1200px) {\n .display-6 {\n font-size: 2.5rem;\n }\n}\n\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline-item {\n display: inline-block;\n}\n.list-inline-item:not(:last-child) {\n margin-right: 0.5rem;\n}\n\n.initialism {\n font-size: 0.875em;\n text-transform: uppercase;\n}\n\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n}\n.blockquote > :last-child {\n margin-bottom: 0;\n}\n\n.blockquote-footer {\n margin-top: -1rem;\n margin-bottom: 1rem;\n font-size: 0.875em;\n color: #6c757d;\n}\n.blockquote-footer::before {\n content: \"— \";\n}\n\n.img-fluid {\n max-width: 100%;\n height: auto;\n}\n\n.img-thumbnail {\n padding: 0.25rem;\n background-color: var(--bs-body-bg);\n border: var(--bs-border-width) solid var(--bs-border-color);\n border-radius: var(--bs-border-radius);\n max-width: 100%;\n height: auto;\n}\n\n.figure {\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1;\n}\n\n.figure-caption {\n font-size: 0.875em;\n color: var(--bs-secondary-color);\n}\n\n.container,\n.container-fluid,\n.container-xl,\n.container-lg,\n.container-md,\n.container-sm {\n --bs-gutter-x: 1.5rem;\n --bs-gutter-y: 0;\n width: 100%;\n padding-right: calc(var(--bs-gutter-x) * 0.5);\n padding-left: calc(var(--bs-gutter-x) * 0.5);\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 540px) {\n .container-sm, .container {\n max-width: 540px;\n }\n}\n@media (min-width: 720px) {\n .container-md, .container-sm, .container {\n max-width: 720px;\n }\n}\n@media (min-width: 960px) {\n .container-lg, .container-md, .container-sm, .container {\n max-width: 960px;\n }\n}\n@media (min-width: 1200px) {\n .container-xl, .container-lg, .container-md, .container-sm, .container {\n max-width: 1400px;\n }\n}\n:root {\n --bs-breakpoint-xs: 0;\n --bs-breakpoint-sm: 540px;\n --bs-breakpoint-md: 720px;\n --bs-breakpoint-lg: 960px;\n --bs-breakpoint-xl: 1200px;\n}\n\n.row {\n --bs-gutter-x: 1.5rem;\n --bs-gutter-y: 0;\n display: flex;\n flex-wrap: wrap;\n margin-top: calc(-1 * var(--bs-gutter-y));\n margin-right: calc(-0.5 * var(--bs-gutter-x));\n margin-left: calc(-0.5 * var(--bs-gutter-x));\n}\n.row > * {\n flex-shrink: 0;\n width: 100%;\n max-width: 100%;\n padding-right: calc(var(--bs-gutter-x) * 0.5);\n padding-left: calc(var(--bs-gutter-x) * 0.5);\n margin-top: var(--bs-gutter-y);\n}\n\n.col {\n flex: 1 0 0%;\n}\n\n.row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n}\n\n.row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n}\n\n.row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n}\n\n.row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.33333333%;\n}\n\n.row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n}\n\n.row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n}\n\n.row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.66666667%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n}\n\n.col-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n}\n\n.col-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n}\n\n.col-3 {\n flex: 0 0 auto;\n width: 25%;\n}\n\n.col-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n}\n\n.col-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n}\n\n.col-6 {\n flex: 0 0 auto;\n width: 50%;\n}\n\n.col-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n}\n\n.col-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n}\n\n.col-9 {\n flex: 0 0 auto;\n width: 75%;\n}\n\n.col-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n}\n\n.col-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n}\n\n.col-12 {\n flex: 0 0 auto;\n width: 100%;\n}\n\n.offset-1 {\n margin-left: 8.33333333%;\n}\n\n.offset-2 {\n margin-left: 16.66666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.33333333%;\n}\n\n.offset-5 {\n margin-left: 41.66666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.33333333%;\n}\n\n.offset-8 {\n margin-left: 66.66666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.33333333%;\n}\n\n.offset-11 {\n margin-left: 91.66666667%;\n}\n\n.g-0,\n.gx-0 {\n --bs-gutter-x: 0;\n}\n\n.g-0,\n.gy-0 {\n --bs-gutter-y: 0;\n}\n\n.g-1,\n.gx-1 {\n --bs-gutter-x: 0.25rem;\n}\n\n.g-1,\n.gy-1 {\n --bs-gutter-y: 0.25rem;\n}\n\n.g-2,\n.gx-2 {\n --bs-gutter-x: 0.5rem;\n}\n\n.g-2,\n.gy-2 {\n --bs-gutter-y: 0.5rem;\n}\n\n.g-3,\n.gx-3 {\n --bs-gutter-x: 1rem;\n}\n\n.g-3,\n.gy-3 {\n --bs-gutter-y: 1rem;\n}\n\n.g-4,\n.gx-4 {\n --bs-gutter-x: 1.5rem;\n}\n\n.g-4,\n.gy-4 {\n --bs-gutter-y: 1.5rem;\n}\n\n.g-5,\n.gx-5 {\n --bs-gutter-x: 3rem;\n}\n\n.g-5,\n.gy-5 {\n --bs-gutter-y: 3rem;\n}\n\n@media (min-width: 540px) {\n .col-sm {\n flex: 1 0 0%;\n }\n .row-cols-sm-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-sm-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-sm-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-sm-3 > * {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .row-cols-sm-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-sm-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-sm-6 > * {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-sm-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-sm-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-sm-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-sm-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-sm-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-sm-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-sm-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-sm-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-sm-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.33333333%;\n }\n .offset-sm-2 {\n margin-left: 16.66666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.33333333%;\n }\n .offset-sm-5 {\n margin-left: 41.66666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.33333333%;\n }\n .offset-sm-8 {\n margin-left: 66.66666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.33333333%;\n }\n .offset-sm-11 {\n margin-left: 91.66666667%;\n }\n .g-sm-0,\n .gx-sm-0 {\n --bs-gutter-x: 0;\n }\n .g-sm-0,\n .gy-sm-0 {\n --bs-gutter-y: 0;\n }\n .g-sm-1,\n .gx-sm-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-sm-1,\n .gy-sm-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-sm-2,\n .gx-sm-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-sm-2,\n .gy-sm-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-sm-3,\n .gx-sm-3 {\n --bs-gutter-x: 1rem;\n }\n .g-sm-3,\n .gy-sm-3 {\n --bs-gutter-y: 1rem;\n }\n .g-sm-4,\n .gx-sm-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-sm-4,\n .gy-sm-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-sm-5,\n .gx-sm-5 {\n --bs-gutter-x: 3rem;\n }\n .g-sm-5,\n .gy-sm-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 720px) {\n .col-md {\n flex: 1 0 0%;\n }\n .row-cols-md-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-md-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-md-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-md-3 > * {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .row-cols-md-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-md-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-md-6 > * {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-md-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-md-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-md-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-md-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-md-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-md-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-md-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-md-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-md-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-md-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-md-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-md-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.33333333%;\n }\n .offset-md-2 {\n margin-left: 16.66666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.33333333%;\n }\n .offset-md-5 {\n margin-left: 41.66666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.33333333%;\n }\n .offset-md-8 {\n margin-left: 66.66666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.33333333%;\n }\n .offset-md-11 {\n margin-left: 91.66666667%;\n }\n .g-md-0,\n .gx-md-0 {\n --bs-gutter-x: 0;\n }\n .g-md-0,\n .gy-md-0 {\n --bs-gutter-y: 0;\n }\n .g-md-1,\n .gx-md-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-md-1,\n .gy-md-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-md-2,\n .gx-md-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-md-2,\n .gy-md-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-md-3,\n .gx-md-3 {\n --bs-gutter-x: 1rem;\n }\n .g-md-3,\n .gy-md-3 {\n --bs-gutter-y: 1rem;\n }\n .g-md-4,\n .gx-md-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-md-4,\n .gy-md-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-md-5,\n .gx-md-5 {\n --bs-gutter-x: 3rem;\n }\n .g-md-5,\n .gy-md-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 960px) {\n .col-lg {\n flex: 1 0 0%;\n }\n .row-cols-lg-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-lg-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-lg-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-lg-3 > * {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .row-cols-lg-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-lg-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-lg-6 > * {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-lg-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-lg-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-lg-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-lg-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-lg-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-lg-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-lg-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-lg-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-lg-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.33333333%;\n }\n .offset-lg-2 {\n margin-left: 16.66666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.33333333%;\n }\n .offset-lg-5 {\n margin-left: 41.66666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.33333333%;\n }\n .offset-lg-8 {\n margin-left: 66.66666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.33333333%;\n }\n .offset-lg-11 {\n margin-left: 91.66666667%;\n }\n .g-lg-0,\n .gx-lg-0 {\n --bs-gutter-x: 0;\n }\n .g-lg-0,\n .gy-lg-0 {\n --bs-gutter-y: 0;\n }\n .g-lg-1,\n .gx-lg-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-lg-1,\n .gy-lg-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-lg-2,\n .gx-lg-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-lg-2,\n .gy-lg-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-lg-3,\n .gx-lg-3 {\n --bs-gutter-x: 1rem;\n }\n .g-lg-3,\n .gy-lg-3 {\n --bs-gutter-y: 1rem;\n }\n .g-lg-4,\n .gx-lg-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-lg-4,\n .gy-lg-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-lg-5,\n .gx-lg-5 {\n --bs-gutter-x: 3rem;\n }\n .g-lg-5,\n .gy-lg-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 1200px) {\n .col-xl {\n flex: 1 0 0%;\n }\n .row-cols-xl-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-xl-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-xl-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-xl-3 > * {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .row-cols-xl-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-xl-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-xl-6 > * {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-xl-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-xl-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-xl-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-xl-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-xl-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-xl-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-xl-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-xl-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-xl-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.33333333%;\n }\n .offset-xl-2 {\n margin-left: 16.66666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.33333333%;\n }\n .offset-xl-5 {\n margin-left: 41.66666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.33333333%;\n }\n .offset-xl-8 {\n margin-left: 66.66666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.33333333%;\n }\n .offset-xl-11 {\n margin-left: 91.66666667%;\n }\n .g-xl-0,\n .gx-xl-0 {\n --bs-gutter-x: 0;\n }\n .g-xl-0,\n .gy-xl-0 {\n --bs-gutter-y: 0;\n }\n .g-xl-1,\n .gx-xl-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-xl-1,\n .gy-xl-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-xl-2,\n .gx-xl-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-xl-2,\n .gy-xl-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-xl-3,\n .gx-xl-3 {\n --bs-gutter-x: 1rem;\n }\n .g-xl-3,\n .gy-xl-3 {\n --bs-gutter-y: 1rem;\n }\n .g-xl-4,\n .gx-xl-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-xl-4,\n .gy-xl-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-xl-5,\n .gx-xl-5 {\n --bs-gutter-x: 3rem;\n }\n .g-xl-5,\n .gy-xl-5 {\n --bs-gutter-y: 3rem;\n }\n}\n.table {\n --bs-table-color-type: initial;\n --bs-table-bg-type: initial;\n --bs-table-color-state: initial;\n --bs-table-bg-state: initial;\n --bs-table-color: var(--bs-emphasis-color);\n --bs-table-bg: var(--bs-body-bg);\n --bs-table-border-color: var(--bs-border-color);\n --bs-table-accent-bg: transparent;\n --bs-table-striped-color: var(--bs-emphasis-color);\n --bs-table-striped-bg: rgba(var(--bs-emphasis-color-rgb), 0.05);\n --bs-table-active-color: var(--bs-emphasis-color);\n --bs-table-active-bg: rgba(var(--bs-emphasis-color-rgb), 0.1);\n --bs-table-hover-color: var(--bs-emphasis-color);\n --bs-table-hover-bg: rgba(var(--bs-emphasis-color-rgb), 0.075);\n width: 100%;\n margin-bottom: 1rem;\n vertical-align: top;\n border-color: var(--bs-table-border-color);\n}\n.table > :not(caption) > * > * {\n padding: 0.5rem 0.5rem;\n color: var(--bs-table-color-state, var(--bs-table-color-type, var(--bs-table-color)));\n background-color: var(--bs-table-bg);\n border-bottom-width: var(--bs-border-width);\n box-shadow: inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg)));\n}\n.table > tbody {\n vertical-align: inherit;\n}\n.table > thead {\n vertical-align: bottom;\n}\n\n.table-group-divider {\n border-top: calc(var(--bs-border-width) * 2) solid currentcolor;\n}\n\n.caption-top {\n caption-side: top;\n}\n\n.table-sm > :not(caption) > * > * {\n padding: 0.25rem 0.25rem;\n}\n\n.table-bordered > :not(caption) > * {\n border-width: var(--bs-border-width) 0;\n}\n.table-bordered > :not(caption) > * > * {\n border-width: 0 var(--bs-border-width);\n}\n\n.table-borderless > :not(caption) > * > * {\n border-bottom-width: 0;\n}\n.table-borderless > :not(:first-child) {\n border-top-width: 0;\n}\n\n.table-striped > tbody > tr:nth-of-type(odd) > * {\n --bs-table-color-type: var(--bs-table-striped-color);\n --bs-table-bg-type: var(--bs-table-striped-bg);\n}\n\n.table-striped-columns > :not(caption) > tr > :nth-child(even) {\n --bs-table-color-type: var(--bs-table-striped-color);\n --bs-table-bg-type: var(--bs-table-striped-bg);\n}\n\n.table-active {\n --bs-table-color-state: var(--bs-table-active-color);\n --bs-table-bg-state: var(--bs-table-active-bg);\n}\n\n.table-hover > tbody > tr:hover > * {\n --bs-table-color-state: var(--bs-table-hover-color);\n --bs-table-bg-state: var(--bs-table-hover-bg);\n}\n\n.table-primary {\n --bs-table-color: #000;\n --bs-table-bg: #cfe2ff;\n --bs-table-border-color: #a6b5cc;\n --bs-table-striped-bg: #c5d7f2;\n --bs-table-striped-color: #000;\n --bs-table-active-bg: #bacbe6;\n --bs-table-active-color: #000;\n --bs-table-hover-bg: #bfd1ec;\n --bs-table-hover-color: #000;\n color: var(--bs-table-color);\n border-color: var(--bs-table-border-color);\n}\n\n.table-secondary {\n --bs-table-color: #000;\n --bs-table-bg: #e2e3e5;\n --bs-table-border-color: #b5b6b7;\n --bs-table-striped-bg: #d7d8da;\n --bs-table-striped-color: #000;\n --bs-table-active-bg: #cbccce;\n --bs-table-active-color: #000;\n --bs-table-hover-bg: #d1d2d4;\n --bs-table-hover-color: #000;\n color: var(--bs-table-color);\n border-color: var(--bs-table-border-color);\n}\n\n.table-success {\n --bs-table-color: #000;\n --bs-table-bg: #d1e7dd;\n --bs-table-border-color: #a7b9b1;\n --bs-table-striped-bg: #c7dbd2;\n --bs-table-striped-color: #000;\n --bs-table-active-bg: #bcd0c7;\n --bs-table-active-color: #000;\n --bs-table-hover-bg: #c1d6cc;\n --bs-table-hover-color: #000;\n color: var(--bs-table-color);\n border-color: var(--bs-table-border-color);\n}\n\n.table-info {\n --bs-table-color: #000;\n --bs-table-bg: #cff4fc;\n --bs-table-border-color: #a6c3ca;\n --bs-table-striped-bg: #c5e8ef;\n --bs-table-striped-color: #000;\n --bs-table-active-bg: #badce3;\n --bs-table-active-color: #000;\n --bs-table-hover-bg: #bfe2e9;\n --bs-table-hover-color: #000;\n color: var(--bs-table-color);\n border-color: var(--bs-table-border-color);\n}\n\n.table-warning {\n --bs-table-color: #000;\n --bs-table-bg: #fff3cd;\n --bs-table-border-color: #ccc2a4;\n --bs-table-striped-bg: #f2e7c3;\n --bs-table-striped-color: #000;\n --bs-table-active-bg: #e6dbb9;\n --bs-table-active-color: #000;\n --bs-table-hover-bg: #ece1be;\n --bs-table-hover-color: #000;\n color: var(--bs-table-color);\n border-color: var(--bs-table-border-color);\n}\n\n.table-danger {\n --bs-table-color: #000;\n --bs-table-bg: #f8d7da;\n --bs-table-border-color: #c6acae;\n --bs-table-striped-bg: #eccccf;\n --bs-table-striped-color: #000;\n --bs-table-active-bg: #dfc2c4;\n --bs-table-active-color: #000;\n --bs-table-hover-bg: #e5c7ca;\n --bs-table-hover-color: #000;\n color: var(--bs-table-color);\n border-color: var(--bs-table-border-color);\n}\n\n.table-light {\n --bs-table-color: #000;\n --bs-table-bg: #f8f9fa;\n --bs-table-border-color: #c6c7c8;\n --bs-table-striped-bg: #ecedee;\n --bs-table-striped-color: #000;\n --bs-table-active-bg: #dfe0e1;\n --bs-table-active-color: #000;\n --bs-table-hover-bg: #e5e6e7;\n --bs-table-hover-color: #000;\n color: var(--bs-table-color);\n border-color: var(--bs-table-border-color);\n}\n\n.table-dark {\n --bs-table-color: #fff;\n --bs-table-bg: #212529;\n --bs-table-border-color: #4d5154;\n --bs-table-striped-bg: #2c3034;\n --bs-table-striped-color: #fff;\n --bs-table-active-bg: #373b3e;\n --bs-table-active-color: #fff;\n --bs-table-hover-bg: #323539;\n --bs-table-hover-color: #fff;\n color: var(--bs-table-color);\n border-color: var(--bs-table-border-color);\n}\n\n.table-responsive {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n@media (max-width: 539.98px) {\n .table-responsive-sm {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n}\n@media (max-width: 719.98px) {\n .table-responsive-md {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n}\n@media (max-width: 959.98px) {\n .table-responsive-lg {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n}\n@media (max-width: 1199.98px) {\n .table-responsive-xl {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n}\n.form-label {\n margin-bottom: 0.5rem;\n}\n\n.col-form-label {\n padding-top: calc(0.375rem + var(--bs-border-width));\n padding-bottom: calc(0.375rem + var(--bs-border-width));\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5;\n}\n\n.col-form-label-lg {\n padding-top: calc(0.5rem + var(--bs-border-width));\n padding-bottom: calc(0.5rem + var(--bs-border-width));\n font-size: 1.25rem;\n}\n\n.col-form-label-sm {\n padding-top: calc(0.25rem + var(--bs-border-width));\n padding-bottom: calc(0.25rem + var(--bs-border-width));\n font-size: 0.875rem;\n}\n\n.form-text {\n margin-top: 0.25rem;\n font-size: 0.875em;\n color: var(--bs-secondary-color);\n}\n\n.form-control {\n display: block;\n width: 100%;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: var(--bs-body-color);\n appearance: none;\n background-color: var(--bs-body-bg);\n background-clip: padding-box;\n border: var(--bs-border-width) solid var(--bs-border-color);\n border-radius: var(--bs-border-radius);\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none;\n }\n}\n.form-control[type=file] {\n overflow: hidden;\n}\n.form-control[type=file]:not(:disabled):not([readonly]) {\n cursor: pointer;\n}\n.form-control:focus {\n color: var(--bs-body-color);\n background-color: var(--bs-body-bg);\n border-color: #86b7fe;\n outline: 0;\n box-shadow: 0 0 0 0.1875rem var(--pst-color-accent);\n}\n.form-control::-webkit-date-and-time-value {\n min-width: 85px;\n height: 1.5em;\n margin: 0;\n}\n.form-control::-webkit-datetime-edit {\n display: block;\n padding: 0;\n}\n.form-control::placeholder {\n color: var(--bs-secondary-color);\n opacity: 1;\n}\n.form-control:disabled {\n background-color: var(--bs-secondary-bg);\n opacity: 1;\n}\n.form-control::file-selector-button {\n padding: 0.375rem 0.75rem;\n margin: -0.375rem -0.75rem;\n margin-inline-end: 0.75rem;\n color: var(--bs-body-color);\n background-color: var(--bs-tertiary-bg);\n pointer-events: none;\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n border-inline-end-width: var(--bs-border-width);\n border-radius: 0;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .form-control::file-selector-button {\n transition: none;\n }\n}\n.form-control:hover:not(:disabled):not([readonly])::file-selector-button {\n background-color: var(--bs-secondary-bg);\n}\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding: 0.375rem 0;\n margin-bottom: 0;\n line-height: 1.5;\n color: var(--bs-body-color);\n background-color: transparent;\n border: solid transparent;\n border-width: var(--bs-border-width) 0;\n}\n.form-control-plaintext:focus {\n outline: 0;\n}\n.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n}\n\n.form-control-sm {\n min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2));\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n border-radius: var(--bs-border-radius-sm);\n}\n.form-control-sm::file-selector-button {\n padding: 0.25rem 0.5rem;\n margin: -0.25rem -0.5rem;\n margin-inline-end: 0.5rem;\n}\n\n.form-control-lg {\n min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n border-radius: var(--bs-border-radius-lg);\n}\n.form-control-lg::file-selector-button {\n padding: 0.5rem 1rem;\n margin: -0.5rem -1rem;\n margin-inline-end: 1rem;\n}\n\ntextarea.form-control {\n min-height: calc(1.5em + 0.75rem + calc(var(--bs-border-width) * 2));\n}\ntextarea.form-control-sm {\n min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2));\n}\ntextarea.form-control-lg {\n min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));\n}\n\n.form-control-color {\n width: 3rem;\n height: calc(1.5em + 0.75rem + calc(var(--bs-border-width) * 2));\n padding: 0.375rem;\n}\n.form-control-color:not(:disabled):not([readonly]) {\n cursor: pointer;\n}\n.form-control-color::-moz-color-swatch {\n border: 0 !important;\n border-radius: var(--bs-border-radius);\n}\n.form-control-color::-webkit-color-swatch {\n border: 0 !important;\n border-radius: var(--bs-border-radius);\n}\n.form-control-color.form-control-sm {\n height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2));\n}\n.form-control-color.form-control-lg {\n height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));\n}\n\n.form-select {\n --bs-form-select-bg-img: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");\n display: block;\n width: 100%;\n padding: 0.375rem 2.25rem 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: var(--bs-body-color);\n appearance: none;\n background-color: var(--bs-body-bg);\n background-image: var(--bs-form-select-bg-img), var(--bs-form-select-bg-icon, none);\n background-repeat: no-repeat;\n background-position: right 0.75rem center;\n background-size: 16px 12px;\n border: var(--bs-border-width) solid var(--bs-border-color);\n border-radius: var(--bs-border-radius);\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .form-select {\n transition: none;\n }\n}\n.form-select:focus {\n border-color: #86b7fe;\n outline: 0;\n box-shadow: 0 0 0 0.1875rem var(--pst-color-accent);\n}\n.form-select[multiple], .form-select[size]:not([size=\"1\"]) {\n padding-right: 0.75rem;\n background-image: none;\n}\n.form-select:disabled {\n background-color: var(--bs-secondary-bg);\n}\n.form-select:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 var(--bs-body-color);\n}\n\n.form-select-sm {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n padding-left: 0.5rem;\n font-size: 0.875rem;\n border-radius: var(--bs-border-radius-sm);\n}\n\n.form-select-lg {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n padding-left: 1rem;\n font-size: 1.25rem;\n border-radius: var(--bs-border-radius-lg);\n}\n\n[data-bs-theme=dark] .form-select {\n --bs-form-select-bg-img: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");\n}\n\n.form-check {\n display: block;\n min-height: 1.5rem;\n padding-left: 1.5em;\n margin-bottom: 0.125rem;\n}\n.form-check .form-check-input {\n float: left;\n margin-left: -1.5em;\n}\n\n.form-check-reverse {\n padding-right: 1.5em;\n padding-left: 0;\n text-align: right;\n}\n.form-check-reverse .form-check-input {\n float: right;\n margin-right: -1.5em;\n margin-left: 0;\n}\n\n.form-check-input {\n --bs-form-check-bg: var(--bs-body-bg);\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n margin-top: 0.25em;\n vertical-align: top;\n appearance: none;\n background-color: var(--bs-form-check-bg);\n background-image: var(--bs-form-check-bg-image);\n background-repeat: no-repeat;\n background-position: center;\n background-size: contain;\n border: var(--bs-border-width) solid var(--bs-border-color);\n print-color-adjust: exact;\n}\n.form-check-input[type=checkbox] {\n border-radius: 0.25em;\n}\n.form-check-input[type=radio] {\n border-radius: 50%;\n}\n.form-check-input:active {\n filter: brightness(90%);\n}\n.form-check-input:focus {\n border-color: #86b7fe;\n outline: 0;\n box-shadow: 0 0 0 0.1875rem var(--pst-color-accent);\n}\n.form-check-input:checked {\n background-color: #0d6efd;\n border-color: #0d6efd;\n}\n.form-check-input:checked[type=checkbox] {\n --bs-form-check-bg-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e\");\n}\n.form-check-input:checked[type=radio] {\n --bs-form-check-bg-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e\");\n}\n.form-check-input[type=checkbox]:indeterminate {\n background-color: #0d6efd;\n border-color: #0d6efd;\n --bs-form-check-bg-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e\");\n}\n.form-check-input:disabled {\n pointer-events: none;\n filter: none;\n opacity: 0.5;\n}\n.form-check-input[disabled] ~ .form-check-label, .form-check-input:disabled ~ .form-check-label {\n cursor: default;\n opacity: 0.5;\n}\n\n.form-switch {\n padding-left: 2.5em;\n}\n.form-switch .form-check-input {\n --bs-form-switch-bg: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e\");\n width: 2em;\n margin-left: -2.5em;\n background-image: var(--bs-form-switch-bg);\n background-position: left center;\n border-radius: 2em;\n transition: background-position 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .form-switch .form-check-input {\n transition: none;\n }\n}\n.form-switch .form-check-input:focus {\n --bs-form-switch-bg: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e\");\n}\n.form-switch .form-check-input:checked {\n background-position: right center;\n --bs-form-switch-bg: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\");\n}\n.form-switch.form-check-reverse {\n padding-right: 2.5em;\n padding-left: 0;\n}\n.form-switch.form-check-reverse .form-check-input {\n margin-right: -2.5em;\n margin-left: 0;\n}\n\n.form-check-inline {\n display: inline-block;\n margin-right: 1rem;\n}\n\n.btn-check {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n.btn-check[disabled] + .btn, .btn-check:disabled + .btn {\n pointer-events: none;\n filter: none;\n opacity: 0.65;\n}\n\n[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus) {\n --bs-form-switch-bg: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e\");\n}\n\n.form-range {\n width: 100%;\n height: 1.375rem;\n padding: 0;\n appearance: none;\n background-color: transparent;\n}\n.form-range:focus {\n outline: 0;\n}\n.form-range:focus::-webkit-slider-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.1875rem var(--pst-color-accent);\n}\n.form-range:focus::-moz-range-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.1875rem var(--pst-color-accent);\n}\n.form-range::-moz-focus-outer {\n border: 0;\n}\n.form-range::-webkit-slider-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: -0.25rem;\n appearance: none;\n background-color: #0d6efd;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .form-range::-webkit-slider-thumb {\n transition: none;\n }\n}\n.form-range::-webkit-slider-thumb:active {\n background-color: #b6d4fe;\n}\n.form-range::-webkit-slider-runnable-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: var(--bs-secondary-bg);\n border-color: transparent;\n border-radius: 1rem;\n}\n.form-range::-moz-range-thumb {\n width: 1rem;\n height: 1rem;\n appearance: none;\n background-color: #0d6efd;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .form-range::-moz-range-thumb {\n transition: none;\n }\n}\n.form-range::-moz-range-thumb:active {\n background-color: #b6d4fe;\n}\n.form-range::-moz-range-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: var(--bs-secondary-bg);\n border-color: transparent;\n border-radius: 1rem;\n}\n.form-range:disabled {\n pointer-events: none;\n}\n.form-range:disabled::-webkit-slider-thumb {\n background-color: var(--bs-secondary-color);\n}\n.form-range:disabled::-moz-range-thumb {\n background-color: var(--bs-secondary-color);\n}\n\n.form-floating {\n position: relative;\n}\n.form-floating > .form-control,\n.form-floating > .form-control-plaintext,\n.form-floating > .form-select {\n height: calc(3.5rem + calc(var(--bs-border-width) * 2));\n min-height: calc(3.5rem + calc(var(--bs-border-width) * 2));\n line-height: 1.25;\n}\n.form-floating > label {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 2;\n height: 100%;\n padding: 1rem 0.75rem;\n overflow: hidden;\n text-align: start;\n text-overflow: ellipsis;\n white-space: nowrap;\n pointer-events: none;\n border: var(--bs-border-width) solid transparent;\n transform-origin: 0 0;\n transition: opacity 0.1s ease-in-out, transform 0.1s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .form-floating > label {\n transition: none;\n }\n}\n.form-floating > .form-control,\n.form-floating > .form-control-plaintext {\n padding: 1rem 0.75rem;\n}\n.form-floating > .form-control::placeholder,\n.form-floating > .form-control-plaintext::placeholder {\n color: transparent;\n}\n.form-floating > .form-control:focus, .form-floating > .form-control:not(:placeholder-shown),\n.form-floating > .form-control-plaintext:focus,\n.form-floating > .form-control-plaintext:not(:placeholder-shown) {\n padding-top: 1.625rem;\n padding-bottom: 0.625rem;\n}\n.form-floating > .form-control:-webkit-autofill,\n.form-floating > .form-control-plaintext:-webkit-autofill {\n padding-top: 1.625rem;\n padding-bottom: 0.625rem;\n}\n.form-floating > .form-select {\n padding-top: 1.625rem;\n padding-bottom: 0.625rem;\n}\n.form-floating > .form-control:focus ~ label,\n.form-floating > .form-control:not(:placeholder-shown) ~ label,\n.form-floating > .form-control-plaintext ~ label,\n.form-floating > .form-select ~ label {\n color: rgba(var(--bs-body-color-rgb), 0.65);\n transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);\n}\n.form-floating > .form-control:focus ~ label::after,\n.form-floating > .form-control:not(:placeholder-shown) ~ label::after,\n.form-floating > .form-control-plaintext ~ label::after,\n.form-floating > .form-select ~ label::after {\n position: absolute;\n inset: 1rem 0.375rem;\n z-index: -1;\n height: 1.5em;\n content: \"\";\n background-color: var(--bs-body-bg);\n border-radius: var(--bs-border-radius);\n}\n.form-floating > .form-control:-webkit-autofill ~ label {\n color: rgba(var(--bs-body-color-rgb), 0.65);\n transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);\n}\n.form-floating > .form-control-plaintext ~ label {\n border-width: var(--bs-border-width) 0;\n}\n.form-floating > :disabled ~ label,\n.form-floating > .form-control:disabled ~ label {\n color: #6c757d;\n}\n.form-floating > :disabled ~ label::after,\n.form-floating > .form-control:disabled ~ label::after {\n background-color: var(--bs-secondary-bg);\n}\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: stretch;\n width: 100%;\n}\n.input-group > .form-control,\n.input-group > .form-select,\n.input-group > .form-floating {\n position: relative;\n flex: 1 1 auto;\n width: 1%;\n min-width: 0;\n}\n.input-group > .form-control:focus,\n.input-group > .form-select:focus,\n.input-group > .form-floating:focus-within {\n z-index: 5;\n}\n.input-group .btn {\n position: relative;\n z-index: 2;\n}\n.input-group .btn:focus {\n z-index: 5;\n}\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: var(--bs-body-color);\n text-align: center;\n white-space: nowrap;\n background-color: var(--bs-tertiary-bg);\n border: var(--bs-border-width) solid var(--bs-border-color);\n border-radius: var(--bs-border-radius);\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .form-select,\n.input-group-lg > .input-group-text,\n.input-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n border-radius: var(--bs-border-radius-lg);\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .form-select,\n.input-group-sm > .input-group-text,\n.input-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n border-radius: var(--bs-border-radius-sm);\n}\n\n.input-group-lg > .form-select,\n.input-group-sm > .form-select {\n padding-right: 3rem;\n}\n\n.input-group:not(.has-validation) > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),\n.input-group:not(.has-validation) > .dropdown-toggle:nth-last-child(n+3),\n.input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-control,\n.input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-select {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.input-group.has-validation > :nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),\n.input-group.has-validation > .dropdown-toggle:nth-last-child(n+4),\n.input-group.has-validation > .form-floating:nth-last-child(n+3) > .form-control,\n.input-group.has-validation > .form-floating:nth-last-child(n+3) > .form-select {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.input-group > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) {\n margin-left: calc(var(--bs-border-width) * -1);\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.input-group > .form-floating:not(:first-child) > .form-control,\n.input-group > .form-floating:not(:first-child) > .form-select {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 0.875em;\n color: var(--bs-form-valid-color);\n}\n\n.valid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: 0.1rem;\n font-size: 0.875rem;\n color: #fff;\n background-color: var(--bs-success);\n border-radius: var(--bs-border-radius);\n}\n\n.was-validated :valid ~ .valid-feedback,\n.was-validated :valid ~ .valid-tooltip,\n.is-valid ~ .valid-feedback,\n.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid {\n border-color: var(--bs-form-valid-border-color);\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n border-color: var(--bs-form-valid-border-color);\n box-shadow: 0 0 0 0.1875rem rgba(var(--bs-success-rgb), 1);\n}\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .form-select:valid, .form-select.is-valid {\n border-color: var(--bs-form-valid-border-color);\n}\n.was-validated .form-select:valid:not([multiple]):not([size]), .was-validated .form-select:valid:not([multiple])[size=\"1\"], .form-select.is-valid:not([multiple]):not([size]), .form-select.is-valid:not([multiple])[size=\"1\"] {\n --bs-form-select-bg-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");\n padding-right: 4.125rem;\n background-position: right 0.75rem center, center right 2.25rem;\n background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n.was-validated .form-select:valid:focus, .form-select.is-valid:focus {\n border-color: var(--bs-form-valid-border-color);\n box-shadow: 0 0 0 0.1875rem rgba(var(--bs-success-rgb), 1);\n}\n\n.was-validated .form-control-color:valid, .form-control-color.is-valid {\n width: calc(3rem + calc(1.5em + 0.75rem));\n}\n\n.was-validated .form-check-input:valid, .form-check-input.is-valid {\n border-color: var(--bs-form-valid-border-color);\n}\n.was-validated .form-check-input:valid:checked, .form-check-input.is-valid:checked {\n background-color: var(--bs-form-valid-color);\n}\n.was-validated .form-check-input:valid:focus, .form-check-input.is-valid:focus {\n box-shadow: 0 0 0 0.1875rem rgba(var(--bs-success-rgb), 1);\n}\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: var(--bs-form-valid-color);\n}\n\n.form-check-inline .form-check-input ~ .valid-feedback {\n margin-left: 0.5em;\n}\n\n.was-validated .input-group > .form-control:not(:focus):valid, .input-group > .form-control:not(:focus).is-valid,\n.was-validated .input-group > .form-select:not(:focus):valid,\n.input-group > .form-select:not(:focus).is-valid,\n.was-validated .input-group > .form-floating:not(:focus-within):valid,\n.input-group > .form-floating:not(:focus-within).is-valid {\n z-index: 3;\n}\n\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 0.875em;\n color: var(--bs-form-invalid-color);\n}\n\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: 0.1rem;\n font-size: 0.875rem;\n color: #fff;\n background-color: var(--bs-danger);\n border-radius: var(--bs-border-radius);\n}\n\n.was-validated :invalid ~ .invalid-feedback,\n.was-validated :invalid ~ .invalid-tooltip,\n.is-invalid ~ .invalid-feedback,\n.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n border-color: var(--bs-form-invalid-border-color);\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n border-color: var(--bs-form-invalid-border-color);\n box-shadow: 0 0 0 0.1875rem rgba(var(--bs-danger-rgb), 1);\n}\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .form-select:invalid, .form-select.is-invalid {\n border-color: var(--bs-form-invalid-border-color);\n}\n.was-validated .form-select:invalid:not([multiple]):not([size]), .was-validated .form-select:invalid:not([multiple])[size=\"1\"], .form-select.is-invalid:not([multiple]):not([size]), .form-select.is-invalid:not([multiple])[size=\"1\"] {\n --bs-form-select-bg-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");\n padding-right: 4.125rem;\n background-position: right 0.75rem center, center right 2.25rem;\n background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n.was-validated .form-select:invalid:focus, .form-select.is-invalid:focus {\n border-color: var(--bs-form-invalid-border-color);\n box-shadow: 0 0 0 0.1875rem rgba(var(--bs-danger-rgb), 1);\n}\n\n.was-validated .form-control-color:invalid, .form-control-color.is-invalid {\n width: calc(3rem + calc(1.5em + 0.75rem));\n}\n\n.was-validated .form-check-input:invalid, .form-check-input.is-invalid {\n border-color: var(--bs-form-invalid-border-color);\n}\n.was-validated .form-check-input:invalid:checked, .form-check-input.is-invalid:checked {\n background-color: var(--bs-form-invalid-color);\n}\n.was-validated .form-check-input:invalid:focus, .form-check-input.is-invalid:focus {\n box-shadow: 0 0 0 0.1875rem rgba(var(--bs-danger-rgb), 1);\n}\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: var(--bs-form-invalid-color);\n}\n\n.form-check-inline .form-check-input ~ .invalid-feedback {\n margin-left: 0.5em;\n}\n\n.was-validated .input-group > .form-control:not(:focus):invalid, .input-group > .form-control:not(:focus).is-invalid,\n.was-validated .input-group > .form-select:not(:focus):invalid,\n.input-group > .form-select:not(:focus).is-invalid,\n.was-validated .input-group > .form-floating:not(:focus-within):invalid,\n.input-group > .form-floating:not(:focus-within).is-invalid {\n z-index: 4;\n}\n\n.btn {\n --bs-btn-padding-x: 0.75rem;\n --bs-btn-padding-y: 0.375rem;\n --bs-btn-font-family: ;\n --bs-btn-font-size: 1rem;\n --bs-btn-font-weight: 400;\n --bs-btn-line-height: 1.5;\n --bs-btn-color: var(--bs-body-color);\n --bs-btn-bg: transparent;\n --bs-btn-border-width: var(--bs-border-width);\n --bs-btn-border-color: transparent;\n --bs-btn-border-radius: var(--bs-border-radius);\n --bs-btn-hover-border-color: transparent;\n --bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n --bs-btn-disabled-opacity: 0.65;\n --bs-btn-focus-box-shadow: 0 0 0 0.1875rem rgba(var(--bs-btn-focus-shadow-rgb), .5);\n display: inline-block;\n padding: var(--bs-btn-padding-y) var(--bs-btn-padding-x);\n font-family: var(--bs-btn-font-family);\n font-size: var(--bs-btn-font-size);\n font-weight: var(--bs-btn-font-weight);\n line-height: var(--bs-btn-line-height);\n color: var(--bs-btn-color);\n text-align: center;\n text-decoration: none;\n vertical-align: middle;\n cursor: pointer;\n user-select: none;\n border: var(--bs-btn-border-width) solid var(--bs-btn-border-color);\n border-radius: var(--bs-btn-border-radius);\n background-color: var(--bs-btn-bg);\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .btn {\n transition: none;\n }\n}\n.btn:hover {\n color: var(--bs-btn-hover-color);\n background-color: var(--bs-btn-hover-bg);\n border-color: var(--bs-btn-hover-border-color);\n}\n.btn-check + .btn:hover {\n color: var(--bs-btn-color);\n background-color: var(--bs-btn-bg);\n border-color: var(--bs-btn-border-color);\n}\n.btn:focus-visible {\n color: var(--bs-btn-hover-color);\n background-color: var(--bs-btn-hover-bg);\n border-color: var(--bs-btn-hover-border-color);\n outline: 0;\n box-shadow: var(--bs-btn-focus-box-shadow);\n}\n.btn-check:focus-visible + .btn {\n border-color: var(--bs-btn-hover-border-color);\n outline: 0;\n box-shadow: var(--bs-btn-focus-box-shadow);\n}\n.btn-check:checked + .btn, :not(.btn-check) + .btn:active, .btn:first-child:active, .btn.active, .btn.show {\n color: var(--bs-btn-active-color);\n background-color: var(--bs-btn-active-bg);\n border-color: var(--bs-btn-active-border-color);\n}\n.btn-check:checked + .btn:focus-visible, :not(.btn-check) + .btn:active:focus-visible, .btn:first-child:active:focus-visible, .btn.active:focus-visible, .btn.show:focus-visible {\n box-shadow: var(--bs-btn-focus-box-shadow);\n}\n.btn-check:checked:focus-visible + .btn {\n box-shadow: var(--bs-btn-focus-box-shadow);\n}\n.btn:disabled, .btn.disabled, fieldset:disabled .btn {\n color: var(--bs-btn-disabled-color);\n pointer-events: none;\n background-color: var(--bs-btn-disabled-bg);\n border-color: var(--bs-btn-disabled-border-color);\n opacity: var(--bs-btn-disabled-opacity);\n}\n\n.btn-primary {\n --bs-btn-color: #fff;\n --bs-btn-bg: #0d6efd;\n --bs-btn-border-color: #0d6efd;\n --bs-btn-hover-color: #fff;\n --bs-btn-hover-bg: #0b5ed7;\n --bs-btn-hover-border-color: #0a58ca;\n --bs-btn-focus-shadow-rgb: 49, 132, 253;\n --bs-btn-active-color: #fff;\n --bs-btn-active-bg: #0a58ca;\n --bs-btn-active-border-color: #0a53be;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #fff;\n --bs-btn-disabled-bg: #0d6efd;\n --bs-btn-disabled-border-color: #0d6efd;\n}\n\n.btn-secondary {\n --bs-btn-color: #fff;\n --bs-btn-bg: #6c757d;\n --bs-btn-border-color: #6c757d;\n --bs-btn-hover-color: #fff;\n --bs-btn-hover-bg: #5c636a;\n --bs-btn-hover-border-color: #565e64;\n --bs-btn-focus-shadow-rgb: 130, 138, 145;\n --bs-btn-active-color: #fff;\n --bs-btn-active-bg: #565e64;\n --bs-btn-active-border-color: #51585e;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #fff;\n --bs-btn-disabled-bg: #6c757d;\n --bs-btn-disabled-border-color: #6c757d;\n}\n\n.btn-success {\n --bs-btn-color: #fff;\n --bs-btn-bg: #198754;\n --bs-btn-border-color: #198754;\n --bs-btn-hover-color: #fff;\n --bs-btn-hover-bg: #157347;\n --bs-btn-hover-border-color: #146c43;\n --bs-btn-focus-shadow-rgb: 60, 153, 110;\n --bs-btn-active-color: #fff;\n --bs-btn-active-bg: #146c43;\n --bs-btn-active-border-color: #13653f;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #fff;\n --bs-btn-disabled-bg: #198754;\n --bs-btn-disabled-border-color: #198754;\n}\n\n.btn-info {\n --bs-btn-color: #000;\n --bs-btn-bg: #0dcaf0;\n --bs-btn-border-color: #0dcaf0;\n --bs-btn-hover-color: #000;\n --bs-btn-hover-bg: #31d2f2;\n --bs-btn-hover-border-color: #25cff2;\n --bs-btn-focus-shadow-rgb: 11, 172, 204;\n --bs-btn-active-color: #000;\n --bs-btn-active-bg: #3dd5f3;\n --bs-btn-active-border-color: #25cff2;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #000;\n --bs-btn-disabled-bg: #0dcaf0;\n --bs-btn-disabled-border-color: #0dcaf0;\n}\n\n.btn-warning {\n --bs-btn-color: #000;\n --bs-btn-bg: #ffc107;\n --bs-btn-border-color: #ffc107;\n --bs-btn-hover-color: #000;\n --bs-btn-hover-bg: #ffca2c;\n --bs-btn-hover-border-color: #ffc720;\n --bs-btn-focus-shadow-rgb: 217, 164, 6;\n --bs-btn-active-color: #000;\n --bs-btn-active-bg: #ffcd39;\n --bs-btn-active-border-color: #ffc720;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #000;\n --bs-btn-disabled-bg: #ffc107;\n --bs-btn-disabled-border-color: #ffc107;\n}\n\n.btn-danger {\n --bs-btn-color: #fff;\n --bs-btn-bg: #dc3545;\n --bs-btn-border-color: #dc3545;\n --bs-btn-hover-color: #fff;\n --bs-btn-hover-bg: #bb2d3b;\n --bs-btn-hover-border-color: #b02a37;\n --bs-btn-focus-shadow-rgb: 225, 83, 97;\n --bs-btn-active-color: #fff;\n --bs-btn-active-bg: #b02a37;\n --bs-btn-active-border-color: #a52834;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #fff;\n --bs-btn-disabled-bg: #dc3545;\n --bs-btn-disabled-border-color: #dc3545;\n}\n\n.btn-light {\n --bs-btn-color: #000;\n --bs-btn-bg: #f8f9fa;\n --bs-btn-border-color: #f8f9fa;\n --bs-btn-hover-color: #000;\n --bs-btn-hover-bg: #d3d4d5;\n --bs-btn-hover-border-color: #c6c7c8;\n --bs-btn-focus-shadow-rgb: 211, 212, 213;\n --bs-btn-active-color: #000;\n --bs-btn-active-bg: #c6c7c8;\n --bs-btn-active-border-color: #babbbc;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #000;\n --bs-btn-disabled-bg: #f8f9fa;\n --bs-btn-disabled-border-color: #f8f9fa;\n}\n\n.btn-dark {\n --bs-btn-color: #fff;\n --bs-btn-bg: #212529;\n --bs-btn-border-color: #212529;\n --bs-btn-hover-color: #fff;\n --bs-btn-hover-bg: #424649;\n --bs-btn-hover-border-color: #373b3e;\n --bs-btn-focus-shadow-rgb: 66, 70, 73;\n --bs-btn-active-color: #fff;\n --bs-btn-active-bg: #4d5154;\n --bs-btn-active-border-color: #373b3e;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #fff;\n --bs-btn-disabled-bg: #212529;\n --bs-btn-disabled-border-color: #212529;\n}\n\n.btn-outline-primary {\n --bs-btn-color: #0d6efd;\n --bs-btn-border-color: #0d6efd;\n --bs-btn-hover-color: #fff;\n --bs-btn-hover-bg: #0d6efd;\n --bs-btn-hover-border-color: #0d6efd;\n --bs-btn-focus-shadow-rgb: 13, 110, 253;\n --bs-btn-active-color: #fff;\n --bs-btn-active-bg: #0d6efd;\n --bs-btn-active-border-color: #0d6efd;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #0d6efd;\n --bs-btn-disabled-bg: transparent;\n --bs-btn-disabled-border-color: #0d6efd;\n --bs-gradient: none;\n}\n\n.btn-outline-secondary {\n --bs-btn-color: #6c757d;\n --bs-btn-border-color: #6c757d;\n --bs-btn-hover-color: #fff;\n --bs-btn-hover-bg: #6c757d;\n --bs-btn-hover-border-color: #6c757d;\n --bs-btn-focus-shadow-rgb: 108, 117, 125;\n --bs-btn-active-color: #fff;\n --bs-btn-active-bg: #6c757d;\n --bs-btn-active-border-color: #6c757d;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #6c757d;\n --bs-btn-disabled-bg: transparent;\n --bs-btn-disabled-border-color: #6c757d;\n --bs-gradient: none;\n}\n\n.btn-outline-success {\n --bs-btn-color: #198754;\n --bs-btn-border-color: #198754;\n --bs-btn-hover-color: #fff;\n --bs-btn-hover-bg: #198754;\n --bs-btn-hover-border-color: #198754;\n --bs-btn-focus-shadow-rgb: 25, 135, 84;\n --bs-btn-active-color: #fff;\n --bs-btn-active-bg: #198754;\n --bs-btn-active-border-color: #198754;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #198754;\n --bs-btn-disabled-bg: transparent;\n --bs-btn-disabled-border-color: #198754;\n --bs-gradient: none;\n}\n\n.btn-outline-info {\n --bs-btn-color: #0dcaf0;\n --bs-btn-border-color: #0dcaf0;\n --bs-btn-hover-color: #000;\n --bs-btn-hover-bg: #0dcaf0;\n --bs-btn-hover-border-color: #0dcaf0;\n --bs-btn-focus-shadow-rgb: 13, 202, 240;\n --bs-btn-active-color: #000;\n --bs-btn-active-bg: #0dcaf0;\n --bs-btn-active-border-color: #0dcaf0;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #0dcaf0;\n --bs-btn-disabled-bg: transparent;\n --bs-btn-disabled-border-color: #0dcaf0;\n --bs-gradient: none;\n}\n\n.btn-outline-warning {\n --bs-btn-color: #ffc107;\n --bs-btn-border-color: #ffc107;\n --bs-btn-hover-color: #000;\n --bs-btn-hover-bg: #ffc107;\n --bs-btn-hover-border-color: #ffc107;\n --bs-btn-focus-shadow-rgb: 255, 193, 7;\n --bs-btn-active-color: #000;\n --bs-btn-active-bg: #ffc107;\n --bs-btn-active-border-color: #ffc107;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #ffc107;\n --bs-btn-disabled-bg: transparent;\n --bs-btn-disabled-border-color: #ffc107;\n --bs-gradient: none;\n}\n\n.btn-outline-danger {\n --bs-btn-color: #dc3545;\n --bs-btn-border-color: #dc3545;\n --bs-btn-hover-color: #fff;\n --bs-btn-hover-bg: #dc3545;\n --bs-btn-hover-border-color: #dc3545;\n --bs-btn-focus-shadow-rgb: 220, 53, 69;\n --bs-btn-active-color: #fff;\n --bs-btn-active-bg: #dc3545;\n --bs-btn-active-border-color: #dc3545;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #dc3545;\n --bs-btn-disabled-bg: transparent;\n --bs-btn-disabled-border-color: #dc3545;\n --bs-gradient: none;\n}\n\n.btn-outline-light {\n --bs-btn-color: #f8f9fa;\n --bs-btn-border-color: #f8f9fa;\n --bs-btn-hover-color: #000;\n --bs-btn-hover-bg: #f8f9fa;\n --bs-btn-hover-border-color: #f8f9fa;\n --bs-btn-focus-shadow-rgb: 248, 249, 250;\n --bs-btn-active-color: #000;\n --bs-btn-active-bg: #f8f9fa;\n --bs-btn-active-border-color: #f8f9fa;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #f8f9fa;\n --bs-btn-disabled-bg: transparent;\n --bs-btn-disabled-border-color: #f8f9fa;\n --bs-gradient: none;\n}\n\n.btn-outline-dark {\n --bs-btn-color: #212529;\n --bs-btn-border-color: #212529;\n --bs-btn-hover-color: #fff;\n --bs-btn-hover-bg: #212529;\n --bs-btn-hover-border-color: #212529;\n --bs-btn-focus-shadow-rgb: 33, 37, 41;\n --bs-btn-active-color: #fff;\n --bs-btn-active-bg: #212529;\n --bs-btn-active-border-color: #212529;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #212529;\n --bs-btn-disabled-bg: transparent;\n --bs-btn-disabled-border-color: #212529;\n --bs-gradient: none;\n}\n\n.btn-link {\n --bs-btn-font-weight: 400;\n --bs-btn-color: var(--bs-link-color);\n --bs-btn-bg: transparent;\n --bs-btn-border-color: transparent;\n --bs-btn-hover-color: var(--bs-link-hover-color);\n --bs-btn-hover-border-color: transparent;\n --bs-btn-active-color: var(--bs-link-hover-color);\n --bs-btn-active-border-color: transparent;\n --bs-btn-disabled-color: #6c757d;\n --bs-btn-disabled-border-color: transparent;\n --bs-btn-box-shadow: 0 0 0 #000;\n --bs-btn-focus-shadow-rgb: 49, 132, 253;\n text-decoration: underline;\n}\n.btn-link:focus-visible {\n color: var(--bs-btn-color);\n}\n.btn-link:hover {\n color: var(--bs-btn-hover-color);\n}\n\n.btn-lg, .btn-group-lg > .btn {\n --bs-btn-padding-y: 0.5rem;\n --bs-btn-padding-x: 1rem;\n --bs-btn-font-size: 1.25rem;\n --bs-btn-border-radius: var(--bs-border-radius-lg);\n}\n\n.btn-sm, .btn-group-sm > .btn {\n --bs-btn-padding-y: 0.25rem;\n --bs-btn-padding-x: 0.5rem;\n --bs-btn-font-size: 0.875rem;\n --bs-btn-border-radius: var(--bs-border-radius-sm);\n}\n\n.fade {\n transition: opacity 0.15s linear;\n}\n@media (prefers-reduced-motion: reduce) {\n .fade {\n transition: none;\n }\n}\n.fade:not(.show) {\n opacity: 0;\n}\n\n.collapse:not(.show) {\n display: none;\n}\n\n.collapsing {\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease;\n}\n@media (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none;\n }\n}\n.collapsing.collapse-horizontal {\n width: 0;\n height: auto;\n transition: width 0.35s ease;\n}\n@media (prefers-reduced-motion: reduce) {\n .collapsing.collapse-horizontal {\n transition: none;\n }\n}\n\n.dropup,\n.dropend,\n.dropdown,\n.dropstart,\n.dropup-center,\n.dropdown-center {\n position: relative;\n}\n\n.dropdown-toggle {\n white-space: nowrap;\n}\n.dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent;\n}\n.dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropdown-menu {\n --bs-dropdown-zindex: 1000;\n --bs-dropdown-min-width: 10rem;\n --bs-dropdown-padding-x: 0;\n --bs-dropdown-padding-y: 0.5rem;\n --bs-dropdown-spacer: 0.125rem;\n --bs-dropdown-font-size: 1rem;\n --bs-dropdown-color: var(--bs-body-color);\n --bs-dropdown-bg: var(--bs-body-bg);\n --bs-dropdown-border-color: var(--bs-border-color-translucent);\n --bs-dropdown-border-radius: var(--bs-border-radius);\n --bs-dropdown-border-width: var(--bs-border-width);\n --bs-dropdown-inner-border-radius: calc(var(--bs-border-radius) - var(--bs-border-width));\n --bs-dropdown-divider-bg: var(--bs-border-color-translucent);\n --bs-dropdown-divider-margin-y: 0.5rem;\n --bs-dropdown-box-shadow: var(--bs-box-shadow);\n --bs-dropdown-link-color: var(--bs-body-color);\n --bs-dropdown-link-hover-color: var(--bs-body-color);\n --bs-dropdown-link-hover-bg: var(--pst-color-surface);\n --bs-dropdown-link-active-color: var(--pst-color-primary);\n --bs-dropdown-link-active-bg: var(--pst-color-surface);\n --bs-dropdown-link-disabled-color: var(--bs-tertiary-color);\n --bs-dropdown-item-padding-x: 1rem;\n --bs-dropdown-item-padding-y: 0.25rem;\n --bs-dropdown-header-color: #6c757d;\n --bs-dropdown-header-padding-x: 1rem;\n --bs-dropdown-header-padding-y: 0.5rem;\n position: absolute;\n z-index: var(--bs-dropdown-zindex);\n display: none;\n min-width: var(--bs-dropdown-min-width);\n padding: var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);\n margin: 0;\n font-size: var(--bs-dropdown-font-size);\n color: var(--bs-dropdown-color);\n text-align: left;\n list-style: none;\n background-color: var(--bs-dropdown-bg);\n background-clip: padding-box;\n border: var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);\n border-radius: var(--bs-dropdown-border-radius);\n}\n.dropdown-menu[data-bs-popper] {\n top: 100%;\n left: 0;\n margin-top: var(--bs-dropdown-spacer);\n}\n\n.dropdown-menu-start {\n --bs-position: start;\n}\n.dropdown-menu-start[data-bs-popper] {\n right: auto;\n left: 0;\n}\n\n.dropdown-menu-end {\n --bs-position: end;\n}\n.dropdown-menu-end[data-bs-popper] {\n right: 0;\n left: auto;\n}\n\n@media (min-width: 540px) {\n .dropdown-menu-sm-start {\n --bs-position: start;\n }\n .dropdown-menu-sm-start[data-bs-popper] {\n right: auto;\n left: 0;\n }\n .dropdown-menu-sm-end {\n --bs-position: end;\n }\n .dropdown-menu-sm-end[data-bs-popper] {\n right: 0;\n left: auto;\n }\n}\n@media (min-width: 720px) {\n .dropdown-menu-md-start {\n --bs-position: start;\n }\n .dropdown-menu-md-start[data-bs-popper] {\n right: auto;\n left: 0;\n }\n .dropdown-menu-md-end {\n --bs-position: end;\n }\n .dropdown-menu-md-end[data-bs-popper] {\n right: 0;\n left: auto;\n }\n}\n@media (min-width: 960px) {\n .dropdown-menu-lg-start {\n --bs-position: start;\n }\n .dropdown-menu-lg-start[data-bs-popper] {\n right: auto;\n left: 0;\n }\n .dropdown-menu-lg-end {\n --bs-position: end;\n }\n .dropdown-menu-lg-end[data-bs-popper] {\n right: 0;\n left: auto;\n }\n}\n@media (min-width: 1200px) {\n .dropdown-menu-xl-start {\n --bs-position: start;\n }\n .dropdown-menu-xl-start[data-bs-popper] {\n right: auto;\n left: 0;\n }\n .dropdown-menu-xl-end {\n --bs-position: end;\n }\n .dropdown-menu-xl-end[data-bs-popper] {\n right: 0;\n left: auto;\n }\n}\n.dropup .dropdown-menu[data-bs-popper] {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: var(--bs-dropdown-spacer);\n}\n.dropup .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent;\n}\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropend .dropdown-menu[data-bs-popper] {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: var(--bs-dropdown-spacer);\n}\n.dropend .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid;\n}\n.dropend .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n.dropend .dropdown-toggle::after {\n vertical-align: 0;\n}\n\n.dropstart .dropdown-menu[data-bs-popper] {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: var(--bs-dropdown-spacer);\n}\n.dropstart .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n}\n.dropstart .dropdown-toggle::after {\n display: none;\n}\n.dropstart .dropdown-toggle::before {\n display: inline-block;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent;\n}\n.dropstart .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n.dropstart .dropdown-toggle::before {\n vertical-align: 0;\n}\n\n.dropdown-divider {\n height: 0;\n margin: var(--bs-dropdown-divider-margin-y) 0;\n overflow: hidden;\n border-top: 1px solid var(--bs-dropdown-divider-bg);\n opacity: 1;\n}\n\n.dropdown-item {\n display: block;\n width: 100%;\n padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);\n clear: both;\n font-weight: 400;\n color: var(--bs-dropdown-link-color);\n text-align: inherit;\n text-decoration: none;\n white-space: nowrap;\n background-color: transparent;\n border: 0;\n border-radius: var(--bs-dropdown-item-border-radius, 0);\n}\n.dropdown-item:hover, .dropdown-item:focus {\n color: var(--bs-dropdown-link-hover-color);\n background-color: var(--bs-dropdown-link-hover-bg);\n}\n.dropdown-item.active, .dropdown-item:active {\n color: var(--bs-dropdown-link-active-color);\n text-decoration: none;\n background-color: var(--bs-dropdown-link-active-bg);\n}\n.dropdown-item.disabled, .dropdown-item:disabled {\n color: var(--bs-dropdown-link-disabled-color);\n pointer-events: none;\n background-color: transparent;\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n.dropdown-header {\n display: block;\n padding: var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);\n margin-bottom: 0;\n font-size: 0.875rem;\n color: var(--bs-dropdown-header-color);\n white-space: nowrap;\n}\n\n.dropdown-item-text {\n display: block;\n padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);\n color: var(--bs-dropdown-link-color);\n}\n\n.dropdown-menu-dark {\n --bs-dropdown-color: #dee2e6;\n --bs-dropdown-bg: #343a40;\n --bs-dropdown-border-color: var(--bs-border-color-translucent);\n --bs-dropdown-box-shadow: ;\n --bs-dropdown-link-color: #dee2e6;\n --bs-dropdown-link-hover-color: #fff;\n --bs-dropdown-divider-bg: var(--bs-border-color-translucent);\n --bs-dropdown-link-hover-bg: var(--pst-color-surface);\n --bs-dropdown-link-active-color: var(--pst-color-primary);\n --bs-dropdown-link-active-bg: var(--pst-color-surface);\n --bs-dropdown-link-disabled-color: #adb5bd;\n --bs-dropdown-header-color: #adb5bd;\n}\n\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle;\n}\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n flex: 1 1 auto;\n}\n.btn-group > .btn-check:checked + .btn,\n.btn-group > .btn-check:focus + .btn,\n.btn-group > .btn:hover,\n.btn-group > .btn:focus,\n.btn-group > .btn:active,\n.btn-group > .btn.active,\n.btn-group-vertical > .btn-check:checked + .btn,\n.btn-group-vertical > .btn-check:focus + .btn,\n.btn-group-vertical > .btn:hover,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n z-index: 1;\n}\n\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n}\n.btn-toolbar .input-group {\n width: auto;\n}\n\n.btn-group {\n border-radius: var(--bs-border-radius);\n}\n.btn-group > :not(.btn-check:first-child) + .btn,\n.btn-group > .btn-group:not(:first-child) {\n margin-left: calc(var(--bs-border-width) * -1);\n}\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn.dropdown-toggle-split:first-child,\n.btn-group > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.btn-group > .btn:nth-child(n+3),\n.btn-group > :not(.btn-check) + .btn,\n.btn-group > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem;\n}\n.dropdown-toggle-split::after, .dropup .dropdown-toggle-split::after, .dropend .dropdown-toggle-split::after {\n margin-left: 0;\n}\n.dropstart .dropdown-toggle-split::before {\n margin-right: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem;\n}\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n}\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group {\n width: 100%;\n}\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) {\n margin-top: calc(var(--bs-border-width) * -1);\n}\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn ~ .btn,\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.nav {\n --bs-nav-link-padding-x: 1rem;\n --bs-nav-link-padding-y: 0.5rem;\n --bs-nav-link-font-weight: ;\n --bs-nav-link-color: var(--bs-link-color);\n --bs-nav-link-hover-color: var(--bs-link-hover-color);\n --bs-nav-link-disabled-color: var(--bs-secondary-color);\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);\n font-size: var(--bs-nav-link-font-size);\n font-weight: var(--bs-nav-link-font-weight);\n color: var(--bs-nav-link-color);\n text-decoration: none;\n background: none;\n border: 0;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .nav-link {\n transition: none;\n }\n}\n.nav-link:hover, .nav-link:focus {\n color: var(--bs-nav-link-hover-color);\n}\n.nav-link:focus-visible {\n outline: 0;\n box-shadow: 0 0 0 0.1875rem var(--pst-color-accent);\n}\n.nav-link.disabled, .nav-link:disabled {\n color: var(--bs-nav-link-disabled-color);\n pointer-events: none;\n cursor: default;\n}\n\n.nav-tabs {\n --bs-nav-tabs-border-width: var(--bs-border-width);\n --bs-nav-tabs-border-color: var(--bs-border-color);\n --bs-nav-tabs-border-radius: var(--bs-border-radius);\n --bs-nav-tabs-link-hover-border-color: var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);\n --bs-nav-tabs-link-active-color: var(--bs-emphasis-color);\n --bs-nav-tabs-link-active-bg: var(--bs-body-bg);\n --bs-nav-tabs-link-active-border-color: var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);\n border-bottom: var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color);\n}\n.nav-tabs .nav-link {\n margin-bottom: calc(-1 * var(--bs-nav-tabs-border-width));\n border: var(--bs-nav-tabs-border-width) solid transparent;\n border-top-left-radius: var(--bs-nav-tabs-border-radius);\n border-top-right-radius: var(--bs-nav-tabs-border-radius);\n}\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n isolation: isolate;\n border-color: var(--bs-nav-tabs-link-hover-border-color);\n}\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n color: var(--bs-nav-tabs-link-active-color);\n background-color: var(--bs-nav-tabs-link-active-bg);\n border-color: var(--bs-nav-tabs-link-active-border-color);\n}\n.nav-tabs .dropdown-menu {\n margin-top: calc(-1 * var(--bs-nav-tabs-border-width));\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.nav-pills {\n --bs-nav-pills-border-radius: var(--bs-border-radius);\n --bs-nav-pills-link-active-color: #fff;\n --bs-nav-pills-link-active-bg: #0d6efd;\n}\n.nav-pills .nav-link {\n border-radius: var(--bs-nav-pills-border-radius);\n}\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: var(--bs-nav-pills-link-active-color);\n background-color: var(--bs-nav-pills-link-active-bg);\n}\n\n.nav-underline {\n --bs-nav-underline-gap: 1rem;\n --bs-nav-underline-border-width: 0.125rem;\n --bs-nav-underline-link-active-color: var(--bs-emphasis-color);\n gap: var(--bs-nav-underline-gap);\n}\n.nav-underline .nav-link {\n padding-right: 0;\n padding-left: 0;\n border-bottom: var(--bs-nav-underline-border-width) solid transparent;\n}\n.nav-underline .nav-link:hover, .nav-underline .nav-link:focus {\n border-bottom-color: currentcolor;\n}\n.nav-underline .nav-link.active,\n.nav-underline .show > .nav-link {\n font-weight: 700;\n color: var(--bs-nav-underline-link-active-color);\n border-bottom-color: currentcolor;\n}\n\n.nav-fill > .nav-link,\n.nav-fill .nav-item {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.nav-justified > .nav-link,\n.nav-justified .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center;\n}\n\n.nav-fill .nav-item .nav-link,\n.nav-justified .nav-item .nav-link {\n width: 100%;\n}\n\n.tab-content > .tab-pane {\n display: none;\n}\n.tab-content > .active {\n display: block;\n}\n\n.navbar {\n --bs-navbar-padding-x: 0;\n --bs-navbar-padding-y: 0.5rem;\n --bs-navbar-color: rgba(var(--bs-emphasis-color-rgb), 0.65);\n --bs-navbar-hover-color: rgba(var(--bs-emphasis-color-rgb), 0.8);\n --bs-navbar-disabled-color: rgba(var(--bs-emphasis-color-rgb), 0.3);\n --bs-navbar-active-color: rgba(var(--bs-emphasis-color-rgb), 1);\n --bs-navbar-brand-padding-y: 0.3125rem;\n --bs-navbar-brand-margin-end: 1rem;\n --bs-navbar-brand-font-size: 1.25rem;\n --bs-navbar-brand-color: rgba(var(--bs-emphasis-color-rgb), 1);\n --bs-navbar-brand-hover-color: rgba(var(--bs-emphasis-color-rgb), 1);\n --bs-navbar-nav-link-padding-x: 0.5rem;\n --bs-navbar-toggler-padding-y: 0.25rem;\n --bs-navbar-toggler-padding-x: 0.75rem;\n --bs-navbar-toggler-font-size: 1.25rem;\n --bs-navbar-toggler-icon-bg: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 37, 41, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n --bs-navbar-toggler-border-color: rgba(var(--bs-emphasis-color-rgb), 0.15);\n --bs-navbar-toggler-border-radius: var(--bs-border-radius);\n --bs-navbar-toggler-focus-width: 0.1875rem;\n --bs-navbar-toggler-transition: box-shadow 0.15s ease-in-out;\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding: var(--bs-navbar-padding-y) var(--bs-navbar-padding-x);\n}\n.navbar > .container,\n.navbar > .container-fluid,\n.navbar > .container-sm,\n.navbar > .container-md,\n.navbar > .container-lg,\n.navbar > .container-xl {\n display: flex;\n flex-wrap: inherit;\n align-items: center;\n justify-content: space-between;\n}\n.navbar-brand {\n padding-top: var(--bs-navbar-brand-padding-y);\n padding-bottom: var(--bs-navbar-brand-padding-y);\n margin-right: var(--bs-navbar-brand-margin-end);\n font-size: var(--bs-navbar-brand-font-size);\n color: var(--bs-navbar-brand-color);\n text-decoration: none;\n white-space: nowrap;\n}\n.navbar-brand:hover, .navbar-brand:focus {\n color: var(--bs-navbar-brand-hover-color);\n}\n\n.navbar-nav {\n --bs-nav-link-padding-x: 0;\n --bs-nav-link-padding-y: 0.5rem;\n --bs-nav-link-font-weight: ;\n --bs-nav-link-color: var(--bs-navbar-color);\n --bs-nav-link-hover-color: var(--bs-navbar-hover-color);\n --bs-nav-link-disabled-color: var(--bs-navbar-disabled-color);\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n.navbar-nav .nav-link.active, .navbar-nav .nav-link.show {\n color: var(--bs-navbar-active-color);\n}\n.navbar-nav .dropdown-menu {\n position: static;\n}\n\n.navbar-text {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n color: var(--bs-navbar-color);\n}\n.navbar-text a,\n.navbar-text a:hover,\n.navbar-text a:focus {\n color: var(--bs-navbar-active-color);\n}\n\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n align-items: center;\n}\n\n.navbar-toggler {\n padding: var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);\n font-size: var(--bs-navbar-toggler-font-size);\n line-height: 1;\n color: var(--bs-navbar-color);\n background-color: transparent;\n border: var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);\n border-radius: var(--bs-navbar-toggler-border-radius);\n transition: var(--bs-navbar-toggler-transition);\n}\n@media (prefers-reduced-motion: reduce) {\n .navbar-toggler {\n transition: none;\n }\n}\n.navbar-toggler:hover {\n text-decoration: none;\n}\n.navbar-toggler:focus {\n text-decoration: none;\n outline: 0;\n box-shadow: 0 0 0 var(--bs-navbar-toggler-focus-width);\n}\n\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n background-image: var(--bs-navbar-toggler-icon-bg);\n background-repeat: no-repeat;\n background-position: center;\n background-size: 100%;\n}\n\n.navbar-nav-scroll {\n max-height: var(--bs-scroll-height, 75vh);\n overflow-y: auto;\n}\n\n@media (min-width: 540px) {\n .navbar-expand-sm {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-sm .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: var(--bs-navbar-nav-link-padding-x);\n padding-left: var(--bs-navbar-nav-link-padding-x);\n }\n .navbar-expand-sm .navbar-nav-scroll {\n overflow: visible;\n }\n .navbar-expand-sm .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-sm .navbar-toggler {\n display: none;\n }\n .navbar-expand-sm .offcanvas {\n position: static;\n z-index: auto;\n flex-grow: 1;\n width: auto !important;\n height: auto !important;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n transition: none;\n }\n .navbar-expand-sm .offcanvas .offcanvas-header {\n display: none;\n }\n .navbar-expand-sm .offcanvas .offcanvas-body {\n display: flex;\n flex-grow: 0;\n padding: 0;\n overflow-y: visible;\n }\n}\n@media (min-width: 720px) {\n .navbar-expand-md {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-md .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: var(--bs-navbar-nav-link-padding-x);\n padding-left: var(--bs-navbar-nav-link-padding-x);\n }\n .navbar-expand-md .navbar-nav-scroll {\n overflow: visible;\n }\n .navbar-expand-md .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-md .navbar-toggler {\n display: none;\n }\n .navbar-expand-md .offcanvas {\n position: static;\n z-index: auto;\n flex-grow: 1;\n width: auto !important;\n height: auto !important;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n transition: none;\n }\n .navbar-expand-md .offcanvas .offcanvas-header {\n display: none;\n }\n .navbar-expand-md .offcanvas .offcanvas-body {\n display: flex;\n flex-grow: 0;\n padding: 0;\n overflow-y: visible;\n }\n}\n@media (min-width: 960px) {\n .navbar-expand-lg {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-lg .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: var(--bs-navbar-nav-link-padding-x);\n padding-left: var(--bs-navbar-nav-link-padding-x);\n }\n .navbar-expand-lg .navbar-nav-scroll {\n overflow: visible;\n }\n .navbar-expand-lg .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-lg .navbar-toggler {\n display: none;\n }\n .navbar-expand-lg .offcanvas {\n position: static;\n z-index: auto;\n flex-grow: 1;\n width: auto !important;\n height: auto !important;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n transition: none;\n }\n .navbar-expand-lg .offcanvas .offcanvas-header {\n display: none;\n }\n .navbar-expand-lg .offcanvas .offcanvas-body {\n display: flex;\n flex-grow: 0;\n padding: 0;\n overflow-y: visible;\n }\n}\n@media (min-width: 1200px) {\n .navbar-expand-xl {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-xl .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: var(--bs-navbar-nav-link-padding-x);\n padding-left: var(--bs-navbar-nav-link-padding-x);\n }\n .navbar-expand-xl .navbar-nav-scroll {\n overflow: visible;\n }\n .navbar-expand-xl .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-xl .navbar-toggler {\n display: none;\n }\n .navbar-expand-xl .offcanvas {\n position: static;\n z-index: auto;\n flex-grow: 1;\n width: auto !important;\n height: auto !important;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n transition: none;\n }\n .navbar-expand-xl .offcanvas .offcanvas-header {\n display: none;\n }\n .navbar-expand-xl .offcanvas .offcanvas-body {\n display: flex;\n flex-grow: 0;\n padding: 0;\n overflow-y: visible;\n }\n}\n.navbar-expand {\n flex-wrap: nowrap;\n justify-content: flex-start;\n}\n.navbar-expand .navbar-nav {\n flex-direction: row;\n}\n.navbar-expand .navbar-nav .dropdown-menu {\n position: absolute;\n}\n.navbar-expand .navbar-nav .nav-link {\n padding-right: var(--bs-navbar-nav-link-padding-x);\n padding-left: var(--bs-navbar-nav-link-padding-x);\n}\n.navbar-expand .navbar-nav-scroll {\n overflow: visible;\n}\n.navbar-expand .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n}\n.navbar-expand .navbar-toggler {\n display: none;\n}\n.navbar-expand .offcanvas {\n position: static;\n z-index: auto;\n flex-grow: 1;\n width: auto !important;\n height: auto !important;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n transition: none;\n}\n.navbar-expand .offcanvas .offcanvas-header {\n display: none;\n}\n.navbar-expand .offcanvas .offcanvas-body {\n display: flex;\n flex-grow: 0;\n padding: 0;\n overflow-y: visible;\n}\n\n.navbar-dark,\n.navbar[data-bs-theme=dark] {\n --bs-navbar-color: rgba(255, 255, 255, 0.55);\n --bs-navbar-hover-color: rgba(255, 255, 255, 0.75);\n --bs-navbar-disabled-color: rgba(255, 255, 255, 0.25);\n --bs-navbar-active-color: #fff;\n --bs-navbar-brand-color: #fff;\n --bs-navbar-brand-hover-color: #fff;\n --bs-navbar-toggler-border-color: rgba(255, 255, 255, 0.1);\n --bs-navbar-toggler-icon-bg: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n[data-bs-theme=dark] .navbar-toggler-icon {\n --bs-navbar-toggler-icon-bg: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.card {\n --bs-card-spacer-y: 1rem;\n --bs-card-spacer-x: 1rem;\n --bs-card-title-spacer-y: 0.5rem;\n --bs-card-title-color: ;\n --bs-card-subtitle-color: ;\n --bs-card-border-width: var(--bs-border-width);\n --bs-card-border-color: var(--bs-border-color-translucent);\n --bs-card-border-radius: var(--bs-border-radius);\n --bs-card-box-shadow: ;\n --bs-card-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width)));\n --bs-card-cap-padding-y: 0.5rem;\n --bs-card-cap-padding-x: 1rem;\n --bs-card-cap-bg: rgba(var(--bs-body-color-rgb), 0.03);\n --bs-card-cap-color: ;\n --bs-card-height: ;\n --bs-card-color: ;\n --bs-card-bg: var(--bs-body-bg);\n --bs-card-img-overlay-padding: 1rem;\n --bs-card-group-margin: 0.75rem;\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n height: var(--bs-card-height);\n color: var(--bs-body-color);\n word-wrap: break-word;\n background-color: var(--bs-card-bg);\n background-clip: border-box;\n border: var(--bs-card-border-width) solid var(--bs-card-border-color);\n border-radius: var(--bs-card-border-radius);\n}\n.card > hr {\n margin-right: 0;\n margin-left: 0;\n}\n.card > .list-group {\n border-top: inherit;\n border-bottom: inherit;\n}\n.card > .list-group:first-child {\n border-top-width: 0;\n border-top-left-radius: var(--bs-card-inner-border-radius);\n border-top-right-radius: var(--bs-card-inner-border-radius);\n}\n.card > .list-group:last-child {\n border-bottom-width: 0;\n border-bottom-right-radius: var(--bs-card-inner-border-radius);\n border-bottom-left-radius: var(--bs-card-inner-border-radius);\n}\n.card > .card-header + .list-group,\n.card > .list-group + .card-footer {\n border-top: 0;\n}\n\n.card-body {\n flex: 1 1 auto;\n padding: var(--bs-card-spacer-y) var(--bs-card-spacer-x);\n color: var(--bs-card-color);\n}\n\n.card-title {\n margin-bottom: var(--bs-card-title-spacer-y);\n color: var(--bs-card-title-color);\n}\n\n.card-subtitle {\n margin-top: calc(-0.5 * var(--bs-card-title-spacer-y));\n margin-bottom: 0;\n color: var(--bs-card-subtitle-color);\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link + .card-link {\n margin-left: var(--bs-card-spacer-x);\n}\n\n.card-header {\n padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);\n margin-bottom: 0;\n color: var(--bs-card-cap-color);\n background-color: var(--bs-card-cap-bg);\n border-bottom: var(--bs-card-border-width) solid var(--bs-card-border-color);\n}\n.card-header:first-child {\n border-radius: var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0;\n}\n\n.card-footer {\n padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);\n color: var(--bs-card-cap-color);\n background-color: var(--bs-card-cap-bg);\n border-top: var(--bs-card-border-width) solid var(--bs-card-border-color);\n}\n.card-footer:last-child {\n border-radius: 0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius);\n}\n\n.card-header-tabs {\n margin-right: calc(-0.5 * var(--bs-card-cap-padding-x));\n margin-bottom: calc(-1 * var(--bs-card-cap-padding-y));\n margin-left: calc(-0.5 * var(--bs-card-cap-padding-x));\n border-bottom: 0;\n}\n.card-header-tabs .nav-link.active {\n background-color: var(--bs-card-bg);\n border-bottom-color: var(--bs-card-bg);\n}\n\n.card-header-pills {\n margin-right: calc(-0.5 * var(--bs-card-cap-padding-x));\n margin-left: calc(-0.5 * var(--bs-card-cap-padding-x));\n}\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: var(--bs-card-img-overlay-padding);\n border-radius: var(--bs-card-inner-border-radius);\n}\n\n.card-img,\n.card-img-top,\n.card-img-bottom {\n width: 100%;\n}\n\n.card-img,\n.card-img-top {\n border-top-left-radius: var(--bs-card-inner-border-radius);\n border-top-right-radius: var(--bs-card-inner-border-radius);\n}\n\n.card-img,\n.card-img-bottom {\n border-bottom-right-radius: var(--bs-card-inner-border-radius);\n border-bottom-left-radius: var(--bs-card-inner-border-radius);\n}\n\n.card-group > .card {\n margin-bottom: var(--bs-card-group-margin);\n}\n@media (min-width: 540px) {\n .card-group {\n display: flex;\n flex-flow: row wrap;\n }\n .card-group > .card {\n flex: 1 0 0%;\n margin-bottom: 0;\n }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0;\n }\n .card-group > .card:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-top,\n .card-group > .card:not(:last-child) .card-header {\n border-top-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-bottom,\n .card-group > .card:not(:last-child) .card-footer {\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-top,\n .card-group > .card:not(:first-child) .card-header {\n border-top-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-bottom,\n .card-group > .card:not(:first-child) .card-footer {\n border-bottom-left-radius: 0;\n }\n}\n\n.accordion {\n --bs-accordion-color: var(--bs-body-color);\n --bs-accordion-bg: var(--bs-body-bg);\n --bs-accordion-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border-radius 0.15s ease;\n --bs-accordion-border-color: var(--bs-border-color);\n --bs-accordion-border-width: var(--bs-border-width);\n --bs-accordion-border-radius: var(--bs-border-radius);\n --bs-accordion-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width)));\n --bs-accordion-btn-padding-x: 1.25rem;\n --bs-accordion-btn-padding-y: 1rem;\n --bs-accordion-btn-color: var(--bs-body-color);\n --bs-accordion-btn-bg: var(--bs-accordion-bg);\n --bs-accordion-btn-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23212529' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e\");\n --bs-accordion-btn-icon-width: 1.25rem;\n --bs-accordion-btn-icon-transform: rotate(-180deg);\n --bs-accordion-btn-icon-transition: transform 0.2s ease-in-out;\n --bs-accordion-btn-active-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23052c65' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e\");\n --bs-accordion-btn-focus-box-shadow: 0 0 0 0.1875rem var(--pst-color-accent);\n --bs-accordion-body-padding-x: 1.25rem;\n --bs-accordion-body-padding-y: 1rem;\n --bs-accordion-active-color: var(--bs-primary-text-emphasis);\n --bs-accordion-active-bg: var(--bs-primary-bg-subtle);\n}\n\n.accordion-button {\n position: relative;\n display: flex;\n align-items: center;\n width: 100%;\n padding: var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);\n font-size: 1rem;\n color: var(--bs-accordion-btn-color);\n text-align: left;\n background-color: var(--bs-accordion-btn-bg);\n border: 0;\n border-radius: 0;\n overflow-anchor: none;\n transition: var(--bs-accordion-transition);\n}\n@media (prefers-reduced-motion: reduce) {\n .accordion-button {\n transition: none;\n }\n}\n.accordion-button:not(.collapsed) {\n color: var(--bs-accordion-active-color);\n background-color: var(--bs-accordion-active-bg);\n box-shadow: inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color);\n}\n.accordion-button:not(.collapsed)::after {\n background-image: var(--bs-accordion-btn-active-icon);\n transform: var(--bs-accordion-btn-icon-transform);\n}\n.accordion-button::after {\n flex-shrink: 0;\n width: var(--bs-accordion-btn-icon-width);\n height: var(--bs-accordion-btn-icon-width);\n margin-left: auto;\n content: \"\";\n background-image: var(--bs-accordion-btn-icon);\n background-repeat: no-repeat;\n background-size: var(--bs-accordion-btn-icon-width);\n transition: var(--bs-accordion-btn-icon-transition);\n}\n@media (prefers-reduced-motion: reduce) {\n .accordion-button::after {\n transition: none;\n }\n}\n.accordion-button:hover {\n z-index: 2;\n}\n.accordion-button:focus {\n z-index: 3;\n outline: 0;\n box-shadow: var(--bs-accordion-btn-focus-box-shadow);\n}\n\n.accordion-header {\n margin-bottom: 0;\n}\n\n.accordion-item {\n color: var(--bs-accordion-color);\n background-color: var(--bs-accordion-bg);\n border: var(--bs-accordion-border-width) solid var(--bs-accordion-border-color);\n}\n.accordion-item:first-of-type {\n border-top-left-radius: var(--bs-accordion-border-radius);\n border-top-right-radius: var(--bs-accordion-border-radius);\n}\n.accordion-item:first-of-type > .accordion-header .accordion-button {\n border-top-left-radius: var(--bs-accordion-inner-border-radius);\n border-top-right-radius: var(--bs-accordion-inner-border-radius);\n}\n.accordion-item:not(:first-of-type) {\n border-top: 0;\n}\n.accordion-item:last-of-type {\n border-bottom-right-radius: var(--bs-accordion-border-radius);\n border-bottom-left-radius: var(--bs-accordion-border-radius);\n}\n.accordion-item:last-of-type > .accordion-header .accordion-button.collapsed {\n border-bottom-right-radius: var(--bs-accordion-inner-border-radius);\n border-bottom-left-radius: var(--bs-accordion-inner-border-radius);\n}\n.accordion-item:last-of-type > .accordion-collapse {\n border-bottom-right-radius: var(--bs-accordion-border-radius);\n border-bottom-left-radius: var(--bs-accordion-border-radius);\n}\n\n.accordion-body {\n padding: var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x);\n}\n\n.accordion-flush > .accordion-item {\n border-right: 0;\n border-left: 0;\n border-radius: 0;\n}\n.accordion-flush > .accordion-item:first-child {\n border-top: 0;\n}\n.accordion-flush > .accordion-item:last-child {\n border-bottom: 0;\n}\n.accordion-flush > .accordion-item > .accordion-header .accordion-button, .accordion-flush > .accordion-item > .accordion-header .accordion-button.collapsed {\n border-radius: 0;\n}\n.accordion-flush > .accordion-item > .accordion-collapse {\n border-radius: 0;\n}\n\n[data-bs-theme=dark] .accordion-button::after {\n --bs-accordion-btn-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e\");\n --bs-accordion-btn-active-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e\");\n}\n\n.breadcrumb {\n --bs-breadcrumb-padding-x: 0;\n --bs-breadcrumb-padding-y: 0;\n --bs-breadcrumb-margin-bottom: 1rem;\n --bs-breadcrumb-bg: ;\n --bs-breadcrumb-border-radius: ;\n --bs-breadcrumb-divider-color: var(--bs-secondary-color);\n --bs-breadcrumb-item-padding-x: 0.5rem;\n --bs-breadcrumb-item-active-color: var(--bs-secondary-color);\n display: flex;\n flex-wrap: wrap;\n padding: var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);\n margin-bottom: var(--bs-breadcrumb-margin-bottom);\n font-size: var(--bs-breadcrumb-font-size);\n list-style: none;\n background-color: var(--bs-breadcrumb-bg);\n border-radius: var(--bs-breadcrumb-border-radius);\n}\n\n.breadcrumb-item + .breadcrumb-item {\n padding-left: var(--bs-breadcrumb-item-padding-x);\n}\n.breadcrumb-item + .breadcrumb-item::before {\n float: left;\n padding-right: var(--bs-breadcrumb-item-padding-x);\n color: var(--bs-breadcrumb-divider-color);\n content: var(--bs-breadcrumb-divider, \"/\") /* rtl: var(--bs-breadcrumb-divider, \"/\") */;\n}\n.breadcrumb-item.active {\n color: var(--bs-breadcrumb-item-active-color);\n}\n\n.pagination {\n --bs-pagination-padding-x: 0.75rem;\n --bs-pagination-padding-y: 0.375rem;\n --bs-pagination-font-size: 1rem;\n --bs-pagination-color: var(--bs-link-color);\n --bs-pagination-bg: var(--bs-body-bg);\n --bs-pagination-border-width: var(--bs-border-width);\n --bs-pagination-border-color: var(--bs-border-color);\n --bs-pagination-border-radius: var(--bs-border-radius);\n --bs-pagination-hover-color: var(--bs-link-hover-color);\n --bs-pagination-hover-bg: var(--bs-tertiary-bg);\n --bs-pagination-hover-border-color: var(--bs-border-color);\n --bs-pagination-focus-color: var(--bs-link-hover-color);\n --bs-pagination-focus-bg: var(--bs-secondary-bg);\n --bs-pagination-focus-box-shadow: 0 0 0 0.1875rem var(--pst-color-accent);\n --bs-pagination-active-color: #fff;\n --bs-pagination-active-bg: #0d6efd;\n --bs-pagination-active-border-color: #0d6efd;\n --bs-pagination-disabled-color: var(--bs-secondary-color);\n --bs-pagination-disabled-bg: var(--bs-secondary-bg);\n --bs-pagination-disabled-border-color: var(--bs-border-color);\n display: flex;\n padding-left: 0;\n list-style: none;\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);\n font-size: var(--bs-pagination-font-size);\n color: var(--bs-pagination-color);\n text-decoration: none;\n background-color: var(--bs-pagination-bg);\n border: var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .page-link {\n transition: none;\n }\n}\n.page-link:hover {\n z-index: 2;\n color: var(--bs-pagination-hover-color);\n background-color: var(--bs-pagination-hover-bg);\n border-color: var(--bs-pagination-hover-border-color);\n}\n.page-link:focus {\n z-index: 3;\n color: var(--bs-pagination-focus-color);\n background-color: var(--bs-pagination-focus-bg);\n outline: 0;\n box-shadow: var(--bs-pagination-focus-box-shadow);\n}\n.page-link.active, .active > .page-link {\n z-index: 3;\n color: var(--bs-pagination-active-color);\n background-color: var(--bs-pagination-active-bg);\n border-color: var(--bs-pagination-active-border-color);\n}\n.page-link.disabled, .disabled > .page-link {\n color: var(--bs-pagination-disabled-color);\n pointer-events: none;\n background-color: var(--bs-pagination-disabled-bg);\n border-color: var(--bs-pagination-disabled-border-color);\n}\n\n.page-item:not(:first-child) .page-link {\n margin-left: calc(var(--bs-border-width) * -1);\n}\n.page-item:first-child .page-link {\n border-top-left-radius: var(--bs-pagination-border-radius);\n border-bottom-left-radius: var(--bs-pagination-border-radius);\n}\n.page-item:last-child .page-link {\n border-top-right-radius: var(--bs-pagination-border-radius);\n border-bottom-right-radius: var(--bs-pagination-border-radius);\n}\n\n.pagination-lg {\n --bs-pagination-padding-x: 1.5rem;\n --bs-pagination-padding-y: 0.75rem;\n --bs-pagination-font-size: 1.25rem;\n --bs-pagination-border-radius: var(--bs-border-radius-lg);\n}\n\n.pagination-sm {\n --bs-pagination-padding-x: 0.5rem;\n --bs-pagination-padding-y: 0.25rem;\n --bs-pagination-font-size: 0.875rem;\n --bs-pagination-border-radius: var(--bs-border-radius-sm);\n}\n\n.badge {\n --bs-badge-padding-x: 0.65em;\n --bs-badge-padding-y: 0.35em;\n --bs-badge-font-size: 0.75em;\n --bs-badge-font-weight: 700;\n --bs-badge-color: #fff;\n --bs-badge-border-radius: var(--bs-border-radius);\n display: inline-block;\n padding: var(--bs-badge-padding-y) var(--bs-badge-padding-x);\n font-size: var(--bs-badge-font-size);\n font-weight: var(--bs-badge-font-weight);\n line-height: 1;\n color: var(--bs-badge-color);\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: var(--bs-badge-border-radius);\n}\n.badge:empty {\n display: none;\n}\n\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n.alert {\n --bs-alert-bg: transparent;\n --bs-alert-padding-x: 1rem;\n --bs-alert-padding-y: 1rem;\n --bs-alert-margin-bottom: 1rem;\n --bs-alert-color: inherit;\n --bs-alert-border-color: transparent;\n --bs-alert-border: var(--bs-border-width) solid var(--bs-alert-border-color);\n --bs-alert-border-radius: var(--bs-border-radius);\n --bs-alert-link-color: inherit;\n position: relative;\n padding: var(--bs-alert-padding-y) var(--bs-alert-padding-x);\n margin-bottom: var(--bs-alert-margin-bottom);\n color: var(--bs-alert-color);\n background-color: var(--bs-alert-bg);\n border: var(--bs-alert-border);\n border-radius: var(--bs-alert-border-radius);\n}\n\n.alert-heading {\n color: inherit;\n}\n\n.alert-link {\n font-weight: 700;\n color: var(--bs-alert-link-color);\n}\n\n.alert-dismissible {\n padding-right: 3rem;\n}\n.alert-dismissible .btn-close {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n padding: 1.25rem 1rem;\n}\n\n.alert-primary {\n --bs-alert-color: var(--bs-primary-text-emphasis);\n --bs-alert-bg: var(--bs-primary-bg-subtle);\n --bs-alert-border-color: var(--bs-primary-border-subtle);\n --bs-alert-link-color: var(--bs-primary-text-emphasis);\n}\n\n.alert-secondary {\n --bs-alert-color: var(--bs-secondary-text-emphasis);\n --bs-alert-bg: var(--bs-secondary-bg-subtle);\n --bs-alert-border-color: var(--bs-secondary-border-subtle);\n --bs-alert-link-color: var(--bs-secondary-text-emphasis);\n}\n\n.alert-success {\n --bs-alert-color: var(--bs-success-text-emphasis);\n --bs-alert-bg: var(--bs-success-bg-subtle);\n --bs-alert-border-color: var(--bs-success-border-subtle);\n --bs-alert-link-color: var(--bs-success-text-emphasis);\n}\n\n.alert-info {\n --bs-alert-color: var(--bs-info-text-emphasis);\n --bs-alert-bg: var(--bs-info-bg-subtle);\n --bs-alert-border-color: var(--bs-info-border-subtle);\n --bs-alert-link-color: var(--bs-info-text-emphasis);\n}\n\n.alert-warning {\n --bs-alert-color: var(--bs-warning-text-emphasis);\n --bs-alert-bg: var(--bs-warning-bg-subtle);\n --bs-alert-border-color: var(--bs-warning-border-subtle);\n --bs-alert-link-color: var(--bs-warning-text-emphasis);\n}\n\n.alert-danger {\n --bs-alert-color: var(--bs-danger-text-emphasis);\n --bs-alert-bg: var(--bs-danger-bg-subtle);\n --bs-alert-border-color: var(--bs-danger-border-subtle);\n --bs-alert-link-color: var(--bs-danger-text-emphasis);\n}\n\n.alert-light {\n --bs-alert-color: var(--bs-light-text-emphasis);\n --bs-alert-bg: var(--bs-light-bg-subtle);\n --bs-alert-border-color: var(--bs-light-border-subtle);\n --bs-alert-link-color: var(--bs-light-text-emphasis);\n}\n\n.alert-dark {\n --bs-alert-color: var(--bs-dark-text-emphasis);\n --bs-alert-bg: var(--bs-dark-bg-subtle);\n --bs-alert-border-color: var(--bs-dark-border-subtle);\n --bs-alert-link-color: var(--bs-dark-text-emphasis);\n}\n\n@keyframes progress-bar-stripes {\n 0% {\n background-position-x: 1rem;\n }\n}\n.progress,\n.progress-stacked {\n --bs-progress-height: 1rem;\n --bs-progress-font-size: 0.75rem;\n --bs-progress-bg: var(--bs-secondary-bg);\n --bs-progress-border-radius: var(--bs-border-radius);\n --bs-progress-box-shadow: var(--bs-box-shadow-inset);\n --bs-progress-bar-color: #fff;\n --bs-progress-bar-bg: #0d6efd;\n --bs-progress-bar-transition: width 0.6s ease;\n display: flex;\n height: var(--bs-progress-height);\n overflow: hidden;\n font-size: var(--bs-progress-font-size);\n background-color: var(--bs-progress-bg);\n border-radius: var(--bs-progress-border-radius);\n}\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n color: var(--bs-progress-bar-color);\n text-align: center;\n white-space: nowrap;\n background-color: var(--bs-progress-bar-bg);\n transition: var(--bs-progress-bar-transition);\n}\n@media (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none;\n }\n}\n\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: var(--bs-progress-height) var(--bs-progress-height);\n}\n\n.progress-stacked > .progress {\n overflow: visible;\n}\n\n.progress-stacked > .progress > .progress-bar {\n width: 100%;\n}\n\n.progress-bar-animated {\n animation: 1s linear infinite progress-bar-stripes;\n}\n@media (prefers-reduced-motion: reduce) {\n .progress-bar-animated {\n animation: none;\n }\n}\n\n.list-group {\n --bs-list-group-color: var(--bs-body-color);\n --bs-list-group-bg: var(--bs-body-bg);\n --bs-list-group-border-color: var(--bs-border-color);\n --bs-list-group-border-width: var(--bs-border-width);\n --bs-list-group-border-radius: var(--bs-border-radius);\n --bs-list-group-item-padding-x: 1rem;\n --bs-list-group-item-padding-y: 0.5rem;\n --bs-list-group-action-color: var(--bs-secondary-color);\n --bs-list-group-action-hover-color: var(--bs-emphasis-color);\n --bs-list-group-action-hover-bg: var(--bs-tertiary-bg);\n --bs-list-group-action-active-color: var(--bs-body-color);\n --bs-list-group-action-active-bg: var(--bs-secondary-bg);\n --bs-list-group-disabled-color: var(--bs-secondary-color);\n --bs-list-group-disabled-bg: var(--bs-body-bg);\n --bs-list-group-active-color: #fff;\n --bs-list-group-active-bg: #0d6efd;\n --bs-list-group-active-border-color: #0d6efd;\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n border-radius: var(--bs-list-group-border-radius);\n}\n\n.list-group-numbered {\n list-style-type: none;\n counter-reset: section;\n}\n.list-group-numbered > .list-group-item::before {\n content: counters(section, \".\") \". \";\n counter-increment: section;\n}\n\n.list-group-item-action {\n width: 100%;\n color: var(--bs-list-group-action-color);\n text-align: inherit;\n}\n.list-group-item-action:hover, .list-group-item-action:focus {\n z-index: 1;\n color: var(--bs-list-group-action-hover-color);\n text-decoration: none;\n background-color: var(--bs-list-group-action-hover-bg);\n}\n.list-group-item-action:active {\n color: var(--bs-list-group-action-active-color);\n background-color: var(--bs-list-group-action-active-bg);\n}\n\n.list-group-item {\n position: relative;\n display: block;\n padding: var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);\n color: var(--bs-list-group-color);\n text-decoration: none;\n background-color: var(--bs-list-group-bg);\n border: var(--bs-list-group-border-width) solid var(--bs-list-group-border-color);\n}\n.list-group-item:first-child {\n border-top-left-radius: inherit;\n border-top-right-radius: inherit;\n}\n.list-group-item:last-child {\n border-bottom-right-radius: inherit;\n border-bottom-left-radius: inherit;\n}\n.list-group-item.disabled, .list-group-item:disabled {\n color: var(--bs-list-group-disabled-color);\n pointer-events: none;\n background-color: var(--bs-list-group-disabled-bg);\n}\n.list-group-item.active {\n z-index: 2;\n color: var(--bs-list-group-active-color);\n background-color: var(--bs-list-group-active-bg);\n border-color: var(--bs-list-group-active-border-color);\n}\n.list-group-item + .list-group-item {\n border-top-width: 0;\n}\n.list-group-item + .list-group-item.active {\n margin-top: calc(-1 * var(--bs-list-group-border-width));\n border-top-width: var(--bs-list-group-border-width);\n}\n\n.list-group-horizontal {\n flex-direction: row;\n}\n.list-group-horizontal > .list-group-item:first-child:not(:last-child) {\n border-bottom-left-radius: var(--bs-list-group-border-radius);\n border-top-right-radius: 0;\n}\n.list-group-horizontal > .list-group-item:last-child:not(:first-child) {\n border-top-right-radius: var(--bs-list-group-border-radius);\n border-bottom-left-radius: 0;\n}\n.list-group-horizontal > .list-group-item.active {\n margin-top: 0;\n}\n.list-group-horizontal > .list-group-item + .list-group-item {\n border-top-width: var(--bs-list-group-border-width);\n border-left-width: 0;\n}\n.list-group-horizontal > .list-group-item + .list-group-item.active {\n margin-left: calc(-1 * var(--bs-list-group-border-width));\n border-left-width: var(--bs-list-group-border-width);\n}\n\n@media (min-width: 540px) {\n .list-group-horizontal-sm {\n flex-direction: row;\n }\n .list-group-horizontal-sm > .list-group-item:first-child:not(:last-child) {\n border-bottom-left-radius: var(--bs-list-group-border-radius);\n border-top-right-radius: 0;\n }\n .list-group-horizontal-sm > .list-group-item:last-child:not(:first-child) {\n border-top-right-radius: var(--bs-list-group-border-radius);\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-sm > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-sm > .list-group-item + .list-group-item {\n border-top-width: var(--bs-list-group-border-width);\n border-left-width: 0;\n }\n .list-group-horizontal-sm > .list-group-item + .list-group-item.active {\n margin-left: calc(-1 * var(--bs-list-group-border-width));\n border-left-width: var(--bs-list-group-border-width);\n }\n}\n@media (min-width: 720px) {\n .list-group-horizontal-md {\n flex-direction: row;\n }\n .list-group-horizontal-md > .list-group-item:first-child:not(:last-child) {\n border-bottom-left-radius: var(--bs-list-group-border-radius);\n border-top-right-radius: 0;\n }\n .list-group-horizontal-md > .list-group-item:last-child:not(:first-child) {\n border-top-right-radius: var(--bs-list-group-border-radius);\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-md > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-md > .list-group-item + .list-group-item {\n border-top-width: var(--bs-list-group-border-width);\n border-left-width: 0;\n }\n .list-group-horizontal-md > .list-group-item + .list-group-item.active {\n margin-left: calc(-1 * var(--bs-list-group-border-width));\n border-left-width: var(--bs-list-group-border-width);\n }\n}\n@media (min-width: 960px) {\n .list-group-horizontal-lg {\n flex-direction: row;\n }\n .list-group-horizontal-lg > .list-group-item:first-child:not(:last-child) {\n border-bottom-left-radius: var(--bs-list-group-border-radius);\n border-top-right-radius: 0;\n }\n .list-group-horizontal-lg > .list-group-item:last-child:not(:first-child) {\n border-top-right-radius: var(--bs-list-group-border-radius);\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-lg > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-lg > .list-group-item + .list-group-item {\n border-top-width: var(--bs-list-group-border-width);\n border-left-width: 0;\n }\n .list-group-horizontal-lg > .list-group-item + .list-group-item.active {\n margin-left: calc(-1 * var(--bs-list-group-border-width));\n border-left-width: var(--bs-list-group-border-width);\n }\n}\n@media (min-width: 1200px) {\n .list-group-horizontal-xl {\n flex-direction: row;\n }\n .list-group-horizontal-xl > .list-group-item:first-child:not(:last-child) {\n border-bottom-left-radius: var(--bs-list-group-border-radius);\n border-top-right-radius: 0;\n }\n .list-group-horizontal-xl > .list-group-item:last-child:not(:first-child) {\n border-top-right-radius: var(--bs-list-group-border-radius);\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-xl > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-xl > .list-group-item + .list-group-item {\n border-top-width: var(--bs-list-group-border-width);\n border-left-width: 0;\n }\n .list-group-horizontal-xl > .list-group-item + .list-group-item.active {\n margin-left: calc(-1 * var(--bs-list-group-border-width));\n border-left-width: var(--bs-list-group-border-width);\n }\n}\n.list-group-flush {\n border-radius: 0;\n}\n.list-group-flush > .list-group-item {\n border-width: 0 0 var(--bs-list-group-border-width);\n}\n.list-group-flush > .list-group-item:last-child {\n border-bottom-width: 0;\n}\n\n.list-group-item-primary {\n --bs-list-group-color: var(--bs-primary-text-emphasis);\n --bs-list-group-bg: var(--bs-primary-bg-subtle);\n --bs-list-group-border-color: var(--bs-primary-border-subtle);\n --bs-list-group-action-hover-color: var(--bs-emphasis-color);\n --bs-list-group-action-hover-bg: var(--bs-primary-border-subtle);\n --bs-list-group-action-active-color: var(--bs-emphasis-color);\n --bs-list-group-action-active-bg: var(--bs-primary-border-subtle);\n --bs-list-group-active-color: var(--bs-primary-bg-subtle);\n --bs-list-group-active-bg: var(--bs-primary-text-emphasis);\n --bs-list-group-active-border-color: var(--bs-primary-text-emphasis);\n}\n\n.list-group-item-secondary {\n --bs-list-group-color: var(--bs-secondary-text-emphasis);\n --bs-list-group-bg: var(--bs-secondary-bg-subtle);\n --bs-list-group-border-color: var(--bs-secondary-border-subtle);\n --bs-list-group-action-hover-color: var(--bs-emphasis-color);\n --bs-list-group-action-hover-bg: var(--bs-secondary-border-subtle);\n --bs-list-group-action-active-color: var(--bs-emphasis-color);\n --bs-list-group-action-active-bg: var(--bs-secondary-border-subtle);\n --bs-list-group-active-color: var(--bs-secondary-bg-subtle);\n --bs-list-group-active-bg: var(--bs-secondary-text-emphasis);\n --bs-list-group-active-border-color: var(--bs-secondary-text-emphasis);\n}\n\n.list-group-item-success {\n --bs-list-group-color: var(--bs-success-text-emphasis);\n --bs-list-group-bg: var(--bs-success-bg-subtle);\n --bs-list-group-border-color: var(--bs-success-border-subtle);\n --bs-list-group-action-hover-color: var(--bs-emphasis-color);\n --bs-list-group-action-hover-bg: var(--bs-success-border-subtle);\n --bs-list-group-action-active-color: var(--bs-emphasis-color);\n --bs-list-group-action-active-bg: var(--bs-success-border-subtle);\n --bs-list-group-active-color: var(--bs-success-bg-subtle);\n --bs-list-group-active-bg: var(--bs-success-text-emphasis);\n --bs-list-group-active-border-color: var(--bs-success-text-emphasis);\n}\n\n.list-group-item-info {\n --bs-list-group-color: var(--bs-info-text-emphasis);\n --bs-list-group-bg: var(--bs-info-bg-subtle);\n --bs-list-group-border-color: var(--bs-info-border-subtle);\n --bs-list-group-action-hover-color: var(--bs-emphasis-color);\n --bs-list-group-action-hover-bg: var(--bs-info-border-subtle);\n --bs-list-group-action-active-color: var(--bs-emphasis-color);\n --bs-list-group-action-active-bg: var(--bs-info-border-subtle);\n --bs-list-group-active-color: var(--bs-info-bg-subtle);\n --bs-list-group-active-bg: var(--bs-info-text-emphasis);\n --bs-list-group-active-border-color: var(--bs-info-text-emphasis);\n}\n\n.list-group-item-warning {\n --bs-list-group-color: var(--bs-warning-text-emphasis);\n --bs-list-group-bg: var(--bs-warning-bg-subtle);\n --bs-list-group-border-color: var(--bs-warning-border-subtle);\n --bs-list-group-action-hover-color: var(--bs-emphasis-color);\n --bs-list-group-action-hover-bg: var(--bs-warning-border-subtle);\n --bs-list-group-action-active-color: var(--bs-emphasis-color);\n --bs-list-group-action-active-bg: var(--bs-warning-border-subtle);\n --bs-list-group-active-color: var(--bs-warning-bg-subtle);\n --bs-list-group-active-bg: var(--bs-warning-text-emphasis);\n --bs-list-group-active-border-color: var(--bs-warning-text-emphasis);\n}\n\n.list-group-item-danger {\n --bs-list-group-color: var(--bs-danger-text-emphasis);\n --bs-list-group-bg: var(--bs-danger-bg-subtle);\n --bs-list-group-border-color: var(--bs-danger-border-subtle);\n --bs-list-group-action-hover-color: var(--bs-emphasis-color);\n --bs-list-group-action-hover-bg: var(--bs-danger-border-subtle);\n --bs-list-group-action-active-color: var(--bs-emphasis-color);\n --bs-list-group-action-active-bg: var(--bs-danger-border-subtle);\n --bs-list-group-active-color: var(--bs-danger-bg-subtle);\n --bs-list-group-active-bg: var(--bs-danger-text-emphasis);\n --bs-list-group-active-border-color: var(--bs-danger-text-emphasis);\n}\n\n.list-group-item-light {\n --bs-list-group-color: var(--bs-light-text-emphasis);\n --bs-list-group-bg: var(--bs-light-bg-subtle);\n --bs-list-group-border-color: var(--bs-light-border-subtle);\n --bs-list-group-action-hover-color: var(--bs-emphasis-color);\n --bs-list-group-action-hover-bg: var(--bs-light-border-subtle);\n --bs-list-group-action-active-color: var(--bs-emphasis-color);\n --bs-list-group-action-active-bg: var(--bs-light-border-subtle);\n --bs-list-group-active-color: var(--bs-light-bg-subtle);\n --bs-list-group-active-bg: var(--bs-light-text-emphasis);\n --bs-list-group-active-border-color: var(--bs-light-text-emphasis);\n}\n\n.list-group-item-dark {\n --bs-list-group-color: var(--bs-dark-text-emphasis);\n --bs-list-group-bg: var(--bs-dark-bg-subtle);\n --bs-list-group-border-color: var(--bs-dark-border-subtle);\n --bs-list-group-action-hover-color: var(--bs-emphasis-color);\n --bs-list-group-action-hover-bg: var(--bs-dark-border-subtle);\n --bs-list-group-action-active-color: var(--bs-emphasis-color);\n --bs-list-group-action-active-bg: var(--bs-dark-border-subtle);\n --bs-list-group-active-color: var(--bs-dark-bg-subtle);\n --bs-list-group-active-bg: var(--bs-dark-text-emphasis);\n --bs-list-group-active-border-color: var(--bs-dark-text-emphasis);\n}\n\n.btn-close {\n --bs-btn-close-color: #000;\n --bs-btn-close-bg: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e\");\n --bs-btn-close-opacity: 0.5;\n --bs-btn-close-hover-opacity: 0.75;\n --bs-btn-close-focus-shadow: 0 0 0 0.1875rem var(--pst-color-accent);\n --bs-btn-close-focus-opacity: 1;\n --bs-btn-close-disabled-opacity: 0.25;\n --bs-btn-close-white-filter: invert(1) grayscale(100%) brightness(200%);\n box-sizing: content-box;\n width: 1em;\n height: 1em;\n padding: 0.25em 0.25em;\n color: var(--bs-btn-close-color);\n background: transparent var(--bs-btn-close-bg) center/1em auto no-repeat;\n border: 0;\n border-radius: 0.375rem;\n opacity: var(--bs-btn-close-opacity);\n}\n.btn-close:hover {\n color: var(--bs-btn-close-color);\n text-decoration: none;\n opacity: var(--bs-btn-close-hover-opacity);\n}\n.btn-close:focus {\n outline: 0;\n box-shadow: var(--bs-btn-close-focus-shadow);\n opacity: var(--bs-btn-close-focus-opacity);\n}\n.btn-close:disabled, .btn-close.disabled {\n pointer-events: none;\n user-select: none;\n opacity: var(--bs-btn-close-disabled-opacity);\n}\n\n.btn-close-white {\n filter: var(--bs-btn-close-white-filter);\n}\n\n[data-bs-theme=dark] .btn-close {\n filter: var(--bs-btn-close-white-filter);\n}\n\n.toast {\n --bs-toast-zindex: 1090;\n --bs-toast-padding-x: 0.75rem;\n --bs-toast-padding-y: 0.5rem;\n --bs-toast-spacing: 1.5rem;\n --bs-toast-max-width: 350px;\n --bs-toast-font-size: 0.875rem;\n --bs-toast-color: ;\n --bs-toast-bg: rgba(var(--bs-body-bg-rgb), 0.85);\n --bs-toast-border-width: var(--bs-border-width);\n --bs-toast-border-color: var(--bs-border-color-translucent);\n --bs-toast-border-radius: var(--bs-border-radius);\n --bs-toast-box-shadow: var(--bs-box-shadow);\n --bs-toast-header-color: var(--bs-secondary-color);\n --bs-toast-header-bg: rgba(var(--bs-body-bg-rgb), 0.85);\n --bs-toast-header-border-color: var(--bs-border-color-translucent);\n width: var(--bs-toast-max-width);\n max-width: 100%;\n font-size: var(--bs-toast-font-size);\n color: var(--bs-toast-color);\n pointer-events: auto;\n background-color: var(--bs-toast-bg);\n background-clip: padding-box;\n border: var(--bs-toast-border-width) solid var(--bs-toast-border-color);\n box-shadow: var(--bs-toast-box-shadow);\n border-radius: var(--bs-toast-border-radius);\n}\n.toast.showing {\n opacity: 0;\n}\n.toast:not(.show) {\n display: none;\n}\n\n.toast-container {\n --bs-toast-zindex: 1090;\n position: absolute;\n z-index: var(--bs-toast-zindex);\n width: max-content;\n max-width: 100%;\n pointer-events: none;\n}\n.toast-container > :not(:last-child) {\n margin-bottom: var(--bs-toast-spacing);\n}\n\n.toast-header {\n display: flex;\n align-items: center;\n padding: var(--bs-toast-padding-y) var(--bs-toast-padding-x);\n color: var(--bs-toast-header-color);\n background-color: var(--bs-toast-header-bg);\n background-clip: padding-box;\n border-bottom: var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);\n border-top-left-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));\n border-top-right-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));\n}\n.toast-header .btn-close {\n margin-right: calc(-0.5 * var(--bs-toast-padding-x));\n margin-left: var(--bs-toast-padding-x);\n}\n\n.toast-body {\n padding: var(--bs-toast-padding-x);\n word-wrap: break-word;\n}\n\n.modal {\n --bs-modal-zindex: 1055;\n --bs-modal-width: 500px;\n --bs-modal-padding: 1rem;\n --bs-modal-margin: 0.5rem;\n --bs-modal-color: ;\n --bs-modal-bg: var(--bs-body-bg);\n --bs-modal-border-color: var(--bs-border-color-translucent);\n --bs-modal-border-width: var(--bs-border-width);\n --bs-modal-border-radius: var(--bs-border-radius-lg);\n --bs-modal-box-shadow: var(--bs-box-shadow-sm);\n --bs-modal-inner-border-radius: calc(var(--bs-border-radius-lg) - (var(--bs-border-width)));\n --bs-modal-header-padding-x: 1rem;\n --bs-modal-header-padding-y: 1rem;\n --bs-modal-header-padding: 1rem 1rem;\n --bs-modal-header-border-color: var(--bs-border-color);\n --bs-modal-header-border-width: var(--bs-border-width);\n --bs-modal-title-line-height: 1.5;\n --bs-modal-footer-gap: 0.5rem;\n --bs-modal-footer-bg: ;\n --bs-modal-footer-border-color: var(--bs-border-color);\n --bs-modal-footer-border-width: var(--bs-border-width);\n position: fixed;\n top: 0;\n left: 0;\n z-index: var(--bs-modal-zindex);\n display: none;\n width: 100%;\n height: 100%;\n overflow-x: hidden;\n overflow-y: auto;\n outline: 0;\n}\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: var(--bs-modal-margin);\n pointer-events: none;\n}\n.modal.fade .modal-dialog {\n transition: transform 0.3s ease-out;\n transform: translate(0, -50px);\n}\n@media (prefers-reduced-motion: reduce) {\n .modal.fade .modal-dialog {\n transition: none;\n }\n}\n.modal.show .modal-dialog {\n transform: none;\n}\n.modal.modal-static .modal-dialog {\n transform: scale(1.02);\n}\n\n.modal-dialog-scrollable {\n height: calc(100% - var(--bs-modal-margin) * 2);\n}\n.modal-dialog-scrollable .modal-content {\n max-height: 100%;\n overflow: hidden;\n}\n.modal-dialog-scrollable .modal-body {\n overflow-y: auto;\n}\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: calc(100% - var(--bs-modal-margin) * 2);\n}\n\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n color: var(--bs-modal-color);\n pointer-events: auto;\n background-color: var(--bs-modal-bg);\n background-clip: padding-box;\n border: var(--bs-modal-border-width) solid var(--bs-modal-border-color);\n border-radius: var(--bs-modal-border-radius);\n outline: 0;\n}\n\n.modal-backdrop {\n --bs-backdrop-zindex: 1050;\n --bs-backdrop-bg: #000;\n --bs-backdrop-opacity: 0.5;\n position: fixed;\n top: 0;\n left: 0;\n z-index: var(--bs-backdrop-zindex);\n width: 100vw;\n height: 100vh;\n background-color: var(--bs-backdrop-bg);\n}\n.modal-backdrop.fade {\n opacity: 0;\n}\n.modal-backdrop.show {\n opacity: var(--bs-backdrop-opacity);\n}\n\n.modal-header {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n padding: var(--bs-modal-header-padding);\n border-bottom: var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);\n border-top-left-radius: var(--bs-modal-inner-border-radius);\n border-top-right-radius: var(--bs-modal-inner-border-radius);\n}\n.modal-header .btn-close {\n padding: calc(var(--bs-modal-header-padding-y) * 0.5) calc(var(--bs-modal-header-padding-x) * 0.5);\n margin: calc(-0.5 * var(--bs-modal-header-padding-y)) calc(-0.5 * var(--bs-modal-header-padding-x)) calc(-0.5 * var(--bs-modal-header-padding-y)) auto;\n}\n\n.modal-title {\n margin-bottom: 0;\n line-height: var(--bs-modal-title-line-height);\n}\n\n.modal-body {\n position: relative;\n flex: 1 1 auto;\n padding: var(--bs-modal-padding);\n}\n\n.modal-footer {\n display: flex;\n flex-shrink: 0;\n flex-wrap: wrap;\n align-items: center;\n justify-content: flex-end;\n padding: calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * 0.5);\n background-color: var(--bs-modal-footer-bg);\n border-top: var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);\n border-bottom-right-radius: var(--bs-modal-inner-border-radius);\n border-bottom-left-radius: var(--bs-modal-inner-border-radius);\n}\n.modal-footer > * {\n margin: calc(var(--bs-modal-footer-gap) * 0.5);\n}\n\n@media (min-width: 540px) {\n .modal {\n --bs-modal-margin: 1.75rem;\n --bs-modal-box-shadow: var(--bs-box-shadow);\n }\n .modal-dialog {\n max-width: var(--bs-modal-width);\n margin-right: auto;\n margin-left: auto;\n }\n .modal-sm {\n --bs-modal-width: 300px;\n }\n}\n@media (min-width: 960px) {\n .modal-lg,\n .modal-xl {\n --bs-modal-width: 800px;\n }\n}\n@media (min-width: 1200px) {\n .modal-xl {\n --bs-modal-width: 1140px;\n }\n}\n.modal-fullscreen {\n width: 100vw;\n max-width: none;\n height: 100%;\n margin: 0;\n}\n.modal-fullscreen .modal-content {\n height: 100%;\n border: 0;\n border-radius: 0;\n}\n.modal-fullscreen .modal-header,\n.modal-fullscreen .modal-footer {\n border-radius: 0;\n}\n.modal-fullscreen .modal-body {\n overflow-y: auto;\n}\n\n@media (max-width: 539.98px) {\n .modal-fullscreen-sm-down {\n width: 100vw;\n max-width: none;\n height: 100%;\n margin: 0;\n }\n .modal-fullscreen-sm-down .modal-content {\n height: 100%;\n border: 0;\n border-radius: 0;\n }\n .modal-fullscreen-sm-down .modal-header,\n .modal-fullscreen-sm-down .modal-footer {\n border-radius: 0;\n }\n .modal-fullscreen-sm-down .modal-body {\n overflow-y: auto;\n }\n}\n@media (max-width: 719.98px) {\n .modal-fullscreen-md-down {\n width: 100vw;\n max-width: none;\n height: 100%;\n margin: 0;\n }\n .modal-fullscreen-md-down .modal-content {\n height: 100%;\n border: 0;\n border-radius: 0;\n }\n .modal-fullscreen-md-down .modal-header,\n .modal-fullscreen-md-down .modal-footer {\n border-radius: 0;\n }\n .modal-fullscreen-md-down .modal-body {\n overflow-y: auto;\n }\n}\n@media (max-width: 959.98px) {\n .modal-fullscreen-lg-down {\n width: 100vw;\n max-width: none;\n height: 100%;\n margin: 0;\n }\n .modal-fullscreen-lg-down .modal-content {\n height: 100%;\n border: 0;\n border-radius: 0;\n }\n .modal-fullscreen-lg-down .modal-header,\n .modal-fullscreen-lg-down .modal-footer {\n border-radius: 0;\n }\n .modal-fullscreen-lg-down .modal-body {\n overflow-y: auto;\n }\n}\n@media (max-width: 1199.98px) {\n .modal-fullscreen-xl-down {\n width: 100vw;\n max-width: none;\n height: 100%;\n margin: 0;\n }\n .modal-fullscreen-xl-down .modal-content {\n height: 100%;\n border: 0;\n border-radius: 0;\n }\n .modal-fullscreen-xl-down .modal-header,\n .modal-fullscreen-xl-down .modal-footer {\n border-radius: 0;\n }\n .modal-fullscreen-xl-down .modal-body {\n overflow-y: auto;\n }\n}\n.tooltip {\n --bs-tooltip-zindex: 1080;\n --bs-tooltip-max-width: 200px;\n --bs-tooltip-padding-x: 0.5rem;\n --bs-tooltip-padding-y: 0.25rem;\n --bs-tooltip-margin: ;\n --bs-tooltip-font-size: 0.875rem;\n --bs-tooltip-color: var(--bs-body-bg);\n --bs-tooltip-bg: var(--bs-emphasis-color);\n --bs-tooltip-border-radius: var(--bs-border-radius);\n --bs-tooltip-opacity: 0.9;\n --bs-tooltip-arrow-width: 0.8rem;\n --bs-tooltip-arrow-height: 0.4rem;\n z-index: var(--bs-tooltip-zindex);\n display: block;\n margin: var(--bs-tooltip-margin);\n font-family: var(--bs-font-sans-serif);\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n white-space: normal;\n word-spacing: normal;\n line-break: auto;\n font-size: var(--bs-tooltip-font-size);\n word-wrap: break-word;\n opacity: 0;\n}\n.tooltip.show {\n opacity: var(--bs-tooltip-opacity);\n}\n.tooltip .tooltip-arrow {\n display: block;\n width: var(--bs-tooltip-arrow-width);\n height: var(--bs-tooltip-arrow-height);\n}\n.tooltip .tooltip-arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-tooltip-top .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow {\n bottom: calc(-1 * var(--bs-tooltip-arrow-height));\n}\n.bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before {\n top: -1px;\n border-width: var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * 0.5) 0;\n border-top-color: var(--bs-tooltip-bg);\n}\n\n/* rtl:begin:ignore */\n.bs-tooltip-end .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow {\n left: calc(-1 * var(--bs-tooltip-arrow-height));\n width: var(--bs-tooltip-arrow-height);\n height: var(--bs-tooltip-arrow-width);\n}\n.bs-tooltip-end .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before {\n right: -1px;\n border-width: calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * 0.5) 0;\n border-right-color: var(--bs-tooltip-bg);\n}\n\n/* rtl:end:ignore */\n.bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow {\n top: calc(-1 * var(--bs-tooltip-arrow-height));\n}\n.bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before {\n bottom: -1px;\n border-width: 0 calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height);\n border-bottom-color: var(--bs-tooltip-bg);\n}\n\n/* rtl:begin:ignore */\n.bs-tooltip-start .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow {\n right: calc(-1 * var(--bs-tooltip-arrow-height));\n width: var(--bs-tooltip-arrow-height);\n height: var(--bs-tooltip-arrow-width);\n}\n.bs-tooltip-start .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before {\n left: -1px;\n border-width: calc(var(--bs-tooltip-arrow-width) * 0.5) 0 calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height);\n border-left-color: var(--bs-tooltip-bg);\n}\n\n/* rtl:end:ignore */\n.tooltip-inner {\n max-width: var(--bs-tooltip-max-width);\n padding: var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);\n color: var(--bs-tooltip-color);\n text-align: center;\n background-color: var(--bs-tooltip-bg);\n border-radius: var(--bs-tooltip-border-radius);\n}\n\n.popover {\n --bs-popover-zindex: 1070;\n --bs-popover-max-width: 276px;\n --bs-popover-font-size: 0.875rem;\n --bs-popover-bg: var(--bs-body-bg);\n --bs-popover-border-width: var(--bs-border-width);\n --bs-popover-border-color: var(--bs-border-color-translucent);\n --bs-popover-border-radius: var(--bs-border-radius-lg);\n --bs-popover-inner-border-radius: calc(var(--bs-border-radius-lg) - var(--bs-border-width));\n --bs-popover-box-shadow: var(--bs-box-shadow);\n --bs-popover-header-padding-x: 1rem;\n --bs-popover-header-padding-y: 0.5rem;\n --bs-popover-header-font-size: 1rem;\n --bs-popover-header-color: inherit;\n --bs-popover-header-bg: var(--bs-secondary-bg);\n --bs-popover-body-padding-x: 1rem;\n --bs-popover-body-padding-y: 1rem;\n --bs-popover-body-color: var(--bs-body-color);\n --bs-popover-arrow-width: 1rem;\n --bs-popover-arrow-height: 0.5rem;\n --bs-popover-arrow-border: var(--bs-popover-border-color);\n z-index: var(--bs-popover-zindex);\n display: block;\n max-width: var(--bs-popover-max-width);\n font-family: var(--bs-font-sans-serif);\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n white-space: normal;\n word-spacing: normal;\n line-break: auto;\n font-size: var(--bs-popover-font-size);\n word-wrap: break-word;\n background-color: var(--bs-popover-bg);\n background-clip: padding-box;\n border: var(--bs-popover-border-width) solid var(--bs-popover-border-color);\n border-radius: var(--bs-popover-border-radius);\n}\n.popover .popover-arrow {\n display: block;\n width: var(--bs-popover-arrow-width);\n height: var(--bs-popover-arrow-height);\n}\n.popover .popover-arrow::before, .popover .popover-arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n border-width: 0;\n}\n\n.bs-popover-top > .popover-arrow, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow {\n bottom: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));\n}\n.bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before, .bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after {\n border-width: var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * 0.5) 0;\n}\n.bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before {\n bottom: 0;\n border-top-color: var(--bs-popover-arrow-border);\n}\n.bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after {\n bottom: var(--bs-popover-border-width);\n border-top-color: var(--bs-popover-bg);\n}\n\n/* rtl:begin:ignore */\n.bs-popover-end > .popover-arrow, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow {\n left: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));\n width: var(--bs-popover-arrow-height);\n height: var(--bs-popover-arrow-width);\n}\n.bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before, .bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after {\n border-width: calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * 0.5) 0;\n}\n.bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before {\n left: 0;\n border-right-color: var(--bs-popover-arrow-border);\n}\n.bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after {\n left: var(--bs-popover-border-width);\n border-right-color: var(--bs-popover-bg);\n}\n\n/* rtl:end:ignore */\n.bs-popover-bottom > .popover-arrow, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow {\n top: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));\n}\n.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before, .bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after {\n border-width: 0 calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height);\n}\n.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before {\n top: 0;\n border-bottom-color: var(--bs-popover-arrow-border);\n}\n.bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after {\n top: var(--bs-popover-border-width);\n border-bottom-color: var(--bs-popover-bg);\n}\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[data-popper-placement^=bottom] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: var(--bs-popover-arrow-width);\n margin-left: calc(-0.5 * var(--bs-popover-arrow-width));\n content: \"\";\n border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-header-bg);\n}\n\n/* rtl:begin:ignore */\n.bs-popover-start > .popover-arrow, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow {\n right: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));\n width: var(--bs-popover-arrow-height);\n height: var(--bs-popover-arrow-width);\n}\n.bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before, .bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after {\n border-width: calc(var(--bs-popover-arrow-width) * 0.5) 0 calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height);\n}\n.bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before {\n right: 0;\n border-left-color: var(--bs-popover-arrow-border);\n}\n.bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after {\n right: var(--bs-popover-border-width);\n border-left-color: var(--bs-popover-bg);\n}\n\n/* rtl:end:ignore */\n.popover-header {\n padding: var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);\n margin-bottom: 0;\n font-size: var(--bs-popover-header-font-size);\n color: var(--bs-popover-header-color);\n background-color: var(--bs-popover-header-bg);\n border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-border-color);\n border-top-left-radius: var(--bs-popover-inner-border-radius);\n border-top-right-radius: var(--bs-popover-inner-border-radius);\n}\n.popover-header:empty {\n display: none;\n}\n\n.popover-body {\n padding: var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);\n color: var(--bs-popover-body-color);\n}\n\n.carousel {\n position: relative;\n}\n\n.carousel.pointer-event {\n touch-action: pan-y;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n.carousel-inner::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n backface-visibility: hidden;\n transition: transform 0.6s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .carousel-item {\n transition: none;\n }\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next:not(.carousel-item-start),\n.active.carousel-item-end {\n transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-end),\n.active.carousel-item-start {\n transform: translateX(-100%);\n}\n\n.carousel-fade .carousel-item {\n opacity: 0;\n transition-property: opacity;\n transform: none;\n}\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-start,\n.carousel-fade .carousel-item-prev.carousel-item-end {\n z-index: 1;\n opacity: 1;\n}\n.carousel-fade .active.carousel-item-start,\n.carousel-fade .active.carousel-item-end {\n z-index: 0;\n opacity: 0;\n transition: opacity 0s 0.6s;\n}\n@media (prefers-reduced-motion: reduce) {\n .carousel-fade .active.carousel-item-start,\n .carousel-fade .active.carousel-item-end {\n transition: none;\n }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 15%;\n padding: 0;\n color: #fff;\n text-align: center;\n background: none;\n border: 0;\n opacity: 0.5;\n transition: opacity 0.15s ease;\n}\n@media (prefers-reduced-motion: reduce) {\n .carousel-control-prev,\n .carousel-control-next {\n transition: none;\n }\n}\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: 0.9;\n}\n\n.carousel-control-prev {\n left: 0;\n}\n\n.carousel-control-next {\n right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n background-repeat: no-repeat;\n background-position: 50%;\n background-size: 100% 100%;\n}\n\n.carousel-control-prev-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e\") /*rtl:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e\")*/;\n}\n\n.carousel-control-next-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e\") /*rtl:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e\")*/;\n}\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 2;\n display: flex;\n justify-content: center;\n padding: 0;\n margin-right: 15%;\n margin-bottom: 1rem;\n margin-left: 15%;\n}\n.carousel-indicators [data-bs-target] {\n box-sizing: content-box;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n padding: 0;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #fff;\n background-clip: padding-box;\n border: 0;\n border-top: 10px solid transparent;\n border-bottom: 10px solid transparent;\n opacity: 0.5;\n transition: opacity 0.6s ease;\n}\n@media (prefers-reduced-motion: reduce) {\n .carousel-indicators [data-bs-target] {\n transition: none;\n }\n}\n.carousel-indicators .active {\n opacity: 1;\n}\n\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 1.25rem;\n left: 15%;\n padding-top: 1.25rem;\n padding-bottom: 1.25rem;\n color: #fff;\n text-align: center;\n}\n\n.carousel-dark .carousel-control-prev-icon,\n.carousel-dark .carousel-control-next-icon {\n filter: invert(1) grayscale(100);\n}\n.carousel-dark .carousel-indicators [data-bs-target] {\n background-color: #000;\n}\n.carousel-dark .carousel-caption {\n color: #000;\n}\n\n[data-bs-theme=dark] .carousel .carousel-control-prev-icon,\n[data-bs-theme=dark] .carousel .carousel-control-next-icon, [data-bs-theme=dark].carousel .carousel-control-prev-icon,\n[data-bs-theme=dark].carousel .carousel-control-next-icon {\n filter: invert(1) grayscale(100);\n}\n[data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target], [data-bs-theme=dark].carousel .carousel-indicators [data-bs-target] {\n background-color: #000;\n}\n[data-bs-theme=dark] .carousel .carousel-caption, [data-bs-theme=dark].carousel .carousel-caption {\n color: #000;\n}\n\n.spinner-grow,\n.spinner-border {\n display: inline-block;\n width: var(--bs-spinner-width);\n height: var(--bs-spinner-height);\n vertical-align: var(--bs-spinner-vertical-align);\n border-radius: 50%;\n animation: var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name);\n}\n\n@keyframes spinner-border {\n to {\n transform: rotate(360deg) /* rtl:ignore */;\n }\n}\n.spinner-border {\n --bs-spinner-width: 2rem;\n --bs-spinner-height: 2rem;\n --bs-spinner-vertical-align: -0.125em;\n --bs-spinner-border-width: 0.25em;\n --bs-spinner-animation-speed: 0.75s;\n --bs-spinner-animation-name: spinner-border;\n border: var(--bs-spinner-border-width) solid currentcolor;\n border-right-color: transparent;\n}\n\n.spinner-border-sm {\n --bs-spinner-width: 1rem;\n --bs-spinner-height: 1rem;\n --bs-spinner-border-width: 0.2em;\n}\n\n@keyframes spinner-grow {\n 0% {\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n transform: none;\n }\n}\n.spinner-grow {\n --bs-spinner-width: 2rem;\n --bs-spinner-height: 2rem;\n --bs-spinner-vertical-align: -0.125em;\n --bs-spinner-animation-speed: 0.75s;\n --bs-spinner-animation-name: spinner-grow;\n background-color: currentcolor;\n opacity: 0;\n}\n\n.spinner-grow-sm {\n --bs-spinner-width: 1rem;\n --bs-spinner-height: 1rem;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .spinner-border,\n .spinner-grow {\n --bs-spinner-animation-speed: 1.5s;\n }\n}\n.offcanvas, .offcanvas-xl, .offcanvas-lg, .offcanvas-md, .offcanvas-sm {\n --bs-offcanvas-zindex: 1045;\n --bs-offcanvas-width: 400px;\n --bs-offcanvas-height: 30vh;\n --bs-offcanvas-padding-x: 1rem;\n --bs-offcanvas-padding-y: 1rem;\n --bs-offcanvas-color: var(--bs-body-color);\n --bs-offcanvas-bg: var(--bs-body-bg);\n --bs-offcanvas-border-width: var(--bs-border-width);\n --bs-offcanvas-border-color: var(--bs-border-color-translucent);\n --bs-offcanvas-box-shadow: var(--bs-box-shadow-sm);\n --bs-offcanvas-transition: transform 0.3s ease-in-out;\n --bs-offcanvas-title-line-height: 1.5;\n}\n\n@media (max-width: 539.98px) {\n .offcanvas-sm {\n position: fixed;\n bottom: 0;\n z-index: var(--bs-offcanvas-zindex);\n display: flex;\n flex-direction: column;\n max-width: 100%;\n color: var(--bs-offcanvas-color);\n visibility: hidden;\n background-color: var(--bs-offcanvas-bg);\n background-clip: padding-box;\n outline: 0;\n transition: var(--bs-offcanvas-transition);\n }\n}\n@media (max-width: 539.98px) and (prefers-reduced-motion: reduce) {\n .offcanvas-sm {\n transition: none;\n }\n}\n@media (max-width: 539.98px) {\n .offcanvas-sm.offcanvas-start {\n top: 0;\n left: 0;\n width: var(--bs-offcanvas-width);\n border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateX(-100%);\n }\n .offcanvas-sm.offcanvas-end {\n top: 0;\n right: 0;\n width: var(--bs-offcanvas-width);\n border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateX(100%);\n }\n .offcanvas-sm.offcanvas-top {\n top: 0;\n right: 0;\n left: 0;\n height: var(--bs-offcanvas-height);\n max-height: 100%;\n border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateY(-100%);\n }\n .offcanvas-sm.offcanvas-bottom {\n right: 0;\n left: 0;\n height: var(--bs-offcanvas-height);\n max-height: 100%;\n border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateY(100%);\n }\n .offcanvas-sm.showing, .offcanvas-sm.show:not(.hiding) {\n transform: none;\n }\n .offcanvas-sm.showing, .offcanvas-sm.hiding, .offcanvas-sm.show {\n visibility: visible;\n }\n}\n@media (min-width: 540px) {\n .offcanvas-sm {\n --bs-offcanvas-height: auto;\n --bs-offcanvas-border-width: 0;\n background-color: transparent !important;\n }\n .offcanvas-sm .offcanvas-header {\n display: none;\n }\n .offcanvas-sm .offcanvas-body {\n display: flex;\n flex-grow: 0;\n padding: 0;\n overflow-y: visible;\n background-color: transparent !important;\n }\n}\n\n@media (max-width: 719.98px) {\n .offcanvas-md {\n position: fixed;\n bottom: 0;\n z-index: var(--bs-offcanvas-zindex);\n display: flex;\n flex-direction: column;\n max-width: 100%;\n color: var(--bs-offcanvas-color);\n visibility: hidden;\n background-color: var(--bs-offcanvas-bg);\n background-clip: padding-box;\n outline: 0;\n transition: var(--bs-offcanvas-transition);\n }\n}\n@media (max-width: 719.98px) and (prefers-reduced-motion: reduce) {\n .offcanvas-md {\n transition: none;\n }\n}\n@media (max-width: 719.98px) {\n .offcanvas-md.offcanvas-start {\n top: 0;\n left: 0;\n width: var(--bs-offcanvas-width);\n border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateX(-100%);\n }\n .offcanvas-md.offcanvas-end {\n top: 0;\n right: 0;\n width: var(--bs-offcanvas-width);\n border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateX(100%);\n }\n .offcanvas-md.offcanvas-top {\n top: 0;\n right: 0;\n left: 0;\n height: var(--bs-offcanvas-height);\n max-height: 100%;\n border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateY(-100%);\n }\n .offcanvas-md.offcanvas-bottom {\n right: 0;\n left: 0;\n height: var(--bs-offcanvas-height);\n max-height: 100%;\n border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateY(100%);\n }\n .offcanvas-md.showing, .offcanvas-md.show:not(.hiding) {\n transform: none;\n }\n .offcanvas-md.showing, .offcanvas-md.hiding, .offcanvas-md.show {\n visibility: visible;\n }\n}\n@media (min-width: 720px) {\n .offcanvas-md {\n --bs-offcanvas-height: auto;\n --bs-offcanvas-border-width: 0;\n background-color: transparent !important;\n }\n .offcanvas-md .offcanvas-header {\n display: none;\n }\n .offcanvas-md .offcanvas-body {\n display: flex;\n flex-grow: 0;\n padding: 0;\n overflow-y: visible;\n background-color: transparent !important;\n }\n}\n\n@media (max-width: 959.98px) {\n .offcanvas-lg {\n position: fixed;\n bottom: 0;\n z-index: var(--bs-offcanvas-zindex);\n display: flex;\n flex-direction: column;\n max-width: 100%;\n color: var(--bs-offcanvas-color);\n visibility: hidden;\n background-color: var(--bs-offcanvas-bg);\n background-clip: padding-box;\n outline: 0;\n transition: var(--bs-offcanvas-transition);\n }\n}\n@media (max-width: 959.98px) and (prefers-reduced-motion: reduce) {\n .offcanvas-lg {\n transition: none;\n }\n}\n@media (max-width: 959.98px) {\n .offcanvas-lg.offcanvas-start {\n top: 0;\n left: 0;\n width: var(--bs-offcanvas-width);\n border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateX(-100%);\n }\n .offcanvas-lg.offcanvas-end {\n top: 0;\n right: 0;\n width: var(--bs-offcanvas-width);\n border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateX(100%);\n }\n .offcanvas-lg.offcanvas-top {\n top: 0;\n right: 0;\n left: 0;\n height: var(--bs-offcanvas-height);\n max-height: 100%;\n border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateY(-100%);\n }\n .offcanvas-lg.offcanvas-bottom {\n right: 0;\n left: 0;\n height: var(--bs-offcanvas-height);\n max-height: 100%;\n border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateY(100%);\n }\n .offcanvas-lg.showing, .offcanvas-lg.show:not(.hiding) {\n transform: none;\n }\n .offcanvas-lg.showing, .offcanvas-lg.hiding, .offcanvas-lg.show {\n visibility: visible;\n }\n}\n@media (min-width: 960px) {\n .offcanvas-lg {\n --bs-offcanvas-height: auto;\n --bs-offcanvas-border-width: 0;\n background-color: transparent !important;\n }\n .offcanvas-lg .offcanvas-header {\n display: none;\n }\n .offcanvas-lg .offcanvas-body {\n display: flex;\n flex-grow: 0;\n padding: 0;\n overflow-y: visible;\n background-color: transparent !important;\n }\n}\n\n@media (max-width: 1199.98px) {\n .offcanvas-xl {\n position: fixed;\n bottom: 0;\n z-index: var(--bs-offcanvas-zindex);\n display: flex;\n flex-direction: column;\n max-width: 100%;\n color: var(--bs-offcanvas-color);\n visibility: hidden;\n background-color: var(--bs-offcanvas-bg);\n background-clip: padding-box;\n outline: 0;\n transition: var(--bs-offcanvas-transition);\n }\n}\n@media (max-width: 1199.98px) and (prefers-reduced-motion: reduce) {\n .offcanvas-xl {\n transition: none;\n }\n}\n@media (max-width: 1199.98px) {\n .offcanvas-xl.offcanvas-start {\n top: 0;\n left: 0;\n width: var(--bs-offcanvas-width);\n border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateX(-100%);\n }\n .offcanvas-xl.offcanvas-end {\n top: 0;\n right: 0;\n width: var(--bs-offcanvas-width);\n border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateX(100%);\n }\n .offcanvas-xl.offcanvas-top {\n top: 0;\n right: 0;\n left: 0;\n height: var(--bs-offcanvas-height);\n max-height: 100%;\n border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateY(-100%);\n }\n .offcanvas-xl.offcanvas-bottom {\n right: 0;\n left: 0;\n height: var(--bs-offcanvas-height);\n max-height: 100%;\n border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateY(100%);\n }\n .offcanvas-xl.showing, .offcanvas-xl.show:not(.hiding) {\n transform: none;\n }\n .offcanvas-xl.showing, .offcanvas-xl.hiding, .offcanvas-xl.show {\n visibility: visible;\n }\n}\n@media (min-width: 1200px) {\n .offcanvas-xl {\n --bs-offcanvas-height: auto;\n --bs-offcanvas-border-width: 0;\n background-color: transparent !important;\n }\n .offcanvas-xl .offcanvas-header {\n display: none;\n }\n .offcanvas-xl .offcanvas-body {\n display: flex;\n flex-grow: 0;\n padding: 0;\n overflow-y: visible;\n background-color: transparent !important;\n }\n}\n\n.offcanvas {\n position: fixed;\n bottom: 0;\n z-index: var(--bs-offcanvas-zindex);\n display: flex;\n flex-direction: column;\n max-width: 100%;\n color: var(--bs-offcanvas-color);\n visibility: hidden;\n background-color: var(--bs-offcanvas-bg);\n background-clip: padding-box;\n outline: 0;\n transition: var(--bs-offcanvas-transition);\n}\n@media (prefers-reduced-motion: reduce) {\n .offcanvas {\n transition: none;\n }\n}\n.offcanvas.offcanvas-start {\n top: 0;\n left: 0;\n width: var(--bs-offcanvas-width);\n border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateX(-100%);\n}\n.offcanvas.offcanvas-end {\n top: 0;\n right: 0;\n width: var(--bs-offcanvas-width);\n border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateX(100%);\n}\n.offcanvas.offcanvas-top {\n top: 0;\n right: 0;\n left: 0;\n height: var(--bs-offcanvas-height);\n max-height: 100%;\n border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateY(-100%);\n}\n.offcanvas.offcanvas-bottom {\n right: 0;\n left: 0;\n height: var(--bs-offcanvas-height);\n max-height: 100%;\n border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateY(100%);\n}\n.offcanvas.showing, .offcanvas.show:not(.hiding) {\n transform: none;\n}\n.offcanvas.showing, .offcanvas.hiding, .offcanvas.show {\n visibility: visible;\n}\n\n.offcanvas-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1040;\n width: 100vw;\n height: 100vh;\n background-color: #000;\n}\n.offcanvas-backdrop.fade {\n opacity: 0;\n}\n.offcanvas-backdrop.show {\n opacity: 0.5;\n}\n\n.offcanvas-header {\n display: flex;\n align-items: center;\n padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);\n}\n.offcanvas-header .btn-close {\n padding: calc(var(--bs-offcanvas-padding-y) * 0.5) calc(var(--bs-offcanvas-padding-x) * 0.5);\n margin: calc(-0.5 * var(--bs-offcanvas-padding-y)) calc(-0.5 * var(--bs-offcanvas-padding-x)) calc(-0.5 * var(--bs-offcanvas-padding-y)) auto;\n}\n\n.offcanvas-title {\n margin-bottom: 0;\n line-height: var(--bs-offcanvas-title-line-height);\n}\n\n.offcanvas-body {\n flex-grow: 1;\n padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);\n overflow-y: auto;\n}\n\n.placeholder {\n display: inline-block;\n min-height: 1em;\n vertical-align: middle;\n cursor: wait;\n background-color: currentcolor;\n opacity: 0.5;\n}\n.placeholder.btn::before {\n display: inline-block;\n content: \"\";\n}\n\n.placeholder-xs {\n min-height: 0.6em;\n}\n\n.placeholder-sm {\n min-height: 0.8em;\n}\n\n.placeholder-lg {\n min-height: 1.2em;\n}\n\n.placeholder-glow .placeholder {\n animation: placeholder-glow 2s ease-in-out infinite;\n}\n\n@keyframes placeholder-glow {\n 50% {\n opacity: 0.2;\n }\n}\n.placeholder-wave {\n mask-image: linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);\n mask-size: 200% 100%;\n animation: placeholder-wave 2s linear infinite;\n}\n\n@keyframes placeholder-wave {\n 100% {\n mask-position: -200% 0%;\n }\n}\n.clearfix::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.text-bg-primary {\n color: #fff !important;\n background-color: RGBA(var(--bs-primary-rgb), var(--bs-bg-opacity, 1)) !important;\n}\n\n.text-bg-secondary {\n color: #fff !important;\n background-color: RGBA(var(--bs-secondary-rgb), var(--bs-bg-opacity, 1)) !important;\n}\n\n.text-bg-success {\n color: #fff !important;\n background-color: RGBA(var(--bs-success-rgb), var(--bs-bg-opacity, 1)) !important;\n}\n\n.text-bg-info {\n color: #000 !important;\n background-color: RGBA(var(--bs-info-rgb), var(--bs-bg-opacity, 1)) !important;\n}\n\n.text-bg-warning {\n color: #000 !important;\n background-color: RGBA(var(--bs-warning-rgb), var(--bs-bg-opacity, 1)) !important;\n}\n\n.text-bg-danger {\n color: #fff !important;\n background-color: RGBA(var(--bs-danger-rgb), var(--bs-bg-opacity, 1)) !important;\n}\n\n.text-bg-light {\n color: #000 !important;\n background-color: RGBA(var(--bs-light-rgb), var(--bs-bg-opacity, 1)) !important;\n}\n\n.text-bg-dark {\n color: #fff !important;\n background-color: RGBA(var(--bs-dark-rgb), var(--bs-bg-opacity, 1)) !important;\n}\n\n.link-primary {\n color: RGBA(var(--bs-primary-rgb), var(--bs-link-opacity, 1)) !important;\n text-decoration-color: RGBA(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)) !important;\n}\n.link-primary:hover, .link-primary:focus {\n color: RGBA(10, 88, 202, var(--bs-link-opacity, 1)) !important;\n text-decoration-color: RGBA(10, 88, 202, var(--bs-link-underline-opacity, 1)) !important;\n}\n\n.link-secondary {\n color: RGBA(var(--bs-secondary-rgb), var(--bs-link-opacity, 1)) !important;\n text-decoration-color: RGBA(var(--bs-secondary-rgb), var(--bs-link-underline-opacity, 1)) !important;\n}\n.link-secondary:hover, .link-secondary:focus {\n color: RGBA(86, 94, 100, var(--bs-link-opacity, 1)) !important;\n text-decoration-color: RGBA(86, 94, 100, var(--bs-link-underline-opacity, 1)) !important;\n}\n\n.link-success {\n color: RGBA(var(--bs-success-rgb), var(--bs-link-opacity, 1)) !important;\n text-decoration-color: RGBA(var(--bs-success-rgb), var(--bs-link-underline-opacity, 1)) !important;\n}\n.link-success:hover, .link-success:focus {\n color: RGBA(20, 108, 67, var(--bs-link-opacity, 1)) !important;\n text-decoration-color: RGBA(20, 108, 67, var(--bs-link-underline-opacity, 1)) !important;\n}\n\n.link-info {\n color: RGBA(var(--bs-info-rgb), var(--bs-link-opacity, 1)) !important;\n text-decoration-color: RGBA(var(--bs-info-rgb), var(--bs-link-underline-opacity, 1)) !important;\n}\n.link-info:hover, .link-info:focus {\n color: RGBA(61, 213, 243, var(--bs-link-opacity, 1)) !important;\n text-decoration-color: RGBA(61, 213, 243, var(--bs-link-underline-opacity, 1)) !important;\n}\n\n.link-warning {\n color: RGBA(var(--bs-warning-rgb), var(--bs-link-opacity, 1)) !important;\n text-decoration-color: RGBA(var(--bs-warning-rgb), var(--bs-link-underline-opacity, 1)) !important;\n}\n.link-warning:hover, .link-warning:focus {\n color: RGBA(255, 205, 57, var(--bs-link-opacity, 1)) !important;\n text-decoration-color: RGBA(255, 205, 57, var(--bs-link-underline-opacity, 1)) !important;\n}\n\n.link-danger {\n color: RGBA(var(--bs-danger-rgb), var(--bs-link-opacity, 1)) !important;\n text-decoration-color: RGBA(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)) !important;\n}\n.link-danger:hover, .link-danger:focus {\n color: RGBA(176, 42, 55, var(--bs-link-opacity, 1)) !important;\n text-decoration-color: RGBA(176, 42, 55, var(--bs-link-underline-opacity, 1)) !important;\n}\n\n.link-light {\n color: RGBA(var(--bs-light-rgb), var(--bs-link-opacity, 1)) !important;\n text-decoration-color: RGBA(var(--bs-light-rgb), var(--bs-link-underline-opacity, 1)) !important;\n}\n.link-light:hover, .link-light:focus {\n color: RGBA(249, 250, 251, var(--bs-link-opacity, 1)) !important;\n text-decoration-color: RGBA(249, 250, 251, var(--bs-link-underline-opacity, 1)) !important;\n}\n\n.link-dark {\n color: RGBA(var(--bs-dark-rgb), var(--bs-link-opacity, 1)) !important;\n text-decoration-color: RGBA(var(--bs-dark-rgb), var(--bs-link-underline-opacity, 1)) !important;\n}\n.link-dark:hover, .link-dark:focus {\n color: RGBA(26, 30, 33, var(--bs-link-opacity, 1)) !important;\n text-decoration-color: RGBA(26, 30, 33, var(--bs-link-underline-opacity, 1)) !important;\n}\n\n.link-body-emphasis {\n color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 1)) !important;\n text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 1)) !important;\n}\n.link-body-emphasis:hover, .link-body-emphasis:focus {\n color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 0.75)) !important;\n text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 0.75)) !important;\n}\n\n.focus-ring:focus {\n outline: 0;\n box-shadow: var(--bs-focus-ring-x, 0) var(--bs-focus-ring-y, 0) var(--bs-focus-ring-blur, 0) var(--bs-focus-ring-width) var(--bs-focus-ring-color);\n}\n\n.icon-link {\n display: inline-flex;\n gap: 0.375rem;\n align-items: center;\n text-decoration-color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 0.5));\n text-underline-offset: 0.25em;\n backface-visibility: hidden;\n}\n.icon-link > .bi {\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n fill: currentcolor;\n transition: 0.2s ease-in-out transform;\n}\n@media (prefers-reduced-motion: reduce) {\n .icon-link > .bi {\n transition: none;\n }\n}\n\n.icon-link-hover:hover > .bi, .icon-link-hover:focus-visible > .bi {\n transform: var(--bs-icon-link-transform, translate3d(0.25em, 0, 0));\n}\n\n.ratio {\n position: relative;\n width: 100%;\n}\n.ratio::before {\n display: block;\n padding-top: var(--bs-aspect-ratio);\n content: \"\";\n}\n.ratio > * {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n}\n\n.ratio-1x1 {\n --bs-aspect-ratio: 100%;\n}\n\n.ratio-4x3 {\n --bs-aspect-ratio: 75%;\n}\n\n.ratio-16x9 {\n --bs-aspect-ratio: 56.25%;\n}\n\n.ratio-21x9 {\n --bs-aspect-ratio: 42.8571428571%;\n}\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030;\n}\n\n.sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n}\n\n.sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n}\n\n@media (min-width: 540px) {\n .sticky-sm-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .sticky-sm-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n}\n@media (min-width: 720px) {\n .sticky-md-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .sticky-md-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n}\n@media (min-width: 960px) {\n .sticky-lg-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .sticky-lg-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n}\n@media (min-width: 1200px) {\n .sticky-xl-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .sticky-xl-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n}\n.hstack {\n display: flex;\n flex-direction: row;\n align-items: center;\n align-self: stretch;\n}\n\n.vstack {\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n align-self: stretch;\n}\n\n.visually-hidden,\n.visually-hidden-focusable:not(:focus):not(:focus-within) {\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.visually-hidden:not(caption),\n.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption) {\n position: absolute !important;\n}\n\n.stretched-link::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n content: \"\";\n}\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.vr {\n display: inline-block;\n align-self: stretch;\n width: var(--bs-border-width);\n min-height: 1em;\n background-color: currentcolor;\n opacity: 0.25;\n}\n\n.align-baseline {\n vertical-align: baseline !important;\n}\n\n.align-top {\n vertical-align: top !important;\n}\n\n.align-middle {\n vertical-align: middle !important;\n}\n\n.align-bottom {\n vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n vertical-align: text-top !important;\n}\n\n.float-start {\n float: left !important;\n}\n\n.float-end {\n float: right !important;\n}\n\n.float-none {\n float: none !important;\n}\n\n.object-fit-contain {\n object-fit: contain !important;\n}\n\n.object-fit-cover {\n object-fit: cover !important;\n}\n\n.object-fit-fill {\n object-fit: fill !important;\n}\n\n.object-fit-scale {\n object-fit: scale-down !important;\n}\n\n.object-fit-none {\n object-fit: none !important;\n}\n\n.opacity-0 {\n opacity: 0 !important;\n}\n\n.opacity-25 {\n opacity: 0.25 !important;\n}\n\n.opacity-50 {\n opacity: 0.5 !important;\n}\n\n.opacity-75 {\n opacity: 0.75 !important;\n}\n\n.opacity-100 {\n opacity: 1 !important;\n}\n\n.overflow-auto {\n overflow: auto !important;\n}\n\n.overflow-hidden {\n overflow: hidden !important;\n}\n\n.overflow-visible {\n overflow: visible !important;\n}\n\n.overflow-scroll {\n overflow: scroll !important;\n}\n\n.overflow-x-auto {\n overflow-x: auto !important;\n}\n\n.overflow-x-hidden {\n overflow-x: hidden !important;\n}\n\n.overflow-x-visible {\n overflow-x: visible !important;\n}\n\n.overflow-x-scroll {\n overflow-x: scroll !important;\n}\n\n.overflow-y-auto {\n overflow-y: auto !important;\n}\n\n.overflow-y-hidden {\n overflow-y: hidden !important;\n}\n\n.overflow-y-visible {\n overflow-y: visible !important;\n}\n\n.overflow-y-scroll {\n overflow-y: scroll !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-grid {\n display: grid !important;\n}\n\n.d-inline-grid {\n display: inline-grid !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n.d-none {\n display: none !important;\n}\n\n.shadow {\n box-shadow: var(--bs-box-shadow) !important;\n}\n\n.shadow-sm {\n box-shadow: var(--bs-box-shadow-sm) !important;\n}\n\n.shadow-lg {\n box-shadow: var(--bs-box-shadow-lg) !important;\n}\n\n.shadow-none {\n box-shadow: none !important;\n}\n\n.focus-ring-primary {\n --bs-focus-ring-color: rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity));\n}\n\n.focus-ring-secondary {\n --bs-focus-ring-color: rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity));\n}\n\n.focus-ring-success {\n --bs-focus-ring-color: rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity));\n}\n\n.focus-ring-info {\n --bs-focus-ring-color: rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity));\n}\n\n.focus-ring-warning {\n --bs-focus-ring-color: rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity));\n}\n\n.focus-ring-danger {\n --bs-focus-ring-color: rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity));\n}\n\n.focus-ring-light {\n --bs-focus-ring-color: rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity));\n}\n\n.focus-ring-dark {\n --bs-focus-ring-color: rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity));\n}\n\n.position-static {\n position: static !important;\n}\n\n.position-relative {\n position: relative !important;\n}\n\n.position-absolute {\n position: absolute !important;\n}\n\n.position-fixed {\n position: fixed !important;\n}\n\n.position-sticky {\n position: sticky !important;\n}\n\n.top-0 {\n top: 0 !important;\n}\n\n.top-50 {\n top: 50% !important;\n}\n\n.top-100 {\n top: 100% !important;\n}\n\n.bottom-0 {\n bottom: 0 !important;\n}\n\n.bottom-50 {\n bottom: 50% !important;\n}\n\n.bottom-100 {\n bottom: 100% !important;\n}\n\n.start-0 {\n left: 0 !important;\n}\n\n.start-50 {\n left: 50% !important;\n}\n\n.start-100 {\n left: 100% !important;\n}\n\n.end-0 {\n right: 0 !important;\n}\n\n.end-50 {\n right: 50% !important;\n}\n\n.end-100 {\n right: 100% !important;\n}\n\n.translate-middle {\n transform: translate(-50%, -50%) !important;\n}\n\n.translate-middle-x {\n transform: translateX(-50%) !important;\n}\n\n.translate-middle-y {\n transform: translateY(-50%) !important;\n}\n\n.border {\n border: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;\n}\n\n.border-0 {\n border: 0 !important;\n}\n\n.border-top {\n border-top: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;\n}\n\n.border-top-0 {\n border-top: 0 !important;\n}\n\n.border-end {\n border-right: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;\n}\n\n.border-end-0 {\n border-right: 0 !important;\n}\n\n.border-bottom {\n border-bottom: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;\n}\n\n.border-bottom-0 {\n border-bottom: 0 !important;\n}\n\n.border-start {\n border-left: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;\n}\n\n.border-start-0 {\n border-left: 0 !important;\n}\n\n.border-primary {\n --bs-border-opacity: 1;\n border-color: rgba(var(--bs-primary-rgb), var(--bs-border-opacity)) !important;\n}\n\n.border-secondary {\n --bs-border-opacity: 1;\n border-color: rgba(var(--bs-secondary-rgb), var(--bs-border-opacity)) !important;\n}\n\n.border-success {\n --bs-border-opacity: 1;\n border-color: rgba(var(--bs-success-rgb), var(--bs-border-opacity)) !important;\n}\n\n.border-info {\n --bs-border-opacity: 1;\n border-color: rgba(var(--bs-info-rgb), var(--bs-border-opacity)) !important;\n}\n\n.border-warning {\n --bs-border-opacity: 1;\n border-color: rgba(var(--bs-warning-rgb), var(--bs-border-opacity)) !important;\n}\n\n.border-danger {\n --bs-border-opacity: 1;\n border-color: rgba(var(--bs-danger-rgb), var(--bs-border-opacity)) !important;\n}\n\n.border-light {\n --bs-border-opacity: 1;\n border-color: rgba(var(--bs-light-rgb), var(--bs-border-opacity)) !important;\n}\n\n.border-dark {\n --bs-border-opacity: 1;\n border-color: rgba(var(--bs-dark-rgb), var(--bs-border-opacity)) !important;\n}\n\n.border-black {\n --bs-border-opacity: 1;\n border-color: rgba(var(--bs-black-rgb), var(--bs-border-opacity)) !important;\n}\n\n.border-white {\n --bs-border-opacity: 1;\n border-color: rgba(var(--bs-white-rgb), var(--bs-border-opacity)) !important;\n}\n\n.border-primary-subtle {\n border-color: var(--bs-primary-border-subtle) !important;\n}\n\n.border-secondary-subtle {\n border-color: var(--bs-secondary-border-subtle) !important;\n}\n\n.border-success-subtle {\n border-color: var(--bs-success-border-subtle) !important;\n}\n\n.border-info-subtle {\n border-color: var(--bs-info-border-subtle) !important;\n}\n\n.border-warning-subtle {\n border-color: var(--bs-warning-border-subtle) !important;\n}\n\n.border-danger-subtle {\n border-color: var(--bs-danger-border-subtle) !important;\n}\n\n.border-light-subtle {\n border-color: var(--bs-light-border-subtle) !important;\n}\n\n.border-dark-subtle {\n border-color: var(--bs-dark-border-subtle) !important;\n}\n\n.border-1 {\n border-width: 1px !important;\n}\n\n.border-2 {\n border-width: 2px !important;\n}\n\n.border-3 {\n border-width: 3px !important;\n}\n\n.border-4 {\n border-width: 4px !important;\n}\n\n.border-5 {\n border-width: 5px !important;\n}\n\n.border-opacity-10 {\n --bs-border-opacity: 0.1;\n}\n\n.border-opacity-25 {\n --bs-border-opacity: 0.25;\n}\n\n.border-opacity-50 {\n --bs-border-opacity: 0.5;\n}\n\n.border-opacity-75 {\n --bs-border-opacity: 0.75;\n}\n\n.border-opacity-100 {\n --bs-border-opacity: 1;\n}\n\n.w-25 {\n width: 25% !important;\n}\n\n.w-50 {\n width: 50% !important;\n}\n\n.w-75 {\n width: 75% !important;\n}\n\n.w-100 {\n width: 100% !important;\n}\n\n.w-auto {\n width: auto !important;\n}\n\n.mw-100 {\n max-width: 100% !important;\n}\n\n.vw-100 {\n width: 100vw !important;\n}\n\n.min-vw-100 {\n min-width: 100vw !important;\n}\n\n.h-25 {\n height: 25% !important;\n}\n\n.h-50 {\n height: 50% !important;\n}\n\n.h-75 {\n height: 75% !important;\n}\n\n.h-100 {\n height: 100% !important;\n}\n\n.h-auto {\n height: auto !important;\n}\n\n.mh-100 {\n max-height: 100% !important;\n}\n\n.vh-100 {\n height: 100vh !important;\n}\n\n.min-vh-100 {\n min-height: 100vh !important;\n}\n\n.flex-fill {\n flex: 1 1 auto !important;\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.justify-content-evenly {\n justify-content: space-evenly !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n.order-first {\n order: -1 !important;\n}\n\n.order-0 {\n order: 0 !important;\n}\n\n.order-1 {\n order: 1 !important;\n}\n\n.order-2 {\n order: 2 !important;\n}\n\n.order-3 {\n order: 3 !important;\n}\n\n.order-4 {\n order: 4 !important;\n}\n\n.order-5 {\n order: 5 !important;\n}\n\n.order-last {\n order: 6 !important;\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mx-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n}\n\n.mx-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n}\n\n.mx-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n}\n\n.mx-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n}\n\n.mx-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n}\n\n.mx-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n}\n\n.mx-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n}\n\n.my-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n}\n\n.my-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n}\n\n.my-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n}\n\n.my-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n}\n\n.my-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n}\n\n.my-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n}\n\n.my-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n}\n\n.mt-0 {\n margin-top: 0 !important;\n}\n\n.mt-1 {\n margin-top: 0.25rem !important;\n}\n\n.mt-2 {\n margin-top: 0.5rem !important;\n}\n\n.mt-3 {\n margin-top: 1rem !important;\n}\n\n.mt-4 {\n margin-top: 1.5rem !important;\n}\n\n.mt-5 {\n margin-top: 3rem !important;\n}\n\n.mt-auto {\n margin-top: auto !important;\n}\n\n.me-0 {\n margin-right: 0 !important;\n}\n\n.me-1 {\n margin-right: 0.25rem !important;\n}\n\n.me-2 {\n margin-right: 0.5rem !important;\n}\n\n.me-3 {\n margin-right: 1rem !important;\n}\n\n.me-4 {\n margin-right: 1.5rem !important;\n}\n\n.me-5 {\n margin-right: 3rem !important;\n}\n\n.me-auto {\n margin-right: auto !important;\n}\n\n.mb-0 {\n margin-bottom: 0 !important;\n}\n\n.mb-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.mb-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.mb-3 {\n margin-bottom: 1rem !important;\n}\n\n.mb-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.mb-5 {\n margin-bottom: 3rem !important;\n}\n\n.mb-auto {\n margin-bottom: auto !important;\n}\n\n.ms-0 {\n margin-left: 0 !important;\n}\n\n.ms-1 {\n margin-left: 0.25rem !important;\n}\n\n.ms-2 {\n margin-left: 0.5rem !important;\n}\n\n.ms-3 {\n margin-left: 1rem !important;\n}\n\n.ms-4 {\n margin-left: 1.5rem !important;\n}\n\n.ms-5 {\n margin-left: 3rem !important;\n}\n\n.ms-auto {\n margin-left: auto !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.px-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n}\n\n.px-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n}\n\n.px-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n}\n\n.px-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n}\n\n.px-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n}\n\n.px-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n}\n\n.py-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n}\n\n.py-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n}\n\n.py-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n}\n\n.py-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n}\n\n.py-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n}\n\n.py-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n}\n\n.pt-0 {\n padding-top: 0 !important;\n}\n\n.pt-1 {\n padding-top: 0.25rem !important;\n}\n\n.pt-2 {\n padding-top: 0.5rem !important;\n}\n\n.pt-3 {\n padding-top: 1rem !important;\n}\n\n.pt-4 {\n padding-top: 1.5rem !important;\n}\n\n.pt-5 {\n padding-top: 3rem !important;\n}\n\n.pe-0 {\n padding-right: 0 !important;\n}\n\n.pe-1 {\n padding-right: 0.25rem !important;\n}\n\n.pe-2 {\n padding-right: 0.5rem !important;\n}\n\n.pe-3 {\n padding-right: 1rem !important;\n}\n\n.pe-4 {\n padding-right: 1.5rem !important;\n}\n\n.pe-5 {\n padding-right: 3rem !important;\n}\n\n.pb-0 {\n padding-bottom: 0 !important;\n}\n\n.pb-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pb-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pb-3 {\n padding-bottom: 1rem !important;\n}\n\n.pb-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pb-5 {\n padding-bottom: 3rem !important;\n}\n\n.ps-0 {\n padding-left: 0 !important;\n}\n\n.ps-1 {\n padding-left: 0.25rem !important;\n}\n\n.ps-2 {\n padding-left: 0.5rem !important;\n}\n\n.ps-3 {\n padding-left: 1rem !important;\n}\n\n.ps-4 {\n padding-left: 1.5rem !important;\n}\n\n.ps-5 {\n padding-left: 3rem !important;\n}\n\n.gap-0 {\n gap: 0 !important;\n}\n\n.gap-1 {\n gap: 0.25rem !important;\n}\n\n.gap-2 {\n gap: 0.5rem !important;\n}\n\n.gap-3 {\n gap: 1rem !important;\n}\n\n.gap-4 {\n gap: 1.5rem !important;\n}\n\n.gap-5 {\n gap: 3rem !important;\n}\n\n.row-gap-0 {\n row-gap: 0 !important;\n}\n\n.row-gap-1 {\n row-gap: 0.25rem !important;\n}\n\n.row-gap-2 {\n row-gap: 0.5rem !important;\n}\n\n.row-gap-3 {\n row-gap: 1rem !important;\n}\n\n.row-gap-4 {\n row-gap: 1.5rem !important;\n}\n\n.row-gap-5 {\n row-gap: 3rem !important;\n}\n\n.column-gap-0 {\n column-gap: 0 !important;\n}\n\n.column-gap-1 {\n column-gap: 0.25rem !important;\n}\n\n.column-gap-2 {\n column-gap: 0.5rem !important;\n}\n\n.column-gap-3 {\n column-gap: 1rem !important;\n}\n\n.column-gap-4 {\n column-gap: 1.5rem !important;\n}\n\n.column-gap-5 {\n column-gap: 3rem !important;\n}\n\n.font-monospace {\n font-family: var(--bs-font-monospace) !important;\n}\n\n.fs-1 {\n font-size: calc(1.375rem + 1.5vw) !important;\n}\n\n.fs-2 {\n font-size: calc(1.325rem + 0.9vw) !important;\n}\n\n.fs-3 {\n font-size: calc(1.3rem + 0.6vw) !important;\n}\n\n.fs-4 {\n font-size: calc(1.275rem + 0.3vw) !important;\n}\n\n.fs-5 {\n font-size: 1.25rem !important;\n}\n\n.fs-6 {\n font-size: 1rem !important;\n}\n\n.fst-italic {\n font-style: italic !important;\n}\n\n.fst-normal {\n font-style: normal !important;\n}\n\n.fw-lighter {\n font-weight: lighter !important;\n}\n\n.fw-light {\n font-weight: 300 !important;\n}\n\n.fw-normal {\n font-weight: 400 !important;\n}\n\n.fw-medium {\n font-weight: 500 !important;\n}\n\n.fw-semibold {\n font-weight: 600 !important;\n}\n\n.fw-bold {\n font-weight: 700 !important;\n}\n\n.fw-bolder {\n font-weight: bolder !important;\n}\n\n.lh-1 {\n line-height: 1 !important;\n}\n\n.lh-sm {\n line-height: 1.25 !important;\n}\n\n.lh-base {\n line-height: 1.5 !important;\n}\n\n.lh-lg {\n line-height: 2 !important;\n}\n\n.text-start {\n text-align: left !important;\n}\n\n.text-end {\n text-align: right !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n.text-decoration-none {\n text-decoration: none !important;\n}\n\n.text-decoration-underline {\n text-decoration: underline !important;\n}\n\n.text-decoration-line-through {\n text-decoration: line-through !important;\n}\n\n.text-lowercase {\n text-transform: lowercase !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n\n.text-capitalize {\n text-transform: capitalize !important;\n}\n\n.text-wrap {\n white-space: normal !important;\n}\n\n.text-nowrap {\n white-space: nowrap !important;\n}\n\n/* rtl:begin:remove */\n.text-break {\n word-wrap: break-word !important;\n word-break: break-word !important;\n}\n\n/* rtl:end:remove */\n.text-primary {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-primary-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-secondary {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-secondary-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-success {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-success-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-info {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-info-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-warning {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-warning-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-danger {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-danger-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-light {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-light-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-dark {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-dark-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-black {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-black-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-white {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-white-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-body {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-body-color-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-muted {\n --bs-text-opacity: 1;\n color: var(--bs-secondary-color) !important;\n}\n\n.text-black-50 {\n --bs-text-opacity: 1;\n color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n --bs-text-opacity: 1;\n color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-body-secondary {\n --bs-text-opacity: 1;\n color: var(--bs-secondary-color) !important;\n}\n\n.text-body-tertiary {\n --bs-text-opacity: 1;\n color: var(--bs-tertiary-color) !important;\n}\n\n.text-body-emphasis {\n --bs-text-opacity: 1;\n color: var(--bs-emphasis-color) !important;\n}\n\n.text-reset {\n --bs-text-opacity: 1;\n color: inherit !important;\n}\n\n.text-opacity-25 {\n --bs-text-opacity: 0.25;\n}\n\n.text-opacity-50 {\n --bs-text-opacity: 0.5;\n}\n\n.text-opacity-75 {\n --bs-text-opacity: 0.75;\n}\n\n.text-opacity-100 {\n --bs-text-opacity: 1;\n}\n\n.text-primary-emphasis {\n color: var(--bs-primary-text-emphasis) !important;\n}\n\n.text-secondary-emphasis {\n color: var(--bs-secondary-text-emphasis) !important;\n}\n\n.text-success-emphasis {\n color: var(--bs-success-text-emphasis) !important;\n}\n\n.text-info-emphasis {\n color: var(--bs-info-text-emphasis) !important;\n}\n\n.text-warning-emphasis {\n color: var(--bs-warning-text-emphasis) !important;\n}\n\n.text-danger-emphasis {\n color: var(--bs-danger-text-emphasis) !important;\n}\n\n.text-light-emphasis {\n color: var(--bs-light-text-emphasis) !important;\n}\n\n.text-dark-emphasis {\n color: var(--bs-dark-text-emphasis) !important;\n}\n\n.link-opacity-10 {\n --bs-link-opacity: 0.1;\n}\n\n.link-opacity-10-hover:hover {\n --bs-link-opacity: 0.1;\n}\n\n.link-opacity-25 {\n --bs-link-opacity: 0.25;\n}\n\n.link-opacity-25-hover:hover {\n --bs-link-opacity: 0.25;\n}\n\n.link-opacity-50 {\n --bs-link-opacity: 0.5;\n}\n\n.link-opacity-50-hover:hover {\n --bs-link-opacity: 0.5;\n}\n\n.link-opacity-75 {\n --bs-link-opacity: 0.75;\n}\n\n.link-opacity-75-hover:hover {\n --bs-link-opacity: 0.75;\n}\n\n.link-opacity-100 {\n --bs-link-opacity: 1;\n}\n\n.link-opacity-100-hover:hover {\n --bs-link-opacity: 1;\n}\n\n.link-offset-1 {\n text-underline-offset: 0.125em !important;\n}\n\n.link-offset-1-hover:hover {\n text-underline-offset: 0.125em !important;\n}\n\n.link-offset-2 {\n text-underline-offset: 0.25em !important;\n}\n\n.link-offset-2-hover:hover {\n text-underline-offset: 0.25em !important;\n}\n\n.link-offset-3 {\n text-underline-offset: 0.375em !important;\n}\n\n.link-offset-3-hover:hover {\n text-underline-offset: 0.375em !important;\n}\n\n.link-underline-primary {\n --bs-link-underline-opacity: 1;\n text-decoration-color: rgba(var(--bs-primary-rgb), var(--bs-link-underline-opacity)) !important;\n}\n\n.link-underline-secondary {\n --bs-link-underline-opacity: 1;\n text-decoration-color: rgba(var(--bs-secondary-rgb), var(--bs-link-underline-opacity)) !important;\n}\n\n.link-underline-success {\n --bs-link-underline-opacity: 1;\n text-decoration-color: rgba(var(--bs-success-rgb), var(--bs-link-underline-opacity)) !important;\n}\n\n.link-underline-info {\n --bs-link-underline-opacity: 1;\n text-decoration-color: rgba(var(--bs-info-rgb), var(--bs-link-underline-opacity)) !important;\n}\n\n.link-underline-warning {\n --bs-link-underline-opacity: 1;\n text-decoration-color: rgba(var(--bs-warning-rgb), var(--bs-link-underline-opacity)) !important;\n}\n\n.link-underline-danger {\n --bs-link-underline-opacity: 1;\n text-decoration-color: rgba(var(--bs-danger-rgb), var(--bs-link-underline-opacity)) !important;\n}\n\n.link-underline-light {\n --bs-link-underline-opacity: 1;\n text-decoration-color: rgba(var(--bs-light-rgb), var(--bs-link-underline-opacity)) !important;\n}\n\n.link-underline-dark {\n --bs-link-underline-opacity: 1;\n text-decoration-color: rgba(var(--bs-dark-rgb), var(--bs-link-underline-opacity)) !important;\n}\n\n.link-underline {\n --bs-link-underline-opacity: 1;\n text-decoration-color: rgba(var(--bs-link-color-rgb), var(--bs-link-underline-opacity, 1)) !important;\n}\n\n.link-underline-opacity-0 {\n --bs-link-underline-opacity: 0;\n}\n\n.link-underline-opacity-0-hover:hover {\n --bs-link-underline-opacity: 0;\n}\n\n.link-underline-opacity-10 {\n --bs-link-underline-opacity: 0.1;\n}\n\n.link-underline-opacity-10-hover:hover {\n --bs-link-underline-opacity: 0.1;\n}\n\n.link-underline-opacity-25 {\n --bs-link-underline-opacity: 0.25;\n}\n\n.link-underline-opacity-25-hover:hover {\n --bs-link-underline-opacity: 0.25;\n}\n\n.link-underline-opacity-50 {\n --bs-link-underline-opacity: 0.5;\n}\n\n.link-underline-opacity-50-hover:hover {\n --bs-link-underline-opacity: 0.5;\n}\n\n.link-underline-opacity-75 {\n --bs-link-underline-opacity: 0.75;\n}\n\n.link-underline-opacity-75-hover:hover {\n --bs-link-underline-opacity: 0.75;\n}\n\n.link-underline-opacity-100 {\n --bs-link-underline-opacity: 1;\n}\n\n.link-underline-opacity-100-hover:hover {\n --bs-link-underline-opacity: 1;\n}\n\n.bg-primary {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-secondary {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-secondary-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-success {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-success-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-info {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-info-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-warning {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-warning-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-danger {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-danger-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-light {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-light-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-dark {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-dark-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-black {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-black-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-white {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-white-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-body {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-body-bg-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-transparent {\n --bs-bg-opacity: 1;\n background-color: transparent !important;\n}\n\n.bg-body-secondary {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-secondary-bg-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-body-tertiary {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-tertiary-bg-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-opacity-10 {\n --bs-bg-opacity: 0.1;\n}\n\n.bg-opacity-25 {\n --bs-bg-opacity: 0.25;\n}\n\n.bg-opacity-50 {\n --bs-bg-opacity: 0.5;\n}\n\n.bg-opacity-75 {\n --bs-bg-opacity: 0.75;\n}\n\n.bg-opacity-100 {\n --bs-bg-opacity: 1;\n}\n\n.bg-primary-subtle {\n background-color: var(--bs-primary-bg-subtle) !important;\n}\n\n.bg-secondary-subtle {\n background-color: var(--bs-secondary-bg-subtle) !important;\n}\n\n.bg-success-subtle {\n background-color: var(--bs-success-bg-subtle) !important;\n}\n\n.bg-info-subtle {\n background-color: var(--bs-info-bg-subtle) !important;\n}\n\n.bg-warning-subtle {\n background-color: var(--bs-warning-bg-subtle) !important;\n}\n\n.bg-danger-subtle {\n background-color: var(--bs-danger-bg-subtle) !important;\n}\n\n.bg-light-subtle {\n background-color: var(--bs-light-bg-subtle) !important;\n}\n\n.bg-dark-subtle {\n background-color: var(--bs-dark-bg-subtle) !important;\n}\n\n.bg-gradient {\n background-image: var(--bs-gradient) !important;\n}\n\n.user-select-all {\n user-select: all !important;\n}\n\n.user-select-auto {\n user-select: auto !important;\n}\n\n.user-select-none {\n user-select: none !important;\n}\n\n.pe-none {\n pointer-events: none !important;\n}\n\n.pe-auto {\n pointer-events: auto !important;\n}\n\n.rounded {\n border-radius: var(--bs-border-radius) !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n\n.rounded-1 {\n border-radius: var(--bs-border-radius-sm) !important;\n}\n\n.rounded-2 {\n border-radius: var(--bs-border-radius) !important;\n}\n\n.rounded-3 {\n border-radius: var(--bs-border-radius-lg) !important;\n}\n\n.rounded-4 {\n border-radius: var(--bs-border-radius-xl) !important;\n}\n\n.rounded-5 {\n border-radius: var(--bs-border-radius-xxl) !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-pill {\n border-radius: var(--bs-border-radius-pill) !important;\n}\n\n.rounded-top {\n border-top-left-radius: var(--bs-border-radius) !important;\n border-top-right-radius: var(--bs-border-radius) !important;\n}\n\n.rounded-top-0 {\n border-top-left-radius: 0 !important;\n border-top-right-radius: 0 !important;\n}\n\n.rounded-top-1 {\n border-top-left-radius: var(--bs-border-radius-sm) !important;\n border-top-right-radius: var(--bs-border-radius-sm) !important;\n}\n\n.rounded-top-2 {\n border-top-left-radius: var(--bs-border-radius) !important;\n border-top-right-radius: var(--bs-border-radius) !important;\n}\n\n.rounded-top-3 {\n border-top-left-radius: var(--bs-border-radius-lg) !important;\n border-top-right-radius: var(--bs-border-radius-lg) !important;\n}\n\n.rounded-top-4 {\n border-top-left-radius: var(--bs-border-radius-xl) !important;\n border-top-right-radius: var(--bs-border-radius-xl) !important;\n}\n\n.rounded-top-5 {\n border-top-left-radius: var(--bs-border-radius-xxl) !important;\n border-top-right-radius: var(--bs-border-radius-xxl) !important;\n}\n\n.rounded-top-circle {\n border-top-left-radius: 50% !important;\n border-top-right-radius: 50% !important;\n}\n\n.rounded-top-pill {\n border-top-left-radius: var(--bs-border-radius-pill) !important;\n border-top-right-radius: var(--bs-border-radius-pill) !important;\n}\n\n.rounded-end {\n border-top-right-radius: var(--bs-border-radius) !important;\n border-bottom-right-radius: var(--bs-border-radius) !important;\n}\n\n.rounded-end-0 {\n border-top-right-radius: 0 !important;\n border-bottom-right-radius: 0 !important;\n}\n\n.rounded-end-1 {\n border-top-right-radius: var(--bs-border-radius-sm) !important;\n border-bottom-right-radius: var(--bs-border-radius-sm) !important;\n}\n\n.rounded-end-2 {\n border-top-right-radius: var(--bs-border-radius) !important;\n border-bottom-right-radius: var(--bs-border-radius) !important;\n}\n\n.rounded-end-3 {\n border-top-right-radius: var(--bs-border-radius-lg) !important;\n border-bottom-right-radius: var(--bs-border-radius-lg) !important;\n}\n\n.rounded-end-4 {\n border-top-right-radius: var(--bs-border-radius-xl) !important;\n border-bottom-right-radius: var(--bs-border-radius-xl) !important;\n}\n\n.rounded-end-5 {\n border-top-right-radius: var(--bs-border-radius-xxl) !important;\n border-bottom-right-radius: var(--bs-border-radius-xxl) !important;\n}\n\n.rounded-end-circle {\n border-top-right-radius: 50% !important;\n border-bottom-right-radius: 50% !important;\n}\n\n.rounded-end-pill {\n border-top-right-radius: var(--bs-border-radius-pill) !important;\n border-bottom-right-radius: var(--bs-border-radius-pill) !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: var(--bs-border-radius) !important;\n border-bottom-left-radius: var(--bs-border-radius) !important;\n}\n\n.rounded-bottom-0 {\n border-bottom-right-radius: 0 !important;\n border-bottom-left-radius: 0 !important;\n}\n\n.rounded-bottom-1 {\n border-bottom-right-radius: var(--bs-border-radius-sm) !important;\n border-bottom-left-radius: var(--bs-border-radius-sm) !important;\n}\n\n.rounded-bottom-2 {\n border-bottom-right-radius: var(--bs-border-radius) !important;\n border-bottom-left-radius: var(--bs-border-radius) !important;\n}\n\n.rounded-bottom-3 {\n border-bottom-right-radius: var(--bs-border-radius-lg) !important;\n border-bottom-left-radius: var(--bs-border-radius-lg) !important;\n}\n\n.rounded-bottom-4 {\n border-bottom-right-radius: var(--bs-border-radius-xl) !important;\n border-bottom-left-radius: var(--bs-border-radius-xl) !important;\n}\n\n.rounded-bottom-5 {\n border-bottom-right-radius: var(--bs-border-radius-xxl) !important;\n border-bottom-left-radius: var(--bs-border-radius-xxl) !important;\n}\n\n.rounded-bottom-circle {\n border-bottom-right-radius: 50% !important;\n border-bottom-left-radius: 50% !important;\n}\n\n.rounded-bottom-pill {\n border-bottom-right-radius: var(--bs-border-radius-pill) !important;\n border-bottom-left-radius: var(--bs-border-radius-pill) !important;\n}\n\n.rounded-start {\n border-bottom-left-radius: var(--bs-border-radius) !important;\n border-top-left-radius: var(--bs-border-radius) !important;\n}\n\n.rounded-start-0 {\n border-bottom-left-radius: 0 !important;\n border-top-left-radius: 0 !important;\n}\n\n.rounded-start-1 {\n border-bottom-left-radius: var(--bs-border-radius-sm) !important;\n border-top-left-radius: var(--bs-border-radius-sm) !important;\n}\n\n.rounded-start-2 {\n border-bottom-left-radius: var(--bs-border-radius) !important;\n border-top-left-radius: var(--bs-border-radius) !important;\n}\n\n.rounded-start-3 {\n border-bottom-left-radius: var(--bs-border-radius-lg) !important;\n border-top-left-radius: var(--bs-border-radius-lg) !important;\n}\n\n.rounded-start-4 {\n border-bottom-left-radius: var(--bs-border-radius-xl) !important;\n border-top-left-radius: var(--bs-border-radius-xl) !important;\n}\n\n.rounded-start-5 {\n border-bottom-left-radius: var(--bs-border-radius-xxl) !important;\n border-top-left-radius: var(--bs-border-radius-xxl) !important;\n}\n\n.rounded-start-circle {\n border-bottom-left-radius: 50% !important;\n border-top-left-radius: 50% !important;\n}\n\n.rounded-start-pill {\n border-bottom-left-radius: var(--bs-border-radius-pill) !important;\n border-top-left-radius: var(--bs-border-radius-pill) !important;\n}\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n\n.z-n1 {\n z-index: -1 !important;\n}\n\n.z-0 {\n z-index: 0 !important;\n}\n\n.z-1 {\n z-index: 1 !important;\n}\n\n.z-2 {\n z-index: 2 !important;\n}\n\n.z-3 {\n z-index: 3 !important;\n}\n\n@media (min-width: 540px) {\n .float-sm-start {\n float: left !important;\n }\n .float-sm-end {\n float: right !important;\n }\n .float-sm-none {\n float: none !important;\n }\n .object-fit-sm-contain {\n object-fit: contain !important;\n }\n .object-fit-sm-cover {\n object-fit: cover !important;\n }\n .object-fit-sm-fill {\n object-fit: fill !important;\n }\n .object-fit-sm-scale {\n object-fit: scale-down !important;\n }\n .object-fit-sm-none {\n object-fit: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-grid {\n display: grid !important;\n }\n .d-sm-inline-grid {\n display: inline-grid !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n .d-sm-none {\n display: none !important;\n }\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .justify-content-sm-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n .order-sm-first {\n order: -1 !important;\n }\n .order-sm-0 {\n order: 0 !important;\n }\n .order-sm-1 {\n order: 1 !important;\n }\n .order-sm-2 {\n order: 2 !important;\n }\n .order-sm-3 {\n order: 3 !important;\n }\n .order-sm-4 {\n order: 4 !important;\n }\n .order-sm-5 {\n order: 5 !important;\n }\n .order-sm-last {\n order: 6 !important;\n }\n .m-sm-0 {\n margin: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mx-sm-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-sm-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-sm-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-sm-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-sm-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-sm-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-sm-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-sm-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-sm-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-sm-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-sm-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-sm-0 {\n margin-top: 0 !important;\n }\n .mt-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mt-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mt-sm-3 {\n margin-top: 1rem !important;\n }\n .mt-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mt-sm-5 {\n margin-top: 3rem !important;\n }\n .mt-sm-auto {\n margin-top: auto !important;\n }\n .me-sm-0 {\n margin-right: 0 !important;\n }\n .me-sm-1 {\n margin-right: 0.25rem !important;\n }\n .me-sm-2 {\n margin-right: 0.5rem !important;\n }\n .me-sm-3 {\n margin-right: 1rem !important;\n }\n .me-sm-4 {\n margin-right: 1.5rem !important;\n }\n .me-sm-5 {\n margin-right: 3rem !important;\n }\n .me-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-0 {\n margin-bottom: 0 !important;\n }\n .mb-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-sm-3 {\n margin-bottom: 1rem !important;\n }\n .mb-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-sm-5 {\n margin-bottom: 3rem !important;\n }\n .mb-sm-auto {\n margin-bottom: auto !important;\n }\n .ms-sm-0 {\n margin-left: 0 !important;\n }\n .ms-sm-1 {\n margin-left: 0.25rem !important;\n }\n .ms-sm-2 {\n margin-left: 0.5rem !important;\n }\n .ms-sm-3 {\n margin-left: 1rem !important;\n }\n .ms-sm-4 {\n margin-left: 1.5rem !important;\n }\n .ms-sm-5 {\n margin-left: 3rem !important;\n }\n .ms-sm-auto {\n margin-left: auto !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .px-sm-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-sm-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-sm-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-sm-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-sm-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-sm-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-sm-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-sm-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-sm-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-sm-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-sm-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-sm-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-sm-0 {\n padding-top: 0 !important;\n }\n .pt-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pt-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pt-sm-3 {\n padding-top: 1rem !important;\n }\n .pt-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pt-sm-5 {\n padding-top: 3rem !important;\n }\n .pe-sm-0 {\n padding-right: 0 !important;\n }\n .pe-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pe-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pe-sm-3 {\n padding-right: 1rem !important;\n }\n .pe-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pe-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-0 {\n padding-bottom: 0 !important;\n }\n .pb-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pb-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-sm-5 {\n padding-bottom: 3rem !important;\n }\n .ps-sm-0 {\n padding-left: 0 !important;\n }\n .ps-sm-1 {\n padding-left: 0.25rem !important;\n }\n .ps-sm-2 {\n padding-left: 0.5rem !important;\n }\n .ps-sm-3 {\n padding-left: 1rem !important;\n }\n .ps-sm-4 {\n padding-left: 1.5rem !important;\n }\n .ps-sm-5 {\n padding-left: 3rem !important;\n }\n .gap-sm-0 {\n gap: 0 !important;\n }\n .gap-sm-1 {\n gap: 0.25rem !important;\n }\n .gap-sm-2 {\n gap: 0.5rem !important;\n }\n .gap-sm-3 {\n gap: 1rem !important;\n }\n .gap-sm-4 {\n gap: 1.5rem !important;\n }\n .gap-sm-5 {\n gap: 3rem !important;\n }\n .row-gap-sm-0 {\n row-gap: 0 !important;\n }\n .row-gap-sm-1 {\n row-gap: 0.25rem !important;\n }\n .row-gap-sm-2 {\n row-gap: 0.5rem !important;\n }\n .row-gap-sm-3 {\n row-gap: 1rem !important;\n }\n .row-gap-sm-4 {\n row-gap: 1.5rem !important;\n }\n .row-gap-sm-5 {\n row-gap: 3rem !important;\n }\n .column-gap-sm-0 {\n column-gap: 0 !important;\n }\n .column-gap-sm-1 {\n column-gap: 0.25rem !important;\n }\n .column-gap-sm-2 {\n column-gap: 0.5rem !important;\n }\n .column-gap-sm-3 {\n column-gap: 1rem !important;\n }\n .column-gap-sm-4 {\n column-gap: 1.5rem !important;\n }\n .column-gap-sm-5 {\n column-gap: 3rem !important;\n }\n .text-sm-start {\n text-align: left !important;\n }\n .text-sm-end {\n text-align: right !important;\n }\n .text-sm-center {\n text-align: center !important;\n }\n}\n@media (min-width: 720px) {\n .float-md-start {\n float: left !important;\n }\n .float-md-end {\n float: right !important;\n }\n .float-md-none {\n float: none !important;\n }\n .object-fit-md-contain {\n object-fit: contain !important;\n }\n .object-fit-md-cover {\n object-fit: cover !important;\n }\n .object-fit-md-fill {\n object-fit: fill !important;\n }\n .object-fit-md-scale {\n object-fit: scale-down !important;\n }\n .object-fit-md-none {\n object-fit: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-grid {\n display: grid !important;\n }\n .d-md-inline-grid {\n display: inline-grid !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: flex !important;\n }\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n .d-md-none {\n display: none !important;\n }\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .justify-content-md-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n .order-md-first {\n order: -1 !important;\n }\n .order-md-0 {\n order: 0 !important;\n }\n .order-md-1 {\n order: 1 !important;\n }\n .order-md-2 {\n order: 2 !important;\n }\n .order-md-3 {\n order: 3 !important;\n }\n .order-md-4 {\n order: 4 !important;\n }\n .order-md-5 {\n order: 5 !important;\n }\n .order-md-last {\n order: 6 !important;\n }\n .m-md-0 {\n margin: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mx-md-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-md-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-md-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-md-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-md-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-md-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-md-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-md-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-md-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-md-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-md-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-md-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-md-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-md-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-md-0 {\n margin-top: 0 !important;\n }\n .mt-md-1 {\n margin-top: 0.25rem !important;\n }\n .mt-md-2 {\n margin-top: 0.5rem !important;\n }\n .mt-md-3 {\n margin-top: 1rem !important;\n }\n .mt-md-4 {\n margin-top: 1.5rem !important;\n }\n .mt-md-5 {\n margin-top: 3rem !important;\n }\n .mt-md-auto {\n margin-top: auto !important;\n }\n .me-md-0 {\n margin-right: 0 !important;\n }\n .me-md-1 {\n margin-right: 0.25rem !important;\n }\n .me-md-2 {\n margin-right: 0.5rem !important;\n }\n .me-md-3 {\n margin-right: 1rem !important;\n }\n .me-md-4 {\n margin-right: 1.5rem !important;\n }\n .me-md-5 {\n margin-right: 3rem !important;\n }\n .me-md-auto {\n margin-right: auto !important;\n }\n .mb-md-0 {\n margin-bottom: 0 !important;\n }\n .mb-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-md-3 {\n margin-bottom: 1rem !important;\n }\n .mb-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-md-5 {\n margin-bottom: 3rem !important;\n }\n .mb-md-auto {\n margin-bottom: auto !important;\n }\n .ms-md-0 {\n margin-left: 0 !important;\n }\n .ms-md-1 {\n margin-left: 0.25rem !important;\n }\n .ms-md-2 {\n margin-left: 0.5rem !important;\n }\n .ms-md-3 {\n margin-left: 1rem !important;\n }\n .ms-md-4 {\n margin-left: 1.5rem !important;\n }\n .ms-md-5 {\n margin-left: 3rem !important;\n }\n .ms-md-auto {\n margin-left: auto !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .px-md-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-md-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-md-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-md-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-md-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-md-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-md-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-md-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-md-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-md-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-md-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-md-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-md-0 {\n padding-top: 0 !important;\n }\n .pt-md-1 {\n padding-top: 0.25rem !important;\n }\n .pt-md-2 {\n padding-top: 0.5rem !important;\n }\n .pt-md-3 {\n padding-top: 1rem !important;\n }\n .pt-md-4 {\n padding-top: 1.5rem !important;\n }\n .pt-md-5 {\n padding-top: 3rem !important;\n }\n .pe-md-0 {\n padding-right: 0 !important;\n }\n .pe-md-1 {\n padding-right: 0.25rem !important;\n }\n .pe-md-2 {\n padding-right: 0.5rem !important;\n }\n .pe-md-3 {\n padding-right: 1rem !important;\n }\n .pe-md-4 {\n padding-right: 1.5rem !important;\n }\n .pe-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-0 {\n padding-bottom: 0 !important;\n }\n .pb-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-md-3 {\n padding-bottom: 1rem !important;\n }\n .pb-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-md-5 {\n padding-bottom: 3rem !important;\n }\n .ps-md-0 {\n padding-left: 0 !important;\n }\n .ps-md-1 {\n padding-left: 0.25rem !important;\n }\n .ps-md-2 {\n padding-left: 0.5rem !important;\n }\n .ps-md-3 {\n padding-left: 1rem !important;\n }\n .ps-md-4 {\n padding-left: 1.5rem !important;\n }\n .ps-md-5 {\n padding-left: 3rem !important;\n }\n .gap-md-0 {\n gap: 0 !important;\n }\n .gap-md-1 {\n gap: 0.25rem !important;\n }\n .gap-md-2 {\n gap: 0.5rem !important;\n }\n .gap-md-3 {\n gap: 1rem !important;\n }\n .gap-md-4 {\n gap: 1.5rem !important;\n }\n .gap-md-5 {\n gap: 3rem !important;\n }\n .row-gap-md-0 {\n row-gap: 0 !important;\n }\n .row-gap-md-1 {\n row-gap: 0.25rem !important;\n }\n .row-gap-md-2 {\n row-gap: 0.5rem !important;\n }\n .row-gap-md-3 {\n row-gap: 1rem !important;\n }\n .row-gap-md-4 {\n row-gap: 1.5rem !important;\n }\n .row-gap-md-5 {\n row-gap: 3rem !important;\n }\n .column-gap-md-0 {\n column-gap: 0 !important;\n }\n .column-gap-md-1 {\n column-gap: 0.25rem !important;\n }\n .column-gap-md-2 {\n column-gap: 0.5rem !important;\n }\n .column-gap-md-3 {\n column-gap: 1rem !important;\n }\n .column-gap-md-4 {\n column-gap: 1.5rem !important;\n }\n .column-gap-md-5 {\n column-gap: 3rem !important;\n }\n .text-md-start {\n text-align: left !important;\n }\n .text-md-end {\n text-align: right !important;\n }\n .text-md-center {\n text-align: center !important;\n }\n}\n@media (min-width: 960px) {\n .float-lg-start {\n float: left !important;\n }\n .float-lg-end {\n float: right !important;\n }\n .float-lg-none {\n float: none !important;\n }\n .object-fit-lg-contain {\n object-fit: contain !important;\n }\n .object-fit-lg-cover {\n object-fit: cover !important;\n }\n .object-fit-lg-fill {\n object-fit: fill !important;\n }\n .object-fit-lg-scale {\n object-fit: scale-down !important;\n }\n .object-fit-lg-none {\n object-fit: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-grid {\n display: grid !important;\n }\n .d-lg-inline-grid {\n display: inline-grid !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n .d-lg-none {\n display: none !important;\n }\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .justify-content-lg-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n .order-lg-first {\n order: -1 !important;\n }\n .order-lg-0 {\n order: 0 !important;\n }\n .order-lg-1 {\n order: 1 !important;\n }\n .order-lg-2 {\n order: 2 !important;\n }\n .order-lg-3 {\n order: 3 !important;\n }\n .order-lg-4 {\n order: 4 !important;\n }\n .order-lg-5 {\n order: 5 !important;\n }\n .order-lg-last {\n order: 6 !important;\n }\n .m-lg-0 {\n margin: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mx-lg-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-lg-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-lg-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-lg-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-lg-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-lg-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-lg-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-lg-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-lg-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-lg-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-lg-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-lg-0 {\n margin-top: 0 !important;\n }\n .mt-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mt-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mt-lg-3 {\n margin-top: 1rem !important;\n }\n .mt-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mt-lg-5 {\n margin-top: 3rem !important;\n }\n .mt-lg-auto {\n margin-top: auto !important;\n }\n .me-lg-0 {\n margin-right: 0 !important;\n }\n .me-lg-1 {\n margin-right: 0.25rem !important;\n }\n .me-lg-2 {\n margin-right: 0.5rem !important;\n }\n .me-lg-3 {\n margin-right: 1rem !important;\n }\n .me-lg-4 {\n margin-right: 1.5rem !important;\n }\n .me-lg-5 {\n margin-right: 3rem !important;\n }\n .me-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-0 {\n margin-bottom: 0 !important;\n }\n .mb-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-lg-3 {\n margin-bottom: 1rem !important;\n }\n .mb-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-lg-5 {\n margin-bottom: 3rem !important;\n }\n .mb-lg-auto {\n margin-bottom: auto !important;\n }\n .ms-lg-0 {\n margin-left: 0 !important;\n }\n .ms-lg-1 {\n margin-left: 0.25rem !important;\n }\n .ms-lg-2 {\n margin-left: 0.5rem !important;\n }\n .ms-lg-3 {\n margin-left: 1rem !important;\n }\n .ms-lg-4 {\n margin-left: 1.5rem !important;\n }\n .ms-lg-5 {\n margin-left: 3rem !important;\n }\n .ms-lg-auto {\n margin-left: auto !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .px-lg-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-lg-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-lg-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-lg-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-lg-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-lg-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-lg-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-lg-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-lg-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-lg-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-lg-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-lg-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-lg-0 {\n padding-top: 0 !important;\n }\n .pt-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pt-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pt-lg-3 {\n padding-top: 1rem !important;\n }\n .pt-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pt-lg-5 {\n padding-top: 3rem !important;\n }\n .pe-lg-0 {\n padding-right: 0 !important;\n }\n .pe-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pe-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pe-lg-3 {\n padding-right: 1rem !important;\n }\n .pe-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pe-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-0 {\n padding-bottom: 0 !important;\n }\n .pb-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pb-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-lg-5 {\n padding-bottom: 3rem !important;\n }\n .ps-lg-0 {\n padding-left: 0 !important;\n }\n .ps-lg-1 {\n padding-left: 0.25rem !important;\n }\n .ps-lg-2 {\n padding-left: 0.5rem !important;\n }\n .ps-lg-3 {\n padding-left: 1rem !important;\n }\n .ps-lg-4 {\n padding-left: 1.5rem !important;\n }\n .ps-lg-5 {\n padding-left: 3rem !important;\n }\n .gap-lg-0 {\n gap: 0 !important;\n }\n .gap-lg-1 {\n gap: 0.25rem !important;\n }\n .gap-lg-2 {\n gap: 0.5rem !important;\n }\n .gap-lg-3 {\n gap: 1rem !important;\n }\n .gap-lg-4 {\n gap: 1.5rem !important;\n }\n .gap-lg-5 {\n gap: 3rem !important;\n }\n .row-gap-lg-0 {\n row-gap: 0 !important;\n }\n .row-gap-lg-1 {\n row-gap: 0.25rem !important;\n }\n .row-gap-lg-2 {\n row-gap: 0.5rem !important;\n }\n .row-gap-lg-3 {\n row-gap: 1rem !important;\n }\n .row-gap-lg-4 {\n row-gap: 1.5rem !important;\n }\n .row-gap-lg-5 {\n row-gap: 3rem !important;\n }\n .column-gap-lg-0 {\n column-gap: 0 !important;\n }\n .column-gap-lg-1 {\n column-gap: 0.25rem !important;\n }\n .column-gap-lg-2 {\n column-gap: 0.5rem !important;\n }\n .column-gap-lg-3 {\n column-gap: 1rem !important;\n }\n .column-gap-lg-4 {\n column-gap: 1.5rem !important;\n }\n .column-gap-lg-5 {\n column-gap: 3rem !important;\n }\n .text-lg-start {\n text-align: left !important;\n }\n .text-lg-end {\n text-align: right !important;\n }\n .text-lg-center {\n text-align: center !important;\n }\n}\n@media (min-width: 1200px) {\n .float-xl-start {\n float: left !important;\n }\n .float-xl-end {\n float: right !important;\n }\n .float-xl-none {\n float: none !important;\n }\n .object-fit-xl-contain {\n object-fit: contain !important;\n }\n .object-fit-xl-cover {\n object-fit: cover !important;\n }\n .object-fit-xl-fill {\n object-fit: fill !important;\n }\n .object-fit-xl-scale {\n object-fit: scale-down !important;\n }\n .object-fit-xl-none {\n object-fit: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-grid {\n display: grid !important;\n }\n .d-xl-inline-grid {\n display: inline-grid !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n .d-xl-none {\n display: none !important;\n }\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .justify-content-xl-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n .order-xl-first {\n order: -1 !important;\n }\n .order-xl-0 {\n order: 0 !important;\n }\n .order-xl-1 {\n order: 1 !important;\n }\n .order-xl-2 {\n order: 2 !important;\n }\n .order-xl-3 {\n order: 3 !important;\n }\n .order-xl-4 {\n order: 4 !important;\n }\n .order-xl-5 {\n order: 5 !important;\n }\n .order-xl-last {\n order: 6 !important;\n }\n .m-xl-0 {\n margin: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mx-xl-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-xl-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-xl-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-xl-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-xl-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-xl-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-xl-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-xl-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-xl-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-xl-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-xl-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-xl-0 {\n margin-top: 0 !important;\n }\n .mt-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mt-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mt-xl-3 {\n margin-top: 1rem !important;\n }\n .mt-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mt-xl-5 {\n margin-top: 3rem !important;\n }\n .mt-xl-auto {\n margin-top: auto !important;\n }\n .me-xl-0 {\n margin-right: 0 !important;\n }\n .me-xl-1 {\n margin-right: 0.25rem !important;\n }\n .me-xl-2 {\n margin-right: 0.5rem !important;\n }\n .me-xl-3 {\n margin-right: 1rem !important;\n }\n .me-xl-4 {\n margin-right: 1.5rem !important;\n }\n .me-xl-5 {\n margin-right: 3rem !important;\n }\n .me-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-0 {\n margin-bottom: 0 !important;\n }\n .mb-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-xl-3 {\n margin-bottom: 1rem !important;\n }\n .mb-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-xl-5 {\n margin-bottom: 3rem !important;\n }\n .mb-xl-auto {\n margin-bottom: auto !important;\n }\n .ms-xl-0 {\n margin-left: 0 !important;\n }\n .ms-xl-1 {\n margin-left: 0.25rem !important;\n }\n .ms-xl-2 {\n margin-left: 0.5rem !important;\n }\n .ms-xl-3 {\n margin-left: 1rem !important;\n }\n .ms-xl-4 {\n margin-left: 1.5rem !important;\n }\n .ms-xl-5 {\n margin-left: 3rem !important;\n }\n .ms-xl-auto {\n margin-left: auto !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .px-xl-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-xl-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-xl-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-xl-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-xl-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-xl-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-xl-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-xl-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-xl-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-xl-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-xl-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-xl-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-xl-0 {\n padding-top: 0 !important;\n }\n .pt-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pt-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pt-xl-3 {\n padding-top: 1rem !important;\n }\n .pt-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pt-xl-5 {\n padding-top: 3rem !important;\n }\n .pe-xl-0 {\n padding-right: 0 !important;\n }\n .pe-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pe-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pe-xl-3 {\n padding-right: 1rem !important;\n }\n .pe-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pe-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-0 {\n padding-bottom: 0 !important;\n }\n .pb-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pb-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-xl-5 {\n padding-bottom: 3rem !important;\n }\n .ps-xl-0 {\n padding-left: 0 !important;\n }\n .ps-xl-1 {\n padding-left: 0.25rem !important;\n }\n .ps-xl-2 {\n padding-left: 0.5rem !important;\n }\n .ps-xl-3 {\n padding-left: 1rem !important;\n }\n .ps-xl-4 {\n padding-left: 1.5rem !important;\n }\n .ps-xl-5 {\n padding-left: 3rem !important;\n }\n .gap-xl-0 {\n gap: 0 !important;\n }\n .gap-xl-1 {\n gap: 0.25rem !important;\n }\n .gap-xl-2 {\n gap: 0.5rem !important;\n }\n .gap-xl-3 {\n gap: 1rem !important;\n }\n .gap-xl-4 {\n gap: 1.5rem !important;\n }\n .gap-xl-5 {\n gap: 3rem !important;\n }\n .row-gap-xl-0 {\n row-gap: 0 !important;\n }\n .row-gap-xl-1 {\n row-gap: 0.25rem !important;\n }\n .row-gap-xl-2 {\n row-gap: 0.5rem !important;\n }\n .row-gap-xl-3 {\n row-gap: 1rem !important;\n }\n .row-gap-xl-4 {\n row-gap: 1.5rem !important;\n }\n .row-gap-xl-5 {\n row-gap: 3rem !important;\n }\n .column-gap-xl-0 {\n column-gap: 0 !important;\n }\n .column-gap-xl-1 {\n column-gap: 0.25rem !important;\n }\n .column-gap-xl-2 {\n column-gap: 0.5rem !important;\n }\n .column-gap-xl-3 {\n column-gap: 1rem !important;\n }\n .column-gap-xl-4 {\n column-gap: 1.5rem !important;\n }\n .column-gap-xl-5 {\n column-gap: 3rem !important;\n }\n .text-xl-start {\n text-align: left !important;\n }\n .text-xl-end {\n text-align: right !important;\n }\n .text-xl-center {\n text-align: center !important;\n }\n}\n@media (min-width: 1200px) {\n .fs-1 {\n font-size: 2.5rem !important;\n }\n .fs-2 {\n font-size: 2rem !important;\n }\n .fs-3 {\n font-size: 1.75rem !important;\n }\n .fs-4 {\n font-size: 1.5rem !important;\n }\n}\n@media print {\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-grid {\n display: grid !important;\n }\n .d-print-inline-grid {\n display: inline-grid !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: flex !important;\n }\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n .d-print-none {\n display: none !important;\n }\n}\n.fa-solid,\n.fa-regular,\n.fa-brands,\n.fa-classic,\n.fas,\n.far,\n.fab,\n.fa {\n --_fa-family: var(--fa-family, var(--fa-style-family, \"Font Awesome 7 Free\"));\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n display: var(--fa-display, inline-block);\n font-family: var(--_fa-family);\n font-feature-settings: normal;\n font-style: normal;\n font-synthesis: none;\n font-variant: normal;\n font-weight: var(--fa-style, 900);\n line-height: 1;\n text-align: center;\n text-rendering: auto;\n width: var(--fa-width, 1.25em);\n}\n\n:is(.fas,\n.far,\n.fab,\n.fa-solid,\n.fa-regular,\n.fa-brands,\n.fa-classic,\n.fa)::before {\n content: var(--fa)/\"\";\n}\n\n@supports not (content: \"\"/\"\") {\n :is(.fas,\n .far,\n .fab,\n .fa-solid,\n .fa-regular,\n .fa-brands,\n .fa-classic,\n .fa)::before {\n content: var(--fa);\n }\n}\n.fa-1x {\n font-size: 1em;\n}\n\n.fa-2x {\n font-size: 2em;\n}\n\n.fa-3x {\n font-size: 3em;\n}\n\n.fa-4x {\n font-size: 4em;\n}\n\n.fa-5x {\n font-size: 5em;\n}\n\n.fa-6x {\n font-size: 6em;\n}\n\n.fa-7x {\n font-size: 7em;\n}\n\n.fa-8x {\n font-size: 8em;\n}\n\n.fa-9x {\n font-size: 9em;\n}\n\n.fa-10x {\n font-size: 10em;\n}\n\n.fa-2xs {\n font-size: calc(10 / 16 * 1em); /* converts a 10px size into an em-based value that's relative to the scale's 16px base */\n line-height: calc(1 / 10 * 1em); /* sets the line-height of the icon back to that of it's parent */\n vertical-align: calc((6 / 10 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */\n}\n\n.fa-xs {\n font-size: calc(12 / 16 * 1em); /* converts a 12px size into an em-based value that's relative to the scale's 16px base */\n line-height: calc(1 / 12 * 1em); /* sets the line-height of the icon back to that of it's parent */\n vertical-align: calc((6 / 12 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */\n}\n\n.fa-sm {\n font-size: calc(14 / 16 * 1em); /* converts a 14px size into an em-based value that's relative to the scale's 16px base */\n line-height: calc(1 / 14 * 1em); /* sets the line-height of the icon back to that of it's parent */\n vertical-align: calc((6 / 14 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */\n}\n\n.fa-lg {\n font-size: calc(20 / 16 * 1em); /* converts a 20px size into an em-based value that's relative to the scale's 16px base */\n line-height: calc(1 / 20 * 1em); /* sets the line-height of the icon back to that of it's parent */\n vertical-align: calc((6 / 20 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */\n}\n\n.fa-xl {\n font-size: calc(24 / 16 * 1em); /* converts a 24px size into an em-based value that's relative to the scale's 16px base */\n line-height: calc(1 / 24 * 1em); /* sets the line-height of the icon back to that of it's parent */\n vertical-align: calc((6 / 24 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */\n}\n\n.fa-2xl {\n font-size: calc(32 / 16 * 1em); /* converts a 32px size into an em-based value that's relative to the scale's 16px base */\n line-height: calc(1 / 32 * 1em); /* sets the line-height of the icon back to that of it's parent */\n vertical-align: calc((6 / 32 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */\n}\n\n.fa-width-auto {\n --fa-width: auto;\n}\n\n.fa-fw,\n.fa-width-fixed {\n --fa-width: 1.25em;\n}\n\n.fa-ul {\n list-style-type: none;\n margin-inline-start: var(--fa-li-margin, 2.5em);\n padding-inline-start: 0;\n}\n\n.fa-ul > li {\n position: relative;\n}\n\n.fa-li {\n inset-inline-start: calc(-1 * var(--fa-li-width, 2em));\n position: absolute;\n text-align: center;\n width: var(--fa-li-width, 2em);\n line-height: inherit;\n}\n\n/* Heads Up: Bordered Icons will not be supported in the future!\n - This feature will be deprecated in the next major release of Font Awesome (v8)!\n - You may continue to use it in this version *v7), but it will not be supported in Font Awesome v8.\n*/\n/* Notes:\n* --@{v.$css-prefix}-border-width = 1/16 by default (to render as ~1px based on a 16px default font-size)\n* --@{v.$css-prefix}-border-padding =\n ** 3/16 for vertical padding (to give ~2px of vertical whitespace around an icon considering it's vertical alignment)\n ** 4/16 for horizontal padding (to give ~4px of horizontal whitespace around an icon)\n*/\n.fa-border {\n border-color: var(--fa-border-color, #eee);\n border-radius: var(--fa-border-radius, 0.1em);\n border-style: var(--fa-border-style, solid);\n border-width: var(--fa-border-width, 0.0625em);\n box-sizing: var(--fa-border-box-sizing, content-box);\n padding: var(--fa-border-padding, 0.1875em 0.25em);\n}\n\n.fa-pull-left,\n.fa-pull-start {\n float: inline-start;\n margin-inline-end: var(--fa-pull-margin, 0.3em);\n}\n\n.fa-pull-right,\n.fa-pull-end {\n float: inline-end;\n margin-inline-start: var(--fa-pull-margin, 0.3em);\n}\n\n.fa-beat {\n animation-name: fa-beat;\n animation-delay: var(--fa-animation-delay, 0s);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\n}\n\n.fa-bounce {\n animation-name: fa-bounce;\n animation-delay: var(--fa-animation-delay, 0s);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\n}\n\n.fa-fade {\n animation-name: fa-fade;\n animation-delay: var(--fa-animation-delay, 0s);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n}\n\n.fa-beat-fade {\n animation-name: fa-beat-fade;\n animation-delay: var(--fa-animation-delay, 0s);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n}\n\n.fa-flip {\n animation-name: fa-flip;\n animation-delay: var(--fa-animation-delay, 0s);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\n}\n\n.fa-shake {\n animation-name: fa-shake;\n animation-delay: var(--fa-animation-delay, 0s);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, linear);\n}\n\n.fa-spin {\n animation-name: fa-spin;\n animation-delay: var(--fa-animation-delay, 0s);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 2s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, linear);\n}\n\n.fa-spin-reverse {\n --fa-animation-direction: reverse;\n}\n\n.fa-pulse,\n.fa-spin-pulse {\n animation-name: fa-spin;\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, steps(8));\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fa-beat,\n .fa-bounce,\n .fa-fade,\n .fa-beat-fade,\n .fa-flip,\n .fa-pulse,\n .fa-shake,\n .fa-spin,\n .fa-spin-pulse {\n animation: none !important;\n transition: none !important;\n }\n}\n@keyframes fa-beat {\n 0%, 90% {\n transform: scale(1);\n }\n 45% {\n transform: scale(var(--fa-beat-scale, 1.25));\n }\n}\n@keyframes fa-bounce {\n 0% {\n transform: scale(1, 1) translateY(0);\n }\n 10% {\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n }\n 30% {\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n }\n 50% {\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n }\n 57% {\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n }\n 64% {\n transform: scale(1, 1) translateY(0);\n }\n 100% {\n transform: scale(1, 1) translateY(0);\n }\n}\n@keyframes fa-fade {\n 50% {\n opacity: var(--fa-fade-opacity, 0.4);\n }\n}\n@keyframes fa-beat-fade {\n 0%, 100% {\n opacity: var(--fa-beat-fade-opacity, 0.4);\n transform: scale(1);\n }\n 50% {\n opacity: 1;\n transform: scale(var(--fa-beat-fade-scale, 1.125));\n }\n}\n@keyframes fa-flip {\n 50% {\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n }\n}\n@keyframes fa-shake {\n 0% {\n transform: rotate(-15deg);\n }\n 4% {\n transform: rotate(15deg);\n }\n 8%, 24% {\n transform: rotate(-18deg);\n }\n 12%, 28% {\n transform: rotate(18deg);\n }\n 16% {\n transform: rotate(-22deg);\n }\n 20% {\n transform: rotate(22deg);\n }\n 32% {\n transform: rotate(-12deg);\n }\n 36% {\n transform: rotate(12deg);\n }\n 40%, 100% {\n transform: rotate(0deg);\n }\n}\n@keyframes fa-spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n.fa-rotate-90 {\n transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n transform: scale(1, -1);\n}\n\n.fa-flip-both,\n.fa-flip-horizontal.fa-flip-vertical {\n transform: scale(-1, -1);\n}\n\n.fa-rotate-by {\n transform: rotate(var(--fa-rotate-angle, 0));\n}\n\n.fa-stack {\n display: inline-block;\n height: 2em;\n line-height: 2em;\n position: relative;\n vertical-align: middle;\n width: 2.5em;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n --fa-width: 100%;\n inset: 0;\n position: absolute;\n text-align: center;\n width: var(--fa-width);\n z-index: var(--fa-stack-z-index, auto);\n}\n\n.fa-stack-1x {\n line-height: inherit;\n}\n\n.fa-stack-2x {\n font-size: 2em;\n}\n\n.fa-inverse {\n color: var(--fa-inverse, #fff);\n}\n\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\n readers do not read off random characters that represent icons */\n.fa-0 {\n --fa: \"\\30 \";\n}\n\n.fa-1 {\n --fa: \"\\31 \";\n}\n\n.fa-2 {\n --fa: \"\\32 \";\n}\n\n.fa-3 {\n --fa: \"\\33 \";\n}\n\n.fa-4 {\n --fa: \"\\34 \";\n}\n\n.fa-5 {\n --fa: \"\\35 \";\n}\n\n.fa-6 {\n --fa: \"\\36 \";\n}\n\n.fa-7 {\n --fa: \"\\37 \";\n}\n\n.fa-8 {\n --fa: \"\\38 \";\n}\n\n.fa-9 {\n --fa: \"\\39 \";\n}\n\n.fa-exclamation {\n --fa: \"\\!\";\n}\n\n.fa-hashtag {\n --fa: \"\\#\";\n}\n\n.fa-dollar-sign {\n --fa: \"\\$\";\n}\n\n.fa-dollar {\n --fa: \"\\$\";\n}\n\n.fa-usd {\n --fa: \"\\$\";\n}\n\n.fa-percent {\n --fa: \"\\%\";\n}\n\n.fa-percentage {\n --fa: \"\\%\";\n}\n\n.fa-asterisk {\n --fa: \"\\*\";\n}\n\n.fa-plus {\n --fa: \"\\+\";\n}\n\n.fa-add {\n --fa: \"\\+\";\n}\n\n.fa-less-than {\n --fa: \"\\<\";\n}\n\n.fa-equals {\n --fa: \"\\=\";\n}\n\n.fa-greater-than {\n --fa: \"\\>\";\n}\n\n.fa-question {\n --fa: \"\\?\";\n}\n\n.fa-at {\n --fa: \"\\@\";\n}\n\n.fa-a {\n --fa: \"A\";\n}\n\n.fa-b {\n --fa: \"B\";\n}\n\n.fa-c {\n --fa: \"C\";\n}\n\n.fa-d {\n --fa: \"D\";\n}\n\n.fa-e {\n --fa: \"E\";\n}\n\n.fa-f {\n --fa: \"F\";\n}\n\n.fa-g {\n --fa: \"G\";\n}\n\n.fa-h {\n --fa: \"H\";\n}\n\n.fa-i {\n --fa: \"I\";\n}\n\n.fa-j {\n --fa: \"J\";\n}\n\n.fa-k {\n --fa: \"K\";\n}\n\n.fa-l {\n --fa: \"L\";\n}\n\n.fa-m {\n --fa: \"M\";\n}\n\n.fa-n {\n --fa: \"N\";\n}\n\n.fa-o {\n --fa: \"O\";\n}\n\n.fa-p {\n --fa: \"P\";\n}\n\n.fa-q {\n --fa: \"Q\";\n}\n\n.fa-r {\n --fa: \"R\";\n}\n\n.fa-s {\n --fa: \"S\";\n}\n\n.fa-t {\n --fa: \"T\";\n}\n\n.fa-u {\n --fa: \"U\";\n}\n\n.fa-v {\n --fa: \"V\";\n}\n\n.fa-w {\n --fa: \"W\";\n}\n\n.fa-x {\n --fa: \"X\";\n}\n\n.fa-y {\n --fa: \"Y\";\n}\n\n.fa-z {\n --fa: \"Z\";\n}\n\n.fa-faucet {\n --fa: \"\\e005\";\n}\n\n.fa-faucet-drip {\n --fa: \"\\e006\";\n}\n\n.fa-house-chimney-window {\n --fa: \"\\e00d\";\n}\n\n.fa-house-signal {\n --fa: \"\\e012\";\n}\n\n.fa-temperature-arrow-down {\n --fa: \"\\e03f\";\n}\n\n.fa-temperature-down {\n --fa: \"\\e03f\";\n}\n\n.fa-temperature-arrow-up {\n --fa: \"\\e040\";\n}\n\n.fa-temperature-up {\n --fa: \"\\e040\";\n}\n\n.fa-trailer {\n --fa: \"\\e041\";\n}\n\n.fa-bacteria {\n --fa: \"\\e059\";\n}\n\n.fa-bacterium {\n --fa: \"\\e05a\";\n}\n\n.fa-box-tissue {\n --fa: \"\\e05b\";\n}\n\n.fa-hand-holding-medical {\n --fa: \"\\e05c\";\n}\n\n.fa-hand-sparkles {\n --fa: \"\\e05d\";\n}\n\n.fa-hands-bubbles {\n --fa: \"\\e05e\";\n}\n\n.fa-hands-wash {\n --fa: \"\\e05e\";\n}\n\n.fa-handshake-slash {\n --fa: \"\\e060\";\n}\n\n.fa-handshake-alt-slash {\n --fa: \"\\e060\";\n}\n\n.fa-handshake-simple-slash {\n --fa: \"\\e060\";\n}\n\n.fa-head-side-cough {\n --fa: \"\\e061\";\n}\n\n.fa-head-side-cough-slash {\n --fa: \"\\e062\";\n}\n\n.fa-head-side-mask {\n --fa: \"\\e063\";\n}\n\n.fa-head-side-virus {\n --fa: \"\\e064\";\n}\n\n.fa-house-chimney-user {\n --fa: \"\\e065\";\n}\n\n.fa-house-laptop {\n --fa: \"\\e066\";\n}\n\n.fa-laptop-house {\n --fa: \"\\e066\";\n}\n\n.fa-lungs-virus {\n --fa: \"\\e067\";\n}\n\n.fa-people-arrows {\n --fa: \"\\e068\";\n}\n\n.fa-people-arrows-left-right {\n --fa: \"\\e068\";\n}\n\n.fa-plane-slash {\n --fa: \"\\e069\";\n}\n\n.fa-pump-medical {\n --fa: \"\\e06a\";\n}\n\n.fa-pump-soap {\n --fa: \"\\e06b\";\n}\n\n.fa-shield-virus {\n --fa: \"\\e06c\";\n}\n\n.fa-sink {\n --fa: \"\\e06d\";\n}\n\n.fa-soap {\n --fa: \"\\e06e\";\n}\n\n.fa-stopwatch-20 {\n --fa: \"\\e06f\";\n}\n\n.fa-shop-slash {\n --fa: \"\\e070\";\n}\n\n.fa-store-alt-slash {\n --fa: \"\\e070\";\n}\n\n.fa-store-slash {\n --fa: \"\\e071\";\n}\n\n.fa-toilet-paper-slash {\n --fa: \"\\e072\";\n}\n\n.fa-users-slash {\n --fa: \"\\e073\";\n}\n\n.fa-virus {\n --fa: \"\\e074\";\n}\n\n.fa-virus-slash {\n --fa: \"\\e075\";\n}\n\n.fa-viruses {\n --fa: \"\\e076\";\n}\n\n.fa-vest {\n --fa: \"\\e085\";\n}\n\n.fa-vest-patches {\n --fa: \"\\e086\";\n}\n\n.fa-arrow-trend-down {\n --fa: \"\\e097\";\n}\n\n.fa-arrow-trend-up {\n --fa: \"\\e098\";\n}\n\n.fa-arrow-up-from-bracket {\n --fa: \"\\e09a\";\n}\n\n.fa-austral-sign {\n --fa: \"\\e0a9\";\n}\n\n.fa-baht-sign {\n --fa: \"\\e0ac\";\n}\n\n.fa-bitcoin-sign {\n --fa: \"\\e0b4\";\n}\n\n.fa-bolt-lightning {\n --fa: \"\\e0b7\";\n}\n\n.fa-book-bookmark {\n --fa: \"\\e0bb\";\n}\n\n.fa-camera-rotate {\n --fa: \"\\e0d8\";\n}\n\n.fa-cedi-sign {\n --fa: \"\\e0df\";\n}\n\n.fa-chart-column {\n --fa: \"\\e0e3\";\n}\n\n.fa-chart-gantt {\n --fa: \"\\e0e4\";\n}\n\n.fa-clapperboard {\n --fa: \"\\e131\";\n}\n\n.fa-closed-captioning-slash {\n --fa: \"\\e135\";\n}\n\n.fa-clover {\n --fa: \"\\e139\";\n}\n\n.fa-code-compare {\n --fa: \"\\e13a\";\n}\n\n.fa-code-fork {\n --fa: \"\\e13b\";\n}\n\n.fa-code-pull-request {\n --fa: \"\\e13c\";\n}\n\n.fa-colon-sign {\n --fa: \"\\e140\";\n}\n\n.fa-cruzeiro-sign {\n --fa: \"\\e152\";\n}\n\n.fa-display {\n --fa: \"\\e163\";\n}\n\n.fa-dong-sign {\n --fa: \"\\e169\";\n}\n\n.fa-elevator {\n --fa: \"\\e16d\";\n}\n\n.fa-filter-circle-xmark {\n --fa: \"\\e17b\";\n}\n\n.fa-florin-sign {\n --fa: \"\\e184\";\n}\n\n.fa-folder-closed {\n --fa: \"\\e185\";\n}\n\n.fa-franc-sign {\n --fa: \"\\e18f\";\n}\n\n.fa-guarani-sign {\n --fa: \"\\e19a\";\n}\n\n.fa-gun {\n --fa: \"\\e19b\";\n}\n\n.fa-hands-clapping {\n --fa: \"\\e1a8\";\n}\n\n.fa-house-user {\n --fa: \"\\e1b0\";\n}\n\n.fa-home-user {\n --fa: \"\\e1b0\";\n}\n\n.fa-indian-rupee-sign {\n --fa: \"\\e1bc\";\n}\n\n.fa-indian-rupee {\n --fa: \"\\e1bc\";\n}\n\n.fa-inr {\n --fa: \"\\e1bc\";\n}\n\n.fa-kip-sign {\n --fa: \"\\e1c4\";\n}\n\n.fa-lari-sign {\n --fa: \"\\e1c8\";\n}\n\n.fa-litecoin-sign {\n --fa: \"\\e1d3\";\n}\n\n.fa-manat-sign {\n --fa: \"\\e1d5\";\n}\n\n.fa-mask-face {\n --fa: \"\\e1d7\";\n}\n\n.fa-mill-sign {\n --fa: \"\\e1ed\";\n}\n\n.fa-money-bills {\n --fa: \"\\e1f3\";\n}\n\n.fa-naira-sign {\n --fa: \"\\e1f6\";\n}\n\n.fa-notdef {\n --fa: \"\\e1fe\";\n}\n\n.fa-panorama {\n --fa: \"\\e209\";\n}\n\n.fa-peseta-sign {\n --fa: \"\\e221\";\n}\n\n.fa-peso-sign {\n --fa: \"\\e222\";\n}\n\n.fa-plane-up {\n --fa: \"\\e22d\";\n}\n\n.fa-rupiah-sign {\n --fa: \"\\e23d\";\n}\n\n.fa-stairs {\n --fa: \"\\e289\";\n}\n\n.fa-timeline {\n --fa: \"\\e29c\";\n}\n\n.fa-truck-front {\n --fa: \"\\e2b7\";\n}\n\n.fa-turkish-lira-sign {\n --fa: \"\\e2bb\";\n}\n\n.fa-try {\n --fa: \"\\e2bb\";\n}\n\n.fa-turkish-lira {\n --fa: \"\\e2bb\";\n}\n\n.fa-vault {\n --fa: \"\\e2c5\";\n}\n\n.fa-wand-magic-sparkles {\n --fa: \"\\e2ca\";\n}\n\n.fa-magic-wand-sparkles {\n --fa: \"\\e2ca\";\n}\n\n.fa-wheat-awn {\n --fa: \"\\e2cd\";\n}\n\n.fa-wheat-alt {\n --fa: \"\\e2cd\";\n}\n\n.fa-wheelchair-move {\n --fa: \"\\e2ce\";\n}\n\n.fa-wheelchair-alt {\n --fa: \"\\e2ce\";\n}\n\n.fa-bangladeshi-taka-sign {\n --fa: \"\\e2e6\";\n}\n\n.fa-bowl-rice {\n --fa: \"\\e2eb\";\n}\n\n.fa-person-pregnant {\n --fa: \"\\e31e\";\n}\n\n.fa-house-chimney {\n --fa: \"\\e3af\";\n}\n\n.fa-home-lg {\n --fa: \"\\e3af\";\n}\n\n.fa-house-crack {\n --fa: \"\\e3b1\";\n}\n\n.fa-house-medical {\n --fa: \"\\e3b2\";\n}\n\n.fa-cent-sign {\n --fa: \"\\e3f5\";\n}\n\n.fa-plus-minus {\n --fa: \"\\e43c\";\n}\n\n.fa-sailboat {\n --fa: \"\\e445\";\n}\n\n.fa-section {\n --fa: \"\\e447\";\n}\n\n.fa-shrimp {\n --fa: \"\\e448\";\n}\n\n.fa-brazilian-real-sign {\n --fa: \"\\e46c\";\n}\n\n.fa-chart-simple {\n --fa: \"\\e473\";\n}\n\n.fa-diagram-next {\n --fa: \"\\e476\";\n}\n\n.fa-diagram-predecessor {\n --fa: \"\\e477\";\n}\n\n.fa-diagram-successor {\n --fa: \"\\e47a\";\n}\n\n.fa-earth-oceania {\n --fa: \"\\e47b\";\n}\n\n.fa-globe-oceania {\n --fa: \"\\e47b\";\n}\n\n.fa-bug-slash {\n --fa: \"\\e490\";\n}\n\n.fa-file-circle-plus {\n --fa: \"\\e494\";\n}\n\n.fa-shop-lock {\n --fa: \"\\e4a5\";\n}\n\n.fa-virus-covid {\n --fa: \"\\e4a8\";\n}\n\n.fa-virus-covid-slash {\n --fa: \"\\e4a9\";\n}\n\n.fa-anchor-circle-check {\n --fa: \"\\e4aa\";\n}\n\n.fa-anchor-circle-exclamation {\n --fa: \"\\e4ab\";\n}\n\n.fa-anchor-circle-xmark {\n --fa: \"\\e4ac\";\n}\n\n.fa-anchor-lock {\n --fa: \"\\e4ad\";\n}\n\n.fa-arrow-down-up-across-line {\n --fa: \"\\e4af\";\n}\n\n.fa-arrow-down-up-lock {\n --fa: \"\\e4b0\";\n}\n\n.fa-arrow-right-to-city {\n --fa: \"\\e4b3\";\n}\n\n.fa-arrow-up-from-ground-water {\n --fa: \"\\e4b5\";\n}\n\n.fa-arrow-up-from-water-pump {\n --fa: \"\\e4b6\";\n}\n\n.fa-arrow-up-right-dots {\n --fa: \"\\e4b7\";\n}\n\n.fa-arrows-down-to-line {\n --fa: \"\\e4b8\";\n}\n\n.fa-arrows-down-to-people {\n --fa: \"\\e4b9\";\n}\n\n.fa-arrows-left-right-to-line {\n --fa: \"\\e4ba\";\n}\n\n.fa-arrows-spin {\n --fa: \"\\e4bb\";\n}\n\n.fa-arrows-split-up-and-left {\n --fa: \"\\e4bc\";\n}\n\n.fa-arrows-to-circle {\n --fa: \"\\e4bd\";\n}\n\n.fa-arrows-to-dot {\n --fa: \"\\e4be\";\n}\n\n.fa-arrows-to-eye {\n --fa: \"\\e4bf\";\n}\n\n.fa-arrows-turn-right {\n --fa: \"\\e4c0\";\n}\n\n.fa-arrows-turn-to-dots {\n --fa: \"\\e4c1\";\n}\n\n.fa-arrows-up-to-line {\n --fa: \"\\e4c2\";\n}\n\n.fa-bore-hole {\n --fa: \"\\e4c3\";\n}\n\n.fa-bottle-droplet {\n --fa: \"\\e4c4\";\n}\n\n.fa-bottle-water {\n --fa: \"\\e4c5\";\n}\n\n.fa-bowl-food {\n --fa: \"\\e4c6\";\n}\n\n.fa-boxes-packing {\n --fa: \"\\e4c7\";\n}\n\n.fa-bridge {\n --fa: \"\\e4c8\";\n}\n\n.fa-bridge-circle-check {\n --fa: \"\\e4c9\";\n}\n\n.fa-bridge-circle-exclamation {\n --fa: \"\\e4ca\";\n}\n\n.fa-bridge-circle-xmark {\n --fa: \"\\e4cb\";\n}\n\n.fa-bridge-lock {\n --fa: \"\\e4cc\";\n}\n\n.fa-bridge-water {\n --fa: \"\\e4ce\";\n}\n\n.fa-bucket {\n --fa: \"\\e4cf\";\n}\n\n.fa-bugs {\n --fa: \"\\e4d0\";\n}\n\n.fa-building-circle-arrow-right {\n --fa: \"\\e4d1\";\n}\n\n.fa-building-circle-check {\n --fa: \"\\e4d2\";\n}\n\n.fa-building-circle-exclamation {\n --fa: \"\\e4d3\";\n}\n\n.fa-building-circle-xmark {\n --fa: \"\\e4d4\";\n}\n\n.fa-building-flag {\n --fa: \"\\e4d5\";\n}\n\n.fa-building-lock {\n --fa: \"\\e4d6\";\n}\n\n.fa-building-ngo {\n --fa: \"\\e4d7\";\n}\n\n.fa-building-shield {\n --fa: \"\\e4d8\";\n}\n\n.fa-building-un {\n --fa: \"\\e4d9\";\n}\n\n.fa-building-user {\n --fa: \"\\e4da\";\n}\n\n.fa-building-wheat {\n --fa: \"\\e4db\";\n}\n\n.fa-burst {\n --fa: \"\\e4dc\";\n}\n\n.fa-car-on {\n --fa: \"\\e4dd\";\n}\n\n.fa-car-tunnel {\n --fa: \"\\e4de\";\n}\n\n.fa-child-combatant {\n --fa: \"\\e4e0\";\n}\n\n.fa-child-rifle {\n --fa: \"\\e4e0\";\n}\n\n.fa-children {\n --fa: \"\\e4e1\";\n}\n\n.fa-circle-nodes {\n --fa: \"\\e4e2\";\n}\n\n.fa-clipboard-question {\n --fa: \"\\e4e3\";\n}\n\n.fa-cloud-showers-water {\n --fa: \"\\e4e4\";\n}\n\n.fa-computer {\n --fa: \"\\e4e5\";\n}\n\n.fa-cubes-stacked {\n --fa: \"\\e4e6\";\n}\n\n.fa-envelope-circle-check {\n --fa: \"\\e4e8\";\n}\n\n.fa-explosion {\n --fa: \"\\e4e9\";\n}\n\n.fa-ferry {\n --fa: \"\\e4ea\";\n}\n\n.fa-file-circle-exclamation {\n --fa: \"\\e4eb\";\n}\n\n.fa-file-circle-minus {\n --fa: \"\\e4ed\";\n}\n\n.fa-file-circle-question {\n --fa: \"\\e4ef\";\n}\n\n.fa-file-shield {\n --fa: \"\\e4f0\";\n}\n\n.fa-fire-burner {\n --fa: \"\\e4f1\";\n}\n\n.fa-fish-fins {\n --fa: \"\\e4f2\";\n}\n\n.fa-flask-vial {\n --fa: \"\\e4f3\";\n}\n\n.fa-glass-water {\n --fa: \"\\e4f4\";\n}\n\n.fa-glass-water-droplet {\n --fa: \"\\e4f5\";\n}\n\n.fa-group-arrows-rotate {\n --fa: \"\\e4f6\";\n}\n\n.fa-hand-holding-hand {\n --fa: \"\\e4f7\";\n}\n\n.fa-handcuffs {\n --fa: \"\\e4f8\";\n}\n\n.fa-hands-bound {\n --fa: \"\\e4f9\";\n}\n\n.fa-hands-holding-child {\n --fa: \"\\e4fa\";\n}\n\n.fa-hands-holding-circle {\n --fa: \"\\e4fb\";\n}\n\n.fa-heart-circle-bolt {\n --fa: \"\\e4fc\";\n}\n\n.fa-heart-circle-check {\n --fa: \"\\e4fd\";\n}\n\n.fa-heart-circle-exclamation {\n --fa: \"\\e4fe\";\n}\n\n.fa-heart-circle-minus {\n --fa: \"\\e4ff\";\n}\n\n.fa-heart-circle-plus {\n --fa: \"\\e500\";\n}\n\n.fa-heart-circle-xmark {\n --fa: \"\\e501\";\n}\n\n.fa-helicopter-symbol {\n --fa: \"\\e502\";\n}\n\n.fa-helmet-un {\n --fa: \"\\e503\";\n}\n\n.fa-hill-avalanche {\n --fa: \"\\e507\";\n}\n\n.fa-hill-rockslide {\n --fa: \"\\e508\";\n}\n\n.fa-house-circle-check {\n --fa: \"\\e509\";\n}\n\n.fa-house-circle-exclamation {\n --fa: \"\\e50a\";\n}\n\n.fa-house-circle-xmark {\n --fa: \"\\e50b\";\n}\n\n.fa-house-fire {\n --fa: \"\\e50c\";\n}\n\n.fa-house-flag {\n --fa: \"\\e50d\";\n}\n\n.fa-house-flood-water {\n --fa: \"\\e50e\";\n}\n\n.fa-house-flood-water-circle-arrow-right {\n --fa: \"\\e50f\";\n}\n\n.fa-house-lock {\n --fa: \"\\e510\";\n}\n\n.fa-house-medical-circle-check {\n --fa: \"\\e511\";\n}\n\n.fa-house-medical-circle-exclamation {\n --fa: \"\\e512\";\n}\n\n.fa-house-medical-circle-xmark {\n --fa: \"\\e513\";\n}\n\n.fa-house-medical-flag {\n --fa: \"\\e514\";\n}\n\n.fa-house-tsunami {\n --fa: \"\\e515\";\n}\n\n.fa-jar {\n --fa: \"\\e516\";\n}\n\n.fa-jar-wheat {\n --fa: \"\\e517\";\n}\n\n.fa-jet-fighter-up {\n --fa: \"\\e518\";\n}\n\n.fa-jug-detergent {\n --fa: \"\\e519\";\n}\n\n.fa-kitchen-set {\n --fa: \"\\e51a\";\n}\n\n.fa-land-mine-on {\n --fa: \"\\e51b\";\n}\n\n.fa-landmark-flag {\n --fa: \"\\e51c\";\n}\n\n.fa-laptop-file {\n --fa: \"\\e51d\";\n}\n\n.fa-lines-leaning {\n --fa: \"\\e51e\";\n}\n\n.fa-location-pin-lock {\n --fa: \"\\e51f\";\n}\n\n.fa-locust {\n --fa: \"\\e520\";\n}\n\n.fa-magnifying-glass-arrow-right {\n --fa: \"\\e521\";\n}\n\n.fa-magnifying-glass-chart {\n --fa: \"\\e522\";\n}\n\n.fa-mars-and-venus-burst {\n --fa: \"\\e523\";\n}\n\n.fa-mask-ventilator {\n --fa: \"\\e524\";\n}\n\n.fa-mattress-pillow {\n --fa: \"\\e525\";\n}\n\n.fa-mobile-retro {\n --fa: \"\\e527\";\n}\n\n.fa-money-bill-transfer {\n --fa: \"\\e528\";\n}\n\n.fa-money-bill-trend-up {\n --fa: \"\\e529\";\n}\n\n.fa-money-bill-wheat {\n --fa: \"\\e52a\";\n}\n\n.fa-mosquito {\n --fa: \"\\e52b\";\n}\n\n.fa-mosquito-net {\n --fa: \"\\e52c\";\n}\n\n.fa-mound {\n --fa: \"\\e52d\";\n}\n\n.fa-mountain-city {\n --fa: \"\\e52e\";\n}\n\n.fa-mountain-sun {\n --fa: \"\\e52f\";\n}\n\n.fa-oil-well {\n --fa: \"\\e532\";\n}\n\n.fa-people-group {\n --fa: \"\\e533\";\n}\n\n.fa-people-line {\n --fa: \"\\e534\";\n}\n\n.fa-people-pulling {\n --fa: \"\\e535\";\n}\n\n.fa-people-robbery {\n --fa: \"\\e536\";\n}\n\n.fa-people-roof {\n --fa: \"\\e537\";\n}\n\n.fa-person-arrow-down-to-line {\n --fa: \"\\e538\";\n}\n\n.fa-person-arrow-up-from-line {\n --fa: \"\\e539\";\n}\n\n.fa-person-breastfeeding {\n --fa: \"\\e53a\";\n}\n\n.fa-person-burst {\n --fa: \"\\e53b\";\n}\n\n.fa-person-cane {\n --fa: \"\\e53c\";\n}\n\n.fa-person-chalkboard {\n --fa: \"\\e53d\";\n}\n\n.fa-person-circle-check {\n --fa: \"\\e53e\";\n}\n\n.fa-person-circle-exclamation {\n --fa: \"\\e53f\";\n}\n\n.fa-person-circle-minus {\n --fa: \"\\e540\";\n}\n\n.fa-person-circle-plus {\n --fa: \"\\e541\";\n}\n\n.fa-person-circle-question {\n --fa: \"\\e542\";\n}\n\n.fa-person-circle-xmark {\n --fa: \"\\e543\";\n}\n\n.fa-person-dress-burst {\n --fa: \"\\e544\";\n}\n\n.fa-person-drowning {\n --fa: \"\\e545\";\n}\n\n.fa-person-falling {\n --fa: \"\\e546\";\n}\n\n.fa-person-falling-burst {\n --fa: \"\\e547\";\n}\n\n.fa-person-half-dress {\n --fa: \"\\e548\";\n}\n\n.fa-person-harassing {\n --fa: \"\\e549\";\n}\n\n.fa-person-military-pointing {\n --fa: \"\\e54a\";\n}\n\n.fa-person-military-rifle {\n --fa: \"\\e54b\";\n}\n\n.fa-person-military-to-person {\n --fa: \"\\e54c\";\n}\n\n.fa-person-rays {\n --fa: \"\\e54d\";\n}\n\n.fa-person-rifle {\n --fa: \"\\e54e\";\n}\n\n.fa-person-shelter {\n --fa: \"\\e54f\";\n}\n\n.fa-person-walking-arrow-loop-left {\n --fa: \"\\e551\";\n}\n\n.fa-person-walking-arrow-right {\n --fa: \"\\e552\";\n}\n\n.fa-person-walking-dashed-line-arrow-right {\n --fa: \"\\e553\";\n}\n\n.fa-person-walking-luggage {\n --fa: \"\\e554\";\n}\n\n.fa-plane-circle-check {\n --fa: \"\\e555\";\n}\n\n.fa-plane-circle-exclamation {\n --fa: \"\\e556\";\n}\n\n.fa-plane-circle-xmark {\n --fa: \"\\e557\";\n}\n\n.fa-plane-lock {\n --fa: \"\\e558\";\n}\n\n.fa-plate-wheat {\n --fa: \"\\e55a\";\n}\n\n.fa-plug-circle-bolt {\n --fa: \"\\e55b\";\n}\n\n.fa-plug-circle-check {\n --fa: \"\\e55c\";\n}\n\n.fa-plug-circle-exclamation {\n --fa: \"\\e55d\";\n}\n\n.fa-plug-circle-minus {\n --fa: \"\\e55e\";\n}\n\n.fa-plug-circle-plus {\n --fa: \"\\e55f\";\n}\n\n.fa-plug-circle-xmark {\n --fa: \"\\e560\";\n}\n\n.fa-ranking-star {\n --fa: \"\\e561\";\n}\n\n.fa-road-barrier {\n --fa: \"\\e562\";\n}\n\n.fa-road-bridge {\n --fa: \"\\e563\";\n}\n\n.fa-road-circle-check {\n --fa: \"\\e564\";\n}\n\n.fa-road-circle-exclamation {\n --fa: \"\\e565\";\n}\n\n.fa-road-circle-xmark {\n --fa: \"\\e566\";\n}\n\n.fa-road-lock {\n --fa: \"\\e567\";\n}\n\n.fa-road-spikes {\n --fa: \"\\e568\";\n}\n\n.fa-rug {\n --fa: \"\\e569\";\n}\n\n.fa-sack-xmark {\n --fa: \"\\e56a\";\n}\n\n.fa-school-circle-check {\n --fa: \"\\e56b\";\n}\n\n.fa-school-circle-exclamation {\n --fa: \"\\e56c\";\n}\n\n.fa-school-circle-xmark {\n --fa: \"\\e56d\";\n}\n\n.fa-school-flag {\n --fa: \"\\e56e\";\n}\n\n.fa-school-lock {\n --fa: \"\\e56f\";\n}\n\n.fa-sheet-plastic {\n --fa: \"\\e571\";\n}\n\n.fa-shield-cat {\n --fa: \"\\e572\";\n}\n\n.fa-shield-dog {\n --fa: \"\\e573\";\n}\n\n.fa-shield-heart {\n --fa: \"\\e574\";\n}\n\n.fa-square-nfi {\n --fa: \"\\e576\";\n}\n\n.fa-square-person-confined {\n --fa: \"\\e577\";\n}\n\n.fa-square-virus {\n --fa: \"\\e578\";\n}\n\n.fa-staff-snake {\n --fa: \"\\e579\";\n}\n\n.fa-rod-asclepius {\n --fa: \"\\e579\";\n}\n\n.fa-rod-snake {\n --fa: \"\\e579\";\n}\n\n.fa-staff-aesculapius {\n --fa: \"\\e579\";\n}\n\n.fa-sun-plant-wilt {\n --fa: \"\\e57a\";\n}\n\n.fa-tarp {\n --fa: \"\\e57b\";\n}\n\n.fa-tarp-droplet {\n --fa: \"\\e57c\";\n}\n\n.fa-tent {\n --fa: \"\\e57d\";\n}\n\n.fa-tent-arrow-down-to-line {\n --fa: \"\\e57e\";\n}\n\n.fa-tent-arrow-left-right {\n --fa: \"\\e57f\";\n}\n\n.fa-tent-arrow-turn-left {\n --fa: \"\\e580\";\n}\n\n.fa-tent-arrows-down {\n --fa: \"\\e581\";\n}\n\n.fa-tents {\n --fa: \"\\e582\";\n}\n\n.fa-toilet-portable {\n --fa: \"\\e583\";\n}\n\n.fa-toilets-portable {\n --fa: \"\\e584\";\n}\n\n.fa-tower-cell {\n --fa: \"\\e585\";\n}\n\n.fa-tower-observation {\n --fa: \"\\e586\";\n}\n\n.fa-tree-city {\n --fa: \"\\e587\";\n}\n\n.fa-trowel {\n --fa: \"\\e589\";\n}\n\n.fa-trowel-bricks {\n --fa: \"\\e58a\";\n}\n\n.fa-truck-arrow-right {\n --fa: \"\\e58b\";\n}\n\n.fa-truck-droplet {\n --fa: \"\\e58c\";\n}\n\n.fa-truck-field {\n --fa: \"\\e58d\";\n}\n\n.fa-truck-field-un {\n --fa: \"\\e58e\";\n}\n\n.fa-truck-plane {\n --fa: \"\\e58f\";\n}\n\n.fa-users-between-lines {\n --fa: \"\\e591\";\n}\n\n.fa-users-line {\n --fa: \"\\e592\";\n}\n\n.fa-users-rays {\n --fa: \"\\e593\";\n}\n\n.fa-users-rectangle {\n --fa: \"\\e594\";\n}\n\n.fa-users-viewfinder {\n --fa: \"\\e595\";\n}\n\n.fa-vial-circle-check {\n --fa: \"\\e596\";\n}\n\n.fa-vial-virus {\n --fa: \"\\e597\";\n}\n\n.fa-wheat-awn-circle-exclamation {\n --fa: \"\\e598\";\n}\n\n.fa-worm {\n --fa: \"\\e599\";\n}\n\n.fa-xmarks-lines {\n --fa: \"\\e59a\";\n}\n\n.fa-child-dress {\n --fa: \"\\e59c\";\n}\n\n.fa-child-reaching {\n --fa: \"\\e59d\";\n}\n\n.fa-file-circle-check {\n --fa: \"\\e5a0\";\n}\n\n.fa-file-circle-xmark {\n --fa: \"\\e5a1\";\n}\n\n.fa-person-through-window {\n --fa: \"\\e5a9\";\n}\n\n.fa-plant-wilt {\n --fa: \"\\e5aa\";\n}\n\n.fa-stapler {\n --fa: \"\\e5af\";\n}\n\n.fa-train-tram {\n --fa: \"\\e5b4\";\n}\n\n.fa-table-cells-column-lock {\n --fa: \"\\e678\";\n}\n\n.fa-table-cells-row-lock {\n --fa: \"\\e67a\";\n}\n\n.fa-web-awesome {\n --fa: \"\\e682\";\n}\n\n.fa-thumbtack-slash {\n --fa: \"\\e68f\";\n}\n\n.fa-thumb-tack-slash {\n --fa: \"\\e68f\";\n}\n\n.fa-table-cells-row-unlock {\n --fa: \"\\e691\";\n}\n\n.fa-chart-diagram {\n --fa: \"\\e695\";\n}\n\n.fa-comment-nodes {\n --fa: \"\\e696\";\n}\n\n.fa-file-fragment {\n --fa: \"\\e697\";\n}\n\n.fa-file-half-dashed {\n --fa: \"\\e698\";\n}\n\n.fa-hexagon-nodes {\n --fa: \"\\e699\";\n}\n\n.fa-hexagon-nodes-bolt {\n --fa: \"\\e69a\";\n}\n\n.fa-square-binary {\n --fa: \"\\e69b\";\n}\n\n.fa-pentagon {\n --fa: \"\\e790\";\n}\n\n.fa-non-binary {\n --fa: \"\\e807\";\n}\n\n.fa-spiral {\n --fa: \"\\e80a\";\n}\n\n.fa-picture-in-picture {\n --fa: \"\\e80b\";\n}\n\n.fa-mobile-vibrate {\n --fa: \"\\e816\";\n}\n\n.fa-single-quote-left {\n --fa: \"\\e81b\";\n}\n\n.fa-single-quote-right {\n --fa: \"\\e81c\";\n}\n\n.fa-bus-side {\n --fa: \"\\e81d\";\n}\n\n.fa-septagon {\n --fa: \"\\e820\";\n}\n\n.fa-heptagon {\n --fa: \"\\e820\";\n}\n\n.fa-aquarius {\n --fa: \"\\e845\";\n}\n\n.fa-aries {\n --fa: \"\\e846\";\n}\n\n.fa-cancer {\n --fa: \"\\e847\";\n}\n\n.fa-capricorn {\n --fa: \"\\e848\";\n}\n\n.fa-gemini {\n --fa: \"\\e849\";\n}\n\n.fa-leo {\n --fa: \"\\e84a\";\n}\n\n.fa-libra {\n --fa: \"\\e84b\";\n}\n\n.fa-pisces {\n --fa: \"\\e84c\";\n}\n\n.fa-sagittarius {\n --fa: \"\\e84d\";\n}\n\n.fa-scorpio {\n --fa: \"\\e84e\";\n}\n\n.fa-taurus {\n --fa: \"\\e84f\";\n}\n\n.fa-virgo {\n --fa: \"\\e850\";\n}\n\n.fa-martini-glass-empty {\n --fa: \"\\f000\";\n}\n\n.fa-glass-martini {\n --fa: \"\\f000\";\n}\n\n.fa-music {\n --fa: \"\\f001\";\n}\n\n.fa-magnifying-glass {\n --fa: \"\\f002\";\n}\n\n.fa-search {\n --fa: \"\\f002\";\n}\n\n.fa-heart {\n --fa: \"\\f004\";\n}\n\n.fa-star {\n --fa: \"\\f005\";\n}\n\n.fa-user {\n --fa: \"\\f007\";\n}\n\n.fa-user-alt {\n --fa: \"\\f007\";\n}\n\n.fa-user-large {\n --fa: \"\\f007\";\n}\n\n.fa-film {\n --fa: \"\\f008\";\n}\n\n.fa-film-alt {\n --fa: \"\\f008\";\n}\n\n.fa-film-simple {\n --fa: \"\\f008\";\n}\n\n.fa-table-cells-large {\n --fa: \"\\f009\";\n}\n\n.fa-th-large {\n --fa: \"\\f009\";\n}\n\n.fa-table-cells {\n --fa: \"\\f00a\";\n}\n\n.fa-th {\n --fa: \"\\f00a\";\n}\n\n.fa-table-list {\n --fa: \"\\f00b\";\n}\n\n.fa-th-list {\n --fa: \"\\f00b\";\n}\n\n.fa-check {\n --fa: \"\\f00c\";\n}\n\n.fa-xmark {\n --fa: \"\\f00d\";\n}\n\n.fa-close {\n --fa: \"\\f00d\";\n}\n\n.fa-multiply {\n --fa: \"\\f00d\";\n}\n\n.fa-remove {\n --fa: \"\\f00d\";\n}\n\n.fa-times {\n --fa: \"\\f00d\";\n}\n\n.fa-magnifying-glass-plus {\n --fa: \"\\f00e\";\n}\n\n.fa-search-plus {\n --fa: \"\\f00e\";\n}\n\n.fa-magnifying-glass-minus {\n --fa: \"\\f010\";\n}\n\n.fa-search-minus {\n --fa: \"\\f010\";\n}\n\n.fa-power-off {\n --fa: \"\\f011\";\n}\n\n.fa-signal {\n --fa: \"\\f012\";\n}\n\n.fa-signal-5 {\n --fa: \"\\f012\";\n}\n\n.fa-signal-perfect {\n --fa: \"\\f012\";\n}\n\n.fa-gear {\n --fa: \"\\f013\";\n}\n\n.fa-cog {\n --fa: \"\\f013\";\n}\n\n.fa-house {\n --fa: \"\\f015\";\n}\n\n.fa-home {\n --fa: \"\\f015\";\n}\n\n.fa-home-alt {\n --fa: \"\\f015\";\n}\n\n.fa-home-lg-alt {\n --fa: \"\\f015\";\n}\n\n.fa-clock {\n --fa: \"\\f017\";\n}\n\n.fa-clock-four {\n --fa: \"\\f017\";\n}\n\n.fa-road {\n --fa: \"\\f018\";\n}\n\n.fa-download {\n --fa: \"\\f019\";\n}\n\n.fa-inbox {\n --fa: \"\\f01c\";\n}\n\n.fa-arrow-rotate-right {\n --fa: \"\\f01e\";\n}\n\n.fa-arrow-right-rotate {\n --fa: \"\\f01e\";\n}\n\n.fa-arrow-rotate-forward {\n --fa: \"\\f01e\";\n}\n\n.fa-redo {\n --fa: \"\\f01e\";\n}\n\n.fa-arrows-rotate {\n --fa: \"\\f021\";\n}\n\n.fa-refresh {\n --fa: \"\\f021\";\n}\n\n.fa-sync {\n --fa: \"\\f021\";\n}\n\n.fa-rectangle-list {\n --fa: \"\\f022\";\n}\n\n.fa-list-alt {\n --fa: \"\\f022\";\n}\n\n.fa-lock {\n --fa: \"\\f023\";\n}\n\n.fa-flag {\n --fa: \"\\f024\";\n}\n\n.fa-headphones {\n --fa: \"\\f025\";\n}\n\n.fa-headphones-alt {\n --fa: \"\\f025\";\n}\n\n.fa-headphones-simple {\n --fa: \"\\f025\";\n}\n\n.fa-volume-off {\n --fa: \"\\f026\";\n}\n\n.fa-volume-low {\n --fa: \"\\f027\";\n}\n\n.fa-volume-down {\n --fa: \"\\f027\";\n}\n\n.fa-volume-high {\n --fa: \"\\f028\";\n}\n\n.fa-volume-up {\n --fa: \"\\f028\";\n}\n\n.fa-qrcode {\n --fa: \"\\f029\";\n}\n\n.fa-barcode {\n --fa: \"\\f02a\";\n}\n\n.fa-tag {\n --fa: \"\\f02b\";\n}\n\n.fa-tags {\n --fa: \"\\f02c\";\n}\n\n.fa-book {\n --fa: \"\\f02d\";\n}\n\n.fa-bookmark {\n --fa: \"\\f02e\";\n}\n\n.fa-print {\n --fa: \"\\f02f\";\n}\n\n.fa-camera {\n --fa: \"\\f030\";\n}\n\n.fa-camera-alt {\n --fa: \"\\f030\";\n}\n\n.fa-font {\n --fa: \"\\f031\";\n}\n\n.fa-bold {\n --fa: \"\\f032\";\n}\n\n.fa-italic {\n --fa: \"\\f033\";\n}\n\n.fa-text-height {\n --fa: \"\\f034\";\n}\n\n.fa-text-width {\n --fa: \"\\f035\";\n}\n\n.fa-align-left {\n --fa: \"\\f036\";\n}\n\n.fa-align-center {\n --fa: \"\\f037\";\n}\n\n.fa-align-right {\n --fa: \"\\f038\";\n}\n\n.fa-align-justify {\n --fa: \"\\f039\";\n}\n\n.fa-list {\n --fa: \"\\f03a\";\n}\n\n.fa-list-squares {\n --fa: \"\\f03a\";\n}\n\n.fa-outdent {\n --fa: \"\\f03b\";\n}\n\n.fa-dedent {\n --fa: \"\\f03b\";\n}\n\n.fa-indent {\n --fa: \"\\f03c\";\n}\n\n.fa-video {\n --fa: \"\\f03d\";\n}\n\n.fa-video-camera {\n --fa: \"\\f03d\";\n}\n\n.fa-image {\n --fa: \"\\f03e\";\n}\n\n.fa-location-pin {\n --fa: \"\\f041\";\n}\n\n.fa-map-marker {\n --fa: \"\\f041\";\n}\n\n.fa-circle-half-stroke {\n --fa: \"\\f042\";\n}\n\n.fa-adjust {\n --fa: \"\\f042\";\n}\n\n.fa-droplet {\n --fa: \"\\f043\";\n}\n\n.fa-tint {\n --fa: \"\\f043\";\n}\n\n.fa-pen-to-square {\n --fa: \"\\f044\";\n}\n\n.fa-edit {\n --fa: \"\\f044\";\n}\n\n.fa-arrows-up-down-left-right {\n --fa: \"\\f047\";\n}\n\n.fa-arrows {\n --fa: \"\\f047\";\n}\n\n.fa-backward-step {\n --fa: \"\\f048\";\n}\n\n.fa-step-backward {\n --fa: \"\\f048\";\n}\n\n.fa-backward-fast {\n --fa: \"\\f049\";\n}\n\n.fa-fast-backward {\n --fa: \"\\f049\";\n}\n\n.fa-backward {\n --fa: \"\\f04a\";\n}\n\n.fa-play {\n --fa: \"\\f04b\";\n}\n\n.fa-pause {\n --fa: \"\\f04c\";\n}\n\n.fa-stop {\n --fa: \"\\f04d\";\n}\n\n.fa-forward {\n --fa: \"\\f04e\";\n}\n\n.fa-forward-fast {\n --fa: \"\\f050\";\n}\n\n.fa-fast-forward {\n --fa: \"\\f050\";\n}\n\n.fa-forward-step {\n --fa: \"\\f051\";\n}\n\n.fa-step-forward {\n --fa: \"\\f051\";\n}\n\n.fa-eject {\n --fa: \"\\f052\";\n}\n\n.fa-chevron-left {\n --fa: \"\\f053\";\n}\n\n.fa-chevron-right {\n --fa: \"\\f054\";\n}\n\n.fa-circle-plus {\n --fa: \"\\f055\";\n}\n\n.fa-plus-circle {\n --fa: \"\\f055\";\n}\n\n.fa-circle-minus {\n --fa: \"\\f056\";\n}\n\n.fa-minus-circle {\n --fa: \"\\f056\";\n}\n\n.fa-circle-xmark {\n --fa: \"\\f057\";\n}\n\n.fa-times-circle {\n --fa: \"\\f057\";\n}\n\n.fa-xmark-circle {\n --fa: \"\\f057\";\n}\n\n.fa-circle-check {\n --fa: \"\\f058\";\n}\n\n.fa-check-circle {\n --fa: \"\\f058\";\n}\n\n.fa-circle-question {\n --fa: \"\\f059\";\n}\n\n.fa-question-circle {\n --fa: \"\\f059\";\n}\n\n.fa-circle-info {\n --fa: \"\\f05a\";\n}\n\n.fa-info-circle {\n --fa: \"\\f05a\";\n}\n\n.fa-crosshairs {\n --fa: \"\\f05b\";\n}\n\n.fa-ban {\n --fa: \"\\f05e\";\n}\n\n.fa-cancel {\n --fa: \"\\f05e\";\n}\n\n.fa-arrow-left {\n --fa: \"\\f060\";\n}\n\n.fa-arrow-right {\n --fa: \"\\f061\";\n}\n\n.fa-arrow-up {\n --fa: \"\\f062\";\n}\n\n.fa-arrow-down {\n --fa: \"\\f063\";\n}\n\n.fa-share {\n --fa: \"\\f064\";\n}\n\n.fa-mail-forward {\n --fa: \"\\f064\";\n}\n\n.fa-expand {\n --fa: \"\\f065\";\n}\n\n.fa-compress {\n --fa: \"\\f066\";\n}\n\n.fa-minus {\n --fa: \"\\f068\";\n}\n\n.fa-subtract {\n --fa: \"\\f068\";\n}\n\n.fa-circle-exclamation {\n --fa: \"\\f06a\";\n}\n\n.fa-exclamation-circle {\n --fa: \"\\f06a\";\n}\n\n.fa-gift {\n --fa: \"\\f06b\";\n}\n\n.fa-leaf {\n --fa: \"\\f06c\";\n}\n\n.fa-fire {\n --fa: \"\\f06d\";\n}\n\n.fa-eye {\n --fa: \"\\f06e\";\n}\n\n.fa-eye-slash {\n --fa: \"\\f070\";\n}\n\n.fa-triangle-exclamation {\n --fa: \"\\f071\";\n}\n\n.fa-exclamation-triangle {\n --fa: \"\\f071\";\n}\n\n.fa-warning {\n --fa: \"\\f071\";\n}\n\n.fa-plane {\n --fa: \"\\f072\";\n}\n\n.fa-calendar-days {\n --fa: \"\\f073\";\n}\n\n.fa-calendar-alt {\n --fa: \"\\f073\";\n}\n\n.fa-shuffle {\n --fa: \"\\f074\";\n}\n\n.fa-random {\n --fa: \"\\f074\";\n}\n\n.fa-comment {\n --fa: \"\\f075\";\n}\n\n.fa-magnet {\n --fa: \"\\f076\";\n}\n\n.fa-chevron-up {\n --fa: \"\\f077\";\n}\n\n.fa-chevron-down {\n --fa: \"\\f078\";\n}\n\n.fa-retweet {\n --fa: \"\\f079\";\n}\n\n.fa-cart-shopping {\n --fa: \"\\f07a\";\n}\n\n.fa-shopping-cart {\n --fa: \"\\f07a\";\n}\n\n.fa-folder {\n --fa: \"\\f07b\";\n}\n\n.fa-folder-blank {\n --fa: \"\\f07b\";\n}\n\n.fa-folder-open {\n --fa: \"\\f07c\";\n}\n\n.fa-arrows-up-down {\n --fa: \"\\f07d\";\n}\n\n.fa-arrows-v {\n --fa: \"\\f07d\";\n}\n\n.fa-arrows-left-right {\n --fa: \"\\f07e\";\n}\n\n.fa-arrows-h {\n --fa: \"\\f07e\";\n}\n\n.fa-chart-bar {\n --fa: \"\\f080\";\n}\n\n.fa-bar-chart {\n --fa: \"\\f080\";\n}\n\n.fa-camera-retro {\n --fa: \"\\f083\";\n}\n\n.fa-key {\n --fa: \"\\f084\";\n}\n\n.fa-gears {\n --fa: \"\\f085\";\n}\n\n.fa-cogs {\n --fa: \"\\f085\";\n}\n\n.fa-comments {\n --fa: \"\\f086\";\n}\n\n.fa-star-half {\n --fa: \"\\f089\";\n}\n\n.fa-arrow-right-from-bracket {\n --fa: \"\\f08b\";\n}\n\n.fa-sign-out {\n --fa: \"\\f08b\";\n}\n\n.fa-thumbtack {\n --fa: \"\\f08d\";\n}\n\n.fa-thumb-tack {\n --fa: \"\\f08d\";\n}\n\n.fa-arrow-up-right-from-square {\n --fa: \"\\f08e\";\n}\n\n.fa-external-link {\n --fa: \"\\f08e\";\n}\n\n.fa-arrow-right-to-bracket {\n --fa: \"\\f090\";\n}\n\n.fa-sign-in {\n --fa: \"\\f090\";\n}\n\n.fa-trophy {\n --fa: \"\\f091\";\n}\n\n.fa-upload {\n --fa: \"\\f093\";\n}\n\n.fa-lemon {\n --fa: \"\\f094\";\n}\n\n.fa-phone {\n --fa: \"\\f095\";\n}\n\n.fa-square-phone {\n --fa: \"\\f098\";\n}\n\n.fa-phone-square {\n --fa: \"\\f098\";\n}\n\n.fa-unlock {\n --fa: \"\\f09c\";\n}\n\n.fa-credit-card {\n --fa: \"\\f09d\";\n}\n\n.fa-credit-card-alt {\n --fa: \"\\f09d\";\n}\n\n.fa-rss {\n --fa: \"\\f09e\";\n}\n\n.fa-feed {\n --fa: \"\\f09e\";\n}\n\n.fa-hard-drive {\n --fa: \"\\f0a0\";\n}\n\n.fa-hdd {\n --fa: \"\\f0a0\";\n}\n\n.fa-bullhorn {\n --fa: \"\\f0a1\";\n}\n\n.fa-certificate {\n --fa: \"\\f0a3\";\n}\n\n.fa-hand-point-right {\n --fa: \"\\f0a4\";\n}\n\n.fa-hand-point-left {\n --fa: \"\\f0a5\";\n}\n\n.fa-hand-point-up {\n --fa: \"\\f0a6\";\n}\n\n.fa-hand-point-down {\n --fa: \"\\f0a7\";\n}\n\n.fa-circle-arrow-left {\n --fa: \"\\f0a8\";\n}\n\n.fa-arrow-circle-left {\n --fa: \"\\f0a8\";\n}\n\n.fa-circle-arrow-right {\n --fa: \"\\f0a9\";\n}\n\n.fa-arrow-circle-right {\n --fa: \"\\f0a9\";\n}\n\n.fa-circle-arrow-up {\n --fa: \"\\f0aa\";\n}\n\n.fa-arrow-circle-up {\n --fa: \"\\f0aa\";\n}\n\n.fa-circle-arrow-down {\n --fa: \"\\f0ab\";\n}\n\n.fa-arrow-circle-down {\n --fa: \"\\f0ab\";\n}\n\n.fa-globe {\n --fa: \"\\f0ac\";\n}\n\n.fa-wrench {\n --fa: \"\\f0ad\";\n}\n\n.fa-list-check {\n --fa: \"\\f0ae\";\n}\n\n.fa-tasks {\n --fa: \"\\f0ae\";\n}\n\n.fa-filter {\n --fa: \"\\f0b0\";\n}\n\n.fa-briefcase {\n --fa: \"\\f0b1\";\n}\n\n.fa-up-down-left-right {\n --fa: \"\\f0b2\";\n}\n\n.fa-arrows-alt {\n --fa: \"\\f0b2\";\n}\n\n.fa-users {\n --fa: \"\\f0c0\";\n}\n\n.fa-link {\n --fa: \"\\f0c1\";\n}\n\n.fa-chain {\n --fa: \"\\f0c1\";\n}\n\n.fa-cloud {\n --fa: \"\\f0c2\";\n}\n\n.fa-flask {\n --fa: \"\\f0c3\";\n}\n\n.fa-scissors {\n --fa: \"\\f0c4\";\n}\n\n.fa-cut {\n --fa: \"\\f0c4\";\n}\n\n.fa-copy {\n --fa: \"\\f0c5\";\n}\n\n.fa-paperclip {\n --fa: \"\\f0c6\";\n}\n\n.fa-floppy-disk {\n --fa: \"\\f0c7\";\n}\n\n.fa-save {\n --fa: \"\\f0c7\";\n}\n\n.fa-square {\n --fa: \"\\f0c8\";\n}\n\n.fa-bars {\n --fa: \"\\f0c9\";\n}\n\n.fa-navicon {\n --fa: \"\\f0c9\";\n}\n\n.fa-list-ul {\n --fa: \"\\f0ca\";\n}\n\n.fa-list-dots {\n --fa: \"\\f0ca\";\n}\n\n.fa-list-ol {\n --fa: \"\\f0cb\";\n}\n\n.fa-list-1-2 {\n --fa: \"\\f0cb\";\n}\n\n.fa-list-numeric {\n --fa: \"\\f0cb\";\n}\n\n.fa-strikethrough {\n --fa: \"\\f0cc\";\n}\n\n.fa-underline {\n --fa: \"\\f0cd\";\n}\n\n.fa-table {\n --fa: \"\\f0ce\";\n}\n\n.fa-wand-magic {\n --fa: \"\\f0d0\";\n}\n\n.fa-magic {\n --fa: \"\\f0d0\";\n}\n\n.fa-truck {\n --fa: \"\\f0d1\";\n}\n\n.fa-money-bill {\n --fa: \"\\f0d6\";\n}\n\n.fa-caret-down {\n --fa: \"\\f0d7\";\n}\n\n.fa-caret-up {\n --fa: \"\\f0d8\";\n}\n\n.fa-caret-left {\n --fa: \"\\f0d9\";\n}\n\n.fa-caret-right {\n --fa: \"\\f0da\";\n}\n\n.fa-table-columns {\n --fa: \"\\f0db\";\n}\n\n.fa-columns {\n --fa: \"\\f0db\";\n}\n\n.fa-sort {\n --fa: \"\\f0dc\";\n}\n\n.fa-unsorted {\n --fa: \"\\f0dc\";\n}\n\n.fa-sort-down {\n --fa: \"\\f0dd\";\n}\n\n.fa-sort-desc {\n --fa: \"\\f0dd\";\n}\n\n.fa-sort-up {\n --fa: \"\\f0de\";\n}\n\n.fa-sort-asc {\n --fa: \"\\f0de\";\n}\n\n.fa-envelope {\n --fa: \"\\f0e0\";\n}\n\n.fa-arrow-rotate-left {\n --fa: \"\\f0e2\";\n}\n\n.fa-arrow-left-rotate {\n --fa: \"\\f0e2\";\n}\n\n.fa-arrow-rotate-back {\n --fa: \"\\f0e2\";\n}\n\n.fa-arrow-rotate-backward {\n --fa: \"\\f0e2\";\n}\n\n.fa-undo {\n --fa: \"\\f0e2\";\n}\n\n.fa-gavel {\n --fa: \"\\f0e3\";\n}\n\n.fa-legal {\n --fa: \"\\f0e3\";\n}\n\n.fa-bolt {\n --fa: \"\\f0e7\";\n}\n\n.fa-zap {\n --fa: \"\\f0e7\";\n}\n\n.fa-sitemap {\n --fa: \"\\f0e8\";\n}\n\n.fa-umbrella {\n --fa: \"\\f0e9\";\n}\n\n.fa-paste {\n --fa: \"\\f0ea\";\n}\n\n.fa-file-clipboard {\n --fa: \"\\f0ea\";\n}\n\n.fa-lightbulb {\n --fa: \"\\f0eb\";\n}\n\n.fa-arrow-right-arrow-left {\n --fa: \"\\f0ec\";\n}\n\n.fa-exchange {\n --fa: \"\\f0ec\";\n}\n\n.fa-cloud-arrow-down {\n --fa: \"\\f0ed\";\n}\n\n.fa-cloud-download {\n --fa: \"\\f0ed\";\n}\n\n.fa-cloud-download-alt {\n --fa: \"\\f0ed\";\n}\n\n.fa-cloud-arrow-up {\n --fa: \"\\f0ee\";\n}\n\n.fa-cloud-upload {\n --fa: \"\\f0ee\";\n}\n\n.fa-cloud-upload-alt {\n --fa: \"\\f0ee\";\n}\n\n.fa-user-doctor {\n --fa: \"\\f0f0\";\n}\n\n.fa-user-md {\n --fa: \"\\f0f0\";\n}\n\n.fa-stethoscope {\n --fa: \"\\f0f1\";\n}\n\n.fa-suitcase {\n --fa: \"\\f0f2\";\n}\n\n.fa-bell {\n --fa: \"\\f0f3\";\n}\n\n.fa-mug-saucer {\n --fa: \"\\f0f4\";\n}\n\n.fa-coffee {\n --fa: \"\\f0f4\";\n}\n\n.fa-hospital {\n --fa: \"\\f0f8\";\n}\n\n.fa-hospital-alt {\n --fa: \"\\f0f8\";\n}\n\n.fa-hospital-wide {\n --fa: \"\\f0f8\";\n}\n\n.fa-truck-medical {\n --fa: \"\\f0f9\";\n}\n\n.fa-ambulance {\n --fa: \"\\f0f9\";\n}\n\n.fa-suitcase-medical {\n --fa: \"\\f0fa\";\n}\n\n.fa-medkit {\n --fa: \"\\f0fa\";\n}\n\n.fa-jet-fighter {\n --fa: \"\\f0fb\";\n}\n\n.fa-fighter-jet {\n --fa: \"\\f0fb\";\n}\n\n.fa-beer-mug-empty {\n --fa: \"\\f0fc\";\n}\n\n.fa-beer {\n --fa: \"\\f0fc\";\n}\n\n.fa-square-h {\n --fa: \"\\f0fd\";\n}\n\n.fa-h-square {\n --fa: \"\\f0fd\";\n}\n\n.fa-square-plus {\n --fa: \"\\f0fe\";\n}\n\n.fa-plus-square {\n --fa: \"\\f0fe\";\n}\n\n.fa-angles-left {\n --fa: \"\\f100\";\n}\n\n.fa-angle-double-left {\n --fa: \"\\f100\";\n}\n\n.fa-angles-right {\n --fa: \"\\f101\";\n}\n\n.fa-angle-double-right {\n --fa: \"\\f101\";\n}\n\n.fa-angles-up {\n --fa: \"\\f102\";\n}\n\n.fa-angle-double-up {\n --fa: \"\\f102\";\n}\n\n.fa-angles-down {\n --fa: \"\\f103\";\n}\n\n.fa-angle-double-down {\n --fa: \"\\f103\";\n}\n\n.fa-angle-left {\n --fa: \"\\f104\";\n}\n\n.fa-angle-right {\n --fa: \"\\f105\";\n}\n\n.fa-angle-up {\n --fa: \"\\f106\";\n}\n\n.fa-angle-down {\n --fa: \"\\f107\";\n}\n\n.fa-laptop {\n --fa: \"\\f109\";\n}\n\n.fa-tablet-button {\n --fa: \"\\f10a\";\n}\n\n.fa-mobile-button {\n --fa: \"\\f10b\";\n}\n\n.fa-quote-left {\n --fa: \"\\f10d\";\n}\n\n.fa-quote-left-alt {\n --fa: \"\\f10d\";\n}\n\n.fa-quote-right {\n --fa: \"\\f10e\";\n}\n\n.fa-quote-right-alt {\n --fa: \"\\f10e\";\n}\n\n.fa-spinner {\n --fa: \"\\f110\";\n}\n\n.fa-circle {\n --fa: \"\\f111\";\n}\n\n.fa-face-smile {\n --fa: \"\\f118\";\n}\n\n.fa-smile {\n --fa: \"\\f118\";\n}\n\n.fa-face-frown {\n --fa: \"\\f119\";\n}\n\n.fa-frown {\n --fa: \"\\f119\";\n}\n\n.fa-face-meh {\n --fa: \"\\f11a\";\n}\n\n.fa-meh {\n --fa: \"\\f11a\";\n}\n\n.fa-gamepad {\n --fa: \"\\f11b\";\n}\n\n.fa-keyboard {\n --fa: \"\\f11c\";\n}\n\n.fa-flag-checkered {\n --fa: \"\\f11e\";\n}\n\n.fa-terminal {\n --fa: \"\\f120\";\n}\n\n.fa-code {\n --fa: \"\\f121\";\n}\n\n.fa-reply-all {\n --fa: \"\\f122\";\n}\n\n.fa-mail-reply-all {\n --fa: \"\\f122\";\n}\n\n.fa-location-arrow {\n --fa: \"\\f124\";\n}\n\n.fa-crop {\n --fa: \"\\f125\";\n}\n\n.fa-code-branch {\n --fa: \"\\f126\";\n}\n\n.fa-link-slash {\n --fa: \"\\f127\";\n}\n\n.fa-chain-broken {\n --fa: \"\\f127\";\n}\n\n.fa-chain-slash {\n --fa: \"\\f127\";\n}\n\n.fa-unlink {\n --fa: \"\\f127\";\n}\n\n.fa-info {\n --fa: \"\\f129\";\n}\n\n.fa-superscript {\n --fa: \"\\f12b\";\n}\n\n.fa-subscript {\n --fa: \"\\f12c\";\n}\n\n.fa-eraser {\n --fa: \"\\f12d\";\n}\n\n.fa-puzzle-piece {\n --fa: \"\\f12e\";\n}\n\n.fa-microphone {\n --fa: \"\\f130\";\n}\n\n.fa-microphone-slash {\n --fa: \"\\f131\";\n}\n\n.fa-shield {\n --fa: \"\\f132\";\n}\n\n.fa-shield-blank {\n --fa: \"\\f132\";\n}\n\n.fa-calendar {\n --fa: \"\\f133\";\n}\n\n.fa-fire-extinguisher {\n --fa: \"\\f134\";\n}\n\n.fa-rocket {\n --fa: \"\\f135\";\n}\n\n.fa-circle-chevron-left {\n --fa: \"\\f137\";\n}\n\n.fa-chevron-circle-left {\n --fa: \"\\f137\";\n}\n\n.fa-circle-chevron-right {\n --fa: \"\\f138\";\n}\n\n.fa-chevron-circle-right {\n --fa: \"\\f138\";\n}\n\n.fa-circle-chevron-up {\n --fa: \"\\f139\";\n}\n\n.fa-chevron-circle-up {\n --fa: \"\\f139\";\n}\n\n.fa-circle-chevron-down {\n --fa: \"\\f13a\";\n}\n\n.fa-chevron-circle-down {\n --fa: \"\\f13a\";\n}\n\n.fa-anchor {\n --fa: \"\\f13d\";\n}\n\n.fa-unlock-keyhole {\n --fa: \"\\f13e\";\n}\n\n.fa-unlock-alt {\n --fa: \"\\f13e\";\n}\n\n.fa-bullseye {\n --fa: \"\\f140\";\n}\n\n.fa-ellipsis {\n --fa: \"\\f141\";\n}\n\n.fa-ellipsis-h {\n --fa: \"\\f141\";\n}\n\n.fa-ellipsis-vertical {\n --fa: \"\\f142\";\n}\n\n.fa-ellipsis-v {\n --fa: \"\\f142\";\n}\n\n.fa-square-rss {\n --fa: \"\\f143\";\n}\n\n.fa-rss-square {\n --fa: \"\\f143\";\n}\n\n.fa-circle-play {\n --fa: \"\\f144\";\n}\n\n.fa-play-circle {\n --fa: \"\\f144\";\n}\n\n.fa-ticket {\n --fa: \"\\f145\";\n}\n\n.fa-square-minus {\n --fa: \"\\f146\";\n}\n\n.fa-minus-square {\n --fa: \"\\f146\";\n}\n\n.fa-arrow-turn-up {\n --fa: \"\\f148\";\n}\n\n.fa-level-up {\n --fa: \"\\f148\";\n}\n\n.fa-arrow-turn-down {\n --fa: \"\\f149\";\n}\n\n.fa-level-down {\n --fa: \"\\f149\";\n}\n\n.fa-square-check {\n --fa: \"\\f14a\";\n}\n\n.fa-check-square {\n --fa: \"\\f14a\";\n}\n\n.fa-square-pen {\n --fa: \"\\f14b\";\n}\n\n.fa-pen-square {\n --fa: \"\\f14b\";\n}\n\n.fa-pencil-square {\n --fa: \"\\f14b\";\n}\n\n.fa-square-arrow-up-right {\n --fa: \"\\f14c\";\n}\n\n.fa-external-link-square {\n --fa: \"\\f14c\";\n}\n\n.fa-share-from-square {\n --fa: \"\\f14d\";\n}\n\n.fa-share-square {\n --fa: \"\\f14d\";\n}\n\n.fa-compass {\n --fa: \"\\f14e\";\n}\n\n.fa-square-caret-down {\n --fa: \"\\f150\";\n}\n\n.fa-caret-square-down {\n --fa: \"\\f150\";\n}\n\n.fa-square-caret-up {\n --fa: \"\\f151\";\n}\n\n.fa-caret-square-up {\n --fa: \"\\f151\";\n}\n\n.fa-square-caret-right {\n --fa: \"\\f152\";\n}\n\n.fa-caret-square-right {\n --fa: \"\\f152\";\n}\n\n.fa-euro-sign {\n --fa: \"\\f153\";\n}\n\n.fa-eur {\n --fa: \"\\f153\";\n}\n\n.fa-euro {\n --fa: \"\\f153\";\n}\n\n.fa-sterling-sign {\n --fa: \"\\f154\";\n}\n\n.fa-gbp {\n --fa: \"\\f154\";\n}\n\n.fa-pound-sign {\n --fa: \"\\f154\";\n}\n\n.fa-rupee-sign {\n --fa: \"\\f156\";\n}\n\n.fa-rupee {\n --fa: \"\\f156\";\n}\n\n.fa-yen-sign {\n --fa: \"\\f157\";\n}\n\n.fa-cny {\n --fa: \"\\f157\";\n}\n\n.fa-jpy {\n --fa: \"\\f157\";\n}\n\n.fa-rmb {\n --fa: \"\\f157\";\n}\n\n.fa-yen {\n --fa: \"\\f157\";\n}\n\n.fa-ruble-sign {\n --fa: \"\\f158\";\n}\n\n.fa-rouble {\n --fa: \"\\f158\";\n}\n\n.fa-rub {\n --fa: \"\\f158\";\n}\n\n.fa-ruble {\n --fa: \"\\f158\";\n}\n\n.fa-won-sign {\n --fa: \"\\f159\";\n}\n\n.fa-krw {\n --fa: \"\\f159\";\n}\n\n.fa-won {\n --fa: \"\\f159\";\n}\n\n.fa-file {\n --fa: \"\\f15b\";\n}\n\n.fa-file-lines {\n --fa: \"\\f15c\";\n}\n\n.fa-file-alt {\n --fa: \"\\f15c\";\n}\n\n.fa-file-text {\n --fa: \"\\f15c\";\n}\n\n.fa-arrow-down-a-z {\n --fa: \"\\f15d\";\n}\n\n.fa-sort-alpha-asc {\n --fa: \"\\f15d\";\n}\n\n.fa-sort-alpha-down {\n --fa: \"\\f15d\";\n}\n\n.fa-arrow-up-a-z {\n --fa: \"\\f15e\";\n}\n\n.fa-sort-alpha-up {\n --fa: \"\\f15e\";\n}\n\n.fa-arrow-down-wide-short {\n --fa: \"\\f160\";\n}\n\n.fa-sort-amount-asc {\n --fa: \"\\f160\";\n}\n\n.fa-sort-amount-down {\n --fa: \"\\f160\";\n}\n\n.fa-arrow-up-wide-short {\n --fa: \"\\f161\";\n}\n\n.fa-sort-amount-up {\n --fa: \"\\f161\";\n}\n\n.fa-arrow-down-1-9 {\n --fa: \"\\f162\";\n}\n\n.fa-sort-numeric-asc {\n --fa: \"\\f162\";\n}\n\n.fa-sort-numeric-down {\n --fa: \"\\f162\";\n}\n\n.fa-arrow-up-1-9 {\n --fa: \"\\f163\";\n}\n\n.fa-sort-numeric-up {\n --fa: \"\\f163\";\n}\n\n.fa-thumbs-up {\n --fa: \"\\f164\";\n}\n\n.fa-thumbs-down {\n --fa: \"\\f165\";\n}\n\n.fa-arrow-down-long {\n --fa: \"\\f175\";\n}\n\n.fa-long-arrow-down {\n --fa: \"\\f175\";\n}\n\n.fa-arrow-up-long {\n --fa: \"\\f176\";\n}\n\n.fa-long-arrow-up {\n --fa: \"\\f176\";\n}\n\n.fa-arrow-left-long {\n --fa: \"\\f177\";\n}\n\n.fa-long-arrow-left {\n --fa: \"\\f177\";\n}\n\n.fa-arrow-right-long {\n --fa: \"\\f178\";\n}\n\n.fa-long-arrow-right {\n --fa: \"\\f178\";\n}\n\n.fa-person-dress {\n --fa: \"\\f182\";\n}\n\n.fa-female {\n --fa: \"\\f182\";\n}\n\n.fa-person {\n --fa: \"\\f183\";\n}\n\n.fa-male {\n --fa: \"\\f183\";\n}\n\n.fa-sun {\n --fa: \"\\f185\";\n}\n\n.fa-moon {\n --fa: \"\\f186\";\n}\n\n.fa-box-archive {\n --fa: \"\\f187\";\n}\n\n.fa-archive {\n --fa: \"\\f187\";\n}\n\n.fa-bug {\n --fa: \"\\f188\";\n}\n\n.fa-square-caret-left {\n --fa: \"\\f191\";\n}\n\n.fa-caret-square-left {\n --fa: \"\\f191\";\n}\n\n.fa-circle-dot {\n --fa: \"\\f192\";\n}\n\n.fa-dot-circle {\n --fa: \"\\f192\";\n}\n\n.fa-wheelchair {\n --fa: \"\\f193\";\n}\n\n.fa-lira-sign {\n --fa: \"\\f195\";\n}\n\n.fa-shuttle-space {\n --fa: \"\\f197\";\n}\n\n.fa-space-shuttle {\n --fa: \"\\f197\";\n}\n\n.fa-square-envelope {\n --fa: \"\\f199\";\n}\n\n.fa-envelope-square {\n --fa: \"\\f199\";\n}\n\n.fa-building-columns {\n --fa: \"\\f19c\";\n}\n\n.fa-bank {\n --fa: \"\\f19c\";\n}\n\n.fa-institution {\n --fa: \"\\f19c\";\n}\n\n.fa-museum {\n --fa: \"\\f19c\";\n}\n\n.fa-university {\n --fa: \"\\f19c\";\n}\n\n.fa-graduation-cap {\n --fa: \"\\f19d\";\n}\n\n.fa-mortar-board {\n --fa: \"\\f19d\";\n}\n\n.fa-language {\n --fa: \"\\f1ab\";\n}\n\n.fa-fax {\n --fa: \"\\f1ac\";\n}\n\n.fa-building {\n --fa: \"\\f1ad\";\n}\n\n.fa-child {\n --fa: \"\\f1ae\";\n}\n\n.fa-paw {\n --fa: \"\\f1b0\";\n}\n\n.fa-cube {\n --fa: \"\\f1b2\";\n}\n\n.fa-cubes {\n --fa: \"\\f1b3\";\n}\n\n.fa-recycle {\n --fa: \"\\f1b8\";\n}\n\n.fa-car {\n --fa: \"\\f1b9\";\n}\n\n.fa-automobile {\n --fa: \"\\f1b9\";\n}\n\n.fa-taxi {\n --fa: \"\\f1ba\";\n}\n\n.fa-cab {\n --fa: \"\\f1ba\";\n}\n\n.fa-tree {\n --fa: \"\\f1bb\";\n}\n\n.fa-database {\n --fa: \"\\f1c0\";\n}\n\n.fa-file-pdf {\n --fa: \"\\f1c1\";\n}\n\n.fa-file-word {\n --fa: \"\\f1c2\";\n}\n\n.fa-file-excel {\n --fa: \"\\f1c3\";\n}\n\n.fa-file-powerpoint {\n --fa: \"\\f1c4\";\n}\n\n.fa-file-image {\n --fa: \"\\f1c5\";\n}\n\n.fa-file-zipper {\n --fa: \"\\f1c6\";\n}\n\n.fa-file-archive {\n --fa: \"\\f1c6\";\n}\n\n.fa-file-audio {\n --fa: \"\\f1c7\";\n}\n\n.fa-file-video {\n --fa: \"\\f1c8\";\n}\n\n.fa-file-code {\n --fa: \"\\f1c9\";\n}\n\n.fa-life-ring {\n --fa: \"\\f1cd\";\n}\n\n.fa-circle-notch {\n --fa: \"\\f1ce\";\n}\n\n.fa-paper-plane {\n --fa: \"\\f1d8\";\n}\n\n.fa-clock-rotate-left {\n --fa: \"\\f1da\";\n}\n\n.fa-history {\n --fa: \"\\f1da\";\n}\n\n.fa-heading {\n --fa: \"\\f1dc\";\n}\n\n.fa-header {\n --fa: \"\\f1dc\";\n}\n\n.fa-paragraph {\n --fa: \"\\f1dd\";\n}\n\n.fa-sliders {\n --fa: \"\\f1de\";\n}\n\n.fa-sliders-h {\n --fa: \"\\f1de\";\n}\n\n.fa-share-nodes {\n --fa: \"\\f1e0\";\n}\n\n.fa-share-alt {\n --fa: \"\\f1e0\";\n}\n\n.fa-square-share-nodes {\n --fa: \"\\f1e1\";\n}\n\n.fa-share-alt-square {\n --fa: \"\\f1e1\";\n}\n\n.fa-bomb {\n --fa: \"\\f1e2\";\n}\n\n.fa-futbol {\n --fa: \"\\f1e3\";\n}\n\n.fa-futbol-ball {\n --fa: \"\\f1e3\";\n}\n\n.fa-soccer-ball {\n --fa: \"\\f1e3\";\n}\n\n.fa-tty {\n --fa: \"\\f1e4\";\n}\n\n.fa-teletype {\n --fa: \"\\f1e4\";\n}\n\n.fa-binoculars {\n --fa: \"\\f1e5\";\n}\n\n.fa-plug {\n --fa: \"\\f1e6\";\n}\n\n.fa-newspaper {\n --fa: \"\\f1ea\";\n}\n\n.fa-wifi {\n --fa: \"\\f1eb\";\n}\n\n.fa-wifi-3 {\n --fa: \"\\f1eb\";\n}\n\n.fa-wifi-strong {\n --fa: \"\\f1eb\";\n}\n\n.fa-calculator {\n --fa: \"\\f1ec\";\n}\n\n.fa-bell-slash {\n --fa: \"\\f1f6\";\n}\n\n.fa-trash {\n --fa: \"\\f1f8\";\n}\n\n.fa-copyright {\n --fa: \"\\f1f9\";\n}\n\n.fa-eye-dropper {\n --fa: \"\\f1fb\";\n}\n\n.fa-eye-dropper-empty {\n --fa: \"\\f1fb\";\n}\n\n.fa-eyedropper {\n --fa: \"\\f1fb\";\n}\n\n.fa-paintbrush {\n --fa: \"\\f1fc\";\n}\n\n.fa-paint-brush {\n --fa: \"\\f1fc\";\n}\n\n.fa-cake-candles {\n --fa: \"\\f1fd\";\n}\n\n.fa-birthday-cake {\n --fa: \"\\f1fd\";\n}\n\n.fa-cake {\n --fa: \"\\f1fd\";\n}\n\n.fa-chart-area {\n --fa: \"\\f1fe\";\n}\n\n.fa-area-chart {\n --fa: \"\\f1fe\";\n}\n\n.fa-chart-pie {\n --fa: \"\\f200\";\n}\n\n.fa-pie-chart {\n --fa: \"\\f200\";\n}\n\n.fa-chart-line {\n --fa: \"\\f201\";\n}\n\n.fa-line-chart {\n --fa: \"\\f201\";\n}\n\n.fa-toggle-off {\n --fa: \"\\f204\";\n}\n\n.fa-toggle-on {\n --fa: \"\\f205\";\n}\n\n.fa-bicycle {\n --fa: \"\\f206\";\n}\n\n.fa-bus {\n --fa: \"\\f207\";\n}\n\n.fa-closed-captioning {\n --fa: \"\\f20a\";\n}\n\n.fa-shekel-sign {\n --fa: \"\\f20b\";\n}\n\n.fa-ils {\n --fa: \"\\f20b\";\n}\n\n.fa-shekel {\n --fa: \"\\f20b\";\n}\n\n.fa-sheqel {\n --fa: \"\\f20b\";\n}\n\n.fa-sheqel-sign {\n --fa: \"\\f20b\";\n}\n\n.fa-cart-plus {\n --fa: \"\\f217\";\n}\n\n.fa-cart-arrow-down {\n --fa: \"\\f218\";\n}\n\n.fa-diamond {\n --fa: \"\\f219\";\n}\n\n.fa-ship {\n --fa: \"\\f21a\";\n}\n\n.fa-user-secret {\n --fa: \"\\f21b\";\n}\n\n.fa-motorcycle {\n --fa: \"\\f21c\";\n}\n\n.fa-street-view {\n --fa: \"\\f21d\";\n}\n\n.fa-heart-pulse {\n --fa: \"\\f21e\";\n}\n\n.fa-heartbeat {\n --fa: \"\\f21e\";\n}\n\n.fa-venus {\n --fa: \"\\f221\";\n}\n\n.fa-mars {\n --fa: \"\\f222\";\n}\n\n.fa-mercury {\n --fa: \"\\f223\";\n}\n\n.fa-mars-and-venus {\n --fa: \"\\f224\";\n}\n\n.fa-transgender {\n --fa: \"\\f225\";\n}\n\n.fa-transgender-alt {\n --fa: \"\\f225\";\n}\n\n.fa-venus-double {\n --fa: \"\\f226\";\n}\n\n.fa-mars-double {\n --fa: \"\\f227\";\n}\n\n.fa-venus-mars {\n --fa: \"\\f228\";\n}\n\n.fa-mars-stroke {\n --fa: \"\\f229\";\n}\n\n.fa-mars-stroke-up {\n --fa: \"\\f22a\";\n}\n\n.fa-mars-stroke-v {\n --fa: \"\\f22a\";\n}\n\n.fa-mars-stroke-right {\n --fa: \"\\f22b\";\n}\n\n.fa-mars-stroke-h {\n --fa: \"\\f22b\";\n}\n\n.fa-neuter {\n --fa: \"\\f22c\";\n}\n\n.fa-genderless {\n --fa: \"\\f22d\";\n}\n\n.fa-server {\n --fa: \"\\f233\";\n}\n\n.fa-user-plus {\n --fa: \"\\f234\";\n}\n\n.fa-user-xmark {\n --fa: \"\\f235\";\n}\n\n.fa-user-times {\n --fa: \"\\f235\";\n}\n\n.fa-bed {\n --fa: \"\\f236\";\n}\n\n.fa-train {\n --fa: \"\\f238\";\n}\n\n.fa-train-subway {\n --fa: \"\\f239\";\n}\n\n.fa-subway {\n --fa: \"\\f239\";\n}\n\n.fa-battery-full {\n --fa: \"\\f240\";\n}\n\n.fa-battery {\n --fa: \"\\f240\";\n}\n\n.fa-battery-5 {\n --fa: \"\\f240\";\n}\n\n.fa-battery-three-quarters {\n --fa: \"\\f241\";\n}\n\n.fa-battery-4 {\n --fa: \"\\f241\";\n}\n\n.fa-battery-half {\n --fa: \"\\f242\";\n}\n\n.fa-battery-3 {\n --fa: \"\\f242\";\n}\n\n.fa-battery-quarter {\n --fa: \"\\f243\";\n}\n\n.fa-battery-2 {\n --fa: \"\\f243\";\n}\n\n.fa-battery-empty {\n --fa: \"\\f244\";\n}\n\n.fa-battery-0 {\n --fa: \"\\f244\";\n}\n\n.fa-arrow-pointer {\n --fa: \"\\f245\";\n}\n\n.fa-mouse-pointer {\n --fa: \"\\f245\";\n}\n\n.fa-i-cursor {\n --fa: \"\\f246\";\n}\n\n.fa-object-group {\n --fa: \"\\f247\";\n}\n\n.fa-object-ungroup {\n --fa: \"\\f248\";\n}\n\n.fa-note-sticky {\n --fa: \"\\f249\";\n}\n\n.fa-sticky-note {\n --fa: \"\\f249\";\n}\n\n.fa-clone {\n --fa: \"\\f24d\";\n}\n\n.fa-scale-balanced {\n --fa: \"\\f24e\";\n}\n\n.fa-balance-scale {\n --fa: \"\\f24e\";\n}\n\n.fa-hourglass-start {\n --fa: \"\\f251\";\n}\n\n.fa-hourglass-1 {\n --fa: \"\\f251\";\n}\n\n.fa-hourglass-half {\n --fa: \"\\f252\";\n}\n\n.fa-hourglass-2 {\n --fa: \"\\f252\";\n}\n\n.fa-hourglass-end {\n --fa: \"\\f253\";\n}\n\n.fa-hourglass-3 {\n --fa: \"\\f253\";\n}\n\n.fa-hourglass {\n --fa: \"\\f254\";\n}\n\n.fa-hourglass-empty {\n --fa: \"\\f254\";\n}\n\n.fa-hand-back-fist {\n --fa: \"\\f255\";\n}\n\n.fa-hand-rock {\n --fa: \"\\f255\";\n}\n\n.fa-hand {\n --fa: \"\\f256\";\n}\n\n.fa-hand-paper {\n --fa: \"\\f256\";\n}\n\n.fa-hand-scissors {\n --fa: \"\\f257\";\n}\n\n.fa-hand-lizard {\n --fa: \"\\f258\";\n}\n\n.fa-hand-spock {\n --fa: \"\\f259\";\n}\n\n.fa-hand-pointer {\n --fa: \"\\f25a\";\n}\n\n.fa-hand-peace {\n --fa: \"\\f25b\";\n}\n\n.fa-trademark {\n --fa: \"\\f25c\";\n}\n\n.fa-registered {\n --fa: \"\\f25d\";\n}\n\n.fa-tv {\n --fa: \"\\f26c\";\n}\n\n.fa-television {\n --fa: \"\\f26c\";\n}\n\n.fa-tv-alt {\n --fa: \"\\f26c\";\n}\n\n.fa-calendar-plus {\n --fa: \"\\f271\";\n}\n\n.fa-calendar-minus {\n --fa: \"\\f272\";\n}\n\n.fa-calendar-xmark {\n --fa: \"\\f273\";\n}\n\n.fa-calendar-times {\n --fa: \"\\f273\";\n}\n\n.fa-calendar-check {\n --fa: \"\\f274\";\n}\n\n.fa-industry {\n --fa: \"\\f275\";\n}\n\n.fa-map-pin {\n --fa: \"\\f276\";\n}\n\n.fa-signs-post {\n --fa: \"\\f277\";\n}\n\n.fa-map-signs {\n --fa: \"\\f277\";\n}\n\n.fa-map {\n --fa: \"\\f279\";\n}\n\n.fa-message {\n --fa: \"\\f27a\";\n}\n\n.fa-comment-alt {\n --fa: \"\\f27a\";\n}\n\n.fa-circle-pause {\n --fa: \"\\f28b\";\n}\n\n.fa-pause-circle {\n --fa: \"\\f28b\";\n}\n\n.fa-circle-stop {\n --fa: \"\\f28d\";\n}\n\n.fa-stop-circle {\n --fa: \"\\f28d\";\n}\n\n.fa-bag-shopping {\n --fa: \"\\f290\";\n}\n\n.fa-shopping-bag {\n --fa: \"\\f290\";\n}\n\n.fa-basket-shopping {\n --fa: \"\\f291\";\n}\n\n.fa-shopping-basket {\n --fa: \"\\f291\";\n}\n\n.fa-universal-access {\n --fa: \"\\f29a\";\n}\n\n.fa-person-walking-with-cane {\n --fa: \"\\f29d\";\n}\n\n.fa-blind {\n --fa: \"\\f29d\";\n}\n\n.fa-audio-description {\n --fa: \"\\f29e\";\n}\n\n.fa-phone-volume {\n --fa: \"\\f2a0\";\n}\n\n.fa-volume-control-phone {\n --fa: \"\\f2a0\";\n}\n\n.fa-braille {\n --fa: \"\\f2a1\";\n}\n\n.fa-ear-listen {\n --fa: \"\\f2a2\";\n}\n\n.fa-assistive-listening-systems {\n --fa: \"\\f2a2\";\n}\n\n.fa-hands-asl-interpreting {\n --fa: \"\\f2a3\";\n}\n\n.fa-american-sign-language-interpreting {\n --fa: \"\\f2a3\";\n}\n\n.fa-asl-interpreting {\n --fa: \"\\f2a3\";\n}\n\n.fa-hands-american-sign-language-interpreting {\n --fa: \"\\f2a3\";\n}\n\n.fa-ear-deaf {\n --fa: \"\\f2a4\";\n}\n\n.fa-deaf {\n --fa: \"\\f2a4\";\n}\n\n.fa-deafness {\n --fa: \"\\f2a4\";\n}\n\n.fa-hard-of-hearing {\n --fa: \"\\f2a4\";\n}\n\n.fa-hands {\n --fa: \"\\f2a7\";\n}\n\n.fa-sign-language {\n --fa: \"\\f2a7\";\n}\n\n.fa-signing {\n --fa: \"\\f2a7\";\n}\n\n.fa-eye-low-vision {\n --fa: \"\\f2a8\";\n}\n\n.fa-low-vision {\n --fa: \"\\f2a8\";\n}\n\n.fa-font-awesome {\n --fa: \"\\f2b4\";\n}\n\n.fa-font-awesome-flag {\n --fa: \"\\f2b4\";\n}\n\n.fa-font-awesome-logo-full {\n --fa: \"\\f2b4\";\n}\n\n.fa-handshake {\n --fa: \"\\f2b5\";\n}\n\n.fa-handshake-alt {\n --fa: \"\\f2b5\";\n}\n\n.fa-handshake-simple {\n --fa: \"\\f2b5\";\n}\n\n.fa-envelope-open {\n --fa: \"\\f2b6\";\n}\n\n.fa-address-book {\n --fa: \"\\f2b9\";\n}\n\n.fa-contact-book {\n --fa: \"\\f2b9\";\n}\n\n.fa-address-card {\n --fa: \"\\f2bb\";\n}\n\n.fa-contact-card {\n --fa: \"\\f2bb\";\n}\n\n.fa-vcard {\n --fa: \"\\f2bb\";\n}\n\n.fa-circle-user {\n --fa: \"\\f2bd\";\n}\n\n.fa-user-circle {\n --fa: \"\\f2bd\";\n}\n\n.fa-id-badge {\n --fa: \"\\f2c1\";\n}\n\n.fa-id-card {\n --fa: \"\\f2c2\";\n}\n\n.fa-drivers-license {\n --fa: \"\\f2c2\";\n}\n\n.fa-temperature-full {\n --fa: \"\\f2c7\";\n}\n\n.fa-temperature-4 {\n --fa: \"\\f2c7\";\n}\n\n.fa-thermometer-4 {\n --fa: \"\\f2c7\";\n}\n\n.fa-thermometer-full {\n --fa: \"\\f2c7\";\n}\n\n.fa-temperature-three-quarters {\n --fa: \"\\f2c8\";\n}\n\n.fa-temperature-3 {\n --fa: \"\\f2c8\";\n}\n\n.fa-thermometer-3 {\n --fa: \"\\f2c8\";\n}\n\n.fa-thermometer-three-quarters {\n --fa: \"\\f2c8\";\n}\n\n.fa-temperature-half {\n --fa: \"\\f2c9\";\n}\n\n.fa-temperature-2 {\n --fa: \"\\f2c9\";\n}\n\n.fa-thermometer-2 {\n --fa: \"\\f2c9\";\n}\n\n.fa-thermometer-half {\n --fa: \"\\f2c9\";\n}\n\n.fa-temperature-quarter {\n --fa: \"\\f2ca\";\n}\n\n.fa-temperature-1 {\n --fa: \"\\f2ca\";\n}\n\n.fa-thermometer-1 {\n --fa: \"\\f2ca\";\n}\n\n.fa-thermometer-quarter {\n --fa: \"\\f2ca\";\n}\n\n.fa-temperature-empty {\n --fa: \"\\f2cb\";\n}\n\n.fa-temperature-0 {\n --fa: \"\\f2cb\";\n}\n\n.fa-thermometer-0 {\n --fa: \"\\f2cb\";\n}\n\n.fa-thermometer-empty {\n --fa: \"\\f2cb\";\n}\n\n.fa-shower {\n --fa: \"\\f2cc\";\n}\n\n.fa-bath {\n --fa: \"\\f2cd\";\n}\n\n.fa-bathtub {\n --fa: \"\\f2cd\";\n}\n\n.fa-podcast {\n --fa: \"\\f2ce\";\n}\n\n.fa-window-maximize {\n --fa: \"\\f2d0\";\n}\n\n.fa-window-minimize {\n --fa: \"\\f2d1\";\n}\n\n.fa-window-restore {\n --fa: \"\\f2d2\";\n}\n\n.fa-square-xmark {\n --fa: \"\\f2d3\";\n}\n\n.fa-times-square {\n --fa: \"\\f2d3\";\n}\n\n.fa-xmark-square {\n --fa: \"\\f2d3\";\n}\n\n.fa-microchip {\n --fa: \"\\f2db\";\n}\n\n.fa-snowflake {\n --fa: \"\\f2dc\";\n}\n\n.fa-spoon {\n --fa: \"\\f2e5\";\n}\n\n.fa-utensil-spoon {\n --fa: \"\\f2e5\";\n}\n\n.fa-utensils {\n --fa: \"\\f2e7\";\n}\n\n.fa-cutlery {\n --fa: \"\\f2e7\";\n}\n\n.fa-rotate-left {\n --fa: \"\\f2ea\";\n}\n\n.fa-rotate-back {\n --fa: \"\\f2ea\";\n}\n\n.fa-rotate-backward {\n --fa: \"\\f2ea\";\n}\n\n.fa-undo-alt {\n --fa: \"\\f2ea\";\n}\n\n.fa-trash-can {\n --fa: \"\\f2ed\";\n}\n\n.fa-trash-alt {\n --fa: \"\\f2ed\";\n}\n\n.fa-rotate {\n --fa: \"\\f2f1\";\n}\n\n.fa-sync-alt {\n --fa: \"\\f2f1\";\n}\n\n.fa-stopwatch {\n --fa: \"\\f2f2\";\n}\n\n.fa-right-from-bracket {\n --fa: \"\\f2f5\";\n}\n\n.fa-sign-out-alt {\n --fa: \"\\f2f5\";\n}\n\n.fa-right-to-bracket {\n --fa: \"\\f2f6\";\n}\n\n.fa-sign-in-alt {\n --fa: \"\\f2f6\";\n}\n\n.fa-rotate-right {\n --fa: \"\\f2f9\";\n}\n\n.fa-redo-alt {\n --fa: \"\\f2f9\";\n}\n\n.fa-rotate-forward {\n --fa: \"\\f2f9\";\n}\n\n.fa-poo {\n --fa: \"\\f2fe\";\n}\n\n.fa-images {\n --fa: \"\\f302\";\n}\n\n.fa-pencil {\n --fa: \"\\f303\";\n}\n\n.fa-pencil-alt {\n --fa: \"\\f303\";\n}\n\n.fa-pen {\n --fa: \"\\f304\";\n}\n\n.fa-pen-clip {\n --fa: \"\\f305\";\n}\n\n.fa-pen-alt {\n --fa: \"\\f305\";\n}\n\n.fa-octagon {\n --fa: \"\\f306\";\n}\n\n.fa-down-long {\n --fa: \"\\f309\";\n}\n\n.fa-long-arrow-alt-down {\n --fa: \"\\f309\";\n}\n\n.fa-left-long {\n --fa: \"\\f30a\";\n}\n\n.fa-long-arrow-alt-left {\n --fa: \"\\f30a\";\n}\n\n.fa-right-long {\n --fa: \"\\f30b\";\n}\n\n.fa-long-arrow-alt-right {\n --fa: \"\\f30b\";\n}\n\n.fa-up-long {\n --fa: \"\\f30c\";\n}\n\n.fa-long-arrow-alt-up {\n --fa: \"\\f30c\";\n}\n\n.fa-hexagon {\n --fa: \"\\f312\";\n}\n\n.fa-file-pen {\n --fa: \"\\f31c\";\n}\n\n.fa-file-edit {\n --fa: \"\\f31c\";\n}\n\n.fa-maximize {\n --fa: \"\\f31e\";\n}\n\n.fa-expand-arrows-alt {\n --fa: \"\\f31e\";\n}\n\n.fa-clipboard {\n --fa: \"\\f328\";\n}\n\n.fa-left-right {\n --fa: \"\\f337\";\n}\n\n.fa-arrows-alt-h {\n --fa: \"\\f337\";\n}\n\n.fa-up-down {\n --fa: \"\\f338\";\n}\n\n.fa-arrows-alt-v {\n --fa: \"\\f338\";\n}\n\n.fa-alarm-clock {\n --fa: \"\\f34e\";\n}\n\n.fa-circle-down {\n --fa: \"\\f358\";\n}\n\n.fa-arrow-alt-circle-down {\n --fa: \"\\f358\";\n}\n\n.fa-circle-left {\n --fa: \"\\f359\";\n}\n\n.fa-arrow-alt-circle-left {\n --fa: \"\\f359\";\n}\n\n.fa-circle-right {\n --fa: \"\\f35a\";\n}\n\n.fa-arrow-alt-circle-right {\n --fa: \"\\f35a\";\n}\n\n.fa-circle-up {\n --fa: \"\\f35b\";\n}\n\n.fa-arrow-alt-circle-up {\n --fa: \"\\f35b\";\n}\n\n.fa-up-right-from-square {\n --fa: \"\\f35d\";\n}\n\n.fa-external-link-alt {\n --fa: \"\\f35d\";\n}\n\n.fa-square-up-right {\n --fa: \"\\f360\";\n}\n\n.fa-external-link-square-alt {\n --fa: \"\\f360\";\n}\n\n.fa-right-left {\n --fa: \"\\f362\";\n}\n\n.fa-exchange-alt {\n --fa: \"\\f362\";\n}\n\n.fa-repeat {\n --fa: \"\\f363\";\n}\n\n.fa-code-commit {\n --fa: \"\\f386\";\n}\n\n.fa-code-merge {\n --fa: \"\\f387\";\n}\n\n.fa-desktop {\n --fa: \"\\f390\";\n}\n\n.fa-desktop-alt {\n --fa: \"\\f390\";\n}\n\n.fa-gem {\n --fa: \"\\f3a5\";\n}\n\n.fa-turn-down {\n --fa: \"\\f3be\";\n}\n\n.fa-level-down-alt {\n --fa: \"\\f3be\";\n}\n\n.fa-turn-up {\n --fa: \"\\f3bf\";\n}\n\n.fa-level-up-alt {\n --fa: \"\\f3bf\";\n}\n\n.fa-lock-open {\n --fa: \"\\f3c1\";\n}\n\n.fa-location-dot {\n --fa: \"\\f3c5\";\n}\n\n.fa-map-marker-alt {\n --fa: \"\\f3c5\";\n}\n\n.fa-microphone-lines {\n --fa: \"\\f3c9\";\n}\n\n.fa-microphone-alt {\n --fa: \"\\f3c9\";\n}\n\n.fa-mobile-screen-button {\n --fa: \"\\f3cd\";\n}\n\n.fa-mobile-alt {\n --fa: \"\\f3cd\";\n}\n\n.fa-mobile {\n --fa: \"\\f3ce\";\n}\n\n.fa-mobile-android {\n --fa: \"\\f3ce\";\n}\n\n.fa-mobile-phone {\n --fa: \"\\f3ce\";\n}\n\n.fa-mobile-screen {\n --fa: \"\\f3cf\";\n}\n\n.fa-mobile-android-alt {\n --fa: \"\\f3cf\";\n}\n\n.fa-money-bill-1 {\n --fa: \"\\f3d1\";\n}\n\n.fa-money-bill-alt {\n --fa: \"\\f3d1\";\n}\n\n.fa-phone-slash {\n --fa: \"\\f3dd\";\n}\n\n.fa-image-portrait {\n --fa: \"\\f3e0\";\n}\n\n.fa-portrait {\n --fa: \"\\f3e0\";\n}\n\n.fa-reply {\n --fa: \"\\f3e5\";\n}\n\n.fa-mail-reply {\n --fa: \"\\f3e5\";\n}\n\n.fa-shield-halved {\n --fa: \"\\f3ed\";\n}\n\n.fa-shield-alt {\n --fa: \"\\f3ed\";\n}\n\n.fa-tablet-screen-button {\n --fa: \"\\f3fa\";\n}\n\n.fa-tablet-alt {\n --fa: \"\\f3fa\";\n}\n\n.fa-tablet {\n --fa: \"\\f3fb\";\n}\n\n.fa-tablet-android {\n --fa: \"\\f3fb\";\n}\n\n.fa-ticket-simple {\n --fa: \"\\f3ff\";\n}\n\n.fa-ticket-alt {\n --fa: \"\\f3ff\";\n}\n\n.fa-rectangle-xmark {\n --fa: \"\\f410\";\n}\n\n.fa-rectangle-times {\n --fa: \"\\f410\";\n}\n\n.fa-times-rectangle {\n --fa: \"\\f410\";\n}\n\n.fa-window-close {\n --fa: \"\\f410\";\n}\n\n.fa-down-left-and-up-right-to-center {\n --fa: \"\\f422\";\n}\n\n.fa-compress-alt {\n --fa: \"\\f422\";\n}\n\n.fa-up-right-and-down-left-from-center {\n --fa: \"\\f424\";\n}\n\n.fa-expand-alt {\n --fa: \"\\f424\";\n}\n\n.fa-baseball-bat-ball {\n --fa: \"\\f432\";\n}\n\n.fa-baseball {\n --fa: \"\\f433\";\n}\n\n.fa-baseball-ball {\n --fa: \"\\f433\";\n}\n\n.fa-basketball {\n --fa: \"\\f434\";\n}\n\n.fa-basketball-ball {\n --fa: \"\\f434\";\n}\n\n.fa-bowling-ball {\n --fa: \"\\f436\";\n}\n\n.fa-chess {\n --fa: \"\\f439\";\n}\n\n.fa-chess-bishop {\n --fa: \"\\f43a\";\n}\n\n.fa-chess-board {\n --fa: \"\\f43c\";\n}\n\n.fa-chess-king {\n --fa: \"\\f43f\";\n}\n\n.fa-chess-knight {\n --fa: \"\\f441\";\n}\n\n.fa-chess-pawn {\n --fa: \"\\f443\";\n}\n\n.fa-chess-queen {\n --fa: \"\\f445\";\n}\n\n.fa-chess-rook {\n --fa: \"\\f447\";\n}\n\n.fa-dumbbell {\n --fa: \"\\f44b\";\n}\n\n.fa-football {\n --fa: \"\\f44e\";\n}\n\n.fa-football-ball {\n --fa: \"\\f44e\";\n}\n\n.fa-golf-ball-tee {\n --fa: \"\\f450\";\n}\n\n.fa-golf-ball {\n --fa: \"\\f450\";\n}\n\n.fa-hockey-puck {\n --fa: \"\\f453\";\n}\n\n.fa-broom-ball {\n --fa: \"\\f458\";\n}\n\n.fa-quidditch {\n --fa: \"\\f458\";\n}\n\n.fa-quidditch-broom-ball {\n --fa: \"\\f458\";\n}\n\n.fa-square-full {\n --fa: \"\\f45c\";\n}\n\n.fa-table-tennis-paddle-ball {\n --fa: \"\\f45d\";\n}\n\n.fa-ping-pong-paddle-ball {\n --fa: \"\\f45d\";\n}\n\n.fa-table-tennis {\n --fa: \"\\f45d\";\n}\n\n.fa-volleyball {\n --fa: \"\\f45f\";\n}\n\n.fa-volleyball-ball {\n --fa: \"\\f45f\";\n}\n\n.fa-hand-dots {\n --fa: \"\\f461\";\n}\n\n.fa-allergies {\n --fa: \"\\f461\";\n}\n\n.fa-bandage {\n --fa: \"\\f462\";\n}\n\n.fa-band-aid {\n --fa: \"\\f462\";\n}\n\n.fa-box {\n --fa: \"\\f466\";\n}\n\n.fa-boxes-stacked {\n --fa: \"\\f468\";\n}\n\n.fa-boxes {\n --fa: \"\\f468\";\n}\n\n.fa-boxes-alt {\n --fa: \"\\f468\";\n}\n\n.fa-briefcase-medical {\n --fa: \"\\f469\";\n}\n\n.fa-fire-flame-simple {\n --fa: \"\\f46a\";\n}\n\n.fa-burn {\n --fa: \"\\f46a\";\n}\n\n.fa-capsules {\n --fa: \"\\f46b\";\n}\n\n.fa-clipboard-check {\n --fa: \"\\f46c\";\n}\n\n.fa-clipboard-list {\n --fa: \"\\f46d\";\n}\n\n.fa-person-dots-from-line {\n --fa: \"\\f470\";\n}\n\n.fa-diagnoses {\n --fa: \"\\f470\";\n}\n\n.fa-dna {\n --fa: \"\\f471\";\n}\n\n.fa-dolly {\n --fa: \"\\f472\";\n}\n\n.fa-dolly-box {\n --fa: \"\\f472\";\n}\n\n.fa-cart-flatbed {\n --fa: \"\\f474\";\n}\n\n.fa-dolly-flatbed {\n --fa: \"\\f474\";\n}\n\n.fa-file-medical {\n --fa: \"\\f477\";\n}\n\n.fa-file-waveform {\n --fa: \"\\f478\";\n}\n\n.fa-file-medical-alt {\n --fa: \"\\f478\";\n}\n\n.fa-kit-medical {\n --fa: \"\\f479\";\n}\n\n.fa-first-aid {\n --fa: \"\\f479\";\n}\n\n.fa-circle-h {\n --fa: \"\\f47e\";\n}\n\n.fa-hospital-symbol {\n --fa: \"\\f47e\";\n}\n\n.fa-id-card-clip {\n --fa: \"\\f47f\";\n}\n\n.fa-id-card-alt {\n --fa: \"\\f47f\";\n}\n\n.fa-notes-medical {\n --fa: \"\\f481\";\n}\n\n.fa-pallet {\n --fa: \"\\f482\";\n}\n\n.fa-pills {\n --fa: \"\\f484\";\n}\n\n.fa-prescription-bottle {\n --fa: \"\\f485\";\n}\n\n.fa-prescription-bottle-medical {\n --fa: \"\\f486\";\n}\n\n.fa-prescription-bottle-alt {\n --fa: \"\\f486\";\n}\n\n.fa-bed-pulse {\n --fa: \"\\f487\";\n}\n\n.fa-procedures {\n --fa: \"\\f487\";\n}\n\n.fa-truck-fast {\n --fa: \"\\f48b\";\n}\n\n.fa-shipping-fast {\n --fa: \"\\f48b\";\n}\n\n.fa-smoking {\n --fa: \"\\f48d\";\n}\n\n.fa-syringe {\n --fa: \"\\f48e\";\n}\n\n.fa-tablets {\n --fa: \"\\f490\";\n}\n\n.fa-thermometer {\n --fa: \"\\f491\";\n}\n\n.fa-vial {\n --fa: \"\\f492\";\n}\n\n.fa-vials {\n --fa: \"\\f493\";\n}\n\n.fa-warehouse {\n --fa: \"\\f494\";\n}\n\n.fa-weight-scale {\n --fa: \"\\f496\";\n}\n\n.fa-weight {\n --fa: \"\\f496\";\n}\n\n.fa-x-ray {\n --fa: \"\\f497\";\n}\n\n.fa-box-open {\n --fa: \"\\f49e\";\n}\n\n.fa-comment-dots {\n --fa: \"\\f4ad\";\n}\n\n.fa-commenting {\n --fa: \"\\f4ad\";\n}\n\n.fa-comment-slash {\n --fa: \"\\f4b3\";\n}\n\n.fa-couch {\n --fa: \"\\f4b8\";\n}\n\n.fa-circle-dollar-to-slot {\n --fa: \"\\f4b9\";\n}\n\n.fa-donate {\n --fa: \"\\f4b9\";\n}\n\n.fa-dove {\n --fa: \"\\f4ba\";\n}\n\n.fa-hand-holding {\n --fa: \"\\f4bd\";\n}\n\n.fa-hand-holding-heart {\n --fa: \"\\f4be\";\n}\n\n.fa-hand-holding-dollar {\n --fa: \"\\f4c0\";\n}\n\n.fa-hand-holding-usd {\n --fa: \"\\f4c0\";\n}\n\n.fa-hand-holding-droplet {\n --fa: \"\\f4c1\";\n}\n\n.fa-hand-holding-water {\n --fa: \"\\f4c1\";\n}\n\n.fa-hands-holding {\n --fa: \"\\f4c2\";\n}\n\n.fa-handshake-angle {\n --fa: \"\\f4c4\";\n}\n\n.fa-hands-helping {\n --fa: \"\\f4c4\";\n}\n\n.fa-parachute-box {\n --fa: \"\\f4cd\";\n}\n\n.fa-people-carry-box {\n --fa: \"\\f4ce\";\n}\n\n.fa-people-carry {\n --fa: \"\\f4ce\";\n}\n\n.fa-piggy-bank {\n --fa: \"\\f4d3\";\n}\n\n.fa-ribbon {\n --fa: \"\\f4d6\";\n}\n\n.fa-route {\n --fa: \"\\f4d7\";\n}\n\n.fa-seedling {\n --fa: \"\\f4d8\";\n}\n\n.fa-sprout {\n --fa: \"\\f4d8\";\n}\n\n.fa-sign-hanging {\n --fa: \"\\f4d9\";\n}\n\n.fa-sign {\n --fa: \"\\f4d9\";\n}\n\n.fa-face-smile-wink {\n --fa: \"\\f4da\";\n}\n\n.fa-smile-wink {\n --fa: \"\\f4da\";\n}\n\n.fa-tape {\n --fa: \"\\f4db\";\n}\n\n.fa-truck-ramp-box {\n --fa: \"\\f4de\";\n}\n\n.fa-truck-loading {\n --fa: \"\\f4de\";\n}\n\n.fa-truck-moving {\n --fa: \"\\f4df\";\n}\n\n.fa-video-slash {\n --fa: \"\\f4e2\";\n}\n\n.fa-wine-glass {\n --fa: \"\\f4e3\";\n}\n\n.fa-user-astronaut {\n --fa: \"\\f4fb\";\n}\n\n.fa-user-check {\n --fa: \"\\f4fc\";\n}\n\n.fa-user-clock {\n --fa: \"\\f4fd\";\n}\n\n.fa-user-gear {\n --fa: \"\\f4fe\";\n}\n\n.fa-user-cog {\n --fa: \"\\f4fe\";\n}\n\n.fa-user-pen {\n --fa: \"\\f4ff\";\n}\n\n.fa-user-edit {\n --fa: \"\\f4ff\";\n}\n\n.fa-user-group {\n --fa: \"\\f500\";\n}\n\n.fa-user-friends {\n --fa: \"\\f500\";\n}\n\n.fa-user-graduate {\n --fa: \"\\f501\";\n}\n\n.fa-user-lock {\n --fa: \"\\f502\";\n}\n\n.fa-user-minus {\n --fa: \"\\f503\";\n}\n\n.fa-user-ninja {\n --fa: \"\\f504\";\n}\n\n.fa-user-shield {\n --fa: \"\\f505\";\n}\n\n.fa-user-slash {\n --fa: \"\\f506\";\n}\n\n.fa-user-alt-slash {\n --fa: \"\\f506\";\n}\n\n.fa-user-large-slash {\n --fa: \"\\f506\";\n}\n\n.fa-user-tag {\n --fa: \"\\f507\";\n}\n\n.fa-user-tie {\n --fa: \"\\f508\";\n}\n\n.fa-users-gear {\n --fa: \"\\f509\";\n}\n\n.fa-users-cog {\n --fa: \"\\f509\";\n}\n\n.fa-scale-unbalanced {\n --fa: \"\\f515\";\n}\n\n.fa-balance-scale-left {\n --fa: \"\\f515\";\n}\n\n.fa-scale-unbalanced-flip {\n --fa: \"\\f516\";\n}\n\n.fa-balance-scale-right {\n --fa: \"\\f516\";\n}\n\n.fa-blender {\n --fa: \"\\f517\";\n}\n\n.fa-book-open {\n --fa: \"\\f518\";\n}\n\n.fa-tower-broadcast {\n --fa: \"\\f519\";\n}\n\n.fa-broadcast-tower {\n --fa: \"\\f519\";\n}\n\n.fa-broom {\n --fa: \"\\f51a\";\n}\n\n.fa-chalkboard {\n --fa: \"\\f51b\";\n}\n\n.fa-blackboard {\n --fa: \"\\f51b\";\n}\n\n.fa-chalkboard-user {\n --fa: \"\\f51c\";\n}\n\n.fa-chalkboard-teacher {\n --fa: \"\\f51c\";\n}\n\n.fa-church {\n --fa: \"\\f51d\";\n}\n\n.fa-coins {\n --fa: \"\\f51e\";\n}\n\n.fa-compact-disc {\n --fa: \"\\f51f\";\n}\n\n.fa-crow {\n --fa: \"\\f520\";\n}\n\n.fa-crown {\n --fa: \"\\f521\";\n}\n\n.fa-dice {\n --fa: \"\\f522\";\n}\n\n.fa-dice-five {\n --fa: \"\\f523\";\n}\n\n.fa-dice-four {\n --fa: \"\\f524\";\n}\n\n.fa-dice-one {\n --fa: \"\\f525\";\n}\n\n.fa-dice-six {\n --fa: \"\\f526\";\n}\n\n.fa-dice-three {\n --fa: \"\\f527\";\n}\n\n.fa-dice-two {\n --fa: \"\\f528\";\n}\n\n.fa-divide {\n --fa: \"\\f529\";\n}\n\n.fa-door-closed {\n --fa: \"\\f52a\";\n}\n\n.fa-door-open {\n --fa: \"\\f52b\";\n}\n\n.fa-feather {\n --fa: \"\\f52d\";\n}\n\n.fa-frog {\n --fa: \"\\f52e\";\n}\n\n.fa-gas-pump {\n --fa: \"\\f52f\";\n}\n\n.fa-glasses {\n --fa: \"\\f530\";\n}\n\n.fa-greater-than-equal {\n --fa: \"\\f532\";\n}\n\n.fa-helicopter {\n --fa: \"\\f533\";\n}\n\n.fa-infinity {\n --fa: \"\\f534\";\n}\n\n.fa-kiwi-bird {\n --fa: \"\\f535\";\n}\n\n.fa-less-than-equal {\n --fa: \"\\f537\";\n}\n\n.fa-memory {\n --fa: \"\\f538\";\n}\n\n.fa-microphone-lines-slash {\n --fa: \"\\f539\";\n}\n\n.fa-microphone-alt-slash {\n --fa: \"\\f539\";\n}\n\n.fa-money-bill-wave {\n --fa: \"\\f53a\";\n}\n\n.fa-money-bill-1-wave {\n --fa: \"\\f53b\";\n}\n\n.fa-money-bill-wave-alt {\n --fa: \"\\f53b\";\n}\n\n.fa-money-check {\n --fa: \"\\f53c\";\n}\n\n.fa-money-check-dollar {\n --fa: \"\\f53d\";\n}\n\n.fa-money-check-alt {\n --fa: \"\\f53d\";\n}\n\n.fa-not-equal {\n --fa: \"\\f53e\";\n}\n\n.fa-palette {\n --fa: \"\\f53f\";\n}\n\n.fa-square-parking {\n --fa: \"\\f540\";\n}\n\n.fa-parking {\n --fa: \"\\f540\";\n}\n\n.fa-diagram-project {\n --fa: \"\\f542\";\n}\n\n.fa-project-diagram {\n --fa: \"\\f542\";\n}\n\n.fa-receipt {\n --fa: \"\\f543\";\n}\n\n.fa-robot {\n --fa: \"\\f544\";\n}\n\n.fa-ruler {\n --fa: \"\\f545\";\n}\n\n.fa-ruler-combined {\n --fa: \"\\f546\";\n}\n\n.fa-ruler-horizontal {\n --fa: \"\\f547\";\n}\n\n.fa-ruler-vertical {\n --fa: \"\\f548\";\n}\n\n.fa-school {\n --fa: \"\\f549\";\n}\n\n.fa-screwdriver {\n --fa: \"\\f54a\";\n}\n\n.fa-shoe-prints {\n --fa: \"\\f54b\";\n}\n\n.fa-skull {\n --fa: \"\\f54c\";\n}\n\n.fa-ban-smoking {\n --fa: \"\\f54d\";\n}\n\n.fa-smoking-ban {\n --fa: \"\\f54d\";\n}\n\n.fa-store {\n --fa: \"\\f54e\";\n}\n\n.fa-shop {\n --fa: \"\\f54f\";\n}\n\n.fa-store-alt {\n --fa: \"\\f54f\";\n}\n\n.fa-bars-staggered {\n --fa: \"\\f550\";\n}\n\n.fa-reorder {\n --fa: \"\\f550\";\n}\n\n.fa-stream {\n --fa: \"\\f550\";\n}\n\n.fa-stroopwafel {\n --fa: \"\\f551\";\n}\n\n.fa-toolbox {\n --fa: \"\\f552\";\n}\n\n.fa-shirt {\n --fa: \"\\f553\";\n}\n\n.fa-t-shirt {\n --fa: \"\\f553\";\n}\n\n.fa-tshirt {\n --fa: \"\\f553\";\n}\n\n.fa-person-walking {\n --fa: \"\\f554\";\n}\n\n.fa-walking {\n --fa: \"\\f554\";\n}\n\n.fa-wallet {\n --fa: \"\\f555\";\n}\n\n.fa-face-angry {\n --fa: \"\\f556\";\n}\n\n.fa-angry {\n --fa: \"\\f556\";\n}\n\n.fa-archway {\n --fa: \"\\f557\";\n}\n\n.fa-book-atlas {\n --fa: \"\\f558\";\n}\n\n.fa-atlas {\n --fa: \"\\f558\";\n}\n\n.fa-award {\n --fa: \"\\f559\";\n}\n\n.fa-delete-left {\n --fa: \"\\f55a\";\n}\n\n.fa-backspace {\n --fa: \"\\f55a\";\n}\n\n.fa-bezier-curve {\n --fa: \"\\f55b\";\n}\n\n.fa-bong {\n --fa: \"\\f55c\";\n}\n\n.fa-brush {\n --fa: \"\\f55d\";\n}\n\n.fa-bus-simple {\n --fa: \"\\f55e\";\n}\n\n.fa-bus-alt {\n --fa: \"\\f55e\";\n}\n\n.fa-cannabis {\n --fa: \"\\f55f\";\n}\n\n.fa-check-double {\n --fa: \"\\f560\";\n}\n\n.fa-martini-glass-citrus {\n --fa: \"\\f561\";\n}\n\n.fa-cocktail {\n --fa: \"\\f561\";\n}\n\n.fa-bell-concierge {\n --fa: \"\\f562\";\n}\n\n.fa-concierge-bell {\n --fa: \"\\f562\";\n}\n\n.fa-cookie {\n --fa: \"\\f563\";\n}\n\n.fa-cookie-bite {\n --fa: \"\\f564\";\n}\n\n.fa-crop-simple {\n --fa: \"\\f565\";\n}\n\n.fa-crop-alt {\n --fa: \"\\f565\";\n}\n\n.fa-tachograph-digital {\n --fa: \"\\f566\";\n}\n\n.fa-digital-tachograph {\n --fa: \"\\f566\";\n}\n\n.fa-face-dizzy {\n --fa: \"\\f567\";\n}\n\n.fa-dizzy {\n --fa: \"\\f567\";\n}\n\n.fa-compass-drafting {\n --fa: \"\\f568\";\n}\n\n.fa-drafting-compass {\n --fa: \"\\f568\";\n}\n\n.fa-drum {\n --fa: \"\\f569\";\n}\n\n.fa-drum-steelpan {\n --fa: \"\\f56a\";\n}\n\n.fa-feather-pointed {\n --fa: \"\\f56b\";\n}\n\n.fa-feather-alt {\n --fa: \"\\f56b\";\n}\n\n.fa-file-contract {\n --fa: \"\\f56c\";\n}\n\n.fa-file-arrow-down {\n --fa: \"\\f56d\";\n}\n\n.fa-file-download {\n --fa: \"\\f56d\";\n}\n\n.fa-file-export {\n --fa: \"\\f56e\";\n}\n\n.fa-arrow-right-from-file {\n --fa: \"\\f56e\";\n}\n\n.fa-file-import {\n --fa: \"\\f56f\";\n}\n\n.fa-arrow-right-to-file {\n --fa: \"\\f56f\";\n}\n\n.fa-file-invoice {\n --fa: \"\\f570\";\n}\n\n.fa-file-invoice-dollar {\n --fa: \"\\f571\";\n}\n\n.fa-file-prescription {\n --fa: \"\\f572\";\n}\n\n.fa-file-signature {\n --fa: \"\\f573\";\n}\n\n.fa-file-arrow-up {\n --fa: \"\\f574\";\n}\n\n.fa-file-upload {\n --fa: \"\\f574\";\n}\n\n.fa-fill {\n --fa: \"\\f575\";\n}\n\n.fa-fill-drip {\n --fa: \"\\f576\";\n}\n\n.fa-fingerprint {\n --fa: \"\\f577\";\n}\n\n.fa-fish {\n --fa: \"\\f578\";\n}\n\n.fa-face-flushed {\n --fa: \"\\f579\";\n}\n\n.fa-flushed {\n --fa: \"\\f579\";\n}\n\n.fa-face-frown-open {\n --fa: \"\\f57a\";\n}\n\n.fa-frown-open {\n --fa: \"\\f57a\";\n}\n\n.fa-martini-glass {\n --fa: \"\\f57b\";\n}\n\n.fa-glass-martini-alt {\n --fa: \"\\f57b\";\n}\n\n.fa-earth-africa {\n --fa: \"\\f57c\";\n}\n\n.fa-globe-africa {\n --fa: \"\\f57c\";\n}\n\n.fa-earth-americas {\n --fa: \"\\f57d\";\n}\n\n.fa-earth {\n --fa: \"\\f57d\";\n}\n\n.fa-earth-america {\n --fa: \"\\f57d\";\n}\n\n.fa-globe-americas {\n --fa: \"\\f57d\";\n}\n\n.fa-earth-asia {\n --fa: \"\\f57e\";\n}\n\n.fa-globe-asia {\n --fa: \"\\f57e\";\n}\n\n.fa-face-grimace {\n --fa: \"\\f57f\";\n}\n\n.fa-grimace {\n --fa: \"\\f57f\";\n}\n\n.fa-face-grin {\n --fa: \"\\f580\";\n}\n\n.fa-grin {\n --fa: \"\\f580\";\n}\n\n.fa-face-grin-wide {\n --fa: \"\\f581\";\n}\n\n.fa-grin-alt {\n --fa: \"\\f581\";\n}\n\n.fa-face-grin-beam {\n --fa: \"\\f582\";\n}\n\n.fa-grin-beam {\n --fa: \"\\f582\";\n}\n\n.fa-face-grin-beam-sweat {\n --fa: \"\\f583\";\n}\n\n.fa-grin-beam-sweat {\n --fa: \"\\f583\";\n}\n\n.fa-face-grin-hearts {\n --fa: \"\\f584\";\n}\n\n.fa-grin-hearts {\n --fa: \"\\f584\";\n}\n\n.fa-face-grin-squint {\n --fa: \"\\f585\";\n}\n\n.fa-grin-squint {\n --fa: \"\\f585\";\n}\n\n.fa-face-grin-squint-tears {\n --fa: \"\\f586\";\n}\n\n.fa-grin-squint-tears {\n --fa: \"\\f586\";\n}\n\n.fa-face-grin-stars {\n --fa: \"\\f587\";\n}\n\n.fa-grin-stars {\n --fa: \"\\f587\";\n}\n\n.fa-face-grin-tears {\n --fa: \"\\f588\";\n}\n\n.fa-grin-tears {\n --fa: \"\\f588\";\n}\n\n.fa-face-grin-tongue {\n --fa: \"\\f589\";\n}\n\n.fa-grin-tongue {\n --fa: \"\\f589\";\n}\n\n.fa-face-grin-tongue-squint {\n --fa: \"\\f58a\";\n}\n\n.fa-grin-tongue-squint {\n --fa: \"\\f58a\";\n}\n\n.fa-face-grin-tongue-wink {\n --fa: \"\\f58b\";\n}\n\n.fa-grin-tongue-wink {\n --fa: \"\\f58b\";\n}\n\n.fa-face-grin-wink {\n --fa: \"\\f58c\";\n}\n\n.fa-grin-wink {\n --fa: \"\\f58c\";\n}\n\n.fa-grip {\n --fa: \"\\f58d\";\n}\n\n.fa-grid-horizontal {\n --fa: \"\\f58d\";\n}\n\n.fa-grip-horizontal {\n --fa: \"\\f58d\";\n}\n\n.fa-grip-vertical {\n --fa: \"\\f58e\";\n}\n\n.fa-grid-vertical {\n --fa: \"\\f58e\";\n}\n\n.fa-headset {\n --fa: \"\\f590\";\n}\n\n.fa-highlighter {\n --fa: \"\\f591\";\n}\n\n.fa-hot-tub-person {\n --fa: \"\\f593\";\n}\n\n.fa-hot-tub {\n --fa: \"\\f593\";\n}\n\n.fa-hotel {\n --fa: \"\\f594\";\n}\n\n.fa-joint {\n --fa: \"\\f595\";\n}\n\n.fa-face-kiss {\n --fa: \"\\f596\";\n}\n\n.fa-kiss {\n --fa: \"\\f596\";\n}\n\n.fa-face-kiss-beam {\n --fa: \"\\f597\";\n}\n\n.fa-kiss-beam {\n --fa: \"\\f597\";\n}\n\n.fa-face-kiss-wink-heart {\n --fa: \"\\f598\";\n}\n\n.fa-kiss-wink-heart {\n --fa: \"\\f598\";\n}\n\n.fa-face-laugh {\n --fa: \"\\f599\";\n}\n\n.fa-laugh {\n --fa: \"\\f599\";\n}\n\n.fa-face-laugh-beam {\n --fa: \"\\f59a\";\n}\n\n.fa-laugh-beam {\n --fa: \"\\f59a\";\n}\n\n.fa-face-laugh-squint {\n --fa: \"\\f59b\";\n}\n\n.fa-laugh-squint {\n --fa: \"\\f59b\";\n}\n\n.fa-face-laugh-wink {\n --fa: \"\\f59c\";\n}\n\n.fa-laugh-wink {\n --fa: \"\\f59c\";\n}\n\n.fa-cart-flatbed-suitcase {\n --fa: \"\\f59d\";\n}\n\n.fa-luggage-cart {\n --fa: \"\\f59d\";\n}\n\n.fa-map-location {\n --fa: \"\\f59f\";\n}\n\n.fa-map-marked {\n --fa: \"\\f59f\";\n}\n\n.fa-map-location-dot {\n --fa: \"\\f5a0\";\n}\n\n.fa-map-marked-alt {\n --fa: \"\\f5a0\";\n}\n\n.fa-marker {\n --fa: \"\\f5a1\";\n}\n\n.fa-medal {\n --fa: \"\\f5a2\";\n}\n\n.fa-face-meh-blank {\n --fa: \"\\f5a4\";\n}\n\n.fa-meh-blank {\n --fa: \"\\f5a4\";\n}\n\n.fa-face-rolling-eyes {\n --fa: \"\\f5a5\";\n}\n\n.fa-meh-rolling-eyes {\n --fa: \"\\f5a5\";\n}\n\n.fa-monument {\n --fa: \"\\f5a6\";\n}\n\n.fa-mortar-pestle {\n --fa: \"\\f5a7\";\n}\n\n.fa-paint-roller {\n --fa: \"\\f5aa\";\n}\n\n.fa-passport {\n --fa: \"\\f5ab\";\n}\n\n.fa-pen-fancy {\n --fa: \"\\f5ac\";\n}\n\n.fa-pen-nib {\n --fa: \"\\f5ad\";\n}\n\n.fa-pen-ruler {\n --fa: \"\\f5ae\";\n}\n\n.fa-pencil-ruler {\n --fa: \"\\f5ae\";\n}\n\n.fa-plane-arrival {\n --fa: \"\\f5af\";\n}\n\n.fa-plane-departure {\n --fa: \"\\f5b0\";\n}\n\n.fa-prescription {\n --fa: \"\\f5b1\";\n}\n\n.fa-face-sad-cry {\n --fa: \"\\f5b3\";\n}\n\n.fa-sad-cry {\n --fa: \"\\f5b3\";\n}\n\n.fa-face-sad-tear {\n --fa: \"\\f5b4\";\n}\n\n.fa-sad-tear {\n --fa: \"\\f5b4\";\n}\n\n.fa-van-shuttle {\n --fa: \"\\f5b6\";\n}\n\n.fa-shuttle-van {\n --fa: \"\\f5b6\";\n}\n\n.fa-signature {\n --fa: \"\\f5b7\";\n}\n\n.fa-face-smile-beam {\n --fa: \"\\f5b8\";\n}\n\n.fa-smile-beam {\n --fa: \"\\f5b8\";\n}\n\n.fa-solar-panel {\n --fa: \"\\f5ba\";\n}\n\n.fa-spa {\n --fa: \"\\f5bb\";\n}\n\n.fa-splotch {\n --fa: \"\\f5bc\";\n}\n\n.fa-spray-can {\n --fa: \"\\f5bd\";\n}\n\n.fa-stamp {\n --fa: \"\\f5bf\";\n}\n\n.fa-star-half-stroke {\n --fa: \"\\f5c0\";\n}\n\n.fa-star-half-alt {\n --fa: \"\\f5c0\";\n}\n\n.fa-suitcase-rolling {\n --fa: \"\\f5c1\";\n}\n\n.fa-face-surprise {\n --fa: \"\\f5c2\";\n}\n\n.fa-surprise {\n --fa: \"\\f5c2\";\n}\n\n.fa-swatchbook {\n --fa: \"\\f5c3\";\n}\n\n.fa-person-swimming {\n --fa: \"\\f5c4\";\n}\n\n.fa-swimmer {\n --fa: \"\\f5c4\";\n}\n\n.fa-water-ladder {\n --fa: \"\\f5c5\";\n}\n\n.fa-ladder-water {\n --fa: \"\\f5c5\";\n}\n\n.fa-swimming-pool {\n --fa: \"\\f5c5\";\n}\n\n.fa-droplet-slash {\n --fa: \"\\f5c7\";\n}\n\n.fa-tint-slash {\n --fa: \"\\f5c7\";\n}\n\n.fa-face-tired {\n --fa: \"\\f5c8\";\n}\n\n.fa-tired {\n --fa: \"\\f5c8\";\n}\n\n.fa-tooth {\n --fa: \"\\f5c9\";\n}\n\n.fa-umbrella-beach {\n --fa: \"\\f5ca\";\n}\n\n.fa-weight-hanging {\n --fa: \"\\f5cd\";\n}\n\n.fa-wine-glass-empty {\n --fa: \"\\f5ce\";\n}\n\n.fa-wine-glass-alt {\n --fa: \"\\f5ce\";\n}\n\n.fa-spray-can-sparkles {\n --fa: \"\\f5d0\";\n}\n\n.fa-air-freshener {\n --fa: \"\\f5d0\";\n}\n\n.fa-apple-whole {\n --fa: \"\\f5d1\";\n}\n\n.fa-apple-alt {\n --fa: \"\\f5d1\";\n}\n\n.fa-atom {\n --fa: \"\\f5d2\";\n}\n\n.fa-bone {\n --fa: \"\\f5d7\";\n}\n\n.fa-book-open-reader {\n --fa: \"\\f5da\";\n}\n\n.fa-book-reader {\n --fa: \"\\f5da\";\n}\n\n.fa-brain {\n --fa: \"\\f5dc\";\n}\n\n.fa-car-rear {\n --fa: \"\\f5de\";\n}\n\n.fa-car-alt {\n --fa: \"\\f5de\";\n}\n\n.fa-car-battery {\n --fa: \"\\f5df\";\n}\n\n.fa-battery-car {\n --fa: \"\\f5df\";\n}\n\n.fa-car-burst {\n --fa: \"\\f5e1\";\n}\n\n.fa-car-crash {\n --fa: \"\\f5e1\";\n}\n\n.fa-car-side {\n --fa: \"\\f5e4\";\n}\n\n.fa-charging-station {\n --fa: \"\\f5e7\";\n}\n\n.fa-diamond-turn-right {\n --fa: \"\\f5eb\";\n}\n\n.fa-directions {\n --fa: \"\\f5eb\";\n}\n\n.fa-draw-polygon {\n --fa: \"\\f5ee\";\n}\n\n.fa-vector-polygon {\n --fa: \"\\f5ee\";\n}\n\n.fa-laptop-code {\n --fa: \"\\f5fc\";\n}\n\n.fa-layer-group {\n --fa: \"\\f5fd\";\n}\n\n.fa-location-crosshairs {\n --fa: \"\\f601\";\n}\n\n.fa-location {\n --fa: \"\\f601\";\n}\n\n.fa-lungs {\n --fa: \"\\f604\";\n}\n\n.fa-microscope {\n --fa: \"\\f610\";\n}\n\n.fa-oil-can {\n --fa: \"\\f613\";\n}\n\n.fa-poop {\n --fa: \"\\f619\";\n}\n\n.fa-shapes {\n --fa: \"\\f61f\";\n}\n\n.fa-triangle-circle-square {\n --fa: \"\\f61f\";\n}\n\n.fa-star-of-life {\n --fa: \"\\f621\";\n}\n\n.fa-gauge {\n --fa: \"\\f624\";\n}\n\n.fa-dashboard {\n --fa: \"\\f624\";\n}\n\n.fa-gauge-med {\n --fa: \"\\f624\";\n}\n\n.fa-tachometer-alt-average {\n --fa: \"\\f624\";\n}\n\n.fa-gauge-high {\n --fa: \"\\f625\";\n}\n\n.fa-tachometer-alt {\n --fa: \"\\f625\";\n}\n\n.fa-tachometer-alt-fast {\n --fa: \"\\f625\";\n}\n\n.fa-gauge-simple {\n --fa: \"\\f629\";\n}\n\n.fa-gauge-simple-med {\n --fa: \"\\f629\";\n}\n\n.fa-tachometer-average {\n --fa: \"\\f629\";\n}\n\n.fa-gauge-simple-high {\n --fa: \"\\f62a\";\n}\n\n.fa-tachometer {\n --fa: \"\\f62a\";\n}\n\n.fa-tachometer-fast {\n --fa: \"\\f62a\";\n}\n\n.fa-teeth {\n --fa: \"\\f62e\";\n}\n\n.fa-teeth-open {\n --fa: \"\\f62f\";\n}\n\n.fa-masks-theater {\n --fa: \"\\f630\";\n}\n\n.fa-theater-masks {\n --fa: \"\\f630\";\n}\n\n.fa-traffic-light {\n --fa: \"\\f637\";\n}\n\n.fa-truck-monster {\n --fa: \"\\f63b\";\n}\n\n.fa-truck-pickup {\n --fa: \"\\f63c\";\n}\n\n.fa-rectangle-ad {\n --fa: \"\\f641\";\n}\n\n.fa-ad {\n --fa: \"\\f641\";\n}\n\n.fa-ankh {\n --fa: \"\\f644\";\n}\n\n.fa-book-bible {\n --fa: \"\\f647\";\n}\n\n.fa-bible {\n --fa: \"\\f647\";\n}\n\n.fa-business-time {\n --fa: \"\\f64a\";\n}\n\n.fa-briefcase-clock {\n --fa: \"\\f64a\";\n}\n\n.fa-city {\n --fa: \"\\f64f\";\n}\n\n.fa-comment-dollar {\n --fa: \"\\f651\";\n}\n\n.fa-comments-dollar {\n --fa: \"\\f653\";\n}\n\n.fa-cross {\n --fa: \"\\f654\";\n}\n\n.fa-dharmachakra {\n --fa: \"\\f655\";\n}\n\n.fa-envelope-open-text {\n --fa: \"\\f658\";\n}\n\n.fa-folder-minus {\n --fa: \"\\f65d\";\n}\n\n.fa-folder-plus {\n --fa: \"\\f65e\";\n}\n\n.fa-filter-circle-dollar {\n --fa: \"\\f662\";\n}\n\n.fa-funnel-dollar {\n --fa: \"\\f662\";\n}\n\n.fa-gopuram {\n --fa: \"\\f664\";\n}\n\n.fa-hamsa {\n --fa: \"\\f665\";\n}\n\n.fa-bahai {\n --fa: \"\\f666\";\n}\n\n.fa-haykal {\n --fa: \"\\f666\";\n}\n\n.fa-jedi {\n --fa: \"\\f669\";\n}\n\n.fa-book-journal-whills {\n --fa: \"\\f66a\";\n}\n\n.fa-journal-whills {\n --fa: \"\\f66a\";\n}\n\n.fa-kaaba {\n --fa: \"\\f66b\";\n}\n\n.fa-khanda {\n --fa: \"\\f66d\";\n}\n\n.fa-landmark {\n --fa: \"\\f66f\";\n}\n\n.fa-envelopes-bulk {\n --fa: \"\\f674\";\n}\n\n.fa-mail-bulk {\n --fa: \"\\f674\";\n}\n\n.fa-menorah {\n --fa: \"\\f676\";\n}\n\n.fa-mosque {\n --fa: \"\\f678\";\n}\n\n.fa-om {\n --fa: \"\\f679\";\n}\n\n.fa-spaghetti-monster-flying {\n --fa: \"\\f67b\";\n}\n\n.fa-pastafarianism {\n --fa: \"\\f67b\";\n}\n\n.fa-peace {\n --fa: \"\\f67c\";\n}\n\n.fa-place-of-worship {\n --fa: \"\\f67f\";\n}\n\n.fa-square-poll-vertical {\n --fa: \"\\f681\";\n}\n\n.fa-poll {\n --fa: \"\\f681\";\n}\n\n.fa-square-poll-horizontal {\n --fa: \"\\f682\";\n}\n\n.fa-poll-h {\n --fa: \"\\f682\";\n}\n\n.fa-person-praying {\n --fa: \"\\f683\";\n}\n\n.fa-pray {\n --fa: \"\\f683\";\n}\n\n.fa-hands-praying {\n --fa: \"\\f684\";\n}\n\n.fa-praying-hands {\n --fa: \"\\f684\";\n}\n\n.fa-book-quran {\n --fa: \"\\f687\";\n}\n\n.fa-quran {\n --fa: \"\\f687\";\n}\n\n.fa-magnifying-glass-dollar {\n --fa: \"\\f688\";\n}\n\n.fa-search-dollar {\n --fa: \"\\f688\";\n}\n\n.fa-magnifying-glass-location {\n --fa: \"\\f689\";\n}\n\n.fa-search-location {\n --fa: \"\\f689\";\n}\n\n.fa-socks {\n --fa: \"\\f696\";\n}\n\n.fa-square-root-variable {\n --fa: \"\\f698\";\n}\n\n.fa-square-root-alt {\n --fa: \"\\f698\";\n}\n\n.fa-star-and-crescent {\n --fa: \"\\f699\";\n}\n\n.fa-star-of-david {\n --fa: \"\\f69a\";\n}\n\n.fa-synagogue {\n --fa: \"\\f69b\";\n}\n\n.fa-scroll-torah {\n --fa: \"\\f6a0\";\n}\n\n.fa-torah {\n --fa: \"\\f6a0\";\n}\n\n.fa-torii-gate {\n --fa: \"\\f6a1\";\n}\n\n.fa-vihara {\n --fa: \"\\f6a7\";\n}\n\n.fa-volume {\n --fa: \"\\f6a8\";\n}\n\n.fa-volume-medium {\n --fa: \"\\f6a8\";\n}\n\n.fa-volume-xmark {\n --fa: \"\\f6a9\";\n}\n\n.fa-volume-mute {\n --fa: \"\\f6a9\";\n}\n\n.fa-volume-times {\n --fa: \"\\f6a9\";\n}\n\n.fa-yin-yang {\n --fa: \"\\f6ad\";\n}\n\n.fa-blender-phone {\n --fa: \"\\f6b6\";\n}\n\n.fa-book-skull {\n --fa: \"\\f6b7\";\n}\n\n.fa-book-dead {\n --fa: \"\\f6b7\";\n}\n\n.fa-campground {\n --fa: \"\\f6bb\";\n}\n\n.fa-cat {\n --fa: \"\\f6be\";\n}\n\n.fa-chair {\n --fa: \"\\f6c0\";\n}\n\n.fa-cloud-moon {\n --fa: \"\\f6c3\";\n}\n\n.fa-cloud-sun {\n --fa: \"\\f6c4\";\n}\n\n.fa-cow {\n --fa: \"\\f6c8\";\n}\n\n.fa-dice-d20 {\n --fa: \"\\f6cf\";\n}\n\n.fa-dice-d6 {\n --fa: \"\\f6d1\";\n}\n\n.fa-dog {\n --fa: \"\\f6d3\";\n}\n\n.fa-dragon {\n --fa: \"\\f6d5\";\n}\n\n.fa-drumstick-bite {\n --fa: \"\\f6d7\";\n}\n\n.fa-dungeon {\n --fa: \"\\f6d9\";\n}\n\n.fa-file-csv {\n --fa: \"\\f6dd\";\n}\n\n.fa-hand-fist {\n --fa: \"\\f6de\";\n}\n\n.fa-fist-raised {\n --fa: \"\\f6de\";\n}\n\n.fa-ghost {\n --fa: \"\\f6e2\";\n}\n\n.fa-hammer {\n --fa: \"\\f6e3\";\n}\n\n.fa-hanukiah {\n --fa: \"\\f6e6\";\n}\n\n.fa-hat-wizard {\n --fa: \"\\f6e8\";\n}\n\n.fa-person-hiking {\n --fa: \"\\f6ec\";\n}\n\n.fa-hiking {\n --fa: \"\\f6ec\";\n}\n\n.fa-hippo {\n --fa: \"\\f6ed\";\n}\n\n.fa-horse {\n --fa: \"\\f6f0\";\n}\n\n.fa-house-chimney-crack {\n --fa: \"\\f6f1\";\n}\n\n.fa-house-damage {\n --fa: \"\\f6f1\";\n}\n\n.fa-hryvnia-sign {\n --fa: \"\\f6f2\";\n}\n\n.fa-hryvnia {\n --fa: \"\\f6f2\";\n}\n\n.fa-mask {\n --fa: \"\\f6fa\";\n}\n\n.fa-mountain {\n --fa: \"\\f6fc\";\n}\n\n.fa-network-wired {\n --fa: \"\\f6ff\";\n}\n\n.fa-otter {\n --fa: \"\\f700\";\n}\n\n.fa-ring {\n --fa: \"\\f70b\";\n}\n\n.fa-person-running {\n --fa: \"\\f70c\";\n}\n\n.fa-running {\n --fa: \"\\f70c\";\n}\n\n.fa-scroll {\n --fa: \"\\f70e\";\n}\n\n.fa-skull-crossbones {\n --fa: \"\\f714\";\n}\n\n.fa-slash {\n --fa: \"\\f715\";\n}\n\n.fa-spider {\n --fa: \"\\f717\";\n}\n\n.fa-toilet-paper {\n --fa: \"\\f71e\";\n}\n\n.fa-toilet-paper-alt {\n --fa: \"\\f71e\";\n}\n\n.fa-toilet-paper-blank {\n --fa: \"\\f71e\";\n}\n\n.fa-tractor {\n --fa: \"\\f722\";\n}\n\n.fa-user-injured {\n --fa: \"\\f728\";\n}\n\n.fa-vr-cardboard {\n --fa: \"\\f729\";\n}\n\n.fa-wand-sparkles {\n --fa: \"\\f72b\";\n}\n\n.fa-wind {\n --fa: \"\\f72e\";\n}\n\n.fa-wine-bottle {\n --fa: \"\\f72f\";\n}\n\n.fa-cloud-meatball {\n --fa: \"\\f73b\";\n}\n\n.fa-cloud-moon-rain {\n --fa: \"\\f73c\";\n}\n\n.fa-cloud-rain {\n --fa: \"\\f73d\";\n}\n\n.fa-cloud-showers-heavy {\n --fa: \"\\f740\";\n}\n\n.fa-cloud-sun-rain {\n --fa: \"\\f743\";\n}\n\n.fa-democrat {\n --fa: \"\\f747\";\n}\n\n.fa-flag-usa {\n --fa: \"\\f74d\";\n}\n\n.fa-hurricane {\n --fa: \"\\f751\";\n}\n\n.fa-landmark-dome {\n --fa: \"\\f752\";\n}\n\n.fa-landmark-alt {\n --fa: \"\\f752\";\n}\n\n.fa-meteor {\n --fa: \"\\f753\";\n}\n\n.fa-person-booth {\n --fa: \"\\f756\";\n}\n\n.fa-poo-storm {\n --fa: \"\\f75a\";\n}\n\n.fa-poo-bolt {\n --fa: \"\\f75a\";\n}\n\n.fa-rainbow {\n --fa: \"\\f75b\";\n}\n\n.fa-republican {\n --fa: \"\\f75e\";\n}\n\n.fa-smog {\n --fa: \"\\f75f\";\n}\n\n.fa-temperature-high {\n --fa: \"\\f769\";\n}\n\n.fa-temperature-low {\n --fa: \"\\f76b\";\n}\n\n.fa-cloud-bolt {\n --fa: \"\\f76c\";\n}\n\n.fa-thunderstorm {\n --fa: \"\\f76c\";\n}\n\n.fa-tornado {\n --fa: \"\\f76f\";\n}\n\n.fa-volcano {\n --fa: \"\\f770\";\n}\n\n.fa-check-to-slot {\n --fa: \"\\f772\";\n}\n\n.fa-vote-yea {\n --fa: \"\\f772\";\n}\n\n.fa-water {\n --fa: \"\\f773\";\n}\n\n.fa-baby {\n --fa: \"\\f77c\";\n}\n\n.fa-baby-carriage {\n --fa: \"\\f77d\";\n}\n\n.fa-carriage-baby {\n --fa: \"\\f77d\";\n}\n\n.fa-biohazard {\n --fa: \"\\f780\";\n}\n\n.fa-blog {\n --fa: \"\\f781\";\n}\n\n.fa-calendar-day {\n --fa: \"\\f783\";\n}\n\n.fa-calendar-week {\n --fa: \"\\f784\";\n}\n\n.fa-candy-cane {\n --fa: \"\\f786\";\n}\n\n.fa-carrot {\n --fa: \"\\f787\";\n}\n\n.fa-cash-register {\n --fa: \"\\f788\";\n}\n\n.fa-minimize {\n --fa: \"\\f78c\";\n}\n\n.fa-compress-arrows-alt {\n --fa: \"\\f78c\";\n}\n\n.fa-dumpster {\n --fa: \"\\f793\";\n}\n\n.fa-dumpster-fire {\n --fa: \"\\f794\";\n}\n\n.fa-ethernet {\n --fa: \"\\f796\";\n}\n\n.fa-gifts {\n --fa: \"\\f79c\";\n}\n\n.fa-champagne-glasses {\n --fa: \"\\f79f\";\n}\n\n.fa-glass-cheers {\n --fa: \"\\f79f\";\n}\n\n.fa-whiskey-glass {\n --fa: \"\\f7a0\";\n}\n\n.fa-glass-whiskey {\n --fa: \"\\f7a0\";\n}\n\n.fa-earth-europe {\n --fa: \"\\f7a2\";\n}\n\n.fa-globe-europe {\n --fa: \"\\f7a2\";\n}\n\n.fa-grip-lines {\n --fa: \"\\f7a4\";\n}\n\n.fa-grip-lines-vertical {\n --fa: \"\\f7a5\";\n}\n\n.fa-guitar {\n --fa: \"\\f7a6\";\n}\n\n.fa-heart-crack {\n --fa: \"\\f7a9\";\n}\n\n.fa-heart-broken {\n --fa: \"\\f7a9\";\n}\n\n.fa-holly-berry {\n --fa: \"\\f7aa\";\n}\n\n.fa-horse-head {\n --fa: \"\\f7ab\";\n}\n\n.fa-icicles {\n --fa: \"\\f7ad\";\n}\n\n.fa-igloo {\n --fa: \"\\f7ae\";\n}\n\n.fa-mitten {\n --fa: \"\\f7b5\";\n}\n\n.fa-mug-hot {\n --fa: \"\\f7b6\";\n}\n\n.fa-radiation {\n --fa: \"\\f7b9\";\n}\n\n.fa-circle-radiation {\n --fa: \"\\f7ba\";\n}\n\n.fa-radiation-alt {\n --fa: \"\\f7ba\";\n}\n\n.fa-restroom {\n --fa: \"\\f7bd\";\n}\n\n.fa-satellite {\n --fa: \"\\f7bf\";\n}\n\n.fa-satellite-dish {\n --fa: \"\\f7c0\";\n}\n\n.fa-sd-card {\n --fa: \"\\f7c2\";\n}\n\n.fa-sim-card {\n --fa: \"\\f7c4\";\n}\n\n.fa-person-skating {\n --fa: \"\\f7c5\";\n}\n\n.fa-skating {\n --fa: \"\\f7c5\";\n}\n\n.fa-person-skiing {\n --fa: \"\\f7c9\";\n}\n\n.fa-skiing {\n --fa: \"\\f7c9\";\n}\n\n.fa-person-skiing-nordic {\n --fa: \"\\f7ca\";\n}\n\n.fa-skiing-nordic {\n --fa: \"\\f7ca\";\n}\n\n.fa-sleigh {\n --fa: \"\\f7cc\";\n}\n\n.fa-comment-sms {\n --fa: \"\\f7cd\";\n}\n\n.fa-sms {\n --fa: \"\\f7cd\";\n}\n\n.fa-person-snowboarding {\n --fa: \"\\f7ce\";\n}\n\n.fa-snowboarding {\n --fa: \"\\f7ce\";\n}\n\n.fa-snowman {\n --fa: \"\\f7d0\";\n}\n\n.fa-snowplow {\n --fa: \"\\f7d2\";\n}\n\n.fa-tenge-sign {\n --fa: \"\\f7d7\";\n}\n\n.fa-tenge {\n --fa: \"\\f7d7\";\n}\n\n.fa-toilet {\n --fa: \"\\f7d8\";\n}\n\n.fa-screwdriver-wrench {\n --fa: \"\\f7d9\";\n}\n\n.fa-tools {\n --fa: \"\\f7d9\";\n}\n\n.fa-cable-car {\n --fa: \"\\f7da\";\n}\n\n.fa-tram {\n --fa: \"\\f7da\";\n}\n\n.fa-fire-flame-curved {\n --fa: \"\\f7e4\";\n}\n\n.fa-fire-alt {\n --fa: \"\\f7e4\";\n}\n\n.fa-bacon {\n --fa: \"\\f7e5\";\n}\n\n.fa-book-medical {\n --fa: \"\\f7e6\";\n}\n\n.fa-bread-slice {\n --fa: \"\\f7ec\";\n}\n\n.fa-cheese {\n --fa: \"\\f7ef\";\n}\n\n.fa-house-chimney-medical {\n --fa: \"\\f7f2\";\n}\n\n.fa-clinic-medical {\n --fa: \"\\f7f2\";\n}\n\n.fa-clipboard-user {\n --fa: \"\\f7f3\";\n}\n\n.fa-comment-medical {\n --fa: \"\\f7f5\";\n}\n\n.fa-crutch {\n --fa: \"\\f7f7\";\n}\n\n.fa-disease {\n --fa: \"\\f7fa\";\n}\n\n.fa-egg {\n --fa: \"\\f7fb\";\n}\n\n.fa-folder-tree {\n --fa: \"\\f802\";\n}\n\n.fa-burger {\n --fa: \"\\f805\";\n}\n\n.fa-hamburger {\n --fa: \"\\f805\";\n}\n\n.fa-hand-middle-finger {\n --fa: \"\\f806\";\n}\n\n.fa-helmet-safety {\n --fa: \"\\f807\";\n}\n\n.fa-hard-hat {\n --fa: \"\\f807\";\n}\n\n.fa-hat-hard {\n --fa: \"\\f807\";\n}\n\n.fa-hospital-user {\n --fa: \"\\f80d\";\n}\n\n.fa-hotdog {\n --fa: \"\\f80f\";\n}\n\n.fa-ice-cream {\n --fa: \"\\f810\";\n}\n\n.fa-laptop-medical {\n --fa: \"\\f812\";\n}\n\n.fa-pager {\n --fa: \"\\f815\";\n}\n\n.fa-pepper-hot {\n --fa: \"\\f816\";\n}\n\n.fa-pizza-slice {\n --fa: \"\\f818\";\n}\n\n.fa-sack-dollar {\n --fa: \"\\f81d\";\n}\n\n.fa-book-tanakh {\n --fa: \"\\f827\";\n}\n\n.fa-tanakh {\n --fa: \"\\f827\";\n}\n\n.fa-bars-progress {\n --fa: \"\\f828\";\n}\n\n.fa-tasks-alt {\n --fa: \"\\f828\";\n}\n\n.fa-trash-arrow-up {\n --fa: \"\\f829\";\n}\n\n.fa-trash-restore {\n --fa: \"\\f829\";\n}\n\n.fa-trash-can-arrow-up {\n --fa: \"\\f82a\";\n}\n\n.fa-trash-restore-alt {\n --fa: \"\\f82a\";\n}\n\n.fa-user-nurse {\n --fa: \"\\f82f\";\n}\n\n.fa-wave-square {\n --fa: \"\\f83e\";\n}\n\n.fa-person-biking {\n --fa: \"\\f84a\";\n}\n\n.fa-biking {\n --fa: \"\\f84a\";\n}\n\n.fa-border-all {\n --fa: \"\\f84c\";\n}\n\n.fa-border-none {\n --fa: \"\\f850\";\n}\n\n.fa-border-top-left {\n --fa: \"\\f853\";\n}\n\n.fa-border-style {\n --fa: \"\\f853\";\n}\n\n.fa-person-digging {\n --fa: \"\\f85e\";\n}\n\n.fa-digging {\n --fa: \"\\f85e\";\n}\n\n.fa-fan {\n --fa: \"\\f863\";\n}\n\n.fa-icons {\n --fa: \"\\f86d\";\n}\n\n.fa-heart-music-camera-bolt {\n --fa: \"\\f86d\";\n}\n\n.fa-phone-flip {\n --fa: \"\\f879\";\n}\n\n.fa-phone-alt {\n --fa: \"\\f879\";\n}\n\n.fa-square-phone-flip {\n --fa: \"\\f87b\";\n}\n\n.fa-phone-square-alt {\n --fa: \"\\f87b\";\n}\n\n.fa-photo-film {\n --fa: \"\\f87c\";\n}\n\n.fa-photo-video {\n --fa: \"\\f87c\";\n}\n\n.fa-text-slash {\n --fa: \"\\f87d\";\n}\n\n.fa-remove-format {\n --fa: \"\\f87d\";\n}\n\n.fa-arrow-down-z-a {\n --fa: \"\\f881\";\n}\n\n.fa-sort-alpha-desc {\n --fa: \"\\f881\";\n}\n\n.fa-sort-alpha-down-alt {\n --fa: \"\\f881\";\n}\n\n.fa-arrow-up-z-a {\n --fa: \"\\f882\";\n}\n\n.fa-sort-alpha-up-alt {\n --fa: \"\\f882\";\n}\n\n.fa-arrow-down-short-wide {\n --fa: \"\\f884\";\n}\n\n.fa-sort-amount-desc {\n --fa: \"\\f884\";\n}\n\n.fa-sort-amount-down-alt {\n --fa: \"\\f884\";\n}\n\n.fa-arrow-up-short-wide {\n --fa: \"\\f885\";\n}\n\n.fa-sort-amount-up-alt {\n --fa: \"\\f885\";\n}\n\n.fa-arrow-down-9-1 {\n --fa: \"\\f886\";\n}\n\n.fa-sort-numeric-desc {\n --fa: \"\\f886\";\n}\n\n.fa-sort-numeric-down-alt {\n --fa: \"\\f886\";\n}\n\n.fa-arrow-up-9-1 {\n --fa: \"\\f887\";\n}\n\n.fa-sort-numeric-up-alt {\n --fa: \"\\f887\";\n}\n\n.fa-spell-check {\n --fa: \"\\f891\";\n}\n\n.fa-voicemail {\n --fa: \"\\f897\";\n}\n\n.fa-hat-cowboy {\n --fa: \"\\f8c0\";\n}\n\n.fa-hat-cowboy-side {\n --fa: \"\\f8c1\";\n}\n\n.fa-computer-mouse {\n --fa: \"\\f8cc\";\n}\n\n.fa-mouse {\n --fa: \"\\f8cc\";\n}\n\n.fa-radio {\n --fa: \"\\f8d7\";\n}\n\n.fa-record-vinyl {\n --fa: \"\\f8d9\";\n}\n\n.fa-walkie-talkie {\n --fa: \"\\f8ef\";\n}\n\n.fa-caravan {\n --fa: \"\\f8ff\";\n}\n\n/*!\n * Font Awesome Free 7.2.0 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n * Copyright 2026 Fonticons, Inc.\n */\n:root, :host {\n --fa-family-classic: \"Font Awesome 7 Free\";\n --fa-font-solid: normal 900 1em/1 var(--fa-family-classic);\n /* deprecated: this older custom property will be removed next major release */\n --fa-style-family-classic: var(--fa-family-classic);\n}\n\n@font-face {\n font-family: \"Font Awesome 7 Free\";\n font-style: normal;\n font-weight: 900;\n font-display: block;\n src: url(\"../webfonts/fa-solid-900.woff2\");\n}\n.fas {\n --fa-family: var(--fa-family-classic);\n --fa-style: 900;\n}\n\n.fa-classic {\n --fa-family: var(--fa-family-classic);\n}\n\n.fa-solid {\n --fa-style: 900;\n}\n\n/*!\n * Font Awesome Free 7.2.0 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n * Copyright 2026 Fonticons, Inc.\n */\n:root, :host {\n --fa-family-classic: \"Font Awesome 7 Free\";\n --fa-font-regular: normal 400 1em/1 var(--fa-family-classic);\n /* deprecated: this older custom property will be removed next major release */\n --fa-style-family-classic: var(--fa-family-classic);\n}\n\n@font-face {\n font-family: \"Font Awesome 7 Free\";\n font-style: normal;\n font-weight: 400;\n font-display: block;\n src: url(\"../webfonts/fa-regular-400.woff2\");\n}\n.far {\n --fa-family: var(--fa-family-classic);\n --fa-style: 400;\n}\n\n.fa-classic {\n --fa-family: var(--fa-family-classic);\n}\n\n.fa-regular {\n --fa-style: 400;\n}\n\n/*!\n * Font Awesome Free 7.2.0 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n * Copyright 2026 Fonticons, Inc.\n */\n:root, :host {\n --fa-family-brands: \"Font Awesome 7 Brands\";\n --fa-font-brands: normal 400 1em/1 var(--fa-family-brands);\n}\n\n@font-face {\n font-family: \"Font Awesome 7 Brands\";\n font-style: normal;\n font-weight: 400;\n font-display: block;\n src: url(\"../webfonts/fa-brands-400.woff2\");\n}\n.fab,\n.fa-brands,\n.fa-classic.fa-brands {\n --fa-family: var(--fa-family-brands);\n --fa-style: 400;\n}\n\n.fa-firefox-browser {\n --fa: \"\\e007\";\n}\n\n.fa-ideal {\n --fa: \"\\e013\";\n}\n\n.fa-microblog {\n --fa: \"\\e01a\";\n}\n\n.fa-square-pied-piper {\n --fa: \"\\e01e\";\n}\n\n.fa-pied-piper-square {\n --fa: \"\\e01e\";\n}\n\n.fa-unity {\n --fa: \"\\e049\";\n}\n\n.fa-dailymotion {\n --fa: \"\\e052\";\n}\n\n.fa-square-instagram {\n --fa: \"\\e055\";\n}\n\n.fa-instagram-square {\n --fa: \"\\e055\";\n}\n\n.fa-mixer {\n --fa: \"\\e056\";\n}\n\n.fa-shopify {\n --fa: \"\\e057\";\n}\n\n.fa-deezer {\n --fa: \"\\e077\";\n}\n\n.fa-edge-legacy {\n --fa: \"\\e078\";\n}\n\n.fa-google-pay {\n --fa: \"\\e079\";\n}\n\n.fa-rust {\n --fa: \"\\e07a\";\n}\n\n.fa-tiktok {\n --fa: \"\\e07b\";\n}\n\n.fa-unsplash {\n --fa: \"\\e07c\";\n}\n\n.fa-cloudflare {\n --fa: \"\\e07d\";\n}\n\n.fa-guilded {\n --fa: \"\\e07e\";\n}\n\n.fa-hive {\n --fa: \"\\e07f\";\n}\n\n.fa-42-group {\n --fa: \"\\e080\";\n}\n\n.fa-innosoft {\n --fa: \"\\e080\";\n}\n\n.fa-instalod {\n --fa: \"\\e081\";\n}\n\n.fa-octopus-deploy {\n --fa: \"\\e082\";\n}\n\n.fa-perbyte {\n --fa: \"\\e083\";\n}\n\n.fa-uncharted {\n --fa: \"\\e084\";\n}\n\n.fa-watchman-monitoring {\n --fa: \"\\e087\";\n}\n\n.fa-wodu {\n --fa: \"\\e088\";\n}\n\n.fa-wirsindhandwerk {\n --fa: \"\\e2d0\";\n}\n\n.fa-wsh {\n --fa: \"\\e2d0\";\n}\n\n.fa-bots {\n --fa: \"\\e340\";\n}\n\n.fa-cmplid {\n --fa: \"\\e360\";\n}\n\n.fa-bilibili {\n --fa: \"\\e3d9\";\n}\n\n.fa-golang {\n --fa: \"\\e40f\";\n}\n\n.fa-pix {\n --fa: \"\\e43a\";\n}\n\n.fa-sitrox {\n --fa: \"\\e44a\";\n}\n\n.fa-hashnode {\n --fa: \"\\e499\";\n}\n\n.fa-meta {\n --fa: \"\\e49b\";\n}\n\n.fa-padlet {\n --fa: \"\\e4a0\";\n}\n\n.fa-nfc-directional {\n --fa: \"\\e530\";\n}\n\n.fa-nfc-symbol {\n --fa: \"\\e531\";\n}\n\n.fa-screenpal {\n --fa: \"\\e570\";\n}\n\n.fa-space-awesome {\n --fa: \"\\e5ac\";\n}\n\n.fa-square-font-awesome {\n --fa: \"\\e5ad\";\n}\n\n.fa-square-gitlab {\n --fa: \"\\e5ae\";\n}\n\n.fa-gitlab-square {\n --fa: \"\\e5ae\";\n}\n\n.fa-odysee {\n --fa: \"\\e5c6\";\n}\n\n.fa-stubber {\n --fa: \"\\e5c7\";\n}\n\n.fa-debian {\n --fa: \"\\e60b\";\n}\n\n.fa-shoelace {\n --fa: \"\\e60c\";\n}\n\n.fa-threads {\n --fa: \"\\e618\";\n}\n\n.fa-square-threads {\n --fa: \"\\e619\";\n}\n\n.fa-square-x-twitter {\n --fa: \"\\e61a\";\n}\n\n.fa-x-twitter {\n --fa: \"\\e61b\";\n}\n\n.fa-opensuse {\n --fa: \"\\e62b\";\n}\n\n.fa-letterboxd {\n --fa: \"\\e62d\";\n}\n\n.fa-square-letterboxd {\n --fa: \"\\e62e\";\n}\n\n.fa-mintbit {\n --fa: \"\\e62f\";\n}\n\n.fa-google-scholar {\n --fa: \"\\e63b\";\n}\n\n.fa-brave {\n --fa: \"\\e63c\";\n}\n\n.fa-brave-reverse {\n --fa: \"\\e63d\";\n}\n\n.fa-pixiv {\n --fa: \"\\e640\";\n}\n\n.fa-upwork {\n --fa: \"\\e641\";\n}\n\n.fa-webflow {\n --fa: \"\\e65c\";\n}\n\n.fa-signal-messenger {\n --fa: \"\\e663\";\n}\n\n.fa-bluesky {\n --fa: \"\\e671\";\n}\n\n.fa-jxl {\n --fa: \"\\e67b\";\n}\n\n.fa-square-upwork {\n --fa: \"\\e67c\";\n}\n\n.fa-web-awesome {\n --fa: \"\\e682\";\n}\n\n.fa-square-web-awesome {\n --fa: \"\\e683\";\n}\n\n.fa-square-web-awesome-stroke {\n --fa: \"\\e684\";\n}\n\n.fa-dart-lang {\n --fa: \"\\e693\";\n}\n\n.fa-flutter {\n --fa: \"\\e694\";\n}\n\n.fa-files-pinwheel {\n --fa: \"\\e69f\";\n}\n\n.fa-css {\n --fa: \"\\e6a2\";\n}\n\n.fa-square-bluesky {\n --fa: \"\\e6a3\";\n}\n\n.fa-openai {\n --fa: \"\\e7cf\";\n}\n\n.fa-square-linkedin {\n --fa: \"\\e7d0\";\n}\n\n.fa-cash-app {\n --fa: \"\\e7d4\";\n}\n\n.fa-disqus {\n --fa: \"\\e7d5\";\n}\n\n.fa-eleventy {\n --fa: \"\\e7d6\";\n}\n\n.fa-11ty {\n --fa: \"\\e7d6\";\n}\n\n.fa-kakao-talk {\n --fa: \"\\e7d7\";\n}\n\n.fa-linktree {\n --fa: \"\\e7d8\";\n}\n\n.fa-notion {\n --fa: \"\\e7d9\";\n}\n\n.fa-pandora {\n --fa: \"\\e7da\";\n}\n\n.fa-pixelfed {\n --fa: \"\\e7db\";\n}\n\n.fa-tidal {\n --fa: \"\\e7dc\";\n}\n\n.fa-vsco {\n --fa: \"\\e7dd\";\n}\n\n.fa-w3c {\n --fa: \"\\e7de\";\n}\n\n.fa-lumon {\n --fa: \"\\e7e2\";\n}\n\n.fa-lumon-drop {\n --fa: \"\\e7e3\";\n}\n\n.fa-square-figma {\n --fa: \"\\e7e4\";\n}\n\n.fa-tex {\n --fa: \"\\e7ff\";\n}\n\n.fa-duolingo {\n --fa: \"\\e812\";\n}\n\n.fa-supportnow {\n --fa: \"\\e833\";\n}\n\n.fa-tor-browser {\n --fa: \"\\e838\";\n}\n\n.fa-typescript {\n --fa: \"\\e840\";\n}\n\n.fa-square-deskpro {\n --fa: \"\\e844\";\n}\n\n.fa-circle-zulip {\n --fa: \"\\e851\";\n}\n\n.fa-julia {\n --fa: \"\\e852\";\n}\n\n.fa-zulip {\n --fa: \"\\e853\";\n}\n\n.fa-unison {\n --fa: \"\\e854\";\n}\n\n.fa-board-game-geek {\n --fa: \"\\e855\";\n}\n\n.fa-bgg {\n --fa: \"\\e855\";\n}\n\n.fa-ko-fi {\n --fa: \"\\e856\";\n}\n\n.fa-kubernetes {\n --fa: \"\\e857\";\n}\n\n.fa-postgresql {\n --fa: \"\\e858\";\n}\n\n.fa-scaleway {\n --fa: \"\\e859\";\n}\n\n.fa-venmo {\n --fa: \"\\e85a\";\n}\n\n.fa-venmo-v {\n --fa: \"\\e85b\";\n}\n\n.fa-unreal-engine {\n --fa: \"\\e85c\";\n}\n\n.fa-globaleaks {\n --fa: \"\\e85d\";\n}\n\n.fa-solana {\n --fa: \"\\e85e\";\n}\n\n.fa-threema {\n --fa: \"\\e85f\";\n}\n\n.fa-forgejo {\n --fa: \"\\e860\";\n}\n\n.fa-claude {\n --fa: \"\\e861\";\n}\n\n.fa-gitee {\n --fa: \"\\e863\";\n}\n\n.fa-xmpp {\n --fa: \"\\e864\";\n}\n\n.fa-fediverse {\n --fa: \"\\e865\";\n}\n\n.fa-tailwind-css {\n --fa: \"\\e866\";\n}\n\n.fa-arch-linux {\n --fa: \"\\e867\";\n}\n\n.fa-svelte {\n --fa: \"\\e868\";\n}\n\n.fa-hugging-face {\n --fa: \"\\e869\";\n}\n\n.fa-leetcode {\n --fa: \"\\e86a\";\n}\n\n.fa-openstreetmap {\n --fa: \"\\e86b\";\n}\n\n.fa-ultralytics {\n --fa: \"\\e86d\";\n}\n\n.fa-ultralytics-hub {\n --fa: \"\\e86e\";\n}\n\n.fa-ultralytics-yolo {\n --fa: \"\\e86f\";\n}\n\n.fa-obsidian {\n --fa: \"\\e879\";\n}\n\n.fa-zoom {\n --fa: \"\\e87b\";\n}\n\n.fa-vim {\n --fa: \"\\e88a\";\n}\n\n.fa-symfonycasts {\n --fa: \"\\e8ab\";\n}\n\n.fa-square-twitter {\n --fa: \"\\f081\";\n}\n\n.fa-twitter-square {\n --fa: \"\\f081\";\n}\n\n.fa-square-facebook {\n --fa: \"\\f082\";\n}\n\n.fa-facebook-square {\n --fa: \"\\f082\";\n}\n\n.fa-linkedin {\n --fa: \"\\f08c\";\n}\n\n.fa-square-github {\n --fa: \"\\f092\";\n}\n\n.fa-github-square {\n --fa: \"\\f092\";\n}\n\n.fa-twitter {\n --fa: \"\\f099\";\n}\n\n.fa-facebook {\n --fa: \"\\f09a\";\n}\n\n.fa-github {\n --fa: \"\\f09b\";\n}\n\n.fa-pinterest {\n --fa: \"\\f0d2\";\n}\n\n.fa-square-pinterest {\n --fa: \"\\f0d3\";\n}\n\n.fa-pinterest-square {\n --fa: \"\\f0d3\";\n}\n\n.fa-square-google-plus {\n --fa: \"\\f0d4\";\n}\n\n.fa-google-plus-square {\n --fa: \"\\f0d4\";\n}\n\n.fa-google-plus-g {\n --fa: \"\\f0d5\";\n}\n\n.fa-linkedin-in {\n --fa: \"\\f0e1\";\n}\n\n.fa-github-alt {\n --fa: \"\\f113\";\n}\n\n.fa-maxcdn {\n --fa: \"\\f136\";\n}\n\n.fa-html5 {\n --fa: \"\\f13b\";\n}\n\n.fa-css3 {\n --fa: \"\\f13c\";\n}\n\n.fa-btc {\n --fa: \"\\f15a\";\n}\n\n.fa-youtube {\n --fa: \"\\f167\";\n}\n\n.fa-xing {\n --fa: \"\\f168\";\n}\n\n.fa-square-xing {\n --fa: \"\\f169\";\n}\n\n.fa-xing-square {\n --fa: \"\\f169\";\n}\n\n.fa-dropbox {\n --fa: \"\\f16b\";\n}\n\n.fa-stack-overflow {\n --fa: \"\\f16c\";\n}\n\n.fa-instagram {\n --fa: \"\\f16d\";\n}\n\n.fa-flickr {\n --fa: \"\\f16e\";\n}\n\n.fa-adn {\n --fa: \"\\f170\";\n}\n\n.fa-bitbucket {\n --fa: \"\\f171\";\n}\n\n.fa-tumblr {\n --fa: \"\\f173\";\n}\n\n.fa-square-tumblr {\n --fa: \"\\f174\";\n}\n\n.fa-tumblr-square {\n --fa: \"\\f174\";\n}\n\n.fa-apple {\n --fa: \"\\f179\";\n}\n\n.fa-windows {\n --fa: \"\\f17a\";\n}\n\n.fa-android {\n --fa: \"\\f17b\";\n}\n\n.fa-linux {\n --fa: \"\\f17c\";\n}\n\n.fa-dribbble {\n --fa: \"\\f17d\";\n}\n\n.fa-skype {\n --fa: \"\\f17e\";\n}\n\n.fa-foursquare {\n --fa: \"\\f180\";\n}\n\n.fa-trello {\n --fa: \"\\f181\";\n}\n\n.fa-gratipay {\n --fa: \"\\f184\";\n}\n\n.fa-vk {\n --fa: \"\\f189\";\n}\n\n.fa-weibo {\n --fa: \"\\f18a\";\n}\n\n.fa-renren {\n --fa: \"\\f18b\";\n}\n\n.fa-pagelines {\n --fa: \"\\f18c\";\n}\n\n.fa-stack-exchange {\n --fa: \"\\f18d\";\n}\n\n.fa-square-vimeo {\n --fa: \"\\f194\";\n}\n\n.fa-vimeo-square {\n --fa: \"\\f194\";\n}\n\n.fa-slack {\n --fa: \"\\f198\";\n}\n\n.fa-slack-hash {\n --fa: \"\\f198\";\n}\n\n.fa-wordpress {\n --fa: \"\\f19a\";\n}\n\n.fa-openid {\n --fa: \"\\f19b\";\n}\n\n.fa-yahoo {\n --fa: \"\\f19e\";\n}\n\n.fa-google {\n --fa: \"\\f1a0\";\n}\n\n.fa-reddit {\n --fa: \"\\f1a1\";\n}\n\n.fa-square-reddit {\n --fa: \"\\f1a2\";\n}\n\n.fa-reddit-square {\n --fa: \"\\f1a2\";\n}\n\n.fa-stumbleupon-circle {\n --fa: \"\\f1a3\";\n}\n\n.fa-stumbleupon {\n --fa: \"\\f1a4\";\n}\n\n.fa-delicious {\n --fa: \"\\f1a5\";\n}\n\n.fa-digg {\n --fa: \"\\f1a6\";\n}\n\n.fa-pied-piper-pp {\n --fa: \"\\f1a7\";\n}\n\n.fa-pied-piper-alt {\n --fa: \"\\f1a8\";\n}\n\n.fa-drupal {\n --fa: \"\\f1a9\";\n}\n\n.fa-joomla {\n --fa: \"\\f1aa\";\n}\n\n.fa-behance {\n --fa: \"\\f1b4\";\n}\n\n.fa-square-behance {\n --fa: \"\\f1b5\";\n}\n\n.fa-behance-square {\n --fa: \"\\f1b5\";\n}\n\n.fa-steam {\n --fa: \"\\f1b6\";\n}\n\n.fa-square-steam {\n --fa: \"\\f1b7\";\n}\n\n.fa-steam-square {\n --fa: \"\\f1b7\";\n}\n\n.fa-spotify {\n --fa: \"\\f1bc\";\n}\n\n.fa-deviantart {\n --fa: \"\\f1bd\";\n}\n\n.fa-soundcloud {\n --fa: \"\\f1be\";\n}\n\n.fa-vine {\n --fa: \"\\f1ca\";\n}\n\n.fa-codepen {\n --fa: \"\\f1cb\";\n}\n\n.fa-jsfiddle {\n --fa: \"\\f1cc\";\n}\n\n.fa-rebel {\n --fa: \"\\f1d0\";\n}\n\n.fa-empire {\n --fa: \"\\f1d1\";\n}\n\n.fa-square-git {\n --fa: \"\\f1d2\";\n}\n\n.fa-git-square {\n --fa: \"\\f1d2\";\n}\n\n.fa-git {\n --fa: \"\\f1d3\";\n}\n\n.fa-hacker-news {\n --fa: \"\\f1d4\";\n}\n\n.fa-tencent-weibo {\n --fa: \"\\f1d5\";\n}\n\n.fa-qq {\n --fa: \"\\f1d6\";\n}\n\n.fa-weixin {\n --fa: \"\\f1d7\";\n}\n\n.fa-slideshare {\n --fa: \"\\f1e7\";\n}\n\n.fa-twitch {\n --fa: \"\\f1e8\";\n}\n\n.fa-yelp {\n --fa: \"\\f1e9\";\n}\n\n.fa-paypal {\n --fa: \"\\f1ed\";\n}\n\n.fa-google-wallet {\n --fa: \"\\f1ee\";\n}\n\n.fa-cc-visa {\n --fa: \"\\f1f0\";\n}\n\n.fa-cc-mastercard {\n --fa: \"\\f1f1\";\n}\n\n.fa-cc-discover {\n --fa: \"\\f1f2\";\n}\n\n.fa-cc-amex {\n --fa: \"\\f1f3\";\n}\n\n.fa-cc-paypal {\n --fa: \"\\f1f4\";\n}\n\n.fa-cc-stripe {\n --fa: \"\\f1f5\";\n}\n\n.fa-lastfm {\n --fa: \"\\f202\";\n}\n\n.fa-square-lastfm {\n --fa: \"\\f203\";\n}\n\n.fa-lastfm-square {\n --fa: \"\\f203\";\n}\n\n.fa-ioxhost {\n --fa: \"\\f208\";\n}\n\n.fa-angellist {\n --fa: \"\\f209\";\n}\n\n.fa-buysellads {\n --fa: \"\\f20d\";\n}\n\n.fa-connectdevelop {\n --fa: \"\\f20e\";\n}\n\n.fa-dashcube {\n --fa: \"\\f210\";\n}\n\n.fa-forumbee {\n --fa: \"\\f211\";\n}\n\n.fa-leanpub {\n --fa: \"\\f212\";\n}\n\n.fa-sellsy {\n --fa: \"\\f213\";\n}\n\n.fa-shirtsinbulk {\n --fa: \"\\f214\";\n}\n\n.fa-simplybuilt {\n --fa: \"\\f215\";\n}\n\n.fa-skyatlas {\n --fa: \"\\f216\";\n}\n\n.fa-pinterest-p {\n --fa: \"\\f231\";\n}\n\n.fa-whatsapp {\n --fa: \"\\f232\";\n}\n\n.fa-viacoin {\n --fa: \"\\f237\";\n}\n\n.fa-medium {\n --fa: \"\\f23a\";\n}\n\n.fa-medium-m {\n --fa: \"\\f23a\";\n}\n\n.fa-y-combinator {\n --fa: \"\\f23b\";\n}\n\n.fa-optin-monster {\n --fa: \"\\f23c\";\n}\n\n.fa-opencart {\n --fa: \"\\f23d\";\n}\n\n.fa-expeditedssl {\n --fa: \"\\f23e\";\n}\n\n.fa-cc-jcb {\n --fa: \"\\f24b\";\n}\n\n.fa-cc-diners-club {\n --fa: \"\\f24c\";\n}\n\n.fa-creative-commons {\n --fa: \"\\f25e\";\n}\n\n.fa-gg {\n --fa: \"\\f260\";\n}\n\n.fa-gg-circle {\n --fa: \"\\f261\";\n}\n\n.fa-odnoklassniki {\n --fa: \"\\f263\";\n}\n\n.fa-square-odnoklassniki {\n --fa: \"\\f264\";\n}\n\n.fa-odnoklassniki-square {\n --fa: \"\\f264\";\n}\n\n.fa-get-pocket {\n --fa: \"\\f265\";\n}\n\n.fa-wikipedia-w {\n --fa: \"\\f266\";\n}\n\n.fa-safari {\n --fa: \"\\f267\";\n}\n\n.fa-chrome {\n --fa: \"\\f268\";\n}\n\n.fa-firefox {\n --fa: \"\\f269\";\n}\n\n.fa-opera {\n --fa: \"\\f26a\";\n}\n\n.fa-internet-explorer {\n --fa: \"\\f26b\";\n}\n\n.fa-contao {\n --fa: \"\\f26d\";\n}\n\n.fa-500px {\n --fa: \"\\f26e\";\n}\n\n.fa-amazon {\n --fa: \"\\f270\";\n}\n\n.fa-houzz {\n --fa: \"\\f27c\";\n}\n\n.fa-vimeo-v {\n --fa: \"\\f27d\";\n}\n\n.fa-black-tie {\n --fa: \"\\f27e\";\n}\n\n.fa-fonticons {\n --fa: \"\\f280\";\n}\n\n.fa-reddit-alien {\n --fa: \"\\f281\";\n}\n\n.fa-edge {\n --fa: \"\\f282\";\n}\n\n.fa-codiepie {\n --fa: \"\\f284\";\n}\n\n.fa-modx {\n --fa: \"\\f285\";\n}\n\n.fa-fort-awesome {\n --fa: \"\\f286\";\n}\n\n.fa-usb {\n --fa: \"\\f287\";\n}\n\n.fa-product-hunt {\n --fa: \"\\f288\";\n}\n\n.fa-mixcloud {\n --fa: \"\\f289\";\n}\n\n.fa-scribd {\n --fa: \"\\f28a\";\n}\n\n.fa-bluetooth {\n --fa: \"\\f293\";\n}\n\n.fa-bluetooth-b {\n --fa: \"\\f294\";\n}\n\n.fa-gitlab {\n --fa: \"\\f296\";\n}\n\n.fa-wpbeginner {\n --fa: \"\\f297\";\n}\n\n.fa-wpforms {\n --fa: \"\\f298\";\n}\n\n.fa-envira {\n --fa: \"\\f299\";\n}\n\n.fa-glide {\n --fa: \"\\f2a5\";\n}\n\n.fa-glide-g {\n --fa: \"\\f2a6\";\n}\n\n.fa-viadeo {\n --fa: \"\\f2a9\";\n}\n\n.fa-square-viadeo {\n --fa: \"\\f2aa\";\n}\n\n.fa-viadeo-square {\n --fa: \"\\f2aa\";\n}\n\n.fa-snapchat {\n --fa: \"\\f2ab\";\n}\n\n.fa-snapchat-ghost {\n --fa: \"\\f2ab\";\n}\n\n.fa-square-snapchat {\n --fa: \"\\f2ad\";\n}\n\n.fa-snapchat-square {\n --fa: \"\\f2ad\";\n}\n\n.fa-pied-piper {\n --fa: \"\\f2ae\";\n}\n\n.fa-first-order {\n --fa: \"\\f2b0\";\n}\n\n.fa-yoast {\n --fa: \"\\f2b1\";\n}\n\n.fa-themeisle {\n --fa: \"\\f2b2\";\n}\n\n.fa-google-plus {\n --fa: \"\\f2b3\";\n}\n\n.fa-font-awesome {\n --fa: \"\\f2b4\";\n}\n\n.fa-font-awesome-flag {\n --fa: \"\\f2b4\";\n}\n\n.fa-font-awesome-logo-full {\n --fa: \"\\f2b4\";\n}\n\n.fa-linode {\n --fa: \"\\f2b8\";\n}\n\n.fa-quora {\n --fa: \"\\f2c4\";\n}\n\n.fa-free-code-camp {\n --fa: \"\\f2c5\";\n}\n\n.fa-telegram {\n --fa: \"\\f2c6\";\n}\n\n.fa-telegram-plane {\n --fa: \"\\f2c6\";\n}\n\n.fa-bandcamp {\n --fa: \"\\f2d5\";\n}\n\n.fa-grav {\n --fa: \"\\f2d6\";\n}\n\n.fa-etsy {\n --fa: \"\\f2d7\";\n}\n\n.fa-imdb {\n --fa: \"\\f2d8\";\n}\n\n.fa-ravelry {\n --fa: \"\\f2d9\";\n}\n\n.fa-sellcast {\n --fa: \"\\f2da\";\n}\n\n.fa-superpowers {\n --fa: \"\\f2dd\";\n}\n\n.fa-wpexplorer {\n --fa: \"\\f2de\";\n}\n\n.fa-meetup {\n --fa: \"\\f2e0\";\n}\n\n.fa-square-font-awesome-stroke {\n --fa: \"\\f35c\";\n}\n\n.fa-font-awesome-alt {\n --fa: \"\\f35c\";\n}\n\n.fa-accessible-icon {\n --fa: \"\\f368\";\n}\n\n.fa-accusoft {\n --fa: \"\\f369\";\n}\n\n.fa-adversal {\n --fa: \"\\f36a\";\n}\n\n.fa-affiliatetheme {\n --fa: \"\\f36b\";\n}\n\n.fa-algolia {\n --fa: \"\\f36c\";\n}\n\n.fa-amilia {\n --fa: \"\\f36d\";\n}\n\n.fa-angrycreative {\n --fa: \"\\f36e\";\n}\n\n.fa-app-store {\n --fa: \"\\f36f\";\n}\n\n.fa-app-store-ios {\n --fa: \"\\f370\";\n}\n\n.fa-apper {\n --fa: \"\\f371\";\n}\n\n.fa-asymmetrik {\n --fa: \"\\f372\";\n}\n\n.fa-audible {\n --fa: \"\\f373\";\n}\n\n.fa-avianex {\n --fa: \"\\f374\";\n}\n\n.fa-aws {\n --fa: \"\\f375\";\n}\n\n.fa-bimobject {\n --fa: \"\\f378\";\n}\n\n.fa-bitcoin {\n --fa: \"\\f379\";\n}\n\n.fa-bity {\n --fa: \"\\f37a\";\n}\n\n.fa-blackberry {\n --fa: \"\\f37b\";\n}\n\n.fa-blogger {\n --fa: \"\\f37c\";\n}\n\n.fa-blogger-b {\n --fa: \"\\f37d\";\n}\n\n.fa-buromobelexperte {\n --fa: \"\\f37f\";\n}\n\n.fa-centercode {\n --fa: \"\\f380\";\n}\n\n.fa-cloudscale {\n --fa: \"\\f383\";\n}\n\n.fa-cloudsmith {\n --fa: \"\\f384\";\n}\n\n.fa-cloudversify {\n --fa: \"\\f385\";\n}\n\n.fa-cpanel {\n --fa: \"\\f388\";\n}\n\n.fa-css3-alt {\n --fa: \"\\f38b\";\n}\n\n.fa-cuttlefish {\n --fa: \"\\f38c\";\n}\n\n.fa-d-and-d {\n --fa: \"\\f38d\";\n}\n\n.fa-deploydog {\n --fa: \"\\f38e\";\n}\n\n.fa-deskpro {\n --fa: \"\\f38f\";\n}\n\n.fa-digital-ocean {\n --fa: \"\\f391\";\n}\n\n.fa-discord {\n --fa: \"\\f392\";\n}\n\n.fa-discourse {\n --fa: \"\\f393\";\n}\n\n.fa-dochub {\n --fa: \"\\f394\";\n}\n\n.fa-docker {\n --fa: \"\\f395\";\n}\n\n.fa-draft2digital {\n --fa: \"\\f396\";\n}\n\n.fa-square-dribbble {\n --fa: \"\\f397\";\n}\n\n.fa-dribbble-square {\n --fa: \"\\f397\";\n}\n\n.fa-dyalog {\n --fa: \"\\f399\";\n}\n\n.fa-earlybirds {\n --fa: \"\\f39a\";\n}\n\n.fa-erlang {\n --fa: \"\\f39d\";\n}\n\n.fa-facebook-f {\n --fa: \"\\f39e\";\n}\n\n.fa-facebook-messenger {\n --fa: \"\\f39f\";\n}\n\n.fa-firstdraft {\n --fa: \"\\f3a1\";\n}\n\n.fa-fonticons-fi {\n --fa: \"\\f3a2\";\n}\n\n.fa-fort-awesome-alt {\n --fa: \"\\f3a3\";\n}\n\n.fa-freebsd {\n --fa: \"\\f3a4\";\n}\n\n.fa-gitkraken {\n --fa: \"\\f3a6\";\n}\n\n.fa-gofore {\n --fa: \"\\f3a7\";\n}\n\n.fa-goodreads {\n --fa: \"\\f3a8\";\n}\n\n.fa-goodreads-g {\n --fa: \"\\f3a9\";\n}\n\n.fa-google-drive {\n --fa: \"\\f3aa\";\n}\n\n.fa-google-play {\n --fa: \"\\f3ab\";\n}\n\n.fa-gripfire {\n --fa: \"\\f3ac\";\n}\n\n.fa-grunt {\n --fa: \"\\f3ad\";\n}\n\n.fa-gulp {\n --fa: \"\\f3ae\";\n}\n\n.fa-square-hacker-news {\n --fa: \"\\f3af\";\n}\n\n.fa-hacker-news-square {\n --fa: \"\\f3af\";\n}\n\n.fa-hire-a-helper {\n --fa: \"\\f3b0\";\n}\n\n.fa-hotjar {\n --fa: \"\\f3b1\";\n}\n\n.fa-hubspot {\n --fa: \"\\f3b2\";\n}\n\n.fa-itunes {\n --fa: \"\\f3b4\";\n}\n\n.fa-itunes-note {\n --fa: \"\\f3b5\";\n}\n\n.fa-jenkins {\n --fa: \"\\f3b6\";\n}\n\n.fa-joget {\n --fa: \"\\f3b7\";\n}\n\n.fa-js {\n --fa: \"\\f3b8\";\n}\n\n.fa-square-js {\n --fa: \"\\f3b9\";\n}\n\n.fa-js-square {\n --fa: \"\\f3b9\";\n}\n\n.fa-keycdn {\n --fa: \"\\f3ba\";\n}\n\n.fa-kickstarter {\n --fa: \"\\f3bb\";\n}\n\n.fa-square-kickstarter {\n --fa: \"\\f3bb\";\n}\n\n.fa-kickstarter-k {\n --fa: \"\\f3bc\";\n}\n\n.fa-laravel {\n --fa: \"\\f3bd\";\n}\n\n.fa-line {\n --fa: \"\\f3c0\";\n}\n\n.fa-lyft {\n --fa: \"\\f3c3\";\n}\n\n.fa-magento {\n --fa: \"\\f3c4\";\n}\n\n.fa-medapps {\n --fa: \"\\f3c6\";\n}\n\n.fa-medrt {\n --fa: \"\\f3c8\";\n}\n\n.fa-microsoft {\n --fa: \"\\f3ca\";\n}\n\n.fa-mix {\n --fa: \"\\f3cb\";\n}\n\n.fa-mizuni {\n --fa: \"\\f3cc\";\n}\n\n.fa-monero {\n --fa: \"\\f3d0\";\n}\n\n.fa-napster {\n --fa: \"\\f3d2\";\n}\n\n.fa-node-js {\n --fa: \"\\f3d3\";\n}\n\n.fa-npm {\n --fa: \"\\f3d4\";\n}\n\n.fa-ns8 {\n --fa: \"\\f3d5\";\n}\n\n.fa-nutritionix {\n --fa: \"\\f3d6\";\n}\n\n.fa-page4 {\n --fa: \"\\f3d7\";\n}\n\n.fa-palfed {\n --fa: \"\\f3d8\";\n}\n\n.fa-patreon {\n --fa: \"\\f3d9\";\n}\n\n.fa-periscope {\n --fa: \"\\f3da\";\n}\n\n.fa-phabricator {\n --fa: \"\\f3db\";\n}\n\n.fa-phoenix-framework {\n --fa: \"\\f3dc\";\n}\n\n.fa-playstation {\n --fa: \"\\f3df\";\n}\n\n.fa-pushed {\n --fa: \"\\f3e1\";\n}\n\n.fa-python {\n --fa: \"\\f3e2\";\n}\n\n.fa-red-river {\n --fa: \"\\f3e3\";\n}\n\n.fa-wpressr {\n --fa: \"\\f3e4\";\n}\n\n.fa-rendact {\n --fa: \"\\f3e4\";\n}\n\n.fa-replyd {\n --fa: \"\\f3e6\";\n}\n\n.fa-resolving {\n --fa: \"\\f3e7\";\n}\n\n.fa-rocketchat {\n --fa: \"\\f3e8\";\n}\n\n.fa-rockrms {\n --fa: \"\\f3e9\";\n}\n\n.fa-schlix {\n --fa: \"\\f3ea\";\n}\n\n.fa-searchengin {\n --fa: \"\\f3eb\";\n}\n\n.fa-servicestack {\n --fa: \"\\f3ec\";\n}\n\n.fa-sistrix {\n --fa: \"\\f3ee\";\n}\n\n.fa-speakap {\n --fa: \"\\f3f3\";\n}\n\n.fa-staylinked {\n --fa: \"\\f3f5\";\n}\n\n.fa-steam-symbol {\n --fa: \"\\f3f6\";\n}\n\n.fa-sticker-mule {\n --fa: \"\\f3f7\";\n}\n\n.fa-studiovinari {\n --fa: \"\\f3f8\";\n}\n\n.fa-supple {\n --fa: \"\\f3f9\";\n}\n\n.fa-uber {\n --fa: \"\\f402\";\n}\n\n.fa-uikit {\n --fa: \"\\f403\";\n}\n\n.fa-uniregistry {\n --fa: \"\\f404\";\n}\n\n.fa-untappd {\n --fa: \"\\f405\";\n}\n\n.fa-ussunnah {\n --fa: \"\\f407\";\n}\n\n.fa-vaadin {\n --fa: \"\\f408\";\n}\n\n.fa-viber {\n --fa: \"\\f409\";\n}\n\n.fa-vimeo {\n --fa: \"\\f40a\";\n}\n\n.fa-vnv {\n --fa: \"\\f40b\";\n}\n\n.fa-square-whatsapp {\n --fa: \"\\f40c\";\n}\n\n.fa-whatsapp-square {\n --fa: \"\\f40c\";\n}\n\n.fa-whmcs {\n --fa: \"\\f40d\";\n}\n\n.fa-wordpress-simple {\n --fa: \"\\f411\";\n}\n\n.fa-xbox {\n --fa: \"\\f412\";\n}\n\n.fa-yandex {\n --fa: \"\\f413\";\n}\n\n.fa-yandex-international {\n --fa: \"\\f414\";\n}\n\n.fa-apple-pay {\n --fa: \"\\f415\";\n}\n\n.fa-cc-apple-pay {\n --fa: \"\\f416\";\n}\n\n.fa-fly {\n --fa: \"\\f417\";\n}\n\n.fa-node {\n --fa: \"\\f419\";\n}\n\n.fa-osi {\n --fa: \"\\f41a\";\n}\n\n.fa-react {\n --fa: \"\\f41b\";\n}\n\n.fa-autoprefixer {\n --fa: \"\\f41c\";\n}\n\n.fa-less {\n --fa: \"\\f41d\";\n}\n\n.fa-sass {\n --fa: \"\\f41e\";\n}\n\n.fa-vuejs {\n --fa: \"\\f41f\";\n}\n\n.fa-angular {\n --fa: \"\\f420\";\n}\n\n.fa-aviato {\n --fa: \"\\f421\";\n}\n\n.fa-ember {\n --fa: \"\\f423\";\n}\n\n.fa-gitter {\n --fa: \"\\f426\";\n}\n\n.fa-hooli {\n --fa: \"\\f427\";\n}\n\n.fa-strava {\n --fa: \"\\f428\";\n}\n\n.fa-stripe {\n --fa: \"\\f429\";\n}\n\n.fa-stripe-s {\n --fa: \"\\f42a\";\n}\n\n.fa-typo3 {\n --fa: \"\\f42b\";\n}\n\n.fa-amazon-pay {\n --fa: \"\\f42c\";\n}\n\n.fa-cc-amazon-pay {\n --fa: \"\\f42d\";\n}\n\n.fa-ethereum {\n --fa: \"\\f42e\";\n}\n\n.fa-korvue {\n --fa: \"\\f42f\";\n}\n\n.fa-elementor {\n --fa: \"\\f430\";\n}\n\n.fa-square-youtube {\n --fa: \"\\f431\";\n}\n\n.fa-youtube-square {\n --fa: \"\\f431\";\n}\n\n.fa-flipboard {\n --fa: \"\\f44d\";\n}\n\n.fa-hips {\n --fa: \"\\f452\";\n}\n\n.fa-php {\n --fa: \"\\f457\";\n}\n\n.fa-quinscape {\n --fa: \"\\f459\";\n}\n\n.fa-readme {\n --fa: \"\\f4d5\";\n}\n\n.fa-java {\n --fa: \"\\f4e4\";\n}\n\n.fa-pied-piper-hat {\n --fa: \"\\f4e5\";\n}\n\n.fa-creative-commons-by {\n --fa: \"\\f4e7\";\n}\n\n.fa-creative-commons-nc {\n --fa: \"\\f4e8\";\n}\n\n.fa-creative-commons-nc-eu {\n --fa: \"\\f4e9\";\n}\n\n.fa-creative-commons-nc-jp {\n --fa: \"\\f4ea\";\n}\n\n.fa-creative-commons-nd {\n --fa: \"\\f4eb\";\n}\n\n.fa-creative-commons-pd {\n --fa: \"\\f4ec\";\n}\n\n.fa-creative-commons-pd-alt {\n --fa: \"\\f4ed\";\n}\n\n.fa-creative-commons-remix {\n --fa: \"\\f4ee\";\n}\n\n.fa-creative-commons-sa {\n --fa: \"\\f4ef\";\n}\n\n.fa-creative-commons-sampling {\n --fa: \"\\f4f0\";\n}\n\n.fa-creative-commons-sampling-plus {\n --fa: \"\\f4f1\";\n}\n\n.fa-creative-commons-share {\n --fa: \"\\f4f2\";\n}\n\n.fa-creative-commons-zero {\n --fa: \"\\f4f3\";\n}\n\n.fa-ebay {\n --fa: \"\\f4f4\";\n}\n\n.fa-keybase {\n --fa: \"\\f4f5\";\n}\n\n.fa-mastodon {\n --fa: \"\\f4f6\";\n}\n\n.fa-r-project {\n --fa: \"\\f4f7\";\n}\n\n.fa-researchgate {\n --fa: \"\\f4f8\";\n}\n\n.fa-teamspeak {\n --fa: \"\\f4f9\";\n}\n\n.fa-first-order-alt {\n --fa: \"\\f50a\";\n}\n\n.fa-fulcrum {\n --fa: \"\\f50b\";\n}\n\n.fa-galactic-republic {\n --fa: \"\\f50c\";\n}\n\n.fa-galactic-senate {\n --fa: \"\\f50d\";\n}\n\n.fa-jedi-order {\n --fa: \"\\f50e\";\n}\n\n.fa-mandalorian {\n --fa: \"\\f50f\";\n}\n\n.fa-old-republic {\n --fa: \"\\f510\";\n}\n\n.fa-phoenix-squadron {\n --fa: \"\\f511\";\n}\n\n.fa-sith {\n --fa: \"\\f512\";\n}\n\n.fa-trade-federation {\n --fa: \"\\f513\";\n}\n\n.fa-wolf-pack-battalion {\n --fa: \"\\f514\";\n}\n\n.fa-hornbill {\n --fa: \"\\f592\";\n}\n\n.fa-mailchimp {\n --fa: \"\\f59e\";\n}\n\n.fa-megaport {\n --fa: \"\\f5a3\";\n}\n\n.fa-nimblr {\n --fa: \"\\f5a8\";\n}\n\n.fa-rev {\n --fa: \"\\f5b2\";\n}\n\n.fa-shopware {\n --fa: \"\\f5b5\";\n}\n\n.fa-squarespace {\n --fa: \"\\f5be\";\n}\n\n.fa-themeco {\n --fa: \"\\f5c6\";\n}\n\n.fa-weebly {\n --fa: \"\\f5cc\";\n}\n\n.fa-wix {\n --fa: \"\\f5cf\";\n}\n\n.fa-ello {\n --fa: \"\\f5f1\";\n}\n\n.fa-hackerrank {\n --fa: \"\\f5f7\";\n}\n\n.fa-kaggle {\n --fa: \"\\f5fa\";\n}\n\n.fa-markdown {\n --fa: \"\\f60f\";\n}\n\n.fa-neos {\n --fa: \"\\f612\";\n}\n\n.fa-zhihu {\n --fa: \"\\f63f\";\n}\n\n.fa-alipay {\n --fa: \"\\f642\";\n}\n\n.fa-the-red-yeti {\n --fa: \"\\f69d\";\n}\n\n.fa-critical-role {\n --fa: \"\\f6c9\";\n}\n\n.fa-d-and-d-beyond {\n --fa: \"\\f6ca\";\n}\n\n.fa-dev {\n --fa: \"\\f6cc\";\n}\n\n.fa-fantasy-flight-games {\n --fa: \"\\f6dc\";\n}\n\n.fa-wizards-of-the-coast {\n --fa: \"\\f730\";\n}\n\n.fa-think-peaks {\n --fa: \"\\f731\";\n}\n\n.fa-reacteurope {\n --fa: \"\\f75d\";\n}\n\n.fa-artstation {\n --fa: \"\\f77a\";\n}\n\n.fa-atlassian {\n --fa: \"\\f77b\";\n}\n\n.fa-canadian-maple-leaf {\n --fa: \"\\f785\";\n}\n\n.fa-centos {\n --fa: \"\\f789\";\n}\n\n.fa-confluence {\n --fa: \"\\f78d\";\n}\n\n.fa-dhl {\n --fa: \"\\f790\";\n}\n\n.fa-diaspora {\n --fa: \"\\f791\";\n}\n\n.fa-fedex {\n --fa: \"\\f797\";\n}\n\n.fa-fedora {\n --fa: \"\\f798\";\n}\n\n.fa-figma {\n --fa: \"\\f799\";\n}\n\n.fa-intercom {\n --fa: \"\\f7af\";\n}\n\n.fa-invision {\n --fa: \"\\f7b0\";\n}\n\n.fa-jira {\n --fa: \"\\f7b1\";\n}\n\n.fa-mendeley {\n --fa: \"\\f7b3\";\n}\n\n.fa-raspberry-pi {\n --fa: \"\\f7bb\";\n}\n\n.fa-redhat {\n --fa: \"\\f7bc\";\n}\n\n.fa-sketch {\n --fa: \"\\f7c6\";\n}\n\n.fa-sourcetree {\n --fa: \"\\f7d3\";\n}\n\n.fa-suse {\n --fa: \"\\f7d6\";\n}\n\n.fa-ubuntu {\n --fa: \"\\f7df\";\n}\n\n.fa-ups {\n --fa: \"\\f7e0\";\n}\n\n.fa-usps {\n --fa: \"\\f7e1\";\n}\n\n.fa-yarn {\n --fa: \"\\f7e3\";\n}\n\n.fa-airbnb {\n --fa: \"\\f834\";\n}\n\n.fa-battle-net {\n --fa: \"\\f835\";\n}\n\n.fa-bootstrap {\n --fa: \"\\f836\";\n}\n\n.fa-buffer {\n --fa: \"\\f837\";\n}\n\n.fa-chromecast {\n --fa: \"\\f838\";\n}\n\n.fa-evernote {\n --fa: \"\\f839\";\n}\n\n.fa-itch-io {\n --fa: \"\\f83a\";\n}\n\n.fa-salesforce {\n --fa: \"\\f83b\";\n}\n\n.fa-speaker-deck {\n --fa: \"\\f83c\";\n}\n\n.fa-symfony {\n --fa: \"\\f83d\";\n}\n\n.fa-waze {\n --fa: \"\\f83f\";\n}\n\n.fa-yammer {\n --fa: \"\\f840\";\n}\n\n.fa-git-alt {\n --fa: \"\\f841\";\n}\n\n.fa-stackpath {\n --fa: \"\\f842\";\n}\n\n.fa-cotton-bureau {\n --fa: \"\\f89e\";\n}\n\n.fa-buy-n-large {\n --fa: \"\\f8a6\";\n}\n\n.fa-mdb {\n --fa: \"\\f8ca\";\n}\n\n.fa-orcid {\n --fa: \"\\f8d2\";\n}\n\n.fa-swift {\n --fa: \"\\f8e1\";\n}\n\n.fa-umbraco {\n --fa: \"\\f8e8\";\n}\n\nhtml {\n /*****************************************************************************\n * Overall Layout Variables\n */\n --pst-header-height: 4rem;\n --pst-header-article-height: calc(var(--pst-header-height) * 2 / 3);\n --pst-sidebar-secondary: 17rem;\n}\n\n/*******************************************************************************\n* Breakpoints that trigger UI changes\n*\n* Note that media-breakpoint-down begins at the next highest level!\n* So we should choose a media-breakpoint-down one *lower* than when we want to start\n* example: media-breakpoint-up(md) and media-breakpoint-down(sm) trigger at the same time\n* ref: https://github.com/twbs/bootstrap/issues/31214\n*/\n/*******************************************************************************\n* Define the animation behaviour\n*/\n/*******************************************************************************\n* UI shaping and padding\n*/\nhtml {\n /*****************************************************************************\n * Font features used in this theme\n */\n --pst-font-size-base: 1rem;\n --pst-font-size-h1: 2.625rem;\n --pst-font-size-h2: 2.125rem;\n --pst-font-size-h3: 1.75rem;\n --pst-font-size-h4: 1.5rem;\n --pst-font-size-h5: 1.25rem;\n --pst-font-size-h6: 1rem;\n --pst-font-size-milli: 0.9rem;\n --pst-sidebar-font-size: 0.9rem;\n --pst-sidebar-font-size-mobile: 1.1rem;\n --pst-sidebar-header-font-size: 1.2rem;\n --pst-sidebar-header-font-weight: 600;\n --pst-admonition-font-weight-heading: 600;\n --pst-font-weight-caption: 300;\n --pst-font-weight-heading: 600;\n --pst-font-family-base-system:\n system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\",\n \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --pst-font-family-monospace-system:\n ui-monospace, \"Cascadia Code\", \"Source Code Pro\", \"Menlo\", \"Consolas\",\n \"DejaVu Sans Mono\", monospace;\n --pst-font-family-base: var(--pst-font-family-base-system);\n --pst-font-family-heading: var(--pst-font-family-base-system);\n --pst-font-family-monospace: var(--pst-font-family-monospace-system);\n}\n\nhtml {\n /*****************************************************************************\n * Icon\n */\n --pst-font-size-icon: 1.5rem;\n --pst-icon-check-circle: \"\";\n --pst-icon-info-circle: \"\";\n --pst-icon-exclamation-triangle: \"\";\n --pst-icon-exclamation-circle: \"\";\n --pst-icon-times-circle: \"\";\n --pst-icon-lightbulb: \"\";\n --pst-icon-download: \"\";\n --pst-icon-angle-left: \"\";\n --pst-icon-angle-right: \"\";\n --pst-icon-external-link: \"\";\n --pst-icon-search-minus: \"\";\n --pst-icon-github: \"\";\n --pst-icon-gitlab: \"\";\n --pst-icon-share: \"\";\n --pst-icon-bell: \"\";\n --pst-icon-pencil: \"\";\n --pst-breadcrumb-divider: \"\";\n}\n\nhtml {\n /*****************************************************************************\n * Admonitions\n **/\n --pst-icon-admonition-default: var(--pst-icon-bell);\n --pst-icon-admonition-note: var(--pst-icon-info-circle);\n --pst-icon-admonition-attention: var(--pst-icon-exclamation-circle);\n --pst-icon-admonition-caution: var(--pst-icon-exclamation-triangle);\n --pst-icon-admonition-warning: var(--pst-icon-exclamation-triangle);\n --pst-icon-admonition-danger: var(--pst-icon-exclamation-triangle);\n --pst-icon-admonition-error: var(--pst-icon-times-circle);\n --pst-icon-admonition-hint: var(--pst-icon-lightbulb);\n --pst-icon-admonition-tip: var(--pst-icon-lightbulb);\n --pst-icon-admonition-important: var(--pst-icon-exclamation-circle);\n --pst-icon-admonition-seealso: var(--pst-icon-share);\n --pst-icon-admonition-todo: var(--pst-icon-pencil);\n}\n\nhtml {\n /*****************************************************************************\n * versionmodified\n **/\n --pst-icon-versionmodified-default: var(--pst-icon-exclamation-circle);\n --pst-icon-versionmodified-added: var(--pst-icon-exclamation-circle);\n --pst-icon-versionmodified-changed: var(--pst-icon-exclamation-circle);\n --pst-icon-versionmodified-deprecated: var(--pst-icon-exclamation-circle);\n --pst-icon-versionmodified-removed: var(--pst-icon-exclamation-circle);\n}\n\n/*******************************************************************************\n* master color map. Only the colors that actually differ between light and dark\n* themes are specified separately.\n*\n* To see the full list of colors see https://www.figma.com/file/rUrrHGhUBBIAAjQ82x6pz9/PyData-Design-system---proposal-for-implementation-(2)?node-id=1234%3A765&t=ifcFT1JtnrSshGfi-1\n*/\n/**\n* Function to get items from nested maps\n*/\n/* Assign base colors for the PyData theme */\n:root {\n --pst-teal-50: #f4fbfc;\n --pst-teal-100: #e9f6f8;\n --pst-teal-200: #d0ecf1;\n --pst-teal-300: #abdde6;\n --pst-teal-400: #3fb1c5;\n --pst-teal-500: #0a7d91;\n --pst-teal-600: #085d6c;\n --pst-teal-700: #064752;\n --pst-teal-800: #042c33;\n --pst-teal-900: #021b1f;\n --pst-violet-50: #f4eefb;\n --pst-violet-100: #e0c7ff;\n --pst-violet-200: #d5b4fd;\n --pst-violet-300: #b780ff;\n --pst-violet-400: #9c5ffd;\n --pst-violet-500: #8045e5;\n --pst-violet-600: #6432bd;\n --pst-violet-700: #4b258f;\n --pst-violet-800: #341a61;\n --pst-violet-900: #1e0e39;\n --pst-gray-50: #f9f9fa;\n --pst-gray-100: #f3f4f5;\n --pst-gray-200: #e5e7ea;\n --pst-gray-300: #d1d5da;\n --pst-gray-400: #9ca4af;\n --pst-gray-500: #677384;\n --pst-gray-600: #48566b;\n --pst-gray-700: #29313d;\n --pst-gray-800: #222832;\n --pst-gray-900: #14181e;\n --pst-pink-50: #fcf8fd;\n --pst-pink-100: #fcf0fa;\n --pst-pink-200: #f8dff5;\n --pst-pink-300: #f3c7ee;\n --pst-pink-400: #e47fd7;\n --pst-pink-500: #c132af;\n --pst-pink-600: #912583;\n --pst-pink-700: #6e1c64;\n --pst-pink-800: #46123f;\n --pst-pink-900: #2b0b27;\n --pst-foundation-white: #ffffff;\n --pst-foundation-black: #14181e;\n}\n\n/*******************************************************************************\n* write the color rules for each theme (light/dark)\n*/\n/* NOTE:\n * Mixins enable us to reuse the same definitions for the different modes\n * https://sass-lang.com/documentation/at-rules/mixin\n * something inserts a variable into a CSS selector or property name\n * https://sass-lang.com/documentation/interpolation\n */\n/* Defaults to light mode if data-theme is not set */\nhtml:not([data-theme]) {\n --pst-color-primary: #0a7d91;\n --pst-color-primary-bg: #d0ecf1;\n --pst-color-secondary: #8045e5;\n --pst-color-secondary-bg: #e0c7ff;\n --pst-color-accent: #c132af;\n --pst-color-accent-bg: #f8dff5;\n --pst-color-info: #276be9;\n --pst-color-info-bg: #dce7fc;\n --pst-color-warning: #f66a0a;\n --pst-color-warning-bg: #f8e3d0;\n --pst-color-success: #00843f;\n --pst-color-success-bg: #d6ece1;\n --pst-color-attention: var(--pst-color-warning);\n --pst-color-attention-bg: var(--pst-color-warning-bg);\n --pst-color-danger: #d72d47;\n --pst-color-danger-bg: #f9e1e4;\n --pst-color-text-base: #222832;\n --pst-color-text-muted: #48566b;\n --pst-color-shadow: rgba(0, 0, 0, 0.1);\n --pst-color-border: #d1d5da;\n --pst-color-border-muted: rgba(23, 23, 26, 0.2);\n --pst-color-blockquote-notch: #677384;\n --pst-color-inline-code: #912583;\n --pst-color-link-higher-contrast: #085d6c;\n --pst-color-target: #f3cf95;\n --pst-color-table: #14181e;\n --pst-color-table-row-hover-bg: #d5b4fd;\n --pst-color-table-inner-border: #e5e7ea;\n --pst-color-background: #ffffff;\n --pst-color-on-background: #ffffff;\n --pst-color-surface: #f3f4f5;\n --pst-color-on-surface: #222832;\n --pst-color-heading: var(--pst-color-text-base);\n --pst-color-link: var(--pst-color-primary);\n --pst-color-link-hover: var(--pst-color-secondary);\n --pst-color-table-outer-border: var(--pst-color-surface);\n --pst-color-table-heading-bg: var(--pst-color-surface);\n --pst-color-table-row-zebra-high-bg: var(--pst-color-on-background);\n --pst-color-table-row-zebra-low-bg: var(--pst-color-surface);\n}\nhtml:not([data-theme]) .only-dark,\nhtml:not([data-theme]) .only-dark ~ figcaption {\n display: none !important;\n}\n\n/* NOTE: @each {...} is like a for-loop\n * https://sass-lang.com/documentation/at-rules/control/each\n */\nhtml[data-theme=light] {\n --pst-color-primary: #0a7d91;\n --pst-color-primary-bg: #d0ecf1;\n --pst-color-secondary: #8045e5;\n --pst-color-secondary-bg: #e0c7ff;\n --pst-color-accent: #c132af;\n --pst-color-accent-bg: #f8dff5;\n --pst-color-info: #276be9;\n --pst-color-info-bg: #dce7fc;\n --pst-color-warning: #f66a0a;\n --pst-color-warning-bg: #f8e3d0;\n --pst-color-success: #00843f;\n --pst-color-success-bg: #d6ece1;\n --pst-color-attention: var(--pst-color-warning);\n --pst-color-attention-bg: var(--pst-color-warning-bg);\n --pst-color-danger: #d72d47;\n --pst-color-danger-bg: #f9e1e4;\n --pst-color-text-base: #222832;\n --pst-color-text-muted: #48566b;\n --pst-color-shadow: rgba(0, 0, 0, 0.1);\n --pst-color-border: #d1d5da;\n --pst-color-border-muted: rgba(23, 23, 26, 0.2);\n --pst-color-blockquote-notch: #677384;\n --pst-color-inline-code: #912583;\n --pst-color-link-higher-contrast: #085d6c;\n --pst-color-target: #f3cf95;\n --pst-color-table: #14181e;\n --pst-color-table-row-hover-bg: #d5b4fd;\n --pst-color-table-inner-border: #e5e7ea;\n --pst-color-background: #ffffff;\n --pst-color-on-background: #ffffff;\n --pst-color-surface: #f3f4f5;\n --pst-color-on-surface: #222832;\n --pst-color-heading: var(--pst-color-text-base);\n --pst-color-link: var(--pst-color-primary);\n --pst-color-link-hover: var(--pst-color-secondary);\n --pst-color-table-outer-border: var(--pst-color-surface);\n --pst-color-table-heading-bg: var(--pst-color-surface);\n --pst-color-table-row-zebra-high-bg: var(--pst-color-on-background);\n --pst-color-table-row-zebra-low-bg: var(--pst-color-surface);\n color-scheme: light;\n}\nhtml[data-theme=light] .only-dark,\nhtml[data-theme=light] .only-dark ~ figcaption {\n display: none !important;\n}\n\nhtml[data-theme=dark] {\n --pst-color-primary: #3fb1c5;\n --pst-color-primary-bg: #042c33;\n --pst-color-secondary: #9c5ffd;\n --pst-color-secondary-bg: #341a61;\n --pst-color-accent: #e47fd7;\n --pst-color-accent-bg: #46123f;\n --pst-color-info: #79a3f2;\n --pst-color-info-bg: #06245d;\n --pst-color-warning: #ff9245;\n --pst-color-warning-bg: #652a02;\n --pst-color-success: #5fb488;\n --pst-color-success-bg: #002f17;\n --pst-color-attention: var(--pst-color-warning);\n --pst-color-attention-bg: var(--pst-color-warning-bg);\n --pst-color-danger: #e78894;\n --pst-color-danger-bg: #4e111b;\n --pst-color-text-base: #ced6dd;\n --pst-color-text-muted: #9ca4af;\n --pst-color-shadow: rgba(0, 0, 0, 0.2);\n --pst-color-border: #48566b;\n --pst-color-border-muted: #29313d;\n --pst-color-blockquote-notch: #9ca4af;\n --pst-color-inline-code: #f3c7ee;\n --pst-color-link-higher-contrast: #3fb1c5;\n --pst-color-target: #675c04;\n --pst-color-table: #ffffff;\n --pst-color-table-row-hover-bg: #4b258f;\n --pst-color-table-inner-border: #364150;\n --pst-color-background: #14181e;\n --pst-color-on-background: #222832;\n --pst-color-surface: #29313d;\n --pst-color-on-surface: #f3f4f5;\n --pst-color-heading: var(--pst-color-text-base);\n --pst-color-link: var(--pst-color-primary);\n --pst-color-link-hover: var(--pst-color-secondary);\n --pst-color-table-outer-border: var(--pst-color-surface);\n --pst-color-table-heading-bg: var(--pst-color-surface);\n --pst-color-table-row-zebra-high-bg: var(--pst-color-on-background);\n --pst-color-table-row-zebra-low-bg: var(--pst-color-surface);\n /* Adjust images in dark mode (unless they have class .only-dark or\n * .dark-light, in which case assume they're already optimized for dark\n * mode).\n */\n /* Give images a light background in dark mode in case they have\n * transparency and black text (unless they have class .only-dark or .dark-light, in\n * which case assume they're already optimized for dark mode).\n */\n color-scheme: dark;\n}\nhtml[data-theme=dark] .only-light,\nhtml[data-theme=dark] .only-light ~ figcaption {\n display: none !important;\n}\nhtml[data-theme=dark] img:not(.only-dark, .dark-light) {\n filter: brightness(0.8) contrast(1.2);\n}\nhtml[data-theme=dark] .bd-content img:not(.only-dark, .dark-light) {\n background-color: rgb(255, 255, 255);\n border-radius: 0.25rem;\n}\nhtml[data-theme=dark] .MathJax_SVG * {\n fill: var(--pst-color-text-base);\n}\n\n.pst-color-primary {\n color: var(--pst-color-primary);\n}\n\n.pst-color-secondary {\n color: var(--pst-color-secondary);\n}\n\n.pst-color-accent {\n color: var(--pst-color-accent);\n}\n\n.pst-color-info {\n color: var(--pst-color-info);\n}\n\n.pst-color-warning {\n color: var(--pst-color-warning);\n}\n\n.pst-color-success {\n color: var(--pst-color-success);\n}\n\n.pst-color-attention {\n color: var(--pst-color-attention);\n}\n\n.pst-color-danger {\n color: var(--pst-color-danger);\n}\n\n.pst-color-text-base {\n color: var(--pst-color-text-base);\n}\n\n.pst-color-text-muted {\n color: var(--pst-color-text-muted);\n}\n\n.pst-color-shadow {\n color: var(--pst-color-shadow);\n}\n\n.pst-color-border {\n color: var(--pst-color-border);\n}\n\n.pst-color-border-muted {\n color: var(--pst-color-border-muted);\n}\n\n.pst-color-blockquote-notch {\n color: var(--pst-color-blockquote-notch);\n}\n\n.pst-color-inline-code {\n color: var(--pst-color-inline-code);\n}\n\n.pst-color-link-higher-contrast {\n color: var(--pst-color-link-higher-contrast);\n}\n\n.pst-color-target {\n color: var(--pst-color-target);\n}\n\n.pst-color-table {\n color: var(--pst-color-table);\n}\n\n.pst-color-table-row-hover {\n color: var(--pst-color-table-row-hover);\n}\n\n.pst-color-table-inner-border {\n color: var(--pst-color-table-inner-border);\n}\n\n.pst-color-background {\n color: var(--pst-color-background);\n}\n\n.pst-color-on-background {\n color: var(--pst-color-on-background);\n}\n\n.pst-color-surface {\n color: var(--pst-color-surface);\n}\n\n.pst-color-on-surface {\n color: var(--pst-color-on-surface);\n}\n\n/**\n * Miscellaneous color functions and mixins\n**/\n/**\n* Function to get items from nested maps\n*/\n/**\n * Function to check if the color needs converting to a \"color\" type\n * if it is a string we cannot use other color manipulation functions\n * It is used to create the sphinx-design colours as these are often interpolated\n */\n/**\n * Function to convert the string representation of a color to a color type (hex)\n */\n/*********************************************\n* SASS Mixins\n*********************************************/\n/**\n * A consistent box shadow style we apply across elements.\n */\n/**\n * Set background of some cell outputs to white-ish to make sure colors work\n * This is because many libraries make output that only looks good on white\n */\nhtml {\n font-size: var(--pst-font-size-base);\n scroll-padding-top: calc(var(--pst-header-height) + 1rem);\n}\n\nbody {\n background-color: var(--pst-color-background);\n font-family: var(--pst-font-family-base);\n font-weight: 400;\n line-height: 1.65;\n color: var(--pst-color-text-base);\n min-height: 100vh;\n display: flex;\n flex-direction: column;\n}\nbody::-webkit-scrollbar-track {\n background-color: var(--pst-color-background);\n}\n\np {\n margin-bottom: 1.15rem;\n font-size: 1em;\n /* section header in docstring pages */\n}\np.rubric {\n border-bottom: 1px solid var(--pst-color-border);\n}\np.centered {\n text-align: center;\n}\n\na {\n overflow-wrap: break-word;\n color: var(--pst-color-link);\n text-decoration: underline;\n text-decoration-thickness: max(1px, .0625rem);\n text-underline-offset: 0.1578em;\n}\na:hover {\n color: var(--pst-color-link-hover);\n text-decoration-thickness: max(3px, .1875rem, .12em);\n text-decoration-skip-ink: none;\n}\na:active {\n color: var(--pst-color-link);\n}\na:visited {\n color: var(--pst-color-link);\n}\na:visited:hover {\n color: var(--pst-color-link-hover);\n}\na.headerlink {\n color: var(--pst-color-secondary);\n font-size: 0.8em;\n padding: 0 4px;\n margin-left: 0.2em;\n text-decoration: none;\n user-select: none;\n}\na.github::before, a.gitlab::before {\n color: var(--pst-color-text-muted);\n font: var(--fa-font-brands);\n margin-right: 0.25rem;\n}\na.github::before {\n content: var(--pst-icon-github);\n}\na.gitlab::before {\n content: var(--pst-icon-gitlab);\n}\n\nh6, .h6, h5, .h5, h4, .h4, h3, .h3, h2, .h2, h1, .h1 {\n margin: 2.75rem 0 1.05rem;\n font-family: var(--pst-font-family-heading);\n font-weight: var(--pst-font-weight-heading);\n line-height: 1.15;\n}\n\nh1, .h1 {\n margin-top: 0;\n font-size: var(--pst-font-size-h1);\n color: var(--pst-heading-color, --pst-color-heading);\n}\n\nh2, .h2 {\n font-size: var(--pst-font-size-h2);\n color: var(--pst-heading-color, --pst-color-heading);\n}\n\nh3, .h3 {\n font-size: var(--pst-font-size-h3);\n color: var(--pst-heading-color, --pst-color-heading);\n}\n\nh4, .h4 {\n font-size: var(--pst-font-size-h4);\n color: var(--pst-heading-color, --pst-color-heading);\n}\n\nh5, .h5 {\n font-size: var(--pst-font-size-h5);\n color: var(--pst-color-text-base);\n}\n\nh6, .h6 {\n font-size: var(--pst-font-size-h6);\n color: var(--pst-color-text-base);\n}\n\nsmall, .small,\n.text_small {\n font-size: var(--pst-font-size-milli);\n}\n\nhr {\n border: 0;\n border-top: 1px solid var(--pst-color-border);\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: var(--pst-font-family-monospace);\n}\n\nkbd {\n background-color: var(--pst-color-on-background);\n color: var(--pst-color-text-muted);\n}\nkbd:not(.compound) {\n border: 1px solid var(--pst-color-border);\n margin: 0 0.1rem;\n padding: 0.1rem 0.4rem;\n box-shadow: 1px 1px 1px var(--pst-color-shadow);\n}\n\ncode {\n color: var(--pst-color-inline-code);\n}\n\npre {\n margin: 1.5em 0;\n padding: 1rem;\n background-color: var(--pst-color-surface);\n color: var(--pst-color-text-base);\n line-height: 1.2em;\n border: 1px solid var(--pst-color-border);\n border-radius: 0.25rem;\n}\npre .linenos {\n opacity: 0.8;\n padding-right: 10px;\n}\n\n#pst-back-to-top {\n z-index: 1080;\n position: fixed;\n display: none;\n top: 90vh;\n left: 50vw;\n transform: translate(-50%);\n color: var(--pst-color-secondary-text);\n background-color: var(--pst-color-secondary);\n border: none;\n}\n#pst-back-to-top .fa-arrow-up {\n margin-inline-end: 0.5em;\n}\n#pst-back-to-top:hover {\n text-decoration: underline;\n text-decoration-thickness: max(1px, .0625rem);\n text-underline-offset: 0.1578em;\n text-decoration-thickness: max(3px, .1875rem, .12em);\n text-decoration-skip-ink: none;\n color: var(--pst-color-link-hover);\n text-decoration-thickness: 1px;\n background-color: var(--pst-color-secondary-highlight);\n color: var(--pst-color-secondary-highlight-text);\n}\n#pst-back-to-top:focus-visible {\n box-shadow: none;\n outline: var(--pst-color-accent) solid 0.1875rem;\n outline-color: var(--pst-color-secondary);\n outline-offset: 0.1875rem;\n}\n\n:focus-visible {\n outline: var(--pst-color-accent) solid 0.1875rem;\n box-shadow: none;\n}\n\n/***\n * Rules for the UX/UI of skip navigation link btn.\n * It's only visible to people\n * navigating with keyboard for accessibility purposes\n * ref: https://www.youtube.com/watch?v=VUR0I5mqq7I\n ***/\n.skip-link {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n text-align: center;\n background-color: var(--pst-color-warning);\n padding: 0.5rem;\n z-index: 1055;\n border-bottom: 1px solid var(--pst-color-border);\n transform: translateY(-100%);\n transition: transform 150ms ease-in-out;\n}\n.skip-link:focus-within {\n transform: translateY(0%);\n}\n.skip-link a {\n color: var(--pst-color-warning-text) !important;\n}\n.skip-link a:focus-visible {\n outline-color: #14181e;\n}\n\n.bd-container {\n flex-grow: 1;\n display: flex;\n justify-content: center;\n}\n.bd-container .bd-container__inner {\n display: flex;\n}\n\n.bd-page-width {\n width: 100%;\n}\n@media (min-width: 960px) {\n .bd-page-width {\n max-width: 88rem;\n }\n}\n\n.pst-async-banner-revealer {\n height: 0;\n overflow: hidden;\n transition: height 300ms ease-in-out;\n}\n@media (prefers-reduced-motion) {\n .pst-async-banner-revealer {\n transition: none;\n }\n}\n\n#bd-header-version-warning,\n.bd-header-announcement {\n min-height: 3rem;\n width: 100%;\n display: flex;\n position: relative;\n align-items: center;\n justify-content: center;\n text-align: center;\n padding: 0.5rem 12.5%;\n}\n@media (max-width: 959.98px) {\n #bd-header-version-warning,\n .bd-header-announcement {\n padding: 0.5rem 2%;\n }\n}\n#bd-header-version-warning p,\n.bd-header-announcement p {\n font-weight: bold;\n margin: 0;\n}\n#bd-header-version-warning a,\n.bd-header-announcement a {\n color: var(--pst-color-link-higher-contrast);\n}\n#bd-header-version-warning a:hover,\n.bd-header-announcement a:hover {\n text-decoration: underline;\n text-decoration-thickness: max(1px, .0625rem);\n text-underline-offset: 0.1578em;\n text-decoration-thickness: max(3px, .1875rem, .12em);\n text-decoration-skip-ink: none;\n color: var(--pst-color-link-hover);\n cursor: pointer;\n}\n#bd-header-version-warning .pst-button-link-to-stable-version,\n.bd-header-announcement .pst-button-link-to-stable-version {\n box-shadow: 0 0.2rem 0.5rem var(--pst-color-shadow), 0 0 0.0625rem var(--pst-color-shadow) !important;\n background-color: var(--pst-color-danger);\n border-color: var(--pst-color-danger);\n color: var(--pst-color-danger-text);\n border-radius: 0.25rem;\n}\n#bd-header-version-warning .pst-button-link-to-stable-version:hover,\n.bd-header-announcement .pst-button-link-to-stable-version:hover {\n text-decoration: underline;\n text-decoration-thickness: max(1px, .0625rem);\n text-underline-offset: 0.1578em;\n text-decoration-thickness: max(3px, .1875rem, .12em);\n text-decoration-skip-ink: none;\n color: var(--pst-color-link-hover);\n text-decoration-thickness: 1px;\n background-color: var(--pst-color-danger-highlight);\n border-color: var(--pst-color-danger-highlight);\n color: var(--pst-color-danger-highlight-text);\n}\n#bd-header-version-warning .pst-button-link-to-stable-version:focus-visible,\n.bd-header-announcement .pst-button-link-to-stable-version:focus-visible {\n outline: 0.1875rem solid var(--pst-color-danger);\n outline-offset: 0.1875rem;\n}\n\n.bd-header-announcement {\n background-color: var(--pst-color-secondary-bg);\n}\n\n#bd-header-version-warning {\n background-color: var(--pst-color-danger-bg);\n}\n\n/**\n * Main content area\n */\n.bd-main {\n flex-grow: 1;\n flex-direction: column;\n display: flex;\n min-width: 0;\n}\n.bd-main .bd-content {\n display: flex;\n justify-content: center;\n height: 100%;\n}\n.bd-main .bd-content .bd-article-container {\n justify-content: start;\n display: flex;\n flex-direction: column;\n width: 100%;\n max-width: 60em;\n overflow-x: auto;\n padding: 1rem;\n}\n@media (min-width: 1200px) {\n .bd-main .bd-content .bd-article-container .bd-article {\n padding-top: 1.5rem;\n padding-left: 2rem;\n }\n}\n.bd-main .bd-content .bd-article-container .bd-article :target > :is(h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5) {\n background-color: var(--pst-color-target);\n}\n.bd-main .bd-content .bd-article-container .bd-article :is(h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6) > code {\n display: inline-block;\n}\n\n.bd-footer {\n width: 100%;\n border-top: 1px solid var(--pst-color-border);\n}\n.bd-footer .bd-footer__inner {\n display: flex;\n flex-grow: 1;\n padding: 1rem;\n margin: auto;\n}\n.bd-footer .footer-items__start,\n.bd-footer .footer-items__center,\n.bd-footer .footer-items__end {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n justify-content: center;\n flex-grow: 1;\n}\n.bd-footer .footer-items__center {\n text-align: center;\n}\n.bd-footer .footer-items__end {\n text-align: end;\n}\n.bd-footer .footer-item p {\n margin-bottom: 0;\n}\n\n.bd-footer-article {\n margin-top: auto;\n}\n.bd-footer-article .footer-article-items {\n display: flex;\n flex-direction: column;\n}\n\n.bd-footer-content .footer-content-items {\n display: flex;\n flex-direction: column;\n margin-top: auto;\n}\n\n/**\n * Header at the top of the page\n * It includes the announcement bar and the navigation bar.\n */\n.pst-sticky-header {\n position: sticky;\n top: 0;\n z-index: 1030;\n}\n.pst-sticky-header .bd-header {\n position: static;\n}\n\n.bd-header {\n position: sticky;\n top: 0;\n z-index: 1030;\n background-color: var(--pst-color-on-background) !important;\n box-shadow: 0 0.125rem 0.25rem 0 var(--pst-color-shadow);\n width: 100%;\n padding: 0;\n max-width: 100vw;\n justify-content: center;\n}\n.bd-header .bd-header__inner {\n display: flex;\n align-items: center;\n height: fit-content;\n padding-left: 1rem;\n padding-right: 1rem;\n}\n.bd-header :focus-visible {\n border-radius: 0.125rem;\n}\n.bd-header .navbar-item {\n height: var(--pst-header-height);\n max-height: var(--pst-header-height);\n display: flex;\n align-items: center;\n}\n.bd-header .navbar-header-items {\n display: none;\n flex-shrink: 1;\n}\n@media (min-width: 960px) {\n .bd-header .navbar-header-items {\n display: inherit;\n flex-grow: 1;\n padding: 0 0 0 0.5rem;\n }\n}\n.bd-header .navbar-header-items__end,\n.bd-header .navbar-header-items__center,\n.bd-header .navbar-header-items__start {\n display: flex;\n align-items: center;\n flex-flow: wrap;\n row-gap: 0;\n}\n.bd-header .navbar-header-items__end,\n.bd-header .navbar-header-items__center {\n column-gap: 1.12rem;\n}\n.bd-header .navbar-header-items__start {\n flex-shrink: 0;\n margin-right: auto;\n gap: 0.5rem;\n}\n.bd-header .navbar-header-items__end {\n justify-content: end;\n}\n.bd-header ul.navbar-nav {\n display: flex;\n}\n@media (min-width: 960px) {\n .bd-header ul.navbar-nav {\n align-items: baseline;\n }\n}\n.bd-header ul.navbar-nav > li.nav-item {\n margin-inline: 2px;\n}\n.bd-header ul.navbar-nav > li.nav-item > .nav-link {\n color: var(--pst-color-text-muted);\n position: relative;\n padding-inline: 6px;\n}\n.bd-header ul.navbar-nav > li.nav-item > .nav-link::before {\n content: \"\";\n display: block;\n position: absolute;\n inset: 0;\n background-color: transparent;\n bottom: calc(-1 * max(3px, .1875rem, .12em));\n margin: max(3px, .1875rem, .12em) 0;\n}\n.bd-header ul.navbar-nav > li.nav-item > .nav-link:hover {\n color: var(--pst-color-secondary);\n text-decoration: none;\n}\n.bd-header ul.navbar-nav > li.nav-item > .nav-link:hover::before {\n border-bottom: max(3px, .1875rem, .12em) solid var(--pst-color-secondary);\n}\n.bd-header ul.navbar-nav > li.nav-item > .nav-link:focus-visible {\n box-shadow: none;\n outline: 3px solid var(--pst-color-accent);\n outline-offset: 0.1875rem;\n}\n.bd-header ul.navbar-nav > li.nav-item.current > .nav-link {\n color: var(--pst-color-primary);\n}\n.bd-header ul.navbar-nav > li.nav-item.current > .nav-link::before {\n border-bottom: 3px solid var(--pst-color-primary);\n}\n.bd-header ul.navbar-nav > li.nav-item.dropdown {\n margin-inline: 4px;\n}\n.bd-header ul.navbar-nav > li.nav-item.dropdown button {\n padding-inline: 8px;\n}\n.bd-header ul.navbar-nav > li.nav-item.dropdown > .dropdown-toggle {\n border-radius: 0.125rem;\n color: var(--pst-color-text-muted);\n}\n.bd-header ul.navbar-nav > li.nav-item.dropdown > .dropdown-toggle:focus-visible {\n box-shadow: 0 0 0 0.1875rem var(--pst-color-accent);\n}\n.bd-header ul.navbar-nav > li.nav-item.dropdown > .dropdown-toggle:hover {\n text-decoration: none;\n box-shadow: 0 0 0 0.1875rem var(--pst-color-link-hover);\n color: var(--pst-color-text-base);\n}\n.bd-header ul.navbar-nav li a.nav-link.dropdown-item {\n color: var(--pst-color-text-muted);\n text-decoration: none;\n}\n.bd-header ul.navbar-nav li a.nav-link.dropdown-item:hover {\n color: var(--pst-color-link-hover);\n text-decoration: underline;\n text-decoration-thickness: max(1px, .0625rem);\n text-underline-offset: 0.1578em;\n text-decoration-thickness: max(3px, .1875rem, .12em);\n text-decoration-skip-ink: none;\n}\n.bd-header ul.navbar-nav .dropdown button {\n display: unset;\n border: none;\n}\n.bd-header ul.navbar-nav .dropdown button:hover {\n text-decoration: underline;\n text-decoration-thickness: max(1px, .0625rem);\n text-underline-offset: 0.1578em;\n text-decoration-thickness: max(3px, .1875rem, .12em);\n text-decoration-skip-ink: none;\n color: var(--pst-color-link-hover);\n}\n.bd-header ul.navbar-nav .dropdown .dropdown-menu {\n z-index: 1070;\n border: 1px solid var(--pst-color-border);\n box-shadow: 0 0 0.3rem 0.1rem var(--pst-color-shadow);\n background-color: var(--pst-color-on-background);\n padding: 0.5rem 0;\n margin: 0.5rem 0;\n min-width: 20rem;\n}\n.bd-header ul.navbar-nav .dropdown .dropdown-menu .dropdown-item {\n padding: 0.25rem 1.5rem;\n}\n.bd-header ul.navbar-nav .dropdown .dropdown-menu .dropdown-item:focus:not(:hover, :active) {\n background-color: inherit;\n}\n.bd-header ul.navbar-nav .dropdown .dropdown-menu .dropdown-item:focus-visible {\n z-index: 10;\n}\n.bd-header ul.navbar-nav .dropdown .dropdown-menu:not(.show) {\n display: none;\n}\n.bd-header button.sidebar-toggle {\n font-size: var(--pst-font-size-icon);\n color: var(--pst-color-muted);\n margin-bottom: 0;\n background-color: inherit;\n padding: 0.5rem;\n}\n.bd-header button.primary-toggle {\n margin-right: 1rem;\n}\n@media (min-width: 960px) {\n .bd-header button.primary-toggle {\n display: none;\n }\n}\n.bd-header button.secondary-toggle {\n margin-left: 1rem;\n}\n@media (min-width: 1200px) {\n .bd-header button.secondary-toggle {\n display: none;\n }\n}\n\n@media (min-width: 960px) {\n .navbar-center-items .navbar-item {\n display: inline-block;\n }\n}\n.nav-link {\n transition: none;\n}\n.nav-link:hover {\n text-decoration: underline;\n text-decoration-thickness: max(1px, .0625rem);\n text-underline-offset: 0.1578em;\n text-decoration-thickness: max(3px, .1875rem, .12em);\n text-decoration-skip-ink: none;\n color: var(--pst-color-link-hover);\n}\n.nav-link.nav-external::after {\n font: var(--fa-font-solid);\n content: var(--pst-icon-external-link);\n font-size: 0.75em;\n margin-left: 0.3em;\n}\n\n.bd-navbar-elements li.nav-item i {\n font-size: 0.7rem;\n padding-left: 2px;\n vertical-align: middle;\n}\n\n.navbar-persistent--mobile {\n margin-left: auto;\n}\n@media (min-width: 960px) {\n .navbar-persistent--mobile {\n display: none;\n }\n}\n\n.navbar-persistent--container {\n display: none;\n}\n@media (min-width: 960px) {\n .navbar-persistent--container {\n display: flex;\n }\n}\n\n.header-article__inner {\n padding: 0 0.5rem;\n}\n.header-article__inner .header-article-item {\n min-height: var(--pst-header-article-height);\n}\n.header-article__inner .header-article-items__end {\n margin-left: auto;\n}\n\n/**\n * The primary sidebar on the left.\n * e.g., between-pages navigation.\n */\n.bd-sidebar-primary {\n display: flex;\n flex-direction: column;\n gap: 1rem;\n max-height: calc(100vh - var(--pst-header-height));\n position: sticky;\n top: var(--pst-header-height);\n flex: 0 0 auto;\n width: 25%;\n padding: 1rem;\n border-right: 1px solid var(--pst-color-border);\n background-color: var(--pst-color-background);\n overflow: hidden auto;\n font-size: var(--pst-sidebar-font-size-mobile);\n}\n@media (min-width: 960px) {\n .bd-sidebar-primary {\n font-size: var(--pst-sidebar-font-size);\n }\n}\n.bd-sidebar-primary :focus-visible {\n border-radius: 0.125rem;\n}\n.bd-sidebar-primary .nav-link {\n font-size: var(--pst-sidebar-font-size-mobile);\n}\n.bd-sidebar-primary.no-sidebar {\n border-right: 0;\n}\n@media (min-width: 960px) {\n .bd-sidebar-primary.hide-on-wide {\n display: none;\n }\n}\n.bd-sidebar-primary h1, .bd-sidebar-primary .h1,\n.bd-sidebar-primary h2,\n.bd-sidebar-primary .h2,\n.bd-sidebar-primary h3,\n.bd-sidebar-primary .h3,\n.bd-sidebar-primary h4,\n.bd-sidebar-primary .h4 {\n color: var(--pst-color-text-base);\n}\n.bd-sidebar-primary .sidebar-primary-items__start .sidebar-primary-item,\n.bd-sidebar-primary .sidebar-primary-items__end .sidebar-primary-item {\n padding: 0.5rem 0;\n}\n.bd-sidebar-primary .sidebar-header-items {\n display: flex;\n flex-direction: column;\n}\n.bd-sidebar-primary .sidebar-header-items .sidebar-header-items__title {\n font-weight: var(--pst-sidebar-header-font-weight);\n font-size: var(--pst-sidebar-header-font-size);\n color: var(--pst-color-text-base);\n margin-bottom: 0.5rem;\n}\n.bd-sidebar-primary .sidebar-header-items .bd-navbar-elements .nav-link:focus-visible {\n box-shadow: none;\n outline: var(--pst-color-accent) solid 0.1875rem;\n outline-offset: 0.1875rem;\n}\n.bd-sidebar-primary .sidebar-header-items .sidebar-header-items__center {\n display: flex;\n flex-direction: column;\n}\n.bd-sidebar-primary .sidebar-header-items .sidebar-header-items__end {\n display: flex;\n align-items: center;\n gap: 1rem;\n}\n@media (min-width: 960px) {\n .bd-sidebar-primary .sidebar-header-items {\n display: none;\n }\n}\n.bd-sidebar-primary .sidebar-primary-items__start {\n border-top: 1px solid var(--pst-color-border);\n}\n@media (min-width: 960px) {\n .bd-sidebar-primary .sidebar-primary-items__start {\n border-top: none;\n }\n}\n.bd-sidebar-primary .sidebar-primary-items__end {\n margin-top: auto;\n margin-bottom: 1em;\n}\n.bd-sidebar-primary .list-caption {\n list-style: none;\n padding-left: 0;\n}\n.bd-sidebar-primary .list-caption li.toctree-l0.has-children > details > summary {\n position: relative;\n height: auto;\n width: auto;\n display: flex;\n justify-content: space-between;\n align-items: baseline;\n}\n.bd-sidebar-primary .list-caption li.toctree-l0.has-children > details > summary .toctree-toggle {\n flex: 0 0 auto;\n}\n.bd-sidebar-primary .list-caption li.toctree-l0.has-children > details > summary .toctree-toggle .fa-chevron-down {\n font-size: 1rem;\n}\n.bd-sidebar-primary li.has-children {\n position: relative;\n}\n.bd-sidebar-primary li.has-children > .reference,\n.bd-sidebar-primary li.has-children .caption {\n margin-right: calc(30px + 0.1875rem);\n padding-top: 0.25rem;\n}\n.bd-sidebar-primary li.has-children > details > summary {\n list-style: none;\n}\n.bd-sidebar-primary li.has-children > details > summary::-webkit-details-marker {\n display: none;\n}\n.bd-sidebar-primary li.has-children > details > summary:focus-visible {\n outline: none;\n}\n.bd-sidebar-primary li.has-children > details > summary:focus-visible > .toctree-toggle {\n outline: var(--pst-color-accent) solid 0.1875rem;\n outline-offset: -0.1875rem;\n}\n.bd-sidebar-primary li.has-children > details > summary .toctree-toggle {\n cursor: pointer;\n position: absolute;\n top: 0;\n right: 0;\n width: 30px;\n height: 30px;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n}\n.bd-sidebar-primary li.has-children > details > summary .toctree-toggle .fa-chevron-down {\n font-size: 0.75rem;\n}\n.bd-sidebar-primary li.has-children > details[open] > summary .fa-chevron-down {\n transform: rotate(180deg);\n}\n\n/* Between-page links and captions */\nnav.bd-links {\n margin-right: -1rem;\n}\n@media (min-width: 960px) {\n nav.bd-links {\n display: block;\n }\n}\nnav.bd-links ul {\n display: block;\n list-style: none;\n}\nnav.bd-links ul ul {\n padding: 0 0 0 1rem;\n}\nnav.bd-links li > a {\n display: block;\n padding: 0.25rem 0.65rem;\n color: var(--pst-color-text-muted);\n text-decoration: none;\n box-shadow: none;\n margin-right: 0.1875rem;\n}\nnav.bd-links li > a:hover {\n text-decoration: underline;\n background-color: transparent;\n color: var(--pst-color-link-hover);\n text-decoration-thickness: max(3px, .1875rem, .12em);\n text-decoration-skip-ink: none;\n}\nnav.bd-links li > a:active {\n color: var(--pst-color-link-hover);\n}\nnav.bd-links li > a:focus-visible {\n box-shadow: 0 0 0 0.1875rem var(--pst-color-accent);\n outline: none;\n z-index: 10;\n}\nnav.bd-links li > a.reference.external::after {\n font: var(--fa-font-solid);\n content: var(--pst-icon-external-link);\n font-size: 0.75em;\n margin-left: 0.3em;\n}\nnav.bd-links .current > a {\n font-weight: 600;\n color: var(--pst-color-primary);\n box-shadow: inset max(3px, .1875rem, .12em) 0 0 var(--pst-color-primary);\n background-color: transparent;\n}\nnav.bd-links .current > a:focus-visible {\n box-shadow: inset max(3px, .1875rem, .12em) 0 0 var(--pst-color-primary), 0 0 0 0.1875rem var(--pst-color-accent);\n outline: none;\n}\nnav.bd-links p.bd-links__title {\n font-size: var(--pst-sidebar-header-font-size);\n font-weight: var(--pst-sidebar-header-font-weight);\n margin-bottom: 0.5rem;\n}\nnav.bd-links p.caption {\n font-weight: var(--pst-sidebar-header-font-weight);\n position: relative;\n margin-top: 1.25rem;\n margin-bottom: 0.5rem;\n color: var(--pst-color-text-base);\n font-size: var(--pst-sidebar-font-size-mobile);\n}\nnav.bd-links p.caption:first-child {\n margin-top: 0;\n}\n@media (min-width: 960px) {\n nav.bd-links p.caption {\n font-size: var(--pst-sidebar-font-size);\n }\n}\n\n/**\n * Secondary sidebar on the right.\n * e.g., in-page table of contents.\n */\n.bd-sidebar-secondary {\n display: flex;\n order: 2;\n flex-shrink: 0;\n flex-direction: column;\n position: sticky;\n top: var(--pst-header-height);\n max-height: calc(100vh - var(--pst-header-height));\n padding: 2rem 1rem 1rem;\n width: var(--pst-sidebar-secondary);\n font-size: var(--pst-sidebar-font-size-mobile);\n background-color: var(--pst-color-background);\n overflow-y: auto;\n}\n@media (min-width: 1200px) {\n .bd-sidebar-secondary {\n font-size: var(--pst-sidebar-font-size);\n }\n}\n\n.sidebar-secondary-item {\n padding: 0.5rem;\n}\n@media (min-width: 1200px) {\n .sidebar-secondary-item {\n border-left: 1px solid var(--pst-color-border);\n padding-left: 1rem;\n }\n}\n.sidebar-secondary-item i {\n padding-right: 0.5rem;\n}\n\n/*******************************************************************************\n* Rules for the UX/UI of sidebar sliding drawers on mobile\n* Note that this sheet controls styles across many parts of the theme\n* It is aggregated into this one sheet instead of being split across\n* components in order to keep it easier to debug in one place.\n* It is broken up into major sections below.\n*/\n/*******************************************************************************\n* Sidebar drawer behavior\n*/\n/**\n * NOTE: We use this mixin to define the toggle behavior on narrow screens,\n * And the wide-screen behavior of the sections is defined in their own section\n * .scss files.\n */\n.bd-sidebar::backdrop {\n background-color: black;\n opacity: 0.5;\n}\n\n@media (max-width: 959.98px) {\n .bd-sidebar-primary {\n position: fixed;\n top: 0;\n z-index: 1055;\n height: 100dvh;\n max-height: 100dvh;\n width: 75%;\n flex-grow: 0.75;\n max-width: 350px;\n transition: visibility 200ms ease-out, margin 200ms ease-out;\n visibility: hidden;\n border: 0;\n margin-left: -75%;\n left: 0;\n }\n}\n.bd-sidebar-primary[open] {\n margin-left: 0;\n visibility: visible;\n}\n\n@media (max-width: 1199.98px) {\n .bd-sidebar-secondary {\n position: fixed;\n top: 0;\n z-index: 1055;\n height: 100dvh;\n max-height: 100dvh;\n width: 75%;\n flex-grow: 0.75;\n max-width: 350px;\n transition: visibility 200ms ease-out, margin 200ms ease-out;\n visibility: hidden;\n border: 0;\n margin-right: -75%;\n right: 0;\n }\n}\n.bd-sidebar-secondary[open] {\n margin-right: 0;\n visibility: visible;\n}\n\n/**\n * Breadcrumbs for parent pages meant for the article header\n */\nul.bd-breadcrumbs {\n list-style: none;\n padding-left: 0;\n display: flex;\n flex-wrap: wrap;\n font-size: 0.8rem;\n}\nul.bd-breadcrumbs li.breadcrumb-item {\n display: flex;\n align-items: center;\n white-space: nowrap;\n overflow-x: hidden;\n font-weight: bold;\n}\nul.bd-breadcrumbs li.breadcrumb-item a,\nul.bd-breadcrumbs li.breadcrumb-item .ellipsis {\n overflow-x: hidden;\n text-overflow: ellipsis;\n margin: 0.1875rem;\n}\nul.bd-breadcrumbs li.breadcrumb-item a {\n color: var(--pst-color-text-muted);\n text-decoration: none;\n}\nul.bd-breadcrumbs li.breadcrumb-item a:hover {\n color: var(--pst-color-link-hover);\n text-decoration: underline;\n text-decoration-thickness: max(1px, .0625rem);\n text-underline-offset: 0.1578em;\n text-decoration-thickness: max(3px, .1875rem, .12em);\n text-decoration-skip-ink: none;\n}\nul.bd-breadcrumbs li.breadcrumb-item:not(.breadcrumb-home)::before {\n font: var(--fa-font-solid);\n font-size: 0.8rem;\n content: var(--pst-breadcrumb-divider);\n color: var(--pst-color-text-muted);\n padding: 0 0.5rem;\n}\n\n/**\n * Icon links in the navbar\n */\nhtml .pst-navbar-icon {\n box-sizing: border-box;\n min-width: 24px;\n min-height: 24px;\n color: var(--pst-color-text-muted);\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 0;\n border: none;\n font-size: 1rem;\n line-height: 1.65;\n padding: 0.25rem 0;\n height: 2.15rem;\n}\nhtml .pst-navbar-icon::before {\n content: \"\";\n display: block;\n position: absolute;\n inset: 0;\n background-color: transparent;\n bottom: calc(-1 * max(3px, .1875rem, .12em));\n margin: max(3px, .1875rem, .12em) 0;\n}\nhtml .pst-navbar-icon:hover {\n color: var(--pst-color-secondary);\n text-decoration: none;\n}\nhtml .pst-navbar-icon:hover::before {\n border-bottom: max(3px, .1875rem, .12em) solid var(--pst-color-secondary);\n}\nhtml .pst-navbar-icon:focus-visible {\n box-shadow: none;\n outline: 3px solid var(--pst-color-accent);\n outline-offset: 0.1875rem;\n}\n\nul.navbar-icon-links {\n display: flex;\n flex-flow: row wrap;\n column-gap: 1.12rem;\n justify-content: space-evenly;\n align-items: center;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\nul.navbar-icon-links svg {\n /* We no longer color the social media icons in their brand colors (makes a11y harder)\n but this one is left in as an example in case we decide to go back to it someday:\n\n &.fa-square-twitter {\n color: #55acee;\n }\n */\n}\nul.navbar-icon-links svg.fa-brands, ul.navbar-icon-links svg.fa-regular, ul.navbar-icon-links svg.fa-solid {\n vertical-align: middle;\n font-style: normal;\n font-size: var(--pst-font-size-icon);\n}\nul.navbar-icon-links img.icon-link-image {\n height: 1.5em;\n border-radius: 0.2rem;\n}\nul.navbar-icon-links .fa-pydata {\n stroke: var(--pst-color-background);\n stroke-linejoin: round;\n stroke-width: 0.35;\n}\n\n/**\n * Logo in the navbar\n */\n.navbar-brand {\n position: relative;\n height: var(--pst-header-height);\n max-height: var(--pst-header-height);\n padding: 0.5rem 0;\n width: auto;\n margin: 0;\n display: flex;\n flex-shrink: 0;\n align-items: center;\n gap: 0.5rem;\n}\n.navbar-brand p {\n color: var(--pst-color-text-base);\n margin-bottom: 0;\n}\n.navbar-brand img {\n max-width: 100%;\n height: 100%;\n width: auto;\n}\n.navbar-brand:hover, .navbar-brand:visited:hover {\n text-decoration: underline;\n text-decoration-thickness: max(1px, .0625rem);\n text-underline-offset: 0.1578em;\n text-decoration-thickness: max(3px, .1875rem, .12em);\n text-decoration-skip-ink: none;\n color: var(--pst-color-link-hover);\n color: var(--pst-color-text-base);\n}\n\n/**\n * Navigation links in the navbar and icon links\n */\nul.navbar-nav ul {\n padding: 0 0 0 1rem;\n}\nul.navbar-nav li {\n display: flex;\n flex-direction: column;\n}\nul.navbar-nav li a {\n display: flex;\n align-items: center;\n height: 100%;\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n color: var(--pst-color-text-muted);\n text-decoration: none;\n}\nul.navbar-nav li a:hover {\n color: var(--pst-color-link-hover);\n text-decoration: underline;\n text-decoration-thickness: max(1px, .0625rem);\n text-underline-offset: 0.1578em;\n text-decoration-thickness: max(3px, .1875rem, .12em);\n text-decoration-skip-ink: none;\n}\n\n/**\n * The list of in-page TOC links\n */\n.page-toc .section-nav {\n padding-left: 0;\n border-bottom: none;\n}\n.page-toc .section-nav ul {\n padding-left: 1rem;\n}\n.page-toc .nav-link {\n font-size: var(--pst-sidebar-font-size-mobile);\n}\n@media (min-width: 1200px) {\n .page-toc .nav-link {\n font-size: var(--pst-sidebar-font-size);\n }\n}\n.page-toc .onthispage {\n color: var(--pst-color-text-base);\n font-weight: var(--pst-sidebar-header-font-weight);\n margin-bottom: 0.5rem;\n}\n\n/**\n* Previous / Next navigation buttons\n**/\n.prev-next-area {\n width: 100%;\n}\n.prev-next-area p {\n color: var(--pst-color-text-muted);\n margin: 0 0.3em;\n line-height: 1.3em;\n}\n.prev-next-area i {\n font-size: 1.2em;\n}\n.prev-next-area a {\n display: flex;\n align-items: center;\n border: none;\n padding: 10px;\n max-width: 45%;\n overflow-x: hidden;\n color: var(--pst-color-text-muted);\n text-decoration: none;\n}\n.prev-next-area a p.prev-next-title {\n overflow-wrap: break-word;\n color: var(--pst-color-link);\n text-decoration: underline;\n text-decoration-thickness: max(1px, .0625rem);\n text-underline-offset: 0.1578em;\n font-weight: var(--pst-admonition-font-weight-heading);\n font-size: 1.1em;\n}\n.prev-next-area a p.prev-next-title:hover {\n color: var(--pst-color-link-hover);\n text-decoration-thickness: max(3px, .1875rem, .12em);\n text-decoration-skip-ink: none;\n}\n.prev-next-area a p.prev-next-title:active {\n color: var(--pst-color-link);\n}\n.prev-next-area a p.prev-next-title:visited {\n color: var(--pst-color-link);\n}\n.prev-next-area a p.prev-next-title:visited:hover {\n color: var(--pst-color-link-hover);\n}\n.prev-next-area a:hover p.prev-next-title, .prev-next-area a:visited:hover p.prev-next-title {\n text-decoration: underline;\n text-decoration-thickness: max(1px, .0625rem);\n text-underline-offset: 0.1578em;\n text-decoration-thickness: max(3px, .1875rem, .12em);\n text-decoration-skip-ink: none;\n color: var(--pst-color-link-hover);\n}\n.prev-next-area a .prev-next-info {\n flex-direction: column;\n margin: 0 0.5em;\n}\n.prev-next-area a .prev-next-info .prev-next-subtitle {\n text-transform: capitalize;\n}\n.prev-next-area a.left-prev {\n float: left;\n}\n.prev-next-area a.right-next {\n float: right;\n}\n.prev-next-area a.right-next div.prev-next-info {\n text-align: right;\n}\n\n/**\n * Search field\n **/\n.bd-search {\n position: relative;\n padding-left: 0.5rem;\n gap: 0.5rem;\n background-color: var(--pst-color-background);\n border-radius: 0.25rem;\n border: 1px solid var(--pst-color-border);\n color: var(--pst-color-text-base);\n}\n.bd-search:active {\n background-color: var(--pst-color-background);\n color: var(--pst-color-text-muted);\n}\n.bd-search:focus-within {\n box-shadow: 0 0 0 0.1875rem var(--pst-color-accent);\n}\n.bd-search:focus-within input:focus {\n box-shadow: none;\n}\n.bd-search .icon {\n position: absolute;\n color: var(--pst-color-border);\n left: 25px;\n}\n.bd-search .fa-solid.fa-magnifying-glass {\n position: absolute;\n left: calc((2.5rem - 0.7em) / 2);\n color: var(--pst-color-text-muted);\n}\n.bd-search input.form-control {\n background-color: var(--pst-color-background);\n color: var(--pst-color-text-base);\n border: none;\n}\n.bd-search input.form-control::placeholder {\n color: var(--pst-color-text-muted);\n}\n.bd-search input.form-control::-webkit-search-cancel-button, .bd-search input.form-control::-webkit-search-decoration {\n appearance: none;\n}\n.bd-search input.form-control:focus, .bd-search input.form-control:focus-visible {\n color: var(--pst-color-text-muted);\n}\n.bd-search .search-button__kbd-shortcut {\n display: none;\n margin-inline-end: 0.5rem;\n color: var(--pst-color-border);\n}\n@media (min-width: 720px) {\n .bd-search .search-button__kbd-shortcut {\n display: flex;\n }\n}\n\n/**\n * Search button - located in the navbar\n */\n.search-button i {\n font-size: 1.3rem;\n}\n\n/**\n * The search modal \n */\n#pst-search-dialog[open] {\n margin: 15vh auto 0;\n width: 90%;\n max-width: 800px;\n max-height: 80vh;\n background-color: transparent;\n padding: 0.1875rem;\n border: none;\n /* In pydata-sphinx-theme.js this container is appended below\n * the query input node after the user types their search query.\n * Search results are populated into this container using Sphinx's\n * built-in, JS-powered local search tools. */\n}\n#pst-search-dialog[open]::backdrop {\n background-color: black;\n opacity: 0.5;\n}\n#pst-search-dialog[open] form.bd-search {\n flex-grow: 0;\n}\n#pst-search-dialog[open] form.bd-search svg,\n#pst-search-dialog[open] form.bd-search input {\n font-size: var(--pst-font-size-icon);\n}\n#pst-search-dialog[open] #search-results {\n overflow-y: scroll;\n background-color: var(--pst-color-background);\n padding: 1em;\n}\n#pst-search-dialog[open] #search-results a {\n color: var(--pst-color-link);\n}\n#pst-search-dialog[open] #search-results.empty {\n display: none;\n}\n\n/**\n * The search button component that looks like a field.\n * Lives at components/search-button-field.html\n */\n.search-button-field {\n display: inline-flex;\n align-items: center;\n border: var(--pst-color-border) solid 1px;\n border-radius: 1.5em;\n color: var(--pst-color-text-muted);\n padding: 0.5em;\n background-color: var(--pst-color-surface);\n}\n.search-button-field:hover {\n box-shadow: 0 0 0 0.1875rem var(--pst-color-link-hover);\n}\n.search-button-field:focus-visible {\n border-radius: 1.5em;\n}\n.search-button-field .search-button__default-text {\n font-size: var(--bs-nav-link-font-size);\n font-weight: var(--bs-nav-link-font-weight);\n margin-right: 0.5em;\n margin-left: 0.5em;\n}\n.search-button-field .kbd-shortcut__modifier {\n font-size: 0.75em;\n}\n.search-button-field > * {\n align-items: center;\n}\n.search-button-field > :not(svg) {\n display: none;\n}\n@media (min-width: 960px) {\n .search-button-field > :not(svg) {\n display: flex;\n }\n}\n\n/**\n * The 'Hide Search Matches' button.\n * This only shows up when a person lands on a page after clicking a search result.\n * Clicking it removes the highlighting of the search term from the page.\n * We want it to behave like a button.\n */\ndiv#searchbox p.highlight-link {\n margin: 1rem 0;\n width: fit-content;\n box-shadow: 0 0.2rem 0.5rem var(--pst-color-shadow), 0 0 0.0625rem var(--pst-color-shadow) !important;\n}\n@media (min-width: 1200px) {\n div#searchbox p.highlight-link {\n margin-left: 2rem;\n }\n}\ndiv#searchbox p.highlight-link a {\n border-radius: 0.25rem;\n font-size: 1.25rem;\n padding: 0.75rem;\n background-color: var(--pst-color-primary);\n color: var(--pst-color-primary-text);\n text-decoration: none;\n transition: box-shadow 0.25s ease-out;\n}\ndiv#searchbox p.highlight-link a:hover {\n box-shadow: inset 0 0 50px 50px rgba(0, 0, 0, 0.25);\n}\ndiv#searchbox p.highlight-link a::before {\n content: var(--pst-icon-search-minus);\n color: unset;\n font: var(--fa-font-solid);\n margin-right: 0.5rem;\n}\n\n/**\n * The collapse/expand primary sidebar button\n */\n.bd-sidebar-primary .sidebar-primary-item.pst-sidebar-collapse {\n padding-top: 0;\n}\n.bd-sidebar-primary #pst-collapse-sidebar-button {\n border: 0;\n padding: 0;\n text-align: start;\n background-color: transparent;\n outline-offset: 0.125rem;\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 0.25rem;\n min-width: 24px;\n min-height: 24px;\n position: relative;\n bottom: 0.2em;\n}\n@media (max-width: 959.98px) {\n .bd-sidebar-primary #pst-collapse-sidebar-button {\n display: none;\n }\n}\n.bd-sidebar-primary #pst-collapse-sidebar-button .pst-icon {\n color: var(--pst-color-link);\n padding: 0.4em 0;\n height: 1.3em;\n}\n.bd-sidebar-primary #pst-collapse-sidebar-button .pst-collapse-sidebar-label {\n width: 100%;\n height: 100%;\n overflow-wrap: break-word;\n color: var(--pst-color-link);\n text-decoration: underline;\n text-decoration-thickness: max(1px, .0625rem);\n text-underline-offset: 0.1578em;\n}\n.bd-sidebar-primary #pst-collapse-sidebar-button .pst-collapse-sidebar-label:hover {\n color: var(--pst-color-link-hover);\n text-decoration-thickness: max(3px, .1875rem, .12em);\n text-decoration-skip-ink: none;\n}\n.bd-sidebar-primary #pst-collapse-sidebar-button .pst-collapse-sidebar-label:active {\n color: var(--pst-color-link);\n}\n.bd-sidebar-primary #pst-collapse-sidebar-button .pst-collapse-sidebar-label:visited {\n color: var(--pst-color-link);\n}\n.bd-sidebar-primary #pst-collapse-sidebar-button .pst-collapse-sidebar-label:visited:hover {\n color: var(--pst-color-link-hover);\n}\n.bd-sidebar-primary #pst-collapse-sidebar-button .pst-expand-sidebar-label {\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 visibility: hidden;\n}\n.bd-sidebar-primary #pst-collapse-sidebar-button .pst-expand-sidebar-label:not(caption) {\n position: absolute !important;\n}\n.bd-sidebar-primary #pst-collapse-sidebar-button:hover .pst-icon {\n color: var(--pst-color-link-hover);\n}\n.bd-sidebar-primary #pst-collapse-sidebar-button:hover .pst-collapse-sidebar-label {\n text-decoration: underline;\n text-decoration-thickness: max(1px, .0625rem);\n text-underline-offset: 0.1578em;\n text-decoration-thickness: max(3px, .1875rem, .12em);\n text-decoration-skip-ink: none;\n color: var(--pst-color-link-hover);\n}\n@media (prefers-reduced-motion: no-preference) {\n .bd-sidebar-primary {\n transition: width 400ms ease;\n }\n .bd-sidebar-primary #pst-collapse-sidebar-button .pst-icon {\n transition: transform 400ms ease, padding 400ms ease;\n }\n .bd-sidebar-primary.pst-squeeze .pst-collapse-sidebar-label {\n transition: opacity 400ms linear, visibility 0s linear 400ms, width 0s linear 400ms, height 0s linear 400ms;\n }\n .bd-sidebar-primary.pst-squeeze .sidebar-primary-item:not(.pst-sidebar-collapse) {\n transition: opacity 400ms linear, visibility 0s linear 400ms;\n }\n .bd-sidebar-primary.pst-squeeze .pst-expand-sidebar-label {\n transition: visibility 0s linear 400ms;\n }\n .bd-sidebar-primary:not(.pst-squeeze) .pst-collapse-sidebar-label {\n transition: opacity 400ms linear, visibility 0s linear \"0s\", width 0s linear \"0s\", height 0s linear \"0s\";\n }\n .bd-sidebar-primary:not(.pst-squeeze) .sidebar-primary-item:not(.pst-sidebar-collapse) {\n transition: opacity 400ms linear, visibility 0s linear \"0s\";\n }\n .bd-sidebar-primary:not(.pst-squeeze) .pst-expand-sidebar-label {\n transition: visibility 0s linear \"0s\";\n }\n}\n.bd-sidebar-primary.pst-squeeze {\n width: 4rem;\n overflow: hidden;\n}\n.bd-sidebar-primary.pst-squeeze #pst-collapse-sidebar-button .pst-icon {\n transform: translateX(0.25em) rotate(180deg);\n}\n.bd-sidebar-primary.pst-squeeze #pst-collapse-sidebar-button .pst-collapse-sidebar-label {\n opacity: 0;\n visibility: hidden;\n width: 0;\n height: 0;\n}\n.bd-sidebar-primary.pst-squeeze #pst-collapse-sidebar-button .pst-expand-sidebar-label {\n visibility: visible;\n}\n.bd-sidebar-primary.pst-squeeze .sidebar-primary-item:not(.pst-sidebar-collapse) {\n opacity: 0;\n visibility: hidden;\n}\n.bd-sidebar-primary:not(.pst-squeeze) .pst-expand-sidebar-label {\n visibility: hidden;\n}\n\n/**\n * Light/dark theme switcher\n */\n.theme-switch-button .theme-switch {\n display: none;\n}\n.theme-switch-button .theme-switch .fa-lg {\n aspect-ratio: 1/1;\n}\n.theme-switch-button .theme-switch.fa-moon {\n transform: scaleX(0.871459695) scaleY(0.8748241913);\n}\n\nhtml[data-mode=auto] .theme-switch-button .theme-switch[data-mode=auto] {\n display: inline;\n}\n\nhtml[data-mode=light] .theme-switch-button .theme-switch[data-mode=light] {\n display: inline;\n}\n\nhtml[data-mode=dark] .theme-switch-button .theme-switch[data-mode=dark] {\n display: inline;\n}\n\nbutton.btn.version-switcher__button {\n border-color: var(--pst-color-border);\n color: var(--pst-color-text-base);\n margin-bottom: 1em;\n}\n@media (min-width: 960px) {\n button.btn.version-switcher__button {\n margin-bottom: unset;\n }\n}\nbutton.btn.version-switcher__button:hover {\n box-shadow: 0 0 0 0.1875rem var(--pst-color-secondary);\n border-color: transparent;\n}\nbutton.btn.version-switcher__button:active {\n color: var(--pst-color-text-base);\n border-color: var(--pst-color-border);\n}\nbutton.btn.version-switcher__button:focus-visible {\n border-color: transparent;\n}\n\n.version-switcher__menu {\n border-color: var(--pst-color-border);\n border-radius: var(--bs-dropdown-border-radius);\n}\n.version-switcher__menu a.list-group-item {\n background-color: var(--pst-color-on-background);\n color: var(--pst-color-text-base);\n padding: 0.75rem 1.25rem;\n}\n.version-switcher__menu a.list-group-item:not(:last-child) {\n border-bottom: 1px solid var(--pst-color-border);\n}\n.version-switcher__menu a.list-group-item:hover {\n text-decoration: underline;\n text-decoration-thickness: max(1px, .0625rem);\n text-underline-offset: 0.1578em;\n text-decoration-thickness: max(3px, .1875rem, .12em);\n text-decoration-skip-ink: none;\n color: var(--pst-color-link-hover);\n background-color: var(--pst-color-surface);\n}\n.version-switcher__menu a.list-group-item.active {\n font-weight: 600;\n color: var(--pst-color-primary);\n box-shadow: inset max(3px, .1875rem, .12em) 0 0 var(--pst-color-primary);\n position: relative;\n z-index: 1;\n}\n.version-switcher__menu a.list-group-item.active:focus-visible {\n box-shadow: inset max(3px, .1875rem, .12em) 0 0 var(--pst-color-primary), 0 0 0 0.1875rem var(--pst-color-accent);\n outline: none;\n}\n.version-switcher__menu a.list-group-item.active span::before {\n content: \"\";\n width: 100%;\n height: 100%;\n position: absolute;\n z-index: -1;\n left: 0;\n top: 0;\n}\n.version-switcher__menu a.list-group-item:focus-visible {\n z-index: 10;\n}\n\nbutton.version-switcher__button,\n.version-switcher__menu {\n font-size: 1.1em;\n z-index: 1055;\n box-sizing: border-box;\n min-width: 24px;\n min-height: 24px;\n}\n@media (min-width: 960px) {\n button.version-switcher__button,\n .version-switcher__menu {\n font-size: unset;\n }\n}\n\n/* Collapsing of the TOC sidebar while scrolling */\n/* Nav: hide second level (shown on .active) */\nnav.page-toc {\n margin-bottom: 1rem;\n}\n\n.bd-toc .nav .nav {\n display: none;\n}\n.bd-toc .nav .nav.pst-show_toc_level {\n display: block;\n}\n.bd-toc .nav > .active > ul {\n display: block;\n}\n\n.toc-entry {\n display: block;\n}\n.toc-entry a > code {\n color: var(--pst-color-text-muted);\n}\n.toc-entry a.nav-link {\n display: block;\n padding: 0.25rem 0;\n padding-left: 1rem;\n margin-left: -1rem;\n color: var(--pst-color-text-muted);\n text-decoration: none;\n}\n.toc-entry a.nav-link:hover {\n text-decoration: underline;\n background-color: transparent;\n color: var(--pst-color-link-hover);\n text-decoration-thickness: max(3px, .1875rem, .12em);\n text-decoration-skip-ink: none;\n}\n.toc-entry a.nav-link:active {\n color: var(--pst-color-link-hover);\n}\n.toc-entry a.nav-link:focus-visible {\n box-shadow: 0 0 0 0.1875rem var(--pst-color-accent);\n outline: none;\n z-index: 10;\n}\n.toc-entry a.nav-link.active, .toc-entry a.nav-link[aria-current=true] {\n font-weight: 600;\n color: var(--pst-color-primary);\n box-shadow: inset max(3px, .1875rem, .12em) 0 0 var(--pst-color-primary);\n background-color: transparent;\n}\n.toc-entry a.nav-link.active:focus-visible, .toc-entry a.nav-link[aria-current=true]:focus-visible {\n box-shadow: inset max(3px, .1875rem, .12em) 0 0 var(--pst-color-primary), 0 0 0 0.1875rem var(--pst-color-accent);\n outline: none;\n}\n.toc-entry a.nav-link.active:hover, .toc-entry a.nav-link[aria-current=true]:hover {\n color: var(--pst-color-link-hover);\n}\n.toc-entry a.nav-link:focus-visible {\n border-radius: 0.125rem;\n}\n\ndiv.versionadded,\ndiv.versionchanged,\ndiv.deprecated,\ndiv.versionremoved {\n vertical-align: middle;\n margin: 1.5625em auto;\n padding: 0 0.6rem;\n overflow: hidden;\n /* break-inside has replaced page-break-inside and is widely usable since 2019 */\n break-inside: avoid;\n border-left: 0.2rem solid;\n border-color: var(--pst-color-info);\n border-radius: 0.25rem;\n background-color: var(--pst-color-on-background);\n box-shadow: 0 0.2rem 0.5rem var(--pst-color-shadow), 0 0 0.0625rem var(--pst-color-shadow) !important;\n position: relative;\n}\ndiv.versionadded > p,\ndiv.versionchanged > p,\ndiv.deprecated > p,\ndiv.versionremoved > p {\n margin-bottom: 0.6rem;\n margin-top: 0.6rem;\n}\ndiv.versionadded a,\ndiv.versionchanged a,\ndiv.deprecated a,\ndiv.versionremoved a {\n color: var(--pst-color-link-higher-contrast);\n}\n\ndiv.versionadded {\n border-color: var(--pst-color-success);\n background-color: var(--pst-color-success-bg);\n}\n\ndiv.versionchanged {\n border-color: var(--pst-color-warning);\n background-color: var(--pst-color-warning-bg);\n}\nhtml[data-theme=dark] div.versionchanged a {\n color: #abdde6;\n}\n\ndiv.deprecated,\ndiv.versionremoved {\n border-color: var(--pst-color-danger);\n background-color: var(--pst-color-danger-bg);\n}\n\nspan.versionmodified {\n font-weight: 600;\n}\nspan.versionmodified::before {\n margin-right: 0.6rem;\n color: var(--pst-color-info);\n font: var(--fa-font-solid);\n content: var(--pst-icon-versionmodified-default);\n}\n\nspan.versionmodified.added::before {\n color: var(--pst-color-success);\n content: var(--pst-icon-versionmodified-added);\n}\n\nspan.versionmodified.changed::before {\n color: var(--pst-color-warning);\n content: var(--pst-icon-versionmodified-changed);\n}\n\nspan.versionmodified.deprecated::before {\n color: var(--pst-color-danger);\n content: var(--pst-icon-versionmodified-deprecated);\n}\n\nspan.versionmodified.removed::before {\n color: var(--pst-color-danger);\n content: var(--pst-icon-versionmodified-removed);\n}\n\n.sidebar-indices-items {\n display: flex;\n flex-direction: column;\n border-top: 1px solid var(--pst-color-border);\n}\n@media (min-width: 960px) {\n .sidebar-indices-items {\n border-top: none;\n }\n}\n.sidebar-indices-items .sidebar-indices-items__title {\n font-weight: var(--pst-sidebar-header-font-weight);\n font-size: var(--pst-sidebar-header-font-size);\n color: var(--pst-color-text-base);\n margin-bottom: 0.5rem;\n}\n.sidebar-indices-items ul.indices-link {\n margin-right: -1rem;\n list-style: none;\n padding: 0;\n}\n.sidebar-indices-items ul.indices-link li > a {\n display: block;\n padding: 0.25rem 0;\n color: var(--pst-color-text-muted);\n}\n.sidebar-indices-items ul.indices-link li > a:hover {\n color: var(--pst-color-primary);\n text-decoration: none;\n background-color: transparent;\n}\n\n/**\n * Admonitions and blocks of styled content.\n * Admonitions CSS originally inspired by https://squidfunk.github.io/mkdocs-material/getting-started/\n */\ndiv.admonition,\n.admonition {\n margin: 1.5625em auto;\n padding: 0 0.6rem 0.8rem;\n overflow: hidden;\n /* break-inside has replaced page-break-inside and is widely usable since 2019 */\n break-inside: avoid;\n border-left: 0.2rem solid;\n border-color: var(--pst-color-info);\n border-radius: 0.25rem;\n background-color: var(--pst-color-on-background);\n box-shadow: 0 0.2rem 0.5rem var(--pst-color-shadow), 0 0 0.0625rem var(--pst-color-shadow) !important;\n /**\n * Special-case for a `sidebar` class that makes the admonition float to\n * the right like the {sidebar} directive.\n */\n}\ndiv.admonition *:last-child,\n.admonition *:last-child {\n margin-bottom: 0;\n}\ndiv.admonition p.admonition-title ~ *,\n.admonition p.admonition-title ~ * {\n margin-left: 1.4rem;\n margin-right: 1.4rem;\n}\ndiv.admonition > ol,\ndiv.admonition > ul,\n.admonition > ol,\n.admonition > ul {\n margin-left: 1em;\n}\ndiv.admonition > .admonition-title,\n.admonition > .admonition-title {\n margin: 0 -0.6rem;\n padding: 0.4rem 0.6rem 0.4rem 2rem;\n font-weight: var(--pst-admonition-font-weight-heading);\n position: relative;\n background-color: var(--pst-color-info-bg);\n z-index: 1;\n}\ndiv.admonition > .admonition-title::before,\n.admonition > .admonition-title::before {\n content: \"\";\n width: 100%;\n height: 100%;\n position: absolute;\n left: 0;\n top: 0;\n z-index: -1;\n pointer-events: none;\n}\ndiv.admonition > .admonition-title::after,\n.admonition > .admonition-title::after {\n position: absolute;\n top: 0.4rem;\n left: 0;\n margin: 0 0.5rem;\n width: 1rem;\n height: 1rem;\n color: var(--pst-color-info);\n font: var(--fa-font-solid);\n line-height: inherit;\n content: var(--pst-icon-admonition-default);\n opacity: 1;\n}\ndiv.admonition > .admonition-title + *,\n.admonition > .admonition-title + * {\n margin-top: 0.4em;\n}\ndiv.admonition.attention,\n.admonition.attention {\n border-color: var(--pst-color-attention);\n}\ndiv.admonition.attention > .admonition-title,\n.admonition.attention > .admonition-title {\n background-color: var(--pst-color-attention-bg);\n}\ndiv.admonition.attention > .admonition-title::after,\n.admonition.attention > .admonition-title::after {\n color: var(--pst-color-attention);\n content: var(--pst-icon-admonition-attention);\n}\ndiv.admonition.caution,\n.admonition.caution {\n border-color: var(--pst-color-warning);\n}\ndiv.admonition.caution > .admonition-title,\n.admonition.caution > .admonition-title {\n background-color: var(--pst-color-warning-bg);\n}\ndiv.admonition.caution > .admonition-title::after,\n.admonition.caution > .admonition-title::after {\n color: var(--pst-color-warning);\n content: var(--pst-icon-admonition-caution);\n}\ndiv.admonition.warning,\n.admonition.warning {\n border-color: var(--pst-color-warning);\n}\ndiv.admonition.warning > .admonition-title,\n.admonition.warning > .admonition-title {\n background-color: var(--pst-color-warning-bg);\n}\ndiv.admonition.warning > .admonition-title::after,\n.admonition.warning > .admonition-title::after {\n color: var(--pst-color-warning);\n content: var(--pst-icon-admonition-warning);\n}\ndiv.admonition.danger,\n.admonition.danger {\n border-color: var(--pst-color-danger);\n}\ndiv.admonition.danger > .admonition-title,\n.admonition.danger > .admonition-title {\n background-color: var(--pst-color-danger-bg);\n}\ndiv.admonition.danger > .admonition-title::after,\n.admonition.danger > .admonition-title::after {\n color: var(--pst-color-danger);\n content: var(--pst-icon-admonition-danger);\n}\ndiv.admonition.error,\n.admonition.error {\n border-color: var(--pst-color-danger);\n}\ndiv.admonition.error > .admonition-title,\n.admonition.error > .admonition-title {\n background-color: var(--pst-color-danger-bg);\n}\ndiv.admonition.error > .admonition-title::after,\n.admonition.error > .admonition-title::after {\n color: var(--pst-color-danger);\n content: var(--pst-icon-admonition-error);\n}\ndiv.admonition.hint,\n.admonition.hint {\n border-color: var(--pst-color-success);\n}\ndiv.admonition.hint > .admonition-title,\n.admonition.hint > .admonition-title {\n background-color: var(--pst-color-success-bg);\n}\ndiv.admonition.hint > .admonition-title::after,\n.admonition.hint > .admonition-title::after {\n color: var(--pst-color-success);\n content: var(--pst-icon-admonition-hint);\n}\ndiv.admonition.tip,\n.admonition.tip {\n border-color: var(--pst-color-success);\n}\ndiv.admonition.tip > .admonition-title,\n.admonition.tip > .admonition-title {\n background-color: var(--pst-color-success-bg);\n}\ndiv.admonition.tip > .admonition-title::after,\n.admonition.tip > .admonition-title::after {\n color: var(--pst-color-success);\n content: var(--pst-icon-admonition-tip);\n}\ndiv.admonition.important,\n.admonition.important {\n border-color: var(--pst-color-attention);\n}\ndiv.admonition.important > .admonition-title,\n.admonition.important > .admonition-title {\n background-color: var(--pst-color-attention-bg);\n}\ndiv.admonition.important > .admonition-title::after,\n.admonition.important > .admonition-title::after {\n color: var(--pst-color-attention);\n content: var(--pst-icon-admonition-important);\n}\ndiv.admonition.note,\n.admonition.note {\n border-color: var(--pst-color-info);\n}\ndiv.admonition.note > .admonition-title,\n.admonition.note > .admonition-title {\n background-color: var(--pst-color-info-bg);\n}\ndiv.admonition.note > .admonition-title::after,\n.admonition.note > .admonition-title::after {\n color: var(--pst-color-info);\n content: var(--pst-icon-admonition-note);\n}\ndiv.admonition.seealso,\n.admonition.seealso {\n border-color: var(--pst-color-success);\n}\ndiv.admonition.seealso > .admonition-title,\n.admonition.seealso > .admonition-title {\n background-color: var(--pst-color-success-bg);\n}\ndiv.admonition.seealso > .admonition-title::after,\n.admonition.seealso > .admonition-title::after {\n color: var(--pst-color-success);\n content: var(--pst-icon-admonition-seealso);\n}\ndiv.admonition.admonition-todo,\n.admonition.admonition-todo {\n border-color: var(--pst-color-secondary);\n}\ndiv.admonition.admonition-todo > .admonition-title,\n.admonition.admonition-todo > .admonition-title {\n background-color: var(--pst-color-secondary-bg);\n}\ndiv.admonition.admonition-todo > .admonition-title::after,\n.admonition.admonition-todo > .admonition-title::after {\n color: var(--pst-color-secondary);\n content: var(--pst-icon-admonition-todo);\n}\ndiv.admonition.sidebar,\n.admonition.sidebar {\n max-width: 40%;\n float: right;\n clear: both;\n margin-left: 0.5rem;\n margin-top: 0;\n border-width: 0 0 0 0.2rem;\n}\ndiv.admonition.sidebar.attention, div.admonition.sidebar.important,\n.admonition.sidebar.attention,\n.admonition.sidebar.important {\n border-color: var(--pst-color-attention);\n}\ndiv.admonition.sidebar.caution, div.admonition.sidebar.warning,\n.admonition.sidebar.caution,\n.admonition.sidebar.warning {\n border-color: var(--pst-color-warning);\n}\ndiv.admonition.sidebar.danger, div.admonition.sidebar.error,\n.admonition.sidebar.danger,\n.admonition.sidebar.error {\n border-color: var(--pst-color-danger);\n}\ndiv.admonition.sidebar.hint, div.admonition.sidebar.tip, div.admonition.sidebar.seealso,\n.admonition.sidebar.hint,\n.admonition.sidebar.tip,\n.admonition.sidebar.seealso {\n border-color: var(--pst-color-success);\n}\ndiv.admonition.sidebar.note, div.admonition.sidebar.todo,\n.admonition.sidebar.note,\n.admonition.sidebar.todo {\n border-color: var(--pst-color-info);\n}\ndiv.admonition.sidebar p.admonition-title ~ *,\n.admonition.sidebar p.admonition-title ~ * {\n margin-left: 0;\n margin-right: 0;\n}\n\n/**************************************************************\n * Similar content blocks that are not technically admonitions.\n */\n/**\n * Topics and the {contents} directive\n */\ndiv.topic,\ndiv.topic.contents,\nnav.contents,\naside.topic {\n display: flex;\n flex-direction: column;\n background-color: var(--pst-color-surface);\n border-color: var(--pst-color-border);\n border-radius: 0.25rem;\n padding: 1rem 1.25rem;\n box-shadow: 0 0.2rem 0.5rem var(--pst-color-shadow), 0 0 0.0625rem var(--pst-color-shadow) !important;\n}\ndiv.topic .topic-title,\ndiv.topic.contents .topic-title,\nnav.contents .topic-title,\naside.topic .topic-title {\n margin: 0 0 0.5rem;\n}\ndiv.topic p,\ndiv.topic.contents p,\nnav.contents p,\naside.topic p {\n color: var(--pst-color-on-surface) !important;\n}\ndiv.topic a,\ndiv.topic.contents a,\nnav.contents a,\naside.topic a {\n color: var(--pst-color-link-higher-contrast);\n}\ndiv.topic ul.simple,\ndiv.topic.contents ul.simple,\nnav.contents ul.simple,\naside.topic ul.simple {\n padding-left: 1rem;\n}\ndiv.topic ul.simple ul,\ndiv.topic.contents ul.simple ul,\nnav.contents ul.simple ul,\naside.topic ul.simple ul {\n padding-left: 2em;\n}\n\n/**\n * Sidebar directive\n */\naside.sidebar {\n border: 1px solid var(--pst-color-border);\n background-color: var(--pst-color-surface);\n border-radius: 0.25rem;\n margin-left: 0.5rem;\n padding: 0;\n}\naside.sidebar > *:last-child {\n padding-bottom: 1rem;\n}\naside.sidebar p.sidebar-title {\n position: relative;\n margin-bottom: 0;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n border-bottom: 1px solid var(--pst-color-border);\n font-family: var(--pst-font-family-heading);\n font-weight: var(--pst-admonition-font-weight-heading);\n}\naside.sidebar > *:not(.sidebar-title):first-child,\naside.sidebar > p.sidebar-title + * {\n margin-top: 1rem;\n}\naside.sidebar > * {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n\n/**\n * Rubrics look kind of like section headers\n */\np.rubric {\n display: flex;\n flex-direction: column;\n}\n\n/**\n * Seealso is kind of like a vertically-collapsed admonition\n */\n.seealso dd {\n margin-top: 0;\n margin-bottom: 0;\n}\n\n/*******************************************************************************\n* Styling for field lists\n*/\n/* grey highlighting of 'parameter' and 'returns' field */\ntable.field-list {\n border-collapse: separate;\n border-spacing: 10px;\n margin-left: 1px;\n /* italic font for parameter types */\n}\ntable.field-list th.field-name {\n padding: 1px 8px 1px 5px;\n white-space: nowrap;\n background-color: var(--pst-color-surface);\n}\ntable.field-list td.field-body {\n /* reduced space around parameter description */\n}\ntable.field-list td.field-body p {\n font-style: italic;\n}\ntable.field-list td.field-body p > strong {\n font-style: normal;\n}\ntable.field-list td.field-body blockquote {\n border-left: none;\n margin: 0 0 0.3em;\n padding-left: 30px;\n}\n\n/*******************************************************************************\n* Styling for autosummary tables\n*/\n.table.autosummary td:first-child {\n white-space: nowrap;\n}\n\n/* overriding basic.css to use our own monospace font */\n.sig {\n font-family: var(--pst-font-family-monospace);\n}\n\n/* C++ specific styling - overriding the basic.css to avoid custom colors */\n.sig-inline.c-texpr,\n.sig-inline.cpp-texpr {\n font-family: unset;\n}\n\n.sig.c .k,\n.sig.c .kt,\n.sig.cpp .k,\n.sig.cpp .kt {\n color: var(--pst-color-text-base);\n}\n\n.sig.c .m,\n.sig.cpp .m {\n color: var(--pst-color-text-base);\n}\n\n.sig.c .s,\n.sig.c .sc,\n.sig.cpp .s,\n.sig.cpp .sc {\n color: var(--pst-color-text-base);\n}\n\n.sig-name {\n color: var(--pst-color-inline-code);\n}\n\n.sig-param .o,\n.sig-param .default_value {\n color: var(--pst-color-text-muted);\n font-weight: normal;\n}\n\ndt:target,\nspan.highlighted {\n background-color: var(--pst-color-target);\n}\n\n.viewcode-back {\n font-family: var(--pst-font-family-base);\n}\n\n.viewcode-block:target {\n border-top: 1px solid var(--pst-color-border);\n border-bottom: 1px solid var(--pst-color-border);\n position: relative;\n background-color: var(--pst-color-target);\n}\n\ndl > dt > a:has(.viewcode-link) {\n float: right;\n}\ndl > dt > a:has(.viewcode-link) .viewcode-link {\n float: none;\n}\n\n/*******************************************************************************\n* Styling for autosummary titles like \"parameters\" and \"returns\"\n*/\ndl[class]:not(.option-list, .field-list, .footnote, .glossary, .simple) {\n margin-bottom: 3rem;\n}\ndl[class]:not(.option-list, .field-list, .footnote, .glossary, .simple) dd {\n margin-left: 2rem;\n}\ndl[class]:not(.option-list, .field-list, .footnote, .glossary, .simple) dd > dl.simple > dt {\n display: flex;\n}\ndl[class]:not(.option-list, .field-list, .footnote, .glossary, .simple) dl.field-list {\n display: grid;\n grid-template-columns: unset;\n}\ndl[class]:not(.option-list, .field-list, .footnote, .glossary, .simple) dt.field-odd,\ndl[class]:not(.option-list, .field-list, .footnote, .glossary, .simple) dt.field-even {\n margin-top: 0.2rem;\n margin-bottom: 0.1rem;\n background-color: var(--pst-color-surface);\n}\n\n/**\n * Code block styling\n * Note that we inherit a lot of styling from Bootstrap so not many rules here.\n */\ndiv[class*=highlight-],\ndiv.highlight,\ndiv.literal-block-wrapper {\n display: flex;\n flex-direction: column;\n width: unset;\n border-radius: 0.25rem;\n break-inside: avoid;\n}\n\ndiv.literal-block-wrapper {\n border: 1px solid var(--pst-color-border);\n border-radius: 0.25rem;\n}\ndiv.literal-block-wrapper div.code-block-caption {\n margin: 0;\n border-bottom: 1px solid var(--pst-color-border);\n padding: 0.5rem;\n font-size: 1rem;\n font-weight: var(--pst-font-weight-caption);\n}\ndiv.literal-block-wrapper div.code-block-caption a.headerlink {\n font-size: inherit;\n}\ndiv.literal-block-wrapper div[class*=highlight-] {\n margin: 0;\n border-radius: 0;\n}\ndiv.literal-block-wrapper div[class*=highlight-] pre {\n border: none;\n box-shadow: none;\n}\n\n/**\n * In-line code\n */\ncode.literal {\n padding: 0.1rem 0.25rem;\n background-color: var(--pst-color-surface);\n border: 1px solid var(--pst-color-border);\n border-radius: 0.25rem;\n}\n\na > code {\n color: var(--pst-color-link-higher-contrast);\n}\n\na:hover > code {\n color: var(--pst-color-link-hover);\n}\n\nspan.linenos {\n opacity: 0.8 !important;\n}\n\nfigure > a,\nfigure > a > img,\nfigure > img,\nfigure > video {\n display: block;\n margin-left: auto;\n margin-right: auto;\n}\n\nfigure a.headerlink {\n position: absolute;\n font-size: inherit;\n}\nfigure:hover a.headerlink {\n visibility: visible;\n}\nfigure figcaption {\n font-family: var(--pst-font-family-heading);\n font-weight: var(--pst-font-weight-caption);\n color: var(--pst-color-text-muted);\n margin-left: auto;\n margin-right: auto;\n margin-top: 0.3rem;\n text-align: center;\n}\nfigure figcaption > p:last-child {\n margin-bottom: 0;\n}\nfigure figcaption p {\n text-align: start;\n display: inline-block;\n}\nfigure figcaption table.table {\n width: fit-content;\n margin-left: auto;\n margin-right: auto;\n}\n\ndt.label > span.brackets:not(:only-child)::before {\n content: \"[\";\n}\n\ndt.label > span.brackets:not(:only-child)::after {\n content: \"]\";\n}\n\na.footnote-reference {\n vertical-align: super;\n font-size: small;\n}\n\naside.footnote {\n margin-bottom: 0.5rem;\n}\naside.footnote:last-child {\n margin-bottom: 1rem;\n}\naside.footnote span.label,\naside.footnote span.backrefs {\n font-weight: bold;\n}\naside.footnote:target {\n background-color: var(--pst-color-target);\n}\n\n/**\n * Hacky fixes that don't fit cleanly into other sections\n */\ntable.highlighttable td.linenos,\nspan.linenos,\ndiv.doctest > div.highlight span.gp {\n /* gp: Generic.Prompt */\n user-select: none;\n}\n\ndd {\n margin-top: 3px;\n margin-bottom: 10px;\n margin-left: 30px;\n}\n\nol,\nul {\n padding-inline-start: 2rem;\n}\nol li > p:first-child,\nul li > p:first-child {\n margin-bottom: 0.25rem;\n margin-top: 0.25rem;\n}\n\nblockquote {\n padding: 1em;\n color: var(--pst-color-text-muted);\n border-left: 0.25em solid var(--pst-color-blockquote-notch);\n border-radius: 0.25rem;\n position: relative;\n background-color: var(--pst-color-surface);\n}\nblockquote p {\n color: var(--pst-color-text-base);\n}\nblockquote .line-block {\n margin: 0;\n}\nblockquote p:last-child {\n margin-bottom: 0;\n}\nblockquote::before {\n content: \"\";\n width: 100%;\n height: 100%;\n position: absolute;\n left: 0;\n top: 0;\n z-index: -1;\n pointer-events: none;\n}\nblockquote a {\n color: var(--pst-color-link-higher-contrast);\n}\nblockquote::before {\n z-index: -1;\n}\n\n/**\n * Span-level styling within content\n */\nspan.guilabel {\n font-size: 80%;\n}\n\nspan.guilabel,\nspan.menuselection {\n border: 1px solid var(--pst-color-info);\n font-weight: 700;\n border-radius: 4px;\n padding: 2.4px 6px;\n margin: auto 2px;\n position: relative;\n background-color: var(--pst-color-info-bg);\n}\nspan.guilabel::before,\nspan.menuselection::before {\n content: \"\";\n width: 100%;\n height: 100%;\n position: absolute;\n left: 0;\n top: 0;\n z-index: -1;\n pointer-events: none;\n}\n\na.reference.download::before {\n content: var(--pst-icon-download);\n font: var(--fa-font-solid);\n font-size: 0.8em;\n padding: 0 0.25em;\n color: var(--pst-color-text-muted);\n}\n\n/**\n * Tables\n */\ntable {\n margin-left: auto;\n margin-right: auto;\n}\ntable.table-right {\n margin-right: 0;\n}\ntable.table-left {\n margin-left: 0;\n}\n\ntable caption {\n text-align: center;\n caption-side: top;\n color: var(--pst-color-text-muted);\n}\n\nth.text-left,\ntd.text-left {\n text-align: left;\n}\nth.text-right,\ntd.text-right {\n text-align: right;\n}\nth.text-center,\ntd.text-center {\n text-align: center;\n}\n\n.table {\n color: var(--pst-color-table);\n border: 1px solid var(--pst-color-table-outer-border);\n --bs-table-bg: transparent;\n --bs-table-color: var(\n --pst-color-text-base\n );\n}\n.table a {\n color: var(--pst-color-link-higher-contrast);\n}\n.table th ~ th,\n.table th ~ td,\n.table td ~ th,\n.table td ~ td {\n border-left: 1px solid var(--pst-color-table-inner-border);\n}\n.table thead tr {\n background-color: var(--pst-color-table-heading-bg);\n border-bottom: 2px solid var(--pst-color-primary);\n}\n.table tbody tr:nth-child(odd) {\n background-color: var(--pst-color-table-row-zebra-low-bg);\n}\n.table tbody tr:nth-child(even) {\n background-color: var(--pst-color-table-row-zebra-high-bg);\n}\n\n.pst-scrollable-table-container {\n overflow-x: auto;\n}\n\n/**\n * Style the toctree component in pages (avoid modifying the navbars)\n */\n.toctree-wrapper p.caption {\n font-size: 1.5em;\n margin-bottom: 0;\n}\n.toctree-wrapper > ul {\n padding-left: 0;\n}\n.toctree-wrapper li[class^=toctree-l] {\n list-style: none;\n margin-bottom: 0.2em;\n}\n.toctree-wrapper li[class^=toctree-l] > a {\n list-style: none;\n font-size: 1.1em;\n}\n.toctree-wrapper li[class^=toctree-l] > ul {\n list-style: none;\n padding-inline-start: 1.5em;\n}\n.toctree-wrapper .toctree-l1 > a {\n font-size: 1.3em;\n}\n\ndiv.topic.contents ul.simple,\nnav.contents ul.simple {\n list-style: none;\n padding-left: 0;\n}\n\n/**\n * Mathematics via MathJax.\n *\n * This is designed for MathJax v3\n * ref: https://www.sphinx-doc.org/en/master/usage/extensions/math.html#module-sphinx.ext.mathjax\n */\nspan.math,\ndiv.math {\n align-items: center;\n display: flex;\n max-width: 100%;\n overflow: hidden;\n}\n\nspan.math {\n display: inline-flex;\n align-items: baseline;\n}\n\ndiv.math {\n gap: 0.5em;\n flex-direction: row-reverse;\n}\ndiv.math span.eqno a.headerlink {\n position: relative;\n font-size: 1em;\n}\ndiv.math mjx-container {\n flex-grow: 1;\n padding-bottom: 0.2rem;\n overflow: auto;\n}\ndiv.math mjx-container mjx-assistive-mml {\n height: 0;\n}\n\n/**\n * ABlog\n * ref: https://ablog.readthedocs.io/\n */\n/**\n * Sidebar template components\n */\n.ablog-sidebar-item h2, .ablog-sidebar-item .h2,\n.ablog-sidebar-item h3,\n.ablog-sidebar-item .h3 {\n font-size: var(--pst-sidebar-header-font-size);\n margin-top: 0.5rem;\n}\n.ablog-sidebar-item h2 a, .ablog-sidebar-item .h2 a,\n.ablog-sidebar-item h3 a,\n.ablog-sidebar-item .h3 a {\n color: var(--pst-color-text-base);\n}\n.ablog-sidebar-item ul {\n list-style: none;\n padding-left: 0;\n overflow-y: hidden;\n display: flex;\n flex-direction: column;\n gap: 0.5em;\n margin-bottom: 0;\n}\n.ablog-sidebar-item ul.ablog-cloud {\n flex-flow: row wrap;\n gap: 0.5rem;\n}\n.ablog-sidebar-item ul.ablog-cloud li {\n display: flex;\n align-items: center;\n}\n\n/**\n * Previous / next buttons at the bottom\n */\n.ablog__prev-next {\n font-size: 1.2em;\n display: flex;\n padding: 1rem 0;\n}\n.ablog__prev-next > span {\n display: flex;\n max-width: 45%;\n}\n.ablog__prev-next > span a {\n display: flex;\n align-items: center;\n margin-left: auto;\n gap: 1rem;\n line-height: 1.5rem;\n}\n.ablog__prev-next > span a i::before {\n color: var(--pst-color-text-base);\n}\n.ablog__prev-next span.ablog__prev i.fa-arrow-circle-left::before {\n content: var(--pst-icon-angle-left);\n}\n.ablog__prev-next span.ablog__spacer {\n display: none;\n}\n.ablog__prev-next span.ablog__next {\n margin-left: auto;\n text-align: right;\n}\n.ablog__prev-next span.ablog__next i.fa-arrow-circle-right::before {\n content: var(--pst-icon-angle-right);\n}\n\n/**\n * {postlist} directive and posts page\n */\n.ablog__collection,\n.postlist {\n padding-left: 0;\n}\n.ablog__collection .ablog-post,\n.postlist .ablog-post {\n list-style: none;\n}\n.ablog__collection .ablog-post .ablog-archive,\n.postlist .ablog-post .ablog-archive {\n display: flex;\n flex-flow: row wrap;\n gap: 1rem;\n list-style: none;\n font-size: 0.75rem;\n padding-left: 0;\n}\n.ablog__collection .ablog-post .ablog-post-title,\n.postlist .ablog-post .ablog-post-title {\n margin-top: 0;\n font-size: 1.25rem;\n}\n.ablog__collection .ablog-post .ablog-post-title a,\n.postlist .ablog-post .ablog-post-title a {\n font-weight: bold;\n}\n.ablog__collection .ablog-post .ablog-post-expand,\n.postlist .ablog-post .ablog-post-expand {\n margin-bottom: 0.5rem;\n}\n\n/**\n * Special cases for Bootstrap functionality\n */\n.docutils.container {\n padding-left: unset;\n padding-right: unset;\n margin-left: unset;\n margin-right: unset;\n max-width: unset;\n width: unset;\n}\n\n.btn {\n --bs-btn-focus-box-shadow: 0 0 0 0.1875rem var(--pst-color-accent);\n}\n\n/**\n * Sphinx Copybutton\n * ref: https://sphinx-copybutton.readthedocs.io/\n */\ndiv.highlight button.copybtn {\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n background-color: var(--pst-color-surface);\n}\ndiv.highlight button.copybtn:not(.success) {\n color: var(--pst-color-muted);\n}\ndiv.highlight button.copybtn:hover:not(.success) {\n color: var(--pst-color-text);\n background-color: var(--pst-color-shadow);\n}\ndiv.highlight button.copybtn.o-tooltip--left::after {\n color: var(--pst-color-text);\n background-color: var(--pst-color-surface);\n}\ndiv.highlight button.copybtn:focus {\n opacity: 1;\n}\ndiv.highlight button.copybtn:focus-visible {\n outline: var(--pst-color-accent) solid 0.1875rem;\n}\n\ndiv.highlight:has(button.copybtn) {\n min-height: 2em;\n}\n\n#ethical-ad-placement .ethical-sidebar a,\n#ethical-ad-placement .ethical-sidebar a:visited,\n#ethical-ad-placement .ethical-sidebar a:hover,\n#ethical-ad-placement .ethical-sidebar a:active,\n#ethical-ad-placement .ethical-footer a,\n#ethical-ad-placement .ethical-footer a:visited,\n#ethical-ad-placement .ethical-footer a:hover,\n#ethical-ad-placement .ethical-footer a:active {\n color: var(--pst-color-text-base);\n}\n#ethical-ad-placement .ethical-sidebar,\n#ethical-ad-placement .ethical-footer {\n background-color: var(--pst-color-background);\n border: 1px solid var(--pst-color-border);\n border-radius: 5px;\n color: var(--pst-color-text-base);\n font-size: 14px;\n line-height: 20px;\n}\n\n/**\n * Styles for various Sphinx execution libraries.\n * For now, where these define output sections, we simply revert their background\n * to be a \"light theme\" background. This ensures that inputs/outputs behave similarly,\n * because the CSS is often controlled by each package.\n * In the future, we might add dark theme support for specific packages.\n */\n/******************************************************************************\n * Jupyter Sphinx\n */\n.bd-content div.jupyter_container {\n border: none;\n background-color: unset;\n box-shadow: none;\n}\n.bd-content div.jupyter_container div.output,\n.bd-content div.jupyter_container div.highlight {\n border-radius: 0.25rem;\n}\n.bd-content div.jupyter_container div.highlight {\n background-color: var(--pst-color-surface);\n}\n.bd-content div.jupyter_container .cell_input,\n.bd-content div.jupyter_container .cell_output {\n border-radius: 0.25rem;\n}\n.bd-content div.jupyter_container .cell_input pre,\n.bd-content div.jupyter_container .cell_output pre {\n padding: 1rem;\n}\n\n/* community/inspiration.md */\nsection#inspiration-for-design-and-ux p.sd-card-text img {\n width: 100%;\n max-height: 220 px;\n padding: 10%;\n}\n\n/* Styles for graphviz generated output from Sphinx */\n/* Style the inheritance diagram such that it has a dark mode */\nhtml[data-theme=dark] div.graphviz > object.inheritance {\n filter: brightness(0.8) invert(0.82) contrast(1.2);\n color-scheme: normal;\n}\n\n/**\n * sphinxcontrib-mermaid\n * ref: https://github.com/mgaitan/sphinxcontrib-mermaid\n */\n/* Style the diagram such that it has a dark mode */\nhtml[data-theme=dark] pre.mermaid > svg {\n filter: brightness(0.8) invert(0.82) contrast(1.2);\n}\n\n/**\n * Special-cases for packages in the PyData ecosystem\n */\n.xr-wrap[hidden] {\n display: block !important;\n}\n\n.jp-OutputArea-output.lm-Widget {\n overflow: auto;\n}\n\n/*******************************************************************************\n* master color map. Only the colors that actually differ between light and dark\n* themes are specified separately.\n*\n* To see the full list of colors see https://www.figma.com/file/rUrrHGhUBBIAAjQ82x6pz9/PyData-Design-system---proposal-for-implementation-(2)?node-id=1234%3A765&t=ifcFT1JtnrSshGfi-1\n*/\n/**\n* Function to get items from nested maps\n*/\n/* Assign base colors for the PyData theme */\n:root {\n --pst-teal-50: #f4fbfc;\n --pst-teal-100: #e9f6f8;\n --pst-teal-200: #d0ecf1;\n --pst-teal-300: #abdde6;\n --pst-teal-400: #3fb1c5;\n --pst-teal-500: #0a7d91;\n --pst-teal-600: #085d6c;\n --pst-teal-700: #064752;\n --pst-teal-800: #042c33;\n --pst-teal-900: #021b1f;\n --pst-violet-50: #f4eefb;\n --pst-violet-100: #e0c7ff;\n --pst-violet-200: #d5b4fd;\n --pst-violet-300: #b780ff;\n --pst-violet-400: #9c5ffd;\n --pst-violet-500: #8045e5;\n --pst-violet-600: #6432bd;\n --pst-violet-700: #4b258f;\n --pst-violet-800: #341a61;\n --pst-violet-900: #1e0e39;\n --pst-gray-50: #f9f9fa;\n --pst-gray-100: #f3f4f5;\n --pst-gray-200: #e5e7ea;\n --pst-gray-300: #d1d5da;\n --pst-gray-400: #9ca4af;\n --pst-gray-500: #677384;\n --pst-gray-600: #48566b;\n --pst-gray-700: #29313d;\n --pst-gray-800: #222832;\n --pst-gray-900: #14181e;\n --pst-pink-50: #fcf8fd;\n --pst-pink-100: #fcf0fa;\n --pst-pink-200: #f8dff5;\n --pst-pink-300: #f3c7ee;\n --pst-pink-400: #e47fd7;\n --pst-pink-500: #c132af;\n --pst-pink-600: #912583;\n --pst-pink-700: #6e1c64;\n --pst-pink-800: #46123f;\n --pst-pink-900: #2b0b27;\n --pst-foundation-white: #ffffff;\n --pst-foundation-black: #14181e;\n}\n\n/*******************************************************************************\n* write the color rules for each theme (light/dark)\n*/\n/* NOTE:\n * Mixins enable us to reuse the same definitions for the different modes\n * https://sass-lang.com/documentation/at-rules/mixin\n * something inserts a variable into a CSS selector or property name\n * https://sass-lang.com/documentation/interpolation\n */\n/* Defaults to light mode if data-theme is not set */\nhtml:not([data-theme]) {\n --pst-color-primary: #0a7d91;\n --pst-color-primary-bg: #d0ecf1;\n --pst-color-secondary: #8045e5;\n --pst-color-secondary-bg: #e0c7ff;\n --pst-color-accent: #c132af;\n --pst-color-accent-bg: #f8dff5;\n --pst-color-info: #276be9;\n --pst-color-info-bg: #dce7fc;\n --pst-color-warning: #f66a0a;\n --pst-color-warning-bg: #f8e3d0;\n --pst-color-success: #00843f;\n --pst-color-success-bg: #d6ece1;\n --pst-color-attention: var(--pst-color-warning);\n --pst-color-attention-bg: var(--pst-color-warning-bg);\n --pst-color-danger: #d72d47;\n --pst-color-danger-bg: #f9e1e4;\n --pst-color-text-base: #222832;\n --pst-color-text-muted: #48566b;\n --pst-color-shadow: rgba(0, 0, 0, 0.1);\n --pst-color-border: #d1d5da;\n --pst-color-border-muted: rgba(23, 23, 26, 0.2);\n --pst-color-blockquote-notch: #677384;\n --pst-color-inline-code: #912583;\n --pst-color-link-higher-contrast: #085d6c;\n --pst-color-target: #f3cf95;\n --pst-color-table: #14181e;\n --pst-color-table-row-hover-bg: #d5b4fd;\n --pst-color-table-inner-border: #e5e7ea;\n --pst-color-background: #ffffff;\n --pst-color-on-background: #ffffff;\n --pst-color-surface: #f3f4f5;\n --pst-color-on-surface: #222832;\n --pst-color-heading: var(--pst-color-text-base);\n --pst-color-link: var(--pst-color-primary);\n --pst-color-link-hover: var(--pst-color-secondary);\n --pst-color-table-outer-border: var(--pst-color-surface);\n --pst-color-table-heading-bg: var(--pst-color-surface);\n --pst-color-table-row-zebra-high-bg: var(--pst-color-on-background);\n --pst-color-table-row-zebra-low-bg: var(--pst-color-surface);\n}\n\nhtml:not([data-theme]) .only-dark,\nhtml:not([data-theme]) .only-dark ~ figcaption {\n display: none !important;\n}\n\n/* NOTE: @each {...} is like a for-loop\n * https://sass-lang.com/documentation/at-rules/control/each\n */\nhtml[data-theme=light] {\n --pst-color-primary: #0a7d91;\n --pst-color-primary-bg: #d0ecf1;\n --pst-color-secondary: #8045e5;\n --pst-color-secondary-bg: #e0c7ff;\n --pst-color-accent: #c132af;\n --pst-color-accent-bg: #f8dff5;\n --pst-color-info: #276be9;\n --pst-color-info-bg: #dce7fc;\n --pst-color-warning: #f66a0a;\n --pst-color-warning-bg: #f8e3d0;\n --pst-color-success: #00843f;\n --pst-color-success-bg: #d6ece1;\n --pst-color-attention: var(--pst-color-warning);\n --pst-color-attention-bg: var(--pst-color-warning-bg);\n --pst-color-danger: #d72d47;\n --pst-color-danger-bg: #f9e1e4;\n --pst-color-text-base: #222832;\n --pst-color-text-muted: #48566b;\n --pst-color-shadow: rgba(0, 0, 0, 0.1);\n --pst-color-border: #d1d5da;\n --pst-color-border-muted: rgba(23, 23, 26, 0.2);\n --pst-color-blockquote-notch: #677384;\n --pst-color-inline-code: #912583;\n --pst-color-link-higher-contrast: #085d6c;\n --pst-color-target: #f3cf95;\n --pst-color-table: #14181e;\n --pst-color-table-row-hover-bg: #d5b4fd;\n --pst-color-table-inner-border: #e5e7ea;\n --pst-color-background: #ffffff;\n --pst-color-on-background: #ffffff;\n --pst-color-surface: #f3f4f5;\n --pst-color-on-surface: #222832;\n --pst-color-heading: var(--pst-color-text-base);\n --pst-color-link: var(--pst-color-primary);\n --pst-color-link-hover: var(--pst-color-secondary);\n --pst-color-table-outer-border: var(--pst-color-surface);\n --pst-color-table-heading-bg: var(--pst-color-surface);\n --pst-color-table-row-zebra-high-bg: var(--pst-color-on-background);\n --pst-color-table-row-zebra-low-bg: var(--pst-color-surface);\n color-scheme: light;\n}\n\nhtml[data-theme=light] .only-dark,\nhtml[data-theme=light] .only-dark ~ figcaption {\n display: none !important;\n}\n\nhtml[data-theme=dark] {\n --pst-color-primary: #3fb1c5;\n --pst-color-primary-bg: #042c33;\n --pst-color-secondary: #9c5ffd;\n --pst-color-secondary-bg: #341a61;\n --pst-color-accent: #e47fd7;\n --pst-color-accent-bg: #46123f;\n --pst-color-info: #79a3f2;\n --pst-color-info-bg: #06245d;\n --pst-color-warning: #ff9245;\n --pst-color-warning-bg: #652a02;\n --pst-color-success: #5fb488;\n --pst-color-success-bg: #002f17;\n --pst-color-attention: var(--pst-color-warning);\n --pst-color-attention-bg: var(--pst-color-warning-bg);\n --pst-color-danger: #e78894;\n --pst-color-danger-bg: #4e111b;\n --pst-color-text-base: #ced6dd;\n --pst-color-text-muted: #9ca4af;\n --pst-color-shadow: rgba(0, 0, 0, 0.2);\n --pst-color-border: #48566b;\n --pst-color-border-muted: #29313d;\n --pst-color-blockquote-notch: #9ca4af;\n --pst-color-inline-code: #f3c7ee;\n --pst-color-link-higher-contrast: #3fb1c5;\n --pst-color-target: #675c04;\n --pst-color-table: #ffffff;\n --pst-color-table-row-hover-bg: #4b258f;\n --pst-color-table-inner-border: #364150;\n --pst-color-background: #14181e;\n --pst-color-on-background: #222832;\n --pst-color-surface: #29313d;\n --pst-color-on-surface: #f3f4f5;\n --pst-color-heading: var(--pst-color-text-base);\n --pst-color-link: var(--pst-color-primary);\n --pst-color-link-hover: var(--pst-color-secondary);\n --pst-color-table-outer-border: var(--pst-color-surface);\n --pst-color-table-heading-bg: var(--pst-color-surface);\n --pst-color-table-row-zebra-high-bg: var(--pst-color-on-background);\n --pst-color-table-row-zebra-low-bg: var(--pst-color-surface);\n /* Adjust images in dark mode (unless they have class .only-dark or\n * .dark-light, in which case assume they're already optimized for dark\n * mode).\n */\n /* Give images a light background in dark mode in case they have\n * transparency and black text (unless they have class .only-dark or .dark-light, in\n * which case assume they're already optimized for dark mode).\n */\n color-scheme: dark;\n}\n\nhtml[data-theme=dark] .only-light,\nhtml[data-theme=dark] .only-light ~ figcaption {\n display: none !important;\n}\n\nhtml[data-theme=dark] img:not(.only-dark, .dark-light) {\n filter: brightness(0.8) contrast(1.2);\n}\n\nhtml[data-theme=dark] .bd-content img:not(.only-dark, .dark-light) {\n background-color: rgb(255, 255, 255);\n border-radius: 0.25rem;\n}\n\nhtml[data-theme=dark] .MathJax_SVG * {\n fill: var(--pst-color-text-base);\n}\n\n.pst-color-primary {\n color: var(--pst-color-primary);\n}\n\n.pst-color-secondary {\n color: var(--pst-color-secondary);\n}\n\n.pst-color-accent {\n color: var(--pst-color-accent);\n}\n\n.pst-color-info {\n color: var(--pst-color-info);\n}\n\n.pst-color-warning {\n color: var(--pst-color-warning);\n}\n\n.pst-color-success {\n color: var(--pst-color-success);\n}\n\n.pst-color-attention {\n color: var(--pst-color-attention);\n}\n\n.pst-color-danger {\n color: var(--pst-color-danger);\n}\n\n.pst-color-text-base {\n color: var(--pst-color-text-base);\n}\n\n.pst-color-text-muted {\n color: var(--pst-color-text-muted);\n}\n\n.pst-color-shadow {\n color: var(--pst-color-shadow);\n}\n\n.pst-color-border {\n color: var(--pst-color-border);\n}\n\n.pst-color-border-muted {\n color: var(--pst-color-border-muted);\n}\n\n.pst-color-blockquote-notch {\n color: var(--pst-color-blockquote-notch);\n}\n\n.pst-color-inline-code {\n color: var(--pst-color-inline-code);\n}\n\n.pst-color-link-higher-contrast {\n color: var(--pst-color-link-higher-contrast);\n}\n\n.pst-color-target {\n color: var(--pst-color-target);\n}\n\n.pst-color-table {\n color: var(--pst-color-table);\n}\n\n.pst-color-table-row-hover {\n color: var(--pst-color-table-row-hover);\n}\n\n.pst-color-table-inner-border {\n color: var(--pst-color-table-inner-border);\n}\n\n.pst-color-background {\n color: var(--pst-color-background);\n}\n\n.pst-color-on-background {\n color: var(--pst-color-on-background);\n}\n\n.pst-color-surface {\n color: var(--pst-color-surface);\n}\n\n.pst-color-on-surface {\n color: var(--pst-color-on-surface);\n}\n\n/*******************************************************************************\n * Color and variables\n *\n * This is a list of the semantic color names from sphinx-design (we only\n * need to override variables that sphinx-design has actually defined).\n * https://github.com/executablebooks/sphinx-design/blob/9226a12a/style/_colors.scss#L31-L43\n */\n/**\n * Here we create some extra --pst-color-* variables and use\n * them to override the value of the corresponding sphinx-design variables.\n * This is easier than re-writing the sphinx-design rules. Even easier would be\n * directly assigning our values to the --sd-color-* variables, but then our\n * downstream users couldn't override *our* colors and have it affect buttons\n * and badges.\n *\n * First, define the extra keys needed to cover the full range of semantic\n * color names used in sphinx-design, then merge them with the names we\n * already define for our own needs.\n * see https://sphinx-design.readthedocs.io/en/latest/css_variables.html\n */\nhtml[data-theme=light] {\n --pst-color-primary: rgb(10, 125, 145);\n --pst-color-primary-text: #fff;\n --pst-color-primary-highlight: #086b7c;\n --sd-color-primary: var(--pst-color-primary);\n --sd-color-primary-text: var(--pst-color-primary-text);\n --sd-color-primary-highlight: var(--pst-color-primary-highlight);\n --pst-color-primary-highlight-text: #fff;\n --sd-color-primary-bg: #d0ecf1;\n --sd-color-primary-bg-text: #14181e;\n --pst-color-secondary: rgb(128, 69, 229);\n --pst-color-secondary-text: #fff;\n --pst-color-secondary-highlight: #651ee0;\n --sd-color-secondary: var(--pst-color-secondary);\n --sd-color-secondary-text: var(--pst-color-secondary-text);\n --sd-color-secondary-highlight: var(--pst-color-secondary-highlight);\n --pst-color-secondary-highlight-text: #fff;\n --sd-color-secondary-bg: #e0c7ff;\n --sd-color-secondary-bg-text: #14181e;\n --pst-color-success: #00843f;\n --pst-color-success-text: #fff;\n --pst-color-success-highlight: #007036;\n --sd-color-success: var(--pst-color-success);\n --sd-color-success-text: var(--pst-color-success-text);\n --sd-color-success-highlight: var(--pst-color-success-highlight);\n --pst-color-success-highlight-text: #fff;\n --sd-color-success-bg: #d6ece1;\n --sd-color-success-bg-text: #14181e;\n --pst-color-info: #276be9;\n --pst-color-info-text: #fff;\n --pst-color-info-highlight: #1457d3;\n --sd-color-info: var(--pst-color-info);\n --sd-color-info-text: var(--pst-color-info-text);\n --sd-color-info-highlight: var(--pst-color-info-highlight);\n --pst-color-info-highlight-text: #fff;\n --sd-color-info-bg: #dce7fc;\n --sd-color-info-bg-text: #14181e;\n --pst-color-warning: #f66a0a;\n --pst-color-warning-text: #14181e;\n --pst-color-warning-highlight: #d25a07;\n --sd-color-warning: var(--pst-color-warning);\n --sd-color-warning-text: var(--pst-color-warning-text);\n --sd-color-warning-highlight: var(--pst-color-warning-highlight);\n --pst-color-warning-highlight-text: #14181e;\n --sd-color-warning-bg: #f8e3d0;\n --sd-color-warning-bg-text: #14181e;\n --pst-color-danger: #d72d47;\n --pst-color-danger-text: #fff;\n --pst-color-danger-highlight: #bb2239;\n --sd-color-danger: var(--pst-color-danger);\n --sd-color-danger-text: var(--pst-color-danger-text);\n --sd-color-danger-highlight: var(--pst-color-danger-highlight);\n --pst-color-danger-highlight-text: #fff;\n --sd-color-danger-bg: #f9e1e4;\n --sd-color-danger-bg-text: #14181e;\n --pst-color-light: #f3f4f5;\n --pst-color-light-text: #14181e;\n --pst-color-light-highlight: #c9cfd6;\n --sd-color-light: var(--pst-color-light);\n --sd-color-light-text: var(--pst-color-light-text);\n --sd-color-light-highlight: var(--pst-color-light-highlight);\n --pst-color-light-highlight-text: #14181e;\n --sd-color-light-bg: #f7f7f8;\n --sd-color-light-bg-text: #14181e;\n --pst-color-muted: #29313d;\n --pst-color-muted-text: #fff;\n --pst-color-muted-highlight: #212936;\n --sd-color-muted: var(--pst-color-muted);\n --sd-color-muted-text: var(--pst-color-muted-text);\n --sd-color-muted-highlight: var(--pst-color-muted-highlight);\n --pst-color-muted-highlight-text: #fff;\n --sd-color-muted-bg: #5a6c86;\n --sd-color-muted-bg-text: #fff;\n --pst-color-dark: #222832;\n --pst-color-dark-text: #fff;\n --pst-color-dark-highlight: #1b222c;\n --sd-color-dark: var(--pst-color-dark);\n --sd-color-dark-text: var(--pst-color-dark-text);\n --sd-color-dark-highlight: var(--pst-color-dark-highlight);\n --pst-color-dark-highlight-text: #fff;\n --pst-color-black: #14181e;\n --pst-color-black-text: #fff;\n --pst-color-black-highlight: #10141a;\n --sd-color-black: var(--pst-color-black);\n --sd-color-black-text: var(--pst-color-black-text);\n --sd-color-black-highlight: var(--pst-color-black-highlight);\n --pst-color-black-highlight-text: #fff;\n --pst-color-white: #fff;\n --pst-color-white-text: #14181e;\n --pst-color-white-highlight: #dbd7d7;\n --sd-color-white: var(--pst-color-white);\n --sd-color-white-text: var(--pst-color-white-text);\n --sd-color-white-highlight: var(--pst-color-white-highlight);\n --pst-color-white-highlight-text: #14181e;\n}\n\nhtml[data-theme=dark] {\n --pst-color-primary: rgb(63, 177, 197);\n --pst-color-primary-text: #14181e;\n --pst-color-primary-highlight: #319aac;\n --sd-color-primary: var(--pst-color-primary);\n --sd-color-primary-text: var(--pst-color-primary-text);\n --sd-color-primary-highlight: var(--pst-color-primary-highlight);\n --pst-color-primary-highlight-text: #14181e;\n --sd-color-primary-bg: #042c33;\n --sd-color-primary-bg-text: #fff;\n --pst-color-secondary: rgb(156, 95, 253);\n --pst-color-secondary-text: #14181e;\n --pst-color-secondary-highlight: #7c2bfc;\n --sd-color-secondary: var(--pst-color-secondary);\n --sd-color-secondary-text: var(--pst-color-secondary-text);\n --sd-color-secondary-highlight: var(--pst-color-secondary-highlight);\n --pst-color-secondary-highlight-text: #fff;\n --sd-color-secondary-bg: #341a61;\n --sd-color-secondary-bg-text: #fff;\n --pst-color-success: #5fb488;\n --pst-color-success-text: #14181e;\n --pst-color-success-highlight: #47a373;\n --sd-color-success: var(--pst-color-success);\n --sd-color-success-text: var(--pst-color-success-text);\n --sd-color-success-highlight: var(--pst-color-success-highlight);\n --pst-color-success-highlight-text: #14181e;\n --sd-color-success-bg: #002f17;\n --sd-color-success-bg-text: #fff;\n --pst-color-info: #79a3f2;\n --pst-color-info-text: #14181e;\n --pst-color-info-highlight: #4681ee;\n --sd-color-info: var(--pst-color-info);\n --sd-color-info-text: var(--pst-color-info-text);\n --sd-color-info-highlight: var(--pst-color-info-highlight);\n --pst-color-info-highlight-text: #14181e;\n --sd-color-info-bg: #06245d;\n --sd-color-info-bg-text: #fff;\n --pst-color-warning: #ff9245;\n --pst-color-warning-text: #14181e;\n --pst-color-warning-highlight: #ff7614;\n --sd-color-warning: var(--pst-color-warning);\n --sd-color-warning-text: var(--pst-color-warning-text);\n --sd-color-warning-highlight: var(--pst-color-warning-highlight);\n --pst-color-warning-highlight-text: #14181e;\n --sd-color-warning-bg: #652a02;\n --sd-color-warning-bg-text: #fff;\n --pst-color-danger: #e78894;\n --pst-color-danger-text: #14181e;\n --pst-color-danger-highlight: #df596a;\n --sd-color-danger: var(--pst-color-danger);\n --sd-color-danger-text: var(--pst-color-danger-text);\n --sd-color-danger-highlight: var(--pst-color-danger-highlight);\n --pst-color-danger-highlight-text: #14181e;\n --sd-color-danger-bg: #4e111b;\n --sd-color-danger-bg-text: #fff;\n --pst-color-light: #f3f4f5;\n --pst-color-light-text: #14181e;\n --pst-color-light-highlight: #c9cfd6;\n --sd-color-light: var(--pst-color-light);\n --sd-color-light-text: var(--pst-color-light-text);\n --sd-color-light-highlight: var(--pst-color-light-highlight);\n --pst-color-light-highlight-text: #14181e;\n --sd-color-light-bg: #a3abb2;\n --sd-color-light-bg-text: #14181e;\n --pst-color-muted: #f3f4f5;\n --pst-color-muted-text: #14181e;\n --pst-color-muted-highlight: #c9cfd6;\n --sd-color-muted: var(--pst-color-muted);\n --sd-color-muted-text: var(--pst-color-muted-text);\n --sd-color-muted-highlight: var(--pst-color-muted-highlight);\n --pst-color-muted-highlight-text: #14181e;\n --sd-color-muted-bg: #1d222b;\n --sd-color-muted-bg-text: #fff;\n --pst-color-dark: #222832;\n --pst-color-dark-text: #fff;\n --pst-color-dark-highlight: #1b222c;\n --sd-color-dark: var(--pst-color-dark);\n --sd-color-dark-text: var(--pst-color-dark-text);\n --sd-color-dark-highlight: var(--pst-color-dark-highlight);\n --pst-color-dark-highlight-text: #fff;\n --pst-color-black: #14181e;\n --pst-color-black-text: #fff;\n --pst-color-black-highlight: #10141a;\n --sd-color-black: var(--pst-color-black);\n --sd-color-black-text: var(--pst-color-black-text);\n --sd-color-black-highlight: var(--pst-color-black-highlight);\n --pst-color-black-highlight-text: #fff;\n --pst-color-white: #fff;\n --pst-color-white-text: #14181e;\n --pst-color-white-highlight: #dbd7d7;\n --sd-color-white: var(--pst-color-white);\n --sd-color-white-text: var(--pst-color-white-text);\n --sd-color-white-highlight: var(--pst-color-white-highlight);\n --pst-color-white-highlight-text: #14181e;\n}\n\nhtml[data-theme=light] {\n --sd-color-card-border: var(--pst-color-border);\n}\n\nhtml[data-theme=dark] {\n --sd-color-card-border: var(--pst-color-border);\n}\n\n/*******************************************************************************\n * shadows\n */\nhtml[data-theme=light] .sd-shadow-xs,\nhtml[data-theme=light] .sd-shadow-sm,\nhtml[data-theme=light] .sd-shadow-md,\nhtml[data-theme=light] .sd-shadow-lg {\n box-shadow: 0 0.2rem 0.5rem var(--pst-color-shadow), 0 0 0.0625rem var(--pst-color-shadow) !important;\n}\n\n/*******************************************************************************\n * cards\n */\n.bd-content .sd-card {\n border: 1px solid var(--pst-color-border);\n overflow: hidden;\n}\n.bd-content .sd-card .sd-card-header {\n background-color: var(--pst-color-on-background);\n border-bottom: 1px solid var(--pst-color-border);\n}\n.bd-content .sd-card .sd-card-footer {\n background-color: var(--pst-color-on-background);\n border-top: 1px solid var(--pst-color-border);\n}\n.bd-content .sd-card .sd-card-body {\n background-color: var(--pst-color-on-background);\n}\n.bd-content .sd-card .sd-stretched-link:focus-visible {\n outline: none;\n}\n.bd-content .sd-card .sd-stretched-link:focus-visible::after {\n outline: var(--pst-color-accent) solid 0.1875rem;\n border-radius: 0.25rem;\n}\n.bd-content .sd-card.sd-card-hover:hover {\n border-color: var(--pst-color-link-hover);\n}\n\n/*******************************************************************************\n * tabs\n */\n.bd-content .sd-tab-set > input:checked + label {\n border-style: solid solid none;\n border-color: var(--pst-color-primary) var(--pst-color-primary) transparent;\n border-width: 0.125rem 0.125rem 0;\n border-radius: 0.125rem 0.125rem 0 0;\n background-color: var(--pst-color-on-background);\n transform: translateY(0.125rem);\n color: var(--pst-color-primary);\n}\n.bd-content .sd-tab-set > input:focus-visible + label {\n border: 0.125rem solid var(--pst-color-accent);\n border-radius: 0.125rem;\n background-color: var(--pst-color-accent-bg);\n color: var(--pst-color-on-surface);\n}\n.bd-content .sd-tab-set > input:not(:checked, :focus-visible) + label:hover {\n border-color: transparent;\n color: var(--pst-color-secondary);\n text-decoration-line: underline;\n text-decoration-thickness: max(3px, .1875rem, .12em);\n}\n.bd-content .sd-tab-set > label {\n color: var(--pst-color-on-surface);\n border: 0.125rem solid transparent;\n border-radius: 0.125rem 0.125rem 0 0;\n background-color: var(--pst-color-surface);\n padding: 0 0.75em;\n margin-inline-end: 0.25rem;\n line-height: 1.95;\n}\nhtml[data-theme=dark] .bd-content .sd-tab-set > label {\n background-color: var(--pst-color-on-background);\n}\n.bd-content .sd-tab-set .sd-tab-content {\n border: 0.125rem solid var(--pst-color-primary);\n border-radius: 0.1875rem;\n box-shadow: unset;\n padding: 0.625rem;\n background-color: var(--pst-color-on-background);\n}\n\n/*******************************************************************************\n* Dropdowns\n*/\ndetails.sd-dropdown {\n border: 0 !important;\n box-shadow: 0 0.2rem 0.5rem var(--pst-color-shadow), 0 0 0.0625rem var(--pst-color-shadow) !important;\n}\ndetails.sd-dropdown summary.sd-card-header {\n border: 0 !important;\n display: flex;\n align-items: center;\n position: relative;\n font-weight: 600;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n --pst-sd-dropdown-color: var(--pst-gray-500);\n --pst-sd-dropdown-bg-color: var(--pst-color-surface);\n background-color: var(--pst-sd-dropdown-bg-color) !important;\n border-left: 0.2rem solid var(--pst-sd-dropdown-color) !important;\n}\ndetails.sd-dropdown summary.sd-card-header + div.sd-summary-content {\n border: 0;\n --pst-sd-dropdown-color: var(--sd-color-card-border);\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-primary {\n --pst-sd-dropdown-color: var(--sd-color-primary);\n --pst-sd-dropdown-bg-color: var(--sd-color-primary-bg);\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-primary + div.sd-summary-content {\n --pst-sd-dropdown-color: var(--sd-color-primary);\n --pst-sd-dropdown-bg-color: var(--sd-color-primary-bg);\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-text-primary {\n color: var(--sd-color-primary-bg-text) !important;\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-secondary {\n --pst-sd-dropdown-color: var(--sd-color-secondary);\n --pst-sd-dropdown-bg-color: var(--sd-color-secondary-bg);\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-secondary + div.sd-summary-content {\n --pst-sd-dropdown-color: var(--sd-color-secondary);\n --pst-sd-dropdown-bg-color: var(--sd-color-secondary-bg);\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-text-secondary {\n color: var(--sd-color-secondary-bg-text) !important;\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-success {\n --pst-sd-dropdown-color: var(--sd-color-success);\n --pst-sd-dropdown-bg-color: var(--sd-color-success-bg);\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-success + div.sd-summary-content {\n --pst-sd-dropdown-color: var(--sd-color-success);\n --pst-sd-dropdown-bg-color: var(--sd-color-success-bg);\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-text-success {\n color: var(--sd-color-success-bg-text) !important;\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-info {\n --pst-sd-dropdown-color: var(--sd-color-info);\n --pst-sd-dropdown-bg-color: var(--sd-color-info-bg);\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-info + div.sd-summary-content {\n --pst-sd-dropdown-color: var(--sd-color-info);\n --pst-sd-dropdown-bg-color: var(--sd-color-info-bg);\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-text-info {\n color: var(--sd-color-info-bg-text) !important;\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-warning {\n --pst-sd-dropdown-color: var(--sd-color-warning);\n --pst-sd-dropdown-bg-color: var(--sd-color-warning-bg);\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-warning + div.sd-summary-content {\n --pst-sd-dropdown-color: var(--sd-color-warning);\n --pst-sd-dropdown-bg-color: var(--sd-color-warning-bg);\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-text-warning {\n color: var(--sd-color-warning-bg-text) !important;\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-danger {\n --pst-sd-dropdown-color: var(--sd-color-danger);\n --pst-sd-dropdown-bg-color: var(--sd-color-danger-bg);\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-danger + div.sd-summary-content {\n --pst-sd-dropdown-color: var(--sd-color-danger);\n --pst-sd-dropdown-bg-color: var(--sd-color-danger-bg);\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-text-danger {\n color: var(--sd-color-danger-bg-text) !important;\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-light {\n --pst-sd-dropdown-color: var(--sd-color-light);\n --pst-sd-dropdown-bg-color: var(--sd-color-light-bg);\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-light + div.sd-summary-content {\n --pst-sd-dropdown-color: var(--sd-color-light);\n --pst-sd-dropdown-bg-color: var(--sd-color-light-bg);\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-text-light {\n color: var(--sd-color-light-bg-text) !important;\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-muted {\n --pst-sd-dropdown-color: var(--sd-color-muted);\n --pst-sd-dropdown-bg-color: var(--sd-color-muted-bg);\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-muted + div.sd-summary-content {\n --pst-sd-dropdown-color: var(--sd-color-muted);\n --pst-sd-dropdown-bg-color: var(--sd-color-muted-bg);\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-text-muted {\n color: var(--sd-color-muted-bg-text) !important;\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-dark {\n --pst-sd-dropdown-color: var(--sd-color-dark);\n --pst-sd-dropdown-bg-color: var(--sd-color-dark-bg);\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-dark + div.sd-summary-content {\n --pst-sd-dropdown-color: var(--sd-color-dark);\n --pst-sd-dropdown-bg-color: var(--sd-color-dark-bg);\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-text-dark {\n color: var(--sd-color-dark-bg-text) !important;\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-black {\n --pst-sd-dropdown-color: var(--sd-color-black);\n --pst-sd-dropdown-bg-color: var(--sd-color-black-bg);\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-black + div.sd-summary-content {\n --pst-sd-dropdown-color: var(--sd-color-black);\n --pst-sd-dropdown-bg-color: var(--sd-color-black-bg);\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-text-black {\n color: var(--sd-color-black-bg-text) !important;\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-white {\n --pst-sd-dropdown-color: var(--sd-color-white);\n --pst-sd-dropdown-bg-color: var(--sd-color-white-bg);\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-white + div.sd-summary-content {\n --pst-sd-dropdown-color: var(--sd-color-white);\n --pst-sd-dropdown-bg-color: var(--sd-color-white-bg);\n}\ndetails.sd-dropdown summary.sd-card-header.sd-bg-text-white {\n color: var(--sd-color-white-bg-text) !important;\n}\ndetails.sd-dropdown summary.sd-card-header::before {\n content: \"\";\n width: 100%;\n height: 100%;\n position: absolute;\n left: 0;\n top: 0;\n z-index: -1;\n pointer-events: none;\n}\ndetails.sd-dropdown summary.sd-card-header + div.sd-summary-content {\n border-left: 0.2rem solid var(--pst-sd-dropdown-color) !important;\n border-bottom-left-radius: calc(0.25rem - 1px);\n background-color: var(--pst-color-on-background);\n}\ndetails.sd-dropdown summary.sd-card-header span.sd-summary-icon {\n display: inline-flex;\n align-items: center;\n color: var(--pst-sd-dropdown-color) !important;\n}\ndetails.sd-dropdown summary.sd-card-header span.sd-summary-icon svg {\n opacity: 1;\n}\ndetails.sd-dropdown summary.sd-card-header .sd-summary-up,\ndetails.sd-dropdown summary.sd-card-header .sd-summary-down {\n top: 0.7rem;\n}\ndetails.sd-dropdown summary.sd-card-header:hover {\n filter: brightness(0.9);\n}\nhtml[data-theme=dark] details.sd-dropdown summary.sd-card-header:hover {\n filter: brightness(1.1);\n}\ndetails.sd-dropdown summary.sd-card-header:focus:focus-visible {\n outline: var(--pst-color-accent) solid 0.1875rem;\n outline-offset: 0.125rem;\n border-radius: 0.1875rem;\n}\ndetails.sd-dropdown[open] summary.sd-card-header:focus:focus-visible {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n/*******************************************************************************\n* Buttons (which in Sphinx Design are actually links that look like buttons)\n* ref: https://sphinx-design.readthedocs.io/en/pydata-theme/badges_buttons.html#buttons\n*/\nhtml .sd-btn {\n min-width: 2.25rem;\n padding: 0.3125rem 0.75rem 0.4375rem;\n}\nhtml .sd-btn:hover {\n text-decoration: underline;\n text-decoration-thickness: max(1px, .0625rem);\n text-underline-offset: 0.1578em;\n text-decoration-thickness: max(3px, .1875rem, .12em);\n text-decoration-skip-ink: none;\n color: var(--pst-color-link-hover);\n text-decoration-thickness: 1px;\n}\nhtml .sd-btn-primary:hover {\n color: var(--pst-color-primary-highlight-text) !important;\n}\nhtml .sd-btn-secondary:hover {\n color: var(--pst-color-secondary-highlight-text) !important;\n}\nhtml .sd-btn-success:hover {\n color: var(--pst-color-success-highlight-text) !important;\n}\nhtml .sd-btn-info:hover {\n color: var(--pst-color-info-highlight-text) !important;\n}\nhtml .sd-btn-warning:hover {\n color: var(--pst-color-warning-highlight-text) !important;\n}\nhtml .sd-btn-danger:hover {\n color: var(--pst-color-danger-highlight-text) !important;\n}\nhtml .sd-btn-light:hover {\n color: var(--pst-color-light-highlight-text) !important;\n}\nhtml .sd-btn-muted:hover {\n color: var(--pst-color-muted-highlight-text) !important;\n}\nhtml .sd-btn-dark:hover {\n color: var(--pst-color-dark-highlight-text) !important;\n}\nhtml .sd-btn-black:hover {\n color: var(--pst-color-black-highlight-text) !important;\n}\nhtml .sd-btn-white:hover {\n color: var(--pst-color-white-highlight-text) !important;\n}\nhtml .sd-btn-primary:focus-visible,\nhtml .sd-btn-outline-primary:focus-visible {\n outline: var(--sd-color-primary) solid 0.1875rem;\n outline-offset: 0.125rem;\n border-radius: 0.1875rem;\n background-color: var(--sd-color-primary) !important;\n border-color: var(--sd-color-primary) !important;\n}\nhtml .sd-btn-secondary:focus-visible,\nhtml .sd-btn-outline-secondary:focus-visible {\n outline: var(--sd-color-secondary) solid 0.1875rem;\n outline-offset: 0.125rem;\n border-radius: 0.1875rem;\n background-color: var(--sd-color-secondary) !important;\n border-color: var(--sd-color-secondary) !important;\n}\nhtml .sd-btn-success:focus-visible,\nhtml .sd-btn-outline-success:focus-visible {\n outline: var(--sd-color-success) solid 0.1875rem;\n outline-offset: 0.125rem;\n border-radius: 0.1875rem;\n background-color: var(--sd-color-success) !important;\n border-color: var(--sd-color-success) !important;\n}\nhtml .sd-btn-info:focus-visible,\nhtml .sd-btn-outline-info:focus-visible {\n outline: var(--sd-color-info) solid 0.1875rem;\n outline-offset: 0.125rem;\n border-radius: 0.1875rem;\n background-color: var(--sd-color-info) !important;\n border-color: var(--sd-color-info) !important;\n}\nhtml .sd-btn-warning:focus-visible,\nhtml .sd-btn-outline-warning:focus-visible {\n outline: var(--sd-color-warning) solid 0.1875rem;\n outline-offset: 0.125rem;\n border-radius: 0.1875rem;\n background-color: var(--sd-color-warning) !important;\n border-color: var(--sd-color-warning) !important;\n}\nhtml .sd-btn-danger:focus-visible,\nhtml .sd-btn-outline-danger:focus-visible {\n outline: var(--sd-color-danger) solid 0.1875rem;\n outline-offset: 0.125rem;\n border-radius: 0.1875rem;\n background-color: var(--sd-color-danger) !important;\n border-color: var(--sd-color-danger) !important;\n}\nhtml .sd-btn-light:focus-visible,\nhtml .sd-btn-outline-light:focus-visible {\n outline: var(--sd-color-light) solid 0.1875rem;\n outline-offset: 0.125rem;\n border-radius: 0.1875rem;\n background-color: var(--sd-color-light) !important;\n border-color: var(--sd-color-light) !important;\n}\nhtml .sd-btn-muted:focus-visible,\nhtml .sd-btn-outline-muted:focus-visible {\n outline: var(--sd-color-muted) solid 0.1875rem;\n outline-offset: 0.125rem;\n border-radius: 0.1875rem;\n background-color: var(--sd-color-muted) !important;\n border-color: var(--sd-color-muted) !important;\n}\nhtml .sd-btn-dark:focus-visible,\nhtml .sd-btn-outline-dark:focus-visible {\n outline: var(--sd-color-dark) solid 0.1875rem;\n outline-offset: 0.125rem;\n border-radius: 0.1875rem;\n background-color: var(--sd-color-dark) !important;\n border-color: var(--sd-color-dark) !important;\n}\nhtml .sd-btn-black:focus-visible,\nhtml .sd-btn-outline-black:focus-visible {\n outline: var(--sd-color-black) solid 0.1875rem;\n outline-offset: 0.125rem;\n border-radius: 0.1875rem;\n background-color: var(--sd-color-black) !important;\n border-color: var(--sd-color-black) !important;\n}\nhtml .sd-btn-white:focus-visible,\nhtml .sd-btn-outline-white:focus-visible {\n outline: var(--sd-color-white) solid 0.1875rem;\n outline-offset: 0.125rem;\n border-radius: 0.1875rem;\n background-color: var(--sd-color-white) !important;\n border-color: var(--sd-color-white) !important;\n}\n\n/**\n * Sphinx togglebutton\n *\n * The rules in this style sheet are meant to tweak the\n * [sphinx-togglebutton](https://sphinx-togglebutton.readthedocs.io/en/latest/index.html)\n * extension so that it matches the look and feel of this theme.\n */\n.bd-content .dropdown.admonition.toggle .admonition-title:hover .tb-icon {\n opacity: 1;\n scale: 1.1;\n}\n.bd-content .dropdown.admonition.toggle .admonition-title .tb-icon {\n opacity: 0.6;\n}\n.bd-content .dropdown.admonition.toggle .admonition-title:hover {\n filter: brightness(0.9);\n}\nhtml[data-theme=dark] .bd-content .dropdown.admonition.toggle .admonition-title:hover {\n filter: brightness(1.1);\n}\n.bd-content .dropdown.admonition.toggle .admonition-title:hover {\n box-shadow: none;\n}\n.bd-content .dropdown.admonition.toggle button.toggle-button {\n color: inherit;\n}\n.bd-content .dropdown.admonition.toggle button.toggle-button.toggle-button-hidden .toggle-chevron-right {\n transform: rotate(90deg);\n transition: none;\n}\n.bd-content .dropdown.admonition.toggle button.toggle-button .toggle-chevron-right {\n transform: rotate(-90deg);\n transition: none;\n}\n.bd-content .dropdown.admonition.toggle:has(:focus-visible) {\n /* Override Sphinx Toggle Button. Make the overflow visible, otherwise the\n focus ring is hidden. */\n overflow: visible;\n /*\n Why not just do the following?\n\n ```\n .admonition-title {\n outline: $focus-ring-outline;\n }\n ```\n\n Why use ::before? If we put the focus ring on the ::before pseudo-element,\n we can reposition the focus ring by repositioning the pseudo-element.\n\n Why reposition? The left edge of the admonition title box does not align\n with the left edge of the overall admonition box. There is a left border\n that belongs to the overall box. The border is outside of the admonition\n title, which means it is also outside of a focus ring around the title. We\n can make the focus ring bigger, with `outline-offset`, but this will\n result in a ring that looks off-centered. So we have to pull the ring left\n and stretch it right. That's what the pseudo-element allows us to do.\n\n Note: we do not have to do this for collapsible admonitions made with\n Sphinx Design (as opposed to sphinx-togglebutton).\n */\n}\n.bd-content .dropdown.admonition.toggle:has(:focus-visible) .admonition-title::before {\n content: \"\";\n left: -0.2rem;\n width: calc(100% + 0.2rem);\n height: 100%;\n outline: var(--pst-color-accent) solid 0.1875rem;\n outline-offset: 0.125rem;\n border-radius: 0.1875rem;\n}\n.bd-content .dropdown.admonition.toggle:has(:focus-visible):not(.toggle-hidden) .admonition-title::before {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n}\n.bd-content details.toggle-details summary {\n border-left: 3px solid var(--pst-color-primary);\n}\n.bd-content details.toggle-details summary .toggle-chevron-right {\n transform: rotate(90deg);\n transition: none;\n}\n.bd-content details.toggle-details summary:hover .tb-icon {\n opacity: 1;\n scale: 1.1;\n}\n.bd-content details.toggle-details summary .tb-icon {\n opacity: 0.6;\n}\n.bd-content details.toggle-details summary:hover {\n filter: brightness(0.9);\n}\nhtml[data-theme=dark] .bd-content details.toggle-details summary:hover {\n filter: brightness(1.1);\n}\n.bd-content details.toggle-details summary:hover {\n box-shadow: none;\n}\n.bd-content details.toggle-details summary:focus-visible {\n outline-offset: 0.125rem;\n}\n.bd-content details.toggle-details[open] .toggle-chevron-right {\n transform: rotate(-90deg);\n transition: none;\n}\n.bd-content details.toggle-details[open] :focus-visible {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n/**\n * Styles for various Sphinx execution libraries to display pre-executed notebooks.\n * For now, where these define output sections, we simply revert their background\n * to be a \"light theme\" background. This ensures that inputs/outputs behave similarly,\n * because the CSS is often controlled by each package.\n * In the future, we might add dark theme support for specific packages.\n */\n/*******************************************************************************\n * nbsphinx\n */\nhtml div.rendered_html,\nhtml .jp-RenderedHTMLCommon {\n margin: 0.1875rem;\n}\nhtml div.rendered_html table,\nhtml .jp-RenderedHTMLCommon table {\n table-layout: auto;\n}\n\n.bd-content .nboutput .output_area.rendered_html table.dataframe,\n.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe {\n color: var(--pst-color-table);\n border: 1px solid var(--pst-color-table-outer-border);\n}\n.bd-content .nboutput .output_area.rendered_html table.dataframe a,\n.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe a {\n color: var(--pst-color-link-higher-contrast);\n}\n.bd-content .nboutput .output_area.rendered_html table.dataframe th ~ th,\n.bd-content .nboutput .output_area.rendered_html table.dataframe th ~ td,\n.bd-content .nboutput .output_area.rendered_html table.dataframe td ~ th,\n.bd-content .nboutput .output_area.rendered_html table.dataframe td ~ td,\n.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe th ~ th,\n.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe th ~ td,\n.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe td ~ th,\n.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe td ~ td {\n border-left: 1px solid var(--pst-color-table-inner-border);\n}\n.bd-content .nboutput .output_area.rendered_html table.dataframe thead tr,\n.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe thead tr {\n background-color: var(--pst-color-table-heading-bg);\n border-bottom: 2px solid var(--pst-color-primary);\n}\n.bd-content .nboutput .output_area.rendered_html table.dataframe tbody tr:nth-child(odd),\n.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe tbody tr:nth-child(odd) {\n background-color: var(--pst-color-table-row-zebra-low-bg);\n}\n.bd-content .nboutput .output_area.rendered_html table.dataframe tbody tr:nth-child(even),\n.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe tbody tr:nth-child(even) {\n background-color: var(--pst-color-table-row-zebra-high-bg);\n}\n.bd-content .nboutput .output_area.rendered_html table.dataframe tbody tr:hover,\n.bd-content .nboutput .output_area .jp-RenderedHTMLCommon table.dataframe tbody tr:hover {\n background-color: var(--pst-color-table-row-hover-bg);\n}\nhtml[data-theme=dark] .bd-content .nboutput .output_area.rendered_html:not(:has(table.dataframe)),\nhtml[data-theme=dark] .bd-content .nboutput .output_area .widget-subarea {\n color: var(--pst-color-on-background);\n background-color: var(--pst-color-text-base);\n border-radius: 0.25rem;\n padding: 0.5rem;\n}\nhtml[data-theme=dark] .bd-content .nboutput .output_area.stderr {\n background-color: var(--pst-color-danger);\n}\n\ndiv.nblast.container {\n margin-bottom: 1rem;\n}\n\nhtml[data-theme=light] .nbinput.container .prompt pre {\n color: #005b82;\n}\nhtml[data-theme=dark] .nbinput.container .prompt pre {\n color: #00e0e0;\n}\n\nhtml[data-theme=light] .nboutput.container .prompt pre {\n color: #a12236;\n}\nhtml[data-theme=dark] .nboutput.container .prompt pre {\n color: #ffa07a;\n}\n\n/*******************************************************************************\n * myst NB\n */\ndiv.cell_output .output {\n max-width: 100%;\n overflow-x: auto;\n}\n\n.bd-content div.cell_output table.dataframe {\n color: var(--pst-color-table);\n border: 1px solid var(--pst-color-table-outer-border);\n}\n.bd-content div.cell_output table.dataframe a {\n color: var(--pst-color-link-higher-contrast);\n}\n.bd-content div.cell_output table.dataframe th ~ th,\n.bd-content div.cell_output table.dataframe th ~ td,\n.bd-content div.cell_output table.dataframe td ~ th,\n.bd-content div.cell_output table.dataframe td ~ td {\n border-left: 1px solid var(--pst-color-table-inner-border);\n}\n.bd-content div.cell_output table.dataframe thead tr {\n background-color: var(--pst-color-table-heading-bg);\n border-bottom: 2px solid var(--pst-color-primary);\n}\n.bd-content div.cell_output table.dataframe tbody tr:nth-child(odd) {\n background-color: var(--pst-color-table-row-zebra-low-bg);\n}\n.bd-content div.cell_output table.dataframe tbody tr:nth-child(even) {\n background-color: var(--pst-color-table-row-zebra-high-bg);\n}\n.bd-content div.cell_output table.dataframe tbody tr:hover {\n background-color: var(--pst-color-table-row-hover-bg);\n}\nhtml[data-theme=dark] .bd-content div.cell_output img,\nhtml[data-theme=dark] .bd-content div.cell_output .text_html:not(:has(table.dataframe)),\nhtml[data-theme=dark] .bd-content div.cell_output .widget-subarea {\n color: var(--pst-color-on-background);\n background-color: var(--pst-color-text-base);\n border-radius: 0.25rem;\n padding: 0.5rem;\n}\n\n.bd-content div.cell_input {\n display: flex;\n flex-direction: column;\n justify-content: stretch;\n}\n.bd-content div.cell_input,\n.bd-content div.output {\n border-radius: 0.25rem;\n}\n.bd-content div.output table {\n table-layout: auto;\n}\n\n/**\n * style for the various mapping libs based on leaflet (folium, geemap, ipyleaflet)\n * mainly ensure the good display of the maps in both themes and avoid the customization\n * of the tiles\n */\n/**\n * avoid border override from pydata-sphinx-theme\n * minimal selctor to get the priority\n */\nhtml[data-theme=dark] .bd-content img.leaflet-tile.leaflet-tile-loaded {\n border-radius: 0;\n padding: 0;\n}\n\n/**\n * /search.html page special-cases\n */\n.bd-search-container {\n /*******************************************\n * Search results\n */\n}\n.bd-search-container div#search-results > h2, .bd-search-container div#search-results > .h2 {\n font-size: var(--pst-font-size-icon);\n margin-top: 1rem;\n}\n.bd-search-container div#search-results p.search-summary {\n color: var(--pst-color-text-muted);\n}\n.bd-search-container ul.search {\n margin: 0;\n list-style: none;\n}\n.bd-search-container ul.search li {\n background-image: none;\n padding: 1rem 0;\n margin: 1rem 0;\n border-top: 1px solid var(--pst-color-text-muted);\n}\n.bd-search-container ul.search li > a {\n font-size: 1.2em;\n}\n.bd-search-container ul.search li div.context,\n.bd-search-container ul.search li p.context {\n color: var(--pst-color-text-base);\n margin: 0.5em 0 0;\n}\n.bd-search-container ul.search li div.context a::before,\n.bd-search-container ul.search li p.context a::before {\n content: \"#\";\n padding-right: 0.2em;\n color: var(--pst-color-text-muted);\n}","@mixin bsBanner($file) {\n /*!\n * Bootstrap #{$file} v5.3.3 (https://getbootstrap.com/)\n * Copyright 2011-2024 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n}\n",":root,\n[data-bs-theme=\"light\"] {\n // Note: Custom variable values only support SassScript inside `#{}`.\n\n // Colors\n //\n // Generate palettes for full colors, grays, and theme colors.\n\n @each $color, $value in $colors {\n --#{$prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $grays {\n --#{$prefix}gray-#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors-rgb {\n --#{$prefix}#{$color}-rgb: #{$value};\n }\n\n @each $color, $value in $theme-colors-text {\n --#{$prefix}#{$color}-text-emphasis: #{$value};\n }\n\n @each $color, $value in $theme-colors-bg-subtle {\n --#{$prefix}#{$color}-bg-subtle: #{$value};\n }\n\n @each $color, $value in $theme-colors-border-subtle {\n --#{$prefix}#{$color}-border-subtle: #{$value};\n }\n\n --#{$prefix}white-rgb: #{to-rgb($white)};\n --#{$prefix}black-rgb: #{to-rgb($black)};\n\n // Fonts\n\n // Note: Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --#{$prefix}font-sans-serif: #{inspect($font-family-sans-serif)};\n --#{$prefix}font-monospace: #{inspect($font-family-monospace)};\n --#{$prefix}gradient: #{$gradient};\n\n // Root and body\n // scss-docs-start root-body-variables\n @if $font-size-root != null {\n --#{$prefix}root-font-size: #{$font-size-root};\n }\n --#{$prefix}body-font-family: #{inspect($font-family-base)};\n @include rfs($font-size-base, --#{$prefix}body-font-size);\n --#{$prefix}body-font-weight: #{$font-weight-base};\n --#{$prefix}body-line-height: #{$line-height-base};\n @if $body-text-align != null {\n --#{$prefix}body-text-align: #{$body-text-align};\n }\n\n --#{$prefix}body-color: #{$body-color};\n --#{$prefix}body-color-rgb: #{to-rgb($body-color)};\n --#{$prefix}body-bg: #{$body-bg};\n --#{$prefix}body-bg-rgb: #{to-rgb($body-bg)};\n\n --#{$prefix}emphasis-color: #{$body-emphasis-color};\n --#{$prefix}emphasis-color-rgb: #{to-rgb($body-emphasis-color)};\n\n --#{$prefix}secondary-color: #{$body-secondary-color};\n --#{$prefix}secondary-color-rgb: #{to-rgb($body-secondary-color)};\n --#{$prefix}secondary-bg: #{$body-secondary-bg};\n --#{$prefix}secondary-bg-rgb: #{to-rgb($body-secondary-bg)};\n\n --#{$prefix}tertiary-color: #{$body-tertiary-color};\n --#{$prefix}tertiary-color-rgb: #{to-rgb($body-tertiary-color)};\n --#{$prefix}tertiary-bg: #{$body-tertiary-bg};\n --#{$prefix}tertiary-bg-rgb: #{to-rgb($body-tertiary-bg)};\n // scss-docs-end root-body-variables\n\n --#{$prefix}heading-color: #{$headings-color};\n\n --#{$prefix}link-color: #{$link-color};\n --#{$prefix}link-color-rgb: #{to-rgb($link-color)};\n --#{$prefix}link-decoration: #{$link-decoration};\n\n --#{$prefix}link-hover-color: #{$link-hover-color};\n --#{$prefix}link-hover-color-rgb: #{to-rgb($link-hover-color)};\n\n @if $link-hover-decoration != null {\n --#{$prefix}link-hover-decoration: #{$link-hover-decoration};\n }\n\n --#{$prefix}code-color: #{$code-color};\n --#{$prefix}highlight-color: #{$mark-color};\n --#{$prefix}highlight-bg: #{$mark-bg};\n\n // scss-docs-start root-border-var\n --#{$prefix}border-width: #{$border-width};\n --#{$prefix}border-style: #{$border-style};\n --#{$prefix}border-color: #{$border-color};\n --#{$prefix}border-color-translucent: #{$border-color-translucent};\n\n --#{$prefix}border-radius: #{$border-radius};\n --#{$prefix}border-radius-sm: #{$border-radius-sm};\n --#{$prefix}border-radius-lg: #{$border-radius-lg};\n --#{$prefix}border-radius-xl: #{$border-radius-xl};\n --#{$prefix}border-radius-xxl: #{$border-radius-xxl};\n --#{$prefix}border-radius-2xl: var(--#{$prefix}border-radius-xxl); // Deprecated in v5.3.0 for consistency\n --#{$prefix}border-radius-pill: #{$border-radius-pill};\n // scss-docs-end root-border-var\n\n --#{$prefix}box-shadow: #{$box-shadow};\n --#{$prefix}box-shadow-sm: #{$box-shadow-sm};\n --#{$prefix}box-shadow-lg: #{$box-shadow-lg};\n --#{$prefix}box-shadow-inset: #{$box-shadow-inset};\n\n // Focus styles\n // scss-docs-start root-focus-variables\n --#{$prefix}focus-ring-width: #{$focus-ring-width};\n --#{$prefix}focus-ring-opacity: #{$focus-ring-opacity};\n --#{$prefix}focus-ring-color: #{$focus-ring-color};\n // scss-docs-end root-focus-variables\n\n // scss-docs-start root-form-validation-variables\n --#{$prefix}form-valid-color: #{$form-valid-color};\n --#{$prefix}form-valid-border-color: #{$form-valid-border-color};\n --#{$prefix}form-invalid-color: #{$form-invalid-color};\n --#{$prefix}form-invalid-border-color: #{$form-invalid-border-color};\n // scss-docs-end root-form-validation-variables\n}\n\n@if $enable-dark-mode {\n @include color-mode(dark, true) {\n color-scheme: dark;\n\n // scss-docs-start root-dark-mode-vars\n --#{$prefix}body-color: #{$body-color-dark};\n --#{$prefix}body-color-rgb: #{to-rgb($body-color-dark)};\n --#{$prefix}body-bg: #{$body-bg-dark};\n --#{$prefix}body-bg-rgb: #{to-rgb($body-bg-dark)};\n\n --#{$prefix}emphasis-color: #{$body-emphasis-color-dark};\n --#{$prefix}emphasis-color-rgb: #{to-rgb($body-emphasis-color-dark)};\n\n --#{$prefix}secondary-color: #{$body-secondary-color-dark};\n --#{$prefix}secondary-color-rgb: #{to-rgb($body-secondary-color-dark)};\n --#{$prefix}secondary-bg: #{$body-secondary-bg-dark};\n --#{$prefix}secondary-bg-rgb: #{to-rgb($body-secondary-bg-dark)};\n\n --#{$prefix}tertiary-color: #{$body-tertiary-color-dark};\n --#{$prefix}tertiary-color-rgb: #{to-rgb($body-tertiary-color-dark)};\n --#{$prefix}tertiary-bg: #{$body-tertiary-bg-dark};\n --#{$prefix}tertiary-bg-rgb: #{to-rgb($body-tertiary-bg-dark)};\n\n @each $color, $value in $theme-colors-text-dark {\n --#{$prefix}#{$color}-text-emphasis: #{$value};\n }\n\n @each $color, $value in $theme-colors-bg-subtle-dark {\n --#{$prefix}#{$color}-bg-subtle: #{$value};\n }\n\n @each $color, $value in $theme-colors-border-subtle-dark {\n --#{$prefix}#{$color}-border-subtle: #{$value};\n }\n\n --#{$prefix}heading-color: #{$headings-color-dark};\n\n --#{$prefix}link-color: #{$link-color-dark};\n --#{$prefix}link-hover-color: #{$link-hover-color-dark};\n --#{$prefix}link-color-rgb: #{to-rgb($link-color-dark)};\n --#{$prefix}link-hover-color-rgb: #{to-rgb($link-hover-color-dark)};\n\n --#{$prefix}code-color: #{$code-color-dark};\n --#{$prefix}highlight-color: #{$mark-color-dark};\n --#{$prefix}highlight-bg: #{$mark-bg-dark};\n\n --#{$prefix}border-color: #{$border-color-dark};\n --#{$prefix}border-color-translucent: #{$border-color-translucent-dark};\n\n --#{$prefix}form-valid-color: #{$form-valid-color-dark};\n --#{$prefix}form-valid-border-color: #{$form-valid-border-color-dark};\n --#{$prefix}form-invalid-color: #{$form-invalid-color-dark};\n --#{$prefix}form-invalid-border-color: #{$form-invalid-border-color-dark};\n // scss-docs-end root-dark-mode-vars\n }\n}\n","// stylelint-disable scss/dimension-no-non-numeric-values\n\n// SCSS RFS mixin\n//\n// Automated responsive values for font sizes, paddings, margins and much more\n//\n// Licensed under MIT (https://github.com/twbs/rfs/blob/main/LICENSE)\n\n// Configuration\n\n// Base value\n$rfs-base-value: 1.25rem !default;\n$rfs-unit: rem !default;\n\n@if $rfs-unit != rem and $rfs-unit != px {\n @error \"`#{$rfs-unit}` is not a valid unit for $rfs-unit. Use `px` or `rem`.\";\n}\n\n// Breakpoint at where values start decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n@if $rfs-breakpoint-unit != px and $rfs-breakpoint-unit != em and $rfs-breakpoint-unit != rem {\n @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n}\n\n// Resize values based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != number or $rfs-factor <= 1 {\n @error \"`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.\";\n}\n\n// Mode. Possibilities: \"min-media-query\", \"max-media-query\"\n$rfs-mode: min-media-query !default;\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-rfs to false\n$enable-rfs: true !default;\n\n// Cache $rfs-base-value unit\n$rfs-base-value-unit: unit($rfs-base-value);\n\n@function divide($dividend, $divisor, $precision: 10) {\n $sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);\n $dividend: abs($dividend);\n $divisor: abs($divisor);\n @if $dividend == 0 {\n @return 0;\n }\n @if $divisor == 0 {\n @error \"Cannot divide by 0\";\n }\n $remainder: $dividend;\n $result: 0;\n $factor: 10;\n @while ($remainder > 0 and $precision >= 0) {\n $quotient: 0;\n @while ($remainder >= $divisor) {\n $remainder: $remainder - $divisor;\n $quotient: $quotient + 1;\n }\n $result: $result * 10 + $quotient;\n $factor: $factor * .1;\n $remainder: $remainder * 10;\n $precision: $precision - 1;\n @if ($precision < 0 and $remainder >= $divisor * 5) {\n $result: $result + 1;\n }\n }\n $result: $result * $factor * $sign;\n $dividend-unit: unit($dividend);\n $divisor-unit: unit($divisor);\n $unit-map: (\n \"px\": 1px,\n \"rem\": 1rem,\n \"em\": 1em,\n \"%\": 1%\n );\n @if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {\n $result: $result * map-get($unit-map, $dividend-unit);\n }\n @return $result;\n}\n\n// Remove px-unit from $rfs-base-value for calculations\n@if $rfs-base-value-unit == px {\n $rfs-base-value: divide($rfs-base-value, $rfs-base-value * 0 + 1);\n}\n@else if $rfs-base-value-unit == rem {\n $rfs-base-value: divide($rfs-base-value, divide($rfs-base-value * 0 + 1, $rfs-rem-value));\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == px {\n $rfs-breakpoint: divide($rfs-breakpoint, $rfs-breakpoint * 0 + 1);\n}\n@else if $rfs-breakpoint-unit-cache == rem or $rfs-breakpoint-unit-cache == \"em\" {\n $rfs-breakpoint: divide($rfs-breakpoint, divide($rfs-breakpoint * 0 + 1, $rfs-rem-value));\n}\n\n// Calculate the media query value\n$rfs-mq-value: if($rfs-breakpoint-unit == px, #{$rfs-breakpoint}px, #{divide($rfs-breakpoint, $rfs-rem-value)}#{$rfs-breakpoint-unit});\n$rfs-mq-property-width: if($rfs-mode == max-media-query, max-width, min-width);\n$rfs-mq-property-height: if($rfs-mode == max-media-query, max-height, min-height);\n\n// Internal mixin used to determine which media query needs to be used\n@mixin _rfs-media-query {\n @if $rfs-two-dimensional {\n @if $rfs-mode == max-media-query {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}), (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {\n @content;\n }\n }\n @else {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) and (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {\n @content;\n }\n }\n }\n @else {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) {\n @content;\n }\n }\n}\n\n// Internal mixin that adds disable classes to the selector if needed.\n@mixin _rfs-rule {\n @if $rfs-class == disable and $rfs-mode == max-media-query {\n // Adding an extra class increases specificity, which prevents the media query to override the property\n &,\n .disable-rfs &,\n &.disable-rfs {\n @content;\n }\n }\n @else if $rfs-class == enable and $rfs-mode == min-media-query {\n .enable-rfs &,\n &.enable-rfs {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Internal mixin that adds enable classes to the selector if needed.\n@mixin _rfs-media-query-rule {\n\n @if $rfs-class == enable {\n @if $rfs-mode == min-media-query {\n @content;\n }\n\n @include _rfs-media-query () {\n .enable-rfs &,\n &.enable-rfs {\n @content;\n }\n }\n }\n @else {\n @if $rfs-class == disable and $rfs-mode == min-media-query {\n .disable-rfs &,\n &.disable-rfs {\n @content;\n }\n }\n @include _rfs-media-query () {\n @content;\n }\n }\n}\n\n// Helper function to get the formatted non-responsive value\n@function rfs-value($values) {\n // Convert to list\n $values: if(type-of($values) != list, ($values,), $values);\n\n $val: \"\";\n\n // Loop over each value and calculate value\n @each $value in $values {\n @if $value == 0 {\n $val: $val + \" 0\";\n }\n @else {\n // Cache $value unit\n $unit: if(type-of($value) == \"number\", unit($value), false);\n\n @if $unit == px {\n // Convert to rem if needed\n $val: $val + \" \" + if($rfs-unit == rem, #{divide($value, $value * 0 + $rfs-rem-value)}rem, $value);\n }\n @else if $unit == rem {\n // Convert to px if needed\n $val: $val + \" \" + if($rfs-unit == px, #{divide($value, $value * 0 + 1) * $rfs-rem-value}px, $value);\n } @else {\n // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n $val: $val + \" \" + $value;\n }\n }\n }\n\n // Remove first space\n @return unquote(str-slice($val, 2));\n}\n\n// Helper function to get the responsive value calculated by RFS\n@function rfs-fluid-value($values) {\n // Convert to list\n $values: if(type-of($values) != list, ($values,), $values);\n\n $val: \"\";\n\n // Loop over each value and calculate value\n @each $value in $values {\n @if $value == 0 {\n $val: $val + \" 0\";\n } @else {\n // Cache $value unit\n $unit: if(type-of($value) == \"number\", unit($value), false);\n\n // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $unit or $unit != px and $unit != rem {\n $val: $val + \" \" + $value;\n } @else {\n // Remove unit from $value for calculations\n $value: divide($value, $value * 0 + if($unit == px, 1, divide(1, $rfs-rem-value)));\n\n // Only add the media query if the value is greater than the minimum value\n @if abs($value) <= $rfs-base-value or not $enable-rfs {\n $val: $val + \" \" + if($rfs-unit == rem, #{divide($value, $rfs-rem-value)}rem, #{$value}px);\n }\n @else {\n // Calculate the minimum value\n $value-min: $rfs-base-value + divide(abs($value) - $rfs-base-value, $rfs-factor);\n\n // Calculate difference between $value and the minimum value\n $value-diff: abs($value) - $value-min;\n\n // Base value formatting\n $min-width: if($rfs-unit == rem, #{divide($value-min, $rfs-rem-value)}rem, #{$value-min}px);\n\n // Use negative value if needed\n $min-width: if($value < 0, -$min-width, $min-width);\n\n // Use `vmin` if two-dimensional is enabled\n $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n // Calculate the variable width between 0 and $rfs-breakpoint\n $variable-width: #{divide($value-diff * 100, $rfs-breakpoint)}#{$variable-unit};\n\n // Return the calculated value\n $val: $val + \" calc(\" + $min-width + if($value < 0, \" - \", \" + \") + $variable-width + \")\";\n }\n }\n }\n }\n\n // Remove first space\n @return unquote(str-slice($val, 2));\n}\n\n// RFS mixin\n@mixin rfs($values, $property: font-size) {\n @if $values != null {\n $val: rfs-value($values);\n $fluid-val: rfs-fluid-value($values);\n\n // Do not print the media query if responsive & non-responsive values are the same\n @if $val == $fluid-val {\n #{$property}: $val;\n }\n @else {\n @include _rfs-rule () {\n #{$property}: if($rfs-mode == max-media-query, $val, $fluid-val);\n\n // Include safari iframe resize fix if needed\n min-width: if($rfs-safari-iframe-resize-bug-fix, (0 * 1vw), null);\n }\n\n @include _rfs-media-query-rule () {\n #{$property}: if($rfs-mode == max-media-query, $fluid-val, $val);\n }\n }\n }\n}\n\n// Shorthand helper mixins\n@mixin font-size($value) {\n @include rfs($value);\n}\n\n@mixin padding($value) {\n @include rfs($value, padding);\n}\n\n@mixin padding-top($value) {\n @include rfs($value, padding-top);\n}\n\n@mixin padding-right($value) {\n @include rfs($value, padding-right);\n}\n\n@mixin padding-bottom($value) {\n @include rfs($value, padding-bottom);\n}\n\n@mixin padding-left($value) {\n @include rfs($value, padding-left);\n}\n\n@mixin margin($value) {\n @include rfs($value, margin);\n}\n\n@mixin margin-top($value) {\n @include rfs($value, margin-top);\n}\n\n@mixin margin-right($value) {\n @include rfs($value, margin-right);\n}\n\n@mixin margin-bottom($value) {\n @include rfs($value, margin-bottom);\n}\n\n@mixin margin-left($value) {\n @include rfs($value, margin-left);\n}\n","// scss-docs-start color-mode-mixin\n@mixin color-mode($mode: light, $root: false) {\n @if $color-mode-type == \"media-query\" {\n @if $root == true {\n @media (prefers-color-scheme: $mode) {\n :root {\n @content;\n }\n }\n } @else {\n @media (prefers-color-scheme: $mode) {\n @content;\n }\n }\n } @else {\n [data-bs-theme=\"#{$mode}\"] {\n @content;\n }\n }\n}\n// scss-docs-end color-mode-mixin\n","// stylelint-disable declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n\n// Root\n//\n// Ability to the value of the root font sizes, affecting the value of `rem`.\n// null by default, thus nothing is generated.\n\n:root {\n @if $font-size-root != null {\n @include font-size(var(--#{$prefix}root-font-size));\n }\n\n @if $enable-smooth-scroll {\n @media (prefers-reduced-motion: no-preference) {\n scroll-behavior: smooth;\n }\n }\n}\n\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Prevent adjustments of font size after orientation changes in iOS.\n// 4. Change the default tap highlight to be completely transparent in iOS.\n\n// scss-docs-start reboot-body-rules\nbody {\n margin: 0; // 1\n font-family: var(--#{$prefix}body-font-family);\n @include font-size(var(--#{$prefix}body-font-size));\n font-weight: var(--#{$prefix}body-font-weight);\n line-height: var(--#{$prefix}body-line-height);\n color: var(--#{$prefix}body-color);\n text-align: var(--#{$prefix}body-text-align);\n background-color: var(--#{$prefix}body-bg); // 2\n -webkit-text-size-adjust: 100%; // 3\n -webkit-tap-highlight-color: rgba($black, 0); // 4\n}\n// scss-docs-end reboot-body-rules\n\n\n// Content grouping\n//\n// 1. Reset Firefox's gray color\n\nhr {\n margin: $hr-margin-y 0;\n color: $hr-color; // 1\n border: 0;\n border-top: $hr-border-width solid $hr-border-color;\n opacity: $hr-opacity;\n}\n\n\n// Typography\n//\n// 1. Remove top margins from headings\n// By default, `

`-`

` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n\n%heading {\n margin-top: 0; // 1\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-style: $headings-font-style;\n font-weight: $headings-font-weight;\n line-height: $headings-line-height;\n color: var(--#{$prefix}heading-color);\n}\n\nh1 {\n @extend %heading;\n @include font-size($h1-font-size);\n}\n\nh2 {\n @extend %heading;\n @include font-size($h2-font-size);\n}\n\nh3 {\n @extend %heading;\n @include font-size($h3-font-size);\n}\n\nh4 {\n @extend %heading;\n @include font-size($h4-font-size);\n}\n\nh5 {\n @extend %heading;\n @include font-size($h5-font-size);\n}\n\nh6 {\n @extend %heading;\n @include font-size($h6-font-size);\n}\n\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `

`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\n\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n\n// Abbreviations\n//\n// 1. Add the correct text decoration in Chrome, Edge, Opera, and Safari.\n// 2. Add explicit cursor to indicate changed behavior.\n// 3. Prevent the text-decoration to be skipped.\n\nabbr[title] {\n text-decoration: underline dotted; // 1\n cursor: help; // 2\n text-decoration-skip-ink: none; // 3\n}\n\n\n// Address\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\n\n// Lists\n\nol,\nul {\n padding-left: 2rem;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\n// 1. Undo browser default\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // 1\n}\n\n\n// Blockquote\n\nblockquote {\n margin: 0 0 1rem;\n}\n\n\n// Strong\n//\n// Add the correct font weight in Chrome, Edge, and Safari\n\nb,\nstrong {\n font-weight: $font-weight-bolder;\n}\n\n\n// Small\n//\n// Add the correct font size in all browsers\n\nsmall {\n @include font-size($small-font-size);\n}\n\n\n// Mark\n\nmark {\n padding: $mark-padding;\n color: var(--#{$prefix}highlight-color);\n background-color: var(--#{$prefix}highlight-bg);\n}\n\n\n// Sub and Sup\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n\nsub,\nsup {\n position: relative;\n @include font-size($sub-sup-font-size);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n// Links\n\na {\n color: rgba(var(--#{$prefix}link-color-rgb), var(--#{$prefix}link-opacity, 1));\n text-decoration: $link-decoration;\n\n &:hover {\n --#{$prefix}link-color-rgb: var(--#{$prefix}link-hover-color-rgb);\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([class]) {\n &,\n &:hover {\n color: inherit;\n text-decoration: none;\n }\n}\n\n\n// Code\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-code;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\n// 1. Remove browser default top margin\n// 2. Reset browser default of `1em` to use `rem`s\n// 3. Don't allow content to break outside\n\npre {\n display: block;\n margin-top: 0; // 1\n margin-bottom: 1rem; // 2\n overflow: auto; // 3\n @include font-size($code-font-size);\n color: $pre-color;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n @include font-size(inherit);\n color: inherit;\n word-break: normal;\n }\n}\n\ncode {\n @include font-size($code-font-size);\n color: var(--#{$prefix}code-color);\n word-wrap: break-word;\n\n // Streamline the style when inside anchors to avoid broken underline and more\n a > & {\n color: inherit;\n }\n}\n\nkbd {\n padding: $kbd-padding-y $kbd-padding-x;\n @include font-size($kbd-font-size);\n color: $kbd-color;\n background-color: $kbd-bg;\n @include border-radius($border-radius-sm);\n\n kbd {\n padding: 0;\n @include font-size(1em);\n font-weight: $nested-kbd-font-weight;\n }\n}\n\n\n// Figures\n//\n// Apply a consistent margin strategy (matches our type styles).\n\nfigure {\n margin: 0 0 1rem;\n}\n\n\n// Images and content\n\nimg,\nsvg {\n vertical-align: middle;\n}\n\n\n// Tables\n//\n// Prevent double borders\n\ntable {\n caption-side: bottom;\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: $table-cell-padding-y;\n padding-bottom: $table-cell-padding-y;\n color: $table-caption-color;\n text-align: left;\n}\n\n// 1. Removes font-weight bold by inheriting\n// 2. Matches default `` alignment by inheriting `text-align`.\n// 3. Fix alignment for Safari\n\nth {\n font-weight: $table-th-font-weight; // 1\n text-align: inherit; // 2\n text-align: -webkit-match-parent; // 3\n}\n\nthead,\ntbody,\ntfoot,\ntr,\ntd,\nth {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n}\n\n\n// Forms\n//\n// 1. Allow labels to use `margin` for spacing.\n\nlabel {\n display: inline-block; // 1\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n// See https://github.com/twbs/bootstrap/issues/24093\n\nbutton {\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 0;\n}\n\n// Explicitly remove focus outline in Chromium when it shouldn't be\n// visible (e.g. as result of mouse click or touch tap). It already\n// should be doing this automatically, but seems to currently be\n// confused and applies its very visible two-tone outline anyway.\n\nbutton:focus:not(:focus-visible) {\n outline: 0;\n}\n\n// 1. Remove the margin in Firefox and Safari\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // 1\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\n// Remove the inheritance of text transform in Firefox\nbutton,\nselect {\n text-transform: none;\n}\n// Set the cursor for non-` + + + + +

+ + + + +
+ +
+ + + + + +
+
+ + + + +
+ + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

DWT (Debug-Watchdog-Trace) Counter#

+
+

DWT Counter#

+

Defined in namespace hal::cortex_m

+

#include <libhal-arm-mcu/dwt_counter.hpp>

+
+
+class dwt_counter : public hal::steady_clock#
+

A counter with a frequency fixed to the CPU clock rate.

+

This driver is supported for Cortex M3 devices and above.

+
+

Public Functions

+
+
+dwt_counter(hertz p_cpu_frequency)#
+

Construct a new dwt counter object.

+
+
Parameters:
+

p_cpu_frequency – - the operating frequency of the CPU

+
+
+
+ +
+
+void register_cpu_frequency(hertz p_cpu_frequency)#
+

Inform the driver of the operating frequency of the CPU in order to generate the correct uptime.

+

Use this when the CPU’s operating frequency has changed and no longer matches the frequency supplied to the constructor. Care should be taken when expecting this function when there is the potentially other parts of the system that depend on this counter’s uptime to operate.

+
+
Parameters:
+

p_cpu_frequency – - the operating frequency of the CPU

+
+
+
+ +
+
+ +
+
+ + +
+ + + + + + + +
+ + + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/cortex_m/index.html b/libhal-arm-mcu/1.22.0/cortex_m/index.html new file mode 100644 index 0000000..d244a45 --- /dev/null +++ b/libhal-arm-mcu/1.22.0/cortex_m/index.html @@ -0,0 +1,706 @@ + + + + + + + + + + + libhal-arm-mcu API Documentation — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + +
+ + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

libhal-arm-mcu API Documentation#

+

Here are the collection of drivers for microcontrollers ARM Cortex M processor.

+ +
+ + +
+ + + + + + + +
+ + + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/cortex_m/interrupt.html b/libhal-arm-mcu/1.22.0/cortex_m/interrupt.html new file mode 100644 index 0000000..5367783 --- /dev/null +++ b/libhal-arm-mcu/1.22.0/cortex_m/interrupt.html @@ -0,0 +1,932 @@ + + + + + + + + + + + Interrupt Controller — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + +
+ + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

Interrupt Controller#

+
+

NVIC (Nested Vector Interrupt Controller)#

+

Defined in namespace hal::cortex_m

+

#include <libhal-arm-mcu/interrupt.hpp>

+
+
+enum class hal::cortex_m::irq : irq_t#
+

IRQ numbers for core processor interrupts.

+

All core IRQs are enabled by default.

+

Values:

+
+
+enumerator top_of_stack#
+
+ +
+
+enumerator reset#
+
+ +
+
+enumerator non_maskable_interrupt#
+
+ +
+
+enumerator hard_fault#
+
+ +
+
+enumerator memory_management_fault#
+
+ +
+
+enumerator bus_fault#
+
+ +
+
+enumerator usage_fault#
+
+ +
+
+enumerator reserve7#
+
+ +
+
+enumerator reserve8#
+
+ +
+
+enumerator reserve9#
+
+ +
+
+enumerator reserve10#
+
+ +
+
+enumerator software_call#
+
+ +
+
+enumerator reserve12#
+
+ +
+
+enumerator reserve13#
+
+ +
+
+enumerator pend_sv#
+
+ +
+
+enumerator systick#
+
+ +
+ +
+
+void hal::cortex_m::default_interrupt_handler()#
+

A default interrupt handler that loops forever.

+
+ +
+
+void hal::cortex_m::hard_fault_handler()#
+

Default hard fault handler.

+

Used by developers in debug mode to see if they landed in the default hard fault handler.

+
+ +
+
+void hal::cortex_m::memory_management_fault_handler()#
+

Default memory management fault handler.

+

Used by developers in debug mode to see if they landed in the default memory management fault handler.

+
+ +
+
+void hal::cortex_m::bus_fault_handler()#
+

Default bus fault handler.

+

Used by developers in debug mode to see if they landed in the default bus fault handler.

+
+ +
+
+void hal::cortex_m::usage_fault_handler()#
+

Default usage fault handler.

+

Used by developers in debug mode to see if they landed in the default usage fault handler.

+
+ +
+
+void hal::cortex_m::revert_interrupt_vector_table()#
+

Sets the interrupt vector table back to a form where it can be initialized again().

+

Recommended to never call this function in your application. If it is called, it should be well documented why this choice was necessary.

+

Will clear all pending interrupts and sets the internal state to uninitialized. This call is dangerous and should only be done before any drivers depend on their interrupts to function.

+
+ +
+
+void hal::cortex_m::initialize_interrupts(std::span<interrupt_pointer> p_vector_table)#
+

Initialize the interrupt vector table.

+

Using this function directly is not recommended. Use the templated version of this in drivers and in application code. Only use this if you need to control precisely where the interrupt vector table is located.

+

If the input vector table has the same address as the previous vector table, then this function does nothing.

+

This function does the following:

+

    +
  • Sets the default for hard_fault to hard_fault_handler

  • +
  • Sets the default for memory_management_fault to memory_management_fault_handler

  • +
  • Sets the default for bus_fault to bus_fault_handler

  • +
  • Sets the default for usage_fault to usage_fault_handler

  • +
  • Sets the default for everything else to nop

  • +
  • Assign a global vector_table span to the the passed vector table.

  • +
  • Relocates the system’s interrupt vector table away from the hard coded vector table in ROM/Flash memory to the table passed in.

  • +
+

+

All default functions contain an infinite loop and it is encouraged to swap these out if you plan to use the interrupts.

+
+
Parameters:
+

p_vector_table – - must have length > 16 to accommodate the core interrupts.

+
+
+
+ +
+
+bool hal::cortex_m::interrupt_vector_table_initialized()#
+

Returns true if the interrupt vector table has been initialized.

+

This API should NOT be called by platform peripheral drivers. Those drivers should call initialize_interrupts<irq::max>(). That API will do the check for you and will either return early if interrupts are already enabled. There is no reason to call this API directly then call initialize_interrupts<irq::max>(). That is unecessary cycles.

+

This API should be used by cortex m drivers like systick, which cannot know the size of the interrupt vector table as it is different for each microcontroller.

+
+
Returns:
+

true - interrupt vector table is initialized

+
+
Returns:
+

false - interrupt vector table is not initialized

+
+
+
+ +
+
+void hal::cortex_m::disable_all_interrupts()#
+

Disable all interrupts.

+
+ +
+
+void hal::cortex_m::enable_all_interrupts()#
+

Re-enable all interrupts.

+
+ +
+
+std::span<interrupt_pointer> const hal::cortex_m::get_vector_table()#
+

Get a reference to interrupt vector table object.

+
+
Returns:
+

const std::span<interrupt_pointer> - interrupt vector table

+
+
+
+ +
+
+void hal::cortex_m::enable_interrupt(irq_t p_irq, interrupt_pointer p_handler)#
+

Enable interrupt and set the service routine handler.

+

If the irq is not valid, meaning it is outside of the range of the interrupt vector table, then nothing happens.

+

Using this with a core cortex-m interrupt will assign its handler.

+
+
Parameters:
+
    +
  • p_irq – - irq to enable. If the value is beyond the range of the interrupt vector table, then this function does nothing.

  • +
  • p_handler – - the interrupt service routine handler to be executed when the hardware interrupt is fired.

  • +
+
+
+
+ +
+
+void hal::cortex_m::disable_interrupt(irq_t p_irq)#
+

disable interrupt and set the service routine handler to their default.

+

This function does nothing if the vector table has not yet been initialized.

+
+
Parameters:
+

p_irq – - irq to disable, if the value is below 0 or out of range then this function does nothing.

+
+
+
+ +
+
+bool hal::cortex_m::is_interrupt_enabled(irq_t p_irq)#
+

determine if a particular interrupt has been enabled.

+

This is only to determine if that particular entry is enabled, it does not care about what handler is inside.

+
+
Parameters:
+

p_irq – - irq to check.

+
+
Returns:
+

true - the interrupt has been enabled.

+
+
Returns:
+

false - the interrupt is disabled or is invalid.

+
+
+
+ +
+
+bool hal::cortex_m::verify_vector_enabled(irq_t p_irq, interrupt_pointer p_handler)#
+

determine if a particular handler has been put into the interrupt vector table.

+

Generally used by unit testing code.

+
+
Parameters:
+
    +
  • p_irq – - irq to check

  • +
  • p_handler – - the handler to check against. The address of the handler must match what is in the interrupt vector table.

  • +
+
+
Returns:
+

true - the handler is equal to the handler in the table

+
+
Returns:
+

false - the handler is not at this index in the table or p_irq is not valid.

+
+
+
+ +
+
+ + +
+ + + + + + + +
+ + + + + + + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/cortex_m/startup.html b/libhal-arm-mcu/1.22.0/cortex_m/startup.html new file mode 100644 index 0000000..84b9af9 --- /dev/null +++ b/libhal-arm-mcu/1.22.0/cortex_m/startup.html @@ -0,0 +1,652 @@ + + + + + + + + + + + Startup Functions — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + +
+ + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

Startup Functions#

+
+

ARM Cortex-M Startup Utilities#

+

Defined in namespace hal::cortex_m

+

#include <libhal-arm-mcu/startup.hpp>

+
+
+inline void hal::cortex_m::initialize_data_section()#
+

Initialize the data section of RAM. This should be the first thing called in main() before using any global or statically allocated variables. It can also be called in the startup code before main is called. This is not done by crt0.s (C runtime startup code) because with an OS, when the executable is copied to RAM, the data section is also copied and those same locations can be reused for the application, removing the need to copy the data section. This will also happen if one loads an elf file to an MCU using a debugger. Typically the RAM section, but not BSS, is copied over. But in the case of the MCU without a debugger, the MCU will have to manage coping the contents from ROM to RAM itself. Systems should always assume they haven’t been loaded by any means and should set the data section at the start of the application.

+
+ +
+
+inline void hal::cortex_m::initialize_bss_section()#
+

Initialize the BSS (uninitialized data section) to all zeros.

+

Not required if the C Runtime 0 (crt0.s/.a/.o) is used as a startup routine.

+
+ +
+
+ + +
+ + + + + + + +
+ + + + + + + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/cortex_m/system_control.html b/libhal-arm-mcu/1.22.0/cortex_m/system_control.html new file mode 100644 index 0000000..1ce9fc5 --- /dev/null +++ b/libhal-arm-mcu/1.22.0/cortex_m/system_control.html @@ -0,0 +1,712 @@ + + + + + + + + + + + System Control — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + +
+ + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

System Control#

+
+

ARM Cortex-M System Control Functions#

+

Defined in namespace hal::cortex_m

+

#include <libhal-arm-mcu/system_control.hpp>

+
+
+void hal::cortex_m::initialize_floating_point_unit()#
+

Enable the floating point unit coprocessor.

+

WARNING: If the coprocessor does not exist, as it is optional, a UsageFault will occur. Floating point units are only found within Cortex M4 and above processors.

+
+ +
+
+void *hal::cortex_m::get_interrupt_vector_table_address()#
+

Get the address of the systems interrupt vector table.

+

On reset the VTOR register is set to 0x0000’0000 or nullptr.

+
+
Returns:
+

void* - address within VTOR the interrupt vector table relocation register.

+
+
+
+ +
+
+void hal::cortex_m::set_interrupt_vector_table_address(void *p_table_location)#
+

Set the address of the systems interrupt vector table.

+

The interrupt vector table (IVT) is held in ROM which means that, either the interrupt service routines (ISR) had to be defined at compile time making them immutable at runtime, or that each ISR calls a mutable function pointer which can be changed at runtime.

+

The problem with the first option is that it makes writing and using libraries difficult. Usually requiring updates to the IVT manually by the application designer based on what libraries and drivers the application is using.

+

The second solution has a problem where the additional another layer of indirection increases interrupt latency. A more critical problem of this approach is that many ISRs take advantage of the state of the system when the ISR runs. For example, context switching in an RTOS needs to be able to see the address of where code was when the interrupt occurred and having an additional point of indirection (i.e. calling a function pointer) will change that location from the task to the ISR that called the context switch function. This will usually result in a fault of some sort.

+

Creating an interrupt vector table in RAM and relocating the ISRs there consumes RAM space, but gives great flexibility over the table at runtime.

+
+
Parameters:
+

p_table_location – - address of the interrupt vector table.

+
+
+
+ +
+
+void hal::cortex_m::reset()#
+

Request reset from CPU.

+
+ +
+
+void hal::cortex_m::wait_for_interrupt()#
+

Executes WFI instruction.

+

The WFI instruction stops the CPU, reducing power, and wakes up on interrupt.

+
+ +
+
+void hal::cortex_m::wait_for_event()#
+

Executes WFE instruction.

+

The WFE instruction stops the CPU, reducing power, and wakes up on event.

+
+ +
+
+bool hal::cortex_m::debugger_connected()#
+

Check if debugger is connected via CoreDebug->DHCSRd.

+
+
Returns:
+

true - debugger connected

+
+
Returns:
+

false - debugger is not connected

+
+
+
+ +
+
+ + +
+ + + + + + + +
+ + + + + + + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/cortex_m/systick_timer.html b/libhal-arm-mcu/1.22.0/cortex_m/systick_timer.html new file mode 100644 index 0000000..6d6f866 --- /dev/null +++ b/libhal-arm-mcu/1.22.0/cortex_m/systick_timer.html @@ -0,0 +1,721 @@ + + + + + + + + + + + SysTick Timer — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + +
+ + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

SysTick Timer#

+
+

ARM Cortex-M SysTick Timer#

+

Defined in namespace hal::cortex_m

+

#include <libhal-arm-mcu/systick_timer.hpp>

+
+
+class systick_timer : public hal::timer#
+

SysTick driver for the ARM Cortex Mx series chips.

+

Available in all ARM Cortex M series processors. Provides a generic and simple timer for every platform using these processor.

+
+

Public Types

+
+
+enum class clock_source : std::uint8_t#
+

Defines the set of clock sources for the SysTick timer.

+

Values:

+
+
+enumerator external#
+

Use an external clock source. What this source is depends on the architecture and configuration of the platform.

+
+ +
+
+enumerator processor#
+

Use the clock given to the CPU.

+
+ +
+ +
+
+

Public Functions

+
+
+systick_timer(hertz p_frequency, clock_source p_source = clock_source::processor)#
+

Construct a new systick_timer timer object.

+

PRECONDITION: Interrupt vector table must be initialized before creating an instance of this object.

+
+
Parameters:
+
    +
  • p_frequency – - the clock source’s frequency

  • +
  • p_source – - the source of the clock to the systick timer

  • +
+
+
Throws:
+

hal::operation_not_permitted – - thrown when the precondition to initialize the interrupt vector table before constructing this object.

+
+
+
+ +
+
+void register_cpu_frequency(hertz p_frequency, clock_source p_source = clock_source::processor)#
+

Inform the driver of the operating frequency of the CPU in order to generate the correct uptime.

+

Use this when the CPU’s operating frequency has changed and no longer matches the frequency supplied to the constructor. Care should be taken when expecting this function when there is the potentially other parts of the system that depend on this counter’s uptime to operate.

+

This will clear any ongoing scheduled events as the timing will no longer be valid.

+
+
Parameters:
+
    +
  • p_frequency – - the clock source’s frequency

  • +
  • p_source – - the source of the clock to the systick timer

  • +
+
+
+
+ +
+
+~systick_timer() override#
+

Destroy the system timer object.

+

Stop the timer and disable the interrupt service routine.

+
+ +
+
+ +
+
+ + +
+ + + + + + + +
+ + + + + + + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/genindex.html b/libhal-arm-mcu/1.22.0/genindex.html new file mode 100644 index 0000000..f88c466 --- /dev/null +++ b/libhal-arm-mcu/1.22.0/genindex.html @@ -0,0 +1,2200 @@ + + + + + + + + + + Index — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+ + + + + +
+ + +

Index

+ +
+ H + +
+

H

+ + + +
+ + + +
+ + + + + +
+ +
+
+
+ +
+ + + + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/index.html b/libhal-arm-mcu/1.22.0/index.html new file mode 100644 index 0000000..227c1c5 --- /dev/null +++ b/libhal-arm-mcu/1.22.0/index.html @@ -0,0 +1,1853 @@ + + + + + + + + + + + libhal-arm-mcu API documentation — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+ + + + + +
+ +
+

libhal-arm-mcu API documentation#

+libhal logo + +

Welcome to libhal ARM MCU API documentation

+

Here you will find an organized list of the peripheral drivers for MCUs with +ARM Cortex M processors embedded within them.

+
+

libhal-arm-mcu Docs

+ +
+
+ + +
+ + + + + + + +
+ + + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/lpc40/adc.html b/libhal-arm-mcu/1.22.0/lpc40/adc.html new file mode 100644 index 0000000..d4daaca --- /dev/null +++ b/libhal-arm-mcu/1.22.0/lpc40/adc.html @@ -0,0 +1,740 @@ + + + + + + + + + + + LPC40 ADC APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

LPC40 ADC APIs#

+
+

hal::lpc40::adc#

+

Defined in namespace hal::lpc40

+

#include <libhal-arm-mcu/lpc40/adc.hpp>

+
+
+class adc : public hal::adc#
+

Analog to digital converter.

+
+

Public Functions

+
+
+inline adc(hal::channel_param auto p_channel)#
+

Get a predefined adc channel.

+

    +
  • ADC channel 0 is pin(0, 23)

  • +
  • ADC channel 1 is pin(0, 24)

  • +
  • ADC channel 2 is pin(0, 25)

  • +
  • ADC channel 3 is pin(0, 26)

  • +
  • ADC channel 4 is pin(1, 30)

  • +
  • ADC channel 5 is pin(1, 31)

  • +
  • ADC channel 6 is pin(0, 12)

  • +
  • ADC channel 7 is pin(0, 13)

  • +
+

+
+
Parameters:
+

p_channel – - Which adc channel to use

+
+
+
+ +
+
+adc(channel const &p_channel)#
+

Construct a custom adc object based on the passed in channel information.

+

Care should be taken to ensure that the adc’s operating frequency does not go above 1MHz and that the the channel index is within the bounds of 0 to 7. Exceeding these bounds will result in a call to std::abort.

+

Care should also be taken to ensure that two adc’s constructed via this method do not overlap in index.

+

The operating frequency is shared across all adc channels, which means that the last adc to be constructed will set sampling frequency for all channels.

+
+
Parameters:
+

p_channel – - Which adc channel to use

+
+
+
+ +
+
+
+struct channel#
+

Channel specific information.

+
+

Public Members

+
+
+hertz clock_rate = 1'000'000.0f#
+

Default and highest sampling rate is 1 MHz. Careful as changing this for one channel changes this for all channels on the lpc40xx mcu.

+
+ +
+
+pin adc_pin#
+

ADC pin.

+
+ +
+
+uint8_t index#
+

Channel data index.

+
+ +
+
+uint8_t pin_function#
+

Pin mux function code.

+
+ +
+
+ +
+ +
+
+ + +
+ + + + + + + +
+ + + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/lpc40/can.html b/libhal-arm-mcu/1.22.0/lpc40/can.html new file mode 100644 index 0000000..0d9fe86 --- /dev/null +++ b/libhal-arm-mcu/1.22.0/lpc40/can.html @@ -0,0 +1,733 @@ + + + + + + + + + + + LPC40 CAN APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

LPC40 CAN APIs#

+
+

hal::lpc40::can#

+

Defined in namespace hal::lpc40

+

#include <libhal-arm-mcu/lpc40/can.hpp>

+
+
+class can : public hal::can#
+
+
+struct port#
+

Contains all of the information for to control and configure a CAN BUS bus on the LPC40xx platform.

+
+

Public Members

+
+
+pin td#
+

Reference to transmit pin object.

+
+ +
+
+std::uint8_t td_function_code#
+

Pin function code for transmit.

+
+ +
+
+pin rd#
+

Reference to read pin object.

+
+ +
+
+std::uint8_t rd_function_code#
+

Pin function code for receive.

+
+ +
+
+peripheral id#
+

Peripheral’s ID.

+
+ +
+
+irq irq_number#
+

IRQ.

+
+ +
+
+std::uint8_t sync_jump = 0#
+

Number of time quanta for sync bits - 1.

+
+ +
+
+std::uint8_t tseg1 = 6#
+

Number of time quanta for tseg1 - 1.

+
+ +
+
+std::uint8_t tseg2 = 1#
+

Number of time quanta for tseg2 - 1.

+
+ +
+
+ +
+ +
+
+ + +
+ + + + + + + +
+ + + + + + + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/lpc40/clock.html b/libhal-arm-mcu/1.22.0/lpc40/clock.html new file mode 100644 index 0000000..ce8d733 --- /dev/null +++ b/libhal-arm-mcu/1.22.0/lpc40/clock.html @@ -0,0 +1,1031 @@ + + + + + + + + + + + LPC40 Clock APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

LPC40 Clock APIs#

+
+

hal::lpc40::clock_tree#

+

Defined in namespace hal::lpc40

+

#include <libhal-arm-mcu/lpc40/clock.hpp>

+
+
+enum class hal::lpc40::usb_clock_source : u8#
+

USB oscillator source constants (not used)

+

Values:

+
+
+enumerator system_clock#
+

Use IRC or external oscillator directly.

+
+ +
+
+enumerator pll0#
+

Use PLL0 main PLL as the clock source.

+
+ +
+
+enumerator pll1#
+

Use PLL1 alternative PLL as the clock source.

+
+ +
+ +
+
+enum class hal::lpc40::usb_divider : u8#
+

USB Clock divider constants.

+

Values:

+
+
+enumerator divide_by1#
+
+ +
+
+enumerator divide_by2#
+
+ +
+
+enumerator divide_by3#
+
+ +
+
+enumerator divide_by4#
+
+ +
+ +
+
+enum class hal::lpc40::spifi_clock_source : u8#
+

spifi clock options

+

Values:

+
+
+enumerator system_clock#
+

Use IRC or external oscillator directly.

+
+ +
+
+enumerator pll0#
+

Use PLL0 main PLL as the clock source.

+
+ +
+
+enumerator pll1#
+

Use PLL1 alternative PLL as the clock source.

+
+ +
+ +
+
+enum class hal::lpc40::flash_configuration : u16#
+

Defines the codes for the flash access clock cycles required based on the CPU clocks speed.

+

Values:

+
+
+enumerator clock1#
+

Flash accesses use 1 CPU clock. Use for up to 20 MHz CPU clock with power boost off.

+
+ +
+
+enumerator clock2#
+

Flash accesses use 2 CPU clocks. Use for up to 40 MHz CPU clock with power boost off.

+
+ +
+
+enumerator clock3#
+

Flash accesses use 3 CPU clocks. Use for up to 60 MHz CPU clock with power boost off.

+
+ +
+
+enumerator clock4#
+

Flash accesses use 4 CPU clocks. Use for up to 80 MHz CPU clock with power boost off.

+
+ +
+
+enumerator clock5#
+

Flash accesses use 5 CPU clocks. Use for up to 100 MHz CPU clock with power boost off. If CPU clock is above 100 MHz, use this but with power boost on.

+
+ +
+
+enumerator clock6#
+

Flash accesses use 6 CPU clocks. “Safe” setting for any allowed conditions.

+
+ +
+ +
+
+struct clock_tree#
+

Structure representing the lpc4078 clock tree.

+
+

Public Members

+
+
+hertz oscillator_frequency = irc_frequency#
+

the frequency of the input oscillator

+
+ +
+
+bool use_external_oscillator = false#
+

set to true to use external XTC

+
+ +
+
+std::array<pll_t, 2> pll = {}#
+

phase locked loops for both pll[0] and pll[1]

+
+ +
+
+cpu_t cpu = {}#
+

cpu clock control

+
+ +
+
+usb_t usb = {}#
+

usb clock control

+
+ +
+
+spifi_t spifi = {}#
+

spifi clock control

+
+ +
+
+u8 peripheral_divider = 4#
+

Defines the peripheral clock divider amount.

+
+ +
+
+bool emc_half_cpu_divider = false#
+

Set true to make the EMC divider half as slow as the CPU divider. Set to false to set it to equal that amount.

+
+ +
+
+
+struct cpu_t#
+

cpu clock control config struct

+
+

Public Members

+
+
+bool use_pll0 = false#
+

If true, use PLL0, if false, use system clock which is defined as 12MHz

+
+ +
+
+u8 divider = 1#
+

Divide the input clock from IRC or PLL0.

+
+ +
+
+ +
+
+struct pll_t#
+

phase locked loops config struct

+
+

Public Members

+
+
+bool enabled = false#
+

turn on/off a PLL

+
+ +
+
+u8 multiply = 1#
+

increase the frequency of the PLL by the multiple

+
+ +
+
+ +
+
+struct spifi_t#
+

spifi clock control config struct

+
+

Public Members

+
+
+spifi_clock_source clock = spifi_clock_source::system_clock#
+

spifi clock source

+
+ +
+
+u8 divider = 1#
+

spifi clock divider

+
+ +
+
+ +
+
+struct usb_t#
+

usb clock control config struct

+
+

Public Members

+
+
+usb_clock_source clock = usb_clock_source::system_clock#
+

usb clock source

+
+ +
+
+usb_divider divider = usb_divider::divide_by1#
+

usb clock divider

+
+ +
+
+ +
+ +
+
+void hal::lpc40::maximum(hertz p_external_crystal_frequency)#
+

Set the lpc40xx MCU to the maximum clock speed (120MHz) possible.

+

This function REQUIRES an external crystal to be used.

+

    +
  • CPU clock speed set to 120MHz

  • +
  • USB clock speed set to 120MHz

  • +
  • Peripheral clock set to 120MHZ

  • +
  • SPIFI clock set to 120MHz

  • +
  • PLL0 is set to 120MHz and used for everything

  • +
  • PLL1 is disabled and not used

  • +
+

+

TODO(#65): explain the set of errors in better detail

+
+
Parameters:
+

p_external_crystal_frequency – - frequency of the crystal connected to the XTAL1 & XTAL2

+
+
+
+ +
+
+hertz hal::lpc40::get_frequency(peripheral p_peripheral)#
+

Get the operating frequency of the peripheral.

+
+
Parameters:
+

p_peripheral – - id of the peripheral

+
+
Returns:
+

frequency - operating frequency of the peripheral

+
+
+
+ +
+
+bool hal::lpc40::using_external_oscillator()#
+

Determins if the external oscillator is currently enabled and in use.

+
+
Returns:
+

true - external oscillator is in use currently

+
+
Returns:
+

false - external oscillator is NOT in use currently

+
+
+
+ +
+
+void hal::lpc40::configure_clocks(clock_tree const &p_clock_tree)#
+

Apply the clock configuration to hardware.

+

TODO(#65): explain the set of errors in better detail

+
+ +
+
+ + +
+ + + + + + + +
+ + + + + + + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/lpc40/constants.html b/libhal-arm-mcu/1.22.0/lpc40/constants.html new file mode 100644 index 0000000..9df4657 --- /dev/null +++ b/libhal-arm-mcu/1.22.0/lpc40/constants.html @@ -0,0 +1,1175 @@ + + + + + + + + + + + LPC40 Constants APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

LPC40 Constants APIs#

+

Defined in namespace hal::lpc40

+

#include <libhal-arm-mcu/lpc40/constants.hpp>

+
+
+enum class hal::lpc40::peripheral : u8#
+

List of each peripheral and their power on id number for this platform.

+

Values:

+
+
+enumerator lcd#
+
+ +
+
+enumerator timer0#
+
+ +
+
+enumerator timer1#
+
+ +
+
+enumerator uart0#
+
+ +
+
+enumerator uart1#
+
+ +
+
+enumerator pwm0#
+
+ +
+
+enumerator pwm1#
+
+ +
+
+enumerator i2c0#
+
+ +
+
+enumerator uart4#
+
+ +
+
+enumerator rtc#
+
+ +
+
+enumerator ssp1#
+
+ +
+
+enumerator emc#
+
+ +
+
+enumerator adc#
+
+ +
+
+enumerator can1#
+
+ +
+
+enumerator can2#
+
+ +
+
+enumerator gpio#
+
+ +
+
+enumerator spifi#
+
+ +
+
+enumerator motor_control_pwm#
+
+ +
+
+enumerator quadrature_encoder#
+
+ +
+
+enumerator i2c1#
+
+ +
+
+enumerator ssp2#
+
+ +
+
+enumerator ssp0#
+
+ +
+
+enumerator timer2#
+
+ +
+
+enumerator timer3#
+
+ +
+
+enumerator uart2#
+
+ +
+
+enumerator uart3#
+
+ +
+
+enumerator i2c2#
+
+ +
+
+enumerator i2s#
+
+ +
+
+enumerator sdcard#
+
+ +
+
+enumerator gpdma#
+
+ +
+
+enumerator ethernet#
+
+ +
+
+enumerator usb#
+
+ +
+
+enumerator cpu#
+
+ +
+
+enumerator dac#
+
+ +
+ +
+
+enum class hal::lpc40::irq : cortex_m::irq_t#
+

List of interrupt request numbers for this platform.

+

Values:

+
+
+enumerator wdt#
+

Watchdog Timer Interrupt.

+
+ +
+
+enumerator timer0#
+

Timer0 Interrupt.

+
+ +
+
+enumerator timer1#
+

Timer1 Interrupt.

+
+ +
+
+enumerator timer2#
+

Timer2 Interrupt.

+
+ +
+
+enumerator timer3#
+

Timer3 Interrupt.

+
+ +
+
+enumerator uart0#
+

UART0 Interrupt.

+
+ +
+
+enumerator uart1#
+

UART1 Interrupt.

+
+ +
+
+enumerator uart2#
+

UART2 Interrupt.

+
+ +
+
+enumerator uart3#
+

UART3 Interrupt.

+
+ +
+
+enumerator pwm1#
+

PWM1 Interrupt.

+
+ +
+
+enumerator i2c0#
+

I2C0 Interrupt.

+
+ +
+
+enumerator i2c1#
+

I2C1 Interrupt.

+
+ +
+
+enumerator i2c2#
+

I2C2 Interrupt.

+
+ +
+
+enumerator reserved0#
+

Reserved.

+
+ +
+
+enumerator ssp0#
+

SSP0 Interrupt.

+
+ +
+
+enumerator ssp1#
+

SSP1 Interrupt.

+
+ +
+
+enumerator pll0#
+

PLL0 Lock (Main PLL) Interrupt.

+
+ +
+
+enumerator rtc#
+

Real Time Clock Interrupt.

+
+ +
+
+enumerator eint0#
+

External Interrupt 0 Interrupt.

+
+ +
+
+enumerator eint1#
+

External Interrupt 1 Interrupt.

+
+ +
+
+enumerator eint2#
+

External Interrupt 2 Interrupt.

+
+ +
+
+enumerator eint3#
+

External Interrupt 3 Interrupt.

+
+ +
+
+enumerator adc#
+

A/D Converter Interrupt.

+
+ +
+
+enumerator bod#
+

Brown-Out Detect Interrupt.

+
+ +
+
+enumerator usb#
+

USB Interrupt.

+
+ +
+
+enumerator can#
+

CAN Interrupt.

+
+ +
+
+enumerator dma#
+

General Purpose DMA Interrupt.

+
+ +
+
+enumerator i2s#
+

I2S Interrupt.

+
+ +
+
+enumerator enet#
+

Ethernet Interrupt.

+
+ +
+
+enumerator mci#
+

SD/MMC card I/F Interrupt.

+
+ +
+
+enumerator mcpwm#
+

Motor Control PWM Interrupt.

+
+ +
+
+enumerator qei#
+

Quadrature Encoder Interface Interrupt.

+
+ +
+
+enumerator pll1#
+

PLL1 Lock (USB PLL) Interrupt.

+
+ +
+
+enumerator usbactivity#
+

USB Activity interrupt.

+
+ +
+
+enumerator canactivity#
+

CAN Activity interrupt.

+
+ +
+
+enumerator uart4#
+

UART4 Interrupt.

+
+ +
+
+enumerator ssp2#
+

SSP2 Interrupt.

+
+ +
+
+enumerator lcd#
+

LCD Interrupt.

+
+ +
+
+enumerator gpio#
+

GPIO Interrupt.

+
+ +
+
+enumerator pwm0#
+

PWM0 Interrupt.

+
+ +
+
+enumerator eeprom#
+

EEPROM Interrupt.

+
+ +
+
+enumerator cmp0#
+

CMP0 Interrupt.

+
+ +
+
+enumerator cmp1#
+

CMP1 Interrupt.

+
+ +
+
+enumerator max#
+
+ +
+ +
+ + +
+ + + + + + + +
+ + + + + + + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/lpc40/dac.html b/libhal-arm-mcu/1.22.0/lpc40/dac.html new file mode 100644 index 0000000..f5e328c --- /dev/null +++ b/libhal-arm-mcu/1.22.0/lpc40/dac.html @@ -0,0 +1,657 @@ + + + + + + + + + + + LPC40 DAC APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

LPC40 DAC APIs#

+
+

hal::lpc40::dac#

+

Defined in namespace hal::lpc40

+

#include <libhal-arm-mcu/lpc40/dac.hpp>

+
+
+class dac : public hal::dac#
+

Digital to Analog converter.

+
+ +
+
+ + +
+ + + + + + + +
+ + + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/lpc40/dma.html b/libhal-arm-mcu/1.22.0/lpc40/dma.html new file mode 100644 index 0000000..cb16cce --- /dev/null +++ b/libhal-arm-mcu/1.22.0/lpc40/dma.html @@ -0,0 +1,995 @@ + + + + + + + + + + + LPC40 DMA APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

LPC40 DMA APIs#

+
+

hal::lpc40::dma#

+

Defined in namespace hal::lpc40

+

#include <libhal-arm-mcu/lpc40/dma.hpp>

+
+
+struct dma#
+
+ +
+
+enum class hal::lpc40::dma_transfer_type : u8#
+

Values:

+
+
+enumerator memory_to_memory#
+

Flow Control: DMA controller.

+
+ +
+
+enumerator memory_to_peripheral#
+

Flow Control: DMA controller.

+
+ +
+
+enumerator peripheral_to_memory#
+

Flow Control: DMA controller.

+
+ +
+
+enumerator peripheral_to_peripheral#
+

Flow Control: DMA controller.

+
+ +
+
+enumerator peripheral_to_peripheral_dp#
+

Flow Control: Destination Peripheral.

+
+ +
+
+enumerator memory_to_peripheral_dp#
+

Flow Control: Destination Peripheral.

+
+ +
+
+enumerator peripheral_to_memory_sp#
+

Flow Control: Source Peripheral.

+
+ +
+
+enumerator peripheral_to_peripheral_sp#
+

Flow Control: Source Peripheral.

+
+ +
+ +
+
+enum class hal::lpc40::dma_channel_select : u8#
+

Values:

+
+
+enumerator channel0#
+
+ +
+
+enumerator channel1#
+
+ +
+
+enumerator channel2#
+
+ +
+
+enumerator channel3#
+
+ +
+
+enumerator channel4#
+
+ +
+
+enumerator channel5#
+
+ +
+
+enumerator channel6#
+
+ +
+
+enumerator channel7#
+
+ +
+ +
+
+enum class hal::lpc40::dma_transfer_width : u8#
+

Values:

+
+
+enumerator bit_8#
+
+ +
+
+enumerator bit_16#
+
+ +
+
+enumerator bit_32#
+
+ +
+ +
+
+enum class hal::lpc40::dma_burst_size : u8#
+

Values:

+
+
+enumerator bytes_1#
+
+ +
+
+enumerator bytes_4#
+
+ +
+
+enumerator bytes_8#
+
+ +
+
+enumerator bytes_16#
+
+ +
+
+enumerator bytes_32#
+
+ +
+
+enumerator bytes_64#
+
+ +
+
+enumerator bytes_128#
+
+ +
+
+enumerator bytes_256#
+
+ +
+ +
+
+enum class hal::lpc40::dma_peripheral : u8#
+

Values:

+
+
+enumerator memory_or_timer0_match0#
+
+ +
+
+enumerator sd_card_and_timer0_match1#
+
+ +
+
+enumerator spi0_tx_and_timer1_match0#
+
+ +
+
+enumerator spi0_rx_and_timer1_match1#
+
+ +
+
+enumerator spi1_tx_and_timer2_match0#
+
+ +
+
+enumerator spi1_rx_and_timer2_match1#
+
+ +
+
+enumerator spi2_tx_and_i2s_channel_0#
+
+ +
+
+enumerator spi2_rx_and_i2s_channel_1#
+
+ +
+
+enumerator adc#
+
+ +
+
+enumerator dac#
+
+ +
+
+enumerator uart0_tx_and_uart3_tx#
+
+ +
+
+enumerator uart0_rx_and_uart3_rx#
+
+ +
+
+enumerator uart1_tx_and_uart4_tx#
+
+ +
+
+enumerator uart1_rx_and_uart4_rx#
+
+ +
+
+enumerator uart2_tx_and_timer3_match0#
+
+ +
+
+enumerator uart2_rx_and_timer3_match1#
+
+ +
+ +
+
+void hal::lpc40::set_dma_lock(hal::basic_lock &p_lock)#
+

Set the dma lock object.

+

This API is not thread safe and should be performed before dma is used between threads. The default dma lock object is a hal::atomic_spin_lock which is operating system agnostic but inefficient. If you are using an operating system, use this call to replace the original spin lock with the appropriate mutex.

+
+
Parameters:
+

p_lock – - basic lock to be used for locking dma across threads. Should be a OS safe mutex.

+
+
+
+ +
+
+void hal::lpc40::setup_dma_transfer(dma const &p_configuration, hal::callback<void(void)> p_interrupt_callback)#
+

Setup and start a dma transfer.

+
+
Parameters:
+
    +
  • p_configuration – - dma configuration

  • +
  • p_interrupt_callback – - callback when dma has completed

  • +
+
+
+
+ +
+
+ + +
+ + + + + + + +
+ + + + + + + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/lpc40/dma_spi.html b/libhal-arm-mcu/1.22.0/lpc40/dma_spi.html new file mode 100644 index 0000000..16d56bd --- /dev/null +++ b/libhal-arm-mcu/1.22.0/lpc40/dma_spi.html @@ -0,0 +1,753 @@ + + + + + + + + + + + LPC40 DMA SPI APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

LPC40 DMA SPI APIs#

+
+

hal::lpc40::dma_spi#

+

Defined in namespace hal::lpc40

+

#include <libhal-arm-mcu/lpc40/dma_spi.hpp>

+
+
+class dma_spi : public hal::spi#
+
+

Public Functions

+
+
+dma_spi(u8 p_bus, hal::io_waiter &p_waiter = hal::polling_io_waiter(), spi::settings const &p_settings = {})#
+

Construct a new spi object.

+
+
Parameters:
+
    +
  • p_bus – - bus number to use

  • +
  • p_waiter – - provides the implementation strategy for the time the CPU waits until the transfer has completed.

  • +
  • p_settings – - spi settings to achieve

  • +
+
+
Throws:
+

hal::operation_not_supported – - if the p_bus is not 0, 1, or 2 or if the spi settings could not be achieved.

+
+
+
+ +
+
+dma_spi(bus_info p_bus)#
+

Construct a new spi object using bus info directly.

+
+
Parameters:
+

p_bus – - Full bus information

+
+
+
+ +
+
+
+struct bus_info#
+

Information used to configure the spi bus.

+
+

Public Members

+
+
+peripheral peripheral_id#
+

peripheral id used to power on the spi peripheral at creation

+
+ +
+
+pin clock#
+

spi data pin

+
+ +
+
+pin data_out#
+

spi clock pin

+
+ +
+
+pin data_in#
+

spi clock pin

+
+ +
+
+u8 clock_function#
+

clock function code

+
+ +
+
+u8 data_out_function#
+

scl pin function code

+
+ +
+
+u8 data_in_function#
+

scl pin function code

+
+ +
+
+ +
+ +
+
+ + +
+ + + + + + + +
+ + + + + + + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/lpc40/i2c.html b/libhal-arm-mcu/1.22.0/lpc40/i2c.html new file mode 100644 index 0000000..648eaa1 --- /dev/null +++ b/libhal-arm-mcu/1.22.0/lpc40/i2c.html @@ -0,0 +1,762 @@ + + + + + + + + + + + LPC40 I2C APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

LPC40 I2C APIs#

+
+

hal::lpc40::i2c#

+

Defined in namespace hal::lpc40

+

#include <libhal-arm-mcu/lpc40/i2c.hpp>

+
+
+class i2c : public hal::i2c#
+

i2c driver for the lpc40 series of microcontrollers

+

The lpc40 series i2c peripherals utilize a state machine and interrupts to handle transmitting and receiving data. This driver does the same. A hal::io_waiter may be passed to the constructor in order to control what the driver does when its waiting for the i2c transaction to complete.

+
+

Public Functions

+
+
+i2c(u8 p_bus, i2c::settings const &p_settings = {}, hal::io_waiter &p_waiter = hal::polling_io_waiter())#
+

Construct a new i2c object.

+
+
Parameters:
+
    +
  • p_bus – - i2c bus number, can be 0, 1, or 2.

  • +
  • p_settings – - i2c configuration settings

  • +
  • p_waiter – - A hal::io_waiter for controlling the driver’s behavior while the cpu waits for the interrupt driven i2c transaction to finish. Note that if the waiter blocks the thread, then the timeout passed to transaction() will be ignored. If sleep is used, then the timeout will be checked after each waking interrupt fires off.

  • +
+
+
Throws:
+

hal::operation_not_supported – - if the settings or if the bus number is not 0, 1, or 2.

+
+
+
+ +
+
+i2c(bus_info const &p_bus_info, i2c::settings const &p_settings = {}, hal::io_waiter &p_waiter = hal::polling_io_waiter())#
+

Construct a new i2c object using a bus info object.

+
+
Parameters:
+
    +
  • p_bus_info – - device specific bus information

  • +
  • p_settings – - i2c configuration settings

  • +
  • p_waiter – - A hal::io_waiter for controlling the driver’s behavior while the cpu waits for the interrupt driven i2c transaction to finish. Note that if the waiter blocks the thread, then the timeout passed to transaction() will be ignored. If sleep is used, then the timeout will be checked after each waking interrupt fires off.

  • +
+
+
Throws:
+

hal::operation_not_supported – - if the settings or bus info designation could not be achieved.

+
+
+
+ +
+
+
+struct bus_info#
+

port holds all of the information for an i2c bus on the LPC40xx platform.

+
+

Public Members

+
+
+peripheral peripheral_id#
+

peripheral id used to power on the i2c peripheral at creation

+
+ +
+
+irq irq_number#
+

IRQ number for this i2c port.

+
+ +
+
+pin sda#
+

i2c data pin

+
+ +
+
+std::uint8_t sda_function#
+

sda pin function code

+
+ +
+
+pin scl#
+

i2c clock pin

+
+ +
+
+std::uint8_t scl_function#
+

scl pin function code

+
+ +
+
+float duty_cycle = 0.5f#
+

Clock rate duty cycle.

+
+ +
+
+ +
+ +
+
+ + +
+ + + + + + + +
+ + + + + + + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/lpc40/index.html b/libhal-arm-mcu/1.22.0/lpc40/index.html new file mode 100644 index 0000000..7394bb3 --- /dev/null +++ b/libhal-arm-mcu/1.22.0/lpc40/index.html @@ -0,0 +1,1002 @@ + + + + + + + + + + + libhal-arm-mcu LPC40 API Documentation — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

libhal-arm-mcu LPC40 API Documentation#

+

Here are the collection of drivers for the LPC40 series microcontrollers.

+
+

LPC40 drivers

+ +
+
+ + +
+ + + + + + + +
+ + + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/lpc40/input_pin.html b/libhal-arm-mcu/1.22.0/lpc40/input_pin.html new file mode 100644 index 0000000..491ddf8 --- /dev/null +++ b/libhal-arm-mcu/1.22.0/lpc40/input_pin.html @@ -0,0 +1,678 @@ + + + + + + + + + + + LPC40 Input Pin APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

LPC40 Input Pin APIs#

+
+

hal::lpc40::input_pin#

+

Defined in namespace hal::lpc40

+

#include <libhal-arm-mcu/lpc40/input_pin.hpp>

+
+
+class input_pin : public hal::input_pin#
+

Input pin implementation for the lpc40xx.

+
+

Public Functions

+
+
+input_pin(u8 p_port, u8 p_pin, input_pin::settings const &p_settings = {})#
+

Construct a new input pin object.

+
+
Parameters:
+
    +
  • p_port – - selects pin port to use

  • +
  • p_pin – - selects pin within the port to use

  • +
  • p_settings – - initial pin settings

  • +
+
+
+
+ +
+
+ +
+
+ + +
+ + + + + + + +
+ + + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/lpc40/interrupt.html b/libhal-arm-mcu/1.22.0/lpc40/interrupt.html new file mode 100644 index 0000000..e1021ca --- /dev/null +++ b/libhal-arm-mcu/1.22.0/lpc40/interrupt.html @@ -0,0 +1,652 @@ + + + + + + + + + + + LPC40 Interrupt APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

LPC40 Interrupt APIs#

+

Defined in namespace hal::lpc40

+

#include <libhal-arm-mcu/lpc40/interrupt.hpp>

+
+
+void hal::lpc40::initialize_interrupts()#
+

Initialize interrupts for the lpc40 series processors.

+

Only initializes after the first call. Does nothing afterwards. Can be called multiple times without issue.

+
+ +
+ + +
+ + + + + + + +
+ + + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/lpc40/interrupt_pin.html b/libhal-arm-mcu/1.22.0/lpc40/interrupt_pin.html new file mode 100644 index 0000000..4ca51a0 --- /dev/null +++ b/libhal-arm-mcu/1.22.0/lpc40/interrupt_pin.html @@ -0,0 +1,678 @@ + + + + + + + + + + + LPC40 Interrupt Pin APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

LPC40 Interrupt Pin APIs#

+
+

hal::lpc40::interrupt_pin#

+

Defined in namespace hal::lpc40

+

#include <libhal-arm-mcu/lpc40/interrupt_pin.hpp>

+
+
+class interrupt_pin : public hal::interrupt_pin#
+

Interrupt pin implementation for the lpc40xx.

+
+

Public Functions

+
+
+interrupt_pin(u8 port, u8 pin, settings const &p_settings = {})#
+

Construct a new interrupt pin object.

+
+
Parameters:
+
    +
  • port – - selects pin port to use

  • +
  • pin – - selects pin within the port to use

  • +
  • p_settings – - initial pin settings

  • +
+
+
+
+ +
+
+ +
+
+ + +
+ + + + + + + +
+ + + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/lpc40/output_pin.html b/libhal-arm-mcu/1.22.0/lpc40/output_pin.html new file mode 100644 index 0000000..2d5bfa3 --- /dev/null +++ b/libhal-arm-mcu/1.22.0/lpc40/output_pin.html @@ -0,0 +1,678 @@ + + + + + + + + + + + LPC40 Output Pin APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

LPC40 Output Pin APIs#

+
+

hal::lpc40::output_pin#

+

Defined in namespace hal::lpc40

+

#include <libhal-arm-mcu/lpc40/output_pin.hpp>

+
+
+class output_pin : public hal::output_pin#
+

Output pin implementation for the lpc40xx.

+
+

Public Functions

+
+
+output_pin(u8 p_port, u8 p_pin, output_pin::settings const &p_settings = {})#
+

Construct a new output pin object.

+
+
Parameters:
+
    +
  • p_port – - selects pin port to use

  • +
  • p_pin – - selects which pin within the port to use

  • +
  • p_settings – - initial pin settings

  • +
+
+
+
+ +
+
+ +
+
+ + +
+ + + + + + + +
+ + + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/lpc40/pin.html b/libhal-arm-mcu/1.22.0/lpc40/pin.html new file mode 100644 index 0000000..cec4bec --- /dev/null +++ b/libhal-arm-mcu/1.22.0/lpc40/pin.html @@ -0,0 +1,850 @@ + + + + + + + + + + + LPC40 Pin APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

LPC40 Pin APIs#

+
+

hal::lpc40::pin#

+

Defined in namespace hal::lpc40

+

#include <libhal-arm-mcu/lpc40/pin.hpp>

+
+
+class pin#
+

lpc40xx pin multiplexing and control driver used drivers and apps seeking to tune the pins.

+
+

Public Functions

+
+
+inline constexpr pin(u8 p_port, u8 p_pin)#
+

Construct a new pin mux and configuration driver.

+

See UM10562 page 99 for more details on which pins can be what function.

+
+
Parameters:
+
    +
  • p_port – - selects pin port to use

  • +
  • p_pin – - selects pin within the port to use

  • +
+
+
+
+ +
+
+constexpr pin() = default#
+

Default constructor.

+
+ +
+
+pin const &function(uint8_t p_function_code) const#
+

Change the function of the pin (mux the pins function)

+
+
Parameters:
+

p_function_code – - the pin function code

+
+
Returns:
+

pin& - reference to this pin for chaining

+
+
+
+ +
+
+pin const &resistor(hal::pin_resistor p_resistor) const#
+

Set the internal resistor connection for this pin.

+
+
Parameters:
+

p_resistor – - resistor type

+
+
Returns:
+

pin& - reference to this pin for chaining

+
+
+
+ +
+
+pin const &hysteresis(bool p_enable) const#
+

Disable or enable hysteresis mode for this pin.

+
+
Parameters:
+

p_enable – - enable this mode, set to false to disable this mode

+
+
Returns:
+

pin& - reference to this pin for chaining

+
+
+
+ +
+
+pin const &input_invert(bool p_enable) const#
+

invert the logic for this pin in input mode

+
+
Parameters:
+

p_enable – - enable this mode, set to false to disable this mode

+
+
Returns:
+

pin& - reference to this pin for chaining

+
+
+
+ +
+
+pin const &analog(bool p_enable) const#
+

enable analog mode for this pin (required for dac and adc drivers)

+
+
Parameters:
+

p_enable – - enable this mode, set to false to disable this mode

+
+
Returns:
+

pin& - reference to this pin for chaining

+
+
+
+ +
+
+pin const &digital_filter(bool p_enable) const#
+

enable digital filtering (filter out noise on input lines)

+
+
Parameters:
+

p_enable – - enable this mode, set to false to disable this mode

+
+
Returns:
+

pin& - reference to this pin for chaining

+
+
+
+ +
+
+pin const &highspeed_i2c(bool p_enable = true) const#
+

Enable high speed mode for i2c pins.

+
+
Parameters:
+

p_enable – - enable this mode, set to false to disable this mode

+
+
Returns:
+

pin& - reference to this pin for chaining

+
+
+
+ +
+
+pin const &high_slew_rate(bool p_enable = true) const#
+

enable high slew rate for pin

+
+
Parameters:
+

p_enable – - enable this mode, set to false to disable this mode

+
+
Returns:
+

pin& - reference to this pin for chaining

+
+
+
+ +
+
+pin const &i2c_high_current(bool p_enable = true) const#
+

enable high current drain for i2c lines

+
+
Parameters:
+

p_enable – - enable this mode, set to false to disable this mode

+
+
Returns:
+

pin& - reference to this pin for chaining

+
+
+
+ +
+
+pin const &open_drain(bool p_enable = true) const#
+

Make the pin open drain (required for the i2c driver)

+
+
Parameters:
+

p_enable – - enable this mode, set to false to disable this mode

+
+
Returns:
+

pin& - reference to this pin for chaining

+
+
+
+ +
+
+pin const &dac(bool p_enable = true) const#
+

Enable dac mode (required for the dac driver)

+
+
Parameters:
+

p_enable – - enable this mode, set to false to disable this mode

+
+
Returns:
+

pin& - reference to this pin for chaining

+
+
+
+ +
+
+ +
+
+ + +
+ + + + + + + +
+ + + + + + + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/lpc40/power.html b/libhal-arm-mcu/1.22.0/lpc40/power.html new file mode 100644 index 0000000..a6cda27 --- /dev/null +++ b/libhal-arm-mcu/1.22.0/lpc40/power.html @@ -0,0 +1,673 @@ + + + + + + + + + + + LPC40 Power APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

LPC40 Power APIs#

+

Defined in namespace hal::lpc40

+

#include <libhal-arm-mcu/lpc40/power.hpp>

+
+
+void hal::lpc40::power_on(peripheral p_peripheral)#
+

Power on the peripheral.

+
+ +
+
+bool hal::lpc40::is_on(peripheral p_peripheral)#
+

Check if the peripheral is powered on.

+
+
Returns:
+

true - peripheral is on

+
+
Returns:
+

false - peripheral is off

+
+
+
+ +
+
+void hal::lpc40::power_off(peripheral p_peripheral)#
+

Power off peripheral.

+
+ +
+ + +
+ + + + + + + +
+ + + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/lpc40/pwm.html b/libhal-arm-mcu/1.22.0/lpc40/pwm.html new file mode 100644 index 0000000..2f2dff8 --- /dev/null +++ b/libhal-arm-mcu/1.22.0/lpc40/pwm.html @@ -0,0 +1,719 @@ + + + + + + + + + + + LPC40 PWM APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

LPC40 PWM APIs#

+
+

hal::lpc40::pwm#

+

Defined in namespace hal::lpc40

+

#include <libhal-arm-mcu/lpc40/pwm.hpp>

+
+
+class pwm : public hal::pwm#
+

pwm driver for the lpc40xx series of micro controllers

+

This driver uses the dedicated PWM peripherals, PWM0, and PWM1 for generating pwm signals. Other methods would include using timers and the MotorPWM peripherals.

+

NOTE: Channels within a PWM peripheral device are NOT independent. Meaning that changing the frequency of one channel changes the frequency for all channels within the peripheral block.

+
+

Public Functions

+
+
+pwm(u8 p_peripheral, u8 p_channel)#
+

Construct a new pwm object.

+
+
Parameters:
+
    +
  • p_peripheral – - Peripheral block, either 0 or 1

  • +
  • p_channel – - PWM output channel within the peripheral block, from 1 to 6.

  • +
+
+
+
+ +
+
+
+struct channel#
+

Channel specific information.

+
+

Public Members

+
+
+peripheral peripheral_id#
+

peripheral id used to power on the pwm peripheral at creation

+
+ +
+
+pin pwm_pin#
+

Pin to output pwm from.

+
+ +
+
+u8 index#
+

Channel index.

+
+ +
+
+u8 pin_function#
+

Pin function code.

+
+ +
+
+ +
+ +
+
+ + +
+ + + + + + + +
+ + + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/lpc40/spi.html b/libhal-arm-mcu/1.22.0/lpc40/spi.html new file mode 100644 index 0000000..312b9a5 --- /dev/null +++ b/libhal-arm-mcu/1.22.0/lpc40/spi.html @@ -0,0 +1,752 @@ + + + + + + + + + + + LPC40 SPI APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

LPC40 SPI APIs#

+
+

hal::lpc40::spi#

+

Defined in namespace hal::lpc40

+

#include <libhal-arm-mcu/lpc40/spi.hpp>

+
+
+class spi : public hal::spi#
+
+

Public Functions

+
+
+spi(u8 p_bus, spi::settings const &p_settings = {})#
+

Construct a new spi object.

+
+
Parameters:
+
    +
  • p_bus – - bus number to use

  • +
  • p_settings – - spi settings to achieve

  • +
+
+
Throws:
+

hal::operation_not_supported – - if the p_bus is not 0, 1, or 2 or if the spi settings could not be achieved.

+
+
+
+ +
+
+spi(bus_info p_bus)#
+

Construct a new spi object using bus info directly.

+
+
Parameters:
+

p_bus – - Full bus information

+
+
+
+ +
+
+
+struct bus_info#
+

Information used to configure the spi bus.

+
+

Public Members

+
+
+peripheral peripheral_id#
+

peripheral id used to power on the spi peripheral at creation

+
+ +
+
+pin clock#
+

spi data pin

+
+ +
+
+pin data_out#
+

spi clock pin

+
+ +
+
+pin data_in#
+

spi clock pin

+
+ +
+
+u8 clock_function#
+

clock function code

+
+ +
+
+u8 data_out_function#
+

scl pin function code

+
+ +
+
+u8 data_in_function#
+

scl pin function code

+
+ +
+
+ +
+ +
+
+ + +
+ + + + + + + +
+ + + + + + + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/lpc40/stream_dac.html b/libhal-arm-mcu/1.22.0/lpc40/stream_dac.html new file mode 100644 index 0000000..c8790ae --- /dev/null +++ b/libhal-arm-mcu/1.22.0/lpc40/stream_dac.html @@ -0,0 +1,676 @@ + + + + + + + + + + + LPC40 Stream DAC APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

LPC40 Stream DAC APIs#

+
+

hal::lpc40::stream_dac_u16#

+

Defined in namespace hal::lpc40

+

#include <libhal-arm-mcu/lpc40/stream_dac.hpp>

+
+
+class stream_dac_u16 : public hal::stream_dac_u16#
+

16-bit stream dac implementation

+

Operated using DMA. The DMA request number is unique to the dac and thus does not conflict with any other driver.

+

The lpc40 dac only supports up to 10-bit resolution so the 6 least significant bits will be ignored.

+

Note that there is only a single dac on the lpc40 series and thus only one dac driver should be used in an application.

+
+ +
+
+

hal::lpc40::stream_dac_u8#

+
+
+class stream_dac_u8 : public hal::stream_dac_u8#
+

8-bit stream dac implementation

+

Operated using DMA. The DMA request number is unique to the dac and thus does not conflict with any other driver.

+

The lpc40 supports a right-aligned 10-bit resolution dac making it easy to DMA byte data to it by choosing the 2nd byte in the register. No additional preprocessing is necessary by the driver to DMA data from a byte stream to the DAC.

+

Note that there is only a single dac on the lpc40 series and thus only one dac driver should be used in an application.

+
+ +
+
+ + +
+ + + + + + + +
+ + + + + + + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/lpc40/uart.html b/libhal-arm-mcu/1.22.0/lpc40/uart.html new file mode 100644 index 0000000..f89f729 --- /dev/null +++ b/libhal-arm-mcu/1.22.0/lpc40/uart.html @@ -0,0 +1,752 @@ + + + + + + + + + + + LPC40 UART APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

LPC40 UART APIs#

+
+

hal::lpc40::uart#

+

Defined in namespace hal::lpc40

+

#include <libhal-arm-mcu/lpc40/uart.hpp>

+
+
+class uart : public hal::serial#
+

Implementation of the UART peripheral for the LPC40xx family of microcontrollers.

+
+

Note

+

that the baud rates less than or equal to the peripheral clock frequency / 48. Otherwise this peripheral cannot guarantee proper transmission or receive of bytes.

+
+
+

Public Functions

+
+
+uart(std::uint8_t p_port_number, std::span<hal::byte> p_receive_working_buffer, serial::settings const &p_settings = {})#
+

Retrieve a UART serial port.

+
+
Parameters:
+
    +
  • p_port_number – - which uart port number to return

  • +
  • p_receive_working_buffer – - uart serial receive working buffer

  • +
  • p_settings – - the initial settings for the uart driver

  • +
+
+
+
+ +
+
+uart(uart::port const &p_port, std::span<hal::byte> p_receive_working_buffer, serial::settings const &p_settings = {})#
+

Construct a new uart object.

+
+
Parameters:
+
    +
  • p_port

  • +
  • p_receive_working_buffer

  • +
  • p_settings

  • +
+
+
+
+ +
+
+
+struct port#
+

Port contains all of the information that the lpc40 uart port needs to operate.

+
+

Public Members

+
+
+peripheral id#
+

Resource ID of the UART peripheral to power on at initialization.

+
+ +
+
+irq irq_number#
+

Interrupt request number.

+
+ +
+
+pin tx#
+

Reference to a uart transmitter pin.

+
+ +
+
+pin rx#
+

Reference to a uart receiver pin.

+
+ +
+
+std::uint8_t tx_function#
+

Function code to set the transmit pin to uart transmitter.

+
+ +
+
+std::uint8_t rx_function#
+

Function code to set the receive pin to uart receiver.

+
+ +
+
+ +
+ +
+
+ + +
+ + + + + + + +
+ + + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/objects.inv b/libhal-arm-mcu/1.22.0/objects.inv new file mode 100644 index 0000000000000000000000000000000000000000..2d78a92f19c6dfd4aa3e35725571140794f624b8 GIT binary patch literal 27826 zcmZ^JV{oRywso9|ZQGpKoQZAQw%$0I*tTuknAm({+vYdto?qXsx_`P?YuE06>gnpe z)+QrXcCfIt^B}ggb2GJbv3K$$b~ANywzRh+W`!jqR&cVnGBtMLA-1tJvM{t^Fm$qI zur+r5H=_36SvD z*wxw6&YalmpD{*QkM)ag$y&0pdd9YuTIxLSxo(AtV-oj37ea+HUn}8fj;n+lmPC2; zJc*o1DTXV1KQrMwhY0R0lyc!XsnS4{CxAeD=BvTeFu&g$`c}*P!};0a0@Zhqw(0X% zmp;I;_Lke$4>ohE^y3Tn>AZC%_e8!_-LKVmv-I)_(D?1wbD^K}9lJ#I^>JLgC;t)Y z%~9%J)`Rx^@L0P2bu__lCiC@qf83-S(z>#O{zStOc-3?LbPB1zVZWWD9XHiI>vaO& z89R_f&5;;wWX)aWJ}p?9?CmSySC=W~zcgVZ`t4z@6|^1hop64+t@cjXmn&eac5{XC zmAkpz&6hCL%I^~A?o&H}Fk{!+In?Qq4;io5^|Tn_grupyG^kih^Owo8^V{2xRO8X` zzGocx(E9v<+tbQ9K>yHkdXEeB-V(CPCKt6NDwF?w6M-+o)19Km*raBXZO7fC@vFH^ z+j3M`_EB@fZmXiVGu?o9$?{F{t%R$QRLcRia^}?O?hW?-80gk4$mSgdYy!&W6ttf} zm7lA;EFE?(@GMm~@eDE9;lbgGAL;24oV~er>vtYMZZC{qyH)D)__M3MZ`nRyXL1zg z=@~)0xp=FCWO0UF2+hpc+x7Z>`ka(ky1$rujgno05F|-i&S}NV`@O|>ui9>$&#(_Z zoR(9uERsZvnnbbEjJCKn<%W#XxQ>greyor1R{$U01e%PveBM>)ZU>UzkaJoPC8GW7 zh#E5brg=4PoYG$Pu`}TSR7lf{83KSD|z#g%a@b zl%NJ%1;~-~sspxwi>)|Fm^7-y#u?6>;ap^MpsA^SUyn-qk@VS*9&ZwV`LZ{itp9 znjUnIU;*HFH{bP^*d_*Xmcy;8&AIBhIkz=#63hD$4kPeh?DpSlJGjTJ>TU!04uh1m zFISjk&r8&6o45u)&W1}7>0dxAc4{j(f$tneT7>|7X4BNbKXWe+G@r1lFK6pVrKnAl zFy_>~Q%?*++C8>JGPAxQu0QeHx_D#sMy*cS-{X@UU7mEVKI`EeS;~A*P&ce|od}N9 zh-9f=Zmw>z$79do#b3Uj$$0yTB(o754UaK3p<39%&K>#}HIJ`L$J&EoWUa*!*9gln z6rAJ_G1T6w`+;u^?h*Wy^t4)=pMqNX-1uTbAD2w?$$6N`>! z_|pD%{{nA&!&~^Ey!Zt^nFUbzBq@WnW2BXM9zJ~L!s zJM&p@M8kCV(#<93*mc5c#M+=jUoQNw! zB>o`8Es&*DfR<53_&7k%JR(;HcsP5XmdDk<0sJ$!U-{3RLS8wd#3q945FN{_YQY=3 zl2&$$teW{Jza`-gg2=T;SNGB5u{)o&KhgD>I);|vQZ>9oKU2F4v0BV`v!dGddn!4K z?xqzIpDioxZYi)LlBq^+B+@$RcF)SB>f_z5RsV9?uXmmPBH`EYW9wytAmDEM*|N3Z zxzk!S;6YJIUdXIObR9{PUwFwy#u;@9DM3=TDvP+1h}wL3d`weNLa_=w+}B?Uov!c< z#xf$gzNI%OMb!P2JLEHu#r~@I`qztwIT_iwYLJE89+c2R!>kJk8y(yfl+b;{tPe;N zH5>z!&_u(m6G#&+Ts4%?dBbc6;@gEbQY-rOc8j#YHAA$5zd4I5(708Iip&OAq1)6A z(uL16?0CfCI;%==L%@e*p@Y$M{zs4242{~2q;y6Y_tbB7!+#Jyp?YRu~W{8dyd zK{fG4uj=WUD8Z=eEcn?#yf$KRd|9>o|LYu<8`f;x{4-9cs{T0OUBABVClOI!fwnb# zwrTrJv=8weGT4i5AZ88uY~0xUVWA&46}=;1b7G1j*5A>Nwh=q^byo-w=HLu`uQOEV z2})I#sL=Eh)O&wtlH}HNoj>>J&#Tg}@7Kp=e!M+~^87=WbiVSzq1C`Gc@k`)2~F@r zwHJ9EV%3Yon3xq~h1A=j?8>NC+W)+;>?=<^vc@jt>G1Zchsobwt^ukKlcBdKaXn~k zIMnEqBt4)0C3)xm#P6Yq!sqfx$4#_lH#duc7!A#>-o$Z#zs< zqUKr9(8#+Rs|l+QFm{Ek#kh5@_>bF)gPYU4t|#s1jtLmP-Rn$4ZJf8Od%0I4xz8_K z*B9$xZpT>ZrRr5-87oYSk~+g8xd(|~m2EVl5u6g&{pWk14VNPl*(dQ)2I%M&#&wNuui!~xGjL@D19PH7WTTE9ZYF~<-aJ|V_TL}xYZJ9hWMC?as{l<<) z@tdYo9psM(7p6j2({f#{{fPNwjoFgx_v^|Ve!dkw^pkMmF-;k0y?5KBEsrTqCA%A* zRKz!t7ABmHysLqG2zta^ckm|0i3bLZPV~hPoXsK;@f8GxG6k$aD;D|vf9KXDsxpWU zFm?z*xgEslaZZsA`Z`RF-HV30*5mbbIE{svhP7pjR9c!d7B>&&p&2Yt$#$usm{K64 z;F76`6>wCEmBF>&C3;~SCjaz;Zui{w+raNhKa=leH&~6u%E>6&0$WTfWEz3QZMx4d zpP9j3fj%!&aa((9uFl6QbnV!C54t@oq$ixYB(o6{_3M7=p3CU*s>CQjtoI~-g6=+a zs0fM;L?T}5v`sNvW7$Y4Sz*5*oVn(iyqjb4@!q`LJojDUI@f{F5P-Admt6a8wuv(? zx_H#eCCTWcPxp*YYFM?A5e7rmj<|k*?)43b@R4GISOV|1`HKz_0G2_%P@Z5}eXzh@ zP@k;lTv?WoIdAs<#46sz6IParxNoJTIw2)eXv3q)VVg8XIbjyv@M^NwrT1j5i@y*0 zi3GVQ_0^@>E1M7nWW`Qem=Ao-Ug_iA#P>8U62SSG#gfMAk4QA(QFQ{yhc?I@!2j35bM9{j z*>k)bK=p=k+6z~?$i<%|uc%KpW2Bzite^#;DCQOz{)vOf!d8bdT$_NTG zJ9X)BS*OpIP2E!Z>C^Gx^&Zn1Q8=7OdwQ+j%*Fd17)A3<;X6K@4e+i1flHw{E150ofH7dUCr$MVm$D+NRh$~ zV-5b%m0oAz6;4Sfd8x3kK3e0Yw@JH3F`G2pK$q7c-iSx61smoDQm-UbMPQ*`l(|w> zr#m2{VbK{_uIbPTt9Bb&&l@XzsgAbX#3)?eg9aQi9ABSPU0A9n*#wzW5~|L=wZCQz z^oT-&UOofTv}`Y0u|GQjHDol%I?hDct;JX7#F@W-!;rfoFTp;cV7XMV)1K62IybB{TkeLS5^myeI9tLMeMDW@v5Cq zZdelq*yxvmM#Fg;Sm;bpOKWNc*hv;4xV=8^?BR>_`%6qsY@I`0W~Rk=ZJU+ezV91# zIc{WEsn(unHmL&D0$l}wcgHhzS_`=hl8CHg)9{|pZ>j7f_|EpISZ}MO1Zny z?hHjesI}WP3myPR_sk?_?B%w6@z>-iLS}KP6*!FhINJrgZaj5XC(Kz$g(8`34~2Qv zrHWlZXSL+VGSaWjh*M~_qA);x<-+v2y37(^P27c&7^g)1z+;~euxJH?tK@toUiXeZ z4=zt8^zHUqZAS?R()dNg%I{c&_OoSF7dnR<6ZqKv-`pFb{iU(RQ~ z_s>^KOYOi^p*td3f3{H)3ZMH#o;^I0ZdmQNa{Ou8XLr=@G-_#)wvMWr!9()A~P=NI?GLWOuM# zR16*;_^p-wJ)8f0LS7Tn2_n|Bp4u@^83>n#I+oJ4#zpH`cU1vg<+Jf>enU4rPHzjE&uHGUm*Hv zDGK+E*%|Hq+3uxkaK>A=X-KKSTlb@{!af6jTmdvM5>&-sCiZbDBwaUVnFa!`bZ9>FufIldcQlNP7BPNrq_tg#V&(_^ckgRf)azUKw7-^&OD<0W)$)pjK_E2`4cD zI&arE_Un+qp;I#4UjJz4YTM^wZvnHs6n&fS8=xbrx2NEQxr~&UJY@38>?tX;g`}J` zg#MgX)|#nQiqru*W>Q#pFL!PCJ+OA>>;(yleg*!i_o;(djJz2a>0U$ny#?3%H`!M^ zPf_7XR3~|6U)uF>my~($5o1zKUMDCR?`O9u^B81583{H0lV7cvrU3$ayUpCiUt%gDy{yNEE1 zReSbjid){g0N%Z>`@d)A7nj3)&SJM@ETu*(OjYF{ODL&WnbuK`X&?#nvdX`#^KuYt z3C*T{23UT~+&k>zya*p!g()ctQeW#|nQUU#?1heBYED>RbPNi$(w^Pj9CqJqMP~Bn zTd5t@Op_2SdsQB``&QK;Y2`jK-cTCEGB%N)g8rPEWV4Prir!Opt@h2hx{CvfTR-Vn zcp(>;h#nXAO^s@v?VkVm<990Rx|*;OE7`qmHH|dNUz?kY7eo1>FEr z*{VfS5$C^qR4|3k_V4l87U3#(c`k({WOx7l6}3YAWikMC%k|ammf$mP?e!3P6!*$( zJ-aULfwYitX{m^ARM-Z7kw~>`60{VzeDgu_n9{tJQcsp?zK${g?V1680LaF&qQDpA z_2OK&UFnGHnZu?;Zb`l?9tWR}h*JC`2I*MNs0tb`{?2Pt?N;jEdg&JDJN}tEii~Hj zr6cSvo-l&8i8&$U$t5&Q^v=p-xx%2^+PF?Ur*u`K{EL z=0S+FlgVP@1lhU^dVO!{C6Knuwx@Q>ePM|zne)zT0CTCrot#HSR2s{waT%8x-yH{i-ErO?M zjQtm4BG^X!+^BwePh!xj&wYcb%l*^G=b>%qYXc(PGdv+&j>`AzX_LTAkCc?#`z7%F zc*(5yGo3Y9tGiA88Rz1&^vY&?Dx^HdD~CAK`h%$5*Dn?^oqM}IW3MK?_~JLmd2BtD=3TZ@uy0EomkHhk;x;-zL3y0FWO`#as%+Wa%dUAzL zf*e0hXJ3;izg{Zf`8v_p@Uk&#J(r2JEB4rtSiScn_e`<6>nTi!ClLR&=oGtF%D;*^ zhpl_;x@=2M>t!xwg=+$1;2Px!YDI z_9JXd(7V=+P#59O;5=HSnH%gkQTN427nea6HK=tTnA7I1hZZ$iy02C|qt)}Q?iXYY zC&W3o(2_l~x7B7P&Sz?wul@g><)E0PlVYk)-%`QUlpA0y<`X$Bl$jH%dH z>APFxUoo$do^)q_kJ1jY(4YY?6C<}{1N5zHg?-RhuI8QfE*I?lRByr$Yv!%mo;`AH zTmLRLsW>z0RS{JLh#E82`xR?(Nkt~N`BmifxQzLhnF)~Z=mP$Jr`E<<(Ou+L^fIXy z5LIYmUGBtM1C>|hKED0pIeI=yvO@ewntMaG>t!?pag-V8JRrmN6o-vWxGkY+#a|Xm zBelN%IzLDpS-C`SGj^h%q8GVA)^oN4AEP^_npp}@+;&aa3I~H)rrJ;+D*Q^(BpbLT z8c4`11v+K1j!h%WBs|I51&c>5e^*dZ509RS{GzJpOJ~yupXrCa_B!koLs-AJa<|8f zooz{qQEI>*^(fXE%!0+*ym`&(*>SFQWiJ1a|aHU%G-0Ns@|9j;G4wmKfF;( zU67s|QxyVrV_1zZojCKTl9$w%#r)ZS#zhZ6?fAYO^mIHrAM&_dRY#MGE-{E)clSo< ze|Fe`8a;{Lg$TZAnDxS!a@5pR?AWWCWFY2x$3|3s+m6#(*l*R*t6;WZfF)oKE&JF3HeJ4fCel-}^3@Be8!R_Rd9 z=^oE#(2GBye@B1YoxLKWGneVIMMmi1%|7OZYWBrd4;{Dg*E`z`x(I!RU2^KH7vmmk z{xGy#It9Lu)d%~@ye5CdFIM!q#8$QhedKTCBm((uXnyHT2$mT<+2xEl^HEy%9V%Vx z5wR6T+-w!EXmtF7gbh*jbzOI-E{8L|BU$3~KNutL)NHkjl)h&%7G#eI2IG-Zzllwm z8qvdk5>=qfXswLqM5}*Ll%Z21uaqrHj7K!GimM2_c(=7$g|_Y8`8}Q68ZMxduqiJV zmmEjPwIusX>xVpn$zzBqq~RLzswj4J!AV2H>h$i!+kL9&Rn6J_GNw&T=w`zfepxlj z`t;uGrM4yNk)9dvpQ-!%hqKz?hrZW`Q^2!hYYQ^{p*ky2)8-kHN1LLE!2FrOrz17e zw2j7goUwRmC#OJ=NN<&0?&vb?Ol^9BB3y1UR&}&d%Py-f67@6+djZisp5vAEL++l*!Sf+eaO0he7Eh*&fdB2dRAmi;gQ3hdNWacQ+9a z)SgsY^YI$M&T0e9MCd1=Z?VZ9{HMcu%TMNa|I;a(OgX9yLQyF-knU51rwuC#vL1kU zxBeP~j^PnujW3HEn|BsZPrGZZ_!&_H-@Eci0<>!kY+j4=ViAQ6rISw~PWCcv6=Y9T z3!ru)rk7*p;W%%1s=?mSYGRS-6fChD@5P?!KwuZv+~~Gtb4GGMjr;aVY!68HFtYMl zgAzQLD(|{S8{2Xj=FKz*7Si7Dv=B8Q)r@FuPoP%es^NWJr&K+-uKfqYieP!3hek$x zhqzGK%g6BnJP{Eg?2AZ4>Zp=&Qt|6`qx`-N%#!G0tA+7ZjK)C zcv*X$IhJ@Ksem?J`~GM$A*QCJg=~QWu^vjS?&8FK@uvurT&;+{3Nipoc!%Lf!H+-- z;kt#<9)WR7p|Ke|PEUw&DJispE7JyBY6Xd)4|ed}TT+|*RWF`#OYv8&ABWaIVd+#b zm$fj}%IK@w>6z>r7W##M1wFKW9;

N#+QSq@XP1}J!uRDs&vv&+>m$ITG~@JhTb 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 + + + + + + + Search - libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + + + + + + + + +
+ +
+ + +
+
+ +
+ + +
+

Search

+ + + +
+
+ + + + + + +
+ +
+
+
+ +
+ + + + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/searchindex.js b/libhal-arm-mcu/1.22.0/searchindex.js new file mode 100644 index 0000000..f00e890 --- /dev/null +++ b/libhal-arm-mcu/1.22.0/searchindex.js @@ -0,0 +1 @@ +Search.setIndex({"alltitles":{"ARM Cortex-M Startup Utilities":[[3,"arm-cortex-m-startup-utilities"]],"ARM Cortex-M SysTick Timer":[[5,"arm-cortex-m-systick-timer"]],"ARM Cortex-M System Control Functions":[[4,"arm-cortex-m-system-control-functions"]],"ARM MCU drivers":[[1,null]],"DWT (Debug-Watchdog-Trace) Counter":[[0,null]],"DWT Counter":[[0,"dwt-counter"]],"Interrupt Controller":[[2,null]],"LPC40 ADC APIs":[[7,null]],"LPC40 CAN APIs":[[8,null]],"LPC40 Clock APIs":[[9,null]],"LPC40 Constants APIs":[[10,null]],"LPC40 DAC APIs":[[11,null]],"LPC40 DMA APIs":[[12,null]],"LPC40 DMA SPI APIs":[[13,null]],"LPC40 I2C APIs":[[14,null]],"LPC40 Input Pin APIs":[[16,null]],"LPC40 Interrupt APIs":[[17,null]],"LPC40 Interrupt Pin APIs":[[18,null]],"LPC40 Output Pin APIs":[[19,null]],"LPC40 PWM APIs":[[22,null]],"LPC40 Pin APIs":[[20,null]],"LPC40 Power APIs":[[21,null]],"LPC40 SPI APIs":[[23,null]],"LPC40 Stream DAC APIs":[[24,null]],"LPC40 UART APIs":[[25,null]],"LPC40 drivers":[[15,null]],"NVIC (Nested Vector Interrupt Controller)":[[2,"nvic-nested-vector-interrupt-controller"]],"STM32 Generic I2C APIs":[[26,null]],"STM32 Generic PWM APIs":[[28,null]],"STM32 Generic Quadrature Encoder APIs":[[29,null]],"STM32 Generic SPI APIs":[[30,null]],"STM32 Generic Timer APIs":[[31,null]],"STM32 Generic UART APIs":[[32,null]],"STM32 Generic drivers":[[27,null]],"STM32F1 ADC APIs":[[33,null]],"STM32F1 CAN APIs":[[34,null]],"STM32F1 CAN V2 APIs":[[35,null]],"STM32F1 Clock APIs":[[36,null]],"STM32F1 Constants APIs":[[37,null]],"STM32F1 DMA APIs":[[38,null]],"STM32F1 GPIO APIs":[[39,null]],"STM32F1 Independent Watchdog APIs":[[40,null]],"STM32F1 Input Pin APIs":[[42,null]],"STM32F1 Interrupt APIs":[[43,null]],"STM32F1 Output Pin APIs":[[44,null]],"STM32F1 PWM APIs":[[46,null]],"STM32F1 Pin APIs":[[45,null]],"STM32F1 SPI APIs":[[47,null]],"STM32F1 Timer APIs":[[48,null]],"STM32F1 UART APIs":[[49,null]],"STM32F1 USART APIs":[[50,null]],"STM32F1 USB APIs":[[51,null]],"STM32F1 drivers":[[41,null]],"STM32F40 Constants APIs":[[52,null]],"STM32F40 drivers":[[53,null]],"STM32F411 Clock APIs":[[54,null]],"STM32F411 Constants APIs":[[55,null]],"STM32F411 DMA APIs":[[56,null]],"STM32F411 I2C APIs":[[57,null]],"STM32F411 Input Pin APIs":[[59,null]],"STM32F411 Interrupt APIs":[[60,null]],"STM32F411 Output Pin APIs":[[61,null]],"STM32F411 Pin APIs":[[62,null]],"STM32F411 SPI APIs":[[63,null]],"STM32F411 UART APIs":[[64,null]],"STM32F411 drivers":[[58,null]],"Startup Functions":[[3,null]],"SysTick Timer":[[5,null]],"System Control":[[4,null]],"hal::lpc40::adc":[[7,"hal-lpc40-adc"]],"hal::lpc40::can":[[8,"hal-lpc40-can"]],"hal::lpc40::clock_tree":[[9,"hal-lpc40-clock-tree"]],"hal::lpc40::dac":[[11,"hal-lpc40-dac"]],"hal::lpc40::dma":[[12,"hal-lpc40-dma"]],"hal::lpc40::dma_spi":[[13,"hal-lpc40-dma-spi"]],"hal::lpc40::i2c":[[14,"hal-lpc40-i2c"]],"hal::lpc40::input_pin":[[16,"hal-lpc40-input-pin"]],"hal::lpc40::interrupt_pin":[[18,"hal-lpc40-interrupt-pin"]],"hal::lpc40::output_pin":[[19,"hal-lpc40-output-pin"]],"hal::lpc40::pin":[[20,"hal-lpc40-pin"]],"hal::lpc40::pwm":[[22,"hal-lpc40-pwm"]],"hal::lpc40::spi":[[23,"hal-lpc40-spi"]],"hal::lpc40::stream_dac_u16":[[24,"hal-lpc40-stream-dac-u16"]],"hal::lpc40::stream_dac_u8":[[24,"hal-lpc40-stream-dac-u8"]],"hal::lpc40::uart":[[25,"hal-lpc40-uart"]],"hal::stm32_generic::i2c":[[26,"hal-stm32-generic-i2c"]],"hal::stm32_generic::pwm":[[28,"hal-stm32-generic-pwm"]],"hal::stm32_generic::pwm_group_frequency":[[28,"hal-stm32-generic-pwm-group-frequency"]],"hal::stm32_generic::quadrature_encoder":[[29,"hal-stm32-generic-quadrature-encoder"]],"hal::stm32_generic::spi":[[30,"hal-stm32-generic-spi"]],"hal::stm32_generic::timer":[[31,"hal-stm32-generic-timer"]],"hal::stm32_generic::uart":[[32,"hal-stm32-generic-uart"]],"hal::stm32_generic::zero_copy_usart":[[32,"hal-stm32-generic-zero-copy-usart"]],"hal::stm32f1::adc_manager":[[33,"hal-stm32f1-adc-manager"]],"hal::stm32f1::advanced_timer_manager":[[48,"hal-stm32f1-advanced-timer-manager"]],"hal::stm32f1::can_peripheral_manager":[[34,"hal-stm32f1-can-peripheral-manager"]],"hal::stm32f1::can_peripheral_manager_v2":[[35,"hal-stm32f1-can-peripheral-manager-v2"]],"hal::stm32f1::clock_tree":[[36,"hal-stm32f1-clock-tree"]],"hal::stm32f1::general_purpose_timer_manager":[[48,"hal-stm32f1-general-purpose-timer-manager"]],"hal::stm32f1::gpio_manager":[[39,"hal-stm32f1-gpio-manager"]],"hal::stm32f1::independent_watchdog":[[40,"hal-stm32f1-independent-watchdog"]],"hal::stm32f1::input_pin":[[42,"hal-stm32f1-input-pin"]],"hal::stm32f1::output_pin":[[44,"hal-stm32f1-output-pin"]],"hal::stm32f1::pin_select":[[45,"hal-stm32f1-pin-select"]],"hal::stm32f1::pwm":[[46,"hal-stm32f1-pwm"]],"hal::stm32f1::pwm16_channel":[[48,"hal-stm32f1-pwm16-channel"]],"hal::stm32f1::pwm_group_frequency":[[48,"hal-stm32f1-pwm-group-frequency"]],"hal::stm32f1::spi":[[47,"hal-stm32f1-spi"]],"hal::stm32f1::timer":[[48,"hal-stm32f1-timer"]],"hal::stm32f1::uart":[[49,"hal-stm32f1-uart"]],"hal::stm32f1::usart_manager":[[50,"hal-stm32f1-usart-manager"]],"hal::stm32f1::usb":[[51,"hal-stm32f1-usb"]],"hal::stm32f411::clock_tree":[[54,"hal-stm32f411-clock-tree"]],"hal::stm32f411::i2c_manager_impl":[[57,"hal-stm32f411-i2c-manager-impl"]],"hal::stm32f411::input_pin":[[59,"hal-stm32f411-input-pin"]],"hal::stm32f411::output_pin":[[61,"hal-stm32f411-output-pin"]],"hal::stm32f411::pin":[[62,"hal-stm32f411-pin"]],"hal::stm32f411::spi":[[63,"hal-stm32f411-spi"]],"hal::stm32f411::uart":[[64,"hal-stm32f411-uart"]],"libhal-arm-mcu API Documentation":[[1,null]],"libhal-arm-mcu API documentation":[[6,null]],"libhal-arm-mcu Docs":[[6,null]],"libhal-arm-mcu LPC40 API Documentation":[[15,null]],"libhal-arm-mcu STM32 Generic API Documentation":[[27,null]],"libhal-arm-mcu STM32F1 API Documentation":[[41,null]],"libhal-arm-mcu STM32F40 API Documentation":[[53,null]],"libhal-arm-mcu STM32F411 API Documentation":[[58,null]]},"docnames":["cortex_m/dwt_counter","cortex_m/index","cortex_m/interrupt","cortex_m/startup","cortex_m/system_control","cortex_m/systick_timer","index","lpc40/adc","lpc40/can","lpc40/clock","lpc40/constants","lpc40/dac","lpc40/dma","lpc40/dma_spi","lpc40/i2c","lpc40/index","lpc40/input_pin","lpc40/interrupt","lpc40/interrupt_pin","lpc40/output_pin","lpc40/pin","lpc40/power","lpc40/pwm","lpc40/spi","lpc40/stream_dac","lpc40/uart","stm32_generic/i2c","stm32_generic/index","stm32_generic/pwm","stm32_generic/quadrature_encoder","stm32_generic/spi","stm32_generic/timer","stm32_generic/uart","stm32f1/adc","stm32f1/can","stm32f1/can2","stm32f1/clock","stm32f1/constants","stm32f1/dma","stm32f1/gpio","stm32f1/independent_watchdog","stm32f1/index","stm32f1/input_pin","stm32f1/interrupt","stm32f1/output_pin","stm32f1/pin","stm32f1/pwm","stm32f1/spi","stm32f1/timer","stm32f1/uart","stm32f1/usart","stm32f1/usb","stm32f40/constants","stm32f40/index","stm32f411/clock","stm32f411/constants","stm32f411/dma","stm32f411/i2c","stm32f411/index","stm32f411/input_pin","stm32f411/interrupt","stm32f411/output_pin","stm32f411/pin","stm32f411/spi","stm32f411/uart"],"envversion":{"sphinx":66,"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},"filenames":["cortex_m/dwt_counter.md","cortex_m/index.rst","cortex_m/interrupt.md","cortex_m/startup.md","cortex_m/system_control.md","cortex_m/systick_timer.md","index.rst","lpc40/adc.md","lpc40/can.md","lpc40/clock.md","lpc40/constants.md","lpc40/dac.md","lpc40/dma.md","lpc40/dma_spi.md","lpc40/i2c.md","lpc40/index.rst","lpc40/input_pin.md","lpc40/interrupt.md","lpc40/interrupt_pin.md","lpc40/output_pin.md","lpc40/pin.md","lpc40/power.md","lpc40/pwm.md","lpc40/spi.md","lpc40/stream_dac.md","lpc40/uart.md","stm32_generic/i2c.md","stm32_generic/index.rst","stm32_generic/pwm.md","stm32_generic/quadrature_encoder.md","stm32_generic/spi.md","stm32_generic/timer.md","stm32_generic/uart.md","stm32f1/adc.md","stm32f1/can.md","stm32f1/can2.md","stm32f1/clock.md","stm32f1/constants.md","stm32f1/dma.md","stm32f1/gpio.md","stm32f1/independent_watchdog.md","stm32f1/index.rst","stm32f1/input_pin.md","stm32f1/interrupt.md","stm32f1/output_pin.md","stm32f1/pin.md","stm32f1/pwm.md","stm32f1/spi.md","stm32f1/timer.md","stm32f1/uart.md","stm32f1/usart.md","stm32f1/usb.md","stm32f40/constants.md","stm32f40/index.rst","stm32f411/clock.md","stm32f411/constants.md","stm32f411/dma.md","stm32f411/i2c.md","stm32f411/index.rst","stm32f411/input_pin.md","stm32f411/interrupt.md","stm32f411/output_pin.md","stm32f411/pin.md","stm32f411/spi.md","stm32f411/uart.md"],"indexentries":{"hal::cortex_m::bus_fault_handler (c++ function)":[[2,"_CPPv4N3hal8cortex_m17bus_fault_handlerEv",false]],"hal::cortex_m::debugger_connected (c++ function)":[[4,"_CPPv4N3hal8cortex_m18debugger_connectedEv",false]],"hal::cortex_m::default_interrupt_handler (c++ function)":[[2,"_CPPv4N3hal8cortex_m25default_interrupt_handlerEv",false]],"hal::cortex_m::disable_all_interrupts (c++ function)":[[2,"_CPPv4N3hal8cortex_m22disable_all_interruptsEv",false]],"hal::cortex_m::disable_interrupt (c++ function)":[[2,"_CPPv4N3hal8cortex_m17disable_interruptE5irq_t",false]],"hal::cortex_m::dwt_counter (c++ class)":[[0,"_CPPv4N3hal8cortex_m11dwt_counterE",false]],"hal::cortex_m::dwt_counter::dwt_counter (c++ function)":[[0,"_CPPv4N3hal8cortex_m11dwt_counter11dwt_counterE5hertz",false]],"hal::cortex_m::dwt_counter::register_cpu_frequency (c++ function)":[[0,"_CPPv4N3hal8cortex_m11dwt_counter22register_cpu_frequencyE5hertz",false]],"hal::cortex_m::enable_all_interrupts (c++ function)":[[2,"_CPPv4N3hal8cortex_m21enable_all_interruptsEv",false]],"hal::cortex_m::enable_interrupt (c++ function)":[[2,"_CPPv4N3hal8cortex_m16enable_interruptE5irq_t17interrupt_pointer",false]],"hal::cortex_m::get_interrupt_vector_table_address (c++ function)":[[4,"_CPPv4N3hal8cortex_m34get_interrupt_vector_table_addressEv",false]],"hal::cortex_m::get_vector_table (c++ function)":[[2,"_CPPv4N3hal8cortex_m16get_vector_tableEv",false]],"hal::cortex_m::hard_fault_handler (c++ function)":[[2,"_CPPv4N3hal8cortex_m18hard_fault_handlerEv",false]],"hal::cortex_m::initialize_bss_section (c++ function)":[[3,"_CPPv4N3hal8cortex_m22initialize_bss_sectionEv",false]],"hal::cortex_m::initialize_data_section (c++ function)":[[3,"_CPPv4N3hal8cortex_m23initialize_data_sectionEv",false]],"hal::cortex_m::initialize_floating_point_unit (c++ function)":[[4,"_CPPv4N3hal8cortex_m30initialize_floating_point_unitEv",false]],"hal::cortex_m::initialize_interrupts (c++ function)":[[2,"_CPPv4N3hal8cortex_m21initialize_interruptsENSt4spanI17interrupt_pointerEE",false]],"hal::cortex_m::interrupt_vector_table_initialized (c++ function)":[[2,"_CPPv4N3hal8cortex_m34interrupt_vector_table_initializedEv",false]],"hal::cortex_m::irq (c++ enum)":[[2,"_CPPv4N3hal8cortex_m3irqE",false]],"hal::cortex_m::irq::bus_fault (c++ enumerator)":[[2,"_CPPv4N3hal8cortex_m3irq9bus_faultE",false]],"hal::cortex_m::irq::hard_fault (c++ enumerator)":[[2,"_CPPv4N3hal8cortex_m3irq10hard_faultE",false]],"hal::cortex_m::irq::memory_management_fault (c++ enumerator)":[[2,"_CPPv4N3hal8cortex_m3irq23memory_management_faultE",false]],"hal::cortex_m::irq::non_maskable_interrupt (c++ enumerator)":[[2,"_CPPv4N3hal8cortex_m3irq22non_maskable_interruptE",false]],"hal::cortex_m::irq::pend_sv (c++ enumerator)":[[2,"_CPPv4N3hal8cortex_m3irq7pend_svE",false]],"hal::cortex_m::irq::reserve10 (c++ enumerator)":[[2,"_CPPv4N3hal8cortex_m3irq9reserve10E",false]],"hal::cortex_m::irq::reserve12 (c++ enumerator)":[[2,"_CPPv4N3hal8cortex_m3irq9reserve12E",false]],"hal::cortex_m::irq::reserve13 (c++ enumerator)":[[2,"_CPPv4N3hal8cortex_m3irq9reserve13E",false]],"hal::cortex_m::irq::reserve7 (c++ enumerator)":[[2,"_CPPv4N3hal8cortex_m3irq8reserve7E",false]],"hal::cortex_m::irq::reserve8 (c++ enumerator)":[[2,"_CPPv4N3hal8cortex_m3irq8reserve8E",false]],"hal::cortex_m::irq::reserve9 (c++ enumerator)":[[2,"_CPPv4N3hal8cortex_m3irq8reserve9E",false]],"hal::cortex_m::irq::reset (c++ enumerator)":[[2,"_CPPv4N3hal8cortex_m3irq5resetE",false]],"hal::cortex_m::irq::software_call (c++ enumerator)":[[2,"_CPPv4N3hal8cortex_m3irq13software_callE",false]],"hal::cortex_m::irq::systick (c++ enumerator)":[[2,"_CPPv4N3hal8cortex_m3irq7systickE",false]],"hal::cortex_m::irq::top_of_stack (c++ enumerator)":[[2,"_CPPv4N3hal8cortex_m3irq12top_of_stackE",false]],"hal::cortex_m::irq::usage_fault (c++ enumerator)":[[2,"_CPPv4N3hal8cortex_m3irq11usage_faultE",false]],"hal::cortex_m::is_interrupt_enabled (c++ function)":[[2,"_CPPv4N3hal8cortex_m20is_interrupt_enabledE5irq_t",false]],"hal::cortex_m::memory_management_fault_handler (c++ function)":[[2,"_CPPv4N3hal8cortex_m31memory_management_fault_handlerEv",false]],"hal::cortex_m::reset (c++ function)":[[4,"_CPPv4N3hal8cortex_m5resetEv",false]],"hal::cortex_m::revert_interrupt_vector_table (c++ function)":[[2,"_CPPv4N3hal8cortex_m29revert_interrupt_vector_tableEv",false]],"hal::cortex_m::set_interrupt_vector_table_address (c++ function)":[[4,"_CPPv4N3hal8cortex_m34set_interrupt_vector_table_addressEPv",false]],"hal::cortex_m::systick_timer (c++ class)":[[5,"_CPPv4N3hal8cortex_m13systick_timerE",false]],"hal::cortex_m::systick_timer::clock_source (c++ enum)":[[5,"_CPPv4N3hal8cortex_m13systick_timer12clock_sourceE",false]],"hal::cortex_m::systick_timer::clock_source::external (c++ enumerator)":[[5,"_CPPv4N3hal8cortex_m13systick_timer12clock_source8externalE",false]],"hal::cortex_m::systick_timer::clock_source::processor (c++ enumerator)":[[5,"_CPPv4N3hal8cortex_m13systick_timer12clock_source9processorE",false]],"hal::cortex_m::systick_timer::register_cpu_frequency (c++ function)":[[5,"_CPPv4N3hal8cortex_m13systick_timer22register_cpu_frequencyE5hertz12clock_source",false]],"hal::cortex_m::systick_timer::systick_timer (c++ function)":[[5,"_CPPv4N3hal8cortex_m13systick_timer13systick_timerE5hertz12clock_source",false]],"hal::cortex_m::systick_timer::~systick_timer (c++ function)":[[5,"_CPPv4N3hal8cortex_m13systick_timerD0Ev",false]],"hal::cortex_m::usage_fault_handler (c++ function)":[[2,"_CPPv4N3hal8cortex_m19usage_fault_handlerEv",false]],"hal::cortex_m::verify_vector_enabled (c++ function)":[[2,"_CPPv4N3hal8cortex_m21verify_vector_enabledE5irq_t17interrupt_pointer",false]],"hal::cortex_m::wait_for_event (c++ function)":[[4,"_CPPv4N3hal8cortex_m14wait_for_eventEv",false]],"hal::cortex_m::wait_for_interrupt (c++ function)":[[4,"_CPPv4N3hal8cortex_m18wait_for_interruptEv",false]],"hal::lpc40::adc (c++ class)":[[7,"_CPPv4N3hal5lpc403adcE",false]],"hal::lpc40::adc::adc (c++ function)":[[7,"_CPPv4N3hal5lpc403adc3adcEN3hal13channel_paramE",false],[7,"_CPPv4N3hal5lpc403adc3adcERK7channel",false]],"hal::lpc40::adc::channel (c++ struct)":[[7,"_CPPv4N3hal5lpc403adc7channelE",false]],"hal::lpc40::adc::channel::adc_pin (c++ member)":[[7,"_CPPv4N3hal5lpc403adc7channel7adc_pinE",false]],"hal::lpc40::adc::channel::clock_rate (c++ member)":[[7,"_CPPv4N3hal5lpc403adc7channel10clock_rateE",false]],"hal::lpc40::adc::channel::index (c++ member)":[[7,"_CPPv4N3hal5lpc403adc7channel5indexE",false]],"hal::lpc40::adc::channel::pin_function (c++ member)":[[7,"_CPPv4N3hal5lpc403adc7channel12pin_functionE",false]],"hal::lpc40::can (c++ class)":[[8,"_CPPv4N3hal5lpc403canE",false]],"hal::lpc40::can::port (c++ struct)":[[8,"_CPPv4N3hal5lpc403can4portE",false]],"hal::lpc40::can::port::id (c++ member)":[[8,"_CPPv4N3hal5lpc403can4port2idE",false]],"hal::lpc40::can::port::irq_number (c++ member)":[[8,"_CPPv4N3hal5lpc403can4port10irq_numberE",false]],"hal::lpc40::can::port::rd (c++ member)":[[8,"_CPPv4N3hal5lpc403can4port2rdE",false]],"hal::lpc40::can::port::rd_function_code (c++ member)":[[8,"_CPPv4N3hal5lpc403can4port16rd_function_codeE",false]],"hal::lpc40::can::port::sync_jump (c++ member)":[[8,"_CPPv4N3hal5lpc403can4port9sync_jumpE",false]],"hal::lpc40::can::port::td (c++ member)":[[8,"_CPPv4N3hal5lpc403can4port2tdE",false]],"hal::lpc40::can::port::td_function_code (c++ member)":[[8,"_CPPv4N3hal5lpc403can4port16td_function_codeE",false]],"hal::lpc40::can::port::tseg1 (c++ member)":[[8,"_CPPv4N3hal5lpc403can4port5tseg1E",false]],"hal::lpc40::can::port::tseg2 (c++ member)":[[8,"_CPPv4N3hal5lpc403can4port5tseg2E",false]],"hal::lpc40::clock_tree (c++ struct)":[[9,"_CPPv4N3hal5lpc4010clock_treeE",false]],"hal::lpc40::clock_tree::cpu (c++ member)":[[9,"_CPPv4N3hal5lpc4010clock_tree3cpuE",false]],"hal::lpc40::clock_tree::cpu_t (c++ struct)":[[9,"_CPPv4N3hal5lpc4010clock_tree5cpu_tE",false]],"hal::lpc40::clock_tree::cpu_t::divider (c++ member)":[[9,"_CPPv4N3hal5lpc4010clock_tree5cpu_t7dividerE",false]],"hal::lpc40::clock_tree::cpu_t::use_pll0 (c++ member)":[[9,"_CPPv4N3hal5lpc4010clock_tree5cpu_t8use_pll0E",false]],"hal::lpc40::clock_tree::emc_half_cpu_divider (c++ member)":[[9,"_CPPv4N3hal5lpc4010clock_tree20emc_half_cpu_dividerE",false]],"hal::lpc40::clock_tree::oscillator_frequency (c++ member)":[[9,"_CPPv4N3hal5lpc4010clock_tree20oscillator_frequencyE",false]],"hal::lpc40::clock_tree::peripheral_divider (c++ member)":[[9,"_CPPv4N3hal5lpc4010clock_tree18peripheral_dividerE",false]],"hal::lpc40::clock_tree::pll (c++ member)":[[9,"_CPPv4N3hal5lpc4010clock_tree3pllE",false]],"hal::lpc40::clock_tree::pll_t (c++ struct)":[[9,"_CPPv4N3hal5lpc4010clock_tree5pll_tE",false]],"hal::lpc40::clock_tree::pll_t::enabled (c++ member)":[[9,"_CPPv4N3hal5lpc4010clock_tree5pll_t7enabledE",false]],"hal::lpc40::clock_tree::pll_t::multiply (c++ member)":[[9,"_CPPv4N3hal5lpc4010clock_tree5pll_t8multiplyE",false]],"hal::lpc40::clock_tree::spifi (c++ member)":[[9,"_CPPv4N3hal5lpc4010clock_tree5spifiE",false]],"hal::lpc40::clock_tree::spifi_t (c++ struct)":[[9,"_CPPv4N3hal5lpc4010clock_tree7spifi_tE",false]],"hal::lpc40::clock_tree::spifi_t::clock (c++ member)":[[9,"_CPPv4N3hal5lpc4010clock_tree7spifi_t5clockE",false]],"hal::lpc40::clock_tree::spifi_t::divider (c++ member)":[[9,"_CPPv4N3hal5lpc4010clock_tree7spifi_t7dividerE",false]],"hal::lpc40::clock_tree::usb (c++ member)":[[9,"_CPPv4N3hal5lpc4010clock_tree3usbE",false]],"hal::lpc40::clock_tree::usb_t (c++ struct)":[[9,"_CPPv4N3hal5lpc4010clock_tree5usb_tE",false]],"hal::lpc40::clock_tree::usb_t::clock (c++ member)":[[9,"_CPPv4N3hal5lpc4010clock_tree5usb_t5clockE",false]],"hal::lpc40::clock_tree::usb_t::divider (c++ member)":[[9,"_CPPv4N3hal5lpc4010clock_tree5usb_t7dividerE",false]],"hal::lpc40::clock_tree::use_external_oscillator (c++ member)":[[9,"_CPPv4N3hal5lpc4010clock_tree23use_external_oscillatorE",false]],"hal::lpc40::configure_clocks (c++ function)":[[9,"_CPPv4N3hal5lpc4016configure_clocksERK10clock_tree",false]],"hal::lpc40::dac (c++ class)":[[11,"_CPPv4N3hal5lpc403dacE",false]],"hal::lpc40::dma (c++ struct)":[[12,"_CPPv4N3hal5lpc403dmaE",false]],"hal::lpc40::dma_burst_size (c++ enum)":[[12,"_CPPv4N3hal5lpc4014dma_burst_sizeE",false]],"hal::lpc40::dma_burst_size::bytes_1 (c++ enumerator)":[[12,"_CPPv4N3hal5lpc4014dma_burst_size7bytes_1E",false]],"hal::lpc40::dma_burst_size::bytes_128 (c++ enumerator)":[[12,"_CPPv4N3hal5lpc4014dma_burst_size9bytes_128E",false]],"hal::lpc40::dma_burst_size::bytes_16 (c++ enumerator)":[[12,"_CPPv4N3hal5lpc4014dma_burst_size8bytes_16E",false]],"hal::lpc40::dma_burst_size::bytes_256 (c++ enumerator)":[[12,"_CPPv4N3hal5lpc4014dma_burst_size9bytes_256E",false]],"hal::lpc40::dma_burst_size::bytes_32 (c++ enumerator)":[[12,"_CPPv4N3hal5lpc4014dma_burst_size8bytes_32E",false]],"hal::lpc40::dma_burst_size::bytes_4 (c++ enumerator)":[[12,"_CPPv4N3hal5lpc4014dma_burst_size7bytes_4E",false]],"hal::lpc40::dma_burst_size::bytes_64 (c++ enumerator)":[[12,"_CPPv4N3hal5lpc4014dma_burst_size8bytes_64E",false]],"hal::lpc40::dma_burst_size::bytes_8 (c++ enumerator)":[[12,"_CPPv4N3hal5lpc4014dma_burst_size7bytes_8E",false]],"hal::lpc40::dma_channel_select (c++ enum)":[[12,"_CPPv4N3hal5lpc4018dma_channel_selectE",false]],"hal::lpc40::dma_channel_select::channel0 (c++ enumerator)":[[12,"_CPPv4N3hal5lpc4018dma_channel_select8channel0E",false]],"hal::lpc40::dma_channel_select::channel1 (c++ enumerator)":[[12,"_CPPv4N3hal5lpc4018dma_channel_select8channel1E",false]],"hal::lpc40::dma_channel_select::channel2 (c++ enumerator)":[[12,"_CPPv4N3hal5lpc4018dma_channel_select8channel2E",false]],"hal::lpc40::dma_channel_select::channel3 (c++ enumerator)":[[12,"_CPPv4N3hal5lpc4018dma_channel_select8channel3E",false]],"hal::lpc40::dma_channel_select::channel4 (c++ enumerator)":[[12,"_CPPv4N3hal5lpc4018dma_channel_select8channel4E",false]],"hal::lpc40::dma_channel_select::channel5 (c++ enumerator)":[[12,"_CPPv4N3hal5lpc4018dma_channel_select8channel5E",false]],"hal::lpc40::dma_channel_select::channel6 (c++ enumerator)":[[12,"_CPPv4N3hal5lpc4018dma_channel_select8channel6E",false]],"hal::lpc40::dma_channel_select::channel7 (c++ enumerator)":[[12,"_CPPv4N3hal5lpc4018dma_channel_select8channel7E",false]],"hal::lpc40::dma_peripheral (c++ enum)":[[12,"_CPPv4N3hal5lpc4014dma_peripheralE",false]],"hal::lpc40::dma_peripheral::adc (c++ enumerator)":[[12,"_CPPv4N3hal5lpc4014dma_peripheral3adcE",false]],"hal::lpc40::dma_peripheral::dac (c++ enumerator)":[[12,"_CPPv4N3hal5lpc4014dma_peripheral3dacE",false]],"hal::lpc40::dma_peripheral::memory_or_timer0_match0 (c++ enumerator)":[[12,"_CPPv4N3hal5lpc4014dma_peripheral23memory_or_timer0_match0E",false]],"hal::lpc40::dma_peripheral::sd_card_and_timer0_match1 (c++ enumerator)":[[12,"_CPPv4N3hal5lpc4014dma_peripheral25sd_card_and_timer0_match1E",false]],"hal::lpc40::dma_peripheral::spi0_rx_and_timer1_match1 (c++ enumerator)":[[12,"_CPPv4N3hal5lpc4014dma_peripheral25spi0_rx_and_timer1_match1E",false]],"hal::lpc40::dma_peripheral::spi0_tx_and_timer1_match0 (c++ enumerator)":[[12,"_CPPv4N3hal5lpc4014dma_peripheral25spi0_tx_and_timer1_match0E",false]],"hal::lpc40::dma_peripheral::spi1_rx_and_timer2_match1 (c++ enumerator)":[[12,"_CPPv4N3hal5lpc4014dma_peripheral25spi1_rx_and_timer2_match1E",false]],"hal::lpc40::dma_peripheral::spi1_tx_and_timer2_match0 (c++ enumerator)":[[12,"_CPPv4N3hal5lpc4014dma_peripheral25spi1_tx_and_timer2_match0E",false]],"hal::lpc40::dma_peripheral::spi2_rx_and_i2s_channel_1 (c++ enumerator)":[[12,"_CPPv4N3hal5lpc4014dma_peripheral25spi2_rx_and_i2s_channel_1E",false]],"hal::lpc40::dma_peripheral::spi2_tx_and_i2s_channel_0 (c++ enumerator)":[[12,"_CPPv4N3hal5lpc4014dma_peripheral25spi2_tx_and_i2s_channel_0E",false]],"hal::lpc40::dma_peripheral::uart0_rx_and_uart3_rx (c++ enumerator)":[[12,"_CPPv4N3hal5lpc4014dma_peripheral21uart0_rx_and_uart3_rxE",false]],"hal::lpc40::dma_peripheral::uart0_tx_and_uart3_tx (c++ enumerator)":[[12,"_CPPv4N3hal5lpc4014dma_peripheral21uart0_tx_and_uart3_txE",false]],"hal::lpc40::dma_peripheral::uart1_rx_and_uart4_rx (c++ enumerator)":[[12,"_CPPv4N3hal5lpc4014dma_peripheral21uart1_rx_and_uart4_rxE",false]],"hal::lpc40::dma_peripheral::uart1_tx_and_uart4_tx (c++ enumerator)":[[12,"_CPPv4N3hal5lpc4014dma_peripheral21uart1_tx_and_uart4_txE",false]],"hal::lpc40::dma_peripheral::uart2_rx_and_timer3_match1 (c++ enumerator)":[[12,"_CPPv4N3hal5lpc4014dma_peripheral26uart2_rx_and_timer3_match1E",false]],"hal::lpc40::dma_peripheral::uart2_tx_and_timer3_match0 (c++ enumerator)":[[12,"_CPPv4N3hal5lpc4014dma_peripheral26uart2_tx_and_timer3_match0E",false]],"hal::lpc40::dma_spi (c++ class)":[[13,"_CPPv4N3hal5lpc407dma_spiE",false]],"hal::lpc40::dma_spi::bus_info (c++ struct)":[[13,"_CPPv4N3hal5lpc407dma_spi8bus_infoE",false]],"hal::lpc40::dma_spi::bus_info::clock (c++ member)":[[13,"_CPPv4N3hal5lpc407dma_spi8bus_info5clockE",false]],"hal::lpc40::dma_spi::bus_info::clock_function (c++ member)":[[13,"_CPPv4N3hal5lpc407dma_spi8bus_info14clock_functionE",false]],"hal::lpc40::dma_spi::bus_info::data_in (c++ member)":[[13,"_CPPv4N3hal5lpc407dma_spi8bus_info7data_inE",false]],"hal::lpc40::dma_spi::bus_info::data_in_function (c++ member)":[[13,"_CPPv4N3hal5lpc407dma_spi8bus_info16data_in_functionE",false]],"hal::lpc40::dma_spi::bus_info::data_out (c++ member)":[[13,"_CPPv4N3hal5lpc407dma_spi8bus_info8data_outE",false]],"hal::lpc40::dma_spi::bus_info::data_out_function (c++ member)":[[13,"_CPPv4N3hal5lpc407dma_spi8bus_info17data_out_functionE",false]],"hal::lpc40::dma_spi::bus_info::peripheral_id (c++ member)":[[13,"_CPPv4N3hal5lpc407dma_spi8bus_info13peripheral_idE",false]],"hal::lpc40::dma_spi::dma_spi (c++ function)":[[13,"_CPPv4N3hal5lpc407dma_spi7dma_spiE2u8RN3hal9io_waiterERKN3spi8settingsE",false],[13,"_CPPv4N3hal5lpc407dma_spi7dma_spiE8bus_info",false]],"hal::lpc40::dma_transfer_type (c++ enum)":[[12,"_CPPv4N3hal5lpc4017dma_transfer_typeE",false]],"hal::lpc40::dma_transfer_type::memory_to_memory (c++ enumerator)":[[12,"_CPPv4N3hal5lpc4017dma_transfer_type16memory_to_memoryE",false]],"hal::lpc40::dma_transfer_type::memory_to_peripheral (c++ enumerator)":[[12,"_CPPv4N3hal5lpc4017dma_transfer_type20memory_to_peripheralE",false]],"hal::lpc40::dma_transfer_type::memory_to_peripheral_dp (c++ enumerator)":[[12,"_CPPv4N3hal5lpc4017dma_transfer_type23memory_to_peripheral_dpE",false]],"hal::lpc40::dma_transfer_type::peripheral_to_memory (c++ enumerator)":[[12,"_CPPv4N3hal5lpc4017dma_transfer_type20peripheral_to_memoryE",false]],"hal::lpc40::dma_transfer_type::peripheral_to_memory_sp (c++ enumerator)":[[12,"_CPPv4N3hal5lpc4017dma_transfer_type23peripheral_to_memory_spE",false]],"hal::lpc40::dma_transfer_type::peripheral_to_peripheral (c++ enumerator)":[[12,"_CPPv4N3hal5lpc4017dma_transfer_type24peripheral_to_peripheralE",false]],"hal::lpc40::dma_transfer_type::peripheral_to_peripheral_dp (c++ enumerator)":[[12,"_CPPv4N3hal5lpc4017dma_transfer_type27peripheral_to_peripheral_dpE",false]],"hal::lpc40::dma_transfer_type::peripheral_to_peripheral_sp (c++ enumerator)":[[12,"_CPPv4N3hal5lpc4017dma_transfer_type27peripheral_to_peripheral_spE",false]],"hal::lpc40::dma_transfer_width (c++ enum)":[[12,"_CPPv4N3hal5lpc4018dma_transfer_widthE",false]],"hal::lpc40::dma_transfer_width::bit_16 (c++ enumerator)":[[12,"_CPPv4N3hal5lpc4018dma_transfer_width6bit_16E",false]],"hal::lpc40::dma_transfer_width::bit_32 (c++ enumerator)":[[12,"_CPPv4N3hal5lpc4018dma_transfer_width6bit_32E",false]],"hal::lpc40::dma_transfer_width::bit_8 (c++ enumerator)":[[12,"_CPPv4N3hal5lpc4018dma_transfer_width5bit_8E",false]],"hal::lpc40::flash_configuration (c++ enum)":[[9,"_CPPv4N3hal5lpc4019flash_configurationE",false]],"hal::lpc40::flash_configuration::clock1 (c++ enumerator)":[[9,"_CPPv4N3hal5lpc4019flash_configuration6clock1E",false]],"hal::lpc40::flash_configuration::clock2 (c++ enumerator)":[[9,"_CPPv4N3hal5lpc4019flash_configuration6clock2E",false]],"hal::lpc40::flash_configuration::clock3 (c++ enumerator)":[[9,"_CPPv4N3hal5lpc4019flash_configuration6clock3E",false]],"hal::lpc40::flash_configuration::clock4 (c++ enumerator)":[[9,"_CPPv4N3hal5lpc4019flash_configuration6clock4E",false]],"hal::lpc40::flash_configuration::clock5 (c++ enumerator)":[[9,"_CPPv4N3hal5lpc4019flash_configuration6clock5E",false]],"hal::lpc40::flash_configuration::clock6 (c++ enumerator)":[[9,"_CPPv4N3hal5lpc4019flash_configuration6clock6E",false]],"hal::lpc40::get_frequency (c++ function)":[[9,"_CPPv4N3hal5lpc4013get_frequencyE10peripheral",false]],"hal::lpc40::i2c (c++ class)":[[14,"_CPPv4N3hal5lpc403i2cE",false]],"hal::lpc40::i2c::bus_info (c++ struct)":[[14,"_CPPv4N3hal5lpc403i2c8bus_infoE",false]],"hal::lpc40::i2c::bus_info::duty_cycle (c++ member)":[[14,"_CPPv4N3hal5lpc403i2c8bus_info10duty_cycleE",false]],"hal::lpc40::i2c::bus_info::irq_number (c++ member)":[[14,"_CPPv4N3hal5lpc403i2c8bus_info10irq_numberE",false]],"hal::lpc40::i2c::bus_info::peripheral_id (c++ member)":[[14,"_CPPv4N3hal5lpc403i2c8bus_info13peripheral_idE",false]],"hal::lpc40::i2c::bus_info::scl (c++ member)":[[14,"_CPPv4N3hal5lpc403i2c8bus_info3sclE",false]],"hal::lpc40::i2c::bus_info::scl_function (c++ member)":[[14,"_CPPv4N3hal5lpc403i2c8bus_info12scl_functionE",false]],"hal::lpc40::i2c::bus_info::sda (c++ member)":[[14,"_CPPv4N3hal5lpc403i2c8bus_info3sdaE",false]],"hal::lpc40::i2c::bus_info::sda_function (c++ member)":[[14,"_CPPv4N3hal5lpc403i2c8bus_info12sda_functionE",false]],"hal::lpc40::i2c::i2c (c++ function)":[[14,"_CPPv4N3hal5lpc403i2c3i2cE2u8RKN3i2c8settingsERN3hal9io_waiterE",false],[14,"_CPPv4N3hal5lpc403i2c3i2cERK8bus_infoRKN3i2c8settingsERN3hal9io_waiterE",false]],"hal::lpc40::initialize_interrupts (c++ function)":[[17,"_CPPv4N3hal5lpc4021initialize_interruptsEv",false]],"hal::lpc40::input_pin (c++ class)":[[16,"_CPPv4N3hal5lpc409input_pinE",false]],"hal::lpc40::input_pin::input_pin (c++ function)":[[16,"_CPPv4N3hal5lpc409input_pin9input_pinE2u82u8RKN9input_pin8settingsE",false]],"hal::lpc40::interrupt_pin (c++ class)":[[18,"_CPPv4N3hal5lpc4013interrupt_pinE",false]],"hal::lpc40::interrupt_pin::interrupt_pin (c++ function)":[[18,"_CPPv4N3hal5lpc4013interrupt_pin13interrupt_pinE2u82u8RK8settings",false]],"hal::lpc40::irq (c++ enum)":[[10,"_CPPv4N3hal5lpc403irqE",false]],"hal::lpc40::irq::adc (c++ enumerator)":[[10,"_CPPv4N3hal5lpc403irq3adcE",false]],"hal::lpc40::irq::bod (c++ enumerator)":[[10,"_CPPv4N3hal5lpc403irq3bodE",false]],"hal::lpc40::irq::can (c++ enumerator)":[[10,"_CPPv4N3hal5lpc403irq3canE",false]],"hal::lpc40::irq::canactivity (c++ enumerator)":[[10,"_CPPv4N3hal5lpc403irq11canactivityE",false]],"hal::lpc40::irq::cmp0 (c++ enumerator)":[[10,"_CPPv4N3hal5lpc403irq4cmp0E",false]],"hal::lpc40::irq::cmp1 (c++ enumerator)":[[10,"_CPPv4N3hal5lpc403irq4cmp1E",false]],"hal::lpc40::irq::dma (c++ enumerator)":[[10,"_CPPv4N3hal5lpc403irq3dmaE",false]],"hal::lpc40::irq::eeprom (c++ enumerator)":[[10,"_CPPv4N3hal5lpc403irq6eepromE",false]],"hal::lpc40::irq::eint0 (c++ enumerator)":[[10,"_CPPv4N3hal5lpc403irq5eint0E",false]],"hal::lpc40::irq::eint1 (c++ enumerator)":[[10,"_CPPv4N3hal5lpc403irq5eint1E",false]],"hal::lpc40::irq::eint2 (c++ enumerator)":[[10,"_CPPv4N3hal5lpc403irq5eint2E",false]],"hal::lpc40::irq::eint3 (c++ enumerator)":[[10,"_CPPv4N3hal5lpc403irq5eint3E",false]],"hal::lpc40::irq::enet (c++ enumerator)":[[10,"_CPPv4N3hal5lpc403irq4enetE",false]],"hal::lpc40::irq::gpio (c++ enumerator)":[[10,"_CPPv4N3hal5lpc403irq4gpioE",false]],"hal::lpc40::irq::i2c0 (c++ enumerator)":[[10,"_CPPv4N3hal5lpc403irq4i2c0E",false]],"hal::lpc40::irq::i2c1 (c++ enumerator)":[[10,"_CPPv4N3hal5lpc403irq4i2c1E",false]],"hal::lpc40::irq::i2c2 (c++ enumerator)":[[10,"_CPPv4N3hal5lpc403irq4i2c2E",false]],"hal::lpc40::irq::i2s (c++ enumerator)":[[10,"_CPPv4N3hal5lpc403irq3i2sE",false]],"hal::lpc40::irq::lcd (c++ enumerator)":[[10,"_CPPv4N3hal5lpc403irq3lcdE",false]],"hal::lpc40::irq::max (c++ enumerator)":[[10,"_CPPv4N3hal5lpc403irq3maxE",false]],"hal::lpc40::irq::mci (c++ enumerator)":[[10,"_CPPv4N3hal5lpc403irq3mciE",false]],"hal::lpc40::irq::mcpwm (c++ enumerator)":[[10,"_CPPv4N3hal5lpc403irq5mcpwmE",false]],"hal::lpc40::irq::pll0 (c++ enumerator)":[[10,"_CPPv4N3hal5lpc403irq4pll0E",false]],"hal::lpc40::irq::pll1 (c++ enumerator)":[[10,"_CPPv4N3hal5lpc403irq4pll1E",false]],"hal::lpc40::irq::pwm0 (c++ enumerator)":[[10,"_CPPv4N3hal5lpc403irq4pwm0E",false]],"hal::lpc40::irq::pwm1 (c++ enumerator)":[[10,"_CPPv4N3hal5lpc403irq4pwm1E",false]],"hal::lpc40::irq::qei (c++ enumerator)":[[10,"_CPPv4N3hal5lpc403irq3qeiE",false]],"hal::lpc40::irq::reserved0 (c++ enumerator)":[[10,"_CPPv4N3hal5lpc403irq9reserved0E",false]],"hal::lpc40::irq::rtc (c++ enumerator)":[[10,"_CPPv4N3hal5lpc403irq3rtcE",false]],"hal::lpc40::irq::ssp0 (c++ enumerator)":[[10,"_CPPv4N3hal5lpc403irq4ssp0E",false]],"hal::lpc40::irq::ssp1 (c++ enumerator)":[[10,"_CPPv4N3hal5lpc403irq4ssp1E",false]],"hal::lpc40::irq::ssp2 (c++ enumerator)":[[10,"_CPPv4N3hal5lpc403irq4ssp2E",false]],"hal::lpc40::irq::timer0 (c++ enumerator)":[[10,"_CPPv4N3hal5lpc403irq6timer0E",false]],"hal::lpc40::irq::timer1 (c++ enumerator)":[[10,"_CPPv4N3hal5lpc403irq6timer1E",false]],"hal::lpc40::irq::timer2 (c++ enumerator)":[[10,"_CPPv4N3hal5lpc403irq6timer2E",false]],"hal::lpc40::irq::timer3 (c++ enumerator)":[[10,"_CPPv4N3hal5lpc403irq6timer3E",false]],"hal::lpc40::irq::uart0 (c++ enumerator)":[[10,"_CPPv4N3hal5lpc403irq5uart0E",false]],"hal::lpc40::irq::uart1 (c++ enumerator)":[[10,"_CPPv4N3hal5lpc403irq5uart1E",false]],"hal::lpc40::irq::uart2 (c++ enumerator)":[[10,"_CPPv4N3hal5lpc403irq5uart2E",false]],"hal::lpc40::irq::uart3 (c++ enumerator)":[[10,"_CPPv4N3hal5lpc403irq5uart3E",false]],"hal::lpc40::irq::uart4 (c++ enumerator)":[[10,"_CPPv4N3hal5lpc403irq5uart4E",false]],"hal::lpc40::irq::usb (c++ enumerator)":[[10,"_CPPv4N3hal5lpc403irq3usbE",false]],"hal::lpc40::irq::usbactivity (c++ enumerator)":[[10,"_CPPv4N3hal5lpc403irq11usbactivityE",false]],"hal::lpc40::irq::wdt (c++ enumerator)":[[10,"_CPPv4N3hal5lpc403irq3wdtE",false]],"hal::lpc40::is_on (c++ function)":[[21,"_CPPv4N3hal5lpc405is_onE10peripheral",false]],"hal::lpc40::maximum (c++ function)":[[9,"_CPPv4N3hal5lpc407maximumE5hertz",false]],"hal::lpc40::output_pin (c++ class)":[[19,"_CPPv4N3hal5lpc4010output_pinE",false]],"hal::lpc40::output_pin::output_pin (c++ function)":[[19,"_CPPv4N3hal5lpc4010output_pin10output_pinE2u82u8RKN10output_pin8settingsE",false]],"hal::lpc40::peripheral (c++ enum)":[[10,"_CPPv4N3hal5lpc4010peripheralE",false]],"hal::lpc40::peripheral::adc (c++ enumerator)":[[10,"_CPPv4N3hal5lpc4010peripheral3adcE",false]],"hal::lpc40::peripheral::can1 (c++ enumerator)":[[10,"_CPPv4N3hal5lpc4010peripheral4can1E",false]],"hal::lpc40::peripheral::can2 (c++ enumerator)":[[10,"_CPPv4N3hal5lpc4010peripheral4can2E",false]],"hal::lpc40::peripheral::cpu (c++ enumerator)":[[10,"_CPPv4N3hal5lpc4010peripheral3cpuE",false]],"hal::lpc40::peripheral::dac (c++ enumerator)":[[10,"_CPPv4N3hal5lpc4010peripheral3dacE",false]],"hal::lpc40::peripheral::emc (c++ enumerator)":[[10,"_CPPv4N3hal5lpc4010peripheral3emcE",false]],"hal::lpc40::peripheral::ethernet (c++ enumerator)":[[10,"_CPPv4N3hal5lpc4010peripheral8ethernetE",false]],"hal::lpc40::peripheral::gpdma (c++ enumerator)":[[10,"_CPPv4N3hal5lpc4010peripheral5gpdmaE",false]],"hal::lpc40::peripheral::gpio (c++ enumerator)":[[10,"_CPPv4N3hal5lpc4010peripheral4gpioE",false]],"hal::lpc40::peripheral::i2c0 (c++ enumerator)":[[10,"_CPPv4N3hal5lpc4010peripheral4i2c0E",false]],"hal::lpc40::peripheral::i2c1 (c++ enumerator)":[[10,"_CPPv4N3hal5lpc4010peripheral4i2c1E",false]],"hal::lpc40::peripheral::i2c2 (c++ enumerator)":[[10,"_CPPv4N3hal5lpc4010peripheral4i2c2E",false]],"hal::lpc40::peripheral::i2s (c++ enumerator)":[[10,"_CPPv4N3hal5lpc4010peripheral3i2sE",false]],"hal::lpc40::peripheral::lcd (c++ enumerator)":[[10,"_CPPv4N3hal5lpc4010peripheral3lcdE",false]],"hal::lpc40::peripheral::motor_control_pwm (c++ enumerator)":[[10,"_CPPv4N3hal5lpc4010peripheral17motor_control_pwmE",false]],"hal::lpc40::peripheral::pwm0 (c++ enumerator)":[[10,"_CPPv4N3hal5lpc4010peripheral4pwm0E",false]],"hal::lpc40::peripheral::pwm1 (c++ enumerator)":[[10,"_CPPv4N3hal5lpc4010peripheral4pwm1E",false]],"hal::lpc40::peripheral::quadrature_encoder (c++ enumerator)":[[10,"_CPPv4N3hal5lpc4010peripheral18quadrature_encoderE",false]],"hal::lpc40::peripheral::rtc (c++ enumerator)":[[10,"_CPPv4N3hal5lpc4010peripheral3rtcE",false]],"hal::lpc40::peripheral::sdcard (c++ enumerator)":[[10,"_CPPv4N3hal5lpc4010peripheral6sdcardE",false]],"hal::lpc40::peripheral::spifi (c++ enumerator)":[[10,"_CPPv4N3hal5lpc4010peripheral5spifiE",false]],"hal::lpc40::peripheral::ssp0 (c++ enumerator)":[[10,"_CPPv4N3hal5lpc4010peripheral4ssp0E",false]],"hal::lpc40::peripheral::ssp1 (c++ enumerator)":[[10,"_CPPv4N3hal5lpc4010peripheral4ssp1E",false]],"hal::lpc40::peripheral::ssp2 (c++ enumerator)":[[10,"_CPPv4N3hal5lpc4010peripheral4ssp2E",false]],"hal::lpc40::peripheral::timer0 (c++ enumerator)":[[10,"_CPPv4N3hal5lpc4010peripheral6timer0E",false]],"hal::lpc40::peripheral::timer1 (c++ enumerator)":[[10,"_CPPv4N3hal5lpc4010peripheral6timer1E",false]],"hal::lpc40::peripheral::timer2 (c++ enumerator)":[[10,"_CPPv4N3hal5lpc4010peripheral6timer2E",false]],"hal::lpc40::peripheral::timer3 (c++ enumerator)":[[10,"_CPPv4N3hal5lpc4010peripheral6timer3E",false]],"hal::lpc40::peripheral::uart0 (c++ enumerator)":[[10,"_CPPv4N3hal5lpc4010peripheral5uart0E",false]],"hal::lpc40::peripheral::uart1 (c++ enumerator)":[[10,"_CPPv4N3hal5lpc4010peripheral5uart1E",false]],"hal::lpc40::peripheral::uart2 (c++ enumerator)":[[10,"_CPPv4N3hal5lpc4010peripheral5uart2E",false]],"hal::lpc40::peripheral::uart3 (c++ enumerator)":[[10,"_CPPv4N3hal5lpc4010peripheral5uart3E",false]],"hal::lpc40::peripheral::uart4 (c++ enumerator)":[[10,"_CPPv4N3hal5lpc4010peripheral5uart4E",false]],"hal::lpc40::peripheral::usb (c++ enumerator)":[[10,"_CPPv4N3hal5lpc4010peripheral3usbE",false]],"hal::lpc40::pin (c++ class)":[[20,"_CPPv4N3hal5lpc403pinE",false]],"hal::lpc40::pin::analog (c++ function)":[[20,"_CPPv4NK3hal5lpc403pin6analogEb",false]],"hal::lpc40::pin::dac (c++ function)":[[20,"_CPPv4NK3hal5lpc403pin3dacEb",false]],"hal::lpc40::pin::digital_filter (c++ function)":[[20,"_CPPv4NK3hal5lpc403pin14digital_filterEb",false]],"hal::lpc40::pin::function (c++ function)":[[20,"_CPPv4NK3hal5lpc403pin8functionE7uint8_t",false]],"hal::lpc40::pin::high_slew_rate (c++ function)":[[20,"_CPPv4NK3hal5lpc403pin14high_slew_rateEb",false]],"hal::lpc40::pin::highspeed_i2c (c++ function)":[[20,"_CPPv4NK3hal5lpc403pin13highspeed_i2cEb",false]],"hal::lpc40::pin::hysteresis (c++ function)":[[20,"_CPPv4NK3hal5lpc403pin10hysteresisEb",false]],"hal::lpc40::pin::i2c_high_current (c++ function)":[[20,"_CPPv4NK3hal5lpc403pin16i2c_high_currentEb",false]],"hal::lpc40::pin::input_invert (c++ function)":[[20,"_CPPv4NK3hal5lpc403pin12input_invertEb",false]],"hal::lpc40::pin::open_drain (c++ function)":[[20,"_CPPv4NK3hal5lpc403pin10open_drainEb",false]],"hal::lpc40::pin::pin (c++ function)":[[20,"_CPPv4N3hal5lpc403pin3pinE2u82u8",false],[20,"_CPPv4N3hal5lpc403pin3pinEv",false]],"hal::lpc40::pin::resistor (c++ function)":[[20,"_CPPv4NK3hal5lpc403pin8resistorEN3hal12pin_resistorE",false]],"hal::lpc40::power_off (c++ function)":[[21,"_CPPv4N3hal5lpc409power_offE10peripheral",false]],"hal::lpc40::power_on (c++ function)":[[21,"_CPPv4N3hal5lpc408power_onE10peripheral",false]],"hal::lpc40::pwm (c++ class)":[[22,"_CPPv4N3hal5lpc403pwmE",false]],"hal::lpc40::pwm::channel (c++ struct)":[[22,"_CPPv4N3hal5lpc403pwm7channelE",false]],"hal::lpc40::pwm::channel::index (c++ member)":[[22,"_CPPv4N3hal5lpc403pwm7channel5indexE",false]],"hal::lpc40::pwm::channel::peripheral_id (c++ member)":[[22,"_CPPv4N3hal5lpc403pwm7channel13peripheral_idE",false]],"hal::lpc40::pwm::channel::pin_function (c++ member)":[[22,"_CPPv4N3hal5lpc403pwm7channel12pin_functionE",false]],"hal::lpc40::pwm::channel::pwm_pin (c++ member)":[[22,"_CPPv4N3hal5lpc403pwm7channel7pwm_pinE",false]],"hal::lpc40::pwm::pwm (c++ function)":[[22,"_CPPv4N3hal5lpc403pwm3pwmE2u82u8",false]],"hal::lpc40::set_dma_lock (c++ function)":[[12,"_CPPv4N3hal5lpc4012set_dma_lockERN3hal10basic_lockE",false]],"hal::lpc40::setup_dma_transfer (c++ function)":[[12,"_CPPv4N3hal5lpc4018setup_dma_transferERK3dmaN3hal8callbackIFvvEEE",false]],"hal::lpc40::spi (c++ class)":[[23,"_CPPv4N3hal5lpc403spiE",false]],"hal::lpc40::spi::bus_info (c++ struct)":[[23,"_CPPv4N3hal5lpc403spi8bus_infoE",false]],"hal::lpc40::spi::bus_info::clock (c++ member)":[[23,"_CPPv4N3hal5lpc403spi8bus_info5clockE",false]],"hal::lpc40::spi::bus_info::clock_function (c++ member)":[[23,"_CPPv4N3hal5lpc403spi8bus_info14clock_functionE",false]],"hal::lpc40::spi::bus_info::data_in (c++ member)":[[23,"_CPPv4N3hal5lpc403spi8bus_info7data_inE",false]],"hal::lpc40::spi::bus_info::data_in_function (c++ member)":[[23,"_CPPv4N3hal5lpc403spi8bus_info16data_in_functionE",false]],"hal::lpc40::spi::bus_info::data_out (c++ member)":[[23,"_CPPv4N3hal5lpc403spi8bus_info8data_outE",false]],"hal::lpc40::spi::bus_info::data_out_function (c++ member)":[[23,"_CPPv4N3hal5lpc403spi8bus_info17data_out_functionE",false]],"hal::lpc40::spi::bus_info::peripheral_id (c++ member)":[[23,"_CPPv4N3hal5lpc403spi8bus_info13peripheral_idE",false]],"hal::lpc40::spi::spi (c++ function)":[[23,"_CPPv4N3hal5lpc403spi3spiE2u8RKN3spi8settingsE",false],[23,"_CPPv4N3hal5lpc403spi3spiE8bus_info",false]],"hal::lpc40::spifi_clock_source (c++ enum)":[[9,"_CPPv4N3hal5lpc4018spifi_clock_sourceE",false]],"hal::lpc40::spifi_clock_source::pll0 (c++ enumerator)":[[9,"_CPPv4N3hal5lpc4018spifi_clock_source4pll0E",false]],"hal::lpc40::spifi_clock_source::pll1 (c++ enumerator)":[[9,"_CPPv4N3hal5lpc4018spifi_clock_source4pll1E",false]],"hal::lpc40::spifi_clock_source::system_clock (c++ enumerator)":[[9,"_CPPv4N3hal5lpc4018spifi_clock_source12system_clockE",false]],"hal::lpc40::stream_dac_u16 (c++ class)":[[24,"_CPPv4N3hal5lpc4014stream_dac_u16E",false]],"hal::lpc40::stream_dac_u8 (c++ class)":[[24,"_CPPv4N3hal5lpc4013stream_dac_u8E",false]],"hal::lpc40::uart (c++ class)":[[25,"_CPPv4N3hal5lpc404uartE",false]],"hal::lpc40::uart::port (c++ struct)":[[25,"_CPPv4N3hal5lpc404uart4portE",false]],"hal::lpc40::uart::port::id (c++ member)":[[25,"_CPPv4N3hal5lpc404uart4port2idE",false]],"hal::lpc40::uart::port::irq_number (c++ member)":[[25,"_CPPv4N3hal5lpc404uart4port10irq_numberE",false]],"hal::lpc40::uart::port::rx (c++ member)":[[25,"_CPPv4N3hal5lpc404uart4port2rxE",false]],"hal::lpc40::uart::port::rx_function (c++ member)":[[25,"_CPPv4N3hal5lpc404uart4port11rx_functionE",false]],"hal::lpc40::uart::port::tx (c++ member)":[[25,"_CPPv4N3hal5lpc404uart4port2txE",false]],"hal::lpc40::uart::port::tx_function (c++ member)":[[25,"_CPPv4N3hal5lpc404uart4port11tx_functionE",false]],"hal::lpc40::uart::uart (c++ function)":[[25,"_CPPv4N3hal5lpc404uart4uartENSt7uint8_tENSt4spanIN3hal4byteEEERKN6serial8settingsE",false],[25,"_CPPv4N3hal5lpc404uart4uartERKN4uart4portENSt4spanIN3hal4byteEEERKN6serial8settingsE",false]],"hal::lpc40::usb_clock_source (c++ enum)":[[9,"_CPPv4N3hal5lpc4016usb_clock_sourceE",false]],"hal::lpc40::usb_clock_source::pll0 (c++ enumerator)":[[9,"_CPPv4N3hal5lpc4016usb_clock_source4pll0E",false]],"hal::lpc40::usb_clock_source::pll1 (c++ enumerator)":[[9,"_CPPv4N3hal5lpc4016usb_clock_source4pll1E",false]],"hal::lpc40::usb_clock_source::system_clock (c++ enumerator)":[[9,"_CPPv4N3hal5lpc4016usb_clock_source12system_clockE",false]],"hal::lpc40::usb_divider (c++ enum)":[[9,"_CPPv4N3hal5lpc4011usb_dividerE",false]],"hal::lpc40::usb_divider::divide_by1 (c++ enumerator)":[[9,"_CPPv4N3hal5lpc4011usb_divider10divide_by1E",false]],"hal::lpc40::usb_divider::divide_by2 (c++ enumerator)":[[9,"_CPPv4N3hal5lpc4011usb_divider10divide_by2E",false]],"hal::lpc40::usb_divider::divide_by3 (c++ enumerator)":[[9,"_CPPv4N3hal5lpc4011usb_divider10divide_by3E",false]],"hal::lpc40::usb_divider::divide_by4 (c++ enumerator)":[[9,"_CPPv4N3hal5lpc4011usb_divider10divide_by4E",false]],"hal::lpc40::using_external_oscillator (c++ function)":[[9,"_CPPv4N3hal5lpc4025using_external_oscillatorEv",false]],"hal::stm32_generic::i2c (c++ class)":[[26,"_CPPv4N3hal13stm32_generic3i2cE",false]],"hal::stm32_generic::i2c::configure (c++ function)":[[26,"_CPPv4N3hal13stm32_generic3i2c9configureERKN3hal3i2c8settingsE5hertz",false]],"hal::stm32_generic::i2c::handle_i2c_error (c++ function)":[[26,"_CPPv4N3hal13stm32_generic3i2c16handle_i2c_errorEv",false]],"hal::stm32_generic::i2c::handle_i2c_event (c++ function)":[[26,"_CPPv4N3hal13stm32_generic3i2c16handle_i2c_eventEv",false]],"hal::stm32_generic::i2c::i2c (c++ function)":[[26,"_CPPv4N3hal13stm32_generic3i2c3i2cEPv",false]],"hal::stm32_generic::i2c::transaction (c++ function)":[[26,"_CPPv4N3hal13stm32_generic3i2c11transactionEN3hal4byteENSt4spanIKN3hal4byteEEENSt4spanIN3hal4byteEEEN3hal12function_refIN3hal16timeout_functionEEE",false]],"hal::stm32_generic::i2c::~i2c (c++ function)":[[26,"_CPPv4N3hal13stm32_generic3i2cD0Ev",false]],"hal::stm32_generic::pwm (c++ class)":[[28,"_CPPv4N3hal13stm32_generic3pwmE",false]],"hal::stm32_generic::pwm::duty_cycle (c++ function)":[[28,"_CPPv4N3hal13stm32_generic3pwm10duty_cycleE3u16",false],[28,"_CPPv4N3hal13stm32_generic3pwm10duty_cycleEf",false]],"hal::stm32_generic::pwm::frequency (c++ function)":[[28,"_CPPv4N3hal13stm32_generic3pwm9frequencyE3u32",false]],"hal::stm32_generic::pwm::initialize (c++ function)":[[28,"_CPPv4N3hal13stm32_generic3pwm10initializeEN3hal6unsafeEPv16pwm_channel_info",false]],"hal::stm32_generic::pwm::pwm (c++ function)":[[28,"_CPPv4N3hal13stm32_generic3pwm3pwmEN3hal6unsafeE",false],[28,"_CPPv4N3hal13stm32_generic3pwm3pwmEN3hal6unsafeEPv16pwm_channel_info",false]],"hal::stm32_generic::pwm_group_frequency (c++ class)":[[28,"_CPPv4N3hal13stm32_generic19pwm_group_frequencyE",false]],"hal::stm32_generic::pwm_group_frequency::pwm_group_frequency (c++ function)":[[28,"_CPPv4N3hal13stm32_generic19pwm_group_frequency19pwm_group_frequencyEN3hal6unsafeEPv",false]],"hal::stm32_generic::pwm_group_frequency::set_group_frequency (c++ function)":[[28,"_CPPv4N3hal13stm32_generic19pwm_group_frequency19set_group_frequencyE19pwm_timer_frequency",false]],"hal::stm32_generic::quadrature_encoder (c++ class)":[[29,"_CPPv4N3hal13stm32_generic18quadrature_encoderE",false]],"hal::stm32_generic::spi (c++ class)":[[30,"_CPPv4N3hal13stm32_generic3spiE",false]],"hal::stm32_generic::spi::configure (c++ function)":[[30,"_CPPv4N3hal13stm32_generic3spi9configureERKN3hal3spi8settingsEN3hal5hertzE",false]],"hal::stm32_generic::spi::spi (c++ function)":[[30,"_CPPv4N3hal13stm32_generic3spi3spiEN3hal6unsafeEPv",false]],"hal::stm32_generic::spi::transfer (c++ function)":[[30,"_CPPv4N3hal13stm32_generic3spi8transferENSt4spanIKN3hal4byteEEENSt4spanIN3hal4byteEEEN3hal4byteE",false]],"hal::stm32_generic::timer (c++ class)":[[31,"_CPPv4N3hal13stm32_generic5timerE",false]],"hal::stm32_generic::timer::cancel (c++ function)":[[31,"_CPPv4N3hal13stm32_generic5timer6cancelEv",false]],"hal::stm32_generic::timer::initialize (c++ function)":[[31,"_CPPv4N3hal13stm32_generic5timer10initializeEN3hal6unsafeEPvPFvvEN8cortex_m5irq_tEN8cortex_m17interrupt_pointerE",false]],"hal::stm32_generic::timer::is_running (c++ function)":[[31,"_CPPv4N3hal13stm32_generic5timer10is_runningEv",false]],"hal::stm32_generic::timer::schedule (c++ function)":[[31,"_CPPv4N3hal13stm32_generic5timer8scheduleEN3hal13time_durationE3u32",false]],"hal::stm32_generic::timer::timer (c++ function)":[[31,"_CPPv4N3hal13stm32_generic5timer5timerEN3hal6unsafeE",false]],"hal::stm32_generic::uart (c++ class)":[[32,"_CPPv4N3hal13stm32_generic4uartE",false]],"hal::stm32_generic::uart::configure (c++ function)":[[32,"_CPPv4N3hal13stm32_generic4uart9configureERKN6serial8settingsE5hertz",false]],"hal::stm32_generic::uart::uart_read (c++ function)":[[32,"_CPPv4N3hal13stm32_generic4uart9uart_readERNSt4spanI4byteEERK3u32",false]],"hal::stm32_generic::uart::uart_write (c++ function)":[[32,"_CPPv4N3hal13stm32_generic4uart10uart_writeENSt4spanIK4byteEE",false]],"hal::stm32_generic::zero_copy_usart (c++ class)":[[32,"_CPPv4N3hal13stm32_generic15zero_copy_usartE",false]],"hal::stm32_generic::zero_copy_usart::configure (c++ function)":[[32,"_CPPv4N3hal13stm32_generic15zero_copy_usart9configureERKN6serial8settingsE3u32",false]],"hal::stm32_generic::zero_copy_usart::uart_read (c++ function)":[[32,"_CPPv4N3hal13stm32_generic15zero_copy_usart9uart_readERNSt4spanI4byteEERK3u32",false]],"hal::stm32_generic::zero_copy_usart::uart_write (c++ function)":[[32,"_CPPv4N3hal13stm32_generic15zero_copy_usart10uart_writeENSt4spanIK4byteEE",false]],"hal::stm32f1::acquire_input_pin (c++ function)":[[39,"_CPPv4N3hal7stm32f117acquire_input_pinENSt3pmr21polymorphic_allocatorIEERKN3hal2v510strong_ptrI12gpio_managerEE2u8RKN9input_pin8settingsE",false]],"hal::stm32f1::acquire_output_pin (c++ function)":[[39,"_CPPv4N3hal7stm32f118acquire_output_pinENSt3pmr21polymorphic_allocatorIEERKN3hal2v510strong_ptrI12gpio_managerEE2u8RKN10output_pin8settingsE",false]],"hal::stm32f1::activate_mco_pa8 (c++ function)":[[45,"_CPPv4N3hal7stm32f116activate_mco_pa8E10mco_source",false]],"hal::stm32f1::adc_divider (c++ enum)":[[36,"_CPPv4N3hal7stm32f111adc_dividerE",false]],"hal::stm32f1::adc_divider::divide_by_2 (c++ enumerator)":[[36,"_CPPv4N3hal7stm32f111adc_divider11divide_by_2E",false]],"hal::stm32f1::adc_divider::divide_by_4 (c++ enumerator)":[[36,"_CPPv4N3hal7stm32f111adc_divider11divide_by_4E",false]],"hal::stm32f1::adc_divider::divide_by_6 (c++ enumerator)":[[36,"_CPPv4N3hal7stm32f111adc_divider11divide_by_6E",false]],"hal::stm32f1::adc_divider::divide_by_8 (c++ enumerator)":[[36,"_CPPv4N3hal7stm32f111adc_divider11divide_by_8E",false]],"hal::stm32f1::adc_manager (c++ class)":[[33,"_CPPv4N3hal7stm32f111adc_managerE",false]],"hal::stm32f1::adc_manager::acquire_channel (c++ function)":[[33,"_CPPv4N3hal7stm32f111adc_manager15acquire_channelE8adc_pins",false]],"hal::stm32f1::adc_manager::channel (c++ class)":[[33,"_CPPv4N3hal7stm32f111adc_manager7channelE",false]],"hal::stm32f1::adc_manager::channel::channel (c++ function)":[[33,"_CPPv4I_10peripheralEN3hal7stm32f111adc_manager7channel7channelERN7stm32f13adcI2idEE8adc_pins",false]],"hal::stm32f1::advanced_timer_manager (c++ class)":[[48,"_CPPv4N3hal7stm32f122advanced_timer_managerE",false]],"hal::stm32f1::advanced_timer_manager::acquire_pwm_group_frequency (c++ function)":[[48,"_CPPv4N3hal7stm32f122advanced_timer_manager27acquire_pwm_group_frequencyEv",false]],"hal::stm32f1::advanced_timer_manager::acquire_timer (c++ function)":[[48,"_CPPv4N3hal7stm32f122advanced_timer_manager13acquire_timerEv",false]],"hal::stm32f1::ahb_divider (c++ enum)":[[36,"_CPPv4N3hal7stm32f111ahb_dividerE",false]],"hal::stm32f1::ahb_divider::divide_by_1 (c++ enumerator)":[[36,"_CPPv4N3hal7stm32f111ahb_divider11divide_by_1E",false]],"hal::stm32f1::ahb_divider::divide_by_128 (c++ enumerator)":[[36,"_CPPv4N3hal7stm32f111ahb_divider13divide_by_128E",false]],"hal::stm32f1::ahb_divider::divide_by_16 (c++ enumerator)":[[36,"_CPPv4N3hal7stm32f111ahb_divider12divide_by_16E",false]],"hal::stm32f1::ahb_divider::divide_by_2 (c++ enumerator)":[[36,"_CPPv4N3hal7stm32f111ahb_divider11divide_by_2E",false]],"hal::stm32f1::ahb_divider::divide_by_256 (c++ enumerator)":[[36,"_CPPv4N3hal7stm32f111ahb_divider13divide_by_256E",false]],"hal::stm32f1::ahb_divider::divide_by_4 (c++ enumerator)":[[36,"_CPPv4N3hal7stm32f111ahb_divider11divide_by_4E",false]],"hal::stm32f1::ahb_divider::divide_by_512 (c++ enumerator)":[[36,"_CPPv4N3hal7stm32f111ahb_divider13divide_by_512E",false]],"hal::stm32f1::ahb_divider::divide_by_64 (c++ enumerator)":[[36,"_CPPv4N3hal7stm32f111ahb_divider12divide_by_64E",false]],"hal::stm32f1::ahb_divider::divide_by_8 (c++ enumerator)":[[36,"_CPPv4N3hal7stm32f111ahb_divider11divide_by_8E",false]],"hal::stm32f1::apb_divider (c++ enum)":[[36,"_CPPv4N3hal7stm32f111apb_dividerE",false]],"hal::stm32f1::apb_divider::divide_by_1 (c++ enumerator)":[[36,"_CPPv4N3hal7stm32f111apb_divider11divide_by_1E",false]],"hal::stm32f1::apb_divider::divide_by_16 (c++ enumerator)":[[36,"_CPPv4N3hal7stm32f111apb_divider12divide_by_16E",false]],"hal::stm32f1::apb_divider::divide_by_2 (c++ enumerator)":[[36,"_CPPv4N3hal7stm32f111apb_divider11divide_by_2E",false]],"hal::stm32f1::apb_divider::divide_by_4 (c++ enumerator)":[[36,"_CPPv4N3hal7stm32f111apb_divider11divide_by_4E",false]],"hal::stm32f1::apb_divider::divide_by_8 (c++ enumerator)":[[36,"_CPPv4N3hal7stm32f111apb_divider11divide_by_8E",false]],"hal::stm32f1::can_peripheral_manager (c++ class)":[[34,"_CPPv4N3hal7stm32f122can_peripheral_managerE",false]],"hal::stm32f1::can_peripheral_manager::acquire_bus_manager (c++ function)":[[34,"_CPPv4N3hal7stm32f122can_peripheral_manager19acquire_bus_managerEv",false]],"hal::stm32f1::can_peripheral_manager::acquire_extended_identifier_filter (c++ function)":[[34,"_CPPv4N3hal7stm32f122can_peripheral_manager34acquire_extended_identifier_filterE15fifo_assignment",false]],"hal::stm32f1::can_peripheral_manager::acquire_extended_mask_filter (c++ function)":[[34,"_CPPv4N3hal7stm32f122can_peripheral_manager28acquire_extended_mask_filterE15fifo_assignment",false]],"hal::stm32f1::can_peripheral_manager::acquire_identifier_filter (c++ function)":[[34,"_CPPv4N3hal7stm32f122can_peripheral_manager25acquire_identifier_filterE15fifo_assignment",false]],"hal::stm32f1::can_peripheral_manager::acquire_interrupt (c++ function)":[[34,"_CPPv4N3hal7stm32f122can_peripheral_manager17acquire_interruptEv",false]],"hal::stm32f1::can_peripheral_manager::acquire_mask_filter (c++ function)":[[34,"_CPPv4N3hal7stm32f122can_peripheral_manager19acquire_mask_filterE15fifo_assignment",false]],"hal::stm32f1::can_peripheral_manager::acquire_transceiver (c++ function)":[[34,"_CPPv4N3hal7stm32f122can_peripheral_manager19acquire_transceiverENSt4spanI11can_messageEE",false]],"hal::stm32f1::can_peripheral_manager::bus_manager (c++ class)":[[34,"_CPPv4N3hal7stm32f122can_peripheral_manager11bus_managerE",false]],"hal::stm32f1::can_peripheral_manager::can_peripheral_manager (c++ function)":[[34,"_CPPv4N3hal7stm32f122can_peripheral_manager22can_peripheral_managerEN3hal3u32E8can_pins11disable_idsb",false],[34,"_CPPv4N3hal7stm32f122can_peripheral_manager22can_peripheral_managerEN3hal3u32ERN3hal12steady_clockEN3hal13time_durationE8can_pins9self_test11disable_ids",false]],"hal::stm32f1::can_peripheral_manager::disable_ids (c++ struct)":[[34,"_CPPv4N3hal7stm32f122can_peripheral_manager11disable_idsE",false]],"hal::stm32f1::can_peripheral_manager::extended_identifier_filter (c++ class)":[[34,"_CPPv4N3hal7stm32f122can_peripheral_manager26extended_identifier_filterE",false]],"hal::stm32f1::can_peripheral_manager::extended_identifier_filter_set (c++ class)":[[34,"_CPPv4N3hal7stm32f122can_peripheral_manager30extended_identifier_filter_setE",false]],"hal::stm32f1::can_peripheral_manager::extended_identifier_filter_set::filter (c++ member)":[[34,"_CPPv4N3hal7stm32f122can_peripheral_manager30extended_identifier_filter_set6filterE",false]],"hal::stm32f1::can_peripheral_manager::extended_mask_filter (c++ class)":[[34,"_CPPv4N3hal7stm32f122can_peripheral_manager20extended_mask_filterE",false]],"hal::stm32f1::can_peripheral_manager::fifo_assignment (c++ enum)":[[34,"_CPPv4N3hal7stm32f122can_peripheral_manager15fifo_assignmentE",false]],"hal::stm32f1::can_peripheral_manager::fifo_assignment::fifo1 (c++ enumerator)":[[34,"_CPPv4N3hal7stm32f122can_peripheral_manager15fifo_assignment5fifo1E",false]],"hal::stm32f1::can_peripheral_manager::fifo_assignment::fifo2 (c++ enumerator)":[[34,"_CPPv4N3hal7stm32f122can_peripheral_manager15fifo_assignment5fifo2E",false]],"hal::stm32f1::can_peripheral_manager::filter_resource (c++ struct)":[[34,"_CPPv4N3hal7stm32f122can_peripheral_manager15filter_resourceE",false]],"hal::stm32f1::can_peripheral_manager::identifier_filter (c++ class)":[[34,"_CPPv4N3hal7stm32f122can_peripheral_manager17identifier_filterE",false]],"hal::stm32f1::can_peripheral_manager::identifier_filter_set (c++ class)":[[34,"_CPPv4N3hal7stm32f122can_peripheral_manager21identifier_filter_setE",false]],"hal::stm32f1::can_peripheral_manager::identifier_filter_set::filter (c++ member)":[[34,"_CPPv4N3hal7stm32f122can_peripheral_manager21identifier_filter_set6filterE",false]],"hal::stm32f1::can_peripheral_manager::interrupt (c++ class)":[[34,"_CPPv4N3hal7stm32f122can_peripheral_manager9interruptE",false]],"hal::stm32f1::can_peripheral_manager::mask_filter (c++ class)":[[34,"_CPPv4N3hal7stm32f122can_peripheral_manager11mask_filterE",false]],"hal::stm32f1::can_peripheral_manager::mask_filter_set (c++ class)":[[34,"_CPPv4N3hal7stm32f122can_peripheral_manager15mask_filter_setE",false]],"hal::stm32f1::can_peripheral_manager::mask_filter_set::filter (c++ member)":[[34,"_CPPv4N3hal7stm32f122can_peripheral_manager15mask_filter_set6filterE",false]],"hal::stm32f1::can_peripheral_manager::self_test (c++ enum)":[[34,"_CPPv4N3hal7stm32f122can_peripheral_manager9self_testE",false]],"hal::stm32f1::can_peripheral_manager::self_test::off (c++ enumerator)":[[34,"_CPPv4N3hal7stm32f122can_peripheral_manager9self_test3offE",false]],"hal::stm32f1::can_peripheral_manager::self_test::on (c++ enumerator)":[[34,"_CPPv4N3hal7stm32f122can_peripheral_manager9self_test2onE",false]],"hal::stm32f1::can_peripheral_manager::transceiver (c++ class)":[[34,"_CPPv4N3hal7stm32f122can_peripheral_manager11transceiverE",false]],"hal::stm32f1::can_peripheral_manager_v2 (c++ class)":[[35,"_CPPv4N3hal7stm32f125can_peripheral_manager_v2E",false]],"hal::stm32f1::can_peripheral_manager_v2::available_filter (c++ function)":[[35,"_CPPv4N3hal7stm32f125can_peripheral_manager_v216available_filterEv",false]],"hal::stm32f1::can_peripheral_manager_v2::baud_rate (c++ function)":[[35,"_CPPv4N3hal7stm32f125can_peripheral_manager_v29baud_rateEN3hal3u32E",false],[35,"_CPPv4NK3hal7stm32f125can_peripheral_manager_v29baud_rateEv",false]],"hal::stm32f1::can_peripheral_manager_v2::bus_on (c++ function)":[[35,"_CPPv4N3hal7stm32f125can_peripheral_manager_v26bus_onEv",false]],"hal::stm32f1::can_peripheral_manager_v2::can_peripheral_manager_v2 (c++ function)":[[35,"_CPPv4N3hal7stm32f125can_peripheral_manager_v225can_peripheral_manager_v2EN3hal5usizeENSt3pmr21polymorphic_allocatorIEEN3hal3u32ERN3hal12steady_clockEN3hal13time_durationE8can_pins13can_self_test",false]],"hal::stm32f1::can_peripheral_manager_v2::enable_self_test (c++ function)":[[35,"_CPPv4N3hal7stm32f125can_peripheral_manager_v216enable_self_testEb",false]],"hal::stm32f1::can_peripheral_manager_v2::on_receive (c++ function)":[[35,"_CPPv4N3hal7stm32f125can_peripheral_manager_v210on_receiveERKN3hal13can_interrupt24optional_receive_handlerE",false]],"hal::stm32f1::can_peripheral_manager_v2::receive_buffer (c++ function)":[[35,"_CPPv4N3hal7stm32f125can_peripheral_manager_v214receive_bufferEv",false]],"hal::stm32f1::can_peripheral_manager_v2::receive_count (c++ function)":[[35,"_CPPv4NK3hal7stm32f125can_peripheral_manager_v213receive_countEv",false]],"hal::stm32f1::can_peripheral_manager_v2::receive_cursor (c++ function)":[[35,"_CPPv4N3hal7stm32f125can_peripheral_manager_v214receive_cursorEv",false]],"hal::stm32f1::can_peripheral_manager_v2::release_filter (c++ function)":[[35,"_CPPv4N3hal7stm32f125can_peripheral_manager_v214release_filterEN3hal2u8E",false]],"hal::stm32f1::can_peripheral_manager_v2::send (c++ function)":[[35,"_CPPv4N3hal7stm32f125can_peripheral_manager_v24sendERK11can_message",false]],"hal::stm32f1::can_pins (c++ enum)":[[45,"_CPPv4N3hal7stm32f18can_pinsE",false]],"hal::stm32f1::can_pins::pa11_pa12 (c++ enumerator)":[[45,"_CPPv4N3hal7stm32f18can_pins9pa11_pa12E",false]],"hal::stm32f1::can_pins::pb9_pb8 (c++ enumerator)":[[45,"_CPPv4N3hal7stm32f18can_pins7pb9_pb8E",false]],"hal::stm32f1::can_pins::pd0_pd1 (c++ enumerator)":[[45,"_CPPv4N3hal7stm32f18can_pins7pd0_pd1E",false]],"hal::stm32f1::clock_tree (c++ struct)":[[36,"_CPPv4N3hal7stm32f110clock_treeE",false]],"hal::stm32f1::clock_tree::ahb_t (c++ struct)":[[36,"_CPPv4N3hal7stm32f110clock_tree5ahb_tE",false]],"hal::stm32f1::clock_tree::ahb_t::apb1_t (c++ struct)":[[36,"_CPPv4N3hal7stm32f110clock_tree5ahb_t6apb1_tE",false]],"hal::stm32f1::clock_tree::ahb_t::apb2_t (c++ struct)":[[36,"_CPPv4N3hal7stm32f110clock_tree5ahb_t6apb2_tE",false]],"hal::stm32f1::clock_tree::ahb_t::apb2_t::adc_t (c++ struct)":[[36,"_CPPv4N3hal7stm32f110clock_tree5ahb_t6apb2_t5adc_tE",false]],"hal::stm32f1::clock_tree::high_speed_external (c++ member)":[[36,"_CPPv4N3hal7stm32f110clock_tree19high_speed_externalE",false]],"hal::stm32f1::clock_tree::low_speed_external (c++ member)":[[36,"_CPPv4N3hal7stm32f110clock_tree18low_speed_externalE",false]],"hal::stm32f1::clock_tree::pll_t (c++ struct)":[[36,"_CPPv4N3hal7stm32f110clock_tree5pll_tE",false]],"hal::stm32f1::clock_tree::pll_t::usb_divider_t (c++ struct)":[[36,"_CPPv4N3hal7stm32f110clock_tree5pll_t13usb_divider_tE",false]],"hal::stm32f1::clock_tree::rtc_t (c++ struct)":[[36,"_CPPv4N3hal7stm32f110clock_tree5rtc_tE",false]],"hal::stm32f1::clock_tree::system_clock (c++ member)":[[36,"_CPPv4N3hal7stm32f110clock_tree12system_clockE",false]],"hal::stm32f1::configure_clocks (c++ function)":[[36,"_CPPv4N3hal7stm32f116configure_clocksE10clock_tree",false]],"hal::stm32f1::frequency (c++ function)":[[36,"_CPPv4N3hal7stm32f19frequencyE10peripheral",false]],"hal::stm32f1::general_purpose_timer_manager (c++ class)":[[48,"_CPPv4N3hal7stm32f129general_purpose_timer_managerE",false]],"hal::stm32f1::general_purpose_timer_manager::acquire_pwm_group_frequency (c++ function)":[[48,"_CPPv4N3hal7stm32f129general_purpose_timer_manager27acquire_pwm_group_frequencyEv",false]],"hal::stm32f1::general_purpose_timer_manager::acquire_timer (c++ function)":[[48,"_CPPv4N3hal7stm32f129general_purpose_timer_manager13acquire_timerEv",false]],"hal::stm32f1::gpio (c++ class)":[[39,"_CPPv4I_10peripheralEN3hal7stm32f14gpioE",false]],"hal::stm32f1::independent_watchdog (c++ class)":[[40,"_CPPv4N3hal7stm32f120independent_watchdogE",false]],"hal::stm32f1::independent_watchdog::check_flag (c++ function)":[[40,"_CPPv4N3hal7stm32f120independent_watchdog10check_flagEv",false]],"hal::stm32f1::independent_watchdog::clear_flag (c++ function)":[[40,"_CPPv4N3hal7stm32f120independent_watchdog10clear_flagEv",false]],"hal::stm32f1::independent_watchdog::reset (c++ function)":[[40,"_CPPv4N3hal7stm32f120independent_watchdog5resetEv",false]],"hal::stm32f1::independent_watchdog::set_countdown_time (c++ function)":[[40,"_CPPv4N3hal7stm32f120independent_watchdog18set_countdown_timeEN3hal13time_durationE",false]],"hal::stm32f1::independent_watchdog::start (c++ function)":[[40,"_CPPv4N3hal7stm32f120independent_watchdog5startEv",false]],"hal::stm32f1::initialize_interrupts (c++ function)":[[43,"_CPPv4N3hal7stm32f121initialize_interruptsEv",false]],"hal::stm32f1::input_pin (c++ class)":[[42,"_CPPv4N3hal7stm32f19input_pinE",false]],"hal::stm32f1::input_pin::input_pin (c++ function)":[[42,"_CPPv4N3hal7stm32f19input_pin9input_pinE2u82u8",false]],"hal::stm32f1::irq (c++ enum)":[[37,"_CPPv4N3hal7stm32f13irqE",false]],"hal::stm32f1::irq::adc1 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq4adc1E",false]],"hal::stm32f1::irq::adc1_2 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq6adc1_2E",false]],"hal::stm32f1::irq::adc3 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq4adc3E",false]],"hal::stm32f1::irq::can1_rx0 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq8can1_rx0E",false]],"hal::stm32f1::irq::can1_rx1 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq8can1_rx1E",false]],"hal::stm32f1::irq::can1_sce (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq8can1_sceE",false]],"hal::stm32f1::irq::can1_tx (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq7can1_txE",false]],"hal::stm32f1::irq::can2_rx0 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq8can2_rx0E",false]],"hal::stm32f1::irq::can2_rx1 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq8can2_rx1E",false]],"hal::stm32f1::irq::can2_sce (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq8can2_sceE",false]],"hal::stm32f1::irq::can2_tx (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq7can2_txE",false]],"hal::stm32f1::irq::cec (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq3cecE",false]],"hal::stm32f1::irq::dma1_channel1 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq13dma1_channel1E",false]],"hal::stm32f1::irq::dma1_channel2 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq13dma1_channel2E",false]],"hal::stm32f1::irq::dma1_channel3 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq13dma1_channel3E",false]],"hal::stm32f1::irq::dma1_channel4 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq13dma1_channel4E",false]],"hal::stm32f1::irq::dma1_channel5 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq13dma1_channel5E",false]],"hal::stm32f1::irq::dma1_channel6 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq13dma1_channel6E",false]],"hal::stm32f1::irq::dma1_channel7 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq13dma1_channel7E",false]],"hal::stm32f1::irq::dma2_channel1 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq13dma2_channel1E",false]],"hal::stm32f1::irq::dma2_channel2 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq13dma2_channel2E",false]],"hal::stm32f1::irq::dma2_channel3 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq13dma2_channel3E",false]],"hal::stm32f1::irq::dma2_channel4 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq13dma2_channel4E",false]],"hal::stm32f1::irq::dma2_channel4_5 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq15dma2_channel4_5E",false]],"hal::stm32f1::irq::dma2_channel5 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq13dma2_channel5E",false]],"hal::stm32f1::irq::eth (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq3ethE",false]],"hal::stm32f1::irq::eth_wkup (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq8eth_wkupE",false]],"hal::stm32f1::irq::exti0 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq5exti0E",false]],"hal::stm32f1::irq::exti1 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq5exti1E",false]],"hal::stm32f1::irq::exti15_10 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq9exti15_10E",false]],"hal::stm32f1::irq::exti2 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq5exti2E",false]],"hal::stm32f1::irq::exti3 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq5exti3E",false]],"hal::stm32f1::irq::exti4 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq5exti4E",false]],"hal::stm32f1::irq::exti9_5 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq7exti9_5E",false]],"hal::stm32f1::irq::flash (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq5flashE",false]],"hal::stm32f1::irq::fsmc (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq4fsmcE",false]],"hal::stm32f1::irq::i2c1_er (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq7i2c1_erE",false]],"hal::stm32f1::irq::i2c1_ev (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq7i2c1_evE",false]],"hal::stm32f1::irq::i2c2_er (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq7i2c2_erE",false]],"hal::stm32f1::irq::i2c2_ev (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq7i2c2_evE",false]],"hal::stm32f1::irq::max (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq3maxE",false]],"hal::stm32f1::irq::otg_fs (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq6otg_fsE",false]],"hal::stm32f1::irq::otg_fs_wkup (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq11otg_fs_wkupE",false]],"hal::stm32f1::irq::pvd (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq3pvdE",false]],"hal::stm32f1::irq::rcc (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq3rccE",false]],"hal::stm32f1::irq::rtc (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq3rtcE",false]],"hal::stm32f1::irq::rtcalarm (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq8rtcalarmE",false]],"hal::stm32f1::irq::sdio (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq4sdioE",false]],"hal::stm32f1::irq::spi1 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq4spi1E",false]],"hal::stm32f1::irq::spi2 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq4spi2E",false]],"hal::stm32f1::irq::spi3 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq4spi3E",false]],"hal::stm32f1::irq::tamper (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq6tamperE",false]],"hal::stm32f1::irq::tim12 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq5tim12E",false]],"hal::stm32f1::irq::tim13 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq5tim13E",false]],"hal::stm32f1::irq::tim14 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq5tim14E",false]],"hal::stm32f1::irq::tim1_brk (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq8tim1_brkE",false]],"hal::stm32f1::irq::tim1_brk_tim15 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq14tim1_brk_tim15E",false]],"hal::stm32f1::irq::tim1_brk_tim9 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq13tim1_brk_tim9E",false]],"hal::stm32f1::irq::tim1_cc (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq7tim1_ccE",false]],"hal::stm32f1::irq::tim1_trg_com (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq12tim1_trg_comE",false]],"hal::stm32f1::irq::tim1_trg_com_tim11 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq18tim1_trg_com_tim11E",false]],"hal::stm32f1::irq::tim1_up (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq7tim1_upE",false]],"hal::stm32f1::irq::tim1_up_tim10 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq13tim1_up_tim10E",false]],"hal::stm32f1::irq::tim1_up_tim16 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq13tim1_up_tim16E",false]],"hal::stm32f1::irq::tim2 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq4tim2E",false]],"hal::stm32f1::irq::tim3 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq4tim3E",false]],"hal::stm32f1::irq::tim4 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq4tim4E",false]],"hal::stm32f1::irq::tim5 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq4tim5E",false]],"hal::stm32f1::irq::tim6 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq4tim6E",false]],"hal::stm32f1::irq::tim6_dac (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq8tim6_dacE",false]],"hal::stm32f1::irq::tim7 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq4tim7E",false]],"hal::stm32f1::irq::tim8_brk (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq8tim8_brkE",false]],"hal::stm32f1::irq::tim8_brk_tim12 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq14tim8_brk_tim12E",false]],"hal::stm32f1::irq::tim8_cc (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq7tim8_ccE",false]],"hal::stm32f1::irq::tim8_trg_com (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq12tim8_trg_comE",false]],"hal::stm32f1::irq::tim8_trg_com_tim14 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq18tim8_trg_com_tim14E",false]],"hal::stm32f1::irq::tim8_up (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq7tim8_upE",false]],"hal::stm32f1::irq::tim8_up_tim13 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq13tim8_up_tim13E",false]],"hal::stm32f1::irq::uart4 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq5uart4E",false]],"hal::stm32f1::irq::uart5 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq5uart5E",false]],"hal::stm32f1::irq::usart1 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq6usart1E",false]],"hal::stm32f1::irq::usart2 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq6usart2E",false]],"hal::stm32f1::irq::usart3 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq6usart3E",false]],"hal::stm32f1::irq::usb_hp_can1_tx (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq14usb_hp_can1_txE",false]],"hal::stm32f1::irq::usb_lp_can1_rx0 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq15usb_lp_can1_rx0E",false]],"hal::stm32f1::irq::usbwakeup (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq9usbwakeupE",false]],"hal::stm32f1::irq::window_watchdog (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f13irq15window_watchdogE",false]],"hal::stm32f1::max_dma_length (c++ member)":[[38,"_CPPv4N3hal7stm32f114max_dma_lengthE",false]],"hal::stm32f1::maximum_speed_using_internal_oscillator (c++ function)":[[36,"_CPPv4N3hal7stm32f139maximum_speed_using_internal_oscillatorEv",false]],"hal::stm32f1::mco_source (c++ enum)":[[45,"_CPPv4N3hal7stm32f110mco_sourceE",false]],"hal::stm32f1::mco_source::high_speed_external (c++ enumerator)":[[45,"_CPPv4N3hal7stm32f110mco_source19high_speed_externalE",false]],"hal::stm32f1::mco_source::high_speed_internal (c++ enumerator)":[[45,"_CPPv4N3hal7stm32f110mco_source19high_speed_internalE",false]],"hal::stm32f1::mco_source::pll_clock_divided_by_2 (c++ enumerator)":[[45,"_CPPv4N3hal7stm32f110mco_source22pll_clock_divided_by_2E",false]],"hal::stm32f1::mco_source::system_clock (c++ enumerator)":[[45,"_CPPv4N3hal7stm32f110mco_source12system_clockE",false]],"hal::stm32f1::output_pin (c++ class)":[[44,"_CPPv4N3hal7stm32f110output_pinE",false]],"hal::stm32f1::output_pin::output_pin (c++ function)":[[44,"_CPPv4N3hal7stm32f110output_pin10output_pinE2u82u8N10output_pin8settingsE",false]],"hal::stm32f1::peripheral (c++ enum)":[[37,"_CPPv4N3hal7stm32f110peripheralE",false]],"hal::stm32f1::peripheral::adc1 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f110peripheral4adc1E",false]],"hal::stm32f1::peripheral::adc2 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f110peripheral4adc2E",false]],"hal::stm32f1::peripheral::adc3 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f110peripheral4adc3E",false]],"hal::stm32f1::peripheral::afio (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f110peripheral4afioE",false]],"hal::stm32f1::peripheral::backup_clock (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f110peripheral12backup_clockE",false]],"hal::stm32f1::peripheral::can1 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f110peripheral4can1E",false]],"hal::stm32f1::peripheral::cpu (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f110peripheral3cpuE",false]],"hal::stm32f1::peripheral::crc (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f110peripheral3crcE",false]],"hal::stm32f1::peripheral::dac (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f110peripheral3dacE",false]],"hal::stm32f1::peripheral::dma1 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f110peripheral4dma1E",false]],"hal::stm32f1::peripheral::dma2 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f110peripheral4dma2E",false]],"hal::stm32f1::peripheral::flitf (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f110peripheral5flitfE",false]],"hal::stm32f1::peripheral::fsmc (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f110peripheral4fsmcE",false]],"hal::stm32f1::peripheral::gpio_a (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f110peripheral6gpio_aE",false]],"hal::stm32f1::peripheral::gpio_b (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f110peripheral6gpio_bE",false]],"hal::stm32f1::peripheral::gpio_c (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f110peripheral6gpio_cE",false]],"hal::stm32f1::peripheral::gpio_d (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f110peripheral6gpio_dE",false]],"hal::stm32f1::peripheral::gpio_e (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f110peripheral6gpio_eE",false]],"hal::stm32f1::peripheral::gpio_f (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f110peripheral6gpio_fE",false]],"hal::stm32f1::peripheral::gpio_g (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f110peripheral6gpio_gE",false]],"hal::stm32f1::peripheral::i2c1 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f110peripheral4i2c1E",false]],"hal::stm32f1::peripheral::i2c2 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f110peripheral4i2c2E",false]],"hal::stm32f1::peripheral::i2s (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f110peripheral3i2sE",false]],"hal::stm32f1::peripheral::power (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f110peripheral5powerE",false]],"hal::stm32f1::peripheral::sdio (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f110peripheral4sdioE",false]],"hal::stm32f1::peripheral::spi1 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f110peripheral4spi1E",false]],"hal::stm32f1::peripheral::spi2 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f110peripheral4spi2E",false]],"hal::stm32f1::peripheral::spi3 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f110peripheral4spi3E",false]],"hal::stm32f1::peripheral::sram (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f110peripheral4sramE",false]],"hal::stm32f1::peripheral::system_timer (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f110peripheral12system_timerE",false]],"hal::stm32f1::peripheral::timer1 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f110peripheral6timer1E",false]],"hal::stm32f1::peripheral::timer10 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f110peripheral7timer10E",false]],"hal::stm32f1::peripheral::timer11 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f110peripheral7timer11E",false]],"hal::stm32f1::peripheral::timer12 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f110peripheral7timer12E",false]],"hal::stm32f1::peripheral::timer13 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f110peripheral7timer13E",false]],"hal::stm32f1::peripheral::timer14 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f110peripheral7timer14E",false]],"hal::stm32f1::peripheral::timer2 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f110peripheral6timer2E",false]],"hal::stm32f1::peripheral::timer3 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f110peripheral6timer3E",false]],"hal::stm32f1::peripheral::timer4 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f110peripheral6timer4E",false]],"hal::stm32f1::peripheral::timer5 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f110peripheral6timer5E",false]],"hal::stm32f1::peripheral::timer6 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f110peripheral6timer6E",false]],"hal::stm32f1::peripheral::timer7 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f110peripheral6timer7E",false]],"hal::stm32f1::peripheral::timer8 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f110peripheral6timer8E",false]],"hal::stm32f1::peripheral::timer9 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f110peripheral6timer9E",false]],"hal::stm32f1::peripheral::uart4 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f110peripheral5uart4E",false]],"hal::stm32f1::peripheral::uart5 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f110peripheral5uart5E",false]],"hal::stm32f1::peripheral::usart1 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f110peripheral6usart1E",false]],"hal::stm32f1::peripheral::usart2 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f110peripheral6usart2E",false]],"hal::stm32f1::peripheral::usart3 (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f110peripheral6usart3E",false]],"hal::stm32f1::peripheral::usb (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f110peripheral3usbE",false]],"hal::stm32f1::peripheral::window_watchdog (c++ enumerator)":[[37,"_CPPv4N3hal7stm32f110peripheral15window_watchdogE",false]],"hal::stm32f1::pin_select (c++ struct)":[[45,"_CPPv4N3hal7stm32f110pin_selectE",false]],"hal::stm32f1::pin_select::pin (c++ member)":[[45,"_CPPv4N3hal7stm32f110pin_select3pinE",false]],"hal::stm32f1::pin_select::port (c++ member)":[[45,"_CPPv4N3hal7stm32f110pin_select4portE",false]],"hal::stm32f1::pll_multiply (c++ enum)":[[36,"_CPPv4N3hal7stm32f112pll_multiplyE",false]],"hal::stm32f1::pll_multiply::multiply_by_10 (c++ enumerator)":[[36,"_CPPv4N3hal7stm32f112pll_multiply14multiply_by_10E",false]],"hal::stm32f1::pll_multiply::multiply_by_11 (c++ enumerator)":[[36,"_CPPv4N3hal7stm32f112pll_multiply14multiply_by_11E",false]],"hal::stm32f1::pll_multiply::multiply_by_12 (c++ enumerator)":[[36,"_CPPv4N3hal7stm32f112pll_multiply14multiply_by_12E",false]],"hal::stm32f1::pll_multiply::multiply_by_13 (c++ enumerator)":[[36,"_CPPv4N3hal7stm32f112pll_multiply14multiply_by_13E",false]],"hal::stm32f1::pll_multiply::multiply_by_14 (c++ enumerator)":[[36,"_CPPv4N3hal7stm32f112pll_multiply14multiply_by_14E",false]],"hal::stm32f1::pll_multiply::multiply_by_15 (c++ enumerator)":[[36,"_CPPv4N3hal7stm32f112pll_multiply14multiply_by_15E",false]],"hal::stm32f1::pll_multiply::multiply_by_16 (c++ enumerator)":[[36,"_CPPv4N3hal7stm32f112pll_multiply14multiply_by_16E",false]],"hal::stm32f1::pll_multiply::multiply_by_2 (c++ enumerator)":[[36,"_CPPv4N3hal7stm32f112pll_multiply13multiply_by_2E",false]],"hal::stm32f1::pll_multiply::multiply_by_3 (c++ enumerator)":[[36,"_CPPv4N3hal7stm32f112pll_multiply13multiply_by_3E",false]],"hal::stm32f1::pll_multiply::multiply_by_4 (c++ enumerator)":[[36,"_CPPv4N3hal7stm32f112pll_multiply13multiply_by_4E",false]],"hal::stm32f1::pll_multiply::multiply_by_5 (c++ enumerator)":[[36,"_CPPv4N3hal7stm32f112pll_multiply13multiply_by_5E",false]],"hal::stm32f1::pll_multiply::multiply_by_6 (c++ enumerator)":[[36,"_CPPv4N3hal7stm32f112pll_multiply13multiply_by_6E",false]],"hal::stm32f1::pll_multiply::multiply_by_7 (c++ enumerator)":[[36,"_CPPv4N3hal7stm32f112pll_multiply13multiply_by_7E",false]],"hal::stm32f1::pll_multiply::multiply_by_8 (c++ enumerator)":[[36,"_CPPv4N3hal7stm32f112pll_multiply13multiply_by_8E",false]],"hal::stm32f1::pll_multiply::multiply_by_9 (c++ enumerator)":[[36,"_CPPv4N3hal7stm32f112pll_multiply13multiply_by_9E",false]],"hal::stm32f1::pll_source (c++ enum)":[[36,"_CPPv4N3hal7stm32f110pll_sourceE",false]],"hal::stm32f1::pll_source::high_speed_external (c++ enumerator)":[[36,"_CPPv4N3hal7stm32f110pll_source19high_speed_externalE",false]],"hal::stm32f1::pll_source::high_speed_external_divided_by_2 (c++ enumerator)":[[36,"_CPPv4N3hal7stm32f110pll_source32high_speed_external_divided_by_2E",false]],"hal::stm32f1::pll_source::internal_8mhz_divided_by_2 (c++ enumerator)":[[36,"_CPPv4N3hal7stm32f110pll_source26internal_8mhz_divided_by_2E",false]],"hal::stm32f1::pwm (c++ class)":[[46,"_CPPv4N3hal7stm32f13pwmE",false]],"hal::stm32f1::pwm16_channel (c++ class)":[[48,"_CPPv4N3hal7stm32f113pwm16_channelE",false]],"hal::stm32f1::pwm_group_frequency (c++ class)":[[48,"_CPPv4N3hal7stm32f119pwm_group_frequencyE",false]],"hal::stm32f1::release_jtag_pins (c++ function)":[[45,"_CPPv4N3hal7stm32f117release_jtag_pinsEv",false]],"hal::stm32f1::reset_mco_pa8 (c++ function)":[[45,"_CPPv4N3hal7stm32f113reset_mco_pa8Ev",false]],"hal::stm32f1::rtc_source (c++ enum)":[[36,"_CPPv4N3hal7stm32f110rtc_sourceE",false]],"hal::stm32f1::rtc_source::high_speed_external_divided_by_128 (c++ enumerator)":[[36,"_CPPv4N3hal7stm32f110rtc_source34high_speed_external_divided_by_128E",false]],"hal::stm32f1::rtc_source::low_speed_external (c++ enumerator)":[[36,"_CPPv4N3hal7stm32f110rtc_source18low_speed_externalE",false]],"hal::stm32f1::rtc_source::low_speed_internal (c++ enumerator)":[[36,"_CPPv4N3hal7stm32f110rtc_source18low_speed_internalE",false]],"hal::stm32f1::rtc_source::no_clock (c++ enumerator)":[[36,"_CPPv4N3hal7stm32f110rtc_source8no_clockE",false]],"hal::stm32f1::spi (c++ class)":[[47,"_CPPv4N3hal7stm32f13spiE",false]],"hal::stm32f1::spi::spi (c++ function)":[[47,"_CPPv4N3hal7stm32f13spi3spiEN3hal9bus_paramERKN3spi8settingsE",false]],"hal::stm32f1::system_clock_select (c++ enum)":[[36,"_CPPv4N3hal7stm32f119system_clock_selectE",false]],"hal::stm32f1::system_clock_select::high_speed_external (c++ enumerator)":[[36,"_CPPv4N3hal7stm32f119system_clock_select19high_speed_externalE",false]],"hal::stm32f1::system_clock_select::high_speed_internal (c++ enumerator)":[[36,"_CPPv4N3hal7stm32f119system_clock_select19high_speed_internalE",false]],"hal::stm32f1::system_clock_select::pll (c++ enumerator)":[[36,"_CPPv4N3hal7stm32f119system_clock_select3pllE",false]],"hal::stm32f1::timer (c++ class)":[[48,"_CPPv4N3hal7stm32f15timerE",false]],"hal::stm32f1::uart (c++ class)":[[49,"_CPPv4N3hal7stm32f14uartE",false]],"hal::stm32f1::uart::uart (c++ function)":[[49,"_CPPv4N3hal7stm32f14uart4uartEN3hal10port_paramEN3hal12buffer_paramERKN6serial8settingsE",false],[49,"_CPPv4N3hal7stm32f14uart4uartEN3hal7runtimeENSt7uint8_tENSt4spanIN3hal4byteEEERKN6serial8settingsE",false]],"hal::stm32f1::usart_manager (c++ class)":[[50,"_CPPv4N3hal7stm32f113usart_managerE",false]],"hal::stm32f1::usart_manager::serial (c++ class)":[[50,"_CPPv4N3hal7stm32f113usart_manager6serialE",false]],"hal::stm32f1::usb (c++ class)":[[51,"_CPPv4N3hal7stm32f13usbE",false]],"hal::stm32f1::usb::usb (c++ function)":[[51,"_CPPv4N3hal7stm32f13usb3usbEN3hal2v521strong_ptr_only_tokenERN3hal12steady_clockE9timeout_t",false]],"hal::stm32f1::usb_divider (c++ enum)":[[36,"_CPPv4N3hal7stm32f111usb_dividerE",false]],"hal::stm32f1::usb_divider::divide_by_1 (c++ enumerator)":[[36,"_CPPv4N3hal7stm32f111usb_divider11divide_by_1E",false]],"hal::stm32f1::usb_divider::divide_by_1_point_5 (c++ enumerator)":[[36,"_CPPv4N3hal7stm32f111usb_divider19divide_by_1_point_5E",false]],"hal::stm32f4110::irq (c++ enum)":[[52,"_CPPv4N3hal10stm32f41103irqE",false]],"hal::stm32f4110::irq::max (c++ enumerator)":[[52,"_CPPv4N3hal10stm32f41103irq3maxE",false]],"hal::stm32f4110::peripheral (c++ enum)":[[52,"_CPPv4N3hal10stm32f411010peripheralE",false]],"hal::stm32f4110::peripheral::max (c++ enumerator)":[[52,"_CPPv4N3hal10stm32f411010peripheral3maxE",false]],"hal::stm32f411::adc_divider (c++ enum)":[[54,"_CPPv4N3hal9stm32f41111adc_dividerE",false]],"hal::stm32f411::adc_divider::divide_by_2 (c++ enumerator)":[[54,"_CPPv4N3hal9stm32f41111adc_divider11divide_by_2E",false]],"hal::stm32f411::adc_divider::divide_by_4 (c++ enumerator)":[[54,"_CPPv4N3hal9stm32f41111adc_divider11divide_by_4E",false]],"hal::stm32f411::adc_divider::divide_by_6 (c++ enumerator)":[[54,"_CPPv4N3hal9stm32f41111adc_divider11divide_by_6E",false]],"hal::stm32f411::adc_divider::divide_by_8 (c++ enumerator)":[[54,"_CPPv4N3hal9stm32f41111adc_divider11divide_by_8E",false]],"hal::stm32f411::ahb_divider (c++ enum)":[[54,"_CPPv4N3hal9stm32f41111ahb_dividerE",false]],"hal::stm32f411::ahb_divider::divide_by_1 (c++ enumerator)":[[54,"_CPPv4N3hal9stm32f41111ahb_divider11divide_by_1E",false]],"hal::stm32f411::ahb_divider::divide_by_128 (c++ enumerator)":[[54,"_CPPv4N3hal9stm32f41111ahb_divider13divide_by_128E",false]],"hal::stm32f411::ahb_divider::divide_by_16 (c++ enumerator)":[[54,"_CPPv4N3hal9stm32f41111ahb_divider12divide_by_16E",false]],"hal::stm32f411::ahb_divider::divide_by_2 (c++ enumerator)":[[54,"_CPPv4N3hal9stm32f41111ahb_divider11divide_by_2E",false]],"hal::stm32f411::ahb_divider::divide_by_256 (c++ enumerator)":[[54,"_CPPv4N3hal9stm32f41111ahb_divider13divide_by_256E",false]],"hal::stm32f411::ahb_divider::divide_by_4 (c++ enumerator)":[[54,"_CPPv4N3hal9stm32f41111ahb_divider11divide_by_4E",false]],"hal::stm32f411::ahb_divider::divide_by_512 (c++ enumerator)":[[54,"_CPPv4N3hal9stm32f41111ahb_divider13divide_by_512E",false]],"hal::stm32f411::ahb_divider::divide_by_64 (c++ enumerator)":[[54,"_CPPv4N3hal9stm32f41111ahb_divider12divide_by_64E",false]],"hal::stm32f411::ahb_divider::divide_by_8 (c++ enumerator)":[[54,"_CPPv4N3hal9stm32f41111ahb_divider11divide_by_8E",false]],"hal::stm32f411::apb_divider (c++ enum)":[[54,"_CPPv4N3hal9stm32f41111apb_dividerE",false]],"hal::stm32f411::apb_divider::divide_by_1 (c++ enumerator)":[[54,"_CPPv4N3hal9stm32f41111apb_divider11divide_by_1E",false]],"hal::stm32f411::apb_divider::divide_by_16 (c++ enumerator)":[[54,"_CPPv4N3hal9stm32f41111apb_divider12divide_by_16E",false]],"hal::stm32f411::apb_divider::divide_by_2 (c++ enumerator)":[[54,"_CPPv4N3hal9stm32f41111apb_divider11divide_by_2E",false]],"hal::stm32f411::apb_divider::divide_by_4 (c++ enumerator)":[[54,"_CPPv4N3hal9stm32f41111apb_divider11divide_by_4E",false]],"hal::stm32f411::apb_divider::divide_by_8 (c++ enumerator)":[[54,"_CPPv4N3hal9stm32f41111apb_divider11divide_by_8E",false]],"hal::stm32f411::clock_tree (c++ struct)":[[54,"_CPPv4N3hal9stm32f41110clock_treeE",false]],"hal::stm32f411::clock_tree::ahb_t (c++ struct)":[[54,"_CPPv4N3hal9stm32f41110clock_tree5ahb_tE",false]],"hal::stm32f411::clock_tree::ahb_t::apb1_t (c++ struct)":[[54,"_CPPv4N3hal9stm32f41110clock_tree5ahb_t6apb1_tE",false]],"hal::stm32f411::clock_tree::ahb_t::apb2_t (c++ struct)":[[54,"_CPPv4N3hal9stm32f41110clock_tree5ahb_t6apb2_tE",false]],"hal::stm32f411::clock_tree::ahb_t::apb2_t::adc_t (c++ struct)":[[54,"_CPPv4N3hal9stm32f41110clock_tree5ahb_t6apb2_t5adc_tE",false]],"hal::stm32f411::clock_tree::high_speed_external (c++ member)":[[54,"_CPPv4N3hal9stm32f41110clock_tree19high_speed_externalE",false]],"hal::stm32f411::clock_tree::low_speed_external (c++ member)":[[54,"_CPPv4N3hal9stm32f41110clock_tree18low_speed_externalE",false]],"hal::stm32f411::clock_tree::pll_t (c++ struct)":[[54,"_CPPv4N3hal9stm32f41110clock_tree5pll_tE",false]],"hal::stm32f411::clock_tree::rtc_t (c++ struct)":[[54,"_CPPv4N3hal9stm32f41110clock_tree5rtc_tE",false]],"hal::stm32f411::clock_tree::system_clock (c++ member)":[[54,"_CPPv4N3hal9stm32f41110clock_tree12system_clockE",false]],"hal::stm32f411::configure_clocks (c++ function)":[[54,"_CPPv4N3hal9stm32f41116configure_clocksERK10clock_tree",false]],"hal::stm32f411::dma (c++ enum)":[[56,"_CPPv4N3hal9stm32f4113dmaE",false]],"hal::stm32f411::dma::dma1 (c++ enumerator)":[[56,"_CPPv4N3hal9stm32f4113dma4dma1E",false]],"hal::stm32f411::dma::dma2 (c++ enumerator)":[[56,"_CPPv4N3hal9stm32f4113dma4dma2E",false]],"hal::stm32f411::frequency (c++ function)":[[54,"_CPPv4N3hal9stm32f4119frequencyE10peripheral",false]],"hal::stm32f411::i2c_manager_impl (c++ class)":[[57,"_CPPv4N3hal9stm32f41116i2c_manager_implE",false]],"hal::stm32f411::i2c_manager_impl::i2c (c++ class)":[[57,"_CPPv4N3hal9stm32f41116i2c_manager_impl3i2cE",false]],"hal::stm32f411::i2c_manager_impl::i2c::i2c (c++ function)":[[57,"_CPPv4N3hal9stm32f41116i2c_manager_impl3i2c3i2cER16i2c_manager_implRKN3i2c8settingsE",false]],"hal::stm32f411::i2c_manager_impl::~i2c_manager_impl (c++ function)":[[57,"_CPPv4N3hal9stm32f41116i2c_manager_implD0Ev",false]],"hal::stm32f411::i2s_source (c++ enum)":[[54,"_CPPv4N3hal9stm32f41110i2s_sourceE",false]],"hal::stm32f411::i2s_source::i2s_external_clock (c++ enumerator)":[[54,"_CPPv4N3hal9stm32f41110i2s_source18i2s_external_clockE",false]],"hal::stm32f411::i2s_source::pll_i2s_clk (c++ enumerator)":[[54,"_CPPv4N3hal9stm32f41110i2s_source11pll_i2s_clkE",false]],"hal::stm32f411::initialize_interrupts (c++ function)":[[60,"_CPPv4N3hal9stm32f41121initialize_interruptsEv",false]],"hal::stm32f411::input_pin (c++ class)":[[59,"_CPPv4N3hal9stm32f4119input_pinE",false]],"hal::stm32f411::input_pin::input_pin (c++ function)":[[59,"_CPPv4N3hal9stm32f4119input_pin9input_pinEN3hal9stm32f41110peripheralENSt7uint8_tERKN9input_pin8settingsE",false]],"hal::stm32f411::irq (c++ enum)":[[55,"_CPPv4N3hal9stm32f4113irqE",false]],"hal::stm32f411::irq::adc1 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq4adc1E",false]],"hal::stm32f411::irq::dma1_channel0 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq13dma1_channel0E",false]],"hal::stm32f411::irq::dma1_channel1 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq13dma1_channel1E",false]],"hal::stm32f411::irq::dma1_channel2 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq13dma1_channel2E",false]],"hal::stm32f411::irq::dma1_channel3 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq13dma1_channel3E",false]],"hal::stm32f411::irq::dma1_channel4 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq13dma1_channel4E",false]],"hal::stm32f411::irq::dma1_channel5 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq13dma1_channel5E",false]],"hal::stm32f411::irq::dma1_channel6 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq13dma1_channel6E",false]],"hal::stm32f411::irq::dma1_channel7 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq13dma1_channel7E",false]],"hal::stm32f411::irq::dma2_channel0 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq13dma2_channel0E",false]],"hal::stm32f411::irq::dma2_channel1 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq13dma2_channel1E",false]],"hal::stm32f411::irq::dma2_channel2 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq13dma2_channel2E",false]],"hal::stm32f411::irq::dma2_channel3 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq13dma2_channel3E",false]],"hal::stm32f411::irq::dma2_channel4 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq13dma2_channel4E",false]],"hal::stm32f411::irq::dma2_channel5 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq13dma2_channel5E",false]],"hal::stm32f411::irq::dma2_channel6 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq13dma2_channel6E",false]],"hal::stm32f411::irq::dma2_channel7 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq13dma2_channel7E",false]],"hal::stm32f411::irq::exi9_5 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq6exi9_5E",false]],"hal::stm32f411::irq::exti0 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq5exti0E",false]],"hal::stm32f411::irq::exti1 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq5exti1E",false]],"hal::stm32f411::irq::exti15_10 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq9exti15_10E",false]],"hal::stm32f411::irq::exti17 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq6exti17E",false]],"hal::stm32f411::irq::exti18 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq6exti18E",false]],"hal::stm32f411::irq::exti2 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq5exti2E",false]],"hal::stm32f411::irq::exti3 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq5exti3E",false]],"hal::stm32f411::irq::exti4 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq5exti4E",false]],"hal::stm32f411::irq::flash (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq5flashE",false]],"hal::stm32f411::irq::fpu (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq3fpuE",false]],"hal::stm32f411::irq::i2c1_er (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq7i2c1_erE",false]],"hal::stm32f411::irq::i2c1_ev (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq7i2c1_evE",false]],"hal::stm32f411::irq::i2c2_er (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq7i2c2_erE",false]],"hal::stm32f411::irq::i2c2_ev (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq7i2c2_evE",false]],"hal::stm32f411::irq::i2c3_er (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq7i2c3_erE",false]],"hal::stm32f411::irq::i2c3_ev (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq7i2c3_evE",false]],"hal::stm32f411::irq::max (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq3maxE",false]],"hal::stm32f411::irq::otg_fs (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq6otg_fsE",false]],"hal::stm32f411::irq::otg_fs_wkup (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq11otg_fs_wkupE",false]],"hal::stm32f411::irq::pvd (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq3pvdE",false]],"hal::stm32f411::irq::rcc (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq3rccE",false]],"hal::stm32f411::irq::rtc (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq3rtcE",false]],"hal::stm32f411::irq::rtcalarm (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq8rtcalarmE",false]],"hal::stm32f411::irq::sdio (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq4sdioE",false]],"hal::stm32f411::irq::spi1 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq4spi1E",false]],"hal::stm32f411::irq::spi2 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq4spi2E",false]],"hal::stm32f411::irq::spi3 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq4spi3E",false]],"hal::stm32f411::irq::spi4 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq4spi4E",false]],"hal::stm32f411::irq::spi5 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq4spi5E",false]],"hal::stm32f411::irq::tamper (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq6tamperE",false]],"hal::stm32f411::irq::tim1_brk (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq8tim1_brkE",false]],"hal::stm32f411::irq::tim1_brk_tim19 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq14tim1_brk_tim19E",false]],"hal::stm32f411::irq::tim1_cc (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq7tim1_ccE",false]],"hal::stm32f411::irq::tim1_trg_com (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq12tim1_trg_comE",false]],"hal::stm32f411::irq::tim1_trg_com_tim11 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq18tim1_trg_com_tim11E",false]],"hal::stm32f411::irq::tim1_up (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq7tim1_upE",false]],"hal::stm32f411::irq::tim1_up_tim10 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq13tim1_up_tim10E",false]],"hal::stm32f411::irq::tim2 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq4tim2E",false]],"hal::stm32f411::irq::tim3 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq4tim3E",false]],"hal::stm32f411::irq::tim4 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq4tim4E",false]],"hal::stm32f411::irq::tim5 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq4tim5E",false]],"hal::stm32f411::irq::usart1 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq6usart1E",false]],"hal::stm32f411::irq::usart2 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq6usart2E",false]],"hal::stm32f411::irq::usart6 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq6usart6E",false]],"hal::stm32f411::irq::window_watchdog (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f4113irq15window_watchdogE",false]],"hal::stm32f411::maximum_speed_using_internal_oscillator (c++ function)":[[54,"_CPPv4N3hal9stm32f41139maximum_speed_using_internal_oscillatorEv",false]],"hal::stm32f411::output_pin (c++ class)":[[61,"_CPPv4N3hal9stm32f41110output_pinE",false]],"hal::stm32f411::output_pin::output_pin (c++ function)":[[61,"_CPPv4N3hal9stm32f41110output_pin10output_pinEN3hal9stm32f41110peripheralENSt7uint8_tEN10output_pin8settingsE",false]],"hal::stm32f411::peripheral (c++ enum)":[[55,"_CPPv4N3hal9stm32f41110peripheralE",false]],"hal::stm32f411::peripheral::adc1 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f41110peripheral4adc1E",false]],"hal::stm32f411::peripheral::cpu (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f41110peripheral3cpuE",false]],"hal::stm32f411::peripheral::crc (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f41110peripheral3crcE",false]],"hal::stm32f411::peripheral::dma1 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f41110peripheral4dma1E",false]],"hal::stm32f411::peripheral::dma2 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f41110peripheral4dma2E",false]],"hal::stm32f411::peripheral::gpio_a (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f41110peripheral6gpio_aE",false]],"hal::stm32f411::peripheral::gpio_b (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f41110peripheral6gpio_bE",false]],"hal::stm32f411::peripheral::gpio_c (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f41110peripheral6gpio_cE",false]],"hal::stm32f411::peripheral::gpio_d (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f41110peripheral6gpio_dE",false]],"hal::stm32f411::peripheral::gpio_e (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f41110peripheral6gpio_eE",false]],"hal::stm32f411::peripheral::gpio_h (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f41110peripheral6gpio_hE",false]],"hal::stm32f411::peripheral::i2c1 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f41110peripheral4i2c1E",false]],"hal::stm32f411::peripheral::i2c2 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f41110peripheral4i2c2E",false]],"hal::stm32f411::peripheral::i2c3 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f41110peripheral4i2c3E",false]],"hal::stm32f411::peripheral::i2s (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f41110peripheral3i2sE",false]],"hal::stm32f411::peripheral::power (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f41110peripheral5powerE",false]],"hal::stm32f411::peripheral::sdio (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f41110peripheral4sdioE",false]],"hal::stm32f411::peripheral::spi1 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f41110peripheral4spi1E",false]],"hal::stm32f411::peripheral::spi2 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f41110peripheral4spi2E",false]],"hal::stm32f411::peripheral::spi3 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f41110peripheral4spi3E",false]],"hal::stm32f411::peripheral::spi4 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f41110peripheral4spi4E",false]],"hal::stm32f411::peripheral::spi5 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f41110peripheral4spi5E",false]],"hal::stm32f411::peripheral::system_config_controller (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f41110peripheral24system_config_controllerE",false]],"hal::stm32f411::peripheral::system_timer (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f41110peripheral12system_timerE",false]],"hal::stm32f411::peripheral::timer1 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f41110peripheral6timer1E",false]],"hal::stm32f411::peripheral::timer10 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f41110peripheral7timer10E",false]],"hal::stm32f411::peripheral::timer11 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f41110peripheral7timer11E",false]],"hal::stm32f411::peripheral::timer2 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f41110peripheral6timer2E",false]],"hal::stm32f411::peripheral::timer3 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f41110peripheral6timer3E",false]],"hal::stm32f411::peripheral::timer4 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f41110peripheral6timer4E",false]],"hal::stm32f411::peripheral::timer5 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f41110peripheral6timer5E",false]],"hal::stm32f411::peripheral::timer9 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f41110peripheral6timer9E",false]],"hal::stm32f411::peripheral::usart1 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f41110peripheral6usart1E",false]],"hal::stm32f411::peripheral::usart2 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f41110peripheral6usart2E",false]],"hal::stm32f411::peripheral::usart6 (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f41110peripheral6usart6E",false]],"hal::stm32f411::peripheral::usb_otg (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f41110peripheral7usb_otgE",false]],"hal::stm32f411::peripheral::window_watchdog (c++ enumerator)":[[55,"_CPPv4N3hal9stm32f41110peripheral15window_watchdogE",false]],"hal::stm32f411::pin (c++ class)":[[62,"_CPPv4N3hal9stm32f4113pinE",false]],"hal::stm32f411::pin::activate_mco_pc9 (c++ function)":[[62,"_CPPv4N3hal9stm32f4113pin16activate_mco_pc9E10mco_source",false]],"hal::stm32f411::pin::function (c++ function)":[[62,"_CPPv4NK3hal9stm32f4113pin8functionE12pin_function",false]],"hal::stm32f411::pin::open_drain (c++ function)":[[62,"_CPPv4NK3hal9stm32f4113pin10open_drainEb",false]],"hal::stm32f411::pin::pin (c++ function)":[[62,"_CPPv4N3hal9stm32f4113pin3pinE10peripheralNSt7uint8_tE",false]],"hal::stm32f411::pin::resistor (c++ function)":[[62,"_CPPv4NK3hal9stm32f4113pin8resistorEN3hal12pin_resistorE",false]],"hal::stm32f411::pll_source (c++ enum)":[[54,"_CPPv4N3hal9stm32f41110pll_sourceE",false]],"hal::stm32f411::pll_source::high_speed_external (c++ enumerator)":[[54,"_CPPv4N3hal9stm32f41110pll_source19high_speed_externalE",false]],"hal::stm32f411::pll_source::high_speed_internal (c++ enumerator)":[[54,"_CPPv4N3hal9stm32f41110pll_source19high_speed_internalE",false]],"hal::stm32f411::rtc_source (c++ enum)":[[54,"_CPPv4N3hal9stm32f41110rtc_sourceE",false]],"hal::stm32f411::rtc_source::high_speed_external_divided_by_128 (c++ enumerator)":[[54,"_CPPv4N3hal9stm32f41110rtc_source34high_speed_external_divided_by_128E",false]],"hal::stm32f411::rtc_source::low_speed_external (c++ enumerator)":[[54,"_CPPv4N3hal9stm32f41110rtc_source18low_speed_externalE",false]],"hal::stm32f411::rtc_source::low_speed_internal (c++ enumerator)":[[54,"_CPPv4N3hal9stm32f41110rtc_source18low_speed_internalE",false]],"hal::stm32f411::rtc_source::no_clock (c++ enumerator)":[[54,"_CPPv4N3hal9stm32f41110rtc_source8no_clockE",false]],"hal::stm32f411::set_dma_memory_transfer (c++ function)":[[56,"_CPPv4N3hal9stm32f41123set_dma_memory_transferE3dmaKNSt4spanIK4byteEEKNSt4spanI4byteEE",false]],"hal::stm32f411::spi (c++ class)":[[63,"_CPPv4N3hal9stm32f4113spiE",false]],"hal::stm32f411::spi::spi (c++ function)":[[63,"_CPPv4N3hal9stm32f4113spi3spiEN3hal7runtimeENSt7uint8_tERKN3spi8settingsE",false]],"hal::stm32f411::system_clock_select (c++ enum)":[[54,"_CPPv4N3hal9stm32f41119system_clock_selectE",false]],"hal::stm32f411::system_clock_select::high_speed_external (c++ enumerator)":[[54,"_CPPv4N3hal9stm32f41119system_clock_select19high_speed_externalE",false]],"hal::stm32f411::system_clock_select::high_speed_internal (c++ enumerator)":[[54,"_CPPv4N3hal9stm32f41119system_clock_select19high_speed_internalE",false]],"hal::stm32f411::system_clock_select::pll (c++ enumerator)":[[54,"_CPPv4N3hal9stm32f41119system_clock_select3pllE",false]],"hal::stm32f411::uart (c++ class)":[[64,"_CPPv4N3hal9stm32f4114uartE",false]],"hal::stm32f411::uart::uart (c++ function)":[[64,"_CPPv4N3hal9stm32f4114uart4uartEN3hal10port_paramEN3hal12buffer_paramERKN6serial8settingsE",false],[64,"_CPPv4N3hal9stm32f4114uart4uartEN3hal7runtimeE2u8NSt4spanIN3hal4byteEEERKN6serial8settingsE",false]]},"objects":{"":[[2,0,1,"_CPPv4N3hal8cortex_m17bus_fault_handlerEv","hal::cortex_m::bus_fault_handler"],[4,0,1,"_CPPv4N3hal8cortex_m18debugger_connectedEv","hal::cortex_m::debugger_connected"],[2,0,1,"_CPPv4N3hal8cortex_m25default_interrupt_handlerEv","hal::cortex_m::default_interrupt_handler"],[2,0,1,"_CPPv4N3hal8cortex_m22disable_all_interruptsEv","hal::cortex_m::disable_all_interrupts"],[2,0,1,"_CPPv4N3hal8cortex_m17disable_interruptE5irq_t","hal::cortex_m::disable_interrupt"],[2,1,1,"_CPPv4N3hal8cortex_m17disable_interruptE5irq_t","hal::cortex_m::disable_interrupt::p_irq"],[0,2,1,"_CPPv4N3hal8cortex_m11dwt_counterE","hal::cortex_m::dwt_counter"],[0,0,1,"_CPPv4N3hal8cortex_m11dwt_counter11dwt_counterE5hertz","hal::cortex_m::dwt_counter::dwt_counter"],[0,1,1,"_CPPv4N3hal8cortex_m11dwt_counter11dwt_counterE5hertz","hal::cortex_m::dwt_counter::dwt_counter::p_cpu_frequency"],[0,0,1,"_CPPv4N3hal8cortex_m11dwt_counter22register_cpu_frequencyE5hertz","hal::cortex_m::dwt_counter::register_cpu_frequency"],[0,1,1,"_CPPv4N3hal8cortex_m11dwt_counter22register_cpu_frequencyE5hertz","hal::cortex_m::dwt_counter::register_cpu_frequency::p_cpu_frequency"],[2,0,1,"_CPPv4N3hal8cortex_m21enable_all_interruptsEv","hal::cortex_m::enable_all_interrupts"],[2,0,1,"_CPPv4N3hal8cortex_m16enable_interruptE5irq_t17interrupt_pointer","hal::cortex_m::enable_interrupt"],[2,1,1,"_CPPv4N3hal8cortex_m16enable_interruptE5irq_t17interrupt_pointer","hal::cortex_m::enable_interrupt::p_handler"],[2,1,1,"_CPPv4N3hal8cortex_m16enable_interruptE5irq_t17interrupt_pointer","hal::cortex_m::enable_interrupt::p_irq"],[4,0,1,"_CPPv4N3hal8cortex_m34get_interrupt_vector_table_addressEv","hal::cortex_m::get_interrupt_vector_table_address"],[2,0,1,"_CPPv4N3hal8cortex_m16get_vector_tableEv","hal::cortex_m::get_vector_table"],[2,0,1,"_CPPv4N3hal8cortex_m18hard_fault_handlerEv","hal::cortex_m::hard_fault_handler"],[3,0,1,"_CPPv4N3hal8cortex_m22initialize_bss_sectionEv","hal::cortex_m::initialize_bss_section"],[3,0,1,"_CPPv4N3hal8cortex_m23initialize_data_sectionEv","hal::cortex_m::initialize_data_section"],[4,0,1,"_CPPv4N3hal8cortex_m30initialize_floating_point_unitEv","hal::cortex_m::initialize_floating_point_unit"],[2,0,1,"_CPPv4N3hal8cortex_m21initialize_interruptsENSt4spanI17interrupt_pointerEE","hal::cortex_m::initialize_interrupts"],[2,1,1,"_CPPv4N3hal8cortex_m21initialize_interruptsENSt4spanI17interrupt_pointerEE","hal::cortex_m::initialize_interrupts::p_vector_table"],[2,0,1,"_CPPv4N3hal8cortex_m34interrupt_vector_table_initializedEv","hal::cortex_m::interrupt_vector_table_initialized"],[2,3,1,"_CPPv4N3hal8cortex_m3irqE","hal::cortex_m::irq"],[2,4,1,"_CPPv4N3hal8cortex_m3irq9bus_faultE","hal::cortex_m::irq::bus_fault"],[2,4,1,"_CPPv4N3hal8cortex_m3irq10hard_faultE","hal::cortex_m::irq::hard_fault"],[2,4,1,"_CPPv4N3hal8cortex_m3irq23memory_management_faultE","hal::cortex_m::irq::memory_management_fault"],[2,4,1,"_CPPv4N3hal8cortex_m3irq22non_maskable_interruptE","hal::cortex_m::irq::non_maskable_interrupt"],[2,4,1,"_CPPv4N3hal8cortex_m3irq7pend_svE","hal::cortex_m::irq::pend_sv"],[2,4,1,"_CPPv4N3hal8cortex_m3irq9reserve10E","hal::cortex_m::irq::reserve10"],[2,4,1,"_CPPv4N3hal8cortex_m3irq9reserve12E","hal::cortex_m::irq::reserve12"],[2,4,1,"_CPPv4N3hal8cortex_m3irq9reserve13E","hal::cortex_m::irq::reserve13"],[2,4,1,"_CPPv4N3hal8cortex_m3irq8reserve7E","hal::cortex_m::irq::reserve7"],[2,4,1,"_CPPv4N3hal8cortex_m3irq8reserve8E","hal::cortex_m::irq::reserve8"],[2,4,1,"_CPPv4N3hal8cortex_m3irq8reserve9E","hal::cortex_m::irq::reserve9"],[2,4,1,"_CPPv4N3hal8cortex_m3irq5resetE","hal::cortex_m::irq::reset"],[2,4,1,"_CPPv4N3hal8cortex_m3irq13software_callE","hal::cortex_m::irq::software_call"],[2,4,1,"_CPPv4N3hal8cortex_m3irq7systickE","hal::cortex_m::irq::systick"],[2,4,1,"_CPPv4N3hal8cortex_m3irq12top_of_stackE","hal::cortex_m::irq::top_of_stack"],[2,4,1,"_CPPv4N3hal8cortex_m3irq11usage_faultE","hal::cortex_m::irq::usage_fault"],[2,0,1,"_CPPv4N3hal8cortex_m20is_interrupt_enabledE5irq_t","hal::cortex_m::is_interrupt_enabled"],[2,1,1,"_CPPv4N3hal8cortex_m20is_interrupt_enabledE5irq_t","hal::cortex_m::is_interrupt_enabled::p_irq"],[2,0,1,"_CPPv4N3hal8cortex_m31memory_management_fault_handlerEv","hal::cortex_m::memory_management_fault_handler"],[4,0,1,"_CPPv4N3hal8cortex_m5resetEv","hal::cortex_m::reset"],[2,0,1,"_CPPv4N3hal8cortex_m29revert_interrupt_vector_tableEv","hal::cortex_m::revert_interrupt_vector_table"],[4,0,1,"_CPPv4N3hal8cortex_m34set_interrupt_vector_table_addressEPv","hal::cortex_m::set_interrupt_vector_table_address"],[4,1,1,"_CPPv4N3hal8cortex_m34set_interrupt_vector_table_addressEPv","hal::cortex_m::set_interrupt_vector_table_address::p_table_location"],[5,2,1,"_CPPv4N3hal8cortex_m13systick_timerE","hal::cortex_m::systick_timer"],[5,3,1,"_CPPv4N3hal8cortex_m13systick_timer12clock_sourceE","hal::cortex_m::systick_timer::clock_source"],[5,4,1,"_CPPv4N3hal8cortex_m13systick_timer12clock_source8externalE","hal::cortex_m::systick_timer::clock_source::external"],[5,4,1,"_CPPv4N3hal8cortex_m13systick_timer12clock_source9processorE","hal::cortex_m::systick_timer::clock_source::processor"],[5,0,1,"_CPPv4N3hal8cortex_m13systick_timer22register_cpu_frequencyE5hertz12clock_source","hal::cortex_m::systick_timer::register_cpu_frequency"],[5,1,1,"_CPPv4N3hal8cortex_m13systick_timer22register_cpu_frequencyE5hertz12clock_source","hal::cortex_m::systick_timer::register_cpu_frequency::p_frequency"],[5,1,1,"_CPPv4N3hal8cortex_m13systick_timer22register_cpu_frequencyE5hertz12clock_source","hal::cortex_m::systick_timer::register_cpu_frequency::p_source"],[5,0,1,"_CPPv4N3hal8cortex_m13systick_timer13systick_timerE5hertz12clock_source","hal::cortex_m::systick_timer::systick_timer"],[5,1,1,"_CPPv4N3hal8cortex_m13systick_timer13systick_timerE5hertz12clock_source","hal::cortex_m::systick_timer::systick_timer::p_frequency"],[5,1,1,"_CPPv4N3hal8cortex_m13systick_timer13systick_timerE5hertz12clock_source","hal::cortex_m::systick_timer::systick_timer::p_source"],[5,0,1,"_CPPv4N3hal8cortex_m13systick_timerD0Ev","hal::cortex_m::systick_timer::~systick_timer"],[2,0,1,"_CPPv4N3hal8cortex_m19usage_fault_handlerEv","hal::cortex_m::usage_fault_handler"],[2,0,1,"_CPPv4N3hal8cortex_m21verify_vector_enabledE5irq_t17interrupt_pointer","hal::cortex_m::verify_vector_enabled"],[2,1,1,"_CPPv4N3hal8cortex_m21verify_vector_enabledE5irq_t17interrupt_pointer","hal::cortex_m::verify_vector_enabled::p_handler"],[2,1,1,"_CPPv4N3hal8cortex_m21verify_vector_enabledE5irq_t17interrupt_pointer","hal::cortex_m::verify_vector_enabled::p_irq"],[4,0,1,"_CPPv4N3hal8cortex_m14wait_for_eventEv","hal::cortex_m::wait_for_event"],[4,0,1,"_CPPv4N3hal8cortex_m18wait_for_interruptEv","hal::cortex_m::wait_for_interrupt"],[7,2,1,"_CPPv4N3hal5lpc403adcE","hal::lpc40::adc"],[7,0,1,"_CPPv4N3hal5lpc403adc3adcEN3hal13channel_paramE","hal::lpc40::adc::adc"],[7,0,1,"_CPPv4N3hal5lpc403adc3adcERK7channel","hal::lpc40::adc::adc"],[7,1,1,"_CPPv4N3hal5lpc403adc3adcEN3hal13channel_paramE","hal::lpc40::adc::adc::p_channel"],[7,1,1,"_CPPv4N3hal5lpc403adc3adcERK7channel","hal::lpc40::adc::adc::p_channel"],[7,2,1,"_CPPv4N3hal5lpc403adc7channelE","hal::lpc40::adc::channel"],[7,5,1,"_CPPv4N3hal5lpc403adc7channel7adc_pinE","hal::lpc40::adc::channel::adc_pin"],[7,5,1,"_CPPv4N3hal5lpc403adc7channel10clock_rateE","hal::lpc40::adc::channel::clock_rate"],[7,5,1,"_CPPv4N3hal5lpc403adc7channel5indexE","hal::lpc40::adc::channel::index"],[7,5,1,"_CPPv4N3hal5lpc403adc7channel12pin_functionE","hal::lpc40::adc::channel::pin_function"],[8,2,1,"_CPPv4N3hal5lpc403canE","hal::lpc40::can"],[8,2,1,"_CPPv4N3hal5lpc403can4portE","hal::lpc40::can::port"],[8,5,1,"_CPPv4N3hal5lpc403can4port2idE","hal::lpc40::can::port::id"],[8,5,1,"_CPPv4N3hal5lpc403can4port10irq_numberE","hal::lpc40::can::port::irq_number"],[8,5,1,"_CPPv4N3hal5lpc403can4port2rdE","hal::lpc40::can::port::rd"],[8,5,1,"_CPPv4N3hal5lpc403can4port16rd_function_codeE","hal::lpc40::can::port::rd_function_code"],[8,5,1,"_CPPv4N3hal5lpc403can4port9sync_jumpE","hal::lpc40::can::port::sync_jump"],[8,5,1,"_CPPv4N3hal5lpc403can4port2tdE","hal::lpc40::can::port::td"],[8,5,1,"_CPPv4N3hal5lpc403can4port16td_function_codeE","hal::lpc40::can::port::td_function_code"],[8,5,1,"_CPPv4N3hal5lpc403can4port5tseg1E","hal::lpc40::can::port::tseg1"],[8,5,1,"_CPPv4N3hal5lpc403can4port5tseg2E","hal::lpc40::can::port::tseg2"],[9,2,1,"_CPPv4N3hal5lpc4010clock_treeE","hal::lpc40::clock_tree"],[9,5,1,"_CPPv4N3hal5lpc4010clock_tree3cpuE","hal::lpc40::clock_tree::cpu"],[9,2,1,"_CPPv4N3hal5lpc4010clock_tree5cpu_tE","hal::lpc40::clock_tree::cpu_t"],[9,5,1,"_CPPv4N3hal5lpc4010clock_tree5cpu_t7dividerE","hal::lpc40::clock_tree::cpu_t::divider"],[9,5,1,"_CPPv4N3hal5lpc4010clock_tree5cpu_t8use_pll0E","hal::lpc40::clock_tree::cpu_t::use_pll0"],[9,5,1,"_CPPv4N3hal5lpc4010clock_tree20emc_half_cpu_dividerE","hal::lpc40::clock_tree::emc_half_cpu_divider"],[9,5,1,"_CPPv4N3hal5lpc4010clock_tree20oscillator_frequencyE","hal::lpc40::clock_tree::oscillator_frequency"],[9,5,1,"_CPPv4N3hal5lpc4010clock_tree18peripheral_dividerE","hal::lpc40::clock_tree::peripheral_divider"],[9,5,1,"_CPPv4N3hal5lpc4010clock_tree3pllE","hal::lpc40::clock_tree::pll"],[9,2,1,"_CPPv4N3hal5lpc4010clock_tree5pll_tE","hal::lpc40::clock_tree::pll_t"],[9,5,1,"_CPPv4N3hal5lpc4010clock_tree5pll_t7enabledE","hal::lpc40::clock_tree::pll_t::enabled"],[9,5,1,"_CPPv4N3hal5lpc4010clock_tree5pll_t8multiplyE","hal::lpc40::clock_tree::pll_t::multiply"],[9,5,1,"_CPPv4N3hal5lpc4010clock_tree5spifiE","hal::lpc40::clock_tree::spifi"],[9,2,1,"_CPPv4N3hal5lpc4010clock_tree7spifi_tE","hal::lpc40::clock_tree::spifi_t"],[9,5,1,"_CPPv4N3hal5lpc4010clock_tree7spifi_t5clockE","hal::lpc40::clock_tree::spifi_t::clock"],[9,5,1,"_CPPv4N3hal5lpc4010clock_tree7spifi_t7dividerE","hal::lpc40::clock_tree::spifi_t::divider"],[9,5,1,"_CPPv4N3hal5lpc4010clock_tree3usbE","hal::lpc40::clock_tree::usb"],[9,2,1,"_CPPv4N3hal5lpc4010clock_tree5usb_tE","hal::lpc40::clock_tree::usb_t"],[9,5,1,"_CPPv4N3hal5lpc4010clock_tree5usb_t5clockE","hal::lpc40::clock_tree::usb_t::clock"],[9,5,1,"_CPPv4N3hal5lpc4010clock_tree5usb_t7dividerE","hal::lpc40::clock_tree::usb_t::divider"],[9,5,1,"_CPPv4N3hal5lpc4010clock_tree23use_external_oscillatorE","hal::lpc40::clock_tree::use_external_oscillator"],[9,0,1,"_CPPv4N3hal5lpc4016configure_clocksERK10clock_tree","hal::lpc40::configure_clocks"],[9,1,1,"_CPPv4N3hal5lpc4016configure_clocksERK10clock_tree","hal::lpc40::configure_clocks::p_clock_tree"],[11,2,1,"_CPPv4N3hal5lpc403dacE","hal::lpc40::dac"],[12,2,1,"_CPPv4N3hal5lpc403dmaE","hal::lpc40::dma"],[12,3,1,"_CPPv4N3hal5lpc4014dma_burst_sizeE","hal::lpc40::dma_burst_size"],[12,4,1,"_CPPv4N3hal5lpc4014dma_burst_size7bytes_1E","hal::lpc40::dma_burst_size::bytes_1"],[12,4,1,"_CPPv4N3hal5lpc4014dma_burst_size9bytes_128E","hal::lpc40::dma_burst_size::bytes_128"],[12,4,1,"_CPPv4N3hal5lpc4014dma_burst_size8bytes_16E","hal::lpc40::dma_burst_size::bytes_16"],[12,4,1,"_CPPv4N3hal5lpc4014dma_burst_size9bytes_256E","hal::lpc40::dma_burst_size::bytes_256"],[12,4,1,"_CPPv4N3hal5lpc4014dma_burst_size8bytes_32E","hal::lpc40::dma_burst_size::bytes_32"],[12,4,1,"_CPPv4N3hal5lpc4014dma_burst_size7bytes_4E","hal::lpc40::dma_burst_size::bytes_4"],[12,4,1,"_CPPv4N3hal5lpc4014dma_burst_size8bytes_64E","hal::lpc40::dma_burst_size::bytes_64"],[12,4,1,"_CPPv4N3hal5lpc4014dma_burst_size7bytes_8E","hal::lpc40::dma_burst_size::bytes_8"],[12,3,1,"_CPPv4N3hal5lpc4018dma_channel_selectE","hal::lpc40::dma_channel_select"],[12,4,1,"_CPPv4N3hal5lpc4018dma_channel_select8channel0E","hal::lpc40::dma_channel_select::channel0"],[12,4,1,"_CPPv4N3hal5lpc4018dma_channel_select8channel1E","hal::lpc40::dma_channel_select::channel1"],[12,4,1,"_CPPv4N3hal5lpc4018dma_channel_select8channel2E","hal::lpc40::dma_channel_select::channel2"],[12,4,1,"_CPPv4N3hal5lpc4018dma_channel_select8channel3E","hal::lpc40::dma_channel_select::channel3"],[12,4,1,"_CPPv4N3hal5lpc4018dma_channel_select8channel4E","hal::lpc40::dma_channel_select::channel4"],[12,4,1,"_CPPv4N3hal5lpc4018dma_channel_select8channel5E","hal::lpc40::dma_channel_select::channel5"],[12,4,1,"_CPPv4N3hal5lpc4018dma_channel_select8channel6E","hal::lpc40::dma_channel_select::channel6"],[12,4,1,"_CPPv4N3hal5lpc4018dma_channel_select8channel7E","hal::lpc40::dma_channel_select::channel7"],[12,3,1,"_CPPv4N3hal5lpc4014dma_peripheralE","hal::lpc40::dma_peripheral"],[12,4,1,"_CPPv4N3hal5lpc4014dma_peripheral3adcE","hal::lpc40::dma_peripheral::adc"],[12,4,1,"_CPPv4N3hal5lpc4014dma_peripheral3dacE","hal::lpc40::dma_peripheral::dac"],[12,4,1,"_CPPv4N3hal5lpc4014dma_peripheral23memory_or_timer0_match0E","hal::lpc40::dma_peripheral::memory_or_timer0_match0"],[12,4,1,"_CPPv4N3hal5lpc4014dma_peripheral25sd_card_and_timer0_match1E","hal::lpc40::dma_peripheral::sd_card_and_timer0_match1"],[12,4,1,"_CPPv4N3hal5lpc4014dma_peripheral25spi0_rx_and_timer1_match1E","hal::lpc40::dma_peripheral::spi0_rx_and_timer1_match1"],[12,4,1,"_CPPv4N3hal5lpc4014dma_peripheral25spi0_tx_and_timer1_match0E","hal::lpc40::dma_peripheral::spi0_tx_and_timer1_match0"],[12,4,1,"_CPPv4N3hal5lpc4014dma_peripheral25spi1_rx_and_timer2_match1E","hal::lpc40::dma_peripheral::spi1_rx_and_timer2_match1"],[12,4,1,"_CPPv4N3hal5lpc4014dma_peripheral25spi1_tx_and_timer2_match0E","hal::lpc40::dma_peripheral::spi1_tx_and_timer2_match0"],[12,4,1,"_CPPv4N3hal5lpc4014dma_peripheral25spi2_rx_and_i2s_channel_1E","hal::lpc40::dma_peripheral::spi2_rx_and_i2s_channel_1"],[12,4,1,"_CPPv4N3hal5lpc4014dma_peripheral25spi2_tx_and_i2s_channel_0E","hal::lpc40::dma_peripheral::spi2_tx_and_i2s_channel_0"],[12,4,1,"_CPPv4N3hal5lpc4014dma_peripheral21uart0_rx_and_uart3_rxE","hal::lpc40::dma_peripheral::uart0_rx_and_uart3_rx"],[12,4,1,"_CPPv4N3hal5lpc4014dma_peripheral21uart0_tx_and_uart3_txE","hal::lpc40::dma_peripheral::uart0_tx_and_uart3_tx"],[12,4,1,"_CPPv4N3hal5lpc4014dma_peripheral21uart1_rx_and_uart4_rxE","hal::lpc40::dma_peripheral::uart1_rx_and_uart4_rx"],[12,4,1,"_CPPv4N3hal5lpc4014dma_peripheral21uart1_tx_and_uart4_txE","hal::lpc40::dma_peripheral::uart1_tx_and_uart4_tx"],[12,4,1,"_CPPv4N3hal5lpc4014dma_peripheral26uart2_rx_and_timer3_match1E","hal::lpc40::dma_peripheral::uart2_rx_and_timer3_match1"],[12,4,1,"_CPPv4N3hal5lpc4014dma_peripheral26uart2_tx_and_timer3_match0E","hal::lpc40::dma_peripheral::uart2_tx_and_timer3_match0"],[13,2,1,"_CPPv4N3hal5lpc407dma_spiE","hal::lpc40::dma_spi"],[13,2,1,"_CPPv4N3hal5lpc407dma_spi8bus_infoE","hal::lpc40::dma_spi::bus_info"],[13,5,1,"_CPPv4N3hal5lpc407dma_spi8bus_info5clockE","hal::lpc40::dma_spi::bus_info::clock"],[13,5,1,"_CPPv4N3hal5lpc407dma_spi8bus_info14clock_functionE","hal::lpc40::dma_spi::bus_info::clock_function"],[13,5,1,"_CPPv4N3hal5lpc407dma_spi8bus_info7data_inE","hal::lpc40::dma_spi::bus_info::data_in"],[13,5,1,"_CPPv4N3hal5lpc407dma_spi8bus_info16data_in_functionE","hal::lpc40::dma_spi::bus_info::data_in_function"],[13,5,1,"_CPPv4N3hal5lpc407dma_spi8bus_info8data_outE","hal::lpc40::dma_spi::bus_info::data_out"],[13,5,1,"_CPPv4N3hal5lpc407dma_spi8bus_info17data_out_functionE","hal::lpc40::dma_spi::bus_info::data_out_function"],[13,5,1,"_CPPv4N3hal5lpc407dma_spi8bus_info13peripheral_idE","hal::lpc40::dma_spi::bus_info::peripheral_id"],[13,0,1,"_CPPv4N3hal5lpc407dma_spi7dma_spiE2u8RN3hal9io_waiterERKN3spi8settingsE","hal::lpc40::dma_spi::dma_spi"],[13,0,1,"_CPPv4N3hal5lpc407dma_spi7dma_spiE8bus_info","hal::lpc40::dma_spi::dma_spi"],[13,1,1,"_CPPv4N3hal5lpc407dma_spi7dma_spiE2u8RN3hal9io_waiterERKN3spi8settingsE","hal::lpc40::dma_spi::dma_spi::p_bus"],[13,1,1,"_CPPv4N3hal5lpc407dma_spi7dma_spiE8bus_info","hal::lpc40::dma_spi::dma_spi::p_bus"],[13,1,1,"_CPPv4N3hal5lpc407dma_spi7dma_spiE2u8RN3hal9io_waiterERKN3spi8settingsE","hal::lpc40::dma_spi::dma_spi::p_settings"],[13,1,1,"_CPPv4N3hal5lpc407dma_spi7dma_spiE2u8RN3hal9io_waiterERKN3spi8settingsE","hal::lpc40::dma_spi::dma_spi::p_waiter"],[12,3,1,"_CPPv4N3hal5lpc4017dma_transfer_typeE","hal::lpc40::dma_transfer_type"],[12,4,1,"_CPPv4N3hal5lpc4017dma_transfer_type16memory_to_memoryE","hal::lpc40::dma_transfer_type::memory_to_memory"],[12,4,1,"_CPPv4N3hal5lpc4017dma_transfer_type20memory_to_peripheralE","hal::lpc40::dma_transfer_type::memory_to_peripheral"],[12,4,1,"_CPPv4N3hal5lpc4017dma_transfer_type23memory_to_peripheral_dpE","hal::lpc40::dma_transfer_type::memory_to_peripheral_dp"],[12,4,1,"_CPPv4N3hal5lpc4017dma_transfer_type20peripheral_to_memoryE","hal::lpc40::dma_transfer_type::peripheral_to_memory"],[12,4,1,"_CPPv4N3hal5lpc4017dma_transfer_type23peripheral_to_memory_spE","hal::lpc40::dma_transfer_type::peripheral_to_memory_sp"],[12,4,1,"_CPPv4N3hal5lpc4017dma_transfer_type24peripheral_to_peripheralE","hal::lpc40::dma_transfer_type::peripheral_to_peripheral"],[12,4,1,"_CPPv4N3hal5lpc4017dma_transfer_type27peripheral_to_peripheral_dpE","hal::lpc40::dma_transfer_type::peripheral_to_peripheral_dp"],[12,4,1,"_CPPv4N3hal5lpc4017dma_transfer_type27peripheral_to_peripheral_spE","hal::lpc40::dma_transfer_type::peripheral_to_peripheral_sp"],[12,3,1,"_CPPv4N3hal5lpc4018dma_transfer_widthE","hal::lpc40::dma_transfer_width"],[12,4,1,"_CPPv4N3hal5lpc4018dma_transfer_width6bit_16E","hal::lpc40::dma_transfer_width::bit_16"],[12,4,1,"_CPPv4N3hal5lpc4018dma_transfer_width6bit_32E","hal::lpc40::dma_transfer_width::bit_32"],[12,4,1,"_CPPv4N3hal5lpc4018dma_transfer_width5bit_8E","hal::lpc40::dma_transfer_width::bit_8"],[9,3,1,"_CPPv4N3hal5lpc4019flash_configurationE","hal::lpc40::flash_configuration"],[9,4,1,"_CPPv4N3hal5lpc4019flash_configuration6clock1E","hal::lpc40::flash_configuration::clock1"],[9,4,1,"_CPPv4N3hal5lpc4019flash_configuration6clock2E","hal::lpc40::flash_configuration::clock2"],[9,4,1,"_CPPv4N3hal5lpc4019flash_configuration6clock3E","hal::lpc40::flash_configuration::clock3"],[9,4,1,"_CPPv4N3hal5lpc4019flash_configuration6clock4E","hal::lpc40::flash_configuration::clock4"],[9,4,1,"_CPPv4N3hal5lpc4019flash_configuration6clock5E","hal::lpc40::flash_configuration::clock5"],[9,4,1,"_CPPv4N3hal5lpc4019flash_configuration6clock6E","hal::lpc40::flash_configuration::clock6"],[9,0,1,"_CPPv4N3hal5lpc4013get_frequencyE10peripheral","hal::lpc40::get_frequency"],[9,1,1,"_CPPv4N3hal5lpc4013get_frequencyE10peripheral","hal::lpc40::get_frequency::p_peripheral"],[14,2,1,"_CPPv4N3hal5lpc403i2cE","hal::lpc40::i2c"],[14,2,1,"_CPPv4N3hal5lpc403i2c8bus_infoE","hal::lpc40::i2c::bus_info"],[14,5,1,"_CPPv4N3hal5lpc403i2c8bus_info10duty_cycleE","hal::lpc40::i2c::bus_info::duty_cycle"],[14,5,1,"_CPPv4N3hal5lpc403i2c8bus_info10irq_numberE","hal::lpc40::i2c::bus_info::irq_number"],[14,5,1,"_CPPv4N3hal5lpc403i2c8bus_info13peripheral_idE","hal::lpc40::i2c::bus_info::peripheral_id"],[14,5,1,"_CPPv4N3hal5lpc403i2c8bus_info3sclE","hal::lpc40::i2c::bus_info::scl"],[14,5,1,"_CPPv4N3hal5lpc403i2c8bus_info12scl_functionE","hal::lpc40::i2c::bus_info::scl_function"],[14,5,1,"_CPPv4N3hal5lpc403i2c8bus_info3sdaE","hal::lpc40::i2c::bus_info::sda"],[14,5,1,"_CPPv4N3hal5lpc403i2c8bus_info12sda_functionE","hal::lpc40::i2c::bus_info::sda_function"],[14,0,1,"_CPPv4N3hal5lpc403i2c3i2cE2u8RKN3i2c8settingsERN3hal9io_waiterE","hal::lpc40::i2c::i2c"],[14,0,1,"_CPPv4N3hal5lpc403i2c3i2cERK8bus_infoRKN3i2c8settingsERN3hal9io_waiterE","hal::lpc40::i2c::i2c"],[14,1,1,"_CPPv4N3hal5lpc403i2c3i2cE2u8RKN3i2c8settingsERN3hal9io_waiterE","hal::lpc40::i2c::i2c::p_bus"],[14,1,1,"_CPPv4N3hal5lpc403i2c3i2cERK8bus_infoRKN3i2c8settingsERN3hal9io_waiterE","hal::lpc40::i2c::i2c::p_bus_info"],[14,1,1,"_CPPv4N3hal5lpc403i2c3i2cE2u8RKN3i2c8settingsERN3hal9io_waiterE","hal::lpc40::i2c::i2c::p_settings"],[14,1,1,"_CPPv4N3hal5lpc403i2c3i2cERK8bus_infoRKN3i2c8settingsERN3hal9io_waiterE","hal::lpc40::i2c::i2c::p_settings"],[14,1,1,"_CPPv4N3hal5lpc403i2c3i2cE2u8RKN3i2c8settingsERN3hal9io_waiterE","hal::lpc40::i2c::i2c::p_waiter"],[14,1,1,"_CPPv4N3hal5lpc403i2c3i2cERK8bus_infoRKN3i2c8settingsERN3hal9io_waiterE","hal::lpc40::i2c::i2c::p_waiter"],[17,0,1,"_CPPv4N3hal5lpc4021initialize_interruptsEv","hal::lpc40::initialize_interrupts"],[16,2,1,"_CPPv4N3hal5lpc409input_pinE","hal::lpc40::input_pin"],[16,0,1,"_CPPv4N3hal5lpc409input_pin9input_pinE2u82u8RKN9input_pin8settingsE","hal::lpc40::input_pin::input_pin"],[16,1,1,"_CPPv4N3hal5lpc409input_pin9input_pinE2u82u8RKN9input_pin8settingsE","hal::lpc40::input_pin::input_pin::p_pin"],[16,1,1,"_CPPv4N3hal5lpc409input_pin9input_pinE2u82u8RKN9input_pin8settingsE","hal::lpc40::input_pin::input_pin::p_port"],[16,1,1,"_CPPv4N3hal5lpc409input_pin9input_pinE2u82u8RKN9input_pin8settingsE","hal::lpc40::input_pin::input_pin::p_settings"],[18,2,1,"_CPPv4N3hal5lpc4013interrupt_pinE","hal::lpc40::interrupt_pin"],[18,0,1,"_CPPv4N3hal5lpc4013interrupt_pin13interrupt_pinE2u82u8RK8settings","hal::lpc40::interrupt_pin::interrupt_pin"],[18,1,1,"_CPPv4N3hal5lpc4013interrupt_pin13interrupt_pinE2u82u8RK8settings","hal::lpc40::interrupt_pin::interrupt_pin::p_settings"],[18,1,1,"_CPPv4N3hal5lpc4013interrupt_pin13interrupt_pinE2u82u8RK8settings","hal::lpc40::interrupt_pin::interrupt_pin::pin"],[18,1,1,"_CPPv4N3hal5lpc4013interrupt_pin13interrupt_pinE2u82u8RK8settings","hal::lpc40::interrupt_pin::interrupt_pin::port"],[10,3,1,"_CPPv4N3hal5lpc403irqE","hal::lpc40::irq"],[10,4,1,"_CPPv4N3hal5lpc403irq3adcE","hal::lpc40::irq::adc"],[10,4,1,"_CPPv4N3hal5lpc403irq3bodE","hal::lpc40::irq::bod"],[10,4,1,"_CPPv4N3hal5lpc403irq3canE","hal::lpc40::irq::can"],[10,4,1,"_CPPv4N3hal5lpc403irq11canactivityE","hal::lpc40::irq::canactivity"],[10,4,1,"_CPPv4N3hal5lpc403irq4cmp0E","hal::lpc40::irq::cmp0"],[10,4,1,"_CPPv4N3hal5lpc403irq4cmp1E","hal::lpc40::irq::cmp1"],[10,4,1,"_CPPv4N3hal5lpc403irq3dmaE","hal::lpc40::irq::dma"],[10,4,1,"_CPPv4N3hal5lpc403irq6eepromE","hal::lpc40::irq::eeprom"],[10,4,1,"_CPPv4N3hal5lpc403irq5eint0E","hal::lpc40::irq::eint0"],[10,4,1,"_CPPv4N3hal5lpc403irq5eint1E","hal::lpc40::irq::eint1"],[10,4,1,"_CPPv4N3hal5lpc403irq5eint2E","hal::lpc40::irq::eint2"],[10,4,1,"_CPPv4N3hal5lpc403irq5eint3E","hal::lpc40::irq::eint3"],[10,4,1,"_CPPv4N3hal5lpc403irq4enetE","hal::lpc40::irq::enet"],[10,4,1,"_CPPv4N3hal5lpc403irq4gpioE","hal::lpc40::irq::gpio"],[10,4,1,"_CPPv4N3hal5lpc403irq4i2c0E","hal::lpc40::irq::i2c0"],[10,4,1,"_CPPv4N3hal5lpc403irq4i2c1E","hal::lpc40::irq::i2c1"],[10,4,1,"_CPPv4N3hal5lpc403irq4i2c2E","hal::lpc40::irq::i2c2"],[10,4,1,"_CPPv4N3hal5lpc403irq3i2sE","hal::lpc40::irq::i2s"],[10,4,1,"_CPPv4N3hal5lpc403irq3lcdE","hal::lpc40::irq::lcd"],[10,4,1,"_CPPv4N3hal5lpc403irq3maxE","hal::lpc40::irq::max"],[10,4,1,"_CPPv4N3hal5lpc403irq3mciE","hal::lpc40::irq::mci"],[10,4,1,"_CPPv4N3hal5lpc403irq5mcpwmE","hal::lpc40::irq::mcpwm"],[10,4,1,"_CPPv4N3hal5lpc403irq4pll0E","hal::lpc40::irq::pll0"],[10,4,1,"_CPPv4N3hal5lpc403irq4pll1E","hal::lpc40::irq::pll1"],[10,4,1,"_CPPv4N3hal5lpc403irq4pwm0E","hal::lpc40::irq::pwm0"],[10,4,1,"_CPPv4N3hal5lpc403irq4pwm1E","hal::lpc40::irq::pwm1"],[10,4,1,"_CPPv4N3hal5lpc403irq3qeiE","hal::lpc40::irq::qei"],[10,4,1,"_CPPv4N3hal5lpc403irq9reserved0E","hal::lpc40::irq::reserved0"],[10,4,1,"_CPPv4N3hal5lpc403irq3rtcE","hal::lpc40::irq::rtc"],[10,4,1,"_CPPv4N3hal5lpc403irq4ssp0E","hal::lpc40::irq::ssp0"],[10,4,1,"_CPPv4N3hal5lpc403irq4ssp1E","hal::lpc40::irq::ssp1"],[10,4,1,"_CPPv4N3hal5lpc403irq4ssp2E","hal::lpc40::irq::ssp2"],[10,4,1,"_CPPv4N3hal5lpc403irq6timer0E","hal::lpc40::irq::timer0"],[10,4,1,"_CPPv4N3hal5lpc403irq6timer1E","hal::lpc40::irq::timer1"],[10,4,1,"_CPPv4N3hal5lpc403irq6timer2E","hal::lpc40::irq::timer2"],[10,4,1,"_CPPv4N3hal5lpc403irq6timer3E","hal::lpc40::irq::timer3"],[10,4,1,"_CPPv4N3hal5lpc403irq5uart0E","hal::lpc40::irq::uart0"],[10,4,1,"_CPPv4N3hal5lpc403irq5uart1E","hal::lpc40::irq::uart1"],[10,4,1,"_CPPv4N3hal5lpc403irq5uart2E","hal::lpc40::irq::uart2"],[10,4,1,"_CPPv4N3hal5lpc403irq5uart3E","hal::lpc40::irq::uart3"],[10,4,1,"_CPPv4N3hal5lpc403irq5uart4E","hal::lpc40::irq::uart4"],[10,4,1,"_CPPv4N3hal5lpc403irq3usbE","hal::lpc40::irq::usb"],[10,4,1,"_CPPv4N3hal5lpc403irq11usbactivityE","hal::lpc40::irq::usbactivity"],[10,4,1,"_CPPv4N3hal5lpc403irq3wdtE","hal::lpc40::irq::wdt"],[21,0,1,"_CPPv4N3hal5lpc405is_onE10peripheral","hal::lpc40::is_on"],[21,1,1,"_CPPv4N3hal5lpc405is_onE10peripheral","hal::lpc40::is_on::p_peripheral"],[9,0,1,"_CPPv4N3hal5lpc407maximumE5hertz","hal::lpc40::maximum"],[9,1,1,"_CPPv4N3hal5lpc407maximumE5hertz","hal::lpc40::maximum::p_external_crystal_frequency"],[19,2,1,"_CPPv4N3hal5lpc4010output_pinE","hal::lpc40::output_pin"],[19,0,1,"_CPPv4N3hal5lpc4010output_pin10output_pinE2u82u8RKN10output_pin8settingsE","hal::lpc40::output_pin::output_pin"],[19,1,1,"_CPPv4N3hal5lpc4010output_pin10output_pinE2u82u8RKN10output_pin8settingsE","hal::lpc40::output_pin::output_pin::p_pin"],[19,1,1,"_CPPv4N3hal5lpc4010output_pin10output_pinE2u82u8RKN10output_pin8settingsE","hal::lpc40::output_pin::output_pin::p_port"],[19,1,1,"_CPPv4N3hal5lpc4010output_pin10output_pinE2u82u8RKN10output_pin8settingsE","hal::lpc40::output_pin::output_pin::p_settings"],[10,3,1,"_CPPv4N3hal5lpc4010peripheralE","hal::lpc40::peripheral"],[10,4,1,"_CPPv4N3hal5lpc4010peripheral3adcE","hal::lpc40::peripheral::adc"],[10,4,1,"_CPPv4N3hal5lpc4010peripheral4can1E","hal::lpc40::peripheral::can1"],[10,4,1,"_CPPv4N3hal5lpc4010peripheral4can2E","hal::lpc40::peripheral::can2"],[10,4,1,"_CPPv4N3hal5lpc4010peripheral3cpuE","hal::lpc40::peripheral::cpu"],[10,4,1,"_CPPv4N3hal5lpc4010peripheral3dacE","hal::lpc40::peripheral::dac"],[10,4,1,"_CPPv4N3hal5lpc4010peripheral3emcE","hal::lpc40::peripheral::emc"],[10,4,1,"_CPPv4N3hal5lpc4010peripheral8ethernetE","hal::lpc40::peripheral::ethernet"],[10,4,1,"_CPPv4N3hal5lpc4010peripheral5gpdmaE","hal::lpc40::peripheral::gpdma"],[10,4,1,"_CPPv4N3hal5lpc4010peripheral4gpioE","hal::lpc40::peripheral::gpio"],[10,4,1,"_CPPv4N3hal5lpc4010peripheral4i2c0E","hal::lpc40::peripheral::i2c0"],[10,4,1,"_CPPv4N3hal5lpc4010peripheral4i2c1E","hal::lpc40::peripheral::i2c1"],[10,4,1,"_CPPv4N3hal5lpc4010peripheral4i2c2E","hal::lpc40::peripheral::i2c2"],[10,4,1,"_CPPv4N3hal5lpc4010peripheral3i2sE","hal::lpc40::peripheral::i2s"],[10,4,1,"_CPPv4N3hal5lpc4010peripheral3lcdE","hal::lpc40::peripheral::lcd"],[10,4,1,"_CPPv4N3hal5lpc4010peripheral17motor_control_pwmE","hal::lpc40::peripheral::motor_control_pwm"],[10,4,1,"_CPPv4N3hal5lpc4010peripheral4pwm0E","hal::lpc40::peripheral::pwm0"],[10,4,1,"_CPPv4N3hal5lpc4010peripheral4pwm1E","hal::lpc40::peripheral::pwm1"],[10,4,1,"_CPPv4N3hal5lpc4010peripheral18quadrature_encoderE","hal::lpc40::peripheral::quadrature_encoder"],[10,4,1,"_CPPv4N3hal5lpc4010peripheral3rtcE","hal::lpc40::peripheral::rtc"],[10,4,1,"_CPPv4N3hal5lpc4010peripheral6sdcardE","hal::lpc40::peripheral::sdcard"],[10,4,1,"_CPPv4N3hal5lpc4010peripheral5spifiE","hal::lpc40::peripheral::spifi"],[10,4,1,"_CPPv4N3hal5lpc4010peripheral4ssp0E","hal::lpc40::peripheral::ssp0"],[10,4,1,"_CPPv4N3hal5lpc4010peripheral4ssp1E","hal::lpc40::peripheral::ssp1"],[10,4,1,"_CPPv4N3hal5lpc4010peripheral4ssp2E","hal::lpc40::peripheral::ssp2"],[10,4,1,"_CPPv4N3hal5lpc4010peripheral6timer0E","hal::lpc40::peripheral::timer0"],[10,4,1,"_CPPv4N3hal5lpc4010peripheral6timer1E","hal::lpc40::peripheral::timer1"],[10,4,1,"_CPPv4N3hal5lpc4010peripheral6timer2E","hal::lpc40::peripheral::timer2"],[10,4,1,"_CPPv4N3hal5lpc4010peripheral6timer3E","hal::lpc40::peripheral::timer3"],[10,4,1,"_CPPv4N3hal5lpc4010peripheral5uart0E","hal::lpc40::peripheral::uart0"],[10,4,1,"_CPPv4N3hal5lpc4010peripheral5uart1E","hal::lpc40::peripheral::uart1"],[10,4,1,"_CPPv4N3hal5lpc4010peripheral5uart2E","hal::lpc40::peripheral::uart2"],[10,4,1,"_CPPv4N3hal5lpc4010peripheral5uart3E","hal::lpc40::peripheral::uart3"],[10,4,1,"_CPPv4N3hal5lpc4010peripheral5uart4E","hal::lpc40::peripheral::uart4"],[10,4,1,"_CPPv4N3hal5lpc4010peripheral3usbE","hal::lpc40::peripheral::usb"],[20,2,1,"_CPPv4N3hal5lpc403pinE","hal::lpc40::pin"],[20,0,1,"_CPPv4NK3hal5lpc403pin6analogEb","hal::lpc40::pin::analog"],[20,1,1,"_CPPv4NK3hal5lpc403pin6analogEb","hal::lpc40::pin::analog::p_enable"],[20,0,1,"_CPPv4NK3hal5lpc403pin3dacEb","hal::lpc40::pin::dac"],[20,1,1,"_CPPv4NK3hal5lpc403pin3dacEb","hal::lpc40::pin::dac::p_enable"],[20,0,1,"_CPPv4NK3hal5lpc403pin14digital_filterEb","hal::lpc40::pin::digital_filter"],[20,1,1,"_CPPv4NK3hal5lpc403pin14digital_filterEb","hal::lpc40::pin::digital_filter::p_enable"],[20,0,1,"_CPPv4NK3hal5lpc403pin8functionE7uint8_t","hal::lpc40::pin::function"],[20,1,1,"_CPPv4NK3hal5lpc403pin8functionE7uint8_t","hal::lpc40::pin::function::p_function_code"],[20,0,1,"_CPPv4NK3hal5lpc403pin14high_slew_rateEb","hal::lpc40::pin::high_slew_rate"],[20,1,1,"_CPPv4NK3hal5lpc403pin14high_slew_rateEb","hal::lpc40::pin::high_slew_rate::p_enable"],[20,0,1,"_CPPv4NK3hal5lpc403pin13highspeed_i2cEb","hal::lpc40::pin::highspeed_i2c"],[20,1,1,"_CPPv4NK3hal5lpc403pin13highspeed_i2cEb","hal::lpc40::pin::highspeed_i2c::p_enable"],[20,0,1,"_CPPv4NK3hal5lpc403pin10hysteresisEb","hal::lpc40::pin::hysteresis"],[20,1,1,"_CPPv4NK3hal5lpc403pin10hysteresisEb","hal::lpc40::pin::hysteresis::p_enable"],[20,0,1,"_CPPv4NK3hal5lpc403pin16i2c_high_currentEb","hal::lpc40::pin::i2c_high_current"],[20,1,1,"_CPPv4NK3hal5lpc403pin16i2c_high_currentEb","hal::lpc40::pin::i2c_high_current::p_enable"],[20,0,1,"_CPPv4NK3hal5lpc403pin12input_invertEb","hal::lpc40::pin::input_invert"],[20,1,1,"_CPPv4NK3hal5lpc403pin12input_invertEb","hal::lpc40::pin::input_invert::p_enable"],[20,0,1,"_CPPv4NK3hal5lpc403pin10open_drainEb","hal::lpc40::pin::open_drain"],[20,1,1,"_CPPv4NK3hal5lpc403pin10open_drainEb","hal::lpc40::pin::open_drain::p_enable"],[20,0,1,"_CPPv4N3hal5lpc403pin3pinE2u82u8","hal::lpc40::pin::pin"],[20,0,1,"_CPPv4N3hal5lpc403pin3pinEv","hal::lpc40::pin::pin"],[20,1,1,"_CPPv4N3hal5lpc403pin3pinE2u82u8","hal::lpc40::pin::pin::p_pin"],[20,1,1,"_CPPv4N3hal5lpc403pin3pinE2u82u8","hal::lpc40::pin::pin::p_port"],[20,0,1,"_CPPv4NK3hal5lpc403pin8resistorEN3hal12pin_resistorE","hal::lpc40::pin::resistor"],[20,1,1,"_CPPv4NK3hal5lpc403pin8resistorEN3hal12pin_resistorE","hal::lpc40::pin::resistor::p_resistor"],[21,0,1,"_CPPv4N3hal5lpc409power_offE10peripheral","hal::lpc40::power_off"],[21,1,1,"_CPPv4N3hal5lpc409power_offE10peripheral","hal::lpc40::power_off::p_peripheral"],[21,0,1,"_CPPv4N3hal5lpc408power_onE10peripheral","hal::lpc40::power_on"],[21,1,1,"_CPPv4N3hal5lpc408power_onE10peripheral","hal::lpc40::power_on::p_peripheral"],[22,2,1,"_CPPv4N3hal5lpc403pwmE","hal::lpc40::pwm"],[22,2,1,"_CPPv4N3hal5lpc403pwm7channelE","hal::lpc40::pwm::channel"],[22,5,1,"_CPPv4N3hal5lpc403pwm7channel5indexE","hal::lpc40::pwm::channel::index"],[22,5,1,"_CPPv4N3hal5lpc403pwm7channel13peripheral_idE","hal::lpc40::pwm::channel::peripheral_id"],[22,5,1,"_CPPv4N3hal5lpc403pwm7channel12pin_functionE","hal::lpc40::pwm::channel::pin_function"],[22,5,1,"_CPPv4N3hal5lpc403pwm7channel7pwm_pinE","hal::lpc40::pwm::channel::pwm_pin"],[22,0,1,"_CPPv4N3hal5lpc403pwm3pwmE2u82u8","hal::lpc40::pwm::pwm"],[22,1,1,"_CPPv4N3hal5lpc403pwm3pwmE2u82u8","hal::lpc40::pwm::pwm::p_channel"],[22,1,1,"_CPPv4N3hal5lpc403pwm3pwmE2u82u8","hal::lpc40::pwm::pwm::p_peripheral"],[12,0,1,"_CPPv4N3hal5lpc4012set_dma_lockERN3hal10basic_lockE","hal::lpc40::set_dma_lock"],[12,1,1,"_CPPv4N3hal5lpc4012set_dma_lockERN3hal10basic_lockE","hal::lpc40::set_dma_lock::p_lock"],[12,0,1,"_CPPv4N3hal5lpc4018setup_dma_transferERK3dmaN3hal8callbackIFvvEEE","hal::lpc40::setup_dma_transfer"],[12,1,1,"_CPPv4N3hal5lpc4018setup_dma_transferERK3dmaN3hal8callbackIFvvEEE","hal::lpc40::setup_dma_transfer::p_configuration"],[12,1,1,"_CPPv4N3hal5lpc4018setup_dma_transferERK3dmaN3hal8callbackIFvvEEE","hal::lpc40::setup_dma_transfer::p_interrupt_callback"],[23,2,1,"_CPPv4N3hal5lpc403spiE","hal::lpc40::spi"],[23,2,1,"_CPPv4N3hal5lpc403spi8bus_infoE","hal::lpc40::spi::bus_info"],[23,5,1,"_CPPv4N3hal5lpc403spi8bus_info5clockE","hal::lpc40::spi::bus_info::clock"],[23,5,1,"_CPPv4N3hal5lpc403spi8bus_info14clock_functionE","hal::lpc40::spi::bus_info::clock_function"],[23,5,1,"_CPPv4N3hal5lpc403spi8bus_info7data_inE","hal::lpc40::spi::bus_info::data_in"],[23,5,1,"_CPPv4N3hal5lpc403spi8bus_info16data_in_functionE","hal::lpc40::spi::bus_info::data_in_function"],[23,5,1,"_CPPv4N3hal5lpc403spi8bus_info8data_outE","hal::lpc40::spi::bus_info::data_out"],[23,5,1,"_CPPv4N3hal5lpc403spi8bus_info17data_out_functionE","hal::lpc40::spi::bus_info::data_out_function"],[23,5,1,"_CPPv4N3hal5lpc403spi8bus_info13peripheral_idE","hal::lpc40::spi::bus_info::peripheral_id"],[23,0,1,"_CPPv4N3hal5lpc403spi3spiE2u8RKN3spi8settingsE","hal::lpc40::spi::spi"],[23,0,1,"_CPPv4N3hal5lpc403spi3spiE8bus_info","hal::lpc40::spi::spi"],[23,1,1,"_CPPv4N3hal5lpc403spi3spiE2u8RKN3spi8settingsE","hal::lpc40::spi::spi::p_bus"],[23,1,1,"_CPPv4N3hal5lpc403spi3spiE8bus_info","hal::lpc40::spi::spi::p_bus"],[23,1,1,"_CPPv4N3hal5lpc403spi3spiE2u8RKN3spi8settingsE","hal::lpc40::spi::spi::p_settings"],[9,3,1,"_CPPv4N3hal5lpc4018spifi_clock_sourceE","hal::lpc40::spifi_clock_source"],[9,4,1,"_CPPv4N3hal5lpc4018spifi_clock_source4pll0E","hal::lpc40::spifi_clock_source::pll0"],[9,4,1,"_CPPv4N3hal5lpc4018spifi_clock_source4pll1E","hal::lpc40::spifi_clock_source::pll1"],[9,4,1,"_CPPv4N3hal5lpc4018spifi_clock_source12system_clockE","hal::lpc40::spifi_clock_source::system_clock"],[24,2,1,"_CPPv4N3hal5lpc4014stream_dac_u16E","hal::lpc40::stream_dac_u16"],[24,2,1,"_CPPv4N3hal5lpc4013stream_dac_u8E","hal::lpc40::stream_dac_u8"],[25,2,1,"_CPPv4N3hal5lpc404uartE","hal::lpc40::uart"],[25,2,1,"_CPPv4N3hal5lpc404uart4portE","hal::lpc40::uart::port"],[25,5,1,"_CPPv4N3hal5lpc404uart4port2idE","hal::lpc40::uart::port::id"],[25,5,1,"_CPPv4N3hal5lpc404uart4port10irq_numberE","hal::lpc40::uart::port::irq_number"],[25,5,1,"_CPPv4N3hal5lpc404uart4port2rxE","hal::lpc40::uart::port::rx"],[25,5,1,"_CPPv4N3hal5lpc404uart4port11rx_functionE","hal::lpc40::uart::port::rx_function"],[25,5,1,"_CPPv4N3hal5lpc404uart4port2txE","hal::lpc40::uart::port::tx"],[25,5,1,"_CPPv4N3hal5lpc404uart4port11tx_functionE","hal::lpc40::uart::port::tx_function"],[25,0,1,"_CPPv4N3hal5lpc404uart4uartENSt7uint8_tENSt4spanIN3hal4byteEEERKN6serial8settingsE","hal::lpc40::uart::uart"],[25,0,1,"_CPPv4N3hal5lpc404uart4uartERKN4uart4portENSt4spanIN3hal4byteEEERKN6serial8settingsE","hal::lpc40::uart::uart"],[25,1,1,"_CPPv4N3hal5lpc404uart4uartERKN4uart4portENSt4spanIN3hal4byteEEERKN6serial8settingsE","hal::lpc40::uart::uart::p_port"],[25,1,1,"_CPPv4N3hal5lpc404uart4uartENSt7uint8_tENSt4spanIN3hal4byteEEERKN6serial8settingsE","hal::lpc40::uart::uart::p_port_number"],[25,1,1,"_CPPv4N3hal5lpc404uart4uartENSt7uint8_tENSt4spanIN3hal4byteEEERKN6serial8settingsE","hal::lpc40::uart::uart::p_receive_working_buffer"],[25,1,1,"_CPPv4N3hal5lpc404uart4uartERKN4uart4portENSt4spanIN3hal4byteEEERKN6serial8settingsE","hal::lpc40::uart::uart::p_receive_working_buffer"],[25,1,1,"_CPPv4N3hal5lpc404uart4uartENSt7uint8_tENSt4spanIN3hal4byteEEERKN6serial8settingsE","hal::lpc40::uart::uart::p_settings"],[25,1,1,"_CPPv4N3hal5lpc404uart4uartERKN4uart4portENSt4spanIN3hal4byteEEERKN6serial8settingsE","hal::lpc40::uart::uart::p_settings"],[9,3,1,"_CPPv4N3hal5lpc4016usb_clock_sourceE","hal::lpc40::usb_clock_source"],[9,4,1,"_CPPv4N3hal5lpc4016usb_clock_source4pll0E","hal::lpc40::usb_clock_source::pll0"],[9,4,1,"_CPPv4N3hal5lpc4016usb_clock_source4pll1E","hal::lpc40::usb_clock_source::pll1"],[9,4,1,"_CPPv4N3hal5lpc4016usb_clock_source12system_clockE","hal::lpc40::usb_clock_source::system_clock"],[9,3,1,"_CPPv4N3hal5lpc4011usb_dividerE","hal::lpc40::usb_divider"],[9,4,1,"_CPPv4N3hal5lpc4011usb_divider10divide_by1E","hal::lpc40::usb_divider::divide_by1"],[9,4,1,"_CPPv4N3hal5lpc4011usb_divider10divide_by2E","hal::lpc40::usb_divider::divide_by2"],[9,4,1,"_CPPv4N3hal5lpc4011usb_divider10divide_by3E","hal::lpc40::usb_divider::divide_by3"],[9,4,1,"_CPPv4N3hal5lpc4011usb_divider10divide_by4E","hal::lpc40::usb_divider::divide_by4"],[9,0,1,"_CPPv4N3hal5lpc4025using_external_oscillatorEv","hal::lpc40::using_external_oscillator"],[26,2,1,"_CPPv4N3hal13stm32_generic3i2cE","hal::stm32_generic::i2c"],[26,0,1,"_CPPv4N3hal13stm32_generic3i2c9configureERKN3hal3i2c8settingsE5hertz","hal::stm32_generic::i2c::configure"],[26,1,1,"_CPPv4N3hal13stm32_generic3i2c9configureERKN3hal3i2c8settingsE5hertz","hal::stm32_generic::i2c::configure::p_frequency"],[26,1,1,"_CPPv4N3hal13stm32_generic3i2c9configureERKN3hal3i2c8settingsE5hertz","hal::stm32_generic::i2c::configure::p_settings"],[26,0,1,"_CPPv4N3hal13stm32_generic3i2c16handle_i2c_errorEv","hal::stm32_generic::i2c::handle_i2c_error"],[26,0,1,"_CPPv4N3hal13stm32_generic3i2c16handle_i2c_eventEv","hal::stm32_generic::i2c::handle_i2c_event"],[26,0,1,"_CPPv4N3hal13stm32_generic3i2c3i2cEPv","hal::stm32_generic::i2c::i2c"],[26,1,1,"_CPPv4N3hal13stm32_generic3i2c3i2cEPv","hal::stm32_generic::i2c::i2c::p_i2c"],[26,0,1,"_CPPv4N3hal13stm32_generic3i2c11transactionEN3hal4byteENSt4spanIKN3hal4byteEEENSt4spanIN3hal4byteEEEN3hal12function_refIN3hal16timeout_functionEEE","hal::stm32_generic::i2c::transaction"],[26,1,1,"_CPPv4N3hal13stm32_generic3i2c11transactionEN3hal4byteENSt4spanIKN3hal4byteEEENSt4spanIN3hal4byteEEEN3hal12function_refIN3hal16timeout_functionEEE","hal::stm32_generic::i2c::transaction::p_address"],[26,1,1,"_CPPv4N3hal13stm32_generic3i2c11transactionEN3hal4byteENSt4spanIKN3hal4byteEEENSt4spanIN3hal4byteEEEN3hal12function_refIN3hal16timeout_functionEEE","hal::stm32_generic::i2c::transaction::p_data_in"],[26,1,1,"_CPPv4N3hal13stm32_generic3i2c11transactionEN3hal4byteENSt4spanIKN3hal4byteEEENSt4spanIN3hal4byteEEEN3hal12function_refIN3hal16timeout_functionEEE","hal::stm32_generic::i2c::transaction::p_data_out"],[26,1,1,"_CPPv4N3hal13stm32_generic3i2c11transactionEN3hal4byteENSt4spanIKN3hal4byteEEENSt4spanIN3hal4byteEEEN3hal12function_refIN3hal16timeout_functionEEE","hal::stm32_generic::i2c::transaction::p_timeout"],[26,0,1,"_CPPv4N3hal13stm32_generic3i2cD0Ev","hal::stm32_generic::i2c::~i2c"],[28,2,1,"_CPPv4N3hal13stm32_generic3pwmE","hal::stm32_generic::pwm"],[28,0,1,"_CPPv4N3hal13stm32_generic3pwm10duty_cycleE3u16","hal::stm32_generic::pwm::duty_cycle"],[28,0,1,"_CPPv4N3hal13stm32_generic3pwm10duty_cycleEf","hal::stm32_generic::pwm::duty_cycle"],[28,1,1,"_CPPv4N3hal13stm32_generic3pwm10duty_cycleE3u16","hal::stm32_generic::pwm::duty_cycle::p_duty_cycle"],[28,1,1,"_CPPv4N3hal13stm32_generic3pwm10duty_cycleEf","hal::stm32_generic::pwm::duty_cycle::p_duty_cycle"],[28,0,1,"_CPPv4N3hal13stm32_generic3pwm9frequencyE3u32","hal::stm32_generic::pwm::frequency"],[28,1,1,"_CPPv4N3hal13stm32_generic3pwm9frequencyE3u32","hal::stm32_generic::pwm::frequency::p_timer_clock_frequency"],[28,0,1,"_CPPv4N3hal13stm32_generic3pwm10initializeEN3hal6unsafeEPv16pwm_channel_info","hal::stm32_generic::pwm::initialize"],[28,1,1,"_CPPv4N3hal13stm32_generic3pwm10initializeEN3hal6unsafeEPv16pwm_channel_info","hal::stm32_generic::pwm::initialize::p_reg"],[28,1,1,"_CPPv4N3hal13stm32_generic3pwm10initializeEN3hal6unsafeEPv16pwm_channel_info","hal::stm32_generic::pwm::initialize::p_settings"],[28,0,1,"_CPPv4N3hal13stm32_generic3pwm3pwmEN3hal6unsafeE","hal::stm32_generic::pwm::pwm"],[28,0,1,"_CPPv4N3hal13stm32_generic3pwm3pwmEN3hal6unsafeEPv16pwm_channel_info","hal::stm32_generic::pwm::pwm"],[28,1,1,"_CPPv4N3hal13stm32_generic3pwm3pwmEN3hal6unsafeEPv16pwm_channel_info","hal::stm32_generic::pwm::pwm::p_reg"],[28,1,1,"_CPPv4N3hal13stm32_generic3pwm3pwmEN3hal6unsafeEPv16pwm_channel_info","hal::stm32_generic::pwm::pwm::p_settings"],[28,2,1,"_CPPv4N3hal13stm32_generic19pwm_group_frequencyE","hal::stm32_generic::pwm_group_frequency"],[28,0,1,"_CPPv4N3hal13stm32_generic19pwm_group_frequency19pwm_group_frequencyEN3hal6unsafeEPv","hal::stm32_generic::pwm_group_frequency::pwm_group_frequency"],[28,1,1,"_CPPv4N3hal13stm32_generic19pwm_group_frequency19pwm_group_frequencyEN3hal6unsafeEPv","hal::stm32_generic::pwm_group_frequency::pwm_group_frequency::p_reg"],[28,0,1,"_CPPv4N3hal13stm32_generic19pwm_group_frequency19set_group_frequencyE19pwm_timer_frequency","hal::stm32_generic::pwm_group_frequency::set_group_frequency"],[28,1,1,"_CPPv4N3hal13stm32_generic19pwm_group_frequency19set_group_frequencyE19pwm_timer_frequency","hal::stm32_generic::pwm_group_frequency::set_group_frequency::p_timer_frequency"],[29,2,1,"_CPPv4N3hal13stm32_generic18quadrature_encoderE","hal::stm32_generic::quadrature_encoder"],[30,2,1,"_CPPv4N3hal13stm32_generic3spiE","hal::stm32_generic::spi"],[30,0,1,"_CPPv4N3hal13stm32_generic3spi9configureERKN3hal3spi8settingsEN3hal5hertzE","hal::stm32_generic::spi::configure"],[30,1,1,"_CPPv4N3hal13stm32_generic3spi9configureERKN3hal3spi8settingsEN3hal5hertzE","hal::stm32_generic::spi::configure::p_peripheral_clock_speed"],[30,1,1,"_CPPv4N3hal13stm32_generic3spi9configureERKN3hal3spi8settingsEN3hal5hertzE","hal::stm32_generic::spi::configure::p_settings"],[30,0,1,"_CPPv4N3hal13stm32_generic3spi3spiEN3hal6unsafeEPv","hal::stm32_generic::spi::spi"],[30,1,1,"_CPPv4N3hal13stm32_generic3spi3spiEN3hal6unsafeEPv","hal::stm32_generic::spi::spi::p_peripheral_address"],[30,0,1,"_CPPv4N3hal13stm32_generic3spi8transferENSt4spanIKN3hal4byteEEENSt4spanIN3hal4byteEEEN3hal4byteE","hal::stm32_generic::spi::transfer"],[30,1,1,"_CPPv4N3hal13stm32_generic3spi8transferENSt4spanIKN3hal4byteEEENSt4spanIN3hal4byteEEEN3hal4byteE","hal::stm32_generic::spi::transfer::p_data_in"],[30,1,1,"_CPPv4N3hal13stm32_generic3spi8transferENSt4spanIKN3hal4byteEEENSt4spanIN3hal4byteEEEN3hal4byteE","hal::stm32_generic::spi::transfer::p_data_out"],[30,1,1,"_CPPv4N3hal13stm32_generic3spi8transferENSt4spanIKN3hal4byteEEENSt4spanIN3hal4byteEEEN3hal4byteE","hal::stm32_generic::spi::transfer::p_filler"],[31,2,1,"_CPPv4N3hal13stm32_generic5timerE","hal::stm32_generic::timer"],[31,0,1,"_CPPv4N3hal13stm32_generic5timer6cancelEv","hal::stm32_generic::timer::cancel"],[31,0,1,"_CPPv4N3hal13stm32_generic5timer10initializeEN3hal6unsafeEPvPFvvEN8cortex_m5irq_tEN8cortex_m17interrupt_pointerE","hal::stm32_generic::timer::initialize"],[31,1,1,"_CPPv4N3hal13stm32_generic5timer10initializeEN3hal6unsafeEPvPFvvEN8cortex_m5irq_tEN8cortex_m17interrupt_pointerE","hal::stm32_generic::timer::initialize::initialize_interrupts_function"],[31,1,1,"_CPPv4N3hal13stm32_generic5timer10initializeEN3hal6unsafeEPvPFvvEN8cortex_m5irq_tEN8cortex_m17interrupt_pointerE","hal::stm32_generic::timer::initialize::p_handler"],[31,1,1,"_CPPv4N3hal13stm32_generic5timer10initializeEN3hal6unsafeEPvPFvvEN8cortex_m5irq_tEN8cortex_m17interrupt_pointerE","hal::stm32_generic::timer::initialize::p_irq"],[31,1,1,"_CPPv4N3hal13stm32_generic5timer10initializeEN3hal6unsafeEPvPFvvEN8cortex_m5irq_tEN8cortex_m17interrupt_pointerE","hal::stm32_generic::timer::initialize::p_peripheral_address"],[31,0,1,"_CPPv4N3hal13stm32_generic5timer10is_runningEv","hal::stm32_generic::timer::is_running"],[31,0,1,"_CPPv4N3hal13stm32_generic5timer8scheduleEN3hal13time_durationE3u32","hal::stm32_generic::timer::schedule"],[31,1,1,"_CPPv4N3hal13stm32_generic5timer8scheduleEN3hal13time_durationE3u32","hal::stm32_generic::timer::schedule::p_delay"],[31,1,1,"_CPPv4N3hal13stm32_generic5timer8scheduleEN3hal13time_durationE3u32","hal::stm32_generic::timer::schedule::p_timer_clock_frequency"],[31,0,1,"_CPPv4N3hal13stm32_generic5timer5timerEN3hal6unsafeE","hal::stm32_generic::timer::timer"],[32,2,1,"_CPPv4N3hal13stm32_generic4uartE","hal::stm32_generic::uart"],[32,0,1,"_CPPv4N3hal13stm32_generic4uart9configureERKN6serial8settingsE5hertz","hal::stm32_generic::uart::configure"],[32,1,1,"_CPPv4N3hal13stm32_generic4uart9configureERKN6serial8settingsE5hertz","hal::stm32_generic::uart::configure::p_frequency"],[32,1,1,"_CPPv4N3hal13stm32_generic4uart9configureERKN6serial8settingsE5hertz","hal::stm32_generic::uart::configure::p_settings"],[32,0,1,"_CPPv4N3hal13stm32_generic4uart9uart_readERNSt4spanI4byteEERK3u32","hal::stm32_generic::uart::uart_read"],[32,1,1,"_CPPv4N3hal13stm32_generic4uart9uart_readERNSt4spanI4byteEERK3u32","hal::stm32_generic::uart::uart_read::p_data"],[32,1,1,"_CPPv4N3hal13stm32_generic4uart9uart_readERNSt4spanI4byteEERK3u32","hal::stm32_generic::uart::uart_read::p_dma_cursor_position"],[32,0,1,"_CPPv4N3hal13stm32_generic4uart10uart_writeENSt4spanIK4byteEE","hal::stm32_generic::uart::uart_write"],[32,1,1,"_CPPv4N3hal13stm32_generic4uart10uart_writeENSt4spanIK4byteEE","hal::stm32_generic::uart::uart_write::p_data"],[32,2,1,"_CPPv4N3hal13stm32_generic15zero_copy_usartE","hal::stm32_generic::zero_copy_usart"],[32,0,1,"_CPPv4N3hal13stm32_generic15zero_copy_usart9configureERKN6serial8settingsE3u32","hal::stm32_generic::zero_copy_usart::configure"],[32,1,1,"_CPPv4N3hal13stm32_generic15zero_copy_usart9configureERKN6serial8settingsE3u32","hal::stm32_generic::zero_copy_usart::configure::p_frequency"],[32,1,1,"_CPPv4N3hal13stm32_generic15zero_copy_usart9configureERKN6serial8settingsE3u32","hal::stm32_generic::zero_copy_usart::configure::p_settings"],[32,0,1,"_CPPv4N3hal13stm32_generic15zero_copy_usart9uart_readERNSt4spanI4byteEERK3u32","hal::stm32_generic::zero_copy_usart::uart_read"],[32,1,1,"_CPPv4N3hal13stm32_generic15zero_copy_usart9uart_readERNSt4spanI4byteEERK3u32","hal::stm32_generic::zero_copy_usart::uart_read::p_data"],[32,1,1,"_CPPv4N3hal13stm32_generic15zero_copy_usart9uart_readERNSt4spanI4byteEERK3u32","hal::stm32_generic::zero_copy_usart::uart_read::p_dma_cursor_position"],[32,0,1,"_CPPv4N3hal13stm32_generic15zero_copy_usart10uart_writeENSt4spanIK4byteEE","hal::stm32_generic::zero_copy_usart::uart_write"],[32,1,1,"_CPPv4N3hal13stm32_generic15zero_copy_usart10uart_writeENSt4spanIK4byteEE","hal::stm32_generic::zero_copy_usart::uart_write::p_data"],[39,0,1,"_CPPv4N3hal7stm32f117acquire_input_pinENSt3pmr21polymorphic_allocatorIEERKN3hal2v510strong_ptrI12gpio_managerEE2u8RKN9input_pin8settingsE","hal::stm32f1::acquire_input_pin"],[39,1,1,"_CPPv4N3hal7stm32f117acquire_input_pinENSt3pmr21polymorphic_allocatorIEERKN3hal2v510strong_ptrI12gpio_managerEE2u8RKN9input_pin8settingsE","hal::stm32f1::acquire_input_pin::p_allocator"],[39,1,1,"_CPPv4N3hal7stm32f117acquire_input_pinENSt3pmr21polymorphic_allocatorIEERKN3hal2v510strong_ptrI12gpio_managerEE2u8RKN9input_pin8settingsE","hal::stm32f1::acquire_input_pin::p_manager"],[39,1,1,"_CPPv4N3hal7stm32f117acquire_input_pinENSt3pmr21polymorphic_allocatorIEERKN3hal2v510strong_ptrI12gpio_managerEE2u8RKN9input_pin8settingsE","hal::stm32f1::acquire_input_pin::p_pin"],[39,1,1,"_CPPv4N3hal7stm32f117acquire_input_pinENSt3pmr21polymorphic_allocatorIEERKN3hal2v510strong_ptrI12gpio_managerEE2u8RKN9input_pin8settingsE","hal::stm32f1::acquire_input_pin::p_settings"],[39,0,1,"_CPPv4N3hal7stm32f118acquire_output_pinENSt3pmr21polymorphic_allocatorIEERKN3hal2v510strong_ptrI12gpio_managerEE2u8RKN10output_pin8settingsE","hal::stm32f1::acquire_output_pin"],[39,1,1,"_CPPv4N3hal7stm32f118acquire_output_pinENSt3pmr21polymorphic_allocatorIEERKN3hal2v510strong_ptrI12gpio_managerEE2u8RKN10output_pin8settingsE","hal::stm32f1::acquire_output_pin::p_allocator"],[39,1,1,"_CPPv4N3hal7stm32f118acquire_output_pinENSt3pmr21polymorphic_allocatorIEERKN3hal2v510strong_ptrI12gpio_managerEE2u8RKN10output_pin8settingsE","hal::stm32f1::acquire_output_pin::p_manager"],[39,1,1,"_CPPv4N3hal7stm32f118acquire_output_pinENSt3pmr21polymorphic_allocatorIEERKN3hal2v510strong_ptrI12gpio_managerEE2u8RKN10output_pin8settingsE","hal::stm32f1::acquire_output_pin::p_pin"],[39,1,1,"_CPPv4N3hal7stm32f118acquire_output_pinENSt3pmr21polymorphic_allocatorIEERKN3hal2v510strong_ptrI12gpio_managerEE2u8RKN10output_pin8settingsE","hal::stm32f1::acquire_output_pin::p_settings"],[45,0,1,"_CPPv4N3hal7stm32f116activate_mco_pa8E10mco_source","hal::stm32f1::activate_mco_pa8"],[45,1,1,"_CPPv4N3hal7stm32f116activate_mco_pa8E10mco_source","hal::stm32f1::activate_mco_pa8::p_source"],[36,3,1,"_CPPv4N3hal7stm32f111adc_dividerE","hal::stm32f1::adc_divider"],[36,4,1,"_CPPv4N3hal7stm32f111adc_divider11divide_by_2E","hal::stm32f1::adc_divider::divide_by_2"],[36,4,1,"_CPPv4N3hal7stm32f111adc_divider11divide_by_4E","hal::stm32f1::adc_divider::divide_by_4"],[36,4,1,"_CPPv4N3hal7stm32f111adc_divider11divide_by_6E","hal::stm32f1::adc_divider::divide_by_6"],[36,4,1,"_CPPv4N3hal7stm32f111adc_divider11divide_by_8E","hal::stm32f1::adc_divider::divide_by_8"],[33,2,1,"_CPPv4N3hal7stm32f111adc_managerE","hal::stm32f1::adc_manager"],[33,0,1,"_CPPv4N3hal7stm32f111adc_manager15acquire_channelE8adc_pins","hal::stm32f1::adc_manager::acquire_channel"],[33,1,1,"_CPPv4N3hal7stm32f111adc_manager15acquire_channelE8adc_pins","hal::stm32f1::adc_manager::acquire_channel::p_pin"],[33,2,1,"_CPPv4N3hal7stm32f111adc_manager7channelE","hal::stm32f1::adc_manager::channel"],[33,0,1,"_CPPv4I_10peripheralEN3hal7stm32f111adc_manager7channel7channelERN7stm32f13adcI2idEE8adc_pins","hal::stm32f1::adc_manager::channel::channel"],[33,6,1,"_CPPv4I_10peripheralEN3hal7stm32f111adc_manager7channel7channelERN7stm32f13adcI2idEE8adc_pins","hal::stm32f1::adc_manager::channel::channel::id"],[33,1,1,"_CPPv4I_10peripheralEN3hal7stm32f111adc_manager7channel7channelERN7stm32f13adcI2idEE8adc_pins","hal::stm32f1::adc_manager::channel::channel::p_adc"],[33,1,1,"_CPPv4I_10peripheralEN3hal7stm32f111adc_manager7channel7channelERN7stm32f13adcI2idEE8adc_pins","hal::stm32f1::adc_manager::channel::channel::p_pin"],[48,2,1,"_CPPv4N3hal7stm32f122advanced_timer_managerE","hal::stm32f1::advanced_timer_manager"],[48,0,1,"_CPPv4N3hal7stm32f122advanced_timer_manager27acquire_pwm_group_frequencyEv","hal::stm32f1::advanced_timer_manager::acquire_pwm_group_frequency"],[48,0,1,"_CPPv4N3hal7stm32f122advanced_timer_manager13acquire_timerEv","hal::stm32f1::advanced_timer_manager::acquire_timer"],[36,3,1,"_CPPv4N3hal7stm32f111ahb_dividerE","hal::stm32f1::ahb_divider"],[36,4,1,"_CPPv4N3hal7stm32f111ahb_divider11divide_by_1E","hal::stm32f1::ahb_divider::divide_by_1"],[36,4,1,"_CPPv4N3hal7stm32f111ahb_divider13divide_by_128E","hal::stm32f1::ahb_divider::divide_by_128"],[36,4,1,"_CPPv4N3hal7stm32f111ahb_divider12divide_by_16E","hal::stm32f1::ahb_divider::divide_by_16"],[36,4,1,"_CPPv4N3hal7stm32f111ahb_divider11divide_by_2E","hal::stm32f1::ahb_divider::divide_by_2"],[36,4,1,"_CPPv4N3hal7stm32f111ahb_divider13divide_by_256E","hal::stm32f1::ahb_divider::divide_by_256"],[36,4,1,"_CPPv4N3hal7stm32f111ahb_divider11divide_by_4E","hal::stm32f1::ahb_divider::divide_by_4"],[36,4,1,"_CPPv4N3hal7stm32f111ahb_divider13divide_by_512E","hal::stm32f1::ahb_divider::divide_by_512"],[36,4,1,"_CPPv4N3hal7stm32f111ahb_divider12divide_by_64E","hal::stm32f1::ahb_divider::divide_by_64"],[36,4,1,"_CPPv4N3hal7stm32f111ahb_divider11divide_by_8E","hal::stm32f1::ahb_divider::divide_by_8"],[36,3,1,"_CPPv4N3hal7stm32f111apb_dividerE","hal::stm32f1::apb_divider"],[36,4,1,"_CPPv4N3hal7stm32f111apb_divider11divide_by_1E","hal::stm32f1::apb_divider::divide_by_1"],[36,4,1,"_CPPv4N3hal7stm32f111apb_divider12divide_by_16E","hal::stm32f1::apb_divider::divide_by_16"],[36,4,1,"_CPPv4N3hal7stm32f111apb_divider11divide_by_2E","hal::stm32f1::apb_divider::divide_by_2"],[36,4,1,"_CPPv4N3hal7stm32f111apb_divider11divide_by_4E","hal::stm32f1::apb_divider::divide_by_4"],[36,4,1,"_CPPv4N3hal7stm32f111apb_divider11divide_by_8E","hal::stm32f1::apb_divider::divide_by_8"],[34,2,1,"_CPPv4N3hal7stm32f122can_peripheral_managerE","hal::stm32f1::can_peripheral_manager"],[34,0,1,"_CPPv4N3hal7stm32f122can_peripheral_manager19acquire_bus_managerEv","hal::stm32f1::can_peripheral_manager::acquire_bus_manager"],[34,0,1,"_CPPv4N3hal7stm32f122can_peripheral_manager34acquire_extended_identifier_filterE15fifo_assignment","hal::stm32f1::can_peripheral_manager::acquire_extended_identifier_filter"],[34,1,1,"_CPPv4N3hal7stm32f122can_peripheral_manager34acquire_extended_identifier_filterE15fifo_assignment","hal::stm32f1::can_peripheral_manager::acquire_extended_identifier_filter::p_fifo"],[34,0,1,"_CPPv4N3hal7stm32f122can_peripheral_manager28acquire_extended_mask_filterE15fifo_assignment","hal::stm32f1::can_peripheral_manager::acquire_extended_mask_filter"],[34,1,1,"_CPPv4N3hal7stm32f122can_peripheral_manager28acquire_extended_mask_filterE15fifo_assignment","hal::stm32f1::can_peripheral_manager::acquire_extended_mask_filter::p_fifo"],[34,0,1,"_CPPv4N3hal7stm32f122can_peripheral_manager25acquire_identifier_filterE15fifo_assignment","hal::stm32f1::can_peripheral_manager::acquire_identifier_filter"],[34,1,1,"_CPPv4N3hal7stm32f122can_peripheral_manager25acquire_identifier_filterE15fifo_assignment","hal::stm32f1::can_peripheral_manager::acquire_identifier_filter::p_fifo"],[34,0,1,"_CPPv4N3hal7stm32f122can_peripheral_manager17acquire_interruptEv","hal::stm32f1::can_peripheral_manager::acquire_interrupt"],[34,0,1,"_CPPv4N3hal7stm32f122can_peripheral_manager19acquire_mask_filterE15fifo_assignment","hal::stm32f1::can_peripheral_manager::acquire_mask_filter"],[34,1,1,"_CPPv4N3hal7stm32f122can_peripheral_manager19acquire_mask_filterE15fifo_assignment","hal::stm32f1::can_peripheral_manager::acquire_mask_filter::p_fifo"],[34,0,1,"_CPPv4N3hal7stm32f122can_peripheral_manager19acquire_transceiverENSt4spanI11can_messageEE","hal::stm32f1::can_peripheral_manager::acquire_transceiver"],[34,1,1,"_CPPv4N3hal7stm32f122can_peripheral_manager19acquire_transceiverENSt4spanI11can_messageEE","hal::stm32f1::can_peripheral_manager::acquire_transceiver::p_receive_buffer"],[34,2,1,"_CPPv4N3hal7stm32f122can_peripheral_manager11bus_managerE","hal::stm32f1::can_peripheral_manager::bus_manager"],[34,0,1,"_CPPv4N3hal7stm32f122can_peripheral_manager22can_peripheral_managerEN3hal3u32E8can_pins11disable_idsb","hal::stm32f1::can_peripheral_manager::can_peripheral_manager"],[34,0,1,"_CPPv4N3hal7stm32f122can_peripheral_manager22can_peripheral_managerEN3hal3u32ERN3hal12steady_clockEN3hal13time_durationE8can_pins9self_test11disable_ids","hal::stm32f1::can_peripheral_manager::can_peripheral_manager"],[34,1,1,"_CPPv4N3hal7stm32f122can_peripheral_manager22can_peripheral_managerEN3hal3u32E8can_pins11disable_idsb","hal::stm32f1::can_peripheral_manager::can_peripheral_manager::p_baud_rate"],[34,1,1,"_CPPv4N3hal7stm32f122can_peripheral_manager22can_peripheral_managerEN3hal3u32ERN3hal12steady_clockEN3hal13time_durationE8can_pins9self_test11disable_ids","hal::stm32f1::can_peripheral_manager::can_peripheral_manager::p_baud_rate"],[34,1,1,"_CPPv4N3hal7stm32f122can_peripheral_manager22can_peripheral_managerEN3hal3u32ERN3hal12steady_clockEN3hal13time_durationE8can_pins9self_test11disable_ids","hal::stm32f1::can_peripheral_manager::can_peripheral_manager::p_clock"],[34,1,1,"_CPPv4N3hal7stm32f122can_peripheral_manager22can_peripheral_managerEN3hal3u32E8can_pins11disable_idsb","hal::stm32f1::can_peripheral_manager::can_peripheral_manager::p_disabled_ids"],[34,1,1,"_CPPv4N3hal7stm32f122can_peripheral_manager22can_peripheral_managerEN3hal3u32ERN3hal12steady_clockEN3hal13time_durationE8can_pins9self_test11disable_ids","hal::stm32f1::can_peripheral_manager::can_peripheral_manager::p_disabled_ids"],[34,1,1,"_CPPv4N3hal7stm32f122can_peripheral_manager22can_peripheral_managerEN3hal3u32ERN3hal12steady_clockEN3hal13time_durationE8can_pins9self_test11disable_ids","hal::stm32f1::can_peripheral_manager::can_peripheral_manager::p_enable_self_test"],[34,1,1,"_CPPv4N3hal7stm32f122can_peripheral_manager22can_peripheral_managerEN3hal3u32E8can_pins11disable_idsb","hal::stm32f1::can_peripheral_manager::can_peripheral_manager::p_pins"],[34,1,1,"_CPPv4N3hal7stm32f122can_peripheral_manager22can_peripheral_managerEN3hal3u32ERN3hal12steady_clockEN3hal13time_durationE8can_pins9self_test11disable_ids","hal::stm32f1::can_peripheral_manager::can_peripheral_manager::p_pins"],[34,1,1,"_CPPv4N3hal7stm32f122can_peripheral_manager22can_peripheral_managerEN3hal3u32E8can_pins11disable_idsb","hal::stm32f1::can_peripheral_manager::can_peripheral_manager::p_self_test"],[34,1,1,"_CPPv4N3hal7stm32f122can_peripheral_manager22can_peripheral_managerEN3hal3u32ERN3hal12steady_clockEN3hal13time_durationE8can_pins9self_test11disable_ids","hal::stm32f1::can_peripheral_manager::can_peripheral_manager::p_timeout_time"],[34,2,1,"_CPPv4N3hal7stm32f122can_peripheral_manager11disable_idsE","hal::stm32f1::can_peripheral_manager::disable_ids"],[34,2,1,"_CPPv4N3hal7stm32f122can_peripheral_manager26extended_identifier_filterE","hal::stm32f1::can_peripheral_manager::extended_identifier_filter"],[34,2,1,"_CPPv4N3hal7stm32f122can_peripheral_manager30extended_identifier_filter_setE","hal::stm32f1::can_peripheral_manager::extended_identifier_filter_set"],[34,5,1,"_CPPv4N3hal7stm32f122can_peripheral_manager30extended_identifier_filter_set6filterE","hal::stm32f1::can_peripheral_manager::extended_identifier_filter_set::filter"],[34,2,1,"_CPPv4N3hal7stm32f122can_peripheral_manager20extended_mask_filterE","hal::stm32f1::can_peripheral_manager::extended_mask_filter"],[34,3,1,"_CPPv4N3hal7stm32f122can_peripheral_manager15fifo_assignmentE","hal::stm32f1::can_peripheral_manager::fifo_assignment"],[34,4,1,"_CPPv4N3hal7stm32f122can_peripheral_manager15fifo_assignment5fifo1E","hal::stm32f1::can_peripheral_manager::fifo_assignment::fifo1"],[34,4,1,"_CPPv4N3hal7stm32f122can_peripheral_manager15fifo_assignment5fifo2E","hal::stm32f1::can_peripheral_manager::fifo_assignment::fifo2"],[34,2,1,"_CPPv4N3hal7stm32f122can_peripheral_manager15filter_resourceE","hal::stm32f1::can_peripheral_manager::filter_resource"],[34,2,1,"_CPPv4N3hal7stm32f122can_peripheral_manager17identifier_filterE","hal::stm32f1::can_peripheral_manager::identifier_filter"],[34,2,1,"_CPPv4N3hal7stm32f122can_peripheral_manager21identifier_filter_setE","hal::stm32f1::can_peripheral_manager::identifier_filter_set"],[34,5,1,"_CPPv4N3hal7stm32f122can_peripheral_manager21identifier_filter_set6filterE","hal::stm32f1::can_peripheral_manager::identifier_filter_set::filter"],[34,2,1,"_CPPv4N3hal7stm32f122can_peripheral_manager9interruptE","hal::stm32f1::can_peripheral_manager::interrupt"],[34,2,1,"_CPPv4N3hal7stm32f122can_peripheral_manager11mask_filterE","hal::stm32f1::can_peripheral_manager::mask_filter"],[34,2,1,"_CPPv4N3hal7stm32f122can_peripheral_manager15mask_filter_setE","hal::stm32f1::can_peripheral_manager::mask_filter_set"],[34,5,1,"_CPPv4N3hal7stm32f122can_peripheral_manager15mask_filter_set6filterE","hal::stm32f1::can_peripheral_manager::mask_filter_set::filter"],[34,3,1,"_CPPv4N3hal7stm32f122can_peripheral_manager9self_testE","hal::stm32f1::can_peripheral_manager::self_test"],[34,4,1,"_CPPv4N3hal7stm32f122can_peripheral_manager9self_test3offE","hal::stm32f1::can_peripheral_manager::self_test::off"],[34,4,1,"_CPPv4N3hal7stm32f122can_peripheral_manager9self_test2onE","hal::stm32f1::can_peripheral_manager::self_test::on"],[34,2,1,"_CPPv4N3hal7stm32f122can_peripheral_manager11transceiverE","hal::stm32f1::can_peripheral_manager::transceiver"],[35,2,1,"_CPPv4N3hal7stm32f125can_peripheral_manager_v2E","hal::stm32f1::can_peripheral_manager_v2"],[35,0,1,"_CPPv4N3hal7stm32f125can_peripheral_manager_v216available_filterEv","hal::stm32f1::can_peripheral_manager_v2::available_filter"],[35,0,1,"_CPPv4N3hal7stm32f125can_peripheral_manager_v29baud_rateEN3hal3u32E","hal::stm32f1::can_peripheral_manager_v2::baud_rate"],[35,0,1,"_CPPv4NK3hal7stm32f125can_peripheral_manager_v29baud_rateEv","hal::stm32f1::can_peripheral_manager_v2::baud_rate"],[35,1,1,"_CPPv4N3hal7stm32f125can_peripheral_manager_v29baud_rateEN3hal3u32E","hal::stm32f1::can_peripheral_manager_v2::baud_rate::p_hertz"],[35,0,1,"_CPPv4N3hal7stm32f125can_peripheral_manager_v26bus_onEv","hal::stm32f1::can_peripheral_manager_v2::bus_on"],[35,0,1,"_CPPv4N3hal7stm32f125can_peripheral_manager_v225can_peripheral_manager_v2EN3hal5usizeENSt3pmr21polymorphic_allocatorIEEN3hal3u32ERN3hal12steady_clockEN3hal13time_durationE8can_pins13can_self_test","hal::stm32f1::can_peripheral_manager_v2::can_peripheral_manager_v2"],[35,1,1,"_CPPv4N3hal7stm32f125can_peripheral_manager_v225can_peripheral_manager_v2EN3hal5usizeENSt3pmr21polymorphic_allocatorIEEN3hal3u32ERN3hal12steady_clockEN3hal13time_durationE8can_pins13can_self_test","hal::stm32f1::can_peripheral_manager_v2::can_peripheral_manager_v2::p_allocator"],[35,1,1,"_CPPv4N3hal7stm32f125can_peripheral_manager_v225can_peripheral_manager_v2EN3hal5usizeENSt3pmr21polymorphic_allocatorIEEN3hal3u32ERN3hal12steady_clockEN3hal13time_durationE8can_pins13can_self_test","hal::stm32f1::can_peripheral_manager_v2::can_peripheral_manager_v2::p_baud_rate"],[35,1,1,"_CPPv4N3hal7stm32f125can_peripheral_manager_v225can_peripheral_manager_v2EN3hal5usizeENSt3pmr21polymorphic_allocatorIEEN3hal3u32ERN3hal12steady_clockEN3hal13time_durationE8can_pins13can_self_test","hal::stm32f1::can_peripheral_manager_v2::can_peripheral_manager_v2::p_clock"],[35,1,1,"_CPPv4N3hal7stm32f125can_peripheral_manager_v225can_peripheral_manager_v2EN3hal5usizeENSt3pmr21polymorphic_allocatorIEEN3hal3u32ERN3hal12steady_clockEN3hal13time_durationE8can_pins13can_self_test","hal::stm32f1::can_peripheral_manager_v2::can_peripheral_manager_v2::p_enable_self_test"],[35,1,1,"_CPPv4N3hal7stm32f125can_peripheral_manager_v225can_peripheral_manager_v2EN3hal5usizeENSt3pmr21polymorphic_allocatorIEEN3hal3u32ERN3hal12steady_clockEN3hal13time_durationE8can_pins13can_self_test","hal::stm32f1::can_peripheral_manager_v2::can_peripheral_manager_v2::p_message_count"],[35,1,1,"_CPPv4N3hal7stm32f125can_peripheral_manager_v225can_peripheral_manager_v2EN3hal5usizeENSt3pmr21polymorphic_allocatorIEEN3hal3u32ERN3hal12steady_clockEN3hal13time_durationE8can_pins13can_self_test","hal::stm32f1::can_peripheral_manager_v2::can_peripheral_manager_v2::p_pins"],[35,1,1,"_CPPv4N3hal7stm32f125can_peripheral_manager_v225can_peripheral_manager_v2EN3hal5usizeENSt3pmr21polymorphic_allocatorIEEN3hal3u32ERN3hal12steady_clockEN3hal13time_durationE8can_pins13can_self_test","hal::stm32f1::can_peripheral_manager_v2::can_peripheral_manager_v2::p_timeout_time"],[35,0,1,"_CPPv4N3hal7stm32f125can_peripheral_manager_v216enable_self_testEb","hal::stm32f1::can_peripheral_manager_v2::enable_self_test"],[35,1,1,"_CPPv4N3hal7stm32f125can_peripheral_manager_v216enable_self_testEb","hal::stm32f1::can_peripheral_manager_v2::enable_self_test::p_enable"],[35,0,1,"_CPPv4N3hal7stm32f125can_peripheral_manager_v210on_receiveERKN3hal13can_interrupt24optional_receive_handlerE","hal::stm32f1::can_peripheral_manager_v2::on_receive"],[35,1,1,"_CPPv4N3hal7stm32f125can_peripheral_manager_v210on_receiveERKN3hal13can_interrupt24optional_receive_handlerE","hal::stm32f1::can_peripheral_manager_v2::on_receive::p_callback"],[35,0,1,"_CPPv4N3hal7stm32f125can_peripheral_manager_v214receive_bufferEv","hal::stm32f1::can_peripheral_manager_v2::receive_buffer"],[35,0,1,"_CPPv4NK3hal7stm32f125can_peripheral_manager_v213receive_countEv","hal::stm32f1::can_peripheral_manager_v2::receive_count"],[35,0,1,"_CPPv4N3hal7stm32f125can_peripheral_manager_v214receive_cursorEv","hal::stm32f1::can_peripheral_manager_v2::receive_cursor"],[35,0,1,"_CPPv4N3hal7stm32f125can_peripheral_manager_v214release_filterEN3hal2u8E","hal::stm32f1::can_peripheral_manager_v2::release_filter"],[35,1,1,"_CPPv4N3hal7stm32f125can_peripheral_manager_v214release_filterEN3hal2u8E","hal::stm32f1::can_peripheral_manager_v2::release_filter::p_filter_bank"],[35,0,1,"_CPPv4N3hal7stm32f125can_peripheral_manager_v24sendERK11can_message","hal::stm32f1::can_peripheral_manager_v2::send"],[35,1,1,"_CPPv4N3hal7stm32f125can_peripheral_manager_v24sendERK11can_message","hal::stm32f1::can_peripheral_manager_v2::send::p_message"],[45,3,1,"_CPPv4N3hal7stm32f18can_pinsE","hal::stm32f1::can_pins"],[45,4,1,"_CPPv4N3hal7stm32f18can_pins9pa11_pa12E","hal::stm32f1::can_pins::pa11_pa12"],[45,4,1,"_CPPv4N3hal7stm32f18can_pins7pb9_pb8E","hal::stm32f1::can_pins::pb9_pb8"],[45,4,1,"_CPPv4N3hal7stm32f18can_pins7pd0_pd1E","hal::stm32f1::can_pins::pd0_pd1"],[36,2,1,"_CPPv4N3hal7stm32f110clock_treeE","hal::stm32f1::clock_tree"],[36,2,1,"_CPPv4N3hal7stm32f110clock_tree5ahb_tE","hal::stm32f1::clock_tree::ahb_t"],[36,2,1,"_CPPv4N3hal7stm32f110clock_tree5ahb_t6apb1_tE","hal::stm32f1::clock_tree::ahb_t::apb1_t"],[36,2,1,"_CPPv4N3hal7stm32f110clock_tree5ahb_t6apb2_tE","hal::stm32f1::clock_tree::ahb_t::apb2_t"],[36,2,1,"_CPPv4N3hal7stm32f110clock_tree5ahb_t6apb2_t5adc_tE","hal::stm32f1::clock_tree::ahb_t::apb2_t::adc_t"],[36,5,1,"_CPPv4N3hal7stm32f110clock_tree19high_speed_externalE","hal::stm32f1::clock_tree::high_speed_external"],[36,5,1,"_CPPv4N3hal7stm32f110clock_tree18low_speed_externalE","hal::stm32f1::clock_tree::low_speed_external"],[36,2,1,"_CPPv4N3hal7stm32f110clock_tree5pll_tE","hal::stm32f1::clock_tree::pll_t"],[36,2,1,"_CPPv4N3hal7stm32f110clock_tree5pll_t13usb_divider_tE","hal::stm32f1::clock_tree::pll_t::usb_divider_t"],[36,2,1,"_CPPv4N3hal7stm32f110clock_tree5rtc_tE","hal::stm32f1::clock_tree::rtc_t"],[36,5,1,"_CPPv4N3hal7stm32f110clock_tree12system_clockE","hal::stm32f1::clock_tree::system_clock"],[36,0,1,"_CPPv4N3hal7stm32f116configure_clocksE10clock_tree","hal::stm32f1::configure_clocks"],[36,1,1,"_CPPv4N3hal7stm32f116configure_clocksE10clock_tree","hal::stm32f1::configure_clocks::p_clock_tree"],[36,0,1,"_CPPv4N3hal7stm32f19frequencyE10peripheral","hal::stm32f1::frequency"],[36,1,1,"_CPPv4N3hal7stm32f19frequencyE10peripheral","hal::stm32f1::frequency::p_id"],[48,2,1,"_CPPv4N3hal7stm32f129general_purpose_timer_managerE","hal::stm32f1::general_purpose_timer_manager"],[48,0,1,"_CPPv4N3hal7stm32f129general_purpose_timer_manager27acquire_pwm_group_frequencyEv","hal::stm32f1::general_purpose_timer_manager::acquire_pwm_group_frequency"],[48,0,1,"_CPPv4N3hal7stm32f129general_purpose_timer_manager13acquire_timerEv","hal::stm32f1::general_purpose_timer_manager::acquire_timer"],[39,2,1,"_CPPv4I_10peripheralEN3hal7stm32f14gpioE","hal::stm32f1::gpio"],[39,6,1,"_CPPv4I_10peripheralEN3hal7stm32f14gpioE","hal::stm32f1::gpio::select"],[40,2,1,"_CPPv4N3hal7stm32f120independent_watchdogE","hal::stm32f1::independent_watchdog"],[40,0,1,"_CPPv4N3hal7stm32f120independent_watchdog10check_flagEv","hal::stm32f1::independent_watchdog::check_flag"],[40,0,1,"_CPPv4N3hal7stm32f120independent_watchdog10clear_flagEv","hal::stm32f1::independent_watchdog::clear_flag"],[40,0,1,"_CPPv4N3hal7stm32f120independent_watchdog5resetEv","hal::stm32f1::independent_watchdog::reset"],[40,0,1,"_CPPv4N3hal7stm32f120independent_watchdog18set_countdown_timeEN3hal13time_durationE","hal::stm32f1::independent_watchdog::set_countdown_time"],[40,1,1,"_CPPv4N3hal7stm32f120independent_watchdog18set_countdown_timeEN3hal13time_durationE","hal::stm32f1::independent_watchdog::set_countdown_time::p_wait_time"],[40,0,1,"_CPPv4N3hal7stm32f120independent_watchdog5startEv","hal::stm32f1::independent_watchdog::start"],[43,0,1,"_CPPv4N3hal7stm32f121initialize_interruptsEv","hal::stm32f1::initialize_interrupts"],[42,2,1,"_CPPv4N3hal7stm32f19input_pinE","hal::stm32f1::input_pin"],[42,0,1,"_CPPv4N3hal7stm32f19input_pin9input_pinE2u82u8","hal::stm32f1::input_pin::input_pin"],[42,1,1,"_CPPv4N3hal7stm32f19input_pin9input_pinE2u82u8","hal::stm32f1::input_pin::input_pin::p_pin"],[42,1,1,"_CPPv4N3hal7stm32f19input_pin9input_pinE2u82u8","hal::stm32f1::input_pin::input_pin::p_port"],[37,3,1,"_CPPv4N3hal7stm32f13irqE","hal::stm32f1::irq"],[37,4,1,"_CPPv4N3hal7stm32f13irq4adc1E","hal::stm32f1::irq::adc1"],[37,4,1,"_CPPv4N3hal7stm32f13irq6adc1_2E","hal::stm32f1::irq::adc1_2"],[37,4,1,"_CPPv4N3hal7stm32f13irq4adc3E","hal::stm32f1::irq::adc3"],[37,4,1,"_CPPv4N3hal7stm32f13irq8can1_rx0E","hal::stm32f1::irq::can1_rx0"],[37,4,1,"_CPPv4N3hal7stm32f13irq8can1_rx1E","hal::stm32f1::irq::can1_rx1"],[37,4,1,"_CPPv4N3hal7stm32f13irq8can1_sceE","hal::stm32f1::irq::can1_sce"],[37,4,1,"_CPPv4N3hal7stm32f13irq7can1_txE","hal::stm32f1::irq::can1_tx"],[37,4,1,"_CPPv4N3hal7stm32f13irq8can2_rx0E","hal::stm32f1::irq::can2_rx0"],[37,4,1,"_CPPv4N3hal7stm32f13irq8can2_rx1E","hal::stm32f1::irq::can2_rx1"],[37,4,1,"_CPPv4N3hal7stm32f13irq8can2_sceE","hal::stm32f1::irq::can2_sce"],[37,4,1,"_CPPv4N3hal7stm32f13irq7can2_txE","hal::stm32f1::irq::can2_tx"],[37,4,1,"_CPPv4N3hal7stm32f13irq3cecE","hal::stm32f1::irq::cec"],[37,4,1,"_CPPv4N3hal7stm32f13irq13dma1_channel1E","hal::stm32f1::irq::dma1_channel1"],[37,4,1,"_CPPv4N3hal7stm32f13irq13dma1_channel2E","hal::stm32f1::irq::dma1_channel2"],[37,4,1,"_CPPv4N3hal7stm32f13irq13dma1_channel3E","hal::stm32f1::irq::dma1_channel3"],[37,4,1,"_CPPv4N3hal7stm32f13irq13dma1_channel4E","hal::stm32f1::irq::dma1_channel4"],[37,4,1,"_CPPv4N3hal7stm32f13irq13dma1_channel5E","hal::stm32f1::irq::dma1_channel5"],[37,4,1,"_CPPv4N3hal7stm32f13irq13dma1_channel6E","hal::stm32f1::irq::dma1_channel6"],[37,4,1,"_CPPv4N3hal7stm32f13irq13dma1_channel7E","hal::stm32f1::irq::dma1_channel7"],[37,4,1,"_CPPv4N3hal7stm32f13irq13dma2_channel1E","hal::stm32f1::irq::dma2_channel1"],[37,4,1,"_CPPv4N3hal7stm32f13irq13dma2_channel2E","hal::stm32f1::irq::dma2_channel2"],[37,4,1,"_CPPv4N3hal7stm32f13irq13dma2_channel3E","hal::stm32f1::irq::dma2_channel3"],[37,4,1,"_CPPv4N3hal7stm32f13irq13dma2_channel4E","hal::stm32f1::irq::dma2_channel4"],[37,4,1,"_CPPv4N3hal7stm32f13irq15dma2_channel4_5E","hal::stm32f1::irq::dma2_channel4_5"],[37,4,1,"_CPPv4N3hal7stm32f13irq13dma2_channel5E","hal::stm32f1::irq::dma2_channel5"],[37,4,1,"_CPPv4N3hal7stm32f13irq3ethE","hal::stm32f1::irq::eth"],[37,4,1,"_CPPv4N3hal7stm32f13irq8eth_wkupE","hal::stm32f1::irq::eth_wkup"],[37,4,1,"_CPPv4N3hal7stm32f13irq5exti0E","hal::stm32f1::irq::exti0"],[37,4,1,"_CPPv4N3hal7stm32f13irq5exti1E","hal::stm32f1::irq::exti1"],[37,4,1,"_CPPv4N3hal7stm32f13irq9exti15_10E","hal::stm32f1::irq::exti15_10"],[37,4,1,"_CPPv4N3hal7stm32f13irq5exti2E","hal::stm32f1::irq::exti2"],[37,4,1,"_CPPv4N3hal7stm32f13irq5exti3E","hal::stm32f1::irq::exti3"],[37,4,1,"_CPPv4N3hal7stm32f13irq5exti4E","hal::stm32f1::irq::exti4"],[37,4,1,"_CPPv4N3hal7stm32f13irq7exti9_5E","hal::stm32f1::irq::exti9_5"],[37,4,1,"_CPPv4N3hal7stm32f13irq5flashE","hal::stm32f1::irq::flash"],[37,4,1,"_CPPv4N3hal7stm32f13irq4fsmcE","hal::stm32f1::irq::fsmc"],[37,4,1,"_CPPv4N3hal7stm32f13irq7i2c1_erE","hal::stm32f1::irq::i2c1_er"],[37,4,1,"_CPPv4N3hal7stm32f13irq7i2c1_evE","hal::stm32f1::irq::i2c1_ev"],[37,4,1,"_CPPv4N3hal7stm32f13irq7i2c2_erE","hal::stm32f1::irq::i2c2_er"],[37,4,1,"_CPPv4N3hal7stm32f13irq7i2c2_evE","hal::stm32f1::irq::i2c2_ev"],[37,4,1,"_CPPv4N3hal7stm32f13irq3maxE","hal::stm32f1::irq::max"],[37,4,1,"_CPPv4N3hal7stm32f13irq6otg_fsE","hal::stm32f1::irq::otg_fs"],[37,4,1,"_CPPv4N3hal7stm32f13irq11otg_fs_wkupE","hal::stm32f1::irq::otg_fs_wkup"],[37,4,1,"_CPPv4N3hal7stm32f13irq3pvdE","hal::stm32f1::irq::pvd"],[37,4,1,"_CPPv4N3hal7stm32f13irq3rccE","hal::stm32f1::irq::rcc"],[37,4,1,"_CPPv4N3hal7stm32f13irq3rtcE","hal::stm32f1::irq::rtc"],[37,4,1,"_CPPv4N3hal7stm32f13irq8rtcalarmE","hal::stm32f1::irq::rtcalarm"],[37,4,1,"_CPPv4N3hal7stm32f13irq4sdioE","hal::stm32f1::irq::sdio"],[37,4,1,"_CPPv4N3hal7stm32f13irq4spi1E","hal::stm32f1::irq::spi1"],[37,4,1,"_CPPv4N3hal7stm32f13irq4spi2E","hal::stm32f1::irq::spi2"],[37,4,1,"_CPPv4N3hal7stm32f13irq4spi3E","hal::stm32f1::irq::spi3"],[37,4,1,"_CPPv4N3hal7stm32f13irq6tamperE","hal::stm32f1::irq::tamper"],[37,4,1,"_CPPv4N3hal7stm32f13irq5tim12E","hal::stm32f1::irq::tim12"],[37,4,1,"_CPPv4N3hal7stm32f13irq5tim13E","hal::stm32f1::irq::tim13"],[37,4,1,"_CPPv4N3hal7stm32f13irq5tim14E","hal::stm32f1::irq::tim14"],[37,4,1,"_CPPv4N3hal7stm32f13irq8tim1_brkE","hal::stm32f1::irq::tim1_brk"],[37,4,1,"_CPPv4N3hal7stm32f13irq14tim1_brk_tim15E","hal::stm32f1::irq::tim1_brk_tim15"],[37,4,1,"_CPPv4N3hal7stm32f13irq13tim1_brk_tim9E","hal::stm32f1::irq::tim1_brk_tim9"],[37,4,1,"_CPPv4N3hal7stm32f13irq7tim1_ccE","hal::stm32f1::irq::tim1_cc"],[37,4,1,"_CPPv4N3hal7stm32f13irq12tim1_trg_comE","hal::stm32f1::irq::tim1_trg_com"],[37,4,1,"_CPPv4N3hal7stm32f13irq18tim1_trg_com_tim11E","hal::stm32f1::irq::tim1_trg_com_tim11"],[37,4,1,"_CPPv4N3hal7stm32f13irq7tim1_upE","hal::stm32f1::irq::tim1_up"],[37,4,1,"_CPPv4N3hal7stm32f13irq13tim1_up_tim10E","hal::stm32f1::irq::tim1_up_tim10"],[37,4,1,"_CPPv4N3hal7stm32f13irq13tim1_up_tim16E","hal::stm32f1::irq::tim1_up_tim16"],[37,4,1,"_CPPv4N3hal7stm32f13irq4tim2E","hal::stm32f1::irq::tim2"],[37,4,1,"_CPPv4N3hal7stm32f13irq4tim3E","hal::stm32f1::irq::tim3"],[37,4,1,"_CPPv4N3hal7stm32f13irq4tim4E","hal::stm32f1::irq::tim4"],[37,4,1,"_CPPv4N3hal7stm32f13irq4tim5E","hal::stm32f1::irq::tim5"],[37,4,1,"_CPPv4N3hal7stm32f13irq4tim6E","hal::stm32f1::irq::tim6"],[37,4,1,"_CPPv4N3hal7stm32f13irq8tim6_dacE","hal::stm32f1::irq::tim6_dac"],[37,4,1,"_CPPv4N3hal7stm32f13irq4tim7E","hal::stm32f1::irq::tim7"],[37,4,1,"_CPPv4N3hal7stm32f13irq8tim8_brkE","hal::stm32f1::irq::tim8_brk"],[37,4,1,"_CPPv4N3hal7stm32f13irq14tim8_brk_tim12E","hal::stm32f1::irq::tim8_brk_tim12"],[37,4,1,"_CPPv4N3hal7stm32f13irq7tim8_ccE","hal::stm32f1::irq::tim8_cc"],[37,4,1,"_CPPv4N3hal7stm32f13irq12tim8_trg_comE","hal::stm32f1::irq::tim8_trg_com"],[37,4,1,"_CPPv4N3hal7stm32f13irq18tim8_trg_com_tim14E","hal::stm32f1::irq::tim8_trg_com_tim14"],[37,4,1,"_CPPv4N3hal7stm32f13irq7tim8_upE","hal::stm32f1::irq::tim8_up"],[37,4,1,"_CPPv4N3hal7stm32f13irq13tim8_up_tim13E","hal::stm32f1::irq::tim8_up_tim13"],[37,4,1,"_CPPv4N3hal7stm32f13irq5uart4E","hal::stm32f1::irq::uart4"],[37,4,1,"_CPPv4N3hal7stm32f13irq5uart5E","hal::stm32f1::irq::uart5"],[37,4,1,"_CPPv4N3hal7stm32f13irq6usart1E","hal::stm32f1::irq::usart1"],[37,4,1,"_CPPv4N3hal7stm32f13irq6usart2E","hal::stm32f1::irq::usart2"],[37,4,1,"_CPPv4N3hal7stm32f13irq6usart3E","hal::stm32f1::irq::usart3"],[37,4,1,"_CPPv4N3hal7stm32f13irq14usb_hp_can1_txE","hal::stm32f1::irq::usb_hp_can1_tx"],[37,4,1,"_CPPv4N3hal7stm32f13irq15usb_lp_can1_rx0E","hal::stm32f1::irq::usb_lp_can1_rx0"],[37,4,1,"_CPPv4N3hal7stm32f13irq9usbwakeupE","hal::stm32f1::irq::usbwakeup"],[37,4,1,"_CPPv4N3hal7stm32f13irq15window_watchdogE","hal::stm32f1::irq::window_watchdog"],[38,5,1,"_CPPv4N3hal7stm32f114max_dma_lengthE","hal::stm32f1::max_dma_length"],[36,0,1,"_CPPv4N3hal7stm32f139maximum_speed_using_internal_oscillatorEv","hal::stm32f1::maximum_speed_using_internal_oscillator"],[45,3,1,"_CPPv4N3hal7stm32f110mco_sourceE","hal::stm32f1::mco_source"],[45,4,1,"_CPPv4N3hal7stm32f110mco_source19high_speed_externalE","hal::stm32f1::mco_source::high_speed_external"],[45,4,1,"_CPPv4N3hal7stm32f110mco_source19high_speed_internalE","hal::stm32f1::mco_source::high_speed_internal"],[45,4,1,"_CPPv4N3hal7stm32f110mco_source22pll_clock_divided_by_2E","hal::stm32f1::mco_source::pll_clock_divided_by_2"],[45,4,1,"_CPPv4N3hal7stm32f110mco_source12system_clockE","hal::stm32f1::mco_source::system_clock"],[44,2,1,"_CPPv4N3hal7stm32f110output_pinE","hal::stm32f1::output_pin"],[44,0,1,"_CPPv4N3hal7stm32f110output_pin10output_pinE2u82u8N10output_pin8settingsE","hal::stm32f1::output_pin::output_pin"],[44,1,1,"_CPPv4N3hal7stm32f110output_pin10output_pinE2u82u8N10output_pin8settingsE","hal::stm32f1::output_pin::output_pin::p_pin"],[44,1,1,"_CPPv4N3hal7stm32f110output_pin10output_pinE2u82u8N10output_pin8settingsE","hal::stm32f1::output_pin::output_pin::p_port"],[44,1,1,"_CPPv4N3hal7stm32f110output_pin10output_pinE2u82u8N10output_pin8settingsE","hal::stm32f1::output_pin::output_pin::p_settings"],[37,3,1,"_CPPv4N3hal7stm32f110peripheralE","hal::stm32f1::peripheral"],[37,4,1,"_CPPv4N3hal7stm32f110peripheral4adc1E","hal::stm32f1::peripheral::adc1"],[37,4,1,"_CPPv4N3hal7stm32f110peripheral4adc2E","hal::stm32f1::peripheral::adc2"],[37,4,1,"_CPPv4N3hal7stm32f110peripheral4adc3E","hal::stm32f1::peripheral::adc3"],[37,4,1,"_CPPv4N3hal7stm32f110peripheral4afioE","hal::stm32f1::peripheral::afio"],[37,4,1,"_CPPv4N3hal7stm32f110peripheral12backup_clockE","hal::stm32f1::peripheral::backup_clock"],[37,4,1,"_CPPv4N3hal7stm32f110peripheral4can1E","hal::stm32f1::peripheral::can1"],[37,4,1,"_CPPv4N3hal7stm32f110peripheral3cpuE","hal::stm32f1::peripheral::cpu"],[37,4,1,"_CPPv4N3hal7stm32f110peripheral3crcE","hal::stm32f1::peripheral::crc"],[37,4,1,"_CPPv4N3hal7stm32f110peripheral3dacE","hal::stm32f1::peripheral::dac"],[37,4,1,"_CPPv4N3hal7stm32f110peripheral4dma1E","hal::stm32f1::peripheral::dma1"],[37,4,1,"_CPPv4N3hal7stm32f110peripheral4dma2E","hal::stm32f1::peripheral::dma2"],[37,4,1,"_CPPv4N3hal7stm32f110peripheral5flitfE","hal::stm32f1::peripheral::flitf"],[37,4,1,"_CPPv4N3hal7stm32f110peripheral4fsmcE","hal::stm32f1::peripheral::fsmc"],[37,4,1,"_CPPv4N3hal7stm32f110peripheral6gpio_aE","hal::stm32f1::peripheral::gpio_a"],[37,4,1,"_CPPv4N3hal7stm32f110peripheral6gpio_bE","hal::stm32f1::peripheral::gpio_b"],[37,4,1,"_CPPv4N3hal7stm32f110peripheral6gpio_cE","hal::stm32f1::peripheral::gpio_c"],[37,4,1,"_CPPv4N3hal7stm32f110peripheral6gpio_dE","hal::stm32f1::peripheral::gpio_d"],[37,4,1,"_CPPv4N3hal7stm32f110peripheral6gpio_eE","hal::stm32f1::peripheral::gpio_e"],[37,4,1,"_CPPv4N3hal7stm32f110peripheral6gpio_fE","hal::stm32f1::peripheral::gpio_f"],[37,4,1,"_CPPv4N3hal7stm32f110peripheral6gpio_gE","hal::stm32f1::peripheral::gpio_g"],[37,4,1,"_CPPv4N3hal7stm32f110peripheral4i2c1E","hal::stm32f1::peripheral::i2c1"],[37,4,1,"_CPPv4N3hal7stm32f110peripheral4i2c2E","hal::stm32f1::peripheral::i2c2"],[37,4,1,"_CPPv4N3hal7stm32f110peripheral3i2sE","hal::stm32f1::peripheral::i2s"],[37,4,1,"_CPPv4N3hal7stm32f110peripheral5powerE","hal::stm32f1::peripheral::power"],[37,4,1,"_CPPv4N3hal7stm32f110peripheral4sdioE","hal::stm32f1::peripheral::sdio"],[37,4,1,"_CPPv4N3hal7stm32f110peripheral4spi1E","hal::stm32f1::peripheral::spi1"],[37,4,1,"_CPPv4N3hal7stm32f110peripheral4spi2E","hal::stm32f1::peripheral::spi2"],[37,4,1,"_CPPv4N3hal7stm32f110peripheral4spi3E","hal::stm32f1::peripheral::spi3"],[37,4,1,"_CPPv4N3hal7stm32f110peripheral4sramE","hal::stm32f1::peripheral::sram"],[37,4,1,"_CPPv4N3hal7stm32f110peripheral12system_timerE","hal::stm32f1::peripheral::system_timer"],[37,4,1,"_CPPv4N3hal7stm32f110peripheral6timer1E","hal::stm32f1::peripheral::timer1"],[37,4,1,"_CPPv4N3hal7stm32f110peripheral7timer10E","hal::stm32f1::peripheral::timer10"],[37,4,1,"_CPPv4N3hal7stm32f110peripheral7timer11E","hal::stm32f1::peripheral::timer11"],[37,4,1,"_CPPv4N3hal7stm32f110peripheral7timer12E","hal::stm32f1::peripheral::timer12"],[37,4,1,"_CPPv4N3hal7stm32f110peripheral7timer13E","hal::stm32f1::peripheral::timer13"],[37,4,1,"_CPPv4N3hal7stm32f110peripheral7timer14E","hal::stm32f1::peripheral::timer14"],[37,4,1,"_CPPv4N3hal7stm32f110peripheral6timer2E","hal::stm32f1::peripheral::timer2"],[37,4,1,"_CPPv4N3hal7stm32f110peripheral6timer3E","hal::stm32f1::peripheral::timer3"],[37,4,1,"_CPPv4N3hal7stm32f110peripheral6timer4E","hal::stm32f1::peripheral::timer4"],[37,4,1,"_CPPv4N3hal7stm32f110peripheral6timer5E","hal::stm32f1::peripheral::timer5"],[37,4,1,"_CPPv4N3hal7stm32f110peripheral6timer6E","hal::stm32f1::peripheral::timer6"],[37,4,1,"_CPPv4N3hal7stm32f110peripheral6timer7E","hal::stm32f1::peripheral::timer7"],[37,4,1,"_CPPv4N3hal7stm32f110peripheral6timer8E","hal::stm32f1::peripheral::timer8"],[37,4,1,"_CPPv4N3hal7stm32f110peripheral6timer9E","hal::stm32f1::peripheral::timer9"],[37,4,1,"_CPPv4N3hal7stm32f110peripheral5uart4E","hal::stm32f1::peripheral::uart4"],[37,4,1,"_CPPv4N3hal7stm32f110peripheral5uart5E","hal::stm32f1::peripheral::uart5"],[37,4,1,"_CPPv4N3hal7stm32f110peripheral6usart1E","hal::stm32f1::peripheral::usart1"],[37,4,1,"_CPPv4N3hal7stm32f110peripheral6usart2E","hal::stm32f1::peripheral::usart2"],[37,4,1,"_CPPv4N3hal7stm32f110peripheral6usart3E","hal::stm32f1::peripheral::usart3"],[37,4,1,"_CPPv4N3hal7stm32f110peripheral3usbE","hal::stm32f1::peripheral::usb"],[37,4,1,"_CPPv4N3hal7stm32f110peripheral15window_watchdogE","hal::stm32f1::peripheral::window_watchdog"],[45,2,1,"_CPPv4N3hal7stm32f110pin_selectE","hal::stm32f1::pin_select"],[45,5,1,"_CPPv4N3hal7stm32f110pin_select3pinE","hal::stm32f1::pin_select::pin"],[45,5,1,"_CPPv4N3hal7stm32f110pin_select4portE","hal::stm32f1::pin_select::port"],[36,3,1,"_CPPv4N3hal7stm32f112pll_multiplyE","hal::stm32f1::pll_multiply"],[36,4,1,"_CPPv4N3hal7stm32f112pll_multiply14multiply_by_10E","hal::stm32f1::pll_multiply::multiply_by_10"],[36,4,1,"_CPPv4N3hal7stm32f112pll_multiply14multiply_by_11E","hal::stm32f1::pll_multiply::multiply_by_11"],[36,4,1,"_CPPv4N3hal7stm32f112pll_multiply14multiply_by_12E","hal::stm32f1::pll_multiply::multiply_by_12"],[36,4,1,"_CPPv4N3hal7stm32f112pll_multiply14multiply_by_13E","hal::stm32f1::pll_multiply::multiply_by_13"],[36,4,1,"_CPPv4N3hal7stm32f112pll_multiply14multiply_by_14E","hal::stm32f1::pll_multiply::multiply_by_14"],[36,4,1,"_CPPv4N3hal7stm32f112pll_multiply14multiply_by_15E","hal::stm32f1::pll_multiply::multiply_by_15"],[36,4,1,"_CPPv4N3hal7stm32f112pll_multiply14multiply_by_16E","hal::stm32f1::pll_multiply::multiply_by_16"],[36,4,1,"_CPPv4N3hal7stm32f112pll_multiply13multiply_by_2E","hal::stm32f1::pll_multiply::multiply_by_2"],[36,4,1,"_CPPv4N3hal7stm32f112pll_multiply13multiply_by_3E","hal::stm32f1::pll_multiply::multiply_by_3"],[36,4,1,"_CPPv4N3hal7stm32f112pll_multiply13multiply_by_4E","hal::stm32f1::pll_multiply::multiply_by_4"],[36,4,1,"_CPPv4N3hal7stm32f112pll_multiply13multiply_by_5E","hal::stm32f1::pll_multiply::multiply_by_5"],[36,4,1,"_CPPv4N3hal7stm32f112pll_multiply13multiply_by_6E","hal::stm32f1::pll_multiply::multiply_by_6"],[36,4,1,"_CPPv4N3hal7stm32f112pll_multiply13multiply_by_7E","hal::stm32f1::pll_multiply::multiply_by_7"],[36,4,1,"_CPPv4N3hal7stm32f112pll_multiply13multiply_by_8E","hal::stm32f1::pll_multiply::multiply_by_8"],[36,4,1,"_CPPv4N3hal7stm32f112pll_multiply13multiply_by_9E","hal::stm32f1::pll_multiply::multiply_by_9"],[36,3,1,"_CPPv4N3hal7stm32f110pll_sourceE","hal::stm32f1::pll_source"],[36,4,1,"_CPPv4N3hal7stm32f110pll_source19high_speed_externalE","hal::stm32f1::pll_source::high_speed_external"],[36,4,1,"_CPPv4N3hal7stm32f110pll_source32high_speed_external_divided_by_2E","hal::stm32f1::pll_source::high_speed_external_divided_by_2"],[36,4,1,"_CPPv4N3hal7stm32f110pll_source26internal_8mhz_divided_by_2E","hal::stm32f1::pll_source::internal_8mhz_divided_by_2"],[46,2,1,"_CPPv4N3hal7stm32f13pwmE","hal::stm32f1::pwm"],[48,2,1,"_CPPv4N3hal7stm32f113pwm16_channelE","hal::stm32f1::pwm16_channel"],[48,2,1,"_CPPv4N3hal7stm32f119pwm_group_frequencyE","hal::stm32f1::pwm_group_frequency"],[45,0,1,"_CPPv4N3hal7stm32f117release_jtag_pinsEv","hal::stm32f1::release_jtag_pins"],[45,0,1,"_CPPv4N3hal7stm32f113reset_mco_pa8Ev","hal::stm32f1::reset_mco_pa8"],[36,3,1,"_CPPv4N3hal7stm32f110rtc_sourceE","hal::stm32f1::rtc_source"],[36,4,1,"_CPPv4N3hal7stm32f110rtc_source34high_speed_external_divided_by_128E","hal::stm32f1::rtc_source::high_speed_external_divided_by_128"],[36,4,1,"_CPPv4N3hal7stm32f110rtc_source18low_speed_externalE","hal::stm32f1::rtc_source::low_speed_external"],[36,4,1,"_CPPv4N3hal7stm32f110rtc_source18low_speed_internalE","hal::stm32f1::rtc_source::low_speed_internal"],[36,4,1,"_CPPv4N3hal7stm32f110rtc_source8no_clockE","hal::stm32f1::rtc_source::no_clock"],[47,2,1,"_CPPv4N3hal7stm32f13spiE","hal::stm32f1::spi"],[47,0,1,"_CPPv4N3hal7stm32f13spi3spiEN3hal9bus_paramERKN3spi8settingsE","hal::stm32f1::spi::spi"],[47,1,1,"_CPPv4N3hal7stm32f13spi3spiEN3hal9bus_paramERKN3spi8settingsE","hal::stm32f1::spi::spi::p_bus"],[47,1,1,"_CPPv4N3hal7stm32f13spi3spiEN3hal9bus_paramERKN3spi8settingsE","hal::stm32f1::spi::spi::p_settings"],[36,3,1,"_CPPv4N3hal7stm32f119system_clock_selectE","hal::stm32f1::system_clock_select"],[36,4,1,"_CPPv4N3hal7stm32f119system_clock_select19high_speed_externalE","hal::stm32f1::system_clock_select::high_speed_external"],[36,4,1,"_CPPv4N3hal7stm32f119system_clock_select19high_speed_internalE","hal::stm32f1::system_clock_select::high_speed_internal"],[36,4,1,"_CPPv4N3hal7stm32f119system_clock_select3pllE","hal::stm32f1::system_clock_select::pll"],[48,2,1,"_CPPv4N3hal7stm32f15timerE","hal::stm32f1::timer"],[49,2,1,"_CPPv4N3hal7stm32f14uartE","hal::stm32f1::uart"],[49,0,1,"_CPPv4N3hal7stm32f14uart4uartEN3hal10port_paramEN3hal12buffer_paramERKN6serial8settingsE","hal::stm32f1::uart::uart"],[49,0,1,"_CPPv4N3hal7stm32f14uart4uartEN3hal7runtimeENSt7uint8_tENSt4spanIN3hal4byteEEERKN6serial8settingsE","hal::stm32f1::uart::uart"],[49,1,1,"_CPPv4N3hal7stm32f14uart4uartEN3hal10port_paramEN3hal12buffer_paramERKN6serial8settingsE","hal::stm32f1::uart::uart::p_buffer"],[49,1,1,"_CPPv4N3hal7stm32f14uart4uartEN3hal7runtimeENSt7uint8_tENSt4spanIN3hal4byteEEERKN6serial8settingsE","hal::stm32f1::uart::uart::p_buffer"],[49,1,1,"_CPPv4N3hal7stm32f14uart4uartEN3hal10port_paramEN3hal12buffer_paramERKN6serial8settingsE","hal::stm32f1::uart::uart::p_port"],[49,1,1,"_CPPv4N3hal7stm32f14uart4uartEN3hal7runtimeENSt7uint8_tENSt4spanIN3hal4byteEEERKN6serial8settingsE","hal::stm32f1::uart::uart::p_port"],[49,1,1,"_CPPv4N3hal7stm32f14uart4uartEN3hal10port_paramEN3hal12buffer_paramERKN6serial8settingsE","hal::stm32f1::uart::uart::p_settings"],[49,1,1,"_CPPv4N3hal7stm32f14uart4uartEN3hal7runtimeENSt7uint8_tENSt4spanIN3hal4byteEEERKN6serial8settingsE","hal::stm32f1::uart::uart::p_settings"],[50,2,1,"_CPPv4N3hal7stm32f113usart_managerE","hal::stm32f1::usart_manager"],[50,2,1,"_CPPv4N3hal7stm32f113usart_manager6serialE","hal::stm32f1::usart_manager::serial"],[51,2,1,"_CPPv4N3hal7stm32f13usbE","hal::stm32f1::usb"],[51,0,1,"_CPPv4N3hal7stm32f13usb3usbEN3hal2v521strong_ptr_only_tokenERN3hal12steady_clockE9timeout_t","hal::stm32f1::usb::usb"],[51,1,1,"_CPPv4N3hal7stm32f13usb3usbEN3hal2v521strong_ptr_only_tokenERN3hal12steady_clockE9timeout_t","hal::stm32f1::usb::usb::p_clock"],[51,1,1,"_CPPv4N3hal7stm32f13usb3usbEN3hal2v521strong_ptr_only_tokenERN3hal12steady_clockE9timeout_t","hal::stm32f1::usb::usb::p_write_timeout"],[36,3,1,"_CPPv4N3hal7stm32f111usb_dividerE","hal::stm32f1::usb_divider"],[36,4,1,"_CPPv4N3hal7stm32f111usb_divider11divide_by_1E","hal::stm32f1::usb_divider::divide_by_1"],[36,4,1,"_CPPv4N3hal7stm32f111usb_divider19divide_by_1_point_5E","hal::stm32f1::usb_divider::divide_by_1_point_5"],[52,3,1,"_CPPv4N3hal10stm32f41103irqE","hal::stm32f4110::irq"],[52,4,1,"_CPPv4N3hal10stm32f41103irq3maxE","hal::stm32f4110::irq::max"],[52,3,1,"_CPPv4N3hal10stm32f411010peripheralE","hal::stm32f4110::peripheral"],[52,4,1,"_CPPv4N3hal10stm32f411010peripheral3maxE","hal::stm32f4110::peripheral::max"],[54,3,1,"_CPPv4N3hal9stm32f41111adc_dividerE","hal::stm32f411::adc_divider"],[54,4,1,"_CPPv4N3hal9stm32f41111adc_divider11divide_by_2E","hal::stm32f411::adc_divider::divide_by_2"],[54,4,1,"_CPPv4N3hal9stm32f41111adc_divider11divide_by_4E","hal::stm32f411::adc_divider::divide_by_4"],[54,4,1,"_CPPv4N3hal9stm32f41111adc_divider11divide_by_6E","hal::stm32f411::adc_divider::divide_by_6"],[54,4,1,"_CPPv4N3hal9stm32f41111adc_divider11divide_by_8E","hal::stm32f411::adc_divider::divide_by_8"],[54,3,1,"_CPPv4N3hal9stm32f41111ahb_dividerE","hal::stm32f411::ahb_divider"],[54,4,1,"_CPPv4N3hal9stm32f41111ahb_divider11divide_by_1E","hal::stm32f411::ahb_divider::divide_by_1"],[54,4,1,"_CPPv4N3hal9stm32f41111ahb_divider13divide_by_128E","hal::stm32f411::ahb_divider::divide_by_128"],[54,4,1,"_CPPv4N3hal9stm32f41111ahb_divider12divide_by_16E","hal::stm32f411::ahb_divider::divide_by_16"],[54,4,1,"_CPPv4N3hal9stm32f41111ahb_divider11divide_by_2E","hal::stm32f411::ahb_divider::divide_by_2"],[54,4,1,"_CPPv4N3hal9stm32f41111ahb_divider13divide_by_256E","hal::stm32f411::ahb_divider::divide_by_256"],[54,4,1,"_CPPv4N3hal9stm32f41111ahb_divider11divide_by_4E","hal::stm32f411::ahb_divider::divide_by_4"],[54,4,1,"_CPPv4N3hal9stm32f41111ahb_divider13divide_by_512E","hal::stm32f411::ahb_divider::divide_by_512"],[54,4,1,"_CPPv4N3hal9stm32f41111ahb_divider12divide_by_64E","hal::stm32f411::ahb_divider::divide_by_64"],[54,4,1,"_CPPv4N3hal9stm32f41111ahb_divider11divide_by_8E","hal::stm32f411::ahb_divider::divide_by_8"],[54,3,1,"_CPPv4N3hal9stm32f41111apb_dividerE","hal::stm32f411::apb_divider"],[54,4,1,"_CPPv4N3hal9stm32f41111apb_divider11divide_by_1E","hal::stm32f411::apb_divider::divide_by_1"],[54,4,1,"_CPPv4N3hal9stm32f41111apb_divider12divide_by_16E","hal::stm32f411::apb_divider::divide_by_16"],[54,4,1,"_CPPv4N3hal9stm32f41111apb_divider11divide_by_2E","hal::stm32f411::apb_divider::divide_by_2"],[54,4,1,"_CPPv4N3hal9stm32f41111apb_divider11divide_by_4E","hal::stm32f411::apb_divider::divide_by_4"],[54,4,1,"_CPPv4N3hal9stm32f41111apb_divider11divide_by_8E","hal::stm32f411::apb_divider::divide_by_8"],[54,2,1,"_CPPv4N3hal9stm32f41110clock_treeE","hal::stm32f411::clock_tree"],[54,2,1,"_CPPv4N3hal9stm32f41110clock_tree5ahb_tE","hal::stm32f411::clock_tree::ahb_t"],[54,2,1,"_CPPv4N3hal9stm32f41110clock_tree5ahb_t6apb1_tE","hal::stm32f411::clock_tree::ahb_t::apb1_t"],[54,2,1,"_CPPv4N3hal9stm32f41110clock_tree5ahb_t6apb2_tE","hal::stm32f411::clock_tree::ahb_t::apb2_t"],[54,2,1,"_CPPv4N3hal9stm32f41110clock_tree5ahb_t6apb2_t5adc_tE","hal::stm32f411::clock_tree::ahb_t::apb2_t::adc_t"],[54,5,1,"_CPPv4N3hal9stm32f41110clock_tree19high_speed_externalE","hal::stm32f411::clock_tree::high_speed_external"],[54,5,1,"_CPPv4N3hal9stm32f41110clock_tree18low_speed_externalE","hal::stm32f411::clock_tree::low_speed_external"],[54,2,1,"_CPPv4N3hal9stm32f41110clock_tree5pll_tE","hal::stm32f411::clock_tree::pll_t"],[54,2,1,"_CPPv4N3hal9stm32f41110clock_tree5rtc_tE","hal::stm32f411::clock_tree::rtc_t"],[54,5,1,"_CPPv4N3hal9stm32f41110clock_tree12system_clockE","hal::stm32f411::clock_tree::system_clock"],[54,0,1,"_CPPv4N3hal9stm32f41116configure_clocksERK10clock_tree","hal::stm32f411::configure_clocks"],[54,1,1,"_CPPv4N3hal9stm32f41116configure_clocksERK10clock_tree","hal::stm32f411::configure_clocks::p_clock_tree"],[56,3,1,"_CPPv4N3hal9stm32f4113dmaE","hal::stm32f411::dma"],[56,4,1,"_CPPv4N3hal9stm32f4113dma4dma1E","hal::stm32f411::dma::dma1"],[56,4,1,"_CPPv4N3hal9stm32f4113dma4dma2E","hal::stm32f411::dma::dma2"],[54,0,1,"_CPPv4N3hal9stm32f4119frequencyE10peripheral","hal::stm32f411::frequency"],[54,1,1,"_CPPv4N3hal9stm32f4119frequencyE10peripheral","hal::stm32f411::frequency::p_id"],[57,2,1,"_CPPv4N3hal9stm32f41116i2c_manager_implE","hal::stm32f411::i2c_manager_impl"],[57,2,1,"_CPPv4N3hal9stm32f41116i2c_manager_impl3i2cE","hal::stm32f411::i2c_manager_impl::i2c"],[57,0,1,"_CPPv4N3hal9stm32f41116i2c_manager_impl3i2c3i2cER16i2c_manager_implRKN3i2c8settingsE","hal::stm32f411::i2c_manager_impl::i2c::i2c"],[57,1,1,"_CPPv4N3hal9stm32f41116i2c_manager_impl3i2c3i2cER16i2c_manager_implRKN3i2c8settingsE","hal::stm32f411::i2c_manager_impl::i2c::i2c::p_manager"],[57,1,1,"_CPPv4N3hal9stm32f41116i2c_manager_impl3i2c3i2cER16i2c_manager_implRKN3i2c8settingsE","hal::stm32f411::i2c_manager_impl::i2c::i2c::p_settings"],[57,0,1,"_CPPv4N3hal9stm32f41116i2c_manager_implD0Ev","hal::stm32f411::i2c_manager_impl::~i2c_manager_impl"],[54,3,1,"_CPPv4N3hal9stm32f41110i2s_sourceE","hal::stm32f411::i2s_source"],[54,4,1,"_CPPv4N3hal9stm32f41110i2s_source18i2s_external_clockE","hal::stm32f411::i2s_source::i2s_external_clock"],[54,4,1,"_CPPv4N3hal9stm32f41110i2s_source11pll_i2s_clkE","hal::stm32f411::i2s_source::pll_i2s_clk"],[60,0,1,"_CPPv4N3hal9stm32f41121initialize_interruptsEv","hal::stm32f411::initialize_interrupts"],[59,2,1,"_CPPv4N3hal9stm32f4119input_pinE","hal::stm32f411::input_pin"],[59,0,1,"_CPPv4N3hal9stm32f4119input_pin9input_pinEN3hal9stm32f41110peripheralENSt7uint8_tERKN9input_pin8settingsE","hal::stm32f411::input_pin::input_pin"],[59,1,1,"_CPPv4N3hal9stm32f4119input_pin9input_pinEN3hal9stm32f41110peripheralENSt7uint8_tERKN9input_pin8settingsE","hal::stm32f411::input_pin::input_pin::p_pin"],[59,1,1,"_CPPv4N3hal9stm32f4119input_pin9input_pinEN3hal9stm32f41110peripheralENSt7uint8_tERKN9input_pin8settingsE","hal::stm32f411::input_pin::input_pin::p_port"],[59,1,1,"_CPPv4N3hal9stm32f4119input_pin9input_pinEN3hal9stm32f41110peripheralENSt7uint8_tERKN9input_pin8settingsE","hal::stm32f411::input_pin::input_pin::p_settings"],[55,3,1,"_CPPv4N3hal9stm32f4113irqE","hal::stm32f411::irq"],[55,4,1,"_CPPv4N3hal9stm32f4113irq4adc1E","hal::stm32f411::irq::adc1"],[55,4,1,"_CPPv4N3hal9stm32f4113irq13dma1_channel0E","hal::stm32f411::irq::dma1_channel0"],[55,4,1,"_CPPv4N3hal9stm32f4113irq13dma1_channel1E","hal::stm32f411::irq::dma1_channel1"],[55,4,1,"_CPPv4N3hal9stm32f4113irq13dma1_channel2E","hal::stm32f411::irq::dma1_channel2"],[55,4,1,"_CPPv4N3hal9stm32f4113irq13dma1_channel3E","hal::stm32f411::irq::dma1_channel3"],[55,4,1,"_CPPv4N3hal9stm32f4113irq13dma1_channel4E","hal::stm32f411::irq::dma1_channel4"],[55,4,1,"_CPPv4N3hal9stm32f4113irq13dma1_channel5E","hal::stm32f411::irq::dma1_channel5"],[55,4,1,"_CPPv4N3hal9stm32f4113irq13dma1_channel6E","hal::stm32f411::irq::dma1_channel6"],[55,4,1,"_CPPv4N3hal9stm32f4113irq13dma1_channel7E","hal::stm32f411::irq::dma1_channel7"],[55,4,1,"_CPPv4N3hal9stm32f4113irq13dma2_channel0E","hal::stm32f411::irq::dma2_channel0"],[55,4,1,"_CPPv4N3hal9stm32f4113irq13dma2_channel1E","hal::stm32f411::irq::dma2_channel1"],[55,4,1,"_CPPv4N3hal9stm32f4113irq13dma2_channel2E","hal::stm32f411::irq::dma2_channel2"],[55,4,1,"_CPPv4N3hal9stm32f4113irq13dma2_channel3E","hal::stm32f411::irq::dma2_channel3"],[55,4,1,"_CPPv4N3hal9stm32f4113irq13dma2_channel4E","hal::stm32f411::irq::dma2_channel4"],[55,4,1,"_CPPv4N3hal9stm32f4113irq13dma2_channel5E","hal::stm32f411::irq::dma2_channel5"],[55,4,1,"_CPPv4N3hal9stm32f4113irq13dma2_channel6E","hal::stm32f411::irq::dma2_channel6"],[55,4,1,"_CPPv4N3hal9stm32f4113irq13dma2_channel7E","hal::stm32f411::irq::dma2_channel7"],[55,4,1,"_CPPv4N3hal9stm32f4113irq6exi9_5E","hal::stm32f411::irq::exi9_5"],[55,4,1,"_CPPv4N3hal9stm32f4113irq5exti0E","hal::stm32f411::irq::exti0"],[55,4,1,"_CPPv4N3hal9stm32f4113irq5exti1E","hal::stm32f411::irq::exti1"],[55,4,1,"_CPPv4N3hal9stm32f4113irq9exti15_10E","hal::stm32f411::irq::exti15_10"],[55,4,1,"_CPPv4N3hal9stm32f4113irq6exti17E","hal::stm32f411::irq::exti17"],[55,4,1,"_CPPv4N3hal9stm32f4113irq6exti18E","hal::stm32f411::irq::exti18"],[55,4,1,"_CPPv4N3hal9stm32f4113irq5exti2E","hal::stm32f411::irq::exti2"],[55,4,1,"_CPPv4N3hal9stm32f4113irq5exti3E","hal::stm32f411::irq::exti3"],[55,4,1,"_CPPv4N3hal9stm32f4113irq5exti4E","hal::stm32f411::irq::exti4"],[55,4,1,"_CPPv4N3hal9stm32f4113irq5flashE","hal::stm32f411::irq::flash"],[55,4,1,"_CPPv4N3hal9stm32f4113irq3fpuE","hal::stm32f411::irq::fpu"],[55,4,1,"_CPPv4N3hal9stm32f4113irq7i2c1_erE","hal::stm32f411::irq::i2c1_er"],[55,4,1,"_CPPv4N3hal9stm32f4113irq7i2c1_evE","hal::stm32f411::irq::i2c1_ev"],[55,4,1,"_CPPv4N3hal9stm32f4113irq7i2c2_erE","hal::stm32f411::irq::i2c2_er"],[55,4,1,"_CPPv4N3hal9stm32f4113irq7i2c2_evE","hal::stm32f411::irq::i2c2_ev"],[55,4,1,"_CPPv4N3hal9stm32f4113irq7i2c3_erE","hal::stm32f411::irq::i2c3_er"],[55,4,1,"_CPPv4N3hal9stm32f4113irq7i2c3_evE","hal::stm32f411::irq::i2c3_ev"],[55,4,1,"_CPPv4N3hal9stm32f4113irq3maxE","hal::stm32f411::irq::max"],[55,4,1,"_CPPv4N3hal9stm32f4113irq6otg_fsE","hal::stm32f411::irq::otg_fs"],[55,4,1,"_CPPv4N3hal9stm32f4113irq11otg_fs_wkupE","hal::stm32f411::irq::otg_fs_wkup"],[55,4,1,"_CPPv4N3hal9stm32f4113irq3pvdE","hal::stm32f411::irq::pvd"],[55,4,1,"_CPPv4N3hal9stm32f4113irq3rccE","hal::stm32f411::irq::rcc"],[55,4,1,"_CPPv4N3hal9stm32f4113irq3rtcE","hal::stm32f411::irq::rtc"],[55,4,1,"_CPPv4N3hal9stm32f4113irq8rtcalarmE","hal::stm32f411::irq::rtcalarm"],[55,4,1,"_CPPv4N3hal9stm32f4113irq4sdioE","hal::stm32f411::irq::sdio"],[55,4,1,"_CPPv4N3hal9stm32f4113irq4spi1E","hal::stm32f411::irq::spi1"],[55,4,1,"_CPPv4N3hal9stm32f4113irq4spi2E","hal::stm32f411::irq::spi2"],[55,4,1,"_CPPv4N3hal9stm32f4113irq4spi3E","hal::stm32f411::irq::spi3"],[55,4,1,"_CPPv4N3hal9stm32f4113irq4spi4E","hal::stm32f411::irq::spi4"],[55,4,1,"_CPPv4N3hal9stm32f4113irq4spi5E","hal::stm32f411::irq::spi5"],[55,4,1,"_CPPv4N3hal9stm32f4113irq6tamperE","hal::stm32f411::irq::tamper"],[55,4,1,"_CPPv4N3hal9stm32f4113irq8tim1_brkE","hal::stm32f411::irq::tim1_brk"],[55,4,1,"_CPPv4N3hal9stm32f4113irq14tim1_brk_tim19E","hal::stm32f411::irq::tim1_brk_tim19"],[55,4,1,"_CPPv4N3hal9stm32f4113irq7tim1_ccE","hal::stm32f411::irq::tim1_cc"],[55,4,1,"_CPPv4N3hal9stm32f4113irq12tim1_trg_comE","hal::stm32f411::irq::tim1_trg_com"],[55,4,1,"_CPPv4N3hal9stm32f4113irq18tim1_trg_com_tim11E","hal::stm32f411::irq::tim1_trg_com_tim11"],[55,4,1,"_CPPv4N3hal9stm32f4113irq7tim1_upE","hal::stm32f411::irq::tim1_up"],[55,4,1,"_CPPv4N3hal9stm32f4113irq13tim1_up_tim10E","hal::stm32f411::irq::tim1_up_tim10"],[55,4,1,"_CPPv4N3hal9stm32f4113irq4tim2E","hal::stm32f411::irq::tim2"],[55,4,1,"_CPPv4N3hal9stm32f4113irq4tim3E","hal::stm32f411::irq::tim3"],[55,4,1,"_CPPv4N3hal9stm32f4113irq4tim4E","hal::stm32f411::irq::tim4"],[55,4,1,"_CPPv4N3hal9stm32f4113irq4tim5E","hal::stm32f411::irq::tim5"],[55,4,1,"_CPPv4N3hal9stm32f4113irq6usart1E","hal::stm32f411::irq::usart1"],[55,4,1,"_CPPv4N3hal9stm32f4113irq6usart2E","hal::stm32f411::irq::usart2"],[55,4,1,"_CPPv4N3hal9stm32f4113irq6usart6E","hal::stm32f411::irq::usart6"],[55,4,1,"_CPPv4N3hal9stm32f4113irq15window_watchdogE","hal::stm32f411::irq::window_watchdog"],[54,0,1,"_CPPv4N3hal9stm32f41139maximum_speed_using_internal_oscillatorEv","hal::stm32f411::maximum_speed_using_internal_oscillator"],[61,2,1,"_CPPv4N3hal9stm32f41110output_pinE","hal::stm32f411::output_pin"],[61,0,1,"_CPPv4N3hal9stm32f41110output_pin10output_pinEN3hal9stm32f41110peripheralENSt7uint8_tEN10output_pin8settingsE","hal::stm32f411::output_pin::output_pin"],[61,1,1,"_CPPv4N3hal9stm32f41110output_pin10output_pinEN3hal9stm32f41110peripheralENSt7uint8_tEN10output_pin8settingsE","hal::stm32f411::output_pin::output_pin::p_pin"],[61,1,1,"_CPPv4N3hal9stm32f41110output_pin10output_pinEN3hal9stm32f41110peripheralENSt7uint8_tEN10output_pin8settingsE","hal::stm32f411::output_pin::output_pin::p_port"],[61,1,1,"_CPPv4N3hal9stm32f41110output_pin10output_pinEN3hal9stm32f41110peripheralENSt7uint8_tEN10output_pin8settingsE","hal::stm32f411::output_pin::output_pin::p_settings"],[55,3,1,"_CPPv4N3hal9stm32f41110peripheralE","hal::stm32f411::peripheral"],[55,4,1,"_CPPv4N3hal9stm32f41110peripheral4adc1E","hal::stm32f411::peripheral::adc1"],[55,4,1,"_CPPv4N3hal9stm32f41110peripheral3cpuE","hal::stm32f411::peripheral::cpu"],[55,4,1,"_CPPv4N3hal9stm32f41110peripheral3crcE","hal::stm32f411::peripheral::crc"],[55,4,1,"_CPPv4N3hal9stm32f41110peripheral4dma1E","hal::stm32f411::peripheral::dma1"],[55,4,1,"_CPPv4N3hal9stm32f41110peripheral4dma2E","hal::stm32f411::peripheral::dma2"],[55,4,1,"_CPPv4N3hal9stm32f41110peripheral6gpio_aE","hal::stm32f411::peripheral::gpio_a"],[55,4,1,"_CPPv4N3hal9stm32f41110peripheral6gpio_bE","hal::stm32f411::peripheral::gpio_b"],[55,4,1,"_CPPv4N3hal9stm32f41110peripheral6gpio_cE","hal::stm32f411::peripheral::gpio_c"],[55,4,1,"_CPPv4N3hal9stm32f41110peripheral6gpio_dE","hal::stm32f411::peripheral::gpio_d"],[55,4,1,"_CPPv4N3hal9stm32f41110peripheral6gpio_eE","hal::stm32f411::peripheral::gpio_e"],[55,4,1,"_CPPv4N3hal9stm32f41110peripheral6gpio_hE","hal::stm32f411::peripheral::gpio_h"],[55,4,1,"_CPPv4N3hal9stm32f41110peripheral4i2c1E","hal::stm32f411::peripheral::i2c1"],[55,4,1,"_CPPv4N3hal9stm32f41110peripheral4i2c2E","hal::stm32f411::peripheral::i2c2"],[55,4,1,"_CPPv4N3hal9stm32f41110peripheral4i2c3E","hal::stm32f411::peripheral::i2c3"],[55,4,1,"_CPPv4N3hal9stm32f41110peripheral3i2sE","hal::stm32f411::peripheral::i2s"],[55,4,1,"_CPPv4N3hal9stm32f41110peripheral5powerE","hal::stm32f411::peripheral::power"],[55,4,1,"_CPPv4N3hal9stm32f41110peripheral4sdioE","hal::stm32f411::peripheral::sdio"],[55,4,1,"_CPPv4N3hal9stm32f41110peripheral4spi1E","hal::stm32f411::peripheral::spi1"],[55,4,1,"_CPPv4N3hal9stm32f41110peripheral4spi2E","hal::stm32f411::peripheral::spi2"],[55,4,1,"_CPPv4N3hal9stm32f41110peripheral4spi3E","hal::stm32f411::peripheral::spi3"],[55,4,1,"_CPPv4N3hal9stm32f41110peripheral4spi4E","hal::stm32f411::peripheral::spi4"],[55,4,1,"_CPPv4N3hal9stm32f41110peripheral4spi5E","hal::stm32f411::peripheral::spi5"],[55,4,1,"_CPPv4N3hal9stm32f41110peripheral24system_config_controllerE","hal::stm32f411::peripheral::system_config_controller"],[55,4,1,"_CPPv4N3hal9stm32f41110peripheral12system_timerE","hal::stm32f411::peripheral::system_timer"],[55,4,1,"_CPPv4N3hal9stm32f41110peripheral6timer1E","hal::stm32f411::peripheral::timer1"],[55,4,1,"_CPPv4N3hal9stm32f41110peripheral7timer10E","hal::stm32f411::peripheral::timer10"],[55,4,1,"_CPPv4N3hal9stm32f41110peripheral7timer11E","hal::stm32f411::peripheral::timer11"],[55,4,1,"_CPPv4N3hal9stm32f41110peripheral6timer2E","hal::stm32f411::peripheral::timer2"],[55,4,1,"_CPPv4N3hal9stm32f41110peripheral6timer3E","hal::stm32f411::peripheral::timer3"],[55,4,1,"_CPPv4N3hal9stm32f41110peripheral6timer4E","hal::stm32f411::peripheral::timer4"],[55,4,1,"_CPPv4N3hal9stm32f41110peripheral6timer5E","hal::stm32f411::peripheral::timer5"],[55,4,1,"_CPPv4N3hal9stm32f41110peripheral6timer9E","hal::stm32f411::peripheral::timer9"],[55,4,1,"_CPPv4N3hal9stm32f41110peripheral6usart1E","hal::stm32f411::peripheral::usart1"],[55,4,1,"_CPPv4N3hal9stm32f41110peripheral6usart2E","hal::stm32f411::peripheral::usart2"],[55,4,1,"_CPPv4N3hal9stm32f41110peripheral6usart6E","hal::stm32f411::peripheral::usart6"],[55,4,1,"_CPPv4N3hal9stm32f41110peripheral7usb_otgE","hal::stm32f411::peripheral::usb_otg"],[55,4,1,"_CPPv4N3hal9stm32f41110peripheral15window_watchdogE","hal::stm32f411::peripheral::window_watchdog"],[62,2,1,"_CPPv4N3hal9stm32f4113pinE","hal::stm32f411::pin"],[62,0,1,"_CPPv4N3hal9stm32f4113pin16activate_mco_pc9E10mco_source","hal::stm32f411::pin::activate_mco_pc9"],[62,1,1,"_CPPv4N3hal9stm32f4113pin16activate_mco_pc9E10mco_source","hal::stm32f411::pin::activate_mco_pc9::p_source"],[62,0,1,"_CPPv4NK3hal9stm32f4113pin8functionE12pin_function","hal::stm32f411::pin::function"],[62,1,1,"_CPPv4NK3hal9stm32f4113pin8functionE12pin_function","hal::stm32f411::pin::function::p_function"],[62,0,1,"_CPPv4NK3hal9stm32f4113pin10open_drainEb","hal::stm32f411::pin::open_drain"],[62,1,1,"_CPPv4NK3hal9stm32f4113pin10open_drainEb","hal::stm32f411::pin::open_drain::p_enable"],[62,0,1,"_CPPv4N3hal9stm32f4113pin3pinE10peripheralNSt7uint8_tE","hal::stm32f411::pin::pin"],[62,1,1,"_CPPv4N3hal9stm32f4113pin3pinE10peripheralNSt7uint8_tE","hal::stm32f411::pin::pin::p_pin"],[62,1,1,"_CPPv4N3hal9stm32f4113pin3pinE10peripheralNSt7uint8_tE","hal::stm32f411::pin::pin::p_port"],[62,0,1,"_CPPv4NK3hal9stm32f4113pin8resistorEN3hal12pin_resistorE","hal::stm32f411::pin::resistor"],[62,1,1,"_CPPv4NK3hal9stm32f4113pin8resistorEN3hal12pin_resistorE","hal::stm32f411::pin::resistor::p_resistor"],[54,3,1,"_CPPv4N3hal9stm32f41110pll_sourceE","hal::stm32f411::pll_source"],[54,4,1,"_CPPv4N3hal9stm32f41110pll_source19high_speed_externalE","hal::stm32f411::pll_source::high_speed_external"],[54,4,1,"_CPPv4N3hal9stm32f41110pll_source19high_speed_internalE","hal::stm32f411::pll_source::high_speed_internal"],[54,3,1,"_CPPv4N3hal9stm32f41110rtc_sourceE","hal::stm32f411::rtc_source"],[54,4,1,"_CPPv4N3hal9stm32f41110rtc_source34high_speed_external_divided_by_128E","hal::stm32f411::rtc_source::high_speed_external_divided_by_128"],[54,4,1,"_CPPv4N3hal9stm32f41110rtc_source18low_speed_externalE","hal::stm32f411::rtc_source::low_speed_external"],[54,4,1,"_CPPv4N3hal9stm32f41110rtc_source18low_speed_internalE","hal::stm32f411::rtc_source::low_speed_internal"],[54,4,1,"_CPPv4N3hal9stm32f41110rtc_source8no_clockE","hal::stm32f411::rtc_source::no_clock"],[56,0,1,"_CPPv4N3hal9stm32f41123set_dma_memory_transferE3dmaKNSt4spanIK4byteEEKNSt4spanI4byteEE","hal::stm32f411::set_dma_memory_transfer"],[56,1,1,"_CPPv4N3hal9stm32f41123set_dma_memory_transferE3dmaKNSt4spanIK4byteEEKNSt4spanI4byteEE","hal::stm32f411::set_dma_memory_transfer::p_destination"],[56,1,1,"_CPPv4N3hal9stm32f41123set_dma_memory_transferE3dmaKNSt4spanIK4byteEEKNSt4spanI4byteEE","hal::stm32f411::set_dma_memory_transfer::p_dma"],[56,1,1,"_CPPv4N3hal9stm32f41123set_dma_memory_transferE3dmaKNSt4spanIK4byteEEKNSt4spanI4byteEE","hal::stm32f411::set_dma_memory_transfer::p_source"],[63,2,1,"_CPPv4N3hal9stm32f4113spiE","hal::stm32f411::spi"],[63,0,1,"_CPPv4N3hal9stm32f4113spi3spiEN3hal7runtimeENSt7uint8_tERKN3spi8settingsE","hal::stm32f411::spi::spi"],[63,1,1,"_CPPv4N3hal9stm32f4113spi3spiEN3hal7runtimeENSt7uint8_tERKN3spi8settingsE","hal::stm32f411::spi::spi::p_bus"],[63,1,1,"_CPPv4N3hal9stm32f4113spi3spiEN3hal7runtimeENSt7uint8_tERKN3spi8settingsE","hal::stm32f411::spi::spi::p_settings"],[54,3,1,"_CPPv4N3hal9stm32f41119system_clock_selectE","hal::stm32f411::system_clock_select"],[54,4,1,"_CPPv4N3hal9stm32f41119system_clock_select19high_speed_externalE","hal::stm32f411::system_clock_select::high_speed_external"],[54,4,1,"_CPPv4N3hal9stm32f41119system_clock_select19high_speed_internalE","hal::stm32f411::system_clock_select::high_speed_internal"],[54,4,1,"_CPPv4N3hal9stm32f41119system_clock_select3pllE","hal::stm32f411::system_clock_select::pll"],[64,2,1,"_CPPv4N3hal9stm32f4114uartE","hal::stm32f411::uart"],[64,0,1,"_CPPv4N3hal9stm32f4114uart4uartEN3hal10port_paramEN3hal12buffer_paramERKN6serial8settingsE","hal::stm32f411::uart::uart"],[64,0,1,"_CPPv4N3hal9stm32f4114uart4uartEN3hal7runtimeE2u8NSt4spanIN3hal4byteEEERKN6serial8settingsE","hal::stm32f411::uart::uart"],[64,1,1,"_CPPv4N3hal9stm32f4114uart4uartEN3hal10port_paramEN3hal12buffer_paramERKN6serial8settingsE","hal::stm32f411::uart::uart::p_buffer"],[64,1,1,"_CPPv4N3hal9stm32f4114uart4uartEN3hal7runtimeE2u8NSt4spanIN3hal4byteEEERKN6serial8settingsE","hal::stm32f411::uart::uart::p_buffer"],[64,1,1,"_CPPv4N3hal9stm32f4114uart4uartEN3hal10port_paramEN3hal12buffer_paramERKN6serial8settingsE","hal::stm32f411::uart::uart::p_port"],[64,1,1,"_CPPv4N3hal9stm32f4114uart4uartEN3hal7runtimeE2u8NSt4spanIN3hal4byteEEERKN6serial8settingsE","hal::stm32f411::uart::uart::p_port"],[64,1,1,"_CPPv4N3hal9stm32f4114uart4uartEN3hal10port_paramEN3hal12buffer_paramERKN6serial8settingsE","hal::stm32f411::uart::uart::p_settings"],[64,1,1,"_CPPv4N3hal9stm32f4114uart4uartEN3hal7runtimeE2u8NSt4spanIN3hal4byteEEERKN6serial8settingsE","hal::stm32f411::uart::uart::p_settings"]]},"objnames":{"0":["cpp","function","C++ function"],"1":["cpp","functionParam","C++ function parameter"],"2":["cpp","class","C++ class"],"3":["cpp","enum","C++ enum"],"4":["cpp","enumerator","C++ enumerator"],"5":["cpp","member","C++ member"],"6":["cpp","templateParam","C++ template parameter"]},"objtypes":{"0":"cpp:function","1":"cpp:functionParam","2":"cpp:class","3":"cpp:enum","4":"cpp:enumerator","5":"cpp:member","6":"cpp:templateParam"},"terms":{"0_mhz":[36,54],"0f":7,"0x0000":[4,28],"0xffff":28,"120mhz":9,"12mhz":9,"1mhz":7,"1ms":[31,51],"1x":34,"255ms":51,"2ms":31,"2nd":24,"2x":34,"32bit":54,"4x":34,"500us":31,"5f":14,"5ms":31,"A":[0,2,4,10,14,26,30,34,39,45],"After":[26,30],"All":2,"An":34,"As":30,"But":3,"Each":34,"For":[4,31,39],"Here":[1,6,15,27,41,53,58],"I":[10,62],"If":[2,4,9,12,14,28,31,34,35,36,39,45,54],"In":51,"It":[3,31,48],"Its":51,"NOT":[2,9,22],"No":24,"Not":3,"OUT":51,"On":4,"Other":22,"Out":10,"Should":12,"So":[26,30,34],"That":2,"The":[2,4,7,12,14,24,26,28,30,31,33,34,36,39,45,54],"Then":48,"There":2,"These":[48,57],"This":[0,2,3,4,5,9,12,14,22,26,28,30,31,33,35,39,42,44,46,48,57],"Those":2,"To":39,"What":5,"When":34,"Where":32,"Which":7,"You":48,"_mhz":[36,54],"a1":39,"abl":4,"abort":7,"abov":[0,4,7,9,26],"abstract":31,"accept":34,"access":[9,26,30],"accommod":2,"achiev":[13,14,23,31],"ack":[26,30],"acquir":[28,34,35,39,48,51],"acquire_bus_manag":[6,34,41],"acquire_channel":[6,33,41],"acquire_extended_identifier_filt":[6,34,41],"acquire_extended_mask_filt":[6,34,41],"acquire_identifier_filt":[6,34,41],"acquire_input_pin":[6,39,41],"acquire_interrupt":[6,34,41],"acquire_mask_filt":[6,34,41],"acquire_output_pin":[6,39,41],"acquire_pwm_group_frequ":[6,41,48],"acquire_tim":[6,41,48],"acquire_transceiv":[6,34,41],"across":[7,12,26,27,30,31],"activ":10,"activate_mco_pa8":[6,41,45],"activate_mco_pc9":[6,58,62],"actual":40,"adc":[6,10,12,15,20,36,41,54],"adc1":[6,37,41,55,58],"adc1_2":[6,37,41],"adc2":[6,37,41],"adc3":[6,37,41],"adc_divid":[6,36,41,54,58],"adc_manag":[6,41],"adc_pin":[7,33],"adc_t":[36,54],"addit":[4,24,39],"address":[2,4,26,28,30,31,39],"advanc":[28,36,48,54],"advanced_tim":48,"advanced_timer_manag":[6,41],"advantag":4,"afio":[6,37,41],"afterward":[17,43,60],"agnost":12,"ahb":[36,54],"ahb_divid":[6,36,41,54,58],"ahb_t":[6,36,41,54,58],"aim":[26,30],"alarm":[37,55],"align":24,"alloc":[3,35,39,49,64],"allow":[9,26,30,35,39],"alreadi":[2,31,35,39,48],"also":[3,7,33],"altern":[9,45],"alternatex":62,"alway":3,"amount":[9,31,34,35,48,51],"analog":[6,7,11,15,20,33],"ani":[2,3,5,9,24,28,31,48],"anoth":4,"apb":[36,54],"apb1_t":[36,54],"apb2_t":[36,54],"apb_divid":[6,36,41,54,58],"api":2,"app":[20,62],"appear":34,"appli":[9,33],"applic":[2,3,4,24,26,30],"approach":4,"appropri":[12,26,30,31],"architectur":5,"argument_out_of_domain":[31,42,44],"arm":[0,2,7,8,9,10,11,12,13,14,16,17,18,19,20,21,22,23,24,25,26,28,29,30,31,32,33,34,35,36,37,38,39,40,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,59,60,61,62,63,64],"armbas":54,"around":39,"array":[9,34],"assign":2,"associ":45,"assum":3,"atomic_spin_lock":12,"attempt":[26,30,39],"attent":[36,54],"auto":[7,47,49,64],"avail":[5,28,31,33,35,36,45,54],"available_filt":[6,35,41],"away":[2,26,30],"back":[2,35,45],"backup_clock":[6,37,41],"ban":34,"bank":[34,35],"base":[4,7,9,32,36,54],"basi":34,"basic":12,"basic_lock":12,"baud":[25,34,35],"baud_rat":[6,35,41],"becaus":[3,26,28,30,31,34],"becom":[28,31],"befor":[2,3,5,12,26,28,30,31,34,35,51],"begin":28,"behavior":14,"belong":33,"better":[9,39],"beyond":[2,36,54],"bit":[8,24,34,36],"bit_16":[6,12,15],"bit_32":[6,12,15],"bit_8":[6,12,15],"bloat":48,"block":[14,22,39],"bod":[6,10,15],"bool":[2,4,9,20,21,31,34,35,40,62],"boolean":28,"boost":9,"bound":7,"break":[26,30,37,55],"brown":10,"bss":3,"buffer":[25,35,38,49,64],"buffer_param":[49,64],"bus":[2,8,13,14,23,34,35,36,45,47,54,57,63],"bus_fault":[1,2,6],"bus_fault_handl":[1,2,6],"bus_info":[6,13,14,15,23],"bus_manag":[6,34,41],"bus_on":[6,35,41],"bus_param":47,"bxcan":34,"byte":[24,25,26,30,32,49,56,64],"bytes_1":[6,12,15],"bytes_128":[6,12,15],"bytes_16":[6,12,15],"bytes_256":[6,12,15],"bytes_32":[6,12,15],"bytes_4":[6,12,15],"bytes_64":[6,12,15],"bytes_8":[6,12,15],"c":3,"calcul":28,"call":[2,3,4,7,12,17,26,28,30,31,33,34,35,39,43,45,60],"callback":[12,31,35,48],"caller":[26,30,35,39],"can":[2,3,4,6,10,14,15,17,20,26,30,36,38,39,41,43,45,46,48,54,57,60,62],"can1":[6,10,15,37,41],"can1_rx0":[6,37,41],"can1_rx1":[6,37,41],"can1_sc":[6,37,41],"can1_tx":[6,37,41],"can2":[6,10,15,35,37],"can2_rx0":[6,37,41],"can2_rx1":[6,37,41],"can2_sc":[6,37,41],"can2_tx":[6,37,41],"can_bus_manag":34,"can_extended_identifier_filt":34,"can_extended_mask_filt":34,"can_identifier_filt":34,"can_interrupt":[34,35],"can_mask_filt":34,"can_messag":[34,35],"can_peripheral_manag":[6,41],"can_peripheral_manager_v2":[6,41],"can_pin":[6,34,35,41,45],"can_self_test":35,"can_transceiv":34,"canact":[6,10,15],"cancel":[6,27,31],"capitol":45,"captur":[37,55],"card":10,"care":[0,2,5,7,26,28,30],"case":3,"caus":[36,48,54],"cd00171190":36,"cec":[6,37,41],"certain":33,"chain":[20,62],"chang":[0,4,5,7,20,22,62],"channel":[6,7,15,22,28,33,37,41,45,48,55,62],"channel0":[6,12,15],"channel1":[6,12,15],"channel2":[6,12,15],"channel3":[6,12,15],"channel4":[6,12,15],"channel5":[6,12,15],"channel6":[6,12,15],"channel7":[6,12,15],"channel_param":7,"check":[2,4,14,21,40],"check_flag":[6,40,41],"chip":5,"choic":2,"choos":[24,34],"chosen":[31,46],"chrono":[34,35],"circular":35,"class":[0,2,5,7,8,9,10,11,12,13,14,16,18,19,20,22,23,24,25,26,28,29,30,31,32,33,34,35,36,37,39,40,42,44,45,46,47,48,49,50,51,52,54,55,56,57,59,61,62,63,64],"clear":[2,5,40],"clear_flag":[6,40,41],"clock":[0,5,6,10,13,14,15,23,25,26,28,30,31,32,34,35,40,41,45,51,58,62],"clock1":[6,9,15],"clock2":[6,9,15],"clock3":[6,9,15],"clock4":[6,9,15],"clock5":[6,9,15],"clock6":[6,9,15],"clock_configur":[36,54],"clock_funct":[13,23],"clock_rat":7,"clock_sourc":[1,5,6],"clock_tre":[6,15,41,58],"close":31,"cmp0":[6,10,15],"cmp1":[6,10,15],"code":[2,3,4,7,8,9,13,14,20,22,23,25,48],"collect":[1,15,27,41,53,58],"com":[36,54],"common":[31,32],"commut":[37,55],"compar":[37,55],"compil":4,"complet":[12,13,14,31],"condit":9,"config":9,"configur":[5,6,8,9,12,13,14,20,23,26,27,28,30,31,32,33,36,40,48,54,62],"configure_clock":[6,9,15,36,41,54,58],"conflict":[24,28,48],"conjunct":48,"connect":[4,9,20,34,62],"consequ":39,"conserv":39,"consid":39,"consider":57,"consist":[28,31],"const":[2,7,9,12,13,14,16,18,19,20,23,25,26,30,32,35,39,47,49,54,56,57,59,62,63,64],"constant":[6,9,15,41,53,58],"constexpr":[20,38],"construct":[0,5,7,13,14,16,18,19,20,22,23,25,26,28,30,31,33,34,35,47,49,51,57,59,61,62,63,64],"constructor":[0,5,14,20,26,28,30,31,34,57],"consult":[36,54],"consum":[4,39],"contain":[2,8,25,34],"content":3,"context":[4,26,30],"control":[1,6,8,9,10,12,14,20,22,26,28,30,31,38,39,48,62],"convert":[7,10,11],"cope":3,"copi":[3,32],"coprocessor":4,"core":[2,48],"coredebug":4,"correct":[0,5,28,31],"cortex":[0,1,2,6],"cortex_m":[0,1,2,3,4,5,6,10,31,37,55],"coundown":40,"count":[35,39],"countdown":40,"counter":[1,5,6,40],"cpu":[0,4,5,6,9,10,13,14,15,26,30,37,41,55,58],"cpu_t":[6,9,15],"crc":[6,37,41,55,58],"creat":[4,5,33,34,39,46,48],"creation":[13,14,22,23],"critic":4,"crt0":3,"crystal":9,"current":[9,20,31,35],"custom":7,"cycl":[2,9,14,28,48],"d":10,"dac":[6,10,12,15,20,37,41],"danger":2,"data":[3,7,13,14,23,24,26,30,32,51],"data_in":[13,23],"data_in_funct":[13,23],"data_out":[13,23],"data_out_funct":[13,23],"deactiv":34,"debug":[1,2,6],"debugg":[3,4],"debugger_connect":[1,4,6],"dedic":22,"deduc":31,"default":[2,7,12,20,45],"default_interrupt_handl":[1,2,6],"defin":[0,2,3,4,5,7,8,9,10,11,12,13,14,16,17,18,19,20,21,22,23,24,25,26,28,29,30,31,32,33,34,35,36,37,38,39,40,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,59,60,61,62,63,64],"delay":31,"depend":[0,2,5],"deprec":[34,42,44,46],"deriv":57,"design":[4,14,48],"desir":[28,36,49,54,64],"destin":[12,56],"destroy":[5,26,34,57],"detail":[9,20,31,62],"detect":[10,37,55],"determin":[2,9,26,30,31,34,35,36,54],"develop":[2,26,30],"devic":[0,14,22,26,30,34,35,37],"device_or_resource_busi":[31,39,48],"dhcsrd":4,"differ":[2,26,30,31],"difficult":4,"digit":[7,11,20],"digital_filt":[6,15,20],"direct":[2,9,13,23,28],"disabl":[2,5,9,20,34,35,62],"disable_all_interrupt":[1,2,6],"disable_id":[6,34,41],"disable_interrupt":[1,2,6],"divid":[9,36,54,62],"divide_by1":[6,9,15],"divide_by2":[6,9,15],"divide_by3":[6,9,15],"divide_by4":[6,9,15],"divide_by_1":[6,36,41,54,58],"divide_by_128":[6,36,41,54,58],"divide_by_16":[6,36,41,54,58],"divide_by_1_point_5":[6,36,41],"divide_by_2":[6,36,41,54,58],"divide_by_256":[6,36,41,54,58],"divide_by_4":[6,36,41,54,58],"divide_by_512":[6,36,41,54,58],"divide_by_6":[6,36,41,54,58],"divide_by_64":[6,36,41,54,58],"divide_by_8":[6,36,41,54,58],"dma":[6,10,15,24,32,41,49,58,64],"dma1":[6,37,41,55,56,58],"dma1_channel0":[6,55,58],"dma1_channel1":[6,37,41,55,58],"dma1_channel2":[6,37,41,55,58],"dma1_channel3":[6,37,41,55,58],"dma1_channel4":[6,37,41,55,58],"dma1_channel5":[6,37,41,55,58],"dma1_channel6":[6,37,41,55,58],"dma1_channel7":[6,37,41,55,58],"dma2":[6,37,41,55,56,58],"dma2_channel0":[6,55,58],"dma2_channel1":[6,37,41,55,58],"dma2_channel2":[6,37,41,55,58],"dma2_channel3":[6,37,41,55,58],"dma2_channel4":[6,37,41,55,58],"dma2_channel4_5":[6,37,41],"dma2_channel5":[6,37,41,55,58],"dma2_channel6":[6,55,58],"dma2_channel7":[6,55,58],"dma_burst_s":[6,12,15],"dma_channel_select":[6,12,15],"dma_peripher":[6,12,15],"dma_spi":[6,15],"dma_transfer_typ":[6,12,15],"dma_transfer_width":[6,12,15],"document":2,"doe":[2,4,7,14,17,24,26,30,31,34,42,43,60],"doesn":34,"don":57,"done":[2,3,26,28,31],"drain":20,"drive":[28,31],"driven":14,"driver":[0,2,4,5,6,14,20,22,24,25,26,28,30,34,35,47,62],"drop":57,"due":40,"duplic":48,"durat":51,"duti":[14,28,48],"duty_cycl":[6,14,27,28],"dwt":[1,6],"dwt_counter":[0,1,6],"e":4,"earli":2,"easi":24,"eeprom":[6,10,15],"effici":[26,30],"eint0":[6,10,15],"eint1":[6,10,15],"eint2":[6,10,15],"eint3":[6,10,15],"either":[2,4,22,34],"elf":3,"els":[2,39],"embed":6,"emc":[6,9,10,15],"emc_half_cpu_divid":[6,9,15],"en":[36,54],"enabl":[2,4,9,20,34,35,36,54,57,62],"enable_all_interrupt":[1,2,6],"enable_interrupt":[1,2,6],"enable_self_test":[6,35,41],"encod":[6,10,27],"encourag":2,"endpoint":51,"enet":[6,10,15],"ensur":[7,28],"entir":34,"entri":2,"enum":[2,5,9,10,12,34,36,37,45,52,54,55,56],"enumer":[2,5,9,10,12,34,36,37,45,52,54,55,56],"equal":[2,9,25],"error":[9,26,37,39,55],"eth":[6,37,41],"eth_wkup":[6,37,41],"ethernet":[6,10,15,37],"event":[4,5,26,31,37,55],"everi":[5,36,54],"everyth":[2,9],"exampl":[4,31,39],"exceed":[7,34,35],"except":[39,51],"execut":[2,3,4,26,30,31],"exhaust":39,"exi9_5":[6,55,58],"exist":[4,28],"exit":35,"expect":[0,5,34],"expir":31,"explain":9,"extend":34,"extended_identifier_filt":[6,34,41],"extended_identifier_filter_set":[6,34,41],"extended_mask_filt":[6,34,41],"extern":[5,9,10,36,37,49,54,55,64],"exti":[37,55],"exti0":[6,37,41,55,58],"exti1":[6,37,41,55,58],"exti15_10":[6,37,41,55,58],"exti17":[6,55,58],"exti18":[6,55,58],"exti2":[6,37,41,55,58],"exti3":[6,37,41,55,58],"exti4":[6,37,41,55,58],"exti9_5":[6,37,41],"f":10,"f10x":44,"fail":[26,30],"failur":[28,31],"fals":[2,4,9,20,21,31,34,62],"famili":25,"fault":[2,4,26,30,36,54],"fifo1":34,"fifo2":34,"fifo_assign":[6,34,41],"figur":[36,54],"file":3,"filler":30,"filter":[20,34,35],"filter_resourc":[6,34,41],"find":6,"finish":[14,31],"fire":[2,14],"first":[3,4,17,28,43,60],"fix":0,"flag":40,"flash":[2,6,9,37,41,55,58],"flash_configur":[6,9,15],"flexibl":4,"flitf":[6,37,41],"float":[4,14,28,42],"flow":12,"follow":[2,36,45,54],"forev":2,"forgotten":35,"form":2,"found":4,"fpu":[6,55,58],"freed":34,"frequenc":[0,5,6,7,9,22,25,26,27,28,30,32,36,40,41,48,54,58],"fs":[37,55],"fsmc":[6,37,41],"full":[13,23,34],"function":[0,1,2,5,6,7,8,9,13,14,15,16,18,19,20,22,23,25,26,28,30,31,32,33,34,35,40,42,44,45,47,48,49,51,57,58,59,61,62,63,64],"function_ref":26,"g":[39,45],"general":[2,10,28,48],"general_purpose_tim":48,"general_purpose_timer_manag":[6,41],"generat":[0,5,22,39,48],"generic":[5,6],"get":[2,4,7,9,26,30,31,32,35,39,42,44],"get_frequ":[6,9,15],"get_interrupt_vector_table_address":[1,4,6],"get_vector_t":[1,2,6],"give":4,"given":[5,34],"global":[2,3],"go":7,"gpdma":[6,10,15],"gpio":[6,10,15,41,42,44,45],"gpio_":[6,37,41,55,58],"gpio_a":[6,37,39,41,55,58],"gpio_b":[6,37,41,55,58],"gpio_c":[6,37,41,55,58],"gpio_d":[6,37,41,55,58],"gpio_f":[6,37,41],"gpio_g":[6,37,39,41],"gpio_h":[6,55,58],"gpio_manag":[6,41],"great":4,"group":48,"guarante":25,"hal":[0,1,2,3,4,5,6,10,15,17,21,27,37,38,41,43,52,55,56,58,60],"half":9,"halt":34,"handl":[14,26,30,31,38],"handle_i2c_error":[6,26,27],"handle_i2c_ev":[6,26,27],"handler":[2,31],"happen":[2,3,31,35],"hard":[2,36,54],"hard_fault":[1,2,6],"hard_fault_handl":[1,2,6],"hardwar":[2,9,34],"haven":3,"hdmi":37,"held":[4,34],"help":48,"hertz":[0,5,7,9,26,30,32,35,36,54],"high":[20,36,37,54],"high_slew_r":[6,15,20],"high_speed_extern":[6,36,41,45,54,58],"high_speed_external_divided_by_128":[6,36,41,54,58],"high_speed_external_divided_by_2":[6,36,41],"high_speed_intern":[6,36,41,45,54,58],"highest":7,"highspeed_i2c":[6,15,20],"hold":[14,35,45],"host":51,"hpp":[0,2,3,4,5,7,8,9,10,11,12,13,14,16,17,18,19,20,21,22,23,24,25,26,28,29,30,31,32,33,34,35,36,37,38,39,40,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,59,60,61,62,63,64],"https":[36,54],"hysteresi":[6,15,20,62],"i2":[6,10,15,37,41,54,55,58],"i2c":[6,15,20,27,58],"i2c0":[6,10,15],"i2c1":[6,10,15,37,41,55,58],"i2c1_er":[6,37,41,55,58],"i2c1_ev":[6,37,41,55,58],"i2c2":[6,10,15,37,41,55,58],"i2c2_er":[6,37,41,55,58],"i2c2_ev":[6,37,41,55,58],"i2c3":[6,55,58],"i2c3_er":[6,55,58],"i2c3_ev":[6,55,58],"i2c_high_curr":[6,15,20],"i2c_manag":57,"i2c_manager_impl":[6,58],"i2s_ckin":54,"i2s_external_clock":[6,54,58],"i2s_sourc":[6,54,58],"id":[8,9,10,13,14,22,23,25,33,34,37,50,52,55],"identifi":34,"identifier_filt":[6,34,41],"identifier_filter_set":[6,34,41],"ignor":[14,24],"immut":4,"implement":[13,16,18,19,24,25,26,30,31,33,34,42,44,46,48,57,59],"includ":[0,2,3,4,5,7,8,9,10,11,12,13,14,16,17,18,19,20,21,22,23,24,25,26,28,29,30,31,32,33,34,35,36,37,38,39,40,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,59,60,61,62,63,64],"incom":[26,30],"incorrect":[36,54],"increas":[4,9,35],"independ":[6,22,41],"independent_watchdog":[6,41],"index":[2,7,22,34,35],"indic":28,"indirect":4,"ineffici":12,"infinit":2,"info":[13,14,23],"inform":[0,5,7,8,13,14,22,23,25],"inherit":48,"init":45,"initi":[2,3,5,6,16,17,18,19,25,26,27,28,30,31,34,35,36,39,43,44,47,49,51,59,60,61,64],"initialize_bss_sect":[1,3,6],"initialize_data_sect":[1,3,6],"initialize_floating_point_unit":[1,4,6],"initialize_interrupt":[1,2,6,15,17,31,41,43,58,60],"initialize_interrupts_funct":31,"inlin":[3,7,20,28,33,35,47,49,64],"input":[2,6,9,15,20,26,28,30,31,32,33,39,41,58],"input_invert":[6,15,20],"input_pin":[6,15,39,41,58],"insert":26,"insid":2,"instal":31,"instanc":[5,39],"instanti":[28,48],"instead":[26,28,30,31,34,42,44],"instruct":4,"intend":31,"interfac":[10,31,33,34,46,48],"internal":[2,20,35,36,54,57,62],"internal_8mhz_divided_by_2":[6,36,41],"interrupt":[1,4,5,6,10,14,15,25,31,34,37,41,48,52,55,58],"interrupt_pin":[6,15],"interrupt_point":[2,31],"interrupt_vector_table_initi":[1,2,6],"interupt":26,"invalid":2,"invert":20,"invok":31,"io":45,"io_wait":[13,14],"irc":9,"irc_frequ":9,"irq":[1,2,6,8,10,14,15,25,31,37,41,52,53,55,58],"irq_numb":[8,14,25],"irq_t":[2,10,31,37,55],"is_interrupt_en":[1,2,6],"is_on":[6,15,21],"is_run":[6,27,31],"isr":4,"issu":[17,43,60],"ivt":4,"jtag":45,"kept":[36,54],"know":2,"land":2,"last":7,"latenc":4,"later":[42,44],"layer":4,"lcd":[6,10,15],"least":24,"length":[2,38,49,64],"less":25,"letter":45,"libhal":[0,2,3,4,5,7,8,9,10,11,12,13,14,16,17,18,19,20,21,22,23,24,25,26,28,29,30,31,32,33,34,35,36,37,38,39,40,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,59,60,61,62,63,64],"librari":[4,26,30],"like":2,"line":[20,37,55,57],"line0":[37,55],"line1":[37,55],"line17":55,"line18":55,"line2":[37,55],"line3":[37,55],"line4":[37,55],"list":[6,10,28,37,52,55],"load":3,"locat":[2,3,4],"lock":[9,10,12,36,54],"logic":[20,31],"longer":[0,5],"loop":[2,9],"loopback":35,"low":[36,37,54,57],"low_speed_extern":[6,36,41,54,58],"low_speed_intern":[6,36,41,54,58],"lpc40":6,"lpc4078":9,"lpc40xx":[6,7,8,9,14,16,18,19,20,22,25],"m":[1,2,6],"m3":0,"m4":4,"machin":14,"main":[3,9,10,45],"make":[4,9,20,24,45,57],"manag":[2,3,26,30,33,34,35,39,51,57],"mang":[26,30],"mani":4,"manual":[4,36,54],"mark":[26,30],"mask":34,"mask_filt":[6,34,41],"mask_filter_set":[6,34,41],"master":45,"match":[0,2,5],"max":[2,6,10,15,37,41,51,52,53,55,58],"max_dma_length":[6,38,41],"maximum":[6,9,15,36,38,49,54,64],"maximum_speed_using_internal_oscil":[6,36,41,54,58],"may":[14,26,30,31,36,40,54],"mci":[6,10,15],"mco":45,"mco_sourc":[6,41,45,62],"mcpwm":[6,10,15],"mcu":[0,2,3,4,5,7,8,9,10,11,12,13,14,16,17,18,19,20,21,22,23,24,25,26,28,29,30,31,32,33,34,35,36,37,38,39,40,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,59,60,61,62,63,64],"mcus":[6,26,30,36,54],"mean":[2,3,4,7,22,26,30,39],"meant":[26,30],"member":[7,8,9,13,14,22,23,25,34,36,45,54],"memori":[2,26,30,39,56],"memory_management_fault":[1,2,6],"memory_management_fault_handl":[1,2,6],"memory_or_timer0_match0":[6,12,15],"memory_to_memori":[6,12,15],"memory_to_peripher":[6,12,15],"memory_to_peripheral_dp":[6,12,15],"messag":35,"method":[7,22,36,54],"mhz":[7,9,36,54],"micro":22,"microcontrol":[1,2,14,15,25,27,41,53,58],"millisecond":[34,35,51],"mmc":10,"mode":[2,20,35,56,62],"modifi":34,"monoton":35,"motor":10,"motor_control_pwm":[6,10,15],"motorpwm":22,"multipl":[9,17,36,39,43,60],"multiplex":[20,62],"multipli":9,"multiply_by_10":[6,36,41],"multiply_by_11":[6,36,41],"multiply_by_12":[6,36,41],"multiply_by_13":[6,36,41],"multiply_by_14":[6,36,41],"multiply_by_15":[6,36,41],"multiply_by_16":[6,36,41],"multiply_by_2":[6,36,41],"multiply_by_3":[6,36,41],"multiply_by_4":[6,36,41],"multiply_by_5":[6,36,41],"multiply_by_6":[6,36,41],"multiply_by_7":[6,36,41],"multiply_by_8":[6,36,41],"multiply_by_9":[6,36,41],"must":[2,5,26,28,30,31,45,51],"mutabl":4,"mutex":12,"mux":[7,20,36,54,62],"mx":5,"name":34,"namespac":[0,2,3,4,5,7,8,9,10,11,12,13,14,16,17,18,19,20,21,22,23,24,25,26,28,29,30,31,32,33,34,35,36,37,38,39,40,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,59,60,61,62,63,64],"necessari":[2,24,26,30],"need":[2,3,4,25,26,30,31,34,39],"nest":[1,6],"never":[2,34],"new":[0,5,13,14,16,18,19,20,22,23,25,26,30,31,34,35,47,49,51,57,59,61,62,63,64],"next":[42,44],"no_clock":[6,36,41,54,58],"noexcept":[26,62],"nois":20,"non":48,"non_maskable_interrupt":[1,2,6],"nop":2,"note":[14,22,24,26,30,31,34,35,36],"noth":[2,17,31,35,43,60],"nullptr":4,"number":[2,8,10,13,14,23,24,25,28,31,35,37,39,45,47,49,52,55,57,63,64],"nvic":[1,6],"o":[3,62],"object":[0,2,5,7,8,12,13,14,16,18,19,22,23,25,26,28,30,33,34,35,39,42,44,46,48,49,51,57,59,61,63,64],"occur":[4,31,48],"on_rec":[6,35,41],"onboard":33,"onc":[28,31,39],"one":[3,7,22,24,33,35,36,39,54],"ongo":5,"onli":[2,4,17,24,26,30,35,36,39,42,43,54,57,60],"open":20,"open_drain":[6,15,20,58,62],"oper":[0,5,7,9,12,24,25,26,28,30,48],"operation_not_permit":5,"operation_not_support":[13,14,23,34,35,49,57,64],"option":[4,9,36,45],"optional_receive_handl":35,"order":[0,5,14,26,28,30,39,51],"organiz":6,"origin":12,"os":[3,12],"oscil":[9,36,54],"oscillator_frequ":[6,9,15],"otg":[37,55],"otg_f":[6,37,41,55,58],"otg_fs_wkup":[6,37,41,55,58],"others":28,"otherwis":[25,31,35],"outgo":[26,30],"output":[6,15,22,30,39,41,45,46,58,62],"output_pin":[6,15,39,41,58],"outsid":[2,28,49,64],"overflow":35,"overlap":7,"overrid":5,"p_adc":33,"p_address":26,"p_alloc":[35,39],"p_baud_rat":[34,35],"p_buffer":[49,64],"p_bus":[13,14,23,47,63],"p_bus_info":14,"p_callback":35,"p_channel":[7,22],"p_clock":[34,35,51],"p_clock_tre":[9,36,54],"p_configur":12,"p_cpu_frequ":0,"p_data":32,"p_data_in":[26,30],"p_data_out":[26,30],"p_delay":31,"p_destin":56,"p_disabled_id":34,"p_dma":56,"p_dma_cursor_posit":32,"p_duty_cycl":28,"p_enabl":[20,35,62],"p_enable_self_test":[34,35],"p_external_crystal_frequ":9,"p_fifo":34,"p_filler":30,"p_filter_bank":35,"p_frequenc":[5,26,32],"p_function":62,"p_function_cod":20,"p_handler":[2,31],"p_hertz":35,"p_i2c":26,"p_id":[36,54],"p_interrupt_callback":12,"p_irq":[2,31],"p_lock":12,"p_manag":[39,57],"p_messag":35,"p_message_count":35,"p_peripher":[9,21,22],"p_peripheral_address":[26,30,31],"p_peripheral_clock_spe":30,"p_pin":[16,19,20,33,34,35,39,42,44,59,61,62],"p_port":[16,19,20,25,42,44,49,59,61,62,64],"p_port_numb":25,"p_receive_buff":34,"p_receive_working_buff":25,"p_reg":28,"p_resistor":[20,62],"p_self_test":34,"p_set":[13,14,16,18,19,23,25,26,28,30,32,39,44,47,49,57,59,61,63,64],"p_sourc":[5,45,56,62],"p_table_loc":4,"p_timeout":26,"p_timeout_tim":[34,35],"p_timer_clock_frequ":[28,31],"p_timer_frequ":28,"p_vector_t":2,"p_wait_tim":40,"p_waiter":[13,14],"p_write_timeout":51,"pa11_pa12":[6,34,35,41,45],"pa15":45,"pa8":[45,62],"page":[20,36,54,62],"pair":34,"paramet":[0,2,4,5,7,9,12,13,14,16,18,19,20,22,23,25,26,28,30,31,32,33,34,35,39,40,42,44,45,47,49,51,56,57,59,61,62,63,64],"part":[0,5,31,51],"particular":2,"pass":[2,7,14,28,31,39],"pb3":45,"pb4":45,"pb9_pb8":[6,41,45],"pd0_pd1":[6,41,45],"pdf":[36,54],"pend":2,"pend_sv":[1,2,6],"perform":[12,26,30],"period":31,"peripher":[2,6,8,9,10,12,13,14,15,21,22,23,25,26,28,30,31,32,33,34,35,36,37,39,41,42,44,45,48,51,52,53,54,55,57,58,59,61,62],"peripheral_divid":[6,9,15],"peripheral_id":[13,14,22,23],"peripheral_to_memori":[6,12,15],"peripheral_to_memory_sp":[6,12,15],"peripheral_to_peripher":[6,12,15],"peripheral_to_peripheral_dp":[6,12,15],"peripheral_to_peripheral_sp":[6,12,15],"pg":40,"phase":9,"pin":[6,7,8,13,14,15,22,23,25,26,28,30,33,34,35,39,41,46,48,54,58],"pin_funct":[7,22,62],"pin_resistor":[20,62],"pin_select":[6,41],"plan":2,"platform":[2,5,8,10,14,26,28,30,31,37,52,55],"pleas":46,"pll":[6,9,10,15,36,41,54,58],"pll0":[6,9,10,15],"pll1":[6,9,10,15],"pll_clock_divided_by_2":[6,41,45],"pll_i2s_clk":[6,54,58],"pll_multipli":[6,36,41],"pll_sourc":[6,36,41,54,58],"pll_t":[6,9,15,36,41,54,58],"pmr":[35,39],"point":[4,26,28,30],"pointer":[4,28],"polling_io_wait":[13,14],"polymorphic_alloc":[35,39],"port":[6,8,14,15,16,18,19,20,25,32,34,39,41,42,44,45,49,57,59,61,62,64],"port_param":[49,64],"portion":34,"posit":35,"possibl":[9,36,54],"potenti":[0,5],"power":[4,6,9,10,13,14,15,22,23,25,26,30,37,41,52,55,58],"power_off":[6,15,21],"power_on":[6,15,21],"precis":2,"precondit":5,"predefin":7,"prefer":30,"preprocess":24,"previous":[2,31],"prioriti":37,"privat":57,"problem":4,"problemat":34,"processor":[1,2,4,5,6,17,43,51,60],"program":[30,39],"proper":[25,26,30],"proport":28,"provid":[5,13,26,30,31,34],"public":[0,5,7,8,9,11,13,14,16,18,19,20,22,23,24,25,26,28,29,30,31,32,33,34,35,36,39,40,42,44,45,46,47,48,49,50,51,54,57,59,61,62,63,64],"pull":[42,57],"purpos":[10,28,31,45,48],"put":2,"pvd":[6,37,41,55,58],"pwm":[6,10,15,27,41,48],"pwm0":[6,10,15,22],"pwm1":[6,10,15,22],"pwm16_channel":[6,41,46],"pwm_channel_info":28,"pwm_group_frequ":[6,27,41,46],"pwm_group_manag":48,"pwm_pin":22,"pwm_timer_frequ":28,"qei":[6,10,15],"quadratur":[6,10,27],"quadrature_encod":[6,10,15,27],"quanta":8,"ram":[3,4],"rang":2,"rate":[0,7,14,20,25,26,30,34,35,36,54],"rcc":[6,37,41,55,58],"rd":8,"rd_function_cod":8,"re":2,"read":[8,33],"read_t":32,"reader":39,"real":10,"reason":2,"receiv":[8,14,25,35,49,64],"receive_buff":[6,35,41],"receive_count":[6,35,41],"receive_cursor":[6,35,41],"recept":35,"recommend":2,"reduc":[4,48],"ref":39,"refer":[2,8,20,25,62],"reference_manu":[36,54],"regist":[4,24,26,30,32,34],"register_cpu_frequ":[0,1,5,6],"regular":28,"releas":[34,35],"release_filt":[6,35,41],"release_jtag_pin":[6,41,45],"reloc":[2,4],"remain":31,"remap":45,"remov":[3,42,44],"replac":12,"repres":[9,33,39],"request":[4,10,24,25,31,37,51,52,55],"requir":[3,4,9,20,31,34],"reserv":10,"reserve10":[1,2,6],"reserve12":[1,2,6],"reserve13":[1,2,6],"reserve7":[1,2,6],"reserve8":[1,2,6],"reserve9":[1,2,6],"reserved0":[6,10,15],"reset":[1,2,4,6,40,41,45],"reset_mco_pa8":[6,41,45],"resistor":[6,15,20,57,58,62],"resolut":[24,51],"resourc":[25,34,35,36,39,48,51,54],"resource_unavailable_try_again":35,"respons":[36,54],"result":[4,7,26,30,31,36,39,54],"retriev":[25,26,30],"return":[2,4,9,20,21,25,28,31,32,33,34,35,36,39,48,54,62],"reus":3,"revert_interrupt_vector_t":[1,2,6],"right":24,"rm0383":54,"rom":[2,3,4],"rotation_sensor":29,"routin":[2,3,4,5],"rtc":[6,10,15,36,37,41,54,55,58],"rtc_sourc":[6,36,41,54,58],"rtc_t":[6,36,41,54,58],"rtcalarm":[6,37,41,55,58],"rtos":4,"rule":[26,30],"run":[4,30,31],"runtim":[3,4,49,63,64],"rx":[25,34,35],"rx0":37,"rx1":37,"rx_function":25,"s":[0,2,3,5,7,8,14,26,28,30,31,35,36,39,48,54],"safe":[9,12],"sampl":7,"scan":35,"sce":37,"schedul":[5,6,27,31,48],"scl":[13,14,23],"scl_function":14,"sd":10,"sd_card_and_timer0_match1":[6,12,15],"sda":14,"sda_funct":14,"sdcard":[6,10,15],"sdio":[6,37,41,55,58],"sec":40,"second":4,"section":3,"see":[2,4,20,62],"seek":[20,62],"seem":42,"select":[16,18,19,20,33,34,35,36,39,42,44,45,48,54,56,57,59,61,62],"self":[34,35],"self_test":[6,34,41],"send":[6,28,31,35,41],"sent":[35,45],"sentinel":34,"seri":[5,14,15,17,22,24,26,27,30,31,33,34,38,41,43,53,58,60],"serial":[6,25,32,41,49,50,64],"servic":[2,4,5],"set":[2,3,4,5,7,9,12,13,14,16,18,19,20,23,25,26,28,30,31,32,34,35,36,39,40,44,47,48,49,54,56,57,59,61,62,63,64],"set_countdown_tim":[6,40,41],"set_dma_lock":[6,12,15],"set_dma_memory_transf":[6,56,58],"set_group_frequ":[6,27,28],"set_interrupt_vector_table_address":[1,4,6],"setup":[12,31],"setup_dma_transf":[6,12,15],"share":[7,27,31,48],"signal":[22,28,36,46,54,57],"signific":24,"simpl":[5,26,30],"simpli":34,"sinc":48,"singl":[24,26,30,34],"situat":[36,54],"size":[2,49,64],"size_t":35,"slave":26,"sleep":14,"slew":20,"slow":9,"software_cal":[1,2,6],"sole":34,"solut":4,"someth":[26,30],"somewher":39,"sort":4,"sourc":[5,9,12,36,45,54,56,62],"space":[4,26,30],"span":[2,25,26,30,32,34,35,49,56,64],"specif":[7,14,22,26,28,30,31,48],"specifi":[28,40],"speed":[9,20,26,30,36,54],"spi":[6,15,27,41,58],"spi0_rx_and_timer1_match1":[6,12,15],"spi0_tx_and_timer1_match0":[6,12,15],"spi1":[6,37,41,55,58],"spi1_rx_and_timer2_match1":[6,12,15],"spi1_tx_and_timer2_match0":[6,12,15],"spi2":[6,37,41,55,58],"spi2_rx_and_i2s_channel_1":[6,12,15],"spi2_tx_and_i2s_channel_0":[6,12,15],"spi3":[6,37,41,55,58],"spi4":[6,55,58],"spi5":[6,55,58],"spifi":[6,9,10,15],"spifi_clock_sourc":[6,9,15],"spifi_t":[6,9,15],"spin":12,"sram":[6,37,41],"ssp0":[6,10,15],"ssp1":[6,10,15],"ssp2":[6,10,15],"st":[36,54],"stage":[42,44],"standard":34,"start":[3,6,12,30,31,40,41],"startup":[1,6],"state":[2,4,14,34,35],"static":[3,49,64],"std":[2,5,7,8,9,14,25,26,30,32,34,35,36,39,45,49,56,59,61,62,63,64],"steadi":[34,35],"steady_clock":[0,34,35,51],"step":[26,30],"stm32":[6,34,44],"stm32_gener":[6,27],"stm32f":30,"stm32f1":[6,31],"stm32f101xx":36,"stm32f102xx":36,"stm32f103xx":36,"stm32f105xx":36,"stm32f107xx":36,"stm32f10x":42,"stm32f1xx":34,"stm32f1xxx":38,"stm32f4":[59,62],"stm32f40":6,"stm32f411":6,"stm32f4110":52,"stm32f411xce":54,"stmicroelectron":[36,54],"stop":[4,5,31],"strategi":13,"stream":[6,15],"stream_dac":24,"stream_dac_u16":[6,15],"stream_dac_u8":[6,15],"strong_ptr":39,"strong_ptr_only_token":51,"struct":[7,8,9,12,13,14,22,23,25,34,36,45,54],"structur":[9,45],"sub":34,"subclass":[33,48,50,57],"success":51,"suffici":31,"suppli":[0,5,26,30,36,54],"support":[0,24,34,42,49,64],"sure":57,"swap":2,"swd":45,"switch":4,"sync":8,"sync_jump":8,"system":[0,1,2,3,5,6,9,12,26,30,34,36,54],"system_clock":[6,9,15,36,41,45,54,58],"system_clock_select":[6,36,41,54,58],"system_config_control":[6,55,58],"system_control":4,"system_tim":[6,37,41,55,58],"systick":[1,2,6],"systick_tim":[1,5,6],"t":[3,34,57],"tabl":[2,4,5],"take":4,"taken":[0,5,7,26,28,30,57],"tamper":[6,37,41,55,58],"target":[26,36,54],"task":[4,48],"td":8,"td_function_cod":8,"templat":[2,33,39,48],"tempor":51,"termin":31,"test":[2,34,35],"therefor":31,"thing":[3,26],"thread":[12,14],"throw":[5,13,14,23,31,34,35,39,42,44,48,49,51,57,64],"thrown":[5,39],"thus":[24,39],"tick":31,"tie":33,"till":40,"tim1":[37,55],"tim10":[37,55],"tim12":[6,37,41],"tim13":[6,37,41],"tim14":[6,37,41],"tim15":37,"tim16":37,"tim19":55,"tim1_brk":[6,37,41,55,58],"tim1_brk_tim15":[6,37,41],"tim1_brk_tim19":[6,55,58],"tim1_brk_tim9":[6,37,41],"tim1_cc":[6,37,41,55,58],"tim1_trg_com":[6,37,41,55,58],"tim1_trg_com_tim11":[6,37,41,55,58],"tim1_up":[6,37,41,55,58],"tim1_up_tim10":[6,37,41,55,58],"tim1_up_tim16":[6,37,41],"tim2":[6,37,41,55,58],"tim3":[6,37,41,55,58],"tim4":[6,37,41,55,58],"tim5":[6,37,41,55,58],"tim6":[6,37,41],"tim6_dac":[6,37,41],"tim7":[6,37,41],"tim8":37,"tim8_brk":[6,37,41],"tim8_brk_tim12":[6,37,41],"tim8_cc":[6,37,41],"tim8_trg_com":[6,37,41],"tim8_trg_com_tim14":[6,37,41],"tim8_up":[6,37,41],"tim8_up_tim13":[6,37,41],"tim9":37,"time":[4,5,8,10,13,17,31,34,35,39,40,43,48,51,60],"time_dur":[31,34,35,40],"timed_out":[34,35,51],"timeout":[14,26,34],"timeout_funct":26,"timeout_t":51,"timer":[1,6,10,22,27,28,41],"timer0":[6,10,15],"timer1":[6,10,15,37,41,55,58],"timer10":[6,37,41,55,58],"timer11":[6,37,41,55,58],"timer12":[6,37,41],"timer13":[6,37,41],"timer14":[6,37,41],"timer2":[6,10,15,37,41,55,58],"timer3":[6,10,15,37,41,55,58],"timer4":[6,37,41,55,58],"timer5":[6,37,41,55,58],"timer6":[6,37,41],"timer7":[6,37,41],"timer8":[6,37,41],"timer9":[6,37,41,55,58],"todo":9,"top_of_stack":[1,2,6],"total":35,"trace":[1,6],"transact":[6,14,26,27],"transceiv":[6,34,35,41],"transfer":[6,12,13,26,27,30,56],"transmiss":25,"transmit":[8,14,25,51],"transmitt":25,"tree":[9,26,30,36,54],"trigger":[31,37,55],"true":[2,4,9,20,21,31,62],"tseg1":8,"tseg2":8,"tune":[20,62],"turn":9,"two":[7,34,39],"tx":[25,34,35,37],"tx_function":25,"type":[5,20,34,62],"typic":3,"u16":[9,28,52],"u32":[28,31,32,34,35,38,52],"u8":[9,10,12,13,14,16,18,19,20,22,23,34,35,37,39,42,44,45,54,55,56,64],"uart":[6,15,27,41,58],"uart0":[6,10,15],"uart0_rx_and_uart3_rx":[6,12,15],"uart0_tx_and_uart3_tx":[6,12,15],"uart1":[6,10,15],"uart1_rx_and_uart4_rx":[6,12,15],"uart1_tx_and_uart4_tx":[6,12,15],"uart2":[6,10,15],"uart2_rx_and_timer3_match1":[6,12,15],"uart2_tx_and_timer3_match0":[6,12,15],"uart3":[6,10,15],"uart4":[6,10,15,37,41],"uart5":[6,37,41],"uart_read":[6,27,32],"uart_writ":[6,27,32],"ub":[26,30],"uint8_t":[5,7,8,14,20,25,34,36,45,49,59,61,62,63],"um10562":[20,62],"underrun":37,"unecessari":2,"uniniti":[2,3,28,31],"uniqu":[24,26,30,48],"unit":[2,4],"unsaf":[26,28,30,31],"updat":[4,37,55],"ups":57,"uptim":[0,5],"usabl":[34,35],"usag":[2,26,30],"usage_fault":[1,2,6],"usage_fault_handl":[1,2,6],"usagefault":4,"usart":[6,41],"usart1":[6,37,41,55,58],"usart2":[6,37,41,55,58],"usart3":[6,37,41],"usart6":[6,55,58],"usart_manag":[6,41],"usb":[6,9,10,15,36,37,41,55],"usb_clock_sourc":[6,9,15],"usb_divid":[6,9,15,36,41],"usb_divider_t":36,"usb_hp_can1_tx":[6,37,41],"usb_lp_can1_rx0":[6,37,41],"usb_otg":[6,55,58],"usb_t":[6,9,15],"usbact":[6,10,15],"usbwakeup":[6,37,41],"use":[0,2,3,4,5,7,9,12,13,14,16,18,19,20,22,23,24,26,28,30,31,33,34,35,36,39,42,44,45,46,48,49,51,54,57,59,61,62,64],"use_external_oscil":[6,9,15],"use_pll0":9,"user":[28,36,54],"using_external_oscil":[6,9,15],"usiz":35,"usual":4,"util":[1,6,14],"v2":[6,41],"v5":[39,51],"valid":[2,5,36,42,44,54],"valu":[2,5,9,10,12,28,34,36,37,39,45,49,52,54,55,56,64],"variabl":3,"varianc":40,"variant":33,"vector":[1,4,5,6,31],"vector_t":2,"verify_vector_en":[1,2,6],"version":[2,48],"via":[4,7,48,57],"view":35,"void":[0,2,3,4,5,9,12,17,21,26,28,30,31,32,35,36,40,43,45,54,56,60,62],"vtor":4,"wait":[13,14,34,35,40],"wait_for_ev":[1,4,6],"wait_for_interrupt":[1,4,6],"waiter":14,"wake":[4,14],"wakeup":[37,55],"want":[39,45],"warn":4,"watchdog":[1,6,10,37,41,55],"wdt":[6,10,15],"welcom":6,"well":[2,31,48],"wfe":4,"wfi":4,"whether":28,"whi":[2,26,30],"whole":48,"will":[2,3,4,5,6,7,14,24,26,28,30,31,33,34,35,36,39,42,44,46,54,57],"window":[37,55],"window_watchdog":[6,37,41,55,58],"wish":39,"within":[4,6,7,16,18,19,20,22,42,44,59,61,62],"without":[3,17,26,28,30,31,39,43,60],"word":[31,34],"work":[25,26,30,34],"write":[4,32,35],"write_t":32,"writer":39,"www":[36,54],"xtal1":9,"xtal2":9,"xtc":9,"yet":[2,31,51],"zero":3,"zero_copy_seri":50,"zero_copy_usart":[6,27]},"titles":["DWT (Debug-Watchdog-Trace) Counter","libhal-arm-mcu API Documentation","Interrupt Controller","Startup Functions","System Control","SysTick Timer","libhal-arm-mcu API documentation","LPC40 ADC APIs","LPC40 CAN APIs","LPC40 Clock APIs","LPC40 Constants APIs","LPC40 DAC APIs","LPC40 DMA APIs","LPC40 DMA SPI APIs","LPC40 I2C APIs","libhal-arm-mcu LPC40 API Documentation","LPC40 Input Pin APIs","LPC40 Interrupt APIs","LPC40 Interrupt Pin APIs","LPC40 Output Pin APIs","LPC40 Pin APIs","LPC40 Power APIs","LPC40 PWM APIs","LPC40 SPI APIs","LPC40 Stream DAC APIs","LPC40 UART APIs","STM32 Generic I2C APIs","libhal-arm-mcu STM32 Generic API Documentation","STM32 Generic PWM APIs","STM32 Generic Quadrature Encoder APIs","STM32 Generic SPI APIs","STM32 Generic Timer APIs","STM32 Generic UART APIs","STM32F1 ADC APIs","STM32F1 CAN APIs","STM32F1 CAN V2 APIs","STM32F1 Clock APIs","STM32F1 Constants APIs","STM32F1 DMA APIs","STM32F1 GPIO APIs","STM32F1 Independent Watchdog APIs","libhal-arm-mcu STM32F1 API Documentation","STM32F1 Input Pin APIs","STM32F1 Interrupt APIs","STM32F1 Output Pin APIs","STM32F1 Pin APIs","STM32F1 PWM APIs","STM32F1 SPI APIs","STM32F1 Timer APIs","STM32F1 UART APIs","STM32F1 USART APIs","STM32F1 USB APIs","STM32F40 Constants APIs","libhal-arm-mcu STM32F40 API Documentation","STM32F411 Clock APIs","STM32F411 Constants APIs","STM32F411 DMA APIs","STM32F411 I2C APIs","libhal-arm-mcu STM32F411 API Documentation","STM32F411 Input Pin APIs","STM32F411 Interrupt APIs","STM32F411 Output Pin APIs","STM32F411 Pin APIs","STM32F411 SPI APIs","STM32F411 UART APIs"],"titleterms":{"adc":[7,33],"adc_manag":33,"advanced_timer_manag":48,"api":[1,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64],"arm":[1,3,4,5,6,15,27,41,53,58],"can":[8,34,35],"can_peripheral_manag":34,"can_peripheral_manager_v2":35,"clock":[9,36,54],"clock_tre":[9,36,54],"constant":[10,37,52,55],"control":[2,4],"cortex":[3,4,5],"counter":0,"dac":[11,24],"debug":0,"dma":[12,13,38,56],"dma_spi":13,"doc":6,"document":[1,6,15,27,41,53,58],"driver":[1,15,27,41,53,58],"dwt":0,"encod":29,"function":[3,4],"general_purpose_timer_manag":48,"generic":[26,27,28,29,30,31,32],"gpio":39,"gpio_manag":39,"hal":[7,8,9,11,12,13,14,16,18,19,20,22,23,24,25,26,28,29,30,31,32,33,34,35,36,39,40,42,44,45,46,47,48,49,50,51,54,57,59,61,62,63,64],"i2c":[14,26,57],"i2c_manager_impl":57,"independ":40,"independent_watchdog":40,"input":[16,42,59],"input_pin":[16,42,59],"interrupt":[2,17,18,43,60],"interrupt_pin":18,"libhal":[1,6,15,27,41,53,58],"lpc40":[7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25],"m":[3,4,5],"mcu":[1,6,15,27,41,53,58],"nest":2,"nvic":2,"output":[19,44,61],"output_pin":[19,44,61],"pin":[16,18,19,20,42,44,45,59,61,62],"pin_select":45,"power":21,"pwm":[22,28,46],"pwm16_channel":48,"pwm_group_frequ":[28,48],"quadratur":29,"quadrature_encod":29,"spi":[13,23,30,47,63],"startup":3,"stm32":[26,27,28,29,30,31,32],"stm32_gener":[26,28,29,30,31,32],"stm32f1":[33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],"stm32f40":[52,53],"stm32f411":[54,55,56,57,58,59,60,61,62,63,64],"stream":24,"stream_dac_u16":24,"stream_dac_u8":24,"system":4,"systick":5,"timer":[5,31,48],"trace":0,"uart":[25,32,49,64],"usart":50,"usart_manag":50,"usb":51,"util":3,"v2":35,"vector":2,"watchdog":[0,40],"zero_copy_usart":32}}) \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/stm32_generic/i2c.html b/libhal-arm-mcu/1.22.0/stm32_generic/i2c.html new file mode 100644 index 0000000..024fa75 --- /dev/null +++ b/libhal-arm-mcu/1.22.0/stm32_generic/i2c.html @@ -0,0 +1,726 @@ + + + + + + + + + + + STM32 Generic I2C APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + +
+ + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

STM32 Generic I2C APIs#

+
+

hal::stm32_generic::i2c#

+

Defined in namespace hal::stm32_generic

+

#include <libhal-arm-mcu/stm32_generic/i2c.hpp>

+
+
+class i2c#
+

A generic i2c implementation for all stm32 series MCUs.

+

This class is meant to only be used by platform libraries or drivers aiming to be platform libraries for stm32 devices. Application developers should use the driver specific to their platform instead of this class as they handle proper initialization for you.

+
+

Public Functions

+
+
+i2c(void *p_i2c)#
+

Construct a new i2c object Care must be taken when constructing this object. The constructor does not and cannot power on the i2c peripheral. Accessing the peripheral’s registers without it be powered on (or provided a clock), will result in a memory fault as the peripheral cannot ACK the CPU when it attempts to access the peripheral’s registers. The power management system for each peripheral across the stm32 series of MCUs is different, meaning its not something that can efficiently be manged by this generic driver.

+

Things that needed to be done before construction:

+

    +
  1. Configure pins to be controlled by the i2c peripheral pointed to by the p_peripheral_address input parameter.

  2. +
  3. Power on the appropriate i2c peripheral

  4. +
+

+

After construction, execute the configure() function with the appropriate peripheral frequency and i2c settings.

+

Performing these in this order will properly initialize the i2c driver and allow the usage of the transfer() API. Failing to execute these steps in this order will result in UB.

+

NOTE: why does this driver get away with breaking the rule about construction means initialization? Because its constructor is marked unsafe meaning care needs to be taken when using this.

+
+
Parameters:
+

p_i2c – - i2c peripheral address

+
+
+
+ +
+
+void transaction(hal::byte p_address, std::span<hal::byte const> p_data_out, std::span<hal::byte> p_data_in, hal::function_ref<hal::timeout_function> p_timeout)#
+

Perform a transfer operation as defined in hal::i2c::transaction

+
+
Parameters:
+
    +
  • p_address – - target i2c slave address

  • +
  • p_data_out – - outgoing data

  • +
  • p_data_in – - incoming data

  • +
  • p_timeout – - timeout function

  • +
+
+
+
+ +
+
+void configure(hal::i2c::settings const &p_settings, hertz p_frequency)#
+

Configures i2c peripheral.

+

Because each stm32 series MCU has its own unique clock tree, there is no single, simple and space efficient may to determine the system’s i2c clock speed. So the caller must supply the operating frequency of the i2c peripheral for this to work. This API is meant to be called by platform specific i2c drivers that have the necessary context and library apis to retrieve the i2c peripheral’s clock rate.

+
+
Parameters:
+
    +
  • p_settings – - i2c settings

  • +
  • p_frequency – - peripheral operating frequency

  • +
+
+
+
+ +
+
+void handle_i2c_event() noexcept#
+

Handles i2c event interupt when using the above configuration. Insert this into the appropriate i2c peripheral event interupt.

+
+ +
+
+void handle_i2c_error() noexcept#
+

Handles i2c error interupt when using the above configuration. Insert this into the appropriate i2c peripheral error interupt.

+
+ +
+
+~i2c()#
+

Destroy the i2c object.

+
+ +
+
+ +
+
+ + +
+ + + + + + + +
+ + + + + + + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/stm32_generic/index.html b/libhal-arm-mcu/1.22.0/stm32_generic/index.html new file mode 100644 index 0000000..5448885 --- /dev/null +++ b/libhal-arm-mcu/1.22.0/stm32_generic/index.html @@ -0,0 +1,714 @@ + + + + + + + + + + + libhal-arm-mcu STM32 Generic API Documentation — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + +
+ + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

libhal-arm-mcu STM32 Generic API Documentation#

+

Here are the collection of generic drivers shared across STM32 series microcontrollers.

+ +
+ + +
+ + + + + + + +
+ + + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/stm32_generic/pwm.html b/libhal-arm-mcu/1.22.0/stm32_generic/pwm.html new file mode 100644 index 0000000..aaeb4ca --- /dev/null +++ b/libhal-arm-mcu/1.22.0/stm32_generic/pwm.html @@ -0,0 +1,775 @@ + + + + + + + + + + + STM32 Generic PWM APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + +
+ + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

STM32 Generic PWM APIs#

+
+

hal::stm32_generic::pwm#

+

Defined in namespace hal::stm32_generic

+

#include <libhal-arm-mcu/stm32_generic/pwm.hpp>

+
+
+class pwm#
+

This class should not be constructed directly.

+

The user should instantiate a General Purpose or Advanced timer class first, and then acquire a pwm pin through that class.

+
+

Public Functions

+
+
+pwm(hal::unsafe, void *p_reg, pwm_channel_info p_settings)#
+

Construct generic stm32 pwm driver.

+

Care should be taken in constructing this outside of a platform specific timer class. If both a platform specific timer class and this object exist, care must be taken to ensure that the drivers do not conflict with each others.

+
+
Parameters:
+
    +
  • p_reg – is a void pointer that points to the beginning of a timer peripheral

  • +
  • p_settings – consist of channel number, frequency of the timer, and a boolean to indicate whether the timer is advanced or not.

  • +
+
+
+
+ +
+
+inline pwm(hal::unsafe)#
+

Construct pwm uninitialized.

+

The purpose of this is to send the settings through the initialize function instead, because the channel calculation and pin configuration is done in the constructor and the regular constructor cannot be initialized through the initializer list.

+

If this constructor is used, it is unsafe to call any API of this class before calling the initialize() API with the correct inputs. Once that API has been called without failure, then the other APIs will become available.

+
+ +
+
+void initialize(hal::unsafe, void *p_reg, pwm_channel_info p_settings)#
+

Initialize the driver if the pwm(hal::unsafe) was used.

+

This API must be called if the pwm(hal::unsafe) was used in order to initialize this class.

+
+
Parameters:
+
    +
  • p_reg – - address of the timer’s peripheral

  • +
  • p_settings – - pwm settings for the timer peripheral

  • +
+
+
+
+ +
+
+u32 frequency(u32 p_timer_clock_frequency)#
+

Acquire the operating frequency of the PWM channel.

+
+
Parameters:
+

p_timer_clock_frequency – - the clock frequency driving the timer peripheral.

+
+
Returns:
+

u32 - the frequency of the PWM signal

+
+
+
+ +
+
+void duty_cycle(u16 p_duty_cycle)#
+

Set pwm channel duty cycle using u16 value from 0x0000 to 0xFFFF.

+
+
Parameters:
+

p_duty_cycle – - pwm duty cycle proportional value from 0x0000 to 0xFFFF.

+
+
+
+ +
+
+inline void duty_cycle(float p_duty_cycle)#
+

Set the duty cycle using a float.

+
+
Parameters:
+

p_duty_cycle – - value from

+
+
+
+ +
+
+ +
+
+

hal::stm32_generic::pwm_group_frequency#

+
+
+class pwm_group_frequency#
+

This class should not be constructed directly.

+

The user should instantiate a General Purpose or Advanced timer class first, and then acquire a pwm pin through that class.

+
+

Public Functions

+
+
+pwm_group_frequency(hal::unsafe, void *p_reg)#
+

Construct generic stm32 pwm driver.

+

Care should be taken in constructing this outside of a platform specific timer class. If both a platform specific timer class and this object exist, care must be taken to ensure that the drivers do not conflict with each others.

+
+
Parameters:
+

p_reg – is a void pointer that points to the beginning of a timer peripheral

+
+
+
+ +
+
+void set_group_frequency(pwm_timer_frequency p_timer_frequency)#
+

Set the frequency for all PWM channels controlled by the timer specified by the p_reg parameter passed at construction.

+
+
Parameters:
+

p_timer_frequency – - desired pwm frequency and input clock frequency

+
+
+
+ +
+
+ +
+
+ + +
+ + + + + + + +
+ + + + + + + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/stm32_generic/quadrature_encoder.html b/libhal-arm-mcu/1.22.0/stm32_generic/quadrature_encoder.html new file mode 100644 index 0000000..c777fb6 --- /dev/null +++ b/libhal-arm-mcu/1.22.0/stm32_generic/quadrature_encoder.html @@ -0,0 +1,644 @@ + + + + + + + + + + + STM32 Generic Quadrature Encoder APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + +
+ + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

STM32 Generic Quadrature Encoder APIs#

+
+

hal::stm32_generic::quadrature_encoder#

+

Defined in namespace hal::stm32_generic

+

#include <libhal-arm-mcu/stm32_generic/quadrature_encoder.hpp>

+
+
+class quadrature_encoder : public hal::rotation_sensor#
+
+ +
+
+ + +
+ + + + + + + +
+ + + + + + + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/stm32_generic/spi.html b/libhal-arm-mcu/1.22.0/stm32_generic/spi.html new file mode 100644 index 0000000..2a00449 --- /dev/null +++ b/libhal-arm-mcu/1.22.0/stm32_generic/spi.html @@ -0,0 +1,705 @@ + + + + + + + + + + + STM32 Generic SPI APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + +
+ + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

STM32 Generic SPI APIs#

+
+

hal::stm32_generic::spi#

+

Defined in namespace hal::stm32_generic

+

#include <libhal-arm-mcu/stm32_generic/spi.hpp>

+
+
+class spi#
+

A generic spi implementation for all stm32f series MCUs.

+

This class is meant to only be used by platform libraries or drivers aiming to be platform libraries for stm32f devices. As an application develop, prefer to use the platform specific drivers instead as they handle all of the initialization for you.

+
+

Public Functions

+
+
+spi(hal::unsafe, void *p_peripheral_address)#
+

Construct a new spi object.

+

Care must be taken when constructing this object. The constructor does not and cannot power on the spi peripheral. Accessing the peripheral’s registers without it be powered on (or provided a clock), will result in a memory fault as the peripheral cannot ACK the CPU when it attempts to access the peripheral’s registers. The power management system for each peripheral across the stm32 series of MCUs is different, meaning its not something that can efficiently be manged by this generic driver.

+

After constructing this object, in order to use this driver the program must:

+

    +
  1. Configure pins to be controlled by the spi peripheral pointed to by the p_peripheral_address input parameter.

  2. +
  3. Power on the appropriate spi peripheral

  4. +
  5. Execute the configure() function with the appropriate peripheral frequency.

  6. +
+

+

Performing these in this order will properly initialize the spi driver and allow the usage of the transfer() API. Failing to execute these steps in this order will result in UB.

+

NOTE: why does this driver get away with breaking the rule about construction means initialization? Because its constructor is marked unsafe meaning care needs to be taken when using this.

+
+
Parameters:
+

p_peripheral_address – - starting address of the spi peripheral

+
+
+
+ +
+
+void configure(hal::spi::settings const &p_settings, hal::hertz p_peripheral_clock_speed)#
+

Configure the SPI peripheral.

+

Because each stm32f series MCU has its own unique clock tree, there is no single, simple and space efficient may to determine the system’s spi clock speed. So the caller must supply the operating frequency of the spi peripheral for this to work. This API is meant to be called by platform specific spi drivers that have the necessary context and library apis to retrieve the spi peripheral’s clock rate.

+
+
Parameters:
+
    +
  • p_settings – - spi settings

  • +
  • p_peripheral_clock_speed – - peripheral’s operating clock rate

  • +
+
+
+
+ +
+
+void transfer(std::span<hal::byte const> p_data_out, std::span<hal::byte> p_data_in, hal::byte p_filler)#
+

Perform a transfer operation as defined in hal::spi::transfer

+
+
Parameters:
+
    +
  • p_data_out – - outgoing data

  • +
  • p_data_in – - incoming data

  • +
  • p_filler – - output filler bytes if the outgoing data runs out before the incoming data.

  • +
+
+
+
+ +
+
+ +
+
+ + +
+ + + + + + + +
+ + + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/stm32_generic/timer.html b/libhal-arm-mcu/1.22.0/stm32_generic/timer.html new file mode 100644 index 0000000..9aebffa --- /dev/null +++ b/libhal-arm-mcu/1.22.0/stm32_generic/timer.html @@ -0,0 +1,723 @@ + + + + + + + + + + + STM32 Generic Timer APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + +
+ + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

STM32 Generic Timer APIs#

+
+

hal::stm32_generic::timer#

+

Defined in namespace hal::stm32_generic

+

#include <libhal-arm-mcu/stm32_generic/timer.hpp>

+
+
+class timer#
+

Implements shared timer setup and control logic common to all STM32 series.

+

This class provides the common functionality for timer configuration and control, abstracting the parts of the timer interface that remain consistent across different STM32 series. It is intended to be used by series-specific implementations, which handle MCU-specific configuration details and pass any required parameters to these generic functions.

+
+

Public Functions

+
+
+timer(hal::unsafe)#
+

Construct timer uninitialized.

+

The purpose of this is to send the settings through the initialize function instead, because all the settings are series-specific. Therefore in the series-specific implementations of the timer, the address is deduced from the timer, as well as all the interrupt configuration is done, then they are passed to initialize.

+

If this constructor is used, it is unsafe to call any API of this class before calling the initialize() API with the correct inputs. Once that API has been called without failure, then the other APIs will become available.

+
+ +
+
+bool is_running()#
+

Determine if the timer is currently running.

+
+
Returns:
+

true - if a callback has been scheduled and has not been invoked yet, false otherwise.

+
+
+
+ +
+
+void cancel()#
+

Stops a scheduled event from happening.

+

Does nothing if the timer is not currently running.

+

Note that there must be sufficient time between the this call finishing and the scheduled event’s termination. If this call is too close to when the schedule event expires, this function may not complete before the timer interrupt is triggered.

+
+ +
+
+void schedule(hal::time_duration p_delay, u32 p_timer_clock_frequency)#
+

Schedule an interrupt to occur for this timer.

+

If this is called and the timer has already scheduled an event (in other words, is_running() returns true), then the previous scheduled event will be canceled and the new scheduled event will be started.

+

If the delay time result in a tick period of 0, then the timer will execute after 1 tick period. For example, if the tick period is 1ms and the requested time delay is 500us, then the event will be scheduled for 1ms.

+

If the tick period is 1ms and the requested time is 2.5ms then the event will be scheduled after 2 tick periods or in 2ms.

+
+
Parameters:
+
    +
  • p_delay – - the amount of time until the timer expires

  • +
  • p_timer_clock_frequency – - the clock driving the timer

  • +
+
+
Throws:
+

hal::argument_out_of_domain – - if p_delay cannot be achieved.

+
+
+
+ +
+
+void initialize(hal::unsafe, void *p_peripheral_address, void (*initialize_interrupts_function)(), cortex_m::irq_t p_irq, cortex_m::interrupt_pointer p_handler)#
+

Initialize the timer with the series-specific settings.

+

This is where the constructed uninitialized timer gets initialized. It gets all the series-specific settings passed to it that it needs, and it handles them appropriately.

+
+
Parameters:
+
    +
  • p_peripheral_address – - the address of the chosen timer peripheral

  • +
  • initialize_interrupts_function – - the function needed to initialize interrupts for the specific series stm32. For example, for the stm32f1 series, the function passed would be hal::stm32f1::initialize_interrupts().

  • +
  • p_irq – - the irq number for the chosen timer

  • +
  • p_handler – - the platform specific interrupt handler to be installed

  • +
+
+
Throws:
+

hal::device_or_resource_busy – - if the timer interrupt vector is already in use.

+
+
+
+ +
+
+ +
+
+ + +
+ + + + + + + +
+ + + + + + + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/stm32_generic/uart.html b/libhal-arm-mcu/1.22.0/stm32_generic/uart.html new file mode 100644 index 0000000..f121505 --- /dev/null +++ b/libhal-arm-mcu/1.22.0/stm32_generic/uart.html @@ -0,0 +1,750 @@ + + + + + + + + + + + STM32 Generic UART APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + +
+ + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

STM32 Generic UART APIs#

+
+

hal::stm32_generic::uart#

+

Defined in namespace hal::stm32_generic

+

#include <libhal-arm-mcu/stm32_generic/uart.hpp>

+
+
+class uart#
+
+

Public Functions

+
+
+serial::write_t uart_write(std::span<byte const> p_data)#
+

STM32 Common write function.

+
+
Parameters:
+

p_data – Writes the data to the UART registers

+
+
Returns:
+

serial::write_t

+
+
+
+ +
+
+serial::read_t uart_read(std::span<byte> &p_data, u32 const &p_dma_cursor_position)#
+
+
Parameters:
+
    +
  • p_data – Where the data gets copied to

  • +
  • p_dma_cursor_position – Where the DMA is set to

  • +
+
+
Returns:
+

serial::read_t

+
+
+
+ +
+
+void configure(serial::settings const &p_settings, hertz p_frequency)#
+

Configures the serial port based on the settings.

+
+
Parameters:
+
    +
  • p_settings – - serial settings

  • +
  • p_frequency – - frequency of the input clock to the peripheral

  • +
+
+
+
+ +
+
+ +
+
+

hal::stm32_generic::zero_copy_usart#

+
+
+class zero_copy_usart#
+
+

Public Functions

+
+
+serial::write_t uart_write(std::span<byte const> p_data)#
+

STM32 Common write function.

+
+
Parameters:
+

p_data – Writes the data to the UART registers

+
+
Returns:
+

serial::write_t

+
+
+
+ +
+
+serial::read_t uart_read(std::span<byte> &p_data, u32 const &p_dma_cursor_position)#
+
+
Parameters:
+
    +
  • p_data – Where the data gets copied to

  • +
  • p_dma_cursor_position – Where the DMA is set to

  • +
+
+
Returns:
+

serial::read_t

+
+
+
+ +
+
+void configure(serial::settings const &p_settings, u32 p_frequency)#
+

Configures the serial port based on the settings.

+
+
Parameters:
+
    +
  • p_settings – - serial settings

  • +
  • p_frequency – - frequency of the input clock to the peripheral

  • +
+
+
+
+ +
+
+ +
+
+ + +
+ + + + + + + +
+ + + + + + + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/stm32f1/adc.html b/libhal-arm-mcu/1.22.0/stm32f1/adc.html new file mode 100644 index 0000000..ada4a27 --- /dev/null +++ b/libhal-arm-mcu/1.22.0/stm32f1/adc.html @@ -0,0 +1,706 @@ + + + + + + + + + + + STM32F1 ADC APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

STM32F1 ADC APIs#

+
+

hal::stm32f1::adc_manager#

+

Defined in namespace hal::stm32f1

+

#include <libhal-arm-mcu/stm32f1/adc.hpp>

+
+
+class adc_manager#
+

Manager for the stm32f1 series’ onboard adc peripheral. Used to construct and manage channel objects that are tied to an adc. This also applies to the MCU variants that have more than one adc available.

+

Subclassed by hal::stm32f1::adc< select >

+
+

Public Functions

+
+
+channel acquire_channel(adc_pins p_pin)#
+

Creates and configures an adc channel under the calling adc peripheral manager.

+
+
Parameters:
+

p_pin – - The pin to be used for the channels analog input.

+
+
Returns:
+

channel - is an implementation of the hal::adc interface that represents a channel on the ADC peripheral.

+
+
+
+ +
+
+
+class channel : public hal::adc#
+

This class implements the hal::adc interface.

+

Creates channels to be used by the adc peripheral manager to read certain pins’ analog input.

+
+

Public Functions

+
+
+template<peripheral id>
inline channel(stm32f1::adc<id> &p_adc, adc_pins p_pin)#
+

Constructs a channel object.

+
+
Parameters:
+
    +
  • p_adc – - The adc peripheral manager that this channel belongs to.

  • +
  • p_pin – - The pin that will be used for this channels analog input.

  • +
+
+
+
+ +
+
+ +
+ +
+
+ + +
+ + + + + + + +
+ + + + + + + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/stm32f1/can.html b/libhal-arm-mcu/1.22.0/stm32f1/can.html new file mode 100644 index 0000000..9c1fa15 --- /dev/null +++ b/libhal-arm-mcu/1.22.0/stm32f1/can.html @@ -0,0 +1,980 @@ + + + + + + + + + + + STM32F1 CAN APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

STM32F1 CAN APIs#

+
+

hal::stm32f1::can_peripheral_manager#

+

Defined in namespace hal::stm32f1

+

#include <libhal-arm-mcu/stm32f1/can.hpp>

+
+
+class can_peripheral_manager#
+

Peripheral manager for the sole CAN BUS port on the stm32f1xx MCU.

+
+

Public Types

+
+
+enum class self_test : hal::u8#
+

Named parameter for enabling self test at driver construction.

+

Values:

+
+
+enumerator off#
+
+ +
+
+enumerator on#
+
+ +
+ +
+
+enum class fifo_assignment : std::uint8_t#
+

Defines what a “disabled” ID would be.

+

The stm32 bxCAN system uses a series of filter bank registers. Each can be used to either create 4x identifier filters, 2x mask filters, 2x extended identifier filters or 1x extended mask filter. Entire filter bank can be disabled/enabled, but not on a sub-bank basis. So to support “disabling a

+

filter, we simply provide IDs that we expect to never appear on the CAN bus

+

and use those as a “disabled” filter state.

+

+

Values:

+
+
+enumerator fifo1#
+
+ +
+
+enumerator fifo2#
+
+ +
+ +
+
+

Public Functions

+
+
+can_peripheral_manager(hal::u32 p_baud_rate, can_pins p_pins = can_pins::pa11_pa12, disable_ids p_disabled_ids = disable, bool p_self_test = false)#
+

Construct a new can peripheral manager object.

+

+
+Deprecated:
+

Calling this constructor is problematic as it can halt the system if a hardware can transceiver is not connected to the CAN RX and CAN TX pins. Use the constructor that accepts a hal::steady_clock and timeout time instead.

+
+ +

+
+
Parameters:
+
    +
  • p_baud_rate – - set baud rate of the device

  • +
  • p_pins – - CAN bus RX and TX pin selection

  • +
  • p_disabled_ids – - IDs to use as filtering values when a filter is set to be disabled. Choose IDs you expect will never appear on the CAN BUS.

  • +
  • p_self_test – - enable self test on construction

  • +
+
+
Throws:
+

hal::operation_not_supported – - if the baud rate is not usable

+
+
+
+ +
+
+can_peripheral_manager(hal::u32 p_baud_rate, hal::steady_clock &p_clock, hal::time_duration p_timeout_time = std::chrono::milliseconds(1), can_pins p_pins = can_pins::pa11_pa12, self_test p_enable_self_test = self_test::off, disable_ids p_disabled_ids = disable)#
+

Construct a new can peripheral manager object.

+
+
Parameters:
+
    +
  • p_baud_rate – - set baud rate of the device

  • +
  • p_clock – - a steady clock used to determine if initialization has exceeded the p_timeout_time.

  • +
  • p_timeout_time – - the amount of time to wait for initialization before throwing hal::timed_out.

  • +
  • p_pins – - CAN bus RX and TX pin selection

  • +
  • p_enable_self_test – - determines if self test is enabled at construction.

  • +
  • p_disabled_ids – - IDs to use as filtering values when a filter is set to be disabled. Choose IDs you expect will never appear on the CAN BUS.

  • +
+
+
Throws:
+
    +
  • hal::operation_not_supported – - if the baud rate is not usable

  • +
  • hal::timed_out – - if can peripheral initialization

  • +
+
+
+
+ +
+
+transceiver acquire_transceiver(std::span<can_message> p_receive_buffer)#
+

Acquire an hal::can_transceiver implementation.

+
+
Returns:
+

transceiver - object implementing the hal::can_transceiver interface for this can peripheral.

+
+
+
+ +
+
+bus_manager acquire_bus_manager()#
+

Acquire an hal::can_bus_manager implementation.

+
+
Returns:
+

bus_manager - object implementing the hal::can_bus_manager interface for this can peripheral.

+
+
+
+ +
+
+interrupt acquire_interrupt()#
+

Acquire an hal::can_interrupt implementation.

+
+
Returns:
+

interrupt - object implementing the hal::can_interrupt interface for this can peripheral.

+
+
+
+ +
+
+identifier_filter_set acquire_identifier_filter(fifo_assignment p_fifo = fifo_assignment::fifo1)#
+

Acquire a set of 4x standard identifier filters.

+
+
Returns:
+

identifier_filter_set - A set of 4x identifier filters. When destroyed, releases the filter resource it held on to.

+
+
+
+ +
+
+extended_identifier_filter_set acquire_extended_identifier_filter(fifo_assignment p_fifo = fifo_assignment::fifo1)#
+

Acquire a pair of two extended identifier filters.

+
+
Returns:
+

extended_identifier_filter_set - A set of 2x extended identifier filters.

+
+
+
+ +
+
+mask_filter_set acquire_mask_filter(fifo_assignment p_fifo = fifo_assignment::fifo1)#
+

Acquire a pair of mask filters.

+
+
Returns:
+

mask_filter_set - A set of 2x standard mask filters

+
+
+
+ +
+
+extended_mask_filter acquire_extended_mask_filter(fifo_assignment p_fifo = fifo_assignment::fifo1)#
+

An extended mask filters.

+
+
Returns:
+

extended_mask_filter - An extended mask filter

+
+
+
+ +
+
+
+class bus_manager : public hal::can_bus_manager#
+

Implementation of the hal::can_bus_manager interface.

+
+ +
+
+struct disable_ids#
+

Defines what a “disabled” ID would be.

+

The stm32 bxCAN system uses a series of filter bank registers. Each can be used to either create 4x identifier filters, 2x mask filters, 2x extended identifier filters or 1x extended mask filter. Entire filter bank can be disabled/enabled, but not on a sub-bank basis. So to support “disabling a

+

filter, we simply provide IDs that we expect to never appear on the CAN bus

+

and use those as a “disabled” filter state.

+

If {0, 0} doesn’t work for you, you can choose your own sentinel value as a

+

”disable id”

+

+
+ +
+
+class extended_identifier_filter : public hal::can_extended_identifier_filter#
+

Implementation of the hal::can_extended_identifier_filter interface.

+
+ +
+
+class extended_identifier_filter_set#
+

Manages a single filter bank which supports up to 2x extended identifier filters.

+

When this object is destroyed, the filter ban is deactivated and the filter bank is freed to be used by other filters.

+
+

Public Members

+
+
+std::array<extended_identifier_filter, 2> filter#
+

2x extended identifier filters

+

Each is given a portion of the filter bank to use for their own filtering needs.

+
+ +
+
+ +
+
+class extended_mask_filter : public hal::can_extended_mask_filter#
+

Implementation of the hal::can_extended_mask_filter interface.

+

NOTE: extended_mask_filter does not have a “set” object because this implementation requires the full filter bank.

+
+ +
+
+struct filter_resource#
+

Contains a filter and word index, used by filter implementations to determine which bits in the filter registers to modify.

+
+ +
+
+class identifier_filter : public hal::can_identifier_filter#
+

Implementation of the hal::can_identifier_filter interface.

+
+ +
+
+class identifier_filter_set#
+

Manages a single filter bank which supports up to 4x identifier filters.

+

When this object is destroyed, the filter ban is deactivated and the filter bank is freed to be used by other filters.

+
+

Public Members

+
+
+std::array<identifier_filter, 4> filter#
+

4x identifier filters

+

Each is given a portion of the filter bank to use for their own filtering needs.

+
+ +
+
+ +
+
+class interrupt : public hal::can_interrupt#
+

Implementation of the hal::can_interrupt interface.

+
+ +
+
+class mask_filter : public hal::can_mask_filter#
+

Implementation of the hal::can_mask_filter interface.

+
+ +
+
+class mask_filter_set#
+
+

Public Members

+
+
+std::array<mask_filter, 2> filter#
+

2x mask filters

+

Each is given a portion of the filter bank to use for their own filtering needs.

+
+ +
+
+ +
+
+class transceiver : public hal::can_transceiver#
+

Implementation of the hal::can_transceiver interface.

+
+ +
+ +
+
+ + +
+ + + + + + + +
+ + + + + + + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/stm32f1/can2.html b/libhal-arm-mcu/1.22.0/stm32f1/can2.html new file mode 100644 index 0000000..8903f61 --- /dev/null +++ b/libhal-arm-mcu/1.22.0/stm32f1/can2.html @@ -0,0 +1,821 @@ + + + + + + + + + + + STM32F1 CAN V2 APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

STM32F1 CAN V2 APIs#

+
+

hal::stm32f1::can_peripheral_manager_v2#

+

Defined in namespace hal::stm32f1

+

#include <libhal-arm-mcu/stm32f1/can2.hpp>

+
+
+class can_peripheral_manager_v2#
+
+

Public Functions

+
+
+can_peripheral_manager_v2(hal::usize p_message_count, std::pmr::polymorphic_allocator<> p_allocator, hal::u32 p_baud_rate, hal::steady_clock &p_clock, hal::time_duration p_timeout_time = std::chrono::milliseconds(1), can_pins p_pins = can_pins::pa11_pa12, can_self_test p_enable_self_test = can_self_test::off)#
+

Construct a new can peripheral manager v2 object.

+
+
Parameters:
+
    +
  • p_allocator – - allocator used to allocate receive buffer

  • +
  • p_message_count – - number of messages the receive buffer will hold

  • +
  • p_clock – - a steady clock used to determine if initialization has exceeded the p_timeout_time.

  • +
  • p_timeout_time – - the amount of time to wait for initialization before throwing hal::timed_out.

  • +
  • p_baud_rate – - set baud rate of the device

  • +
  • p_pins – - CAN bus RX and TX pin selection

  • +
  • p_enable_self_test – - determines if self test is enabled at construction.

  • +
+
+
Throws:
+
    +
  • hal::operation_not_supported – - if the baud rate is not usable

  • +
  • hal::timed_out – - if can peripheral initialization

  • +
+
+
+
+ +
+
+void enable_self_test(bool p_enable)#
+

Enable/disable self test mode.

+

Self test mode allows message loopback. This mode allows messages sent from this device’s can transceiver to be received back by this device.

+
+
Parameters:
+

p_enable – - enable self test mode

+
+
+
+ +
+
+void baud_rate(hal::u32 p_hertz)#
+

Set can peripheral’s baud rate.

+
+
Parameters:
+

p_hertz – - baud rate in hertz

+
+
+
+ +
+
+hal::u32 baud_rate() const#
+

Get can peripheral’s baud rate.

+
+
Returns:
+

hal::u32 - baud rate in hertz

+
+
+
+ +
+
+void send(can_message const &p_message)#
+

Send a can message.

+
+
Parameters:
+

p_message

+
+
+
+ +
+
+void on_receive(hal::can_interrupt::optional_receive_handler const &p_callback)#
+

Set callback on message reception.

+
+
Parameters:
+

p_callback – - callback to be called on each received message

+
+
+
+ +
+
+void bus_on()#
+

Exit “bus-off” state if the device is in that state.

+

If the device is already bus-on then nothing happens.

+
+ +
+
+inline std::span<can_message const> receive_buffer()#
+

Get a view of the circular receive buffer.

+
+
Returns:
+

std::span<can_message const> - span of received messages

+
+
+
+ +
+
+inline std::size_t receive_cursor()#
+

Get the current write index of the circular receive buffer.

+
+
Returns:
+

std::size_t - current write position in the buffer

+
+
+
+ +
+
+inline std::size_t receive_count() const#
+

Get the total count of received can messages.

+

This number increases monotonically until it overflows

+
+
Returns:
+

std::size_t - total number of received can messages

+
+
+
+ +
+
+hal::u8 available_filter()#
+

Scan through the acquired banks and return the index to an available one.

+
+
Throws:
+

hal::resource_unavailable_try_again – - if no filter banks are available

+
+
Returns:
+

hal::u8 - returns the index of the filter banks that has been acquired for the caller.

+
+
+
+ +
+
+void release_filter(hal::u8 p_filter_bank)#
+

Release filter bank.

+

NOTE: This should only be used by the internal drivers and not by callers otherwise, resources can be forgotten.

+
+
Parameters:
+

p_filter_bank – - filter to release

+
+
+
+ +
+
+ +
+
+ + +
+ + + + + + + +
+ + + + + + + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/stm32f1/clock.html b/libhal-arm-mcu/1.22.0/stm32f1/clock.html new file mode 100644 index 0000000..5b34b4d --- /dev/null +++ b/libhal-arm-mcu/1.22.0/stm32f1/clock.html @@ -0,0 +1,1130 @@ + + + + + + + + + + + STM32F1 Clock APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

STM32F1 Clock APIs#

+
+

hal::stm32f1::clock_tree#

+

Defined in namespace hal::stm32f1

+

#include <libhal-arm-mcu/stm32f1/clock.hpp>

+
+
+enum class hal::stm32f1::apb_divider : std::uint8_t#
+

Available dividers for the APB bus.

+

Values:

+
+
+enumerator divide_by_1#
+
+ +
+
+enumerator divide_by_2#
+
+ +
+
+enumerator divide_by_4#
+
+ +
+
+enumerator divide_by_8#
+
+ +
+
+enumerator divide_by_16#
+
+ +
+ +
+
+enum class hal::stm32f1::ahb_divider : std::uint8_t#
+

Available dividers for the AHB bus.

+

Values:

+
+
+enumerator divide_by_1#
+
+ +
+
+enumerator divide_by_2#
+
+ +
+
+enumerator divide_by_4#
+
+ +
+
+enumerator divide_by_8#
+
+ +
+
+enumerator divide_by_16#
+
+ +
+
+enumerator divide_by_64#
+
+ +
+
+enumerator divide_by_128#
+
+ +
+
+enumerator divide_by_256#
+
+ +
+
+enumerator divide_by_512#
+
+ +
+ +
+
+enum class hal::stm32f1::adc_divider : std::uint8_t#
+

Available dividers for the ADC bus.

+

Values:

+
+
+enumerator divide_by_2#
+
+ +
+
+enumerator divide_by_4#
+
+ +
+
+enumerator divide_by_6#
+
+ +
+
+enumerator divide_by_8#
+
+ +
+ +
+
+enum class hal::stm32f1::system_clock_select : std::uint8_t#
+

Available clock sources available for the system clock.

+

Values:

+
+
+enumerator high_speed_internal#
+
+ +
+
+enumerator high_speed_external#
+
+ +
+
+enumerator pll#
+
+ +
+ +
+
+enum class hal::stm32f1::pll_multiply : std::uint8_t#
+

PLL frequency multiplication options.

+

Values:

+
+
+enumerator multiply_by_2#
+
+ +
+
+enumerator multiply_by_3#
+
+ +
+
+enumerator multiply_by_4#
+
+ +
+
+enumerator multiply_by_5#
+
+ +
+
+enumerator multiply_by_6#
+
+ +
+
+enumerator multiply_by_7#
+
+ +
+
+enumerator multiply_by_8#
+
+ +
+
+enumerator multiply_by_9#
+
+ +
+
+enumerator multiply_by_10#
+
+ +
+
+enumerator multiply_by_11#
+
+ +
+
+enumerator multiply_by_12#
+
+ +
+
+enumerator multiply_by_13#
+
+ +
+
+enumerator multiply_by_14#
+
+ +
+
+enumerator multiply_by_15#
+
+ +
+
+enumerator multiply_by_16#
+
+ +
+ +
+
+enum class hal::stm32f1::rtc_source : std::uint8_t#
+

Available clock sources for the RTC.

+

Values:

+
+
+enumerator no_clock#
+
+ +
+
+enumerator low_speed_internal#
+
+ +
+
+enumerator low_speed_external#
+
+ +
+
+enumerator high_speed_external_divided_by_128#
+
+ +
+ +
+
+enum class hal::stm32f1::pll_source : std::uint8_t#
+

Available clock sources for the PLL.

+

Values:

+
+
+enumerator internal_8mhz_divided_by_2#
+
+ +
+
+enumerator high_speed_external#
+
+ +
+
+enumerator high_speed_external_divided_by_2#
+
+ +
+ +
+
+enum class hal::stm32f1::usb_divider : std::uint8_t#
+

Available dividers for the USB peripheral.

+

Values:

+
+
+enumerator divide_by_1_point_5#
+

Divide by 1.5.

+
+ +
+
+enumerator divide_by_1#
+
+ +
+ +
+
+struct clock_tree#
+
+

Public Members

+
+
+hal::hertz high_speed_external = 0.0_MHz#
+

Defines the frequency of the high speed external clock signal.

+
+ +
+
+hal::hertz low_speed_external = 0.0_MHz#
+

Defines the frequency of the low speed external clock signal.

+
+ +
+
+system_clock_select system_clock = system_clock_select::high_speed_internal#
+

Defines which clock source will be use for the system.

+
+

Warning

+

System will lock up in the following situations:

    +
  • Select PLL, but PLL is not enabled

  • +
  • Select PLL, but PLL frequency is too high

  • +
  • Select High Speed External, but the frequency is kept at 0_Mhz.

  • +
+

+
+
+ +
+
+
+struct ahb_t#
+

Defines the configuration of the dividers beyond system clock mux.

+
+
+struct apb1_t#
+

Maximum rate of 36 MHz.

+
+ +
+
+struct apb2_t#
+

Maximum rate of 72 MHz.

+
+
+struct adc_t#
+

Maximum of 14 MHz.

+
+ +
+ +
+ +
+
+struct pll_t#
+

Defines the configuration of the PLL.

+
+
+struct usb_divider_t#
+
+ +
+ +
+
+struct rtc_t#
+

Defines the configuration for the RTC.

+
+ +
+ +
+
+void hal::stm32f1::configure_clocks(clock_tree p_clock_tree)#
+

+
+
Attention

If configuration of the system clocks is desired, one should consult the user manual of the target MCU in use to determine the valid clock configuration values that can/should be used. The Initialize() method is only responsible for configuring the clock system based on configurations in the clock_configuration. Incorrect configurations may result in a hard fault or cause the clock system(s) to supply incorrect clock rate(s).

+
+
+

+
+ +
+
+hal::hertz hal::stm32f1::frequency(peripheral p_id)#
+
+
Returns:
+

the clock rate frequency of a peripheral

+
+
+
+ +
+
+void hal::stm32f1::maximum_speed_using_internal_oscillator()#
+

Sets every bus to its maximum possible frequency using the internal oscillator.

+

NOTE: USB cannot be used in this configuration.

+
+ +
+
+ + +
+ + + + + + + +
+ + + + + + + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/stm32f1/constants.html b/libhal-arm-mcu/1.22.0/stm32f1/constants.html new file mode 100644 index 0000000..5e13ab5 --- /dev/null +++ b/libhal-arm-mcu/1.22.0/stm32f1/constants.html @@ -0,0 +1,1578 @@ + + + + + + + + + + + STM32F1 Constants APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

STM32F1 Constants APIs#

+

Defined in namespace hal::stm32f1

+

#include <libhal-arm-mcu/stm32f1/constants.hpp>

+
+
+enum class hal::stm32f1::peripheral : u8#
+

List of each peripheral and their power on id number for this platform.

+

Values:

+
+
+enumerator dma1#
+
+ +
+
+enumerator dma2#
+
+ +
+
+enumerator sram#
+
+ +
+
+enumerator flitf#
+
+ +
+
+enumerator crc#
+
+ +
+
+enumerator fsmc#
+
+ +
+
+enumerator sdio#
+
+ +
+
+enumerator timer2#
+
+ +
+
+enumerator timer3#
+
+ +
+
+enumerator timer4#
+
+ +
+
+enumerator timer5#
+
+ +
+
+enumerator timer6#
+
+ +
+
+enumerator timer7#
+
+ +
+
+enumerator timer12#
+
+ +
+
+enumerator timer13#
+
+ +
+
+enumerator timer14#
+
+ +
+
+enumerator window_watchdog#
+
+ +
+
+enumerator spi2#
+
+ +
+
+enumerator spi3#
+
+ +
+
+enumerator usart2#
+
+ +
+
+enumerator usart3#
+
+ +
+
+enumerator uart4#
+
+ +
+
+enumerator uart5#
+
+ +
+
+enumerator i2c1#
+
+ +
+
+enumerator i2c2#
+
+ +
+
+enumerator usb#
+
+ +
+
+enumerator can1#
+
+ +
+
+enumerator backup_clock#
+
+ +
+
+enumerator power#
+
+ +
+
+enumerator dac#
+
+ +
+
+enumerator afio#
+
+ +
+
+enumerator gpio_a#
+
+ +
+
+enumerator gpio_b#
+
+ +
+
+enumerator gpio_c#
+
+ +
+
+enumerator gpio_d#
+
+ +
+
+enumerator gpio_e#
+
+ +
+
+enumerator gpio_f#
+
+ +
+
+enumerator gpio_g#
+
+ +
+
+enumerator adc1#
+
+ +
+
+enumerator adc2#
+
+ +
+
+enumerator timer1#
+
+ +
+
+enumerator spi1#
+
+ +
+
+enumerator timer8#
+
+ +
+
+enumerator usart1#
+
+ +
+
+enumerator adc3#
+
+ +
+
+enumerator timer9#
+
+ +
+
+enumerator timer10#
+
+ +
+
+enumerator timer11#
+
+ +
+
+enumerator cpu#
+
+ +
+
+enumerator system_timer#
+
+ +
+
+enumerator i2s#
+
+ +
+ +
+
+enum class hal::stm32f1::irq : cortex_m::irq_t#
+

List of interrupt request numbers for this platform.

+

Values:

+
+
+enumerator window_watchdog#
+

Window WatchDog.

+
+ +
+
+enumerator pvd#
+

PVD through EXTI Line detection.

+
+ +
+
+enumerator tamper#
+

Tamper.

+
+ +
+
+enumerator rtc#
+

RTC.

+
+ +
+
+enumerator flash#
+

FLASH.

+
+ +
+
+enumerator rcc#
+

RCC.

+
+ +
+
+enumerator exti0#
+

EXTI Line0.

+
+ +
+
+enumerator exti1#
+

EXTI Line1.

+
+ +
+
+enumerator exti2#
+

EXTI Line2.

+
+ +
+
+enumerator exti3#
+

EXTI Line3.

+
+ +
+
+enumerator exti4#
+

EXTI Line4.

+
+ +
+
+enumerator dma1_channel1#
+

DMA1 Channel 1.

+
+ +
+
+enumerator dma1_channel2#
+

DMA1 Channel 2.

+
+ +
+
+enumerator dma1_channel3#
+

DMA1 Channel 3.

+
+ +
+
+enumerator dma1_channel4#
+

DMA1 Channel 4.

+
+ +
+
+enumerator dma1_channel5#
+

DMA1 Channel 5.

+
+ +
+
+enumerator dma1_channel6#
+

DMA1 Channel 6.

+
+ +
+
+enumerator dma1_channel7#
+

DMA1 Channel 7.

+
+ +
+
+enumerator adc1#
+

ADC1.

+
+ +
+
+enumerator adc1_2#
+

ADC1 and ADC2.

+
+ +
+
+enumerator usb_hp_can1_tx#
+

USB Device High Priority or CAN1 TX.

+
+ +
+
+enumerator can1_tx#
+

USB Device High Priority or CAN1 TX.

+
+ +
+
+enumerator usb_lp_can1_rx0#
+

USB Device Low Priority or CAN1 RX0.

+
+ +
+
+enumerator can1_rx0#
+

USB Device Low Priority or CAN1 RX0.

+
+ +
+
+enumerator can1_rx1#
+

CAN1 RX1.

+
+ +
+
+enumerator can1_sce#
+

CAN1 SCE.

+
+ +
+
+enumerator exti9_5#
+

External Line[9:5].

+
+ +
+
+enumerator tim1_brk#
+

TIM1 Break.

+
+ +
+
+enumerator tim1_brk_tim15#
+

TIM1 Break and TIM15.

+
+ +
+
+enumerator tim1_brk_tim9#
+

TIM1 Break and TIM9.

+
+ +
+
+enumerator tim1_up#
+

TIM1 Update.

+
+ +
+
+enumerator tim1_up_tim16#
+

TIM1 Update and TIM16.

+
+ +
+
+enumerator tim1_up_tim10#
+

TIM1 Update and TIM10.

+
+ +
+
+enumerator tim1_trg_com#
+

TIM1 Trigger and Commutation.

+
+ +
+
+enumerator tim1_trg_com_tim11#
+

TIM1 Trigger and Commutation.

+
+ +
+
+enumerator tim1_cc#
+

TIM1 Capture Compare.

+
+ +
+
+enumerator tim2#
+

TIM2.

+
+ +
+
+enumerator tim3#
+

TIM3.

+
+ +
+
+enumerator tim4#
+

TIM4.

+
+ +
+
+enumerator i2c1_ev#
+

I2C1 Event.

+
+ +
+
+enumerator i2c1_er#
+

I2C1 Error.

+
+ +
+
+enumerator i2c2_ev#
+

I2C2 Event.

+
+ +
+
+enumerator i2c2_er#
+

I2C2 Error.

+
+ +
+
+enumerator spi1#
+

SPI1.

+
+ +
+
+enumerator spi2#
+

SPI2.

+
+ +
+
+enumerator usart1#
+

USART1.

+
+ +
+
+enumerator usart2#
+

USART2.

+
+ +
+
+enumerator usart3#
+

USART3.

+
+ +
+
+enumerator exti15_10#
+

External Line[15:10].

+
+ +
+
+enumerator rtcalarm#
+

RTC Alarm through EXTI Line.

+
+ +
+
+enumerator usbwakeup#
+

USB Device WakeUp.

+
+ +
+
+enumerator cec#
+

HDMI-CEC.

+
+ +
+
+enumerator otg_fs_wkup#
+

USB OTG FS WakeUp.

+
+ +
+
+enumerator tim8_brk#
+

TIM8 Break.

+
+ +
+
+enumerator tim12#
+

TIM12.

+
+ +
+
+enumerator tim8_brk_tim12#
+

TIM8 Break and TIM12.

+
+ +
+
+enumerator tim8_up#
+

TIM8 Update.

+
+ +
+
+enumerator tim13#
+

TIM13.

+
+ +
+
+enumerator tim8_up_tim13#
+

TIM8 Update and TIM13.

+
+ +
+
+enumerator tim8_trg_com#
+

TIM8 Trigger and Commutation.

+
+ +
+
+enumerator tim14#
+

TIM14.

+
+ +
+
+enumerator tim8_trg_com_tim14#
+

TIM8 Trigger and Commutation.

+
+ +
+
+enumerator tim8_cc#
+

TIM8 Capture Compare.

+
+ +
+
+enumerator adc3#
+

ADC3.

+
+ +
+
+enumerator fsmc#
+

FSMC.

+
+ +
+
+enumerator sdio#
+

SDIO.

+
+ +
+
+enumerator tim5#
+

TIM5.

+
+ +
+
+enumerator spi3#
+

SPI3.

+
+ +
+
+enumerator uart4#
+

UART4.

+
+ +
+
+enumerator uart5#
+

UART5.

+
+ +
+
+enumerator tim6_dac#
+

TIM6 and DAC underrun.

+
+ +
+
+enumerator tim6#
+

TIM6.

+
+ +
+
+enumerator tim7#
+

TIM7.

+
+ +
+
+enumerator dma2_channel1#
+

DMA2 Channel 1.

+
+ +
+
+enumerator dma2_channel2#
+

DMA2 Channel 2.

+
+ +
+
+enumerator dma2_channel3#
+

DMA2 Channel 3.

+
+ +
+
+enumerator dma2_channel4_5#
+

DMA2 Channel 4 and Channel 5.

+
+ +
+
+enumerator dma2_channel4#
+

DMA2 Channel 4.

+
+ +
+
+enumerator dma2_channel5#
+

DMA2 Channel 5.

+
+ +
+
+enumerator eth#
+

Ethernet.

+
+ +
+
+enumerator eth_wkup#
+

Ethernet Wakeup through EXTI line.

+
+ +
+
+enumerator can2_tx#
+

CAN2 TX.

+
+ +
+
+enumerator can2_rx0#
+

CAN2 RX0.

+
+ +
+
+enumerator can2_rx1#
+

CAN2 RX1.

+
+ +
+
+enumerator can2_sce#
+

CAN2 SCE.

+
+ +
+
+enumerator otg_fs#
+

USB OTG FS.

+
+ +
+
+enumerator max#
+
+ +
+ +
+ + +
+ + + + + + + +
+ + + + + + + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/stm32f1/dma.html b/libhal-arm-mcu/1.22.0/stm32f1/dma.html new file mode 100644 index 0000000..be2abe1 --- /dev/null +++ b/libhal-arm-mcu/1.22.0/stm32f1/dma.html @@ -0,0 +1,651 @@ + + + + + + + + + + + STM32F1 DMA APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

STM32F1 DMA APIs#

+

Defined in namespace hal::stm32f1

+

#include <libhal-arm-mcu/stm32f1/dma.hpp>

+
+
+constexpr u32 hal::stm32f1::max_dma_length = 65'535#
+

Maximum length of a buffer that the stm32f1xxx series dma controller can handle.

+
+ +
+ + +
+ + + + + + + +
+ + + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/stm32f1/gpio.html b/libhal-arm-mcu/1.22.0/stm32f1/gpio.html new file mode 100644 index 0000000..640c391 --- /dev/null +++ b/libhal-arm-mcu/1.22.0/stm32f1/gpio.html @@ -0,0 +1,708 @@ + + + + + + + + + + + STM32F1 GPIO APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

STM32F1 GPIO APIs#

+
+

hal::stm32f1::gpio_manager#

+

Defined in namespace hal::stm32f1

+

#include <libhal-arm-mcu/stm32f1/gpio.hpp>

+
+
+template<peripheral select>
class gpio : public hal::stm32f1::gpio_manager#
+

Gpio manager for the gpio ports A through to G.

+

Use the acquire APIs in order to get input and output pins. If a pin is already in use, the hal::device_or_resource_busy will be thrown.

+
+
Template Parameters:
+

select – - gpio peripheral port selection. Only peripheral::gpio_a to peripheral::gpio_g.

+
+
+
+ +
+
+hal::v5::strong_ptr<hal::output_pin> hal::stm32f1::acquire_output_pin(std::pmr::polymorphic_allocator<> p_allocator, hal::v5::strong_ptr<gpio_manager> const &p_manager, u8 p_pin, output_pin::settings const &p_settings = {})#
+

Acquire an output pin from a gpio port.

+

Output pins returned from this API are considered consumed by the manager. This means that only one instance of an output pin from this gpio manager can be acquired at a time. Attempting to create two instances of the same output pin, having two writers to that peripheral, will result in the exception hal::device_or_resource_busy being called with the instance value set to the gpio_manager’s address.

+
+
Parameters:
+
    +
  • p_allocator – - allocator used to allocate the memory for the object

  • +
  • p_manager – - the manager for the gpio port to acquire an output pin from. For example, if you want pin A1, you will need the manager for port A and pass the number 1 to parameter p_pin

  • +
  • p_pin – - The pin number to acquire from this port

  • +
  • p_settings – - initial settings for the output pin

  • +
+
+
Throws:
+

hal::device_or_resource_busy – - if the output pin was already acquired somewhere else in the program.

+
+
Returns:
+

hal::v5::strong_ptr<hal::output_pin> - output pin acquired from gpio port.

+
+
+
+ +
+
+hal::v5::strong_ptr<hal::input_pin> hal::stm32f1::acquire_input_pin(std::pmr::polymorphic_allocator<> p_allocator, hal::v5::strong_ptr<gpio_manager> const &p_manager, u8 p_pin, input_pin::settings const &p_settings = {})#
+

Acquire an input pin from a gpio port.

+

Input pins returned from this API are not considered consumed by the manager. Thus an exception representing an exhausted resource is not thrown. This allows the caller to acquire the same pin multiple times if they wish, without error. The only consequence is the generation of additional ref counted control blocks for each instance. To conserve memory, it is better to acquire the pin once and pass that around to multiple readers.

+
+
Parameters:
+
    +
  • p_allocator – - allocator used to allocate the memory for the object

  • +
  • p_manager – - the manager for the gpio port to acquire an input pin from. For example, if you want pin A1, you will need the manager for port A and pass the number 1 to parameter p_pin.

  • +
  • p_pin – - The pin number to acquire from this port

  • +
  • p_settings – - initial settings for the input pin.

  • +
+
+
Returns:
+

hal::v5::strong_ptr<hal::input_pin> - input pin acquired from gpio port.

+
+
+
+ +
+
+ + +
+ + + + + + + +
+ + + + + + + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/stm32f1/independent_watchdog.html b/libhal-arm-mcu/1.22.0/stm32f1/independent_watchdog.html new file mode 100644 index 0000000..f9117e0 --- /dev/null +++ b/libhal-arm-mcu/1.22.0/stm32f1/independent_watchdog.html @@ -0,0 +1,703 @@ + + + + + + + + + + + STM32F1 Independent Watchdog APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

STM32F1 Independent Watchdog APIs#

+
+

hal::stm32f1::independent_watchdog#

+

Defined in namespace hal::stm32f1

+

#include <libhal-arm-mcu/stm32f1/independent_watchdog.hpp>

+
+
+class independent_watchdog#
+
+

Public Functions

+
+
+void start()#
+

start the watchdog countdown

+
+ +
+
+void reset()#
+

resets the watchdog countdown

+
+ +
+
+void set_countdown_time(hal::time_duration p_wait_time)#
+

configures the watchdog countdown frequency and counter to specified time

+

+the actual wait time may be 66%-133% of the specified time due to clock variance (sec. 7.2.5, pg. 96)

+
+
Parameters:
+

p_wait_time – coundown time till the watchdog resets

+
+
+
+ +
+
+bool check_flag()#
+

checks if watchdog reset flag is set

+
+ +
+
+void clear_flag()#
+

clears reset flags

+
+ +
+
+ +
+
+ + +
+ + + + + + + +
+ + + + + + + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/stm32f1/index.html b/libhal-arm-mcu/1.22.0/stm32f1/index.html new file mode 100644 index 0000000..7531a5c --- /dev/null +++ b/libhal-arm-mcu/1.22.0/stm32f1/index.html @@ -0,0 +1,1089 @@ + + + + + + + + + + + libhal-arm-mcu STM32F1 API Documentation — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

libhal-arm-mcu STM32F1 API Documentation#

+

Here are the collection of drivers for the STM32F1 series microcontrollers.

+
+

STM32F1 drivers

+ +
+
+ + +
+ + + + + + + +
+ + + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/stm32f1/input_pin.html b/libhal-arm-mcu/1.22.0/stm32f1/input_pin.html new file mode 100644 index 0000000..2fe0045 --- /dev/null +++ b/libhal-arm-mcu/1.22.0/stm32f1/input_pin.html @@ -0,0 +1,688 @@ + + + + + + + + + + + STM32F1 Input Pin APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

STM32F1 Input Pin APIs#

+
+

hal::stm32f1::input_pin#

+

Defined in namespace hal::stm32f1

+

#include <libhal-arm-mcu/stm32f1/input_pin.hpp>

+
+
+class input_pin : public hal::input_pin#
+

Input pin implementation for the stm32f10x.

+

+
+Deprecated:
+

Use the hal::gpio<peripheral> class instead. This will be removed in the next later stage.

+
+ +

+

Input pin only seems to support floating pins, does not support pull up or pull down

+
+

Public Functions

+
+
+input_pin(u8 p_port, u8 p_pin)#
+

Get the input pin object.

+
+
Parameters:
+
    +
  • p_port – - selects pin port to use

  • +
  • p_pin – - selects which pin within the port to use

  • +
+
+
Throws:
+

hal::argument_out_of_domain – - if the port and pin are not valid

+
+
+
+ +
+
+ +
+
+ + +
+ + + + + + + +
+ + + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/stm32f1/interrupt.html b/libhal-arm-mcu/1.22.0/stm32f1/interrupt.html new file mode 100644 index 0000000..2c046a9 --- /dev/null +++ b/libhal-arm-mcu/1.22.0/stm32f1/interrupt.html @@ -0,0 +1,652 @@ + + + + + + + + + + + STM32F1 Interrupt APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

STM32F1 Interrupt APIs#

+

Defined in namespace hal::stm32f1

+

#include <libhal-arm-mcu/stm32f1/interrupt.hpp>

+
+
+void hal::stm32f1::initialize_interrupts()#
+

Initialize interrupts for the stm32f1 series processors.

+

Only initializes after the first call. Does nothing afterwards. Can be called multiple times without issue.

+
+ +
+ + +
+ + + + + + + +
+ + + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/stm32f1/output_pin.html b/libhal-arm-mcu/1.22.0/stm32f1/output_pin.html new file mode 100644 index 0000000..0a87ce8 --- /dev/null +++ b/libhal-arm-mcu/1.22.0/stm32f1/output_pin.html @@ -0,0 +1,688 @@ + + + + + + + + + + + STM32F1 Output Pin APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

STM32F1 Output Pin APIs#

+
+

hal::stm32f1::output_pin#

+

Defined in namespace hal::stm32f1

+

#include <libhal-arm-mcu/stm32f1/output_pin.hpp>

+
+
+class output_pin : public hal::output_pin#
+

Output pin implementation for the stm32::f10x.

+

+
+Deprecated:
+

Use the hal::gpio<peripheral> class instead. This will be removed in the next later stage.

+
+ +

+
+

Public Functions

+
+
+output_pin(u8 p_port, u8 p_pin, output_pin::settings p_settings = {})#
+

Get the output pin object.

+
+
Parameters:
+
    +
  • p_port – - selects pin port to use

  • +
  • p_pin – - selects which pin within the port to use

  • +
  • p_settings – - initial pin settings

  • +
+
+
Throws:
+

hal::argument_out_of_domain – - if the port and pin are not valid

+
+
+
+ +
+
+ +
+
+ + +
+ + + + + + + +
+ + + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/stm32f1/pin.html b/libhal-arm-mcu/1.22.0/stm32f1/pin.html new file mode 100644 index 0000000..0973e42 --- /dev/null +++ b/libhal-arm-mcu/1.22.0/stm32f1/pin.html @@ -0,0 +1,766 @@ + + + + + + + + + + + STM32F1 Pin APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

STM32F1 Pin APIs#

+
+

hal::stm32f1::pin_select#

+

Defined in namespace hal::stm32f1

+

#include <libhal-arm-mcu/stm32f1/pin.hpp>

+
+
+struct pin_select#
+

Structure to hold a port & pin selection.

+
+

Public Members

+
+
+u8 port#
+

Port letter: must be a capitol letter from ‘A’ to ‘G’.

+
+ +
+
+u8 pin#
+

Pin number: must be between 0 to 15.

+
+ +
+
+ +
+
+void hal::stm32f1::release_jtag_pins()#
+

Make JTAG pins not associated with SWD available as IO.

+

The GPIO pins PB3, PB4, and PA15 are default initalized to be used for JTAG purposes. If you are using SWD and want to use these pins as GPIO or as other alternative functions, this function MUST be called.

+
+ +
+
+enum class hal::stm32f1::mco_source : std::uint8_t#
+

Main (Master) Clock Output options.

+

The following options are available to be sent to the output of the MCO pin

+

Values:

+
+
+enumerator system_clock#
+
+ +
+
+enumerator high_speed_internal#
+
+ +
+
+enumerator high_speed_external#
+
+ +
+
+enumerator pll_clock_divided_by_2#
+
+ +
+ +
+
+void hal::stm32f1::activate_mco_pa8(mco_source p_source)#
+

Output a clock on the PA8 pin.

+
+
Parameters:
+

p_source – - source clock to channel to the PA8 pin

+
+
+
+ +
+
+void hal::stm32f1::reset_mco_pa8()#
+

Reset pin back to default.

+
+ +
+
+enum class hal::stm32f1::can_pins : std::uint8_t#
+

Remap pins for can bus peripheral.

+

Values:

+
+
+enumerator pa11_pa12#
+
+ +
+
+enumerator pb9_pb8#
+
+ +
+
+enumerator pd0_pd1#
+
+ +
+ +
+
+ + +
+ + + + + + + +
+ + + + + + + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/stm32f1/pwm.html b/libhal-arm-mcu/1.22.0/stm32f1/pwm.html new file mode 100644 index 0000000..a1707f4 --- /dev/null +++ b/libhal-arm-mcu/1.22.0/stm32f1/pwm.html @@ -0,0 +1,665 @@ + + + + + + + + + + + STM32F1 PWM APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

STM32F1 PWM APIs#

+
+

hal::stm32f1::pwm#

+

Defined in namespace hal::stm32f1

+

#include <libhal-arm-mcu/stm32f1/pwm.hpp>

+
+
+class pwm : public hal::pwm#
+

This class implements the hal::pwm interface.

+

Can create pwm objects which can output pwm signals on a chosen pin

+

+
+Deprecated:
+

Please use pwm16_channel and/or pwm_group_frequency. This class implements the hal::pwm interface which will be deprecated in libhal 5.

+
+ +

+
+ +
+
+ + +
+ + + + + + + +
+ + + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/stm32f1/spi.html b/libhal-arm-mcu/1.22.0/stm32f1/spi.html new file mode 100644 index 0000000..ccb77c2 --- /dev/null +++ b/libhal-arm-mcu/1.22.0/stm32f1/spi.html @@ -0,0 +1,676 @@ + + + + + + + + + + + STM32F1 SPI APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

STM32F1 SPI APIs#

+
+

hal::stm32f1::spi#

+

Defined in namespace hal::stm32f1

+

#include <libhal-arm-mcu/stm32f1/spi.hpp>

+
+
+class spi : public hal::spi#
+
+

Public Functions

+
+
+inline spi(hal::bus_param auto p_bus, spi::settings const &p_settings = {})#
+

Construct a new spi driver.

+
+
Parameters:
+
    +
  • p_bus – - spi bus number from 1 to 3

  • +
  • p_settings – - initial spi settings

  • +
+
+
+
+ +
+
+ +
+
+ + +
+ + + + + + + +
+ + + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/stm32f1/timer.html b/libhal-arm-mcu/1.22.0/stm32f1/timer.html new file mode 100644 index 0000000..413d43d --- /dev/null +++ b/libhal-arm-mcu/1.22.0/stm32f1/timer.html @@ -0,0 +1,788 @@ + + + + + + + + + + + STM32F1 Timer APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

STM32F1 Timer APIs#

+
+

hal::stm32f1::timer#

+

Defined in namespace hal::stm32f1

+

#include <libhal-arm-mcu/stm32f1/timer.hpp>

+
+
+class timer : public hal::timer#
+

This class implements the hal::timer interface.

+

Can schedule function callbacks to occur via interrupt after a designated amount of time.

+
+ +
+
+

hal::stm32f1::advanced_timer_manager#

+
+
+class advanced_timer_manager#
+

This class is used to do any timer operations for timers 1 and 8.

+

This is the non-templated version that implements all the core functionality. It is designed to be inherited by the templated version, helping to reduce code bloat and duplication caused by template instantiations.

+

These timers can be used to do PWM generation, as well as other advanced timer specific tasks

+

Subclassed by hal::stm32f1::advanced_timer< select >

+
+

Public Functions

+
+
+hal::stm32f1::timer acquire_timer()#
+

Creates a timer object to be used for scheduling function callbacks via interrupts.

+
+
Throws:
+

hal::device_or_resource_busy – - if timer is already being used with a conflicting resource

+
+
Returns:
+

hal::stm32f1::timer - the timer object

+
+
+
+ +
+
+hal::stm32f1::pwm_group_frequency acquire_pwm_group_frequency()#
+

Creates a pwm object to be used for setting the frequency of the group of pwm channels for the acquired timer.

+
+
Throws:
+

hal::device_or_resource_busy – - if timer is already being used with a conflicting resource

+
+
Returns:
+

hal::stm32f1::pwm_group_frequency - the pwm frequency object.

+
+
+
+ +
+
+ +
+
+

hal::stm32f1::general_purpose_timer_manager#

+
+
+class general_purpose_timer_manager#
+

This class is used to do any timer operations for the general purpose timers: 2, 3, 4, 5, 9, 10, 11, 12, 13, 14.

+

This is the non-templated version that implements all the core functionality. It is designed to be inherited by the templated version, helping to reduce code bloat and duplication caused by template instantiations.

+

These timers can be used to do pwm generation, as well as other general purpose timer tasks

+

Subclassed by hal::stm32f1::general_purpose_timer< select >

+
+

Public Functions

+
+
+hal::stm32f1::timer acquire_timer()#
+

Creates a timer object to be used for scheduling function callbacks via interrupts.

+
+
Throws:
+

hal::device_or_resource_busy – - if timer is already being used with a conflicting resource

+
+
Returns:
+

hal::stm32f1::timer - the timer object

+
+
+
+ +
+
+hal::stm32f1::pwm_group_frequency acquire_pwm_group_frequency()#
+

Creates a pwm object to be used for setting the frequency of the group of pwm channels for the acquired timer.

+
+
Throws:
+

hal::device_or_resource_busy – - if timer is already being used with a conflicting resource

+
+
Returns:
+

hal::stm32f1::pwm_group_frequency - the pwm frequency object.

+
+
+
+ +
+
+ +
+
+

hal::stm32f1::pwm_group_frequency#

+
+
+class pwm_group_frequency : public hal::pwm_group_manager#
+

This class sets the frequency for a group of pwm pins.

+

Since all the pwm channels for each timer peripheral have to share the same frequency, this class is used to set that frequency for the whole group of channels.

+
+ +
+
+

hal::stm32f1::pwm16_channel#

+
+
+class pwm16_channel : public hal::pwm16_channel#
+

This class is used to control a pwm channel.

+

This is to be used in conjunction with pwm_group_frequency. You create your pwm channel(s) with this class, where each channel can set its own unique duty cycle. Then you set the frequency to be used by all the configured channels for the specific timer peripheral through the pwm_group_frequency.

+
+ +
+
+ + +
+ + + + + + + +
+ + + + + + + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/stm32f1/uart.html b/libhal-arm-mcu/1.22.0/stm32f1/uart.html new file mode 100644 index 0000000..a26096b --- /dev/null +++ b/libhal-arm-mcu/1.22.0/stm32f1/uart.html @@ -0,0 +1,696 @@ + + + + + + + + + + + STM32F1 UART APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

STM32F1 UART APIs#

+
+

hal::stm32f1::uart#

+

Defined in namespace hal::stm32f1

+

#include <libhal-arm-mcu/stm32f1/uart.hpp>

+
+
+class uart : public hal::serial#
+
+

Public Functions

+
+
+inline uart(hal::port_param auto p_port, hal::buffer_param auto p_buffer, serial::settings const &p_settings = {})#
+

Construct a new uart object.

+
+
Parameters:
+
    +
  • p_port – - desired port number

  • +
  • p_buffer – - receive buffer size (statically allocated buffer)

  • +
  • p_settings – - initial serial settings

  • +
+
+
+
+ +
+
+uart(hal::runtime, std::uint8_t p_port, std::span<hal::byte> p_buffer, serial::settings const &p_settings = {})#
+

Construct a new uart object using runtime values.

+
+
Parameters:
+
    +
  • p_port – - runtime value for p_port

  • +
  • p_buffer – - external buffer to be used as the receive buffer

  • +
  • p_settings – - initial serial settings

  • +
+
+
Throws:
+

hal::operation_not_supported – - if the port is not supported or the buffer is outside of the maximum dma length.

+
+
+
+ +
+
+ +
+
+ + +
+ + + + + + + +
+ + + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/stm32f1/usart.html b/libhal-arm-mcu/1.22.0/stm32f1/usart.html new file mode 100644 index 0000000..245bcf3 --- /dev/null +++ b/libhal-arm-mcu/1.22.0/stm32f1/usart.html @@ -0,0 +1,665 @@ + + + + + + + + + + + STM32F1 USART APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

STM32F1 USART APIs#

+
+

hal::stm32f1::usart_manager#

+

Defined in namespace hal::stm32f1

+

#include <libhal-arm-mcu/stm32f1/usart.hpp>

+
+
+class usart_manager#
+

Subclassed by hal::stm32f1::usart< id >

+
+
+class serial : public hal::zero_copy_serial#
+
+ +
+ +
+
+ + +
+ + + + + + + +
+ + + + + + + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/stm32f1/usb.html b/libhal-arm-mcu/1.22.0/stm32f1/usb.html new file mode 100644 index 0000000..2dee2cc --- /dev/null +++ b/libhal-arm-mcu/1.22.0/stm32f1/usb.html @@ -0,0 +1,678 @@ + + + + + + + + + + + STM32F1 USB APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

STM32F1 USB APIs#

+
+

hal::stm32f1::usb#

+

Defined in namespace hal::stm32f1

+

#include <libhal-arm-mcu/stm32f1/usb.hpp>

+
+
+class usb#
+

USB peripheral manager class for the stm32f1 processor.

+

In order to acquire USB endpoint resources, this class must be constructed successfully.

+
+

Public Functions

+
+
+usb(hal::v5::strong_ptr_only_token, hal::steady_clock &p_clock, timeout_t p_write_timeout = timeout_t(10))#
+

Construct a new usb object.

+
+
Parameters:
+
    +
  • p_clock – - clocked used for timing parts of the usb initialization.

  • +
  • p_write_timeout – - the amount of milliseconds of time before throwing a timed_out exception for an OUT endpoint with data to transmit but the HOST has not requested it yet. Its max duration is is 255ms. Temporal resolution is +/- 1ms.

  • +
+
+
+
+ +
+
+ +
+
+ + +
+ + + + + + + +
+ + + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/stm32f40/constants.html b/libhal-arm-mcu/1.22.0/stm32f40/constants.html new file mode 100644 index 0000000..e01ea2d --- /dev/null +++ b/libhal-arm-mcu/1.22.0/stm32f40/constants.html @@ -0,0 +1,659 @@ + + + + + + + + + + + STM32F40 Constants APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + +
+ + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

STM32F40 Constants APIs#

+

Defined in namespace hal::stm32f40

+

#include <libhal-arm-mcu/stm32f40/constants.hpp>

+
+
+enum class hal::stm32f4110::peripheral : u32#
+

List of each peripheral and their power on id number for this platform.

+

Values:

+
+
+enumerator max#
+
+ +
+ +
+
+enum class hal::stm32f4110::irq : u16#
+

List of interrupt request numbers for this platform.

+

Values:

+
+
+enumerator max#
+
+ +
+ +
+ + +
+ + + + + + + +
+ + + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/stm32f40/index.html b/libhal-arm-mcu/1.22.0/stm32f40/index.html new file mode 100644 index 0000000..0cd7d6f --- /dev/null +++ b/libhal-arm-mcu/1.22.0/stm32f40/index.html @@ -0,0 +1,628 @@ + + + + + + + + + + + libhal-arm-mcu STM32F40 API Documentation — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + +
+ + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

libhal-arm-mcu STM32F40 API Documentation#

+

Here are the collection of drivers for the STM32F40 series microcontrollers.

+
+

STM32F40 drivers

+ +
+
+ + +
+ + + + + + + +
+ + + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/stm32f411/clock.html b/libhal-arm-mcu/1.22.0/stm32f411/clock.html new file mode 100644 index 0000000..81185ad --- /dev/null +++ b/libhal-arm-mcu/1.22.0/stm32f411/clock.html @@ -0,0 +1,1006 @@ + + + + + + + + + + + STM32F411 Clock APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + +
+ + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

STM32F411 Clock APIs#

+
+

hal::stm32f411::clock_tree#

+

Defined in namespace hal::stm32f411

+

#include <libhal-arm-mcu/stm32f411/clock.hpp>

+
+
+enum class hal::stm32f411::ahb_divider : u8#
+

Available dividers for the AHB bus.

+

Values:

+
+
+enumerator divide_by_1#
+
+ +
+
+enumerator divide_by_2#
+
+ +
+
+enumerator divide_by_4#
+
+ +
+
+enumerator divide_by_8#
+
+ +
+
+enumerator divide_by_16#
+
+ +
+
+enumerator divide_by_64#
+
+ +
+
+enumerator divide_by_128#
+
+ +
+
+enumerator divide_by_256#
+
+ +
+
+enumerator divide_by_512#
+
+ +
+ +
+
+enum class hal::stm32f411::apb_divider : u8#
+

Available dividers for the APB bus.

+

Values:

+
+
+enumerator divide_by_1#
+
+ +
+
+enumerator divide_by_2#
+
+ +
+
+enumerator divide_by_4#
+
+ +
+
+enumerator divide_by_8#
+
+ +
+
+enumerator divide_by_16#
+
+ +
+ +
+
+enum class hal::stm32f411::adc_divider : u8#
+

Available dividers for the ADC bus.

+

Values:

+
+
+enumerator divide_by_2#
+
+ +
+
+enumerator divide_by_4#
+
+ +
+
+enumerator divide_by_6#
+
+ +
+
+enumerator divide_by_8#
+
+ +
+ +
+
+enum class hal::stm32f411::system_clock_select : u8#
+

Available clock sources available for the system clock.

+

Values:

+
+
+enumerator high_speed_internal#
+
+ +
+
+enumerator high_speed_external#
+
+ +
+
+enumerator pll#
+
+ +
+ +
+
+enum class hal::stm32f411::pll_source : u8#
+

Values:

+
+
+enumerator high_speed_internal#
+
+ +
+
+enumerator high_speed_external#
+
+ +
+ +
+
+enum class hal::stm32f411::rtc_source : u8#
+

Available clock sources for the RTC.

+

Values:

+
+
+enumerator no_clock#
+
+ +
+
+enumerator low_speed_external#
+
+ +
+
+enumerator low_speed_internal#
+
+ +
+
+enumerator high_speed_external_divided_by_128#
+
+ +
+ +
+
+enum class hal::stm32f411::i2s_source : u8#
+

Available sources for the I2S clocks.

+

Values:

+
+
+enumerator pll_i2s_clk#
+
+ +
+
+enumerator i2s_external_clock#
+

External I2S_CKIN pin.

+
+ +
+ +
+
+struct clock_tree#
+
+

Public Members

+
+
+hal::hertz high_speed_external = 0.0_MHz#
+

Defines the frequency of the high speed external clock signal.

+
+ +
+
+hal::hertz low_speed_external = 0.0_MHz#
+

Defines the frequency of the low speed external clock signal.

+
+ +
+
+system_clock_select system_clock = system_clock_select::high_speed_internal#
+

Defines which clock source will be use for the system.

+
+

Warning

+

System will lock up in the following situations:

    +
  • Select PLL, but PLL is not enabled

  • +
  • Select PLL, but PLL frequency is too high

  • +
  • Select High Speed External, but the frequency is kept at 0_Mhz.

  • +
+

+
+
+ +
+
+
+struct ahb_t#
+

Defines the configuration of the dividers beyond system clock mux.

+
+
+struct apb1_t#
+

Maximum rate of 36 MHz.

+
+ +
+
+struct apb2_t#
+

Maximum rate of 72 MHz.

+
+
+struct adc_t#
+

Maximum of 14 MHz.

+
+ +
+ +
+ +
+
+struct pll_t#
+

Defines the configuration of the PLL.

+
+ +
+
+struct rtc_t#
+

Defines the configuration for the RTC.

+
+ +
+ +
+
+void hal::stm32f411::configure_clocks(clock_tree const &p_clock_tree)#
+

+
+
Attention

If configuration of the system clocks is desired, one should consult the user manual of the target MCU in use to determine the valid clock configuration values that can/should be used. The configure_clocks() method is only responsible for configuring the clock system based on configurations in the clock_configuration. Incorrect configurations may result in a hard fault or cause the clock system(s) to supply incorrect clock rate(s).

+
+
+

+
+ +
+
+hal::hertz hal::stm32f411::frequency(peripheral p_id)#
+
+
Returns:
+

the clock rate frequency of a peripheral

+
+
+
+ +
+
+void hal::stm32f411::maximum_speed_using_internal_oscillator()#
+

Sets every bus to its maximum possible frequency using the internal oscillator.

+
+ +
+
+ + +
+ + + + + + + +
+ + + + + + + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/stm32f411/constants.html b/libhal-arm-mcu/1.22.0/stm32f411/constants.html new file mode 100644 index 0000000..89e69cf --- /dev/null +++ b/libhal-arm-mcu/1.22.0/stm32f411/constants.html @@ -0,0 +1,1318 @@ + + + + + + + + + + + STM32F411 Constants APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + +
+ + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

STM32F411 Constants APIs#

+

Defined in namespace hal::stm32f411

+

#include <libhal-arm-mcu/stm32f411/constants.hpp>

+
+
+enum class hal::stm32f411::peripheral : u8#
+

List of each peripheral and their power on id number for this platform.

+

Values:

+
+
+enumerator gpio_a#
+
+ +
+
+enumerator gpio_b#
+
+ +
+
+enumerator gpio_c#
+
+ +
+
+enumerator gpio_d#
+
+ +
+
+enumerator gpio_e#
+
+ +
+
+enumerator gpio_h#
+
+ +
+
+enumerator crc#
+
+ +
+
+enumerator dma1#
+
+ +
+
+enumerator dma2#
+
+ +
+
+enumerator usb_otg#
+
+ +
+
+enumerator timer2#
+
+ +
+
+enumerator timer3#
+
+ +
+
+enumerator timer4#
+
+ +
+
+enumerator timer5#
+
+ +
+
+enumerator window_watchdog#
+
+ +
+
+enumerator spi2#
+
+ +
+
+enumerator spi3#
+
+ +
+
+enumerator usart2#
+
+ +
+
+enumerator i2c1#
+
+ +
+
+enumerator i2c2#
+
+ +
+
+enumerator i2c3#
+
+ +
+
+enumerator power#
+
+ +
+
+enumerator timer1#
+
+ +
+
+enumerator usart1#
+
+ +
+
+enumerator usart6#
+
+ +
+
+enumerator adc1#
+
+ +
+
+enumerator sdio#
+
+ +
+
+enumerator spi1#
+
+ +
+
+enumerator spi4#
+
+ +
+
+enumerator system_config_controller#
+
+ +
+
+enumerator timer9#
+
+ +
+
+enumerator timer10#
+
+ +
+
+enumerator timer11#
+
+ +
+
+enumerator spi5#
+
+ +
+
+enumerator cpu#
+
+ +
+
+enumerator system_timer#
+
+ +
+
+enumerator i2s#
+
+ +
+ +
+
+enum class hal::stm32f411::irq : cortex_m::irq_t#
+

List of interrupt request numbers for this platform.

+

Values:

+
+
+enumerator window_watchdog#
+

Window WatchDog.

+
+ +
+
+enumerator pvd#
+

PVD through EXTI Line detection.

+
+ +
+
+enumerator tamper#
+

Tamper.

+
+ +
+
+enumerator rtc#
+

RTC.

+
+ +
+
+enumerator flash#
+

FLASH.

+
+ +
+
+enumerator rcc#
+

RCC.

+
+ +
+
+enumerator exti0#
+

EXTI Line0.

+
+ +
+
+enumerator exti1#
+

EXTI Line1.

+
+ +
+
+enumerator exti2#
+

EXTI Line2.

+
+ +
+
+enumerator exti3#
+

EXTI Line3.

+
+ +
+
+enumerator exti4#
+

EXTI Line4.

+
+ +
+
+enumerator dma1_channel0#
+

DMA1 Channel 0.

+
+ +
+
+enumerator dma1_channel1#
+

DMA1 Channel 1.

+
+ +
+
+enumerator dma1_channel2#
+

DMA1 Channel 2.

+
+ +
+
+enumerator dma1_channel3#
+

DMA1 Channel 3.

+
+ +
+
+enumerator dma1_channel4#
+

DMA1 Channel 4.

+
+ +
+
+enumerator dma1_channel5#
+

DMA1 Channel 5.

+
+ +
+
+enumerator dma1_channel6#
+

DMA1 Channel 6.

+
+ +
+
+enumerator adc1#
+

ADC1.

+
+ +
+
+enumerator exi9_5#
+

EXTI Line[9:5].

+
+ +
+
+enumerator tim1_brk#
+

TIM1 Break.

+
+ +
+
+enumerator tim1_brk_tim19#
+

TIM1 Break and TIM19.

+
+ +
+
+enumerator tim1_up#
+

TIM1 Update.

+
+ +
+
+enumerator tim1_up_tim10#
+

TIM1 Update and TIM10.

+
+ +
+
+enumerator tim1_trg_com#
+

TIM1 Trigger and Commutation.

+
+ +
+
+enumerator tim1_trg_com_tim11#
+

TIM1 Trigger and Commutation.

+
+ +
+
+enumerator tim1_cc#
+

TIM1 Capture Compare.

+
+ +
+
+enumerator tim2#
+

TIM2.

+
+ +
+
+enumerator tim3#
+

TIM3.

+
+ +
+
+enumerator tim4#
+

TIM4.

+
+ +
+
+enumerator i2c1_ev#
+

I2C1 Event.

+
+ +
+
+enumerator i2c1_er#
+

I2C1 Error.

+
+ +
+
+enumerator i2c2_ev#
+

I2C2 Event.

+
+ +
+
+enumerator i2c2_er#
+

I2C2 Error.

+
+ +
+
+enumerator spi1#
+

SPI1.

+
+ +
+
+enumerator spi2#
+

SPI2.

+
+ +
+
+enumerator usart1#
+

USART1.

+
+ +
+
+enumerator usart2#
+

USART2.

+
+ +
+
+enumerator exti15_10#
+

External Line[15:10].

+
+ +
+
+enumerator exti17#
+

EXTI Line17.

+
+ +
+
+enumerator rtcalarm#
+

RTC Alarm through EXTI Line.

+
+ +
+
+enumerator exti18#
+

EXTI18 Line18.

+
+ +
+
+enumerator otg_fs_wkup#
+

USB OTG FS WakeUp.

+
+ +
+
+enumerator dma1_channel7#
+

DMA1_Channel7.

+
+ +
+
+enumerator sdio#
+

SDIO.

+
+ +
+
+enumerator tim5#
+

TIM5.

+
+ +
+
+enumerator spi3#
+

SPI3.

+
+ +
+
+enumerator dma2_channel0#
+

DMA2 Channel 0.

+
+ +
+
+enumerator dma2_channel1#
+

DMA2 Channel 1.

+
+ +
+
+enumerator dma2_channel2#
+

DMA2 Channel 2.

+
+ +
+
+enumerator dma2_channel3#
+

DMA2 Channel 3.

+
+ +
+
+enumerator dma2_channel4#
+

DMA2 Channel 4.

+
+ +
+
+enumerator otg_fs#
+

USB OTG FS.

+
+ +
+
+enumerator dma2_channel5#
+

DMA2 Channel 5.

+
+ +
+
+enumerator dma2_channel6#
+

DMA2 Channel 6.

+
+ +
+
+enumerator dma2_channel7#
+

DMA2 Channel 7.

+
+ +
+
+enumerator usart6#
+

USART6.

+
+ +
+
+enumerator i2c3_ev#
+

I2C3 Event.

+
+ +
+
+enumerator i2c3_er#
+

I2C3 Error.

+
+ +
+
+enumerator fpu#
+

FPU.

+
+ +
+
+enumerator spi4#
+

SPI4.

+
+ +
+
+enumerator spi5#
+

SPI5.

+
+ +
+
+enumerator max#
+
+ +
+ +
+ + +
+ + + + + + + +
+ + + + + + + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/stm32f411/dma.html b/libhal-arm-mcu/1.22.0/stm32f411/dma.html new file mode 100644 index 0000000..33519f6 --- /dev/null +++ b/libhal-arm-mcu/1.22.0/stm32f411/dma.html @@ -0,0 +1,673 @@ + + + + + + + + + + + STM32F411 DMA APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + +
+ + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

STM32F411 DMA APIs#

+

Defined in namespace hal::stm32f411

+

#include <libhal-arm-mcu/stm32f411/dma.hpp>

+
+
+enum class hal::stm32f411::dma : u8#
+

Values:

+
+
+enumerator dma1#
+
+ +
+
+enumerator dma2#
+
+ +
+ +
+
+void hal::stm32f411::set_dma_memory_transfer(dma p_dma, std::span<byte const> const p_source, std::span<byte> const p_destination)#
+

Sets up the DMA memory to memory transfer mode.

+
+
Parameters:
+
    +
  • p_dma – Select DMA

  • +
  • p_source – source span of bytes

  • +
  • p_destination – destination span of bytes

  • +
+
+
+
+ +
+ + +
+ + + + + + + +
+ + + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/stm32f411/i2c.html b/libhal-arm-mcu/1.22.0/stm32f411/i2c.html new file mode 100644 index 0000000..1ad17f1 --- /dev/null +++ b/libhal-arm-mcu/1.22.0/stm32f411/i2c.html @@ -0,0 +1,695 @@ + + + + + + + + + + + STM32F411 I2C APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + +
+ + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

STM32F411 I2C APIs#

+
+

hal::stm32f411::i2c_manager_impl#

+

Defined in namespace hal::stm32f411

+

#include <libhal-arm-mcu/stm32f411/i2c.hpp>

+
+
+class i2c_manager_impl#
+

Implementation of the i2c port manager class.

+

This class has a private constructor and can only be used via its derived class i2c<peripheral> class.

+

Subclassed by hal::stm32f411::i2c_manager< select >

+
+

Public Functions

+
+
+~i2c_manager_impl()#
+

Destroy the i2c port manager object.

+
+ +
+
+
+class i2c : public hal::i2c#
+
+

Public Functions

+
+
+i2c(i2c_manager_impl &p_manager, i2c::settings const &p_settings = {})#
+

Construct a new i2c object.

+

Will enable internal pull up resistors to make sure the signals don’t drop low. These pull ups should be taken into consideration but not be the only pull ups on the line

+

+Construct a new i2c object

+
+
Parameters:
+
    +
  • p_manager – - i2c bus manager

  • +
  • p_settings – - i2c setting

  • +
+
+
Throws:
+

hal::operation_not_supported – - if the settings or if the bus number

+
+
+
+ +
+
+ +
+ +
+
+ + +
+ + + + + + + +
+ + + + + + + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/stm32f411/index.html b/libhal-arm-mcu/1.22.0/stm32f411/index.html new file mode 100644 index 0000000..cb52af0 --- /dev/null +++ b/libhal-arm-mcu/1.22.0/stm32f411/index.html @@ -0,0 +1,882 @@ + + + + + + + + + + + libhal-arm-mcu STM32F411 API Documentation — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + +
+ + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

libhal-arm-mcu STM32F411 API Documentation#

+

Here are the collection of drivers for the STM32F411 series microcontrollers.

+
+

STM32F411 drivers

+ +
+
+ + +
+ + + + + + + +
+ + + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/stm32f411/input_pin.html b/libhal-arm-mcu/1.22.0/stm32f411/input_pin.html new file mode 100644 index 0000000..67420bd --- /dev/null +++ b/libhal-arm-mcu/1.22.0/stm32f411/input_pin.html @@ -0,0 +1,670 @@ + + + + + + + + + + + STM32F411 Input Pin APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + +
+ + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

STM32F411 Input Pin APIs#

+
+

hal::stm32f411::input_pin#

+

Defined in namespace hal::stm32f411

+

#include <libhal-arm-mcu/stm32f411/input_pin.hpp>

+
+
+class input_pin : public hal::input_pin#
+

Input pin implementation for the stm32f4.

+
+

Public Functions

+
+
+input_pin(hal::stm32f411::peripheral p_port, std::uint8_t p_pin, input_pin::settings const &p_settings = {})#
+

Construct a new input pin object.

+
+
Parameters:
+
    +
  • p_port – - selects pin port to use

  • +
  • p_pin – - selects pin within the port to use

  • +
  • p_settings – - initial pin settings

  • +
+
+
+
+ +
+
+ +
+
+ + +
+ + + + + + + +
+ + + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/stm32f411/interrupt.html b/libhal-arm-mcu/1.22.0/stm32f411/interrupt.html new file mode 100644 index 0000000..ac7340b --- /dev/null +++ b/libhal-arm-mcu/1.22.0/stm32f411/interrupt.html @@ -0,0 +1,644 @@ + + + + + + + + + + + STM32F411 Interrupt APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + +
+ + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

STM32F411 Interrupt APIs#

+

Defined in namespace hal::stm32f411

+

#include <libhal-arm-mcu/stm32f411/interrupt.hpp>

+
+
+void hal::stm32f411::initialize_interrupts()#
+

Initialize interrupts for the stm32f411 series processors.

+

Only initializes after the first call. Does nothing afterwards. Can be called multiple times without issue.

+
+ +
+ + +
+ + + + + + + +
+ + + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/stm32f411/output_pin.html b/libhal-arm-mcu/1.22.0/stm32f411/output_pin.html new file mode 100644 index 0000000..77f7d3d --- /dev/null +++ b/libhal-arm-mcu/1.22.0/stm32f411/output_pin.html @@ -0,0 +1,669 @@ + + + + + + + + + + + STM32F411 Output Pin APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + +
+ + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

STM32F411 Output Pin APIs#

+
+

hal::stm32f411::output_pin#

+

Defined in namespace hal::stm32f411

+

#include <libhal-arm-mcu/stm32f411/output_pin.hpp>

+
+
+class output_pin : public hal::output_pin#
+
+

Public Functions

+
+
+output_pin(hal::stm32f411::peripheral p_port, std::uint8_t p_pin, output_pin::settings p_settings = {})#
+

Construct a new output pin object.

+
+
Parameters:
+
    +
  • p_port – - selects pin port to use

  • +
  • p_pin – - selects which pin within the port to use

  • +
  • p_settings – - initial pin settings

  • +
+
+
+
+ +
+
+ +
+
+ + +
+ + + + + + + +
+ + + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/stm32f411/pin.html b/libhal-arm-mcu/1.22.0/stm32f411/pin.html new file mode 100644 index 0000000..a1a448b --- /dev/null +++ b/libhal-arm-mcu/1.22.0/stm32f411/pin.html @@ -0,0 +1,727 @@ + + + + + + + + + + + STM32F411 Pin APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + +
+ + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

STM32F411 Pin APIs#

+
+

hal::stm32f411::pin#

+

Defined in namespace hal::stm32f411

+

#include <libhal-arm-mcu/stm32f411/pin.hpp>

+
+
+class pin#
+

stm32f4 pin multiplexing and control driver used drivers and apps seeking to tune the pins.

+
+

Public Functions

+
+
+pin(peripheral p_port, std::uint8_t p_pin) noexcept#
+

Construct a new pin mux and configuration driver.

+

See UM10562 page 99 for more details on which pins can be what function.

+
+
Parameters:
+
    +
  • p_port – - selects pin port to use

  • +
  • p_pin – - selects pin within the port to use

  • +
+
+
+
+ +
+
+pin const &function(pin_function p_function) const noexcept#
+

Change the function of the pin (mux the pins function)

+
+
Parameters:
+

p_function – - the pin function (I,O, alternatex)

+
+
Returns:
+

pin& - reference to this pin for chaining

+
+
+
+ +
+
+pin const &resistor(hal::pin_resistor p_resistor) const noexcept#
+

Set the internal resistor connection for this pin.

+
+
Parameters:
+

p_resistor – - resistor type

+
+
Returns:
+

pin& - reference to this pin for chaining

+
+
+
+ +
+
+pin const &open_drain(bool p_enable = true) const noexcept#
+

Disable or enable hysteresis mode for this pin.

+
+
Parameters:
+

p_enable – - enable this mode, set to false to disable this mode

+
+
Returns:
+

pin& - reference to this pin for chaining

+
+
+
+ +
+
+void activate_mco_pc9(mco_source p_source)#
+

Output a clock divided by 2 on the PA8 pin.

+
+
Parameters:
+

p_source – - source clock to channel to the PA8 pin

+
+
+
+ +
+
+ +
+
+ + +
+ + + + + + + +
+ + + + + + + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/stm32f411/spi.html b/libhal-arm-mcu/1.22.0/stm32f411/spi.html new file mode 100644 index 0000000..46a9850 --- /dev/null +++ b/libhal-arm-mcu/1.22.0/stm32f411/spi.html @@ -0,0 +1,668 @@ + + + + + + + + + + + STM32F411 SPI APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + +
+ + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

STM32F411 SPI APIs#

+
+

hal::stm32f411::spi#

+

Defined in namespace hal::stm32f411

+

#include <libhal-arm-mcu/stm32f411/spi.hpp>

+
+
+class spi : public hal::spi#
+
+

Public Functions

+
+
+spi(hal::runtime, std::uint8_t p_bus, spi::settings const &p_settings = {})#
+

Construct a new spi object.

+
+
Parameters:
+
    +
  • p_bus – SPI bus number 1-5

  • +
  • p_settings

  • +
+
+
+
+ +
+
+ +
+
+ + +
+ + + + + + + +
+ + + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/libhal-arm-mcu/1.22.0/stm32f411/uart.html b/libhal-arm-mcu/1.22.0/stm32f411/uart.html new file mode 100644 index 0000000..535dc31 --- /dev/null +++ b/libhal-arm-mcu/1.22.0/stm32f411/uart.html @@ -0,0 +1,688 @@ + + + + + + + + + + + STM32F411 UART APIs — libhal-arm-mcu documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + +
+
+ + + + +
+ + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ + + + + +
+ +
+

STM32F411 UART APIs#

+
+

hal::stm32f411::uart#

+

Defined in namespace hal::stm32f411

+

#include <libhal-arm-mcu/stm32f411/uart.hpp>

+
+
+class uart : public hal::serial#
+
+

Public Functions

+
+
+inline uart(hal::port_param auto p_port, hal::buffer_param auto p_buffer, serial::settings const &p_settings = {})#
+

Construct a new uart object.

+
+
Parameters:
+
    +
  • p_port – - desired port number

  • +
  • p_buffer – - receive buffer size (statically allocated buffer)

  • +
  • p_settings – - initial serial settings

  • +
+
+
+
+ +
+
+uart(hal::runtime, u8 p_port, std::span<hal::byte> p_buffer, serial::settings const &p_settings = {})#
+

Construct a new uart object using runtime values.

+
+
Parameters:
+
    +
  • p_port – - runtime value for p_port

  • +
  • p_buffer – - external buffer to be used as the receive buffer

  • +
  • p_settings – - initial serial settings

  • +
+
+
Throws:
+

hal::operation_not_supported – - if the port is not supported or the buffer is outside of the maximum dma length.

+
+
+
+ +
+
+ +
+
+ + +
+ + + + + + + +
+ + + + +
+ + +
+
+ +
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/libhal-arm-mcu/switcher.json b/libhal-arm-mcu/switcher.json index 61bcc45..f6b2718 100644 --- a/libhal-arm-mcu/switcher.json +++ b/libhal-arm-mcu/switcher.json @@ -30,5 +30,9 @@ { "version": "1.21.4", "url": "https://libhal.github.io/api/libhal-arm-mcu/1.21.4" + }, + { + "version": "1.22.0", + "url": "https://libhal.github.io/api/libhal-arm-mcu/1.22.0" } ] \ No newline at end of file