2023-11-17 13:42:11 +01:00
<!DOCTYPE html>
< html xmlns = "http://www.w3.org/1999/xhtml" lang = "da" xml:lang = "da" > < head >
< meta charset = "utf-8" >
2024-08-04 20:57:42 +02:00
< meta name = "generator" content = "quarto-1.4.554" >
2023-11-17 13:42:11 +01:00
< meta name = "viewport" content = "width=device-width, initial-scale=1.0, user-scalable=yes" >
< title > Ebbas side< / title >
< style >
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
ul.task-list{list-style: none;}
ul.task-list li input[type="checkbox"] {
width: 0.8em;
margin: 0 0.8em 0.2em -1em; vertical-align: middle;
}
< / style >
< script > c o n s t h e a d r o o m C h a n g e d = n e w C u s t o m E v e n t ( " q u a r t o - h r C h a n g e d " , {
detail: {},
bubbles: true,
cancelable: false,
composed: false,
});
window.document.addEventListener("DOMContentLoaded", function () {
let init = false;
// Manage the back to top button, if one is present.
let lastScrollTop = window.pageYOffset || document.documentElement.scrollTop;
const scrollDownBuffer = 5;
const scrollUpBuffer = 35;
const btn = document.getElementById("quarto-back-to-top");
const hideBackToTop = () => {
btn.style.display = "none";
};
const showBackToTop = () => {
btn.style.display = "inline-block";
};
if (btn) {
window.document.addEventListener(
"scroll",
function () {
const currentScrollTop =
window.pageYOffset || document.documentElement.scrollTop;
// Shows and hides the button 'intelligently' as the user scrolls
if (currentScrollTop - scrollDownBuffer > lastScrollTop) {
hideBackToTop();
lastScrollTop = currentScrollTop < = 0 ? 0 : currentScrollTop;
} else if (currentScrollTop < lastScrollTop - scrollUpBuffer ) {
showBackToTop();
lastScrollTop = currentScrollTop < = 0 ? 0 : currentScrollTop;
}
// Show the button at the bottom, hides it at the top
if (currentScrollTop < = 0) {
hideBackToTop();
} else if (
window.innerHeight + currentScrollTop >=
document.body.offsetHeight
) {
showBackToTop();
}
},
false
);
}
function throttle(func, wait) {
var timeout;
return function () {
const context = this;
const args = arguments;
const later = function () {
clearTimeout(timeout);
timeout = null;
func.apply(context, args);
};
if (!timeout) {
timeout = setTimeout(later, wait);
}
};
}
function headerOffset() {
// Set an offset if there is are fixed top navbar
const headerEl = window.document.querySelector("header.fixed-top");
if (headerEl) {
return headerEl.clientHeight;
} else {
return 0;
}
}
function footerOffset() {
const footerEl = window.document.querySelector("footer.footer");
if (footerEl) {
return footerEl.clientHeight;
} else {
return 0;
}
}
2024-08-04 20:57:42 +02:00
function dashboardOffset() {
const dashboardNavEl = window.document.getElementById(
"quarto-dashboard-header"
);
if (dashboardNavEl !== null) {
return dashboardNavEl.clientHeight;
} else {
return 0;
}
}
2023-11-17 13:42:11 +01:00
function updateDocumentOffsetWithoutAnimation() {
updateDocumentOffset(false);
}
function updateDocumentOffset(animated) {
// set body offset
const topOffset = headerOffset();
2024-08-04 20:57:42 +02:00
const bodyOffset = topOffset + footerOffset() + dashboardOffset();
2023-11-17 13:42:11 +01:00
const bodyEl = window.document.body;
bodyEl.setAttribute("data-bs-offset", topOffset);
bodyEl.style.paddingTop = topOffset + "px";
// deal with sidebar offsets
const sidebars = window.document.querySelectorAll(
".sidebar, .headroom-target"
);
sidebars.forEach((sidebar) => {
if (!animated) {
sidebar.classList.add("notransition");
// Remove the no transition class after the animation has time to complete
setTimeout(function () {
sidebar.classList.remove("notransition");
}, 201);
}
if (window.Headroom & & sidebar.classList.contains("sidebar-unpinned")) {
sidebar.style.top = "0";
sidebar.style.maxHeight = "100vh";
} else {
sidebar.style.top = topOffset + "px";
sidebar.style.maxHeight = "calc(100vh - " + topOffset + "px)";
}
});
// allow space for footer
const mainContainer = window.document.querySelector(".quarto-container");
if (mainContainer) {
mainContainer.style.minHeight = "calc(100vh - " + bodyOffset + "px)";
}
// link offset
let linkStyle = window.document.querySelector("#quarto-target-style");
if (!linkStyle) {
linkStyle = window.document.createElement("style");
linkStyle.setAttribute("id", "quarto-target-style");
window.document.head.appendChild(linkStyle);
}
while (linkStyle.firstChild) {
linkStyle.removeChild(linkStyle.firstChild);
}
if (topOffset > 0) {
linkStyle.appendChild(
window.document.createTextNode(`
section:target::before {
content: "";
display: block;
height: ${topOffset}px;
margin: -${topOffset}px 0 0;
}`)
);
}
if (init) {
window.dispatchEvent(headroomChanged);
}
init = true;
}
// initialize headroom
var header = window.document.querySelector("#quarto-header");
if (header & & window.Headroom) {
const headroom = new window.Headroom(header, {
tolerance: 5,
onPin: function () {
const sidebars = window.document.querySelectorAll(
".sidebar, .headroom-target"
);
sidebars.forEach((sidebar) => {
sidebar.classList.remove("sidebar-unpinned");
});
updateDocumentOffset();
},
onUnpin: function () {
const sidebars = window.document.querySelectorAll(
".sidebar, .headroom-target"
);
sidebars.forEach((sidebar) => {
sidebar.classList.add("sidebar-unpinned");
});
updateDocumentOffset();
},
});
headroom.init();
let frozen = false;
window.quartoToggleHeadroom = function () {
if (frozen) {
headroom.unfreeze();
frozen = false;
} else {
headroom.freeze();
frozen = true;
}
};
}
window.addEventListener(
"hashchange",
function (e) {
if (
getComputedStyle(document.documentElement).scrollBehavior !== "smooth"
) {
window.scrollTo(0, window.pageYOffset - headerOffset());
}
},
false
);
// Observe size changed for the header
const headerEl = window.document.querySelector("header.fixed-top");
if (headerEl & & window.ResizeObserver) {
2024-08-04 20:57:42 +02:00
const observer = new window.ResizeObserver(() => {
setTimeout(updateDocumentOffsetWithoutAnimation, 0);
});
2023-11-17 13:42:11 +01:00
observer.observe(headerEl, {
attributes: true,
childList: true,
characterData: true,
});
} else {
window.addEventListener(
"resize",
throttle(updateDocumentOffsetWithoutAnimation, 50)
);
}
setTimeout(updateDocumentOffsetWithoutAnimation, 250);
// fixup index.html links if we aren't on the filesystem
if (window.location.protocol !== "file:") {
const links = window.document.querySelectorAll("a");
for (let i = 0; i < links.length ; i + + ) {
if (links[i].href) {
2024-08-04 20:57:42 +02:00
links[i].dataset.originalHref = links[i].href;
2023-11-17 13:42:11 +01:00
links[i].href = links[i].href.replace(/\/index\.html/, "/");
}
}
// Fixup any sharing links that require urls
// Append url to any sharing urls
const sharingLinks = window.document.querySelectorAll(
2024-08-04 20:57:42 +02:00
"a.sidebar-tools-main-item, a.quarto-navigation-tool, a.quarto-navbar-tools, a.quarto-navbar-tools-item"
2023-11-17 13:42:11 +01:00
);
for (let i = 0; i < sharingLinks.length ; i + + ) {
const sharingLink = sharingLinks[i];
const href = sharingLink.getAttribute("href");
if (href) {
sharingLink.setAttribute(
"href",
href.replace("|url|", window.location.href)
);
}
}
// Scroll the active navigation item into view, if necessary
const navSidebar = window.document.querySelector("nav#quarto-sidebar");
if (navSidebar) {
// Find the active item
const activeItem = navSidebar.querySelector("li.sidebar-item a.active");
if (activeItem) {
// Wait for the scroll height and height to resolve by observing size changes on the
// nav element that is scrollable
const resizeObserver = new ResizeObserver((_entries) => {
// The bottom of the element
const elBottom = activeItem.offsetTop;
const viewBottom = navSidebar.scrollTop + navSidebar.clientHeight;
// The element height and scroll height are the same, then we are still loading
if (viewBottom !== navSidebar.scrollHeight) {
// Determine if the item isn't visible and scroll to it
if (elBottom >= viewBottom) {
navSidebar.scrollTop = elBottom;
}
// stop observing now since we've completed the scroll
resizeObserver.unobserve(navSidebar);
}
});
resizeObserver.observe(navSidebar);
}
}
}
});
< / script >
< script > / * !
* headroom.js v0.12.0 - Give your page some headroom. Hide your header until you need it
* Copyright (c) 2020 Nick Williams - http://wicky.nillia.ms/headroom.js
* License: MIT
*/
!function(t,n){"object"==typeof exports& & "undefined"!=typeof module?module.exports=n():"function"==typeof define& & define.amd?define(n):(t=t||self).Headroom=n()}(this,function(){"use strict";function t(){return"undefined"!=typeof window}function d(t){return function(t){return t& & t.document& & function(t){return 9===t.nodeType}(t.document)}(t)?function(t){var n=t.document,o=n.body,s=n.documentElement;return{scrollHeight:function(){return Math.max(o.scrollHeight,s.scrollHeight,o.offsetHeight,s.offsetHeight,o.clientHeight,s.clientHeight)},height:function(){return t.innerHeight||s.clientHeight||o.clientHeight},scrollY:function(){return void 0!==t.pageYOffset?t.pageYOffset:(s||o.parentNode||o).scrollTop}}}(t):function(t){return{scrollHeight:function(){return Math.max(t.scrollHeight,t.offsetHeight,t.clientHeight)},height:function(){return Math.max(t.offsetHeight,t.clientHeight)},scrollY:function(){return t.scrollTop}}}(t)}function n(t,s,e){var n,o=function(){var n=!1;try{var t={get passive(){n=!0}};window.addEventListener("test",t,t),window.removeEventListener("test",t,t)}catch(t){n=!1}return n}(),i=!1,r=d(t),l=r.scrollY(),a={};function c(){var t=Math.round(r.scrollY()),n=r.height(),o=r.scrollHeight();a.scrollY=t,a.lastScrollY=l,a.direction=l< t ? " down " : " up " , a . distance = Math.abs(t-l),a.isOutOfBounds=t<0||o<t+n,a.top=t<=s.offset[a.direction],a.bottom=o<=t+n,a.toleranceExceeded=a.distance > s.tolerance[a.direction],e(a),l=t,i=!1}function h(){i||(i=!0,n=requestAnimationFrame(c))}var u=!!o&&{passive:!0,capture:!1}; return t.addEventListener("scroll",h,u),c(),{destroy:function(){cancelAnimationFrame(n),t.removeEventListener("scroll",h,u)}}}function o(t){return t===Object(t)?t:{down:t,up:t}}function s(t,n){n=n||{},Object.assign(this,s.options,n),this.classes=Object.assign({},s.options.classes,n.classes),this.elem=t,this.tolerance=o(this.tolerance),this.offset=o(this.offset),this.initialised=!1,this.frozen=!1}return s.prototype={constructor:s,init:function(){return s.cutsTheMustard& & !this.initialised& & (this.addClass("initial"),this.initialised=!0,setTimeout(function(t){t.scrollTracker=n(t.scroller,{offset:t.offset,tolerance:t.tolerance},t.update.bind(t))},100,this)),this},destroy:function(){this.initialised=!1,Object.keys(this.classes).forEach(this.removeClass,this),this.scrollTracker.destroy()},unpin:function(){!this.hasClass("pinned")& & this.hasClass("unpinned")||(this.addClass("unpinned"),this.removeClass("pinned"),this.onUnpin& & this.onUnpin.call(this))},pin:function(){this.hasClass("unpinned")& & (this.addClass("pinned"),this.removeClass("unpinned"),this.onPin& & this.onPin.call(this))},freeze:function(){this.frozen=!0,this.addClass("frozen")},unfreeze:function(){this.frozen=!1,this.removeClass("frozen")},top:function(){this.hasClass("top")||(this.addClass("top"),this.removeClass("notTop"),this.onTop& & this.onTop.call(this))},notTop:function(){this.hasClass("notTop")||(this.addClass("notTop"),this.removeClass("top"),this.onNotTop& & this.onNotTop.call(this))},bottom:function(){this.hasClass("bottom")||(this.addClass("bottom"),this.removeClass("notBottom"),this.onBottom& & this.onBottom.call(this))},notBottom:function(){this.hasClass("notBottom")||(this.addClass("notBottom"),this.removeClass("bottom"),this.onNotBottom& & this.onNotBottom.call(this))},shouldUnpin:function(t){return"down"===t.direction& & !t.top& & t.toleranceExceeded},shouldPin:function(t){return"up"===t.direction& & t.toleranceExceeded||t.top},addClass:function(t){this.elem.classList.add.apply(this.elem.classList,this.classes[t].split(" "))},removeClass:function(t){this.elem.classList.remove.apply(this.elem.classList,this.classes[t].split(" "))},hasClass:function(t){return this.classes[t].split(" ").every(function(t){return this.classList.contains(t)},this.elem)},update:function(t){t.isOutOfBounds||!0!==this.frozen& & (t.top?this.top():this.notTop(),t.bottom?this.bottom():this.notBottom(),this.shouldUnpin(t)?this.unpin():this.shouldPin(t)& & this.pin())}},s.options={tolerance:{up:0,down:0},offset:0,scroller:t()?window:null,classes:{frozen:"headroom--frozen",pinned:"headroom--pinned",unpinned:"
< / script >
< script > / * !
* clipboard.js v2.0.11
* https://clipboardjs.com/
*
* Licensed MIT © Zeno Rocha
*/
!function(t,e){"object"==typeof exports& & "object"==typeof module?module.exports=e():"function"==typeof define& & define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return n={686:function(t,e,n){"use strict";n.d(e,{default:function(){return b}});var e=n(279),i=n.n(e),e=n(370),u=n.n(e),e=n(817),r=n.n(e);function c(t){try{return document.execCommand(t)}catch(t){return}}var a=function(t){t=r()(t);return c("cut"),t};function o(t,e){var n,o,t=(n=t,o="rtl"===document.documentElement.getAttribute("dir"),(t=document.createElement("textarea")).style.fontSize="12pt",t.style.border="0",t.style.padding="0",t.style.margin="0",t.style.position="absolute",t.style[o?"right":"left"]="-9999px",o=window.pageYOffset||document.documentElement.scrollTop,t.style.top="".concat(o,"px"),t.setAttribute("readonly",""),t.value=n,t);return e.container.appendChild(t),e=r()(t),c("copy"),t.remove(),e}var f=function(t){var e=1< arguments.length & & void 0 ! = = arguments [ 1 ] ? arguments [ 1 ] : { container:document . body } , n = "" ; return " string " = = typeof t ? n = o(t,e):t instanceof HTMLInputElement & & ! [ " text " , " search " , " url " , " tel " , " password " ] . includes ( null = =t?void 0:t . type ) ? n = o(t.value,e):(n=r()(t),c("copy")),n};function l ( t ) { return ( l = "function" = = typeof Symbol & & " symbol " = = typeof Symbol . iterator ? function ( t ) { return typeof t } :function ( t ) { return t & & " function " = = typeof Symbol & & t . constructor = ==Symbol&&t!==Symbol.prototype?"symbol":typeof t } ) ( t ) } var s = function(){var t = 0<arguments.length&&void 0 ! = = arguments [ 0 ] ? arguments [ 0 ] : { } , e = t.action,n=void 0 = ==e?"copy":e,o=t.container,e=t.target,t=t.text;if("copy"!==n&&"cut"!==n)throw new Error ( ' Invalid " action " value , use either " copy " or " cut " ' ) ; if ( void 0 ! = = e ) { if ( ! e | | " object " ! = = l ( e ) | | 1 ! = = e . nodeType ) throw new Error ( ' Invalid " target " value , use a valid Element ' ) ; if ( " copy " = = = n & & e . hasAttribute ( " disabled " ) ) throw new Error ( ' Invalid " target " attribute . Please use " readonly " instead of " disabled " attribute ' ) ; if ( " cut " = = = n & & ( e . hasAttribute ( " readonly " ) | | e . hasAttribute ( " disabled " ) ) ) throw new Error ( ' Invalid " target " attribute . You can \ ' t cut text from elements with " readonly " or " disabled " attributes ' ) } return t ? f ( t , { container:o } ) :e ? " cut " = = = n ? a ( e ) :f ( e , { container:o } ) :void 0 } ; function p ( t ) { return ( p = "function" = = typeof Symbol & & " symbol " = = typeof Symbol . iterator ? function ( t ) { return typeof t } :function ( t ) { return t & & " function " = = typeof Symbol & & t . constructor = ==Symbol&&t!==Symbol.prototype?"symbol":typeof t } ) ( t ) } function d ( t , e ) { for ( var n = 0;n<e.length;n++){var o = e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o & & ( o . writable = !0),Object.defineProperty(t,o.key,o)}}function y ( t , e ) { return ( y = Object.setPrototypeOf||function(t,e){return t . __proto__ = e,t})(t,e)}function h ( n ) { var o = function(){if("undefined"==typeof Reflect | | ! Reflect . construct ) return ! 1 ; if ( Reflect . construct . sham ) return ! 1 ; if ( " function " = = typeof Proxy ) return ! 0 ; try { return Date . prototype . toString . call ( Reflect . construct ( Date , [ ] , function ( ) { } ) ) , ! 0 } catch ( t ) { return ! 1 } } ( ) ; return function ( ) { var t , e = v(n);return t = o?(t=v(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments),e=this,!(t=t)||"object"!==p(t)&&"function"!=typeof t ? function ( t ) { if ( void 0 ! = = t ) return t ; throw new ReferenceError ( " this hasn ' t been initialised - super ( ) hasn ' t been called " ) } ( e ) :t } } function v ( t ) { return ( v = Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t . __proto__ | | Object . getPrototypeOf ( t ) } ) ( t ) } function m ( t , e ) { t = "data-clipboard-" . concat ( t ) ; if ( e . hasAttribute ( t ) ) return e . getAttribute ( t ) } var b = function(){!function(t,e){if("function"!=typeof e & & null ! = = e ) throw new TypeError ( " Super expression must either be null or a function " ) ; t . prototype = Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&y(t,e)}(r,i());var t , e , n , o = h(r);function r ( t , e ) { var n ; return function ( t ) { if ( ! ( t instanceof r ) ) throw new TypeError ( " Cannot call a class as a function " ) } ( this ) , ( n = o.call(this)).resolveOptions(e),n.listenClick(t),n}return t = r,n=[{key:"copy",value:function(t){var e = 1<arguments.length&&void 0 ! = = arguments [ 1 ] ? arguments [ 1 ] : { container:document . body } ; return f ( t , e ) }
2024-08-04 20:57:42 +02:00
< script > / * ! @ a l g o l i a / a u t o c o m p l e t e - j s 1 . 1 1 . 1 | M I T L i c e n s e | © A l g o l i a , I n c . a n d c o n t r i b u t o r s | h t t p s : / / g i t h u b . c o m / a l g o l i a / a u t o c o m p l e t e * /
!function(e,t){"object"==typeof exports& & "undefined"!=typeof module?t(exports):"function"==typeof define& & define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["@algolia/autocomplete-js"]={})}(this,(function(e){"use strict";function t(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t& & (r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function n(e){for(var n=1;n< arguments.length ; n + + ) { var r = null!=arguments[n]?arguments[n]:{};n%2?t(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):t(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e } function r ( e ) { return r = "function" = = typeof Symbol & & " symbol " = = typeof Symbol . iterator ? function ( e ) { return typeof e } :function ( e ) { return e & & " function " = = typeof Symbol & & e . constructor = ==Symbol&&e!==Symbol.prototype?"symbol":typeof e } , r ( e ) } function o ( e , t , n ) { return ( t = function(e){var t = function(e,t){if("object"!=typeof e | | null = ==e)return e ; var n = e[Symbol.toPrimitive];if(void 0 ! = = n ) { var r = n.call(e,t||"default");if("object"!=typeof r ) return r ; throw new TypeError ( " @ @ toPrimitive must return a primitive value . " ) } return ( " string " = = = t ? String:Number ) ( e ) } ( e , " string " ) ; return " symbol " = = typeof t ? t:String ( t ) } ( t ) ) in e ? Object . defineProperty ( e , t , { value:n , enumerable: ! 0 , configurable: ! 0 , writable: ! 0 } ) :e [ t ] = n , e } function i ( ) { return i = Object.assign?Object.assign.bind():function(e){for(var t = 1;t<arguments.length;t++){var n = arguments[t];for(var r in n ) Object . prototype . hasOwnProperty . call ( n , r ) & & ( e [ r ] = n [ r ] ) } return e } , i . apply ( this , arguments ) } function u ( e , t ) { if ( null = =e)return{};var n , r , o = function(e,t){if(null==e)return{};var n , r , o = {},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n) > =0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r< i.length ; r + + ) n = i[r],t.indexOf(n) > =0||Object.prototype.propertyIsEnumerable.call(e,n)& & (o[n]=e[n])}return o}function a(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"]; if(null!=n){var r,o,i,u,a=[],l=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(a.push(r.value),a.length!==t); l=!0);}catch(e){c=!0,o=e}finally{try{if(!l& & null!=n.return& & (u=n.return(),Object(u)!==u))return}finally{if(c)throw o}}return a}}(e,t)||c(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e){return function(e){if(Array.isArray(e))return s(e)}(e)||function(e){if("undefined"!=typeof Symbol& & null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||c(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(e,t){if(e){if("string"==typeof e)return s(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n& & e.constructor& & (n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?s(e,t):void 0}}function s(e,t){(null==t||t>e.length)&&(t=e.length); for(var n=0,r=new Array(t);n< t ; n + + ) r [ n ] = e [ n ] ; return r } function f ( e ) { return { current:e } } function p ( e , t ) { var n = void 0 ; return function ( ) { for ( var r = arguments.length,o=new Array ( r ) , i = 0;i<r;i++)o[i]=arguments[i];n&&clearTimeout(n),n=setTimeout((function(){return e . apply ( void 0 , o ) } ) , t ) } } function m ( e ) { return e . reduce ( ( function ( e , t ) { return e . concat ( t ) } ) , [ ] ) } var v = 0;function d ( ) { return " autocomplete- " . concat ( v + + ) } function y ( e , t ) { return t . reduce ( ( function ( e , t ) { return e & & e [ t ] } ) , e ) } function b ( e ) { return 0 = ==e.collections.length?0:e.collections.reduce((function(e,t){return e + t . items . length } ) , 0 ) } function g ( e ) { return e ! = = Object ( e ) } f
2023-11-17 13:42:11 +01:00
< / script >
< script > / * *
* Fuse.js v6.6.2 - Lightweight fuzzy-search (http://fusejs.io)
*
* Copyright (c) 2022 Kiro Risk (http://kiro.me)
* All Rights Reserved. Apache Software License 2.0
*
* http://www.apache.org/licenses/LICENSE-2.0
*/
var e,t;e=this,t=function(){"use strict";function e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t& & (r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function t(t){for(var n=1;n< arguments.length ; n + + ) { var r = null!=arguments[n]?arguments[n]:{};n%2?e(Object(r),!0).forEach((function(e){c(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):e(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t } function n ( e ) { return n = "function" = = typeof Symbol & & " symbol " = = typeof Symbol . iterator ? function ( e ) { return typeof e } :function ( e ) { return e & & " function " = = typeof Symbol & & e . constructor = ==Symbol&&e!==Symbol.prototype?"symbol":typeof e } , n ( e ) } function r ( e , t ) { if ( ! ( e instanceof t ) ) throw new TypeError ( " Cannot call a class as a function " ) } function i ( e , t ) { for ( var n = 0;n<t.length;n++){var r = t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r & & ( r . writable = !0),Object.defineProperty(e,r.key,r)}}function o ( e , t , n ) { return t & & i ( e . prototype , t ) , n & & i ( e , n ) , Object . defineProperty ( e , " prototype " , { writable: ! 1 } ) , e } function c ( e , t , n ) { return t in e ? Object . defineProperty ( e , t , { value:n , enumerable: ! 0 , configurable: ! 0 , writable: ! 0 } ) :e [ t ] = n , e } function a ( e , t ) { if ( " function " ! = typeof t & & null ! = = t ) throw new TypeError ( " Super expression must either be null or a function " ) ; Object . defineProperty ( e , " prototype " , { value:Object . create ( t & & t . prototype , { constructor: { value:e , writable: ! 0 , configurable: ! 0 } } ) , writable: ! 1 } ) , t & & u ( e , t ) } function s ( e ) { return s = Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e . __proto__ | | Object . getPrototypeOf ( e ) } , s ( e ) } function u ( e , t ) { return u = Object.setPrototypeOf||function(e,t){return e . __proto__ = t,e},u(e,t)}function h ( e , t ) { if ( t & & ( " object " = = typeof t | | " function " = = typeof t ) ) return t ; if ( void 0 ! = = t ) throw new TypeError ( " Derived constructors may only return object or undefined " ) ; return function ( e ) { if ( void 0 = ==e)throw new ReferenceError ( " this hasn ' t been initialised - super ( ) hasn ' t been called " ) ; return e } ( e ) } function l ( e ) { var t = function(){if("undefined"==typeof Reflect | | ! Reflect . construct ) return ! 1 ; if ( Reflect . construct . sham ) return ! 1 ; if ( " function " = = typeof Proxy ) return ! 0 ; try { return Boolean . prototype . valueOf . call ( Reflect . construct ( Boolean , [ ] , ( function ( ) { } ) ) ) , ! 0 } catch ( e ) { return ! 1 } } ( ) ; return function ( ) { var n , r = s(e);if(t){var i = s(this).constructor;n=Reflect.construct(r,arguments,i)}else n = r.apply(this,arguments);return h ( this , n ) } } function f ( e ) { return function ( e ) { if ( Array . isArray ( e ) ) return d ( e ) } ( e ) | | function ( e ) { if ( " undefined " ! = typeof Symbol & & null ! = e [ Symbol . iterator ] | | null ! = e [ " @ @ iterator " ] ) return Array . from ( e ) } ( e ) | | function ( e , t ) { if ( e ) { if ( " string " = = typeof e ) return d ( e , t ) ; var n = Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?d(e,t):void 0 } } ( e ) | | function ( ) { throw new TypeError ( " Invalid attempt to spread non-iterable instance . \ nIn order to be iterable , non-array objects must have a [ Symbol . iterator ] ( ) method . " ) } ( ) } function d ( e , t ) { ( null = =t||t > e.length)&&(t=e.length); for(var n=0,r=new Array(t);n< t ; n + + ) r [ n ] = e [ n ] ; return r } function v ( e ) { return Array . isArray ? Array . isArray ( e ) : " [ object Array ] " = = = b ( e ) } function g ( e ) { return " string " = = typeof e } function y ( e ) { return " number " = = typeof e } function p ( e ) { return ! 0 = ==e||!1===e||function(e){return m ( e ) & & null ! = = e } ( e ) & & " [ object Boolean ] " = = b ( e ) } function m ( e ) { return " object " = = = n ( e ) } function k ( e ) { return null ! = e } function M ( e ) { return ! e . trim ( ) . length } function b ( e ) { return null = =e?void 0 = ==e?"[object Undefined ] " : " [ object Null ] " :Object . prototype . toString . call ( e ) } var x = function(e){return"Invalid value for key " . concat ( e ) } , w = function(e){return"Pattern length exceeds max of " . concat ( e , " . " ) } , L = Object.prototype.hasOwnProperty,S=function(){function e ( t ) { var n = this;r(this,e),this._keys=[],this._keyMap={};var i = 0;t.forEach((function(e){var t = _(e);i+=t.weight,n._keys.push(t),n._keyMap[t.i
< script > c o n s t k Q u e r y A r g = " q " ;
const kResultsArg = "show-results";
// If items don't provide a URL, then both the navigator and the onSelect
// function aren't called (and therefore, the default implementation is used)
//
// We're using this sentinel URL to signal to those handlers that this
// item is a more item (along with the type) and can be handled appropriately
const kItemTypeMoreHref = "0767FDFD-0422-4E5A-BC8A-3BE11E5BBA05";
window.document.addEventListener("DOMContentLoaded", function (_event) {
// Ensure that search is available on this page. If it isn't,
// should return early and not do anything
var searchEl = window.document.getElementById("quarto-search");
if (!searchEl) return;
const { autocomplete } = window["@algolia/autocomplete-js"];
let quartoSearchOptions = {};
let language = {};
const searchOptionEl = window.document.getElementById(
"quarto-search-options"
);
if (searchOptionEl) {
const jsonStr = searchOptionEl.textContent;
quartoSearchOptions = JSON.parse(jsonStr);
language = quartoSearchOptions.language;
}
// note the search mode
if (quartoSearchOptions.type === "overlay") {
searchEl.classList.add("type-overlay");
} else {
searchEl.classList.add("type-textbox");
}
// Used to determine highlighting behavior for this page
// A `q` query param is expected when the user follows a search
// to this page
const currentUrl = new URL(window.location);
const query = currentUrl.searchParams.get(kQueryArg);
const showSearchResults = currentUrl.searchParams.get(kResultsArg);
const mainEl = window.document.querySelector("main");
// highlight matches on the page
2024-08-04 20:57:42 +02:00
if (query & & mainEl) {
2023-11-17 13:42:11 +01:00
// perform any highlighting
highlight(escapeRegExp(query), mainEl);
// fix up the URL to remove the q query param
const replacementUrl = new URL(window.location);
replacementUrl.searchParams.delete(kQueryArg);
window.history.replaceState({}, "", replacementUrl);
}
// function to clear highlighting on the page when the search query changes
// (e.g. if the user edits the query or clears it)
let highlighting = true;
const resetHighlighting = (searchTerm) => {
2024-08-04 20:57:42 +02:00
if (mainEl & & highlighting & & query & & searchTerm !== query) {
2023-11-17 13:42:11 +01:00
clearHighlight(query, mainEl);
highlighting = false;
}
};
// Clear search highlighting when the user scrolls sufficiently
const resetFn = () => {
resetHighlighting("");
window.removeEventListener("quarto-hrChanged", resetFn);
window.removeEventListener("quarto-sectionChanged", resetFn);
};
// Register this event after the initial scrolling and settling of events
// on the page
window.addEventListener("quarto-hrChanged", resetFn);
window.addEventListener("quarto-sectionChanged", resetFn);
// Responsively switch to overlay mode if the search is present on the navbar
// Note that switching the sidebar to overlay mode requires more coordinate (not just
// the media query since we generate different HTML for sidebar overlays than we do
// for sidebar input UI)
const detachedMediaQuery =
quartoSearchOptions.type === "overlay" ? "all" : "(max-width: 991px)";
// If configured, include the analytics client to send insights
const plugins = configurePlugins(quartoSearchOptions);
let lastState = null;
const { setIsOpen, setQuery, setCollections } = autocomplete({
container: searchEl,
detachedMediaQuery: detachedMediaQuery,
defaultActiveItemId: 0,
panelContainer: "#quarto-search-results",
panelPlacement: quartoSearchOptions["panel-placement"],
debug: false,
openOnFocus: true,
plugins,
classNames: {
form: "d-flex",
},
2024-08-04 20:57:42 +02:00
placeholder: language["search-text-placeholder"],
2023-11-17 13:42:11 +01:00
translations: {
clearButtonTitle: language["search-clear-button-title"],
detachedCancelButtonText: language["search-detached-cancel-button-title"],
submitButtonTitle: language["search-submit-button-title"],
},
initialState: {
query,
},
getItemUrl({ item }) {
return item.href;
},
onStateChange({ state }) {
2024-08-04 20:57:42 +02:00
// If this is a file URL, note that
2023-11-17 13:42:11 +01:00
// Perhaps reset highlighting
resetHighlighting(state.query);
// If the panel just opened, ensure the panel is positioned properly
if (state.isOpen) {
if (lastState & & !lastState.isOpen) {
setTimeout(() => {
positionPanel(quartoSearchOptions["panel-placement"]);
}, 150);
}
}
// Perhaps show the copy link
showCopyLink(state.query, quartoSearchOptions);
lastState = state;
},
reshape({ sources, state }) {
return sources.map((source) => {
try {
const items = source.getItems();
// Validate the items
validateItems(items);
// group the items by document
const groupedItems = new Map();
items.forEach((item) => {
const hrefParts = item.href.split("#");
const baseHref = hrefParts[0];
const isDocumentItem = hrefParts.length === 1;
const items = groupedItems.get(baseHref);
if (!items) {
groupedItems.set(baseHref, [item]);
} else {
// If the href for this item matches the document
// exactly, place this item first as it is the item that represents
// the document itself
if (isDocumentItem) {
items.unshift(item);
} else {
items.push(item);
}
groupedItems.set(baseHref, items);
}
});
const reshapedItems = [];
let count = 1;
for (const [_key, value] of groupedItems) {
const firstItem = value[0];
reshapedItems.push({
...firstItem,
type: kItemTypeDoc,
});
const collapseMatches = quartoSearchOptions["collapse-after"];
const collapseCount =
typeof collapseMatches === "number" ? collapseMatches : 1;
if (value.length > 1) {
const target = `search-more-${count}`;
const isExpanded =
state.context.expanded & &
state.context.expanded.includes(target);
const remainingCount = value.length - collapseCount;
for (let i = 1; i < value.length ; i + + ) {
if (collapseMatches & & i === collapseCount) {
reshapedItems.push({
target,
title: isExpanded
? language["search-hide-matches-text"]
: remainingCount === 1
? `${remainingCount} ${language["search-more-match-text"]}`
: `${remainingCount} ${language["search-more-matches-text"]}`,
type: kItemTypeMore,
href: kItemTypeMoreHref,
});
}
if (isExpanded || !collapseMatches || i < collapseCount ) {
reshapedItems.push({
...value[i],
type: kItemTypeItem,
target,
});
}
}
}
count += 1;
}
return {
...source,
getItems() {
return reshapedItems;
},
};
} catch (error) {
// Some form of error occurred
return {
...source,
getItems() {
return [
{
title: error.name || "An Error Occurred While Searching",
text:
error.message ||
"An unknown error occurred while attempting to perform the requested search.",
type: kItemTypeError,
},
];
},
};
}
});
},
navigator: {
navigate({ itemUrl }) {
if (itemUrl !== offsetURL(kItemTypeMoreHref)) {
window.location.assign(itemUrl);
}
},
navigateNewTab({ itemUrl }) {
if (itemUrl !== offsetURL(kItemTypeMoreHref)) {
const windowReference = window.open(itemUrl, "_blank", "noopener");
if (windowReference) {
windowReference.focus();
}
}
},
navigateNewWindow({ itemUrl }) {
if (itemUrl !== offsetURL(kItemTypeMoreHref)) {
window.open(itemUrl, "_blank", "noopener");
}
},
},
getSources({ state, setContext, setActiveItemId, refresh }) {
return [
{
sourceId: "documents",
getItemUrl({ item }) {
if (item.href) {
return offsetURL(item.href);
} else {
return undefined;
}
},
onSelect({
item,
state,
setContext,
setIsOpen,
setActiveItemId,
refresh,
}) {
if (item.type === kItemTypeMore) {
toggleExpanded(item, state, setContext, setActiveItemId, refresh);
// Toggle more
setIsOpen(true);
}
},
getItems({ query }) {
if (query === null || query === "") {
return [];
}
const limit = quartoSearchOptions.limit;
if (quartoSearchOptions.algolia) {
return algoliaSearch(query, limit, quartoSearchOptions.algolia);
} else {
// Fuse search options
const fuseSearchOptions = {
isCaseSensitive: false,
shouldSort: true,
minMatchCharLength: 2,
limit: limit,
};
return readSearchData().then(function (fuse) {
return fuseSearch(query, fuse, fuseSearchOptions);
});
}
},
templates: {
noResults({ createElement }) {
const hasQuery = lastState.query;
return createElement(
"div",
{
class: `quarto-search-no-results${
hasQuery ? "" : " no-query"
}`,
},
language["search-no-results-text"]
);
},
header({ items, createElement }) {
// count the documents
const count = items.filter((item) => {
return item.type === kItemTypeDoc;
}).length;
if (count > 0) {
return createElement(
"div",
{ class: "search-result-header" },
`${count} ${language["search-matching-documents-text"]}`
);
} else {
return createElement(
"div",
{ class: "search-result-header-no-results" },
``
);
}
},
footer({ _items, createElement }) {
if (
quartoSearchOptions.algolia & &
quartoSearchOptions.algolia["show-logo"]
) {
const libDir = quartoSearchOptions.algolia["libDir"];
const logo = createElement("img", {
src: offsetURL(
`${libDir}/quarto-search/search-by-algolia.svg`
),
class: "algolia-search-logo",
});
return createElement(
"a",
{ href: "http://www.algolia.com/" },
logo
);
}
},
item({ item, createElement }) {
return renderItem(
item,
createElement,
state,
setActiveItemId,
setContext,
2024-08-04 20:57:42 +02:00
refresh,
quartoSearchOptions
2023-11-17 13:42:11 +01:00
);
},
},
},
];
},
});
window.quartoOpenSearch = () => {
setIsOpen(false);
setIsOpen(true);
focusSearchInput();
};
2024-08-04 20:57:42 +02:00
document.addEventListener("keyup", (event) => {
const { key } = event;
const kbds = quartoSearchOptions["keyboard-shortcut"];
const focusedEl = document.activeElement;
const isFormElFocused = [
"input",
"select",
"textarea",
"button",
"option",
].find((tag) => {
return focusedEl.tagName.toLowerCase() === tag;
});
if (
kbds & &
kbds.includes(key) & &
!isFormElFocused & &
!document.activeElement.isContentEditable
) {
event.preventDefault();
window.quartoOpenSearch();
}
});
2023-11-17 13:42:11 +01:00
// Remove the labeleledby attribute since it is pointing
// to a non-existent label
if (quartoSearchOptions.type === "overlay") {
const inputEl = window.document.querySelector(
"#quarto-search .aa-Autocomplete"
);
if (inputEl) {
inputEl.removeAttribute("aria-labelledby");
}
}
2024-08-04 20:57:42 +02:00
function throttle(func, wait) {
let waiting = false;
return function () {
if (!waiting) {
func.apply(this, arguments);
waiting = true;
setTimeout(function () {
waiting = false;
}, wait);
}
};
}
2023-11-17 13:42:11 +01:00
// If the main document scrolls dismiss the search results
// (otherwise, since they're floating in the document they can scroll with the document)
2024-08-04 20:57:42 +02:00
window.document.body.onscroll = throttle(() => {
// Only do this if we're not detached
// Bug #7117
// This will happen when the keyboard is shown on ios (resulting in a scroll)
// which then closed the search UI
if (!window.matchMedia(detachedMediaQuery).matches) {
setIsOpen(false);
}
}, 50);
2023-11-17 13:42:11 +01:00
if (showSearchResults) {
setIsOpen(true);
focusSearchInput();
}
});
function configurePlugins(quartoSearchOptions) {
const autocompletePlugins = [];
const algoliaOptions = quartoSearchOptions.algolia;
if (
algoliaOptions & &
algoliaOptions["analytics-events"] & &
algoliaOptions["search-only-api-key"] & &
algoliaOptions["application-id"]
) {
const apiKey = algoliaOptions["search-only-api-key"];
const appId = algoliaOptions["application-id"];
// Aloglia insights may not be loaded because they require cookie consent
// Use deferred loading so events will start being recorded when/if consent
// is granted.
const algoliaInsightsDeferredPlugin = deferredLoadPlugin(() => {
if (
window.aa & &
window["@algolia/autocomplete-plugin-algolia-insights"]
) {
window.aa("init", {
appId,
apiKey,
useCookie: true,
});
const { createAlgoliaInsightsPlugin } =
window["@algolia/autocomplete-plugin-algolia-insights"];
// Register the insights client
const algoliaInsightsPlugin = createAlgoliaInsightsPlugin({
insightsClient: window.aa,
onItemsChange({ insights, insightsEvents }) {
2024-08-04 20:57:42 +02:00
const events = insightsEvents.flatMap((event) => {
// This API limits the number of items per event to 20
const chunkSize = 20;
const itemChunks = [];
const eventItems = event.items;
for (let i = 0; i < eventItems.length ; i + = chunkSize ) {
itemChunks.push(eventItems.slice(i, i + chunkSize));
}
// Split the items into multiple events that can be sent
const events = itemChunks.map((items) => {
return {
...event,
items,
};
});
return events;
2023-11-17 13:42:11 +01:00
});
2024-08-04 20:57:42 +02:00
for (const event of events) {
insights.viewedObjectIDs(event);
}
2023-11-17 13:42:11 +01:00
},
});
return algoliaInsightsPlugin;
}
});
// Add the plugin
autocompletePlugins.push(algoliaInsightsDeferredPlugin);
return autocompletePlugins;
}
}
// For plugins that may not load immediately, create a wrapper
// plugin and forward events and plugin data once the plugin
// is initialized. This is useful for cases like cookie consent
// which may prevent the analytics insights event plugin from initializing
// immediately.
function deferredLoadPlugin(createPlugin) {
let plugin = undefined;
let subscribeObj = undefined;
const wrappedPlugin = () => {
if (!plugin & & subscribeObj) {
plugin = createPlugin();
if (plugin & & plugin.subscribe) {
plugin.subscribe(subscribeObj);
}
}
return plugin;
};
return {
subscribe: (obj) => {
subscribeObj = obj;
},
onStateChange: (obj) => {
const plugin = wrappedPlugin();
if (plugin & & plugin.onStateChange) {
plugin.onStateChange(obj);
}
},
onSubmit: (obj) => {
const plugin = wrappedPlugin();
if (plugin & & plugin.onSubmit) {
plugin.onSubmit(obj);
}
},
onReset: (obj) => {
const plugin = wrappedPlugin();
if (plugin & & plugin.onReset) {
plugin.onReset(obj);
}
},
getSources: (obj) => {
const plugin = wrappedPlugin();
if (plugin & & plugin.getSources) {
return plugin.getSources(obj);
} else {
return Promise.resolve([]);
}
},
data: (obj) => {
const plugin = wrappedPlugin();
if (plugin & & plugin.data) {
plugin.data(obj);
}
},
};
}
function validateItems(items) {
// Validate the first item
if (items.length > 0) {
const item = items[0];
const missingFields = [];
if (item.href == undefined) {
missingFields.push("href");
}
if (!item.title == undefined) {
missingFields.push("title");
}
if (!item.text == undefined) {
missingFields.push("text");
}
if (missingFields.length === 1) {
throw {
name: `Error: Search index is missing the < code > ${missingFields[0]}< / code > field.`,
message: `The items being returned for this search do not include all the required fields. Please ensure that your index items include the < code > ${missingFields[0]}< / code > field or use < code > index-fields< / code > in your < code > _quarto.yml< / code > file to specify the field names.`,
};
} else if (missingFields.length > 1) {
const missingFieldList = missingFields
.map((field) => {
return `< code > ${field}< / code > `;
})
.join(", ");
throw {
name: `Error: Search index is missing the following fields: ${missingFieldList}.`,
message: `The items being returned for this search do not include all the required fields. Please ensure that your index items includes the following fields: ${missingFieldList}, or use < code > index-fields< / code > in your < code > _quarto.yml< / code > file to specify the field names.`,
};
}
}
}
let lastQuery = null;
function showCopyLink(query, options) {
const language = options.language;
lastQuery = query;
// Insert share icon
const inputSuffixEl = window.document.body.querySelector(
".aa-Form .aa-InputWrapperSuffix"
);
if (inputSuffixEl) {
let copyButtonEl = window.document.body.querySelector(
".aa-Form .aa-InputWrapperSuffix .aa-CopyButton"
);
if (copyButtonEl === null) {
copyButtonEl = window.document.createElement("button");
copyButtonEl.setAttribute("class", "aa-CopyButton");
copyButtonEl.setAttribute("type", "button");
copyButtonEl.setAttribute("title", language["search-copy-link-title"]);
copyButtonEl.onmousedown = (e) => {
e.preventDefault();
e.stopPropagation();
};
const linkIcon = "bi-clipboard";
const checkIcon = "bi-check2";
const shareIconEl = window.document.createElement("i");
shareIconEl.setAttribute("class", `bi ${linkIcon}`);
copyButtonEl.appendChild(shareIconEl);
inputSuffixEl.prepend(copyButtonEl);
const clipboard = new window.ClipboardJS(".aa-CopyButton", {
text: function (_trigger) {
const copyUrl = new URL(window.location);
copyUrl.searchParams.set(kQueryArg, lastQuery);
copyUrl.searchParams.set(kResultsArg, "1");
return copyUrl.toString();
},
});
clipboard.on("success", function (e) {
// Focus the input
// button target
const button = e.trigger;
const icon = button.querySelector("i.bi");
// flash "checked"
icon.classList.add(checkIcon);
icon.classList.remove(linkIcon);
setTimeout(function () {
icon.classList.remove(checkIcon);
icon.classList.add(linkIcon);
}, 1000);
});
}
// If there is a query, show the link icon
if (copyButtonEl) {
if (lastQuery & & options["copy-button"]) {
copyButtonEl.style.display = "flex";
} else {
copyButtonEl.style.display = "none";
}
}
}
}
/* Search Index Handling */
// create the index
var fuseIndex = undefined;
2024-08-04 20:57:42 +02:00
var shownWarning = false;
// fuse index options
const kFuseIndexOptions = {
keys: [
{ name: "title", weight: 20 },
{ name: "section", weight: 20 },
{ name: "text", weight: 10 },
],
ignoreLocation: true,
threshold: 0.1,
};
2023-11-17 13:42:11 +01:00
async function readSearchData() {
// Initialize the search index on demand
if (fuseIndex === undefined) {
2024-08-04 20:57:42 +02:00
if (window.location.protocol === "file:" & & !shownWarning) {
window.alert(
"Search requires JavaScript features disabled when running in file://... URLs. In order to use search, please run this document in a web server."
);
shownWarning = true;
return;
}
const fuse = new window.Fuse([], kFuseIndexOptions);
2023-11-17 13:42:11 +01:00
// fetch the main search.json
const response = await fetch(offsetURL("search.json"));
if (response.status == 200) {
return response.json().then(function (searchDocs) {
searchDocs.forEach(function (searchDoc) {
fuse.add(searchDoc);
});
fuseIndex = fuse;
return fuseIndex;
});
} else {
return Promise.reject(
new Error(
"Unexpected status from search index request: " + response.status
)
);
}
}
2024-08-04 20:57:42 +02:00
2023-11-17 13:42:11 +01:00
return fuseIndex;
}
function inputElement() {
return window.document.body.querySelector(".aa-Form .aa-Input");
}
function focusSearchInput() {
setTimeout(() => {
const inputEl = inputElement();
if (inputEl) {
inputEl.focus();
}
}, 50);
}
/* Panels */
const kItemTypeDoc = "document";
const kItemTypeMore = "document-more";
const kItemTypeItem = "document-item";
const kItemTypeError = "error";
function renderItem(
item,
createElement,
state,
setActiveItemId,
setContext,
2024-08-04 20:57:42 +02:00
refresh,
quartoSearchOptions
2023-11-17 13:42:11 +01:00
) {
switch (item.type) {
case kItemTypeDoc:
return createDocumentCard(
createElement,
"file-richtext",
item.title,
item.section,
item.text,
2024-08-04 20:57:42 +02:00
item.href,
item.crumbs,
quartoSearchOptions
2023-11-17 13:42:11 +01:00
);
case kItemTypeMore:
return createMoreCard(
createElement,
item,
state,
setActiveItemId,
setContext,
refresh
);
case kItemTypeItem:
return createSectionCard(
createElement,
item.section,
item.text,
item.href
);
case kItemTypeError:
return createErrorCard(createElement, item.title, item.text);
default:
return undefined;
}
}
2024-08-04 20:57:42 +02:00
function createDocumentCard(
createElement,
icon,
title,
section,
text,
href,
crumbs,
quartoSearchOptions
) {
2023-11-17 13:42:11 +01:00
const iconEl = createElement("i", {
class: `bi bi-${icon} search-result-icon`,
});
const titleEl = createElement("p", { class: "search-result-title" }, title);
2024-08-04 20:57:42 +02:00
const titleContents = [iconEl, titleEl];
const showParent = quartoSearchOptions["show-item-context"];
if (crumbs & & showParent) {
let crumbsOut = undefined;
const crumbClz = ["search-result-crumbs"];
if (showParent === "root") {
crumbsOut = crumbs.length > 1 ? crumbs[0] : undefined;
} else if (showParent === "parent") {
crumbsOut = crumbs.length > 1 ? crumbs[crumbs.length - 2] : undefined;
} else {
crumbsOut = crumbs.length > 1 ? crumbs.join(" > ") : undefined;
crumbClz.push("search-result-crumbs-wrap");
}
const crumbEl = createElement(
"p",
{ class: crumbClz.join(" ") },
crumbsOut
);
titleContents.push(crumbEl);
}
2023-11-17 13:42:11 +01:00
const titleContainerEl = createElement(
"div",
{ class: "search-result-title-container" },
2024-08-04 20:57:42 +02:00
titleContents
2023-11-17 13:42:11 +01:00
);
const textEls = [];
if (section) {
const sectionEl = createElement(
"p",
{ class: "search-result-section" },
section
);
textEls.push(sectionEl);
}
const descEl = createElement("p", {
class: "search-result-text",
dangerouslySetInnerHTML: {
__html: text,
},
});
textEls.push(descEl);
const textContainerEl = createElement(
"div",
{ class: "search-result-text-container" },
textEls
);
const containerEl = createElement(
"div",
{
class: "search-result-container",
},
[titleContainerEl, textContainerEl]
);
const linkEl = createElement(
"a",
{
href: offsetURL(href),
class: "search-result-link",
},
containerEl
);
const classes = ["search-result-doc", "search-item"];
if (!section) {
classes.push("document-selectable");
}
return createElement(
"div",
{
class: classes.join(" "),
},
linkEl
);
}
function createMoreCard(
createElement,
item,
state,
setActiveItemId,
setContext,
refresh
) {
const moreCardEl = createElement(
"div",
{
class: "search-result-more search-item",
onClick: (e) => {
// Handle expanding the sections by adding the expanded
// section to the list of expanded sections
toggleExpanded(item, state, setContext, setActiveItemId, refresh);
e.stopPropagation();
},
},
item.title
);
return moreCardEl;
}
function toggleExpanded(item, state, setContext, setActiveItemId, refresh) {
const expanded = state.context.expanded || [];
if (expanded.includes(item.target)) {
setContext({
expanded: expanded.filter((target) => target !== item.target),
});
} else {
setContext({ expanded: [...expanded, item.target] });
}
refresh();
setActiveItemId(item.__autocomplete_id);
}
function createSectionCard(createElement, section, text, href) {
const sectionEl = createSection(createElement, section, text, href);
return createElement(
"div",
{
class: "search-result-doc-section search-item",
},
sectionEl
);
}
function createSection(createElement, title, text, href) {
const descEl = createElement("p", {
class: "search-result-text",
dangerouslySetInnerHTML: {
__html: text,
},
});
const titleEl = createElement("p", { class: "search-result-section" }, title);
const linkEl = createElement(
"a",
{
href: offsetURL(href),
class: "search-result-link",
},
[titleEl, descEl]
);
return linkEl;
}
function createErrorCard(createElement, title, text) {
const descEl = createElement("p", {
class: "search-error-text",
dangerouslySetInnerHTML: {
__html: text,
},
});
const titleEl = createElement("p", {
class: "search-error-title",
dangerouslySetInnerHTML: {
__html: `< i class = "bi bi-exclamation-circle search-error-icon" > < / i > ${title}`,
},
});
const errorEl = createElement("div", { class: "search-error" }, [
titleEl,
descEl,
]);
return errorEl;
}
function positionPanel(pos) {
const panelEl = window.document.querySelector(
"#quarto-search-results .aa-Panel"
);
const inputEl = window.document.querySelector(
"#quarto-search .aa-Autocomplete"
);
if (panelEl & & inputEl) {
panelEl.style.top = `${Math.round(panelEl.offsetTop)}px`;
if (pos === "start") {
panelEl.style.left = `${Math.round(inputEl.left)}px`;
} else {
panelEl.style.right = `${Math.round(inputEl.offsetRight)}px`;
}
}
}
/* Highlighting */
// highlighting functions
function highlightMatch(query, text) {
if (text) {
const start = text.toLowerCase().indexOf(query.toLowerCase());
if (start !== -1) {
const startMark = "< mark class = 'search-match' > ";
const endMark = "< / mark > ";
const end = start + query.length;
text =
text.slice(0, start) +
startMark +
text.slice(start, end) +
endMark +
text.slice(end);
const startInfo = clipStart(text, start);
const endInfo = clipEnd(
text,
startInfo.position + startMark.length + endMark.length
);
text =
startInfo.prefix +
text.slice(startInfo.position, endInfo.position) +
endInfo.suffix;
return text;
} else {
return text;
}
} else {
return text;
}
}
function clipStart(text, pos) {
const clipStart = pos - 50;
if (clipStart < 0 ) {
// This will just return the start of the string
return {
position: 0,
prefix: "",
};
} else {
// We're clipping before the start of the string, walk backwards to the first space.
const spacePos = findSpace(text, pos, -1);
return {
position: spacePos.position,
prefix: "",
};
}
}
function clipEnd(text, pos) {
const clipEnd = pos + 200;
if (clipEnd > text.length) {
return {
position: text.length,
suffix: "",
};
} else {
const spacePos = findSpace(text, clipEnd, 1);
return {
position: spacePos.position,
suffix: spacePos.clipped ? "…" : "",
};
}
}
function findSpace(text, start, step) {
let stepPos = start;
while (stepPos > -1 & & stepPos < text.length ) {
const char = text[stepPos];
if (char === " " || char === "," || char === ":") {
return {
position: step === 1 ? stepPos : stepPos - step,
clipped: stepPos > 1 & & stepPos < text.length ,
};
}
stepPos = stepPos + step;
}
return {
position: stepPos - step,
clipped: false,
};
}
// removes highlighting as implemented by the mark tag
function clearHighlight(searchterm, el) {
const childNodes = el.childNodes;
for (let i = childNodes.length - 1; i >= 0; i--) {
const node = childNodes[i];
if (node.nodeType === Node.ELEMENT_NODE) {
if (
node.tagName === "MARK" & &
node.innerText.toLowerCase() === searchterm.toLowerCase()
) {
el.replaceChild(document.createTextNode(node.innerText), node);
} else {
clearHighlight(searchterm, node);
}
}
}
}
function escapeRegExp(string) {
return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
}
// highlight matches
function highlight(term, el) {
const termRegex = new RegExp(term, "ig");
const childNodes = el.childNodes;
// walk back to front avoid mutating elements in front of us
for (let i = childNodes.length - 1; i >= 0; i--) {
const node = childNodes[i];
if (node.nodeType === Node.TEXT_NODE) {
// Search text nodes for text to highlight
const text = node.nodeValue;
let startIndex = 0;
let matchIndex = text.search(termRegex);
if (matchIndex > -1) {
const markFragment = document.createDocumentFragment();
while (matchIndex > -1) {
const prefix = text.slice(startIndex, matchIndex);
markFragment.appendChild(document.createTextNode(prefix));
const mark = document.createElement("mark");
mark.appendChild(
document.createTextNode(
text.slice(matchIndex, matchIndex + term.length)
)
);
markFragment.appendChild(mark);
startIndex = matchIndex + term.length;
matchIndex = text.slice(startIndex).search(new RegExp(term, "ig"));
if (matchIndex > -1) {
matchIndex = startIndex + matchIndex;
}
}
if (startIndex < text.length ) {
markFragment.appendChild(
document.createTextNode(text.slice(startIndex, text.length))
);
}
el.replaceChild(markFragment, node);
}
} else if (node.nodeType === Node.ELEMENT_NODE) {
// recurse through elements
highlight(term, node);
}
}
}
/* Link Handling */
// get the offset from this page for a given site root relative url
function offsetURL(url) {
var offset = getMeta("quarto:offset");
return offset ? offset + url : url;
}
// read a meta tag value
function getMeta(metaName) {
var metas = window.document.getElementsByTagName("meta");
for (let i = 0; i < metas.length ; i + + ) {
if (metas[i].getAttribute("name") === metaName) {
return metas[i].getAttribute("content");
}
}
return "";
}
function algoliaSearch(query, limit, algoliaOptions) {
const { getAlgoliaResults } = window["@algolia/autocomplete-preset-algolia"];
const applicationId = algoliaOptions["application-id"];
const searchOnlyApiKey = algoliaOptions["search-only-api-key"];
const indexName = algoliaOptions["index-name"];
const indexFields = algoliaOptions["index-fields"];
const searchClient = window.algoliasearch(applicationId, searchOnlyApiKey);
const searchParams = algoliaOptions["params"];
const searchAnalytics = !!algoliaOptions["analytics-events"];
return getAlgoliaResults({
searchClient,
queries: [
{
indexName: indexName,
query,
params: {
hitsPerPage: limit,
clickAnalytics: searchAnalytics,
...searchParams,
},
},
],
transformResponse: (response) => {
if (!indexFields) {
return response.hits.map((hit) => {
return hit.map((item) => {
return {
...item,
text: highlightMatch(query, item.text),
};
});
});
} else {
const remappedHits = response.hits.map((hit) => {
return hit.map((item) => {
const newItem = { ...item };
2024-08-04 20:57:42 +02:00
["href", "section", "title", "text", "crumbs"].forEach(
(keyName) => {
const mappedName = indexFields[keyName];
if (
mappedName & &
item[mappedName] !== undefined & &
mappedName !== keyName
) {
newItem[keyName] = item[mappedName];
delete newItem[mappedName];
}
2023-11-17 13:42:11 +01:00
}
2024-08-04 20:57:42 +02:00
);
2023-11-17 13:42:11 +01:00
newItem.text = highlightMatch(query, newItem.text);
return newItem;
});
});
return remappedHits;
}
},
});
}
2024-08-04 20:57:42 +02:00
let subSearchTerm = undefined;
let subSearchFuse = undefined;
const kFuseMaxWait = 125;
async function fuseSearch(query, fuse, fuseOptions) {
let index = fuse;
// Fuse.js using the Bitap algorithm for text matching which runs in
// O(nm) time (no matter the structure of the text). In our case this
// means that long search terms mixed with large index gets very slow
//
// This injects a subIndex that will be used once the terms get long enough
// Usually making this subindex is cheap since there will typically be
// a subset of results matching the existing query
if (subSearchFuse !== undefined & & query.startsWith(subSearchTerm)) {
// Use the existing subSearchFuse
index = subSearchFuse;
} else if (subSearchFuse !== undefined) {
// The term changed, discard the existing fuse
subSearchFuse = undefined;
subSearchTerm = undefined;
}
// Search using the active fuse
const then = performance.now();
const resultsRaw = await index.search(query, fuseOptions);
const now = performance.now();
const results = resultsRaw.map((result) => {
2023-11-17 13:42:11 +01:00
const addParam = (url, name, value) => {
const anchorParts = url.split("#");
const baseUrl = anchorParts[0];
const sep = baseUrl.search("\\?") > 0 ? "& " : "?";
anchorParts[0] = baseUrl + sep + name + "=" + value;
return anchorParts.join("#");
};
return {
title: result.item.title,
section: result.item.section,
href: addParam(result.item.href, kQueryArg, query),
text: highlightMatch(query, result.item.text),
2024-08-04 20:57:42 +02:00
crumbs: result.item.crumbs,
2023-11-17 13:42:11 +01:00
};
});
2024-08-04 20:57:42 +02:00
// If we don't have a subfuse and the query is long enough, go ahead
// and create a subfuse to use for subsequent queries
if (now - then > kFuseMaxWait & & subSearchFuse === undefined) {
subSearchTerm = query;
subSearchFuse = new window.Fuse([], kFuseIndexOptions);
resultsRaw.forEach((rr) => {
subSearchFuse.add(rr.item);
});
}
return results;
2023-11-17 13:42:11 +01:00
}
< / script >
< meta name = "quarto:offset" content = "./" >
< link href = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPwAAAD8CAYAAABTq8lnAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAABgAAAAYADwa0LPAAAHW0lEQVR42u3dzY9ddR3H8c/v0kJr2hhMhAjEojGRjVHctgsqDUyfxrgoK5S4IrrSRGNc0S0hQXdK3Gnigiaa1k4HagFN6hqfEmUhD1IghCggFSl27s8FNCFSHZrC/d2539frHzifmdx3z7m3555JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuAxt9IDL1U/svSGTK29Kn+5I+kfS22T0JhbKWlpeTvrT6WtPtH2rZ0YPuhwbLvj+2C2b8sa225J2KD1fSMvHR2+ilGfS82iSIzm75WS748ja6EGXYsME348ub89V+Vr69BtJ+9joPZDk+fR8L1u3/LDtPnJ29Jj3Yu6D7z0tqwe+nNbuS3LN6D1wEX9Pz3ez9xc/ai199Jj/Z66D7w9/6ZpMz/8kyW2jt8C6WlYzPX9X27f60ugp/3vinOor+z6XyRUrSa4bvQXeu3Ymyf6299jvRy+56LrRAy6mrx7YleR40j48egtcspZX0vvBtvf46dFT3j1tzvSVL34mk+mvk1w9egtchn+kt1vavmOPjx7yTnMV/Nvv2R+Py3gWQjuT/u/Pz9N7+rm5SaX3tLc/oBM7C6LfkLbpx73Pz4l1boLP6vJX49N4Fs9SHj545+gRF8zFvzz96PL2XNn/kuSjo7fA+67nxWzd8ql5uDlnPs7wm/vXI3YWVcu1OXfu7tEz3poy2Nv3xv/V7bIsuOfy2pYdo++9H3+Gf+uLMGJn0V2fbf+6dfSI8cGnHRq9AGaitTtGT5iD4LN79ACYkT2jBwwNvp/Ye0OSHaN/CTAjO/rJ5aH3mYw9w0+uvGno8WHWpvn0yMOPDX669omhx4dZ6/2TIw8/+D28b8NRTR/6mh/9od2HBh8fZqu3bSMPPzb45gmzFDP4NS84KETwUIjgoRDBQyGCh0IED4UIHgoRPBQieChE8FCI4KEQwUMhgodCBA+FCB4KETwUIngoRPBQiOChkE2jBxT2m7ScHj1iiJ5dSXaOnlGR4Idpp9rSscOjV4zQV5cPJ13wA7ikh0IED4UIHgoRPBQieChE8FCI4KEQwUMhgodCBA+FCB4KETwUIngoRPBQiOChEMFDIYKHQgQPhQgeCvFMuwXSVw/sSm8b4Flx051JGz2iJMEvlMmetH7P6BXrE/soLumhEMFDIYKHQgQPhQgeChE8FCJ4KETwUIjgoRDBQyGCh0IED4UIHgoRPBQieChE8FCI4KEQwUMhgodCPNNukbR2Oun3jp6xrp5dSTbAwzYXj+AXSFs6eirJqdE71tNXlw8nXfADuKSHQgQPhQgeChE8FCJ4KETwUIjgoRDBQyGCh0IED4UIHgoRPBQieChE8FCI4KEQwUMhgodCBA+FCB4K8Uy7BdJXD+xKbxvgWXHTnUkbPaIkwS+UyZ60fs/oFesT+ygu6aEQwUMhgodCBA+FCB4KETwUIngoRPBQiOChEMFDIYKHQgQPhQgeChE8FCJ4KETwUIjgoRDBQyGCh0I8026RtHY66feOnrGunl1JNsDDNheP4BdIWzp6Ksmp0TvW01eXDydd8AO4pIdCBA+FCB4KETwUIngoRPBQiOChEMFDIYKHQgQPhQgeChE8FCJ4KETwUIjgoRDBQyGCh0IED4UIHgrxTLthpjv7iYPfGb1i1M+etNEjShL8MG1PWvaMXjHoZx89oCyX9FCI4KEQwUMhgodCBA+FCB4KETwUIngoRPBQiOChEMFDIYKHQgQPhQgeChE8FCJ4KETwUIjgoRDBQyFjg+99OvoXADM1+DU/+gz/+uDjw2y1fnbk4QcH318de3yYtTb0NT82+MkVTw09Psxaa0+OPPzY4Kdv/nno8WHWJnli7OEHavtWzyR5ZuQGmKEn223Hnh85YPSHdknPo6MnwIwMf62PDz45MnoAzMSkPTh8wugB2fraL5MMvcyBGXgur17lDN92/+p80r8/egd8sPr97Y4ja6NXDA8+SbJl6w/S8+LoGfDB6C9k8uYDo1ckcxJ8233kbFor+rfSWXgt32q3n/zn6BlvTZkTvafloYMnkiyN3gLvn76SpeMHW0sfvSSZkzN8krSWnn7+K0k7M3oLvE+ezebNd81L7MkcBZ8kbd/qS5ms7U3y8ugtcHn6q5muLbc9P//b6CXvNFfBJ0m7feWPSV/2xRo2rJZX0if72/4Tvx095d3T5lR/6MBn09tKkutHb4FL8Gymk/1t/9E/jB5yMXN3hr+gLR3/Xfr5m9OyOnoLvDd9JZs33TyvsSdzfIa/oPe0PHzwzkxzX1quHb0H3q2/kJ5vZ+/xn87TB3QXM/fBX9AfO7Qt587dnd6/GZf5zIfnkn5/Jm8+MC//z76eDRP8Bf3BQ1dk++t7ksmhJLcmuXH0Jkp5Kskj6f1Izm59ZB5ul70UGy74/9ZPLl+X8/2mpN2YSa5Oz/a0vmX0LhZAb2+k5bVM83LSn85k85/a0s9eGD0LAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAYf4DiQFQ3IL/BQcAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjItMTAtMTJUMTM6MTM6NDErMDA6MDBv7JYhAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIyLTEwLTEyVDEzOjEzOjQxKzAwOjAwHrEunQAAAABJRU5ErkJggg==" rel = "icon" type = "image/png" >
< script > c o n s t s e c t i o n C h a n g e d = n e w C u s t o m E v e n t ( " q u a r t o - s e c t i o n C h a n g e d " , {
detail: {},
bubbles: true,
cancelable: false,
composed: false,
});
const layoutMarginEls = () => {
// Find any conflicting margin elements and add margins to the
// top to prevent overlap
const marginChildren = window.document.querySelectorAll(
2024-08-04 20:57:42 +02:00
".column-margin.column-container > *, .margin-caption, .aside"
2023-11-17 13:42:11 +01:00
);
let lastBottom = 0;
for (const marginChild of marginChildren) {
if (marginChild.offsetParent !== null) {
// clear the top margin so we recompute it
marginChild.style.marginTop = null;
const top = marginChild.getBoundingClientRect().top + window.scrollY;
if (top < lastBottom ) {
2024-08-04 20:57:42 +02:00
const marginChildStyle = window.getComputedStyle(marginChild);
const marginBottom = parseFloat(marginChildStyle["marginBottom"]);
const margin = lastBottom - top + marginBottom;
2023-11-17 13:42:11 +01:00
marginChild.style.marginTop = `${margin}px`;
}
const styles = window.getComputedStyle(marginChild);
const marginTop = parseFloat(styles["marginTop"]);
lastBottom = top + marginChild.getBoundingClientRect().height + marginTop;
}
}
};
window.document.addEventListener("DOMContentLoaded", function (_event) {
// Recompute the position of margin elements anytime the body size changes
if (window.ResizeObserver) {
const resizeObserver = new window.ResizeObserver(
2024-08-04 20:57:42 +02:00
throttle(() => {
layoutMarginEls();
if (
window.document.body.getBoundingClientRect().width < 990 & &
isReaderMode()
) {
quartoToggleReader();
}
}, 50)
2023-11-17 13:42:11 +01:00
);
resizeObserver.observe(window.document.body);
}
const tocEl = window.document.querySelector('nav.toc-active[role="doc-toc"]');
const sidebarEl = window.document.getElementById("quarto-sidebar");
const leftTocEl = window.document.getElementById("quarto-sidebar-toc-left");
const marginSidebarEl = window.document.getElementById(
"quarto-margin-sidebar"
);
// function to determine whether the element has a previous sibling that is active
const prevSiblingIsActiveLink = (el) => {
const sibling = el.previousElementSibling;
if (sibling & & sibling.tagName === "A") {
return sibling.classList.contains("active");
} else {
return false;
}
};
// fire slideEnter for bootstrap tab activations (for htmlwidget resize behavior)
function fireSlideEnter(e) {
const event = window.document.createEvent("Event");
event.initEvent("slideenter", true, true);
window.document.dispatchEvent(event);
}
const tabs = window.document.querySelectorAll('a[data-bs-toggle="tab"]');
tabs.forEach((tab) => {
tab.addEventListener("shown.bs.tab", fireSlideEnter);
});
// fire slideEnter for tabby tab activations (for htmlwidget resize behavior)
document.addEventListener("tabby", fireSlideEnter, false);
// Track scrolling and mark TOC links as active
// get table of contents and sidebar (bail if we don't have at least one)
const tocLinks = tocEl
? [...tocEl.querySelectorAll("a[data-scroll-target]")]
: [];
const makeActive = (link) => tocLinks[link].classList.add("active");
const removeActive = (link) => tocLinks[link].classList.remove("active");
const removeAllActive = () =>
[...Array(tocLinks.length).keys()].forEach((link) => removeActive(link));
// activate the anchor for a section associated with this TOC entry
tocLinks.forEach((link) => {
link.addEventListener("click", () => {
if (link.href.indexOf("#") !== -1) {
const anchor = link.href.split("#")[1];
const heading = window.document.querySelector(
`[data-anchor-id=${anchor}]`
);
if (heading) {
// Add the class
heading.classList.add("reveal-anchorjs-link");
// function to show the anchor
const handleMouseout = () => {
heading.classList.remove("reveal-anchorjs-link");
heading.removeEventListener("mouseout", handleMouseout);
};
// add a function to clear the anchor when the user mouses out of it
heading.addEventListener("mouseout", handleMouseout);
}
}
});
});
const sections = tocLinks.map((link) => {
const target = link.getAttribute("data-scroll-target");
if (target.startsWith("#")) {
return window.document.getElementById(decodeURI(`${target.slice(1)}`));
} else {
return window.document.querySelector(decodeURI(`${target}`));
}
});
const sectionMargin = 200;
let currentActive = 0;
// track whether we've initialized state the first time
let init = false;
const updateActiveLink = () => {
// The index from bottom to top (e.g. reversed list)
let sectionIndex = -1;
if (
window.innerHeight + window.pageYOffset >=
window.document.body.offsetHeight
) {
sectionIndex = 0;
} else {
sectionIndex = [...sections].reverse().findIndex((section) => {
if (section) {
return window.pageYOffset >= section.offsetTop - sectionMargin;
} else {
return false;
}
});
}
if (sectionIndex > -1) {
const current = sections.length - sectionIndex - 1;
if (current !== currentActive) {
removeAllActive();
currentActive = current;
makeActive(current);
if (init) {
window.dispatchEvent(sectionChanged);
}
init = true;
}
}
};
const inHiddenRegion = (top, bottom, hiddenRegions) => {
for (const region of hiddenRegions) {
if (top < = region.bottom & & bottom >= region.top) {
return true;
}
}
return false;
};
const categorySelector = "header.quarto-title-block .quarto-category";
const activateCategories = (href) => {
// Find any categories
// Surround them with a link pointing back to:
// #category=Authoring
try {
const categoryEls = window.document.querySelectorAll(categorySelector);
for (const categoryEl of categoryEls) {
const categoryText = categoryEl.textContent;
if (categoryText) {
const link = `${href}#category=${encodeURIComponent(categoryText)}`;
const linkEl = window.document.createElement("a");
linkEl.setAttribute("href", link);
for (const child of categoryEl.childNodes) {
linkEl.append(child);
}
categoryEl.appendChild(linkEl);
}
}
} catch {
// Ignore errors
}
};
function hasTitleCategories() {
return window.document.querySelector(categorySelector) !== null;
}
function offsetRelativeUrl(url) {
const offset = getMeta("quarto:offset");
return offset ? offset + url : url;
}
function offsetAbsoluteUrl(url) {
const offset = getMeta("quarto:offset");
const baseUrl = new URL(offset, window.location);
const projRelativeUrl = url.replace(baseUrl, "");
if (projRelativeUrl.startsWith("/")) {
return projRelativeUrl;
} else {
return "/" + projRelativeUrl;
}
}
// read a meta tag value
function getMeta(metaName) {
const metas = window.document.getElementsByTagName("meta");
for (let i = 0; i < metas.length ; i + + ) {
if (metas[i].getAttribute("name") === metaName) {
return metas[i].getAttribute("content");
}
}
return "";
}
async function findAndActivateCategories() {
const currentPagePath = offsetAbsoluteUrl(window.location.href);
const response = await fetch(offsetRelativeUrl("listings.json"));
if (response.status == 200) {
return response.json().then(function (listingPaths) {
const listingHrefs = [];
for (const listingPath of listingPaths) {
const pathWithoutLeadingSlash = listingPath.listing.substring(1);
for (const item of listingPath.items) {
if (
item === currentPagePath ||
item === currentPagePath + "index.html"
) {
// Resolve this path against the offset to be sure
// we already are using the correct path to the listing
// (this adjusts the listing urls to be rooted against
// whatever root the page is actually running against)
const relative = offsetRelativeUrl(pathWithoutLeadingSlash);
const baseUrl = window.location;
const resolvedPath = new URL(relative, baseUrl);
listingHrefs.push(resolvedPath.pathname);
break;
}
}
}
// Look up the tree for a nearby linting and use that if we find one
const nearestListing = findNearestParentListing(
offsetAbsoluteUrl(window.location.pathname),
listingHrefs
);
if (nearestListing) {
activateCategories(nearestListing);
} else {
// See if the referrer is a listing page for this item
const referredRelativePath = offsetAbsoluteUrl(document.referrer);
const referrerListing = listingHrefs.find((listingHref) => {
const isListingReferrer =
listingHref === referredRelativePath ||
listingHref === referredRelativePath + "index.html";
return isListingReferrer;
});
if (referrerListing) {
// Try to use the referrer if possible
activateCategories(referrerListing);
} else if (listingHrefs.length > 0) {
// Otherwise, just fall back to the first listing
activateCategories(listingHrefs[0]);
}
}
});
}
}
if (hasTitleCategories()) {
findAndActivateCategories();
}
const findNearestParentListing = (href, listingHrefs) => {
if (!href || !listingHrefs) {
return undefined;
}
// Look up the tree for a nearby linting and use that if we find one
const relativeParts = href.substring(1).split("/");
while (relativeParts.length > 0) {
const path = relativeParts.join("/");
for (const listingHref of listingHrefs) {
if (listingHref.startsWith(path)) {
return listingHref;
}
}
relativeParts.pop();
}
return undefined;
};
const manageSidebarVisiblity = (el, placeholderDescriptor) => {
let isVisible = true;
let elRect;
return (hiddenRegions) => {
if (el === null) {
return;
}
// Find the last element of the TOC
const lastChildEl = el.lastElementChild;
if (lastChildEl) {
// Converts the sidebar to a menu
const convertToMenu = () => {
for (const child of el.children) {
child.style.opacity = 0;
child.style.overflow = "hidden";
}
nexttick(() => {
const toggleContainer = window.document.createElement("div");
toggleContainer.style.width = "100%";
toggleContainer.classList.add("zindex-over-content");
toggleContainer.classList.add("quarto-sidebar-toggle");
toggleContainer.classList.add("headroom-target"); // Marks this to be managed by headeroom
toggleContainer.id = placeholderDescriptor.id;
toggleContainer.style.position = "fixed";
const toggleIcon = window.document.createElement("i");
toggleIcon.classList.add("quarto-sidebar-toggle-icon");
toggleIcon.classList.add("bi");
toggleIcon.classList.add("bi-caret-down-fill");
const toggleTitle = window.document.createElement("div");
const titleEl = window.document.body.querySelector(
placeholderDescriptor.titleSelector
);
if (titleEl) {
toggleTitle.append(
titleEl.textContent || titleEl.innerText,
toggleIcon
);
}
toggleTitle.classList.add("zindex-over-content");
toggleTitle.classList.add("quarto-sidebar-toggle-title");
toggleContainer.append(toggleTitle);
const toggleContents = window.document.createElement("div");
toggleContents.classList = el.classList;
toggleContents.classList.add("zindex-over-content");
toggleContents.classList.add("quarto-sidebar-toggle-contents");
for (const child of el.children) {
if (child.id === "toc-title") {
continue;
}
const clone = child.cloneNode(true);
clone.style.opacity = 1;
clone.style.display = null;
toggleContents.append(clone);
}
toggleContents.style.height = "0px";
const positionToggle = () => {
// position the element (top left of parent, same width as parent)
if (!elRect) {
elRect = el.getBoundingClientRect();
}
toggleContainer.style.left = `${elRect.left}px`;
toggleContainer.style.top = `${elRect.top}px`;
toggleContainer.style.width = `${elRect.width}px`;
};
positionToggle();
toggleContainer.append(toggleContents);
el.parentElement.prepend(toggleContainer);
// Process clicks
let tocShowing = false;
// Allow the caller to control whether this is dismissed
// when it is clicked (e.g. sidebar navigation supports
// opening and closing the nav tree, so don't dismiss on click)
const clickEl = placeholderDescriptor.dismissOnClick
? toggleContainer
: toggleTitle;
const closeToggle = () => {
if (tocShowing) {
toggleContainer.classList.remove("expanded");
toggleContents.style.height = "0px";
tocShowing = false;
}
};
// Get rid of any expanded toggle if the user scrolls
window.document.addEventListener(
"scroll",
throttle(() => {
closeToggle();
}, 50)
);
// Handle positioning of the toggle
window.addEventListener(
"resize",
throttle(() => {
elRect = undefined;
positionToggle();
}, 50)
);
window.addEventListener("quarto-hrChanged", () => {
elRect = undefined;
});
// Process the click
clickEl.onclick = () => {
if (!tocShowing) {
toggleContainer.classList.add("expanded");
toggleContents.style.height = null;
tocShowing = true;
} else {
closeToggle();
}
};
});
};
// Converts a sidebar from a menu back to a sidebar
const convertToSidebar = () => {
for (const child of el.children) {
child.style.opacity = 1;
child.style.overflow = null;
}
const placeholderEl = window.document.getElementById(
placeholderDescriptor.id
);
if (placeholderEl) {
placeholderEl.remove();
}
el.classList.remove("rollup");
};
if (isReaderMode()) {
convertToMenu();
isVisible = false;
} else {
// Find the top and bottom o the element that is being managed
const elTop = el.offsetTop;
const elBottom =
elTop + lastChildEl.offsetTop + lastChildEl.offsetHeight;
if (!isVisible) {
// If the element is current not visible reveal if there are
// no conflicts with overlay regions
if (!inHiddenRegion(elTop, elBottom, hiddenRegions)) {
convertToSidebar();
isVisible = true;
}
} else {
// If the element is visible, hide it if it conflicts with overlay regions
// and insert a placeholder toggle (or if we're in reader mode)
if (inHiddenRegion(elTop, elBottom, hiddenRegions)) {
convertToMenu();
isVisible = false;
}
}
}
}
};
};
const tabEls = document.querySelectorAll('a[data-bs-toggle="tab"]');
for (const tabEl of tabEls) {
const id = tabEl.getAttribute("data-bs-target");
if (id) {
const columnEl = document.querySelector(
`${id} .column-margin, .tabset-margin-content`
);
if (columnEl)
tabEl.addEventListener("shown.bs.tab", function (event) {
const el = event.srcElement;
if (el) {
const visibleCls = `${el.id}-margin-content`;
// walk up until we find a parent tabset
let panelTabsetEl = el.parentElement;
while (panelTabsetEl) {
if (panelTabsetEl.classList.contains("panel-tabset")) {
break;
}
panelTabsetEl = panelTabsetEl.parentElement;
}
if (panelTabsetEl) {
const prevSib = panelTabsetEl.previousElementSibling;
if (
prevSib & &
prevSib.classList.contains("tabset-margin-container")
) {
const childNodes = prevSib.querySelectorAll(
".tabset-margin-content"
);
for (const childEl of childNodes) {
if (childEl.classList.contains(visibleCls)) {
childEl.classList.remove("collapse");
} else {
childEl.classList.add("collapse");
}
}
}
}
}
layoutMarginEls();
});
}
}
// Manage the visibility of the toc and the sidebar
const marginScrollVisibility = manageSidebarVisiblity(marginSidebarEl, {
id: "quarto-toc-toggle",
titleSelector: "#toc-title",
dismissOnClick: true,
});
const sidebarScrollVisiblity = manageSidebarVisiblity(sidebarEl, {
id: "quarto-sidebarnav-toggle",
titleSelector: ".title",
dismissOnClick: false,
});
let tocLeftScrollVisibility;
if (leftTocEl) {
tocLeftScrollVisibility = manageSidebarVisiblity(leftTocEl, {
id: "quarto-lefttoc-toggle",
titleSelector: "#toc-title",
dismissOnClick: true,
});
}
// Find the first element that uses formatting in special columns
const conflictingEls = window.document.body.querySelectorAll(
'[class^="column-"], [class*=" column-"], aside, [class*="margin-caption"], [class*=" margin-caption"], [class*="margin-ref"], [class*=" margin-ref"]'
);
// Filter all the possibly conflicting elements into ones
// the do conflict on the left or ride side
const arrConflictingEls = Array.from(conflictingEls);
const leftSideConflictEls = arrConflictingEls.filter((el) => {
if (el.tagName === "ASIDE") {
return false;
}
return Array.from(el.classList).find((className) => {
return (
className !== "column-body" & &
className.startsWith("column-") & &
!className.endsWith("right") & &
!className.endsWith("container") & &
className !== "column-margin"
);
});
});
const rightSideConflictEls = arrConflictingEls.filter((el) => {
if (el.tagName === "ASIDE") {
return true;
}
const hasMarginCaption = Array.from(el.classList).find((className) => {
return className == "margin-caption";
});
if (hasMarginCaption) {
return true;
}
return Array.from(el.classList).find((className) => {
return (
className !== "column-body" & &
!className.endsWith("container") & &
className.startsWith("column-") & &
!className.endsWith("left")
);
});
});
const kOverlapPaddingSize = 10;
function toRegions(els) {
return els.map((el) => {
const boundRect = el.getBoundingClientRect();
const top =
boundRect.top +
document.documentElement.scrollTop -
kOverlapPaddingSize;
return {
top,
bottom: top + el.scrollHeight + 2 * kOverlapPaddingSize,
};
});
}
let hasObserved = false;
const visibleItemObserver = (els) => {
let visibleElements = [...els];
const intersectionObserver = new IntersectionObserver(
(entries, _observer) => {
entries.forEach((entry) => {
if (entry.isIntersecting) {
if (visibleElements.indexOf(entry.target) === -1) {
visibleElements.push(entry.target);
}
} else {
visibleElements = visibleElements.filter((visibleEntry) => {
return visibleEntry !== entry;
});
}
});
if (!hasObserved) {
hideOverlappedSidebars();
}
hasObserved = true;
},
{}
);
els.forEach((el) => {
intersectionObserver.observe(el);
});
return {
getVisibleEntries: () => {
return visibleElements;
},
};
};
const rightElementObserver = visibleItemObserver(rightSideConflictEls);
const leftElementObserver = visibleItemObserver(leftSideConflictEls);
const hideOverlappedSidebars = () => {
marginScrollVisibility(toRegions(rightElementObserver.getVisibleEntries()));
sidebarScrollVisiblity(toRegions(leftElementObserver.getVisibleEntries()));
if (tocLeftScrollVisibility) {
tocLeftScrollVisibility(
toRegions(leftElementObserver.getVisibleEntries())
);
}
};
window.quartoToggleReader = () => {
// Applies a slow class (or removes it)
// to update the transition speed
const slowTransition = (slow) => {
const manageTransition = (id, slow) => {
const el = document.getElementById(id);
if (el) {
if (slow) {
el.classList.add("slow");
} else {
el.classList.remove("slow");
}
}
};
manageTransition("TOC", slow);
manageTransition("quarto-sidebar", slow);
};
const readerMode = !isReaderMode();
setReaderModeValue(readerMode);
// If we're entering reader mode, slow the transition
if (readerMode) {
slowTransition(readerMode);
}
highlightReaderToggle(readerMode);
hideOverlappedSidebars();
// If we're exiting reader mode, restore the non-slow transition
if (!readerMode) {
slowTransition(!readerMode);
}
};
const highlightReaderToggle = (readerMode) => {
const els = document.querySelectorAll(".quarto-reader-toggle");
if (els) {
els.forEach((el) => {
if (readerMode) {
el.classList.add("reader");
} else {
el.classList.remove("reader");
}
});
}
};
const setReaderModeValue = (val) => {
if (window.location.protocol !== "file:") {
window.localStorage.setItem("quarto-reader-mode", val);
} else {
localReaderMode = val;
}
};
const isReaderMode = () => {
if (window.location.protocol !== "file:") {
return window.localStorage.getItem("quarto-reader-mode") === "true";
} else {
return localReaderMode;
}
};
let localReaderMode = null;
const tocOpenDepthStr = tocEl?.getAttribute("data-toc-expanded");
const tocOpenDepth = tocOpenDepthStr ? Number(tocOpenDepthStr) : 1;
// Walk the TOC and collapse/expand nodes
// Nodes are expanded if:
// - they are top level
// - they have children that are 'active' links
// - they are directly below an link that is 'active'
const walk = (el, depth) => {
// Tick depth when we enter a UL
if (el.tagName === "UL") {
depth = depth + 1;
}
// It this is active link
let isActiveNode = false;
if (el.tagName === "A" & & el.classList.contains("active")) {
isActiveNode = true;
}
// See if there is an active child to this element
let hasActiveChild = false;
for (child of el.children) {
hasActiveChild = walk(child, depth) || hasActiveChild;
}
// Process the collapse state if this is an UL
if (el.tagName === "UL") {
if (tocOpenDepth === -1 & & depth > 1) {
el.classList.add("collapse");
} else if (
depth < = tocOpenDepth ||
hasActiveChild ||
prevSiblingIsActiveLink(el)
) {
el.classList.remove("collapse");
} else {
el.classList.add("collapse");
}
// untick depth when we leave a UL
depth = depth - 1;
}
return hasActiveChild || isActiveNode;
};
// walk the TOC and expand / collapse any items that should be shown
if (tocEl) {
walk(tocEl, 0);
updateActiveLink();
}
// Throttle the scroll event and walk peridiocally
window.document.addEventListener(
"scroll",
throttle(() => {
if (tocEl) {
updateActiveLink();
walk(tocEl, 0);
}
if (!isReaderMode()) {
hideOverlappedSidebars();
}
}, 5)
);
window.addEventListener(
"resize",
throttle(() => {
if (!isReaderMode()) {
hideOverlappedSidebars();
}
}, 10)
);
hideOverlappedSidebars();
highlightReaderToggle(isReaderMode());
});
// grouped tabsets
window.addEventListener("pageshow", (_event) => {
function getTabSettings() {
const data = localStorage.getItem("quarto-persistent-tabsets-data");
if (!data) {
localStorage.setItem("quarto-persistent-tabsets-data", "{}");
return {};
}
if (data) {
return JSON.parse(data);
}
}
function setTabSettings(data) {
localStorage.setItem(
"quarto-persistent-tabsets-data",
JSON.stringify(data)
);
}
function setTabState(groupName, groupValue) {
const data = getTabSettings();
data[groupName] = groupValue;
setTabSettings(data);
}
function toggleTab(tab, active) {
const tabPanelId = tab.getAttribute("aria-controls");
const tabPanel = document.getElementById(tabPanelId);
if (active) {
tab.classList.add("active");
tabPanel.classList.add("active");
} else {
tab.classList.remove("active");
tabPanel.classList.remove("active");
}
}
function toggleAll(selectedGroup, selectorsToSync) {
for (const [thisGroup, tabs] of Object.entries(selectorsToSync)) {
const active = selectedGroup === thisGroup;
for (const tab of tabs) {
toggleTab(tab, active);
}
}
}
function findSelectorsToSyncByLanguage() {
const result = {};
const tabs = Array.from(
document.querySelectorAll(`div[data-group] a[id^='tabset-']`)
);
for (const item of tabs) {
const div = item.parentElement.parentElement.parentElement;
const group = div.getAttribute("data-group");
if (!result[group]) {
result[group] = {};
}
const selectorsToSync = result[group];
const value = item.innerHTML;
if (!selectorsToSync[value]) {
selectorsToSync[value] = [];
}
selectorsToSync[value].push(item);
}
return result;
}
function setupSelectorSync() {
const selectorsToSync = findSelectorsToSyncByLanguage();
Object.entries(selectorsToSync).forEach(([group, tabSetsByValue]) => {
Object.entries(tabSetsByValue).forEach(([value, items]) => {
items.forEach((item) => {
item.addEventListener("click", (_event) => {
setTabState(group, value);
toggleAll(value, selectorsToSync[group]);
});
});
});
});
return selectorsToSync;
}
const selectorsToSync = setupSelectorSync();
for (const [group, selectedName] of Object.entries(getTabSettings())) {
const selectors = selectorsToSync[group];
// it's possible that stale state gives us empty selections, so we explicitly check here.
if (selectors) {
toggleAll(selectedName, selectors);
}
}
});
function throttle(func, wait) {
let waiting = false;
return function () {
if (!waiting) {
func.apply(this, arguments);
waiting = true;
setTimeout(function () {
waiting = false;
}, wait);
}
};
}
function nexttick(func) {
return setTimeout(func, 0);
}
< / script >
< script > / * *
2024-08-04 20:57:42 +02:00
* @popperjs/core v2.11.7 - MIT License
2023-11-17 13:42:11 +01:00
*/
2024-08-04 20:57:42 +02:00
!function(e,t){"object"==typeof exports& & "undefined"!=typeof module?t(exports):"function"==typeof define& & define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Popper={})}(this,(function(e){"use strict";function t(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t& & t.defaultView||window}return e}function n(e){return e instanceof t(e).Element||e instanceof Element}function r(e){return e instanceof t(e).HTMLElement||e instanceof HTMLElement}function o(e){return"undefined"!=typeof ShadowRoot& & (e instanceof t(e).ShadowRoot||e instanceof ShadowRoot)}var i=Math.max,a=Math.min,s=Math.round;function f(){var e=navigator.userAgentData;return null!=e& & e.brands& & Array.isArray(e.brands)?e.brands.map((function(e){return e.brand+"/"+e.version})).join(" "):navigator.userAgent}function c(){return!/^((?!chrome|android).)*safari/i.test(f())}function p(e,o,i){void 0===o& & (o=!1),void 0===i&&(i=!1); var a=e.getBoundingClientRect(),f=1,p=1;o&&r(e)&&(f=e.offsetWidth>0&&s(a.width)/e.offsetWidth||1,p=e.offsetHeight>0&&s(a.height)/e.offsetHeight||1); var u=(n(e)?t(e):window).visualViewport,l=!c()&&i,d=(a.left+(l&&u?u.offsetLeft:0))/f,h=(a.top+(l&&u?u.offsetTop:0))/p,m=a.width/f,v=a.height/p; return{width:m,height:v,top:h,right:d+m,bottom:h+v,left:d,x:d,y:h}}function u(e){var n=t(e);return{scrollLeft:n.pageXOffset,scrollTop:n.pageYOffset}}function l(e){return e?(e.nodeName||"").toLowerCase():null}function d(e){return((n(e)?e.ownerDocument:e.document)||window.document).documentElement}function h(e){return p(d(e)).left+u(e).scrollLeft}function m(e){return t(e).getComputedStyle(e)}function v(e){var t=m(e),n=t.overflow,r=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function y(e,n,o){void 0===o&&(o=!1); var i,a,f=r(n),c=r(n)& & function(e){var t=e.getBoundingClientRect(),n=s(t.width)/e.offsetWidth||1,r=s(t.height)/e.offsetHeight||1;return 1!==n||1!==r}(n),m=d(n),y=p(e,c,o),g={scrollLeft:0,scrollTop:0},b={x:0,y:0};return(f||!f& & !o)& & (("body"!==l(n)||v(m))& & (g=(i=n)!==t(i)& & r(i)?{scrollLeft:(a=i).scrollLeft,scrollTop:a.scrollTop}:u(i)),r(n)?((b=p(n,!0)).x+=n.clientLeft,b.y+=n.clientTop):m& & (b.x=h(m))),{x:y.left+g.scrollLeft-b.x,y:y.top+g.scrollTop-b.y,width:y.width,height:y.height}}function g(e){var t=p(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)< =1& & (n=t.width),Math.abs(t.height-r)< =1& & (r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function b(e){return"html"===l(e)?e:e.assignedSlot||e.parentNode||(o(e)?e.host:null)||d(e)}function x(e){return["html","body","#document"].indexOf(l(e))>=0?e.ownerDocument.body:r(e)& & v(e)?e:x(b(e))}function w(e,n){var r;void 0===n&&(n=[]); var o=x(e),i=o===(null==(r=e.ownerDocument)?void 0:r.body),a=t(o),s=i?[a].concat(a.visualViewport||[],v(o)?o:[]):o,f=n.concat(s);return i?f:f.concat(w(b(s)))}function O(e){return["table","td","th"].indexOf(l(e))>=0}function j(e){return r(e)& & "fixed"!==m(e).position?e.offsetParent:null}function E(e){for(var n=t(e),i=j(e);i&&O(i)&&"static"===m(i).position; )i=j(i);return i& & ("html"===l(i)||"body"===l(i)& & "static"===m(i).position)?n:i||function(e){var t=/firefox/i.test(f());if(/Trident/i.test(f())& & r(e)& & "fixed"===m(e).position)return null;var n=b(e);for(o(n)&&(n=n.host); r(n)&&["html","body"].indexOf(l(n))<0; ){var i=m(n);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||t& & "filter"===i.willChange||t& & i.filter& & "none"!==i.filter)return n;n=n.parentNode}return null}(e)||n}var D="top",A="bottom",L="right",P="left",M="auto",k=[D,A,L,P],W="start",B="end",H="viewport",T="popper",R=k.reduce((function(e,t){return e.concat([t+"-"+W,t+"-"+B])}),[]),S=[].concat(k,[M]).reduce((function(e,t){return e.concat([t,t+"-"+W,t+"-"+B])}),[]),V=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function q(e){var t=new Map,n=new Set,r=[];function o(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var r=t.get(e)
2023-11-17 13:42:11 +01:00
< / script >
< script > ! f u n c t i o n ( e , t ) { " o b j e c t " = = t y p e o f e x p o r t s & & " u n d e f i n e d " ! = t y p e o f m o d u l e ? m o d u l e . e x p o r t s = t ( r e q u i r e ( " @ p o p p e r j s / c o r e " ) ) : " f u n c t i o n " = = t y p e o f d e f i n e & & d e f i n e . a m d ? d e f i n e ( [ " @ p o p p e r j s / c o r e " ] , t ) : ( e = e | | s e l f ) . t i p p y = t ( e . P o p p e r ) } ( t h i s , ( f u n c t i o n ( e ) { " u s e s t r i c t " ; v a r t = { p a s s i v e : ! 0 , c a p t u r e : ! 0 } , n = f u n c t i o n ( ) { r e t u r n d o c u m e n t . b o d y } ; f u n c t i o n r ( e , t , n ) { i f ( A r r a y . i s A r r a y ( e ) ) { v a r r = e [ t ] ; r e t u r n n u l l = = r ? A r r a y . i s A r r a y ( n ) ? n [ t ] : n : r } r e t u r n e } f u n c t i o n o ( e , t ) { v a r n = { } . t o S t r i n g . c a l l ( e ) ; r e t u r n 0 = = = n . i n d e x O f ( " [ o b j e c t " ) & & n . i n d e x O f ( t + " ] " ) > - 1 } f u n c t i o n i ( e , t ) { r e t u r n " f u n c t i o n " = = t y p e o f e ? e . a p p l y ( v o i d 0 , t ) : e } f u n c t i o n a ( e , t ) { r e t u r n 0 = = = t ? e : f u n c t i o n ( r ) { c l e a r T i m e o u t ( n ) , n = s e t T i m e o u t ( ( f u n c t i o n ( ) { e ( r ) } ) , t ) } ; v a r n } f u n c t i o n s ( e , t ) { v a r n = O b j e c t . a s s i g n ( { } , e ) ; r e t u r n t . f o r E a c h ( ( f u n c t i o n ( e ) { d e l e t e n [ e ] } ) ) , n } f u n c t i o n u ( e ) { r e t u r n [ ] . c o n c a t ( e ) } f u n c t i o n c ( e , t ) { - 1 = = = e . i n d e x O f ( t ) & & e . p u s h ( t ) } f u n c t i o n p ( e ) { r e t u r n e . s p l i t ( " - " ) [ 0 ] } f u n c t i o n f ( e ) { r e t u r n [ ] . s l i c e . c a l l ( e ) } f u n c t i o n l ( e ) { r e t u r n O b j e c t . k e y s ( e ) . r e d u c e ( ( f u n c t i o n ( t , n ) { r e t u r n v o i d 0 ! = = e [ n ] & & ( t [ n ] = e [ n ] ) , t } ) , { } ) } f u n c t i o n d ( ) { r e t u r n d o c u m e n t . c r e a t e E l e m e n t ( " d i v " ) } f u n c t i o n v ( e ) { r e t u r n [ " E l e m e n t " , " F r a g m e n t " ] . s o m e ( ( f u n c t i o n ( t ) { r e t u r n o ( e , t ) } ) ) } f u n c t i o n m ( e ) { r e t u r n o ( e , " M o u s e E v e n t " ) } f u n c t i o n g ( e ) { r e t u r n ! ( ! e | | ! e . _ t i p p y | | e . _ t i p p y . r e f e r e n c e ! = = e ) } f u n c t i o n h ( e ) { r e t u r n v ( e ) ? [ e ] : f u n c t i o n ( e ) { r e t u r n o ( e , " N o d e L i s t " ) } ( e ) ? f ( e ) : A r r a y . i s A r r a y ( e ) ? e : f ( d o c u m e n t . q u e r y S e l e c t o r A l l ( e ) ) } f u n c t i o n b ( e , t ) { e . f o r E a c h ( ( f u n c t i o n ( e ) { e & & ( e . s t y l e . t r a n s i t i o n D u r a t i o n = t + " m s " ) } ) ) } f u n c t i o n y ( e , t ) { e . f o r E a c h ( ( f u n c t i o n ( e ) { e & & e . s e t A t t r i b u t e ( " d a t a - s t a t e " , t ) } ) ) } f u n c t i o n w ( e ) { v a r t , n = u ( e ) [ 0 ] ; r e t u r n n u l l ! = n & & n u l l ! = ( t = n . o w n e r D o c u m e n t ) & & t . b o d y ? n . o w n e r D o c u m e n t : d o c u m e n t } f u n c t i o n E ( e , t , n ) { v a r r = t + " E v e n t L i s t e n e r " ; [ " t r a n s i t i o n e n d " , " w e b k i t T r a n s i t i o n E n d " ] . f o r E a c h ( ( f u n c t i o n ( t ) { e [ r ] ( t , n ) } ) ) } f u n c t i o n O ( e , t ) { f o r ( v a r n = t ; n ; ) { v a r r ; i f ( e . c o n t a i n s ( n ) ) r e t u r n ! 0 ; n = n u l l = = n . g e t R o o t N o d e | | n u l l = = ( r = n . g e t R o o t N o d e ( ) ) ? v o i d 0 : r . h o s t } r e t u r n ! 1 } v a r x = { i s T o u c h : ! 1 } , C = 0 ; f u n c t i o n T ( ) { x . i s T o u c h | | ( x . i s T o u c h = ! 0 , w i n d o w . p e r f o r m a n c e & & d o c u m e n t . a d d E v e n t L i s t e n e r ( " m o u s e m o v e " , A ) ) } f u n c t i o n A ( ) { v a r e = p e r f o r m a n c e . n o w ( ) ; e - C < 2 0 & & ( x . i s T o u c h = ! 1 , d o c u m e n t . r e m o v e E v e n t L i s t e n e r ( " m o u s e m o v e " , A ) ) , C = e } f u n c t i o n L ( ) { v a r e = d o c u m e n t . a c t i v e E l e m e n t ; i f ( g ( e ) ) { v a r t = e . _ t i p p y ; e . b l u r & & ! t . s t a t e . i s V i s i b l e & & e . b l u r ( ) } } v a r D = ! ! ( " u n d e f i n e d " ! = t y p e o f w i n d o w & & " u n d e f i n e d " ! = t y p e o f d o c u m e n t ) & & ! ! w i n d o w . m s C r y p t o , R = O b j e c t . a s s i g n ( { a p p e n d T o : n , a r i a : { c o n t e n t : " a u t o " , e x p a n d e d : " a u t o " } , d e l a y : 0 , d u r a t i o n : [ 3 0 0 , 2 5 0 ] , g e t R e f e r e n c e C l i e n t R e c t : n u l l , h i d e O n C l i c k : ! 0 , i g n o r e A t t r i b u t e s : ! 1 , i n t e r a c t i v e : ! 1 , i n t e r a c t i v e B o r d e r : 2 , i n t e r a c t i v e D e b o u n c e : 0 , m o v e T r a n s i t i o n : " " , o f f s e t : [ 0 , 1 0 ] , o n A f t e r U p d a t e : f u n c t i o n ( ) { } , o n B e f o r e U p d a t e : f u n c t i o n ( ) { } , o n C r e a t e : f u n c t i o n ( ) { } , o n D e s t r o y : f u n c t i o n ( ) { } , o n H i d d e n : f u n c t i o n ( ) { } , o n H i d e : f u n c t i o n ( ) { } , o n M o u n t : f u n c t i o n ( ) { } , o n S h o w : f u n c t i o n ( ) { } , o n S h o w n : f u n c t i o n ( ) { } , o n T r i g g e r : f u n c t i o n ( ) { } , o n U n t r i g g e r : f u n c t i o n ( ) { } , o n C l i c k O u t s i d e : f u n c t i o n ( ) { } , p l a c e m e n t : " t o p " , p l u g i n s : [ ] , p o p p e r O p t i o n s : { } , r e n d e r : n u l l , s h o w O n C r e a t e : ! 1 , t o u c h : ! 0 , t r i g g e r : " m o u s e e n t e r f o c u s " , t r i g g e r T a r g e t : n u l l } , { a n i m a t e F i l l : ! 1 , f o l l o w C u r s o r : ! 1 , i n l i n e P o s i t i o n i n g : ! 1 , s t i c k y : ! 1 } , { a l l o w H T M L : ! 1 , a n i m a t i o n : " f a d e " , a r r o w : ! 0 , c o n t e n t : " " , i n e r t i a : ! 1 , m a x W i d t h : 3 5 0 , r o l e : " t o o l t i p " , t h e m e : " " , z I n d e x : 9 9 9 9 } ) , k = O b j e c t . k e y s ( R ) ; f u n c t i o n P ( e ) { v a r t = ( e . p l u g i n s | | [ ] ) . r e d u c e ( ( f u n c t i o n ( t , n ) { v a r r , o = n . n a m e , i = n . d e f a u l t V a l u e ; o & & ( t [ o ] = v o i d 0 ! = = e [ o ] ? e [ o ] : n u l l ! = ( r = R [ o ] ) ? r : i ) ; r e t u r n t } ) , { } ) ; r e t u r n O b j e c t . a s s i g n ( { } , e , t ) } f u n c t i o n j ( e , t ) { v a r n = O b j e c t . a s s i g n ( { } , t , { c o n t e n t : i ( t . c o n t e n t , [ e ] ) } , t . i g n o r e A t t r i b u t e s ? { } : f u n c t i o n ( e , t ) { r e t u r n ( t ? O b j e c t . k e y s ( P ( O b j e c t . a s s i g n ( { } , R , { p l u g i n s : t } ) ) ) : k ) . r e d u c e ( ( f u n c t i o n ( t , n ) { v a r r = ( e . g e t A t t r i b u t e ( " d a t a - t i p p y - " + n ) | | " " ) . t r i m ( ) ; i f ( ! r ) r e t u r n t ; i f ( " c o n t e n t " = = = n ) t [ n ] = r ; e l s e t r y { t [ n ] = J S O N . p a r s e ( r ) } c a t c h ( e ) { t [ n ] = r } r e t u r n t } ) , { } ) } ( e , t . p l u g i n s ) ) ; r e t u r n n . a r i a = O b j e c t . a s s i g n ( { } , R . a r i a , n . a r i a ) , n . a r i a = { e x p a n d e d : " a u t o " = = = n . a r i a . e x p a n d e d ? t . i n t e r a c t i v e : n . a r i a . e x p a n d e d , c o n t e n t : " a u t o " = = = n . a r i a . c o n t e n t ? t . i n t e r a c t i v e ? n u l l : " d e s c r i b e d b y " : n . a r i a . c o n t e n t } , n } f u n c t i o n M ( e , t ) { e . i n n e r H T M L = t } f u n c t i o n V ( e ) { v a r t = d ( ) ; r e t u r n ! 0 = = = e ? t . c l a s s N a m e = " t i p p y - a r r o w " : ( t . c l a s s N a m e = " t i p p y - s v g - a r r o w " , v ( e ) ? t . a p p e n d C h i l d ( e ) : M ( t , e ) ) , t } f u n c t i o n I ( e , t ) { v ( t . c o n t e n t ) ? ( M ( e , " " ) , e . a p p e n d C h i l d ( t . c o n
< / script >
< style type = "text/css" > . tippy-box [ data-animation = fade ] [ data-state = hidden ] { opacity : 0 } [ data-tippy-root ] { max-width : calc ( 100 vw - 10 px ) } . tippy-box { position : relative ; background-color : #333 ; color : #fff ; border-radius : 4 px ; font-size : 14 px ; line-height : 1.4 ; white-space : normal ; outline : 0 ; transition-property : transform , visibility , opacity } . tippy-box [ data-placement ^ = top ] > . tippy-arrow { bottom : 0 } . tippy-box [ data-placement ^ = top ] > . tippy-arrow : before { bottom : -7 px ; left : 0 ; border-width : 8 px 8 px 0 ; border-top-color : initial ; transform-origin : center top } . tippy-box [ data-placement ^ = bottom ] > . tippy-arrow { top : 0 } . tippy-box [ data-placement ^ = bottom ] > . tippy-arrow : before { top : -7 px ; left : 0 ; border-width : 0 8 px 8 px ; border-bottom-color : initial ; transform-origin : center bottom } . tippy-box [ data-placement ^ = left ] > . tippy-arrow { right : 0 } . tippy-box [ data-placement ^ = left ] > . tippy-arrow : before { border-width : 8 px 0 8 px 8 px ; border-left-color : initial ; right : -7 px ; transform-origin : center left } . tippy-box [ data-placement ^ = right ] > . tippy-arrow { left : 0 } . tippy-box [ data-placement ^ = right ] > . tippy-arrow : before { left : -7 px ; border-width : 8 px 8 px 8 px 0 ; border-right-color : initial ; transform-origin : center right } . tippy-box [ data-inertia ] [ data-state = visible ] { transition-timing-function : cubic-bezier ( .54 , 1.5 , .38 , 1.11 ) } . tippy-arrow { width : 16 px ; height : 16 px ; color : #333 } . tippy-arrow : before { content : "" ; position : absolute ; border-color : transparent ; border-style : solid } . tippy-content { position : relative ; padding : 5 px 9 px ; z-index : 1 } < / style >
< link href = "data:text/css,%0A%3Aroot%20%7B%0A%2D%2Dquarto%2Dhl%2Dot%2Dcolor%3A%20%23003B4F%3B%0A%2D%2Dquarto%2Dhl%2Dat%2Dcolor%3A%20%23657422%3B%0A%2D%2Dquarto%2Dhl%2Dss%2Dcolor%3A%20%2320794D%3B%0A%2D%2Dquarto%2Dhl%2Dan%2Dcolor%3A%20%235E5E5E%3B%0A%2D%2Dquarto%2Dhl%2Dfu%2Dcolor%3A%20%234758AB%3B%0A%2D%2Dquarto%2Dhl%2Dst%2Dcolor%3A%20%2320794D%3B%0A%2D%2Dquarto%2Dhl%2Dcf%2Dcolor%3A%20%23003B4F%3B%0A%2D%2Dquarto%2Dhl%2Dop%2Dcolor%3A%20%235E5E5E%3B%0A%2D%2Dquarto%2Dhl%2Der%2Dcolor%3A%20%23AD0000%3B%0A%2D%2Dquarto%2Dhl%2Dbn%2Dcolor%3A%20%23AD0000%3B%0A%2D%2Dquarto%2Dhl%2Dal%2Dcolor%3A%20%23AD0000%3B%0A%2D%2Dquarto%2Dhl%2Dva%2Dcolor%3A%20%23111111%3B%0A%2D%2Dquarto%2Dhl%2Dbu%2Dcolor%3A%20inherit%3B%0A%2D%2Dquarto%2Dhl%2Dex%2Dcolor%3A%20inherit%3B%0A%2D%2Dquarto%2Dhl%2Dpp%2Dcolor%3A%20%23AD0000%3B%0A%2D%2Dquarto%2Dhl%2Din%2Dcolor%3A%20%235E5E5E%3B%0A%2D%2Dquarto%2Dhl%2Dvs%2Dcolor%3A%20%2320794D%3B%0A%2D%2Dquarto%2Dhl%2Dwa%2Dcolor%3A%20%235E5E5E%3B%0A%2D%2Dquarto%2Dhl%2Ddo%2Dcolor%3A%20%235E5E5E%3B%0A%2D%2Dquarto%2Dhl%2Dim%2Dcolor%3A%20%2300769E%3B%0A%2D%2Dquarto%2Dhl%2Dch%2Dcolor%3A%20%2320794D%3B%0A%2D%2Dquarto%2Dhl%2Ddt%2Dcolor%3A%20%23AD0000%3B%0A%2D%2Dquarto%2Dhl%2Dfl%2Dcolor%3A%20%23AD0000%3B%0A%2D%2Dquarto%2Dhl%2Dco%2Dcolor%3A%20%235E5E5E%3B%0A%2D%2Dquarto%2Dhl%2Dcv%2Dcolor%3A%20%235E5E5E%3B%0A%2D%2Dquarto%2Dhl%2Dcn%2Dcolor%3A%20%238f5902%3B%0A%2D%2Dquarto%2Dhl%2Dsc%2Dcolor%3A%20%235E5E5E%3B%0A%2D%2Dquarto%2Dhl%2Ddv%2Dcolor%3A%20%23AD0000%3B%0A%2D%2Dquarto%2Dhl%2Dkw%2Dcolor%3A%20%23003B4F%3B%0A%7D%0A%0A%3Aroot%20%7B%0A%2D%2Dquarto%2Dfont%2Dmonospace%3A%20SFMono%2DRegular%2C%20Menlo%2C%20Monaco%2C%20Consolas%2C%20%22Liberation%20Mono%22%2C%20%22Courier%20New%22%2C%20monospace%3B%0A%7D%0Apre%20%3E%20code%2EsourceCode%20%3E%20span%20%7B%0Acolor%3A%20%23003B4F%3B%0A%7D%0Acode%20span%20%7B%0Acolor%3A%20%23003B4F%3B%0A%7D%0Acode%2EsourceCode%20%3E%20span%20%7B%0Acolor%3A%20%23003B4F%3B%0A%7D%0Adiv%2EsourceCode%2C%0Adiv%2EsourceCode%20pre%2EsourceCode%20%7B%0Acolor%3A%20%23003B4F%3B%0A%7D%0Acode%20span%2Eot%20%7B%0Acolor%3A%20%23003B4F%3B%0Afont%2Dstyle%3A%20inherit%3B%0A%7D%0Acode%20span%2Eat%20%7B%0Acolor%3A%20%23657422%3B%0Afont%2Dstyle%3A%20inherit%3B%0A%7D%0Acode%20span%2Ess%20%7B%0Acolor%3A%20%2320794D%3B%0Afont%2Dstyle%3A%20inherit%3B%0A%7D%0Acode%20span%2Ean%20%7B%0Acolor%3A%20%235E5E5E%3B%0Afont%2Dstyle%3A%20inherit%3B%0A%7D%0Acode%20span%2Efu%20%7B%0Acolor%3A%20%234758AB%3B%0Afont%2Dstyle%3A%20inherit%3B%0A%7D%0Acode%20span%2Est%20%7B%0Acolor%3A%20%2320794D%3B%0Afont%2Dstyle%3A%20inherit%3B%0A%7D%0Acode%20span%2Ecf%20%7B%0Acolor%3A%20%23003B4F%3B%0Afont%2Dstyle%3A%20inherit%3B%0A%7D%0Acode%20span%2Eop%20%7B%0Acolor%3A%20%235E5E5E%3B%0Afont%2Dstyle%3A%20inherit%3B%0A%7D%0Acode%20span%2Eer%20%7B%0Acolor%3A%20%23AD0000%3B%0Afont%2Dstyle%3A%20inherit%3B%0A%7D%0Acode%20span%2Ebn%20%7B%0Acolor%3A%20%23AD0000%3B%0Afont%2Dstyle%3A%20inherit%3B%0A%7D%0Acode%20span%2Eal%20%7B%0Acolor%3A%20%23AD0000%3B%0Afont%2Dstyle%3A%20inherit%3B%0A%7D%0Acode%20span%2Eva%20%7B%0Acolor%3A%20%23111111%3B%0Afont%2Dstyle%3A%20inherit%3B%0A%7D%0Acode%20span%2Ebu%20%7B%0Afont%2Dstyle%3A%20inherit%3B%0A%7D%0Acode%20span%2Eex%20%7B%0Afont%2Dstyle%3A%20inherit%3B%0A%7D%0Acode%20span%2Epp%20%7B%0Acolor%3A%20%23AD0000%3B%0Afont%2Dstyle%3A%20inherit%3B%0A%7D%0Acode%20span%2Ein%20%7B%0Acolor%3A%20%235E5E5E%3B%0Afont%2Dstyle%3A%20inherit%3B%0A%7D%0Acode%20span%2Evs%20%7B%0Acolor%3A%20%2320794D%3B%0Afont%2Dstyle%3A%20inherit%3B%0A%7D%0Acode%20span%2Ewa%20%7B%0Acolor%3A%20%235E5E5E%3B%0Afont%2Dstyle%3A%20italic%3B%0A%7D%0Acode%20span%2Edo%20%7B%0Acolor%3A%20%235E5E5E%3B%0Afont%2Dstyle%3A%20italic%3B%0A%7D%0Acode%20span%2Eim%20%7B%0Acolor%3A%20%2300769E%3B%0Afont%2Dstyle%3A%20inherit%3B%0A%7D%0Acode%20span%2Ech%20%7B%0Acolor%3A%20%2320794D%3B%0Afont%2Dstyle%3A%20inherit%3B%0A%7D%0Acode%20span%2Edt%20%7B%0Acolor%3A%20%23AD0000%3B%0Afont%2Dstyle%3A%20inherit%3B%0A%7D%0Acode%20span%2Efl%20%7B%0Acolor%3A%20%23AD0000%3B%0Afont%2Dstyle%3A%20inherit%3B%0A%7D%0Acode%20span%2Eco%20%7B%0Acolor%3A%20%235E5E5E%3B%0Afont%2Dstyle%3A%20inherit%3B%0A%7D%0Acode%20span%2Ecv%
< script > / * !
2024-08-04 20:57:42 +02:00
* Bootstrap v5.3.1 (https://getbootstrap.com/)
* Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2023-11-17 13:42:11 +01:00
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
2024-08-04 20:57:42 +02:00
!function(t,e){"object"==typeof exports& & "undefined"!=typeof module?module.exports=e():"function"==typeof define& & define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap=e()}(this,(function(){"use strict";const t=new Map,e={set(e,i,n){t.has(e)||t.set(e,new Map);const s=t.get(e);s.has(i)||0===s.size?s.set(i,n):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(s.keys())[0]}.`)},get:(e,i)=>t.has(e)&&t.get(e).get(i)||null,remove(e,i){if(!t.has(e))return; const n=t.get(e);n.delete(i),0===n.size& & t.delete(e)}},i="transitionend",n=t=>(t& & window.CSS& & window.CSS.escape& & (t=t.replace(/#([^\s"#']+)/g,((t,e)=>`#${CSS.escape(e)}`))),t),s=t=>{t.dispatchEvent(new Event(i))},o=t=>!(!t||"object"!=typeof t)& & (void 0!==t.jquery& & (t=t[0]),void 0!==t.nodeType),r=t=>o(t)?t.jquery?t[0]:t:"string"==typeof t&&t.length>0?document.querySelector(n(t)):null,a=t=>{if(!o(t)||0===t.getClientRects().length)return!1; const e="visible"===getComputedStyle(t).getPropertyValue("visibility"),i=t.closest("details:not([open])");if(!i)return e;if(i!==t){const e=t.closest("summary");if(e&&e.parentNode!==i)return!1; if(null===e)return!1}return e},l=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")& & "false"!==t.getAttribute("disabled")),c=t=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?c(t.parentNode):null},h=()=>{},d=t=>{t.offsetHeight},u=()=>window.jQuery& & !document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,f=[],p=()=>"rtl"===document.documentElement.dir,m=t=>{var e;e=()=>{const e=u();if(e){const i=t.NAME,n=e.fn[i];e.fn[i]=t.jQueryInterface,e.fn[i].Constructor=t,e.fn[i].noConflict=()=>(e.fn[i]=n,t.jQueryInterface)}},"loading"===document.readyState?(f.length||document.addEventListener("DOMContentLoaded",(()=>{for(const t of f)t()})),f.push(e)):e()},g=(t,e=[],i=t)=>"function"==typeof t?t(...e):i,_=(t,e,n=!0)=>{if(!n)return void g(t);const o=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:i}=window.getComputedStyle(t);const n=Number.parseFloat(e),s=Number.parseFloat(i);return n||s?(e=e.split(",")[0],i=i.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(i))):0})(e)+5;let r=!1;const a=({target:n})=>{n===e&&(r=!0,e.removeEventListener(i,a),g(t))}; e.addEventListener(i,a),setTimeout((()=>{r||s(e)}),o)},b=(t,e,i,n)=>{const s=t.length;let o=t.indexOf(e);return-1===o?!i&&n?t[s-1]:t[0]:(o+=i?1:-1,n&&(o=(o+s)%s),t[Math.max(0,Math.min(o,s-1))])},v=/[^.]*(?=\..*)\.|.*/,y=/\..*/,w=/::\d+$/,A={}; let E=1;const T={mouseenter:"mouseover",mouseleave:"mouseout"},C=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function O(t,e){return e& & `${e}::${E++}`||t.uidEvent||E++}function x(t){const e=O(t);return t.uidEvent=e,A[e]=A[e]||{},A[e]}function k(t,e,i=null){return Object.values(t).find((t=>t.callable===e& & t.delegationSelector===i))}function L(t,e,i){const n="string"==typeof e,s=n?i:e||i;let o=I(t);return C.has(o)||(o=t),[n,s,o]}function S(t,e,i,n,s){if("string"!=typeof e||!t)return;let[o,r,a]=L(e,i,n);if(e in T){const t=t=>function(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget& & !e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};r=t(r)}const l=x(t),c=l[a]||(l[a]={}),h=k(c,r,o?i:null);if(h)return void(h.oneOff=h.oneOff&&s); const d=O(r,e.replace(v,"")),u=o?function(t,e,i){return function n(s){const o=t.querySelectorA
2023-11-17 13:42:11 +01:00
//# sourceMappingURL=bootstrap.bundle.min.js.map< / script >
2024-08-04 20:57:42 +02:00
< style type = "text/css" >
@font-face {
2023-11-17 13:42:11 +01:00
font-display: block;
font-family: "bootstrap-icons";
2024-08-04 20:57:42 +02:00
src: url(data:font/woff;base64,d09GRgABAAAAArBIAAsAAAAHTBwAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAADsAAABUIIslek9TLzIAAAFEAAAAQQAAAGA+ClMwY21hcAAAAYgAADPvAABxhmHwLL5nbHlmAAA1eAACMbMABhmoMsRg9GhlYWQAAmcsAAAAMgAAADZYrKBAaGhlYQACZ2AAAAAeAAAAJAJwCRFobXR4AAJngAAAAX4AACAEYQn+YWxvY2EAAmkAAAAU3wAAIAgYbUEsbWF4cAACfeAAAAAfAAAAIAk4AWtuYW1lAAJ+AAAAAT0AAAJqdjSTuXBvc3QAAn9AAAAxCAAAfIYrfg9LeJxjYGRgYOBiMGCwY2BycfMJYeDLSSzJY5BiYGGAAJA8MpsxJzM9kYEDxgPKsYBpDiBmg4gCACY7BUgAeJxjYGHUYZzAwMrAwLCP4RKQ1ILSExj4GHwZGJgYWJkZsIKANNcUhgMfGX8yM+oAudKM7gyyQJoRRRETACaFCcQAAAB4nO3dhf+U1boF8N0bFBXsFhMblLIFKUnpUrpDUEAMLEAkpMSWkpRSOhRFwQ6QEEQsQAkFBeadd2YAhfss1vkz7vnc7933Cmd+M/PuZ63HczwepZRXSllxvXBKlWittPxfqnhz+aP6xB+36qQTf9wVx+8J8ru0MvnCYXv8uFKHdP4ITvmHVuGUrJylVRl1syqryqnyqoKqqG5XlVRlVUVVVdVUdVVD3atqqlqqtqqj6qp66j5VXzVQDVUj1Vg1UU1VM9VctVAt1f3qAdVKtVZtVFvVTrVXHVRH1Ul1Vl1UV9VNdVc9VE/1oOqleqs+qq/qpx5R/dWj6jH1uHpCDVBPqqfU0+oZ9awaqAapwWqIGqqGqeFqpBqlRqsxaqx6UY1T49UENVFNUpPVW2qKmqqmqelqhpqp3laz1Gw1R81V89R8tUAtVIvUYrVELVXL1HK1Qr2n3lcr1Sr1kfpYrVZr1Fq1Tn2n1qsNaqPapL5Xm9UW9YPaqn5U29RP6he1Xe1QO9XvapfarfaovWqf2q/+Vv+oA+qgOqQyKlFZlaqcyquCOqyOqKPqX/WfOqa1Ntpqp70OOuoiuqg+SZ+si+lT9Kn6NF1cl9Cn6zP0mfosfbY+R5+rz9Pn6wv0hfoifbG+RJfUl+or9JX6en2DvlGX1mX0TfpmXVaX0+V1BV1R36pv03frSrqyvkdX0VV1S91Kd9XddHfdQ/fUD+peurd+SD+s++hHdH/9qH5MP66f0AP0k/op/bR+Rj+rB+pBerB+Tg/Rz+uhepgerkfoUXq0HqPH6hf1OP2Sflm/ol/Vr+nX9Rv6TT1eT9AT9SQ9Wb+lp+ipepqermfomfptPUvP1nP0XD1Pv6Pf1fP1Ar1UL9PL9Qr9nn5fr9Qf6A/1Kv2R/liv1mv0J/pT/Zn+XH+hv9Rf6a/1N/pbvVav09/p9XqD3qg36e/1Zr1Fb9U/6p/1Dr1T/6536z16r96n9+u/9T/6gD6oD+mMTnRW53VBH9ZH9FH9r/5PHzPaGGONM94EE00RU9ScZE42p5hTzWmmuClhTjdnmDPNWeZsc44515xnzjcXmAvNReZic4kpaS41l5nLzRXmSnOVKWWuNteYa8115gZT2pQzFcyt5jZT29QxdU09c5+pbxqYhqaRaWyamKammWluWpiW5n7zgGllWqtbTRvT1rQzHUxH08l0Nl1MV9PNdDc9TE/zoOllepuHzMOmj+lr+plHTH/zqHnMPG6eMAPMk+Yp87R5xjxrBppB5jkzxDxvhpphZrgZYV4wI80oM9qMMePMS+Zl84p51bxmXjdvmDfNRPOWmWJmmzlmrpln3jHvmgVmoVlkFpt15juz3mwwG80m873ZbLaYH8xW86PZZn4yP5tfzK/mN7Pd7DA7ze/mD7PL7DV/mr/MPrPf/G3+MQdM1qQmZ46af81/1lhrnfU22GiL2JNtMXuKPdWeZovbs+zZ9jx7vr3AXmgvshfbS2xJe6m9zJayV9vy9hZ7u61ua9h77X22vm1gG9rGtoltapvZ5raFbWnvt21sW9vOtrcdbEfbyfa2D9mHbR/b1/azj9j+9lH7mH3cPmEH2CftU/Zp+4x91g60g+xg+5wdYp+3Q+0wO9yOsC/YkXaUHW3H2LH2RTvOvmRftq/YV+1r9nX7hn3TjrcT7EQ7yU62b9kpdrqdYWfat+0sO9vOsXPtPPuOfdfOtwvsQrvILrZL7FK7zC63K+x79n270n5gP7Sr7Ef2Y7varrGf2E/tZ/Zz+4X90n5lv7bf2G/tWrvOfmfX2w32e7vZbrE/2K32R7vN/mR/tr/YX+1vdrvdYXfa3+0fdpfdbffYvfZP+5fdZ/fbv+0/9oA96C5zl7sr3JXuKlfKXe2ucde7G9zNrqwr58q7Cq6iu8Xd6m5zt7s73J3uLne3q+Qqu3tcDXevq+lqudqujqvr6rn7XBPX1DVzzV0L19I94Nq7Dq6T6+q6ux6up3vQ9XK93UPuYdfH9XX93COuvxvgnnRPuafdM+5ZN9ANcoPdc26Ie94NdcPccDfCveBGulFutHvRveReca+6N9xEN8lNdm+5KW6qe9vNcrPdHLfQLXLL3afuC/el+9p94751a906951b7za4zW6L2+p+dNvcT+5n94v71f3mtrsdbqf73f3hdrndbo/b6/50f7l9br/72/3jDriD7pDLuMRlXepyLu8K7rA74o66f91/7pg77pXX3njrnfc++OiL+KL+JH+yL+ZP8af603xxX8Kf7s/wZ/qz/Dn+XH+eP99f5C/2l/iS/lJ/mb/cX+Fv8KV9GX+Tv9mX9eX9Lf5Wf7u/w9/p7/J3+0q+sr/HV/PVfQ1/r6/t6/j7fH3fwDf0jXxz38K39Pf7B3wr39q38W19O9/ed/CdfGffxXf13X0P39s/5B/2j/j+foB/0j/ln/bP+Gf9EP+8H+qH+eF+hH/Bj/Sj/Gg/xo/1L/px/iX/sp/oJ/nJ/i0/xU/10/x0P8PP9G/7WX62n+ff8e/6+X6BX+gX+cX+Y/+p/9x/4b/xP/it/ke/zf/sf/G/+t/8dr/D7/S7/G6/x//l9/u//T/+gD/oD/mMT3zqc77gD/sj/j9/zB8PKhQNxcIpoXgoEc4MZ4WzwznhvHB+uCBcGC4KV4VS4epwTbg2XBeuDzeEG0PpUCbcFG4OZUO5UD7cHu4Id4a7Qp1QN9QLjULj0CQ0Dc1Ci9A6tAl9Qr/wSOgfHg2PhcfDE2FAeDI8FZ4Oz4Rnw8AwKAwOz4Uh4fkwNAwLw8OI8EJYHJaEpWFZWB5WhPfCB2FV+Ch8HFaHNeGT8Gn4LHwevghfhq/C1+Gb8G1YG9aF78L6sCFsDJvC92Fz+CFsDT+Gn8LP4Zfwa9gRfg9/hF1hd9gT9oY/w19hX9gf/g7/hAPhYDgUMiEb0pAL+VAIR8LR8G84Fo5HFXU00UUfQ4yxSCwaT4onx2LxlHhqPC0WjyXUuHh2PCeeG8+L58cL4oXxoniFLh+vjFfFUvHqeE28Ll4fb4g3xtKxTLwp3hzLxnKxfLwl3hpvi7fHO+Kd8a54d6wUK8d7YpVYNVaL1WPNWDfWi/fF+rFBbBgbxSaxaWwWm8cWsWW8Pz4QW8W2sV3sEXvGB2Ov2Ds+FB+OfeKA+GR8Kj4dB8ZB8bk4JD4fh8ZhcXgcEUfF0XFMHBtfjC/Fl+Mr8dX4WhwfJ8SJcVJ8K06JU+O0OD3OiG/HuXFefCe+G+fHj+LHcXX8NH4Wv4xfxa/jN/HbuDaui9/F9XFD3Bg3xe/j5rglbos/xZ/jL/HXuD3+HnfHv+LBeChmYhKzMRfzsRAPxyPxWDxeRKlv1LfqV/Wb/sEUM4PNVDPNTDczzEwzy8y3jexUO81utJtcfdfANXSN3Tj3g6/gq/jf/R9+r//THw3nhgqhYrgvNAgNQ8twf9gStsXHYxrqq3vUz75W3Gcy/mxf0b/i94VFYWc4HP6Lp8f98RN1rTlmjltlte3srnVdXDf3lb/Gf+U3+I1+k98Srow/xK3xP9mBv1Jfqz/VX1rpa81Bc8gc
2023-11-17 13:42:11 +01:00
}
.bi::before,
[class^="bi-"]::before,
[class*=" bi-"]::before {
display: inline-block;
font-family: bootstrap-icons !important;
font-style: normal;
font-weight: normal !important;
font-variant: normal;
text-transform: none;
line-height: 1;
vertical-align: -.125em;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.bi-123::before { content: "\f67f"; }
.bi-alarm-fill::before { content: "\f101"; }
.bi-alarm::before { content: "\f102"; }
.bi-align-bottom::before { content: "\f103"; }
.bi-align-center::before { content: "\f104"; }
.bi-align-end::before { content: "\f105"; }
.bi-align-middle::before { content: "\f106"; }
.bi-align-start::before { content: "\f107"; }
.bi-align-top::before { content: "\f108"; }
.bi-alt::before { content: "\f109"; }
.bi-app-indicator::before { content: "\f10a"; }
.bi-app::before { content: "\f10b"; }
.bi-archive-fill::before { content: "\f10c"; }
.bi-archive::before { content: "\f10d"; }
.bi-arrow-90deg-down::before { content: "\f10e"; }
.bi-arrow-90deg-left::before { content: "\f10f"; }
.bi-arrow-90deg-right::before { content: "\f110"; }
.bi-arrow-90deg-up::before { content: "\f111"; }
.bi-arrow-bar-down::before { content: "\f112"; }
.bi-arrow-bar-left::before { content: "\f113"; }
.bi-arrow-bar-right::before { content: "\f114"; }
.bi-arrow-bar-up::before { content: "\f115"; }
.bi-arrow-clockwise::before { content: "\f116"; }
.bi-arrow-counterclockwise::before { content: "\f117"; }
.bi-arrow-down-circle-fill::before { content: "\f118"; }
.bi-arrow-down-circle::before { content: "\f119"; }
.bi-arrow-down-left-circle-fill::before { content: "\f11a"; }
.bi-arrow-down-left-circle::before { content: "\f11b"; }
.bi-arrow-down-left-square-fill::before { content: "\f11c"; }
.bi-arrow-down-left-square::before { content: "\f11d"; }
.bi-arrow-down-left::before { content: "\f11e"; }
.bi-arrow-down-right-circle-fill::before { content: "\f11f"; }
.bi-arrow-down-right-circle::before { content: "\f120"; }
.bi-arrow-down-right-square-fill::before { content: "\f121"; }
.bi-arrow-down-right-square::before { content: "\f122"; }
.bi-arrow-down-right::before { content: "\f123"; }
.bi-arrow-down-short::before { content: "\f124"; }
.bi-arrow-down-square-fill::before { content: "\f125"; }
.bi-arrow-down-square::before { content: "\f126"; }
.bi-arrow-down-up::before { content: "\f127"; }
.bi-arrow-down::before { content: "\f128"; }
.bi-arrow-left-circle-fill::before { content: "\f129"; }
.bi-arrow-left-circle::before { content: "\f12a"; }
.bi-arrow-left-right::before { content: "\f12b"; }
.bi-arrow-left-short::before { content: "\f12c"; }
.bi-arrow-left-square-fill::before { content: "\f12d"; }
.bi-arrow-left-square::before { content: "\f12e"; }
.bi-arrow-left::before { content: "\f12f"; }
.bi-arrow-repeat::before { content: "\f130"; }
.bi-arrow-return-left::before { content: "\f131"; }
.bi-arrow-return-right::before { content: "\f132"; }
.bi-arrow-right-circle-fill::before { content: "\f133"; }
.bi-arrow-right-circle::before { content: "\f134"; }
.bi-arrow-right-short::before { content: "\f135"; }
.bi-arrow-right-square-fill::before { content: "\f136"; }
.bi-arrow-right-square::before { content: "\f137"; }
.bi-arrow-right::before { content: "\f138"; }
.bi-arrow-up-circle-fill::before { content: "\f139"; }
.bi-arrow-up-circle::before { content: "\f13a"; }
.bi-arrow-up-left-circle-fill::before { content: "\f13b"; }
.bi-arrow-up-left-circle::before { content: "\f13c"; }
.bi-arrow-up-left-square-fill::before { content: "\f13d"; }
.bi-arrow-up-left-square::before { content: "\f13e"; }
.bi-arrow-up-left::before { content: "\f13f"; }
.bi-arrow-up-right-circle-fill::before { content: "\f140"; }
.bi-arrow-up-right-circle::before { content: "\f141"; }
.bi-arrow-up-right-square-fill::before { content: "\f142"; }
.bi-arrow-up-right-square::before { content: "\f143"; }
.bi-arrow-up-right::before { content: "\f144"; }
.bi-arrow-up-short::before { content: "\f145"; }
.bi-arrow-up-square-fill::before { content: "\f146"; }
.bi-arrow-up-square::before { content: "\f147"; }
.bi-arrow-up::before { content: "\f148"; }
.bi-arrows-angle-contract::before { content: "\f149"; }
.bi-arrows-angle-expand::before { content: "\f14a"; }
.bi-arrows-collapse::before { content: "\f14b"; }
.bi-arrows-expand::before { content: "\f14c"; }
.bi-arrows-fullscreen::before { content: "\f14d"; }
.bi-arrows-move::before { content: "\f14e"; }
.bi-aspect-ratio-fill::before { content: "\f14f"; }
.bi-aspect-ratio::before { content: "\f150"; }
.bi-asterisk::before { content: "\f151"; }
.bi-at::before { content: "\f152"; }
.bi-award-fill::before { content: "\f153"; }
.bi-award::before { content: "\f154"; }
.bi-back::before { content: "\f155"; }
.bi-backspace-fill::before { content: "\f156"; }
.bi-backspace-reverse-fill::before { content: "\f157"; }
.bi-backspace-reverse::before { content: "\f158"; }
.bi-backspace::before { content: "\f159"; }
.bi-badge-3d-fill::before { content: "\f15a"; }
.bi-badge-3d::before { content: "\f15b"; }
.bi-badge-4k-fill::before { content: "\f15c"; }
.bi-badge-4k::before { content: "\f15d"; }
.bi-badge-8k-fill::before { content: "\f15e"; }
.bi-badge-8k::before { content: "\f15f"; }
.bi-badge-ad-fill::before { content: "\f160"; }
.bi-badge-ad::before { content: "\f161"; }
.bi-badge-ar-fill::before { content: "\f162"; }
.bi-badge-ar::before { content: "\f163"; }
.bi-badge-cc-fill::before { content: "\f164"; }
.bi-badge-cc::before { content: "\f165"; }
.bi-badge-hd-fill::before { content: "\f166"; }
.bi-badge-hd::before { content: "\f167"; }
.bi-badge-tm-fill::before { content: "\f168"; }
.bi-badge-tm::before { content: "\f169"; }
.bi-badge-vo-fill::before { content: "\f16a"; }
.bi-badge-vo::before { content: "\f16b"; }
.bi-badge-vr-fill::before { content: "\f16c"; }
.bi-badge-vr::before { content: "\f16d"; }
.bi-badge-wc-fill::before { content: "\f16e"; }
.bi-badge-wc::before { content: "\f16f"; }
.bi-bag-check-fill::before { content: "\f170"; }
.bi-bag-check::before { content: "\f171"; }
.bi-bag-dash-fill::before { content: "\f172"; }
.bi-bag-dash::before { content: "\f173"; }
.bi-bag-fill::before { content: "\f174"; }
.bi-bag-plus-fill::before { content: "\f175"; }
.bi-bag-plus::before { content: "\f176"; }
.bi-bag-x-fill::before { content: "\f177"; }
.bi-bag-x::before { content: "\f178"; }
.bi-bag::before { content: "\f179"; }
.bi-bar-chart-fill::before { content: "\f17a"; }
.bi-bar-chart-line-fill::before { content: "\f17b"; }
.bi-bar-chart-line::before { content: "\f17c"; }
.bi-bar-chart-steps::before { content: "\f17d"; }
.bi-bar-chart::before { content: "\f17e"; }
.bi-basket-fill::before { content: "\f17f"; }
.bi-basket::before { content: "\f180"; }
.bi-basket2-fill::before { content: "\f181"; }
.bi-basket2::before { content: "\f182"; }
.bi-basket3-fill::before { content: "\f183"; }
.bi-basket3::before { content: "\f184"; }
.bi-battery-charging::before { content: "\f185"; }
.bi-battery-full::before { content: "\f186"; }
.bi-battery-half::before { content: "\f187"; }
.bi-battery::before { content: "\f188"; }
.bi-bell-fill::before { content: "\f189"; }
.bi-bell::before { content: "\f18a"; }
.bi-bezier::before { content: "\f18b"; }
.bi-bezier2::before { content: "\f18c"; }
.bi-bicycle::before { content: "\f18d"; }
.bi-binoculars-fill::before { content: "\f18e"; }
.bi-binoculars::before { content: "\f18f"; }
.bi-blockquote-left::before { content: "\f190"; }
.bi-blockquote-right::before { content: "\f191"; }
.bi-book-fill::before { content: "\f192"; }
.bi-book-half::before { content: "\f193"; }
.bi-book::before { content: "\f194"; }
.bi-bookmark-check-fill::before { content: "\f195"; }
.bi-bookmark-check::before { content: "\f196"; }
.bi-bookmark-dash-fill::before { content: "\f197"; }
.bi-bookmark-dash::before { content: "\f198"; }
.bi-bookmark-fill::before { content: "\f199"; }
.bi-bookmark-heart-fill::before { content: "\f19a"; }
.bi-bookmark-heart::before { content: "\f19b"; }
.bi-bookmark-plus-fill::before { content: "\f19c"; }
.bi-bookmark-plus::before { content: "\f19d"; }
.bi-bookmark-star-fill::before { content: "\f19e"; }
.bi-bookmark-star::before { content: "\f19f"; }
.bi-bookmark-x-fill::before { content: "\f1a0"; }
.bi-bookmark-x::before { content: "\f1a1"; }
.bi-bookmark::before { content: "\f1a2"; }
.bi-bookmarks-fill::before { content: "\f1a3"; }
.bi-bookmarks::before { content: "\f1a4"; }
.bi-bookshelf::before { content: "\f1a5"; }
.bi-bootstrap-fill::before { content: "\f1a6"; }
.bi-bootstrap-reboot::before { content: "\f1a7"; }
.bi-bootstrap::before { content: "\f1a8"; }
.bi-border-all::before { content: "\f1a9"; }
.bi-border-bottom::before { content: "\f1aa"; }
.bi-border-center::before { content: "\f1ab"; }
.bi-border-inner::before { content: "\f1ac"; }
.bi-border-left::before { content: "\f1ad"; }
.bi-border-middle::before { content: "\f1ae"; }
.bi-border-outer::before { content: "\f1af"; }
.bi-border-right::before { content: "\f1b0"; }
.bi-border-style::before { content: "\f1b1"; }
.bi-border-top::before { content: "\f1b2"; }
.bi-border-width::before { content: "\f1b3"; }
.bi-border::before { content: "\f1b4"; }
.bi-bounding-box-circles::before { content: "\f1b5"; }
.bi-bounding-box::before { content: "\f1b6"; }
.bi-box-arrow-down-left::before { content: "\f1b7"; }
.bi-box-arrow-down-right::before { content: "\f1b8"; }
.bi-box-arrow-down::before { content: "\f1b9"; }
.bi-box-arrow-in-down-left::before { content: "\f1ba"; }
.bi-box-arrow-in-down-right::before { content: "\f1bb"; }
.bi-box-arrow-in-down::before { content: "\f1bc"; }
.bi-box-arrow-in-left::before { content: "\f1bd"; }
.bi-box-arrow-in-right::before { content: "\f1be"; }
.bi-box-arrow-in-up-left::before { content: "\f1bf"; }
.bi-box-arrow-in-up-right::before { content: "\f1c0"; }
.bi-box-arrow-in-up::before { content: "\f1c1"; }
.bi-box-arrow-left::before { content: "\f1c2"; }
.bi-box-arrow-right::before { content: "\f1c3"; }
.bi-box-arrow-up-left::before { content: "\f1c4"; }
.bi-box-arrow-up-right::before { content: "\f1c5"; }
.bi-box-arrow-up::before { content: "\f1c6"; }
.bi-box-seam::before { content: "\f1c7"; }
.bi-box::before { content: "\f1c8"; }
.bi-braces::before { content: "\f1c9"; }
.bi-bricks::before { content: "\f1ca"; }
.bi-briefcase-fill::before { content: "\f1cb"; }
.bi-briefcase::before { content: "\f1cc"; }
.bi-brightness-alt-high-fill::before { content: "\f1cd"; }
.bi-brightness-alt-high::before { content: "\f1ce"; }
.bi-brightness-alt-low-fill::before { content: "\f1cf"; }
.bi-brightness-alt-low::before { content: "\f1d0"; }
.bi-brightness-high-fill::before { content: "\f1d1"; }
.bi-brightness-high::before { content: "\f1d2"; }
.bi-brightness-low-fill::before { content: "\f1d3"; }
.bi-brightness-low::before { content: "\f1d4"; }
.bi-broadcast-pin::before { content: "\f1d5"; }
.bi-broadcast::before { content: "\f1d6"; }
.bi-brush-fill::before { content: "\f1d7"; }
.bi-brush::before { content: "\f1d8"; }
.bi-bucket-fill::before { content: "\f1d9"; }
.bi-bucket::before { content: "\f1da"; }
.bi-bug-fill::before { content: "\f1db"; }
.bi-bug::before { content: "\f1dc"; }
.bi-building::before { content: "\f1dd"; }
.bi-bullseye::before { content: "\f1de"; }
.bi-calculator-fill::before { content: "\f1df"; }
.bi-calculator::before { content: "\f1e0"; }
.bi-calendar-check-fill::before { content: "\f1e1"; }
.bi-calendar-check::before { content: "\f1e2"; }
.bi-calendar-date-fill::before { content: "\f1e3"; }
.bi-calendar-date::before { content: "\f1e4"; }
.bi-calendar-day-fill::before { content: "\f1e5"; }
.bi-calendar-day::before { content: "\f1e6"; }
.bi-calendar-event-fill::before { content: "\f1e7"; }
.bi-calendar-event::before { content: "\f1e8"; }
.bi-calendar-fill::before { content: "\f1e9"; }
.bi-calendar-minus-fill::before { content: "\f1ea"; }
.bi-calendar-minus::before { content: "\f1eb"; }
.bi-calendar-month-fill::before { content: "\f1ec"; }
.bi-calendar-month::before { content: "\f1ed"; }
.bi-calendar-plus-fill::before { content: "\f1ee"; }
.bi-calendar-plus::before { content: "\f1ef"; }
.bi-calendar-range-fill::before { content: "\f1f0"; }
.bi-calendar-range::before { content: "\f1f1"; }
.bi-calendar-week-fill::before { content: "\f1f2"; }
.bi-calendar-week::before { content: "\f1f3"; }
.bi-calendar-x-fill::before { content: "\f1f4"; }
.bi-calendar-x::before { content: "\f1f5"; }
.bi-calendar::before { content: "\f1f6"; }
.bi-calendar2-check-fill::before { content: "\f1f7"; }
.bi-calendar2-check::before { content: "\f1f8"; }
.bi-calendar2-date-fill::before { content: "\f1f9"; }
.bi-calendar2-date::before { content: "\f1fa"; }
.bi-calendar2-day-fill::before { content: "\f1fb"; }
.bi-calendar2-day::before { content: "\f1fc"; }
.bi-calendar2-event-fill::before { content: "\f1fd"; }
.bi-calendar2-event::before { content: "\f1fe"; }
.bi-calendar2-fill::before { content: "\f1ff"; }
.bi-calendar2-minus-fill::before { content: "\f200"; }
.bi-calendar2-minus::before { content: "\f201"; }
.bi-calendar2-month-fill::before { content: "\f202"; }
.bi-calendar2-month::before { content: "\f203"; }
.bi-calendar2-plus-fill::before { content: "\f204"; }
.bi-calendar2-plus::before { content: "\f205"; }
.bi-calendar2-range-fill::before { content: "\f206"; }
.bi-calendar2-range::before { content: "\f207"; }
.bi-calendar2-week-fill::before { content: "\f208"; }
.bi-calendar2-week::before { content: "\f209"; }
.bi-calendar2-x-fill::before { content: "\f20a"; }
.bi-calendar2-x::before { content: "\f20b"; }
.bi-calendar2::before { content: "\f20c"; }
.bi-calendar3-event-fill::before { content: "\f20d"; }
.bi-calendar3-event::before { content: "\f20e"; }
.bi-calendar3-fill::before { content: "\f20f"; }
.bi-calendar3-range-fill::before { content: "\f210"; }
.bi-calendar3-range::before { content: "\f211"; }
.bi-calendar3-week-fill::before { content: "\f212"; }
.bi-calendar3-week::before { content: "\f213"; }
.bi-calendar3::before { content: "\f214"; }
.bi-calendar4-event::before { content: "\f215"; }
.bi-calendar4-range::before { content: "\f216"; }
.bi-calendar4-week::before { content: "\f217"; }
.bi-calendar4::before { content: "\f218"; }
.bi-camera-fill::before { content: "\f219"; }
.bi-camera-reels-fill::before { content: "\f21a"; }
.bi-camera-reels::before { content: "\f21b"; }
.bi-camera-video-fill::before { content: "\f21c"; }
.bi-camera-video-off-fill::before { content: "\f21d"; }
.bi-camera-video-off::before { content: "\f21e"; }
.bi-camera-video::before { content: "\f21f"; }
.bi-camera::before { content: "\f220"; }
.bi-camera2::before { content: "\f221"; }
.bi-capslock-fill::before { content: "\f222"; }
.bi-capslock::before { content: "\f223"; }
.bi-card-checklist::before { content: "\f224"; }
.bi-card-heading::before { content: "\f225"; }
.bi-card-image::before { content: "\f226"; }
.bi-card-list::before { content: "\f227"; }
.bi-card-text::before { content: "\f228"; }
.bi-caret-down-fill::before { content: "\f229"; }
.bi-caret-down-square-fill::before { content: "\f22a"; }
.bi-caret-down-square::before { content: "\f22b"; }
.bi-caret-down::before { content: "\f22c"; }
.bi-caret-left-fill::before { content: "\f22d"; }
.bi-caret-left-square-fill::before { content: "\f22e"; }
.bi-caret-left-square::before { content: "\f22f"; }
.bi-caret-left::before { content: "\f230"; }
.bi-caret-right-fill::before { content: "\f231"; }
.bi-caret-right-square-fill::before { content: "\f232"; }
.bi-caret-right-square::before { content: "\f233"; }
.bi-caret-right::before { content: "\f234"; }
.bi-caret-up-fill::before { content: "\f235"; }
.bi-caret-up-square-fill::before { content: "\f236"; }
.bi-caret-up-square::before { content: "\f237"; }
.bi-caret-up::before { content: "\f238"; }
.bi-cart-check-fill::before { content: "\f239"; }
.bi-cart-check::before { content: "\f23a"; }
.bi-cart-dash-fill::before { content: "\f23b"; }
.bi-cart-dash::before { content: "\f23c"; }
.bi-cart-fill::before { content: "\f23d"; }
.bi-cart-plus-fill::before { content: "\f23e"; }
.bi-cart-plus::before { content: "\f23f"; }
.bi-cart-x-fill::before { content: "\f240"; }
.bi-cart-x::before { content: "\f241"; }
.bi-cart::before { content: "\f242"; }
.bi-cart2::before { content: "\f243"; }
.bi-cart3::before { content: "\f244"; }
.bi-cart4::before { content: "\f245"; }
.bi-cash-stack::before { content: "\f246"; }
.bi-cash::before { content: "\f247"; }
.bi-cast::before { content: "\f248"; }
.bi-chat-dots-fill::before { content: "\f249"; }
.bi-chat-dots::before { content: "\f24a"; }
.bi-chat-fill::before { content: "\f24b"; }
.bi-chat-left-dots-fill::before { content: "\f24c"; }
.bi-chat-left-dots::before { content: "\f24d"; }
.bi-chat-left-fill::before { content: "\f24e"; }
.bi-chat-left-quote-fill::before { content: "\f24f"; }
.bi-chat-left-quote::before { content: "\f250"; }
.bi-chat-left-text-fill::before { content: "\f251"; }
.bi-chat-left-text::before { content: "\f252"; }
.bi-chat-left::before { content: "\f253"; }
.bi-chat-quote-fill::before { content: "\f254"; }
.bi-chat-quote::before { content: "\f255"; }
.bi-chat-right-dots-fill::before { content: "\f256"; }
.bi-chat-right-dots::before { content: "\f257"; }
.bi-chat-right-fill::before { content: "\f258"; }
.bi-chat-right-quote-fill::before { content: "\f259"; }
.bi-chat-right-quote::before { content: "\f25a"; }
.bi-chat-right-text-fill::before { content: "\f25b"; }
.bi-chat-right-text::before { content: "\f25c"; }
.bi-chat-right::before { content: "\f25d"; }
.bi-chat-square-dots-fill::before { content: "\f25e"; }
.bi-chat-square-dots::before { content: "\f25f"; }
.bi-chat-square-fill::before { content: "\f260"; }
.bi-chat-square-quote-fill::before { content: "\f261"; }
.bi-chat-square-quote::before { content: "\f262"; }
.bi-chat-square-text-fill::before { content: "\f263"; }
.bi-chat-square-text::before { content: "\f264"; }
.bi-chat-square::before { content: "\f265"; }
.bi-chat-text-fill::before { content: "\f266"; }
.bi-chat-text::before { content: "\f267"; }
.bi-chat::before { content: "\f268"; }
.bi-check-all::before { content: "\f269"; }
.bi-check-circle-fill::before { content: "\f26a"; }
.bi-check-circle::before { content: "\f26b"; }
.bi-check-square-fill::before { content: "\f26c"; }
.bi-check-square::before { content: "\f26d"; }
.bi-check::before { content: "\f26e"; }
.bi-check2-all::before { content: "\f26f"; }
.bi-check2-circle::before { content: "\f270"; }
.bi-check2-square::before { content: "\f271"; }
.bi-check2::before { content: "\f272"; }
.bi-chevron-bar-contract::before { content: "\f273"; }
.bi-chevron-bar-down::before { content: "\f274"; }
.bi-chevron-bar-expand::before { content: "\f275"; }
.bi-chevron-bar-left::before { content: "\f276"; }
.bi-chevron-bar-right::before { content: "\f277"; }
.bi-chevron-bar-up::before { content: "\f278"; }
.bi-chevron-compact-down::before { content: "\f279"; }
.bi-chevron-compact-left::before { content: "\f27a"; }
.bi-chevron-compact-right::before { content: "\f27b"; }
.bi-chevron-compact-up::before { content: "\f27c"; }
.bi-chevron-contract::before { content: "\f27d"; }
.bi-chevron-double-down::before { content: "\f27e"; }
.bi-chevron-double-left::before { content: "\f27f"; }
.bi-chevron-double-right::before { content: "\f280"; }
.bi-chevron-double-up::before { content: "\f281"; }
.bi-chevron-down::before { content: "\f282"; }
.bi-chevron-expand::before { content: "\f283"; }
.bi-chevron-left::before { content: "\f284"; }
.bi-chevron-right::before { content: "\f285"; }
.bi-chevron-up::before { content: "\f286"; }
.bi-circle-fill::before { content: "\f287"; }
.bi-circle-half::before { content: "\f288"; }
.bi-circle-square::before { content: "\f289"; }
.bi-circle::before { content: "\f28a"; }
.bi-clipboard-check::before { content: "\f28b"; }
.bi-clipboard-data::before { content: "\f28c"; }
.bi-clipboard-minus::before { content: "\f28d"; }
.bi-clipboard-plus::before { content: "\f28e"; }
.bi-clipboard-x::before { content: "\f28f"; }
.bi-clipboard::before { content: "\f290"; }
.bi-clock-fill::before { content: "\f291"; }
.bi-clock-history::before { content: "\f292"; }
.bi-clock::before { content: "\f293"; }
.bi-cloud-arrow-down-fill::before { content: "\f294"; }
.bi-cloud-arrow-down::before { content: "\f295"; }
.bi-cloud-arrow-up-fill::before { content: "\f296"; }
.bi-cloud-arrow-up::before { content: "\f297"; }
.bi-cloud-check-fill::before { content: "\f298"; }
.bi-cloud-check::before { content: "\f299"; }
.bi-cloud-download-fill::before { content: "\f29a"; }
.bi-cloud-download::before { content: "\f29b"; }
.bi-cloud-drizzle-fill::before { content: "\f29c"; }
.bi-cloud-drizzle::before { content: "\f29d"; }
.bi-cloud-fill::before { content: "\f29e"; }
.bi-cloud-fog-fill::before { content: "\f29f"; }
.bi-cloud-fog::before { content: "\f2a0"; }
.bi-cloud-fog2-fill::before { content: "\f2a1"; }
.bi-cloud-fog2::before { content: "\f2a2"; }
.bi-cloud-hail-fill::before { content: "\f2a3"; }
.bi-cloud-hail::before { content: "\f2a4"; }
.bi-cloud-haze-fill::before { content: "\f2a6"; }
.bi-cloud-haze::before { content: "\f2a7"; }
.bi-cloud-haze2-fill::before { content: "\f2a8"; }
.bi-cloud-lightning-fill::before { content: "\f2a9"; }
.bi-cloud-lightning-rain-fill::before { content: "\f2aa"; }
.bi-cloud-lightning-rain::before { content: "\f2ab"; }
.bi-cloud-lightning::before { content: "\f2ac"; }
.bi-cloud-minus-fill::before { content: "\f2ad"; }
.bi-cloud-minus::before { content: "\f2ae"; }
.bi-cloud-moon-fill::before { content: "\f2af"; }
.bi-cloud-moon::before { content: "\f2b0"; }
.bi-cloud-plus-fill::before { content: "\f2b1"; }
.bi-cloud-plus::before { content: "\f2b2"; }
.bi-cloud-rain-fill::before { content: "\f2b3"; }
.bi-cloud-rain-heavy-fill::before { content: "\f2b4"; }
.bi-cloud-rain-heavy::before { content: "\f2b5"; }
.bi-cloud-rain::before { content: "\f2b6"; }
.bi-cloud-slash-fill::before { content: "\f2b7"; }
.bi-cloud-slash::before { content: "\f2b8"; }
.bi-cloud-sleet-fill::before { content: "\f2b9"; }
.bi-cloud-sleet::before { content: "\f2ba"; }
.bi-cloud-snow-fill::before { content: "\f2bb"; }
.bi-cloud-snow::before { content: "\f2bc"; }
.bi-cloud-sun-fill::before { content: "\f2bd"; }
.bi-cloud-sun::before { content: "\f2be"; }
.bi-cloud-upload-fill::before { content: "\f2bf"; }
.bi-cloud-upload::before { content: "\f2c0"; }
.bi-cloud::before { content: "\f2c1"; }
.bi-clouds-fill::before { content: "\f2c2"; }
.bi-clouds::before { content: "\f2c3"; }
.bi-cloudy-fill::before { content: "\f2c4"; }
.bi-cloudy::before { content: "\f2c5"; }
.bi-code-slash::before { content: "\f2c6"; }
.bi-code-square::before { content: "\f2c7"; }
.bi-code::before { content: "\f2c8"; }
.bi-collection-fill::before { content: "\f2c9"; }
.bi-collection-play-fill::before { content: "\f2ca"; }
.bi-collection-play::before { content: "\f2cb"; }
.bi-collection::before { content: "\f2cc"; }
.bi-columns-gap::before { content: "\f2cd"; }
.bi-columns::before { content: "\f2ce"; }
.bi-command::before { content: "\f2cf"; }
.bi-compass-fill::before { content: "\f2d0"; }
.bi-compass::before { content: "\f2d1"; }
.bi-cone-striped::before { content: "\f2d2"; }
.bi-cone::before { content: "\f2d3"; }
.bi-controller::before { content: "\f2d4"; }
.bi-cpu-fill::before { content: "\f2d5"; }
.bi-cpu::before { content: "\f2d6"; }
.bi-credit-card-2-back-fill::before { content: "\f2d7"; }
.bi-credit-card-2-back::before { content: "\f2d8"; }
.bi-credit-card-2-front-fill::before { content: "\f2d9"; }
.bi-credit-card-2-front::before { content: "\f2da"; }
.bi-credit-card-fill::before { content: "\f2db"; }
.bi-credit-card::before { content: "\f2dc"; }
.bi-crop::before { content: "\f2dd"; }
.bi-cup-fill::before { content: "\f2de"; }
.bi-cup-straw::before { content: "\f2df"; }
.bi-cup::before { content: "\f2e0"; }
.bi-cursor-fill::before { content: "\f2e1"; }
.bi-cursor-text::before { content: "\f2e2"; }
.bi-cursor::before { content: "\f2e3"; }
.bi-dash-circle-dotted::before { content: "\f2e4"; }
.bi-dash-circle-fill::before { content: "\f2e5"; }
.bi-dash-circle::before { content: "\f2e6"; }
.bi-dash-square-dotted::before { content: "\f2e7"; }
.bi-dash-square-fill::before { content: "\f2e8"; }
.bi-dash-square::before { content: "\f2e9"; }
.bi-dash::before { content: "\f2ea"; }
.bi-diagram-2-fill::before { content: "\f2eb"; }
.bi-diagram-2::before { content: "\f2ec"; }
.bi-diagram-3-fill::before { content: "\f2ed"; }
.bi-diagram-3::before { content: "\f2ee"; }
.bi-diamond-fill::before { content: "\f2ef"; }
.bi-diamond-half::before { content: "\f2f0"; }
.bi-diamond::before { content: "\f2f1"; }
.bi-dice-1-fill::before { content: "\f2f2"; }
.bi-dice-1::before { content: "\f2f3"; }
.bi-dice-2-fill::before { content: "\f2f4"; }
.bi-dice-2::before { content: "\f2f5"; }
.bi-dice-3-fill::before { content: "\f2f6"; }
.bi-dice-3::before { content: "\f2f7"; }
.bi-dice-4-fill::before { content: "\f2f8"; }
.bi-dice-4::before { content: "\f2f9"; }
.bi-dice-5-fill::before { content: "\f2fa"; }
.bi-dice-5::before { content: "\f2fb"; }
.bi-dice-6-fill::before { content: "\f2fc"; }
.bi-dice-6::before { content: "\f2fd"; }
.bi-disc-fill::before { content: "\f2fe"; }
.bi-disc::before { content: "\f2ff"; }
.bi-discord::before { content: "\f300"; }
.bi-display-fill::before { content: "\f301"; }
.bi-display::before { content: "\f302"; }
.bi-distribute-horizontal::before { content: "\f303"; }
.bi-distribute-vertical::before { content: "\f304"; }
.bi-door-closed-fill::before { content: "\f305"; }
.bi-door-closed::before { content: "\f306"; }
.bi-door-open-fill::before { content: "\f307"; }
.bi-door-open::before { content: "\f308"; }
.bi-dot::before { content: "\f309"; }
.bi-download::before { content: "\f30a"; }
.bi-droplet-fill::before { content: "\f30b"; }
.bi-droplet-half::before { content: "\f30c"; }
.bi-droplet::before { content: "\f30d"; }
.bi-earbuds::before { content: "\f30e"; }
.bi-easel-fill::before { content: "\f30f"; }
.bi-easel::before { content: "\f310"; }
.bi-egg-fill::before { content: "\f311"; }
.bi-egg-fried::before { content: "\f312"; }
.bi-egg::before { content: "\f313"; }
.bi-eject-fill::before { content: "\f314"; }
.bi-eject::before { content: "\f315"; }
.bi-emoji-angry-fill::before { content: "\f316"; }
.bi-emoji-angry::before { content: "\f317"; }
.bi-emoji-dizzy-fill::before { content: "\f318"; }
.bi-emoji-dizzy::before { content: "\f319"; }
.bi-emoji-expressionless-fill::before { content: "\f31a"; }
.bi-emoji-expressionless::before { content: "\f31b"; }
.bi-emoji-frown-fill::before { content: "\f31c"; }
.bi-emoji-frown::before { content: "\f31d"; }
.bi-emoji-heart-eyes-fill::before { content: "\f31e"; }
.bi-emoji-heart-eyes::before { content: "\f31f"; }
.bi-emoji-laughing-fill::before { content: "\f320"; }
.bi-emoji-laughing::before { content: "\f321"; }
.bi-emoji-neutral-fill::before { content: "\f322"; }
.bi-emoji-neutral::before { content: "\f323"; }
.bi-emoji-smile-fill::before { content: "\f324"; }
.bi-emoji-smile-upside-down-fill::before { content: "\f325"; }
.bi-emoji-smile-upside-down::before { content: "\f326"; }
.bi-emoji-smile::before { content: "\f327"; }
.bi-emoji-sunglasses-fill::before { content: "\f328"; }
.bi-emoji-sunglasses::before { content: "\f329"; }
.bi-emoji-wink-fill::before { content: "\f32a"; }
.bi-emoji-wink::before { content: "\f32b"; }
.bi-envelope-fill::before { content: "\f32c"; }
.bi-envelope-open-fill::before { content: "\f32d"; }
.bi-envelope-open::before { content: "\f32e"; }
.bi-envelope::before { content: "\f32f"; }
.bi-eraser-fill::before { content: "\f330"; }
.bi-eraser::before { content: "\f331"; }
.bi-exclamation-circle-fill::before { content: "\f332"; }
.bi-exclamation-circle::before { content: "\f333"; }
.bi-exclamation-diamond-fill::before { content: "\f334"; }
.bi-exclamation-diamond::before { content: "\f335"; }
.bi-exclamation-octagon-fill::before { content: "\f336"; }
.bi-exclamation-octagon::before { content: "\f337"; }
.bi-exclamation-square-fill::before { content: "\f338"; }
.bi-exclamation-square::before { content: "\f339"; }
.bi-exclamation-triangle-fill::before { content: "\f33a"; }
.bi-exclamation-triangle::before { content: "\f33b"; }
.bi-exclamation::before { content: "\f33c"; }
.bi-exclude::before { content: "\f33d"; }
.bi-eye-fill::before { content: "\f33e"; }
.bi-eye-slash-fill::before { content: "\f33f"; }
.bi-eye-slash::before { content: "\f340"; }
.bi-eye::before { content: "\f341"; }
.bi-eyedropper::before { content: "\f342"; }
.bi-eyeglasses::before { content: "\f343"; }
.bi-facebook::before { content: "\f344"; }
.bi-file-arrow-down-fill::before { content: "\f345"; }
.bi-file-arrow-down::before { content: "\f346"; }
.bi-file-arrow-up-fill::before { content: "\f347"; }
.bi-file-arrow-up::before { content: "\f348"; }
.bi-file-bar-graph-fill::before { content: "\f349"; }
.bi-file-bar-graph::before { content: "\f34a"; }
.bi-file-binary-fill::before { content: "\f34b"; }
.bi-file-binary::before { content: "\f34c"; }
.bi-file-break-fill::before { content: "\f34d"; }
.bi-file-break::before { content: "\f34e"; }
.bi-file-check-fill::before { content: "\f34f"; }
.bi-file-check::before { content: "\f350"; }
.bi-file-code-fill::before { content: "\f351"; }
.bi-file-code::before { content: "\f352"; }
.bi-file-diff-fill::before { content: "\f353"; }
.bi-file-diff::before { content: "\f354"; }
.bi-file-earmark-arrow-down-fill::before { content: "\f355"; }
.bi-file-earmark-arrow-down::before { content: "\f356"; }
.bi-file-earmark-arrow-up-fill::before { content: "\f357"; }
.bi-file-earmark-arrow-up::before { content: "\f358"; }
.bi-file-earmark-bar-graph-fill::before { content: "\f359"; }
.bi-file-earmark-bar-graph::before { content: "\f35a"; }
.bi-file-earmark-binary-fill::before { content: "\f35b"; }
.bi-file-earmark-binary::before { content: "\f35c"; }
.bi-file-earmark-break-fill::before { content: "\f35d"; }
.bi-file-earmark-break::before { content: "\f35e"; }
.bi-file-earmark-check-fill::before { content: "\f35f"; }
.bi-file-earmark-check::before { content: "\f360"; }
.bi-file-earmark-code-fill::before { content: "\f361"; }
.bi-file-earmark-code::before { content: "\f362"; }
.bi-file-earmark-diff-fill::before { content: "\f363"; }
.bi-file-earmark-diff::before { content: "\f364"; }
.bi-file-earmark-easel-fill::before { content: "\f365"; }
.bi-file-earmark-easel::before { content: "\f366"; }
.bi-file-earmark-excel-fill::before { content: "\f367"; }
.bi-file-earmark-excel::before { content: "\f368"; }
.bi-file-earmark-fill::before { content: "\f369"; }
.bi-file-earmark-font-fill::before { content: "\f36a"; }
.bi-file-earmark-font::before { content: "\f36b"; }
.bi-file-earmark-image-fill::before { content: "\f36c"; }
.bi-file-earmark-image::before { content: "\f36d"; }
.bi-file-earmark-lock-fill::before { content: "\f36e"; }
.bi-file-earmark-lock::before { content: "\f36f"; }
.bi-file-earmark-lock2-fill::before { content: "\f370"; }
.bi-file-earmark-lock2::before { content: "\f371"; }
.bi-file-earmark-medical-fill::before { content: "\f372"; }
.bi-file-earmark-medical::before { content: "\f373"; }
.bi-file-earmark-minus-fill::before { content: "\f374"; }
.bi-file-earmark-minus::before { content: "\f375"; }
.bi-file-earmark-music-fill::before { content: "\f376"; }
.bi-file-earmark-music::before { content: "\f377"; }
.bi-file-earmark-person-fill::before { content: "\f378"; }
.bi-file-earmark-person::before { content: "\f379"; }
.bi-file-earmark-play-fill::before { content: "\f37a"; }
.bi-file-earmark-play::before { content: "\f37b"; }
.bi-file-earmark-plus-fill::before { content: "\f37c"; }
.bi-file-earmark-plus::before { content: "\f37d"; }
.bi-file-earmark-post-fill::before { content: "\f37e"; }
.bi-file-earmark-post::before { content: "\f37f"; }
.bi-file-earmark-ppt-fill::before { content: "\f380"; }
.bi-file-earmark-ppt::before { content: "\f381"; }
.bi-file-earmark-richtext-fill::before { content: "\f382"; }
.bi-file-earmark-richtext::before { content: "\f383"; }
.bi-file-earmark-ruled-fill::before { content: "\f384"; }
.bi-file-earmark-ruled::before { content: "\f385"; }
.bi-file-earmark-slides-fill::before { content: "\f386"; }
.bi-file-earmark-slides::before { content: "\f387"; }
.bi-file-earmark-spreadsheet-fill::before { content: "\f388"; }
.bi-file-earmark-spreadsheet::before { content: "\f389"; }
.bi-file-earmark-text-fill::before { content: "\f38a"; }
.bi-file-earmark-text::before { content: "\f38b"; }
.bi-file-earmark-word-fill::before { content: "\f38c"; }
.bi-file-earmark-word::before { content: "\f38d"; }
.bi-file-earmark-x-fill::before { content: "\f38e"; }
.bi-file-earmark-x::before { content: "\f38f"; }
.bi-file-earmark-zip-fill::before { content: "\f390"; }
.bi-file-earmark-zip::before { content: "\f391"; }
.bi-file-earmark::before { content: "\f392"; }
.bi-file-easel-fill::before { content: "\f393"; }
.bi-file-easel::before { content: "\f394"; }
.bi-file-excel-fill::before { content: "\f395"; }
.bi-file-excel::before { content: "\f396"; }
.bi-file-fill::before { content: "\f397"; }
.bi-file-font-fill::before { content: "\f398"; }
.bi-file-font::before { content: "\f399"; }
.bi-file-image-fill::before { content: "\f39a"; }
.bi-file-image::before { content: "\f39b"; }
.bi-file-lock-fill::before { content: "\f39c"; }
.bi-file-lock::before { content: "\f39d"; }
.bi-file-lock2-fill::before { content: "\f39e"; }
.bi-file-lock2::before { content: "\f39f"; }
.bi-file-medical-fill::before { content: "\f3a0"; }
.bi-file-medical::before { content: "\f3a1"; }
.bi-file-minus-fill::before { content: "\f3a2"; }
.bi-file-minus::before { content: "\f3a3"; }
.bi-file-music-fill::before { content: "\f3a4"; }
.bi-file-music::before { content: "\f3a5"; }
.bi-file-person-fill::before { content: "\f3a6"; }
.bi-file-person::before { content: "\f3a7"; }
.bi-file-play-fill::before { content: "\f3a8"; }
.bi-file-play::before { content: "\f3a9"; }
.bi-file-plus-fill::before { content: "\f3aa"; }
.bi-file-plus::before { content: "\f3ab"; }
.bi-file-post-fill::before { content: "\f3ac"; }
.bi-file-post::before { content: "\f3ad"; }
.bi-file-ppt-fill::before { content: "\f3ae"; }
.bi-file-ppt::before { content: "\f3af"; }
.bi-file-richtext-fill::before { content: "\f3b0"; }
.bi-file-richtext::before { content: "\f3b1"; }
.bi-file-ruled-fill::before { content: "\f3b2"; }
.bi-file-ruled::before { content: "\f3b3"; }
.bi-file-slides-fill::before { content: "\f3b4"; }
.bi-file-slides::before { content: "\f3b5"; }
.bi-file-spreadsheet-fill::before { content: "\f3b6"; }
.bi-file-spreadsheet::before { content: "\f3b7"; }
.bi-file-text-fill::before { content: "\f3b8"; }
.bi-file-text::before { content: "\f3b9"; }
.bi-file-word-fill::before { content: "\f3ba"; }
.bi-file-word::before { content: "\f3bb"; }
.bi-file-x-fill::before { content: "\f3bc"; }
.bi-file-x::before { content: "\f3bd"; }
.bi-file-zip-fill::before { content: "\f3be"; }
.bi-file-zip::before { content: "\f3bf"; }
.bi-file::before { content: "\f3c0"; }
.bi-files-alt::before { content: "\f3c1"; }
.bi-files::before { content: "\f3c2"; }
.bi-film::before { content: "\f3c3"; }
.bi-filter-circle-fill::before { content: "\f3c4"; }
.bi-filter-circle::before { content: "\f3c5"; }
.bi-filter-left::before { content: "\f3c6"; }
.bi-filter-right::before { content: "\f3c7"; }
.bi-filter-square-fill::before { content: "\f3c8"; }
.bi-filter-square::before { content: "\f3c9"; }
.bi-filter::before { content: "\f3ca"; }
.bi-flag-fill::before { content: "\f3cb"; }
.bi-flag::before { content: "\f3cc"; }
.bi-flower1::before { content: "\f3cd"; }
.bi-flower2::before { content: "\f3ce"; }
.bi-flower3::before { content: "\f3cf"; }
.bi-folder-check::before { content: "\f3d0"; }
.bi-folder-fill::before { content: "\f3d1"; }
.bi-folder-minus::before { content: "\f3d2"; }
.bi-folder-plus::before { content: "\f3d3"; }
.bi-folder-symlink-fill::before { content: "\f3d4"; }
.bi-folder-symlink::before { content: "\f3d5"; }
.bi-folder-x::before { content: "\f3d6"; }
.bi-folder::before { content: "\f3d7"; }
.bi-folder2-open::before { content: "\f3d8"; }
.bi-folder2::before { content: "\f3d9"; }
.bi-fonts::before { content: "\f3da"; }
.bi-forward-fill::before { content: "\f3db"; }
.bi-forward::before { content: "\f3dc"; }
.bi-front::before { content: "\f3dd"; }
.bi-fullscreen-exit::before { content: "\f3de"; }
.bi-fullscreen::before { content: "\f3df"; }
.bi-funnel-fill::before { content: "\f3e0"; }
.bi-funnel::before { content: "\f3e1"; }
.bi-gear-fill::before { content: "\f3e2"; }
.bi-gear-wide-connected::before { content: "\f3e3"; }
.bi-gear-wide::before { content: "\f3e4"; }
.bi-gear::before { content: "\f3e5"; }
.bi-gem::before { content: "\f3e6"; }
.bi-geo-alt-fill::before { content: "\f3e7"; }
.bi-geo-alt::before { content: "\f3e8"; }
.bi-geo-fill::before { content: "\f3e9"; }
.bi-geo::before { content: "\f3ea"; }
.bi-gift-fill::before { content: "\f3eb"; }
.bi-gift::before { content: "\f3ec"; }
.bi-github::before { content: "\f3ed"; }
.bi-globe::before { content: "\f3ee"; }
.bi-globe2::before { content: "\f3ef"; }
.bi-google::before { content: "\f3f0"; }
.bi-graph-down::before { content: "\f3f1"; }
.bi-graph-up::before { content: "\f3f2"; }
.bi-grid-1x2-fill::before { content: "\f3f3"; }
.bi-grid-1x2::before { content: "\f3f4"; }
.bi-grid-3x2-gap-fill::before { content: "\f3f5"; }
.bi-grid-3x2-gap::before { content: "\f3f6"; }
.bi-grid-3x2::before { content: "\f3f7"; }
.bi-grid-3x3-gap-fill::before { content: "\f3f8"; }
.bi-grid-3x3-gap::before { content: "\f3f9"; }
.bi-grid-3x3::before { content: "\f3fa"; }
.bi-grid-fill::before { content: "\f3fb"; }
.bi-grid::before { content: "\f3fc"; }
.bi-grip-horizontal::before { content: "\f3fd"; }
.bi-grip-vertical::before { content: "\f3fe"; }
.bi-hammer::before { content: "\f3ff"; }
.bi-hand-index-fill::before { content: "\f400"; }
.bi-hand-index-thumb-fill::before { content: "\f401"; }
.bi-hand-index-thumb::before { content: "\f402"; }
.bi-hand-index::before { content: "\f403"; }
.bi-hand-thumbs-down-fill::before { content: "\f404"; }
.bi-hand-thumbs-down::before { content: "\f405"; }
.bi-hand-thumbs-up-fill::before { content: "\f406"; }
.bi-hand-thumbs-up::before { content: "\f407"; }
.bi-handbag-fill::before { content: "\f408"; }
.bi-handbag::before { content: "\f409"; }
.bi-hash::before { content: "\f40a"; }
.bi-hdd-fill::before { content: "\f40b"; }
.bi-hdd-network-fill::before { content: "\f40c"; }
.bi-hdd-network::before { content: "\f40d"; }
.bi-hdd-rack-fill::before { content: "\f40e"; }
.bi-hdd-rack::before { content: "\f40f"; }
.bi-hdd-stack-fill::before { content: "\f410"; }
.bi-hdd-stack::before { content: "\f411"; }
.bi-hdd::before { content: "\f412"; }
.bi-headphones::before { content: "\f413"; }
.bi-headset::before { content: "\f414"; }
.bi-heart-fill::before { content: "\f415"; }
.bi-heart-half::before { content: "\f416"; }
.bi-heart::before { content: "\f417"; }
.bi-heptagon-fill::before { content: "\f418"; }
.bi-heptagon-half::before { content: "\f419"; }
.bi-heptagon::before { content: "\f41a"; }
.bi-hexagon-fill::before { content: "\f41b"; }
.bi-hexagon-half::before { content: "\f41c"; }
.bi-hexagon::before { content: "\f41d"; }
.bi-hourglass-bottom::before { content: "\f41e"; }
.bi-hourglass-split::before { content: "\f41f"; }
.bi-hourglass-top::before { content: "\f420"; }
.bi-hourglass::before { content: "\f421"; }
.bi-house-door-fill::before { content: "\f422"; }
.bi-house-door::before { content: "\f423"; }
.bi-house-fill::before { content: "\f424"; }
.bi-house::before { content: "\f425"; }
.bi-hr::before { content: "\f426"; }
.bi-hurricane::before { content: "\f427"; }
.bi-image-alt::before { content: "\f428"; }
.bi-image-fill::before { content: "\f429"; }
.bi-image::before { content: "\f42a"; }
.bi-images::before { content: "\f42b"; }
.bi-inbox-fill::before { content: "\f42c"; }
.bi-inbox::before { content: "\f42d"; }
.bi-inboxes-fill::before { content: "\f42e"; }
.bi-inboxes::before { content: "\f42f"; }
.bi-info-circle-fill::before { content: "\f430"; }
.bi-info-circle::before { content: "\f431"; }
.bi-info-square-fill::before { content: "\f432"; }
.bi-info-square::before { content: "\f433"; }
.bi-info::before { content: "\f434"; }
.bi-input-cursor-text::before { content: "\f435"; }
.bi-input-cursor::before { content: "\f436"; }
.bi-instagram::before { content: "\f437"; }
.bi-intersect::before { content: "\f438"; }
.bi-journal-album::before { content: "\f439"; }
.bi-journal-arrow-down::before { content: "\f43a"; }
.bi-journal-arrow-up::before { content: "\f43b"; }
.bi-journal-bookmark-fill::before { content: "\f43c"; }
.bi-journal-bookmark::before { content: "\f43d"; }
.bi-journal-check::before { content: "\f43e"; }
.bi-journal-code::before { content: "\f43f"; }
.bi-journal-medical::before { content: "\f440"; }
.bi-journal-minus::before { content: "\f441"; }
.bi-journal-plus::before { content: "\f442"; }
.bi-journal-richtext::before { content: "\f443"; }
.bi-journal-text::before { content: "\f444"; }
.bi-journal-x::before { content: "\f445"; }
.bi-journal::before { content: "\f446"; }
.bi-journals::before { content: "\f447"; }
.bi-joystick::before { content: "\f448"; }
.bi-justify-left::before { content: "\f449"; }
.bi-justify-right::before { content: "\f44a"; }
.bi-justify::before { content: "\f44b"; }
.bi-kanban-fill::before { content: "\f44c"; }
.bi-kanban::before { content: "\f44d"; }
.bi-key-fill::before { content: "\f44e"; }
.bi-key::before { content: "\f44f"; }
.bi-keyboard-fill::before { content: "\f450"; }
.bi-keyboard::before { content: "\f451"; }
.bi-ladder::before { content: "\f452"; }
.bi-lamp-fill::before { content: "\f453"; }
.bi-lamp::before { content: "\f454"; }
.bi-laptop-fill::before { content: "\f455"; }
.bi-laptop::before { content: "\f456"; }
.bi-layer-backward::before { content: "\f457"; }
.bi-layer-forward::before { content: "\f458"; }
.bi-layers-fill::before { content: "\f459"; }
.bi-layers-half::before { content: "\f45a"; }
.bi-layers::before { content: "\f45b"; }
.bi-layout-sidebar-inset-reverse::before { content: "\f45c"; }
.bi-layout-sidebar-inset::before { content: "\f45d"; }
.bi-layout-sidebar-reverse::before { content: "\f45e"; }
.bi-layout-sidebar::before { content: "\f45f"; }
.bi-layout-split::before { content: "\f460"; }
.bi-layout-text-sidebar-reverse::before { content: "\f461"; }
.bi-layout-text-sidebar::before { content: "\f462"; }
.bi-layout-text-window-reverse::before { content: "\f463"; }
.bi-layout-text-window::before { content: "\f464"; }
.bi-layout-three-columns::before { content: "\f465"; }
.bi-layout-wtf::before { content: "\f466"; }
.bi-life-preserver::before { content: "\f467"; }
.bi-lightbulb-fill::before { content: "\f468"; }
.bi-lightbulb-off-fill::before { content: "\f469"; }
.bi-lightbulb-off::before { content: "\f46a"; }
.bi-lightbulb::before { content: "\f46b"; }
.bi-lightning-charge-fill::before { content: "\f46c"; }
.bi-lightning-charge::before { content: "\f46d"; }
.bi-lightning-fill::before { content: "\f46e"; }
.bi-lightning::before { content: "\f46f"; }
.bi-link-45deg::before { content: "\f470"; }
.bi-link::before { content: "\f471"; }
.bi-linkedin::before { content: "\f472"; }
.bi-list-check::before { content: "\f473"; }
.bi-list-nested::before { content: "\f474"; }
.bi-list-ol::before { content: "\f475"; }
.bi-list-stars::before { content: "\f476"; }
.bi-list-task::before { content: "\f477"; }
.bi-list-ul::before { content: "\f478"; }
.bi-list::before { content: "\f479"; }
.bi-lock-fill::before { content: "\f47a"; }
.bi-lock::before { content: "\f47b"; }
.bi-mailbox::before { content: "\f47c"; }
.bi-mailbox2::before { content: "\f47d"; }
.bi-map-fill::before { content: "\f47e"; }
.bi-map::before { content: "\f47f"; }
.bi-markdown-fill::before { content: "\f480"; }
.bi-markdown::before { content: "\f481"; }
.bi-mask::before { content: "\f482"; }
.bi-megaphone-fill::before { content: "\f483"; }
.bi-megaphone::before { content: "\f484"; }
.bi-menu-app-fill::before { content: "\f485"; }
.bi-menu-app::before { content: "\f486"; }
.bi-menu-button-fill::before { content: "\f487"; }
.bi-menu-button-wide-fill::before { content: "\f488"; }
.bi-menu-button-wide::before { content: "\f489"; }
.bi-menu-button::before { content: "\f48a"; }
.bi-menu-down::before { content: "\f48b"; }
.bi-menu-up::before { content: "\f48c"; }
.bi-mic-fill::before { content: "\f48d"; }
.bi-mic-mute-fill::before { content: "\f48e"; }
.bi-mic-mute::before { content: "\f48f"; }
.bi-mic::before { content: "\f490"; }
.bi-minecart-loaded::before { content: "\f491"; }
.bi-minecart::before { content: "\f492"; }
.bi-moisture::before { content: "\f493"; }
.bi-moon-fill::before { content: "\f494"; }
.bi-moon-stars-fill::before { content: "\f495"; }
.bi-moon-stars::before { content: "\f496"; }
.bi-moon::before { content: "\f497"; }
.bi-mouse-fill::before { content: "\f498"; }
.bi-mouse::before { content: "\f499"; }
.bi-mouse2-fill::before { content: "\f49a"; }
.bi-mouse2::before { content: "\f49b"; }
.bi-mouse3-fill::before { content: "\f49c"; }
.bi-mouse3::before { content: "\f49d"; }
.bi-music-note-beamed::before { content: "\f49e"; }
.bi-music-note-list::before { content: "\f49f"; }
.bi-music-note::before { content: "\f4a0"; }
.bi-music-player-fill::before { content: "\f4a1"; }
.bi-music-player::before { content: "\f4a2"; }
.bi-newspaper::before { content: "\f4a3"; }
.bi-node-minus-fill::before { content: "\f4a4"; }
.bi-node-minus::before { content: "\f4a5"; }
.bi-node-plus-fill::before { content: "\f4a6"; }
.bi-node-plus::before { content: "\f4a7"; }
.bi-nut-fill::before { content: "\f4a8"; }
.bi-nut::before { content: "\f4a9"; }
.bi-octagon-fill::before { content: "\f4aa"; }
.bi-octagon-half::before { content: "\f4ab"; }
.bi-octagon::before { content: "\f4ac"; }
.bi-option::before { content: "\f4ad"; }
.bi-outlet::before { content: "\f4ae"; }
.bi-paint-bucket::before { content: "\f4af"; }
.bi-palette-fill::before { content: "\f4b0"; }
.bi-palette::before { content: "\f4b1"; }
.bi-palette2::before { content: "\f4b2"; }
.bi-paperclip::before { content: "\f4b3"; }
.bi-paragraph::before { content: "\f4b4"; }
.bi-patch-check-fill::before { content: "\f4b5"; }
.bi-patch-check::before { content: "\f4b6"; }
.bi-patch-exclamation-fill::before { content: "\f4b7"; }
.bi-patch-exclamation::before { content: "\f4b8"; }
.bi-patch-minus-fill::before { content: "\f4b9"; }
.bi-patch-minus::before { content: "\f4ba"; }
.bi-patch-plus-fill::before { content: "\f4bb"; }
.bi-patch-plus::before { content: "\f4bc"; }
.bi-patch-question-fill::before { content: "\f4bd"; }
.bi-patch-question::before { content: "\f4be"; }
.bi-pause-btn-fill::before { content: "\f4bf"; }
.bi-pause-btn::before { content: "\f4c0"; }
.bi-pause-circle-fill::before { content: "\f4c1"; }
.bi-pause-circle::before { content: "\f4c2"; }
.bi-pause-fill::before { content: "\f4c3"; }
.bi-pause::before { content: "\f4c4"; }
.bi-peace-fill::before { content: "\f4c5"; }
.bi-peace::before { content: "\f4c6"; }
.bi-pen-fill::before { content: "\f4c7"; }
.bi-pen::before { content: "\f4c8"; }
.bi-pencil-fill::before { content: "\f4c9"; }
.bi-pencil-square::before { content: "\f4ca"; }
.bi-pencil::before { content: "\f4cb"; }
.bi-pentagon-fill::before { content: "\f4cc"; }
.bi-pentagon-half::before { content: "\f4cd"; }
.bi-pentagon::before { content: "\f4ce"; }
.bi-people-fill::before { content: "\f4cf"; }
.bi-people::before { content: "\f4d0"; }
.bi-percent::before { content: "\f4d1"; }
.bi-person-badge-fill::before { content: "\f4d2"; }
.bi-person-badge::before { content: "\f4d3"; }
.bi-person-bounding-box::before { content: "\f4d4"; }
.bi-person-check-fill::before { content: "\f4d5"; }
.bi-person-check::before { content: "\f4d6"; }
.bi-person-circle::before { content: "\f4d7"; }
.bi-person-dash-fill::before { content: "\f4d8"; }
.bi-person-dash::before { content: "\f4d9"; }
.bi-person-fill::before { content: "\f4da"; }
.bi-person-lines-fill::before { content: "\f4db"; }
.bi-person-plus-fill::before { content: "\f4dc"; }
.bi-person-plus::before { content: "\f4dd"; }
.bi-person-square::before { content: "\f4de"; }
.bi-person-x-fill::before { content: "\f4df"; }
.bi-person-x::before { content: "\f4e0"; }
.bi-person::before { content: "\f4e1"; }
.bi-phone-fill::before { content: "\f4e2"; }
.bi-phone-landscape-fill::before { content: "\f4e3"; }
.bi-phone-landscape::before { content: "\f4e4"; }
.bi-phone-vibrate-fill::before { content: "\f4e5"; }
.bi-phone-vibrate::before { content: "\f4e6"; }
.bi-phone::before { content: "\f4e7"; }
.bi-pie-chart-fill::before { content: "\f4e8"; }
.bi-pie-chart::before { content: "\f4e9"; }
.bi-pin-angle-fill::before { content: "\f4ea"; }
.bi-pin-angle::before { content: "\f4eb"; }
.bi-pin-fill::before { content: "\f4ec"; }
.bi-pin::before { content: "\f4ed"; }
.bi-pip-fill::before { content: "\f4ee"; }
.bi-pip::before { content: "\f4ef"; }
.bi-play-btn-fill::before { content: "\f4f0"; }
.bi-play-btn::before { content: "\f4f1"; }
.bi-play-circle-fill::before { content: "\f4f2"; }
.bi-play-circle::before { content: "\f4f3"; }
.bi-play-fill::before { content: "\f4f4"; }
.bi-play::before { content: "\f4f5"; }
.bi-plug-fill::before { content: "\f4f6"; }
.bi-plug::before { content: "\f4f7"; }
.bi-plus-circle-dotted::before { content: "\f4f8"; }
.bi-plus-circle-fill::before { content: "\f4f9"; }
.bi-plus-circle::before { content: "\f4fa"; }
.bi-plus-square-dotted::before { content: "\f4fb"; }
.bi-plus-square-fill::before { content: "\f4fc"; }
.bi-plus-square::before { content: "\f4fd"; }
.bi-plus::before { content: "\f4fe"; }
.bi-power::before { content: "\f4ff"; }
.bi-printer-fill::before { content: "\f500"; }
.bi-printer::before { content: "\f501"; }
.bi-puzzle-fill::before { content: "\f502"; }
.bi-puzzle::before { content: "\f503"; }
.bi-question-circle-fill::before { content: "\f504"; }
.bi-question-circle::before { content: "\f505"; }
.bi-question-diamond-fill::before { content: "\f506"; }
.bi-question-diamond::before { content: "\f507"; }
.bi-question-octagon-fill::before { content: "\f508"; }
.bi-question-octagon::before { content: "\f509"; }
.bi-question-square-fill::before { content: "\f50a"; }
.bi-question-square::before { content: "\f50b"; }
.bi-question::before { content: "\f50c"; }
.bi-rainbow::before { content: "\f50d"; }
.bi-receipt-cutoff::before { content: "\f50e"; }
.bi-receipt::before { content: "\f50f"; }
.bi-reception-0::before { content: "\f510"; }
.bi-reception-1::before { content: "\f511"; }
.bi-reception-2::before { content: "\f512"; }
.bi-reception-3::before { content: "\f513"; }
.bi-reception-4::before { content: "\f514"; }
.bi-record-btn-fill::before { content: "\f515"; }
.bi-record-btn::before { content: "\f516"; }
.bi-record-circle-fill::before { content: "\f517"; }
.bi-record-circle::before { content: "\f518"; }
.bi-record-fill::before { content: "\f519"; }
.bi-record::before { content: "\f51a"; }
.bi-record2-fill::before { content: "\f51b"; }
.bi-record2::before { content: "\f51c"; }
.bi-reply-all-fill::before { content: "\f51d"; }
.bi-reply-all::before { content: "\f51e"; }
.bi-reply-fill::before { content: "\f51f"; }
.bi-reply::before { content: "\f520"; }
.bi-rss-fill::before { content: "\f521"; }
.bi-rss::before { content: "\f522"; }
.bi-rulers::before { content: "\f523"; }
.bi-save-fill::before { content: "\f524"; }
.bi-save::before { content: "\f525"; }
.bi-save2-fill::before { content: "\f526"; }
.bi-save2::before { content: "\f527"; }
.bi-scissors::before { content: "\f528"; }
.bi-screwdriver::before { content: "\f529"; }
.bi-search::before { content: "\f52a"; }
.bi-segmented-nav::before { content: "\f52b"; }
.bi-server::before { content: "\f52c"; }
.bi-share-fill::before { content: "\f52d"; }
.bi-share::before { content: "\f52e"; }
.bi-shield-check::before { content: "\f52f"; }
.bi-shield-exclamation::before { content: "\f530"; }
.bi-shield-fill-check::before { content: "\f531"; }
.bi-shield-fill-exclamation::before { content: "\f532"; }
.bi-shield-fill-minus::before { content: "\f533"; }
.bi-shield-fill-plus::before { content: "\f534"; }
.bi-shield-fill-x::before { content: "\f535"; }
.bi-shield-fill::before { content: "\f536"; }
.bi-shield-lock-fill::before { content: "\f537"; }
.bi-shield-lock::before { content: "\f538"; }
.bi-shield-minus::before { content: "\f539"; }
.bi-shield-plus::before { content: "\f53a"; }
.bi-shield-shaded::before { content: "\f53b"; }
.bi-shield-slash-fill::before { content: "\f53c"; }
.bi-shield-slash::before { content: "\f53d"; }
.bi-shield-x::before { content: "\f53e"; }
.bi-shield::before { content: "\f53f"; }
.bi-shift-fill::before { content: "\f540"; }
.bi-shift::before { content: "\f541"; }
.bi-shop-window::before { content: "\f542"; }
.bi-shop::before { content: "\f543"; }
.bi-shuffle::before { content: "\f544"; }
.bi-signpost-2-fill::before { content: "\f545"; }
.bi-signpost-2::before { content: "\f546"; }
.bi-signpost-fill::before { content: "\f547"; }
.bi-signpost-split-fill::before { content: "\f548"; }
.bi-signpost-split::before { content: "\f549"; }
.bi-signpost::before { content: "\f54a"; }
.bi-sim-fill::before { content: "\f54b"; }
.bi-sim::before { content: "\f54c"; }
.bi-skip-backward-btn-fill::before { content: "\f54d"; }
.bi-skip-backward-btn::before { content: "\f54e"; }
.bi-skip-backward-circle-fill::before { content: "\f54f"; }
.bi-skip-backward-circle::before { content: "\f550"; }
.bi-skip-backward-fill::before { content: "\f551"; }
.bi-skip-backward::before { content: "\f552"; }
.bi-skip-end-btn-fill::before { content: "\f553"; }
.bi-skip-end-btn::before { content: "\f554"; }
.bi-skip-end-circle-fill::before { content: "\f555"; }
.bi-skip-end-circle::before { content: "\f556"; }
.bi-skip-end-fill::before { content: "\f557"; }
.bi-skip-end::before { content: "\f558"; }
.bi-skip-forward-btn-fill::before { content: "\f559"; }
.bi-skip-forward-btn::before { content: "\f55a"; }
.bi-skip-forward-circle-fill::before { content: "\f55b"; }
.bi-skip-forward-circle::before { content: "\f55c"; }
.bi-skip-forward-fill::before { content: "\f55d"; }
.bi-skip-forward::before { content: "\f55e"; }
.bi-skip-start-btn-fill::before { content: "\f55f"; }
.bi-skip-start-btn::before { content: "\f560"; }
.bi-skip-start-circle-fill::before { content: "\f561"; }
.bi-skip-start-circle::before { content: "\f562"; }
.bi-skip-start-fill::before { content: "\f563"; }
.bi-skip-start::before { content: "\f564"; }
.bi-slack::before { content: "\f565"; }
.bi-slash-circle-fill::before { content: "\f566"; }
.bi-slash-circle::before { content: "\f567"; }
.bi-slash-square-fill::before { content: "\f568"; }
.bi-slash-square::before { content: "\f569"; }
.bi-slash::before { content: "\f56a"; }
.bi-sliders::before { content: "\f56b"; }
.bi-smartwatch::before { content: "\f56c"; }
.bi-snow::before { content: "\f56d"; }
.bi-snow2::before { content: "\f56e"; }
.bi-snow3::before { content: "\f56f"; }
.bi-sort-alpha-down-alt::before { content: "\f570"; }
.bi-sort-alpha-down::before { content: "\f571"; }
.bi-sort-alpha-up-alt::before { content: "\f572"; }
.bi-sort-alpha-up::before { content: "\f573"; }
.bi-sort-down-alt::before { content: "\f574"; }
.bi-sort-down::before { content: "\f575"; }
.bi-sort-numeric-down-alt::before { content: "\f576"; }
.bi-sort-numeric-down::before { content: "\f577"; }
.bi-sort-numeric-up-alt::before { content: "\f578"; }
.bi-sort-numeric-up::before { content: "\f579"; }
.bi-sort-up-alt::before { content: "\f57a"; }
.bi-sort-up::before { content: "\f57b"; }
.bi-soundwave::before { content: "\f57c"; }
.bi-speaker-fill::before { content: "\f57d"; }
.bi-speaker::before { content: "\f57e"; }
.bi-speedometer::before { content: "\f57f"; }
.bi-speedometer2::before { content: "\f580"; }
.bi-spellcheck::before { content: "\f581"; }
.bi-square-fill::before { content: "\f582"; }
.bi-square-half::before { content: "\f583"; }
.bi-square::before { content: "\f584"; }
.bi-stack::before { content: "\f585"; }
.bi-star-fill::before { content: "\f586"; }
.bi-star-half::before { content: "\f587"; }
.bi-star::before { content: "\f588"; }
.bi-stars::before { content: "\f589"; }
.bi-stickies-fill::before { content: "\f58a"; }
.bi-stickies::before { content: "\f58b"; }
.bi-sticky-fill::before { content: "\f58c"; }
.bi-sticky::before { content: "\f58d"; }
.bi-stop-btn-fill::before { content: "\f58e"; }
.bi-stop-btn::before { content: "\f58f"; }
.bi-stop-circle-fill::before { content: "\f590"; }
.bi-stop-circle::before { content: "\f591"; }
.bi-stop-fill::before { content: "\f592"; }
.bi-stop::before { content: "\f593"; }
.bi-stoplights-fill::before { content: "\f594"; }
.bi-stoplights::before { content: "\f595"; }
.bi-stopwatch-fill::before { content: "\f596"; }
.bi-stopwatch::before { content: "\f597"; }
.bi-subtract::before { content: "\f598"; }
.bi-suit-club-fill::before { content: "\f599"; }
.bi-suit-club::before { content: "\f59a"; }
.bi-suit-diamond-fill::before { content: "\f59b"; }
.bi-suit-diamond::before { content: "\f59c"; }
.bi-suit-heart-fill::before { content: "\f59d"; }
.bi-suit-heart::before { content: "\f59e"; }
.bi-suit-spade-fill::before { content: "\f59f"; }
.bi-suit-spade::before { content: "\f5a0"; }
.bi-sun-fill::before { content: "\f5a1"; }
.bi-sun::before { content: "\f5a2"; }
.bi-sunglasses::before { content: "\f5a3"; }
.bi-sunrise-fill::before { content: "\f5a4"; }
.bi-sunrise::before { content: "\f5a5"; }
.bi-sunset-fill::before { content: "\f5a6"; }
.bi-sunset::before { content: "\f5a7"; }
.bi-symmetry-horizontal::before { content: "\f5a8"; }
.bi-symmetry-vertical::before { content: "\f5a9"; }
.bi-table::before { content: "\f5aa"; }
.bi-tablet-fill::before { content: "\f5ab"; }
.bi-tablet-landscape-fill::before { content: "\f5ac"; }
.bi-tablet-landscape::before { content: "\f5ad"; }
.bi-tablet::before { content: "\f5ae"; }
.bi-tag-fill::before { content: "\f5af"; }
.bi-tag::before { content: "\f5b0"; }
.bi-tags-fill::before { content: "\f5b1"; }
.bi-tags::before { content: "\f5b2"; }
.bi-telegram::before { content: "\f5b3"; }
.bi-telephone-fill::before { content: "\f5b4"; }
.bi-telephone-forward-fill::before { content: "\f5b5"; }
.bi-telephone-forward::before { content: "\f5b6"; }
.bi-telephone-inbound-fill::before { content: "\f5b7"; }
.bi-telephone-inbound::before { content: "\f5b8"; }
.bi-telephone-minus-fill::before { content: "\f5b9"; }
.bi-telephone-minus::before { content: "\f5ba"; }
.bi-telephone-outbound-fill::before { content: "\f5bb"; }
.bi-telephone-outbound::before { content: "\f5bc"; }
.bi-telephone-plus-fill::before { content: "\f5bd"; }
.bi-telephone-plus::before { content: "\f5be"; }
.bi-telephone-x-fill::before { content: "\f5bf"; }
.bi-telephone-x::before { content: "\f5c0"; }
.bi-telephone::before { content: "\f5c1"; }
.bi-terminal-fill::before { content: "\f5c2"; }
.bi-terminal::before { content: "\f5c3"; }
.bi-text-center::before { content: "\f5c4"; }
.bi-text-indent-left::before { content: "\f5c5"; }
.bi-text-indent-right::before { content: "\f5c6"; }
.bi-text-left::before { content: "\f5c7"; }
.bi-text-paragraph::before { content: "\f5c8"; }
.bi-text-right::before { content: "\f5c9"; }
.bi-textarea-resize::before { content: "\f5ca"; }
.bi-textarea-t::before { content: "\f5cb"; }
.bi-textarea::before { content: "\f5cc"; }
.bi-thermometer-half::before { content: "\f5cd"; }
.bi-thermometer-high::before { content: "\f5ce"; }
.bi-thermometer-low::before { content: "\f5cf"; }
.bi-thermometer-snow::before { content: "\f5d0"; }
.bi-thermometer-sun::before { content: "\f5d1"; }
.bi-thermometer::before { content: "\f5d2"; }
.bi-three-dots-vertical::before { content: "\f5d3"; }
.bi-three-dots::before { content: "\f5d4"; }
.bi-toggle-off::before { content: "\f5d5"; }
.bi-toggle-on::before { content: "\f5d6"; }
.bi-toggle2-off::before { content: "\f5d7"; }
.bi-toggle2-on::before { content: "\f5d8"; }
.bi-toggles::before { content: "\f5d9"; }
.bi-toggles2::before { content: "\f5da"; }
.bi-tools::before { content: "\f5db"; }
.bi-tornado::before { content: "\f5dc"; }
.bi-trash-fill::before { content: "\f5dd"; }
.bi-trash::before { content: "\f5de"; }
.bi-trash2-fill::before { content: "\f5df"; }
.bi-trash2::before { content: "\f5e0"; }
.bi-tree-fill::before { content: "\f5e1"; }
.bi-tree::before { content: "\f5e2"; }
.bi-triangle-fill::before { content: "\f5e3"; }
.bi-triangle-half::before { content: "\f5e4"; }
.bi-triangle::before { content: "\f5e5"; }
.bi-trophy-fill::before { content: "\f5e6"; }
.bi-trophy::before { content: "\f5e7"; }
.bi-tropical-storm::before { content: "\f5e8"; }
.bi-truck-flatbed::before { content: "\f5e9"; }
.bi-truck::before { content: "\f5ea"; }
.bi-tsunami::before { content: "\f5eb"; }
.bi-tv-fill::before { content: "\f5ec"; }
.bi-tv::before { content: "\f5ed"; }
.bi-twitch::before { content: "\f5ee"; }
.bi-twitter::before { content: "\f5ef"; }
.bi-type-bold::before { content: "\f5f0"; }
.bi-type-h1::before { content: "\f5f1"; }
.bi-type-h2::before { content: "\f5f2"; }
.bi-type-h3::before { content: "\f5f3"; }
.bi-type-italic::before { content: "\f5f4"; }
.bi-type-strikethrough::before { content: "\f5f5"; }
.bi-type-underline::before { content: "\f5f6"; }
.bi-type::before { content: "\f5f7"; }
.bi-ui-checks-grid::before { content: "\f5f8"; }
.bi-ui-checks::before { content: "\f5f9"; }
.bi-ui-radios-grid::before { content: "\f5fa"; }
.bi-ui-radios::before { content: "\f5fb"; }
.bi-umbrella-fill::before { content: "\f5fc"; }
.bi-umbrella::before { content: "\f5fd"; }
.bi-union::before { content: "\f5fe"; }
.bi-unlock-fill::before { content: "\f5ff"; }
.bi-unlock::before { content: "\f600"; }
.bi-upc-scan::before { content: "\f601"; }
.bi-upc::before { content: "\f602"; }
.bi-upload::before { content: "\f603"; }
.bi-vector-pen::before { content: "\f604"; }
.bi-view-list::before { content: "\f605"; }
.bi-view-stacked::before { content: "\f606"; }
.bi-vinyl-fill::before { content: "\f607"; }
.bi-vinyl::before { content: "\f608"; }
.bi-voicemail::before { content: "\f609"; }
.bi-volume-down-fill::before { content: "\f60a"; }
.bi-volume-down::before { content: "\f60b"; }
.bi-volume-mute-fill::before { content: "\f60c"; }
.bi-volume-mute::before { content: "\f60d"; }
.bi-volume-off-fill::before { content: "\f60e"; }
.bi-volume-off::before { content: "\f60f"; }
.bi-volume-up-fill::before { content: "\f610"; }
.bi-volume-up::before { content: "\f611"; }
.bi-vr::before { content: "\f612"; }
.bi-wallet-fill::before { content: "\f613"; }
.bi-wallet::before { content: "\f614"; }
.bi-wallet2::before { content: "\f615"; }
.bi-watch::before { content: "\f616"; }
.bi-water::before { content: "\f617"; }
.bi-whatsapp::before { content: "\f618"; }
.bi-wifi-1::before { content: "\f619"; }
.bi-wifi-2::before { content: "\f61a"; }
.bi-wifi-off::before { content: "\f61b"; }
.bi-wifi::before { content: "\f61c"; }
.bi-wind::before { content: "\f61d"; }
.bi-window-dock::before { content: "\f61e"; }
.bi-window-sidebar::before { content: "\f61f"; }
.bi-window::before { content: "\f620"; }
.bi-wrench::before { content: "\f621"; }
.bi-x-circle-fill::before { content: "\f622"; }
.bi-x-circle::before { content: "\f623"; }
.bi-x-diamond-fill::before { content: "\f624"; }
.bi-x-diamond::before { content: "\f625"; }
.bi-x-octagon-fill::before { content: "\f626"; }
.bi-x-octagon::before { content: "\f627"; }
.bi-x-square-fill::before { content: "\f628"; }
.bi-x-square::before { content: "\f629"; }
.bi-x::before { content: "\f62a"; }
.bi-youtube::before { content: "\f62b"; }
.bi-zoom-in::before { content: "\f62c"; }
.bi-zoom-out::before { content: "\f62d"; }
.bi-bank::before { content: "\f62e"; }
.bi-bank2::before { content: "\f62f"; }
.bi-bell-slash-fill::before { content: "\f630"; }
.bi-bell-slash::before { content: "\f631"; }
.bi-cash-coin::before { content: "\f632"; }
.bi-check-lg::before { content: "\f633"; }
.bi-coin::before { content: "\f634"; }
.bi-currency-bitcoin::before { content: "\f635"; }
.bi-currency-dollar::before { content: "\f636"; }
.bi-currency-euro::before { content: "\f637"; }
.bi-currency-exchange::before { content: "\f638"; }
.bi-currency-pound::before { content: "\f639"; }
.bi-currency-yen::before { content: "\f63a"; }
.bi-dash-lg::before { content: "\f63b"; }
.bi-exclamation-lg::before { content: "\f63c"; }
.bi-file-earmark-pdf-fill::before { content: "\f63d"; }
.bi-file-earmark-pdf::before { content: "\f63e"; }
.bi-file-pdf-fill::before { content: "\f63f"; }
.bi-file-pdf::before { content: "\f640"; }
.bi-gender-ambiguous::before { content: "\f641"; }
.bi-gender-female::before { content: "\f642"; }
.bi-gender-male::before { content: "\f643"; }
.bi-gender-trans::before { content: "\f644"; }
.bi-headset-vr::before { content: "\f645"; }
.bi-info-lg::before { content: "\f646"; }
.bi-mastodon::before { content: "\f647"; }
.bi-messenger::before { content: "\f648"; }
.bi-piggy-bank-fill::before { content: "\f649"; }
.bi-piggy-bank::before { content: "\f64a"; }
.bi-pin-map-fill::before { content: "\f64b"; }
.bi-pin-map::before { content: "\f64c"; }
.bi-plus-lg::before { content: "\f64d"; }
.bi-question-lg::before { content: "\f64e"; }
.bi-recycle::before { content: "\f64f"; }
.bi-reddit::before { content: "\f650"; }
.bi-safe-fill::before { content: "\f651"; }
.bi-safe2-fill::before { content: "\f652"; }
.bi-safe2::before { content: "\f653"; }
.bi-sd-card-fill::before { content: "\f654"; }
.bi-sd-card::before { content: "\f655"; }
.bi-skype::before { content: "\f656"; }
.bi-slash-lg::before { content: "\f657"; }
.bi-translate::before { content: "\f658"; }
.bi-x-lg::before { content: "\f659"; }
.bi-safe::before { content: "\f65a"; }
.bi-apple::before { content: "\f65b"; }
.bi-microsoft::before { content: "\f65d"; }
.bi-windows::before { content: "\f65e"; }
.bi-behance::before { content: "\f65c"; }
.bi-dribbble::before { content: "\f65f"; }
.bi-line::before { content: "\f660"; }
.bi-medium::before { content: "\f661"; }
.bi-paypal::before { content: "\f662"; }
.bi-pinterest::before { content: "\f663"; }
.bi-signal::before { content: "\f664"; }
.bi-snapchat::before { content: "\f665"; }
.bi-spotify::before { content: "\f666"; }
.bi-stack-overflow::before { content: "\f667"; }
.bi-strava::before { content: "\f668"; }
.bi-wordpress::before { content: "\f669"; }
.bi-vimeo::before { content: "\f66a"; }
.bi-activity::before { content: "\f66b"; }
.bi-easel2-fill::before { content: "\f66c"; }
.bi-easel2::before { content: "\f66d"; }
.bi-easel3-fill::before { content: "\f66e"; }
.bi-easel3::before { content: "\f66f"; }
.bi-fan::before { content: "\f670"; }
.bi-fingerprint::before { content: "\f671"; }
.bi-graph-down-arrow::before { content: "\f672"; }
.bi-graph-up-arrow::before { content: "\f673"; }
.bi-hypnotize::before { content: "\f674"; }
.bi-magic::before { content: "\f675"; }
.bi-person-rolodex::before { content: "\f676"; }
.bi-person-video::before { content: "\f677"; }
.bi-person-video2::before { content: "\f678"; }
.bi-person-video3::before { content: "\f679"; }
.bi-person-workspace::before { content: "\f67a"; }
.bi-radioactive::before { content: "\f67b"; }
.bi-webcam-fill::before { content: "\f67c"; }
.bi-webcam::before { content: "\f67d"; }
.bi-yin-yang::before { content: "\f67e"; }
.bi-bandaid-fill::before { content: "\f680"; }
.bi-bandaid::before { content: "\f681"; }
.bi-bluetooth::before { content: "\f682"; }
.bi-body-text::before { content: "\f683"; }
.bi-boombox::before { content: "\f684"; }
.bi-boxes::before { content: "\f685"; }
.bi-dpad-fill::before { content: "\f686"; }
.bi-dpad::before { content: "\f687"; }
.bi-ear-fill::before { content: "\f688"; }
.bi-ear::before { content: "\f689"; }
.bi-envelope-check-fill::before { content: "\f68b"; }
.bi-envelope-check::before { content: "\f68c"; }
.bi-envelope-dash-fill::before { content: "\f68e"; }
.bi-envelope-dash::before { content: "\f68f"; }
.bi-envelope-exclamation-fill::before { content: "\f691"; }
.bi-envelope-exclamation::before { content: "\f692"; }
.bi-envelope-plus-fill::before { content: "\f693"; }
.bi-envelope-plus::before { content: "\f694"; }
.bi-envelope-slash-fill::before { content: "\f696"; }
.bi-envelope-slash::before { content: "\f697"; }
.bi-envelope-x-fill::before { content: "\f699"; }
.bi-envelope-x::before { content: "\f69a"; }
.bi-explicit-fill::before { content: "\f69b"; }
.bi-explicit::before { content: "\f69c"; }
.bi-git::before { content: "\f69d"; }
.bi-infinity::before { content: "\f69e"; }
.bi-list-columns-reverse::before { content: "\f69f"; }
.bi-list-columns::before { content: "\f6a0"; }
.bi-meta::before { content: "\f6a1"; }
.bi-nintendo-switch::before { content: "\f6a4"; }
.bi-pc-display-horizontal::before { content: "\f6a5"; }
.bi-pc-display::before { content: "\f6a6"; }
.bi-pc-horizontal::before { content: "\f6a7"; }
.bi-pc::before { content: "\f6a8"; }
.bi-playstation::before { content: "\f6a9"; }
.bi-plus-slash-minus::before { content: "\f6aa"; }
.bi-projector-fill::before { content: "\f6ab"; }
.bi-projector::before { content: "\f6ac"; }
.bi-qr-code-scan::before { content: "\f6ad"; }
.bi-qr-code::before { content: "\f6ae"; }
.bi-quora::before { content: "\f6af"; }
.bi-quote::before { content: "\f6b0"; }
.bi-robot::before { content: "\f6b1"; }
.bi-send-check-fill::before { content: "\f6b2"; }
.bi-send-check::before { content: "\f6b3"; }
.bi-send-dash-fill::before { content: "\f6b4"; }
.bi-send-dash::before { content: "\f6b5"; }
.bi-send-exclamation-fill::before { content: "\f6b7"; }
.bi-send-exclamation::before { content: "\f6b8"; }
.bi-send-fill::before { content: "\f6b9"; }
.bi-send-plus-fill::before { content: "\f6ba"; }
.bi-send-plus::before { content: "\f6bb"; }
.bi-send-slash-fill::before { content: "\f6bc"; }
.bi-send-slash::before { content: "\f6bd"; }
.bi-send-x-fill::before { content: "\f6be"; }
.bi-send-x::before { content: "\f6bf"; }
.bi-send::before { content: "\f6c0"; }
.bi-steam::before { content: "\f6c1"; }
.bi-terminal-dash::before { content: "\f6c3"; }
.bi-terminal-plus::before { content: "\f6c4"; }
.bi-terminal-split::before { content: "\f6c5"; }
.bi-ticket-detailed-fill::before { content: "\f6c6"; }
.bi-ticket-detailed::before { content: "\f6c7"; }
.bi-ticket-fill::before { content: "\f6c8"; }
.bi-ticket-perforated-fill::before { content: "\f6c9"; }
.bi-ticket-perforated::before { content: "\f6ca"; }
.bi-ticket::before { content: "\f6cb"; }
.bi-tiktok::before { content: "\f6cc"; }
.bi-window-dash::before { content: "\f6cd"; }
.bi-window-desktop::before { content: "\f6ce"; }
.bi-window-fullscreen::before { content: "\f6cf"; }
.bi-window-plus::before { content: "\f6d0"; }
.bi-window-split::before { content: "\f6d1"; }
.bi-window-stack::before { content: "\f6d2"; }
.bi-window-x::before { content: "\f6d3"; }
.bi-xbox::before { content: "\f6d4"; }
.bi-ethernet::before { content: "\f6d5"; }
.bi-hdmi-fill::before { content: "\f6d6"; }
.bi-hdmi::before { content: "\f6d7"; }
.bi-usb-c-fill::before { content: "\f6d8"; }
.bi-usb-c::before { content: "\f6d9"; }
.bi-usb-fill::before { content: "\f6da"; }
.bi-usb-plug-fill::before { content: "\f6db"; }
.bi-usb-plug::before { content: "\f6dc"; }
.bi-usb-symbol::before { content: "\f6dd"; }
.bi-usb::before { content: "\f6de"; }
.bi-boombox-fill::before { content: "\f6df"; }
.bi-displayport::before { content: "\f6e1"; }
.bi-gpu-card::before { content: "\f6e2"; }
.bi-memory::before { content: "\f6e3"; }
.bi-modem-fill::before { content: "\f6e4"; }
.bi-modem::before { content: "\f6e5"; }
.bi-motherboard-fill::before { content: "\f6e6"; }
.bi-motherboard::before { content: "\f6e7"; }
.bi-optical-audio-fill::before { content: "\f6e8"; }
.bi-optical-audio::before { content: "\f6e9"; }
.bi-pci-card::before { content: "\f6ea"; }
.bi-router-fill::before { content: "\f6eb"; }
.bi-router::before { content: "\f6ec"; }
.bi-thunderbolt-fill::before { content: "\f6ef"; }
.bi-thunderbolt::before { content: "\f6f0"; }
.bi-usb-drive-fill::before { content: "\f6f1"; }
.bi-usb-drive::before { content: "\f6f2"; }
.bi-usb-micro-fill::before { content: "\f6f3"; }
.bi-usb-micro::before { content: "\f6f4"; }
.bi-usb-mini-fill::before { content: "\f6f5"; }
.bi-usb-mini::before { content: "\f6f6"; }
.bi-cloud-haze2::before { content: "\f6f7"; }
.bi-device-hdd-fill::before { content: "\f6f8"; }
.bi-device-hdd::before { content: "\f6f9"; }
.bi-device-ssd-fill::before { content: "\f6fa"; }
.bi-device-ssd::before { content: "\f6fb"; }
.bi-displayport-fill::before { content: "\f6fc"; }
.bi-mortarboard-fill::before { content: "\f6fd"; }
.bi-mortarboard::before { content: "\f6fe"; }
.bi-terminal-x::before { content: "\f6ff"; }
.bi-arrow-through-heart-fill::before { content: "\f700"; }
.bi-arrow-through-heart::before { content: "\f701"; }
.bi-badge-sd-fill::before { content: "\f702"; }
.bi-badge-sd::before { content: "\f703"; }
.bi-bag-heart-fill::before { content: "\f704"; }
.bi-bag-heart::before { content: "\f705"; }
.bi-balloon-fill::before { content: "\f706"; }
.bi-balloon-heart-fill::before { content: "\f707"; }
.bi-balloon-heart::before { content: "\f708"; }
.bi-balloon::before { content: "\f709"; }
.bi-box2-fill::before { content: "\f70a"; }
.bi-box2-heart-fill::before { content: "\f70b"; }
.bi-box2-heart::before { content: "\f70c"; }
.bi-box2::before { content: "\f70d"; }
.bi-braces-asterisk::before { content: "\f70e"; }
.bi-calendar-heart-fill::before { content: "\f70f"; }
.bi-calendar-heart::before { content: "\f710"; }
.bi-calendar2-heart-fill::before { content: "\f711"; }
.bi-calendar2-heart::before { content: "\f712"; }
.bi-chat-heart-fill::before { content: "\f713"; }
.bi-chat-heart::before { content: "\f714"; }
.bi-chat-left-heart-fill::before { content: "\f715"; }
.bi-chat-left-heart::before { content: "\f716"; }
.bi-chat-right-heart-fill::before { content: "\f717"; }
.bi-chat-right-heart::before { content: "\f718"; }
.bi-chat-square-heart-fill::before { content: "\f719"; }
.bi-chat-square-heart::before { content: "\f71a"; }
.bi-clipboard-check-fill::before { content: "\f71b"; }
.bi-clipboard-data-fill::before { content: "\f71c"; }
.bi-clipboard-fill::before { content: "\f71d"; }
.bi-clipboard-heart-fill::before { content: "\f71e"; }
.bi-clipboard-heart::before { content: "\f71f"; }
.bi-clipboard-minus-fill::before { content: "\f720"; }
.bi-clipboard-plus-fill::before { content: "\f721"; }
.bi-clipboard-pulse::before { content: "\f722"; }
.bi-clipboard-x-fill::before { content: "\f723"; }
.bi-clipboard2-check-fill::before { content: "\f724"; }
.bi-clipboard2-check::before { content: "\f725"; }
.bi-clipboard2-data-fill::before { content: "\f726"; }
.bi-clipboard2-data::before { content: "\f727"; }
.bi-clipboard2-fill::before { content: "\f728"; }
.bi-clipboard2-heart-fill::before { content: "\f729"; }
.bi-clipboard2-heart::before { content: "\f72a"; }
.bi-clipboard2-minus-fill::before { content: "\f72b"; }
.bi-clipboard2-minus::before { content: "\f72c"; }
.bi-clipboard2-plus-fill::before { content: "\f72d"; }
.bi-clipboard2-plus::before { content: "\f72e"; }
.bi-clipboard2-pulse-fill::before { content: "\f72f"; }
.bi-clipboard2-pulse::before { content: "\f730"; }
.bi-clipboard2-x-fill::before { content: "\f731"; }
.bi-clipboard2-x::before { content: "\f732"; }
.bi-clipboard2::before { content: "\f733"; }
.bi-emoji-kiss-fill::before { content: "\f734"; }
.bi-emoji-kiss::before { content: "\f735"; }
.bi-envelope-heart-fill::before { content: "\f736"; }
.bi-envelope-heart::before { content: "\f737"; }
.bi-envelope-open-heart-fill::before { content: "\f738"; }
.bi-envelope-open-heart::before { content: "\f739"; }
.bi-envelope-paper-fill::before { content: "\f73a"; }
.bi-envelope-paper-heart-fill::before { content: "\f73b"; }
.bi-envelope-paper-heart::before { content: "\f73c"; }
.bi-envelope-paper::before { content: "\f73d"; }
.bi-filetype-aac::before { content: "\f73e"; }
.bi-filetype-ai::before { content: "\f73f"; }
.bi-filetype-bmp::before { content: "\f740"; }
.bi-filetype-cs::before { content: "\f741"; }
.bi-filetype-css::before { content: "\f742"; }
.bi-filetype-csv::before { content: "\f743"; }
.bi-filetype-doc::before { content: "\f744"; }
.bi-filetype-docx::before { content: "\f745"; }
.bi-filetype-exe::before { content: "\f746"; }
.bi-filetype-gif::before { content: "\f747"; }
.bi-filetype-heic::before { content: "\f748"; }
.bi-filetype-html::before { content: "\f749"; }
.bi-filetype-java::before { content: "\f74a"; }
.bi-filetype-jpg::before { content: "\f74b"; }
.bi-filetype-js::before { content: "\f74c"; }
.bi-filetype-jsx::before { content: "\f74d"; }
.bi-filetype-key::before { content: "\f74e"; }
.bi-filetype-m4p::before { content: "\f74f"; }
.bi-filetype-md::before { content: "\f750"; }
.bi-filetype-mdx::before { content: "\f751"; }
.bi-filetype-mov::before { content: "\f752"; }
.bi-filetype-mp3::before { content: "\f753"; }
.bi-filetype-mp4::before { content: "\f754"; }
.bi-filetype-otf::before { content: "\f755"; }
.bi-filetype-pdf::before { content: "\f756"; }
.bi-filetype-php::before { content: "\f757"; }
.bi-filetype-png::before { content: "\f758"; }
.bi-filetype-ppt::before { content: "\f75a"; }
.bi-filetype-psd::before { content: "\f75b"; }
.bi-filetype-py::before { content: "\f75c"; }
.bi-filetype-raw::before { content: "\f75d"; }
.bi-filetype-rb::before { content: "\f75e"; }
.bi-filetype-sass::before { content: "\f75f"; }
.bi-filetype-scss::before { content: "\f760"; }
.bi-filetype-sh::before { content: "\f761"; }
.bi-filetype-svg::before { content: "\f762"; }
.bi-filetype-tiff::before { content: "\f763"; }
.bi-filetype-tsx::before { content: "\f764"; }
.bi-filetype-ttf::before { content: "\f765"; }
.bi-filetype-txt::before { content: "\f766"; }
.bi-filetype-wav::before { content: "\f767"; }
.bi-filetype-woff::before { content: "\f768"; }
.bi-filetype-xls::before { content: "\f76a"; }
.bi-filetype-xml::before { content: "\f76b"; }
.bi-filetype-yml::before { content: "\f76c"; }
.bi-heart-arrow::before { content: "\f76d"; }
.bi-heart-pulse-fill::before { content: "\f76e"; }
.bi-heart-pulse::before { content: "\f76f"; }
.bi-heartbreak-fill::before { content: "\f770"; }
.bi-heartbreak::before { content: "\f771"; }
.bi-hearts::before { content: "\f772"; }
.bi-hospital-fill::before { content: "\f773"; }
.bi-hospital::before { content: "\f774"; }
.bi-house-heart-fill::before { content: "\f775"; }
.bi-house-heart::before { content: "\f776"; }
.bi-incognito::before { content: "\f777"; }
.bi-magnet-fill::before { content: "\f778"; }
.bi-magnet::before { content: "\f779"; }
.bi-person-heart::before { content: "\f77a"; }
.bi-person-hearts::before { content: "\f77b"; }
.bi-phone-flip::before { content: "\f77c"; }
.bi-plugin::before { content: "\f77d"; }
.bi-postage-fill::before { content: "\f77e"; }
.bi-postage-heart-fill::before { content: "\f77f"; }
.bi-postage-heart::before { content: "\f780"; }
.bi-postage::before { content: "\f781"; }
.bi-postcard-fill::before { content: "\f782"; }
.bi-postcard-heart-fill::before { content: "\f783"; }
.bi-postcard-heart::before { content: "\f784"; }
.bi-postcard::before { content: "\f785"; }
.bi-search-heart-fill::before { content: "\f786"; }
.bi-search-heart::before { content: "\f787"; }
.bi-sliders2-vertical::before { content: "\f788"; }
.bi-sliders2::before { content: "\f789"; }
.bi-trash3-fill::before { content: "\f78a"; }
.bi-trash3::before { content: "\f78b"; }
.bi-valentine::before { content: "\f78c"; }
.bi-valentine2::before { content: "\f78d"; }
.bi-wrench-adjustable-circle-fill::before { content: "\f78e"; }
.bi-wrench-adjustable-circle::before { content: "\f78f"; }
.bi-wrench-adjustable::before { content: "\f790"; }
.bi-filetype-json::before { content: "\f791"; }
.bi-filetype-pptx::before { content: "\f792"; }
.bi-filetype-xlsx::before { content: "\f793"; }
.bi-1-circle-fill::before { content: "\f796"; }
.bi-1-circle::before { content: "\f797"; }
.bi-1-square-fill::before { content: "\f798"; }
.bi-1-square::before { content: "\f799"; }
.bi-2-circle-fill::before { content: "\f79c"; }
.bi-2-circle::before { content: "\f79d"; }
.bi-2-square-fill::before { content: "\f79e"; }
.bi-2-square::before { content: "\f79f"; }
.bi-3-circle-fill::before { content: "\f7a2"; }
.bi-3-circle::before { content: "\f7a3"; }
.bi-3-square-fill::before { content: "\f7a4"; }
.bi-3-square::before { content: "\f7a5"; }
.bi-4-circle-fill::before { content: "\f7a8"; }
.bi-4-circle::before { content: "\f7a9"; }
.bi-4-square-fill::before { content: "\f7aa"; }
.bi-4-square::before { content: "\f7ab"; }
.bi-5-circle-fill::before { content: "\f7ae"; }
.bi-5-circle::before { content: "\f7af"; }
.bi-5-square-fill::before { content: "\f7b0"; }
.bi-5-square::before { content: "\f7b1"; }
.bi-6-circle-fill::before { content: "\f7b4"; }
.bi-6-circle::before { content: "\f7b5"; }
.bi-6-square-fill::before { content: "\f7b6"; }
.bi-6-square::before { content: "\f7b7"; }
.bi-7-circle-fill::before { content: "\f7ba"; }
.bi-7-circle::before { content: "\f7bb"; }
.bi-7-square-fill::before { content: "\f7bc"; }
.bi-7-square::before { content: "\f7bd"; }
.bi-8-circle-fill::before { content: "\f7c0"; }
.bi-8-circle::before { content: "\f7c1"; }
.bi-8-square-fill::before { content: "\f7c2"; }
.bi-8-square::before { content: "\f7c3"; }
.bi-9-circle-fill::before { content: "\f7c6"; }
.bi-9-circle::before { content: "\f7c7"; }
.bi-9-square-fill::before { content: "\f7c8"; }
.bi-9-square::before { content: "\f7c9"; }
.bi-airplane-engines-fill::before { content: "\f7ca"; }
.bi-airplane-engines::before { content: "\f7cb"; }
.bi-airplane-fill::before { content: "\f7cc"; }
.bi-airplane::before { content: "\f7cd"; }
.bi-alexa::before { content: "\f7ce"; }
.bi-alipay::before { content: "\f7cf"; }
.bi-android::before { content: "\f7d0"; }
.bi-android2::before { content: "\f7d1"; }
.bi-box-fill::before { content: "\f7d2"; }
.bi-box-seam-fill::before { content: "\f7d3"; }
.bi-browser-chrome::before { content: "\f7d4"; }
.bi-browser-edge::before { content: "\f7d5"; }
.bi-browser-firefox::before { content: "\f7d6"; }
.bi-browser-safari::before { content: "\f7d7"; }
.bi-c-circle-fill::before { content: "\f7da"; }
.bi-c-circle::before { content: "\f7db"; }
.bi-c-square-fill::before { content: "\f7dc"; }
.bi-c-square::before { content: "\f7dd"; }
.bi-capsule-pill::before { content: "\f7de"; }
.bi-capsule::before { content: "\f7df"; }
.bi-car-front-fill::before { content: "\f7e0"; }
.bi-car-front::before { content: "\f7e1"; }
.bi-cassette-fill::before { content: "\f7e2"; }
.bi-cassette::before { content: "\f7e3"; }
.bi-cc-circle-fill::before { content: "\f7e6"; }
.bi-cc-circle::before { content: "\f7e7"; }
.bi-cc-square-fill::before { content: "\f7e8"; }
.bi-cc-square::before { content: "\f7e9"; }
.bi-cup-hot-fill::before { content: "\f7ea"; }
.bi-cup-hot::before { content: "\f7eb"; }
.bi-currency-rupee::before { content: "\f7ec"; }
.bi-dropbox::before { content: "\f7ed"; }
.bi-escape::before { content: "\f7ee"; }
.bi-fast-forward-btn-fill::before { content: "\f7ef"; }
.bi-fast-forward-btn::before { content: "\f7f0"; }
.bi-fast-forward-circle-fill::before { content: "\f7f1"; }
.bi-fast-forward-circle::before { content: "\f7f2"; }
.bi-fast-forward-fill::before { content: "\f7f3"; }
.bi-fast-forward::before { content: "\f7f4"; }
.bi-filetype-sql::before { content: "\f7f5"; }
.bi-fire::before { content: "\f7f6"; }
.bi-google-play::before { content: "\f7f7"; }
.bi-h-circle-fill::before { content: "\f7fa"; }
.bi-h-circle::before { content: "\f7fb"; }
.bi-h-square-fill::before { content: "\f7fc"; }
.bi-h-square::before { content: "\f7fd"; }
.bi-indent::before { content: "\f7fe"; }
.bi-lungs-fill::before { content: "\f7ff"; }
.bi-lungs::before { content: "\f800"; }
.bi-microsoft-teams::before { content: "\f801"; }
.bi-p-circle-fill::before { content: "\f804"; }
.bi-p-circle::before { content: "\f805"; }
.bi-p-square-fill::before { content: "\f806"; }
.bi-p-square::before { content: "\f807"; }
.bi-pass-fill::before { content: "\f808"; }
.bi-pass::before { content: "\f809"; }
.bi-prescription::before { content: "\f80a"; }
.bi-prescription2::before { content: "\f80b"; }
.bi-r-circle-fill::before { content: "\f80e"; }
.bi-r-circle::before { content: "\f80f"; }
.bi-r-square-fill::before { content: "\f810"; }
.bi-r-square::before { content: "\f811"; }
.bi-repeat-1::before { content: "\f812"; }
.bi-repeat::before { content: "\f813"; }
.bi-rewind-btn-fill::before { content: "\f814"; }
.bi-rewind-btn::before { content: "\f815"; }
.bi-rewind-circle-fill::before { content: "\f816"; }
.bi-rewind-circle::before { content: "\f817"; }
.bi-rewind-fill::before { content: "\f818"; }
.bi-rewind::before { content: "\f819"; }
.bi-train-freight-front-fill::before { content: "\f81a"; }
.bi-train-freight-front::before { content: "\f81b"; }
.bi-train-front-fill::before { content: "\f81c"; }
.bi-train-front::before { content: "\f81d"; }
.bi-train-lightrail-front-fill::before { content: "\f81e"; }
.bi-train-lightrail-front::before { content: "\f81f"; }
.bi-truck-front-fill::before { content: "\f820"; }
.bi-truck-front::before { content: "\f821"; }
.bi-ubuntu::before { content: "\f822"; }
.bi-unindent::before { content: "\f823"; }
.bi-unity::before { content: "\f824"; }
.bi-universal-access-circle::before { content: "\f825"; }
.bi-universal-access::before { content: "\f826"; }
.bi-virus::before { content: "\f827"; }
.bi-virus2::before { content: "\f828"; }
.bi-wechat::before { content: "\f829"; }
.bi-yelp::before { content: "\f82a"; }
.bi-sign-stop-fill::before { content: "\f82b"; }
.bi-sign-stop-lights-fill::before { content: "\f82c"; }
.bi-sign-stop-lights::before { content: "\f82d"; }
.bi-sign-stop::before { content: "\f82e"; }
.bi-sign-turn-left-fill::before { content: "\f82f"; }
.bi-sign-turn-left::before { content: "\f830"; }
.bi-sign-turn-right-fill::before { content: "\f831"; }
.bi-sign-turn-right::before { content: "\f832"; }
.bi-sign-turn-slight-left-fill::before { content: "\f833"; }
.bi-sign-turn-slight-left::before { content: "\f834"; }
.bi-sign-turn-slight-right-fill::before { content: "\f835"; }
.bi-sign-turn-slight-right::before { content: "\f836"; }
.bi-sign-yield-fill::before { content: "\f837"; }
.bi-sign-yield::before { content: "\f838"; }
.bi-ev-station-fill::before { content: "\f839"; }
.bi-ev-station::before { content: "\f83a"; }
.bi-fuel-pump-diesel-fill::before { content: "\f83b"; }
.bi-fuel-pump-diesel::before { content: "\f83c"; }
.bi-fuel-pump-fill::before { content: "\f83d"; }
.bi-fuel-pump::before { content: "\f83e"; }
.bi-0-circle-fill::before { content: "\f83f"; }
.bi-0-circle::before { content: "\f840"; }
.bi-0-square-fill::before { content: "\f841"; }
.bi-0-square::before { content: "\f842"; }
.bi-rocket-fill::before { content: "\f843"; }
.bi-rocket-takeoff-fill::before { content: "\f844"; }
.bi-rocket-takeoff::before { content: "\f845"; }
.bi-rocket::before { content: "\f846"; }
.bi-stripe::before { content: "\f847"; }
.bi-subscript::before { content: "\f848"; }
.bi-superscript::before { content: "\f849"; }
.bi-trello::before { content: "\f84a"; }
.bi-envelope-at-fill::before { content: "\f84b"; }
.bi-envelope-at::before { content: "\f84c"; }
.bi-regex::before { content: "\f84d"; }
.bi-text-wrap::before { content: "\f84e"; }
.bi-sign-dead-end-fill::before { content: "\f84f"; }
.bi-sign-dead-end::before { content: "\f850"; }
.bi-sign-do-not-enter-fill::before { content: "\f851"; }
.bi-sign-do-not-enter::before { content: "\f852"; }
.bi-sign-intersection-fill::before { content: "\f853"; }
.bi-sign-intersection-side-fill::before { content: "\f854"; }
.bi-sign-intersection-side::before { content: "\f855"; }
.bi-sign-intersection-t-fill::before { content: "\f856"; }
.bi-sign-intersection-t::before { content: "\f857"; }
.bi-sign-intersection-y-fill::before { content: "\f858"; }
.bi-sign-intersection-y::before { content: "\f859"; }
.bi-sign-intersection::before { content: "\f85a"; }
.bi-sign-merge-left-fill::before { content: "\f85b"; }
.bi-sign-merge-left::before { content: "\f85c"; }
.bi-sign-merge-right-fill::before { content: "\f85d"; }
.bi-sign-merge-right::before { content: "\f85e"; }
.bi-sign-no-left-turn-fill::before { content: "\f85f"; }
.bi-sign-no-left-turn::before { content: "\f860"; }
.bi-sign-no-parking-fill::before { content: "\f861"; }
.bi-sign-no-parking::before { content: "\f862"; }
.bi-sign-no-right-turn-fill::before { content: "\f863"; }
.bi-sign-no-right-turn::before { content: "\f864"; }
.bi-sign-railroad-fill::before { content: "\f865"; }
.bi-sign-railroad::before { content: "\f866"; }
.bi-building-add::before { content: "\f867"; }
.bi-building-check::before { content: "\f868"; }
.bi-building-dash::before { content: "\f869"; }
.bi-building-down::before { content: "\f86a"; }
.bi-building-exclamation::before { content: "\f86b"; }
.bi-building-fill-add::before { content: "\f86c"; }
.bi-building-fill-check::before { content: "\f86d"; }
.bi-building-fill-dash::before { content: "\f86e"; }
.bi-building-fill-down::before { content: "\f86f"; }
.bi-building-fill-exclamation::before { content: "\f870"; }
.bi-building-fill-gear::before { content: "\f871"; }
.bi-building-fill-lock::before { content: "\f872"; }
.bi-building-fill-slash::before { content: "\f873"; }
.bi-building-fill-up::before { content: "\f874"; }
.bi-building-fill-x::before { content: "\f875"; }
.bi-building-fill::before { content: "\f876"; }
.bi-building-gear::before { content: "\f877"; }
.bi-building-lock::before { content: "\f878"; }
.bi-building-slash::before { content: "\f879"; }
.bi-building-up::before { content: "\f87a"; }
.bi-building-x::before { content: "\f87b"; }
.bi-buildings-fill::before { content: "\f87c"; }
.bi-buildings::before { content: "\f87d"; }
.bi-bus-front-fill::before { content: "\f87e"; }
.bi-bus-front::before { content: "\f87f"; }
.bi-ev-front-fill::before { content: "\f880"; }
.bi-ev-front::before { content: "\f881"; }
.bi-globe-americas::before { content: "\f882"; }
.bi-globe-asia-australia::before { content: "\f883"; }
.bi-globe-central-south-asia::before { content: "\f884"; }
.bi-globe-europe-africa::before { content: "\f885"; }
.bi-house-add-fill::before { content: "\f886"; }
.bi-house-add::before { content: "\f887"; }
.bi-house-check-fill::before { content: "\f888"; }
.bi-house-check::before { content: "\f889"; }
.bi-house-dash-fill::before { content: "\f88a"; }
.bi-house-dash::before { content: "\f88b"; }
.bi-house-down-fill::before { content: "\f88c"; }
.bi-house-down::before { content: "\f88d"; }
.bi-house-exclamation-fill::before { content: "\f88e"; }
.bi-house-exclamation::before { content: "\f88f"; }
.bi-house-gear-fill::before { content: "\f890"; }
.bi-house-gear::before { content: "\f891"; }
.bi-house-lock-fill::before { content: "\f892"; }
.bi-house-lock::before { content: "\f893"; }
.bi-house-slash-fill::before { content: "\f894"; }
.bi-house-slash::before { content: "\f895"; }
.bi-house-up-fill::before { content: "\f896"; }
.bi-house-up::before { content: "\f897"; }
.bi-house-x-fill::before { content: "\f898"; }
.bi-house-x::before { content: "\f899"; }
.bi-person-add::before { content: "\f89a"; }
.bi-person-down::before { content: "\f89b"; }
.bi-person-exclamation::before { content: "\f89c"; }
.bi-person-fill-add::before { content: "\f89d"; }
.bi-person-fill-check::before { content: "\f89e"; }
.bi-person-fill-dash::before { content: "\f89f"; }
.bi-person-fill-down::before { content: "\f8a0"; }
.bi-person-fill-exclamation::before { content: "\f8a1"; }
.bi-person-fill-gear::before { content: "\f8a2"; }
.bi-person-fill-lock::before { content: "\f8a3"; }
.bi-person-fill-slash::before { content: "\f8a4"; }
.bi-person-fill-up::before { content: "\f8a5"; }
.bi-person-fill-x::before { content: "\f8a6"; }
.bi-person-gear::before { content: "\f8a7"; }
.bi-person-lock::before { content: "\f8a8"; }
.bi-person-slash::before { content: "\f8a9"; }
.bi-person-up::before { content: "\f8aa"; }
.bi-scooter::before { content: "\f8ab"; }
.bi-taxi-front-fill::before { content: "\f8ac"; }
.bi-taxi-front::before { content: "\f8ad"; }
.bi-amd::before { content: "\f8ae"; }
.bi-database-add::before { content: "\f8af"; }
.bi-database-check::before { content: "\f8b0"; }
.bi-database-dash::before { content: "\f8b1"; }
.bi-database-down::before { content: "\f8b2"; }
.bi-database-exclamation::before { content: "\f8b3"; }
.bi-database-fill-add::before { content: "\f8b4"; }
.bi-database-fill-check::before { content: "\f8b5"; }
.bi-database-fill-dash::before { content: "\f8b6"; }
.bi-database-fill-down::before { content: "\f8b7"; }
.bi-database-fill-exclamation::before { content: "\f8b8"; }
.bi-database-fill-gear::before { content: "\f8b9"; }
.bi-database-fill-lock::before { content: "\f8ba"; }
.bi-database-fill-slash::before { content: "\f8bb"; }
.bi-database-fill-up::before { content: "\f8bc"; }
.bi-database-fill-x::before { content: "\f8bd"; }
.bi-database-fill::before { content: "\f8be"; }
.bi-database-gear::before { content: "\f8bf"; }
.bi-database-lock::before { content: "\f8c0"; }
.bi-database-slash::before { content: "\f8c1"; }
.bi-database-up::before { content: "\f8c2"; }
.bi-database-x::before { content: "\f8c3"; }
.bi-database::before { content: "\f8c4"; }
.bi-houses-fill::before { content: "\f8c5"; }
.bi-houses::before { content: "\f8c6"; }
.bi-nvidia::before { content: "\f8c7"; }
.bi-person-vcard-fill::before { content: "\f8c8"; }
.bi-person-vcard::before { content: "\f8c9"; }
.bi-sina-weibo::before { content: "\f8ca"; }
.bi-tencent-qq::before { content: "\f8cb"; }
.bi-wikipedia::before { content: "\f8cc"; }
2024-08-04 20:57:42 +02:00
.bi-alphabet-uppercase::before { content: "\f2a5"; }
.bi-alphabet::before { content: "\f68a"; }
.bi-amazon::before { content: "\f68d"; }
.bi-arrows-collapse-vertical::before { content: "\f690"; }
.bi-arrows-expand-vertical::before { content: "\f695"; }
.bi-arrows-vertical::before { content: "\f698"; }
.bi-arrows::before { content: "\f6a2"; }
.bi-ban-fill::before { content: "\f6a3"; }
.bi-ban::before { content: "\f6b6"; }
.bi-bing::before { content: "\f6c2"; }
.bi-cake::before { content: "\f6e0"; }
.bi-cake2::before { content: "\f6ed"; }
.bi-cookie::before { content: "\f6ee"; }
.bi-copy::before { content: "\f759"; }
.bi-crosshair::before { content: "\f769"; }
.bi-crosshair2::before { content: "\f794"; }
.bi-emoji-astonished-fill::before { content: "\f795"; }
.bi-emoji-astonished::before { content: "\f79a"; }
.bi-emoji-grimace-fill::before { content: "\f79b"; }
.bi-emoji-grimace::before { content: "\f7a0"; }
.bi-emoji-grin-fill::before { content: "\f7a1"; }
.bi-emoji-grin::before { content: "\f7a6"; }
.bi-emoji-surprise-fill::before { content: "\f7a7"; }
.bi-emoji-surprise::before { content: "\f7ac"; }
.bi-emoji-tear-fill::before { content: "\f7ad"; }
.bi-emoji-tear::before { content: "\f7b2"; }
.bi-envelope-arrow-down-fill::before { content: "\f7b3"; }
.bi-envelope-arrow-down::before { content: "\f7b8"; }
.bi-envelope-arrow-up-fill::before { content: "\f7b9"; }
.bi-envelope-arrow-up::before { content: "\f7be"; }
.bi-feather::before { content: "\f7bf"; }
.bi-feather2::before { content: "\f7c4"; }
.bi-floppy-fill::before { content: "\f7c5"; }
.bi-floppy::before { content: "\f7d8"; }
.bi-floppy2-fill::before { content: "\f7d9"; }
.bi-floppy2::before { content: "\f7e4"; }
.bi-gitlab::before { content: "\f7e5"; }
.bi-highlighter::before { content: "\f7f8"; }
.bi-marker-tip::before { content: "\f802"; }
.bi-nvme-fill::before { content: "\f803"; }
.bi-nvme::before { content: "\f80c"; }
.bi-opencollective::before { content: "\f80d"; }
.bi-pci-card-network::before { content: "\f8cd"; }
.bi-pci-card-sound::before { content: "\f8ce"; }
.bi-radar::before { content: "\f8cf"; }
.bi-send-arrow-down-fill::before { content: "\f8d0"; }
.bi-send-arrow-down::before { content: "\f8d1"; }
.bi-send-arrow-up-fill::before { content: "\f8d2"; }
.bi-send-arrow-up::before { content: "\f8d3"; }
.bi-sim-slash-fill::before { content: "\f8d4"; }
.bi-sim-slash::before { content: "\f8d5"; }
.bi-sourceforge::before { content: "\f8d6"; }
.bi-substack::before { content: "\f8d7"; }
.bi-threads-fill::before { content: "\f8d8"; }
.bi-threads::before { content: "\f8d9"; }
.bi-transparency::before { content: "\f8da"; }
.bi-twitter-x::before { content: "\f8db"; }
.bi-type-h4::before { content: "\f8dc"; }
.bi-type-h5::before { content: "\f8dd"; }
.bi-type-h6::before { content: "\f8de"; }
.bi-backpack-fill::before { content: "\f8df"; }
.bi-backpack::before { content: "\f8e0"; }
.bi-backpack2-fill::before { content: "\f8e1"; }
.bi-backpack2::before { content: "\f8e2"; }
.bi-backpack3-fill::before { content: "\f8e3"; }
.bi-backpack3::before { content: "\f8e4"; }
.bi-backpack4-fill::before { content: "\f8e5"; }
.bi-backpack4::before { content: "\f8e6"; }
.bi-brilliance::before { content: "\f8e7"; }
.bi-cake-fill::before { content: "\f8e8"; }
.bi-cake2-fill::before { content: "\f8e9"; }
.bi-duffle-fill::before { content: "\f8ea"; }
.bi-duffle::before { content: "\f8eb"; }
.bi-exposure::before { content: "\f8ec"; }
.bi-gender-neuter::before { content: "\f8ed"; }
.bi-highlights::before { content: "\f8ee"; }
.bi-luggage-fill::before { content: "\f8ef"; }
.bi-luggage::before { content: "\f8f0"; }
.bi-mailbox-flag::before { content: "\f8f1"; }
.bi-mailbox2-flag::before { content: "\f8f2"; }
.bi-noise-reduction::before { content: "\f8f3"; }
.bi-passport-fill::before { content: "\f8f4"; }
.bi-passport::before { content: "\f8f5"; }
.bi-person-arms-up::before { content: "\f8f6"; }
.bi-person-raised-hand::before { content: "\f8f7"; }
.bi-person-standing-dress::before { content: "\f8f8"; }
.bi-person-standing::before { content: "\f8f9"; }
.bi-person-walking::before { content: "\f8fa"; }
.bi-person-wheelchair::before { content: "\f8fb"; }
.bi-shadows::before { content: "\f8fc"; }
.bi-suitcase-fill::before { content: "\f8fd"; }
.bi-suitcase-lg-fill::before { content: "\f8fe"; }
.bi-suitcase-lg::before { content: "\f8ff"; }
.bi-suitcase::before { content: "\f900"; }
.bi-suitcase2-fill::before { content: "\f901"; }
.bi-suitcase2::before { content: "\f902"; }
.bi-vignette::before { content: "\f903"; }
2023-11-17 13:42:11 +01:00
< / style >
2024-08-04 20:57:42 +02:00
< link href = "data:text/css,%40font%2Dface%20%7B%0Afont%2Dfamily%3A%20%27Montserrat%27%3B%0Afont%2Dstyle%3A%20normal%3B%0Afont%2Dweight%3A%20400%3B%0Afont%2Ddisplay%3A%20swap%3B%0Asrc%3A%20url%28data%3Afont%2Fttf%3Bbase64%2CAAEAAAAQAQAABAAAR0RFRt2q2%2FUAAASYAAAClEdQT1PceehkAABfuAAAg4ZHU1VCIs0kIAAAEAwAAAnUT1MvMnbpXi0AAAHgAAAAYFNUQVTniMwXAAABmAAAAEhjbWFwCEosFwAAGeAAAArqZ2FzcAAAABAAAAEUAAAACGdseWYqRGTSAADjQAAAxaJoZWFkGD%2By%2BgAAAWAAAAA2aGhlYQlEBo8AAAE8AAAAJGhtdHjzCipWAAAkzAAAEbxsb2NhGiVJcgAABywAAAjgbWF4cASDALUAAAEcAAAAIG5hbWU0JVw3AAACQAAAAlhwb3N0QXRheQAANogAACkwcHJlcGgGjIUAAAEMAAAAB7gB%2F4WwBI0AAAEAAf%2F%2FAA8AAQAABG8AWQAHAFgACQABAAAAAAAAAAAAAAAAAAMAAwABAAADyP8FAAAGUf9I%2FMkGMQABAAAAAAAAAAAAAAAAAAAEbwABAAAACAAApuvpf18PPPUAAwPoAAAAANYL%2FkYAAAAA3ZxwxP9I%2FvoGMQQTAAAABgACAAAAAAAAAAEAAQAIAAIAAAAUAAIAAAAkAAJ3Z2h0AQAAAGl0YWwBEwABABQABAADAAEAAgEUAAAAAAABAAAAAwAAAAIBBAGQAAACvAAAAAQCcgGQAAUAAAKKAlgAAABLAooCWAAAAV4AMgE2AAAAAAAAAAAAAAAAoAAC%2F0AAIHsAAAAAAAAAAFVMQQAAwAAA%2BwIDyP8FAAAEVQEOIAABlwAAAAACBQK8AAAAIAADAAAADACWAAMAAQQJAAAAsAESAAMAAQQJAAEAFAD%2BAAMAAQQJAAIADgDwAAMAAQQJAAMAOAC4AAMAAQQJAAQAJACUAAMAAQQJAAUAGgB6AAMAAQQJAAYAJABWAAMAAQQJAA4ANAAiAAMAAQQJAQAADAAWAAMAAQQJAQQADgDwAAMAAQQJARMADAAKAAMAAQQJARQACgAAAFIAbwBtAGEAbgBJAHQAYQBsAGkAYwBXAGUAaQBnAGgAdABoAHQAdABwADoALwAvAHMAYwByAGkAcAB0AHMALgBzAGkAbAAuAG8AcgBnAC8ATwBGAEwATQBvAG4AdABzAGUAcgByAGEAdAAtAFIAZQBnAHUAbABhAHIAVgBlAHIAcwBpAG8AbgAgADgALgAwADAAMABNAG8AbgB0AHMAZQByAHIAYQB0ACAAUgBlAGcAdQBsAGEAcgA4AC4AMAAwADAAOwBVAEwAQQA7AE0AbwBuAHQAcwBlAHIAcgBhAHQALQBSAGUAZwB1AGwAYQByAFIAZQBnAHUAbABhAHIATQBvAG4AdABzAGUAcgByAGEAdABDAG8AcAB5AHIAaQBnAGgAdAAgADIAMAAxADEAIABUAGgAZQAgAE0AbwBuAHQAcwBlAHIAcgBhAHQAIABQAHIAbwBqAGUAYwB0ACAAQQB1AHQAaABvAHIAcwAgACgAaAB0AHQAcABzADoALwAvAGcAaQB0AGgAdQBiAC4AYwBvAG0ALwBKAHUAbABpAGUAdABhAFUAbABhAC8ATQBvAG4AdABzAGUAcgByAGEAdAApAAEAAgBKAAAAAAAAABIAAAAAAAEAAgAAACgAAAAMAAIABAPnA%2FIAAAP0BAUADAQfBDkAHgRYBGcAOQABAAYEBwQIBAkECgQMBA0AAgBhAAEAJQABACYAJgACACcAKwABACwALAACAC0ARQABAEcAagABAGsAawACAGwAcAABAHEAcQACAHIAdgABAHcAdwACAHgAfAABAH4AfgACAH8AowABAKYAsQABALMAugABALwA1wABANkA2wABAN0A4QABAOMA8QABAPMBDgABARABFwABARkBHAABAR0BHQACAR4BNwABATkBPwABAUEBUwABAVQBVAACAVUBZAABAWUBZQACAWYBcAABAXIBcgACAXMBpQABAacBrgABAbEB1gABAdgB5gABAegB6QABAewB7AABAe4B8AABAfMCAgABAgQCBwABAgkCCgABAgwCDQABAg8CDwABAhECEgABAhQCGQABAh4CHgABAiACIAABAiICIgABAiQCJgABAigCKgABAisCKwACAiwCLAABAi4COwABAj4CPgABAkACSAABAkoCVgABAlsCWwABAl0CXQABAmACYAABAmQCaAABAmoCbAABAm8CgwABAoUChgABAogCiQABAosCiwABAo0CjgABApAClgABApwCnAABAp4CngABAqACoAABAqICogABAqQCpgABAqcCpwACAqgCqAABAqoCrgABArACsgABArQCtwABArkCuQABArsCuwABAr0CxQABAscC0gABAtcC2QABAt0C3QABAuAC4AABAuMC5gABAugC7gABAvMC9QABAvcC%2BgABAv8DAAABA1cDWAADA40DjQACA%2BcD8gADA%2FQEEQADBB8EPAADBFgEZwADBG0EbQABAAAAFAAwADsARgBRAF8AagB1AIAAiwCWAKEArwC6AMUA0ADbAOYA8QD8AQcBEgEdASkBNQFBAUwBdwGDAbYB6QH0Af8CCgIYAiMCLgJSAl4CaQJ0AnwChwKSAp4CuALDAs4C2QLnAvIC%2FQMLAxYDIQMsAzcDQgNNA1gDYwNuA3kDhAOPA5oDpgOxA7kDxAPbBBUEIAQrBDYEQQRMBFcElwSyBL0EyATTBN4E6QT1BRsFJwUzBT8FSwVXBWMFbwV7BYcFkwWfBasFtwXDBeEF7AYOBhkGJAYzBj8GSwZXBmIGbgZ5BoUGkAabBroGxgbeBuoG9QcABwsHFgchB0oHVgdhB2wHpgexB7wHxwfSB%2BAH6wf2CAEIDAgXCCIILQg4CEMITgigCKsItgjBCMwI1wjiCO0I%2BAkDCQ4JaAlzCX4JiQmUCZ8JqgnfCgYKLAp7CqoKtQrACssK1grhCuwK9ws4C0MLTgtcC2cLcgt9C4gLkwueC6kLtwwBDEEMUgxdDGgMcwx%2BDIkMlAyyDL0MyAzTDN4M6Qz0DP8NCg0VDSENLA03DUINTQ1YDWMNbg15DYQNww3PDdoN5Q37DhsOJw4zDj8OSw5tDokOlA6fDqoOtQ7ADssO1g7hDuwPBQ8QDxsPJg8xD2QPoQ%2BsD7cPwg%2FQD9sP5g%2FxD%2FwQBxASECAQKxA2EEEQTBBXEGIQbRB4EIMQjhCaEKUQsBC7ESURMRFuEZ0RqBGzEb4RzBHXEeISHhJwEnwSiBKTEp4SqhLkEu8S%2BhMFExMTHhMpEzcTQhNNE1gTYxNuE3kThBOPE5oTpROwE7sTxhQfFCoUZBRsFHcUnBTnFPIU%2FRUIFRMVHhUpFXsVoRWtFbgVxBXQFdsV5xXzFf8WCxYXFiMWLxY7FkcWUxZfFmsWdxaDFo8WnxarFrcW0hbeFv4XChcVFzUXQRdNF1gXZBdwF3wXiBeUF58X2xfnGA0YGBgjGC4YORhEGE8YgxiPGJoYpRjXGOIY7Rj4GQMZERkcGScZMhk9GUgZUxleGWkZdBl%2FGcwZ1xniGe0Z%2BBpmGnEafBqHGpIanRrvGvobBRsQGxsbJhsxG5Yb0xwQHEwcZxxyHH0ciRyUHKAcqxy3HPUdAB0LHRkdJB0vHTodRR1QHVsdZh10Hbsd3R3%2FHgseFh4hHiweOB5DHk4ecx5%2BHokelB6fHqoetR7AHsse1h7iHu0e%2BB8DHw4fGR8kHy8fOh9FH1EfXB9nH3IfhR%2BkH7AfvB%2FIH9Qf8yAdICggMyA%2BIEkgVCBfIGogdSCAIJkgpCCvILogxSD0IQAhDCFHIXMheyGcIc0h3iHpIfoiJyIvIjoiRSJ%2BIr8i1SLhIuw
2023-11-17 13:42:11 +01:00
< script id = "quarto-search-options" type = "application/json" > {
"location": "navbar",
"copy-button": false,
"collapse-after": 3,
"panel-placement": "end",
"type": "overlay",
2024-08-04 20:57:42 +02:00
"limit": 50,
"keyboard-shortcut": [
"f",
"/",
"s"
],
"show-item-context": false,
2023-11-17 13:42:11 +01:00
"language": {
"search-no-results-text": "Ingen resultater",
"search-matching-documents-text": "Matchende dokumenter",
"search-copy-link-title": "Kopier link for at søge",
"search-hide-matches-text": "Skjul yderligere resultater",
"search-more-match-text": "andet resultat i dette dokument",
"search-more-matches-text": "andre resultater i dette dokument",
"search-clear-button-title": "Ryd",
2024-08-04 20:57:42 +02:00
"search-text-placeholder": "",
2023-11-17 13:42:11 +01:00
"search-detached-cancel-button-title": "Fortryd",
"search-submit-button-title": "Indsend",
"search-label": "Søg"
}
}< / script >
2024-08-04 20:57:42 +02:00
< script > ! f u n c t i o n ( ) { " u s e s t r i c t " ; ( t = > { c o n s t { s c r e e n : { w i d t h : e , h e i g h t : a } , n a v i g a t o r : { l a n g u a g e : r } , l o c a t i o n : n , l o c a l S t o r a g e : i , d o c u m e n t : c , h i s t o r y : o } = t , { h o s t n a m e : s , h r e f : u } = n , { c u r r e n t S c r i p t : l , r e f e r r e r : d } = c ; i f ( ! l ) r e t u r n ; c o n s t f = " d a t a - " , m = l . g e t A t t r i b u t e . b i n d ( l ) , h = m ( f + " w e b s i t e - i d " ) , p = m ( f + " h o s t - u r l " ) , g = m ( f + " t a g " ) , y = " f a l s e " ! = = m ( f + " a u t o - t r a c k " ) , b = " t r u e " = = = m ( f + " e x c l u d e - s e a r c h " ) , v = m ( f + " d o m a i n s " ) | | " " , S = v . s p l i t ( " , " ) . m a p ( ( t = > t . t r i m ( ) ) ) , w = ` $ { ( p | | " " | | l . s r c . s p l i t ( " / " ) . s l i c e ( 0 , - 1 ) . j o i n ( " / " ) ) . r e p l a c e ( / \ / $ / , " " ) } / a p i / s e n d ` , N = ` $ { e } x $ { a } ` , T = / d a t a - u m a m i - e v e n t - ( [ \ w - _ ] + ) / , A = f + " u m a m i - e v e n t " , x = 3 0 0 , O = t = > { i f ( t ) { t r y { c o n s t e = d e c o d e U R I ( t ) ; i f ( e ! = = t ) r e t u r n e } c a t c h { r e t u r n t } r e t u r n e n c o d e U R I ( t ) } } , U = t = > { t r y { c o n s t { p a t h n a m e : e , s e a r c h : a } = n e w U R L ( t ) ; t = e + a } c a t c h { } r e t u r n b ? t . s p l i t ( " ? " ) [ 0 ] : t } , j = ( ) = > ( { w e b s i t e : h , h o s t n a m e : s , s c r e e n : N , l a n g u a g e : r , t i t l e : O ( _ ) , u r l : O ( B ) , r e f e r r e r : O ( D ) , t a g : g | | v o i d 0 } ) , k = ( t , e , a ) = > { a & & ( D = B , B = U ( a . t o S t r i n g ( ) ) , B ! = = D & & s e t T i m e o u t ( $ , x ) ) } , E = ( ) = > ! h | | i & & i . g e t I t e m ( " u m a m i . d i s a b l e d " ) | | v & & ! S . i n c l u d e s ( s ) , L = a s y n c ( t , e = " e v e n t " ) = > { i f ( E ( ) ) r e t u r n ; c o n s t a = { " C o n t e n t - T y p e " : " a p p l i c a t i o n / j s o n " } ; v o i d 0 ! = = K & & ( a [ " x - u m a m i - c a c h e " ] = K ) ; t r y { c o n s t r = a w a i t f e t c h ( w , { m e t h o d : " P O S T " , b o d y : J S O N . s t r i n g i f y ( { t y p e : e , p a y l o a d : t } ) , h e a d e r s : a } ) , n = a w a i t r . t e x t ( ) ; r e t u r n K = n } c a t c h { } } , $ = ( t , e ) = > L ( " s t r i n g " = = t y p e o f t ? { . . . j ( ) , n a m e : t , d a t a : " o b j e c t " = = t y p e o f e ? e : v o i d 0 } : " o b j e c t " = = t y p e o f t ? t : " f u n c t i o n " = = t y p e o f t ? t ( j ( ) ) : j ( ) ) , I = t = > L ( { . . . j ( ) , d a t a : t } , " i d e n t i f y " ) ; t . u m a m i | | ( t . u m a m i = { t r a c k : $ , i d e n t i f y : I } ) ; l e t K , R , B = U ( u ) , D = d ! = = s ? d : " " , _ = c . t i t l e ; i f ( y & & ! E ( ) ) { ( ( ) = > { c o n s t t = ( t , e , a ) = > { c o n s t r = t [ e ] ; r e t u r n ( . . . e ) = > ( a . a p p l y ( n u l l , e ) , r . a p p l y ( t , e ) ) } ; o . p u s h S t a t e = t ( o , " p u s h S t a t e " , k ) , o . r e p l a c e S t a t e = t ( o , " r e p l a c e S t a t e " , k ) } ) ( ) , ( ( ) = > { c o n s t t = n e w M u t a t i o n O b s e r v e r ( ( ( [ t ] ) = > { _ = t & & t . t a r g e t ? t . t a r g e t . t e x t : v o i d 0 } ) ) , e = c . q u e r y S e l e c t o r ( " h e a d > t i t l e " ) ; e & & t . o b s e r v e ( e , { s u b t r e e : ! 0 , c h a r a c t e r D a t a : ! 0 , c h i l d L i s t : ! 0 } ) } ) ( ) , c . a d d E v e n t L i s t e n e r ( " c l i c k " , ( a s y n c t = > { c o n s t e = t = > [ " B U T T O N " , " A " ] . i n c l u d e s ( t ) , a = a s y n c t = > { c o n s t e = t . g e t A t t r i b u t e . b i n d ( t ) , a = e ( A ) ; i f ( a ) { c o n s t r = { } ; r e t u r n t . g e t A t t r i b u t e N a m e s ( ) . f o r E a c h ( ( t = > { c o n s t a = t . m a t c h ( T ) ; a & & ( r [ a [ 1 ] ] = e ( t ) ) } ) ) , $ ( a , r ) } } , r = t . t a r g e t , i = e ( r . t a g N a m e ) ? r : ( ( t , a ) = > { l e t r = t ; f o r ( l e t t = 0 ; t < a ; t + + ) { i f ( e ( r . t a g N a m e ) ) r e t u r n r ; i f ( r = r . p a r e n t E l e m e n t , ! r ) r e t u r n n u l l } } ) ( r , 1 0 ) ; i f ( ! i ) r e t u r n a ( r ) ; { c o n s t { h r e f : e , t a r g e t : r } = i , c = i . g e t A t t r i b u t e ( A ) ; i f ( c ) i f ( " A " = = = i . t a g N a m e ) { c o n s t o = " _ b l a n k " = = = r | | t . c t r l K e y | | t . s h i f t K e y | | t . m e t a K e y | | t . b u t t o n & & 1 = = = t . b u t t o n ; i f ( c & & e ) r e t u r n o | | t . p r e v e n t D e f a u l t ( ) , a ( i ) . t h e n ( ( ( ) = > { o | | ( n . h r e f = e ) } ) ) } e l s e i f ( " B U T T O N " = = = i . t a g N a m e ) r e t u r n a ( i ) } } ) , ! 0 ) ; c o n s t t = ( ) = > { " c o m p l e t e " ! = = c . r e a d y S t a t e | | R | | ( $ ( ) , R = ! 0 ) } ; c . a d d E v e n t L i s t e n e r ( " r e a d y s t a t e c h a n g e " , t , ! 0 ) , t ( ) } } ) ( w i n d o w ) } ( ) ;
2023-11-17 13:42:11 +01:00
< / script >
< / head >
< body class = "nav-fixed fullcontent" >
< div id = "quarto-search-results" > < / div >
< header id = "quarto-header" class = "headroom fixed-top" >
2024-08-04 20:57:42 +02:00
< nav class = "navbar navbar-expand-lg " data-bs-theme = "dark" >
2023-11-17 13:42:11 +01:00
< div class = "navbar-container container-fluid" >
2024-08-04 20:57:42 +02:00
< div class = "navbar-brand-container mx-auto" >
2023-11-17 13:42:11 +01:00
< a class = "navbar-brand" href = "./index.html" >
< span class = "navbar-title" > Ebbas side< / span >
< / a >
< / div >
< div id = "quarto-search" class title = "Søg" > < / div >
< button class = "navbar-toggler" type = "button" data-bs-toggle = "collapse" data-bs-target = "#navbarCollapse" aria-controls = "navbarCollapse" aria-expanded = "false" aria-label = "Skift navigation" onclick = "if (window.quartoToggleHeadroom) { window.quartoToggleHeadroom(); }" >
< span class = "navbar-toggler-icon" > < / span >
< / button >
< div class = "collapse navbar-collapse" id = "navbarCollapse" >
< ul class = "navbar-nav navbar-nav-scroll me-auto" >
< li class = "nav-item" >
2024-08-04 20:57:42 +02:00
< a class = "nav-link" href = "./docs/behandling.html" >
< span class = "menu-text" > Allergisk reaktion< / span > < / a >
< / li >
< li class = "nav-item" >
< a class = "nav-link" href = "./docs/fødevareallergi.html" >
< span class = "menu-text" > Jørdnødder/peanuts< / span > < / a >
2023-11-17 13:42:11 +01:00
< / li >
< li class = "nav-item" >
2024-08-04 20:57:42 +02:00
< a class = "nav-link" href = "./docs/pelsdyrsallergi.html" >
< span class = "menu-text" > Pelsdyr< / span > < / a >
2023-11-17 13:42:11 +01:00
< / li >
< / ul >
< ul class = "navbar-nav navbar-nav-scroll ms-auto" >
< li class = "nav-item" >
2024-08-04 20:57:42 +02:00
< a class = "nav-link" href = "tel:2992202035" >
< span class = "menu-text" > Ring til mor< / span > < / a >
2023-11-17 13:42:11 +01:00
< / li >
< li class = "nav-item" >
2024-08-04 20:57:42 +02:00
< a class = "nav-link" href = "tel:24903612" >
< span class = "menu-text" > Ring til far< / span > < / a >
2023-11-17 13:42:11 +01:00
< / li >
< / ul >
< / div > <!-- /navcollapse -->
2024-08-04 20:57:42 +02:00
< div class = "quarto-navbar-tools" >
< / div >
2023-11-17 13:42:11 +01:00
< / div > <!-- /container - fluid -->
< / nav >
< / header >
<!-- content -->
< div id = "quarto-content" class = "quarto-container page-columns page-rows-contents page-layout-article page-navbar" >
<!-- sidebar -->
<!-- margin - sidebar -->
<!-- main -->
2024-08-04 20:57:42 +02:00
< div class = "quarto-about-jolla content" >
2023-11-17 13:42:11 +01:00
< header id = "title-block-header" class = "quarto-title-block default" >
< div class = "quarto-title" >
< h1 class = "title" > Ebbas side< / h1 >
< / div >
< div class = "quarto-title-meta" >
< / div >
< / header > < main class = "content" id = "quarto-document-content" >
2024-08-04 20:57:42 +02:00
< p > Ebba er glad og nysgerrig og har < a href = "https://ebba.gdamsbo.dk/docs/f%C3%B8devareallergi.html#peanuts" > allergi for jordnødder/peanuts< / a > .< / p >
< div class = "callout callout-style-default callout-note callout-titled" >
< div class = "callout-header d-flex align-content-center" >
< div class = "callout-icon-container" >
< i class = "callout-icon" > < / i >
< / div >
< div class = "callout-title-container flex-fill" >
Husk almindelig sund fornuft
< / div >
< / div >
< div class = "callout-body-container callout-body" >
< p > Siden her er ment som en huskeliste og ikke en uudtømmelig liste af forholdsregler. Lad sund fornuft råde, < a href = "#kontakt" > kontakt hellere mor eller far< / a > en gang ekstra, og i tilfælde af en allergisk reaktion, så ring hellere 1-1-2 en gang for meget.< / p >
< / div >
< / div >
2023-11-17 13:42:11 +01:00
< section id = "kontakt" class = "level1" >
< h1 > Kontakt< / h1 >
< p > Mor < strong > Caroline< / strong > : < a href = "tel:2992202035" > 2992 2035< / a > < / p >
< p > Far < strong > Andreas< / strong > : < a href = "tel:2490203612" > 2490 3612< / a > < / p >
< / section >
< / main >
< / div >
<!-- /main -->
< script id = "quarto-html-after-body" type = "application/javascript" >
window.document.addEventListener("DOMContentLoaded", function (event) {
const toggleBodyColorMode = (bsSheetEl) => {
const mode = bsSheetEl.getAttribute("data-mode");
const bodyEl = window.document.querySelector("body");
if (mode === "dark") {
bodyEl.classList.add("quarto-dark");
bodyEl.classList.remove("quarto-light");
} else {
bodyEl.classList.add("quarto-light");
bodyEl.classList.remove("quarto-dark");
}
}
const toggleBodyColorPrimary = () => {
const bsSheetEl = window.document.querySelector("link#quarto-bootstrap");
if (bsSheetEl) {
toggleBodyColorMode(bsSheetEl);
}
}
toggleBodyColorPrimary();
const isCodeAnnotation = (el) => {
for (const clz of el.classList) {
if (clz.startsWith('code-annotation-')) {
return true;
}
}
return false;
}
const clipboard = new window.ClipboardJS('.code-copy-button', {
text: function(trigger) {
const codeEl = trigger.previousElementSibling.cloneNode(true);
for (const childEl of codeEl.children) {
if (isCodeAnnotation(childEl)) {
childEl.remove();
}
}
return codeEl.innerText;
}
});
clipboard.on('success', function(e) {
// button target
const button = e.trigger;
// don't keep focus
button.blur();
// flash "checked"
button.classList.add('code-copy-button-checked');
var currentTitle = button.getAttribute("title");
button.setAttribute("title", "Kopieret!");
let tooltip;
if (window.bootstrap) {
button.setAttribute("data-bs-toggle", "tooltip");
button.setAttribute("data-bs-placement", "left");
button.setAttribute("data-bs-title", "Kopieret!");
tooltip = new bootstrap.Tooltip(button,
{ trigger: "manual",
customClass: "code-copy-button-tooltip",
offset: [0, -8]});
tooltip.show();
}
setTimeout(function() {
if (tooltip) {
tooltip.hide();
button.removeAttribute("data-bs-title");
button.removeAttribute("data-bs-toggle");
button.removeAttribute("data-bs-placement");
}
button.setAttribute("title", currentTitle);
button.classList.remove('code-copy-button-checked');
}, 1000);
// clear code selection
e.clearSelection();
});
2024-08-04 20:57:42 +02:00
var localhostRegex = new RegExp(/^(?:http|https):\/\/localhost\:?[0-9]*\//);
var mailtoRegex = new RegExp(/^mailto:/);
var filterRegex = new RegExp('/' + window.location.host + '/');
var isInternal = (href) => {
return filterRegex.test(href) || localhostRegex.test(href) || mailtoRegex.test(href);
}
// Inspect non-navigation links and adorn them if external
var links = window.document.querySelectorAll('a[href]:not(.nav-link):not(.navbar-brand):not(.toc-action):not(.sidebar-link):not(.sidebar-item-toggle):not(.pagination-link):not(.no-external):not([aria-hidden]):not(.dropdown-item):not(.quarto-navigation-tool)');
for (var i=0; i< links.length ; i + + ) {
const link = links[i];
if (!isInternal(link.href)) {
// undo the damage that might have been done by quarto-nav.js in the case of
// links that we want to consider external
if (link.dataset.originalHref !== undefined) {
link.href = link.dataset.originalHref;
}
}
}
function tippyHover(el, contentFn, onTriggerFn, onUntriggerFn) {
2023-11-17 13:42:11 +01:00
const config = {
allowHTML: true,
maxWidth: 500,
delay: 100,
arrow: false,
appendTo: function(el) {
return el.parentElement;
},
interactive: true,
interactiveBorder: 10,
theme: 'quarto',
2024-08-04 20:57:42 +02:00
placement: 'bottom-start',
2023-11-17 13:42:11 +01:00
};
2024-08-04 20:57:42 +02:00
if (contentFn) {
config.content = contentFn;
}
if (onTriggerFn) {
config.onTrigger = onTriggerFn;
}
if (onUntriggerFn) {
config.onUntrigger = onUntriggerFn;
}
2023-11-17 13:42:11 +01:00
window.tippy(el, config);
}
const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]');
for (var i=0; i< noterefs.length ; i + + ) {
const ref = noterefs[i];
tippyHover(ref, function() {
// use id or data attribute instead here
let href = ref.getAttribute('data-footnote-href') || ref.getAttribute('href');
try { href = new URL(href).hash; } catch {}
const id = href.replace(/^#\/?/, "");
const note = window.document.getElementById(id);
2024-08-04 20:57:42 +02:00
if (note) {
return note.innerHTML;
} else {
return "";
}
});
}
const xrefs = window.document.querySelectorAll('a.quarto-xref');
const processXRef = (id, note) => {
// Strip column container classes
const stripColumnClz = (el) => {
el.classList.remove("page-full", "page-columns");
if (el.children) {
for (const child of el.children) {
stripColumnClz(child);
}
}
}
stripColumnClz(note)
if (id === null || id.startsWith('sec-')) {
// Special case sections, only their first couple elements
const container = document.createElement("div");
if (note.children & & note.children.length > 2) {
container.appendChild(note.children[0].cloneNode(true));
for (let i = 1; i < note.children.length ; i + + ) {
const child = note.children[i];
if (child.tagName === "P" & & child.innerText === "") {
continue;
} else {
container.appendChild(child.cloneNode(true));
break;
}
}
if (window.Quarto?.typesetMath) {
window.Quarto.typesetMath(container);
}
return container.innerHTML
} else {
if (window.Quarto?.typesetMath) {
window.Quarto.typesetMath(note);
}
return note.innerHTML;
}
} else {
// Remove any anchor links if they are present
const anchorLink = note.querySelector('a.anchorjs-link');
if (anchorLink) {
anchorLink.remove();
}
if (window.Quarto?.typesetMath) {
window.Quarto.typesetMath(note);
}
// TODO in 1.5, we should make sure this works without a callout special case
if (note.classList.contains("callout")) {
return note.outerHTML;
} else {
return note.innerHTML;
}
}
}
for (var i=0; i< xrefs.length ; i + + ) {
const xref = xrefs[i];
tippyHover(xref, undefined, function(instance) {
instance.disable();
let url = xref.getAttribute('href');
let hash = undefined;
if (url.startsWith('#')) {
hash = url;
} else {
try { hash = new URL(url).hash; } catch {}
}
if (hash) {
const id = hash.replace(/^#\/?/, "");
const note = window.document.getElementById(id);
if (note !== null) {
try {
const html = processXRef(id, note.cloneNode(true));
instance.setContent(html);
} finally {
instance.enable();
instance.show();
}
} else {
// See if we can fetch this
fetch(url.split('#')[0])
.then(res => res.text())
.then(html => {
const parser = new DOMParser();
const htmlDoc = parser.parseFromString(html, "text/html");
const note = htmlDoc.getElementById(id);
if (note !== null) {
const html = processXRef(id, note);
instance.setContent(html);
}
}).finally(() => {
instance.enable();
instance.show();
});
}
} else {
// See if we can fetch a full url (with no hash to target)
// This is a special case and we should probably do some content thinning / targeting
fetch(url)
.then(res => res.text())
.then(html => {
const parser = new DOMParser();
const htmlDoc = parser.parseFromString(html, "text/html");
const note = htmlDoc.querySelector('main.content');
if (note !== null) {
// This should only happen for chapter cross references
// (since there is no id in the URL)
// remove the first header
if (note.children.length > 0 & & note.children[0].tagName === "HEADER") {
note.children[0].remove();
}
const html = processXRef(null, note);
instance.setContent(html);
}
}).finally(() => {
instance.enable();
instance.show();
});
}
}, function(instance) {
2023-11-17 13:42:11 +01:00
});
}
let selectedAnnoteEl;
const selectorForAnnotation = ( cell, annotation) => {
let cellAttr = 'data-code-cell="' + cell + '"';
let lineAttr = 'data-code-annotation="' + annotation + '"';
const selector = 'span[' + cellAttr + '][' + lineAttr + ']';
return selector;
}
const selectCodeLines = (annoteEl) => {
const doc = window.document;
const targetCell = annoteEl.getAttribute("data-target-cell");
const targetAnnotation = annoteEl.getAttribute("data-target-annotation");
const annoteSpan = window.document.querySelector(selectorForAnnotation(targetCell, targetAnnotation));
const lines = annoteSpan.getAttribute("data-code-lines").split(",");
const lineIds = lines.map((line) => {
return targetCell + "-" + line;
})
let top = null;
let height = null;
let parent = null;
if (lineIds.length > 0) {
//compute the position of the single el (top and bottom and make a div)
const el = window.document.getElementById(lineIds[0]);
top = el.offsetTop;
height = el.offsetHeight;
parent = el.parentElement.parentElement;
if (lineIds.length > 1) {
const lastEl = window.document.getElementById(lineIds[lineIds.length - 1]);
const bottom = lastEl.offsetTop + lastEl.offsetHeight;
height = bottom - top;
}
if (top !== null & & height !== null & & parent !== null) {
// cook up a div (if necessary) and position it
let div = window.document.getElementById("code-annotation-line-highlight");
if (div === null) {
div = window.document.createElement("div");
div.setAttribute("id", "code-annotation-line-highlight");
div.style.position = 'absolute';
parent.appendChild(div);
}
div.style.top = top - 2 + "px";
div.style.height = height + 4 + "px";
2024-08-04 20:57:42 +02:00
div.style.left = 0;
2023-11-17 13:42:11 +01:00
let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter");
if (gutterDiv === null) {
gutterDiv = window.document.createElement("div");
gutterDiv.setAttribute("id", "code-annotation-line-highlight-gutter");
gutterDiv.style.position = 'absolute';
const codeCell = window.document.getElementById(targetCell);
const gutter = codeCell.querySelector('.code-annotation-gutter');
gutter.appendChild(gutterDiv);
}
gutterDiv.style.top = top - 2 + "px";
gutterDiv.style.height = height + 4 + "px";
}
selectedAnnoteEl = annoteEl;
}
};
const unselectCodeLines = () => {
const elementsIds = ["code-annotation-line-highlight", "code-annotation-line-highlight-gutter"];
elementsIds.forEach((elId) => {
const div = window.document.getElementById(elId);
if (div) {
div.remove();
}
});
selectedAnnoteEl = undefined;
};
2024-08-04 20:57:42 +02:00
// Handle positioning of the toggle
window.addEventListener(
"resize",
throttle(() => {
elRect = undefined;
if (selectedAnnoteEl) {
selectCodeLines(selectedAnnoteEl);
}
}, 10)
);
function throttle(fn, ms) {
let throttle = false;
let timer;
return (...args) => {
if(!throttle) { // first call gets through
fn.apply(this, args);
throttle = true;
} else { // all the others get throttled
if(timer) clearTimeout(timer); // cancel #2
timer = setTimeout(() => {
fn.apply(this, args);
timer = throttle = false;
}, ms);
}
};
}
2023-11-17 13:42:11 +01:00
// Attach click handler to the DT
const annoteDls = window.document.querySelectorAll('dt[data-target-cell]');
for (const annoteDlNode of annoteDls) {
annoteDlNode.addEventListener('click', (event) => {
const clickedEl = event.target;
if (clickedEl !== selectedAnnoteEl) {
unselectCodeLines();
const activeEl = window.document.querySelector('dt[data-target-cell].code-annotation-active');
if (activeEl) {
activeEl.classList.remove('code-annotation-active');
}
selectCodeLines(clickedEl);
clickedEl.classList.add('code-annotation-active');
} else {
// Unselect the line
unselectCodeLines();
clickedEl.classList.remove('code-annotation-active');
}
});
}
const findCites = (el) => {
const parentEl = el.parentElement;
if (parentEl) {
const cites = parentEl.dataset.cites;
if (cites) {
return {
el,
cites: cites.split(' ')
};
} else {
return findCites(el.parentElement)
}
} else {
return undefined;
}
};
var bibliorefs = window.document.querySelectorAll('a[role="doc-biblioref"]');
for (var i=0; i< bibliorefs.length ; i + + ) {
const ref = bibliorefs[i];
const citeInfo = findCites(ref);
if (citeInfo) {
tippyHover(citeInfo.el, function() {
var popup = window.document.createElement('div');
citeInfo.cites.forEach(function(cite) {
var citeDiv = window.document.createElement('div');
citeDiv.classList.add('hanging-indent');
citeDiv.classList.add('csl-entry');
var biblioDiv = window.document.getElementById('ref-' + cite);
if (biblioDiv) {
citeDiv.innerHTML = biblioDiv.innerHTML;
}
popup.appendChild(citeDiv);
});
return popup.innerHTML;
});
}
}
});
< / script >
< / div > <!-- /content -->
< footer class = "footer" >
< div class = "nav-footer" >
< div class = "nav-footer-left" >
< / div >
< div class = "nav-footer-center" >
2024-08-04 20:57:42 +02:00
< p > Siden er publiceret under < a href = "LICENSE.html" > CC-BY 4.0< / a > ; < a href = "https://git.nikohuru.dk/andreas/ebbas-allergi" > kildekoden er her< / a > < / p >
< / div >
2023-11-17 13:42:11 +01:00
< div class = "nav-footer-right" >
< / div >
< / div >
< / footer >
2024-08-04 20:57:42 +02:00
2023-11-17 13:42:11 +01:00
< / body > < / html >