From 66ae1a5f53c8e3eb8f4ba2e65c9454754c5ce380 Mon Sep 17 00:00:00 2001 From: "Documenter.jl" Date: Mon, 19 Feb 2024 21:06:28 +0000 Subject: [PATCH] build based on f9c0098 --- previews/PR1837/assets/documenter.js | 331 ++ previews/PR1837/assets/logo.png | Bin 0 -> 42146 bytes previews/PR1837/assets/search.js | 267 ++ .../PR1837/assets/themes/documenter-dark.css | 7 + .../PR1837/assets/themes/documenter-light.css | 9 + previews/PR1837/assets/themeswap.js | 66 + previews/PR1837/assets/warner.js | 49 + previews/PR1837/censored/index.html | 10 + previews/PR1837/cholesky/index.html | 2 + previews/PR1837/convolution/index.html | 2 + previews/PR1837/density_interface/index.html | 2 + previews/PR1837/extends/index.html | 38 + previews/PR1837/fit/index.html | 13 + previews/PR1837/index.html | 2 + previews/PR1837/matrix/index.html | 31 + previews/PR1837/mixture/index.html | 31 + previews/PR1837/multivariate/index.html | 38 + previews/PR1837/order_statistics/index.html | 11 + previews/PR1837/reshape/index.html | 3 + previews/PR1837/search/index.html | 2 + previews/PR1837/search_index.js | 3 + previews/PR1837/siteinfo.js | 1 + previews/PR1837/starting/index.html | 20 + previews/PR1837/truncate/index.html | 6 + previews/PR1837/types/index.html | 16 + previews/PR1837/univariate/index.html | 3598 +++++++++++++++++ 26 files changed, 4558 insertions(+) create mode 100644 previews/PR1837/assets/documenter.js create mode 100644 previews/PR1837/assets/logo.png create mode 100644 previews/PR1837/assets/search.js create mode 100644 previews/PR1837/assets/themes/documenter-dark.css create mode 100644 previews/PR1837/assets/themes/documenter-light.css create mode 100644 previews/PR1837/assets/themeswap.js create mode 100644 previews/PR1837/assets/warner.js create mode 100644 previews/PR1837/censored/index.html create mode 100644 previews/PR1837/cholesky/index.html create mode 100644 previews/PR1837/convolution/index.html create mode 100644 previews/PR1837/density_interface/index.html create mode 100644 previews/PR1837/extends/index.html create mode 100644 previews/PR1837/fit/index.html create mode 100644 previews/PR1837/index.html create mode 100644 previews/PR1837/matrix/index.html create mode 100644 previews/PR1837/mixture/index.html create mode 100644 previews/PR1837/multivariate/index.html create mode 100644 previews/PR1837/order_statistics/index.html create mode 100644 previews/PR1837/reshape/index.html create mode 100644 previews/PR1837/search/index.html create mode 100644 previews/PR1837/search_index.js create mode 100644 previews/PR1837/siteinfo.js create mode 100644 previews/PR1837/starting/index.html create mode 100644 previews/PR1837/truncate/index.html create mode 100644 previews/PR1837/types/index.html create mode 100644 previews/PR1837/univariate/index.html diff --git a/previews/PR1837/assets/documenter.js b/previews/PR1837/assets/documenter.js new file mode 100644 index 0000000000..6adfbbbf4b --- /dev/null +++ b/previews/PR1837/assets/documenter.js @@ -0,0 +1,331 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia.min', + 'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/headroom.min', + 'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min', + 'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/contrib/auto-render.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + 'headroom-jquery': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/jQuery.headroom.min', + 'katex': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/katex.min', + 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/highlight.min', + 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia-repl.min', + }, + shim: { + "highlight-julia": { + "deps": [ + "highlight" + ] + }, + "katex-auto-render": { + "deps": [ + "katex" + ] + }, + "headroom-jquery": { + "deps": [ + "jquery", + "headroom" + ] + }, + "highlight-julia-repl": { + "deps": [ + "highlight" + ] + } +} +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'katex', 'katex-auto-render'], function($, katex, renderMathInElement) { +$(document).ready(function() { + renderMathInElement( + document.body, + { + "delimiters": [ + { + "left": "$", + "right": "$", + "display": false + }, + { + "left": "$$", + "right": "$$", + "display": true + }, + { + "left": "\\[", + "right": "\\]", + "display": true + } + ] +} + + ); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'highlight', 'highlight-julia', 'highlight-julia-repl'], function($) { +$(document).ready(function() { + hljs.highlightAll(); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require([], function() { +function addCopyButtonCallbacks() { + for (const el of document.getElementsByTagName("pre")) { + const button = document.createElement("button"); + button.classList.add("copy-button", "fas", "fa-copy"); + el.appendChild(button); + + const success = function () { + button.classList.add("success", "fa-check"); + button.classList.remove("fa-copy"); + }; + + const failure = function () { + button.classList.add("error", "fa-times"); + button.classList.remove("fa-copy"); + }; + + button.addEventListener("click", function () { + copyToClipboard(el.innerText).then(success, failure); + + setTimeout(function () { + button.classList.add("fa-copy"); + button.classList.remove("success", "fa-check", "fa-times"); + }, 5000); + }); + } +} + +function copyToClipboard(text) { + // clipboard API is only available in secure contexts + if (window.navigator && window.navigator.clipboard) { + return window.navigator.clipboard.writeText(text); + } else { + return new Promise(function (resolve, reject) { + try { + const el = document.createElement("textarea"); + el.textContent = text; + el.style.position = "fixed"; + el.style.opacity = 0; + document.body.appendChild(el); + el.select(); + document.execCommand("copy"); + + resolve(); + } catch (err) { + reject(err); + } finally { + document.body.removeChild(el); + } + }); + } +} + +if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", addCopyButtonCallbacks); +} else { + addCopyButtonCallbacks(); +} + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'headroom', 'headroom-jquery'], function($, Headroom) { + +// Manages the top navigation bar (hides it when the user starts scrolling down on the +// mobile). +window.Headroom = Headroom; // work around buggy module loading? +$(document).ready(function() { + $('#documenter .docs-navbar').headroom({ + "tolerance": {"up": 10, "down": 10}, + }); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Modal settings dialog +$(document).ready(function() { + var settings = $('#documenter-settings'); + $('#documenter-settings-button').click(function(){ + settings.toggleClass('is-active'); + }); + // Close the dialog if X is clicked + $('#documenter-settings button.delete').click(function(){ + settings.removeClass('is-active'); + }); + // Close dialog if ESC is pressed + $(document).keyup(function(e) { + if (e.keyCode == 27) settings.removeClass('is-active'); + }); +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Manages the showing and hiding of the sidebar. +$(document).ready(function() { + var sidebar = $("#documenter > .docs-sidebar"); + var sidebar_button = $("#documenter-sidebar-button") + sidebar_button.click(function(ev) { + ev.preventDefault(); + sidebar.toggleClass('visible'); + if (sidebar.hasClass('visible')) { + // Makes sure that the current menu item is visible in the sidebar. + $("#documenter .docs-menu a.is-active").focus(); + } + }); + $("#documenter > .docs-main").bind('click', function(ev) { + if ($(ev.target).is(sidebar_button)) { + return; + } + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + }); +}) + +// Resizes the package name / sitename in the sidebar if it is too wide. +// Inspired by: https://github.com/davatron5000/FitText.js +$(document).ready(function() { + e = $("#documenter .docs-autofit"); + function resize() { + var L = parseInt(e.css('max-width'), 10); + var L0 = e.width(); + if(L0 > L) { + var h0 = parseInt(e.css('font-size'), 10); + e.css('font-size', L * h0 / L0); + // TODO: make sure it survives resizes? + } + } + // call once and then register events + resize(); + $(window).resize(resize); + $(window).on('orientationchange', resize); +}); + +// Scroll the navigation bar to the currently selected menu item +$(document).ready(function() { + var sidebar = $("#documenter .docs-menu").get(0); + var active = $("#documenter .docs-menu .is-active").get(0); + if(typeof active !== 'undefined') { + sidebar.scrollTop = active.offsetTop - sidebar.offsetTop - 15; + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +function set_theme(theme) { + var active = null; + var disabled = []; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + var themename = ss.ownerNode.getAttribute("data-theme-name"); + if(themename === null) continue; // ignore non-theme stylesheets + // Find the active theme + if(themename === theme) active = ss; + else disabled.push(ss); + } + if(active !== null) { + active.disabled = false; + if(active.ownerNode.getAttribute("data-theme-primary") === null) { + document.getElementsByTagName('html')[0].className = "theme--" + theme; + } else { + document.getElementsByTagName('html')[0].className = ""; + } + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + + // Store the theme in localStorage + if(typeof(window.localStorage) !== "undefined") { + window.localStorage.setItem("documenter-theme", theme); + } else { + console.error("Browser does not support window.localStorage"); + } +} + +// Theme picker setup +$(document).ready(function() { + // onchange callback + $('#documenter-themepicker').change(function themepick_callback(ev){ + var themename = $('#documenter-themepicker option:selected').attr('value'); + set_theme(themename); + }); + + // Make sure that the themepicker displays the correct theme when the theme is retrieved + // from localStorage + if(typeof(window.localStorage) !== "undefined") { + var theme = window.localStorage.getItem("documenter-theme"); + if(theme !== null) { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = (e.value === theme); + }) + } else { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = $("html").hasClass(`theme--${e.value}`); + }) + } + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// update the version selector with info from the siteinfo.js and ../versions.js files +$(document).ready(function() { + // If the version selector is disabled with DOCUMENTER_VERSION_SELECTOR_DISABLED in the + // siteinfo.js file, we just return immediately and not display the version selector. + if (typeof DOCUMENTER_VERSION_SELECTOR_DISABLED === 'boolean' && DOCUMENTER_VERSION_SELECTOR_DISABLED) { + return; + } + + var version_selector = $("#documenter .docs-version-selector"); + var version_selector_select = $("#documenter .docs-version-selector select"); + + version_selector_select.change(function(x) { + target_href = version_selector_select.children("option:selected").get(0).value; + window.location.href = target_href; + }); + + // add the current version to the selector based on siteinfo.js, but only if the selector is empty + if (typeof DOCUMENTER_CURRENT_VERSION !== 'undefined' && $('#version-selector > option').length == 0) { + var option = $(""); + version_selector_select.append(option); + } + + if (typeof DOC_VERSIONS !== 'undefined') { + var existing_versions = version_selector_select.children("option"); + var existing_versions_texts = existing_versions.map(function(i,x){return x.text}); + DOC_VERSIONS.forEach(function(each) { + var version_url = documenterBaseURL + "/../" + each; + var existing_id = $.inArray(each, existing_versions_texts); + // if not already in the version selector, add it as a new option, + // otherwise update the old option with the URL and enable it + if (existing_id == -1) { + var option = $(""); + version_selector_select.append(option); + } else { + var option = existing_versions[existing_id]; + option.value = version_url; + option.disabled = false; + } + }); + } + + // only show the version selector if the selector has been populated + if (version_selector_select.children("option").length > 0) { + version_selector.toggleClass("visible"); + } +}) + +}) diff --git a/previews/PR1837/assets/logo.png b/previews/PR1837/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..e6e26f90f2c8d3116cbca6323e41c7e2c49657e6 GIT binary patch literal 42146 zcmV*OKw-a$P) znV#yZ?y9V+tg2MZWF|ETfY1RTw2nCIKY!x{f*?RLGszTWI1`Bg;=~Do_c`wV_~ZVD zWMm^7*;i&Gz>REVU!jcvH?om^g%qW5<;9fAhzJFa>-Im?17FMO4EPu_f=*6;8NcnREV zU!jcvH?om^g*K|gJxA8*b*!kpr(a`Xd8LBXKZK}^Ywj6 zMUyg_ocdfIsOR_m-O7&aRCgp43d=%zL8jBwc8*Lu+W&A zo)1eIQinI5n0UzZZI`$F&B~Ve`Y+;z<=psrJ#KvD9lrt_0qz-EzMA(x&3|SK8@suG z)4wux<%t(IB4fa2*6qq_Y4ySL*Y_Uyx!G+Rz_0IrCe?OTO3ji?Bqkp^??z>Fa2qCb zy|n(s?`dRT&PITHhPGSV8GsE#q5pZT)oGr7U$^D|Zu7UYU(3s6VoH*+lyrL?xw?B* zR*S3B)W@o4lO6St_lo!Y^SSdQ5B3eP5#XMovEWZKywF~4Pm1b+@JbLKv*}rx&&)s2 zDl?IqG@3sEE#Y5a@2vk)HcOk9zg_QK*Rb%Mbkqy-oEyda>bW{HlbO{#FKNu>u<<+q zF$gJ_$CjVP+aK8pHUivJFy@5dX(Ey612aO@tH_#$Yj`#m_F{HP0dhD9Gq3M`CiQMz zvayVYj~nv(>>Cf9cOo(2-8s1JU(a8cP&g!K#?Bg8k!x+0x5V>2nM_SdyVB9TY)59& zGY}_I(Qq;ziAkkdIk7ablwI;TPq|egcavy1I`V#Bk&OWNB@LCwr+e21s*b(r?%=+Y zbc{FhH~he3p?hp}>XI5yS-y2cfpy&QaP!#(yG@w5p}-urTBl}V!kq?8Vkop;CxCp0^FCh&=7#0#Lnc-N_GD;*(hzu zRAyR|jiekl4kf98v3zX*$jebzdw1hEdhC74CdOnoIX4IqU!8u<(>%_vE1<#}uC5hV z)f*P%$4ft!rQEW_!*TDut@j?N%TYoYHp0sL<@=UP{`;H%PJeDlG!l_+w`ah9dHNLt z>OpLBaZl8pfOCGBzH z7CGJrTOY{Z-urd)<_#-~heD3j zxp%lCcl8T9tQ|@$789@RX&73QkpAO!OmrsXT<+Yn`v6}s8v*Va+j~3j%ST%uN>BeO z_@sd+O62Umv$~LB5>bUTx^>By^Ri#vm%r@%rNB<&(S~zEJmav44sMUy^@(>7N)o zi85q5HG>jF4yp%ML)$vsl=1Aig10Nbxc3WrZT>Y4J<}HEogY7M9_Plvby+`Lb3pUD z3YM6jt1D;6&spi9)GkS;myvF#qk&=Az{YEVl&Pzy`@7Y@lQ(AGlr!UJ>>Px)c+Wpt z{$t7p0$U0DNj}Q#%8@-i8v*Wf8aWV>Ey6eI+l%R?hcu2o-;slvSjGy_9nH5&^`gY1 zaSb8M@{xM9wB}UUU*G({WLwWwRRC@mx1`pn8gVj_o|Lo#ZFyo@=)xi2y0w4Pp7)@( zFTY)X*UkkX;<1Fu!0?XbY9S3X0be*2l0P~7C-T$PpW5T`tPm%RJ1@1120Fl8P;W<( zp4U4X3j1tr1h~&>o0VZfu^8AUlam(8Vf3jj_6yZ>nR)Nu-}o#4qs@;LYzYeqKiT?N zs-3F*frfQ>qu;Fk#z5BAe;xHm)n-+u6DgS;n-#*;d;2R!%_pNtJIA{#zn0a5ReelF z69P{?QBCH@=4CuNp}FCh1D=MFQ2LbY-dTS~u5EszUUWsSZ+~V?*aMhSAUQUIbNrG)`t3Jwcw%yG^IE7 zb9>%x1h~Epx6#}^gqq*<7qg24(A_JnSkGB1nnIo>b@eQSZ7k;BZvIx%(X{+>^%nqB zJ#%kpjYdPpGC2c0$0y@SBSfxle58+Y zlek!v`-QxL9d>duHzjk~dHK&r4cH6|C)xM`=z`z^>Mt;*A`#5`?&z{9y#YuXU9}3ygrKebROJS4+ybS zX;%DF%e^nc<`ji^4gJ(>e`z3QV_8$V1m?W}r1=PNA|_pWcjH~leW*iWcr275!4xdO zhO&cPYAQJ;p6|)5=0Ka34N2)gK!n%n_H~uyB#o8>BP=1g6GRAWs$1{LOmFu_9PgqaD`rrThzq2}C#ETk`303JN zxV3jnO0|*#lhD_fs^)#G`}fQ%Q{zJpHkmZ7q=H;SO*EbQJ_@ZvtHZ7Ot8#tU<$bW5 zwDsf?;}1**`!Yt3TWl2lZ4Kpl4KKpbqv!vU@))BFn=3tq;h>rGmFZV)l!1CTf4Ank zs$uo+zCx@F)xP)|3d;TVAVjplE+c5Ye-m`P-G&3lrG zr)`o99t%+9Qsc6gS1(k~+t2NedcT;ffwejfrzj~Gt%TtBd;?x27BvE8JUi)_(0IbU zt%Zt}eVNJ3m?!(?t-qJG-FuET^?b$*+4Dv9@u^r^k8eBA-V<4#Jfk^jN6t^4=e^r! zP-|Dsn-=svLCWBP0;S9M7ry_(ubnSqFT95fy09tqE{&bBD{U}0gsVR+BnzGK;p8>U z|Dae6wU2bFs8@S(EmZX^+@-N)4VA{^_1V`nznYW(9QjY?QNrP{hM^ngg&;X1Nd-+L zt{!K_zy`(dcYO1Be&x_)TAVi;iJDZaQ*WF1L@Z72N2!4hflwrDV8j!0A)siEgbdP! z%V|29k+OO@ycf6qkZ-j-49~}HKt-L8+bCTo^nJpb205#dFe1`dggvyW_~)d*nnH8gB$ZWxQiWHvV^*=SZG(WqQ6 zeJZtj)xy_$qi%qkY1L(Ma>>F*^2@Y_pI!veH}x@L8Ba|P^qCaRAwyt2H;bF*EdkyS zmVapB@uNaW&26m{0&hr@>!^S3bbH|ecUqrUNPz&;7qFLrE*6e!4mU2jc+SWZBwNt@ zjKG6fz{{Zae}D5m4dcp^Q;!#ssDTXzlMs>x4yjRVRxMvMAn8BCM8d^hx2v8_b2Y!C zKS!)sPB<9W(6QBQN~7A+$A={|m6f7;-+H8OKr5+t;+(BU(?A)G#;ha&L&?v8m5U0w zWG+2!eQ&5(P@N8bRTkvA2+8U55kfc9w!Ha0X>4yy%f#JEx&${idKDO`S zG+gvGEVRe#SH7tEU)`~r6wWQr)7RV8`nvo-^U^PI1R5eTvZ*URLrJiXy$LE8t?W zxP_9)uncVa)l*QxKKh}a0TVKW##X!;$3ol~-~_;h%{%TCw~c8eCv3Hxl7$?w$Fwj# zPpj$52|YhzBn(^!=jbYErPtEewQnAm##P2WV00-!9HGyYnwZwIQme@A)@?fnHM(IV zzx=8dD&J-s0qzlYW$I;_sm~f{C;|`nrm^&?+u`9TOw;Z%)74`&e_~MsEDFrjwd#$U zkuKxu36pv81%NyH*tU8dP={yg^}S^;)V0tOtz=kpL&8HV3uyT1;ffS|&87<-+pU(p z76X!kE2PJZ5hq>WQv|QYI;tJ^suyeI|v|JfqF*Dcv95Y$z(CY zS}ryhCN4bi8J*FbHyKWtz7+7m+>Y#Y8v*W^F-!;5$e4yz!^(M7C$!P57VcRn$tVKA z1e=G#1C|d@!@|Quq!Vc?j_;K!rekDr?-aHzqys-!B$~YCNfhN zY9gMVN>5uJ$@4=HHCs)~8#)(Wg>r1F?BC1uadZU7|8bk}h?(u6Z{D9U93_$c2fX%fpVudE{}_ z@uKF*I{HPy+d@nJ^?U=qK8duwmc)`7S)5oj#Xg1bVy$SM1Qv28qq0%lQ13NidE09< zughWe&@L)yHECvzD<~0g^Er48&kF3Owi($Y?S%szeQ%{^S;mv&4;5(7j-8dC-TPak z_c3&e*Y>Vi@fxErj`C!^u;y6DnC;1CEFD+;54S%sk3d&70He#hiHFc*kWaNVJZ#lk z=H2i>lm$Aqj@^c3v^=ZNMpCQ8JacUhSpbys0b#0zmctzmeeeyJ6)bn_b?pw=P6tl) zn$-35T+|H-A$d;PgQBsBg|A#>tSccCu@Mk-NDzkdxtN+o&x44WG6KJw&CHqCAKv?5 zWGCBm4LIgI;*kj9rjpab1{y)%8zbO`2b?lDlAbpN$TnXxJ15CV%EBa+B6uOL>OVa5 zBlQzqYmLEUp=r!l_N*m`LNntL#*#U^O;ahyc3X(R+D3rjr657Po@ZfWuj|4_hWB*4 zPU8p@$W-J4xkwra*(dx*)xFC(}(e_*ej%iszjcB*F zYs!#d8Ws5yxmRE-8YTfmYEqCQs7weMGx4mvG4~xi=Ci#|<<9W4DJv*#Di^Cu=amN;{AKzSC|?BV4zu|=u0%d)QFWJNt;RVt><98ZtSn~UGEvFlI#M|r{RxdR+^G-_cq zi^4Ec#0~Xx3z#%)c&pvOmUGMU&e|_6q(s(~%eqjKW>b2{FltS-y)c7>T#c0qvp1hf z8Z%jn7p2yynQ$2I<@HxOpn|$5oU|M(2oe20yBLIrft>`VkYO&(Wwl+Tj0Wd+q>tL&HcyK8(DJO*7a)<8d=OW>d4?hg%<*l#6_Ykde&{R}Sx* zK>0fh-!-<5Fm=DaZ=KXIcDtIZ0Z=wSB(LK+S?K5%-A!Haz9SsZimm!{R-!j5DU zS(zD|HJKWo4G)bsXLJNvDFytOrY^}ZR)1;FLFd9&WwZ~$qwKi@TmUwV9E64by@l^R z(bbloFG4HAMhyBJ+S_J?RJP4izCQPc+}yos;TQX^LF3cZ$s$K2+|f`ll}bsaR_=Qe zM_6#dw=ZK1Jp&{4GVb^N6T(XG*w4qzyysBPcj9A%+xi8OQ<1WhcBxT+19%K9qQ4G- zH2GRXLuoD=bUXBNJ?jwXGe{-UlI*3e3mnE0f%BLG^6yvw-i9X;j#CzRd+~cR)0=*h zkNbtR=MHcbZCib|4@*T)&)JUKOnS!C+)YE$Z40fK3u%gwkkcIA%HOc?^0oQbpalc*@;+L0#Jq( zc+&tP zGa{$YgmR%E%w(3yd~V(@D)Eq0k}%O3z34_^!{lnTCNXkvTtiPv1@3cAKk85LLfdl( zxW`!lHjH+g&0~9J58K&(?-%4qEw9OuZ%vtaG`t>-rx+n7;iGcEX>8<4?Bql2r9U{2J7@Qy$G}WFRf<>$I?TKb9^;4lIiY7^ zCqrm6$uYY)um=JfN=T=@z5oC(Pj>{{TD`8}^>lSw7Bfp0YJPX_yD~gLcVrLR3kSI4 z*7HvffBx>?&jppahl_CJTc{!Iiy62#~Jjxsi@p_@YP}+4C z(EX4}X025R9Vn#&y1kLKu~A5+RVLS!`^9zZ7+_!W@$!U>$0yVSPMA<&WT)E;2RNi! z!5~uzmPa*A4mRx&7kaU^FIReK@mwq?%j1A=#Z)HDFJW>qIbSE#maZ;pBOyFDX^TZq z(Yf32Gjr3q zOEv|1I8|LM;Ed%=JtdR5Fr-^FZZgnkpmgf>%U};d zzTX)j0sA=k^}_%=ttkGGV#V*Dx9|Qu@2EECcg@48Z!@rYeZnNH9*=gSo_a!NoRoSc z@#3DnCy15rpZS4pqeTl+(2fIBS?TZa!}#~(le|WDWG^h>6jVNqrtfb2#ySKDrO4Ut z9^4u1PP$pyLgwW&`h35(FLPt_wtW<`uZWF1=t{n{=cG{@mNDDpu9r3^`;Ca=XAz<8+=xZ)x|rJDCXP1kgvW6qXW67a%h)rtgO+6abd$ zC0UwWk_)pJ&7;S>nC7l&+q{ucffsTYY_c>)7dsa#c4lR}Wd<&-6juCaz1`Kf(Voj8 z@!ORxA6+E5#ofXkp8-I__p@UQ15N=LTln59+#B5Y08yg<*kBQ(wnkxletf}XUF^Zl z<`;N4!Z3Qy7!*5|osyY}S@Qr{^$_SM@mwb3>TjqK5`Gu4-&^h!4ZB`B&pWEk4Tpvg z)U?B==W%lM7>)~t&~8TUHTF8)BbKs%QX6xg$QamQRBZxS$dNkK-Uy3JwW3XkX2LXM z(5XS9f)##mZQn9>F0Bi;-6_b%-ns#Z{RNPP1s&CB zExkd(IpoL;akpU!!3ol;UdI*2tvK#=AI{hMw+FShhYH-m&F}*S^?&8ND#>ulLMYn`*bAm=xrR>iJA}dYX4TqvY)`j9aWaGy)0(t9<{d0= zvQc(!B!bJo1_wUq@rLhzz;}B`j~8zsvGTocpRDowd&h+&tRW`5@9`>u_0M{|nVE=0+hFZ-u^?(De) zTv9zu(0s~O__&^u+=7`VQ2clz_B=bAJBNJhfqa8JgwO~LB^xH%t~7qfn7Z#Te_z%M z>(-9KVx=@-gJ0Wi2OtFxG`g{W=FK7lPsf#?0YTDrddgN48hyAYZU{vu*4`ezpYXBQ zZ4c=zyZtgmr2p`4UnK3BcOxI0$WB_A9My|Q&o+2$YTkB6mM53x*6vLk13@@SX91xl z@0$zN>kDt#IbkN5z1d2&Y(6FZh0J*2{Y|B&2PGFm_|?)qtJCq>uzCJ`cHxE0?Vd}( z5$4dd#x9?zLyqe!SqSJP+5ZfSYCg4)d3XyZK*VS~hMzJ}h$dAQ67xIWoc)fxG<8{i zwf2sMn^5W7#VrFI9+j{&W)qX0dIPYMy|J*HjfQoD2j0%;djEtla@da7;^g=--b0-Q zR?r6ge*1y2no;XqB-l5OE&)gr$P=V!cy&fa(4I4$opEFS+C7<{S&)~eFWYNotO6Gj zHlD=e)1*s8z|5F{)g89A(wc$Iy>#DZSiY$CTmtS%rvF}?ykrINdbc5yiOCZS;0%6k z^_sRwAOr}V@P>S6@D7TVKR)*-HZG2tA6GX&vW+naN!Rz+q*|}&qVF2e2-OxR7iINe z)uwehl}1Rq?bgG2*=h2w<2p$>nvz9*ZO~!f??9lSZA4Aijd`#flG&JS{L!iyVS`tO zos1$i)9{fC4C52X>nH_elUbR{PTOPlDtk7mi+$#1Q?mv%CNpy};qwT4&m{-@A%E-&0OATdnn_Q5UxrOC?=ENKP~F>BKH+inz$p+g!5x$=MC`fJ;Uil$Z67f7XG z=ompjU5-Uqx7wAMEQ*DTSQ-xka|t=&MwAad<#Cea6a#3+d@{13+Z&Q^xg5?5xxuml zVIo0i0i;WtX=W{}xdF6TG;ZM~xhKcl1hJ5B8$nX$VDKwt5+-%g3kT?ayZ&1VT7&R# zXe-%=fzJAqjJYrXIoMg}McB*xG<#tIM^|^S-7p5tecXav@cj4%`*|kidf(nz|E26T zb}fHlPqmwSH_a2WfUmB9B!{JaH~H9i5~_yZuzdya7`FA4e>79l$_2gfk<{xUwSPFc zF*pWK2D2Gb&>)I7saB`s1`nCJ!LJT{{b8`((10BcMxo=~m{~$V5Q(^gH{;Bso-2FI zX6NL}?8`=kpsI1=<%(@%MGnk9a`ea@YMx8jonzv3tLmp?=?C7$L}J3TJsX;bl8I!j z=kQDZ`M$OG!UFC|Y(~ST>-o=2;`G|gYt{k&&iXr6N>J=}WDiS6ykJv~q3K?}tD0Nr*Y!FEs_szNgHw_8 zb3#U%g!%)F*pI+>uO$?7`bv7<&d*(t&4W#2Tk+7gC%ERK>@NV&xM(2MW{>iGdC&HX zLzz=A)h*N{zpai{W&Chl7_xhkjSAq-URc1zLkFvB+pxc~Cj9 zbCYk3CF?)HbPB~!Sk`WTj7=sV{Q9Rc`}%9VhXRYfuq;yPgy1;>_v}2*KfH&CKioH z`?b5Cc|z&AzPDkp(Gy4QEy8xk@tCyg4GSSr%cL|!5n(}{65nt!34074TUweik=^mqtk5LsJ@^U=l)OV>bk!D zUVoP!4JSDVLtn|ywl$pOb6{hUq=JlMJ@qt5Aa=)rIH42*@YoHO&jmG2BA&GK=*3Du zleAozxI|gtk)J&^IV4}4dm%kz{dMt(%_o7dG2J7tUa?0QSnE~?#~N^b2U^Ccn|E!y z+MjtyT5;;tK5-K54>)pLTiFbga9mQ6lw26UU@DU3?2?JL+1!NJwq4n=3lW=m{Ig5{ zT#geZ01M6KaL?gRW!t}fczbXRldxYjdm#Zg5g(VJ=*?uVxzxi&Z#zzN69&UFi;=Jk z85o6KHUVLu0mRWC?_9OtU!1xmxAHg5W01o|$2n)8Jkf=Ue2P7_AtYGzcn6BkEZQc6 zh1i;^FE9=yS=JC53-@=+>DgtWUF&c7p#YMO8`;1H9Dv4@|2`AC+=e8+cmr>TgsdHm zQs@&msBk)cNm?%JCXlauyf zymN4S04(;{3z*B{$ils<7jL@P3kf)i-cNEI;|C_=6H?dwB&}g2S9oltaL*V!YD=Y7 z$@c3$KYred;`D~$eb^ftP_bo|$-H_FC~RK^$V^As-yw$`O51*O00e7WvylfWX}8*r zJ?u97yoftyutOsXG4*8CM$4E*>5o$Pd#>Btg`xetD&SW17#L1KoJu4Oa1`lzoipRJ z7B*ARW>XXL);ouHY$FujCqLW%a2hJVIsY9i_%oJp*n$xj7+!9>KaH8X=1Jw37s*D_ zfJd0gxO8FB{Y-~5>WaX)S_3w_T`%jR+cgH0{O;x1S8O!;xry`o{Vnr&j1MoesbRBe z`*^cQn`0aO!M@%GLK~we5{^b>Dm!CBV!Rk3XkcC_G^nT9W7IPSLy88+z>Y%P*ia+- z-lFyuOC+r5ok*r+d~8BqUU=2=HOP^%^q4(=p<1wT^32#->wCjW{fGb=8xps-7T&he z?=ZMt|FzZHH6Q&cgLEOI2Ct*sjX*!Vp&Cz%?}lraE%cJ{pGoVJ-HY^I)*Ih_CS{GZu4iqG<&`doNKy*J@8 z7Zm`7_hJWC0EIU7v;1fF`Z?#_gS+POQ??!P(V(UmeYnsFaF4KDBIh9iV;7x-F1TRx zMoI{u?0w>+nFL5IMn-{8XJ$;f!KUno0NjQ2$sPu;tg*>Mw!Fv5r(uTQexQK#eA~R)PcI$A% zdfr_A7M7)nWk;seI+7h9)AL7c_n=qiUX?$;_>TtN6E9D_B2$TJ`Do`u+hf7@j#F^Yu&+h%LKenHvNNx+7 zT!1Z)Y=u-5670iO*d+sI-AwED2j(%&l=u_oox8RTafDjJV3!Nq-+I+9+U2a zQl(@C??}G`0i{17Y0zK_=>pioL8GbuODgbM)`r7YIj-lN5=XgHmifejEG;fey;C># z^bO6+eth=FHcBC|VCyMJqTzkK@$vwU{Em4qsBU-;bf*_5E zG%VSaQ|h<+AtD~K94Z;3Y2H#nMXL{JfT46#mU{zXGu|z&UXs2x1|L~h05!Ot%m1jY z&1Pq9R5?1yA1wXQUiT+EAKTW+>!mec^SDQj5yTJ(aM8&1#s^{Yxv_I!)t}*8Wh20S z34;J&BJ<_xE4D{Ly<4;V=C$e9<==ezzuBT@i~)>bDw#5-ldb_&8hA0hk(CEpEmNqJ zdPNftljEflDI4DaL4iuez!HjDSpmaCMy-CvhW#<4`{@E8M`VC2UW_o6;ycetw>G&U zZ8!9}S*L(L4k0pI2(xd(isoJH>dFWOK>pjc-^#zg@mKz<`hM6Er=mIBM)|(wv?xmc zOmjR$1BjOy#KfkQL5mQBm%h%w%{SFXfcpZ5@|^)X0O!@2*G>#O|JRTI7yt6i75RAc zsuj2i3F#%n3oa*fPQ_BI%6MwRw*F;=0r?uF1On$=dfb>oJkNKR-!hgo*c|`v&TaFK zem{rf9|{+?kD?xzNF)qwgtz;peba!Rojz}s1a>lIn_$j|SKcga*vt}uPCm(0GJr@( zi=g?ib|C-1*Z&3HPIIy!$am-8dg#5XclH?{$le2teqTtRKF#_?w-MmJfPK1mZNOaS zt9vGNF15y5P@DoON4V_1YGm;teT~Pxkei zk^Wc)YG3T9orz}UcKnu!iBZ7N5|m9$xjC8C)G}#nse#NO_v@$^i^nRK3#OS>5>4CQ z-9I_^2PPT&dFkgiz!u#kr4NonQyGefY&-h?$e2ixzv4H^{)bd=Lyc6R)%X)f_b>xb)7ZkEhL(Zssk zA6~>F59C*PE^;d7KQdl?qqAYZpUg~IZpaWListm_MWPWC6Wio0%@J)ID$_&8B$Lb- zSP44;Jr@9gOn7-^?qv-N>;3xL8QGrOlEdnu%RRdtJ12(V8M)WUzMPE!_a%+KFg#IU z`;`Lg)gz#akg!uW#iH}~HC_e@SUotlwz zqzcu&PLmd?(`}{Tn+!wH=%%W`9 zwrydvKm*wp^f<+D7Wism)rbU&%SLGEznhykWqxelHaUc-pnIB49U)cFRj#VXVqVHZ zZb7z7+eX#@YV}vvDHj=UN^n?*BFrIGftf&&=J4M-xMe^My2i=l*iDpX&Vqgs_AO7Gu`P{}UO{>= zs3;iTYD}mXwMoYS2yaIV4c>{zU)GS3=K+|Eu?y^_$(M|{L87)(+A;6>ljWbdQReAc z>;L0?6tPe0)H#8zC^esN$(GHV=V97fp#aif-#(YHBUNH5kr=r{Z|Z1r(e8 z8MiaddUwsdS(P#C>Z#Z|>;M1ezcg9a@3((1zr6kT=HUPwY$v~`g@$~O*FmEwpoc&q z9JXo{rD-Erfh5_DWxgYMAIvLid)Mu2+)^KagCeQDUvp7`~L8&|epWU;?3FQyTk&e1SspNS825KIV&1GHQ#lK5amu&9>axyk~ z#EZd3lC#l5<0NG<`3D#N)Ih>E$jG)RVxveY)`~{a13bV+t_auwF+`4ew#tq%nuMP0 z6f`V2ew=mv6Z&#S_E;MM?n$h7tZ%E?Jn=9#oM)GvYNskQ$(h0SQ*=!4*YXCcGvjA$ z@vjxv3~=z`e?@bW>eZ@jr^y2yjng361?4Lm-=&kj?U@kC4|SQtE-u=gti@hghvu^VuhjWAHQ= z$1lm7bKk+^S(i8qo~@m}zx)H4SI@@i1$2qf^$;1>NRu>qW+?hZ z9|^Ta3f^2u@Y;;b8`Nb>Ul_qt2-ab?fu&Z2u8B!8+q9(Zpqx(oO-E($-jcy8sTH4-*5Nxm7m$~C{nY> z9SkRV8#OyRwb_;RkI((F(^UGNK`osk!=Ya)Dmf=4M2_M)C(RTh&!^UXCn{y z1m;B^t)xJCzuVrC`=$G~R~k~U<2&|XjAmd|K}~`3H!J_yO~e{sw2^bPzR*!kKDM*D zZ8K9CKud0gSEGgo(@9N^p{poUuI+weyZ4}rgyyII2iX4kmH)5I=<8sb7bETV^f6U^ zjf}!8x63jX8`H;U4bV)I4mz~)s0*2qEbCd?w;pijeRg(54i819r^TC|dMrSmhRv!+ zf|(;HVn*dccF{H;k8uSHfSFbB zqU2}$Ek^i3) zHxh6Iuwj*&_*>hjAA6jluT-ARYZ5p5jan650y*0k+%wNc(fK4Bo}qtr_ah%h&$jmM zwk50HjZHx)h65-H*|kQ^O$bv!{K7c^s3-sLORv8n^X1EdU$VZSBL0$aac_x-hXky6=t%d=<2OQ*lkA9Z-9 zBGac@-MhAH41~#UZO6VZW{(JnU;~RWgu}vC$Qw4@%en(%Ig^0>*@Zv14(ZjyRk=8G z$#$rLDJ0~iRtBj-DPg<3ZC%xPKeUuk{efp>WL++iGcj~@JlcQmj)56s1#$B$)2~Xg zRWQ}dq(0x=vlvPKIX~6H>QOY(IB05UdU7|y^JL#lz~#ntMfb<4CF0`EpT0P}*Irc* zxFvGX&*6?8>)*I}1W3FkKR+eIQ=OLc9M%v0ppD0h+8XLzntbVjV*{phGC5^HqCvFN zeUO$XCu55!WM9o*%SPAzX7$&0KD;X+V-W4DGq1{Oan(S4P~TV3Qc_s7jqurSijjU4 z)hRzfj64kwmz+*YJzuxm@mx$Yi^V{(Q**!+DBQwdG;dFlS||A+4_Es88JOX$q<1CRH6J>TEe z@M~L-O(w-#TofTPbFZtkel)uh5EfRR zAJ6xV1RUn&a!==qHZ>`-uQ?WVw1WdTK($^Me{)NL95sN6g3;#~1-E~1)g6!NBKJ!- z2B*3_b=fFpx}WXHYEe?>aMhJjHO-BakeBhrA6n2L)y(8FLJ5agJkY1hU`NAVz==JnqU34V;o6~vj99nT zle<5?E7Mn|C7wx0tJE^jIH6uFnsoZqX1OW#gE~L=+0QVWoA>~>S!_spCe81^l^*XK z3%JwF00M9#5i3AH?)cEf3!Yyn`2NO*16z;}_FPEi-@5JcJFHw0e`iO$xsyZKVI|4q z?9A91SuNZfgp`XK8UhY#XMyKq7oR{V9Gn|K(o>gL@S!%Lw#QsY?q;|TqGLd_kY2En z;x`W*+eqDy+FVt^7Vqz56Yhf^bqn7c?YfVkIvGiQZe>WlQ1^?Pa{-u0G9nY_#wC`0 zGDfo7d@y{ajDV4U#&dCrrJ@G5cCGENzk6S{ukJ{z+LH8S%D{K&|8vn8(N5h(D@_Gy z;aOpcY^UGdiycTz0V}zc2{aPLd z8_C4t(Qh20&@<1WPE{h0MU)1a@%iXyXkQ z{{HR#(@yn}rDszLkm6v!$JhmZ`JDgmZ!HY8ybe?F$mEk>r2(dYaOlhV^Y*isPK!4= z;q|V5>`SvXIL=#`7w`Nz@waz0hf9bz?-s3p_n!N{sh}%qj*(Tca$LFM2RYv3%sYj~ z3&KoF2Bi}~c#`?2sP#_*`s1v;Rq+Erl@Cg?{+o5#`2D7zo=(Zw^4N(5?OylEH{wW7 zr#)(Plnuh_9Wx7Qsq9v5*P^uE&dfQo1@GCex23dQmRLF_$+5%$jJ64h1~+=!e`KJ-Czm_Pm;%P^NXiHdn1#iJ^`u1|K3^Wp#e zknO6lngi=jHWwTiqvp+h2=)eIey=?Tl@j4o(SC`UD1x-6#Cp z?Ke6e7HqNie)pa)*^GD>&OZQ@!2D9l_xJKHXRGUi!JBDFX!SS+_(_j>;IUj7*c7o? z*4KFS$Mwc@pZhHbxfB+Z1h$InQr}VFNK|Iezb4&SOkSUT!?p7;-77Wy(0O)iyFP6- zwCT|3N`3I{g}3cKzzjqBc`T|q6nW7}#@rMPMzUFI`gj-(@$f*81vK7g@7msg?%)1+ z+h-7MalIssN<*eDPRZ0OlY?S6UTys1xcGP2h;mF0RuA{3egPxXc-07E9#91`CfZP{C9t6G(VeIcxRS11bmow@7>?<{Tq%{ z@NeAEzi3Q>dBHlj{oA)sd^*2cb=ph@_VB&yLO1W?dGQtG9-*Y~y8=5Qr#|0>k^~|McMp9}G#Z0LgIUXz$@gX~f883wcN7i9Y>Koh+7(NqM6pD?hvE*A8nYy_$V}#`3Dtdf7-0Sj6eeQ~LYahjP84 z(;A3syEXNC4GsM&b`B6fRZq9JYmW?qt03ET7p(Aqxa#fC&R|0BdC ztR(bY{_&D&QhB|tYE!ba*(YXBzb^aQ02f+XJXwqkg@1oTFNYciM#Ace?kG4HB{V-b zIKKPu{)2B@@NQ`CRnt7-oL^;eT}D9`diUCi!zS=CSyx?&uGb}#3AB|3P+I(O%XVsG-(fXol|HoRF zEsooc9aIlPct_}Y7&?^7mIEQ7VSGGp#~ruf(gLh!gJO0nBJoVzYH`%rqI$ka%z?GG zU-J*{9NPFn?uW6QeQm~wn?^~Wztoh2I|q_o$l7xbcPmu3s~qpM2?}1ac2JX)o*xGE zo76V+l>yFjquo7-3ZwJA(9wqwwAlEc>G%8h#cyd|1`|0k@$h-b#Q-EBCSQ?=(_RMm zYxp@RT$2}O(vIf8`iV#);l4^G7pCfY2qTT1)Ys!JEs3w;qYzHc=pVXL9h}FTo7GGH zj(d(~)79kgf+sMWpT|OTv!Cm6L5t1PHWfNHqgbP5hO6 zj)e?sC~4d3_CJ>)&*Ojiv3VNrjDiE8-QN@s55%#6q*imF1Z?~s56AYr3S`;T5OZaw@4fBye)%g+9_p^V41J>M{0 zWnrTz>6w&msnsg#a~?J&Iv+K#@iuuqd_^)5%hiq-!&xr|Hi57y>-%Wf7dan~pLu1* zBx7HvJ#)ZW9qVU*XWoRcPSR;p?LS~_OsIL1r(v6qXKOai6MApHZebQb8~xvEiU0Gz zGY@DXCxdC3KELJwV_(M)JAnN|TFI6njn|Cw zH?l?_6Z+1Z9;z4sZr~%_+{^c$?~auQ2wSZKLBUNPD#<=IO?`1F|9lb)M9g?D^o}R# zH@}FQWY~uL(4g%PR|*nMM+f;3AzykvZ6Vs>-9uZrY}y}9#3VJ9G@ym!F7HZCB+LWy zGTV)|es%2py;fJMhc%g49+&EV)yR>9wF4tLpzed>buC{rmJ)3yo`?_?t>)s77G?6{ zgaH+X^zP4Aq^sV`)92dwV8dE?vhxoLCF;exZ_leB-@CnMWs`Aze!SYj-2)?d0Cs7+ z3%fy)pnYb_^XZ~o}>TML&)l>O9pX^Fyqay3ST~`oQq{kEX?4l%B|EH^> z_xtg5%seOn-uZaPBxmG=nW>B%-Y-~)+KTGMBJ0})B$-Rf+Ar2+_O;VntDdEOHKa+T zzsSkc7#FTreGL(%`yc<>htTlOoilJ5fuZ>ogvlTbo0+z0#}vM;1i%;hQ(nE&zJl}P zo0_xTcFGg=QdXPewt7gpbU{6idd~Y>8vmqSn5j9W6}=Vw7JdRCKuLaAr67J+9X@sogwuC;V93sy6(Ja(}AD-lMvNpXF;)ELuA6z2kh=$S3n2k?0PeFkwwWr zJX-Jgm_5cj1d^}QdhDLW#?FjM(BO#Y}6?H zz3Y4Gy{eL#&Di4zA$v)ugS4V`rzPv}u4~#GRsc;&JQY$<*9_eD9GcUuyt87!AooL( zRZ&3w=)e7;9NsJFWAFPs9@2%{9ldnx@86fP`F=ilw=1QYk~GQ%hQc!bIiX~&xO12bm5d)z;zk0!wSko(kYhh)mZtp_YbYs4oJ*crRaep&NOS zE-nx65OiG=%FWFUR3GZ89@aW8tJh;u(>6n~TyrpgWlaH7W!fr(L!9gikAt#*ZPS1w zOS8@!0y5kBv+gy#t7?_qU9wpytKT?Q+||7n%s^-(7Pq&7l&Rgd{YyELMuL{`+-3K4t~#a58K{ zXej>DZb@=WIfrNDW z+PSZO?8*hrruacR1CaC&ArwV5WRcxNm$wy44qUn*WOJ7p2rlH~KAx9j?`^o_vT5ff z0S(?SsmGKmZptzMR}Y2;)B9)t*fFPgSk8mTBJ4f06JrS@A62hweuXT9=MQH zL)V&yi0yv<-qZI$4v3P4vIU0sMizGN56)=_8@5sd&y&hI`Pwj16j-a;@^`Q8O7NNN z-`V%4EPed$)qfh^ZovU3qYjWRyg&(9Qunp?=0p8K$j zWJA9fE!UH!1@mlDsv^ZV(nc!k$zVU1T``(`%h&hn5vtD4I6x}cLjTpjG>;zWFfAV) z8yob?^;TD{P<56&2K)m!fP5T7gcp@s6L?1sb9e)W;2e>gt&mHxVL8YFzXb+yKU3^HtxbVav#FP z%jb2`>(z8u!LvN)$_;x54v2sW08Z+02L)p@ZIP2#DVTizu=$#Xt9s5WXI-AiIj8jJ zTEo45KsT)yhz~we&~CU|9JwQ92#VtX4^Ij+sn6Zp*tA-suQ{4&HX&IuX)7;S9!dWl z7aYhVh#B%gz3|Xj``EcGL-wdat=2@kQPJyC*Fr-2&>nlfp|Ny9T`RgAm8|}QM4_v? zmaqA{pYGXWhIkq^Uap#du*``+d2L6v@E>6FsRAF zL^jkz^En_X<2m+k9vHb3xey_YG=jy*--p#`&wTj*QvqCPVZpOj78VoA4hqnxm{IF^ zEa-XiD5!dwaUKPbKnkE;G%e(g%l*j7AV^s7fMRjZ}asIPZGx*puL;OAe^ydH_{Dwy~f4C(pF}B6j~*8&b_X@&G0N-iRcyUf)r$=G9Yn)eD6!&%>iqpYuK6KzO*Wp1hXU=j<2&qZ!Sq zItkk^0jAX7>&e>hnsV0UhqY z|AAYSS1vp6)owX~Fhy$$)W3h7Ir%64$qVe#wFBP{Yn`y#ne&@zQbPItL2Q14wypE(UyU zZMi)1L(MD6=M+SqdSYMSgZI{VkJ!x4P_Lg6G9h;%;k?{OXk2x`z$5zkysx?3m%g?J zV6*e;0zSBX=oZ02-4@{E2!NSarme@Uqn`zBIY^)&5H{Z11ibdyClMfP9<_6G$Le!* zClIz#r_0P_ELSS+lq{@^^mplDl~L!5XA@E@)ugyrlG=7vuZML5S*#Yb?r*#qWduS@ z!a#B|7CvPFh@D6^A~6j&Q)4NcP@UAss?B_pm4Y#v7-8iOOdG+xPy)tSJ;E~U1Zs%_o=-RZ$_?mEg#Q0NV4%7gWFY?LVyaNxO zY-7jW|MF$WT5^G46a(IjaFQAz9uR^AuMGo=)J#3PH$EepBc~q6`(sT!0X>PuJjtv(e#lO0j>Vo$9d3C1ILhyx-NBC*Dngnd&0?Xk zFbOmF`yJmfhj^Ch3Afk@_m&qN>u8~v8*O0E0js#LAgu;kM(Ax;T;O52-IV}<{zkk1 zyQuSqnk$&sw2z@@$N4*T^~g~dUh=#UDujJ32D~9a=K^4*hKd6}K%;4D}4-_b7qpd`XNY?Hn+r zN%fRL!Jga@nHrC|`}cRPBtf}>(3e~`o{C%7IubO%m(a%oN|u4W?q<&}FoB_9p;6X8 zF9neT)7L!lv7jTh9&WZhEf;+Dg>Sl#4-Q=J2GgjE(;7x0KUl2l*=$B+AW-Ia-IAl; z3FBVA=oV*CPn(`}o)Ho9JHOL#48XKbc$a`IJoNi^|9j7l_xCh}To`x9(BT}+9-W9e zmUHL8v7vyg-gHbS&(8&b*TcnNW6Sb76G;aK6RCe-LTnpQMCs%A?>X5SMSWOL-XlOm zzV_OyC(c^=A_jd;i;B(t&=7L#!|eyPgZ+;~Loi?S9=lD*MyEIVjeTkw`W9BI($bKe zK}8TEo&KVSJ){>dl}i~xf+ynfbPmLlDcf*_kj*3f>xHF5%}#-$=!Zzn zt%bOz2j#tn0T*@>5jKE_>@lg?&BMWRp$vk)G(DU4s@o3=(N7ya@z7^~Wy&ONcxH0p z@v|q7;CMEGW9$GuUMxn!Di+q6GvcqUiO-@V{~^=@geZO3JP&!)s-C~dhZA_S;5(mUxc?o{;q|zJ1>vUjZ|hZdtK@E*0zyNhnT+#% zgt(d~P*9gOeT{mRwBq`@dM5Q6o-R5ZN`Sj=`m$Tr<@SIjb?9fJ{FJ zt65G?Na#Cnm@d?BHZ13TT3rRhttaGfg|(uAVt5gh^nD-PJ1`YKo~?FRwZ$EtN}GHu zN}daEv{}`~-*sN;ux^z6-pZckiqx@CsBj!)1^x=JN2uAY_uRb6tgC%(UEP$XhH-7Z z5U@visQ)i8ZsYAt8A5ac$qV=tY=pCTPx7&F&yh3K=Xfpz%_b{LI2|Y?4yQ#-O));4 z2pgeeEk_#85<)Kh&^12a{Vywid9Q3_4B;txm#rTD{_W2{2L4HAykO4+aKqi%z3Vr8 zYZA3*i?|vVLS|--@H4p^`OVUzWAw;(@G5{SD0FXZ8~bTp-Z$3uF=dx~!6KUH3O*pd z2VrIK5`xwqe&6li*K_ylRnXHviY!bSabhI{!c5I=WL)pl@WV(O%_aRd%8;r9BH<X&(i2`~J35fDl5m*rr~YvK}=6z&_#mJ9#54&@7gBeMzPhw&+d5g_lEY z9E(^R48%w*8J9}EA{D(D;<-2v)4uS6O-&VgLwg!Y#(qzg^2?u;=&&Sb4G2Z!QczvVQCc&?3p z=QCarFH`T=v-Bz^NO)RYg?f-Mas;4W|0{@{g4^EEF}zK@TwRX5o&v3^9;m9hf`Z7V z0pI7m{XDOrAS=|}amI8~F3{J=BH-Ano`)LJ?NuiU<2^DO;(Ko&z4v`LAsUZnL<(TL ze94Ft3yINk;uY;ZH=P#r85_N9 zU#PB^$e4lAN(;rd?UCM74@q6mx+pG8NHf_oEoDb9hP+^<7RGm#NEB z3h0LAqp+v<-`()(2;Y2v)AXC3ACgACY2^UySvRLX9cdRVBw9*D%8LsRs3+)X#>@FX z{h0&XSjLLp-Vff^H>)4>C!ac|4!|K&hB}8t@D3f|@OTC`h!{s~9DysiVg>n`^zZYB zjtNAn!DEBlgrLs*`71%uK0I_xaPGQ0cOmeM`jLexQiWa3?`DTh*Tkb4wo)-En&~5X z-3X-tVlF2h9-2^ELue}r5XK(w4td13TM%F|F=oiuXRq5*1w@8}}+Qh|woJx9>Lp(HG0p+$Y*IaKJeNmQFv!=l1|G zAW6v80F525|AKH53vLI1jnpGnE@*W7HBP;L(PhBvj%cXZtU8?~*H4rr34Kqz*06p- z;85S&y1HfWiP{?kP)08p)XDbm9@voEi8C(${;DQ9e`&y3LuQ}yw?@&AKXK{``rgnO zMx&m8^OhT9mq@s70dgDEB;;_k*#I`Y0eKM~frXdphi(*`=M|7^0Z0bVEDlU~E5H#j zlEaHO07*sxlUrqe!< zOrA!~5gjPPZCK2p1VCL*Lr}cA0hI9h5%Ww?(Fas>uY5%Je_kU*qF)T}Mv^~!dDc`Z z2!5@-CKZ*#wF5U(q`_DN&j<<=5?31L@sL`;DT#5_{YI z(9!)Bj(%_NtN-`u*p$v_|L2f?>TLrfA*rX~VNbo4c{XZzVLejA!{~U-5jq+UPhFUj z=~t#T?5x^rt?XANtzJB=krbk5BY=vH!8Lf$oca~mm-lexBUZ%6 zaM(EjybxhI<_}MQeTqbuRCo{ILUlu?hOzsqk zhc##0w^0dbBqamtgT=R?(6F39M%gnLzR$?jm?e8{F`&a zd=}S-7d9_g(p+`slB>IQyRIgP78AjALvzTn`(s9=Ec|dDHuIT6>H8jP3i^W?4lb7VFZchf4nDS zFZ9|o;^ykkfqPar-DTLo96)4ZSVf_O46 z%&VgNVfiP^=JBZI&1=5O$USCj7PzRCTkh*;E$bYAR-pURfMdR-4Nzrf2wn^661f>f z2%cbh*^NQCbWwcRNXi8OkOf2E+|;CNOk|-VG=?qY=QFd;QyPW>a%8w)Y#3w#I0COV z?9D_T1kx}lgWJKmhRqxLeURHB8PiaTu)p4NK;yM8&N@$KdFZZtKZKH9r-ZSB{kgM_ zv0S4+tZTV0iW@c<8Lq=wK3uJdH#2P;oS00GbN<~gY=%iSgs3>7xz!g7gYvq-f>8=6 z{?GiuvMEyNQ(J%Mz9chAQ*~e{@?jn!Ol&-YdV-D-_FX%M1t0!@*?ZIG#gk@Yp6=?duCA5)zJUNqfW&qF^4tR+TmsyRRm~nTD=G+*AeM`pH#47n^2vO&{>;^0 zq00of8I?CY_sGdbngdq_$mnxS#~) z&e1NtaAf-1&8^?PrD!avFimn~CHD60`)msLKYPFy>SQN~i?iAtb!Q{BccjB9yPpvn z^gcKV>g;6Gx{L@#{|%&ZdD#T-zN5V<9k~I$12%vAO-Y4%ZCc3*2+xwCQaM?}kAE#E z>r&LnhWxs|uadRk&_#DuZ!xuw5|2=g%y%>w9qT!!yN`1^cR%_2J&8=q5L&6lB*nbd zZ^_jddMKc-kgBg=(Tj{Kioq8ps$ILH$0C3`%FjtBC-(OMFxKPhVU(Y7#_-W&n|jMJ zO6Bt=6;kuvvJQR%W2wf*RNg%Nvxlb0egLU=fXS)dawA!lCYb$nP8-HZA0QSqJu{^} zIjC5>tL3UQ`OrS!;{Y!5_$p%VzRqc?4&phIJ<_$Olyg4+G5P0eIrmtB3cNQdTB&Ya z36y9}sz{oQ8gr(%T~}Tqf~4T{<28-wI1vPFX8znHI_(bb51YoHiSrfBoFgJ3!D7gh zqMAoLoVTzLeGsz>12YM(Q6EF6W#OJBVbhx%ers57 z_gwGMHV00c?n&v#yFASBEI6*gt6Y7yT0Jb~JW~tXN{6DRTYk2pvu)Huu;>9M zxbl}lj+>3nvT2klT51;1zf1dE)bSm~cQ)U7Dh)rAee>_{JFf#!+;b6Gozpc(7f9~c zekr3HcQ%$c%s}&i8G3V2x2p2mwFkLb(ptLmTE!&N&8B<2mRbinzyfe}j-xl6%CQ7^ zI*A?aaLrBC4KnuogHwCZwn&-aO9rpMcAytmV<4F<$)L{r#Rqn1l&BzA(*WcTF{ovq zIpWt`u0D&y`*EiUW52IwjndF~13msb@3C8>w2nvy%DRFwS<#LTq3^G8q6*7)xjjyZgTa>sJb<7K zl`0{rF8Yvr>4YMboO_nxQK>ev?GXrSoX#G#+H^CXVw&pF3l99g_DDx*UgS{D$>PYR zyAQ_CP;`dc#X78xo(`q6efnSSnX&I*HFJye`o5VQ;1x4FcjHInHO~vrG(WSca_N98 za7;T7VVi)0p2UuHI9*tXXpS~;vvt=q`LgAWOi!9GzBH9T`V)z4U)cf8r%}WC5>wx8 zc2XO7z1myzo7D%N^{{92?sHUKchqCVpEF{q@Rf)R_ip^E{q;akG(*>9$A&m=63v7D zeyhy_fHFL&^>F3KKM8|(-cjPR&JJ>4{uA{q8>RXN>xnBhGRAJS&xUsYV0(3@4X09a z%}P<>f3*1#dS#Fk_*^-Mdsf$k=td)%6Pmd;G(v(sN#QaQ zqeP%Li6Q&$?-K94lGD_in%8YyJ&7IdaE&6>2~5F&kMF9wvZ^7|cSA~HenTEVX;U$J zS*>!rLtYXRW(8X5u~&gYCDG;p8VB-U zom?}$>0V`>(4=M}x+!J1jh5GU6*^~7)FFsl(YRIfN^=eI*ws`n;x&p`jeZ_aJL5H< z54OY~kJr#_nybzZ2$E<{nCxIqnJ_vkBY(C&x1lxI?8md>EM2PRj5sVTlS8lB`%hM5 zOcWgBuNvA5(PdM4b2L7XT>vck@K<_*DZ2!H676MeDMcz=CjDBsQK8dLewzY7fe&i< zw-YbwWglU@1{{W_e8>L80`(`a{mxBey0W(Sh%w-bc4amikZiF8?JAwiu~FFc1LK#OH>mSXaZsdvsF#hlT=W!{e8|_ImE)^I>4|OS{++O%{ zLFsBV_euRq8zlvZ79T8`XFq?YwHy~D|9M(_yj^=~OAt6qJ9F|fasjHAqX*Uv=~W$7lXo<(GMCQhj`0bEgi2>-Y!1FJXMfalw)p+s z*SMqkRxc9PLpZB0qgPQf}90 zLl!|CGo%>~g-jVMTjlVqNX=*OaE#dCY;Y%O^a7R3$rb+U1Iw1r+MG847+A?`-;Fn~ zjpQuIACBfDgnIAjrMlm_CinBEjLwThdPYZ8#XztMp)3YYHIc|ct-?D44vRMnLpdi-OWzk%K5>U?3kz=Ly zw)V)F;^LN`fO@45?Isz>#?4a0;VO_G9@wJE#@HEOr1 zCQ>P>I67_O4QT)NaneiwevO>!usRTUvFs>Mj$Wg}(= zX&C*b0zyFY#u8B!qmHXd7yW}vsY%Qd^Phyr#T z>$=vd4wUY+T8)gHupdpQw$XRo+|hwjl_1!$PDk&Fo)j=T5wUx`N0qnWNwQCEPu}ac z*{(_Dd=`j3ItQWt!)msA)+ohvzw>|ZJAWA(T@b2N0v8xSplyfg18w73EYS`=IiN0FdHMWR` zAAf9{*<960v)Cw;j08{F8^BE5>#r!AzDnxF2_gTIp3x5I$w-aI-Z;`p_Y}?=$(Ru5J$-uLghV|qHm;qrx2sd{ zY5+(?eR`6NHg$AZFl8%tMXem~y~fiX*d@@N=s#)7RkBz6rbsgci2_Dhbem~tRQu6w zn8^&c>%@1WRVt*d=9<(Ihii`h>GOC~9Q7iV|2uo6>-X6jF;3iVf0W04WvXCjd0VMw zN>O7Ec*REPiu^pxM$!xt{ip9vn`=L~rjd@l2WXoR{Si~*wiAg>cBE=VfVeQB!o@|5 z>F`AQ^warAJKWQWn%l7dYbLt?_)m<9b_1AH+JwKpXM!L8JzIwm&Cp_`hWUp-H0I~O zP|?^BwPPZHYDOaXx*qM~j)pyJC|mx22g{$8!x>YhY*o!4qU^&E1Wf`8XlMx(oZ;JrArxZeSbJ z8zF28jFXC;+ze+1O--6Au1zhNj=qlSQVY^7)=km)rd_Zhbqk!yb%b5z9}E*tGKW?= zWYB>q4m@$AG|mzA?U>z$&UREwpdNF@Z$0?N^XwD@oqq#mv`{C*w{5CPU+#bWPkSLsx9Y5% zHnCe3MtV&!c)Vse4O?d@bTQGK8O*3dQMWJw4IIt{z?P)% zC?c~>b>`PIDtU*4?MejRp4&3Xo|M8OjJBjYnpM!%ITh5YJ+B?$^BaBk|Nc=sybh}u z5&f??F?D0vlxzORfi|SPm7-h_igHd!c};}I`Jk)umwa5h4M?0zDQlS)9nXRG)gvVj z2yJ_ByGeIhgwo#|xAJf`bn0g?Z#EZ;kOabZiFE1Q$p?Usb~v|sDY~t?itFoP_~~ah zZ9&I3e^eCI>$G%Iu%WI1^WOpFbG~ zG3o&vr!haJ^k?bf_i^`g0!8k1mQ7fYD2L9+y{8gpO8fVxDGq>w!_gL)Uo>H7&IEUE z*)&_%a%F9*&9V^r-P&HpY<)$WAZ4~IIkPpfX?pv6Pxa2AEm6Oq$&bb(>0|SBcF`LA};8P|#S}fGQv0II9Olj|!Qq>_GarvYck7D)sl+JKso=1^W zug3QugWoHWne@>ZRbO^dImys4Jw~b7NG(f}ZYB~5ZGMAjX0B!QHX0_5Bmhs6dUz+l zKL*7bERaxTvatVrY9o{j*omC(=*IUecWiwo-mNuUYipoeaGc8U_3I`8O_Sm^K&OMo zEnG=@P&gK~i#V2QQ-1lCvM6-H1}y@&v4$owf<5%#3QmK>o%jyW@R7tujqc-`AE}P> zw|+W{CG8NX_Q53%A)zWrunJ7o{$WZB8|t^nhJAoa_o^M zhs=y%tBR?vqR%NQr_|Y7!Ipe&v&iM_p55*3)pSR-1r9&5$7=;(ey!*;Ox%54y6YO^ z*5Lwm5*~uu3?W6abOR$l`( z@Ja1xhpRV*>@m4es$wsZ+!;mrpqxW{15Y8b$0x2Y*3ZpDIFOi_) z9LzKOmgtRx$t z_g04yryNI|W?|lYy3o?Tjxbp9P?M-T+N6eKLST{IYo9Ob%Tk)sl}_D}w*1M8qL^ss zGXq9Flj-TuxiX^MX8WenyO0$Jc2}k4#gd6PyW`fV6;SVf@%~&rs|UQ)ngi>B9TY_cZAW`gv8n@awzQmvY-bw9LZGm9) zk_n$awY8W;FlE34ek@s?4PCm31Fo!Fr(?W_Jx(Bxj4Uyd(-KX$ z)3b~jf}&hyiIt>zxq;))y~T$l@BW8RLLwQ?vbDNxmLBeyB{``EUKvn@D;y7J>budW zBRhMQT~#rr9@^R3(E(IMR5?MBpmQs%4r7oUMOZ#~WP`eocT^wFp`?CfYa!-=_GSXz zOBWOZlj=_ErXF~eNSw2eZuGqojcyBHE$G}Ii~V)a_*j?8Uh2>>CU@#JC-+m>-djCp zeR4xd&8Oi}VyAPsj?950ryvS?ix0lC!=*T%TVur{jw_=k`1X5txgyPCA|K8O0w>WR zoQ}50$W_>^ak@G9{ir6$Sv0_%9X8J6o~OyClLeNIY+C;3_^8!kq1Ix(H!1RBB#}2c zZIz-Kwgr`B7&U3P=)f(l{Ot!eJttjf&aK5l`^wmH>yCAd=XC57`e|?@F=W0K#gw<1 zL1|gO!nb6C0JaA896Uti7C1>^(-&6?deRXwlXERfhcc$td0c82pA>Lb5AKim)(%Te z{qOy8Aka}3h9t5r3hs~wC%O}gFw%F!saWI)w-i1li~HO9+N%P;CfG_!P08$G%hkU!THbo z>&n@v#`ODlziq;mXiotE6SD8R7q7)S<<+azXM3J)I#7|233&A5$2u7RvmJzOeI~Ea ze_^d)(o<_HM?mzO_+V0hkM=$+4Ol6gi+Q>7cj)O&bOiAP$#nchzn=1?6Y52(xYg^u z#hcpB>N%%w+>w7B;!M<>ppqSf9VUS;3u3h5Os!pQ`aU2aP^0FCa=L6%_t34{4M8-? z6G^K=27u(e;d%OON7>miO&0bSc4%*jG;?v$1UMpBcIp?d{5TsMayS{`SCWcx@cPuify(cIUt&h3-fNgu<#mMHDr+g46!Fg`31{E{6MC3VE`!z9t`POO*sPq*t~i})mWS=W*=^Ql))aB%x}}?Pq?Vy69JVF(%1>?M zA|PWdoTR!JJCrCQwJ44A4c1FVTXXD@3Tje2H#HDX0qdoOjmXJI&BytFQ|$+`Yy?rJ zy+Bt{DZMM5lr%hRN^<<^$0=GV#~N{=M?ZONdd9nzT|)$;`JEff=`zWrL`feIc~SOU z4yV%q^wStoSz4<7B`kQNo4l#;(G%URridjeCJQmx3qUQ$&s@zj*kuCbs5u#@oirUM zICYHEm-K;?=LJ$+s%TE|818=ZdYap!nYd<4RPKr*yW0;Jt*Qz?`BYb11%O0QwNN$d z?L9cm+tPB%_fh{PPX1z2Pfa%IF!RP}PBYJ0F?R92oSU&HW9n!f&YUDp`v!X=4@4!t~yoj$@X#gu;~DmC4_QGEf>n9K*i zveUNEU8}uQjp$Gt;g8*s_?%`wYS-e4}4PIx7KV@|8Sv!JOKOu3^txNvaYdCyHH;0 zH?;OaJ0JeVLq#On0f&g|;A?i%4+tb_BPmuI)_qf;fC6uwR5Ne(HEsMEG}ml)jc*5> zICHY*_K1cxRIhr@Rd4Jj9szx4YxZi!oh=LGpwoh2Z911SotL{bQimJzckPlgw%ExD zP*);7G7E4gN8YRLgBF*IAv1&Y;FyQ&y3(a!$?CH;RrykrQ-Zleww|73X(M)ehvQ`0 zZoJ{Y>AT-H71GQNtF5mm9TU)yb+;o(9g;KSIz%_F_(V7!lfQ8j1;%bCJ?I#|o#naP z>G<_!7d+=!&LI-sDdU8MFvs+88*?1(s!?s$s9rm)kLQp{tX19%dMn9P zDjJ`$7i2b<0tBU5{>U0GiE>1ErXc`{Mt^Hm_kBZs+uNR3qQSsx{Z*jEO$=ar+ZD6& zD5|Ty>n><$es0rF)t_K#qdjKFw6IVJRYMVopE<9-KD&T}NSCxJq%I(AZ8gEjFc5f9 z`OBY$TE|FTqr0&I3rH`YO5O9COjE z68oMHch~GYVdQY~0S0mv)rI?{&NQa)-m?*$G@19)FBgzI|_HoL{LM*HruF0=Ug zqTQX)z$y{Xl{v!|xj69_*;N1)%-M05He$zjIQnaj&IJ+o$rID`?mK#v(5lqBMW4N- zTKSb{&%*G3|GAB5Qq$>rDz|Ev)DZ*^=k4pZU;)t$!ZW-|9GR%WlKXi z{?%ma11XJCPRDFbR%`dpuWwsDQDYqDvP`J^nskr2A#k8 zTb*;$$alG5Yr3UqXE^9&G-!Gjw(`}g&b5{D_9Os#gb_hw8;G2fE;pLh**H)>q93Uz z3>Tnvv>M<3gE#fc{rE2)nN)Au>@8N5IINVZj9rMx39p-cJe1N!wf!R=)I>V>GdF3V zd%!)%^6%qX4{?XnDA$uT>tC(g`!S9q2?De&9E&uV`8c3|UMJ}>Ef4yK$eYt|bRaVb zCl4Qn`>&ZSpt`R+*r#%#J;}He5mZ5?#OY){j-OIiVudnO-OS2O&!`MHS8~!L9kY>0 zX2Ftq8v#%n7KaK@a0VsAp{Uiaw_Apast`BX$Tl18%0?=EFl)j`j(Or7&rdP^mBNAd zmg3HNSZ(J^DEL5(KMn3C(f4!;Alwm$qTx+M6Gv0gAgSeo%4!t-TiPfWDuAcs+VLH(zu#WTok8DvI$^?R&#aWf!u0DuUq~7FTPaWMb$rn%uF8(1`1bwPEaSN(mF9(AC*t*V7U`u60|Q zmo~aPZGFncg@_Qz1pojfT}ebiREc*eT@aQb1)$gkk(&t$qyj;8K{hjO$Nne|Gu8mZ zWJlT?ZAB2tq+H;JUTL*8TDx5<)jQr}lDVYTbD)#!(;FHM9{%K^nf`c2hc#Qo*^t`P z2qAS5jpmYMFbsOKtDC3-^WGS9U>2^?s7>7b!P0nhyHTrvG`2NJ>&HWi+$>SIYqVPt zR?=r2g}n(}MBt91x=d>z)tNTW-hZa76aWFtBQx9)R&N0)#n%NVI}TqT{5<+5$9A}; zOQV7I-8fMsBB7gD`Q=BUIta4c?0%b=w2KFsd0UQFP)SY4Y#hiODV3gdV`Hk#s3#>X z48R5Mb7@3t8ci+N?3^4#-2ImdMD3@MadS@QxR`FB)!#G|Pec7pIWDTX>2f!H-V!z9 zcTG*?L-0pFu#gD{PCOzVks9QcXgxGwBOJ$q3ywHdaOH~q9ep@dx+Ln;QV4F{I_^ht zsC7%tM*ocQlI|N_O37mWOly_@1m+)0iWk*Hk91U&Narv zR;Smr5zdKRUbX2ebxfv`(S2(raq`k`xjM5}ug6wT^3MIf-dF!`{YE=hlDaZkYB9~N z%_b+AP_IO)onl0;E-^yWs%;Sja8cd@;8?uB2(qZV5*S%R+hzIT>B$Bx$z=60i!zfL zqG;wwXFL%~d0_u^!fV_z)y@8HA|c=hDWTghKxC7M6(Vi^+2>NvjoR@XNwLt#4*?YT z8)n4rerkc38Hs|^;&de+33YXri$?w=f!`W%0u4I$qJ06>YcOkcaYvU4{>kr}rqK~w^L~6cR3$SgZ(M+A6&yoM_c-Pc zPabA^vWR1@K3da#*))Wydp4%?I&nan#`HH!3|r`{%3Ehzn)FmB$mP8PJTyuD1n9Dr zmRfFV)41)W@w(0bTJw7Aq@s;jDEhji76e1EZA0z)@i5s>B0;Cu!6wT~qZ$!G>a<+|BLlK7Cn;2^Lz{kj2c5H4kYS8|rxAvIOLQUyaCFyfnQ9T;P3C}GAN zjAnjI!3~}g;c&KOZ%Uzlc#=fwrKd}J!JwhfQbv%+iky#6fBH;Q%E^x=mEy+hMr?@N z>F%_q-i3t%d97Vbb%G0DTx_VacXS{4`5Z2JFxS=g0o0}Oah36|OiqQm4VAhLk}u#3 zK!Mab0j&Tg3nIu|*Ip%}rH243R|ZW03x$g|_hloh(}P@Ew@dF8#YD@}=U%#(<=12J z_CdTA;O_6EoWA4oyJ$@o^&IjLAgA-zB$>u*>&^{B$UQ!}j=WwS24zvhp3sCcM0t2d` z)xWc}QyuC|NK{u9u(TDQL?$ zo7A7gQs`-<#H5J|=#)dVQdlwRwX{;XSc}ZV>9jjQkNk%Y2Dk(TthudOS1)7!TB_q% zTx`f3W6i*s%jCuN6RWk~7hgz<8A0FZqHx8B&ICdy4yc?=cB|1UK<9)AG0>~)t+dwr z>n#Cg&tl$lvV&IJg~hzLSKeHf{9jVSbdu+|i0V9Df54Bdm+V+C9X_NgxWmEBrWH-o%S~3#l8IUBfs>}9eAt;;a%BXV!&XiVm zlz++ZX*MHP#N!ucH`Ot49Jjd9IiA0tz(qNx0Q}_~$y|%hr*R)pNj?gm2fY&78LIQo zlK--$ZYd+B)TGXbW3BG4n$D3*k4#9Upw=OR;b=Ww7IMe=ayeV) zQ3v5{IH;tc;s5$`IWc=oP}tTn89CzaRhwF8i|biBXH0ni-41bgINW17hpZ^GM5h9H zt)P(nC;M2Apnupi^yYNHHf87E;F1Ck-If}5XlVa{&Q@}8kp_82{trK}&`DEUdH%dBz4zie(b7Z@? zqxYk3qcy6H}tl|g;|G`xr388&mD?jL9RmWAMC5$?G4 zvTuh+IR7MATeqDM@sx7nFLX5^aXlKZYNwn)5G$F)go-`!f1+lm0_7S*xqS^Z&*amhXnnY0epZhw5vRVH=c;~7y zZ`ztwoef9h1iUq7Wg>{mOm`E-X^DLDsa0Ffc9>w;_O{%z%HYoJ{e1#*AqgiZPk&tN z7;@b#3WOg?T|wPaTq%Y~yd|?KomK|gXF32F9d0F)-kXb?I`_tjiv+=TenHy|eYg7M zYTji&`=igIUR-E0-5J$JVYP21ic+PhIgSpBuDi;%tHZYTw&?^mXlZ=5&8LS|m*z{& zl_W*vZQF~NPDx&N09Dz$m<+=cT^G8 zwm!S{m5UAJfOdKBXquEFrbx2Rh3TyAWGQ8Maz;LDswy9SY{HLzrC0ud`s>;?6QIKg zsKS+>MIRuOoze0^SF16w`ty&(A<|WC6h$=Y`~Bbd?HJE8(r~T^=h8$hu5lT``*E3c z8r4HNNlm48k=novb{n%I^}x(}_3wiIb{lzV(htZ5;@!7x|BUZx@*|i;iu=9avJ3Tf zMR1#Ck1%-p#%oqSFhY6bh@{rNL_){pX?gxkA7;edr*k2E!0E>`%Bt^@REqQrRC3_8 zeqCe5$vgR1Q)aKQt0!Er6zEKxip9$7$Vi&iE>V!pGq-+tQ?>hdB;}+>w>r6^!>MgO z2^G|F&P1B2ERRe|dwisJkboEOFPLIsKk~Lpn$A*wqLqFW^7)h_PA0uFwvi&up6Tz< zI&taol0IHJE%n!y9k&5R#epDcGiuW!pOfwqkhGKM1*+$Mz2igLlf%*FVk8l}!{n}J zl`m;Vtmu-qRF;b2#_WbZ22uT}p4>_8@K2T+C0bSF_><05ad~RerhQg7{{RUWz$AS9 z)G|&mA~5|XYO#bRp(3bLA!={}!>}J8vn>PU^N`yE2~6%eDKQ4KhIPOY zv~eXhOAFz#$+V7p< zDeVJJ(m9E2q=%%M+VEbr{kwnqySk28o8XV9B>Ls;%-Ci`bRH3B?CUfEJVce%BPH;~ zhkW*kSf@mqHMc+9)ok*3SNo*KiZ;%0qF?E^(+bp8Ofdj}uqe{Ww$m%TF=lH|+8FZ- zCXg$t?)aAUmrX(1bEHMWW8j3))_6r*TcHXsZALsjsY{!#U9BF^)6~YtH2{zDZaJ#k zK;t$w#oC3zqy4p_5^`}2*e316?TYSok98|bS&;kh$a@Fzq<&-Z{KoXUrhW*jqI*JG zNxj7hoDiq2h_jPcvgqE9`jnJPg@Tp^d`sHDgDlPQ+l?l(n{x@<;@mFlg~H)oI47wu z_2o{%z7D;=d=3ncq9NHV@3T`JYWb@bliW_4;&wrw3pR~1Qa~w_Rv4CL9n1M;-HJA7s+{H{ryZ3FHbI zuDR)P2k+B(krX$}_;b{-W-MqqZ$D)Dokn*zZZp_tQ(izEE())`VlPIiXqkt5O{BqG zKv>Q}efo+WD%Gt*o1Ttge4g+H7_}NrY`A`)b^r)ayGX4tZUYt&p%_f1mg>3OZTes7 zH_fdHO(j9#Xc;U%SX3YeP9~x|93uu-kuX3*B-Jh_yd1~0TzC-QQS@-9q8CbZN7y@; zmd}gEIZlj(1Egc3%PyOIaw+Zc(TLtg@*%Xl4sbdy6g07kntW{C*Sbu0Ag7IaPEmSs zN>Uc5di2xBdYc{`7mcQfl#MC45<6|-Ogcl^tA_c1g!@S987|(lQIO-ry5i1jooB~1 zsWG^J{s{yhFlKJ|H&H9p=rC^Oy=j&M!0;bUOZKM0FQm?atwNKWbyo~@vK#xxplznB z2vIIlGHy|4445{UoU`k$q`F9g=}c;Sfpx&>tSExW)Pbao`Ps5Ik<&e`rkSOXJ4J0?(`W}A z!P4Vaq!wi@Ce?}1IOOJHLDi9|9p}HCw{q_Cw-B?zEW59FsRUk=d<^Z9k^&^HPp&KC z%Hop2*9WV|rDG@)aBPr_N3W9l?=VBc!8a~$N7<N2*RimjO^MGAQDgi zYRb%Q%xiO*+KMLi!0iELvEXz(FW?0IGn|^VaeZc8YrNe`SrZaYd{R!L71}IJI*`6G zB-?k>MC-OBwe3u6?MBbdvSW5tNAk^o`G(n9FXk0A{Dji-fpC}Z1x3SL0CzfrKZ)ziWu{7;XqKNXi9`08bTMrTvjr(HB%8m{OM0e`hCT_SKZ=q{ zJx8Cgd$dcpw<_5>n^a~DY444HJZ@GVEt}%fmZGI$#eyXC;2S=_HUi zC#@Ukl$1=P9t#}jw=7seD*D>1CSZy{qGE9ChD}##DUgQJ5Qm3JErnxmZtJ#EHPS#* zN)X96#_fGcNdZRCgZ%8iO;vGhoC;?_N0a9OVde40p9em~IFg`ZsHcUz`V%zC$ zl}BKxlg%}xu>c|n{}8#l3xW!`Np+VED}; z6%3+%kd@kv3kTb7=)29{wR;xOKEa5vzOwR3?KCZev!Ql5XTy+z10ac6-H7PwKGds- z3OE%C#Ps`~JTajTXQu4qBef?Es0B9>iPph8Z`&p~4#0i+*<$2mTi%K*R!6Z)3Q**| zcdXO{^%!)ktCuYr%H!*3(V&$e#}SEQI43DHPR+u591%w^SuIIwHzXz0rUN zcI|IooR3tIr~<`_p-&=F&-Gq)I3g%iu*^V*avu?1C0ars<2m@KHkR|IcdS=i5;!u5 z=fp=7I)?{@&kP=|+oouPE7~m+e?6f)@!EP@mC`oxw-Z(-4{1PFaINo{OW(7q)l7#I z#gQ}T`FPK~pOaeM&)Lv2~linY*cbScLsVS41#)jfFi~&{9D3P!1=B91I1(&GkE)ZNS zboNc0cx__Y5|vx6q(q{vr1hgSq$NminUB-=FKKdoAH$2bvvD};n|y@W0GSUD9eQ`k zwL=xqVaJ?U&>cm(h&tAE`Es!Le|{XApZ(kpZtBWjmVLC@G!p~892zpAI9c%Inb8Kj z<6;s4$1mG{9g#>*`ryWxY5LdyN+Yc{nI|Sq_{V>0r4Dc=5K;b?2!}KrPKP6-9?j24 zhly_b0-H5z`h7HgUtc}4H@FN_XVTM4c;c>!7ju0(tsSPr*!OCmS%0>nU`_Yb^5((2f*s5$19;09CCi;Fm z&$i`bP3YQV(pa34US7LIN|r@dR0W#;X{Q1@sj-wsCLBF?)z(WL!x^n1OB-c%YMSo= zG;llta(0UQBQ!YY;9CPKqwvBHZUZ}$Gob1Atw2&IUFHD*a#XDnqRNaAkuIy))s#z- zN&hjw{Vh`ggn$A@iZ5-^kfDCeU)PGT0 z8-DPiaye;K8yuC#z}Xg-tV%K{DBuVieOQ%@F}vq0BR3zN`|Cah5KE9rSSOc88y}NW zDb)8vjS9&?(%i4J=0m?@`N47sIhZ;LsdFNOM7{9ApMGW9KzU8kw5(f{5u~zxpk33o zjc0kCP0Nks6leiK#9;tca2OCqcC?|F!Zsg_w6yoU@Ub1TVBpQ-0!p`iH%k0~+?;N3( zq-MG$bzKfrU;lpe;&-{69qZvl2Xr8vy!W{YUb$^+Fn(^t`F`*{%UWSE26Y&zB2Ems z`K>p_p`KV}ti>fO<3~^Mmmk?D!O@6r<+W&yREr&@(WZL4trcl|pu>{Qn$S_ym~NNU zv^q_JbOI~97NYI0&Lr)1Q{G3J?$mQF1K!KV`mqn^i!xHo%DswCcJm)+VYUv?0%VR} z9RI1suK(zI;HJn)>kwnz-rP~d6GOBo)n3sQl_A$W1Z1hn+K_P2^~?%FC{&LlB4~ts zLQ}Ah{^696v8ly){QTTzNLo1i@tis&kq?qIeZZmj2CJe!jSLm8&6!Q*R<=qFs4C4z z{LS;)*PG+C($pTe4ex7L5BBoXwv`b6_@}12gdS!+(Joqvr8+7ggrto$oat|o*1q?y z6)1vQB@r_G%b%H$i1pjwkL37vG)1Kz)C&M#QGC|HQaSObq^?WannmlwY|aF4zG0fK zkJ*&;{lAICV3XP)hw6rGpw@BpQ_({0jv}^*J&#b)?rvg1>1ZYp3 zjTDqt0?ly17W#EakW>GOb00W{2;911QD|p4AQu2WtB#SZDo@iSCqnbs5U{C1#oPSFQVQj$04}5u{6V_Hk)R=*H5F z)?gtzEZ_aM1$ma2b-%erUibPD1d6C`^#}mRGM9QfJ0qRS!%R}Ikcj2j9Gh*m^I#|x zlLit!u$f=a>W(!c35X!|7Eyr|4rhxukqePSq9ua!cDC6_MI}0D_bc3Ki&}L;uhOLAIcd1*n7Jyf{(P9(>YH zB^zJ9Y?}Vj4=rniiS66syb}{vYlViqlRfBSz-&bBS7 z8Q_NU!OX7lQNgRc*mD?hlR&w=&|H5LtSdVYuT7n$)}{A^KQw|iVg z93_QitY+oGemcJ#f_!=oa{jG04LOD-}#n`?r7Q; z$@Mk*bLBkFU$*z9nLcm%n<3Nd^w3BX)2+IfEx3AF=hjq%1e6gf*5k+afn2|kv^L60 z0>+0V0;&{EL64 z@_GtX+`Op_lLK;n4Xm1`{`LD|$R-~q6>eX)kiC=m)9tK-2Xy@zr_memB*iIpdHK?meS@4S>VQy)%i{|YM8%*Qhdw?hgB=zx*Z zd%IVAT+<)SSOK6GyWW^u45LNB1OUUK%%bsFn^Ft<>z*9oLaoS{%k0OqVU?#C+O!Z> z2>m^7!$e`~!7b6CPIM_P4S9eZWXqXmXoOC_>>eC;?i`LDoK8UJH?2fL9c8e3raQ4= zh-e>hxQ443Mv%UW7*WH~CKw%!(9aF404>ky3m^rpmc&|_nhwpEU#iowliQ4pn5MVi zQeLD^I7muK-KhlbGt!oPSr$j+*d*hRufPu^intmM<3z{7ss^U?ioM```9}{zBoHvT zk+cZlYcAYduzDz=olR>QXpyK{D{*xkeGv8oAX84QrQFG2|HaZW$R%=?wIYTz;Mdu2 zYh>rn;jp;!*HKoPo(Wk2rADvr!Nc0eqb}2ic*24#L@Ju-k~#(eBd}P2<&CLbW=}s4 zI#)I#r2>rbI}^e9j*LwceQoVI-tqaczB|1-9l&rVYE(>8m-4l>kBeHq&40F_(FOG@ z5JNx_bX4FoLJtF+xbdTL^XwNB+6>POwVO-dmJ8m$ZTwnj1pt0HMGR8P8Hu1!yZ~vK zPFGzMiHtZa%ouGcL|bjR|9P}?>2N2u;t_L5Di6_XPz^)UfheWm#GZ#rMJQv{aWNcG z9L(2{tlCx#Lf+gw-D^Kb=EP#%yc`qWY?vWxwdi_iW3GJvvZ+M$Drz25wz6}|z=9_T z4skoxnW`=^Br@Lo(G9%~Tji+NLJG+0EvClNpp@qiVEdyKwzX`JJuH_6adKJ`fG^8m zEi3RrOW`DAHZRkDBOFd;)YrU5aXhnYlXQ^PzC=G#OX@d(7=P-z)!SeLd73#rc$0u3 zuu7bB_DAUy(XZ^m;0-q5Xi5rLgG1x^^cznY!C$s9Sn28~ow5$>8YiL~Y!W{eRVIFP z8+ik?NdP^Vvc`dN2ITip48u+WOvI^YgYOKg6g#|0qG#7wmyX}KmPESKazPm&J+Jng z;c$I@mX!j;k3%`mqqEJT$~IJOe$h02>s?DngHRl4U#ih-qp7_eMKDBw#;(~-K(J3b zGPdyzL+1W{$|0 zVFgt65zZ2rNVX*dbVqPB-*7e>@*tNO&WP3s_dl!WJ}di;a5(HxsV7}}ml&E7ETu4PKX`bUK zSFSXE9rr%BO>g!BfO_J1QS__)_$Q&VUuX*?Q^vgYhD|x+v@GA~;W^U}n z@rTq#%HBB44nr7M9RE?bJ+33{ll6%WMN}b5 zbAhPDhlJ0GoePJf&Iv!iueV`aFb_w2;H)11L~;h8lhk*s`>X{wU>dsg5NBhJ7K+d~ zTx;VErYfy~hNn2OPEvfsA|WXw4&jDP-3s30nlHJIBGzV9U#&@+TBTNn&sTTpWW%H7 zaC;?c)~jMhK;#SKHRsoD=fdG?>KttT_=B3^`g$17%vgw@Y4J1A3elZy15q6a%_`mt z93Hew@u8eSGaER3YWS=p_RF->=;t45FDUR(Hxe~VTV-+Tyb1^LA1MZY{-RUe{7JS6|Z>KSYiZo(@WR4Ek%&_U0j`Au4T}IOM&wt-EjSL6p zO{?TQ8QT5MSo2H7!Lp+rI#uqhec<_NRXA10Kqm0(OsHVUxt|w17ZHvT9c6J)W3lS# z@}*<_ola_>^=mnVo7wc;? + // MIT License + function parseUri (str) { + var o = parseUri.options, + m = o.parser[o.strictMode ? "strict" : "loose"].exec(str), + uri = {}, + i = 14; + + while (i--) uri[o.key[i]] = m[i] || ""; + + uri[o.q.name] = {}; + uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) { + if ($1) uri[o.q.name][$1] = $2; + }); + + return uri; + }; + parseUri.options = { + strictMode: false, + key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], + q: { + name: "queryKey", + parser: /(?:^|&)([^&=]*)=?([^&]*)/g + }, + parser: { + strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, + loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ + } + }; + + $("#search-form").submit(function(e) { + e.preventDefault() + }) + + // list below is the lunr 2.1.3 list minus the intersect with names(Base) + // (all, any, get, in, is, only, which) and (do, else, for, let, where, while, with) + // ideally we'd just filter the original list but it's not available as a variable + lunr.stopWordFilter = lunr.generateStopWordFilter([ + 'a', + 'able', + 'about', + 'across', + 'after', + 'almost', + 'also', + 'am', + 'among', + 'an', + 'and', + 'are', + 'as', + 'at', + 'be', + 'because', + 'been', + 'but', + 'by', + 'can', + 'cannot', + 'could', + 'dear', + 'did', + 'does', + 'either', + 'ever', + 'every', + 'from', + 'got', + 'had', + 'has', + 'have', + 'he', + 'her', + 'hers', + 'him', + 'his', + 'how', + 'however', + 'i', + 'if', + 'into', + 'it', + 'its', + 'just', + 'least', + 'like', + 'likely', + 'may', + 'me', + 'might', + 'most', + 'must', + 'my', + 'neither', + 'no', + 'nor', + 'not', + 'of', + 'off', + 'often', + 'on', + 'or', + 'other', + 'our', + 'own', + 'rather', + 'said', + 'say', + 'says', + 'she', + 'should', + 'since', + 'so', + 'some', + 'than', + 'that', + 'the', + 'their', + 'them', + 'then', + 'there', + 'these', + 'they', + 'this', + 'tis', + 'to', + 'too', + 'twas', + 'us', + 'wants', + 'was', + 'we', + 'were', + 'what', + 'when', + 'who', + 'whom', + 'why', + 'will', + 'would', + 'yet', + 'you', + 'your' + ]) + + // add . as a separator, because otherwise "title": "Documenter.Anchors.add!" + // would not find anything if searching for "add!", only for the entire qualification + lunr.tokenizer.separator = /[\s\-\.]+/ + + // custom trimmer that doesn't strip @ and !, which are used in julia macro and function names + lunr.trimmer = function (token) { + return token.update(function (s) { + return s.replace(/^[^a-zA-Z0-9@!]+/, '').replace(/[^a-zA-Z0-9@!]+$/, '') + }) + } + + lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'juliaStopWordFilter') + lunr.Pipeline.registerFunction(lunr.trimmer, 'juliaTrimmer') + + var index = lunr(function () { + this.ref('location') + this.field('title',{boost: 100}) + this.field('text') + documenterSearchIndex['docs'].forEach(function(e) { + this.add(e) + }, this) + }) + var store = {} + + documenterSearchIndex['docs'].forEach(function(e) { + store[e.location] = {title: e.title, category: e.category, page: e.page} + }) + + $(function(){ + searchresults = $('#documenter-search-results'); + searchinfo = $('#documenter-search-info'); + searchbox = $('#documenter-search-query'); + searchform = $('.docs-search'); + sidebar = $('.docs-sidebar'); + function update_search(querystring) { + tokens = lunr.tokenizer(querystring) + results = index.query(function (q) { + tokens.forEach(function (t) { + q.term(t.toString(), { + fields: ["title"], + boost: 100, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["title"], + boost: 10, + usePipeline: true, + editDistance: 2, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["text"], + boost: 1, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + }) + }) + searchinfo.text("Number of results: " + results.length) + searchresults.empty() + results.forEach(function(result) { + data = store[result.ref] + link = $(''+data.title+'') + link.attr('href', documenterBaseURL+'/'+result.ref) + if (data.category != "page"){ + cat = $('('+data.category+', '+data.page+')') + } else { + cat = $('('+data.category+')') + } + li = $('
  • ').append(link).append(" ").append(cat) + searchresults.append(li) + }) + } + + function update_search_box() { + querystring = searchbox.val() + update_search(querystring) + } + + searchbox.keyup(_.debounce(update_search_box, 250)) + searchbox.change(update_search_box) + + // Disable enter-key form submission for the searchbox on the search page + // and just re-run search rather than refresh the whole page. + searchform.keypress( + function(event){ + if (event.which == '13') { + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + update_search_box(); + event.preventDefault(); + } + } + ); + + search_query_uri = parseUri(window.location).queryKey["q"] + if(search_query_uri !== undefined) { + search_query = decodeURIComponent(search_query_uri.replace(/\+/g, '%20')) + searchbox.val(search_query) + } + update_search_box(); + }) +}) + +}) diff --git a/previews/PR1837/assets/themes/documenter-dark.css b/previews/PR1837/assets/themes/documenter-dark.css new file mode 100644 index 0000000000..c94a294dcf --- /dev/null +++ b/previews/PR1837/assets/themes/documenter-dark.css @@ -0,0 +1,7 @@ +@keyframes spinAround{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}html.theme--documenter-dark .tabs,html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .breadcrumb,html.theme--documenter-dark .file,html.theme--documenter-dark .button,.is-unselectable,html.theme--documenter-dark .modal-close,html.theme--documenter-dark .delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after,html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after{border:3px solid rgba(0,0,0,0);border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:0.625em;margin-top:-0.4375em;pointer-events:none;position:absolute;top:50%;transform:rotate(-45deg);transform-origin:center;width:0.625em}html.theme--documenter-dark .admonition:not(:last-child),html.theme--documenter-dark .tabs:not(:last-child),html.theme--documenter-dark .message:not(:last-child),html.theme--documenter-dark .list:not(:last-child),html.theme--documenter-dark .level:not(:last-child),html.theme--documenter-dark .breadcrumb:not(:last-child),html.theme--documenter-dark .highlight:not(:last-child),html.theme--documenter-dark .block:not(:last-child),html.theme--documenter-dark .title:not(:last-child),html.theme--documenter-dark .subtitle:not(:last-child),html.theme--documenter-dark .table-container:not(:last-child),html.theme--documenter-dark .table:not(:last-child),html.theme--documenter-dark .progress:not(:last-child),html.theme--documenter-dark .notification:not(:last-child),html.theme--documenter-dark .content:not(:last-child),html.theme--documenter-dark .box:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .modal-close,html.theme--documenter-dark .delete{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:290486px;cursor:pointer;pointer-events:auto;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:none;position:relative;vertical-align:top;width:20px}html.theme--documenter-dark .modal-close::before,html.theme--documenter-dark .delete::before,html.theme--documenter-dark .modal-close::after,html.theme--documenter-dark .delete::after{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}html.theme--documenter-dark .modal-close::before,html.theme--documenter-dark .delete::before{height:2px;width:50%}html.theme--documenter-dark .modal-close::after,html.theme--documenter-dark .delete::after{height:50%;width:2px}html.theme--documenter-dark .modal-close:hover,html.theme--documenter-dark .delete:hover,html.theme--documenter-dark .modal-close:focus,html.theme--documenter-dark .delete:focus{background-color:rgba(10,10,10,0.3)}html.theme--documenter-dark .modal-close:active,html.theme--documenter-dark .delete:active{background-color:rgba(10,10,10,0.4)}html.theme--documenter-dark .is-small.modal-close,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.modal-close,html.theme--documenter-dark .is-small.delete,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.delete{height:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px;width:16px}html.theme--documenter-dark .is-medium.modal-close,html.theme--documenter-dark .is-medium.delete{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}html.theme--documenter-dark .is-large.modal-close,html.theme--documenter-dark .is-large.delete{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}html.theme--documenter-dark .control.is-loading::after,html.theme--documenter-dark .select.is-loading::after,html.theme--documenter-dark .loader,html.theme--documenter-dark .button.is-loading::after{animation:spinAround 500ms infinite linear;border:2px solid #dbdee0;border-radius:290486px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}html.theme--documenter-dark .hero-video,html.theme--documenter-dark .modal-background,html.theme--documenter-dark .modal,html.theme--documenter-dark .image.is-square img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square img,html.theme--documenter-dark .image.is-square .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,html.theme--documenter-dark .image.is-1by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 img,html.theme--documenter-dark .image.is-1by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,html.theme--documenter-dark .image.is-5by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 img,html.theme--documenter-dark .image.is-5by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,html.theme--documenter-dark .image.is-4by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 img,html.theme--documenter-dark .image.is-4by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,html.theme--documenter-dark .image.is-3by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 img,html.theme--documenter-dark .image.is-3by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,html.theme--documenter-dark .image.is-5by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 img,html.theme--documenter-dark .image.is-5by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,html.theme--documenter-dark .image.is-16by9 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 img,html.theme--documenter-dark .image.is-16by9 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,html.theme--documenter-dark .image.is-2by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 img,html.theme--documenter-dark .image.is-2by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,html.theme--documenter-dark .image.is-3by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 img,html.theme--documenter-dark .image.is-3by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,html.theme--documenter-dark .image.is-4by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 img,html.theme--documenter-dark .image.is-4by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,html.theme--documenter-dark .image.is-3by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 img,html.theme--documenter-dark .image.is-3by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,html.theme--documenter-dark .image.is-2by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 img,html.theme--documenter-dark .image.is-2by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,html.theme--documenter-dark .image.is-3by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 img,html.theme--documenter-dark .image.is-3by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,html.theme--documenter-dark .image.is-9by16 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 img,html.theme--documenter-dark .image.is-9by16 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,html.theme--documenter-dark .image.is-1by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 img,html.theme--documenter-dark .image.is-1by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,html.theme--documenter-dark .image.is-1by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 img,html.theme--documenter-dark .image.is-1by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio,.is-overlay{bottom:0;left:0;position:absolute;right:0;top:0}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .file-cta,html.theme--documenter-dark .file-name,html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .button{-moz-appearance:none;-webkit-appearance:none;align-items:center;border:1px solid transparent;border-radius:.4em;box-shadow:none;display:inline-flex;font-size:15px;height:2.25em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(0.375em - 1px);padding-left:calc(0.625em - 1px);padding-right:calc(0.625em - 1px);padding-top:calc(0.375em - 1px);position:relative;vertical-align:top}html.theme--documenter-dark .pagination-previous:focus,html.theme--documenter-dark .pagination-next:focus,html.theme--documenter-dark .pagination-link:focus,html.theme--documenter-dark .pagination-ellipsis:focus,html.theme--documenter-dark .file-cta:focus,html.theme--documenter-dark .file-name:focus,html.theme--documenter-dark .select select:focus,html.theme--documenter-dark .textarea:focus,html.theme--documenter-dark .input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:focus,html.theme--documenter-dark .button:focus,html.theme--documenter-dark .is-focused.pagination-previous,html.theme--documenter-dark .is-focused.pagination-next,html.theme--documenter-dark .is-focused.pagination-link,html.theme--documenter-dark .is-focused.pagination-ellipsis,html.theme--documenter-dark .is-focused.file-cta,html.theme--documenter-dark .is-focused.file-name,html.theme--documenter-dark .select select.is-focused,html.theme--documenter-dark .is-focused.textarea,html.theme--documenter-dark .is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-focused.button,html.theme--documenter-dark .pagination-previous:active,html.theme--documenter-dark .pagination-next:active,html.theme--documenter-dark .pagination-link:active,html.theme--documenter-dark .pagination-ellipsis:active,html.theme--documenter-dark .file-cta:active,html.theme--documenter-dark .file-name:active,html.theme--documenter-dark .select select:active,html.theme--documenter-dark .textarea:active,html.theme--documenter-dark .input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:active,html.theme--documenter-dark .button:active,html.theme--documenter-dark .is-active.pagination-previous,html.theme--documenter-dark .is-active.pagination-next,html.theme--documenter-dark .is-active.pagination-link,html.theme--documenter-dark .is-active.pagination-ellipsis,html.theme--documenter-dark .is-active.file-cta,html.theme--documenter-dark .is-active.file-name,html.theme--documenter-dark .select select.is-active,html.theme--documenter-dark .is-active.textarea,html.theme--documenter-dark .is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .is-active.button{outline:none}html.theme--documenter-dark .pagination-previous[disabled],html.theme--documenter-dark .pagination-next[disabled],html.theme--documenter-dark .pagination-link[disabled],html.theme--documenter-dark .pagination-ellipsis[disabled],html.theme--documenter-dark .file-cta[disabled],html.theme--documenter-dark .file-name[disabled],html.theme--documenter-dark .select select[disabled],html.theme--documenter-dark .textarea[disabled],html.theme--documenter-dark .input[disabled],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled],html.theme--documenter-dark .button[disabled],fieldset[disabled] html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark fieldset[disabled] .pagination-previous,fieldset[disabled] html.theme--documenter-dark .pagination-next,html.theme--documenter-dark fieldset[disabled] .pagination-next,fieldset[disabled] html.theme--documenter-dark .pagination-link,html.theme--documenter-dark fieldset[disabled] .pagination-link,fieldset[disabled] html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark fieldset[disabled] .pagination-ellipsis,fieldset[disabled] html.theme--documenter-dark .file-cta,html.theme--documenter-dark fieldset[disabled] .file-cta,fieldset[disabled] html.theme--documenter-dark .file-name,html.theme--documenter-dark fieldset[disabled] .file-name,fieldset[disabled] html.theme--documenter-dark .select select,fieldset[disabled] html.theme--documenter-dark .textarea,fieldset[disabled] html.theme--documenter-dark .input,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark fieldset[disabled] .select select,html.theme--documenter-dark .select fieldset[disabled] select,html.theme--documenter-dark fieldset[disabled] .textarea,html.theme--documenter-dark fieldset[disabled] .input,html.theme--documenter-dark fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar fieldset[disabled] form.docs-search>input,fieldset[disabled] html.theme--documenter-dark .button,html.theme--documenter-dark fieldset[disabled] .button{cursor:not-allowed}/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */html,body,p,ol,ul,li,dl,dt,dd,blockquote,figure,fieldset,legend,textarea,pre,iframe,hr,h1,h2,h3,h4,h5,h6{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}img,embed,iframe,object,video{height:auto;max-width:100%}audio{max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:left}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left !important}.is-pulled-right{float:right !important}.is-clipped{overflow:hidden !important}.is-size-1{font-size:3rem !important}.is-size-2{font-size:2.5rem !important}.is-size-3{font-size:2rem !important}.is-size-4{font-size:1.5rem !important}.is-size-5{font-size:1.25rem !important}.is-size-6{font-size:15px !important}.is-size-7,html.theme--documenter-dark .docstring>section>a.docs-sourcelink{font-size:.85em !important}@media screen and (max-width: 768px){.is-size-1-mobile{font-size:3rem !important}.is-size-2-mobile{font-size:2.5rem !important}.is-size-3-mobile{font-size:2rem !important}.is-size-4-mobile{font-size:1.5rem !important}.is-size-5-mobile{font-size:1.25rem !important}.is-size-6-mobile{font-size:15px !important}.is-size-7-mobile{font-size:.85em !important}}@media screen and (min-width: 769px),print{.is-size-1-tablet{font-size:3rem !important}.is-size-2-tablet{font-size:2.5rem !important}.is-size-3-tablet{font-size:2rem !important}.is-size-4-tablet{font-size:1.5rem !important}.is-size-5-tablet{font-size:1.25rem !important}.is-size-6-tablet{font-size:15px !important}.is-size-7-tablet{font-size:.85em !important}}@media screen and (max-width: 1055px){.is-size-1-touch{font-size:3rem !important}.is-size-2-touch{font-size:2.5rem !important}.is-size-3-touch{font-size:2rem !important}.is-size-4-touch{font-size:1.5rem !important}.is-size-5-touch{font-size:1.25rem !important}.is-size-6-touch{font-size:15px !important}.is-size-7-touch{font-size:.85em !important}}@media screen and (min-width: 1056px){.is-size-1-desktop{font-size:3rem !important}.is-size-2-desktop{font-size:2.5rem !important}.is-size-3-desktop{font-size:2rem !important}.is-size-4-desktop{font-size:1.5rem !important}.is-size-5-desktop{font-size:1.25rem !important}.is-size-6-desktop{font-size:15px !important}.is-size-7-desktop{font-size:.85em !important}}@media screen and (min-width: 1216px){.is-size-1-widescreen{font-size:3rem !important}.is-size-2-widescreen{font-size:2.5rem !important}.is-size-3-widescreen{font-size:2rem !important}.is-size-4-widescreen{font-size:1.5rem !important}.is-size-5-widescreen{font-size:1.25rem !important}.is-size-6-widescreen{font-size:15px !important}.is-size-7-widescreen{font-size:.85em !important}}@media screen and (min-width: 1408px){.is-size-1-fullhd{font-size:3rem !important}.is-size-2-fullhd{font-size:2.5rem !important}.is-size-3-fullhd{font-size:2rem !important}.is-size-4-fullhd{font-size:1.5rem !important}.is-size-5-fullhd{font-size:1.25rem !important}.is-size-6-fullhd{font-size:15px !important}.is-size-7-fullhd{font-size:.85em !important}}.has-text-centered{text-align:center !important}.has-text-justified{text-align:justify !important}.has-text-left{text-align:left !important}.has-text-right{text-align:right !important}@media screen and (max-width: 768px){.has-text-centered-mobile{text-align:center !important}}@media screen and (min-width: 769px),print{.has-text-centered-tablet{text-align:center !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-centered-tablet-only{text-align:center !important}}@media screen and (max-width: 1055px){.has-text-centered-touch{text-align:center !important}}@media screen and (min-width: 1056px){.has-text-centered-desktop{text-align:center !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-centered-desktop-only{text-align:center !important}}@media screen and (min-width: 1216px){.has-text-centered-widescreen{text-align:center !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-centered-widescreen-only{text-align:center !important}}@media screen and (min-width: 1408px){.has-text-centered-fullhd{text-align:center !important}}@media screen and (max-width: 768px){.has-text-justified-mobile{text-align:justify !important}}@media screen and (min-width: 769px),print{.has-text-justified-tablet{text-align:justify !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-justified-tablet-only{text-align:justify !important}}@media screen and (max-width: 1055px){.has-text-justified-touch{text-align:justify !important}}@media screen and (min-width: 1056px){.has-text-justified-desktop{text-align:justify !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-justified-desktop-only{text-align:justify !important}}@media screen and (min-width: 1216px){.has-text-justified-widescreen{text-align:justify !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-justified-widescreen-only{text-align:justify !important}}@media screen and (min-width: 1408px){.has-text-justified-fullhd{text-align:justify !important}}@media screen and (max-width: 768px){.has-text-left-mobile{text-align:left !important}}@media screen and (min-width: 769px),print{.has-text-left-tablet{text-align:left !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-left-tablet-only{text-align:left !important}}@media screen and (max-width: 1055px){.has-text-left-touch{text-align:left !important}}@media screen and (min-width: 1056px){.has-text-left-desktop{text-align:left !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-left-desktop-only{text-align:left !important}}@media screen and (min-width: 1216px){.has-text-left-widescreen{text-align:left !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-left-widescreen-only{text-align:left !important}}@media screen and (min-width: 1408px){.has-text-left-fullhd{text-align:left !important}}@media screen and (max-width: 768px){.has-text-right-mobile{text-align:right !important}}@media screen and (min-width: 769px),print{.has-text-right-tablet{text-align:right !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-right-tablet-only{text-align:right !important}}@media screen and (max-width: 1055px){.has-text-right-touch{text-align:right !important}}@media screen and (min-width: 1056px){.has-text-right-desktop{text-align:right !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-right-desktop-only{text-align:right !important}}@media screen and (min-width: 1216px){.has-text-right-widescreen{text-align:right !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-right-widescreen-only{text-align:right !important}}@media screen and (min-width: 1408px){.has-text-right-fullhd{text-align:right !important}}.is-capitalized{text-transform:capitalize !important}.is-lowercase{text-transform:lowercase !important}.is-uppercase{text-transform:uppercase !important}.is-italic{font-style:italic !important}.has-text-white{color:#fff !important}a.has-text-white:hover,a.has-text-white:focus{color:#e6e6e6 !important}.has-background-white{background-color:#fff !important}.has-text-black{color:#0a0a0a !important}a.has-text-black:hover,a.has-text-black:focus{color:#000 !important}.has-background-black{background-color:#0a0a0a !important}.has-text-light{color:#ecf0f1 !important}a.has-text-light:hover,a.has-text-light:focus{color:#cfd9db !important}.has-background-light{background-color:#ecf0f1 !important}.has-text-dark{color:#282f2f !important}a.has-text-dark:hover,a.has-text-dark:focus{color:#111414 !important}.has-background-dark{background-color:#282f2f !important}.has-text-primary{color:#375a7f !important}a.has-text-primary:hover,a.has-text-primary:focus{color:#28415b !important}.has-background-primary{background-color:#375a7f !important}.has-text-link{color:#1abc9c !important}a.has-text-link:hover,a.has-text-link:focus{color:#148f77 !important}.has-background-link{background-color:#1abc9c !important}.has-text-info{color:#024c7d !important}a.has-text-info:hover,a.has-text-info:focus{color:#012d4b !important}.has-background-info{background-color:#024c7d !important}.has-text-success{color:#008438 !important}a.has-text-success:hover,a.has-text-success:focus{color:#005122 !important}.has-background-success{background-color:#008438 !important}.has-text-warning{color:#ad8100 !important}a.has-text-warning:hover,a.has-text-warning:focus{color:#7a5b00 !important}.has-background-warning{background-color:#ad8100 !important}.has-text-danger{color:#9e1b0d !important}a.has-text-danger:hover,a.has-text-danger:focus{color:#6f1309 !important}.has-background-danger{background-color:#9e1b0d !important}.has-text-black-bis{color:#121212 !important}.has-background-black-bis{background-color:#121212 !important}.has-text-black-ter{color:#242424 !important}.has-background-black-ter{background-color:#242424 !important}.has-text-grey-darker{color:#282f2f !important}.has-background-grey-darker{background-color:#282f2f !important}.has-text-grey-dark{color:#343c3d !important}.has-background-grey-dark{background-color:#343c3d !important}.has-text-grey{color:#5e6d6f !important}.has-background-grey{background-color:#5e6d6f !important}.has-text-grey-light{color:#8c9b9d !important}.has-background-grey-light{background-color:#8c9b9d !important}.has-text-grey-lighter{color:#dbdee0 !important}.has-background-grey-lighter{background-color:#dbdee0 !important}.has-text-white-ter{color:#ecf0f1 !important}.has-background-white-ter{background-color:#ecf0f1 !important}.has-text-white-bis{color:#fafafa !important}.has-background-white-bis{background-color:#fafafa !important}.has-text-weight-light{font-weight:300 !important}.has-text-weight-normal{font-weight:400 !important}.has-text-weight-medium{font-weight:500 !important}.has-text-weight-semibold{font-weight:600 !important}.has-text-weight-bold{font-weight:700 !important}.is-family-primary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-secondary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-sans-serif{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-monospace{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-family-code{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-block{display:block !important}@media screen and (max-width: 768px){.is-block-mobile{display:block !important}}@media screen and (min-width: 769px),print{.is-block-tablet{display:block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-block-tablet-only{display:block !important}}@media screen and (max-width: 1055px){.is-block-touch{display:block !important}}@media screen and (min-width: 1056px){.is-block-desktop{display:block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-block-desktop-only{display:block !important}}@media screen and (min-width: 1216px){.is-block-widescreen{display:block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-block-widescreen-only{display:block !important}}@media screen and (min-width: 1408px){.is-block-fullhd{display:block !important}}.is-flex{display:flex !important}@media screen and (max-width: 768px){.is-flex-mobile{display:flex !important}}@media screen and (min-width: 769px),print{.is-flex-tablet{display:flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-flex-tablet-only{display:flex !important}}@media screen and (max-width: 1055px){.is-flex-touch{display:flex !important}}@media screen and (min-width: 1056px){.is-flex-desktop{display:flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-flex-desktop-only{display:flex !important}}@media screen and (min-width: 1216px){.is-flex-widescreen{display:flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-flex-widescreen-only{display:flex !important}}@media screen and (min-width: 1408px){.is-flex-fullhd{display:flex !important}}.is-inline{display:inline !important}@media screen and (max-width: 768px){.is-inline-mobile{display:inline !important}}@media screen and (min-width: 769px),print{.is-inline-tablet{display:inline !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-tablet-only{display:inline !important}}@media screen and (max-width: 1055px){.is-inline-touch{display:inline !important}}@media screen and (min-width: 1056px){.is-inline-desktop{display:inline !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-desktop-only{display:inline !important}}@media screen and (min-width: 1216px){.is-inline-widescreen{display:inline !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-widescreen-only{display:inline !important}}@media screen and (min-width: 1408px){.is-inline-fullhd{display:inline !important}}.is-inline-block{display:inline-block !important}@media screen and (max-width: 768px){.is-inline-block-mobile{display:inline-block !important}}@media screen and (min-width: 769px),print{.is-inline-block-tablet{display:inline-block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-block-tablet-only{display:inline-block !important}}@media screen and (max-width: 1055px){.is-inline-block-touch{display:inline-block !important}}@media screen and (min-width: 1056px){.is-inline-block-desktop{display:inline-block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-block-desktop-only{display:inline-block !important}}@media screen and (min-width: 1216px){.is-inline-block-widescreen{display:inline-block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-block-widescreen-only{display:inline-block !important}}@media screen and (min-width: 1408px){.is-inline-block-fullhd{display:inline-block !important}}.is-inline-flex{display:inline-flex !important}@media screen and (max-width: 768px){.is-inline-flex-mobile{display:inline-flex !important}}@media screen and (min-width: 769px),print{.is-inline-flex-tablet{display:inline-flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-flex-tablet-only{display:inline-flex !important}}@media screen and (max-width: 1055px){.is-inline-flex-touch{display:inline-flex !important}}@media screen and (min-width: 1056px){.is-inline-flex-desktop{display:inline-flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-flex-desktop-only{display:inline-flex !important}}@media screen and (min-width: 1216px){.is-inline-flex-widescreen{display:inline-flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-flex-widescreen-only{display:inline-flex !important}}@media screen and (min-width: 1408px){.is-inline-flex-fullhd{display:inline-flex !important}}.is-hidden{display:none !important}.is-sr-only{border:none !important;clip:rect(0, 0, 0, 0) !important;height:0.01em !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:0.01em !important}@media screen and (max-width: 768px){.is-hidden-mobile{display:none !important}}@media screen and (min-width: 769px),print{.is-hidden-tablet{display:none !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-hidden-tablet-only{display:none !important}}@media screen and (max-width: 1055px){.is-hidden-touch{display:none !important}}@media screen and (min-width: 1056px){.is-hidden-desktop{display:none !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-hidden-desktop-only{display:none !important}}@media screen and (min-width: 1216px){.is-hidden-widescreen{display:none !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-hidden-widescreen-only{display:none !important}}@media screen and (min-width: 1408px){.is-hidden-fullhd{display:none !important}}.is-invisible{visibility:hidden !important}@media screen and (max-width: 768px){.is-invisible-mobile{visibility:hidden !important}}@media screen and (min-width: 769px),print{.is-invisible-tablet{visibility:hidden !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-invisible-tablet-only{visibility:hidden !important}}@media screen and (max-width: 1055px){.is-invisible-touch{visibility:hidden !important}}@media screen and (min-width: 1056px){.is-invisible-desktop{visibility:hidden !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-invisible-desktop-only{visibility:hidden !important}}@media screen and (min-width: 1216px){.is-invisible-widescreen{visibility:hidden !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-invisible-widescreen-only{visibility:hidden !important}}@media screen and (min-width: 1408px){.is-invisible-fullhd{visibility:hidden !important}}.is-marginless{margin:0 !important}.is-paddingless{padding:0 !important}.is-radiusless{border-radius:0 !important}.is-shadowless{box-shadow:none !important}.is-relative{position:relative !important}html.theme--documenter-dark{/*! + Theme: a11y-dark + Author: @ericwbailey + Maintainer: @ericwbailey + + Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css +*/}html.theme--documenter-dark html{background-color:#1f2424;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}html.theme--documenter-dark article,html.theme--documenter-dark aside,html.theme--documenter-dark figure,html.theme--documenter-dark footer,html.theme--documenter-dark header,html.theme--documenter-dark hgroup,html.theme--documenter-dark section{display:block}html.theme--documenter-dark body,html.theme--documenter-dark button,html.theme--documenter-dark input,html.theme--documenter-dark select,html.theme--documenter-dark textarea{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif}html.theme--documenter-dark code,html.theme--documenter-dark pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}html.theme--documenter-dark body{color:#fff;font-size:1em;font-weight:400;line-height:1.5}html.theme--documenter-dark a{color:#1abc9c;cursor:pointer;text-decoration:none}html.theme--documenter-dark a strong{color:currentColor}html.theme--documenter-dark a:hover{color:#1dd2af}html.theme--documenter-dark code{background-color:rgba(255,255,255,0.05);color:#ececec;font-size:.875em;font-weight:normal;padding:.1em}html.theme--documenter-dark hr{background-color:#282f2f;border:none;display:block;height:2px;margin:1.5rem 0}html.theme--documenter-dark img{height:auto;max-width:100%}html.theme--documenter-dark input[type="checkbox"],html.theme--documenter-dark input[type="radio"]{vertical-align:baseline}html.theme--documenter-dark small{font-size:.875em}html.theme--documenter-dark span{font-style:inherit;font-weight:inherit}html.theme--documenter-dark strong{color:#f2f2f2;font-weight:700}html.theme--documenter-dark fieldset{border:none}html.theme--documenter-dark pre{-webkit-overflow-scrolling:touch;background-color:#282f2f;color:#fff;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}html.theme--documenter-dark pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}html.theme--documenter-dark table td,html.theme--documenter-dark table th{vertical-align:top}html.theme--documenter-dark table td:not([align]),html.theme--documenter-dark table th:not([align]){text-align:left}html.theme--documenter-dark table th{color:#f2f2f2}html.theme--documenter-dark .box{background-color:#343c3d;border-radius:8px;box-shadow:none;color:#fff;display:block;padding:1.25rem}html.theme--documenter-dark a.box:hover,html.theme--documenter-dark a.box:focus{box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px #1abc9c}html.theme--documenter-dark a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2),0 0 0 1px #1abc9c}html.theme--documenter-dark .button{background-color:#282f2f;border-color:#4c5759;border-width:1px;color:#375a7f;cursor:pointer;justify-content:center;padding-bottom:calc(0.375em - 1px);padding-left:.75em;padding-right:.75em;padding-top:calc(0.375em - 1px);text-align:center;white-space:nowrap}html.theme--documenter-dark .button strong{color:inherit}html.theme--documenter-dark .button .icon,html.theme--documenter-dark .button .icon.is-small,html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search>input.icon,html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search>input.icon,html.theme--documenter-dark .button .icon.is-medium,html.theme--documenter-dark .button .icon.is-large{height:1.5em;width:1.5em}html.theme--documenter-dark .button .icon:first-child:not(:last-child){margin-left:calc(-0.375em - 1px);margin-right:0.1875em}html.theme--documenter-dark .button .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:calc(-0.375em - 1px)}html.theme--documenter-dark .button .icon:first-child:last-child{margin-left:calc(-0.375em - 1px);margin-right:calc(-0.375em - 1px)}html.theme--documenter-dark .button:hover,html.theme--documenter-dark .button.is-hovered{border-color:#8c9b9d;color:#f2f2f2}html.theme--documenter-dark .button:focus,html.theme--documenter-dark .button.is-focused{border-color:#8c9b9d;color:#17a689}html.theme--documenter-dark .button:focus:not(:active),html.theme--documenter-dark .button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .button:active,html.theme--documenter-dark .button.is-active{border-color:#343c3d;color:#f2f2f2}html.theme--documenter-dark .button.is-text{background-color:transparent;border-color:transparent;color:#fff;text-decoration:underline}html.theme--documenter-dark .button.is-text:hover,html.theme--documenter-dark .button.is-text.is-hovered,html.theme--documenter-dark .button.is-text:focus,html.theme--documenter-dark .button.is-text.is-focused{background-color:#282f2f;color:#f2f2f2}html.theme--documenter-dark .button.is-text:active,html.theme--documenter-dark .button.is-text.is-active{background-color:#1d2122;color:#f2f2f2}html.theme--documenter-dark .button.is-text[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-text{background-color:transparent;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:hover,html.theme--documenter-dark .button.is-white.is-hovered{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:focus,html.theme--documenter-dark .button.is-white.is-focused{border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:focus:not(:active),html.theme--documenter-dark .button.is-white.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .button.is-white:active,html.theme--documenter-dark .button.is-white.is-active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white{background-color:#fff;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted:hover,html.theme--documenter-dark .button.is-white.is-inverted.is-hovered{background-color:#000}html.theme--documenter-dark .button.is-white.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-white.is-outlined:hover,html.theme--documenter-dark .button.is-white.is-outlined.is-hovered,html.theme--documenter-dark .button.is-white.is-outlined:focus,html.theme--documenter-dark .button.is-white.is-outlined.is-focused{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-white.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-white.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-focused{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:hover,html.theme--documenter-dark .button.is-black.is-hovered{background-color:#040404;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:focus,html.theme--documenter-dark .button.is-black.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:focus:not(:active),html.theme--documenter-dark .button.is-black.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .button.is-black:active,html.theme--documenter-dark .button.is-black.is-active{background-color:#000;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black{background-color:#0a0a0a;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted:hover,html.theme--documenter-dark .button.is-black.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-black.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-outlined:hover,html.theme--documenter-dark .button.is-black.is-outlined.is-hovered,html.theme--documenter-dark .button.is-black.is-outlined:focus,html.theme--documenter-dark .button.is-black.is-outlined.is-focused{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-black.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-black.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-focused{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-light{background-color:#ecf0f1;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:hover,html.theme--documenter-dark .button.is-light.is-hovered{background-color:#e5eaec;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:focus,html.theme--documenter-dark .button.is-light.is-focused{border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:focus:not(:active),html.theme--documenter-dark .button.is-light.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .button.is-light:active,html.theme--documenter-dark .button.is-light.is-active{background-color:#dde4e6;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light{background-color:#ecf0f1;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-light.is-inverted{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted:hover,html.theme--documenter-dark .button.is-light.is-inverted.is-hovered{background-color:#1d2122}html.theme--documenter-dark .button.is-light.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted{background-color:#282f2f;border-color:transparent;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-loading::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-light.is-outlined{background-color:transparent;border-color:#ecf0f1;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-outlined:hover,html.theme--documenter-dark .button.is-light.is-outlined.is-hovered,html.theme--documenter-dark .button.is-light.is-outlined:focus,html.theme--documenter-dark .button.is-light.is-outlined.is-focused{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-light.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined{background-color:transparent;border-color:#ecf0f1;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#282f2f;color:#282f2f}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#282f2f;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark,html.theme--documenter-dark .content kbd.button{background-color:#282f2f;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:hover,html.theme--documenter-dark .content kbd.button:hover,html.theme--documenter-dark .button.is-dark.is-hovered,html.theme--documenter-dark .content kbd.button.is-hovered{background-color:#232829;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:focus,html.theme--documenter-dark .content kbd.button:focus,html.theme--documenter-dark .button.is-dark.is-focused,html.theme--documenter-dark .content kbd.button.is-focused{border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:focus:not(:active),html.theme--documenter-dark .content kbd.button:focus:not(:active),html.theme--documenter-dark .button.is-dark.is-focused:not(:active),html.theme--documenter-dark .content kbd.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .button.is-dark:active,html.theme--documenter-dark .content kbd.button:active,html.theme--documenter-dark .button.is-dark.is-active,html.theme--documenter-dark .content kbd.button.is-active{background-color:#1d2122;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark[disabled],html.theme--documenter-dark .content kbd.button[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark,fieldset[disabled] html.theme--documenter-dark .content kbd.button{background-color:#282f2f;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-dark.is-inverted,html.theme--documenter-dark .content kbd.button.is-inverted{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted:hover,html.theme--documenter-dark .content kbd.button.is-inverted:hover,html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered,html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered{background-color:#dde4e6}html.theme--documenter-dark .button.is-dark.is-inverted[disabled],html.theme--documenter-dark .content kbd.button.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted{background-color:#ecf0f1;border-color:transparent;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-loading::after,html.theme--documenter-dark .content kbd.button.is-loading::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-dark.is-outlined,html.theme--documenter-dark .content kbd.button.is-outlined{background-color:transparent;border-color:#282f2f;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-outlined:hover,html.theme--documenter-dark .content kbd.button.is-outlined:hover,html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered,html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered,html.theme--documenter-dark .button.is-dark.is-outlined:focus,html.theme--documenter-dark .content kbd.button.is-outlined:focus,html.theme--documenter-dark .button.is-dark.is-outlined.is-focused,html.theme--documenter-dark .content kbd.button.is-outlined.is-focused{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-dark.is-outlined[disabled],html.theme--documenter-dark .content kbd.button.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined{background-color:transparent;border-color:#282f2f;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#ecf0f1;color:#ecf0f1}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled],html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#ecf0f1;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-primary,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink{background-color:#375a7f;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:hover,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-hovered.docs-sourcelink{background-color:#335476;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:focus,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:focus:not(:active),html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus:not(:active),html.theme--documenter-dark .button.is-primary.is-focused:not(:active),html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink:not(:active){box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .button.is-primary:active,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:active,html.theme--documenter-dark .button.is-primary.is-active,html.theme--documenter-dark .docstring>section>a.button.is-active.docs-sourcelink{background-color:#2f4d6d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary[disabled],html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink{background-color:#375a7f;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-primary.is-inverted,html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted:hover,html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-hovered.docs-sourcelink{background-color:#f2f2f2}html.theme--documenter-dark .button.is-primary.is-inverted[disabled],html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;border-color:transparent;box-shadow:none;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-loading::after,html.theme--documenter-dark .docstring>section>a.button.is-loading.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-primary.is-outlined,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#375a7f;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-outlined:hover,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-outlined:focus,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-outlined.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-focused.docs-sourcelink{background-color:#375a7f;border-color:#375a7f;color:#fff}html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink::after{border-color:transparent transparent #375a7f #375a7f !important}html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:hover::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:focus::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-primary.is-outlined[disabled],html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#375a7f;box-shadow:none;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-focused.docs-sourcelink{background-color:#fff;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #375a7f #375a7f !important}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled],html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-link{background-color:#1abc9c;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:hover,html.theme--documenter-dark .button.is-link.is-hovered{background-color:#18b193;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:focus,html.theme--documenter-dark .button.is-link.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:focus:not(:active),html.theme--documenter-dark .button.is-link.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .button.is-link:active,html.theme--documenter-dark .button.is-link.is-active{background-color:#17a689;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link{background-color:#1abc9c;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-link.is-inverted{background-color:#fff;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted:hover,html.theme--documenter-dark .button.is-link.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-link.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-link.is-outlined{background-color:transparent;border-color:#1abc9c;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-outlined:hover,html.theme--documenter-dark .button.is-link.is-outlined.is-hovered,html.theme--documenter-dark .button.is-link.is-outlined:focus,html.theme--documenter-dark .button.is-link.is-outlined.is-focused{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #1abc9c #1abc9c !important}html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-link.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined{background-color:transparent;border-color:#1abc9c;box-shadow:none;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused{background-color:#fff;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #1abc9c #1abc9c !important}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-info{background-color:#024c7d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:hover,html.theme--documenter-dark .button.is-info.is-hovered{background-color:#024470;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:focus,html.theme--documenter-dark .button.is-info.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:focus:not(:active),html.theme--documenter-dark .button.is-info.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .button.is-info:active,html.theme--documenter-dark .button.is-info.is-active{background-color:#023d64;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info{background-color:#024c7d;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-info.is-inverted{background-color:#fff;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted:hover,html.theme--documenter-dark .button.is-info.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-info.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#024c7d}html.theme--documenter-dark .button.is-info.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-info.is-outlined{background-color:transparent;border-color:#024c7d;color:#024c7d}html.theme--documenter-dark .button.is-info.is-outlined:hover,html.theme--documenter-dark .button.is-info.is-outlined.is-hovered,html.theme--documenter-dark .button.is-info.is-outlined:focus,html.theme--documenter-dark .button.is-info.is-outlined.is-focused{background-color:#024c7d;border-color:#024c7d;color:#fff}html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #024c7d #024c7d !important}html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-info.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined{background-color:transparent;border-color:#024c7d;box-shadow:none;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused{background-color:#fff;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #024c7d #024c7d !important}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-success{background-color:#008438;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:hover,html.theme--documenter-dark .button.is-success.is-hovered{background-color:#073;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:focus,html.theme--documenter-dark .button.is-success.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:focus:not(:active),html.theme--documenter-dark .button.is-success.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .button.is-success:active,html.theme--documenter-dark .button.is-success.is-active{background-color:#006b2d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success{background-color:#008438;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-success.is-inverted{background-color:#fff;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted:hover,html.theme--documenter-dark .button.is-success.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-success.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#008438}html.theme--documenter-dark .button.is-success.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-success.is-outlined{background-color:transparent;border-color:#008438;color:#008438}html.theme--documenter-dark .button.is-success.is-outlined:hover,html.theme--documenter-dark .button.is-success.is-outlined.is-hovered,html.theme--documenter-dark .button.is-success.is-outlined:focus,html.theme--documenter-dark .button.is-success.is-outlined.is-focused{background-color:#008438;border-color:#008438;color:#fff}html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #008438 #008438 !important}html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-success.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined{background-color:transparent;border-color:#008438;box-shadow:none;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused{background-color:#fff;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #008438 #008438 !important}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-warning{background-color:#ad8100;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:hover,html.theme--documenter-dark .button.is-warning.is-hovered{background-color:#a07700;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:focus,html.theme--documenter-dark .button.is-warning.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:focus:not(:active),html.theme--documenter-dark .button.is-warning.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .button.is-warning:active,html.theme--documenter-dark .button.is-warning.is-active{background-color:#946e00;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning{background-color:#ad8100;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-warning.is-inverted{background-color:#fff;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted:hover,html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-warning.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-warning.is-outlined{background-color:transparent;border-color:#ad8100;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-outlined:hover,html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered,html.theme--documenter-dark .button.is-warning.is-outlined:focus,html.theme--documenter-dark .button.is-warning.is-outlined.is-focused{background-color:#ad8100;border-color:#ad8100;color:#fff}html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #ad8100 #ad8100 !important}html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-warning.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined{background-color:transparent;border-color:#ad8100;box-shadow:none;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused{background-color:#fff;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ad8100 #ad8100 !important}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-danger{background-color:#9e1b0d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:hover,html.theme--documenter-dark .button.is-danger.is-hovered{background-color:#92190c;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:focus,html.theme--documenter-dark .button.is-danger.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:focus:not(:active),html.theme--documenter-dark .button.is-danger.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .button.is-danger:active,html.theme--documenter-dark .button.is-danger.is-active{background-color:#86170b;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger{background-color:#9e1b0d;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-danger.is-inverted{background-color:#fff;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted:hover,html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-danger.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-danger.is-outlined{background-color:transparent;border-color:#9e1b0d;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-outlined:hover,html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered,html.theme--documenter-dark .button.is-danger.is-outlined:focus,html.theme--documenter-dark .button.is-danger.is-outlined.is-focused{background-color:#9e1b0d;border-color:#9e1b0d;color:#fff}html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #9e1b0d #9e1b0d !important}html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-danger.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined{background-color:transparent;border-color:#9e1b0d;box-shadow:none;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused{background-color:#fff;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #9e1b0d #9e1b0d !important}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.button{border-radius:3px;font-size:.85em}html.theme--documenter-dark .button.is-normal{font-size:15px}html.theme--documenter-dark .button.is-medium{font-size:1.25rem}html.theme--documenter-dark .button.is-large{font-size:1.5rem}html.theme--documenter-dark .button[disabled],fieldset[disabled] html.theme--documenter-dark .button{background-color:#8c9b9d;border-color:#dbdee0;box-shadow:none;opacity:.5}html.theme--documenter-dark .button.is-fullwidth{display:flex;width:100%}html.theme--documenter-dark .button.is-loading{color:transparent !important;pointer-events:none}html.theme--documenter-dark .button.is-loading::after{position:absolute;left:calc(50% - (1em / 2));top:calc(50% - (1em / 2));position:absolute !important}html.theme--documenter-dark .button.is-static{background-color:#282f2f;border-color:#5e6d6f;color:#dbdee0;box-shadow:none;pointer-events:none}html.theme--documenter-dark .button.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.button{border-radius:290486px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .buttons .button{margin-bottom:0.5rem}html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth){margin-right:0.5rem}html.theme--documenter-dark .buttons:last-child{margin-bottom:-0.5rem}html.theme--documenter-dark .buttons:not(:last-child){margin-bottom:1rem}html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){border-radius:3px;font-size:.85em}html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}html.theme--documenter-dark .buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}html.theme--documenter-dark .buttons.has-addons .button:last-child{margin-right:0}html.theme--documenter-dark .buttons.has-addons .button:hover,html.theme--documenter-dark .buttons.has-addons .button.is-hovered{z-index:2}html.theme--documenter-dark .buttons.has-addons .button:focus,html.theme--documenter-dark .buttons.has-addons .button.is-focused,html.theme--documenter-dark .buttons.has-addons .button:active,html.theme--documenter-dark .buttons.has-addons .button.is-active,html.theme--documenter-dark .buttons.has-addons .button.is-selected{z-index:3}html.theme--documenter-dark .buttons.has-addons .button:focus:hover,html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover,html.theme--documenter-dark .buttons.has-addons .button:active:hover,html.theme--documenter-dark .buttons.has-addons .button.is-active:hover,html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover{z-index:4}html.theme--documenter-dark .buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .buttons.is-centered{justify-content:center}html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}html.theme--documenter-dark .buttons.is-right{justify-content:flex-end}html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}html.theme--documenter-dark .container{flex-grow:1;margin:0 auto;position:relative;width:auto}@media screen and (min-width: 1056px){html.theme--documenter-dark .container{max-width:992px}html.theme--documenter-dark .container.is-fluid{margin-left:32px;margin-right:32px;max-width:none}}@media screen and (max-width: 1215px){html.theme--documenter-dark .container.is-widescreen{max-width:1152px}}@media screen and (max-width: 1407px){html.theme--documenter-dark .container.is-fullhd{max-width:1344px}}@media screen and (min-width: 1216px){html.theme--documenter-dark .container{max-width:1152px}}@media screen and (min-width: 1408px){html.theme--documenter-dark .container{max-width:1344px}}html.theme--documenter-dark .content li+li{margin-top:0.25em}html.theme--documenter-dark .content p:not(:last-child),html.theme--documenter-dark .content dl:not(:last-child),html.theme--documenter-dark .content ol:not(:last-child),html.theme--documenter-dark .content ul:not(:last-child),html.theme--documenter-dark .content blockquote:not(:last-child),html.theme--documenter-dark .content pre:not(:last-child),html.theme--documenter-dark .content table:not(:last-child){margin-bottom:1em}html.theme--documenter-dark .content h1,html.theme--documenter-dark .content h2,html.theme--documenter-dark .content h3,html.theme--documenter-dark .content h4,html.theme--documenter-dark .content h5,html.theme--documenter-dark .content h6{color:#f2f2f2;font-weight:600;line-height:1.125}html.theme--documenter-dark .content h1{font-size:2em;margin-bottom:0.5em}html.theme--documenter-dark .content h1:not(:first-child){margin-top:1em}html.theme--documenter-dark .content h2{font-size:1.75em;margin-bottom:0.5714em}html.theme--documenter-dark .content h2:not(:first-child){margin-top:1.1428em}html.theme--documenter-dark .content h3{font-size:1.5em;margin-bottom:0.6666em}html.theme--documenter-dark .content h3:not(:first-child){margin-top:1.3333em}html.theme--documenter-dark .content h4{font-size:1.25em;margin-bottom:0.8em}html.theme--documenter-dark .content h5{font-size:1.125em;margin-bottom:0.8888em}html.theme--documenter-dark .content h6{font-size:1em;margin-bottom:1em}html.theme--documenter-dark .content blockquote{background-color:#282f2f;border-left:5px solid #5e6d6f;padding:1.25em 1.5em}html.theme--documenter-dark .content ol{list-style-position:outside;margin-left:2em;margin-top:1em}html.theme--documenter-dark .content ol:not([type]){list-style-type:decimal}html.theme--documenter-dark .content ol.is-lower-alpha:not([type]){list-style-type:lower-alpha}html.theme--documenter-dark .content ol.is-lower-roman:not([type]){list-style-type:lower-roman}html.theme--documenter-dark .content ol.is-upper-alpha:not([type]){list-style-type:upper-alpha}html.theme--documenter-dark .content ol.is-upper-roman:not([type]){list-style-type:upper-roman}html.theme--documenter-dark .content ul{list-style:disc outside;margin-left:2em;margin-top:1em}html.theme--documenter-dark .content ul ul{list-style-type:circle;margin-top:0.5em}html.theme--documenter-dark .content ul ul ul{list-style-type:square}html.theme--documenter-dark .content dd{margin-left:2em}html.theme--documenter-dark .content figure{margin-left:2em;margin-right:2em;text-align:center}html.theme--documenter-dark .content figure:not(:first-child){margin-top:2em}html.theme--documenter-dark .content figure:not(:last-child){margin-bottom:2em}html.theme--documenter-dark .content figure img{display:inline-block}html.theme--documenter-dark .content figure figcaption{font-style:italic}html.theme--documenter-dark .content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:0;white-space:pre;word-wrap:normal}html.theme--documenter-dark .content sup,html.theme--documenter-dark .content sub{font-size:75%}html.theme--documenter-dark .content table{width:100%}html.theme--documenter-dark .content table td,html.theme--documenter-dark .content table th{border:1px solid #5e6d6f;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}html.theme--documenter-dark .content table th{color:#f2f2f2}html.theme--documenter-dark .content table th:not([align]){text-align:left}html.theme--documenter-dark .content table thead td,html.theme--documenter-dark .content table thead th{border-width:0 0 2px;color:#f2f2f2}html.theme--documenter-dark .content table tfoot td,html.theme--documenter-dark .content table tfoot th{border-width:2px 0 0;color:#f2f2f2}html.theme--documenter-dark .content table tbody tr:last-child td,html.theme--documenter-dark .content table tbody tr:last-child th{border-bottom-width:0}html.theme--documenter-dark .content .tabs li+li{margin-top:0}html.theme--documenter-dark .content.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.content{font-size:.85em}html.theme--documenter-dark .content.is-medium{font-size:1.25rem}html.theme--documenter-dark .content.is-large{font-size:1.5rem}html.theme--documenter-dark .icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}html.theme--documenter-dark .icon.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.icon{height:1rem;width:1rem}html.theme--documenter-dark .icon.is-medium{height:2rem;width:2rem}html.theme--documenter-dark .icon.is-large{height:3rem;width:3rem}html.theme--documenter-dark .image,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img{display:block;position:relative}html.theme--documenter-dark .image img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img img{display:block;height:auto;width:100%}html.theme--documenter-dark .image img.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img img.is-rounded{border-radius:290486px}html.theme--documenter-dark .image.is-square img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square img,html.theme--documenter-dark .image.is-square .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,html.theme--documenter-dark .image.is-1by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 img,html.theme--documenter-dark .image.is-1by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,html.theme--documenter-dark .image.is-5by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 img,html.theme--documenter-dark .image.is-5by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,html.theme--documenter-dark .image.is-4by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 img,html.theme--documenter-dark .image.is-4by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,html.theme--documenter-dark .image.is-3by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 img,html.theme--documenter-dark .image.is-3by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,html.theme--documenter-dark .image.is-5by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 img,html.theme--documenter-dark .image.is-5by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,html.theme--documenter-dark .image.is-16by9 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 img,html.theme--documenter-dark .image.is-16by9 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,html.theme--documenter-dark .image.is-2by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 img,html.theme--documenter-dark .image.is-2by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,html.theme--documenter-dark .image.is-3by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 img,html.theme--documenter-dark .image.is-3by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,html.theme--documenter-dark .image.is-4by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 img,html.theme--documenter-dark .image.is-4by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,html.theme--documenter-dark .image.is-3by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 img,html.theme--documenter-dark .image.is-3by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,html.theme--documenter-dark .image.is-2by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 img,html.theme--documenter-dark .image.is-2by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,html.theme--documenter-dark .image.is-3by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 img,html.theme--documenter-dark .image.is-3by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,html.theme--documenter-dark .image.is-9by16 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 img,html.theme--documenter-dark .image.is-9by16 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,html.theme--documenter-dark .image.is-1by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 img,html.theme--documenter-dark .image.is-1by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,html.theme--documenter-dark .image.is-1by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 img,html.theme--documenter-dark .image.is-1by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio{height:100%;width:100%}html.theme--documenter-dark .image.is-square,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square,html.theme--documenter-dark .image.is-1by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1{padding-top:100%}html.theme--documenter-dark .image.is-5by4,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4{padding-top:80%}html.theme--documenter-dark .image.is-4by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3{padding-top:75%}html.theme--documenter-dark .image.is-3by2,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2{padding-top:66.6666%}html.theme--documenter-dark .image.is-5by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3{padding-top:60%}html.theme--documenter-dark .image.is-16by9,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9{padding-top:56.25%}html.theme--documenter-dark .image.is-2by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1{padding-top:50%}html.theme--documenter-dark .image.is-3by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1{padding-top:33.3333%}html.theme--documenter-dark .image.is-4by5,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5{padding-top:125%}html.theme--documenter-dark .image.is-3by4,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4{padding-top:133.3333%}html.theme--documenter-dark .image.is-2by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3{padding-top:150%}html.theme--documenter-dark .image.is-3by5,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5{padding-top:166.6666%}html.theme--documenter-dark .image.is-9by16,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16{padding-top:177.7777%}html.theme--documenter-dark .image.is-1by2,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2{padding-top:200%}html.theme--documenter-dark .image.is-1by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3{padding-top:300%}html.theme--documenter-dark .image.is-16x16,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16x16{height:16px;width:16px}html.theme--documenter-dark .image.is-24x24,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-24x24{height:24px;width:24px}html.theme--documenter-dark .image.is-32x32,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-32x32{height:32px;width:32px}html.theme--documenter-dark .image.is-48x48,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-48x48{height:48px;width:48px}html.theme--documenter-dark .image.is-64x64,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-64x64{height:64px;width:64px}html.theme--documenter-dark .image.is-96x96,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-96x96{height:96px;width:96px}html.theme--documenter-dark .image.is-128x128,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-128x128{height:128px;width:128px}html.theme--documenter-dark .notification{background-color:#282f2f;border-radius:.4em;padding:1.25rem 2.5rem 1.25rem 1.5rem;position:relative}html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}html.theme--documenter-dark .notification strong{color:currentColor}html.theme--documenter-dark .notification code,html.theme--documenter-dark .notification pre{background:#fff}html.theme--documenter-dark .notification pre code{background:transparent}html.theme--documenter-dark .notification>.delete{position:absolute;right:0.5rem;top:0.5rem}html.theme--documenter-dark .notification .title,html.theme--documenter-dark .notification .subtitle,html.theme--documenter-dark .notification .content{color:currentColor}html.theme--documenter-dark .notification.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .notification.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .notification.is-light{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .notification.is-dark,html.theme--documenter-dark .content kbd.notification{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .notification.is-primary,html.theme--documenter-dark .docstring>section>a.notification.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .notification.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .notification.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .notification.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .notification.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .notification.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:290486px;display:block;height:15px;overflow:hidden;padding:0;width:100%}html.theme--documenter-dark .progress::-webkit-progress-bar{background-color:#5e6d6f}html.theme--documenter-dark .progress::-webkit-progress-value{background-color:#dbdee0}html.theme--documenter-dark .progress::-moz-progress-bar{background-color:#dbdee0}html.theme--documenter-dark .progress::-ms-fill{background-color:#dbdee0;border:none}html.theme--documenter-dark .progress.is-white::-webkit-progress-value{background-color:#fff}html.theme--documenter-dark .progress.is-white::-moz-progress-bar{background-color:#fff}html.theme--documenter-dark .progress.is-white::-ms-fill{background-color:#fff}html.theme--documenter-dark .progress.is-white:indeterminate{background-image:linear-gradient(to right, #fff 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-black::-webkit-progress-value{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black::-moz-progress-bar{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black::-ms-fill{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black:indeterminate{background-image:linear-gradient(to right, #0a0a0a 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-light::-webkit-progress-value{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light::-moz-progress-bar{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light::-ms-fill{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light:indeterminate{background-image:linear-gradient(to right, #ecf0f1 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-dark::-webkit-progress-value,html.theme--documenter-dark .content kbd.progress::-webkit-progress-value{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark::-moz-progress-bar,html.theme--documenter-dark .content kbd.progress::-moz-progress-bar{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark::-ms-fill,html.theme--documenter-dark .content kbd.progress::-ms-fill{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark:indeterminate,html.theme--documenter-dark .content kbd.progress:indeterminate{background-image:linear-gradient(to right, #282f2f 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-primary::-webkit-progress-value,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-webkit-progress-value{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary::-moz-progress-bar,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-moz-progress-bar{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary::-ms-fill,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-ms-fill{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary:indeterminate,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink:indeterminate{background-image:linear-gradient(to right, #375a7f 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-link::-webkit-progress-value{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link::-moz-progress-bar{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link::-ms-fill{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link:indeterminate{background-image:linear-gradient(to right, #1abc9c 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-info::-webkit-progress-value{background-color:#024c7d}html.theme--documenter-dark .progress.is-info::-moz-progress-bar{background-color:#024c7d}html.theme--documenter-dark .progress.is-info::-ms-fill{background-color:#024c7d}html.theme--documenter-dark .progress.is-info:indeterminate{background-image:linear-gradient(to right, #024c7d 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-success::-webkit-progress-value{background-color:#008438}html.theme--documenter-dark .progress.is-success::-moz-progress-bar{background-color:#008438}html.theme--documenter-dark .progress.is-success::-ms-fill{background-color:#008438}html.theme--documenter-dark .progress.is-success:indeterminate{background-image:linear-gradient(to right, #008438 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-warning::-webkit-progress-value{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning::-moz-progress-bar{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning::-ms-fill{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning:indeterminate{background-image:linear-gradient(to right, #ad8100 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-danger::-webkit-progress-value{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger::-moz-progress-bar{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger::-ms-fill{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger:indeterminate{background-image:linear-gradient(to right, #9e1b0d 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress:indeterminate{animation-duration:1.5s;animation-iteration-count:infinite;animation-name:moveIndeterminate;animation-timing-function:linear;background-color:#5e6d6f;background-image:linear-gradient(to right, #fff 30%, #5e6d6f 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar{background-color:transparent}html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar{background-color:transparent}html.theme--documenter-dark .progress.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.progress{height:.85em}html.theme--documenter-dark .progress.is-medium{height:1.25rem}html.theme--documenter-dark .progress.is-large{height:1.5rem}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}html.theme--documenter-dark .table{background-color:#343c3d;color:#fff}html.theme--documenter-dark .table td,html.theme--documenter-dark .table th{border:1px solid #5e6d6f;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}html.theme--documenter-dark .table td.is-white,html.theme--documenter-dark .table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .table td.is-black,html.theme--documenter-dark .table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .table td.is-light,html.theme--documenter-dark .table th.is-light{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .table td.is-dark,html.theme--documenter-dark .table th.is-dark{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .table td.is-primary,html.theme--documenter-dark .table th.is-primary{background-color:#375a7f;border-color:#375a7f;color:#fff}html.theme--documenter-dark .table td.is-link,html.theme--documenter-dark .table th.is-link{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .table td.is-info,html.theme--documenter-dark .table th.is-info{background-color:#024c7d;border-color:#024c7d;color:#fff}html.theme--documenter-dark .table td.is-success,html.theme--documenter-dark .table th.is-success{background-color:#008438;border-color:#008438;color:#fff}html.theme--documenter-dark .table td.is-warning,html.theme--documenter-dark .table th.is-warning{background-color:#ad8100;border-color:#ad8100;color:#fff}html.theme--documenter-dark .table td.is-danger,html.theme--documenter-dark .table th.is-danger{background-color:#9e1b0d;border-color:#9e1b0d;color:#fff}html.theme--documenter-dark .table td.is-narrow,html.theme--documenter-dark .table th.is-narrow{white-space:nowrap;width:1%}html.theme--documenter-dark .table td.is-selected,html.theme--documenter-dark .table th.is-selected{background-color:#375a7f;color:#fff}html.theme--documenter-dark .table td.is-selected a,html.theme--documenter-dark .table td.is-selected strong,html.theme--documenter-dark .table th.is-selected a,html.theme--documenter-dark .table th.is-selected strong{color:currentColor}html.theme--documenter-dark .table th{color:#f2f2f2}html.theme--documenter-dark .table th:not([align]){text-align:left}html.theme--documenter-dark .table tr.is-selected{background-color:#375a7f;color:#fff}html.theme--documenter-dark .table tr.is-selected a,html.theme--documenter-dark .table tr.is-selected strong{color:currentColor}html.theme--documenter-dark .table tr.is-selected td,html.theme--documenter-dark .table tr.is-selected th{border-color:#fff;color:currentColor}html.theme--documenter-dark .table thead{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table thead td,html.theme--documenter-dark .table thead th{border-width:0 0 2px;color:#f2f2f2}html.theme--documenter-dark .table tfoot{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table tfoot td,html.theme--documenter-dark .table tfoot th{border-width:2px 0 0;color:#f2f2f2}html.theme--documenter-dark .table tbody{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table tbody tr:last-child td,html.theme--documenter-dark .table tbody tr:last-child th{border-bottom-width:0}html.theme--documenter-dark .table.is-bordered td,html.theme--documenter-dark .table.is-bordered th{border-width:1px}html.theme--documenter-dark .table.is-bordered tr:last-child td,html.theme--documenter-dark .table.is-bordered tr:last-child th{border-bottom-width:1px}html.theme--documenter-dark .table.is-fullwidth{width:100%}html.theme--documenter-dark .table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#282f2f}html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#282f2f}html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even){background-color:#2d3435}html.theme--documenter-dark .table.is-narrow td,html.theme--documenter-dark .table.is-narrow th{padding:0.25em 0.5em}html.theme--documenter-dark .table.is-striped tbody tr:not(.is-selected):nth-child(even){background-color:#282f2f}html.theme--documenter-dark .table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}html.theme--documenter-dark .tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .tags .tag,html.theme--documenter-dark .tags .content kbd,html.theme--documenter-dark .content .tags kbd,html.theme--documenter-dark .tags .docstring>section>a.docs-sourcelink{margin-bottom:0.5rem}html.theme--documenter-dark .tags .tag:not(:last-child),html.theme--documenter-dark .tags .content kbd:not(:last-child),html.theme--documenter-dark .content .tags kbd:not(:last-child),html.theme--documenter-dark .tags .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0.5rem}html.theme--documenter-dark .tags:last-child{margin-bottom:-0.5rem}html.theme--documenter-dark .tags:not(:last-child){margin-bottom:1rem}html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large),html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large),html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large),html.theme--documenter-dark .tags.are-medium .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-large){font-size:15px}html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium),html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium),html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium),html.theme--documenter-dark .tags.are-large .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-medium){font-size:1.25rem}html.theme--documenter-dark .tags.is-centered{justify-content:center}html.theme--documenter-dark .tags.is-centered .tag,html.theme--documenter-dark .tags.is-centered .content kbd,html.theme--documenter-dark .content .tags.is-centered kbd,html.theme--documenter-dark .tags.is-centered .docstring>section>a.docs-sourcelink{margin-right:0.25rem;margin-left:0.25rem}html.theme--documenter-dark .tags.is-right{justify-content:flex-end}html.theme--documenter-dark .tags.is-right .tag:not(:first-child),html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child),html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child),html.theme--documenter-dark .tags.is-right .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0.5rem}html.theme--documenter-dark .tags.is-right .tag:not(:last-child),html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child),html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child),html.theme--documenter-dark .tags.is-right .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0}html.theme--documenter-dark .tags.has-addons .tag,html.theme--documenter-dark .tags.has-addons .content kbd,html.theme--documenter-dark .content .tags.has-addons kbd,html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink{margin-right:0}html.theme--documenter-dark .tags.has-addons .tag:not(:first-child),html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child),html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child),html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0;border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .tags.has-addons .tag:not(:last-child),html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child),html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child),html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .tag:not(body),html.theme--documenter-dark .content kbd:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body){align-items:center;background-color:#282f2f;border-radius:.4em;color:#fff;display:inline-flex;font-size:.85em;height:2em;justify-content:center;line-height:1.5;padding-left:0.75em;padding-right:0.75em;white-space:nowrap}html.theme--documenter-dark .tag:not(body) .delete,html.theme--documenter-dark .content kbd:not(body) .delete,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .delete{margin-left:0.25rem;margin-right:-0.375rem}html.theme--documenter-dark .tag.is-white:not(body),html.theme--documenter-dark .content kbd.is-white:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-white:not(body){background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .tag.is-black:not(body),html.theme--documenter-dark .content kbd.is-black:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-black:not(body){background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .tag.is-light:not(body),html.theme--documenter-dark .content kbd.is-light:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .tag.is-dark:not(body),html.theme--documenter-dark .content kbd:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-dark:not(body),html.theme--documenter-dark .content .docstring>section>kbd:not(body){background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .tag.is-primary:not(body),html.theme--documenter-dark .content kbd.is-primary:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body){background-color:#375a7f;color:#fff}html.theme--documenter-dark .tag.is-link:not(body),html.theme--documenter-dark .content kbd.is-link:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-link:not(body){background-color:#1abc9c;color:#fff}html.theme--documenter-dark .tag.is-info:not(body),html.theme--documenter-dark .content kbd.is-info:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-info:not(body){background-color:#024c7d;color:#fff}html.theme--documenter-dark .tag.is-success:not(body),html.theme--documenter-dark .content kbd.is-success:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-success:not(body){background-color:#008438;color:#fff}html.theme--documenter-dark .tag.is-warning:not(body),html.theme--documenter-dark .content kbd.is-warning:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-warning:not(body){background-color:#ad8100;color:#fff}html.theme--documenter-dark .tag.is-danger:not(body),html.theme--documenter-dark .content kbd.is-danger:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-danger:not(body){background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .tag.is-normal:not(body),html.theme--documenter-dark .content kbd.is-normal:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-normal:not(body){font-size:.85em}html.theme--documenter-dark .tag.is-medium:not(body),html.theme--documenter-dark .content kbd.is-medium:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-medium:not(body){font-size:15px}html.theme--documenter-dark .tag.is-large:not(body),html.theme--documenter-dark .content kbd.is-large:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-large:not(body){font-size:1.25rem}html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child),html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:first-child:not(:last-child){margin-left:-0.375em;margin-right:0.1875em}html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child),html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:-0.375em}html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child,html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:first-child:last-child{margin-left:-0.375em;margin-right:-0.375em}html.theme--documenter-dark .tag.is-delete:not(body),html.theme--documenter-dark .content kbd.is-delete:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body){margin-left:1px;padding:0;position:relative;width:2em}html.theme--documenter-dark .tag.is-delete:not(body)::before,html.theme--documenter-dark .content kbd.is-delete:not(body)::before,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::before,html.theme--documenter-dark .tag.is-delete:not(body)::after,html.theme--documenter-dark .content kbd.is-delete:not(body)::after,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::after{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}html.theme--documenter-dark .tag.is-delete:not(body)::before,html.theme--documenter-dark .content kbd.is-delete:not(body)::before,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::before{height:1px;width:50%}html.theme--documenter-dark .tag.is-delete:not(body)::after,html.theme--documenter-dark .content kbd.is-delete:not(body)::after,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::after{height:50%;width:1px}html.theme--documenter-dark .tag.is-delete:not(body):hover,html.theme--documenter-dark .content kbd.is-delete:not(body):hover,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):hover,html.theme--documenter-dark .tag.is-delete:not(body):focus,html.theme--documenter-dark .content kbd.is-delete:not(body):focus,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):focus{background-color:#1d2122}html.theme--documenter-dark .tag.is-delete:not(body):active,html.theme--documenter-dark .content kbd.is-delete:not(body):active,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):active{background-color:#111414}html.theme--documenter-dark .tag.is-rounded:not(body),html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:not(body),html.theme--documenter-dark .content kbd.is-rounded:not(body),html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-rounded:not(body){border-radius:290486px}html.theme--documenter-dark a.tag:hover,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:hover{text-decoration:underline}html.theme--documenter-dark .title,html.theme--documenter-dark .subtitle{word-break:break-word}html.theme--documenter-dark .title em,html.theme--documenter-dark .title span,html.theme--documenter-dark .subtitle em,html.theme--documenter-dark .subtitle span{font-weight:inherit}html.theme--documenter-dark .title sub,html.theme--documenter-dark .subtitle sub{font-size:.75em}html.theme--documenter-dark .title sup,html.theme--documenter-dark .subtitle sup{font-size:.75em}html.theme--documenter-dark .title .tag,html.theme--documenter-dark .title .content kbd,html.theme--documenter-dark .content .title kbd,html.theme--documenter-dark .title .docstring>section>a.docs-sourcelink,html.theme--documenter-dark .subtitle .tag,html.theme--documenter-dark .subtitle .content kbd,html.theme--documenter-dark .content .subtitle kbd,html.theme--documenter-dark .subtitle .docstring>section>a.docs-sourcelink{vertical-align:middle}html.theme--documenter-dark .title{color:#fff;font-size:2rem;font-weight:500;line-height:1.125}html.theme--documenter-dark .title strong{color:inherit;font-weight:inherit}html.theme--documenter-dark .title+.highlight{margin-top:-0.75rem}html.theme--documenter-dark .title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}html.theme--documenter-dark .title.is-1{font-size:3rem}html.theme--documenter-dark .title.is-2{font-size:2.5rem}html.theme--documenter-dark .title.is-3{font-size:2rem}html.theme--documenter-dark .title.is-4{font-size:1.5rem}html.theme--documenter-dark .title.is-5{font-size:1.25rem}html.theme--documenter-dark .title.is-6{font-size:15px}html.theme--documenter-dark .title.is-7{font-size:.85em}html.theme--documenter-dark .subtitle{color:#8c9b9d;font-size:1.25rem;font-weight:400;line-height:1.25}html.theme--documenter-dark .subtitle strong{color:#8c9b9d;font-weight:600}html.theme--documenter-dark .subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}html.theme--documenter-dark .subtitle.is-1{font-size:3rem}html.theme--documenter-dark .subtitle.is-2{font-size:2.5rem}html.theme--documenter-dark .subtitle.is-3{font-size:2rem}html.theme--documenter-dark .subtitle.is-4{font-size:1.5rem}html.theme--documenter-dark .subtitle.is-5{font-size:1.25rem}html.theme--documenter-dark .subtitle.is-6{font-size:15px}html.theme--documenter-dark .subtitle.is-7{font-size:.85em}html.theme--documenter-dark .heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}html.theme--documenter-dark .highlight{font-weight:400;max-width:100%;overflow:hidden;padding:0}html.theme--documenter-dark .highlight pre{overflow:auto;max-width:100%}html.theme--documenter-dark .number{align-items:center;background-color:#282f2f;border-radius:290486px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:0.25rem 0.5rem;text-align:center;vertical-align:top}html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{background-color:#1f2424;border-color:#5e6d6f;border-radius:.4em;color:#dbdee0}html.theme--documenter-dark .select select::-moz-placeholder,html.theme--documenter-dark .textarea::-moz-placeholder,html.theme--documenter-dark .input::-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select::-webkit-input-placeholder,html.theme--documenter-dark .textarea::-webkit-input-placeholder,html.theme--documenter-dark .input::-webkit-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:-moz-placeholder,html.theme--documenter-dark .textarea:-moz-placeholder,html.theme--documenter-dark .input:-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:-ms-input-placeholder,html.theme--documenter-dark .textarea:-ms-input-placeholder,html.theme--documenter-dark .input:-ms-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:hover,html.theme--documenter-dark .textarea:hover,html.theme--documenter-dark .input:hover,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:hover,html.theme--documenter-dark .select select.is-hovered,html.theme--documenter-dark .is-hovered.textarea,html.theme--documenter-dark .is-hovered.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-hovered{border-color:#8c9b9d}html.theme--documenter-dark .select select:focus,html.theme--documenter-dark .textarea:focus,html.theme--documenter-dark .input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:focus,html.theme--documenter-dark .select select.is-focused,html.theme--documenter-dark .is-focused.textarea,html.theme--documenter-dark .is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .select select:active,html.theme--documenter-dark .textarea:active,html.theme--documenter-dark .input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:active,html.theme--documenter-dark .select select.is-active,html.theme--documenter-dark .is-active.textarea,html.theme--documenter-dark .is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{border-color:#1abc9c;box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .select select[disabled],html.theme--documenter-dark .textarea[disabled],html.theme--documenter-dark .input[disabled],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled],fieldset[disabled] html.theme--documenter-dark .select select,fieldset[disabled] html.theme--documenter-dark .textarea,fieldset[disabled] html.theme--documenter-dark .input,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{background-color:#8c9b9d;border-color:#282f2f;box-shadow:none;color:#fff}html.theme--documenter-dark .select select[disabled]::-moz-placeholder,html.theme--documenter-dark .textarea[disabled]::-moz-placeholder,html.theme--documenter-dark .input[disabled]::-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .input::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]::-webkit-input-placeholder,html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder,html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .input::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]:-moz-placeholder,html.theme--documenter-dark .textarea[disabled]:-moz-placeholder,html.theme--documenter-dark .input[disabled]:-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .input:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]:-ms-input-placeholder,html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder,html.theme--documenter-dark .input[disabled]:-ms-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .input:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{box-shadow:inset 0 1px 2px rgba(10,10,10,0.1);max-width:100%;width:100%}html.theme--documenter-dark .textarea[readonly],html.theme--documenter-dark .input[readonly],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[readonly]{box-shadow:none}html.theme--documenter-dark .is-white.textarea,html.theme--documenter-dark .is-white.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white{border-color:#fff}html.theme--documenter-dark .is-white.textarea:focus,html.theme--documenter-dark .is-white.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white:focus,html.theme--documenter-dark .is-white.is-focused.textarea,html.theme--documenter-dark .is-white.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-white.textarea:active,html.theme--documenter-dark .is-white.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white:active,html.theme--documenter-dark .is-white.is-active.textarea,html.theme--documenter-dark .is-white.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .is-black.textarea,html.theme--documenter-dark .is-black.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black{border-color:#0a0a0a}html.theme--documenter-dark .is-black.textarea:focus,html.theme--documenter-dark .is-black.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black:focus,html.theme--documenter-dark .is-black.is-focused.textarea,html.theme--documenter-dark .is-black.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-black.textarea:active,html.theme--documenter-dark .is-black.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black:active,html.theme--documenter-dark .is-black.is-active.textarea,html.theme--documenter-dark .is-black.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .is-light.textarea,html.theme--documenter-dark .is-light.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light{border-color:#ecf0f1}html.theme--documenter-dark .is-light.textarea:focus,html.theme--documenter-dark .is-light.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light:focus,html.theme--documenter-dark .is-light.is-focused.textarea,html.theme--documenter-dark .is-light.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-light.textarea:active,html.theme--documenter-dark .is-light.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light:active,html.theme--documenter-dark .is-light.is-active.textarea,html.theme--documenter-dark .is-light.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .is-dark.textarea,html.theme--documenter-dark .content kbd.textarea,html.theme--documenter-dark .is-dark.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark,html.theme--documenter-dark .content kbd.input{border-color:#282f2f}html.theme--documenter-dark .is-dark.textarea:focus,html.theme--documenter-dark .content kbd.textarea:focus,html.theme--documenter-dark .is-dark.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark:focus,html.theme--documenter-dark .content kbd.input:focus,html.theme--documenter-dark .is-dark.is-focused.textarea,html.theme--documenter-dark .content kbd.is-focused.textarea,html.theme--documenter-dark .is-dark.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .content kbd.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input.is-focused,html.theme--documenter-dark .is-dark.textarea:active,html.theme--documenter-dark .content kbd.textarea:active,html.theme--documenter-dark .is-dark.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark:active,html.theme--documenter-dark .content kbd.input:active,html.theme--documenter-dark .is-dark.is-active.textarea,html.theme--documenter-dark .content kbd.is-active.textarea,html.theme--documenter-dark .is-dark.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .content kbd.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .is-primary.textarea,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink{border-color:#375a7f}html.theme--documenter-dark .is-primary.textarea:focus,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink:focus,html.theme--documenter-dark .is-primary.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary:focus,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink:focus,html.theme--documenter-dark .is-primary.is-focused.textarea,html.theme--documenter-dark .docstring>section>a.is-focused.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .docstring>section>a.is-focused.input.docs-sourcelink,html.theme--documenter-dark .is-primary.textarea:active,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink:active,html.theme--documenter-dark .is-primary.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary:active,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink:active,html.theme--documenter-dark .is-primary.is-active.textarea,html.theme--documenter-dark .docstring>section>a.is-active.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .docstring>section>a.is-active.input.docs-sourcelink{box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .is-link.textarea,html.theme--documenter-dark .is-link.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link{border-color:#1abc9c}html.theme--documenter-dark .is-link.textarea:focus,html.theme--documenter-dark .is-link.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link:focus,html.theme--documenter-dark .is-link.is-focused.textarea,html.theme--documenter-dark .is-link.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-link.textarea:active,html.theme--documenter-dark .is-link.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link:active,html.theme--documenter-dark .is-link.is-active.textarea,html.theme--documenter-dark .is-link.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .is-info.textarea,html.theme--documenter-dark .is-info.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info{border-color:#024c7d}html.theme--documenter-dark .is-info.textarea:focus,html.theme--documenter-dark .is-info.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info:focus,html.theme--documenter-dark .is-info.is-focused.textarea,html.theme--documenter-dark .is-info.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-info.textarea:active,html.theme--documenter-dark .is-info.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info:active,html.theme--documenter-dark .is-info.is-active.textarea,html.theme--documenter-dark .is-info.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .is-success.textarea,html.theme--documenter-dark .is-success.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success{border-color:#008438}html.theme--documenter-dark .is-success.textarea:focus,html.theme--documenter-dark .is-success.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success:focus,html.theme--documenter-dark .is-success.is-focused.textarea,html.theme--documenter-dark .is-success.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-success.textarea:active,html.theme--documenter-dark .is-success.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success:active,html.theme--documenter-dark .is-success.is-active.textarea,html.theme--documenter-dark .is-success.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .is-warning.textarea,html.theme--documenter-dark .is-warning.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning{border-color:#ad8100}html.theme--documenter-dark .is-warning.textarea:focus,html.theme--documenter-dark .is-warning.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning:focus,html.theme--documenter-dark .is-warning.is-focused.textarea,html.theme--documenter-dark .is-warning.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-warning.textarea:active,html.theme--documenter-dark .is-warning.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning:active,html.theme--documenter-dark .is-warning.is-active.textarea,html.theme--documenter-dark .is-warning.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .is-danger.textarea,html.theme--documenter-dark .is-danger.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger{border-color:#9e1b0d}html.theme--documenter-dark .is-danger.textarea:focus,html.theme--documenter-dark .is-danger.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger:focus,html.theme--documenter-dark .is-danger.is-focused.textarea,html.theme--documenter-dark .is-danger.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-danger.textarea:active,html.theme--documenter-dark .is-danger.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger:active,html.theme--documenter-dark .is-danger.is-active.textarea,html.theme--documenter-dark .is-danger.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .is-small.textarea,html.theme--documenter-dark .is-small.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{border-radius:3px;font-size:.85em}html.theme--documenter-dark .is-medium.textarea,html.theme--documenter-dark .is-medium.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-medium{font-size:1.25rem}html.theme--documenter-dark .is-large.textarea,html.theme--documenter-dark .is-large.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-large{font-size:1.5rem}html.theme--documenter-dark .is-fullwidth.textarea,html.theme--documenter-dark .is-fullwidth.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-fullwidth{display:block;width:100%}html.theme--documenter-dark .is-inline.textarea,html.theme--documenter-dark .is-inline.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-inline{display:inline;width:auto}html.theme--documenter-dark .input.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{border-radius:290486px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .input.is-static,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}html.theme--documenter-dark .textarea{display:block;max-width:100%;min-width:100%;padding:0.625em;resize:vertical}html.theme--documenter-dark .textarea:not([rows]){max-height:600px;min-height:120px}html.theme--documenter-dark .textarea[rows]{height:initial}html.theme--documenter-dark .textarea.has-fixed-size{resize:none}html.theme--documenter-dark .radio,html.theme--documenter-dark .checkbox{cursor:pointer;display:inline-block;line-height:1.25;position:relative}html.theme--documenter-dark .radio input,html.theme--documenter-dark .checkbox input{cursor:pointer}html.theme--documenter-dark .radio:hover,html.theme--documenter-dark .checkbox:hover{color:#8c9b9d}html.theme--documenter-dark .radio[disabled],html.theme--documenter-dark .checkbox[disabled],fieldset[disabled] html.theme--documenter-dark .radio,fieldset[disabled] html.theme--documenter-dark .checkbox{color:#fff;cursor:not-allowed}html.theme--documenter-dark .radio+.radio{margin-left:0.5em}html.theme--documenter-dark .select{display:inline-block;max-width:100%;position:relative;vertical-align:top}html.theme--documenter-dark .select:not(.is-multiple){height:2.25em}html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after{border-color:#1abc9c;right:1.125em;z-index:4}html.theme--documenter-dark .select.is-rounded select,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.select select{border-radius:290486px;padding-left:1em}html.theme--documenter-dark .select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:none}html.theme--documenter-dark .select select::-ms-expand{display:none}html.theme--documenter-dark .select select[disabled]:hover,fieldset[disabled] html.theme--documenter-dark .select select:hover{border-color:#282f2f}html.theme--documenter-dark .select select:not([multiple]){padding-right:2.5em}html.theme--documenter-dark .select select[multiple]{height:auto;padding:0}html.theme--documenter-dark .select select[multiple] option{padding:0.5em 1em}html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after{border-color:#8c9b9d}html.theme--documenter-dark .select.is-white:not(:hover)::after{border-color:#fff}html.theme--documenter-dark .select.is-white select{border-color:#fff}html.theme--documenter-dark .select.is-white select:hover,html.theme--documenter-dark .select.is-white select.is-hovered{border-color:#f2f2f2}html.theme--documenter-dark .select.is-white select:focus,html.theme--documenter-dark .select.is-white select.is-focused,html.theme--documenter-dark .select.is-white select:active,html.theme--documenter-dark .select.is-white select.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .select.is-black:not(:hover)::after{border-color:#0a0a0a}html.theme--documenter-dark .select.is-black select{border-color:#0a0a0a}html.theme--documenter-dark .select.is-black select:hover,html.theme--documenter-dark .select.is-black select.is-hovered{border-color:#000}html.theme--documenter-dark .select.is-black select:focus,html.theme--documenter-dark .select.is-black select.is-focused,html.theme--documenter-dark .select.is-black select:active,html.theme--documenter-dark .select.is-black select.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .select.is-light:not(:hover)::after{border-color:#ecf0f1}html.theme--documenter-dark .select.is-light select{border-color:#ecf0f1}html.theme--documenter-dark .select.is-light select:hover,html.theme--documenter-dark .select.is-light select.is-hovered{border-color:#dde4e6}html.theme--documenter-dark .select.is-light select:focus,html.theme--documenter-dark .select.is-light select.is-focused,html.theme--documenter-dark .select.is-light select:active,html.theme--documenter-dark .select.is-light select.is-active{box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .select.is-dark:not(:hover)::after,html.theme--documenter-dark .content kbd.select:not(:hover)::after{border-color:#282f2f}html.theme--documenter-dark .select.is-dark select,html.theme--documenter-dark .content kbd.select select{border-color:#282f2f}html.theme--documenter-dark .select.is-dark select:hover,html.theme--documenter-dark .content kbd.select select:hover,html.theme--documenter-dark .select.is-dark select.is-hovered,html.theme--documenter-dark .content kbd.select select.is-hovered{border-color:#1d2122}html.theme--documenter-dark .select.is-dark select:focus,html.theme--documenter-dark .content kbd.select select:focus,html.theme--documenter-dark .select.is-dark select.is-focused,html.theme--documenter-dark .content kbd.select select.is-focused,html.theme--documenter-dark .select.is-dark select:active,html.theme--documenter-dark .content kbd.select select:active,html.theme--documenter-dark .select.is-dark select.is-active,html.theme--documenter-dark .content kbd.select select.is-active{box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .select.is-primary:not(:hover)::after,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink:not(:hover)::after{border-color:#375a7f}html.theme--documenter-dark .select.is-primary select,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select{border-color:#375a7f}html.theme--documenter-dark .select.is-primary select:hover,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:hover,html.theme--documenter-dark .select.is-primary select.is-hovered,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-hovered{border-color:#2f4d6d}html.theme--documenter-dark .select.is-primary select:focus,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:focus,html.theme--documenter-dark .select.is-primary select.is-focused,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-focused,html.theme--documenter-dark .select.is-primary select:active,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:active,html.theme--documenter-dark .select.is-primary select.is-active,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-active{box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .select.is-link:not(:hover)::after{border-color:#1abc9c}html.theme--documenter-dark .select.is-link select{border-color:#1abc9c}html.theme--documenter-dark .select.is-link select:hover,html.theme--documenter-dark .select.is-link select.is-hovered{border-color:#17a689}html.theme--documenter-dark .select.is-link select:focus,html.theme--documenter-dark .select.is-link select.is-focused,html.theme--documenter-dark .select.is-link select:active,html.theme--documenter-dark .select.is-link select.is-active{box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .select.is-info:not(:hover)::after{border-color:#024c7d}html.theme--documenter-dark .select.is-info select{border-color:#024c7d}html.theme--documenter-dark .select.is-info select:hover,html.theme--documenter-dark .select.is-info select.is-hovered{border-color:#023d64}html.theme--documenter-dark .select.is-info select:focus,html.theme--documenter-dark .select.is-info select.is-focused,html.theme--documenter-dark .select.is-info select:active,html.theme--documenter-dark .select.is-info select.is-active{box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .select.is-success:not(:hover)::after{border-color:#008438}html.theme--documenter-dark .select.is-success select{border-color:#008438}html.theme--documenter-dark .select.is-success select:hover,html.theme--documenter-dark .select.is-success select.is-hovered{border-color:#006b2d}html.theme--documenter-dark .select.is-success select:focus,html.theme--documenter-dark .select.is-success select.is-focused,html.theme--documenter-dark .select.is-success select:active,html.theme--documenter-dark .select.is-success select.is-active{box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .select.is-warning:not(:hover)::after{border-color:#ad8100}html.theme--documenter-dark .select.is-warning select{border-color:#ad8100}html.theme--documenter-dark .select.is-warning select:hover,html.theme--documenter-dark .select.is-warning select.is-hovered{border-color:#946e00}html.theme--documenter-dark .select.is-warning select:focus,html.theme--documenter-dark .select.is-warning select.is-focused,html.theme--documenter-dark .select.is-warning select:active,html.theme--documenter-dark .select.is-warning select.is-active{box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .select.is-danger:not(:hover)::after{border-color:#9e1b0d}html.theme--documenter-dark .select.is-danger select{border-color:#9e1b0d}html.theme--documenter-dark .select.is-danger select:hover,html.theme--documenter-dark .select.is-danger select.is-hovered{border-color:#86170b}html.theme--documenter-dark .select.is-danger select:focus,html.theme--documenter-dark .select.is-danger select.is-focused,html.theme--documenter-dark .select.is-danger select:active,html.theme--documenter-dark .select.is-danger select.is-active{box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .select.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.select{border-radius:3px;font-size:.85em}html.theme--documenter-dark .select.is-medium{font-size:1.25rem}html.theme--documenter-dark .select.is-large{font-size:1.5rem}html.theme--documenter-dark .select.is-disabled::after{border-color:#fff}html.theme--documenter-dark .select.is-fullwidth{width:100%}html.theme--documenter-dark .select.is-fullwidth select{width:100%}html.theme--documenter-dark .select.is-loading::after{margin-top:0;position:absolute;right:0.625em;top:0.625em;transform:none}html.theme--documenter-dark .select.is-loading.is-small:after,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.85em}html.theme--documenter-dark .select.is-loading.is-medium:after{font-size:1.25rem}html.theme--documenter-dark .select.is-loading.is-large:after{font-size:1.5rem}html.theme--documenter-dark .file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}html.theme--documenter-dark .file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-white:hover .file-cta,html.theme--documenter-dark .file.is-white.is-hovered .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-white:focus .file-cta,html.theme--documenter-dark .file.is-white.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,255,255,0.25);color:#0a0a0a}html.theme--documenter-dark .file.is-white:active .file-cta,html.theme--documenter-dark .file.is-white.is-active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-black:hover .file-cta,html.theme--documenter-dark .file.is-black.is-hovered .file-cta{background-color:#040404;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-black:focus .file-cta,html.theme--documenter-dark .file.is-black.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(10,10,10,0.25);color:#fff}html.theme--documenter-dark .file.is-black:active .file-cta,html.theme--documenter-dark .file.is-black.is-active .file-cta{background-color:#000;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-light .file-cta{background-color:#ecf0f1;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-light:hover .file-cta,html.theme--documenter-dark .file.is-light.is-hovered .file-cta{background-color:#e5eaec;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-light:focus .file-cta,html.theme--documenter-dark .file.is-light.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(236,240,241,0.25);color:#282f2f}html.theme--documenter-dark .file.is-light:active .file-cta,html.theme--documenter-dark .file.is-light.is-active .file-cta{background-color:#dde4e6;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-dark .file-cta,html.theme--documenter-dark .content kbd.file .file-cta{background-color:#282f2f;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-dark:hover .file-cta,html.theme--documenter-dark .content kbd.file:hover .file-cta,html.theme--documenter-dark .file.is-dark.is-hovered .file-cta,html.theme--documenter-dark .content kbd.file.is-hovered .file-cta{background-color:#232829;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-dark:focus .file-cta,html.theme--documenter-dark .content kbd.file:focus .file-cta,html.theme--documenter-dark .file.is-dark.is-focused .file-cta,html.theme--documenter-dark .content kbd.file.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(40,47,47,0.25);color:#ecf0f1}html.theme--documenter-dark .file.is-dark:active .file-cta,html.theme--documenter-dark .content kbd.file:active .file-cta,html.theme--documenter-dark .file.is-dark.is-active .file-cta,html.theme--documenter-dark .content kbd.file.is-active .file-cta{background-color:#1d2122;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-primary .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink .file-cta{background-color:#375a7f;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-primary:hover .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:hover .file-cta,html.theme--documenter-dark .file.is-primary.is-hovered .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-hovered.docs-sourcelink .file-cta{background-color:#335476;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-primary:focus .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:focus .file-cta,html.theme--documenter-dark .file.is-primary.is-focused .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-focused.docs-sourcelink .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(55,90,127,0.25);color:#fff}html.theme--documenter-dark .file.is-primary:active .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:active .file-cta,html.theme--documenter-dark .file.is-primary.is-active .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-active.docs-sourcelink .file-cta{background-color:#2f4d6d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link .file-cta{background-color:#1abc9c;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link:hover .file-cta,html.theme--documenter-dark .file.is-link.is-hovered .file-cta{background-color:#18b193;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link:focus .file-cta,html.theme--documenter-dark .file.is-link.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(26,188,156,0.25);color:#fff}html.theme--documenter-dark .file.is-link:active .file-cta,html.theme--documenter-dark .file.is-link.is-active .file-cta{background-color:#17a689;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info .file-cta{background-color:#024c7d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info:hover .file-cta,html.theme--documenter-dark .file.is-info.is-hovered .file-cta{background-color:#024470;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info:focus .file-cta,html.theme--documenter-dark .file.is-info.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(2,76,125,0.25);color:#fff}html.theme--documenter-dark .file.is-info:active .file-cta,html.theme--documenter-dark .file.is-info.is-active .file-cta{background-color:#023d64;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success .file-cta{background-color:#008438;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success:hover .file-cta,html.theme--documenter-dark .file.is-success.is-hovered .file-cta{background-color:#073;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success:focus .file-cta,html.theme--documenter-dark .file.is-success.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(0,132,56,0.25);color:#fff}html.theme--documenter-dark .file.is-success:active .file-cta,html.theme--documenter-dark .file.is-success.is-active .file-cta{background-color:#006b2d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning .file-cta{background-color:#ad8100;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning:hover .file-cta,html.theme--documenter-dark .file.is-warning.is-hovered .file-cta{background-color:#a07700;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning:focus .file-cta,html.theme--documenter-dark .file.is-warning.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(173,129,0,0.25);color:#fff}html.theme--documenter-dark .file.is-warning:active .file-cta,html.theme--documenter-dark .file.is-warning.is-active .file-cta{background-color:#946e00;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger .file-cta{background-color:#9e1b0d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger:hover .file-cta,html.theme--documenter-dark .file.is-danger.is-hovered .file-cta{background-color:#92190c;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger:focus .file-cta,html.theme--documenter-dark .file.is-danger.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(158,27,13,0.25);color:#fff}html.theme--documenter-dark .file.is-danger:active .file-cta,html.theme--documenter-dark .file.is-danger.is-active .file-cta{background-color:#86170b;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.file{font-size:.85em}html.theme--documenter-dark .file.is-medium{font-size:1.25rem}html.theme--documenter-dark .file.is-medium .file-icon .fa{font-size:21px}html.theme--documenter-dark .file.is-large{font-size:1.5rem}html.theme--documenter-dark .file.is-large .file-icon .fa{font-size:28px}html.theme--documenter-dark .file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .file.has-name.is-empty .file-cta{border-radius:.4em}html.theme--documenter-dark .file.has-name.is-empty .file-name{display:none}html.theme--documenter-dark .file.is-boxed .file-label{flex-direction:column}html.theme--documenter-dark .file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}html.theme--documenter-dark .file.is-boxed .file-name{border-width:0 1px 1px}html.theme--documenter-dark .file.is-boxed .file-icon{height:1.5em;width:1.5em}html.theme--documenter-dark .file.is-boxed .file-icon .fa{font-size:21px}html.theme--documenter-dark .file.is-boxed.is-small .file-icon .fa,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-boxed .file-icon .fa{font-size:14px}html.theme--documenter-dark .file.is-boxed.is-medium .file-icon .fa{font-size:28px}html.theme--documenter-dark .file.is-boxed.is-large .file-icon .fa{font-size:35px}html.theme--documenter-dark .file.is-boxed.has-name .file-cta{border-radius:.4em .4em 0 0}html.theme--documenter-dark .file.is-boxed.has-name .file-name{border-radius:0 0 .4em .4em;border-width:0 1px 1px}html.theme--documenter-dark .file.is-centered{justify-content:center}html.theme--documenter-dark .file.is-fullwidth .file-label{width:100%}html.theme--documenter-dark .file.is-fullwidth .file-name{flex-grow:1;max-width:none}html.theme--documenter-dark .file.is-right{justify-content:flex-end}html.theme--documenter-dark .file.is-right .file-cta{border-radius:0 .4em .4em 0}html.theme--documenter-dark .file.is-right .file-name{border-radius:.4em 0 0 .4em;border-width:1px 0 1px 1px;order:-1}html.theme--documenter-dark .file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}html.theme--documenter-dark .file-label:hover .file-cta{background-color:#e5eaec;color:#282f2f}html.theme--documenter-dark .file-label:hover .file-name{border-color:#596668}html.theme--documenter-dark .file-label:active .file-cta{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .file-label:active .file-name{border-color:#535f61}html.theme--documenter-dark .file-input{height:100%;left:0;opacity:0;outline:none;position:absolute;top:0;width:100%}html.theme--documenter-dark .file-cta,html.theme--documenter-dark .file-name{border-color:#5e6d6f;border-radius:.4em;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}html.theme--documenter-dark .file-cta{background-color:#ecf0f1;color:#343c3d}html.theme--documenter-dark .file-name{border-color:#5e6d6f;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:left;text-overflow:ellipsis}html.theme--documenter-dark .file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:0.5em;width:1em}html.theme--documenter-dark .file-icon .fa{font-size:14px}html.theme--documenter-dark .label{color:#282f2f;display:block;font-size:15px;font-weight:700}html.theme--documenter-dark .label:not(:last-child){margin-bottom:0.5em}html.theme--documenter-dark .label.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.label{font-size:.85em}html.theme--documenter-dark .label.is-medium{font-size:1.25rem}html.theme--documenter-dark .label.is-large{font-size:1.5rem}html.theme--documenter-dark .help{display:block;font-size:.85em;margin-top:0.25rem}html.theme--documenter-dark .help.is-white{color:#fff}html.theme--documenter-dark .help.is-black{color:#0a0a0a}html.theme--documenter-dark .help.is-light{color:#ecf0f1}html.theme--documenter-dark .help.is-dark,html.theme--documenter-dark .content kbd.help{color:#282f2f}html.theme--documenter-dark .help.is-primary,html.theme--documenter-dark .docstring>section>a.help.docs-sourcelink{color:#375a7f}html.theme--documenter-dark .help.is-link{color:#1abc9c}html.theme--documenter-dark .help.is-info{color:#024c7d}html.theme--documenter-dark .help.is-success{color:#008438}html.theme--documenter-dark .help.is-warning{color:#ad8100}html.theme--documenter-dark .help.is-danger{color:#9e1b0d}html.theme--documenter-dark .field:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .field.has-addons{display:flex;justify-content:flex-start}html.theme--documenter-dark .field.has-addons .control:not(:last-child){margin-right:-1px}html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .button.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-hovered:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select.is-hovered:not([disabled]){z-index:2}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]){z-index:3}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus:hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active:hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]):hover{z-index:4}html.theme--documenter-dark .field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .field.has-addons.has-addons-centered{justify-content:center}html.theme--documenter-dark .field.has-addons.has-addons-right{justify-content:flex-end}html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .field.is-grouped{display:flex;justify-content:flex-start}html.theme--documenter-dark .field.is-grouped>.control{flex-shrink:0}html.theme--documenter-dark .field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:0.75rem}html.theme--documenter-dark .field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .field.is-grouped.is-grouped-centered{justify-content:center}html.theme--documenter-dark .field.is-grouped.is-grouped-right{justify-content:flex-end}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline{flex-wrap:wrap}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline>.control:last-child,html.theme--documenter-dark .field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-0.75rem}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field.is-horizontal{display:flex}}html.theme--documenter-dark .field-label .label{font-size:inherit}@media screen and (max-width: 768px){html.theme--documenter-dark .field-label{margin-bottom:0.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}html.theme--documenter-dark .field-label.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.field-label{font-size:.85em;padding-top:0.375em}html.theme--documenter-dark .field-label.is-normal{padding-top:0.375em}html.theme--documenter-dark .field-label.is-medium{font-size:1.25rem;padding-top:0.375em}html.theme--documenter-dark .field-label.is-large{font-size:1.5rem;padding-top:0.375em}}html.theme--documenter-dark .field-body .field .field{margin-bottom:0}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}html.theme--documenter-dark .field-body .field{margin-bottom:0}html.theme--documenter-dark .field-body>.field{flex-shrink:1}html.theme--documenter-dark .field-body>.field:not(.is-narrow){flex-grow:1}html.theme--documenter-dark .field-body>.field:not(:last-child){margin-right:0.75rem}}html.theme--documenter-dark .control{box-sizing:border-box;clear:both;font-size:15px;position:relative;text-align:left}html.theme--documenter-dark .control.has-icons-left .input:focus~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input:focus~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input:focus~.icon,html.theme--documenter-dark .control.has-icons-left .select:focus~.icon,html.theme--documenter-dark .control.has-icons-right .input:focus~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input:focus~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input:focus~.icon,html.theme--documenter-dark .control.has-icons-right .select:focus~.icon{color:#5e6d6f}html.theme--documenter-dark .control.has-icons-left .input.is-small~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-small~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-small~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-small~.icon{font-size:.85em}html.theme--documenter-dark .control.has-icons-left .input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}html.theme--documenter-dark .control.has-icons-left .input.is-large~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-large~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-large~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-large~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-large~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-large~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-large~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-large~.icon{font-size:1.5rem}html.theme--documenter-dark .control.has-icons-left .icon,html.theme--documenter-dark .control.has-icons-right .icon{color:#dbdee0;height:2.25em;pointer-events:none;position:absolute;top:0;width:2.25em;z-index:4}html.theme--documenter-dark .control.has-icons-left .input,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input,html.theme--documenter-dark .control.has-icons-left .select select{padding-left:2.25em}html.theme--documenter-dark .control.has-icons-left .icon.is-left{left:0}html.theme--documenter-dark .control.has-icons-right .input,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input,html.theme--documenter-dark .control.has-icons-right .select select{padding-right:2.25em}html.theme--documenter-dark .control.has-icons-right .icon.is-right{right:0}html.theme--documenter-dark .control.is-loading::after{position:absolute !important;right:0.625em;top:0.625em;z-index:4}html.theme--documenter-dark .control.is-loading.is-small:after,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.85em}html.theme--documenter-dark .control.is-loading.is-medium:after{font-size:1.25rem}html.theme--documenter-dark .control.is-loading.is-large:after{font-size:1.5rem}html.theme--documenter-dark .breadcrumb{font-size:15px;white-space:nowrap}html.theme--documenter-dark .breadcrumb a{align-items:center;color:#1abc9c;display:flex;justify-content:center;padding:0 .75em}html.theme--documenter-dark .breadcrumb a:hover{color:#1dd2af}html.theme--documenter-dark .breadcrumb li{align-items:center;display:flex}html.theme--documenter-dark .breadcrumb li:first-child a{padding-left:0}html.theme--documenter-dark .breadcrumb li.is-active a{color:#f2f2f2;cursor:default;pointer-events:none}html.theme--documenter-dark .breadcrumb li+li::before{color:#8c9b9d;content:"\0002f"}html.theme--documenter-dark .breadcrumb ul,html.theme--documenter-dark .breadcrumb ol{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .breadcrumb .icon:first-child{margin-right:0.5em}html.theme--documenter-dark .breadcrumb .icon:last-child{margin-left:0.5em}html.theme--documenter-dark .breadcrumb.is-centered ol,html.theme--documenter-dark .breadcrumb.is-centered ul{justify-content:center}html.theme--documenter-dark .breadcrumb.is-right ol,html.theme--documenter-dark .breadcrumb.is-right ul{justify-content:flex-end}html.theme--documenter-dark .breadcrumb.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.breadcrumb{font-size:.85em}html.theme--documenter-dark .breadcrumb.is-medium{font-size:1.25rem}html.theme--documenter-dark .breadcrumb.is-large{font-size:1.5rem}html.theme--documenter-dark .breadcrumb.has-arrow-separator li+li::before{content:"\02192"}html.theme--documenter-dark .breadcrumb.has-bullet-separator li+li::before{content:"\02022"}html.theme--documenter-dark .breadcrumb.has-dot-separator li+li::before{content:"\000b7"}html.theme--documenter-dark .breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}html.theme--documenter-dark .card{background-color:#fff;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#fff;max-width:100%;position:relative}html.theme--documenter-dark .card-header{background-color:rgba(0,0,0,0);align-items:stretch;box-shadow:0 1px 2px rgba(10,10,10,0.1);display:flex}html.theme--documenter-dark .card-header-title{align-items:center;color:#f2f2f2;display:flex;flex-grow:1;font-weight:700;padding:.75rem}html.theme--documenter-dark .card-header-title.is-centered{justify-content:center}html.theme--documenter-dark .card-header-icon{align-items:center;cursor:pointer;display:flex;justify-content:center;padding:.75rem}html.theme--documenter-dark .card-image{display:block;position:relative}html.theme--documenter-dark .card-content{background-color:rgba(0,0,0,0);padding:1.5rem}html.theme--documenter-dark .card-footer{background-color:rgba(0,0,0,0);border-top:1px solid #5e6d6f;align-items:stretch;display:flex}html.theme--documenter-dark .card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}html.theme--documenter-dark .card-footer-item:not(:last-child){border-right:1px solid #5e6d6f}html.theme--documenter-dark .card .media:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .dropdown{display:inline-flex;position:relative;vertical-align:top}html.theme--documenter-dark .dropdown.is-active .dropdown-menu,html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu{display:block}html.theme--documenter-dark .dropdown.is-right .dropdown-menu{left:auto;right:0}html.theme--documenter-dark .dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}html.theme--documenter-dark .dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}html.theme--documenter-dark .dropdown-content{background-color:#282f2f;border-radius:.4em;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);padding-bottom:.5rem;padding-top:.5rem}html.theme--documenter-dark .dropdown-item{color:#fff;display:block;font-size:0.875rem;line-height:1.5;padding:0.375rem 1rem;position:relative}html.theme--documenter-dark a.dropdown-item,html.theme--documenter-dark button.dropdown-item{padding-right:3rem;text-align:left;white-space:nowrap;width:100%}html.theme--documenter-dark a.dropdown-item:hover,html.theme--documenter-dark button.dropdown-item:hover{background-color:#282f2f;color:#0a0a0a}html.theme--documenter-dark a.dropdown-item.is-active,html.theme--documenter-dark button.dropdown-item.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .dropdown-divider{background-color:#5e6d6f;border:none;display:block;height:1px;margin:0.5rem 0}html.theme--documenter-dark .level{align-items:center;justify-content:space-between}html.theme--documenter-dark .level code{border-radius:.4em}html.theme--documenter-dark .level img{display:inline-block;vertical-align:top}html.theme--documenter-dark .level.is-mobile{display:flex}html.theme--documenter-dark .level.is-mobile .level-left,html.theme--documenter-dark .level.is-mobile .level-right{display:flex}html.theme--documenter-dark .level.is-mobile .level-left+.level-right{margin-top:0}html.theme--documenter-dark .level.is-mobile .level-item:not(:last-child){margin-bottom:0;margin-right:.75rem}html.theme--documenter-dark .level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level{display:flex}html.theme--documenter-dark .level>.level-item:not(.is-narrow){flex-grow:1}}html.theme--documenter-dark .level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}html.theme--documenter-dark .level-item .title,html.theme--documenter-dark .level-item .subtitle{margin-bottom:0}@media screen and (max-width: 768px){html.theme--documenter-dark .level-item:not(:last-child){margin-bottom:.75rem}}html.theme--documenter-dark .level-left,html.theme--documenter-dark .level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .level-left .level-item.is-flexible,html.theme--documenter-dark .level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-left .level-item:not(:last-child),html.theme--documenter-dark .level-right .level-item:not(:last-child){margin-right:.75rem}}html.theme--documenter-dark .level-left{align-items:center;justify-content:flex-start}@media screen and (max-width: 768px){html.theme--documenter-dark .level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-left{display:flex}}html.theme--documenter-dark .level-right{align-items:center;justify-content:flex-end}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-right{display:flex}}html.theme--documenter-dark .list{background-color:#fff;border-radius:.4em;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1)}html.theme--documenter-dark .list-item{display:block;padding:0.5em 1em}html.theme--documenter-dark .list-item:not(a){color:#fff}html.theme--documenter-dark .list-item:first-child{border-top-left-radius:.4em;border-top-right-radius:.4em}html.theme--documenter-dark .list-item:last-child{border-bottom-left-radius:.4em;border-bottom-right-radius:.4em}html.theme--documenter-dark .list-item:not(:last-child){border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .list-item.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark a.list-item{background-color:#282f2f;cursor:pointer}html.theme--documenter-dark .media{align-items:flex-start;display:flex;text-align:left}html.theme--documenter-dark .media .content:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .media .media{border-top:1px solid rgba(94,109,111,0.5);display:flex;padding-top:0.75rem}html.theme--documenter-dark .media .media .content:not(:last-child),html.theme--documenter-dark .media .media .control:not(:last-child){margin-bottom:0.5rem}html.theme--documenter-dark .media .media .media{padding-top:0.5rem}html.theme--documenter-dark .media .media .media+.media{margin-top:0.5rem}html.theme--documenter-dark .media+.media{border-top:1px solid rgba(94,109,111,0.5);margin-top:1rem;padding-top:1rem}html.theme--documenter-dark .media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}html.theme--documenter-dark .media-left,html.theme--documenter-dark .media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .media-left{margin-right:1rem}html.theme--documenter-dark .media-right{margin-left:1rem}html.theme--documenter-dark .media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:left}@media screen and (max-width: 768px){html.theme--documenter-dark .media-content{overflow-x:auto}}html.theme--documenter-dark .menu{font-size:15px}html.theme--documenter-dark .menu.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.menu{font-size:.85em}html.theme--documenter-dark .menu.is-medium{font-size:1.25rem}html.theme--documenter-dark .menu.is-large{font-size:1.5rem}html.theme--documenter-dark .menu-list{line-height:1.25}html.theme--documenter-dark .menu-list a{border-radius:3px;color:#fff;display:block;padding:0.5em 0.75em}html.theme--documenter-dark .menu-list a:hover{background-color:#282f2f;color:#f2f2f2}html.theme--documenter-dark .menu-list a.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .menu-list li ul{border-left:1px solid #5e6d6f;margin:.75em;padding-left:.75em}html.theme--documenter-dark .menu-label{color:#fff;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}html.theme--documenter-dark .menu-label:not(:first-child){margin-top:1em}html.theme--documenter-dark .menu-label:not(:last-child){margin-bottom:1em}html.theme--documenter-dark .message{background-color:#282f2f;border-radius:.4em;font-size:15px}html.theme--documenter-dark .message strong{color:currentColor}html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}html.theme--documenter-dark .message.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.message{font-size:.85em}html.theme--documenter-dark .message.is-medium{font-size:1.25rem}html.theme--documenter-dark .message.is-large{font-size:1.5rem}html.theme--documenter-dark .message.is-white{background-color:#fff}html.theme--documenter-dark .message.is-white .message-header{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .message.is-white .message-body{border-color:#fff;color:#4d4d4d}html.theme--documenter-dark .message.is-black{background-color:#fafafa}html.theme--documenter-dark .message.is-black .message-header{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .message.is-black .message-body{border-color:#0a0a0a;color:#090909}html.theme--documenter-dark .message.is-light{background-color:#f9fafb}html.theme--documenter-dark .message.is-light .message-header{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .message.is-light .message-body{border-color:#ecf0f1;color:#505050}html.theme--documenter-dark .message.is-dark,html.theme--documenter-dark .content kbd.message{background-color:#f9fafa}html.theme--documenter-dark .message.is-dark .message-header,html.theme--documenter-dark .content kbd.message .message-header{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .message.is-dark .message-body,html.theme--documenter-dark .content kbd.message .message-body{border-color:#282f2f;color:#212526}html.theme--documenter-dark .message.is-primary,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink{background-color:#f8fafc}html.theme--documenter-dark .message.is-primary .message-header,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink .message-header{background-color:#375a7f;color:#fff}html.theme--documenter-dark .message.is-primary .message-body,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink .message-body{border-color:#375a7f;color:#2b4159}html.theme--documenter-dark .message.is-link{background-color:#f6fefc}html.theme--documenter-dark .message.is-link .message-header{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .message.is-link .message-body{border-color:#1abc9c;color:#0b2f28}html.theme--documenter-dark .message.is-info{background-color:#f5fbff}html.theme--documenter-dark .message.is-info .message-header{background-color:#024c7d;color:#fff}html.theme--documenter-dark .message.is-info .message-body{border-color:#024c7d;color:#033659}html.theme--documenter-dark .message.is-success{background-color:#f5fff9}html.theme--documenter-dark .message.is-success .message-header{background-color:#008438;color:#fff}html.theme--documenter-dark .message.is-success .message-body{border-color:#008438;color:#023518}html.theme--documenter-dark .message.is-warning{background-color:#fffcf5}html.theme--documenter-dark .message.is-warning .message-header{background-color:#ad8100;color:#fff}html.theme--documenter-dark .message.is-warning .message-body{border-color:#ad8100;color:#3d2e03}html.theme--documenter-dark .message.is-danger{background-color:#fef6f6}html.theme--documenter-dark .message.is-danger .message-header{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .message.is-danger .message-body{border-color:#9e1b0d;color:#7a170c}html.theme--documenter-dark .message-header{align-items:center;background-color:#fff;border-radius:.4em .4em 0 0;color:rgba(0,0,0,0.7);display:flex;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.75em 1em;position:relative}html.theme--documenter-dark .message-header .delete{flex-grow:0;flex-shrink:0;margin-left:0.75em}html.theme--documenter-dark .message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}html.theme--documenter-dark .message-body{border-color:#5e6d6f;border-radius:.4em;border-style:solid;border-width:0 0 0 4px;color:#fff;padding:1.25em 1.5em}html.theme--documenter-dark .message-body code,html.theme--documenter-dark .message-body pre{background-color:#fff}html.theme--documenter-dark .message-body pre code{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .modal{align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}html.theme--documenter-dark .modal.is-active{display:flex}html.theme--documenter-dark .modal-background{background-color:rgba(10,10,10,0.86)}html.theme--documenter-dark .modal-content,html.theme--documenter-dark .modal-card{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width: 769px),print{html.theme--documenter-dark .modal-content,html.theme--documenter-dark .modal-card{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}html.theme--documenter-dark .modal-close{background:none;height:40px;position:fixed;right:20px;top:20px;width:40px}html.theme--documenter-dark .modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}html.theme--documenter-dark .modal-card-head,html.theme--documenter-dark .modal-card-foot{align-items:center;background-color:#282f2f;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}html.theme--documenter-dark .modal-card-head{border-bottom:1px solid #5e6d6f;border-top-left-radius:8px;border-top-right-radius:8px}html.theme--documenter-dark .modal-card-title{color:#f2f2f2;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}html.theme--documenter-dark .modal-card-foot{border-bottom-left-radius:8px;border-bottom-right-radius:8px;border-top:1px solid #5e6d6f}html.theme--documenter-dark .modal-card-foot .button:not(:last-child){margin-right:0.5em}html.theme--documenter-dark .modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}html.theme--documenter-dark .navbar{background-color:#375a7f;min-height:4rem;position:relative;z-index:30}html.theme--documenter-dark .navbar.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link{color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-burger{color:#0a0a0a}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-white .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link{color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link::after{border-color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}html.theme--documenter-dark .navbar.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-black .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}html.theme--documenter-dark .navbar.is-light{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link{color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after{border-color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-burger{color:#282f2f}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-light .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link{color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after{border-color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#ecf0f1;color:#282f2f}}html.theme--documenter-dark .navbar.is-dark,html.theme--documenter-dark .content kbd.navbar{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link{color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after{border-color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-burger,html.theme--documenter-dark .content kbd.navbar .navbar-burger{color:#ecf0f1}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-dark .navbar-start>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-end>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link{color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after{border-color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active{background-color:#282f2f;color:#ecf0f1}}html.theme--documenter-dark .navbar.is-primary,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-burger,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-primary .navbar-start>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-end>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#375a7f;color:#fff}}html.theme--documenter-dark .navbar.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-link .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#1abc9c;color:#fff}}html.theme--documenter-dark .navbar.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-info .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#024c7d;color:#fff}}html.theme--documenter-dark .navbar.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-success .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#008438;color:#fff}}html.theme--documenter-dark .navbar.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-warning .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ad8100;color:#fff}}html.theme--documenter-dark .navbar.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-danger .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#9e1b0d;color:#fff}}html.theme--documenter-dark .navbar>.container{align-items:stretch;display:flex;min-height:4rem;width:100%}html.theme--documenter-dark .navbar.has-shadow{box-shadow:0 2px 0 0 #282f2f}html.theme--documenter-dark .navbar.is-fixed-bottom,html.theme--documenter-dark .navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #282f2f}html.theme--documenter-dark .navbar.is-fixed-top{top:0}html.theme--documenter-dark html.has-navbar-fixed-top,html.theme--documenter-dark body.has-navbar-fixed-top{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom,html.theme--documenter-dark body.has-navbar-fixed-bottom{padding-bottom:4rem}html.theme--documenter-dark .navbar-brand,html.theme--documenter-dark .navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:4rem}html.theme--documenter-dark .navbar-brand a.navbar-item:focus,html.theme--documenter-dark .navbar-brand a.navbar-item:hover{background-color:transparent}html.theme--documenter-dark .navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}html.theme--documenter-dark .navbar-burger{color:#fff;cursor:pointer;display:block;height:4rem;position:relative;width:4rem;margin-left:auto}html.theme--documenter-dark .navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;transform-origin:center;transition-duration:86ms;transition-property:background-color, opacity, transform;transition-timing-function:ease-out;width:16px}html.theme--documenter-dark .navbar-burger span:nth-child(1){top:calc(50% - 6px)}html.theme--documenter-dark .navbar-burger span:nth-child(2){top:calc(50% - 1px)}html.theme--documenter-dark .navbar-burger span:nth-child(3){top:calc(50% + 4px)}html.theme--documenter-dark .navbar-burger:hover{background-color:rgba(0,0,0,0.05)}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2){opacity:0}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}html.theme--documenter-dark .navbar-menu{display:none}html.theme--documenter-dark .navbar-item,html.theme--documenter-dark .navbar-link{color:#fff;display:block;line-height:1.5;padding:0.5rem 0.75rem;position:relative}html.theme--documenter-dark .navbar-item .icon:only-child,html.theme--documenter-dark .navbar-link .icon:only-child{margin-left:-0.25rem;margin-right:-0.25rem}html.theme--documenter-dark a.navbar-item,html.theme--documenter-dark .navbar-link{cursor:pointer}html.theme--documenter-dark a.navbar-item:focus,html.theme--documenter-dark a.navbar-item:focus-within,html.theme--documenter-dark a.navbar-item:hover,html.theme--documenter-dark a.navbar-item.is-active,html.theme--documenter-dark .navbar-link:focus,html.theme--documenter-dark .navbar-link:focus-within,html.theme--documenter-dark .navbar-link:hover,html.theme--documenter-dark .navbar-link.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}html.theme--documenter-dark .navbar-item{display:block;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .navbar-item img{max-height:1.75rem}html.theme--documenter-dark .navbar-item.has-dropdown{padding:0}html.theme--documenter-dark .navbar-item.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .navbar-item.is-tab{border-bottom:1px solid transparent;min-height:4rem;padding-bottom:calc(0.5rem - 1px)}html.theme--documenter-dark .navbar-item.is-tab:focus,html.theme--documenter-dark .navbar-item.is-tab:hover{background-color:rgba(0,0,0,0);border-bottom-color:#1abc9c}html.theme--documenter-dark .navbar-item.is-tab.is-active{background-color:rgba(0,0,0,0);border-bottom-color:#1abc9c;border-bottom-style:solid;border-bottom-width:3px;color:#1abc9c;padding-bottom:calc(0.5rem - 3px)}html.theme--documenter-dark .navbar-content{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .navbar-link:not(.is-arrowless){padding-right:2.5em}html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after{border-color:#fff;margin-top:-0.375em;right:1.125em}html.theme--documenter-dark .navbar-dropdown{font-size:0.875rem;padding-bottom:0.5rem;padding-top:0.5rem}html.theme--documenter-dark .navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}html.theme--documenter-dark .navbar-divider{background-color:rgba(0,0,0,0.2);border:none;display:none;height:2px;margin:0.5rem 0}@media screen and (max-width: 1055px){html.theme--documenter-dark .navbar>.container{display:block}html.theme--documenter-dark .navbar-brand .navbar-item,html.theme--documenter-dark .navbar-tabs .navbar-item{align-items:center;display:flex}html.theme--documenter-dark .navbar-link::after{display:none}html.theme--documenter-dark .navbar-menu{background-color:#375a7f;box-shadow:0 8px 16px rgba(10,10,10,0.1);padding:0.5rem 0}html.theme--documenter-dark .navbar-menu.is-active{display:block}html.theme--documenter-dark .navbar.is-fixed-bottom-touch,html.theme--documenter-dark .navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom-touch{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}html.theme--documenter-dark .navbar.is-fixed-top-touch{top:0}html.theme--documenter-dark .navbar.is-fixed-top .navbar-menu,html.theme--documenter-dark .navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 4rem);overflow:auto}html.theme--documenter-dark html.has-navbar-fixed-top-touch,html.theme--documenter-dark body.has-navbar-fixed-top-touch{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom-touch,html.theme--documenter-dark body.has-navbar-fixed-bottom-touch{padding-bottom:4rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar,html.theme--documenter-dark .navbar-menu,html.theme--documenter-dark .navbar-start,html.theme--documenter-dark .navbar-end{align-items:stretch;display:flex}html.theme--documenter-dark .navbar{min-height:4rem}html.theme--documenter-dark .navbar.is-spaced{padding:1rem 2rem}html.theme--documenter-dark .navbar.is-spaced .navbar-start,html.theme--documenter-dark .navbar.is-spaced .navbar-end{align-items:center}html.theme--documenter-dark .navbar.is-spaced a.navbar-item,html.theme--documenter-dark .navbar.is-spaced .navbar-link{border-radius:.4em}html.theme--documenter-dark .navbar.is-transparent a.navbar-item:focus,html.theme--documenter-dark .navbar.is-transparent a.navbar-item:hover,html.theme--documenter-dark .navbar.is-transparent a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-transparent .navbar-link:focus,html.theme--documenter-dark .navbar.is-transparent .navbar-link:hover,html.theme--documenter-dark .navbar.is-transparent .navbar-link.is-active{background-color:transparent !important}html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent !important}html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:focus,html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:rgba(0,0,0,0);color:#dbdee0}html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}html.theme--documenter-dark .navbar-burger{display:none}html.theme--documenter-dark .navbar-item,html.theme--documenter-dark .navbar-link{align-items:center;display:flex}html.theme--documenter-dark .navbar-item{display:flex}html.theme--documenter-dark .navbar-item.has-dropdown{align-items:stretch}html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-link::after{transform:rotate(135deg) translate(0.25em, -0.25em)}html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-dropdown{border-bottom:1px solid rgba(0,0,0,0.2);border-radius:8px 8px 0 0;border-top:none;bottom:100%;box-shadow:0 -8px 8px rgba(10,10,10,0.1);top:auto}html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed{opacity:1;pointer-events:auto;transform:translateY(0)}html.theme--documenter-dark .navbar-menu{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .navbar-start{justify-content:flex-start;margin-right:auto}html.theme--documenter-dark .navbar-end{justify-content:flex-end;margin-left:auto}html.theme--documenter-dark .navbar-dropdown{background-color:#375a7f;border-bottom-left-radius:8px;border-bottom-right-radius:8px;border-top:1px solid rgba(0,0,0,0.2);box-shadow:0 8px 8px rgba(10,10,10,0.1);display:none;font-size:0.875rem;left:0;min-width:100%;position:absolute;top:100%;z-index:20}html.theme--documenter-dark .navbar-dropdown .navbar-item{padding:0.375rem 1rem;white-space:nowrap}html.theme--documenter-dark .navbar-dropdown a.navbar-item{padding-right:3rem}html.theme--documenter-dark .navbar-dropdown a.navbar-item:focus,html.theme--documenter-dark .navbar-dropdown a.navbar-item:hover{background-color:rgba(0,0,0,0);color:#dbdee0}html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}.navbar.is-spaced html.theme--documenter-dark .navbar-dropdown,html.theme--documenter-dark .navbar-dropdown.is-boxed{border-radius:8px;border-top:none;box-shadow:0 8px 8px rgba(10,10,10,0.1), 0 0 0 1px rgba(10,10,10,0.1);display:block;opacity:0;pointer-events:none;top:calc(100% + (-4px));transform:translateY(-5px);transition-duration:86ms;transition-property:opacity, transform}html.theme--documenter-dark .navbar-dropdown.is-right{left:auto;right:0}html.theme--documenter-dark .navbar-divider{display:block}html.theme--documenter-dark .navbar>.container .navbar-brand,html.theme--documenter-dark .container>.navbar .navbar-brand{margin-left:-.75rem}html.theme--documenter-dark .navbar>.container .navbar-menu,html.theme--documenter-dark .container>.navbar .navbar-menu{margin-right:-.75rem}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop,html.theme--documenter-dark .navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}html.theme--documenter-dark .navbar.is-fixed-top-desktop{top:0}html.theme--documenter-dark html.has-navbar-fixed-top-desktop,html.theme--documenter-dark body.has-navbar-fixed-top-desktop{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom-desktop,html.theme--documenter-dark body.has-navbar-fixed-bottom-desktop{padding-bottom:4rem}html.theme--documenter-dark html.has-spaced-navbar-fixed-top,html.theme--documenter-dark body.has-spaced-navbar-fixed-top{padding-top:6rem}html.theme--documenter-dark html.has-spaced-navbar-fixed-bottom,html.theme--documenter-dark body.has-spaced-navbar-fixed-bottom{padding-bottom:6rem}html.theme--documenter-dark a.navbar-item.is-active,html.theme--documenter-dark .navbar-link.is-active{color:#1abc9c}html.theme--documenter-dark a.navbar-item.is-active:not(:focus):not(:hover),html.theme--documenter-dark .navbar-link.is-active:not(:focus):not(:hover){background-color:rgba(0,0,0,0)}html.theme--documenter-dark .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar-item.has-dropdown.is-active .navbar-link{background-color:rgba(0,0,0,0)}}html.theme--documenter-dark .hero.is-fullheight-with-navbar{min-height:calc(100vh - 4rem)}html.theme--documenter-dark .pagination{font-size:15px;margin:-.25rem}html.theme--documenter-dark .pagination.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination{font-size:.85em}html.theme--documenter-dark .pagination.is-medium{font-size:1.25rem}html.theme--documenter-dark .pagination.is-large{font-size:1.5rem}html.theme--documenter-dark .pagination.is-rounded .pagination-previous,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-previous,html.theme--documenter-dark .pagination.is-rounded .pagination-next,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-next{padding-left:1em;padding-right:1em;border-radius:290486px}html.theme--documenter-dark .pagination.is-rounded .pagination-link,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-link{border-radius:290486px}html.theme--documenter-dark .pagination,html.theme--documenter-dark .pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link{border-color:#5e6d6f;color:#1abc9c;min-width:2.25em}html.theme--documenter-dark .pagination-previous:hover,html.theme--documenter-dark .pagination-next:hover,html.theme--documenter-dark .pagination-link:hover{border-color:#8c9b9d;color:#1dd2af}html.theme--documenter-dark .pagination-previous:focus,html.theme--documenter-dark .pagination-next:focus,html.theme--documenter-dark .pagination-link:focus{border-color:#8c9b9d}html.theme--documenter-dark .pagination-previous:active,html.theme--documenter-dark .pagination-next:active,html.theme--documenter-dark .pagination-link:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2)}html.theme--documenter-dark .pagination-previous[disabled],html.theme--documenter-dark .pagination-next[disabled],html.theme--documenter-dark .pagination-link[disabled]{background-color:#dbdee0;border-color:#dbdee0;box-shadow:none;color:#5e6d6f;opacity:0.5}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next{padding-left:0.75em;padding-right:0.75em;white-space:nowrap}html.theme--documenter-dark .pagination-link.is-current{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .pagination-ellipsis{color:#8c9b9d;pointer-events:none}html.theme--documenter-dark .pagination-list{flex-wrap:wrap}@media screen and (max-width: 768px){html.theme--documenter-dark .pagination{flex-wrap:wrap}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}html.theme--documenter-dark .pagination-previous{order:2}html.theme--documenter-dark .pagination-next{order:3}html.theme--documenter-dark .pagination{justify-content:space-between}html.theme--documenter-dark .pagination.is-centered .pagination-previous{order:1}html.theme--documenter-dark .pagination.is-centered .pagination-list{justify-content:center;order:2}html.theme--documenter-dark .pagination.is-centered .pagination-next{order:3}html.theme--documenter-dark .pagination.is-right .pagination-previous{order:1}html.theme--documenter-dark .pagination.is-right .pagination-next{order:2}html.theme--documenter-dark .pagination.is-right .pagination-list{justify-content:flex-end;order:3}}html.theme--documenter-dark .panel{font-size:15px}html.theme--documenter-dark .panel:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .panel-heading,html.theme--documenter-dark .panel-tabs,html.theme--documenter-dark .panel-block{border-bottom:1px solid #5e6d6f;border-left:1px solid #5e6d6f;border-right:1px solid #5e6d6f}html.theme--documenter-dark .panel-heading:first-child,html.theme--documenter-dark .panel-tabs:first-child,html.theme--documenter-dark .panel-block:first-child{border-top:1px solid #5e6d6f}html.theme--documenter-dark .panel-heading{background-color:#282f2f;border-radius:.4em .4em 0 0;color:#f2f2f2;font-size:1.25em;font-weight:300;line-height:1.25;padding:0.5em 0.75em}html.theme--documenter-dark .panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}html.theme--documenter-dark .panel-tabs a{border-bottom:1px solid #5e6d6f;margin-bottom:-1px;padding:0.5em}html.theme--documenter-dark .panel-tabs a.is-active{border-bottom-color:#343c3d;color:#17a689}html.theme--documenter-dark .panel-list a{color:#fff}html.theme--documenter-dark .panel-list a:hover{color:#1abc9c}html.theme--documenter-dark .panel-block{align-items:center;color:#f2f2f2;display:flex;justify-content:flex-start;padding:0.5em 0.75em}html.theme--documenter-dark .panel-block input[type="checkbox"]{margin-right:0.75em}html.theme--documenter-dark .panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}html.theme--documenter-dark .panel-block.is-wrapped{flex-wrap:wrap}html.theme--documenter-dark .panel-block.is-active{border-left-color:#1abc9c;color:#17a689}html.theme--documenter-dark .panel-block.is-active .panel-icon{color:#1abc9c}html.theme--documenter-dark a.panel-block,html.theme--documenter-dark label.panel-block{cursor:pointer}html.theme--documenter-dark a.panel-block:hover,html.theme--documenter-dark label.panel-block:hover{background-color:#282f2f}html.theme--documenter-dark .panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#fff;margin-right:0.75em}html.theme--documenter-dark .panel-icon .fa{font-size:inherit;line-height:inherit}html.theme--documenter-dark .tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:15px;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}html.theme--documenter-dark .tabs a{align-items:center;border-bottom-color:#5e6d6f;border-bottom-style:solid;border-bottom-width:1px;color:#fff;display:flex;justify-content:center;margin-bottom:-1px;padding:0.5em 1em;vertical-align:top}html.theme--documenter-dark .tabs a:hover{border-bottom-color:#f2f2f2;color:#f2f2f2}html.theme--documenter-dark .tabs li{display:block}html.theme--documenter-dark .tabs li.is-active a{border-bottom-color:#1abc9c;color:#1abc9c}html.theme--documenter-dark .tabs ul{align-items:center;border-bottom-color:#5e6d6f;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}html.theme--documenter-dark .tabs ul.is-left{padding-right:0.75em}html.theme--documenter-dark .tabs ul.is-center{flex:none;justify-content:center;padding-left:0.75em;padding-right:0.75em}html.theme--documenter-dark .tabs ul.is-right{justify-content:flex-end;padding-left:0.75em}html.theme--documenter-dark .tabs .icon:first-child{margin-right:0.5em}html.theme--documenter-dark .tabs .icon:last-child{margin-left:0.5em}html.theme--documenter-dark .tabs.is-centered ul{justify-content:center}html.theme--documenter-dark .tabs.is-right ul{justify-content:flex-end}html.theme--documenter-dark .tabs.is-boxed a{border:1px solid transparent;border-radius:.4em .4em 0 0}html.theme--documenter-dark .tabs.is-boxed a:hover{background-color:#282f2f;border-bottom-color:#5e6d6f}html.theme--documenter-dark .tabs.is-boxed li.is-active a{background-color:#fff;border-color:#5e6d6f;border-bottom-color:rgba(0,0,0,0) !important}html.theme--documenter-dark .tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .tabs.is-toggle a{border-color:#5e6d6f;border-style:solid;border-width:1px;margin-bottom:0;position:relative}html.theme--documenter-dark .tabs.is-toggle a:hover{background-color:#282f2f;border-color:#8c9b9d;z-index:2}html.theme--documenter-dark .tabs.is-toggle li+li{margin-left:-1px}html.theme--documenter-dark .tabs.is-toggle li:first-child a{border-radius:.4em 0 0 .4em}html.theme--documenter-dark .tabs.is-toggle li:last-child a{border-radius:0 .4em .4em 0}html.theme--documenter-dark .tabs.is-toggle li.is-active a{background-color:#1abc9c;border-color:#1abc9c;color:#fff;z-index:1}html.theme--documenter-dark .tabs.is-toggle ul{border-bottom:none}html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a{border-bottom-left-radius:290486px;border-top-left-radius:290486px;padding-left:1.25em}html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:290486px;border-top-right-radius:290486px;padding-right:1.25em}html.theme--documenter-dark .tabs.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.tabs{font-size:.85em}html.theme--documenter-dark .tabs.is-medium{font-size:1.25rem}html.theme--documenter-dark .tabs.is-large{font-size:1.5rem}html.theme--documenter-dark .column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>html.theme--documenter-dark .column.is-narrow{flex:none}.columns.is-mobile>html.theme--documenter-dark .column.is-full{flex:none;width:100%}.columns.is-mobile>html.theme--documenter-dark .column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>html.theme--documenter-dark .column.is-half{flex:none;width:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>html.theme--documenter-dark .column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>html.theme--documenter-dark .column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>html.theme--documenter-dark .column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-half{margin-left:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>html.theme--documenter-dark .column.is-0{flex:none;width:0%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-0{margin-left:0%}.columns.is-mobile>html.theme--documenter-dark .column.is-1{flex:none;width:8.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-1{margin-left:8.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-2{flex:none;width:16.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-2{margin-left:16.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-3{flex:none;width:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-3{margin-left:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-4{flex:none;width:33.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-4{margin-left:33.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-5{flex:none;width:41.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-5{margin-left:41.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-6{flex:none;width:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-6{margin-left:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-7{flex:none;width:58.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-7{margin-left:58.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-8{flex:none;width:66.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-8{margin-left:66.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-9{flex:none;width:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-9{margin-left:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-10{flex:none;width:83.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-10{margin-left:83.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-11{flex:none;width:91.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-11{margin-left:91.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-12{flex:none;width:100%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-12{margin-left:100%}@media screen and (max-width: 768px){html.theme--documenter-dark .column.is-narrow-mobile{flex:none}html.theme--documenter-dark .column.is-full-mobile{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-mobile{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-mobile{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-mobile{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-mobile{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-mobile{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-mobile{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-mobile{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-mobile{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-mobile{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-mobile{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-mobile{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-mobile{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-mobile{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-mobile{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-mobile{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-mobile{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-mobile{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-mobile{margin-left:80%}html.theme--documenter-dark .column.is-0-mobile{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-mobile{margin-left:0%}html.theme--documenter-dark .column.is-1-mobile{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-mobile{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-mobile{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-mobile{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-mobile{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-mobile{margin-left:25%}html.theme--documenter-dark .column.is-4-mobile{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-mobile{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-mobile{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-mobile{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-mobile{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-mobile{margin-left:50%}html.theme--documenter-dark .column.is-7-mobile{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-mobile{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-mobile{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-mobile{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-mobile{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-mobile{margin-left:75%}html.theme--documenter-dark .column.is-10-mobile{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-mobile{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-mobile{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-mobile{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-mobile{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .column.is-narrow,html.theme--documenter-dark .column.is-narrow-tablet{flex:none}html.theme--documenter-dark .column.is-full,html.theme--documenter-dark .column.is-full-tablet{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters,html.theme--documenter-dark .column.is-three-quarters-tablet{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds,html.theme--documenter-dark .column.is-two-thirds-tablet{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half,html.theme--documenter-dark .column.is-half-tablet{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third,html.theme--documenter-dark .column.is-one-third-tablet{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter,html.theme--documenter-dark .column.is-one-quarter-tablet{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth,html.theme--documenter-dark .column.is-one-fifth-tablet{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths,html.theme--documenter-dark .column.is-two-fifths-tablet{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths,html.theme--documenter-dark .column.is-three-fifths-tablet{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths,html.theme--documenter-dark .column.is-four-fifths-tablet{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters,html.theme--documenter-dark .column.is-offset-three-quarters-tablet{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds,html.theme--documenter-dark .column.is-offset-two-thirds-tablet{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half,html.theme--documenter-dark .column.is-offset-half-tablet{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third,html.theme--documenter-dark .column.is-offset-one-third-tablet{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter,html.theme--documenter-dark .column.is-offset-one-quarter-tablet{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth,html.theme--documenter-dark .column.is-offset-one-fifth-tablet{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths,html.theme--documenter-dark .column.is-offset-two-fifths-tablet{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths,html.theme--documenter-dark .column.is-offset-three-fifths-tablet{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths,html.theme--documenter-dark .column.is-offset-four-fifths-tablet{margin-left:80%}html.theme--documenter-dark .column.is-0,html.theme--documenter-dark .column.is-0-tablet{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0,html.theme--documenter-dark .column.is-offset-0-tablet{margin-left:0%}html.theme--documenter-dark .column.is-1,html.theme--documenter-dark .column.is-1-tablet{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1,html.theme--documenter-dark .column.is-offset-1-tablet{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2,html.theme--documenter-dark .column.is-2-tablet{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2,html.theme--documenter-dark .column.is-offset-2-tablet{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3,html.theme--documenter-dark .column.is-3-tablet{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3,html.theme--documenter-dark .column.is-offset-3-tablet{margin-left:25%}html.theme--documenter-dark .column.is-4,html.theme--documenter-dark .column.is-4-tablet{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4,html.theme--documenter-dark .column.is-offset-4-tablet{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5,html.theme--documenter-dark .column.is-5-tablet{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5,html.theme--documenter-dark .column.is-offset-5-tablet{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6,html.theme--documenter-dark .column.is-6-tablet{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6,html.theme--documenter-dark .column.is-offset-6-tablet{margin-left:50%}html.theme--documenter-dark .column.is-7,html.theme--documenter-dark .column.is-7-tablet{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7,html.theme--documenter-dark .column.is-offset-7-tablet{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8,html.theme--documenter-dark .column.is-8-tablet{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8,html.theme--documenter-dark .column.is-offset-8-tablet{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9,html.theme--documenter-dark .column.is-9-tablet{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9,html.theme--documenter-dark .column.is-offset-9-tablet{margin-left:75%}html.theme--documenter-dark .column.is-10,html.theme--documenter-dark .column.is-10-tablet{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10,html.theme--documenter-dark .column.is-offset-10-tablet{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11,html.theme--documenter-dark .column.is-11-tablet{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11,html.theme--documenter-dark .column.is-offset-11-tablet{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12,html.theme--documenter-dark .column.is-12-tablet{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12,html.theme--documenter-dark .column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width: 1055px){html.theme--documenter-dark .column.is-narrow-touch{flex:none}html.theme--documenter-dark .column.is-full-touch{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-touch{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-touch{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-touch{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-touch{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-touch{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-touch{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-touch{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-touch{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-touch{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-touch{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-touch{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-touch{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-touch{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-touch{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-touch{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-touch{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-touch{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-touch{margin-left:80%}html.theme--documenter-dark .column.is-0-touch{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-touch{margin-left:0%}html.theme--documenter-dark .column.is-1-touch{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-touch{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-touch{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-touch{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-touch{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-touch{margin-left:25%}html.theme--documenter-dark .column.is-4-touch{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-touch{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-touch{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-touch{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-touch{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-touch{margin-left:50%}html.theme--documenter-dark .column.is-7-touch{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-touch{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-touch{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-touch{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-touch{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-touch{margin-left:75%}html.theme--documenter-dark .column.is-10-touch{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-touch{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-touch{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-touch{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-touch{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width: 1056px){html.theme--documenter-dark .column.is-narrow-desktop{flex:none}html.theme--documenter-dark .column.is-full-desktop{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-desktop{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-desktop{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-desktop{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-desktop{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-desktop{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-desktop{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-desktop{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-desktop{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-desktop{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-desktop{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-desktop{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-desktop{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-desktop{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-desktop{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-desktop{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-desktop{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-desktop{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-desktop{margin-left:80%}html.theme--documenter-dark .column.is-0-desktop{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-desktop{margin-left:0%}html.theme--documenter-dark .column.is-1-desktop{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-desktop{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-desktop{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-desktop{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-desktop{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-desktop{margin-left:25%}html.theme--documenter-dark .column.is-4-desktop{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-desktop{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-desktop{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-desktop{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-desktop{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-desktop{margin-left:50%}html.theme--documenter-dark .column.is-7-desktop{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-desktop{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-desktop{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-desktop{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-desktop{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-desktop{margin-left:75%}html.theme--documenter-dark .column.is-10-desktop{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-desktop{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-desktop{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-desktop{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-desktop{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width: 1216px){html.theme--documenter-dark .column.is-narrow-widescreen{flex:none}html.theme--documenter-dark .column.is-full-widescreen{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-widescreen{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-widescreen{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-widescreen{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-widescreen{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-widescreen{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-widescreen{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-widescreen{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-widescreen{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-widescreen{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-widescreen{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-widescreen{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-widescreen{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-widescreen{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-widescreen{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-widescreen{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-widescreen{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-widescreen{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-widescreen{margin-left:80%}html.theme--documenter-dark .column.is-0-widescreen{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-widescreen{margin-left:0%}html.theme--documenter-dark .column.is-1-widescreen{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-widescreen{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-widescreen{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-widescreen{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-widescreen{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-widescreen{margin-left:25%}html.theme--documenter-dark .column.is-4-widescreen{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-widescreen{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-widescreen{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-widescreen{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-widescreen{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-widescreen{margin-left:50%}html.theme--documenter-dark .column.is-7-widescreen{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-widescreen{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-widescreen{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-widescreen{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-widescreen{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-widescreen{margin-left:75%}html.theme--documenter-dark .column.is-10-widescreen{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-widescreen{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-widescreen{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-widescreen{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-widescreen{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width: 1408px){html.theme--documenter-dark .column.is-narrow-fullhd{flex:none}html.theme--documenter-dark .column.is-full-fullhd{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-fullhd{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-fullhd{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-fullhd{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-fullhd{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-fullhd{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-fullhd{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-fullhd{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-fullhd{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-fullhd{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-fullhd{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-fullhd{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-fullhd{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-fullhd{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-fullhd{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-fullhd{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-fullhd{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-fullhd{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-fullhd{margin-left:80%}html.theme--documenter-dark .column.is-0-fullhd{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-fullhd{margin-left:0%}html.theme--documenter-dark .column.is-1-fullhd{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-fullhd{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-fullhd{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-fullhd{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-fullhd{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-fullhd{margin-left:25%}html.theme--documenter-dark .column.is-4-fullhd{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-fullhd{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-fullhd{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-fullhd{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-fullhd{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-fullhd{margin-left:50%}html.theme--documenter-dark .column.is-7-fullhd{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-fullhd{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-fullhd{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-fullhd{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-fullhd{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-fullhd{margin-left:75%}html.theme--documenter-dark .column.is-10-fullhd{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-fullhd{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-fullhd{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-fullhd{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-fullhd{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-fullhd{margin-left:100%}}html.theme--documenter-dark .columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}html.theme--documenter-dark .columns:last-child{margin-bottom:-.75rem}html.theme--documenter-dark .columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}html.theme--documenter-dark .columns.is-centered{justify-content:center}html.theme--documenter-dark .columns.is-gapless{margin-left:0;margin-right:0;margin-top:0}html.theme--documenter-dark .columns.is-gapless>.column{margin:0;padding:0 !important}html.theme--documenter-dark .columns.is-gapless:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .columns.is-gapless:last-child{margin-bottom:0}html.theme--documenter-dark .columns.is-mobile{display:flex}html.theme--documenter-dark .columns.is-multiline{flex-wrap:wrap}html.theme--documenter-dark .columns.is-vcentered{align-items:center}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns:not(.is-desktop){display:flex}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-desktop{display:flex}}html.theme--documenter-dark .columns.is-variable{--columnGap: 0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}html.theme--documenter-dark .columns.is-variable .column{padding-left:var(--columnGap);padding-right:var(--columnGap)}html.theme--documenter-dark .columns.is-variable.is-0{--columnGap: 0rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-0-mobile{--columnGap: 0rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-0-tablet{--columnGap: 0rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-0-tablet-only{--columnGap: 0rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-0-touch{--columnGap: 0rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-0-desktop{--columnGap: 0rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-0-desktop-only{--columnGap: 0rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-0-widescreen{--columnGap: 0rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-0-widescreen-only{--columnGap: 0rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-0-fullhd{--columnGap: 0rem}}html.theme--documenter-dark .columns.is-variable.is-1{--columnGap: .25rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-1-mobile{--columnGap: .25rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-1-tablet{--columnGap: .25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-1-tablet-only{--columnGap: .25rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-1-touch{--columnGap: .25rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-1-desktop{--columnGap: .25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-1-desktop-only{--columnGap: .25rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-1-widescreen{--columnGap: .25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only{--columnGap: .25rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-1-fullhd{--columnGap: .25rem}}html.theme--documenter-dark .columns.is-variable.is-2{--columnGap: .5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-2-mobile{--columnGap: .5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-2-tablet{--columnGap: .5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-2-tablet-only{--columnGap: .5rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-2-touch{--columnGap: .5rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-2-desktop{--columnGap: .5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-2-desktop-only{--columnGap: .5rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-2-widescreen{--columnGap: .5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only{--columnGap: .5rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-2-fullhd{--columnGap: .5rem}}html.theme--documenter-dark .columns.is-variable.is-3{--columnGap: .75rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-3-mobile{--columnGap: .75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-3-tablet{--columnGap: .75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-3-tablet-only{--columnGap: .75rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-3-touch{--columnGap: .75rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-3-desktop{--columnGap: .75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-3-desktop-only{--columnGap: .75rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-3-widescreen{--columnGap: .75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only{--columnGap: .75rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-3-fullhd{--columnGap: .75rem}}html.theme--documenter-dark .columns.is-variable.is-4{--columnGap: 1rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-4-mobile{--columnGap: 1rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-4-tablet{--columnGap: 1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-4-tablet-only{--columnGap: 1rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-4-touch{--columnGap: 1rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-4-desktop{--columnGap: 1rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-4-desktop-only{--columnGap: 1rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-4-widescreen{--columnGap: 1rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-4-widescreen-only{--columnGap: 1rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-4-fullhd{--columnGap: 1rem}}html.theme--documenter-dark .columns.is-variable.is-5{--columnGap: 1.25rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-5-mobile{--columnGap: 1.25rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-5-tablet{--columnGap: 1.25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-5-tablet-only{--columnGap: 1.25rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-5-touch{--columnGap: 1.25rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-5-desktop{--columnGap: 1.25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-5-desktop-only{--columnGap: 1.25rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-5-widescreen{--columnGap: 1.25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-5-widescreen-only{--columnGap: 1.25rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-5-fullhd{--columnGap: 1.25rem}}html.theme--documenter-dark .columns.is-variable.is-6{--columnGap: 1.5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-6-mobile{--columnGap: 1.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-6-tablet{--columnGap: 1.5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-6-tablet-only{--columnGap: 1.5rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-6-touch{--columnGap: 1.5rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-6-desktop{--columnGap: 1.5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-6-desktop-only{--columnGap: 1.5rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-6-widescreen{--columnGap: 1.5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-6-widescreen-only{--columnGap: 1.5rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-6-fullhd{--columnGap: 1.5rem}}html.theme--documenter-dark .columns.is-variable.is-7{--columnGap: 1.75rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-7-mobile{--columnGap: 1.75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-7-tablet{--columnGap: 1.75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-7-tablet-only{--columnGap: 1.75rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-7-touch{--columnGap: 1.75rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-7-desktop{--columnGap: 1.75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-7-desktop-only{--columnGap: 1.75rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-7-widescreen{--columnGap: 1.75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-7-widescreen-only{--columnGap: 1.75rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-7-fullhd{--columnGap: 1.75rem}}html.theme--documenter-dark .columns.is-variable.is-8{--columnGap: 2rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-8-mobile{--columnGap: 2rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-8-tablet{--columnGap: 2rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-8-tablet-only{--columnGap: 2rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-8-touch{--columnGap: 2rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-8-desktop{--columnGap: 2rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-8-desktop-only{--columnGap: 2rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-8-widescreen{--columnGap: 2rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-8-widescreen-only{--columnGap: 2rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-8-fullhd{--columnGap: 2rem}}html.theme--documenter-dark .tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:min-content}html.theme--documenter-dark .tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}html.theme--documenter-dark .tile.is-ancestor:last-child{margin-bottom:-.75rem}html.theme--documenter-dark .tile.is-ancestor:not(:last-child){margin-bottom:.75rem}html.theme--documenter-dark .tile.is-child{margin:0 !important}html.theme--documenter-dark .tile.is-parent{padding:.75rem}html.theme--documenter-dark .tile.is-vertical{flex-direction:column}html.theme--documenter-dark .tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem !important}@media screen and (min-width: 769px),print{html.theme--documenter-dark .tile:not(.is-child){display:flex}html.theme--documenter-dark .tile.is-1{flex:none;width:8.3333333333%}html.theme--documenter-dark .tile.is-2{flex:none;width:16.6666666667%}html.theme--documenter-dark .tile.is-3{flex:none;width:25%}html.theme--documenter-dark .tile.is-4{flex:none;width:33.3333333333%}html.theme--documenter-dark .tile.is-5{flex:none;width:41.6666666667%}html.theme--documenter-dark .tile.is-6{flex:none;width:50%}html.theme--documenter-dark .tile.is-7{flex:none;width:58.3333333333%}html.theme--documenter-dark .tile.is-8{flex:none;width:66.6666666667%}html.theme--documenter-dark .tile.is-9{flex:none;width:75%}html.theme--documenter-dark .tile.is-10{flex:none;width:83.3333333333%}html.theme--documenter-dark .tile.is-11{flex:none;width:91.6666666667%}html.theme--documenter-dark .tile.is-12{flex:none;width:100%}}html.theme--documenter-dark .hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}html.theme--documenter-dark .hero .navbar{background:none}html.theme--documenter-dark .hero .tabs ul{border-bottom:none}html.theme--documenter-dark .hero.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-white strong{color:inherit}html.theme--documenter-dark .hero.is-white .title{color:#0a0a0a}html.theme--documenter-dark .hero.is-white .subtitle{color:rgba(10,10,10,0.9)}html.theme--documenter-dark .hero.is-white .subtitle a:not(.button),html.theme--documenter-dark .hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-white .navbar-menu{background-color:#fff}}html.theme--documenter-dark .hero.is-white .navbar-item,html.theme--documenter-dark .hero.is-white .navbar-link{color:rgba(10,10,10,0.7)}html.theme--documenter-dark .hero.is-white a.navbar-item:hover,html.theme--documenter-dark .hero.is-white a.navbar-item.is-active,html.theme--documenter-dark .hero.is-white .navbar-link:hover,html.theme--documenter-dark .hero.is-white .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .hero.is-white .tabs a{color:#0a0a0a;opacity:0.9}html.theme--documenter-dark .hero.is-white .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-white .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-white .tabs.is-boxed a,html.theme--documenter-dark .hero.is-white .tabs.is-toggle a{color:#0a0a0a}html.theme--documenter-dark .hero.is-white .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .hero.is-white.is-bold{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}}html.theme--documenter-dark .hero.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-black strong{color:inherit}html.theme--documenter-dark .hero.is-black .title{color:#fff}html.theme--documenter-dark .hero.is-black .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-black .subtitle a:not(.button),html.theme--documenter-dark .hero.is-black .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-black .navbar-menu{background-color:#0a0a0a}}html.theme--documenter-dark .hero.is-black .navbar-item,html.theme--documenter-dark .hero.is-black .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-black a.navbar-item:hover,html.theme--documenter-dark .hero.is-black a.navbar-item.is-active,html.theme--documenter-dark .hero.is-black .navbar-link:hover,html.theme--documenter-dark .hero.is-black .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .hero.is-black .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-black .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-black .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-black .tabs.is-boxed a,html.theme--documenter-dark .hero.is-black .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-black .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .hero.is-black.is-bold{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}}html.theme--documenter-dark .hero.is-light{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-light strong{color:inherit}html.theme--documenter-dark .hero.is-light .title{color:#282f2f}html.theme--documenter-dark .hero.is-light .subtitle{color:rgba(40,47,47,0.9)}html.theme--documenter-dark .hero.is-light .subtitle a:not(.button),html.theme--documenter-dark .hero.is-light .subtitle strong{color:#282f2f}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-light .navbar-menu{background-color:#ecf0f1}}html.theme--documenter-dark .hero.is-light .navbar-item,html.theme--documenter-dark .hero.is-light .navbar-link{color:rgba(40,47,47,0.7)}html.theme--documenter-dark .hero.is-light a.navbar-item:hover,html.theme--documenter-dark .hero.is-light a.navbar-item.is-active,html.theme--documenter-dark .hero.is-light .navbar-link:hover,html.theme--documenter-dark .hero.is-light .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .hero.is-light .tabs a{color:#282f2f;opacity:0.9}html.theme--documenter-dark .hero.is-light .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-light .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-light .tabs.is-boxed a,html.theme--documenter-dark .hero.is-light .tabs.is-toggle a{color:#282f2f}html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .hero.is-light.is-bold{background-image:linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%)}}html.theme--documenter-dark .hero.is-dark,html.theme--documenter-dark .content kbd.hero{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-dark strong,html.theme--documenter-dark .content kbd.hero strong{color:inherit}html.theme--documenter-dark .hero.is-dark .title,html.theme--documenter-dark .content kbd.hero .title{color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .subtitle,html.theme--documenter-dark .content kbd.hero .subtitle{color:rgba(236,240,241,0.9)}html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button),html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button),html.theme--documenter-dark .hero.is-dark .subtitle strong,html.theme--documenter-dark .content kbd.hero .subtitle strong{color:#ecf0f1}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-dark .navbar-menu,html.theme--documenter-dark .content kbd.hero .navbar-menu{background-color:#282f2f}}html.theme--documenter-dark .hero.is-dark .navbar-item,html.theme--documenter-dark .content kbd.hero .navbar-item,html.theme--documenter-dark .hero.is-dark .navbar-link,html.theme--documenter-dark .content kbd.hero .navbar-link{color:rgba(236,240,241,0.7)}html.theme--documenter-dark .hero.is-dark a.navbar-item:hover,html.theme--documenter-dark .content kbd.hero a.navbar-item:hover,html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active,html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active,html.theme--documenter-dark .hero.is-dark .navbar-link:hover,html.theme--documenter-dark .content kbd.hero .navbar-link:hover,html.theme--documenter-dark .hero.is-dark .navbar-link.is-active,html.theme--documenter-dark .content kbd.hero .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .tabs a,html.theme--documenter-dark .content kbd.hero .tabs a{color:#ecf0f1;opacity:0.9}html.theme--documenter-dark .hero.is-dark .tabs a:hover,html.theme--documenter-dark .content kbd.hero .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-dark .tabs li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a{color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .hero.is-dark.is-bold,html.theme--documenter-dark .content kbd.hero.is-bold{background-image:linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu,html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu{background-image:linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%)}}html.theme--documenter-dark .hero.is-primary,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-primary strong,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink strong{color:inherit}html.theme--documenter-dark .hero.is-primary .title,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .title{color:#fff}html.theme--documenter-dark .hero.is-primary .subtitle,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button),html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle a:not(.button),html.theme--documenter-dark .hero.is-primary .subtitle strong,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-primary .navbar-menu,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-menu{background-color:#375a7f}}html.theme--documenter-dark .hero.is-primary .navbar-item,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-item,html.theme--documenter-dark .hero.is-primary .navbar-link,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-primary a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a.navbar-item:hover,html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a.navbar-item.is-active,html.theme--documenter-dark .hero.is-primary .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link:hover,html.theme--documenter-dark .hero.is-primary .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .hero.is-primary .tabs a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-primary .tabs a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-primary .tabs li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#375a7f}html.theme--documenter-dark .hero.is-primary.is-bold,html.theme--documenter-dark .docstring>section>a.hero.is-bold.docs-sourcelink{background-image:linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu,html.theme--documenter-dark .docstring>section>a.hero.is-bold.docs-sourcelink .navbar-menu{background-image:linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%)}}html.theme--documenter-dark .hero.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-link strong{color:inherit}html.theme--documenter-dark .hero.is-link .title{color:#fff}html.theme--documenter-dark .hero.is-link .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-link .subtitle a:not(.button),html.theme--documenter-dark .hero.is-link .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-link .navbar-menu{background-color:#1abc9c}}html.theme--documenter-dark .hero.is-link .navbar-item,html.theme--documenter-dark .hero.is-link .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-link a.navbar-item:hover,html.theme--documenter-dark .hero.is-link a.navbar-item.is-active,html.theme--documenter-dark .hero.is-link .navbar-link:hover,html.theme--documenter-dark .hero.is-link .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .hero.is-link .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-link .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-link .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-link .tabs.is-boxed a,html.theme--documenter-dark .hero.is-link .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#1abc9c}html.theme--documenter-dark .hero.is-link.is-bold{background-image:linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%)}}html.theme--documenter-dark .hero.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-info strong{color:inherit}html.theme--documenter-dark .hero.is-info .title{color:#fff}html.theme--documenter-dark .hero.is-info .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-info .subtitle a:not(.button),html.theme--documenter-dark .hero.is-info .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-info .navbar-menu{background-color:#024c7d}}html.theme--documenter-dark .hero.is-info .navbar-item,html.theme--documenter-dark .hero.is-info .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-info a.navbar-item:hover,html.theme--documenter-dark .hero.is-info a.navbar-item.is-active,html.theme--documenter-dark .hero.is-info .navbar-link:hover,html.theme--documenter-dark .hero.is-info .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .hero.is-info .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-info .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-info .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-info .tabs.is-boxed a,html.theme--documenter-dark .hero.is-info .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#024c7d}html.theme--documenter-dark .hero.is-info.is-bold{background-image:linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%)}}html.theme--documenter-dark .hero.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-success strong{color:inherit}html.theme--documenter-dark .hero.is-success .title{color:#fff}html.theme--documenter-dark .hero.is-success .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-success .subtitle a:not(.button),html.theme--documenter-dark .hero.is-success .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-success .navbar-menu{background-color:#008438}}html.theme--documenter-dark .hero.is-success .navbar-item,html.theme--documenter-dark .hero.is-success .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-success a.navbar-item:hover,html.theme--documenter-dark .hero.is-success a.navbar-item.is-active,html.theme--documenter-dark .hero.is-success .navbar-link:hover,html.theme--documenter-dark .hero.is-success .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .hero.is-success .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-success .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-success .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-success .tabs.is-boxed a,html.theme--documenter-dark .hero.is-success .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#008438}html.theme--documenter-dark .hero.is-success.is-bold{background-image:linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%)}}html.theme--documenter-dark .hero.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-warning strong{color:inherit}html.theme--documenter-dark .hero.is-warning .title{color:#fff}html.theme--documenter-dark .hero.is-warning .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button),html.theme--documenter-dark .hero.is-warning .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-warning .navbar-menu{background-color:#ad8100}}html.theme--documenter-dark .hero.is-warning .navbar-item,html.theme--documenter-dark .hero.is-warning .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-warning a.navbar-item:hover,html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active,html.theme--documenter-dark .hero.is-warning .navbar-link:hover,html.theme--documenter-dark .hero.is-warning .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .hero.is-warning .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-warning .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-warning .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#ad8100}html.theme--documenter-dark .hero.is-warning.is-bold{background-image:linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%)}}html.theme--documenter-dark .hero.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-danger strong{color:inherit}html.theme--documenter-dark .hero.is-danger .title{color:#fff}html.theme--documenter-dark .hero.is-danger .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button),html.theme--documenter-dark .hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-danger .navbar-menu{background-color:#9e1b0d}}html.theme--documenter-dark .hero.is-danger .navbar-item,html.theme--documenter-dark .hero.is-danger .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-danger a.navbar-item:hover,html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active,html.theme--documenter-dark .hero.is-danger .navbar-link:hover,html.theme--documenter-dark .hero.is-danger .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .hero.is-danger .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-danger .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-danger .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#9e1b0d}html.theme--documenter-dark .hero.is-danger.is-bold{background-image:linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%)}}html.theme--documenter-dark .hero.is-small .hero-body,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.hero .hero-body{padding-bottom:1.5rem;padding-top:1.5rem}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero.is-medium .hero-body{padding-bottom:9rem;padding-top:9rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero.is-large .hero-body{padding-bottom:18rem;padding-top:18rem}}html.theme--documenter-dark .hero.is-halfheight .hero-body,html.theme--documenter-dark .hero.is-fullheight .hero-body,html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body{align-items:center;display:flex}html.theme--documenter-dark .hero.is-halfheight .hero-body>.container,html.theme--documenter-dark .hero.is-fullheight .hero-body>.container,html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body>.container{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .hero.is-halfheight{min-height:50vh}html.theme--documenter-dark .hero.is-fullheight{min-height:100vh}html.theme--documenter-dark .hero-video{overflow:hidden}html.theme--documenter-dark .hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%, -50%, 0)}html.theme--documenter-dark .hero-video.is-transparent{opacity:0.3}@media screen and (max-width: 768px){html.theme--documenter-dark .hero-video{display:none}}html.theme--documenter-dark .hero-buttons{margin-top:1.5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .hero-buttons .button{display:flex}html.theme--documenter-dark .hero-buttons .button:not(:last-child){margin-bottom:0.75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero-buttons{display:flex;justify-content:center}html.theme--documenter-dark .hero-buttons .button:not(:last-child){margin-right:1.5rem}}html.theme--documenter-dark .hero-head,html.theme--documenter-dark .hero-foot{flex-grow:0;flex-shrink:0}html.theme--documenter-dark .hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}html.theme--documenter-dark .section{padding:3rem 1.5rem}@media screen and (min-width: 1056px){html.theme--documenter-dark .section.is-medium{padding:9rem 1.5rem}html.theme--documenter-dark .section.is-large{padding:18rem 1.5rem}}html.theme--documenter-dark .footer{background-color:#282f2f;padding:3rem 1.5rem 6rem}html.theme--documenter-dark hr{height:1px}html.theme--documenter-dark h6{text-transform:uppercase;letter-spacing:0.5px}html.theme--documenter-dark .hero{background-color:#343c3d}html.theme--documenter-dark a{transition:all 200ms ease}html.theme--documenter-dark .button{transition:all 200ms ease;border-width:1px;color:#fff}html.theme--documenter-dark .button.is-active,html.theme--documenter-dark .button.is-focused,html.theme--documenter-dark .button:active,html.theme--documenter-dark .button:focus{box-shadow:0 0 0 2px rgba(140,155,157,0.5)}html.theme--documenter-dark .button.is-white.is-hovered,html.theme--documenter-dark .button.is-white:hover{background-color:#fff}html.theme--documenter-dark .button.is-white.is-active,html.theme--documenter-dark .button.is-white.is-focused,html.theme--documenter-dark .button.is-white:active,html.theme--documenter-dark .button.is-white:focus{border-color:#fff;box-shadow:0 0 0 2px rgba(255,255,255,0.5)}html.theme--documenter-dark .button.is-black.is-hovered,html.theme--documenter-dark .button.is-black:hover{background-color:#1d1d1d}html.theme--documenter-dark .button.is-black.is-active,html.theme--documenter-dark .button.is-black.is-focused,html.theme--documenter-dark .button.is-black:active,html.theme--documenter-dark .button.is-black:focus{border-color:#0a0a0a;box-shadow:0 0 0 2px rgba(10,10,10,0.5)}html.theme--documenter-dark .button.is-light.is-hovered,html.theme--documenter-dark .button.is-light:hover{background-color:#fff}html.theme--documenter-dark .button.is-light.is-active,html.theme--documenter-dark .button.is-light.is-focused,html.theme--documenter-dark .button.is-light:active,html.theme--documenter-dark .button.is-light:focus{border-color:#ecf0f1;box-shadow:0 0 0 2px rgba(236,240,241,0.5)}html.theme--documenter-dark .button.is-dark.is-hovered,html.theme--documenter-dark .content kbd.button.is-hovered,html.theme--documenter-dark .button.is-dark:hover,html.theme--documenter-dark .content kbd.button:hover{background-color:#3a4344}html.theme--documenter-dark .button.is-dark.is-active,html.theme--documenter-dark .content kbd.button.is-active,html.theme--documenter-dark .button.is-dark.is-focused,html.theme--documenter-dark .content kbd.button.is-focused,html.theme--documenter-dark .button.is-dark:active,html.theme--documenter-dark .content kbd.button:active,html.theme--documenter-dark .button.is-dark:focus,html.theme--documenter-dark .content kbd.button:focus{border-color:#282f2f;box-shadow:0 0 0 2px rgba(40,47,47,0.5)}html.theme--documenter-dark .button.is-primary.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary:hover,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:hover{background-color:#436d9a}html.theme--documenter-dark .button.is-primary.is-active,html.theme--documenter-dark .docstring>section>a.button.is-active.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink,html.theme--documenter-dark .button.is-primary:active,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:active,html.theme--documenter-dark .button.is-primary:focus,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus{border-color:#375a7f;box-shadow:0 0 0 2px rgba(55,90,127,0.5)}html.theme--documenter-dark .button.is-link.is-hovered,html.theme--documenter-dark .button.is-link:hover{background-color:#1fdeb8}html.theme--documenter-dark .button.is-link.is-active,html.theme--documenter-dark .button.is-link.is-focused,html.theme--documenter-dark .button.is-link:active,html.theme--documenter-dark .button.is-link:focus{border-color:#1abc9c;box-shadow:0 0 0 2px rgba(26,188,156,0.5)}html.theme--documenter-dark .button.is-info.is-hovered,html.theme--documenter-dark .button.is-info:hover{background-color:#0363a3}html.theme--documenter-dark .button.is-info.is-active,html.theme--documenter-dark .button.is-info.is-focused,html.theme--documenter-dark .button.is-info:active,html.theme--documenter-dark .button.is-info:focus{border-color:#024c7d;box-shadow:0 0 0 2px rgba(2,76,125,0.5)}html.theme--documenter-dark .button.is-success.is-hovered,html.theme--documenter-dark .button.is-success:hover{background-color:#00aa48}html.theme--documenter-dark .button.is-success.is-active,html.theme--documenter-dark .button.is-success.is-focused,html.theme--documenter-dark .button.is-success:active,html.theme--documenter-dark .button.is-success:focus{border-color:#008438;box-shadow:0 0 0 2px rgba(0,132,56,0.5)}html.theme--documenter-dark .button.is-warning.is-hovered,html.theme--documenter-dark .button.is-warning:hover{background-color:#d39e00}html.theme--documenter-dark .button.is-warning.is-active,html.theme--documenter-dark .button.is-warning.is-focused,html.theme--documenter-dark .button.is-warning:active,html.theme--documenter-dark .button.is-warning:focus{border-color:#ad8100;box-shadow:0 0 0 2px rgba(173,129,0,0.5)}html.theme--documenter-dark .button.is-danger.is-hovered,html.theme--documenter-dark .button.is-danger:hover{background-color:#c12110}html.theme--documenter-dark .button.is-danger.is-active,html.theme--documenter-dark .button.is-danger.is-focused,html.theme--documenter-dark .button.is-danger:active,html.theme--documenter-dark .button.is-danger:focus{border-color:#9e1b0d;box-shadow:0 0 0 2px rgba(158,27,13,0.5)}html.theme--documenter-dark .label{color:#dbdee0}html.theme--documenter-dark .button,html.theme--documenter-dark .control.has-icons-left .icon,html.theme--documenter-dark .control.has-icons-right .icon,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .select,html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea{height:2.5em}html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .textarea{transition:all 200ms ease;box-shadow:none;border-width:1px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .select:after,html.theme--documenter-dark .select select{border-width:1px}html.theme--documenter-dark .control.has-addons .button,html.theme--documenter-dark .control.has-addons .input,html.theme--documenter-dark .control.has-addons #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-addons form.docs-search>input,html.theme--documenter-dark .control.has-addons .select{margin-right:-1px}html.theme--documenter-dark .notification{background-color:#343c3d}html.theme--documenter-dark .card{box-shadow:none;border:1px solid #343c3d;background-color:#282f2f;border-radius:.4em}html.theme--documenter-dark .card .card-image img{border-radius:.4em .4em 0 0}html.theme--documenter-dark .card .card-header{box-shadow:none;background-color:rgba(18,18,18,0.2);border-radius:.4em .4em 0 0}html.theme--documenter-dark .card .card-footer{background-color:rgba(18,18,18,0.2)}html.theme--documenter-dark .card .card-footer,html.theme--documenter-dark .card .card-footer-item{border-width:1px;border-color:#343c3d}html.theme--documenter-dark .notification.is-white a:not(.button){color:#0a0a0a;text-decoration:underline}html.theme--documenter-dark .notification.is-black a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-light a:not(.button){color:#282f2f;text-decoration:underline}html.theme--documenter-dark .notification.is-dark a:not(.button),html.theme--documenter-dark .content kbd.notification a:not(.button){color:#ecf0f1;text-decoration:underline}html.theme--documenter-dark .notification.is-primary a:not(.button),html.theme--documenter-dark .docstring>section>a.notification.docs-sourcelink a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-link a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-info a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-success a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-warning a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-danger a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .tag,html.theme--documenter-dark .content kbd,html.theme--documenter-dark .docstring>section>a.docs-sourcelink{border-radius:.4em}html.theme--documenter-dark .menu-list a{transition:all 300ms ease}html.theme--documenter-dark .modal-card-body{background-color:#282f2f}html.theme--documenter-dark .modal-card-foot,html.theme--documenter-dark .modal-card-head{border-color:#343c3d}html.theme--documenter-dark .message-header{font-weight:700;background-color:#343c3d;color:#fff}html.theme--documenter-dark .message-body{border-width:1px;border-color:#343c3d}html.theme--documenter-dark .navbar{border-radius:.4em}html.theme--documenter-dark .navbar.is-transparent{background:none}html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#1abc9c}@media screen and (max-width: 1055px){html.theme--documenter-dark .navbar .navbar-menu{background-color:#375a7f;border-radius:0 0 .4em .4em}}html.theme--documenter-dark .hero .navbar,html.theme--documenter-dark body>.navbar{border-radius:0}html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-previous{border-width:1px}html.theme--documenter-dark .panel-block,html.theme--documenter-dark .panel-heading,html.theme--documenter-dark .panel-tabs{border-width:1px}html.theme--documenter-dark .panel-block:first-child,html.theme--documenter-dark .panel-heading:first-child,html.theme--documenter-dark .panel-tabs:first-child{border-top-width:1px}html.theme--documenter-dark .panel-heading{font-weight:700}html.theme--documenter-dark .panel-tabs a{border-width:1px;margin-bottom:-1px}html.theme--documenter-dark .panel-tabs a.is-active{border-bottom-color:#17a689}html.theme--documenter-dark .panel-block:hover{color:#1dd2af}html.theme--documenter-dark .panel-block:hover .panel-icon{color:#1dd2af}html.theme--documenter-dark .panel-block.is-active .panel-icon{color:#17a689}html.theme--documenter-dark .tabs a{border-bottom-width:1px;margin-bottom:-1px}html.theme--documenter-dark .tabs ul{border-bottom-width:1px}html.theme--documenter-dark .tabs.is-boxed a{border-width:1px}html.theme--documenter-dark .tabs.is-boxed li.is-active a{background-color:#1f2424}html.theme--documenter-dark .tabs.is-toggle li a{border-width:1px;margin-bottom:0}html.theme--documenter-dark .tabs.is-toggle li+li{margin-left:-1px}html.theme--documenter-dark .hero.is-white .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-dark .navbar .navbar-dropdown .navbar-item:hover,html.theme--documenter-dark .content kbd.hero .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-primary .navbar .navbar-dropdown .navbar-item:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark h1 .docs-heading-anchor,html.theme--documenter-dark h1 .docs-heading-anchor:hover,html.theme--documenter-dark h1 .docs-heading-anchor:visited,html.theme--documenter-dark h2 .docs-heading-anchor,html.theme--documenter-dark h2 .docs-heading-anchor:hover,html.theme--documenter-dark h2 .docs-heading-anchor:visited,html.theme--documenter-dark h3 .docs-heading-anchor,html.theme--documenter-dark h3 .docs-heading-anchor:hover,html.theme--documenter-dark h3 .docs-heading-anchor:visited,html.theme--documenter-dark h4 .docs-heading-anchor,html.theme--documenter-dark h4 .docs-heading-anchor:hover,html.theme--documenter-dark h4 .docs-heading-anchor:visited,html.theme--documenter-dark h5 .docs-heading-anchor,html.theme--documenter-dark h5 .docs-heading-anchor:hover,html.theme--documenter-dark h5 .docs-heading-anchor:visited,html.theme--documenter-dark h6 .docs-heading-anchor,html.theme--documenter-dark h6 .docs-heading-anchor:hover,html.theme--documenter-dark h6 .docs-heading-anchor:visited{color:#f2f2f2}html.theme--documenter-dark h1 .docs-heading-anchor-permalink,html.theme--documenter-dark h2 .docs-heading-anchor-permalink,html.theme--documenter-dark h3 .docs-heading-anchor-permalink,html.theme--documenter-dark h4 .docs-heading-anchor-permalink,html.theme--documenter-dark h5 .docs-heading-anchor-permalink,html.theme--documenter-dark h6 .docs-heading-anchor-permalink{visibility:hidden;vertical-align:middle;margin-left:0.5em;font-size:0.7rem}html.theme--documenter-dark h1 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h2 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h3 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h4 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h5 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h6 .docs-heading-anchor-permalink::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f0c1"}html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink{visibility:visible}html.theme--documenter-dark .docs-light-only{display:none !important}html.theme--documenter-dark pre{position:relative;overflow:hidden}html.theme--documenter-dark pre code,html.theme--documenter-dark pre code.hljs{padding:0 .75rem !important;overflow:auto;display:block}html.theme--documenter-dark pre code:first-of-type,html.theme--documenter-dark pre code.hljs:first-of-type{padding-top:0.5rem !important}html.theme--documenter-dark pre code:last-of-type,html.theme--documenter-dark pre code.hljs:last-of-type{padding-bottom:0.5rem !important}html.theme--documenter-dark pre .copy-button{opacity:0.2;transition:opacity 0.2s;position:absolute;right:0em;top:0em;padding:0.5em;width:2.5em;height:2.5em;background:transparent;border:none;font-family:"Font Awesome 5 Free";color:#fff;cursor:pointer;text-align:center}html.theme--documenter-dark pre .copy-button:focus,html.theme--documenter-dark pre .copy-button:hover{opacity:1;background:rgba(255,255,255,0.1);color:#1abc9c}html.theme--documenter-dark pre .copy-button.success{color:#259a12;opacity:1}html.theme--documenter-dark pre .copy-button.error{color:#cb3c33;opacity:1}html.theme--documenter-dark pre:hover .copy-button{opacity:1}html.theme--documenter-dark .admonition{background-color:#282f2f;border-style:solid;border-width:1px;border-color:#5e6d6f;border-radius:.4em;font-size:15px}html.theme--documenter-dark .admonition strong{color:currentColor}html.theme--documenter-dark .admonition.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.admonition{font-size:.85em}html.theme--documenter-dark .admonition.is-medium{font-size:1.25rem}html.theme--documenter-dark .admonition.is-large{font-size:1.5rem}html.theme--documenter-dark .admonition.is-default{background-color:#282f2f;border-color:#5e6d6f}html.theme--documenter-dark .admonition.is-default>.admonition-header{background-color:#5e6d6f;color:#fff}html.theme--documenter-dark .admonition.is-default>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-info{background-color:#282f2f;border-color:#024c7d}html.theme--documenter-dark .admonition.is-info>.admonition-header{background-color:#024c7d;color:#fff}html.theme--documenter-dark .admonition.is-info>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-success{background-color:#282f2f;border-color:#008438}html.theme--documenter-dark .admonition.is-success>.admonition-header{background-color:#008438;color:#fff}html.theme--documenter-dark .admonition.is-success>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-warning{background-color:#282f2f;border-color:#ad8100}html.theme--documenter-dark .admonition.is-warning>.admonition-header{background-color:#ad8100;color:#fff}html.theme--documenter-dark .admonition.is-warning>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-danger{background-color:#282f2f;border-color:#9e1b0d}html.theme--documenter-dark .admonition.is-danger>.admonition-header{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .admonition.is-danger>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-compat{background-color:#282f2f;border-color:#137886}html.theme--documenter-dark .admonition.is-compat>.admonition-header{background-color:#137886;color:#fff}html.theme--documenter-dark .admonition.is-compat>.admonition-body{color:#fff}html.theme--documenter-dark .admonition-header{color:#fff;background-color:#5e6d6f;align-items:center;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.5rem .75rem;position:relative}html.theme--documenter-dark .admonition-header:before{font-family:"Font Awesome 5 Free";font-weight:900;margin-right:.75rem;content:"\f06a"}html.theme--documenter-dark .admonition-body{color:#fff;padding:0.5rem .75rem}html.theme--documenter-dark .admonition-body pre{background-color:#282f2f}html.theme--documenter-dark .admonition-body code{background-color:rgba(255,255,255,0.05)}html.theme--documenter-dark .docstring{margin-bottom:1em;background-color:rgba(0,0,0,0);border:1px solid #5e6d6f;box-shadow:none;max-width:100%}html.theme--documenter-dark .docstring>header{display:flex;flex-grow:1;align-items:stretch;padding:0.5rem .75rem;background-color:#282f2f;box-shadow:0 1px 2px rgba(10,10,10,0.1);box-shadow:none;border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .docstring>header code{background-color:transparent}html.theme--documenter-dark .docstring>header .docstring-binding{margin-right:0.3em}html.theme--documenter-dark .docstring>header .docstring-category{margin-left:0.3em}html.theme--documenter-dark .docstring>section{position:relative;padding:.75rem .75rem;border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .docstring>section:last-child{border-bottom:none}html.theme--documenter-dark .docstring>section>a.docs-sourcelink{transition:opacity 0.3s;opacity:0;position:absolute;right:.375rem;bottom:.375rem}html.theme--documenter-dark .docstring>section>a.docs-sourcelink:focus{opacity:1 !important}html.theme--documenter-dark .docstring:hover>section>a.docs-sourcelink{opacity:0.2}html.theme--documenter-dark .docstring:focus-within>section>a.docs-sourcelink{opacity:0.2}html.theme--documenter-dark .docstring>section:hover a.docs-sourcelink{opacity:1}html.theme--documenter-dark .documenter-example-output{background-color:#1f2424}html.theme--documenter-dark .outdated-warning-overlay{position:fixed;top:0;left:0;right:0;box-shadow:0 0 10px rgba(0,0,0,0.3);z-index:999;background-color:#282f2f;color:#fff;border-bottom:3px solid #9e1b0d;padding:10px 35px;text-align:center;font-size:15px}html.theme--documenter-dark .outdated-warning-overlay .outdated-warning-closer{position:absolute;top:calc(50% - 10px);right:18px;cursor:pointer;width:12px}html.theme--documenter-dark .outdated-warning-overlay a{color:#1abc9c}html.theme--documenter-dark .outdated-warning-overlay a:hover{color:#1dd2af}html.theme--documenter-dark .content pre{border:1px solid #5e6d6f}html.theme--documenter-dark .content code{font-weight:inherit}html.theme--documenter-dark .content a code{color:#1abc9c}html.theme--documenter-dark .content h1 code,html.theme--documenter-dark .content h2 code,html.theme--documenter-dark .content h3 code,html.theme--documenter-dark .content h4 code,html.theme--documenter-dark .content h5 code,html.theme--documenter-dark .content h6 code{color:#f2f2f2}html.theme--documenter-dark .content table{display:block;width:initial;max-width:100%;overflow-x:auto}html.theme--documenter-dark .content blockquote>ul:first-child,html.theme--documenter-dark .content blockquote>ol:first-child,html.theme--documenter-dark .content .admonition-body>ul:first-child,html.theme--documenter-dark .content .admonition-body>ol:first-child{margin-top:0}html.theme--documenter-dark pre,html.theme--documenter-dark code{font-variant-ligatures:no-contextual}html.theme--documenter-dark .breadcrumb a.is-disabled{cursor:default;pointer-events:none}html.theme--documenter-dark .breadcrumb a.is-disabled,html.theme--documenter-dark .breadcrumb a.is-disabled:hover{color:#f2f2f2}html.theme--documenter-dark .hljs{background:initial !important}html.theme--documenter-dark .katex .katex-mathml{top:0;right:0}html.theme--documenter-dark .katex-display,html.theme--documenter-dark mjx-container,html.theme--documenter-dark .MathJax_Display{margin:0.5em 0 !important}html.theme--documenter-dark html{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto}html.theme--documenter-dark li.no-marker{list-style:none}html.theme--documenter-dark #documenter .docs-main>article{overflow-wrap:break-word}html.theme--documenter-dark #documenter .docs-main>article .math-container{overflow-x:auto;overflow-y:hidden}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-main{max-width:52rem;margin-left:20rem;padding-right:1rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main{width:100%}html.theme--documenter-dark #documenter .docs-main>article{max-width:52rem;margin-left:auto;margin-right:auto;margin-bottom:1rem;padding:0 1rem}html.theme--documenter-dark #documenter .docs-main>header,html.theme--documenter-dark #documenter .docs-main>nav{max-width:100%;width:100%;margin:0}}html.theme--documenter-dark #documenter .docs-main header.docs-navbar{background-color:#1f2424;border-bottom:1px solid #5e6d6f;z-index:2;min-height:4rem;margin-bottom:1rem;display:flex}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb{flex-grow:1}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right{display:flex;white-space:nowrap}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon,html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label,html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{display:inline-block}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label{padding:0;margin-left:0.3em}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button{margin:auto 0 auto 1rem}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{font-size:1.5rem;margin:auto 0 auto 1rem}html.theme--documenter-dark #documenter .docs-main header.docs-navbar>*{margin:auto 0}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main header.docs-navbar{position:sticky;top:0;padding:0 1rem;transition-property:top, box-shadow;-webkit-transition-property:top, box-shadow;transition-duration:0.3s;-webkit-transition-duration:0.3s}html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top{box-shadow:.2rem 0rem .4rem #171717;transition-duration:0.7s;-webkit-transition-duration:0.7s}html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom{top:-4.5rem;transition-duration:0.7s;-webkit-transition-duration:0.7s}}html.theme--documenter-dark #documenter .docs-main section.footnotes{border-top:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-main section.footnotes li .tag:first-child,html.theme--documenter-dark #documenter .docs-main section.footnotes li .docstring>section>a.docs-sourcelink:first-child,html.theme--documenter-dark #documenter .docs-main section.footnotes li .content kbd:first-child,html.theme--documenter-dark .content #documenter .docs-main section.footnotes li kbd:first-child{margin-right:1em;margin-bottom:0.4em}html.theme--documenter-dark #documenter .docs-main .docs-footer{display:flex;flex-wrap:wrap;margin-left:0;margin-right:0;border-top:1px solid #5e6d6f;padding-top:1rem;padding-bottom:1rem}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main .docs-footer{padding-left:1rem;padding-right:1rem}}html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage,html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-prevpage{flex-grow:1}html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage{text-align:right}html.theme--documenter-dark #documenter .docs-main .docs-footer .flexbox-break{flex-basis:100%;height:0}html.theme--documenter-dark #documenter .docs-main .docs-footer .footer-message{font-size:0.8em;margin:0.5em auto 0 auto;text-align:center}html.theme--documenter-dark #documenter .docs-sidebar{display:flex;flex-direction:column;color:#fff;background-color:#282f2f;border-right:1px solid #5e6d6f;padding:0;flex:0 0 18rem;z-index:5;font-size:15px;position:fixed;left:-18rem;width:18rem;height:100%;transition:left 0.3s}html.theme--documenter-dark #documenter .docs-sidebar.visible{left:0;box-shadow:.4rem 0rem .8rem #171717}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar.visible{box-shadow:none}}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar{left:0;top:0}}html.theme--documenter-dark #documenter .docs-sidebar .docs-logo{margin-top:1rem;padding:0 1rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img{max-height:6rem;margin:auto}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name{flex-shrink:0;font-size:1.5rem;font-weight:700;text-align:center;white-space:nowrap;overflow:hidden;padding:0.5rem 0}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name .docs-autofit{max-width:16.2rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a,html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a:hover{color:#fff}html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector{border-top:1px solid #5e6d6f;display:none;padding:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector.visible{display:flex}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu{flex-grow:1;user-select:none;border-top:1px solid #5e6d6f;padding-bottom:1.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li>.tocitem{font-weight:bold}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li li{font-size:14.25px;margin-left:1em;border-left:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle{display:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed{display:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked~ul.collapsed{display:block}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem{display:flex}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label{flex-grow:2}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;font-size:11.25px;margin-left:1rem;margin-top:auto;margin-bottom:auto}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f054"}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked~label.tocitem .docs-chevron::before{content:"\f078"}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem{display:block;padding:0.5rem 0.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover{color:#fff;background:#282f2f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover{color:#fff;background-color:#32393a}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active{border-top:1px solid #5e6d6f;border-bottom:1px solid #5e6d6f;background-color:#1f2424}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover{background-color:#1f2424;color:#fff}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover{background-color:#32393a;color:#fff}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li.is-active:first-child{border-top:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal{margin:0 0.5rem 0.5rem;border-top:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li{font-size:12.75px;border-left:none;margin-left:0;margin-top:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem{width:100%;padding:0}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before{content:"⚬";margin-right:0.4em}html.theme--documenter-dark #documenter .docs-sidebar form.docs-search{margin:auto;margin-top:0.5rem;margin-bottom:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{width:14.4rem}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu{overflow-y:auto;-webkit-overflow-scroll:touch}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar{width:.3rem;background:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#3b4445}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover{background:#4e5a5c}}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-sidebar{overflow-y:auto;-webkit-overflow-scroll:touch}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar{width:.3rem;background:none}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#3b4445}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover{background:#4e5a5c}}html.theme--documenter-dark #documenter .docs-main #documenter-search-info{margin-bottom:1rem}html.theme--documenter-dark #documenter .docs-main #documenter-search-results{list-style-type:circle;list-style-position:outside}html.theme--documenter-dark #documenter .docs-main #documenter-search-results li{margin-left:2rem}html.theme--documenter-dark #documenter .docs-main #documenter-search-results .docs-highlight{background-color:yellow}html.theme--documenter-dark{background-color:#1f2424;font-size:16px;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}html.theme--documenter-dark .ansi span.sgr1{font-weight:bolder}html.theme--documenter-dark .ansi span.sgr2{font-weight:lighter}html.theme--documenter-dark .ansi span.sgr3{font-style:italic}html.theme--documenter-dark .ansi span.sgr4{text-decoration:underline}html.theme--documenter-dark .ansi span.sgr7{color:#1f2424;background-color:#fff}html.theme--documenter-dark .ansi span.sgr8{color:transparent}html.theme--documenter-dark .ansi span.sgr8 span{color:transparent}html.theme--documenter-dark .ansi span.sgr9{text-decoration:line-through}html.theme--documenter-dark .ansi span.sgr30{color:#242424}html.theme--documenter-dark .ansi span.sgr31{color:#f6705f}html.theme--documenter-dark .ansi span.sgr32{color:#4fb43a}html.theme--documenter-dark .ansi span.sgr33{color:#f4c72f}html.theme--documenter-dark .ansi span.sgr34{color:#7587f0}html.theme--documenter-dark .ansi span.sgr35{color:#bc89d3}html.theme--documenter-dark .ansi span.sgr36{color:#49b6ca}html.theme--documenter-dark .ansi span.sgr37{color:#b3bdbe}html.theme--documenter-dark .ansi span.sgr40{background-color:#242424}html.theme--documenter-dark .ansi span.sgr41{background-color:#f6705f}html.theme--documenter-dark .ansi span.sgr42{background-color:#4fb43a}html.theme--documenter-dark .ansi span.sgr43{background-color:#f4c72f}html.theme--documenter-dark .ansi span.sgr44{background-color:#7587f0}html.theme--documenter-dark .ansi span.sgr45{background-color:#bc89d3}html.theme--documenter-dark .ansi span.sgr46{background-color:#49b6ca}html.theme--documenter-dark .ansi span.sgr47{background-color:#b3bdbe}html.theme--documenter-dark .ansi span.sgr90{color:#92a0a2}html.theme--documenter-dark .ansi span.sgr91{color:#ff8674}html.theme--documenter-dark .ansi span.sgr92{color:#79d462}html.theme--documenter-dark .ansi span.sgr93{color:#ffe76b}html.theme--documenter-dark .ansi span.sgr94{color:#8a98ff}html.theme--documenter-dark .ansi span.sgr95{color:#d2a4e6}html.theme--documenter-dark .ansi span.sgr96{color:#6bc8db}html.theme--documenter-dark .ansi span.sgr97{color:#ecf0f1}html.theme--documenter-dark .ansi span.sgr100{background-color:#92a0a2}html.theme--documenter-dark .ansi span.sgr101{background-color:#ff8674}html.theme--documenter-dark .ansi span.sgr102{background-color:#79d462}html.theme--documenter-dark .ansi span.sgr103{background-color:#ffe76b}html.theme--documenter-dark .ansi span.sgr104{background-color:#8a98ff}html.theme--documenter-dark .ansi span.sgr105{background-color:#d2a4e6}html.theme--documenter-dark .ansi span.sgr106{background-color:#6bc8db}html.theme--documenter-dark .ansi span.sgr107{background-color:#ecf0f1}html.theme--documenter-dark code.language-julia-repl>span.hljs-meta{color:#4fb43a;font-weight:bolder}html.theme--documenter-dark .hljs{background:#2b2b2b;color:#f8f8f2}html.theme--documenter-dark .hljs-comment,html.theme--documenter-dark .hljs-quote{color:#d4d0ab}html.theme--documenter-dark .hljs-variable,html.theme--documenter-dark .hljs-template-variable,html.theme--documenter-dark .hljs-tag,html.theme--documenter-dark .hljs-name,html.theme--documenter-dark .hljs-selector-id,html.theme--documenter-dark .hljs-selector-class,html.theme--documenter-dark .hljs-regexp,html.theme--documenter-dark .hljs-deletion{color:#ffa07a}html.theme--documenter-dark .hljs-number,html.theme--documenter-dark .hljs-built_in,html.theme--documenter-dark .hljs-literal,html.theme--documenter-dark .hljs-type,html.theme--documenter-dark .hljs-params,html.theme--documenter-dark .hljs-meta,html.theme--documenter-dark .hljs-link{color:#f5ab35}html.theme--documenter-dark .hljs-attribute{color:#ffd700}html.theme--documenter-dark .hljs-string,html.theme--documenter-dark .hljs-symbol,html.theme--documenter-dark .hljs-bullet,html.theme--documenter-dark .hljs-addition{color:#abe338}html.theme--documenter-dark .hljs-title,html.theme--documenter-dark .hljs-section{color:#00e0e0}html.theme--documenter-dark .hljs-keyword,html.theme--documenter-dark .hljs-selector-tag{color:#dcc6e0}html.theme--documenter-dark .hljs-emphasis{font-style:italic}html.theme--documenter-dark .hljs-strong{font-weight:bold}@media screen and (-ms-high-contrast: active){html.theme--documenter-dark .hljs-addition,html.theme--documenter-dark .hljs-attribute,html.theme--documenter-dark .hljs-built_in,html.theme--documenter-dark .hljs-bullet,html.theme--documenter-dark .hljs-comment,html.theme--documenter-dark .hljs-link,html.theme--documenter-dark .hljs-literal,html.theme--documenter-dark .hljs-meta,html.theme--documenter-dark .hljs-number,html.theme--documenter-dark .hljs-params,html.theme--documenter-dark .hljs-string,html.theme--documenter-dark .hljs-symbol,html.theme--documenter-dark .hljs-type,html.theme--documenter-dark .hljs-quote{color:highlight}html.theme--documenter-dark .hljs-keyword,html.theme--documenter-dark .hljs-selector-tag{font-weight:bold}}html.theme--documenter-dark .hljs-subst{color:#f8f8f2} diff --git a/previews/PR1837/assets/themes/documenter-light.css b/previews/PR1837/assets/themes/documenter-light.css new file mode 100644 index 0000000000..9b9a14b043 --- /dev/null +++ b/previews/PR1837/assets/themes/documenter-light.css @@ -0,0 +1,9 @@ +@keyframes spinAround{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}.tabs,.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis,.breadcrumb,.file,.button,.is-unselectable,.modal-close,.delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.navbar-link:not(.is-arrowless)::after,.select:not(.is-multiple):not(.is-loading)::after{border:3px solid rgba(0,0,0,0);border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:0.625em;margin-top:-0.4375em;pointer-events:none;position:absolute;top:50%;transform:rotate(-45deg);transform-origin:center;width:0.625em}.admonition:not(:last-child),.tabs:not(:last-child),.message:not(:last-child),.list:not(:last-child),.level:not(:last-child),.breadcrumb:not(:last-child),.highlight:not(:last-child),.block:not(:last-child),.title:not(:last-child),.subtitle:not(:last-child),.table-container:not(:last-child),.table:not(:last-child),.progress:not(:last-child),.notification:not(:last-child),.content:not(:last-child),.box:not(:last-child){margin-bottom:1.5rem}.modal-close,.delete{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:290486px;cursor:pointer;pointer-events:auto;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:none;position:relative;vertical-align:top;width:20px}.modal-close::before,.delete::before,.modal-close::after,.delete::after{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.modal-close::before,.delete::before{height:2px;width:50%}.modal-close::after,.delete::after{height:50%;width:2px}.modal-close:hover,.delete:hover,.modal-close:focus,.delete:focus{background-color:rgba(10,10,10,0.3)}.modal-close:active,.delete:active{background-color:rgba(10,10,10,0.4)}.is-small.modal-close,#documenter .docs-sidebar form.docs-search>input.modal-close,.is-small.delete,#documenter .docs-sidebar form.docs-search>input.delete{height:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px;width:16px}.is-medium.modal-close,.is-medium.delete{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}.is-large.modal-close,.is-large.delete{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}.control.is-loading::after,.select.is-loading::after,.loader,.button.is-loading::after{animation:spinAround 500ms infinite linear;border:2px solid #dbdbdb;border-radius:290486px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}.hero-video,.modal-background,.modal,.image.is-square img,#documenter .docs-sidebar .docs-logo>img.is-square img,.image.is-square .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,.image.is-1by1 img,#documenter .docs-sidebar .docs-logo>img.is-1by1 img,.image.is-1by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,.image.is-5by4 img,#documenter .docs-sidebar .docs-logo>img.is-5by4 img,.image.is-5by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,.image.is-4by3 img,#documenter .docs-sidebar .docs-logo>img.is-4by3 img,.image.is-4by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,.image.is-3by2 img,#documenter .docs-sidebar .docs-logo>img.is-3by2 img,.image.is-3by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,.image.is-5by3 img,#documenter .docs-sidebar .docs-logo>img.is-5by3 img,.image.is-5by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,.image.is-16by9 img,#documenter .docs-sidebar .docs-logo>img.is-16by9 img,.image.is-16by9 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,.image.is-2by1 img,#documenter .docs-sidebar .docs-logo>img.is-2by1 img,.image.is-2by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,.image.is-3by1 img,#documenter .docs-sidebar .docs-logo>img.is-3by1 img,.image.is-3by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,.image.is-4by5 img,#documenter .docs-sidebar .docs-logo>img.is-4by5 img,.image.is-4by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,.image.is-3by4 img,#documenter .docs-sidebar .docs-logo>img.is-3by4 img,.image.is-3by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,.image.is-2by3 img,#documenter .docs-sidebar .docs-logo>img.is-2by3 img,.image.is-2by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,.image.is-3by5 img,#documenter .docs-sidebar .docs-logo>img.is-3by5 img,.image.is-3by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,.image.is-9by16 img,#documenter .docs-sidebar .docs-logo>img.is-9by16 img,.image.is-9by16 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,.image.is-1by2 img,#documenter .docs-sidebar .docs-logo>img.is-1by2 img,.image.is-1by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,.image.is-1by3 img,#documenter .docs-sidebar .docs-logo>img.is-1by3 img,.image.is-1by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio,.is-overlay{bottom:0;left:0;position:absolute;right:0;top:0}.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis,.file-cta,.file-name,.select select,.textarea,.input,#documenter .docs-sidebar form.docs-search>input,.button{-moz-appearance:none;-webkit-appearance:none;align-items:center;border:1px solid transparent;border-radius:4px;box-shadow:none;display:inline-flex;font-size:1rem;height:2.25em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(0.375em - 1px);padding-left:calc(0.625em - 1px);padding-right:calc(0.625em - 1px);padding-top:calc(0.375em - 1px);position:relative;vertical-align:top}.pagination-previous:focus,.pagination-next:focus,.pagination-link:focus,.pagination-ellipsis:focus,.file-cta:focus,.file-name:focus,.select select:focus,.textarea:focus,.input:focus,#documenter .docs-sidebar form.docs-search>input:focus,.button:focus,.is-focused.pagination-previous,.is-focused.pagination-next,.is-focused.pagination-link,.is-focused.pagination-ellipsis,.is-focused.file-cta,.is-focused.file-name,.select select.is-focused,.is-focused.textarea,.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-focused.button,.pagination-previous:active,.pagination-next:active,.pagination-link:active,.pagination-ellipsis:active,.file-cta:active,.file-name:active,.select select:active,.textarea:active,.input:active,#documenter .docs-sidebar form.docs-search>input:active,.button:active,.is-active.pagination-previous,.is-active.pagination-next,.is-active.pagination-link,.is-active.pagination-ellipsis,.is-active.file-cta,.is-active.file-name,.select select.is-active,.is-active.textarea,.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.is-active.button{outline:none}.pagination-previous[disabled],.pagination-next[disabled],.pagination-link[disabled],.pagination-ellipsis[disabled],.file-cta[disabled],.file-name[disabled],.select select[disabled],.textarea[disabled],.input[disabled],#documenter .docs-sidebar form.docs-search>input[disabled],.button[disabled],fieldset[disabled] .pagination-previous,fieldset[disabled] .pagination-next,fieldset[disabled] .pagination-link,fieldset[disabled] .pagination-ellipsis,fieldset[disabled] .file-cta,fieldset[disabled] .file-name,fieldset[disabled] .select select,.select fieldset[disabled] select,fieldset[disabled] .textarea,fieldset[disabled] .input,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input,fieldset[disabled] .button{cursor:not-allowed}/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */html,body,p,ol,ul,li,dl,dt,dd,blockquote,figure,fieldset,legend,textarea,pre,iframe,hr,h1,h2,h3,h4,h5,h6{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}img,embed,iframe,object,video{height:auto;max-width:100%}audio{max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:left}html{background-color:#fff;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}article,aside,figure,footer,header,hgroup,section{display:block}body,button,input,select,textarea{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif}code,pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}body{color:#222;font-size:1em;font-weight:400;line-height:1.5}a{color:#2e63b8;cursor:pointer;text-decoration:none}a strong{color:currentColor}a:hover{color:#363636}code{background-color:rgba(0,0,0,0.05);color:#000;font-size:.875em;font-weight:normal;padding:.1em}hr{background-color:#f5f5f5;border:none;display:block;height:2px;margin:1.5rem 0}img{height:auto;max-width:100%}input[type="checkbox"],input[type="radio"]{vertical-align:baseline}small{font-size:.875em}span{font-style:inherit;font-weight:inherit}strong{color:#222;font-weight:700}fieldset{border:none}pre{-webkit-overflow-scrolling:touch;background-color:#f5f5f5;color:#222;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}table td,table th{vertical-align:top}table td:not([align]),table th:not([align]){text-align:left}table th{color:#222}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left !important}.is-pulled-right{float:right !important}.is-clipped{overflow:hidden !important}.is-size-1{font-size:3rem !important}.is-size-2{font-size:2.5rem !important}.is-size-3{font-size:2rem !important}.is-size-4{font-size:1.5rem !important}.is-size-5{font-size:1.25rem !important}.is-size-6{font-size:1rem !important}.is-size-7,.docstring>section>a.docs-sourcelink{font-size:.75rem !important}@media screen and (max-width: 768px){.is-size-1-mobile{font-size:3rem !important}.is-size-2-mobile{font-size:2.5rem !important}.is-size-3-mobile{font-size:2rem !important}.is-size-4-mobile{font-size:1.5rem !important}.is-size-5-mobile{font-size:1.25rem !important}.is-size-6-mobile{font-size:1rem !important}.is-size-7-mobile{font-size:.75rem !important}}@media screen and (min-width: 769px),print{.is-size-1-tablet{font-size:3rem !important}.is-size-2-tablet{font-size:2.5rem !important}.is-size-3-tablet{font-size:2rem !important}.is-size-4-tablet{font-size:1.5rem !important}.is-size-5-tablet{font-size:1.25rem !important}.is-size-6-tablet{font-size:1rem !important}.is-size-7-tablet{font-size:.75rem !important}}@media screen and (max-width: 1055px){.is-size-1-touch{font-size:3rem !important}.is-size-2-touch{font-size:2.5rem !important}.is-size-3-touch{font-size:2rem !important}.is-size-4-touch{font-size:1.5rem !important}.is-size-5-touch{font-size:1.25rem !important}.is-size-6-touch{font-size:1rem !important}.is-size-7-touch{font-size:.75rem !important}}@media screen and (min-width: 1056px){.is-size-1-desktop{font-size:3rem !important}.is-size-2-desktop{font-size:2.5rem !important}.is-size-3-desktop{font-size:2rem !important}.is-size-4-desktop{font-size:1.5rem !important}.is-size-5-desktop{font-size:1.25rem !important}.is-size-6-desktop{font-size:1rem !important}.is-size-7-desktop{font-size:.75rem !important}}@media screen and (min-width: 1216px){.is-size-1-widescreen{font-size:3rem !important}.is-size-2-widescreen{font-size:2.5rem !important}.is-size-3-widescreen{font-size:2rem !important}.is-size-4-widescreen{font-size:1.5rem !important}.is-size-5-widescreen{font-size:1.25rem !important}.is-size-6-widescreen{font-size:1rem !important}.is-size-7-widescreen{font-size:.75rem !important}}@media screen and (min-width: 1408px){.is-size-1-fullhd{font-size:3rem !important}.is-size-2-fullhd{font-size:2.5rem !important}.is-size-3-fullhd{font-size:2rem !important}.is-size-4-fullhd{font-size:1.5rem !important}.is-size-5-fullhd{font-size:1.25rem !important}.is-size-6-fullhd{font-size:1rem !important}.is-size-7-fullhd{font-size:.75rem !important}}.has-text-centered{text-align:center !important}.has-text-justified{text-align:justify !important}.has-text-left{text-align:left !important}.has-text-right{text-align:right !important}@media screen and (max-width: 768px){.has-text-centered-mobile{text-align:center !important}}@media screen and (min-width: 769px),print{.has-text-centered-tablet{text-align:center !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-centered-tablet-only{text-align:center !important}}@media screen and (max-width: 1055px){.has-text-centered-touch{text-align:center !important}}@media screen and (min-width: 1056px){.has-text-centered-desktop{text-align:center !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-centered-desktop-only{text-align:center !important}}@media screen and (min-width: 1216px){.has-text-centered-widescreen{text-align:center !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-centered-widescreen-only{text-align:center !important}}@media screen and (min-width: 1408px){.has-text-centered-fullhd{text-align:center !important}}@media screen and (max-width: 768px){.has-text-justified-mobile{text-align:justify !important}}@media screen and (min-width: 769px),print{.has-text-justified-tablet{text-align:justify !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-justified-tablet-only{text-align:justify !important}}@media screen and (max-width: 1055px){.has-text-justified-touch{text-align:justify !important}}@media screen and (min-width: 1056px){.has-text-justified-desktop{text-align:justify !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-justified-desktop-only{text-align:justify !important}}@media screen and (min-width: 1216px){.has-text-justified-widescreen{text-align:justify !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-justified-widescreen-only{text-align:justify !important}}@media screen and (min-width: 1408px){.has-text-justified-fullhd{text-align:justify !important}}@media screen and (max-width: 768px){.has-text-left-mobile{text-align:left !important}}@media screen and (min-width: 769px),print{.has-text-left-tablet{text-align:left !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-left-tablet-only{text-align:left !important}}@media screen and (max-width: 1055px){.has-text-left-touch{text-align:left !important}}@media screen and (min-width: 1056px){.has-text-left-desktop{text-align:left !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-left-desktop-only{text-align:left !important}}@media screen and (min-width: 1216px){.has-text-left-widescreen{text-align:left !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-left-widescreen-only{text-align:left !important}}@media screen and (min-width: 1408px){.has-text-left-fullhd{text-align:left !important}}@media screen and (max-width: 768px){.has-text-right-mobile{text-align:right !important}}@media screen and (min-width: 769px),print{.has-text-right-tablet{text-align:right !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-right-tablet-only{text-align:right !important}}@media screen and (max-width: 1055px){.has-text-right-touch{text-align:right !important}}@media screen and (min-width: 1056px){.has-text-right-desktop{text-align:right !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-right-desktop-only{text-align:right !important}}@media screen and (min-width: 1216px){.has-text-right-widescreen{text-align:right !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-right-widescreen-only{text-align:right !important}}@media screen and (min-width: 1408px){.has-text-right-fullhd{text-align:right !important}}.is-capitalized{text-transform:capitalize !important}.is-lowercase{text-transform:lowercase !important}.is-uppercase{text-transform:uppercase !important}.is-italic{font-style:italic !important}.has-text-white{color:#fff !important}a.has-text-white:hover,a.has-text-white:focus{color:#e6e6e6 !important}.has-background-white{background-color:#fff !important}.has-text-black{color:#0a0a0a !important}a.has-text-black:hover,a.has-text-black:focus{color:#000 !important}.has-background-black{background-color:#0a0a0a !important}.has-text-light{color:#f5f5f5 !important}a.has-text-light:hover,a.has-text-light:focus{color:#dbdbdb !important}.has-background-light{background-color:#f5f5f5 !important}.has-text-dark{color:#363636 !important}a.has-text-dark:hover,a.has-text-dark:focus{color:#1c1c1c !important}.has-background-dark{background-color:#363636 !important}.has-text-primary{color:#4eb5de !important}a.has-text-primary:hover,a.has-text-primary:focus{color:#27a1d2 !important}.has-background-primary{background-color:#4eb5de !important}.has-text-link{color:#2e63b8 !important}a.has-text-link:hover,a.has-text-link:focus{color:#244d8f !important}.has-background-link{background-color:#2e63b8 !important}.has-text-info{color:#209cee !important}a.has-text-info:hover,a.has-text-info:focus{color:#1081cb !important}.has-background-info{background-color:#209cee !important}.has-text-success{color:#22c35b !important}a.has-text-success:hover,a.has-text-success:focus{color:#1a9847 !important}.has-background-success{background-color:#22c35b !important}.has-text-warning{color:#ffdd57 !important}a.has-text-warning:hover,a.has-text-warning:focus{color:#ffd324 !important}.has-background-warning{background-color:#ffdd57 !important}.has-text-danger{color:#da0b00 !important}a.has-text-danger:hover,a.has-text-danger:focus{color:#a70800 !important}.has-background-danger{background-color:#da0b00 !important}.has-text-black-bis{color:#121212 !important}.has-background-black-bis{background-color:#121212 !important}.has-text-black-ter{color:#242424 !important}.has-background-black-ter{background-color:#242424 !important}.has-text-grey-darker{color:#363636 !important}.has-background-grey-darker{background-color:#363636 !important}.has-text-grey-dark{color:#4a4a4a !important}.has-background-grey-dark{background-color:#4a4a4a !important}.has-text-grey{color:#6b6b6b !important}.has-background-grey{background-color:#6b6b6b !important}.has-text-grey-light{color:#b5b5b5 !important}.has-background-grey-light{background-color:#b5b5b5 !important}.has-text-grey-lighter{color:#dbdbdb !important}.has-background-grey-lighter{background-color:#dbdbdb !important}.has-text-white-ter{color:#f5f5f5 !important}.has-background-white-ter{background-color:#f5f5f5 !important}.has-text-white-bis{color:#fafafa !important}.has-background-white-bis{background-color:#fafafa !important}.has-text-weight-light{font-weight:300 !important}.has-text-weight-normal{font-weight:400 !important}.has-text-weight-medium{font-weight:500 !important}.has-text-weight-semibold{font-weight:600 !important}.has-text-weight-bold{font-weight:700 !important}.is-family-primary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-secondary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-sans-serif{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-monospace{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-family-code{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-block{display:block !important}@media screen and (max-width: 768px){.is-block-mobile{display:block !important}}@media screen and (min-width: 769px),print{.is-block-tablet{display:block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-block-tablet-only{display:block !important}}@media screen and (max-width: 1055px){.is-block-touch{display:block !important}}@media screen and (min-width: 1056px){.is-block-desktop{display:block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-block-desktop-only{display:block !important}}@media screen and (min-width: 1216px){.is-block-widescreen{display:block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-block-widescreen-only{display:block !important}}@media screen and (min-width: 1408px){.is-block-fullhd{display:block !important}}.is-flex{display:flex !important}@media screen and (max-width: 768px){.is-flex-mobile{display:flex !important}}@media screen and (min-width: 769px),print{.is-flex-tablet{display:flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-flex-tablet-only{display:flex !important}}@media screen and (max-width: 1055px){.is-flex-touch{display:flex !important}}@media screen and (min-width: 1056px){.is-flex-desktop{display:flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-flex-desktop-only{display:flex !important}}@media screen and (min-width: 1216px){.is-flex-widescreen{display:flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-flex-widescreen-only{display:flex !important}}@media screen and (min-width: 1408px){.is-flex-fullhd{display:flex !important}}.is-inline{display:inline !important}@media screen and (max-width: 768px){.is-inline-mobile{display:inline !important}}@media screen and (min-width: 769px),print{.is-inline-tablet{display:inline !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-tablet-only{display:inline !important}}@media screen and (max-width: 1055px){.is-inline-touch{display:inline !important}}@media screen and (min-width: 1056px){.is-inline-desktop{display:inline !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-desktop-only{display:inline !important}}@media screen and (min-width: 1216px){.is-inline-widescreen{display:inline !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-widescreen-only{display:inline !important}}@media screen and (min-width: 1408px){.is-inline-fullhd{display:inline !important}}.is-inline-block{display:inline-block !important}@media screen and (max-width: 768px){.is-inline-block-mobile{display:inline-block !important}}@media screen and (min-width: 769px),print{.is-inline-block-tablet{display:inline-block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-block-tablet-only{display:inline-block !important}}@media screen and (max-width: 1055px){.is-inline-block-touch{display:inline-block !important}}@media screen and (min-width: 1056px){.is-inline-block-desktop{display:inline-block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-block-desktop-only{display:inline-block !important}}@media screen and (min-width: 1216px){.is-inline-block-widescreen{display:inline-block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-block-widescreen-only{display:inline-block !important}}@media screen and (min-width: 1408px){.is-inline-block-fullhd{display:inline-block !important}}.is-inline-flex{display:inline-flex !important}@media screen and (max-width: 768px){.is-inline-flex-mobile{display:inline-flex !important}}@media screen and (min-width: 769px),print{.is-inline-flex-tablet{display:inline-flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-flex-tablet-only{display:inline-flex !important}}@media screen and (max-width: 1055px){.is-inline-flex-touch{display:inline-flex !important}}@media screen and (min-width: 1056px){.is-inline-flex-desktop{display:inline-flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-flex-desktop-only{display:inline-flex !important}}@media screen and (min-width: 1216px){.is-inline-flex-widescreen{display:inline-flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-flex-widescreen-only{display:inline-flex !important}}@media screen and (min-width: 1408px){.is-inline-flex-fullhd{display:inline-flex !important}}.is-hidden{display:none !important}.is-sr-only{border:none !important;clip:rect(0, 0, 0, 0) !important;height:0.01em !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:0.01em !important}@media screen and (max-width: 768px){.is-hidden-mobile{display:none !important}}@media screen and (min-width: 769px),print{.is-hidden-tablet{display:none !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-hidden-tablet-only{display:none !important}}@media screen and (max-width: 1055px){.is-hidden-touch{display:none !important}}@media screen and (min-width: 1056px){.is-hidden-desktop{display:none !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-hidden-desktop-only{display:none !important}}@media screen and (min-width: 1216px){.is-hidden-widescreen{display:none !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-hidden-widescreen-only{display:none !important}}@media screen and (min-width: 1408px){.is-hidden-fullhd{display:none !important}}.is-invisible{visibility:hidden !important}@media screen and (max-width: 768px){.is-invisible-mobile{visibility:hidden !important}}@media screen and (min-width: 769px),print{.is-invisible-tablet{visibility:hidden !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-invisible-tablet-only{visibility:hidden !important}}@media screen and (max-width: 1055px){.is-invisible-touch{visibility:hidden !important}}@media screen and (min-width: 1056px){.is-invisible-desktop{visibility:hidden !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-invisible-desktop-only{visibility:hidden !important}}@media screen and (min-width: 1216px){.is-invisible-widescreen{visibility:hidden !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-invisible-widescreen-only{visibility:hidden !important}}@media screen and (min-width: 1408px){.is-invisible-fullhd{visibility:hidden !important}}.is-marginless{margin:0 !important}.is-paddingless{padding:0 !important}.is-radiusless{border-radius:0 !important}.is-shadowless{box-shadow:none !important}.is-relative{position:relative !important}.box{background-color:#fff;border-radius:6px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#222;display:block;padding:1.25rem}a.box:hover,a.box:focus{box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px #2e63b8}a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2),0 0 0 1px #2e63b8}.button{background-color:#fff;border-color:#dbdbdb;border-width:1px;color:#363636;cursor:pointer;justify-content:center;padding-bottom:calc(0.375em - 1px);padding-left:.75em;padding-right:.75em;padding-top:calc(0.375em - 1px);text-align:center;white-space:nowrap}.button strong{color:inherit}.button .icon,.button .icon.is-small,.button #documenter .docs-sidebar form.docs-search>input.icon,#documenter .docs-sidebar .button form.docs-search>input.icon,.button .icon.is-medium,.button .icon.is-large{height:1.5em;width:1.5em}.button .icon:first-child:not(:last-child){margin-left:calc(-0.375em - 1px);margin-right:0.1875em}.button .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:calc(-0.375em - 1px)}.button .icon:first-child:last-child{margin-left:calc(-0.375em - 1px);margin-right:calc(-0.375em - 1px)}.button:hover,.button.is-hovered{border-color:#b5b5b5;color:#363636}.button:focus,.button.is-focused{border-color:#3c5dcd;color:#363636}.button:focus:not(:active),.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.button:active,.button.is-active{border-color:#4a4a4a;color:#363636}.button.is-text{background-color:transparent;border-color:transparent;color:#222;text-decoration:underline}.button.is-text:hover,.button.is-text.is-hovered,.button.is-text:focus,.button.is-text.is-focused{background-color:#f5f5f5;color:#222}.button.is-text:active,.button.is-text.is-active{background-color:#e8e8e8;color:#222}.button.is-text[disabled],fieldset[disabled] .button.is-text{background-color:transparent;border-color:transparent;box-shadow:none}.button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}.button.is-white:hover,.button.is-white.is-hovered{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.button.is-white:focus,.button.is-white.is-focused{border-color:transparent;color:#0a0a0a}.button.is-white:focus:not(:active),.button.is-white.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.button.is-white:active,.button.is-white.is-active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.button.is-white[disabled],fieldset[disabled] .button.is-white{background-color:#fff;border-color:transparent;box-shadow:none}.button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted:hover,.button.is-white.is-inverted.is-hovered{background-color:#000}.button.is-white.is-inverted[disabled],fieldset[disabled] .button.is-white.is-inverted{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}.button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-white.is-outlined:hover,.button.is-white.is-outlined.is-hovered,.button.is-white.is-outlined:focus,.button.is-white.is-outlined.is-focused{background-color:#fff;border-color:#fff;color:#0a0a0a}.button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-white.is-outlined.is-loading:hover::after,.button.is-white.is-outlined.is-loading.is-hovered::after,.button.is-white.is-outlined.is-loading:focus::after,.button.is-white.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-white.is-outlined[disabled],fieldset[disabled] .button.is-white.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-white.is-inverted.is-outlined:hover,.button.is-white.is-inverted.is-outlined.is-hovered,.button.is-white.is-inverted.is-outlined:focus,.button.is-white.is-inverted.is-outlined.is-focused{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted.is-outlined.is-loading:hover::after,.button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-white.is-inverted.is-outlined.is-loading:focus::after,.button.is-white.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-white.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}.button.is-black:hover,.button.is-black.is-hovered{background-color:#040404;border-color:transparent;color:#fff}.button.is-black:focus,.button.is-black.is-focused{border-color:transparent;color:#fff}.button.is-black:focus:not(:active),.button.is-black.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.button.is-black:active,.button.is-black.is-active{background-color:#000;border-color:transparent;color:#fff}.button.is-black[disabled],fieldset[disabled] .button.is-black{background-color:#0a0a0a;border-color:transparent;box-shadow:none}.button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted:hover,.button.is-black.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-black.is-inverted[disabled],fieldset[disabled] .button.is-black.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}.button.is-black.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-black.is-outlined:hover,.button.is-black.is-outlined.is-hovered,.button.is-black.is-outlined:focus,.button.is-black.is-outlined.is-focused{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-black.is-outlined.is-loading:hover::after,.button.is-black.is-outlined.is-loading.is-hovered::after,.button.is-black.is-outlined.is-loading:focus::after,.button.is-black.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-black.is-outlined[disabled],fieldset[disabled] .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-black.is-inverted.is-outlined:hover,.button.is-black.is-inverted.is-outlined.is-hovered,.button.is-black.is-inverted.is-outlined:focus,.button.is-black.is-inverted.is-outlined.is-focused{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted.is-outlined.is-loading:hover::after,.button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-black.is-inverted.is-outlined.is-loading:focus::after,.button.is-black.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-black.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-light{background-color:#f5f5f5;border-color:transparent;color:#363636}.button.is-light:hover,.button.is-light.is-hovered{background-color:#eee;border-color:transparent;color:#363636}.button.is-light:focus,.button.is-light.is-focused{border-color:transparent;color:#363636}.button.is-light:focus:not(:active),.button.is-light.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.button.is-light:active,.button.is-light.is-active{background-color:#e8e8e8;border-color:transparent;color:#363636}.button.is-light[disabled],fieldset[disabled] .button.is-light{background-color:#f5f5f5;border-color:transparent;box-shadow:none}.button.is-light.is-inverted{background-color:#363636;color:#f5f5f5}.button.is-light.is-inverted:hover,.button.is-light.is-inverted.is-hovered{background-color:#292929}.button.is-light.is-inverted[disabled],fieldset[disabled] .button.is-light.is-inverted{background-color:#363636;border-color:transparent;box-shadow:none;color:#f5f5f5}.button.is-light.is-loading::after{border-color:transparent transparent #363636 #363636 !important}.button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}.button.is-light.is-outlined:hover,.button.is-light.is-outlined.is-hovered,.button.is-light.is-outlined:focus,.button.is-light.is-outlined.is-focused{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-light.is-outlined.is-loading:hover::after,.button.is-light.is-outlined.is-loading.is-hovered::after,.button.is-light.is-outlined.is-loading:focus::after,.button.is-light.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #363636 #363636 !important}.button.is-light.is-outlined[disabled],fieldset[disabled] .button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}.button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#363636;color:#363636}.button.is-light.is-inverted.is-outlined:hover,.button.is-light.is-inverted.is-outlined.is-hovered,.button.is-light.is-inverted.is-outlined:focus,.button.is-light.is-inverted.is-outlined.is-focused{background-color:#363636;color:#f5f5f5}.button.is-light.is-inverted.is-outlined.is-loading:hover::after,.button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-light.is-inverted.is-outlined.is-loading:focus::after,.button.is-light.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-light.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#363636;box-shadow:none;color:#363636}.button.is-dark,.content kbd.button{background-color:#363636;border-color:transparent;color:#f5f5f5}.button.is-dark:hover,.content kbd.button:hover,.button.is-dark.is-hovered,.content kbd.button.is-hovered{background-color:#2f2f2f;border-color:transparent;color:#f5f5f5}.button.is-dark:focus,.content kbd.button:focus,.button.is-dark.is-focused,.content kbd.button.is-focused{border-color:transparent;color:#f5f5f5}.button.is-dark:focus:not(:active),.content kbd.button:focus:not(:active),.button.is-dark.is-focused:not(:active),.content kbd.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.button.is-dark:active,.content kbd.button:active,.button.is-dark.is-active,.content kbd.button.is-active{background-color:#292929;border-color:transparent;color:#f5f5f5}.button.is-dark[disabled],.content kbd.button[disabled],fieldset[disabled] .button.is-dark,fieldset[disabled] .content kbd.button,.content fieldset[disabled] kbd.button{background-color:#363636;border-color:transparent;box-shadow:none}.button.is-dark.is-inverted,.content kbd.button.is-inverted{background-color:#f5f5f5;color:#363636}.button.is-dark.is-inverted:hover,.content kbd.button.is-inverted:hover,.button.is-dark.is-inverted.is-hovered,.content kbd.button.is-inverted.is-hovered{background-color:#e8e8e8}.button.is-dark.is-inverted[disabled],.content kbd.button.is-inverted[disabled],fieldset[disabled] .button.is-dark.is-inverted,fieldset[disabled] .content kbd.button.is-inverted,.content fieldset[disabled] kbd.button.is-inverted{background-color:#f5f5f5;border-color:transparent;box-shadow:none;color:#363636}.button.is-dark.is-loading::after,.content kbd.button.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-dark.is-outlined,.content kbd.button.is-outlined{background-color:transparent;border-color:#363636;color:#363636}.button.is-dark.is-outlined:hover,.content kbd.button.is-outlined:hover,.button.is-dark.is-outlined.is-hovered,.content kbd.button.is-outlined.is-hovered,.button.is-dark.is-outlined:focus,.content kbd.button.is-outlined:focus,.button.is-dark.is-outlined.is-focused,.content kbd.button.is-outlined.is-focused{background-color:#363636;border-color:#363636;color:#f5f5f5}.button.is-dark.is-outlined.is-loading::after,.content kbd.button.is-outlined.is-loading::after{border-color:transparent transparent #363636 #363636 !important}.button.is-dark.is-outlined.is-loading:hover::after,.content kbd.button.is-outlined.is-loading:hover::after,.button.is-dark.is-outlined.is-loading.is-hovered::after,.content kbd.button.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-outlined.is-loading:focus::after,.content kbd.button.is-outlined.is-loading:focus::after,.button.is-dark.is-outlined.is-loading.is-focused::after,.content kbd.button.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-dark.is-outlined[disabled],.content kbd.button.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-outlined,fieldset[disabled] .content kbd.button.is-outlined,.content fieldset[disabled] kbd.button.is-outlined{background-color:transparent;border-color:#363636;box-shadow:none;color:#363636}.button.is-dark.is-inverted.is-outlined,.content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}.button.is-dark.is-inverted.is-outlined:hover,.content kbd.button.is-inverted.is-outlined:hover,.button.is-dark.is-inverted.is-outlined.is-hovered,.content kbd.button.is-inverted.is-outlined.is-hovered,.button.is-dark.is-inverted.is-outlined:focus,.content kbd.button.is-inverted.is-outlined:focus,.button.is-dark.is-inverted.is-outlined.is-focused,.content kbd.button.is-inverted.is-outlined.is-focused{background-color:#f5f5f5;color:#363636}.button.is-dark.is-inverted.is-outlined.is-loading:hover::after,.content kbd.button.is-inverted.is-outlined.is-loading:hover::after,.button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,.content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-inverted.is-outlined.is-loading:focus::after,.content kbd.button.is-inverted.is-outlined.is-loading:focus::after,.button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,.content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #363636 #363636 !important}.button.is-dark.is-inverted.is-outlined[disabled],.content kbd.button.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-inverted.is-outlined,fieldset[disabled] .content kbd.button.is-inverted.is-outlined,.content fieldset[disabled] kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}.button.is-primary,.docstring>section>a.button.docs-sourcelink{background-color:#4eb5de;border-color:transparent;color:#fff}.button.is-primary:hover,.docstring>section>a.button.docs-sourcelink:hover,.button.is-primary.is-hovered,.docstring>section>a.button.is-hovered.docs-sourcelink{background-color:#43b1dc;border-color:transparent;color:#fff}.button.is-primary:focus,.docstring>section>a.button.docs-sourcelink:focus,.button.is-primary.is-focused,.docstring>section>a.button.is-focused.docs-sourcelink{border-color:transparent;color:#fff}.button.is-primary:focus:not(:active),.docstring>section>a.button.docs-sourcelink:focus:not(:active),.button.is-primary.is-focused:not(:active),.docstring>section>a.button.is-focused.docs-sourcelink:not(:active){box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.button.is-primary:active,.docstring>section>a.button.docs-sourcelink:active,.button.is-primary.is-active,.docstring>section>a.button.is-active.docs-sourcelink{background-color:#39acda;border-color:transparent;color:#fff}.button.is-primary[disabled],.docstring>section>a.button.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary,fieldset[disabled] .docstring>section>a.button.docs-sourcelink{background-color:#4eb5de;border-color:transparent;box-shadow:none}.button.is-primary.is-inverted,.docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;color:#4eb5de}.button.is-primary.is-inverted:hover,.docstring>section>a.button.is-inverted.docs-sourcelink:hover,.button.is-primary.is-inverted.is-hovered,.docstring>section>a.button.is-inverted.is-hovered.docs-sourcelink{background-color:#f2f2f2}.button.is-primary.is-inverted[disabled],.docstring>section>a.button.is-inverted.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-inverted,fieldset[disabled] .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;border-color:transparent;box-shadow:none;color:#4eb5de}.button.is-primary.is-loading::after,.docstring>section>a.button.is-loading.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}.button.is-primary.is-outlined,.docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#4eb5de;color:#4eb5de}.button.is-primary.is-outlined:hover,.docstring>section>a.button.is-outlined.docs-sourcelink:hover,.button.is-primary.is-outlined.is-hovered,.docstring>section>a.button.is-outlined.is-hovered.docs-sourcelink,.button.is-primary.is-outlined:focus,.docstring>section>a.button.is-outlined.docs-sourcelink:focus,.button.is-primary.is-outlined.is-focused,.docstring>section>a.button.is-outlined.is-focused.docs-sourcelink{background-color:#4eb5de;border-color:#4eb5de;color:#fff}.button.is-primary.is-outlined.is-loading::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink::after{border-color:transparent transparent #4eb5de #4eb5de !important}.button.is-primary.is-outlined.is-loading:hover::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:hover::after,.button.is-primary.is-outlined.is-loading.is-hovered::after,.docstring>section>a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after,.button.is-primary.is-outlined.is-loading:focus::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:focus::after,.button.is-primary.is-outlined.is-loading.is-focused::after,.docstring>section>a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}.button.is-primary.is-outlined[disabled],.docstring>section>a.button.is-outlined.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-outlined,fieldset[disabled] .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#4eb5de;box-shadow:none;color:#4eb5de}.button.is-primary.is-inverted.is-outlined,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;color:#fff}.button.is-primary.is-inverted.is-outlined:hover,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:hover,.button.is-primary.is-inverted.is-outlined.is-hovered,.docstring>section>a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink,.button.is-primary.is-inverted.is-outlined:focus,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:focus,.button.is-primary.is-inverted.is-outlined.is-focused,.docstring>section>a.button.is-inverted.is-outlined.is-focused.docs-sourcelink{background-color:#fff;color:#4eb5de}.button.is-primary.is-inverted.is-outlined.is-loading:hover::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after,.button.is-primary.is-inverted.is-outlined.is-loading:focus::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #4eb5de #4eb5de !important}.button.is-primary.is-inverted.is-outlined[disabled],.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-inverted.is-outlined,fieldset[disabled] .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-link{background-color:#2e63b8;border-color:transparent;color:#fff}.button.is-link:hover,.button.is-link.is-hovered{background-color:#2b5eae;border-color:transparent;color:#fff}.button.is-link:focus,.button.is-link.is-focused{border-color:transparent;color:#fff}.button.is-link:focus:not(:active),.button.is-link.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.button.is-link:active,.button.is-link.is-active{background-color:#2958a4;border-color:transparent;color:#fff}.button.is-link[disabled],fieldset[disabled] .button.is-link{background-color:#2e63b8;border-color:transparent;box-shadow:none}.button.is-link.is-inverted{background-color:#fff;color:#2e63b8}.button.is-link.is-inverted:hover,.button.is-link.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-link.is-inverted[disabled],fieldset[disabled] .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#2e63b8}.button.is-link.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-link.is-outlined{background-color:transparent;border-color:#2e63b8;color:#2e63b8}.button.is-link.is-outlined:hover,.button.is-link.is-outlined.is-hovered,.button.is-link.is-outlined:focus,.button.is-link.is-outlined.is-focused{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #2e63b8 #2e63b8 !important}.button.is-link.is-outlined.is-loading:hover::after,.button.is-link.is-outlined.is-loading.is-hovered::after,.button.is-link.is-outlined.is-loading:focus::after,.button.is-link.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-link.is-outlined[disabled],fieldset[disabled] .button.is-link.is-outlined{background-color:transparent;border-color:#2e63b8;box-shadow:none;color:#2e63b8}.button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-link.is-inverted.is-outlined:hover,.button.is-link.is-inverted.is-outlined.is-hovered,.button.is-link.is-inverted.is-outlined:focus,.button.is-link.is-inverted.is-outlined.is-focused{background-color:#fff;color:#2e63b8}.button.is-link.is-inverted.is-outlined.is-loading:hover::after,.button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-link.is-inverted.is-outlined.is-loading:focus::after,.button.is-link.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #2e63b8 #2e63b8 !important}.button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-info{background-color:#209cee;border-color:transparent;color:#fff}.button.is-info:hover,.button.is-info.is-hovered{background-color:#1497ed;border-color:transparent;color:#fff}.button.is-info:focus,.button.is-info.is-focused{border-color:transparent;color:#fff}.button.is-info:focus:not(:active),.button.is-info.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.button.is-info:active,.button.is-info.is-active{background-color:#1190e3;border-color:transparent;color:#fff}.button.is-info[disabled],fieldset[disabled] .button.is-info{background-color:#209cee;border-color:transparent;box-shadow:none}.button.is-info.is-inverted{background-color:#fff;color:#209cee}.button.is-info.is-inverted:hover,.button.is-info.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-info.is-inverted[disabled],fieldset[disabled] .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#209cee}.button.is-info.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-info.is-outlined{background-color:transparent;border-color:#209cee;color:#209cee}.button.is-info.is-outlined:hover,.button.is-info.is-outlined.is-hovered,.button.is-info.is-outlined:focus,.button.is-info.is-outlined.is-focused{background-color:#209cee;border-color:#209cee;color:#fff}.button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #209cee #209cee !important}.button.is-info.is-outlined.is-loading:hover::after,.button.is-info.is-outlined.is-loading.is-hovered::after,.button.is-info.is-outlined.is-loading:focus::after,.button.is-info.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-info.is-outlined[disabled],fieldset[disabled] .button.is-info.is-outlined{background-color:transparent;border-color:#209cee;box-shadow:none;color:#209cee}.button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-info.is-inverted.is-outlined:hover,.button.is-info.is-inverted.is-outlined.is-hovered,.button.is-info.is-inverted.is-outlined:focus,.button.is-info.is-inverted.is-outlined.is-focused{background-color:#fff;color:#209cee}.button.is-info.is-inverted.is-outlined.is-loading:hover::after,.button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-info.is-inverted.is-outlined.is-loading:focus::after,.button.is-info.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #209cee #209cee !important}.button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-success{background-color:#22c35b;border-color:transparent;color:#fff}.button.is-success:hover,.button.is-success.is-hovered{background-color:#20b856;border-color:transparent;color:#fff}.button.is-success:focus,.button.is-success.is-focused{border-color:transparent;color:#fff}.button.is-success:focus:not(:active),.button.is-success.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.button.is-success:active,.button.is-success.is-active{background-color:#1ead51;border-color:transparent;color:#fff}.button.is-success[disabled],fieldset[disabled] .button.is-success{background-color:#22c35b;border-color:transparent;box-shadow:none}.button.is-success.is-inverted{background-color:#fff;color:#22c35b}.button.is-success.is-inverted:hover,.button.is-success.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-success.is-inverted[disabled],fieldset[disabled] .button.is-success.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#22c35b}.button.is-success.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-success.is-outlined{background-color:transparent;border-color:#22c35b;color:#22c35b}.button.is-success.is-outlined:hover,.button.is-success.is-outlined.is-hovered,.button.is-success.is-outlined:focus,.button.is-success.is-outlined.is-focused{background-color:#22c35b;border-color:#22c35b;color:#fff}.button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #22c35b #22c35b !important}.button.is-success.is-outlined.is-loading:hover::after,.button.is-success.is-outlined.is-loading.is-hovered::after,.button.is-success.is-outlined.is-loading:focus::after,.button.is-success.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-success.is-outlined[disabled],fieldset[disabled] .button.is-success.is-outlined{background-color:transparent;border-color:#22c35b;box-shadow:none;color:#22c35b}.button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-success.is-inverted.is-outlined:hover,.button.is-success.is-inverted.is-outlined.is-hovered,.button.is-success.is-inverted.is-outlined:focus,.button.is-success.is-inverted.is-outlined.is-focused{background-color:#fff;color:#22c35b}.button.is-success.is-inverted.is-outlined.is-loading:hover::after,.button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-success.is-inverted.is-outlined.is-loading:focus::after,.button.is-success.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #22c35b #22c35b !important}.button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-warning{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:hover,.button.is-warning.is-hovered{background-color:#ffda4a;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:focus,.button.is-warning.is-focused{border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:focus:not(:active),.button.is-warning.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.button.is-warning:active,.button.is-warning.is-active{background-color:#ffd83e;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning[disabled],fieldset[disabled] .button.is-warning{background-color:#ffdd57;border-color:transparent;box-shadow:none}.button.is-warning.is-inverted{background-color:rgba(0,0,0,0.7);color:#ffdd57}.button.is-warning.is-inverted:hover,.button.is-warning.is-inverted.is-hovered{background-color:rgba(0,0,0,0.7)}.button.is-warning.is-inverted[disabled],fieldset[disabled] .button.is-warning.is-inverted{background-color:rgba(0,0,0,0.7);border-color:transparent;box-shadow:none;color:#ffdd57}.button.is-warning.is-loading::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}.button.is-warning.is-outlined{background-color:transparent;border-color:#ffdd57;color:#ffdd57}.button.is-warning.is-outlined:hover,.button.is-warning.is-outlined.is-hovered,.button.is-warning.is-outlined:focus,.button.is-warning.is-outlined.is-focused{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,0.7)}.button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #ffdd57 #ffdd57 !important}.button.is-warning.is-outlined.is-loading:hover::after,.button.is-warning.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-outlined.is-loading:focus::after,.button.is-warning.is-outlined.is-loading.is-focused::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}.button.is-warning.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-outlined{background-color:transparent;border-color:#ffdd57;box-shadow:none;color:#ffdd57}.button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);color:rgba(0,0,0,0.7)}.button.is-warning.is-inverted.is-outlined:hover,.button.is-warning.is-inverted.is-outlined.is-hovered,.button.is-warning.is-inverted.is-outlined:focus,.button.is-warning.is-inverted.is-outlined.is-focused{background-color:rgba(0,0,0,0.7);color:#ffdd57}.button.is-warning.is-inverted.is-outlined.is-loading:hover::after,.button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-inverted.is-outlined.is-loading:focus::after,.button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ffdd57 #ffdd57 !important}.button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);box-shadow:none;color:rgba(0,0,0,0.7)}.button.is-danger{background-color:#da0b00;border-color:transparent;color:#fff}.button.is-danger:hover,.button.is-danger.is-hovered{background-color:#cd0a00;border-color:transparent;color:#fff}.button.is-danger:focus,.button.is-danger.is-focused{border-color:transparent;color:#fff}.button.is-danger:focus:not(:active),.button.is-danger.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.button.is-danger:active,.button.is-danger.is-active{background-color:#c10a00;border-color:transparent;color:#fff}.button.is-danger[disabled],fieldset[disabled] .button.is-danger{background-color:#da0b00;border-color:transparent;box-shadow:none}.button.is-danger.is-inverted{background-color:#fff;color:#da0b00}.button.is-danger.is-inverted:hover,.button.is-danger.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-danger.is-inverted[disabled],fieldset[disabled] .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#da0b00}.button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-danger.is-outlined{background-color:transparent;border-color:#da0b00;color:#da0b00}.button.is-danger.is-outlined:hover,.button.is-danger.is-outlined.is-hovered,.button.is-danger.is-outlined:focus,.button.is-danger.is-outlined.is-focused{background-color:#da0b00;border-color:#da0b00;color:#fff}.button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #da0b00 #da0b00 !important}.button.is-danger.is-outlined.is-loading:hover::after,.button.is-danger.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-outlined.is-loading:focus::after,.button.is-danger.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-danger.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-outlined{background-color:transparent;border-color:#da0b00;box-shadow:none;color:#da0b00}.button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-danger.is-inverted.is-outlined:hover,.button.is-danger.is-inverted.is-outlined.is-hovered,.button.is-danger.is-inverted.is-outlined:focus,.button.is-danger.is-inverted.is-outlined.is-focused{background-color:#fff;color:#da0b00}.button.is-danger.is-inverted.is-outlined.is-loading:hover::after,.button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-inverted.is-outlined.is-loading:focus::after,.button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #da0b00 #da0b00 !important}.button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-small,#documenter .docs-sidebar form.docs-search>input.button{border-radius:2px;font-size:.75rem}.button.is-normal{font-size:1rem}.button.is-medium{font-size:1.25rem}.button.is-large{font-size:1.5rem}.button[disabled],fieldset[disabled] .button{background-color:#fff;border-color:#dbdbdb;box-shadow:none;opacity:.5}.button.is-fullwidth{display:flex;width:100%}.button.is-loading{color:transparent !important;pointer-events:none}.button.is-loading::after{position:absolute;left:calc(50% - (1em / 2));top:calc(50% - (1em / 2));position:absolute !important}.button.is-static{background-color:#f5f5f5;border-color:#dbdbdb;color:#6b6b6b;box-shadow:none;pointer-events:none}.button.is-rounded,#documenter .docs-sidebar form.docs-search>input.button{border-radius:290486px;padding-left:1em;padding-right:1em}.buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.buttons .button{margin-bottom:0.5rem}.buttons .button:not(:last-child):not(.is-fullwidth){margin-right:0.5rem}.buttons:last-child{margin-bottom:-0.5rem}.buttons:not(:last-child){margin-bottom:1rem}.buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){border-radius:2px;font-size:.75rem}.buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}.buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}.buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}.buttons.has-addons .button:last-child{margin-right:0}.buttons.has-addons .button:hover,.buttons.has-addons .button.is-hovered{z-index:2}.buttons.has-addons .button:focus,.buttons.has-addons .button.is-focused,.buttons.has-addons .button:active,.buttons.has-addons .button.is-active,.buttons.has-addons .button.is-selected{z-index:3}.buttons.has-addons .button:focus:hover,.buttons.has-addons .button.is-focused:hover,.buttons.has-addons .button:active:hover,.buttons.has-addons .button.is-active:hover,.buttons.has-addons .button.is-selected:hover{z-index:4}.buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}.buttons.is-centered{justify-content:center}.buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}.buttons.is-right{justify-content:flex-end}.buttons.is-right:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}.container{flex-grow:1;margin:0 auto;position:relative;width:auto}@media screen and (min-width: 1056px){.container{max-width:992px}.container.is-fluid{margin-left:32px;margin-right:32px;max-width:none}}@media screen and (max-width: 1215px){.container.is-widescreen{max-width:1152px}}@media screen and (max-width: 1407px){.container.is-fullhd{max-width:1344px}}@media screen and (min-width: 1216px){.container{max-width:1152px}}@media screen and (min-width: 1408px){.container{max-width:1344px}}.content li+li{margin-top:0.25em}.content p:not(:last-child),.content dl:not(:last-child),.content ol:not(:last-child),.content ul:not(:last-child),.content blockquote:not(:last-child),.content pre:not(:last-child),.content table:not(:last-child){margin-bottom:1em}.content h1,.content h2,.content h3,.content h4,.content h5,.content h6{color:#222;font-weight:600;line-height:1.125}.content h1{font-size:2em;margin-bottom:0.5em}.content h1:not(:first-child){margin-top:1em}.content h2{font-size:1.75em;margin-bottom:0.5714em}.content h2:not(:first-child){margin-top:1.1428em}.content h3{font-size:1.5em;margin-bottom:0.6666em}.content h3:not(:first-child){margin-top:1.3333em}.content h4{font-size:1.25em;margin-bottom:0.8em}.content h5{font-size:1.125em;margin-bottom:0.8888em}.content h6{font-size:1em;margin-bottom:1em}.content blockquote{background-color:#f5f5f5;border-left:5px solid #dbdbdb;padding:1.25em 1.5em}.content ol{list-style-position:outside;margin-left:2em;margin-top:1em}.content ol:not([type]){list-style-type:decimal}.content ol.is-lower-alpha:not([type]){list-style-type:lower-alpha}.content ol.is-lower-roman:not([type]){list-style-type:lower-roman}.content ol.is-upper-alpha:not([type]){list-style-type:upper-alpha}.content ol.is-upper-roman:not([type]){list-style-type:upper-roman}.content ul{list-style:disc outside;margin-left:2em;margin-top:1em}.content ul ul{list-style-type:circle;margin-top:0.5em}.content ul ul ul{list-style-type:square}.content dd{margin-left:2em}.content figure{margin-left:2em;margin-right:2em;text-align:center}.content figure:not(:first-child){margin-top:2em}.content figure:not(:last-child){margin-bottom:2em}.content figure img{display:inline-block}.content figure figcaption{font-style:italic}.content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:0;white-space:pre;word-wrap:normal}.content sup,.content sub{font-size:75%}.content table{width:100%}.content table td,.content table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}.content table th{color:#222}.content table th:not([align]){text-align:left}.content table thead td,.content table thead th{border-width:0 0 2px;color:#222}.content table tfoot td,.content table tfoot th{border-width:2px 0 0;color:#222}.content table tbody tr:last-child td,.content table tbody tr:last-child th{border-bottom-width:0}.content .tabs li+li{margin-top:0}.content.is-small,#documenter .docs-sidebar form.docs-search>input.content{font-size:.75rem}.content.is-medium{font-size:1.25rem}.content.is-large{font-size:1.5rem}.icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}.icon.is-small,#documenter .docs-sidebar form.docs-search>input.icon{height:1rem;width:1rem}.icon.is-medium{height:2rem;width:2rem}.icon.is-large{height:3rem;width:3rem}.image,#documenter .docs-sidebar .docs-logo>img{display:block;position:relative}.image img,#documenter .docs-sidebar .docs-logo>img img{display:block;height:auto;width:100%}.image img.is-rounded,#documenter .docs-sidebar .docs-logo>img img.is-rounded{border-radius:290486px}.image.is-square img,#documenter .docs-sidebar .docs-logo>img.is-square img,.image.is-square .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,.image.is-1by1 img,#documenter .docs-sidebar .docs-logo>img.is-1by1 img,.image.is-1by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,.image.is-5by4 img,#documenter .docs-sidebar .docs-logo>img.is-5by4 img,.image.is-5by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,.image.is-4by3 img,#documenter .docs-sidebar .docs-logo>img.is-4by3 img,.image.is-4by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,.image.is-3by2 img,#documenter .docs-sidebar .docs-logo>img.is-3by2 img,.image.is-3by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,.image.is-5by3 img,#documenter .docs-sidebar .docs-logo>img.is-5by3 img,.image.is-5by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,.image.is-16by9 img,#documenter .docs-sidebar .docs-logo>img.is-16by9 img,.image.is-16by9 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,.image.is-2by1 img,#documenter .docs-sidebar .docs-logo>img.is-2by1 img,.image.is-2by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,.image.is-3by1 img,#documenter .docs-sidebar .docs-logo>img.is-3by1 img,.image.is-3by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,.image.is-4by5 img,#documenter .docs-sidebar .docs-logo>img.is-4by5 img,.image.is-4by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,.image.is-3by4 img,#documenter .docs-sidebar .docs-logo>img.is-3by4 img,.image.is-3by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,.image.is-2by3 img,#documenter .docs-sidebar .docs-logo>img.is-2by3 img,.image.is-2by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,.image.is-3by5 img,#documenter .docs-sidebar .docs-logo>img.is-3by5 img,.image.is-3by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,.image.is-9by16 img,#documenter .docs-sidebar .docs-logo>img.is-9by16 img,.image.is-9by16 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,.image.is-1by2 img,#documenter .docs-sidebar .docs-logo>img.is-1by2 img,.image.is-1by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,.image.is-1by3 img,#documenter .docs-sidebar .docs-logo>img.is-1by3 img,.image.is-1by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio{height:100%;width:100%}.image.is-square,#documenter .docs-sidebar .docs-logo>img.is-square,.image.is-1by1,#documenter .docs-sidebar .docs-logo>img.is-1by1{padding-top:100%}.image.is-5by4,#documenter .docs-sidebar .docs-logo>img.is-5by4{padding-top:80%}.image.is-4by3,#documenter .docs-sidebar .docs-logo>img.is-4by3{padding-top:75%}.image.is-3by2,#documenter .docs-sidebar .docs-logo>img.is-3by2{padding-top:66.6666%}.image.is-5by3,#documenter .docs-sidebar .docs-logo>img.is-5by3{padding-top:60%}.image.is-16by9,#documenter .docs-sidebar .docs-logo>img.is-16by9{padding-top:56.25%}.image.is-2by1,#documenter .docs-sidebar .docs-logo>img.is-2by1{padding-top:50%}.image.is-3by1,#documenter .docs-sidebar .docs-logo>img.is-3by1{padding-top:33.3333%}.image.is-4by5,#documenter .docs-sidebar .docs-logo>img.is-4by5{padding-top:125%}.image.is-3by4,#documenter .docs-sidebar .docs-logo>img.is-3by4{padding-top:133.3333%}.image.is-2by3,#documenter .docs-sidebar .docs-logo>img.is-2by3{padding-top:150%}.image.is-3by5,#documenter .docs-sidebar .docs-logo>img.is-3by5{padding-top:166.6666%}.image.is-9by16,#documenter .docs-sidebar .docs-logo>img.is-9by16{padding-top:177.7777%}.image.is-1by2,#documenter .docs-sidebar .docs-logo>img.is-1by2{padding-top:200%}.image.is-1by3,#documenter .docs-sidebar .docs-logo>img.is-1by3{padding-top:300%}.image.is-16x16,#documenter .docs-sidebar .docs-logo>img.is-16x16{height:16px;width:16px}.image.is-24x24,#documenter .docs-sidebar .docs-logo>img.is-24x24{height:24px;width:24px}.image.is-32x32,#documenter .docs-sidebar .docs-logo>img.is-32x32{height:32px;width:32px}.image.is-48x48,#documenter .docs-sidebar .docs-logo>img.is-48x48{height:48px;width:48px}.image.is-64x64,#documenter .docs-sidebar .docs-logo>img.is-64x64{height:64px;width:64px}.image.is-96x96,#documenter .docs-sidebar .docs-logo>img.is-96x96{height:96px;width:96px}.image.is-128x128,#documenter .docs-sidebar .docs-logo>img.is-128x128{height:128px;width:128px}.notification{background-color:#f5f5f5;border-radius:4px;padding:1.25rem 2.5rem 1.25rem 1.5rem;position:relative}.notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}.notification strong{color:currentColor}.notification code,.notification pre{background:#fff}.notification pre code{background:transparent}.notification>.delete{position:absolute;right:0.5rem;top:0.5rem}.notification .title,.notification .subtitle,.notification .content{color:currentColor}.notification.is-white{background-color:#fff;color:#0a0a0a}.notification.is-black{background-color:#0a0a0a;color:#fff}.notification.is-light{background-color:#f5f5f5;color:#363636}.notification.is-dark,.content kbd.notification{background-color:#363636;color:#f5f5f5}.notification.is-primary,.docstring>section>a.notification.docs-sourcelink{background-color:#4eb5de;color:#fff}.notification.is-link{background-color:#2e63b8;color:#fff}.notification.is-info{background-color:#209cee;color:#fff}.notification.is-success{background-color:#22c35b;color:#fff}.notification.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.notification.is-danger{background-color:#da0b00;color:#fff}.progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:290486px;display:block;height:1rem;overflow:hidden;padding:0;width:100%}.progress::-webkit-progress-bar{background-color:#dbdbdb}.progress::-webkit-progress-value{background-color:#222}.progress::-moz-progress-bar{background-color:#222}.progress::-ms-fill{background-color:#222;border:none}.progress.is-white::-webkit-progress-value{background-color:#fff}.progress.is-white::-moz-progress-bar{background-color:#fff}.progress.is-white::-ms-fill{background-color:#fff}.progress.is-white:indeterminate{background-image:linear-gradient(to right, #fff 30%, #dbdbdb 30%)}.progress.is-black::-webkit-progress-value{background-color:#0a0a0a}.progress.is-black::-moz-progress-bar{background-color:#0a0a0a}.progress.is-black::-ms-fill{background-color:#0a0a0a}.progress.is-black:indeterminate{background-image:linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%)}.progress.is-light::-webkit-progress-value{background-color:#f5f5f5}.progress.is-light::-moz-progress-bar{background-color:#f5f5f5}.progress.is-light::-ms-fill{background-color:#f5f5f5}.progress.is-light:indeterminate{background-image:linear-gradient(to right, #f5f5f5 30%, #dbdbdb 30%)}.progress.is-dark::-webkit-progress-value,.content kbd.progress::-webkit-progress-value{background-color:#363636}.progress.is-dark::-moz-progress-bar,.content kbd.progress::-moz-progress-bar{background-color:#363636}.progress.is-dark::-ms-fill,.content kbd.progress::-ms-fill{background-color:#363636}.progress.is-dark:indeterminate,.content kbd.progress:indeterminate{background-image:linear-gradient(to right, #363636 30%, #dbdbdb 30%)}.progress.is-primary::-webkit-progress-value,.docstring>section>a.progress.docs-sourcelink::-webkit-progress-value{background-color:#4eb5de}.progress.is-primary::-moz-progress-bar,.docstring>section>a.progress.docs-sourcelink::-moz-progress-bar{background-color:#4eb5de}.progress.is-primary::-ms-fill,.docstring>section>a.progress.docs-sourcelink::-ms-fill{background-color:#4eb5de}.progress.is-primary:indeterminate,.docstring>section>a.progress.docs-sourcelink:indeterminate{background-image:linear-gradient(to right, #4eb5de 30%, #dbdbdb 30%)}.progress.is-link::-webkit-progress-value{background-color:#2e63b8}.progress.is-link::-moz-progress-bar{background-color:#2e63b8}.progress.is-link::-ms-fill{background-color:#2e63b8}.progress.is-link:indeterminate{background-image:linear-gradient(to right, #2e63b8 30%, #dbdbdb 30%)}.progress.is-info::-webkit-progress-value{background-color:#209cee}.progress.is-info::-moz-progress-bar{background-color:#209cee}.progress.is-info::-ms-fill{background-color:#209cee}.progress.is-info:indeterminate{background-image:linear-gradient(to right, #209cee 30%, #dbdbdb 30%)}.progress.is-success::-webkit-progress-value{background-color:#22c35b}.progress.is-success::-moz-progress-bar{background-color:#22c35b}.progress.is-success::-ms-fill{background-color:#22c35b}.progress.is-success:indeterminate{background-image:linear-gradient(to right, #22c35b 30%, #dbdbdb 30%)}.progress.is-warning::-webkit-progress-value{background-color:#ffdd57}.progress.is-warning::-moz-progress-bar{background-color:#ffdd57}.progress.is-warning::-ms-fill{background-color:#ffdd57}.progress.is-warning:indeterminate{background-image:linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%)}.progress.is-danger::-webkit-progress-value{background-color:#da0b00}.progress.is-danger::-moz-progress-bar{background-color:#da0b00}.progress.is-danger::-ms-fill{background-color:#da0b00}.progress.is-danger:indeterminate{background-image:linear-gradient(to right, #da0b00 30%, #dbdbdb 30%)}.progress:indeterminate{animation-duration:1.5s;animation-iteration-count:infinite;animation-name:moveIndeterminate;animation-timing-function:linear;background-color:#dbdbdb;background-image:linear-gradient(to right, #222 30%, #dbdbdb 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}.progress:indeterminate::-webkit-progress-bar{background-color:transparent}.progress:indeterminate::-moz-progress-bar{background-color:transparent}.progress.is-small,#documenter .docs-sidebar form.docs-search>input.progress{height:.75rem}.progress.is-medium{height:1.25rem}.progress.is-large{height:1.5rem}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}.table{background-color:#fff;color:#363636}.table td,.table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}.table td.is-white,.table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}.table td.is-black,.table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.table td.is-light,.table th.is-light{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.table td.is-dark,.table th.is-dark{background-color:#363636;border-color:#363636;color:#f5f5f5}.table td.is-primary,.table th.is-primary{background-color:#4eb5de;border-color:#4eb5de;color:#fff}.table td.is-link,.table th.is-link{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.table td.is-info,.table th.is-info{background-color:#209cee;border-color:#209cee;color:#fff}.table td.is-success,.table th.is-success{background-color:#22c35b;border-color:#22c35b;color:#fff}.table td.is-warning,.table th.is-warning{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,0.7)}.table td.is-danger,.table th.is-danger{background-color:#da0b00;border-color:#da0b00;color:#fff}.table td.is-narrow,.table th.is-narrow{white-space:nowrap;width:1%}.table td.is-selected,.table th.is-selected{background-color:#4eb5de;color:#fff}.table td.is-selected a,.table td.is-selected strong,.table th.is-selected a,.table th.is-selected strong{color:currentColor}.table th{color:#222}.table th:not([align]){text-align:left}.table tr.is-selected{background-color:#4eb5de;color:#fff}.table tr.is-selected a,.table tr.is-selected strong{color:currentColor}.table tr.is-selected td,.table tr.is-selected th{border-color:#fff;color:currentColor}.table thead{background-color:rgba(0,0,0,0)}.table thead td,.table thead th{border-width:0 0 2px;color:#222}.table tfoot{background-color:rgba(0,0,0,0)}.table tfoot td,.table tfoot th{border-width:2px 0 0;color:#222}.table tbody{background-color:rgba(0,0,0,0)}.table tbody tr:last-child td,.table tbody tr:last-child th{border-bottom-width:0}.table.is-bordered td,.table.is-bordered th{border-width:1px}.table.is-bordered tr:last-child td,.table.is-bordered tr:last-child th{border-bottom-width:1px}.table.is-fullwidth{width:100%}.table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even){background-color:#f5f5f5}.table.is-narrow td,.table.is-narrow th{padding:0.25em 0.5em}.table.is-striped tbody tr:not(.is-selected):nth-child(even){background-color:#fafafa}.table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}.tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.tags .tag,.tags .content kbd,.content .tags kbd,.tags .docstring>section>a.docs-sourcelink{margin-bottom:0.5rem}.tags .tag:not(:last-child),.tags .content kbd:not(:last-child),.content .tags kbd:not(:last-child),.tags .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0.5rem}.tags:last-child{margin-bottom:-0.5rem}.tags:not(:last-child){margin-bottom:1rem}.tags.are-medium .tag:not(.is-normal):not(.is-large),.tags.are-medium .content kbd:not(.is-normal):not(.is-large),.content .tags.are-medium kbd:not(.is-normal):not(.is-large),.tags.are-medium .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-large){font-size:1rem}.tags.are-large .tag:not(.is-normal):not(.is-medium),.tags.are-large .content kbd:not(.is-normal):not(.is-medium),.content .tags.are-large kbd:not(.is-normal):not(.is-medium),.tags.are-large .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-medium){font-size:1.25rem}.tags.is-centered{justify-content:center}.tags.is-centered .tag,.tags.is-centered .content kbd,.content .tags.is-centered kbd,.tags.is-centered .docstring>section>a.docs-sourcelink{margin-right:0.25rem;margin-left:0.25rem}.tags.is-right{justify-content:flex-end}.tags.is-right .tag:not(:first-child),.tags.is-right .content kbd:not(:first-child),.content .tags.is-right kbd:not(:first-child),.tags.is-right .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0.5rem}.tags.is-right .tag:not(:last-child),.tags.is-right .content kbd:not(:last-child),.content .tags.is-right kbd:not(:last-child),.tags.is-right .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0}.tags.has-addons .tag,.tags.has-addons .content kbd,.content .tags.has-addons kbd,.tags.has-addons .docstring>section>a.docs-sourcelink{margin-right:0}.tags.has-addons .tag:not(:first-child),.tags.has-addons .content kbd:not(:first-child),.content .tags.has-addons kbd:not(:first-child),.tags.has-addons .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0;border-bottom-left-radius:0;border-top-left-radius:0}.tags.has-addons .tag:not(:last-child),.tags.has-addons .content kbd:not(:last-child),.content .tags.has-addons kbd:not(:last-child),.tags.has-addons .docstring>section>a.docs-sourcelink:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.tag:not(body),.content kbd:not(body),.docstring>section>a.docs-sourcelink:not(body){align-items:center;background-color:#f5f5f5;border-radius:4px;color:#222;display:inline-flex;font-size:.75rem;height:2em;justify-content:center;line-height:1.5;padding-left:0.75em;padding-right:0.75em;white-space:nowrap}.tag:not(body) .delete,.content kbd:not(body) .delete,.docstring>section>a.docs-sourcelink:not(body) .delete{margin-left:0.25rem;margin-right:-0.375rem}.tag.is-white:not(body),.content kbd.is-white:not(body),.docstring>section>a.docs-sourcelink.is-white:not(body){background-color:#fff;color:#0a0a0a}.tag.is-black:not(body),.content kbd.is-black:not(body),.docstring>section>a.docs-sourcelink.is-black:not(body){background-color:#0a0a0a;color:#fff}.tag.is-light:not(body),.content kbd.is-light:not(body),.docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#f5f5f5;color:#363636}.tag.is-dark:not(body),.content kbd:not(body),.docstring>section>a.docs-sourcelink.is-dark:not(body),.content .docstring>section>kbd:not(body){background-color:#363636;color:#f5f5f5}.tag.is-primary:not(body),.content kbd.is-primary:not(body),.docstring>section>a.docs-sourcelink:not(body){background-color:#4eb5de;color:#fff}.tag.is-link:not(body),.content kbd.is-link:not(body),.docstring>section>a.docs-sourcelink.is-link:not(body){background-color:#2e63b8;color:#fff}.tag.is-info:not(body),.content kbd.is-info:not(body),.docstring>section>a.docs-sourcelink.is-info:not(body){background-color:#209cee;color:#fff}.tag.is-success:not(body),.content kbd.is-success:not(body),.docstring>section>a.docs-sourcelink.is-success:not(body){background-color:#22c35b;color:#fff}.tag.is-warning:not(body),.content kbd.is-warning:not(body),.docstring>section>a.docs-sourcelink.is-warning:not(body){background-color:#ffdd57;color:rgba(0,0,0,0.7)}.tag.is-danger:not(body),.content kbd.is-danger:not(body),.docstring>section>a.docs-sourcelink.is-danger:not(body){background-color:#da0b00;color:#fff}.tag.is-normal:not(body),.content kbd.is-normal:not(body),.docstring>section>a.docs-sourcelink.is-normal:not(body){font-size:.75rem}.tag.is-medium:not(body),.content kbd.is-medium:not(body),.docstring>section>a.docs-sourcelink.is-medium:not(body){font-size:1rem}.tag.is-large:not(body),.content kbd.is-large:not(body),.docstring>section>a.docs-sourcelink.is-large:not(body){font-size:1.25rem}.tag:not(body) .icon:first-child:not(:last-child),.content kbd:not(body) .icon:first-child:not(:last-child),.docstring>section>a.docs-sourcelink:not(body) .icon:first-child:not(:last-child){margin-left:-0.375em;margin-right:0.1875em}.tag:not(body) .icon:last-child:not(:first-child),.content kbd:not(body) .icon:last-child:not(:first-child),.docstring>section>a.docs-sourcelink:not(body) .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:-0.375em}.tag:not(body) .icon:first-child:last-child,.content kbd:not(body) .icon:first-child:last-child,.docstring>section>a.docs-sourcelink:not(body) .icon:first-child:last-child{margin-left:-0.375em;margin-right:-0.375em}.tag.is-delete:not(body),.content kbd.is-delete:not(body),.docstring>section>a.docs-sourcelink.is-delete:not(body){margin-left:1px;padding:0;position:relative;width:2em}.tag.is-delete:not(body)::before,.content kbd.is-delete:not(body)::before,.docstring>section>a.docs-sourcelink.is-delete:not(body)::before,.tag.is-delete:not(body)::after,.content kbd.is-delete:not(body)::after,.docstring>section>a.docs-sourcelink.is-delete:not(body)::after{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.tag.is-delete:not(body)::before,.content kbd.is-delete:not(body)::before,.docstring>section>a.docs-sourcelink.is-delete:not(body)::before{height:1px;width:50%}.tag.is-delete:not(body)::after,.content kbd.is-delete:not(body)::after,.docstring>section>a.docs-sourcelink.is-delete:not(body)::after{height:50%;width:1px}.tag.is-delete:not(body):hover,.content kbd.is-delete:not(body):hover,.docstring>section>a.docs-sourcelink.is-delete:not(body):hover,.tag.is-delete:not(body):focus,.content kbd.is-delete:not(body):focus,.docstring>section>a.docs-sourcelink.is-delete:not(body):focus{background-color:#e8e8e8}.tag.is-delete:not(body):active,.content kbd.is-delete:not(body):active,.docstring>section>a.docs-sourcelink.is-delete:not(body):active{background-color:#dbdbdb}.tag.is-rounded:not(body),#documenter .docs-sidebar form.docs-search>input:not(body),.content kbd.is-rounded:not(body),#documenter .docs-sidebar .content form.docs-search>input:not(body),.docstring>section>a.docs-sourcelink.is-rounded:not(body){border-radius:290486px}a.tag:hover,.docstring>section>a.docs-sourcelink:hover{text-decoration:underline}.title,.subtitle{word-break:break-word}.title em,.title span,.subtitle em,.subtitle span{font-weight:inherit}.title sub,.subtitle sub{font-size:.75em}.title sup,.subtitle sup{font-size:.75em}.title .tag,.title .content kbd,.content .title kbd,.title .docstring>section>a.docs-sourcelink,.subtitle .tag,.subtitle .content kbd,.content .subtitle kbd,.subtitle .docstring>section>a.docs-sourcelink{vertical-align:middle}.title{color:#363636;font-size:2rem;font-weight:600;line-height:1.125}.title strong{color:inherit;font-weight:inherit}.title+.highlight{margin-top:-0.75rem}.title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}.title.is-1{font-size:3rem}.title.is-2{font-size:2.5rem}.title.is-3{font-size:2rem}.title.is-4{font-size:1.5rem}.title.is-5{font-size:1.25rem}.title.is-6{font-size:1rem}.title.is-7{font-size:.75rem}.subtitle{color:#4a4a4a;font-size:1.25rem;font-weight:400;line-height:1.25}.subtitle strong{color:#363636;font-weight:600}.subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}.subtitle.is-1{font-size:3rem}.subtitle.is-2{font-size:2.5rem}.subtitle.is-3{font-size:2rem}.subtitle.is-4{font-size:1.5rem}.subtitle.is-5{font-size:1.25rem}.subtitle.is-6{font-size:1rem}.subtitle.is-7{font-size:.75rem}.heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}.highlight{font-weight:400;max-width:100%;overflow:hidden;padding:0}.highlight pre{overflow:auto;max-width:100%}.number{align-items:center;background-color:#f5f5f5;border-radius:290486px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:0.25rem 0.5rem;text-align:center;vertical-align:top}.select select,.textarea,.input,#documenter .docs-sidebar form.docs-search>input{background-color:#fff;border-color:#dbdbdb;border-radius:4px;color:#363636}.select select::-moz-placeholder,.textarea::-moz-placeholder,.input::-moz-placeholder,#documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(54,54,54,0.3)}.select select::-webkit-input-placeholder,.textarea::-webkit-input-placeholder,.input::-webkit-input-placeholder,#documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(54,54,54,0.3)}.select select:-moz-placeholder,.textarea:-moz-placeholder,.input:-moz-placeholder,#documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(54,54,54,0.3)}.select select:-ms-input-placeholder,.textarea:-ms-input-placeholder,.input:-ms-input-placeholder,#documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(54,54,54,0.3)}.select select:hover,.textarea:hover,.input:hover,#documenter .docs-sidebar form.docs-search>input:hover,.select select.is-hovered,.is-hovered.textarea,.is-hovered.input,#documenter .docs-sidebar form.docs-search>input.is-hovered{border-color:#b5b5b5}.select select:focus,.textarea:focus,.input:focus,#documenter .docs-sidebar form.docs-search>input:focus,.select select.is-focused,.is-focused.textarea,.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.select select:active,.textarea:active,.input:active,#documenter .docs-sidebar form.docs-search>input:active,.select select.is-active,.is-active.textarea,.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{border-color:#2e63b8;box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.select select[disabled],.textarea[disabled],.input[disabled],#documenter .docs-sidebar form.docs-search>input[disabled],fieldset[disabled] .select select,.select fieldset[disabled] select,fieldset[disabled] .textarea,fieldset[disabled] .input,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input{background-color:#f5f5f5;border-color:#f5f5f5;box-shadow:none;color:#6b6b6b}.select select[disabled]::-moz-placeholder,.textarea[disabled]::-moz-placeholder,.input[disabled]::-moz-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]::-moz-placeholder,fieldset[disabled] .select select::-moz-placeholder,.select fieldset[disabled] select::-moz-placeholder,fieldset[disabled] .textarea::-moz-placeholder,fieldset[disabled] .input::-moz-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input::-moz-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input::-moz-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]::-webkit-input-placeholder,.textarea[disabled]::-webkit-input-placeholder,.input[disabled]::-webkit-input-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]::-webkit-input-placeholder,fieldset[disabled] .select select::-webkit-input-placeholder,.select fieldset[disabled] select::-webkit-input-placeholder,fieldset[disabled] .textarea::-webkit-input-placeholder,fieldset[disabled] .input::-webkit-input-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input::-webkit-input-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]:-moz-placeholder,.textarea[disabled]:-moz-placeholder,.input[disabled]:-moz-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]:-moz-placeholder,fieldset[disabled] .select select:-moz-placeholder,.select fieldset[disabled] select:-moz-placeholder,fieldset[disabled] .textarea:-moz-placeholder,fieldset[disabled] .input:-moz-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input:-moz-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input:-moz-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]:-ms-input-placeholder,.textarea[disabled]:-ms-input-placeholder,.input[disabled]:-ms-input-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]:-ms-input-placeholder,fieldset[disabled] .select select:-ms-input-placeholder,.select fieldset[disabled] select:-ms-input-placeholder,fieldset[disabled] .textarea:-ms-input-placeholder,fieldset[disabled] .input:-ms-input-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input:-ms-input-placeholder{color:rgba(107,107,107,0.3)}.textarea,.input,#documenter .docs-sidebar form.docs-search>input{box-shadow:inset 0 1px 2px rgba(10,10,10,0.1);max-width:100%;width:100%}.textarea[readonly],.input[readonly],#documenter .docs-sidebar form.docs-search>input[readonly]{box-shadow:none}.is-white.textarea,.is-white.input,#documenter .docs-sidebar form.docs-search>input.is-white{border-color:#fff}.is-white.textarea:focus,.is-white.input:focus,#documenter .docs-sidebar form.docs-search>input.is-white:focus,.is-white.is-focused.textarea,.is-white.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-white.textarea:active,.is-white.input:active,#documenter .docs-sidebar form.docs-search>input.is-white:active,.is-white.is-active.textarea,.is-white.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.is-black.textarea,.is-black.input,#documenter .docs-sidebar form.docs-search>input.is-black{border-color:#0a0a0a}.is-black.textarea:focus,.is-black.input:focus,#documenter .docs-sidebar form.docs-search>input.is-black:focus,.is-black.is-focused.textarea,.is-black.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-black.textarea:active,.is-black.input:active,#documenter .docs-sidebar form.docs-search>input.is-black:active,.is-black.is-active.textarea,.is-black.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.is-light.textarea,.is-light.input,#documenter .docs-sidebar form.docs-search>input.is-light{border-color:#f5f5f5}.is-light.textarea:focus,.is-light.input:focus,#documenter .docs-sidebar form.docs-search>input.is-light:focus,.is-light.is-focused.textarea,.is-light.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-light.textarea:active,.is-light.input:active,#documenter .docs-sidebar form.docs-search>input.is-light:active,.is-light.is-active.textarea,.is-light.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.is-dark.textarea,.content kbd.textarea,.is-dark.input,#documenter .docs-sidebar form.docs-search>input.is-dark,.content kbd.input{border-color:#363636}.is-dark.textarea:focus,.content kbd.textarea:focus,.is-dark.input:focus,#documenter .docs-sidebar form.docs-search>input.is-dark:focus,.content kbd.input:focus,.is-dark.is-focused.textarea,.content kbd.is-focused.textarea,.is-dark.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.content kbd.is-focused.input,#documenter .docs-sidebar .content form.docs-search>input.is-focused,.is-dark.textarea:active,.content kbd.textarea:active,.is-dark.input:active,#documenter .docs-sidebar form.docs-search>input.is-dark:active,.content kbd.input:active,.is-dark.is-active.textarea,.content kbd.is-active.textarea,.is-dark.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.content kbd.is-active.input,#documenter .docs-sidebar .content form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.is-primary.textarea,.docstring>section>a.textarea.docs-sourcelink,.is-primary.input,#documenter .docs-sidebar form.docs-search>input.is-primary,.docstring>section>a.input.docs-sourcelink{border-color:#4eb5de}.is-primary.textarea:focus,.docstring>section>a.textarea.docs-sourcelink:focus,.is-primary.input:focus,#documenter .docs-sidebar form.docs-search>input.is-primary:focus,.docstring>section>a.input.docs-sourcelink:focus,.is-primary.is-focused.textarea,.docstring>section>a.is-focused.textarea.docs-sourcelink,.is-primary.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.docstring>section>a.is-focused.input.docs-sourcelink,.is-primary.textarea:active,.docstring>section>a.textarea.docs-sourcelink:active,.is-primary.input:active,#documenter .docs-sidebar form.docs-search>input.is-primary:active,.docstring>section>a.input.docs-sourcelink:active,.is-primary.is-active.textarea,.docstring>section>a.is-active.textarea.docs-sourcelink,.is-primary.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.docstring>section>a.is-active.input.docs-sourcelink{box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.is-link.textarea,.is-link.input,#documenter .docs-sidebar form.docs-search>input.is-link{border-color:#2e63b8}.is-link.textarea:focus,.is-link.input:focus,#documenter .docs-sidebar form.docs-search>input.is-link:focus,.is-link.is-focused.textarea,.is-link.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-link.textarea:active,.is-link.input:active,#documenter .docs-sidebar form.docs-search>input.is-link:active,.is-link.is-active.textarea,.is-link.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.is-info.textarea,.is-info.input,#documenter .docs-sidebar form.docs-search>input.is-info{border-color:#209cee}.is-info.textarea:focus,.is-info.input:focus,#documenter .docs-sidebar form.docs-search>input.is-info:focus,.is-info.is-focused.textarea,.is-info.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-info.textarea:active,.is-info.input:active,#documenter .docs-sidebar form.docs-search>input.is-info:active,.is-info.is-active.textarea,.is-info.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.is-success.textarea,.is-success.input,#documenter .docs-sidebar form.docs-search>input.is-success{border-color:#22c35b}.is-success.textarea:focus,.is-success.input:focus,#documenter .docs-sidebar form.docs-search>input.is-success:focus,.is-success.is-focused.textarea,.is-success.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-success.textarea:active,.is-success.input:active,#documenter .docs-sidebar form.docs-search>input.is-success:active,.is-success.is-active.textarea,.is-success.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.is-warning.textarea,.is-warning.input,#documenter .docs-sidebar form.docs-search>input.is-warning{border-color:#ffdd57}.is-warning.textarea:focus,.is-warning.input:focus,#documenter .docs-sidebar form.docs-search>input.is-warning:focus,.is-warning.is-focused.textarea,.is-warning.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-warning.textarea:active,.is-warning.input:active,#documenter .docs-sidebar form.docs-search>input.is-warning:active,.is-warning.is-active.textarea,.is-warning.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.is-danger.textarea,.is-danger.input,#documenter .docs-sidebar form.docs-search>input.is-danger{border-color:#da0b00}.is-danger.textarea:focus,.is-danger.input:focus,#documenter .docs-sidebar form.docs-search>input.is-danger:focus,.is-danger.is-focused.textarea,.is-danger.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-danger.textarea:active,.is-danger.input:active,#documenter .docs-sidebar form.docs-search>input.is-danger:active,.is-danger.is-active.textarea,.is-danger.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.is-small.textarea,.is-small.input,#documenter .docs-sidebar form.docs-search>input{border-radius:2px;font-size:.75rem}.is-medium.textarea,.is-medium.input,#documenter .docs-sidebar form.docs-search>input.is-medium{font-size:1.25rem}.is-large.textarea,.is-large.input,#documenter .docs-sidebar form.docs-search>input.is-large{font-size:1.5rem}.is-fullwidth.textarea,.is-fullwidth.input,#documenter .docs-sidebar form.docs-search>input.is-fullwidth{display:block;width:100%}.is-inline.textarea,.is-inline.input,#documenter .docs-sidebar form.docs-search>input.is-inline{display:inline;width:auto}.input.is-rounded,#documenter .docs-sidebar form.docs-search>input{border-radius:290486px;padding-left:1em;padding-right:1em}.input.is-static,#documenter .docs-sidebar form.docs-search>input.is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}.textarea{display:block;max-width:100%;min-width:100%;padding:0.625em;resize:vertical}.textarea:not([rows]){max-height:600px;min-height:120px}.textarea[rows]{height:initial}.textarea.has-fixed-size{resize:none}.radio,.checkbox{cursor:pointer;display:inline-block;line-height:1.25;position:relative}.radio input,.checkbox input{cursor:pointer}.radio:hover,.checkbox:hover{color:#363636}.radio[disabled],.checkbox[disabled],fieldset[disabled] .radio,fieldset[disabled] .checkbox{color:#6b6b6b;cursor:not-allowed}.radio+.radio{margin-left:0.5em}.select{display:inline-block;max-width:100%;position:relative;vertical-align:top}.select:not(.is-multiple){height:2.25em}.select:not(.is-multiple):not(.is-loading)::after{border-color:#2e63b8;right:1.125em;z-index:4}.select.is-rounded select,#documenter .docs-sidebar form.docs-search>input.select select{border-radius:290486px;padding-left:1em}.select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:none}.select select::-ms-expand{display:none}.select select[disabled]:hover,fieldset[disabled] .select select:hover{border-color:#f5f5f5}.select select:not([multiple]){padding-right:2.5em}.select select[multiple]{height:auto;padding:0}.select select[multiple] option{padding:0.5em 1em}.select:not(.is-multiple):not(.is-loading):hover::after{border-color:#363636}.select.is-white:not(:hover)::after{border-color:#fff}.select.is-white select{border-color:#fff}.select.is-white select:hover,.select.is-white select.is-hovered{border-color:#f2f2f2}.select.is-white select:focus,.select.is-white select.is-focused,.select.is-white select:active,.select.is-white select.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.select.is-black:not(:hover)::after{border-color:#0a0a0a}.select.is-black select{border-color:#0a0a0a}.select.is-black select:hover,.select.is-black select.is-hovered{border-color:#000}.select.is-black select:focus,.select.is-black select.is-focused,.select.is-black select:active,.select.is-black select.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.select.is-light:not(:hover)::after{border-color:#f5f5f5}.select.is-light select{border-color:#f5f5f5}.select.is-light select:hover,.select.is-light select.is-hovered{border-color:#e8e8e8}.select.is-light select:focus,.select.is-light select.is-focused,.select.is-light select:active,.select.is-light select.is-active{box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.select.is-dark:not(:hover)::after,.content kbd.select:not(:hover)::after{border-color:#363636}.select.is-dark select,.content kbd.select select{border-color:#363636}.select.is-dark select:hover,.content kbd.select select:hover,.select.is-dark select.is-hovered,.content kbd.select select.is-hovered{border-color:#292929}.select.is-dark select:focus,.content kbd.select select:focus,.select.is-dark select.is-focused,.content kbd.select select.is-focused,.select.is-dark select:active,.content kbd.select select:active,.select.is-dark select.is-active,.content kbd.select select.is-active{box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.select.is-primary:not(:hover)::after,.docstring>section>a.select.docs-sourcelink:not(:hover)::after{border-color:#4eb5de}.select.is-primary select,.docstring>section>a.select.docs-sourcelink select{border-color:#4eb5de}.select.is-primary select:hover,.docstring>section>a.select.docs-sourcelink select:hover,.select.is-primary select.is-hovered,.docstring>section>a.select.docs-sourcelink select.is-hovered{border-color:#39acda}.select.is-primary select:focus,.docstring>section>a.select.docs-sourcelink select:focus,.select.is-primary select.is-focused,.docstring>section>a.select.docs-sourcelink select.is-focused,.select.is-primary select:active,.docstring>section>a.select.docs-sourcelink select:active,.select.is-primary select.is-active,.docstring>section>a.select.docs-sourcelink select.is-active{box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.select.is-link:not(:hover)::after{border-color:#2e63b8}.select.is-link select{border-color:#2e63b8}.select.is-link select:hover,.select.is-link select.is-hovered{border-color:#2958a4}.select.is-link select:focus,.select.is-link select.is-focused,.select.is-link select:active,.select.is-link select.is-active{box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.select.is-info:not(:hover)::after{border-color:#209cee}.select.is-info select{border-color:#209cee}.select.is-info select:hover,.select.is-info select.is-hovered{border-color:#1190e3}.select.is-info select:focus,.select.is-info select.is-focused,.select.is-info select:active,.select.is-info select.is-active{box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.select.is-success:not(:hover)::after{border-color:#22c35b}.select.is-success select{border-color:#22c35b}.select.is-success select:hover,.select.is-success select.is-hovered{border-color:#1ead51}.select.is-success select:focus,.select.is-success select.is-focused,.select.is-success select:active,.select.is-success select.is-active{box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.select.is-warning:not(:hover)::after{border-color:#ffdd57}.select.is-warning select{border-color:#ffdd57}.select.is-warning select:hover,.select.is-warning select.is-hovered{border-color:#ffd83e}.select.is-warning select:focus,.select.is-warning select.is-focused,.select.is-warning select:active,.select.is-warning select.is-active{box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.select.is-danger:not(:hover)::after{border-color:#da0b00}.select.is-danger select{border-color:#da0b00}.select.is-danger select:hover,.select.is-danger select.is-hovered{border-color:#c10a00}.select.is-danger select:focus,.select.is-danger select.is-focused,.select.is-danger select:active,.select.is-danger select.is-active{box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.select.is-small,#documenter .docs-sidebar form.docs-search>input.select{border-radius:2px;font-size:.75rem}.select.is-medium{font-size:1.25rem}.select.is-large{font-size:1.5rem}.select.is-disabled::after{border-color:#6b6b6b}.select.is-fullwidth{width:100%}.select.is-fullwidth select{width:100%}.select.is-loading::after{margin-top:0;position:absolute;right:0.625em;top:0.625em;transform:none}.select.is-loading.is-small:after,#documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}.select.is-loading.is-medium:after{font-size:1.25rem}.select.is-loading.is-large:after{font-size:1.5rem}.file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}.file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}.file.is-white:hover .file-cta,.file.is-white.is-hovered .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.file.is-white:focus .file-cta,.file.is-white.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,255,255,0.25);color:#0a0a0a}.file.is-white:active .file-cta,.file.is-white.is-active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}.file.is-black:hover .file-cta,.file.is-black.is-hovered .file-cta{background-color:#040404;border-color:transparent;color:#fff}.file.is-black:focus .file-cta,.file.is-black.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(10,10,10,0.25);color:#fff}.file.is-black:active .file-cta,.file.is-black.is-active .file-cta{background-color:#000;border-color:transparent;color:#fff}.file.is-light .file-cta{background-color:#f5f5f5;border-color:transparent;color:#363636}.file.is-light:hover .file-cta,.file.is-light.is-hovered .file-cta{background-color:#eee;border-color:transparent;color:#363636}.file.is-light:focus .file-cta,.file.is-light.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(245,245,245,0.25);color:#363636}.file.is-light:active .file-cta,.file.is-light.is-active .file-cta{background-color:#e8e8e8;border-color:transparent;color:#363636}.file.is-dark .file-cta,.content kbd.file .file-cta{background-color:#363636;border-color:transparent;color:#f5f5f5}.file.is-dark:hover .file-cta,.content kbd.file:hover .file-cta,.file.is-dark.is-hovered .file-cta,.content kbd.file.is-hovered .file-cta{background-color:#2f2f2f;border-color:transparent;color:#f5f5f5}.file.is-dark:focus .file-cta,.content kbd.file:focus .file-cta,.file.is-dark.is-focused .file-cta,.content kbd.file.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(54,54,54,0.25);color:#f5f5f5}.file.is-dark:active .file-cta,.content kbd.file:active .file-cta,.file.is-dark.is-active .file-cta,.content kbd.file.is-active .file-cta{background-color:#292929;border-color:transparent;color:#f5f5f5}.file.is-primary .file-cta,.docstring>section>a.file.docs-sourcelink .file-cta{background-color:#4eb5de;border-color:transparent;color:#fff}.file.is-primary:hover .file-cta,.docstring>section>a.file.docs-sourcelink:hover .file-cta,.file.is-primary.is-hovered .file-cta,.docstring>section>a.file.is-hovered.docs-sourcelink .file-cta{background-color:#43b1dc;border-color:transparent;color:#fff}.file.is-primary:focus .file-cta,.docstring>section>a.file.docs-sourcelink:focus .file-cta,.file.is-primary.is-focused .file-cta,.docstring>section>a.file.is-focused.docs-sourcelink .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(78,181,222,0.25);color:#fff}.file.is-primary:active .file-cta,.docstring>section>a.file.docs-sourcelink:active .file-cta,.file.is-primary.is-active .file-cta,.docstring>section>a.file.is-active.docs-sourcelink .file-cta{background-color:#39acda;border-color:transparent;color:#fff}.file.is-link .file-cta{background-color:#2e63b8;border-color:transparent;color:#fff}.file.is-link:hover .file-cta,.file.is-link.is-hovered .file-cta{background-color:#2b5eae;border-color:transparent;color:#fff}.file.is-link:focus .file-cta,.file.is-link.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(46,99,184,0.25);color:#fff}.file.is-link:active .file-cta,.file.is-link.is-active .file-cta{background-color:#2958a4;border-color:transparent;color:#fff}.file.is-info .file-cta{background-color:#209cee;border-color:transparent;color:#fff}.file.is-info:hover .file-cta,.file.is-info.is-hovered .file-cta{background-color:#1497ed;border-color:transparent;color:#fff}.file.is-info:focus .file-cta,.file.is-info.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(32,156,238,0.25);color:#fff}.file.is-info:active .file-cta,.file.is-info.is-active .file-cta{background-color:#1190e3;border-color:transparent;color:#fff}.file.is-success .file-cta{background-color:#22c35b;border-color:transparent;color:#fff}.file.is-success:hover .file-cta,.file.is-success.is-hovered .file-cta{background-color:#20b856;border-color:transparent;color:#fff}.file.is-success:focus .file-cta,.file.is-success.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(34,195,91,0.25);color:#fff}.file.is-success:active .file-cta,.file.is-success.is-active .file-cta{background-color:#1ead51;border-color:transparent;color:#fff}.file.is-warning .file-cta{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-warning:hover .file-cta,.file.is-warning.is-hovered .file-cta{background-color:#ffda4a;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-warning:focus .file-cta,.file.is-warning.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,221,87,0.25);color:rgba(0,0,0,0.7)}.file.is-warning:active .file-cta,.file.is-warning.is-active .file-cta{background-color:#ffd83e;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-danger .file-cta{background-color:#da0b00;border-color:transparent;color:#fff}.file.is-danger:hover .file-cta,.file.is-danger.is-hovered .file-cta{background-color:#cd0a00;border-color:transparent;color:#fff}.file.is-danger:focus .file-cta,.file.is-danger.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(218,11,0,0.25);color:#fff}.file.is-danger:active .file-cta,.file.is-danger.is-active .file-cta{background-color:#c10a00;border-color:transparent;color:#fff}.file.is-small,#documenter .docs-sidebar form.docs-search>input.file{font-size:.75rem}.file.is-medium{font-size:1.25rem}.file.is-medium .file-icon .fa{font-size:21px}.file.is-large{font-size:1.5rem}.file.is-large .file-icon .fa{font-size:28px}.file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}.file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}.file.has-name.is-empty .file-cta{border-radius:4px}.file.has-name.is-empty .file-name{display:none}.file.is-boxed .file-label{flex-direction:column}.file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}.file.is-boxed .file-name{border-width:0 1px 1px}.file.is-boxed .file-icon{height:1.5em;width:1.5em}.file.is-boxed .file-icon .fa{font-size:21px}.file.is-boxed.is-small .file-icon .fa,#documenter .docs-sidebar form.docs-search>input.is-boxed .file-icon .fa{font-size:14px}.file.is-boxed.is-medium .file-icon .fa{font-size:28px}.file.is-boxed.is-large .file-icon .fa{font-size:35px}.file.is-boxed.has-name .file-cta{border-radius:4px 4px 0 0}.file.is-boxed.has-name .file-name{border-radius:0 0 4px 4px;border-width:0 1px 1px}.file.is-centered{justify-content:center}.file.is-fullwidth .file-label{width:100%}.file.is-fullwidth .file-name{flex-grow:1;max-width:none}.file.is-right{justify-content:flex-end}.file.is-right .file-cta{border-radius:0 4px 4px 0}.file.is-right .file-name{border-radius:4px 0 0 4px;border-width:1px 0 1px 1px;order:-1}.file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}.file-label:hover .file-cta{background-color:#eee;color:#363636}.file-label:hover .file-name{border-color:#d5d5d5}.file-label:active .file-cta{background-color:#e8e8e8;color:#363636}.file-label:active .file-name{border-color:#cfcfcf}.file-input{height:100%;left:0;opacity:0;outline:none;position:absolute;top:0;width:100%}.file-cta,.file-name{border-color:#dbdbdb;border-radius:4px;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}.file-cta{background-color:#f5f5f5;color:#4a4a4a}.file-name{border-color:#dbdbdb;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:left;text-overflow:ellipsis}.file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:0.5em;width:1em}.file-icon .fa{font-size:14px}.label{color:#363636;display:block;font-size:1rem;font-weight:700}.label:not(:last-child){margin-bottom:0.5em}.label.is-small,#documenter .docs-sidebar form.docs-search>input.label{font-size:.75rem}.label.is-medium{font-size:1.25rem}.label.is-large{font-size:1.5rem}.help{display:block;font-size:.75rem;margin-top:0.25rem}.help.is-white{color:#fff}.help.is-black{color:#0a0a0a}.help.is-light{color:#f5f5f5}.help.is-dark,.content kbd.help{color:#363636}.help.is-primary,.docstring>section>a.help.docs-sourcelink{color:#4eb5de}.help.is-link{color:#2e63b8}.help.is-info{color:#209cee}.help.is-success{color:#22c35b}.help.is-warning{color:#ffdd57}.help.is-danger{color:#da0b00}.field:not(:last-child){margin-bottom:0.75rem}.field.has-addons{display:flex;justify-content:flex-start}.field.has-addons .control:not(:last-child){margin-right:-1px}.field.has-addons .control:not(:first-child):not(:last-child) .button,.field.has-addons .control:not(:first-child):not(:last-child) .input,.field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search>input,.field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}.field.has-addons .control:first-child:not(:only-child) .button,.field.has-addons .control:first-child:not(:only-child) .input,.field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search>input,.field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}.field.has-addons .control:last-child:not(:only-child) .button,.field.has-addons .control:last-child:not(:only-child) .input,.field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search>input,.field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}.field.has-addons .control .button:not([disabled]):hover,.field.has-addons .control .button.is-hovered:not([disabled]),.field.has-addons .control .input:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):hover,.field.has-addons .control .input.is-hovered:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-hovered:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-hovered:not([disabled]),.field.has-addons .control .select select:not([disabled]):hover,.field.has-addons .control .select select.is-hovered:not([disabled]){z-index:2}.field.has-addons .control .button:not([disabled]):focus,.field.has-addons .control .button.is-focused:not([disabled]),.field.has-addons .control .button:not([disabled]):active,.field.has-addons .control .button.is-active:not([disabled]),.field.has-addons .control .input:not([disabled]):focus,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus,.field.has-addons .control .input.is-focused:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]),.field.has-addons .control .input:not([disabled]):active,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active,.field.has-addons .control .input.is-active:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]),.field.has-addons .control .select select:not([disabled]):focus,.field.has-addons .control .select select.is-focused:not([disabled]),.field.has-addons .control .select select:not([disabled]):active,.field.has-addons .control .select select.is-active:not([disabled]){z-index:3}.field.has-addons .control .button:not([disabled]):focus:hover,.field.has-addons .control .button.is-focused:not([disabled]):hover,.field.has-addons .control .button:not([disabled]):active:hover,.field.has-addons .control .button.is-active:not([disabled]):hover,.field.has-addons .control .input:not([disabled]):focus:hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus:hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus:hover,.field.has-addons .control .input.is-focused:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]):hover,.field.has-addons .control .input:not([disabled]):active:hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active:hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active:hover,.field.has-addons .control .input.is-active:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]):hover,.field.has-addons .control .select select:not([disabled]):focus:hover,.field.has-addons .control .select select.is-focused:not([disabled]):hover,.field.has-addons .control .select select:not([disabled]):active:hover,.field.has-addons .control .select select.is-active:not([disabled]):hover{z-index:4}.field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}.field.has-addons.has-addons-centered{justify-content:center}.field.has-addons.has-addons-right{justify-content:flex-end}.field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}.field.is-grouped{display:flex;justify-content:flex-start}.field.is-grouped>.control{flex-shrink:0}.field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:0.75rem}.field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}.field.is-grouped.is-grouped-centered{justify-content:center}.field.is-grouped.is-grouped-right{justify-content:flex-end}.field.is-grouped.is-grouped-multiline{flex-wrap:wrap}.field.is-grouped.is-grouped-multiline>.control:last-child,.field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:0.75rem}.field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-0.75rem}.field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width: 769px),print{.field.is-horizontal{display:flex}}.field-label .label{font-size:inherit}@media screen and (max-width: 768px){.field-label{margin-bottom:0.5rem}}@media screen and (min-width: 769px),print{.field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}.field-label.is-small,#documenter .docs-sidebar form.docs-search>input.field-label{font-size:.75rem;padding-top:0.375em}.field-label.is-normal{padding-top:0.375em}.field-label.is-medium{font-size:1.25rem;padding-top:0.375em}.field-label.is-large{font-size:1.5rem;padding-top:0.375em}}.field-body .field .field{margin-bottom:0}@media screen and (min-width: 769px),print{.field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}.field-body .field{margin-bottom:0}.field-body>.field{flex-shrink:1}.field-body>.field:not(.is-narrow){flex-grow:1}.field-body>.field:not(:last-child){margin-right:0.75rem}}.control{box-sizing:border-box;clear:both;font-size:1rem;position:relative;text-align:left}.control.has-icons-left .input:focus~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input:focus~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input:focus~.icon,.control.has-icons-left .select:focus~.icon,.control.has-icons-right .input:focus~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input:focus~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input:focus~.icon,.control.has-icons-right .select:focus~.icon{color:#6b6b6b}.control.has-icons-left .input.is-small~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input~.icon,.control.has-icons-left .select.is-small~.icon,.control.has-icons-right .input.is-small~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input~.icon,.control.has-icons-right .select.is-small~.icon{font-size:.75rem}.control.has-icons-left .input.is-medium~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-medium~.icon,.control.has-icons-left .select.is-medium~.icon,.control.has-icons-right .input.is-medium~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-medium~.icon,.control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}.control.has-icons-left .input.is-large~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-large~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-large~.icon,.control.has-icons-left .select.is-large~.icon,.control.has-icons-right .input.is-large~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-large~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-large~.icon,.control.has-icons-right .select.is-large~.icon{font-size:1.5rem}.control.has-icons-left .icon,.control.has-icons-right .icon{color:#dbdbdb;height:2.25em;pointer-events:none;position:absolute;top:0;width:2.25em;z-index:4}.control.has-icons-left .input,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input,.control.has-icons-left .select select{padding-left:2.25em}.control.has-icons-left .icon.is-left{left:0}.control.has-icons-right .input,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input,.control.has-icons-right .select select{padding-right:2.25em}.control.has-icons-right .icon.is-right{right:0}.control.is-loading::after{position:absolute !important;right:0.625em;top:0.625em;z-index:4}.control.is-loading.is-small:after,#documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}.control.is-loading.is-medium:after{font-size:1.25rem}.control.is-loading.is-large:after{font-size:1.5rem}.breadcrumb{font-size:1rem;white-space:nowrap}.breadcrumb a{align-items:center;color:#2e63b8;display:flex;justify-content:center;padding:0 .75em}.breadcrumb a:hover{color:#363636}.breadcrumb li{align-items:center;display:flex}.breadcrumb li:first-child a{padding-left:0}.breadcrumb li.is-active a{color:#222;cursor:default;pointer-events:none}.breadcrumb li+li::before{color:#b5b5b5;content:"\0002f"}.breadcrumb ul,.breadcrumb ol{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}.breadcrumb .icon:first-child{margin-right:0.5em}.breadcrumb .icon:last-child{margin-left:0.5em}.breadcrumb.is-centered ol,.breadcrumb.is-centered ul{justify-content:center}.breadcrumb.is-right ol,.breadcrumb.is-right ul{justify-content:flex-end}.breadcrumb.is-small,#documenter .docs-sidebar form.docs-search>input.breadcrumb{font-size:.75rem}.breadcrumb.is-medium{font-size:1.25rem}.breadcrumb.is-large{font-size:1.5rem}.breadcrumb.has-arrow-separator li+li::before{content:"\02192"}.breadcrumb.has-bullet-separator li+li::before{content:"\02022"}.breadcrumb.has-dot-separator li+li::before{content:"\000b7"}.breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}.card{background-color:#fff;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#222;max-width:100%;position:relative}.card-header{background-color:rgba(0,0,0,0);align-items:stretch;box-shadow:0 1px 2px rgba(10,10,10,0.1);display:flex}.card-header-title{align-items:center;color:#222;display:flex;flex-grow:1;font-weight:700;padding:.75rem}.card-header-title.is-centered{justify-content:center}.card-header-icon{align-items:center;cursor:pointer;display:flex;justify-content:center;padding:.75rem}.card-image{display:block;position:relative}.card-content{background-color:rgba(0,0,0,0);padding:1.5rem}.card-footer{background-color:rgba(0,0,0,0);border-top:1px solid #dbdbdb;align-items:stretch;display:flex}.card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}.card-footer-item:not(:last-child){border-right:1px solid #dbdbdb}.card .media:not(:last-child){margin-bottom:1.5rem}.dropdown{display:inline-flex;position:relative;vertical-align:top}.dropdown.is-active .dropdown-menu,.dropdown.is-hoverable:hover .dropdown-menu{display:block}.dropdown.is-right .dropdown-menu{left:auto;right:0}.dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}.dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}.dropdown-content{background-color:#fff;border-radius:4px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);padding-bottom:.5rem;padding-top:.5rem}.dropdown-item{color:#4a4a4a;display:block;font-size:0.875rem;line-height:1.5;padding:0.375rem 1rem;position:relative}a.dropdown-item,button.dropdown-item{padding-right:3rem;text-align:left;white-space:nowrap;width:100%}a.dropdown-item:hover,button.dropdown-item:hover{background-color:#f5f5f5;color:#0a0a0a}a.dropdown-item.is-active,button.dropdown-item.is-active{background-color:#2e63b8;color:#fff}.dropdown-divider{background-color:#dbdbdb;border:none;display:block;height:1px;margin:0.5rem 0}.level{align-items:center;justify-content:space-between}.level code{border-radius:4px}.level img{display:inline-block;vertical-align:top}.level.is-mobile{display:flex}.level.is-mobile .level-left,.level.is-mobile .level-right{display:flex}.level.is-mobile .level-left+.level-right{margin-top:0}.level.is-mobile .level-item:not(:last-child){margin-bottom:0;margin-right:.75rem}.level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width: 769px),print{.level{display:flex}.level>.level-item:not(.is-narrow){flex-grow:1}}.level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}.level-item .title,.level-item .subtitle{margin-bottom:0}@media screen and (max-width: 768px){.level-item:not(:last-child){margin-bottom:.75rem}}.level-left,.level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.level-left .level-item.is-flexible,.level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width: 769px),print{.level-left .level-item:not(:last-child),.level-right .level-item:not(:last-child){margin-right:.75rem}}.level-left{align-items:center;justify-content:flex-start}@media screen and (max-width: 768px){.level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width: 769px),print{.level-left{display:flex}}.level-right{align-items:center;justify-content:flex-end}@media screen and (min-width: 769px),print{.level-right{display:flex}}.list{background-color:#fff;border-radius:4px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1)}.list-item{display:block;padding:0.5em 1em}.list-item:not(a){color:#222}.list-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-item:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px}.list-item:not(:last-child){border-bottom:1px solid #dbdbdb}.list-item.is-active{background-color:#2e63b8;color:#fff}a.list-item{background-color:#f5f5f5;cursor:pointer}.media{align-items:flex-start;display:flex;text-align:left}.media .content:not(:last-child){margin-bottom:0.75rem}.media .media{border-top:1px solid rgba(219,219,219,0.5);display:flex;padding-top:0.75rem}.media .media .content:not(:last-child),.media .media .control:not(:last-child){margin-bottom:0.5rem}.media .media .media{padding-top:0.5rem}.media .media .media+.media{margin-top:0.5rem}.media+.media{border-top:1px solid rgba(219,219,219,0.5);margin-top:1rem;padding-top:1rem}.media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}.media-left,.media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.media-left{margin-right:1rem}.media-right{margin-left:1rem}.media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:left}@media screen and (max-width: 768px){.media-content{overflow-x:auto}}.menu{font-size:1rem}.menu.is-small,#documenter .docs-sidebar form.docs-search>input.menu{font-size:.75rem}.menu.is-medium{font-size:1.25rem}.menu.is-large{font-size:1.5rem}.menu-list{line-height:1.25}.menu-list a{border-radius:2px;color:#222;display:block;padding:0.5em 0.75em}.menu-list a:hover{background-color:#f5f5f5;color:#222}.menu-list a.is-active{background-color:#2e63b8;color:#fff}.menu-list li ul{border-left:1px solid #dbdbdb;margin:.75em;padding-left:.75em}.menu-label{color:#6b6b6b;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}.menu-label:not(:first-child){margin-top:1em}.menu-label:not(:last-child){margin-bottom:1em}.message{background-color:#f5f5f5;border-radius:4px;font-size:1rem}.message strong{color:currentColor}.message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}.message.is-small,#documenter .docs-sidebar form.docs-search>input.message{font-size:.75rem}.message.is-medium{font-size:1.25rem}.message.is-large{font-size:1.5rem}.message.is-white{background-color:#fff}.message.is-white .message-header{background-color:#fff;color:#0a0a0a}.message.is-white .message-body{border-color:#fff;color:#4d4d4d}.message.is-black{background-color:#fafafa}.message.is-black .message-header{background-color:#0a0a0a;color:#fff}.message.is-black .message-body{border-color:#0a0a0a;color:#090909}.message.is-light{background-color:#fafafa}.message.is-light .message-header{background-color:#f5f5f5;color:#363636}.message.is-light .message-body{border-color:#f5f5f5;color:#505050}.message.is-dark,.content kbd.message{background-color:#fafafa}.message.is-dark .message-header,.content kbd.message .message-header{background-color:#363636;color:#f5f5f5}.message.is-dark .message-body,.content kbd.message .message-body{border-color:#363636;color:#2a2a2a}.message.is-primary,.docstring>section>a.message.docs-sourcelink{background-color:#f6fbfd}.message.is-primary .message-header,.docstring>section>a.message.docs-sourcelink .message-header{background-color:#4eb5de;color:#fff}.message.is-primary .message-body,.docstring>section>a.message.docs-sourcelink .message-body{border-color:#4eb5de;color:#1f556a}.message.is-link{background-color:#f7f9fd}.message.is-link .message-header{background-color:#2e63b8;color:#fff}.message.is-link .message-body{border-color:#2e63b8;color:#264981}.message.is-info{background-color:#f6fbfe}.message.is-info .message-header{background-color:#209cee;color:#fff}.message.is-info .message-body{border-color:#209cee;color:#12537d}.message.is-success{background-color:#f6fdf9}.message.is-success .message-header{background-color:#22c35b;color:#fff}.message.is-success .message-body{border-color:#22c35b;color:#0f361d}.message.is-warning{background-color:#fffdf5}.message.is-warning .message-header{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.message.is-warning .message-body{border-color:#ffdd57;color:#3c3108}.message.is-danger{background-color:#fff5f5}.message.is-danger .message-header{background-color:#da0b00;color:#fff}.message.is-danger .message-body{border-color:#da0b00;color:#9b0c04}.message-header{align-items:center;background-color:#222;border-radius:4px 4px 0 0;color:#fff;display:flex;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.75em 1em;position:relative}.message-header .delete{flex-grow:0;flex-shrink:0;margin-left:0.75em}.message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}.message-body{border-color:#dbdbdb;border-radius:4px;border-style:solid;border-width:0 0 0 4px;color:#222;padding:1.25em 1.5em}.message-body code,.message-body pre{background-color:#fff}.message-body pre code{background-color:rgba(0,0,0,0)}.modal{align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}.modal.is-active{display:flex}.modal-background{background-color:rgba(10,10,10,0.86)}.modal-content,.modal-card{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width: 769px),print{.modal-content,.modal-card{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}.modal-close{background:none;height:40px;position:fixed;right:20px;top:20px;width:40px}.modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}.modal-card-head,.modal-card-foot{align-items:center;background-color:#f5f5f5;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}.modal-card-head{border-bottom:1px solid #dbdbdb;border-top-left-radius:6px;border-top-right-radius:6px}.modal-card-title{color:#222;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}.modal-card-foot{border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:1px solid #dbdbdb}.modal-card-foot .button:not(:last-child){margin-right:0.5em}.modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}.navbar{background-color:#fff;min-height:3.25rem;position:relative;z-index:30}.navbar.is-white{background-color:#fff;color:#0a0a0a}.navbar.is-white .navbar-brand>.navbar-item,.navbar.is-white .navbar-brand .navbar-link{color:#0a0a0a}.navbar.is-white .navbar-brand>a.navbar-item:focus,.navbar.is-white .navbar-brand>a.navbar-item:hover,.navbar.is-white .navbar-brand>a.navbar-item.is-active,.navbar.is-white .navbar-brand .navbar-link:focus,.navbar.is-white .navbar-brand .navbar-link:hover,.navbar.is-white .navbar-brand .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-burger{color:#0a0a0a}@media screen and (min-width: 1056px){.navbar.is-white .navbar-start>.navbar-item,.navbar.is-white .navbar-start .navbar-link,.navbar.is-white .navbar-end>.navbar-item,.navbar.is-white .navbar-end .navbar-link{color:#0a0a0a}.navbar.is-white .navbar-start>a.navbar-item:focus,.navbar.is-white .navbar-start>a.navbar-item:hover,.navbar.is-white .navbar-start>a.navbar-item.is-active,.navbar.is-white .navbar-start .navbar-link:focus,.navbar.is-white .navbar-start .navbar-link:hover,.navbar.is-white .navbar-start .navbar-link.is-active,.navbar.is-white .navbar-end>a.navbar-item:focus,.navbar.is-white .navbar-end>a.navbar-item:hover,.navbar.is-white .navbar-end>a.navbar-item.is-active,.navbar.is-white .navbar-end .navbar-link:focus,.navbar.is-white .navbar-end .navbar-link:hover,.navbar.is-white .navbar-end .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-start .navbar-link::after,.navbar.is-white .navbar-end .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}.navbar.is-black{background-color:#0a0a0a;color:#fff}.navbar.is-black .navbar-brand>.navbar-item,.navbar.is-black .navbar-brand .navbar-link{color:#fff}.navbar.is-black .navbar-brand>a.navbar-item:focus,.navbar.is-black .navbar-brand>a.navbar-item:hover,.navbar.is-black .navbar-brand>a.navbar-item.is-active,.navbar.is-black .navbar-brand .navbar-link:focus,.navbar.is-black .navbar-brand .navbar-link:hover,.navbar.is-black .navbar-brand .navbar-link.is-active{background-color:#000;color:#fff}.navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-black .navbar-start>.navbar-item,.navbar.is-black .navbar-start .navbar-link,.navbar.is-black .navbar-end>.navbar-item,.navbar.is-black .navbar-end .navbar-link{color:#fff}.navbar.is-black .navbar-start>a.navbar-item:focus,.navbar.is-black .navbar-start>a.navbar-item:hover,.navbar.is-black .navbar-start>a.navbar-item.is-active,.navbar.is-black .navbar-start .navbar-link:focus,.navbar.is-black .navbar-start .navbar-link:hover,.navbar.is-black .navbar-start .navbar-link.is-active,.navbar.is-black .navbar-end>a.navbar-item:focus,.navbar.is-black .navbar-end>a.navbar-item:hover,.navbar.is-black .navbar-end>a.navbar-item.is-active,.navbar.is-black .navbar-end .navbar-link:focus,.navbar.is-black .navbar-end .navbar-link:hover,.navbar.is-black .navbar-end .navbar-link.is-active{background-color:#000;color:#fff}.navbar.is-black .navbar-start .navbar-link::after,.navbar.is-black .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link{background-color:#000;color:#fff}.navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}.navbar.is-light{background-color:#f5f5f5;color:#363636}.navbar.is-light .navbar-brand>.navbar-item,.navbar.is-light .navbar-brand .navbar-link{color:#363636}.navbar.is-light .navbar-brand>a.navbar-item:focus,.navbar.is-light .navbar-brand>a.navbar-item:hover,.navbar.is-light .navbar-brand>a.navbar-item.is-active,.navbar.is-light .navbar-brand .navbar-link:focus,.navbar.is-light .navbar-brand .navbar-link:hover,.navbar.is-light .navbar-brand .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-brand .navbar-link::after{border-color:#363636}.navbar.is-light .navbar-burger{color:#363636}@media screen and (min-width: 1056px){.navbar.is-light .navbar-start>.navbar-item,.navbar.is-light .navbar-start .navbar-link,.navbar.is-light .navbar-end>.navbar-item,.navbar.is-light .navbar-end .navbar-link{color:#363636}.navbar.is-light .navbar-start>a.navbar-item:focus,.navbar.is-light .navbar-start>a.navbar-item:hover,.navbar.is-light .navbar-start>a.navbar-item.is-active,.navbar.is-light .navbar-start .navbar-link:focus,.navbar.is-light .navbar-start .navbar-link:hover,.navbar.is-light .navbar-start .navbar-link.is-active,.navbar.is-light .navbar-end>a.navbar-item:focus,.navbar.is-light .navbar-end>a.navbar-item:hover,.navbar.is-light .navbar-end>a.navbar-item.is-active,.navbar.is-light .navbar-end .navbar-link:focus,.navbar.is-light .navbar-end .navbar-link:hover,.navbar.is-light .navbar-end .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-start .navbar-link::after,.navbar.is-light .navbar-end .navbar-link::after{border-color:#363636}.navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#363636}}.navbar.is-dark,.content kbd.navbar{background-color:#363636;color:#f5f5f5}.navbar.is-dark .navbar-brand>.navbar-item,.content kbd.navbar .navbar-brand>.navbar-item,.navbar.is-dark .navbar-brand .navbar-link,.content kbd.navbar .navbar-brand .navbar-link{color:#f5f5f5}.navbar.is-dark .navbar-brand>a.navbar-item:focus,.content kbd.navbar .navbar-brand>a.navbar-item:focus,.navbar.is-dark .navbar-brand>a.navbar-item:hover,.content kbd.navbar .navbar-brand>a.navbar-item:hover,.navbar.is-dark .navbar-brand>a.navbar-item.is-active,.content kbd.navbar .navbar-brand>a.navbar-item.is-active,.navbar.is-dark .navbar-brand .navbar-link:focus,.content kbd.navbar .navbar-brand .navbar-link:focus,.navbar.is-dark .navbar-brand .navbar-link:hover,.content kbd.navbar .navbar-brand .navbar-link:hover,.navbar.is-dark .navbar-brand .navbar-link.is-active,.content kbd.navbar .navbar-brand .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-brand .navbar-link::after,.content kbd.navbar .navbar-brand .navbar-link::after{border-color:#f5f5f5}.navbar.is-dark .navbar-burger,.content kbd.navbar .navbar-burger{color:#f5f5f5}@media screen and (min-width: 1056px){.navbar.is-dark .navbar-start>.navbar-item,.content kbd.navbar .navbar-start>.navbar-item,.navbar.is-dark .navbar-start .navbar-link,.content kbd.navbar .navbar-start .navbar-link,.navbar.is-dark .navbar-end>.navbar-item,.content kbd.navbar .navbar-end>.navbar-item,.navbar.is-dark .navbar-end .navbar-link,.content kbd.navbar .navbar-end .navbar-link{color:#f5f5f5}.navbar.is-dark .navbar-start>a.navbar-item:focus,.content kbd.navbar .navbar-start>a.navbar-item:focus,.navbar.is-dark .navbar-start>a.navbar-item:hover,.content kbd.navbar .navbar-start>a.navbar-item:hover,.navbar.is-dark .navbar-start>a.navbar-item.is-active,.content kbd.navbar .navbar-start>a.navbar-item.is-active,.navbar.is-dark .navbar-start .navbar-link:focus,.content kbd.navbar .navbar-start .navbar-link:focus,.navbar.is-dark .navbar-start .navbar-link:hover,.content kbd.navbar .navbar-start .navbar-link:hover,.navbar.is-dark .navbar-start .navbar-link.is-active,.content kbd.navbar .navbar-start .navbar-link.is-active,.navbar.is-dark .navbar-end>a.navbar-item:focus,.content kbd.navbar .navbar-end>a.navbar-item:focus,.navbar.is-dark .navbar-end>a.navbar-item:hover,.content kbd.navbar .navbar-end>a.navbar-item:hover,.navbar.is-dark .navbar-end>a.navbar-item.is-active,.content kbd.navbar .navbar-end>a.navbar-item.is-active,.navbar.is-dark .navbar-end .navbar-link:focus,.content kbd.navbar .navbar-end .navbar-link:focus,.navbar.is-dark .navbar-end .navbar-link:hover,.content kbd.navbar .navbar-end .navbar-link:hover,.navbar.is-dark .navbar-end .navbar-link.is-active,.content kbd.navbar .navbar-end .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-start .navbar-link::after,.content kbd.navbar .navbar-start .navbar-link::after,.navbar.is-dark .navbar-end .navbar-link::after,.content kbd.navbar .navbar-end .navbar-link::after{border-color:#f5f5f5}.navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,.content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,.content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,.content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-dropdown a.navbar-item.is-active,.content kbd.navbar .navbar-dropdown a.navbar-item.is-active{background-color:#363636;color:#f5f5f5}}.navbar.is-primary,.docstring>section>a.navbar.docs-sourcelink{background-color:#4eb5de;color:#fff}.navbar.is-primary .navbar-brand>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>.navbar-item,.navbar.is-primary .navbar-brand .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link{color:#fff}.navbar.is-primary .navbar-brand>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:focus,.navbar.is-primary .navbar-brand>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:hover,.navbar.is-primary .navbar-brand>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item.is-active,.navbar.is-primary .navbar-brand .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,.navbar.is-primary .navbar-brand .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,.navbar.is-primary .navbar-brand .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-brand .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-burger,.docstring>section>a.navbar.docs-sourcelink .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-primary .navbar-start>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-start>.navbar-item,.navbar.is-primary .navbar-start .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link,.navbar.is-primary .navbar-end>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-end>.navbar-item,.navbar.is-primary .navbar-end .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link{color:#fff}.navbar.is-primary .navbar-start>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:focus,.navbar.is-primary .navbar-start>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:hover,.navbar.is-primary .navbar-start>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item.is-active,.navbar.is-primary .navbar-start .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,.navbar.is-primary .navbar-start .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,.navbar.is-primary .navbar-start .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,.navbar.is-primary .navbar-end>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:focus,.navbar.is-primary .navbar-end>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:hover,.navbar.is-primary .navbar-end>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item.is-active,.navbar.is-primary .navbar-end .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,.navbar.is-primary .navbar-end .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,.navbar.is-primary .navbar-end .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-start .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link::after,.navbar.is-primary .navbar-end .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-dropdown a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#4eb5de;color:#fff}}.navbar.is-link{background-color:#2e63b8;color:#fff}.navbar.is-link .navbar-brand>.navbar-item,.navbar.is-link .navbar-brand .navbar-link{color:#fff}.navbar.is-link .navbar-brand>a.navbar-item:focus,.navbar.is-link .navbar-brand>a.navbar-item:hover,.navbar.is-link .navbar-brand>a.navbar-item.is-active,.navbar.is-link .navbar-brand .navbar-link:focus,.navbar.is-link .navbar-brand .navbar-link:hover,.navbar.is-link .navbar-brand .navbar-link.is-active{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-link .navbar-start>.navbar-item,.navbar.is-link .navbar-start .navbar-link,.navbar.is-link .navbar-end>.navbar-item,.navbar.is-link .navbar-end .navbar-link{color:#fff}.navbar.is-link .navbar-start>a.navbar-item:focus,.navbar.is-link .navbar-start>a.navbar-item:hover,.navbar.is-link .navbar-start>a.navbar-item.is-active,.navbar.is-link .navbar-start .navbar-link:focus,.navbar.is-link .navbar-start .navbar-link:hover,.navbar.is-link .navbar-start .navbar-link.is-active,.navbar.is-link .navbar-end>a.navbar-item:focus,.navbar.is-link .navbar-end>a.navbar-item:hover,.navbar.is-link .navbar-end>a.navbar-item.is-active,.navbar.is-link .navbar-end .navbar-link:focus,.navbar.is-link .navbar-end .navbar-link:hover,.navbar.is-link .navbar-end .navbar-link.is-active{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-start .navbar-link::after,.navbar.is-link .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#2e63b8;color:#fff}}.navbar.is-info{background-color:#209cee;color:#fff}.navbar.is-info .navbar-brand>.navbar-item,.navbar.is-info .navbar-brand .navbar-link{color:#fff}.navbar.is-info .navbar-brand>a.navbar-item:focus,.navbar.is-info .navbar-brand>a.navbar-item:hover,.navbar.is-info .navbar-brand>a.navbar-item.is-active,.navbar.is-info .navbar-brand .navbar-link:focus,.navbar.is-info .navbar-brand .navbar-link:hover,.navbar.is-info .navbar-brand .navbar-link.is-active{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-info .navbar-start>.navbar-item,.navbar.is-info .navbar-start .navbar-link,.navbar.is-info .navbar-end>.navbar-item,.navbar.is-info .navbar-end .navbar-link{color:#fff}.navbar.is-info .navbar-start>a.navbar-item:focus,.navbar.is-info .navbar-start>a.navbar-item:hover,.navbar.is-info .navbar-start>a.navbar-item.is-active,.navbar.is-info .navbar-start .navbar-link:focus,.navbar.is-info .navbar-start .navbar-link:hover,.navbar.is-info .navbar-start .navbar-link.is-active,.navbar.is-info .navbar-end>a.navbar-item:focus,.navbar.is-info .navbar-end>a.navbar-item:hover,.navbar.is-info .navbar-end>a.navbar-item.is-active,.navbar.is-info .navbar-end .navbar-link:focus,.navbar.is-info .navbar-end .navbar-link:hover,.navbar.is-info .navbar-end .navbar-link.is-active{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-start .navbar-link::after,.navbar.is-info .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#209cee;color:#fff}}.navbar.is-success{background-color:#22c35b;color:#fff}.navbar.is-success .navbar-brand>.navbar-item,.navbar.is-success .navbar-brand .navbar-link{color:#fff}.navbar.is-success .navbar-brand>a.navbar-item:focus,.navbar.is-success .navbar-brand>a.navbar-item:hover,.navbar.is-success .navbar-brand>a.navbar-item.is-active,.navbar.is-success .navbar-brand .navbar-link:focus,.navbar.is-success .navbar-brand .navbar-link:hover,.navbar.is-success .navbar-brand .navbar-link.is-active{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-success .navbar-start>.navbar-item,.navbar.is-success .navbar-start .navbar-link,.navbar.is-success .navbar-end>.navbar-item,.navbar.is-success .navbar-end .navbar-link{color:#fff}.navbar.is-success .navbar-start>a.navbar-item:focus,.navbar.is-success .navbar-start>a.navbar-item:hover,.navbar.is-success .navbar-start>a.navbar-item.is-active,.navbar.is-success .navbar-start .navbar-link:focus,.navbar.is-success .navbar-start .navbar-link:hover,.navbar.is-success .navbar-start .navbar-link.is-active,.navbar.is-success .navbar-end>a.navbar-item:focus,.navbar.is-success .navbar-end>a.navbar-item:hover,.navbar.is-success .navbar-end>a.navbar-item.is-active,.navbar.is-success .navbar-end .navbar-link:focus,.navbar.is-success .navbar-end .navbar-link:hover,.navbar.is-success .navbar-end .navbar-link.is-active{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-start .navbar-link::after,.navbar.is-success .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#22c35b;color:#fff}}.navbar.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand>.navbar-item,.navbar.is-warning .navbar-brand .navbar-link{color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand>a.navbar-item:focus,.navbar.is-warning .navbar-brand>a.navbar-item:hover,.navbar.is-warning .navbar-brand>a.navbar-item.is-active,.navbar.is-warning .navbar-brand .navbar-link:focus,.navbar.is-warning .navbar-brand .navbar-link:hover,.navbar.is-warning .navbar-brand .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-burger{color:rgba(0,0,0,0.7)}@media screen and (min-width: 1056px){.navbar.is-warning .navbar-start>.navbar-item,.navbar.is-warning .navbar-start .navbar-link,.navbar.is-warning .navbar-end>.navbar-item,.navbar.is-warning .navbar-end .navbar-link{color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-start>a.navbar-item:focus,.navbar.is-warning .navbar-start>a.navbar-item:hover,.navbar.is-warning .navbar-start>a.navbar-item.is-active,.navbar.is-warning .navbar-start .navbar-link:focus,.navbar.is-warning .navbar-start .navbar-link:hover,.navbar.is-warning .navbar-start .navbar-link.is-active,.navbar.is-warning .navbar-end>a.navbar-item:focus,.navbar.is-warning .navbar-end>a.navbar-item:hover,.navbar.is-warning .navbar-end>a.navbar-item.is-active,.navbar.is-warning .navbar-end .navbar-link:focus,.navbar.is-warning .navbar-end .navbar-link:hover,.navbar.is-warning .navbar-end .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-start .navbar-link::after,.navbar.is-warning .navbar-end .navbar-link::after{border-color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ffdd57;color:rgba(0,0,0,0.7)}}.navbar.is-danger{background-color:#da0b00;color:#fff}.navbar.is-danger .navbar-brand>.navbar-item,.navbar.is-danger .navbar-brand .navbar-link{color:#fff}.navbar.is-danger .navbar-brand>a.navbar-item:focus,.navbar.is-danger .navbar-brand>a.navbar-item:hover,.navbar.is-danger .navbar-brand>a.navbar-item.is-active,.navbar.is-danger .navbar-brand .navbar-link:focus,.navbar.is-danger .navbar-brand .navbar-link:hover,.navbar.is-danger .navbar-brand .navbar-link.is-active{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-danger .navbar-start>.navbar-item,.navbar.is-danger .navbar-start .navbar-link,.navbar.is-danger .navbar-end>.navbar-item,.navbar.is-danger .navbar-end .navbar-link{color:#fff}.navbar.is-danger .navbar-start>a.navbar-item:focus,.navbar.is-danger .navbar-start>a.navbar-item:hover,.navbar.is-danger .navbar-start>a.navbar-item.is-active,.navbar.is-danger .navbar-start .navbar-link:focus,.navbar.is-danger .navbar-start .navbar-link:hover,.navbar.is-danger .navbar-start .navbar-link.is-active,.navbar.is-danger .navbar-end>a.navbar-item:focus,.navbar.is-danger .navbar-end>a.navbar-item:hover,.navbar.is-danger .navbar-end>a.navbar-item.is-active,.navbar.is-danger .navbar-end .navbar-link:focus,.navbar.is-danger .navbar-end .navbar-link:hover,.navbar.is-danger .navbar-end .navbar-link.is-active{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-start .navbar-link::after,.navbar.is-danger .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#da0b00;color:#fff}}.navbar>.container{align-items:stretch;display:flex;min-height:3.25rem;width:100%}.navbar.has-shadow{box-shadow:0 2px 0 0 #f5f5f5}.navbar.is-fixed-bottom,.navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom{bottom:0}.navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #f5f5f5}.navbar.is-fixed-top{top:0}html.has-navbar-fixed-top,body.has-navbar-fixed-top{padding-top:3.25rem}html.has-navbar-fixed-bottom,body.has-navbar-fixed-bottom{padding-bottom:3.25rem}.navbar-brand,.navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:3.25rem}.navbar-brand a.navbar-item:focus,.navbar-brand a.navbar-item:hover{background-color:transparent}.navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}.navbar-burger{color:#4a4a4a;cursor:pointer;display:block;height:3.25rem;position:relative;width:3.25rem;margin-left:auto}.navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;transform-origin:center;transition-duration:86ms;transition-property:background-color, opacity, transform;transition-timing-function:ease-out;width:16px}.navbar-burger span:nth-child(1){top:calc(50% - 6px)}.navbar-burger span:nth-child(2){top:calc(50% - 1px)}.navbar-burger span:nth-child(3){top:calc(50% + 4px)}.navbar-burger:hover{background-color:rgba(0,0,0,0.05)}.navbar-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}.navbar-burger.is-active span:nth-child(2){opacity:0}.navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}.navbar-menu{display:none}.navbar-item,.navbar-link{color:#4a4a4a;display:block;line-height:1.5;padding:0.5rem 0.75rem;position:relative}.navbar-item .icon:only-child,.navbar-link .icon:only-child{margin-left:-0.25rem;margin-right:-0.25rem}a.navbar-item,.navbar-link{cursor:pointer}a.navbar-item:focus,a.navbar-item:focus-within,a.navbar-item:hover,a.navbar-item.is-active,.navbar-link:focus,.navbar-link:focus-within,.navbar-link:hover,.navbar-link.is-active{background-color:#fafafa;color:#2e63b8}.navbar-item{display:block;flex-grow:0;flex-shrink:0}.navbar-item img{max-height:1.75rem}.navbar-item.has-dropdown{padding:0}.navbar-item.is-expanded{flex-grow:1;flex-shrink:1}.navbar-item.is-tab{border-bottom:1px solid transparent;min-height:3.25rem;padding-bottom:calc(0.5rem - 1px)}.navbar-item.is-tab:focus,.navbar-item.is-tab:hover{background-color:rgba(0,0,0,0);border-bottom-color:#2e63b8}.navbar-item.is-tab.is-active{background-color:rgba(0,0,0,0);border-bottom-color:#2e63b8;border-bottom-style:solid;border-bottom-width:3px;color:#2e63b8;padding-bottom:calc(0.5rem - 3px)}.navbar-content{flex-grow:1;flex-shrink:1}.navbar-link:not(.is-arrowless){padding-right:2.5em}.navbar-link:not(.is-arrowless)::after{border-color:#2e63b8;margin-top:-0.375em;right:1.125em}.navbar-dropdown{font-size:0.875rem;padding-bottom:0.5rem;padding-top:0.5rem}.navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}.navbar-divider{background-color:#f5f5f5;border:none;display:none;height:2px;margin:0.5rem 0}@media screen and (max-width: 1055px){.navbar>.container{display:block}.navbar-brand .navbar-item,.navbar-tabs .navbar-item{align-items:center;display:flex}.navbar-link::after{display:none}.navbar-menu{background-color:#fff;box-shadow:0 8px 16px rgba(10,10,10,0.1);padding:0.5rem 0}.navbar-menu.is-active{display:block}.navbar.is-fixed-bottom-touch,.navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-touch{bottom:0}.navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}.navbar.is-fixed-top-touch{top:0}.navbar.is-fixed-top .navbar-menu,.navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 3.25rem);overflow:auto}html.has-navbar-fixed-top-touch,body.has-navbar-fixed-top-touch{padding-top:3.25rem}html.has-navbar-fixed-bottom-touch,body.has-navbar-fixed-bottom-touch{padding-bottom:3.25rem}}@media screen and (min-width: 1056px){.navbar,.navbar-menu,.navbar-start,.navbar-end{align-items:stretch;display:flex}.navbar{min-height:3.25rem}.navbar.is-spaced{padding:1rem 2rem}.navbar.is-spaced .navbar-start,.navbar.is-spaced .navbar-end{align-items:center}.navbar.is-spaced a.navbar-item,.navbar.is-spaced .navbar-link{border-radius:4px}.navbar.is-transparent a.navbar-item:focus,.navbar.is-transparent a.navbar-item:hover,.navbar.is-transparent a.navbar-item.is-active,.navbar.is-transparent .navbar-link:focus,.navbar.is-transparent .navbar-link:hover,.navbar.is-transparent .navbar-link.is-active{background-color:transparent !important}.navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent !important}.navbar.is-transparent .navbar-dropdown a.navbar-item:focus,.navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#2e63b8}.navbar-burger{display:none}.navbar-item,.navbar-link{align-items:center;display:flex}.navbar-item{display:flex}.navbar-item.has-dropdown{align-items:stretch}.navbar-item.has-dropdown-up .navbar-link::after{transform:rotate(135deg) translate(0.25em, -0.25em)}.navbar-item.has-dropdown-up .navbar-dropdown{border-bottom:2px solid #dbdbdb;border-radius:6px 6px 0 0;border-top:none;bottom:100%;box-shadow:0 -8px 8px rgba(10,10,10,0.1);top:auto}.navbar-item.is-active .navbar-dropdown,.navbar-item.is-hoverable:focus .navbar-dropdown,.navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar.is-spaced .navbar-item.is-active .navbar-dropdown,.navbar-item.is-active .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown,.navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown,.navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed{opacity:1;pointer-events:auto;transform:translateY(0)}.navbar-menu{flex-grow:1;flex-shrink:0}.navbar-start{justify-content:flex-start;margin-right:auto}.navbar-end{justify-content:flex-end;margin-left:auto}.navbar-dropdown{background-color:#fff;border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:2px solid #dbdbdb;box-shadow:0 8px 8px rgba(10,10,10,0.1);display:none;font-size:0.875rem;left:0;min-width:100%;position:absolute;top:100%;z-index:20}.navbar-dropdown .navbar-item{padding:0.375rem 1rem;white-space:nowrap}.navbar-dropdown a.navbar-item{padding-right:3rem}.navbar-dropdown a.navbar-item:focus,.navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#2e63b8}.navbar.is-spaced .navbar-dropdown,.navbar-dropdown.is-boxed{border-radius:6px;border-top:none;box-shadow:0 8px 8px rgba(10,10,10,0.1), 0 0 0 1px rgba(10,10,10,0.1);display:block;opacity:0;pointer-events:none;top:calc(100% + (-4px));transform:translateY(-5px);transition-duration:86ms;transition-property:opacity, transform}.navbar-dropdown.is-right{left:auto;right:0}.navbar-divider{display:block}.navbar>.container .navbar-brand,.container>.navbar .navbar-brand{margin-left:-.75rem}.navbar>.container .navbar-menu,.container>.navbar .navbar-menu{margin-right:-.75rem}.navbar.is-fixed-bottom-desktop,.navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-desktop{bottom:0}.navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}.navbar.is-fixed-top-desktop{top:0}html.has-navbar-fixed-top-desktop,body.has-navbar-fixed-top-desktop{padding-top:3.25rem}html.has-navbar-fixed-bottom-desktop,body.has-navbar-fixed-bottom-desktop{padding-bottom:3.25rem}html.has-spaced-navbar-fixed-top,body.has-spaced-navbar-fixed-top{padding-top:5.25rem}html.has-spaced-navbar-fixed-bottom,body.has-spaced-navbar-fixed-bottom{padding-bottom:5.25rem}a.navbar-item.is-active,.navbar-link.is-active{color:#0a0a0a}a.navbar-item.is-active:not(:focus):not(:hover),.navbar-link.is-active:not(:focus):not(:hover){background-color:rgba(0,0,0,0)}.navbar-item.has-dropdown:focus .navbar-link,.navbar-item.has-dropdown:hover .navbar-link,.navbar-item.has-dropdown.is-active .navbar-link{background-color:#fafafa}}.hero.is-fullheight-with-navbar{min-height:calc(100vh - 3.25rem)}.pagination{font-size:1rem;margin:-.25rem}.pagination.is-small,#documenter .docs-sidebar form.docs-search>input.pagination{font-size:.75rem}.pagination.is-medium{font-size:1.25rem}.pagination.is-large{font-size:1.5rem}.pagination.is-rounded .pagination-previous,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-previous,.pagination.is-rounded .pagination-next,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-next{padding-left:1em;padding-right:1em;border-radius:290486px}.pagination.is-rounded .pagination-link,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-link{border-radius:290486px}.pagination,.pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}.pagination-previous,.pagination-next,.pagination-link{border-color:#dbdbdb;color:#363636;min-width:2.25em}.pagination-previous:hover,.pagination-next:hover,.pagination-link:hover{border-color:#b5b5b5;color:#363636}.pagination-previous:focus,.pagination-next:focus,.pagination-link:focus{border-color:#3c5dcd}.pagination-previous:active,.pagination-next:active,.pagination-link:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2)}.pagination-previous[disabled],.pagination-next[disabled],.pagination-link[disabled]{background-color:#dbdbdb;border-color:#dbdbdb;box-shadow:none;color:#6b6b6b;opacity:0.5}.pagination-previous,.pagination-next{padding-left:0.75em;padding-right:0.75em;white-space:nowrap}.pagination-link.is-current{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.pagination-ellipsis{color:#b5b5b5;pointer-events:none}.pagination-list{flex-wrap:wrap}@media screen and (max-width: 768px){.pagination{flex-wrap:wrap}.pagination-previous,.pagination-next{flex-grow:1;flex-shrink:1}.pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width: 769px),print{.pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}.pagination-previous{order:2}.pagination-next{order:3}.pagination{justify-content:space-between}.pagination.is-centered .pagination-previous{order:1}.pagination.is-centered .pagination-list{justify-content:center;order:2}.pagination.is-centered .pagination-next{order:3}.pagination.is-right .pagination-previous{order:1}.pagination.is-right .pagination-next{order:2}.pagination.is-right .pagination-list{justify-content:flex-end;order:3}}.panel{font-size:1rem}.panel:not(:last-child){margin-bottom:1.5rem}.panel-heading,.panel-tabs,.panel-block{border-bottom:1px solid #dbdbdb;border-left:1px solid #dbdbdb;border-right:1px solid #dbdbdb}.panel-heading:first-child,.panel-tabs:first-child,.panel-block:first-child{border-top:1px solid #dbdbdb}.panel-heading{background-color:#f5f5f5;border-radius:4px 4px 0 0;color:#222;font-size:1.25em;font-weight:300;line-height:1.25;padding:0.5em 0.75em}.panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}.panel-tabs a{border-bottom:1px solid #dbdbdb;margin-bottom:-1px;padding:0.5em}.panel-tabs a.is-active{border-bottom-color:#4a4a4a;color:#363636}.panel-list a{color:#222}.panel-list a:hover{color:#2e63b8}.panel-block{align-items:center;color:#222;display:flex;justify-content:flex-start;padding:0.5em 0.75em}.panel-block input[type="checkbox"]{margin-right:0.75em}.panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}.panel-block.is-wrapped{flex-wrap:wrap}.panel-block.is-active{border-left-color:#2e63b8;color:#363636}.panel-block.is-active .panel-icon{color:#2e63b8}a.panel-block,label.panel-block{cursor:pointer}a.panel-block:hover,label.panel-block:hover{background-color:#f5f5f5}.panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#6b6b6b;margin-right:0.75em}.panel-icon .fa{font-size:inherit;line-height:inherit}.tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:1rem;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}.tabs a{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;color:#222;display:flex;justify-content:center;margin-bottom:-1px;padding:0.5em 1em;vertical-align:top}.tabs a:hover{border-bottom-color:#222;color:#222}.tabs li{display:block}.tabs li.is-active a{border-bottom-color:#2e63b8;color:#2e63b8}.tabs ul{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}.tabs ul.is-left{padding-right:0.75em}.tabs ul.is-center{flex:none;justify-content:center;padding-left:0.75em;padding-right:0.75em}.tabs ul.is-right{justify-content:flex-end;padding-left:0.75em}.tabs .icon:first-child{margin-right:0.5em}.tabs .icon:last-child{margin-left:0.5em}.tabs.is-centered ul{justify-content:center}.tabs.is-right ul{justify-content:flex-end}.tabs.is-boxed a{border:1px solid transparent;border-radius:4px 4px 0 0}.tabs.is-boxed a:hover{background-color:#f5f5f5;border-bottom-color:#dbdbdb}.tabs.is-boxed li.is-active a{background-color:#fff;border-color:#dbdbdb;border-bottom-color:rgba(0,0,0,0) !important}.tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}.tabs.is-toggle a{border-color:#dbdbdb;border-style:solid;border-width:1px;margin-bottom:0;position:relative}.tabs.is-toggle a:hover{background-color:#f5f5f5;border-color:#b5b5b5;z-index:2}.tabs.is-toggle li+li{margin-left:-1px}.tabs.is-toggle li:first-child a{border-radius:4px 0 0 4px}.tabs.is-toggle li:last-child a{border-radius:0 4px 4px 0}.tabs.is-toggle li.is-active a{background-color:#2e63b8;border-color:#2e63b8;color:#fff;z-index:1}.tabs.is-toggle ul{border-bottom:none}.tabs.is-toggle.is-toggle-rounded li:first-child a{border-bottom-left-radius:290486px;border-top-left-radius:290486px;padding-left:1.25em}.tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:290486px;border-top-right-radius:290486px;padding-right:1.25em}.tabs.is-small,#documenter .docs-sidebar form.docs-search>input.tabs{font-size:.75rem}.tabs.is-medium{font-size:1.25rem}.tabs.is-large{font-size:1.5rem}.column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>.column.is-narrow{flex:none}.columns.is-mobile>.column.is-full{flex:none;width:100%}.columns.is-mobile>.column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>.column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>.column.is-half{flex:none;width:50%}.columns.is-mobile>.column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>.column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>.column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>.column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>.column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>.column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>.column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>.column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>.column.is-offset-half{margin-left:50%}.columns.is-mobile>.column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>.column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>.column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>.column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>.column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>.column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>.column.is-0{flex:none;width:0%}.columns.is-mobile>.column.is-offset-0{margin-left:0%}.columns.is-mobile>.column.is-1{flex:none;width:8.3333333333%}.columns.is-mobile>.column.is-offset-1{margin-left:8.3333333333%}.columns.is-mobile>.column.is-2{flex:none;width:16.6666666667%}.columns.is-mobile>.column.is-offset-2{margin-left:16.6666666667%}.columns.is-mobile>.column.is-3{flex:none;width:25%}.columns.is-mobile>.column.is-offset-3{margin-left:25%}.columns.is-mobile>.column.is-4{flex:none;width:33.3333333333%}.columns.is-mobile>.column.is-offset-4{margin-left:33.3333333333%}.columns.is-mobile>.column.is-5{flex:none;width:41.6666666667%}.columns.is-mobile>.column.is-offset-5{margin-left:41.6666666667%}.columns.is-mobile>.column.is-6{flex:none;width:50%}.columns.is-mobile>.column.is-offset-6{margin-left:50%}.columns.is-mobile>.column.is-7{flex:none;width:58.3333333333%}.columns.is-mobile>.column.is-offset-7{margin-left:58.3333333333%}.columns.is-mobile>.column.is-8{flex:none;width:66.6666666667%}.columns.is-mobile>.column.is-offset-8{margin-left:66.6666666667%}.columns.is-mobile>.column.is-9{flex:none;width:75%}.columns.is-mobile>.column.is-offset-9{margin-left:75%}.columns.is-mobile>.column.is-10{flex:none;width:83.3333333333%}.columns.is-mobile>.column.is-offset-10{margin-left:83.3333333333%}.columns.is-mobile>.column.is-11{flex:none;width:91.6666666667%}.columns.is-mobile>.column.is-offset-11{margin-left:91.6666666667%}.columns.is-mobile>.column.is-12{flex:none;width:100%}.columns.is-mobile>.column.is-offset-12{margin-left:100%}@media screen and (max-width: 768px){.column.is-narrow-mobile{flex:none}.column.is-full-mobile{flex:none;width:100%}.column.is-three-quarters-mobile{flex:none;width:75%}.column.is-two-thirds-mobile{flex:none;width:66.6666%}.column.is-half-mobile{flex:none;width:50%}.column.is-one-third-mobile{flex:none;width:33.3333%}.column.is-one-quarter-mobile{flex:none;width:25%}.column.is-one-fifth-mobile{flex:none;width:20%}.column.is-two-fifths-mobile{flex:none;width:40%}.column.is-three-fifths-mobile{flex:none;width:60%}.column.is-four-fifths-mobile{flex:none;width:80%}.column.is-offset-three-quarters-mobile{margin-left:75%}.column.is-offset-two-thirds-mobile{margin-left:66.6666%}.column.is-offset-half-mobile{margin-left:50%}.column.is-offset-one-third-mobile{margin-left:33.3333%}.column.is-offset-one-quarter-mobile{margin-left:25%}.column.is-offset-one-fifth-mobile{margin-left:20%}.column.is-offset-two-fifths-mobile{margin-left:40%}.column.is-offset-three-fifths-mobile{margin-left:60%}.column.is-offset-four-fifths-mobile{margin-left:80%}.column.is-0-mobile{flex:none;width:0%}.column.is-offset-0-mobile{margin-left:0%}.column.is-1-mobile{flex:none;width:8.3333333333%}.column.is-offset-1-mobile{margin-left:8.3333333333%}.column.is-2-mobile{flex:none;width:16.6666666667%}.column.is-offset-2-mobile{margin-left:16.6666666667%}.column.is-3-mobile{flex:none;width:25%}.column.is-offset-3-mobile{margin-left:25%}.column.is-4-mobile{flex:none;width:33.3333333333%}.column.is-offset-4-mobile{margin-left:33.3333333333%}.column.is-5-mobile{flex:none;width:41.6666666667%}.column.is-offset-5-mobile{margin-left:41.6666666667%}.column.is-6-mobile{flex:none;width:50%}.column.is-offset-6-mobile{margin-left:50%}.column.is-7-mobile{flex:none;width:58.3333333333%}.column.is-offset-7-mobile{margin-left:58.3333333333%}.column.is-8-mobile{flex:none;width:66.6666666667%}.column.is-offset-8-mobile{margin-left:66.6666666667%}.column.is-9-mobile{flex:none;width:75%}.column.is-offset-9-mobile{margin-left:75%}.column.is-10-mobile{flex:none;width:83.3333333333%}.column.is-offset-10-mobile{margin-left:83.3333333333%}.column.is-11-mobile{flex:none;width:91.6666666667%}.column.is-offset-11-mobile{margin-left:91.6666666667%}.column.is-12-mobile{flex:none;width:100%}.column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width: 769px),print{.column.is-narrow,.column.is-narrow-tablet{flex:none}.column.is-full,.column.is-full-tablet{flex:none;width:100%}.column.is-three-quarters,.column.is-three-quarters-tablet{flex:none;width:75%}.column.is-two-thirds,.column.is-two-thirds-tablet{flex:none;width:66.6666%}.column.is-half,.column.is-half-tablet{flex:none;width:50%}.column.is-one-third,.column.is-one-third-tablet{flex:none;width:33.3333%}.column.is-one-quarter,.column.is-one-quarter-tablet{flex:none;width:25%}.column.is-one-fifth,.column.is-one-fifth-tablet{flex:none;width:20%}.column.is-two-fifths,.column.is-two-fifths-tablet{flex:none;width:40%}.column.is-three-fifths,.column.is-three-fifths-tablet{flex:none;width:60%}.column.is-four-fifths,.column.is-four-fifths-tablet{flex:none;width:80%}.column.is-offset-three-quarters,.column.is-offset-three-quarters-tablet{margin-left:75%}.column.is-offset-two-thirds,.column.is-offset-two-thirds-tablet{margin-left:66.6666%}.column.is-offset-half,.column.is-offset-half-tablet{margin-left:50%}.column.is-offset-one-third,.column.is-offset-one-third-tablet{margin-left:33.3333%}.column.is-offset-one-quarter,.column.is-offset-one-quarter-tablet{margin-left:25%}.column.is-offset-one-fifth,.column.is-offset-one-fifth-tablet{margin-left:20%}.column.is-offset-two-fifths,.column.is-offset-two-fifths-tablet{margin-left:40%}.column.is-offset-three-fifths,.column.is-offset-three-fifths-tablet{margin-left:60%}.column.is-offset-four-fifths,.column.is-offset-four-fifths-tablet{margin-left:80%}.column.is-0,.column.is-0-tablet{flex:none;width:0%}.column.is-offset-0,.column.is-offset-0-tablet{margin-left:0%}.column.is-1,.column.is-1-tablet{flex:none;width:8.3333333333%}.column.is-offset-1,.column.is-offset-1-tablet{margin-left:8.3333333333%}.column.is-2,.column.is-2-tablet{flex:none;width:16.6666666667%}.column.is-offset-2,.column.is-offset-2-tablet{margin-left:16.6666666667%}.column.is-3,.column.is-3-tablet{flex:none;width:25%}.column.is-offset-3,.column.is-offset-3-tablet{margin-left:25%}.column.is-4,.column.is-4-tablet{flex:none;width:33.3333333333%}.column.is-offset-4,.column.is-offset-4-tablet{margin-left:33.3333333333%}.column.is-5,.column.is-5-tablet{flex:none;width:41.6666666667%}.column.is-offset-5,.column.is-offset-5-tablet{margin-left:41.6666666667%}.column.is-6,.column.is-6-tablet{flex:none;width:50%}.column.is-offset-6,.column.is-offset-6-tablet{margin-left:50%}.column.is-7,.column.is-7-tablet{flex:none;width:58.3333333333%}.column.is-offset-7,.column.is-offset-7-tablet{margin-left:58.3333333333%}.column.is-8,.column.is-8-tablet{flex:none;width:66.6666666667%}.column.is-offset-8,.column.is-offset-8-tablet{margin-left:66.6666666667%}.column.is-9,.column.is-9-tablet{flex:none;width:75%}.column.is-offset-9,.column.is-offset-9-tablet{margin-left:75%}.column.is-10,.column.is-10-tablet{flex:none;width:83.3333333333%}.column.is-offset-10,.column.is-offset-10-tablet{margin-left:83.3333333333%}.column.is-11,.column.is-11-tablet{flex:none;width:91.6666666667%}.column.is-offset-11,.column.is-offset-11-tablet{margin-left:91.6666666667%}.column.is-12,.column.is-12-tablet{flex:none;width:100%}.column.is-offset-12,.column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width: 1055px){.column.is-narrow-touch{flex:none}.column.is-full-touch{flex:none;width:100%}.column.is-three-quarters-touch{flex:none;width:75%}.column.is-two-thirds-touch{flex:none;width:66.6666%}.column.is-half-touch{flex:none;width:50%}.column.is-one-third-touch{flex:none;width:33.3333%}.column.is-one-quarter-touch{flex:none;width:25%}.column.is-one-fifth-touch{flex:none;width:20%}.column.is-two-fifths-touch{flex:none;width:40%}.column.is-three-fifths-touch{flex:none;width:60%}.column.is-four-fifths-touch{flex:none;width:80%}.column.is-offset-three-quarters-touch{margin-left:75%}.column.is-offset-two-thirds-touch{margin-left:66.6666%}.column.is-offset-half-touch{margin-left:50%}.column.is-offset-one-third-touch{margin-left:33.3333%}.column.is-offset-one-quarter-touch{margin-left:25%}.column.is-offset-one-fifth-touch{margin-left:20%}.column.is-offset-two-fifths-touch{margin-left:40%}.column.is-offset-three-fifths-touch{margin-left:60%}.column.is-offset-four-fifths-touch{margin-left:80%}.column.is-0-touch{flex:none;width:0%}.column.is-offset-0-touch{margin-left:0%}.column.is-1-touch{flex:none;width:8.3333333333%}.column.is-offset-1-touch{margin-left:8.3333333333%}.column.is-2-touch{flex:none;width:16.6666666667%}.column.is-offset-2-touch{margin-left:16.6666666667%}.column.is-3-touch{flex:none;width:25%}.column.is-offset-3-touch{margin-left:25%}.column.is-4-touch{flex:none;width:33.3333333333%}.column.is-offset-4-touch{margin-left:33.3333333333%}.column.is-5-touch{flex:none;width:41.6666666667%}.column.is-offset-5-touch{margin-left:41.6666666667%}.column.is-6-touch{flex:none;width:50%}.column.is-offset-6-touch{margin-left:50%}.column.is-7-touch{flex:none;width:58.3333333333%}.column.is-offset-7-touch{margin-left:58.3333333333%}.column.is-8-touch{flex:none;width:66.6666666667%}.column.is-offset-8-touch{margin-left:66.6666666667%}.column.is-9-touch{flex:none;width:75%}.column.is-offset-9-touch{margin-left:75%}.column.is-10-touch{flex:none;width:83.3333333333%}.column.is-offset-10-touch{margin-left:83.3333333333%}.column.is-11-touch{flex:none;width:91.6666666667%}.column.is-offset-11-touch{margin-left:91.6666666667%}.column.is-12-touch{flex:none;width:100%}.column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width: 1056px){.column.is-narrow-desktop{flex:none}.column.is-full-desktop{flex:none;width:100%}.column.is-three-quarters-desktop{flex:none;width:75%}.column.is-two-thirds-desktop{flex:none;width:66.6666%}.column.is-half-desktop{flex:none;width:50%}.column.is-one-third-desktop{flex:none;width:33.3333%}.column.is-one-quarter-desktop{flex:none;width:25%}.column.is-one-fifth-desktop{flex:none;width:20%}.column.is-two-fifths-desktop{flex:none;width:40%}.column.is-three-fifths-desktop{flex:none;width:60%}.column.is-four-fifths-desktop{flex:none;width:80%}.column.is-offset-three-quarters-desktop{margin-left:75%}.column.is-offset-two-thirds-desktop{margin-left:66.6666%}.column.is-offset-half-desktop{margin-left:50%}.column.is-offset-one-third-desktop{margin-left:33.3333%}.column.is-offset-one-quarter-desktop{margin-left:25%}.column.is-offset-one-fifth-desktop{margin-left:20%}.column.is-offset-two-fifths-desktop{margin-left:40%}.column.is-offset-three-fifths-desktop{margin-left:60%}.column.is-offset-four-fifths-desktop{margin-left:80%}.column.is-0-desktop{flex:none;width:0%}.column.is-offset-0-desktop{margin-left:0%}.column.is-1-desktop{flex:none;width:8.3333333333%}.column.is-offset-1-desktop{margin-left:8.3333333333%}.column.is-2-desktop{flex:none;width:16.6666666667%}.column.is-offset-2-desktop{margin-left:16.6666666667%}.column.is-3-desktop{flex:none;width:25%}.column.is-offset-3-desktop{margin-left:25%}.column.is-4-desktop{flex:none;width:33.3333333333%}.column.is-offset-4-desktop{margin-left:33.3333333333%}.column.is-5-desktop{flex:none;width:41.6666666667%}.column.is-offset-5-desktop{margin-left:41.6666666667%}.column.is-6-desktop{flex:none;width:50%}.column.is-offset-6-desktop{margin-left:50%}.column.is-7-desktop{flex:none;width:58.3333333333%}.column.is-offset-7-desktop{margin-left:58.3333333333%}.column.is-8-desktop{flex:none;width:66.6666666667%}.column.is-offset-8-desktop{margin-left:66.6666666667%}.column.is-9-desktop{flex:none;width:75%}.column.is-offset-9-desktop{margin-left:75%}.column.is-10-desktop{flex:none;width:83.3333333333%}.column.is-offset-10-desktop{margin-left:83.3333333333%}.column.is-11-desktop{flex:none;width:91.6666666667%}.column.is-offset-11-desktop{margin-left:91.6666666667%}.column.is-12-desktop{flex:none;width:100%}.column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width: 1216px){.column.is-narrow-widescreen{flex:none}.column.is-full-widescreen{flex:none;width:100%}.column.is-three-quarters-widescreen{flex:none;width:75%}.column.is-two-thirds-widescreen{flex:none;width:66.6666%}.column.is-half-widescreen{flex:none;width:50%}.column.is-one-third-widescreen{flex:none;width:33.3333%}.column.is-one-quarter-widescreen{flex:none;width:25%}.column.is-one-fifth-widescreen{flex:none;width:20%}.column.is-two-fifths-widescreen{flex:none;width:40%}.column.is-three-fifths-widescreen{flex:none;width:60%}.column.is-four-fifths-widescreen{flex:none;width:80%}.column.is-offset-three-quarters-widescreen{margin-left:75%}.column.is-offset-two-thirds-widescreen{margin-left:66.6666%}.column.is-offset-half-widescreen{margin-left:50%}.column.is-offset-one-third-widescreen{margin-left:33.3333%}.column.is-offset-one-quarter-widescreen{margin-left:25%}.column.is-offset-one-fifth-widescreen{margin-left:20%}.column.is-offset-two-fifths-widescreen{margin-left:40%}.column.is-offset-three-fifths-widescreen{margin-left:60%}.column.is-offset-four-fifths-widescreen{margin-left:80%}.column.is-0-widescreen{flex:none;width:0%}.column.is-offset-0-widescreen{margin-left:0%}.column.is-1-widescreen{flex:none;width:8.3333333333%}.column.is-offset-1-widescreen{margin-left:8.3333333333%}.column.is-2-widescreen{flex:none;width:16.6666666667%}.column.is-offset-2-widescreen{margin-left:16.6666666667%}.column.is-3-widescreen{flex:none;width:25%}.column.is-offset-3-widescreen{margin-left:25%}.column.is-4-widescreen{flex:none;width:33.3333333333%}.column.is-offset-4-widescreen{margin-left:33.3333333333%}.column.is-5-widescreen{flex:none;width:41.6666666667%}.column.is-offset-5-widescreen{margin-left:41.6666666667%}.column.is-6-widescreen{flex:none;width:50%}.column.is-offset-6-widescreen{margin-left:50%}.column.is-7-widescreen{flex:none;width:58.3333333333%}.column.is-offset-7-widescreen{margin-left:58.3333333333%}.column.is-8-widescreen{flex:none;width:66.6666666667%}.column.is-offset-8-widescreen{margin-left:66.6666666667%}.column.is-9-widescreen{flex:none;width:75%}.column.is-offset-9-widescreen{margin-left:75%}.column.is-10-widescreen{flex:none;width:83.3333333333%}.column.is-offset-10-widescreen{margin-left:83.3333333333%}.column.is-11-widescreen{flex:none;width:91.6666666667%}.column.is-offset-11-widescreen{margin-left:91.6666666667%}.column.is-12-widescreen{flex:none;width:100%}.column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width: 1408px){.column.is-narrow-fullhd{flex:none}.column.is-full-fullhd{flex:none;width:100%}.column.is-three-quarters-fullhd{flex:none;width:75%}.column.is-two-thirds-fullhd{flex:none;width:66.6666%}.column.is-half-fullhd{flex:none;width:50%}.column.is-one-third-fullhd{flex:none;width:33.3333%}.column.is-one-quarter-fullhd{flex:none;width:25%}.column.is-one-fifth-fullhd{flex:none;width:20%}.column.is-two-fifths-fullhd{flex:none;width:40%}.column.is-three-fifths-fullhd{flex:none;width:60%}.column.is-four-fifths-fullhd{flex:none;width:80%}.column.is-offset-three-quarters-fullhd{margin-left:75%}.column.is-offset-two-thirds-fullhd{margin-left:66.6666%}.column.is-offset-half-fullhd{margin-left:50%}.column.is-offset-one-third-fullhd{margin-left:33.3333%}.column.is-offset-one-quarter-fullhd{margin-left:25%}.column.is-offset-one-fifth-fullhd{margin-left:20%}.column.is-offset-two-fifths-fullhd{margin-left:40%}.column.is-offset-three-fifths-fullhd{margin-left:60%}.column.is-offset-four-fifths-fullhd{margin-left:80%}.column.is-0-fullhd{flex:none;width:0%}.column.is-offset-0-fullhd{margin-left:0%}.column.is-1-fullhd{flex:none;width:8.3333333333%}.column.is-offset-1-fullhd{margin-left:8.3333333333%}.column.is-2-fullhd{flex:none;width:16.6666666667%}.column.is-offset-2-fullhd{margin-left:16.6666666667%}.column.is-3-fullhd{flex:none;width:25%}.column.is-offset-3-fullhd{margin-left:25%}.column.is-4-fullhd{flex:none;width:33.3333333333%}.column.is-offset-4-fullhd{margin-left:33.3333333333%}.column.is-5-fullhd{flex:none;width:41.6666666667%}.column.is-offset-5-fullhd{margin-left:41.6666666667%}.column.is-6-fullhd{flex:none;width:50%}.column.is-offset-6-fullhd{margin-left:50%}.column.is-7-fullhd{flex:none;width:58.3333333333%}.column.is-offset-7-fullhd{margin-left:58.3333333333%}.column.is-8-fullhd{flex:none;width:66.6666666667%}.column.is-offset-8-fullhd{margin-left:66.6666666667%}.column.is-9-fullhd{flex:none;width:75%}.column.is-offset-9-fullhd{margin-left:75%}.column.is-10-fullhd{flex:none;width:83.3333333333%}.column.is-offset-10-fullhd{margin-left:83.3333333333%}.column.is-11-fullhd{flex:none;width:91.6666666667%}.column.is-offset-11-fullhd{margin-left:91.6666666667%}.column.is-12-fullhd{flex:none;width:100%}.column.is-offset-12-fullhd{margin-left:100%}}.columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.columns:last-child{margin-bottom:-.75rem}.columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}.columns.is-centered{justify-content:center}.columns.is-gapless{margin-left:0;margin-right:0;margin-top:0}.columns.is-gapless>.column{margin:0;padding:0 !important}.columns.is-gapless:not(:last-child){margin-bottom:1.5rem}.columns.is-gapless:last-child{margin-bottom:0}.columns.is-mobile{display:flex}.columns.is-multiline{flex-wrap:wrap}.columns.is-vcentered{align-items:center}@media screen and (min-width: 769px),print{.columns:not(.is-desktop){display:flex}}@media screen and (min-width: 1056px){.columns.is-desktop{display:flex}}.columns.is-variable{--columnGap: 0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}.columns.is-variable .column{padding-left:var(--columnGap);padding-right:var(--columnGap)}.columns.is-variable.is-0{--columnGap: 0rem}@media screen and (max-width: 768px){.columns.is-variable.is-0-mobile{--columnGap: 0rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-0-tablet{--columnGap: 0rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-0-tablet-only{--columnGap: 0rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-0-touch{--columnGap: 0rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-0-desktop{--columnGap: 0rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-0-desktop-only{--columnGap: 0rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-0-widescreen{--columnGap: 0rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-0-widescreen-only{--columnGap: 0rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-0-fullhd{--columnGap: 0rem}}.columns.is-variable.is-1{--columnGap: .25rem}@media screen and (max-width: 768px){.columns.is-variable.is-1-mobile{--columnGap: .25rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-1-tablet{--columnGap: .25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-1-tablet-only{--columnGap: .25rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-1-touch{--columnGap: .25rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-1-desktop{--columnGap: .25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-1-desktop-only{--columnGap: .25rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-1-widescreen{--columnGap: .25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-1-widescreen-only{--columnGap: .25rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-1-fullhd{--columnGap: .25rem}}.columns.is-variable.is-2{--columnGap: .5rem}@media screen and (max-width: 768px){.columns.is-variable.is-2-mobile{--columnGap: .5rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-2-tablet{--columnGap: .5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-2-tablet-only{--columnGap: .5rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-2-touch{--columnGap: .5rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-2-desktop{--columnGap: .5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-2-desktop-only{--columnGap: .5rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-2-widescreen{--columnGap: .5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-2-widescreen-only{--columnGap: .5rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-2-fullhd{--columnGap: .5rem}}.columns.is-variable.is-3{--columnGap: .75rem}@media screen and (max-width: 768px){.columns.is-variable.is-3-mobile{--columnGap: .75rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-3-tablet{--columnGap: .75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-3-tablet-only{--columnGap: .75rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-3-touch{--columnGap: .75rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-3-desktop{--columnGap: .75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-3-desktop-only{--columnGap: .75rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-3-widescreen{--columnGap: .75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-3-widescreen-only{--columnGap: .75rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-3-fullhd{--columnGap: .75rem}}.columns.is-variable.is-4{--columnGap: 1rem}@media screen and (max-width: 768px){.columns.is-variable.is-4-mobile{--columnGap: 1rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-4-tablet{--columnGap: 1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-4-tablet-only{--columnGap: 1rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-4-touch{--columnGap: 1rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-4-desktop{--columnGap: 1rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-4-desktop-only{--columnGap: 1rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-4-widescreen{--columnGap: 1rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-4-widescreen-only{--columnGap: 1rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-4-fullhd{--columnGap: 1rem}}.columns.is-variable.is-5{--columnGap: 1.25rem}@media screen and (max-width: 768px){.columns.is-variable.is-5-mobile{--columnGap: 1.25rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-5-tablet{--columnGap: 1.25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-5-tablet-only{--columnGap: 1.25rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-5-touch{--columnGap: 1.25rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-5-desktop{--columnGap: 1.25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-5-desktop-only{--columnGap: 1.25rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-5-widescreen{--columnGap: 1.25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-5-widescreen-only{--columnGap: 1.25rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-5-fullhd{--columnGap: 1.25rem}}.columns.is-variable.is-6{--columnGap: 1.5rem}@media screen and (max-width: 768px){.columns.is-variable.is-6-mobile{--columnGap: 1.5rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-6-tablet{--columnGap: 1.5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-6-tablet-only{--columnGap: 1.5rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-6-touch{--columnGap: 1.5rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-6-desktop{--columnGap: 1.5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-6-desktop-only{--columnGap: 1.5rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-6-widescreen{--columnGap: 1.5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-6-widescreen-only{--columnGap: 1.5rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-6-fullhd{--columnGap: 1.5rem}}.columns.is-variable.is-7{--columnGap: 1.75rem}@media screen and (max-width: 768px){.columns.is-variable.is-7-mobile{--columnGap: 1.75rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-7-tablet{--columnGap: 1.75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-7-tablet-only{--columnGap: 1.75rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-7-touch{--columnGap: 1.75rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-7-desktop{--columnGap: 1.75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-7-desktop-only{--columnGap: 1.75rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-7-widescreen{--columnGap: 1.75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-7-widescreen-only{--columnGap: 1.75rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-7-fullhd{--columnGap: 1.75rem}}.columns.is-variable.is-8{--columnGap: 2rem}@media screen and (max-width: 768px){.columns.is-variable.is-8-mobile{--columnGap: 2rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-8-tablet{--columnGap: 2rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-8-tablet-only{--columnGap: 2rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-8-touch{--columnGap: 2rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-8-desktop{--columnGap: 2rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-8-desktop-only{--columnGap: 2rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-8-widescreen{--columnGap: 2rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-8-widescreen-only{--columnGap: 2rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-8-fullhd{--columnGap: 2rem}}.tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:min-content}.tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.tile.is-ancestor:last-child{margin-bottom:-.75rem}.tile.is-ancestor:not(:last-child){margin-bottom:.75rem}.tile.is-child{margin:0 !important}.tile.is-parent{padding:.75rem}.tile.is-vertical{flex-direction:column}.tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem !important}@media screen and (min-width: 769px),print{.tile:not(.is-child){display:flex}.tile.is-1{flex:none;width:8.3333333333%}.tile.is-2{flex:none;width:16.6666666667%}.tile.is-3{flex:none;width:25%}.tile.is-4{flex:none;width:33.3333333333%}.tile.is-5{flex:none;width:41.6666666667%}.tile.is-6{flex:none;width:50%}.tile.is-7{flex:none;width:58.3333333333%}.tile.is-8{flex:none;width:66.6666666667%}.tile.is-9{flex:none;width:75%}.tile.is-10{flex:none;width:83.3333333333%}.tile.is-11{flex:none;width:91.6666666667%}.tile.is-12{flex:none;width:100%}}.hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}.hero .navbar{background:none}.hero .tabs ul{border-bottom:none}.hero.is-white{background-color:#fff;color:#0a0a0a}.hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-white strong{color:inherit}.hero.is-white .title{color:#0a0a0a}.hero.is-white .subtitle{color:rgba(10,10,10,0.9)}.hero.is-white .subtitle a:not(.button),.hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width: 1055px){.hero.is-white .navbar-menu{background-color:#fff}}.hero.is-white .navbar-item,.hero.is-white .navbar-link{color:rgba(10,10,10,0.7)}.hero.is-white a.navbar-item:hover,.hero.is-white a.navbar-item.is-active,.hero.is-white .navbar-link:hover,.hero.is-white .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.hero.is-white .tabs a{color:#0a0a0a;opacity:0.9}.hero.is-white .tabs a:hover{opacity:1}.hero.is-white .tabs li.is-active a{opacity:1}.hero.is-white .tabs.is-boxed a,.hero.is-white .tabs.is-toggle a{color:#0a0a0a}.hero.is-white .tabs.is-boxed a:hover,.hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-white .tabs.is-boxed li.is-active a,.hero.is-white .tabs.is-boxed li.is-active a:hover,.hero.is-white .tabs.is-toggle li.is-active a,.hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.hero.is-white.is-bold{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}@media screen and (max-width: 768px){.hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}}.hero.is-black{background-color:#0a0a0a;color:#fff}.hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-black strong{color:inherit}.hero.is-black .title{color:#fff}.hero.is-black .subtitle{color:rgba(255,255,255,0.9)}.hero.is-black .subtitle a:not(.button),.hero.is-black .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-black .navbar-menu{background-color:#0a0a0a}}.hero.is-black .navbar-item,.hero.is-black .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-black a.navbar-item:hover,.hero.is-black a.navbar-item.is-active,.hero.is-black .navbar-link:hover,.hero.is-black .navbar-link.is-active{background-color:#000;color:#fff}.hero.is-black .tabs a{color:#fff;opacity:0.9}.hero.is-black .tabs a:hover{opacity:1}.hero.is-black .tabs li.is-active a{opacity:1}.hero.is-black .tabs.is-boxed a,.hero.is-black .tabs.is-toggle a{color:#fff}.hero.is-black .tabs.is-boxed a:hover,.hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-black .tabs.is-boxed li.is-active a,.hero.is-black .tabs.is-boxed li.is-active a:hover,.hero.is-black .tabs.is-toggle li.is-active a,.hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}.hero.is-black.is-bold{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}@media screen and (max-width: 768px){.hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}}.hero.is-light{background-color:#f5f5f5;color:#363636}.hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-light strong{color:inherit}.hero.is-light .title{color:#363636}.hero.is-light .subtitle{color:rgba(54,54,54,0.9)}.hero.is-light .subtitle a:not(.button),.hero.is-light .subtitle strong{color:#363636}@media screen and (max-width: 1055px){.hero.is-light .navbar-menu{background-color:#f5f5f5}}.hero.is-light .navbar-item,.hero.is-light .navbar-link{color:rgba(54,54,54,0.7)}.hero.is-light a.navbar-item:hover,.hero.is-light a.navbar-item.is-active,.hero.is-light .navbar-link:hover,.hero.is-light .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.hero.is-light .tabs a{color:#363636;opacity:0.9}.hero.is-light .tabs a:hover{opacity:1}.hero.is-light .tabs li.is-active a{opacity:1}.hero.is-light .tabs.is-boxed a,.hero.is-light .tabs.is-toggle a{color:#363636}.hero.is-light .tabs.is-boxed a:hover,.hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-light .tabs.is-boxed li.is-active a,.hero.is-light .tabs.is-boxed li.is-active a:hover,.hero.is-light .tabs.is-toggle li.is-active a,.hero.is-light .tabs.is-toggle li.is-active a:hover{background-color:#363636;border-color:#363636;color:#f5f5f5}.hero.is-light.is-bold{background-image:linear-gradient(141deg, #dfd8d9 0%, #f5f5f5 71%, #fff 100%)}@media screen and (max-width: 768px){.hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg, #dfd8d9 0%, #f5f5f5 71%, #fff 100%)}}.hero.is-dark,.content kbd.hero{background-color:#363636;color:#f5f5f5}.hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-dark strong,.content kbd.hero strong{color:inherit}.hero.is-dark .title,.content kbd.hero .title{color:#f5f5f5}.hero.is-dark .subtitle,.content kbd.hero .subtitle{color:rgba(245,245,245,0.9)}.hero.is-dark .subtitle a:not(.button),.content kbd.hero .subtitle a:not(.button),.hero.is-dark .subtitle strong,.content kbd.hero .subtitle strong{color:#f5f5f5}@media screen and (max-width: 1055px){.hero.is-dark .navbar-menu,.content kbd.hero .navbar-menu{background-color:#363636}}.hero.is-dark .navbar-item,.content kbd.hero .navbar-item,.hero.is-dark .navbar-link,.content kbd.hero .navbar-link{color:rgba(245,245,245,0.7)}.hero.is-dark a.navbar-item:hover,.content kbd.hero a.navbar-item:hover,.hero.is-dark a.navbar-item.is-active,.content kbd.hero a.navbar-item.is-active,.hero.is-dark .navbar-link:hover,.content kbd.hero .navbar-link:hover,.hero.is-dark .navbar-link.is-active,.content kbd.hero .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.hero.is-dark .tabs a,.content kbd.hero .tabs a{color:#f5f5f5;opacity:0.9}.hero.is-dark .tabs a:hover,.content kbd.hero .tabs a:hover{opacity:1}.hero.is-dark .tabs li.is-active a,.content kbd.hero .tabs li.is-active a{opacity:1}.hero.is-dark .tabs.is-boxed a,.content kbd.hero .tabs.is-boxed a,.hero.is-dark .tabs.is-toggle a,.content kbd.hero .tabs.is-toggle a{color:#f5f5f5}.hero.is-dark .tabs.is-boxed a:hover,.content kbd.hero .tabs.is-boxed a:hover,.hero.is-dark .tabs.is-toggle a:hover,.content kbd.hero .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-dark .tabs.is-boxed li.is-active a,.content kbd.hero .tabs.is-boxed li.is-active a,.hero.is-dark .tabs.is-boxed li.is-active a:hover,.hero.is-dark .tabs.is-toggle li.is-active a,.content kbd.hero .tabs.is-toggle li.is-active a,.hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.hero.is-dark.is-bold,.content kbd.hero.is-bold{background-image:linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%)}@media screen and (max-width: 768px){.hero.is-dark.is-bold .navbar-menu,.content kbd.hero.is-bold .navbar-menu{background-image:linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%)}}.hero.is-primary,.docstring>section>a.hero.docs-sourcelink{background-color:#4eb5de;color:#fff}.hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.docstring>section>a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-primary strong,.docstring>section>a.hero.docs-sourcelink strong{color:inherit}.hero.is-primary .title,.docstring>section>a.hero.docs-sourcelink .title{color:#fff}.hero.is-primary .subtitle,.docstring>section>a.hero.docs-sourcelink .subtitle{color:rgba(255,255,255,0.9)}.hero.is-primary .subtitle a:not(.button),.docstring>section>a.hero.docs-sourcelink .subtitle a:not(.button),.hero.is-primary .subtitle strong,.docstring>section>a.hero.docs-sourcelink .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-primary .navbar-menu,.docstring>section>a.hero.docs-sourcelink .navbar-menu{background-color:#4eb5de}}.hero.is-primary .navbar-item,.docstring>section>a.hero.docs-sourcelink .navbar-item,.hero.is-primary .navbar-link,.docstring>section>a.hero.docs-sourcelink .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-primary a.navbar-item:hover,.docstring>section>a.hero.docs-sourcelink a.navbar-item:hover,.hero.is-primary a.navbar-item.is-active,.docstring>section>a.hero.docs-sourcelink a.navbar-item.is-active,.hero.is-primary .navbar-link:hover,.docstring>section>a.hero.docs-sourcelink .navbar-link:hover,.hero.is-primary .navbar-link.is-active,.docstring>section>a.hero.docs-sourcelink .navbar-link.is-active{background-color:#39acda;color:#fff}.hero.is-primary .tabs a,.docstring>section>a.hero.docs-sourcelink .tabs a{color:#fff;opacity:0.9}.hero.is-primary .tabs a:hover,.docstring>section>a.hero.docs-sourcelink .tabs a:hover{opacity:1}.hero.is-primary .tabs li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs li.is-active a{opacity:1}.hero.is-primary .tabs.is-boxed a,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a,.hero.is-primary .tabs.is-toggle a,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a{color:#fff}.hero.is-primary .tabs.is-boxed a:hover,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a:hover,.hero.is-primary .tabs.is-toggle a:hover,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-primary .tabs.is-boxed li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed li.is-active a,.hero.is-primary .tabs.is-boxed li.is-active a:hover,.hero.is-primary .tabs.is-toggle li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle li.is-active a,.hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#4eb5de}.hero.is-primary.is-bold,.docstring>section>a.hero.is-bold.docs-sourcelink{background-image:linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%)}@media screen and (max-width: 768px){.hero.is-primary.is-bold .navbar-menu,.docstring>section>a.hero.is-bold.docs-sourcelink .navbar-menu{background-image:linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%)}}.hero.is-link{background-color:#2e63b8;color:#fff}.hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-link strong{color:inherit}.hero.is-link .title{color:#fff}.hero.is-link .subtitle{color:rgba(255,255,255,0.9)}.hero.is-link .subtitle a:not(.button),.hero.is-link .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-link .navbar-menu{background-color:#2e63b8}}.hero.is-link .navbar-item,.hero.is-link .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-link a.navbar-item:hover,.hero.is-link a.navbar-item.is-active,.hero.is-link .navbar-link:hover,.hero.is-link .navbar-link.is-active{background-color:#2958a4;color:#fff}.hero.is-link .tabs a{color:#fff;opacity:0.9}.hero.is-link .tabs a:hover{opacity:1}.hero.is-link .tabs li.is-active a{opacity:1}.hero.is-link .tabs.is-boxed a,.hero.is-link .tabs.is-toggle a{color:#fff}.hero.is-link .tabs.is-boxed a:hover,.hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-link .tabs.is-boxed li.is-active a,.hero.is-link .tabs.is-boxed li.is-active a:hover,.hero.is-link .tabs.is-toggle li.is-active a,.hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#2e63b8}.hero.is-link.is-bold{background-image:linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%)}@media screen and (max-width: 768px){.hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%)}}.hero.is-info{background-color:#209cee;color:#fff}.hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-info strong{color:inherit}.hero.is-info .title{color:#fff}.hero.is-info .subtitle{color:rgba(255,255,255,0.9)}.hero.is-info .subtitle a:not(.button),.hero.is-info .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-info .navbar-menu{background-color:#209cee}}.hero.is-info .navbar-item,.hero.is-info .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-info a.navbar-item:hover,.hero.is-info a.navbar-item.is-active,.hero.is-info .navbar-link:hover,.hero.is-info .navbar-link.is-active{background-color:#1190e3;color:#fff}.hero.is-info .tabs a{color:#fff;opacity:0.9}.hero.is-info .tabs a:hover{opacity:1}.hero.is-info .tabs li.is-active a{opacity:1}.hero.is-info .tabs.is-boxed a,.hero.is-info .tabs.is-toggle a{color:#fff}.hero.is-info .tabs.is-boxed a:hover,.hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-info .tabs.is-boxed li.is-active a,.hero.is-info .tabs.is-boxed li.is-active a:hover,.hero.is-info .tabs.is-toggle li.is-active a,.hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#209cee}.hero.is-info.is-bold{background-image:linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%)}@media screen and (max-width: 768px){.hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%)}}.hero.is-success{background-color:#22c35b;color:#fff}.hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-success strong{color:inherit}.hero.is-success .title{color:#fff}.hero.is-success .subtitle{color:rgba(255,255,255,0.9)}.hero.is-success .subtitle a:not(.button),.hero.is-success .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-success .navbar-menu{background-color:#22c35b}}.hero.is-success .navbar-item,.hero.is-success .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-success a.navbar-item:hover,.hero.is-success a.navbar-item.is-active,.hero.is-success .navbar-link:hover,.hero.is-success .navbar-link.is-active{background-color:#1ead51;color:#fff}.hero.is-success .tabs a{color:#fff;opacity:0.9}.hero.is-success .tabs a:hover{opacity:1}.hero.is-success .tabs li.is-active a{opacity:1}.hero.is-success .tabs.is-boxed a,.hero.is-success .tabs.is-toggle a{color:#fff}.hero.is-success .tabs.is-boxed a:hover,.hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-success .tabs.is-boxed li.is-active a,.hero.is-success .tabs.is-boxed li.is-active a:hover,.hero.is-success .tabs.is-toggle li.is-active a,.hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#22c35b}.hero.is-success.is-bold{background-image:linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%)}@media screen and (max-width: 768px){.hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%)}}.hero.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-warning strong{color:inherit}.hero.is-warning .title{color:rgba(0,0,0,0.7)}.hero.is-warning .subtitle{color:rgba(0,0,0,0.9)}.hero.is-warning .subtitle a:not(.button),.hero.is-warning .subtitle strong{color:rgba(0,0,0,0.7)}@media screen and (max-width: 1055px){.hero.is-warning .navbar-menu{background-color:#ffdd57}}.hero.is-warning .navbar-item,.hero.is-warning .navbar-link{color:rgba(0,0,0,0.7)}.hero.is-warning a.navbar-item:hover,.hero.is-warning a.navbar-item.is-active,.hero.is-warning .navbar-link:hover,.hero.is-warning .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.hero.is-warning .tabs a{color:rgba(0,0,0,0.7);opacity:0.9}.hero.is-warning .tabs a:hover{opacity:1}.hero.is-warning .tabs li.is-active a{opacity:1}.hero.is-warning .tabs.is-boxed a,.hero.is-warning .tabs.is-toggle a{color:rgba(0,0,0,0.7)}.hero.is-warning .tabs.is-boxed a:hover,.hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-warning .tabs.is-boxed li.is-active a,.hero.is-warning .tabs.is-boxed li.is-active a:hover,.hero.is-warning .tabs.is-toggle li.is-active a,.hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:rgba(0,0,0,0.7);border-color:rgba(0,0,0,0.7);color:#ffdd57}.hero.is-warning.is-bold{background-image:linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%)}@media screen and (max-width: 768px){.hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%)}}.hero.is-danger{background-color:#da0b00;color:#fff}.hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-danger strong{color:inherit}.hero.is-danger .title{color:#fff}.hero.is-danger .subtitle{color:rgba(255,255,255,0.9)}.hero.is-danger .subtitle a:not(.button),.hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-danger .navbar-menu{background-color:#da0b00}}.hero.is-danger .navbar-item,.hero.is-danger .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-danger a.navbar-item:hover,.hero.is-danger a.navbar-item.is-active,.hero.is-danger .navbar-link:hover,.hero.is-danger .navbar-link.is-active{background-color:#c10a00;color:#fff}.hero.is-danger .tabs a{color:#fff;opacity:0.9}.hero.is-danger .tabs a:hover{opacity:1}.hero.is-danger .tabs li.is-active a{opacity:1}.hero.is-danger .tabs.is-boxed a,.hero.is-danger .tabs.is-toggle a{color:#fff}.hero.is-danger .tabs.is-boxed a:hover,.hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-danger .tabs.is-boxed li.is-active a,.hero.is-danger .tabs.is-boxed li.is-active a:hover,.hero.is-danger .tabs.is-toggle li.is-active a,.hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#da0b00}.hero.is-danger.is-bold{background-image:linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%)}@media screen and (max-width: 768px){.hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%)}}.hero.is-small .hero-body,#documenter .docs-sidebar form.docs-search>input.hero .hero-body{padding-bottom:1.5rem;padding-top:1.5rem}@media screen and (min-width: 769px),print{.hero.is-medium .hero-body{padding-bottom:9rem;padding-top:9rem}}@media screen and (min-width: 769px),print{.hero.is-large .hero-body{padding-bottom:18rem;padding-top:18rem}}.hero.is-halfheight .hero-body,.hero.is-fullheight .hero-body,.hero.is-fullheight-with-navbar .hero-body{align-items:center;display:flex}.hero.is-halfheight .hero-body>.container,.hero.is-fullheight .hero-body>.container,.hero.is-fullheight-with-navbar .hero-body>.container{flex-grow:1;flex-shrink:1}.hero.is-halfheight{min-height:50vh}.hero.is-fullheight{min-height:100vh}.hero-video{overflow:hidden}.hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%, -50%, 0)}.hero-video.is-transparent{opacity:0.3}@media screen and (max-width: 768px){.hero-video{display:none}}.hero-buttons{margin-top:1.5rem}@media screen and (max-width: 768px){.hero-buttons .button{display:flex}.hero-buttons .button:not(:last-child){margin-bottom:0.75rem}}@media screen and (min-width: 769px),print{.hero-buttons{display:flex;justify-content:center}.hero-buttons .button:not(:last-child){margin-right:1.5rem}}.hero-head,.hero-foot{flex-grow:0;flex-shrink:0}.hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}.section{padding:3rem 1.5rem}@media screen and (min-width: 1056px){.section.is-medium{padding:9rem 1.5rem}.section.is-large{padding:18rem 1.5rem}}.footer{background-color:#fafafa;padding:3rem 1.5rem 6rem}h1 .docs-heading-anchor,h1 .docs-heading-anchor:hover,h1 .docs-heading-anchor:visited,h2 .docs-heading-anchor,h2 .docs-heading-anchor:hover,h2 .docs-heading-anchor:visited,h3 .docs-heading-anchor,h3 .docs-heading-anchor:hover,h3 .docs-heading-anchor:visited,h4 .docs-heading-anchor,h4 .docs-heading-anchor:hover,h4 .docs-heading-anchor:visited,h5 .docs-heading-anchor,h5 .docs-heading-anchor:hover,h5 .docs-heading-anchor:visited,h6 .docs-heading-anchor,h6 .docs-heading-anchor:hover,h6 .docs-heading-anchor:visited{color:#222}h1 .docs-heading-anchor-permalink,h2 .docs-heading-anchor-permalink,h3 .docs-heading-anchor-permalink,h4 .docs-heading-anchor-permalink,h5 .docs-heading-anchor-permalink,h6 .docs-heading-anchor-permalink{visibility:hidden;vertical-align:middle;margin-left:0.5em;font-size:0.7rem}h1 .docs-heading-anchor-permalink::before,h2 .docs-heading-anchor-permalink::before,h3 .docs-heading-anchor-permalink::before,h4 .docs-heading-anchor-permalink::before,h5 .docs-heading-anchor-permalink::before,h6 .docs-heading-anchor-permalink::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f0c1"}h1:hover .docs-heading-anchor-permalink,h2:hover .docs-heading-anchor-permalink,h3:hover .docs-heading-anchor-permalink,h4:hover .docs-heading-anchor-permalink,h5:hover .docs-heading-anchor-permalink,h6:hover .docs-heading-anchor-permalink{visibility:visible}.docs-dark-only{display:none !important}pre{position:relative;overflow:hidden}pre code,pre code.hljs{padding:0 .75rem !important;overflow:auto;display:block}pre code:first-of-type,pre code.hljs:first-of-type{padding-top:0.5rem !important}pre code:last-of-type,pre code.hljs:last-of-type{padding-bottom:0.5rem !important}pre .copy-button{opacity:0.2;transition:opacity 0.2s;position:absolute;right:0em;top:0em;padding:0.5em;width:2.5em;height:2.5em;background:transparent;border:none;font-family:"Font Awesome 5 Free";color:#222;cursor:pointer;text-align:center}pre .copy-button:focus,pre .copy-button:hover{opacity:1;background:rgba(34,34,34,0.1);color:#2e63b8}pre .copy-button.success{color:#259a12;opacity:1}pre .copy-button.error{color:#cb3c33;opacity:1}pre:hover .copy-button{opacity:1}.admonition{background-color:#b5b5b5;border-style:solid;border-width:1px;border-color:#363636;border-radius:4px;font-size:1rem}.admonition strong{color:currentColor}.admonition.is-small,#documenter .docs-sidebar form.docs-search>input.admonition{font-size:.75rem}.admonition.is-medium{font-size:1.25rem}.admonition.is-large{font-size:1.5rem}.admonition.is-default{background-color:#b5b5b5;border-color:#363636}.admonition.is-default>.admonition-header{background-color:#363636;color:#fff}.admonition.is-default>.admonition-body{color:#fff}.admonition.is-info{background-color:#def0fc;border-color:#209cee}.admonition.is-info>.admonition-header{background-color:#209cee;color:#fff}.admonition.is-info>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-success{background-color:#bdf4d1;border-color:#22c35b}.admonition.is-success>.admonition-header{background-color:#22c35b;color:#fff}.admonition.is-success>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-warning{background-color:#fff3c5;border-color:#ffdd57}.admonition.is-warning>.admonition-header{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.admonition.is-warning>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-danger{background-color:#ffaba7;border-color:#da0b00}.admonition.is-danger>.admonition-header{background-color:#da0b00;color:#fff}.admonition.is-danger>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-compat{background-color:#bdeff5;border-color:#1db5c9}.admonition.is-compat>.admonition-header{background-color:#1db5c9;color:#fff}.admonition.is-compat>.admonition-body{color:rgba(0,0,0,0.7)}.admonition-header{color:#fff;background-color:#363636;align-items:center;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.5rem .75rem;position:relative}.admonition-header:before{font-family:"Font Awesome 5 Free";font-weight:900;margin-right:.75rem;content:"\f06a"}.admonition-body{color:#222;padding:0.5rem .75rem}.admonition-body pre{background-color:#f5f5f5}.admonition-body code{background-color:rgba(0,0,0,0.05)}.docstring{margin-bottom:1em;background-color:rgba(0,0,0,0);border:1px solid #dbdbdb;box-shadow:2px 2px 3px rgba(10,10,10,0.1);max-width:100%}.docstring>header{display:flex;flex-grow:1;align-items:stretch;padding:0.5rem .75rem;background-color:#f5f5f5;box-shadow:0 1px 2px rgba(10,10,10,0.1);box-shadow:none;border-bottom:1px solid #dbdbdb}.docstring>header code{background-color:transparent}.docstring>header .docstring-binding{margin-right:0.3em}.docstring>header .docstring-category{margin-left:0.3em}.docstring>section{position:relative;padding:.75rem .75rem;border-bottom:1px solid #dbdbdb}.docstring>section:last-child{border-bottom:none}.docstring>section>a.docs-sourcelink{transition:opacity 0.3s;opacity:0;position:absolute;right:.375rem;bottom:.375rem}.docstring>section>a.docs-sourcelink:focus{opacity:1 !important}.docstring:hover>section>a.docs-sourcelink{opacity:0.2}.docstring:focus-within>section>a.docs-sourcelink{opacity:0.2}.docstring>section:hover a.docs-sourcelink{opacity:1}.documenter-example-output{background-color:#fff}.outdated-warning-overlay{position:fixed;top:0;left:0;right:0;box-shadow:0 0 10px rgba(0,0,0,0.3);z-index:999;background-color:#ffaba7;color:rgba(0,0,0,0.7);border-bottom:3px solid #da0b00;padding:10px 35px;text-align:center;font-size:15px}.outdated-warning-overlay .outdated-warning-closer{position:absolute;top:calc(50% - 10px);right:18px;cursor:pointer;width:12px}.outdated-warning-overlay a{color:#2e63b8}.outdated-warning-overlay a:hover{color:#363636}.content pre{border:1px solid #dbdbdb}.content code{font-weight:inherit}.content a code{color:#2e63b8}.content h1 code,.content h2 code,.content h3 code,.content h4 code,.content h5 code,.content h6 code{color:#222}.content table{display:block;width:initial;max-width:100%;overflow-x:auto}.content blockquote>ul:first-child,.content blockquote>ol:first-child,.content .admonition-body>ul:first-child,.content .admonition-body>ol:first-child{margin-top:0}pre,code{font-variant-ligatures:no-contextual}.breadcrumb a.is-disabled{cursor:default;pointer-events:none}.breadcrumb a.is-disabled,.breadcrumb a.is-disabled:hover{color:#222}.hljs{background:initial !important}.katex .katex-mathml{top:0;right:0}.katex-display,mjx-container,.MathJax_Display{margin:0.5em 0 !important}html{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto}li.no-marker{list-style:none}#documenter .docs-main>article{overflow-wrap:break-word}#documenter .docs-main>article .math-container{overflow-x:auto;overflow-y:hidden}@media screen and (min-width: 1056px){#documenter .docs-main{max-width:52rem;margin-left:20rem;padding-right:1rem}}@media screen and (max-width: 1055px){#documenter .docs-main{width:100%}#documenter .docs-main>article{max-width:52rem;margin-left:auto;margin-right:auto;margin-bottom:1rem;padding:0 1rem}#documenter .docs-main>header,#documenter .docs-main>nav{max-width:100%;width:100%;margin:0}}#documenter .docs-main header.docs-navbar{background-color:#fff;border-bottom:1px solid #dbdbdb;z-index:2;min-height:4rem;margin-bottom:1rem;display:flex}#documenter .docs-main header.docs-navbar .breadcrumb{flex-grow:1}#documenter .docs-main header.docs-navbar .docs-right{display:flex;white-space:nowrap}#documenter .docs-main header.docs-navbar .docs-right .docs-icon,#documenter .docs-main header.docs-navbar .docs-right .docs-label,#documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{display:inline-block}#documenter .docs-main header.docs-navbar .docs-right .docs-label{padding:0;margin-left:0.3em}#documenter .docs-main header.docs-navbar .docs-right .docs-settings-button{margin:auto 0 auto 1rem}#documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{font-size:1.5rem;margin:auto 0 auto 1rem}#documenter .docs-main header.docs-navbar>*{margin:auto 0}@media screen and (max-width: 1055px){#documenter .docs-main header.docs-navbar{position:sticky;top:0;padding:0 1rem;transition-property:top, box-shadow;-webkit-transition-property:top, box-shadow;transition-duration:0.3s;-webkit-transition-duration:0.3s}#documenter .docs-main header.docs-navbar.headroom--not-top{box-shadow:.2rem 0rem .4rem #bbb;transition-duration:0.7s;-webkit-transition-duration:0.7s}#documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom{top:-4.5rem;transition-duration:0.7s;-webkit-transition-duration:0.7s}}#documenter .docs-main section.footnotes{border-top:1px solid #dbdbdb}#documenter .docs-main section.footnotes li .tag:first-child,#documenter .docs-main section.footnotes li .docstring>section>a.docs-sourcelink:first-child,#documenter .docs-main section.footnotes li .content kbd:first-child,.content #documenter .docs-main section.footnotes li kbd:first-child{margin-right:1em;margin-bottom:0.4em}#documenter .docs-main .docs-footer{display:flex;flex-wrap:wrap;margin-left:0;margin-right:0;border-top:1px solid #dbdbdb;padding-top:1rem;padding-bottom:1rem}@media screen and (max-width: 1055px){#documenter .docs-main .docs-footer{padding-left:1rem;padding-right:1rem}}#documenter .docs-main .docs-footer .docs-footer-nextpage,#documenter .docs-main .docs-footer .docs-footer-prevpage{flex-grow:1}#documenter .docs-main .docs-footer .docs-footer-nextpage{text-align:right}#documenter .docs-main .docs-footer .flexbox-break{flex-basis:100%;height:0}#documenter .docs-main .docs-footer .footer-message{font-size:0.8em;margin:0.5em auto 0 auto;text-align:center}#documenter .docs-sidebar{display:flex;flex-direction:column;color:#0a0a0a;background-color:#f5f5f5;border-right:1px solid #dbdbdb;padding:0;flex:0 0 18rem;z-index:5;font-size:1rem;position:fixed;left:-18rem;width:18rem;height:100%;transition:left 0.3s}#documenter .docs-sidebar.visible{left:0;box-shadow:.4rem 0rem .8rem #bbb}@media screen and (min-width: 1056px){#documenter .docs-sidebar.visible{box-shadow:none}}@media screen and (min-width: 1056px){#documenter .docs-sidebar{left:0;top:0}}#documenter .docs-sidebar .docs-logo{margin-top:1rem;padding:0 1rem}#documenter .docs-sidebar .docs-logo>img{max-height:6rem;margin:auto}#documenter .docs-sidebar .docs-package-name{flex-shrink:0;font-size:1.5rem;font-weight:700;text-align:center;white-space:nowrap;overflow:hidden;padding:0.5rem 0}#documenter .docs-sidebar .docs-package-name .docs-autofit{max-width:16.2rem}#documenter .docs-sidebar .docs-package-name a,#documenter .docs-sidebar .docs-package-name a:hover{color:#0a0a0a}#documenter .docs-sidebar .docs-version-selector{border-top:1px solid #dbdbdb;display:none;padding:0.5rem}#documenter .docs-sidebar .docs-version-selector.visible{display:flex}#documenter .docs-sidebar ul.docs-menu{flex-grow:1;user-select:none;border-top:1px solid #dbdbdb;padding-bottom:1.5rem}#documenter .docs-sidebar ul.docs-menu>li>.tocitem{font-weight:bold}#documenter .docs-sidebar ul.docs-menu>li li{font-size:.95rem;margin-left:1em;border-left:1px solid #dbdbdb}#documenter .docs-sidebar ul.docs-menu input.collapse-toggle{display:none}#documenter .docs-sidebar ul.docs-menu ul.collapsed{display:none}#documenter .docs-sidebar ul.docs-menu input:checked~ul.collapsed{display:block}#documenter .docs-sidebar ul.docs-menu label.tocitem{display:flex}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label{flex-grow:2}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;font-size:.75rem;margin-left:1rem;margin-top:auto;margin-bottom:auto}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f054"}#documenter .docs-sidebar ul.docs-menu input:checked~label.tocitem .docs-chevron::before{content:"\f078"}#documenter .docs-sidebar ul.docs-menu .tocitem{display:block;padding:0.5rem 0.5rem}#documenter .docs-sidebar ul.docs-menu .tocitem,#documenter .docs-sidebar ul.docs-menu .tocitem:hover{color:#0a0a0a;background:#f5f5f5}#documenter .docs-sidebar ul.docs-menu a.tocitem:hover,#documenter .docs-sidebar ul.docs-menu label.tocitem:hover{color:#0a0a0a;background-color:#ebebeb}#documenter .docs-sidebar ul.docs-menu li.is-active{border-top:1px solid #dbdbdb;border-bottom:1px solid #dbdbdb;background-color:#fff}#documenter .docs-sidebar ul.docs-menu li.is-active .tocitem,#documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover{background-color:#fff;color:#0a0a0a}#documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover{background-color:#ebebeb;color:#0a0a0a}#documenter .docs-sidebar ul.docs-menu>li.is-active:first-child{border-top:none}#documenter .docs-sidebar ul.docs-menu ul.internal{margin:0 0.5rem 0.5rem;border-top:1px solid #dbdbdb}#documenter .docs-sidebar ul.docs-menu ul.internal li{font-size:.85rem;border-left:none;margin-left:0;margin-top:0.5rem}#documenter .docs-sidebar ul.docs-menu ul.internal .tocitem{width:100%;padding:0}#documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before{content:"⚬";margin-right:0.4em}#documenter .docs-sidebar form.docs-search{margin:auto;margin-top:0.5rem;margin-bottom:0.5rem}#documenter .docs-sidebar form.docs-search>input{width:14.4rem}@media screen and (min-width: 1056px){#documenter .docs-sidebar ul.docs-menu{overflow-y:auto;-webkit-overflow-scroll:touch}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar{width:.3rem;background:none}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#e0e0e0}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover{background:#ccc}}@media screen and (max-width: 1055px){#documenter .docs-sidebar{overflow-y:auto;-webkit-overflow-scroll:touch}#documenter .docs-sidebar::-webkit-scrollbar{width:.3rem;background:none}#documenter .docs-sidebar::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#e0e0e0}#documenter .docs-sidebar::-webkit-scrollbar-thumb:hover{background:#ccc}}#documenter .docs-main #documenter-search-info{margin-bottom:1rem}#documenter .docs-main #documenter-search-results{list-style-type:circle;list-style-position:outside}#documenter .docs-main #documenter-search-results li{margin-left:2rem}#documenter .docs-main #documenter-search-results .docs-highlight{background-color:yellow}.ansi span.sgr1{font-weight:bolder}.ansi span.sgr2{font-weight:lighter}.ansi span.sgr3{font-style:italic}.ansi span.sgr4{text-decoration:underline}.ansi span.sgr7{color:#fff;background-color:#222}.ansi span.sgr8{color:transparent}.ansi span.sgr8 span{color:transparent}.ansi span.sgr9{text-decoration:line-through}.ansi span.sgr30{color:#242424}.ansi span.sgr31{color:#a7201f}.ansi span.sgr32{color:#066f00}.ansi span.sgr33{color:#856b00}.ansi span.sgr34{color:#2149b0}.ansi span.sgr35{color:#7d4498}.ansi span.sgr36{color:#007989}.ansi span.sgr37{color:gray}.ansi span.sgr40{background-color:#242424}.ansi span.sgr41{background-color:#a7201f}.ansi span.sgr42{background-color:#066f00}.ansi span.sgr43{background-color:#856b00}.ansi span.sgr44{background-color:#2149b0}.ansi span.sgr45{background-color:#7d4498}.ansi span.sgr46{background-color:#007989}.ansi span.sgr47{background-color:gray}.ansi span.sgr90{color:#616161}.ansi span.sgr91{color:#cb3c33}.ansi span.sgr92{color:#0e8300}.ansi span.sgr93{color:#a98800}.ansi span.sgr94{color:#3c5dcd}.ansi span.sgr95{color:#9256af}.ansi span.sgr96{color:#008fa3}.ansi span.sgr97{color:#f5f5f5}.ansi span.sgr100{background-color:#616161}.ansi span.sgr101{background-color:#cb3c33}.ansi span.sgr102{background-color:#0e8300}.ansi span.sgr103{background-color:#a98800}.ansi span.sgr104{background-color:#3c5dcd}.ansi span.sgr105{background-color:#9256af}.ansi span.sgr106{background-color:#008fa3}.ansi span.sgr107{background-color:#f5f5f5}code.language-julia-repl>span.hljs-meta{color:#066f00;font-weight:bolder}/*! + Theme: Default + Description: Original highlight.js style + Author: (c) Ivan Sagalaev + Maintainer: @highlightjs/core-team + Website: https://highlightjs.org/ + License: see project LICENSE + Touched: 2021 +*/pre code.hljs{display:block;overflow-x:auto}code.hljs{padding:3px 5px}.hljs{background:#F0F0F0;color:#444}.hljs-comment{color:#888888}.hljs-tag,.hljs-punctuation{color:#444a}.hljs-tag .hljs-name,.hljs-tag .hljs-attr{color:#444}.hljs-keyword,.hljs-attribute,.hljs-selector-tag,.hljs-meta .hljs-keyword,.hljs-doctag,.hljs-name{font-weight:bold}.hljs-type,.hljs-string,.hljs-number,.hljs-selector-id,.hljs-selector-class,.hljs-quote,.hljs-template-tag,.hljs-deletion{color:#880000}.hljs-title,.hljs-section{color:#880000;font-weight:bold}.hljs-regexp,.hljs-symbol,.hljs-variable,.hljs-template-variable,.hljs-link,.hljs-selector-attr,.hljs-operator,.hljs-selector-pseudo{color:#BC6060}.hljs-literal{color:#78A960}.hljs-built_in,.hljs-bullet,.hljs-code,.hljs-addition{color:#397300}.hljs-meta{color:#1f7199}.hljs-meta .hljs-string{color:#4d99bf}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:bold} diff --git a/previews/PR1837/assets/themeswap.js b/previews/PR1837/assets/themeswap.js new file mode 100644 index 0000000000..c58e993e3e --- /dev/null +++ b/previews/PR1837/assets/themeswap.js @@ -0,0 +1,66 @@ +// Small function to quickly swap out themes. Gets put into the tag.. +function set_theme_from_local_storage() { + // Intialize the theme to null, which means default + var theme = null; + // If the browser supports the localstorage and is not disabled then try to get the + // documenter theme + if(window.localStorage != null) { + // Get the user-picked theme from localStorage. May be `null`, which means the default + // theme. + theme = window.localStorage.getItem("documenter-theme"); + } + // Check if the browser supports user color preference + var darkPreference = false; + // Check if the users preference is for dark color scheme + if(window.matchMedia('(prefers-color-scheme: dark)').matches === true) { + darkPreference = true; + } + // Initialize a few variables for the loop: + // + // - active: will contain the index of the theme that should be active. Note that there + // is no guarantee that localStorage contains sane values. If `active` stays `null` + // we either could not find the theme or it is the default (primary) theme anyway. + // Either way, we then need to stick to the primary theme. + // + // - disabled: style sheets that should be disabled (i.e. all the theme style sheets + // that are not the currently active theme) + var active = null; var disabled = []; var darkTheme = null; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + // The tag of each style sheet is expected to have a data-theme-name attribute + // which must contain the name of the theme. The names in localStorage much match this. + var themename = ss.ownerNode.getAttribute("data-theme-name"); + // attribute not set => non-theme stylesheet => ignore + if(themename === null) continue; + // To distinguish the default (primary) theme, it needs to have the data-theme-primary + // attribute set. + var isprimary = (ss.ownerNode.getAttribute("data-theme-primary") !== null); + // Check if the theme is primary dark theme + var isDarkTheme = (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null); + // If ss is for dark theme then set the value of darkTheme to the name of the theme + if(isDarkTheme) darkTheme = themename; + // If we find a matching theme (and it's not the default), we'll set active to non-null + if(themename === theme) active = i; + // Store the style sheets of inactive themes so that we could disable them + if(themename !== theme) disabled.push(ss); + } + if(active !== null) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + theme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + else if(darkTheme !== null && darkPreference === true) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + darkTheme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + if (ss.ownerNode.getAttribute("data-theme-name") !== darkTheme) { + ss.disabled = true; + } + }); + } +} +set_theme_from_local_storage(); diff --git a/previews/PR1837/assets/warner.js b/previews/PR1837/assets/warner.js new file mode 100644 index 0000000000..5531c8851b --- /dev/null +++ b/previews/PR1837/assets/warner.js @@ -0,0 +1,49 @@ +function maybeAddWarning () { + // DOCUMENTER_NEWEST is defined in versions.js, DOCUMENTER_CURRENT_VERSION and DOCUMENTER_STABLE + // in siteinfo.js. + // If either of these are undefined something went horribly wrong, so we abort. + if ( + window.DOCUMENTER_NEWEST === undefined || + window.DOCUMENTER_CURRENT_VERSION === undefined || + window.DOCUMENTER_STABLE === undefined + ) { + return + }; + + // Current version is not a version number, so we can't tell if it's the newest version. Abort. + if (!/v(\d+\.)*\d+/.test(window.DOCUMENTER_CURRENT_VERSION)) { + return + }; + + // Current version is newest version, so no need to add a warning. + if (window.DOCUMENTER_NEWEST === window.DOCUMENTER_CURRENT_VERSION) { + return + }; + + // Add a noindex meta tag (unless one exists) so that search engines don't index this version of the docs. + if (document.body.querySelector('meta[name="robots"]') === null) { + const meta = document.createElement('meta'); + meta.name = 'robots'; + meta.content = 'noindex'; + + document.getElementsByTagName('head')[0].appendChild(meta); + }; + + const div = document.createElement('div'); + div.classList.add('outdated-warning-overlay'); + const closer = document.createElement('button'); + closer.classList.add('outdated-warning-closer', 'delete'); + closer.addEventListener('click', function () { + document.body.removeChild(div); + }); + const href = window.documenterBaseURL + '/../' + window.DOCUMENTER_STABLE; + div.innerHTML = 'This documentation is not for the latest stable release, but for either the development version or an older release.
    Click here to go to the documentation for the latest stable release.'; + div.appendChild(closer); + document.body.appendChild(div); +}; + +if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', maybeAddWarning); +} else { + maybeAddWarning(); +}; diff --git a/previews/PR1837/censored/index.html b/previews/PR1837/censored/index.html new file mode 100644 index 0000000000..a94e0d4301 --- /dev/null +++ b/previews/PR1837/censored/index.html @@ -0,0 +1,10 @@ + +Censored Distributions · Distributions.jl

    Censored Distributions

    In censoring of data, values exceeding an upper limit (right censoring) or falling below a lower limit (left censoring), or both (interval censoring) are replaced by the corresponding limit itself. The package provides the censored function, which creates the most appropriate distribution to represent a censored version of a given distribution.

    A censored distribution can be constructed using the following signature:

    Distributions.censoredFunction
    censored(d0::UnivariateDistribution; [lower::Real], [upper::Real])
    +censored(d0::UnivariateDistribution, lower::Real, upper::Real)

    A censored distribution d of a distribution d0 to the interval $[l, u]=$[lower, upper] has the probability density (mass) function:

    \[f(x; d_0, l, u) = \begin{cases} + P_{Z \sim d_0}(Z \le l), & x = l \\ + f_{d_0}(x), & l < x < u \\ + P_{Z \sim d_0}(Z \ge u), & x = u \\ + \end{cases}, \quad x \in [l, u]\]

    where $f_{d_0}(x)$ is the probability density (mass) function of $d_0$.

    If $Z \sim d_0$, and X = clamp(Z, l, u), then $X \sim d$. Note that this implies that even if $d_0$ is continuous, its censored form assigns positive probability to the bounds $l$ and $u$. Therefore, a censored continuous distribution has atoms and is a mixture of discrete and continuous components.

    The function falls back to constructing a Distributions.Censored wrapper.

    Usage

    censored(d0; lower=l)           # d0 left-censored to the interval [l, Inf)
    +censored(d0; upper=u)           # d0 right-censored to the interval (-Inf, u]
    +censored(d0; lower=l, upper=u)  # d0 interval-censored to the interval [l, u]
    +censored(d0, l, u)              # d0 interval-censored to the interval [l, u]

    Implementation

    To implement a specialized censored form for distributions of type D, instead of overloading a method with one of the above signatures, one or more of the following methods should be implemented:

    • censored(d0::D, l::T, u::T) where {T <: Real}
    • censored(d0::D, ::Nothing, u::Real)
    • censored(d0::D, l::Real, ::Nothing)
    source

    In the general case, this will create a Distributions.Censored{typeof(d0)} structure, defined as follows:

    In general, censored should be called instead of the constructor of Censored, which is not exported.

    Many functions, including those for the evaluation of pdf and sampling, are defined for all censored univariate distributions:

    Some functions to compute statistics are available for the censored distribution if they are also available for its truncation:

    For example, these functions are available for the following uncensored distributions:

    • DiscreteUniform
    • Exponential
    • LogUniform
    • Normal
    • Uniform

    mode is not implemented for censored distributions.

    diff --git a/previews/PR1837/cholesky/index.html b/previews/PR1837/cholesky/index.html new file mode 100644 index 0000000000..63bafc015b --- /dev/null +++ b/previews/PR1837/cholesky/index.html @@ -0,0 +1,2 @@ + +Cholesky-variate Distributions · Distributions.jl

    Cholesky-variate Distributions

    Cholesky-variate distributions are distributions whose variate forms are CholeskyVariate. This means each draw is a factorization of a positive-definite matrix of type LinearAlgebra.Cholesky (the object produced by the function LinearAlgebra.cholesky applied to a dense positive-definite matrix.)

    Distributions

    Distributions.LKJCholeskyType
    LKJCholesky(d::Int, η::Real, uplo='L')

    The LKJCholesky distribution of size $d$ with shape parameter $\eta$ is a distribution over LinearAlgebra.Cholesky factorisations of $d\times d$ real correlation matrices (positive-definite matrices with ones on the diagonal).

    Variates or samples of the distribution are LinearAlgebra.Cholesky objects, as might be returned by F = LinearAlgebra.cholesky(R), so that Matrix(F) ≈ R is a variate or sample of LKJ.

    Sampling LKJCholesky is faster than sampling LKJ, and often having the correlation matrix in factorized form makes subsequent computations cheaper as well.

    Note

    LinearAlgebra.Cholesky stores either the upper or lower Cholesky factor, related by F.U == F.L'. Both can be accessed with F.U and F.L, but if the factor not stored is requested, then a copy is made. The uplo parameter specifies whether the upper ('U') or lower ('L') Cholesky factor is stored when randomly generating samples. Set uplo to 'U' if the upper factor is desired to avoid allocating a copy when calling F.U.

    See LKJ for more details.

    External links

    • Lewandowski D, Kurowicka D, Joe H. Generating random correlation matrices based on vines and extended onion method, Journal of Multivariate Analysis (2009), 100(9): 1989-2001 doi: 10.1016/j.jmva.2009.04.008
    source

    Index

    diff --git a/previews/PR1837/convolution/index.html b/previews/PR1837/convolution/index.html new file mode 100644 index 0000000000..01a6770b68 --- /dev/null +++ b/previews/PR1837/convolution/index.html @@ -0,0 +1,2 @@ + +Convolutions · Distributions.jl

    Convolutions

    A convolution of two probability distributions is the probability distribution of the sum of two independent random variables that are distributed according to these distributions.

    The convolution of two distributions can be constructed with convolve.

    Distributions.convolveFunction
    convolve(d1::Distribution, d2::Distribution)

    Convolve two distributions and return the distribution corresponding to the sum of independent random variables drawn from the underlying distributions.

    Currently, the function is only defined in cases where the convolution has a closed form. More precisely, the function is defined if the distributions of d1 and d2 are the same and one of

    External links: List of convolutions of probability distributions on Wikipedia

    source
    diff --git a/previews/PR1837/density_interface/index.html b/previews/PR1837/density_interface/index.html new file mode 100644 index 0000000000..fcc1bebe20 --- /dev/null +++ b/previews/PR1837/density_interface/index.html @@ -0,0 +1,2 @@ + +Support for DensityInterface · Distributions.jl

    Support for DensityInterface

    Distributions supports DensityInterface for distributions.

    A probability distribution has a probability density, so DensityInterface.DensityKind(::Distribution) === HasDensity().

    For single variate values x, DensityInterface.logdensityof(d::Distribution, x) is equivalent to logpdf(d, x) and DensityInterface.densityof(d::Distribution, x) is equivalent to pdf(d, x).

    diff --git a/previews/PR1837/extends/index.html b/previews/PR1837/extends/index.html new file mode 100644 index 0000000000..b3a5ed96c5 --- /dev/null +++ b/previews/PR1837/extends/index.html @@ -0,0 +1,38 @@ + +Create New Samplers and Distributions · Distributions.jl

    Create New Samplers and Distributions

    Whereas this package already provides a large collection of common distributions out of the box, there are still occasions where you want to create new distributions (e.g. your application requires a special kind of distribution, or you want to contribute to this package).

    Generally, you don't have to implement every API method listed in the documentation. This package provides a series of generic functions that turn a small number of internal methods into user-end API methods. What you need to do is to implement this small set of internal methods for your distributions.

    By default, Discrete sampleables have the support of type Int while Continuous sampleables have the support of type Float64. If this assumption does not hold for your new distribution or sampler, or its ValueSupport is neither Discrete nor Continuous, you should implement the eltype method in addition to the other methods listed below.

    Note: The methods that need to be implemented are different for distributions of different variate forms.

    Create a Sampler

    Unlike full-fledged distributions, a sampler, in general, only provides limited functionalities, mainly to support sampling.

    Univariate Sampler

    To implement a univariate sampler, one can define a subtype (say Spl) of Sampleable{Univariate,S} (where S can be Discrete or Continuous), and provide a rand method, as

    function rand(rng::AbstractRNG, s::Spl)
    +    # ... generate a single sample from s
    +end

    The package already implements a vectorized version of rand! and rand that repeatedly calls the scalar version to generate multiple samples; as wells as a one arg version that uses the default random number generator.

    Multivariate Sampler

    To implement a multivariate sampler, one can define a subtype of Sampleable{Multivariate,S}, and provide both length and _rand! methods, as

    Base.length(s::Spl) = ... # return the length of each sample
    +
    +function _rand!(rng::AbstractRNG, s::Spl, x::AbstractVector{T}) where T<:Real
    +    # ... generate a single vector sample to x
    +end

    This function can assume that the dimension of x is correct, and doesn't need to perform dimension checking.

    The package implements both rand and rand! as follows (which you don't need to implement in general):

    function _rand!(rng::AbstractRNG, s::Sampleable{Multivariate}, A::DenseMatrix)
    +    for i = 1:size(A,2)
    +        _rand!(rng, s, view(A,:,i))
    +    end
    +    return A
    +end
    +
    +function rand!(rng::AbstractRNG, s::Sampleable{Multivariate}, A::AbstractVector)
    +    length(A) == length(s) ||
    +        throw(DimensionMismatch("Output size inconsistent with sample length."))
    +    _rand!(rng, s, A)
    +end
    +
    +function rand!(rng::AbstractRNG, s::Sampleable{Multivariate}, A::DenseMatrix)
    +    size(A,1) == length(s) ||
    +        throw(DimensionMismatch("Output size inconsistent with sample length."))
    +    _rand!(rng, s, A)
    +end
    +
    +rand(rng::AbstractRNG, s::Sampleable{Multivariate,S}) where {S<:ValueSupport} =
    +    _rand!(rng, s, Vector{eltype(S)}(length(s)))
    +
    +rand(rng::AbstractRNG, s::Sampleable{Multivariate,S}, n::Int) where {S<:ValueSupport} =
    +    _rand!(rng, s, Matrix{eltype(S)}(length(s), n))

    If there is a more efficient method to generate multiple vector samples in a batch, one should provide the following method

    function _rand!(rng::AbstractRNG, s::Spl, A::DenseMatrix{T}) where T<:Real
    +    # ... generate multiple vector samples in batch
    +end

    Remember that each column of A is a sample.

    Matrix-variate Sampler

    To implement a multivariate sampler, one can define a subtype of Sampleable{Multivariate,S}, and provide both size and _rand! methods, as

    Base.size(s::Spl) = ... # the size of each matrix sample
    +
    +function _rand!(rng::AbstractRNG, s::Spl, x::DenseMatrix{T}) where T<:Real
    +    # ... generate a single matrix sample to x
    +end

    Note that you can assume x has correct dimensions in _rand! and don't have to perform dimension checking, the generic rand and rand! will do dimension checking and array allocation for you.

    Create a Distribution

    Most distributions should implement a sampler method to improve batch sampling efficiency.

    Distributions.samplerMethod
    sampler(d::Distribution) -> Sampleable
    +sampler(s::Sampleable) -> s

    Samplers can often rely on pre-computed quantities (that are not parameters themselves) to improve efficiency. If such a sampler exists, it can be provided with this sampler method, which would be used for batch sampling. The general fallback is sampler(d::Distribution) = d.

    source

    Univariate Distribution

    A univariate distribution type should be defined as a subtype of DiscreteUnivarateDistribution or ContinuousUnivariateDistribution.

    The following methods need to be implemented for each univariate distribution type:

    It is also recommended that one also implements the following statistics functions:

    You may refer to the source file src/univariates.jl to see details about how generic fallback functions for univariates are implemented.

    Create a Multivariate Distribution

    A multivariate distribution type should be defined as a subtype of DiscreteMultivarateDistribution or ContinuousMultivariateDistribution.

    The following methods need to be implemented for each multivariate distribution type:

    Note that if there exist faster methods for batch evaluation, one should override _logpdf! and _pdf!.

    Furthermore, the generic loglikelihood function repeatedly calls _logpdf. If there is a better way to compute the log-likelihood, one should override loglikelihood.

    It is also recommended that one also implements the following statistics functions:

    Create a Matrix-Variate Distribution

    A matrix-variate distribution type should be defined as a subtype of DiscreteMatrixDistribution or ContinuousMatrixDistribution.

    The following methods need to be implemented for each matrix-variate distribution type:

    diff --git a/previews/PR1837/fit/index.html b/previews/PR1837/fit/index.html new file mode 100644 index 0000000000..bd47d836bc --- /dev/null +++ b/previews/PR1837/fit/index.html @@ -0,0 +1,13 @@ + +Distribution Fitting · Distributions.jl

    Distribution Fitting

    This package provides methods to fit a distribution to a given set of samples. Generally, one may write

    d = fit(D, x)

    This statement fits a distribution of type D to a given dataset x, where x should be an array comprised of all samples. The fit function will choose a reasonable way to fit the distribution, which, in most cases, is maximum likelihood estimation.

    Note

    One can use as the first argument simply the distribution name, like Binomial, or a concrete distribution with a type parameter, like Normal{Float64} or Exponential{Float32}. However, in the latter case the type parameter of the distribution will be ignored:

    julia> fit(Cauchy{Float32}, collect(-4:4))
    +Cauchy{Float64}(μ=0.0, σ=2.0)

    Maximum Likelihood Estimation

    The function fit_mle is for maximum likelihood estimation.

    Synopsis

    Distributions.fit_mleMethod
    fit_mle(D, x)

    Fit a distribution of type D to a given data set x.

    • For univariate distribution, x can be an array of arbitrary size.
    • For multivariate distribution, x should be a matrix, where each column is a sample.
    source
    Distributions.fit_mleMethod
    fit_mle(D, x, w)

    Fit a distribution of type D to a weighted data set x, with weights given by w.

    Here, w should be an array with length n, where n is the number of samples contained in x.

    source

    Applicable distributions

    The fit_mle method has been implemented for the following distributions:

    Univariate:

    Multivariate:

    For most of these distributions, the usage is as described above. For a few special distributions that require additional information for estimation, we have to use a modified interface:

    fit_mle(Binomial, n, x)        # n is the number of trials in each experiment
    +fit_mle(Binomial, n, x, w)
    +
    +fit_mle(Categorical, k, x)     # k is the space size (i.e. the number of distinct values)
    +fit_mle(Categorical, k, x, w)
    +
    +fit_mle(Categorical, x)        # equivalent to fit_mle(Categorical, max(x), x)
    +fit_mle(Categorical, x, w)

    Sufficient Statistics

    For many distributions, the estimation can be based on (sum of) sufficient statistics computed from a dataset. To simplify implementation, for such distributions, we implement suffstats method instead of fit_mle directly:

    ss = suffstats(D, x)        # ss captures the sufficient statistics of x
    +ss = suffstats(D, x, w)     # ss captures the sufficient statistics of a weighted dataset
    +
    +d = fit_mle(D, ss)          # maximum likelihood estimation based on sufficient stats

    When fit_mle on D is invoked, a fallback fit_mle method will first call suffstats to compute the sufficient statistics, and then a fit_mle method on sufficient statistics to get the result. For some distributions, this way is not the most efficient, and we specialize the fit_mle method to implement more efficient estimation algorithms.

    Maximum-a-Posteriori Estimation

    Maximum-a-Posteriori (MAP) estimation is also supported by this package, which is implemented as part of the conjugate exponential family framework (see :ref:Conjugate Prior and Posterior <ref-conj>).

    diff --git a/previews/PR1837/index.html b/previews/PR1837/index.html new file mode 100644 index 0000000000..7a6a690564 --- /dev/null +++ b/previews/PR1837/index.html @@ -0,0 +1,2 @@ + +Distributions Package · Distributions.jl

    Distributions Package

    The Distributions package provides a large collection of probabilistic distributions and related functions. Particularly, Distributions implements:

    • Sampling from distributions
    • Moments (e.g mean, variance, skewness, and kurtosis), entropy, and other properties
    • Probability density/mass functions (pdf) and their logarithm (logpdf)
    • Moment-generating functions and characteristic functions
    • Maximum likelihood estimation
    • Distribution composition and derived distributions (Cartesian product of distributions, truncated distributions, censored distributions)
    diff --git a/previews/PR1837/matrix/index.html b/previews/PR1837/matrix/index.html new file mode 100644 index 0000000000..023f8bcf8c --- /dev/null +++ b/previews/PR1837/matrix/index.html @@ -0,0 +1,31 @@ + +Matrix-variate Distributions · Distributions.jl

    Matrix-variate Distributions

    Matrix-variate distributions are the distributions whose variate forms are Matrixvariate (i.e each sample is a matrix). Abstract types for matrix-variate distributions:

    const MatrixDistribution{S<:ValueSupport} = Distribution{Matrixvariate,S}
    +
    +const DiscreteMatrixDistribution   = Distribution{Matrixvariate, Discrete}
    +const ContinuousMatrixDistribution = Distribution{Matrixvariate, Continuous}

    More advanced functionalities related to random matrices can be found in the RandomMatrices.jl package.

    Common Interface

    All distributions implement the same set of methods:

    Base.sizeMethod
    size(d::MatrixDistribution)

    Return the size of each sample from distribution d.

    source
    Base.lengthMethod
    length(d::MatrixDistribution)

    The length (i.e number of elements) of each sample from the distribution d.

    source
    Statistics.varMethod
    var(d::MatrixDistribution)

    Compute the matrix of element-wise variances for distribution d.

    source
    Statistics.covMethod
    cov(d::MatrixDistribution)

    Compute the covariance matrix for vec(X), where X is a random matrix with distribution d.

    source
    Distributions.pdfMethod
    pdf(d::Distribution{ArrayLikeVariate{N}}, x::AbstractArray{<:Real,N}) where {N}

    Evaluate the probability density function of d at x.

    This function checks if the size of x is compatible with distribution d. This check can be disabled by using @inbounds.

    Implementation

    Instead of pdf one should implement _pdf(d, x) which does not have to check the size of x. However, since the default definition of pdf(d, x) falls back to logpdf(d, x) usually it is sufficient to implement logpdf.

    See also: logpdf.

    source
    Distributions.logpdfMethod
    logpdf(d::Distribution{ArrayLikeVariate{N}}, x::AbstractArray{<:Real,N}) where {N}

    Evaluate the logarithm of the probability density function of d at x.

    This function checks if the size of x is compatible with distribution d. This check can be disabled by using @inbounds.

    Implementation

    Instead of logpdf one should implement _logpdf(d, x) which does not have to check the size of x.

    See also: pdf.

    source
    Missing docstring.

    Missing docstring for Distributions._rand!(::AbstractRNG, ::MatrixDistribution, A::AbstractMatrix). Check Documenter's build log for details.

    Distributions

    Distributions.MatrixNormalType
    MatrixNormal(M, U, V)
    M::AbstractMatrix  n x p mean
    +U::AbstractPDMat   n x n row covariance
    +V::AbstractPDMat   p x p column covariance

    The matrix normal distribution generalizes the multivariate normal distribution to $n\times p$ real matrices $\mathbf{X}$. If $\mathbf{X}\sim \textrm{MN}_{n,p}(\mathbf{M}, \mathbf{U}, \mathbf{V})$, then its probability density function is

    \[f(\mathbf{X};\mathbf{M}, \mathbf{U}, \mathbf{V}) = \frac{\exp\left( -\frac{1}{2} \, \mathrm{tr}\left[ \mathbf{V}^{-1} (\mathbf{X} - \mathbf{M})^{\rm{T}} \mathbf{U}^{-1} (\mathbf{X} - \mathbf{M}) \right] \right)}{(2\pi)^{np/2} |\mathbf{V}|^{n/2} |\mathbf{U}|^{p/2}}.\]

    $\mathbf{X}\sim \textrm{MN}_{n,p}(\mathbf{M},\mathbf{U},\mathbf{V})$ if and only if $\text{vec}(\mathbf{X})\sim \textrm{N}(\text{vec}(\mathbf{M}),\mathbf{V}\otimes\mathbf{U})$.

    source
    Distributions.WishartType
    Wishart(ν, S)
    ν::Real           degrees of freedom (whole number or a real number greater than p - 1)
    +S::AbstractPDMat  p x p scale matrix

    The Wishart distribution generalizes the gamma distribution to $p\times p$ real, positive semidefinite matrices $\mathbf{H}$.

    If $\nu>p-1$, then $\mathbf{H}\sim \textrm{W}_p(\nu, \mathbf{S})$ has rank $p$ and its probability density function is

    \[f(\mathbf{H};\nu,\mathbf{S}) = \frac{1}{2^{\nu p/2} \left|\mathbf{S}\right|^{\nu/2} \Gamma_p\left(\frac {\nu}{2}\right ) }{\left|\mathbf{H}\right|}^{(\nu-p-1)/2} e^{-(1/2)\operatorname{tr}(\mathbf{S}^{-1}\mathbf{H})}.\]

    If $\nu\leq p-1$, then $\mathbf{H}$ is rank $\nu$ and it has a density with respect to a suitably chosen volume element on the space of positive semidefinite matrices. See here.

    For integer $\nu$, a random matrix given by

    \[\mathbf{H} = \mathbf{X}\mathbf{X}^{\rm{T}}, +\quad\mathbf{X} \sim \textrm{MN}_{p,\nu}(\mathbf{0}, \mathbf{S}, \mathbf{I}_{\nu})\]

    has $\mathbf{H}\sim \textrm{W}_p(\nu, \mathbf{S})$. For non-integer $\nu$, Wishart matrices can be generated via the Bartlett decomposition.

    source
    Distributions.InverseWishartType
    InverseWishart(ν, Ψ)
    ν::Real           degrees of freedom (greater than p - 1)
    +Ψ::AbstractPDMat  p x p scale matrix

    The inverse Wishart distribution generalizes the inverse gamma distribution to $p\times p$ real, positive definite matrices $\boldsymbol{\Sigma}$. If $\boldsymbol{\Sigma}\sim \textrm{IW}_p(\nu,\boldsymbol{\Psi})$, then its probability density function is

    \[f(\boldsymbol{\Sigma}; \nu,\boldsymbol{\Psi}) = +\frac{\left|\boldsymbol{\Psi}\right|^{\nu/2}}{2^{\nu p/2}\Gamma_p(\frac{\nu}{2})} \left|\boldsymbol{\Sigma}\right|^{-(\nu+p+1)/2} e^{-\frac{1}{2}\operatorname{tr}(\boldsymbol{\Psi}\boldsymbol{\Sigma}^{-1})}.\]

    $\mathbf{H}\sim \textrm{W}_p(\nu, \mathbf{S})$ if and only if $\mathbf{H}^{-1}\sim \textrm{IW}_p(\nu, \mathbf{S}^{-1})$.

    source
    Distributions.MatrixTDistType
    MatrixTDist(ν, M, Σ, Ω)
    ν::Real            positive degrees of freedom
    +M::AbstractMatrix  n x p location
    +Σ::AbstractPDMat   n x n scale
    +Ω::AbstractPDMat   p x p scale

    The matrix t-distribution generalizes the multivariate t-distribution to $n\times p$ real matrices $\mathbf{X}$. If $\mathbf{X}\sim \textrm{MT}_{n,p}(\nu,\mathbf{M},\boldsymbol{\Sigma}, \boldsymbol{\Omega})$, then its probability density function is

    \[f(\mathbf{X} ; \nu,\mathbf{M},\boldsymbol{\Sigma}, \boldsymbol{\Omega}) = +c_0 \left|\mathbf{I}_n + \boldsymbol{\Sigma}^{-1}(\mathbf{X} - \mathbf{M})\boldsymbol{\Omega}^{-1}(\mathbf{X}-\mathbf{M})^{\rm{T}}\right|^{-\frac{\nu+n+p-1}{2}},\]

    where

    \[c_0=\frac{\Gamma_p\left(\frac{\nu+n+p-1}{2}\right)}{(\pi)^\frac{np}{2} \Gamma_p\left(\frac{\nu+p-1}{2}\right)} |\boldsymbol{\Omega}|^{-\frac{n}{2}} |\boldsymbol{\Sigma}|^{-\frac{p}{2}}.\]

    If the joint distribution $p(\mathbf{S},\mathbf{X})=p(\mathbf{S})p(\mathbf{X}|\mathbf{S})$ is given by

    \[\begin{aligned} +\mathbf{S}&\sim \textrm{IW}_n(\nu + n - 1, \boldsymbol{\Sigma})\\ +\mathbf{X}|\mathbf{S}&\sim \textrm{MN}_{n,p}(\mathbf{M}, \mathbf{S}, \boldsymbol{\Omega}), +\end{aligned}\]

    then the marginal distribution of $\mathbf{X}$ is $\textrm{MT}_{n,p}(\nu,\mathbf{M},\boldsymbol{\Sigma},\boldsymbol{\Omega})$.

    source
    Distributions.MatrixBetaType
    MatrixBeta(p, n1, n2)
    p::Int    dimension
    +n1::Real  degrees of freedom (greater than p - 1)
    +n2::Real  degrees of freedom (greater than p - 1)

    The matrix beta distribution generalizes the beta distribution to $p\times p$ real matrices $\mathbf{U}$ for which $\mathbf{U}$ and $\mathbf{I}_p-\mathbf{U}$ are both positive definite. If $\mathbf{U}\sim \textrm{MB}_p(n_1/2, n_2/2)$, then its probability density function is

    \[f(\mathbf{U}; n_1,n_2) = \frac{\Gamma_p(\frac{n_1+n_2}{2})}{\Gamma_p(\frac{n_1}{2})\Gamma_p(\frac{n_2}{2})} +|\mathbf{U}|^{(n_1-p-1)/2}\left|\mathbf{I}_p-\mathbf{U}\right|^{(n_2-p-1)/2}.\]

    If $\mathbf{S}_1\sim \textrm{W}_p(n_1,\mathbf{I}_p)$ and $\mathbf{S}_2\sim \textrm{W}_p(n_2,\mathbf{I}_p)$ are independent, and we use $\mathcal{L}(\cdot)$ to denote the lower Cholesky factor, then

    \[\mathbf{U}=\mathcal{L}(\mathbf{S}_1+\mathbf{S}_2)^{-1}\mathbf{S}_1\mathcal{L}(\mathbf{S}_1+\mathbf{S}_2)^{-\rm{T}}\]

    has $\mathbf{U}\sim \textrm{MB}_p(n_1/2, n_2/2)$.

    source
    Distributions.MatrixFDistType
    MatrixFDist(n1, n2, B)
    n1::Real          degrees of freedom (greater than p - 1)
    +n2::Real          degrees of freedom (greater than p - 1)
    +B::AbstractPDMat  p x p scale

    The matrix F-distribution (sometimes called the matrix beta type II distribution) generalizes the F-Distribution to $p\times p$ real, positive definite matrices $\boldsymbol{\Sigma}$. If $\boldsymbol{\Sigma}\sim \textrm{MF}_{p}(n_1/2,n_2/2,\mathbf{B})$, then its probability density function is

    \[f(\boldsymbol{\Sigma} ; n_1,n_2,\mathbf{B}) = +\frac{\Gamma_p(\frac{n_1+n_2}{2})}{\Gamma_p(\frac{n_1}{2})\Gamma_p(\frac{n_2}{2})} +|\mathbf{B}|^{n_2/2}|\boldsymbol{\Sigma}|^{(n_1-p-1)/2}|\mathbf{B}+\boldsymbol{\Sigma}|^{-(n_1+n_2)/2}.\]

    If the joint distribution $p(\boldsymbol{\Psi},\boldsymbol{\Sigma})=p(\boldsymbol{\Psi})p(\boldsymbol{\Sigma}|\boldsymbol{\Psi})$ is given by

    \[\begin{aligned} +\boldsymbol{\Psi}&\sim \textrm{W}_p(n_1, \mathbf{B})\\ +\boldsymbol{\Sigma}|\boldsymbol{\Psi}&\sim \textrm{IW}_p(n_2, \boldsymbol{\Psi}), +\end{aligned}\]

    then the marginal distribution of $\boldsymbol{\Sigma}$ is $\textrm{MF}_{p}(n_1/2,n_2/2,\mathbf{B})$.

    source
    Distributions.LKJType
    LKJ(d, η)
    d::Int   dimension
    +η::Real  positive shape

    The LKJ distribution is a distribution over $d\times d$ real correlation matrices (positive-definite matrices with ones on the diagonal). If $\mathbf{R}\sim \textrm{LKJ}_{d}(\eta)$, then its probability density function is

    \[f(\mathbf{R};\eta) = \left[\prod_{k=1}^{d-1}\pi^{\frac{k}{2}} +\frac{\Gamma\left(\eta+\frac{d-1-k}{2}\right)}{\Gamma\left(\eta+\frac{d-1}{2}\right)}\right]^{-1} +|\mathbf{R}|^{\eta-1}.\]

    If $\eta = 1$, then the LKJ distribution is uniform over the space of correlation matrices.

    Note

    if a Cholesky factor of the correlation matrix is desired, it is more efficient to use LKJCholesky, which avoids factorizing the matrix.

    source

    Internal Methods (for creating your own matrix-variate distributions)

    Missing docstring.

    Missing docstring for Distributions._logpdf(d::MatrixDistribution, x::AbstractMatrix{<:Real}). Check Documenter's build log for details.

    Index

    diff --git a/previews/PR1837/mixture/index.html b/previews/PR1837/mixture/index.html new file mode 100644 index 0000000000..9e47823e64 --- /dev/null +++ b/previews/PR1837/mixture/index.html @@ -0,0 +1,31 @@ + +Mixture Models · Distributions.jl

    Mixture Models

    A mixture model is a probabilistic distribution that combines a set of components to represent the overall distribution. Generally, the probability density/mass function is given by a convex combination of the pdf/pmf of individual components, as

    \[f_{mix}(x; \Theta, \pi) = \sum_{k=1}^K \pi_k f(x; \theta_k)\]

    A mixture model is characterized by a set of component parameters $\Theta=\{\theta_1, \ldots, \theta_K\}$ and a prior distribution $\pi$ over these components.

    Type Hierarchy

    This package introduces a type MixtureModel, defined as follows, to represent a mixture model:

    abstract type AbstractMixtureModel{VF<:VariateForm,VS<:ValueSupport} <: Distribution{VF, VS} end
    +
    +struct MixtureModel{VF<:VariateForm,VS<:ValueSupport,Component<:Distribution} <: AbstractMixtureModel{VF,VS}
    +    components::Vector{Component}
    +    prior::Categorical
    +end
    +
    +const UnivariateMixture    = AbstractMixtureModel{Univariate}
    +const MultivariateMixture  = AbstractMixtureModel{Multivariate}

    Remarks:

    • We introduce AbstractMixtureModel as a base type, which allows one to define a mixture model with different internal implementations, while still being able to leverage the common methods defined for AbstractMixtureModel.
    Distributions.AbstractMixtureModelType

    All subtypes of AbstractMixtureModel should implement the following methods:

    • ncomponents(d): the number of components

    • component(d, k): return the k-th component

    • probs(d): return a vector of prior probabilities over components.

    source
    • The MixtureModel is a parametric type, with three type parameters:

      • VF: the variate form, which can be Univariate, Multivariate, or Matrixvariate.
      • VS: the value support, which can be Continuous or Discrete.
      • Component: the type of component distributions, e.g. Normal.
    • We define two aliases: UnivariateMixture and MultivariateMixture.

    With such a type system, the type for a mixture of univariate normal distributions can be written as

    MixtureModel{Univariate,Continuous,Normal}

    Constructors

    Distributions.MixtureModelType

    MixtureModel{VF<:VariateForm,VS<:ValueSupport,C<:Distribution,CT<:Real} A mixture of distributions, parametrized on:

    • VF,VS variate and support
    • C distribution family of the mixture
    • CT the type for probabilities of the prior
    source

    Examples

    # constructs a mixture of three normal distributions,
    +# with prior probabilities [0.2, 0.5, 0.3]
    +MixtureModel(Normal[
    +   Normal(-2.0, 1.2),
    +   Normal(0.0, 1.0),
    +   Normal(3.0, 2.5)], [0.2, 0.5, 0.3])
    +
    +# if the components share the same prior, the prior vector can be omitted
    +MixtureModel(Normal[
    +   Normal(-2.0, 1.2),
    +   Normal(0.0, 1.0),
    +   Normal(3.0, 2.5)])
    +
    +# Since all components have the same type, we can use a simplified syntax
    +MixtureModel(Normal, [(-2.0, 1.2), (0.0, 1.0), (3.0, 2.5)], [0.2, 0.5, 0.3])
    +
    +# Again, one can omit the prior vector when all components share the same prior
    +MixtureModel(Normal, [(-2.0, 1.2), (0.0, 1.0), (3.0, 2.5)])
    +
    +# The following example shows how one can make a Gaussian mixture
    +# where all components share the same unit variance
    +MixtureModel(map(u -> Normal(u, 1.0), [-2.0, 0.0, 3.0]))

    Common Interface

    All subtypes of AbstractMixtureModel (obviously including MixtureModel) provide the following two methods:

    Distributions.probsMethod
    probs(d::AbstractMixtureModel)

    Get the vector of prior probabilities of all components of d.

    source

    In addition, for all subtypes of UnivariateMixture and MultivariateMixture, the following generic methods are provided:

    Statistics.meanMethod
    mean(d::Union{UnivariateMixture, MultivariateMixture})

    Compute the overall mean (expectation).

    source
    Statistics.varMethod
    var(d::UnivariateMixture)

    Compute the overall variance (only for UnivariateMixture).

    source
    Base.lengthMethod
    length(d::MultivariateMixture)

    The length of each sample (only for Multivariate).

    source
    Distributions.pdfMethod
    pdf(d::Union{UnivariateMixture, MultivariateMixture}, x)

    Evaluate the (mixed) probability density function over x. Here, x can be a single sample or an array of multiple samples.

    source
    Distributions.logpdfMethod
    logpdf(d::Union{UnivariateMixture, MultivariateMixture}, x)

    Evaluate the logarithm of the (mixed) probability density function over x. Here, x can be a single sample or an array of multiple samples.

    source
    Base.randMethod
    rand(d::Union{UnivariateMixture, MultivariateMixture})

    Draw a sample from the mixture model d.

    rand(d::Union{UnivariateMixture, MultivariateMixture}, n)

    Draw n samples from d.

    source
    Random.rand!Method
    rand!(d::Union{UnivariateMixture, MultivariateMixture}, r::AbstractArray)

    Draw multiple samples from d and write them to r.

    source

    Estimation

    There are several methods for the estimation of mixture models from data, and this problem remains an open research topic. This package does not provide facilities for estimating mixture models. One can resort to other packages, e.g. GaussianMixtures.jl, for this purpose.

    diff --git a/previews/PR1837/multivariate/index.html b/previews/PR1837/multivariate/index.html new file mode 100644 index 0000000000..3a2ebbc58d --- /dev/null +++ b/previews/PR1837/multivariate/index.html @@ -0,0 +1,38 @@ + +Multivariate Distributions · Distributions.jl

    Multivariate Distributions

    Multivariate distributions are the distributions whose variate forms are Multivariate (i.e each sample is a vector). Abstract types for multivariate distributions:

    const MultivariateDistribution{S<:ValueSupport} = Distribution{Multivariate,S}
    +
    +const DiscreteMultivariateDistribution   = Distribution{Multivariate, Discrete}
    +const ContinuousMultivariateDistribution = Distribution{Multivariate, Continuous}

    Common Interface

    The methods listed below are implemented for each multivariate distribution, which provides a consistent interface to work with multivariate distributions.

    Computation of statistics

    Base.lengthMethod
    length(d::MultivariateDistribution) -> Int

    Return the sample dimension of distribution d.

    source
    Base.sizeMethod
    size(d::MultivariateDistribution)

    Return the sample size of distribution d, i.e (length(d),).

    source
    Base.eltypeMethod
    eltype(::Type{Sampleable})

    The default element type of a sample. This is the type of elements of the samples generated by the rand method. However, one can provide an array of different element types to store the samples using rand!.

    source
    Statistics.meanMethod
    mean(d::MultivariateDistribution)

    Compute the mean vector of distribution d.

    source
    Statistics.varMethod
    var(d::MultivariateDistribution)

    Compute the vector of element-wise variances for distribution d.

    source
    Statistics.covMethod
    cov(d::MultivariateDistribution)

    Compute the covariance matrix for distribution d. (cor is provided based on cov).

    source
    Statistics.corMethod
    cor(d::MultivariateDistribution)

    Computes the correlation matrix for distribution d.

    source
    StatsBase.entropyMethod
    entropy(d::MultivariateDistribution, b::Real)

    Compute the entropy value of distribution $d$, w.r.t. a given base.

    source

    Probability evaluation

    Distributions.insupportMethod
    insupport(d::MultivariateDistribution, x::AbstractArray)

    If $x$ is a vector, it returns whether x is within the support of $d$. If $x$ is a matrix, it returns whether every column in $x$ is within the support of $d$.

    source
    Missing docstring.

    Missing docstring for pdf(::MultivariateDistribution, ::AbstractArray). Check Documenter's build log for details.

    Missing docstring.

    Missing docstring for logpdf(::MultivariateDistribution, ::AbstractArray). Check Documenter's build log for details.

    StatsAPI.loglikelihoodMethod
    loglikelihood(d::Distribution{ArrayLikeVariate{N}}, x) where {N}

    The log-likelihood of distribution d with respect to all variate(s) contained in x.

    Here, x can be any output of rand(d, dims...) and rand!(d, x). For instance, x can be

    • an array of dimension N with size(x) == size(d),
    • an array of dimension N + 1 with size(x)[1:N] == size(d), or
    • an array of arrays xi of dimension N with size(xi) == size(d).
    source

    Note: For multivariate distributions, the pdf value is usually very small or large, and therefore direct evaluation of the pdf may cause numerical problems. It is generally advisable to perform probability computation in log scale.

    Sampling

    Base.randMethod
    rand(::AbstractRNG, ::Sampleable)

    Samples from the sampler and returns the result.

    source
    Random.rand!Method
    rand!(::AbstractRNG, ::Sampleable, ::AbstractArray)

    Samples in-place from the sampler and stores the result in the provided array.

    source

    Note: In addition to these common methods, each multivariate distribution has its special methods, as introduced below.

    Distributions

    Distributions.MultinomialType

    The Multinomial distribution generalizes the binomial distribution. Consider n independent draws from a Categorical distribution over a finite set of size k, and let $X = (X_1, ..., X_k)$ where $X_i$ represents the number of times the element $i$ occurs, then the distribution of $X$ is a multinomial distribution. Each sample of a multinomial distribution is a k-dimensional integer vector that sums to n.

    The probability mass function is given by

    \[f(x; n, p) = \frac{n!}{x_1! \cdots x_k!} \prod_{i=1}^k p_i^{x_i}, +\quad x_1 + \cdots + x_k = n\]

    Multinomial(n, p)   # Multinomial distribution for n trials with probability vector p
    +Multinomial(n, k)   # Multinomial distribution for n trials with equal probabilities
    +                    # over 1:k
    source
    Distributions.AbstractMvNormalType

    The Multivariate normal distribution is a multidimensional generalization of the normal distribution. The probability density function of a d-dimensional multivariate normal distribution with mean vector $\boldsymbol{\mu}$ and covariance matrix $\boldsymbol{\Sigma}$ is:

    \[f(\mathbf{x}; \boldsymbol{\mu}, \boldsymbol{\Sigma}) = \frac{1}{(2 \pi)^{d/2} |\boldsymbol{\Sigma}|^{1/2}} +\exp \left( - \frac{1}{2} (\mathbf{x} - \boldsymbol{\mu})^T \Sigma^{-1} (\mathbf{x} - \boldsymbol{\mu}) \right)\]

    We realize that the mean vector and the covariance often have special forms in practice, which can be exploited to simplify the computation. For example, the mean vector is sometimes just a zero vector, while the covariance matrix can be a diagonal matrix or even in the form of $\sigma^2 \mathbf{I}$. To take advantage of such special cases, we introduce a parametric type MvNormal, defined as below, which allows users to specify the special structure of the mean and covariance.

    struct MvNormal{T<:Real,Cov<:AbstractPDMat,Mean<:AbstractVector} <: AbstractMvNormal
    +    μ::Mean
    +    Σ::Cov
    +end

    Here, the mean vector can be an instance of any AbstractVector. The covariance can be of any subtype of AbstractPDMat. Particularly, one can use PDMat for full covariance, PDiagMat for diagonal covariance, and ScalMat for the isotropic covariance – those in the form of $\sigma^2 \mathbf{I}$. (See the Julia package PDMats for details).

    We also define a set of aliases for the types using different combinations of mean vectors and covariance:

    const IsoNormal  = MvNormal{Float64, ScalMat{Float64},                  Vector{Float64}}
    +const DiagNormal = MvNormal{Float64, PDiagMat{Float64,Vector{Float64}}, Vector{Float64}}
    +const FullNormal = MvNormal{Float64, PDMat{Float64,Matrix{Float64}},    Vector{Float64}}
    +
    +const ZeroMeanIsoNormal{Axes}  = MvNormal{Float64, ScalMat{Float64},                  Zeros{Float64,1,Axes}}
    +const ZeroMeanDiagNormal{Axes} = MvNormal{Float64, PDiagMat{Float64,Vector{Float64}}, Zeros{Float64,1,Axes}}
    +const ZeroMeanFullNormal{Axes} = MvNormal{Float64, PDMat{Float64,Matrix{Float64}},    Zeros{Float64,1,Axes}}

    Multivariate normal distributions support affine transformations:

    d = MvNormal(μ, Σ)
    +c + B * d    # == MvNormal(B * μ + c, B * Σ * B')
    +dot(b, d)    # == Normal(dot(b, μ), b' * Σ * b)
    source
    Distributions.MvNormalType
    MvNormal

    Generally, users don't have to worry about these internal details.

    We provide a common constructor MvNormal, which will construct a distribution of appropriate type depending on the input arguments.

    source
    Distributions.MvNormalCanonType
    MvNormalCanon

    The multivariate normal distribution is an exponential family distribution, with two canonical parameters: the potential vector $\mathbf{h}$ and the precision matrix $\mathbf{J}$. The relation between these parameters and the conventional representation (i.e. the one using mean $\boldsymbol{\mu}$ and covariance $\boldsymbol{\Sigma}$) is:

    \[\mathbf{h} = \boldsymbol{\Sigma}^{-1} \boldsymbol{\mu}, \quad \text{ and } \quad \mathbf{J} = \boldsymbol{\Sigma}^{-1}\]

    The canonical parameterization is widely used in Bayesian analysis. We provide a type MvNormalCanon, which is also a subtype of AbstractMvNormal to represent a multivariate normal distribution using canonical parameters. Particularly, MvNormalCanon is defined as:

    struct MvNormalCanon{T<:Real,P<:AbstractPDMat,V<:AbstractVector} <: AbstractMvNormal
    +    μ::V    # the mean vector
    +    h::V    # potential vector, i.e. inv(Σ) * μ
    +    J::P    # precision matrix, i.e. inv(Σ)
    +end

    We also define aliases for common specializations of this parametric type:

    const FullNormalCanon = MvNormalCanon{Float64, PDMat{Float64,Matrix{Float64}},    Vector{Float64}}
    +const DiagNormalCanon = MvNormalCanon{Float64, PDiagMat{Float64,Vector{Float64}}, Vector{Float64}}
    +const IsoNormalCanon  = MvNormalCanon{Float64, ScalMat{Float64},                  Vector{Float64}}
    +
    +const ZeroMeanFullNormalCanon{Axes} = MvNormalCanon{Float64, PDMat{Float64,Matrix{Float64}},    Zeros{Float64,1,Axes}}
    +const ZeroMeanDiagNormalCanon{Axes} = MvNormalCanon{Float64, PDiagMat{Float64,Vector{Float64}}, Zeros{Float64,1,Axes}}
    +const ZeroMeanIsoNormalCanon{Axes}  = MvNormalCanon{Float64, ScalMat{Float64},                  Zeros{Float64,1,Axes}}

    Note: MvNormalCanon share the same set of methods as MvNormal.

    source
    Distributions.MvLogitNormalType
    MvLogitNormal{<:AbstractMvNormal}

    The multivariate logit-normal distribution is a multivariate generalization of LogitNormal capable of handling correlations between variables.

    If $\mathbf{y} \sim \mathrm{MvNormal}(\boldsymbol{\mu}, \boldsymbol{\Sigma})$ is a length $d-1$ vector, then

    \[\mathbf{x} = \operatorname{softmax}\left(\begin{bmatrix}\mathbf{y} \\ 0 \end{bmatrix}\right) \sim \mathrm{MvLogitNormal}(\boldsymbol{\mu}, \boldsymbol{\Sigma})\]

    is a length $d$ probability vector.

    MvLogitNormal(μ, Σ)                 # MvLogitNormal with y ~ MvNormal(μ, Σ)
    +MvLogitNormal(MvNormal(μ, Σ))       # same as above
    +MvLogitNormal(MvNormalCanon(μ, J))  # MvLogitNormal with y ~ MvNormalCanon(μ, J)

    Fields

    • normal::AbstractMvNormal: contains the $d-1$-dimensional distribution of $y$
    source
    Distributions.MvLogNormalType
    MvLogNormal(d::MvNormal)

    The Multivariate lognormal distribution is a multidimensional generalization of the lognormal distribution.

    If $\boldsymbol X \sim \mathcal{N}(\boldsymbol\mu,\,\boldsymbol\Sigma)$ has a multivariate normal distribution then $\boldsymbol Y=\exp(\boldsymbol X)$ has a multivariate lognormal distribution.

    Mean vector $\boldsymbol{\mu}$ and covariance matrix $\boldsymbol{\Sigma}$ of the underlying normal distribution are known as the location and scale parameters of the corresponding lognormal distribution.

    source
    Distributions.DirichletType
    Dirichlet

    The Dirichlet distribution is often used as the conjugate prior for Categorical or Multinomial distributions. The probability density function of a Dirichlet distribution with parameter $\alpha = (\alpha_1, \ldots, \alpha_k)$ is:

    \[f(x; \alpha) = \frac{1}{B(\alpha)} \prod_{i=1}^k x_i^{\alpha_i - 1}, \quad \text{ with } +B(\alpha) = \frac{\prod_{i=1}^k \Gamma(\alpha_i)}{\Gamma \left( \sum_{i=1}^k \alpha_i \right)}, +\quad x_1 + \cdots + x_k = 1\]

    # Let alpha be a vector
    +Dirichlet(alpha)         # Dirichlet distribution with parameter vector alpha
    +
    +# Let a be a positive scalar
    +Dirichlet(k, a)          # Dirichlet distribution with parameter a * ones(k)
    source
    Distributions.ProductType
    Product <: MultivariateDistribution

    An N dimensional MultivariateDistribution constructed from a vector of N independent UnivariateDistributions.

    Product(Uniform.(rand(10), 1)) # A 10-dimensional Product from 10 independent `Uniform` distributions.
    source

    Addition Methods

    AbstractMvNormal

    In addition to the methods listed in the common interface above, we also provide the following methods for all multivariate distributions under the base type AbstractMvNormal:

    Distributions.sqmahalMethod
    sqmahal(d, x)

    Return the squared Mahalanobis distance from x to the center of d, w.r.t. the covariance. When x is a vector, it returns a scalar value. When x is a matrix, it returns a vector of length size(x,2).

    sqmahal!(r, d, x) with write the results to a pre-allocated array r.

    source
    Base.randMethod
    rand(::AbstractRNG, ::Distributions.AbstractMvNormal)

    Sample a random vector from the provided multi-variate normal distribution.

    source
    Base.minimumMethod
    minimum(d::Distribution)

    Return the minimum of the support of d.

    source
    Base.maximumMethod
    maximum(d::Distribution)

    Return the maximum of the support of d.

    source
    Base.extremaMethod
    extrema(d::Distribution)

    Return the minimum and maximum of the support of d as a 2-tuple.

    source

    MvLogNormal

    In addition to the methods listed in the common interface above, we also provide the following methods:

    Distributions.locationMethod
    location(d::MvLogNormal)

    Return the location vector of the distribution (the mean of the underlying normal distribution).

    source
    Distributions.scaleMethod
    scale(d::MvLogNormal)

    Return the scale matrix of the distribution (the covariance matrix of the underlying normal distribution).

    source
    Statistics.medianMethod
    median(d::MvLogNormal)

    Return the median vector of the lognormal distribution. which is strictly smaller than the mean.

    source
    StatsBase.modeMethod
    mode(d::MvLogNormal)

    Return the mode vector of the lognormal distribution, which is strictly smaller than the mean and median.

    source

    It can be necessary to calculate the parameters of the lognormal (location vector and scale matrix) from a given covariance and mean, median or mode. To that end, the following functions are provided.

    Distributions.locationMethod
    location{D<:AbstractMvLogNormal}(::Type{D},s::Symbol,m::AbstractVector,S::AbstractMatrix)

    Calculate the location vector (the mean of the underlying normal distribution).

    • If s == :meancov, then m is taken as the mean, and S the covariance matrix of a lognormal distribution.
    • If s == :mean | :median | :mode, then m is taken as the mean, median or mode of the lognormal respectively, and S is interpreted as the scale matrix (the covariance of the underlying normal distribution).

    It is not possible to analytically calculate the location vector from e.g., median + covariance, or from mode + covariance.

    source
    Distributions.location!Method
    location!{D<:AbstractMvLogNormal}(::Type{D},s::Symbol,m::AbstractVector,S::AbstractMatrix,μ::AbstractVector)

    Calculate the location vector (as above) and store the result in $μ$

    source
    Distributions.scaleMethod
    scale{D<:AbstractMvLogNormal}(::Type{D},s::Symbol,m::AbstractVector,S::AbstractMatrix)

    Calculate the scale parameter, as defined for the location parameter above.

    source
    Distributions.scale!Method
    scale!{D<:AbstractMvLogNormal}(::Type{D},s::Symbol,m::AbstractVector,S::AbstractMatrix,Σ::AbstractMatrix)

    Calculate the scale parameter, as defined for the location parameter above and store the result in Σ.

    source
    StatsAPI.paramsMethod
    params{D<:AbstractMvLogNormal}(::Type{D},m::AbstractVector,S::AbstractMatrix)

    Return (scale,location) for a given mean and covariance

    source

    Internal Methods (for creating your own multivariate distribution)

    Missing docstring.

    Missing docstring for Distributions._logpdf(d::MultivariateDistribution, x::AbstractArray). Check Documenter's build log for details.

    Product distributions

    Distributions.product_distributionFunction
    product_distribution(dists::AbstractArray{<:Distribution{<:ArrayLikeVariate{M}},N})

    Create a distribution of M + N-dimensional arrays as a product distribution of independent M-dimensional distributions by stacking them.

    The function falls back to constructing a ProductDistribution distribution but specialized methods can be defined.

    source
    product_distribution(dists::AbstractVector{<:Normal})

    Create a multivariate normal distribution by stacking the univariate normal distributions.

    The resulting distribution of type MvNormal has a diagonal covariance matrix.

    source

    Using product_distribution is advised to construct product distributions. For some distributions, it constructs a special multivariate type.

    Index

    diff --git a/previews/PR1837/order_statistics/index.html b/previews/PR1837/order_statistics/index.html new file mode 100644 index 0000000000..50dad74a70 --- /dev/null +++ b/previews/PR1837/order_statistics/index.html @@ -0,0 +1,11 @@ + +Order Statistics · Distributions.jl

    Order Statistics

    The $i$th Order Statistic of a random sample of size $n$ from a univariate distribution is the $i$th element after sorting in increasing order. As a special case, the first and $n$th order statistics are the minimum and maximum of the sample, while for odd $n$, the $\lceil \frac{n}{2} \rceil$th entry is the sample median.

    Given any univariate distribution and the sample size $n$, we can construct the distribution of its $i$th order statistic:

    Distributions.OrderStatisticType
    OrderStatistic{D<:UnivariateDistribution,S<:ValueSupport} <: UnivariateDistribution{S}

    The distribution of an order statistic from IID samples from a univariate distribution.

    OrderStatistic(dist::UnivariateDistribution, n::Int, rank::Int; check_args::Bool=true)

    Construct the distribution of the rank $=i$th order statistic from n independent samples from dist.

    The $i$th order statistic of a sample is the $i$th element of the sorted sample. For example, the 1st order statistic is the sample minimum, while the $n$th order statistic is the sample maximum.

    If $f$ is the probability density (mass) function of dist with distribution function $F$, then the probability density function $g$ of the order statistic for continuous dist is

    \[g(x; n, i) = {n \choose i} [F(x)]^{i-1} [1 - F(x)]^{n-i} f(x),\]

    and the probability mass function $g$ of the order statistic for discrete dist is

    \[g(x; n, i) = \sum_{k=i}^n {n \choose k} \left( [F(x)]^k [1 - F(x)]^{n-k} - [F(x_-)]^k [1 - F(x_-)]^{n-k} \right),\]

    where $x_-$ is the largest element in the support of dist less than $x$.

    For the joint distribution of a subset of order statistics, use JointOrderStatistics instead.

    Examples

    OrderStatistic(Cauchy(), 10, 1)              # distribution of the sample minimum
    +OrderStatistic(DiscreteUniform(10), 10, 10)  # distribution of the sample maximum
    +OrderStatistic(Gamma(1, 1), 11, 5)           # distribution of the sample median
    source

    If we are interested in more than one order statistic, for continuous univariate distributions we can also construct the joint distribution of order statistics:

    Distributions.JointOrderStatisticsType
    JointOrderStatistics <: ContinuousMultivariateDistribution

    The joint distribution of a subset of order statistics from a sample from a continuous univariate distribution.

    JointOrderStatistics(
    +    dist::ContinuousUnivariateDistribution,
    +    n::Int,
    +    ranks=Base.OneTo(n);
    +    check_args::Bool=true,
    +)

    Construct the joint distribution of order statistics for the specified ranks from an IID sample of size n from dist.

    The $i$th order statistic of a sample is the $i$th element of the sorted sample. For example, the 1st order statistic is the sample minimum, while the $n$th order statistic is the sample maximum.

    ranks must be a sorted vector or tuple of unique Ints between 1 and n.

    For a single order statistic, use OrderStatistic instead.

    Examples

    JointOrderStatistics(Normal(), 10)           # Product(fill(Normal(), 10)) restricted to ordered vectors
    +JointOrderStatistics(Cauchy(), 10, 2:9)      # joint distribution of all but the extrema
    +JointOrderStatistics(Cauchy(), 10, (1, 10))  # joint distribution of only the extrema
    source
    diff --git a/previews/PR1837/reshape/index.html b/previews/PR1837/reshape/index.html new file mode 100644 index 0000000000..969f213a0f --- /dev/null +++ b/previews/PR1837/reshape/index.html @@ -0,0 +1,3 @@ + +Reshaping distributions · Distributions.jl

    Reshaping distributions

    Distributions of array variates such as MultivariateDistributions and MatrixDistributions can be reshaped.

    Base.reshapeFunction
    reshape(d::Distribution{<:ArrayLikeVariate}, dims::Int...)
    +reshape(d::Distribution{<:ArrayLikeVariate}, dims::Dims)

    Return a Distribution of reshape(X, dims) where X is a random variable with distribution d.

    The default implementation returns a ReshapedDistribution. However, it can return more optimized distributions for specific types of distributions and numbers of dimensions. Therefore it is recommended to use reshape instead of the constructor of ReshapedDistribution.

    Implementation

    Since reshape(d, dims::Int...) calls reshape(d, dims::Dims), one should implement reshape(d, ::Dims) for desired distributions d.

    See also: vec

    source
    Base.vecFunction
    vec(d::Distribution{<:ArrayLikeVariate})

    Return a MultivariateDistribution of vec(X) where X is a random variable with distribution d.

    The default implementation returns a ReshapedDistribution. However, it can return more optimized distributions for specific types of distributions and numbers of dimensions. Therefore it is recommended to use vec instead of the constructor of ReshapedDistribution.

    Implementation

    Since vec(d) is defined as reshape(d, length(d)) one should implement reshape(d, ::Tuple{Int}) rather than vec.

    See also: reshape

    source
    diff --git a/previews/PR1837/search/index.html b/previews/PR1837/search/index.html new file mode 100644 index 0000000000..a07b835097 --- /dev/null +++ b/previews/PR1837/search/index.html @@ -0,0 +1,2 @@ + +Search · Distributions.jl diff --git a/previews/PR1837/search_index.js b/previews/PR1837/search_index.js new file mode 100644 index 0000000000..e96eb3ec55 --- /dev/null +++ b/previews/PR1837/search_index.js @@ -0,0 +1,3 @@ +var documenterSearchIndex = {"docs": +[{"location":"censored/#Censored-Distributions","page":"Censored Distributions","title":"Censored Distributions","text":"","category":"section"},{"location":"censored/","page":"Censored Distributions","title":"Censored Distributions","text":"In censoring of data, values exceeding an upper limit (right censoring) or falling below a lower limit (left censoring), or both (interval censoring) are replaced by the corresponding limit itself. The package provides the censored function, which creates the most appropriate distribution to represent a censored version of a given distribution.","category":"page"},{"location":"censored/","page":"Censored Distributions","title":"Censored Distributions","text":"A censored distribution can be constructed using the following signature:","category":"page"},{"location":"censored/","page":"Censored Distributions","title":"Censored Distributions","text":"censored","category":"page"},{"location":"censored/#Distributions.censored","page":"Censored Distributions","title":"Distributions.censored","text":"censored(d0::UnivariateDistribution; [lower::Real], [upper::Real])\ncensored(d0::UnivariateDistribution, lower::Real, upper::Real)\n\nA censored distribution d of a distribution d0 to the interval l u=[lower, upper] has the probability density (mass) function:\n\nf(x d_0 l u) = begincases\n P_Z sim d_0(Z le l) x = l \n f_d_0(x) l x u \n P_Z sim d_0(Z ge u) x = u \n endcases quad x in l u\n\nwhere f_d_0(x) is the probability density (mass) function of d_0.\n\nIf Z sim d_0, and X = clamp(Z, l, u), then X sim d. Note that this implies that even if d_0 is continuous, its censored form assigns positive probability to the bounds l and u. Therefore, a censored continuous distribution has atoms and is a mixture of discrete and continuous components.\n\nThe function falls back to constructing a Distributions.Censored wrapper.\n\nUsage\n\ncensored(d0; lower=l) # d0 left-censored to the interval [l, Inf)\ncensored(d0; upper=u) # d0 right-censored to the interval (-Inf, u]\ncensored(d0; lower=l, upper=u) # d0 interval-censored to the interval [l, u]\ncensored(d0, l, u) # d0 interval-censored to the interval [l, u]\n\nImplementation\n\nTo implement a specialized censored form for distributions of type D, instead of overloading a method with one of the above signatures, one or more of the following methods should be implemented:\n\ncensored(d0::D, l::T, u::T) where {T <: Real}\ncensored(d0::D, ::Nothing, u::Real)\ncensored(d0::D, l::Real, ::Nothing)\n\n\n\n\n\n","category":"function"},{"location":"censored/","page":"Censored Distributions","title":"Censored Distributions","text":"In the general case, this will create a Distributions.Censored{typeof(d0)} structure, defined as follows:","category":"page"},{"location":"censored/","page":"Censored Distributions","title":"Censored Distributions","text":"Distributions.Censored","category":"page"},{"location":"censored/#Distributions.Censored","page":"Censored Distributions","title":"Distributions.Censored","text":"Censored\n\nGeneric wrapper for a censored distribution.\n\n\n\n\n\n","category":"type"},{"location":"censored/","page":"Censored Distributions","title":"Censored Distributions","text":"In general, censored should be called instead of the constructor of Censored, which is not exported.","category":"page"},{"location":"censored/","page":"Censored Distributions","title":"Censored Distributions","text":"Many functions, including those for the evaluation of pdf and sampling, are defined for all censored univariate distributions:","category":"page"},{"location":"censored/","page":"Censored Distributions","title":"Censored Distributions","text":"maximum(::UnivariateDistribution)\nminimum(::UnivariateDistribution)\ninsupport(::UnivariateDistribution, x::Any)\npdf(::UnivariateDistribution, ::Real)\nlogpdf(::UnivariateDistribution, ::Real)\ncdf(::UnivariateDistribution, ::Real)\nlogcdf(::UnivariateDistribution, ::Real)\nlogdiffcdf(::UnivariateDistribution, ::T, ::T) where {T <: Real}\nccdf(::UnivariateDistribution, ::Real)\nlogccdf(::UnivariateDistribution, ::Real)\nquantile(::UnivariateDistribution, ::Real)\ncquantile(::UnivariateDistribution, ::Real)\ninvlogcdf(::UnivariateDistribution, ::Real)\ninvlogccdf(::UnivariateDistribution, ::Real)\nmedian(::UnivariateDistribution)\nrand(::UnivariateDistribution)\nrand!(::UnivariateDistribution, ::AbstractArray)","category":"page"},{"location":"censored/","page":"Censored Distributions","title":"Censored Distributions","text":"Some functions to compute statistics are available for the censored distribution if they are also available for its truncation:","category":"page"},{"location":"censored/","page":"Censored Distributions","title":"Censored Distributions","text":"mean(::UnivariateDistribution)\nvar(::UnivariateDistribution)\nstd(::UnivariateDistribution)\nentropy(::UnivariateDistribution)","category":"page"},{"location":"censored/","page":"Censored Distributions","title":"Censored Distributions","text":"For example, these functions are available for the following uncensored distributions:","category":"page"},{"location":"censored/","page":"Censored Distributions","title":"Censored Distributions","text":"DiscreteUniform\nExponential\nLogUniform\nNormal\nUniform","category":"page"},{"location":"censored/","page":"Censored Distributions","title":"Censored Distributions","text":"mode is not implemented for censored distributions.","category":"page"},{"location":"univariate/#univariates","page":"Univariate Distributions","title":"Univariate Distributions","text":"","category":"section"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"Univariate distributions are the distributions whose variate forms are Univariate (i.e each sample is a scalar). Abstract types for univariate distributions:","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"const UnivariateDistribution{S<:ValueSupport} = Distribution{Univariate,S}\n\nconst DiscreteUnivariateDistribution = Distribution{Univariate, Discrete}\nconst ContinuousUnivariateDistribution = Distribution{Univariate, Continuous}","category":"page"},{"location":"univariate/#Common-Interface","page":"Univariate Distributions","title":"Common Interface","text":"","category":"section"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"A series of methods is implemented for each univariate distribution, which provides useful functionalities such as moment computation, pdf evaluation, and sampling (i.e. random number generation).","category":"page"},{"location":"univariate/#Parameter-Retrieval","page":"Univariate Distributions","title":"Parameter Retrieval","text":"","category":"section"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"Note: params are defined for all univariate distributions, while other parameter retrieval methods are only defined for those distributions for which these parameters make sense. See below for details.","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"params(::UnivariateDistribution)\nscale(::UnivariateDistribution)\nlocation(::UnivariateDistribution)\nshape(::UnivariateDistribution)\nrate(::UnivariateDistribution)\nncategories(::UnivariateDistribution)\nntrials(::UnivariateDistribution)\ndof(::UnivariateDistribution)","category":"page"},{"location":"univariate/#StatsAPI.params-Tuple{UnivariateDistribution}","page":"Univariate Distributions","title":"StatsAPI.params","text":"params(d::UnivariateDistribution)\n\nReturn a tuple of parameters. Let d be a distribution of type D, then D(params(d)...) will construct exactly the same distribution as d.\n\n\n\n\n\n","category":"method"},{"location":"univariate/#Distributions.scale-Tuple{UnivariateDistribution}","page":"Univariate Distributions","title":"Distributions.scale","text":"scale(d::UnivariateDistribution)\n\nGet the scale parameter.\n\n\n\n\n\n","category":"method"},{"location":"univariate/#Distributions.location-Tuple{UnivariateDistribution}","page":"Univariate Distributions","title":"Distributions.location","text":"location(d::UnivariateDistribution)\n\nGet the location parameter.\n\n\n\n\n\n","category":"method"},{"location":"univariate/#Distributions.shape-Tuple{UnivariateDistribution}","page":"Univariate Distributions","title":"Distributions.shape","text":"shape(d::UnivariateDistribution)\n\nGet the shape parameter.\n\n\n\n\n\n","category":"method"},{"location":"univariate/#Distributions.rate-Tuple{UnivariateDistribution}","page":"Univariate Distributions","title":"Distributions.rate","text":"rate(d::UnivariateDistribution)\n\nGet the rate parameter.\n\n\n\n\n\n","category":"method"},{"location":"univariate/#Distributions.ncategories-Tuple{UnivariateDistribution}","page":"Univariate Distributions","title":"Distributions.ncategories","text":"ncategories(d::UnivariateDistribution)\n\nGet the number of categories.\n\n\n\n\n\n","category":"method"},{"location":"univariate/#Distributions.ntrials-Tuple{UnivariateDistribution}","page":"Univariate Distributions","title":"Distributions.ntrials","text":"ntrials(d::UnivariateDistribution)\n\nGet the number of trials.\n\n\n\n\n\n","category":"method"},{"location":"univariate/#StatsAPI.dof-Tuple{UnivariateDistribution}","page":"Univariate Distributions","title":"StatsAPI.dof","text":"dof(d::UnivariateDistribution)\n\nGet the degrees of freedom.\n\n\n\n\n\n","category":"method"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"For distributions for which success and failure have a meaning, the following methods are defined:","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"succprob(::DiscreteUnivariateDistribution)\nfailprob(::DiscreteUnivariateDistribution)","category":"page"},{"location":"univariate/#Distributions.succprob-Tuple{Distribution{Univariate, Discrete}}","page":"Univariate Distributions","title":"Distributions.succprob","text":"succprob(d::DiscreteUnivariateDistribution)\n\nGet the probability of success.\n\n\n\n\n\n","category":"method"},{"location":"univariate/#Distributions.failprob-Tuple{Distribution{Univariate, Discrete}}","page":"Univariate Distributions","title":"Distributions.failprob","text":"failprob(d::DiscreteUnivariateDistribution)\n\nGet the probability of failure.\n\n\n\n\n\n","category":"method"},{"location":"univariate/#Computation-of-statistics","page":"Univariate Distributions","title":"Computation of statistics","text":"","category":"section"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"maximum(::UnivariateDistribution)\nminimum(::UnivariateDistribution)\nextrema(::UnivariateDistribution)\nmean(::UnivariateDistribution)\nvar(::UnivariateDistribution)\nstd(::UnivariateDistribution)\nmedian(::UnivariateDistribution)\nmodes(::UnivariateDistribution)\nmode(::UnivariateDistribution)\nskewness(::UnivariateDistribution)\nkurtosis(::UnivariateDistribution)\nkurtosis(::Distribution, ::Bool)\nisplatykurtic(::UnivariateDistribution)\nisleptokurtic(::UnivariateDistribution)\nismesokurtic(::UnivariateDistribution)\nentropy(::UnivariateDistribution)\nentropy(::UnivariateDistribution, ::Bool)\nentropy(::UnivariateDistribution, ::Real)\nmgf(::UnivariateDistribution, ::Any)\ncgf(::UnivariateDistribution, ::Any)\ncf(::UnivariateDistribution, ::Any)\npdfsquaredL2norm","category":"page"},{"location":"univariate/#Base.maximum-Tuple{UnivariateDistribution}","page":"Univariate Distributions","title":"Base.maximum","text":"maximum(d::Distribution)\n\nReturn the maximum of the support of d.\n\n\n\n\n\n","category":"method"},{"location":"univariate/#Base.minimum-Tuple{UnivariateDistribution}","page":"Univariate Distributions","title":"Base.minimum","text":"minimum(d::Distribution)\n\nReturn the minimum of the support of d.\n\n\n\n\n\n","category":"method"},{"location":"univariate/#Base.extrema-Tuple{UnivariateDistribution}","page":"Univariate Distributions","title":"Base.extrema","text":"extrema(d::Distribution)\n\nReturn the minimum and maximum of the support of d as a 2-tuple.\n\n\n\n\n\n","category":"method"},{"location":"univariate/#Statistics.mean-Tuple{UnivariateDistribution}","page":"Univariate Distributions","title":"Statistics.mean","text":"mean(d::UnivariateDistribution)\n\nCompute the expectation.\n\n\n\n\n\n","category":"method"},{"location":"univariate/#Statistics.var-Tuple{UnivariateDistribution}","page":"Univariate Distributions","title":"Statistics.var","text":"var(d::UnivariateDistribution)\n\nCompute the variance. (A generic std is provided as std(d) = sqrt(var(d)))\n\n\n\n\n\n","category":"method"},{"location":"univariate/#Statistics.std-Tuple{UnivariateDistribution}","page":"Univariate Distributions","title":"Statistics.std","text":"std(d::UnivariateDistribution)\n\nReturn the standard deviation of distribution d, i.e. sqrt(var(d)).\n\n\n\n\n\n","category":"method"},{"location":"univariate/#Statistics.median-Tuple{UnivariateDistribution}","page":"Univariate Distributions","title":"Statistics.median","text":"median(d::UnivariateDistribution)\n\nReturn the median value of distribution d. The median is the smallest x in the support of d for which cdf(d, x) ≥ 1/2. Corresponding to this definition as 1/2-quantile, a fallback is provided calling the quantile function.\n\n\n\n\n\n","category":"method"},{"location":"univariate/#StatsBase.modes-Tuple{UnivariateDistribution}","page":"Univariate Distributions","title":"StatsBase.modes","text":"modes(d::UnivariateDistribution)\n\nGet all modes (if this makes sense).\n\n\n\n\n\n","category":"method"},{"location":"univariate/#StatsBase.mode-Tuple{UnivariateDistribution}","page":"Univariate Distributions","title":"StatsBase.mode","text":"mode(d::UnivariateDistribution)\n\nReturns the first mode.\n\n\n\n\n\n","category":"method"},{"location":"univariate/#StatsBase.skewness-Tuple{UnivariateDistribution}","page":"Univariate Distributions","title":"StatsBase.skewness","text":"skewness(d::UnivariateDistribution)\n\nCompute the skewness.\n\n\n\n\n\n","category":"method"},{"location":"univariate/#StatsBase.kurtosis-Tuple{UnivariateDistribution}","page":"Univariate Distributions","title":"StatsBase.kurtosis","text":"kurtosis(d::UnivariateDistribution)\n\nCompute the excessive kurtosis.\n\n\n\n\n\n","category":"method"},{"location":"univariate/#StatsBase.kurtosis-Tuple{Distribution, Bool}","page":"Univariate Distributions","title":"StatsBase.kurtosis","text":"kurtosis(d::Distribution, correction::Bool)\n\nComputes excess kurtosis by default. Proper kurtosis can be returned with correction=false\n\n\n\n\n\n","category":"method"},{"location":"univariate/#Distributions.isplatykurtic-Tuple{UnivariateDistribution}","page":"Univariate Distributions","title":"Distributions.isplatykurtic","text":"isplatykurtic(d)\n\nReturn whether d is platykurtic (i.e kurtosis(d) < 0).\n\n\n\n\n\n","category":"method"},{"location":"univariate/#Distributions.isleptokurtic-Tuple{UnivariateDistribution}","page":"Univariate Distributions","title":"Distributions.isleptokurtic","text":"isleptokurtic(d)\n\nReturn whether d is leptokurtic (i.e kurtosis(d) > 0).\n\n\n\n\n\n","category":"method"},{"location":"univariate/#Distributions.ismesokurtic-Tuple{UnivariateDistribution}","page":"Univariate Distributions","title":"Distributions.ismesokurtic","text":"ismesokurtic(d)\n\nReturn whether d is mesokurtic (i.e kurtosis(d) == 0).\n\n\n\n\n\n","category":"method"},{"location":"univariate/#StatsBase.entropy-Tuple{UnivariateDistribution}","page":"Univariate Distributions","title":"StatsBase.entropy","text":"entropy(d::UnivariateDistribution)\n\nCompute the entropy value of distribution d.\n\n\n\n\n\n","category":"method"},{"location":"univariate/#StatsBase.entropy-Tuple{UnivariateDistribution, Bool}","page":"Univariate Distributions","title":"StatsBase.entropy","text":"entropy(d::UnivariateDistribution, b::Real)\n\nCompute the entropy value of distribution d, w.r.t. a given base.\n\n\n\n\n\n","category":"method"},{"location":"univariate/#StatsBase.entropy-Tuple{UnivariateDistribution, Real}","page":"Univariate Distributions","title":"StatsBase.entropy","text":"entropy(d::UnivariateDistribution, b::Real)\n\nCompute the entropy value of distribution d, w.r.t. a given base.\n\n\n\n\n\n","category":"method"},{"location":"univariate/#Distributions.mgf-Tuple{UnivariateDistribution, Any}","page":"Univariate Distributions","title":"Distributions.mgf","text":"mgf(d::UnivariateDistribution, t)\n\nEvaluate the moment-generating function of distribution d at t.\n\nSee also cgf\n\n\n\n\n\n","category":"method"},{"location":"univariate/#Distributions.cgf-Tuple{UnivariateDistribution, Any}","page":"Univariate Distributions","title":"Distributions.cgf","text":"cgf(d::UnivariateDistribution, t)\n\nEvaluate the cumulant-generating function of distribution d at t.\n\nThe cumulant-generating-function is the logarithm of the moment-generating function: cgf = log ∘ mgf. In practice, however, the right hand side may have overflow issues.\n\nSee also mgf\n\n\n\n\n\n","category":"method"},{"location":"univariate/#Distributions.cf-Tuple{UnivariateDistribution, Any}","page":"Univariate Distributions","title":"Distributions.cf","text":"cf(d::UnivariateDistribution, t)\n\nEvaluate the characteristic function of distribution d.\n\n\n\n\n\n","category":"method"},{"location":"univariate/#Distributions.pdfsquaredL2norm","page":"Univariate Distributions","title":"Distributions.pdfsquaredL2norm","text":"pdfsquaredL2norm(d::Distribution)\n\nReturn the square of the L2 norm of the probability density function f(x) of the distribution d:\n\nint_S f(x)^2 mathrmd x\n\nwhere S is the support of f(x).\n\n\n\n\n\n","category":"function"},{"location":"univariate/#Probability-Evaluation","page":"Univariate Distributions","title":"Probability Evaluation","text":"","category":"section"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"insupport(::UnivariateDistribution, x::Any)\npdf(::UnivariateDistribution, ::Real)\nlogpdf(::UnivariateDistribution, ::Real)\nloglikelihood(::UnivariateDistribution, ::AbstractArray)\ncdf(::UnivariateDistribution, ::Real)\nlogcdf(::UnivariateDistribution, ::Real)\nlogdiffcdf(::UnivariateDistribution, ::Real, ::Real)\nccdf(::UnivariateDistribution, ::Real)\nlogccdf(::UnivariateDistribution, ::Real)\nquantile(::UnivariateDistribution, ::Real)\ncquantile(::UnivariateDistribution, ::Real)\ninvlogcdf(::UnivariateDistribution, ::Real)\ninvlogccdf(::UnivariateDistribution, ::Real)","category":"page"},{"location":"univariate/#Distributions.insupport-Tuple{UnivariateDistribution, Any}","page":"Univariate Distributions","title":"Distributions.insupport","text":"insupport(d::UnivariateDistribution, x::Any)\n\nWhen x is a scalar, it returns whether x is within the support of d (e.g., insupport(d, x) = minimum(d) <= x <= maximum(d)). When x is an array, it returns whether every element in x is within the support of d.\n\nGeneric fallback methods are provided, but it is often the case that insupport can be done more efficiently, and a specialized insupport is thus desirable. You should also override this function if the support is composed of multiple disjoint intervals.\n\n\n\n\n\n","category":"method"},{"location":"univariate/#Distributions.pdf-Tuple{UnivariateDistribution, Real}","page":"Univariate Distributions","title":"Distributions.pdf","text":"pdf(d::UnivariateDistribution, x::Real)\n\nEvaluate the probability density (mass) at x.\n\nSee also: logpdf.\n\n\n\n\n\n","category":"method"},{"location":"univariate/#Distributions.logpdf-Tuple{UnivariateDistribution, Real}","page":"Univariate Distributions","title":"Distributions.logpdf","text":"logpdf(d::UnivariateDistribution, x::Real)\n\nEvaluate the logarithm of probability density (mass) at x.\n\nSee also: pdf.\n\n\n\n\n\n","category":"method"},{"location":"univariate/#Distributions.cdf-Tuple{UnivariateDistribution, Real}","page":"Univariate Distributions","title":"Distributions.cdf","text":"cdf(d::UnivariateDistribution, x::Real)\n\nEvaluate the cumulative probability at x.\n\nSee also ccdf, logcdf, and logccdf.\n\n\n\n\n\n","category":"method"},{"location":"univariate/#Distributions.logcdf-Tuple{UnivariateDistribution, Real}","page":"Univariate Distributions","title":"Distributions.logcdf","text":"logcdf(d::UnivariateDistribution, x::Real)\n\nThe logarithm of the cumulative function value(s) evaluated at x, i.e. log(cdf(x)).\n\n\n\n\n\n","category":"method"},{"location":"univariate/#Distributions.logdiffcdf-Tuple{UnivariateDistribution, Real, Real}","page":"Univariate Distributions","title":"Distributions.logdiffcdf","text":"logdiffcdf(d::UnivariateDistribution, x::Real, y::Real)\n\nThe natural logarithm of the difference between the cumulative density function at x and y, i.e. log(cdf(x) - cdf(y)).\n\n\n\n\n\n","category":"method"},{"location":"univariate/#Distributions.ccdf-Tuple{UnivariateDistribution, Real}","page":"Univariate Distributions","title":"Distributions.ccdf","text":"ccdf(d::UnivariateDistribution, x::Real)\n\nThe complementary cumulative function evaluated at x, i.e. 1 - cdf(d, x).\n\n\n\n\n\n","category":"method"},{"location":"univariate/#Distributions.logccdf-Tuple{UnivariateDistribution, Real}","page":"Univariate Distributions","title":"Distributions.logccdf","text":"logccdf(d::UnivariateDistribution, x::Real)\n\nThe logarithm of the complementary cumulative function values evaluated at x, i.e. log(ccdf(x)).\n\n\n\n\n\n","category":"method"},{"location":"univariate/#Statistics.quantile-Tuple{UnivariateDistribution, Real}","page":"Univariate Distributions","title":"Statistics.quantile","text":"quantile(d::UnivariateDistribution, q::Real)\n\nEvaluate the (generalized) inverse cumulative distribution function at q.\n\nFor a given 0 ≤ q ≤ 1, quantile(d, q) is the smallest value x in the support of d for which cdf(d, x) ≥ q.\n\nSee also: cquantile, invlogcdf, and invlogccdf.\n\n\n\n\n\n","category":"method"},{"location":"univariate/#Distributions.cquantile-Tuple{UnivariateDistribution, Real}","page":"Univariate Distributions","title":"Distributions.cquantile","text":"cquantile(d::UnivariateDistribution, q::Real)\n\nThe complementary quantile value, i.e. quantile(d, 1-q).\n\n\n\n\n\n","category":"method"},{"location":"univariate/#Distributions.invlogcdf-Tuple{UnivariateDistribution, Real}","page":"Univariate Distributions","title":"Distributions.invlogcdf","text":"invlogcdf(d::UnivariateDistribution, lp::Real)\n\nThe (generalized) inverse function of logcdf.\n\nFor a given lp ≤ 0, invlogcdf(d, lp) is the smallest value x in the support of d for which logcdf(d, x) ≥ lp.\n\n\n\n\n\n","category":"method"},{"location":"univariate/#Distributions.invlogccdf-Tuple{UnivariateDistribution, Real}","page":"Univariate Distributions","title":"Distributions.invlogccdf","text":"invlogccdf(d::UnivariateDistribution, lp::Real)\n\nThe (generalized) inverse function of logccdf.\n\nFor a given lp ≤ 0, invlogccdf(d, lp) is the smallest value x in the support of d for which logccdf(d, x) ≤ lp.\n\n\n\n\n\n","category":"method"},{"location":"univariate/#Sampling-(Random-number-generation)","page":"Univariate Distributions","title":"Sampling (Random number generation)","text":"","category":"section"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"rand(::AbstractRNG, ::UnivariateDistribution)\nrand!(::AbstractRNG, ::UnivariateDistribution, ::AbstractArray)","category":"page"},{"location":"univariate/#Base.rand-Tuple{AbstractRNG, UnivariateDistribution}","page":"Univariate Distributions","title":"Base.rand","text":"rand(rng::AbstractRNG, d::UnivariateDistribution)\n\nGenerate a scalar sample from d. The general fallback is quantile(d, rand()).\n\n\n\n\n\n","category":"method"},{"location":"univariate/#Random.rand!-Tuple{AbstractRNG, UnivariateDistribution, AbstractArray}","page":"Univariate Distributions","title":"Random.rand!","text":"rand!(::AbstractRNG, ::Sampleable, ::AbstractArray)\n\nSamples in-place from the sampler and stores the result in the provided array.\n\n\n\n\n\n","category":"method"},{"location":"univariate/#Continuous-Distributions","page":"Univariate Distributions","title":"Continuous Distributions","text":"","category":"section"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"using Distributions, GR\n\n# display figures as SVGs\nGR.inline(\"svg\")\n\n# plot probability density of continuous distributions\nfunction plotdensity(\n (xmin, xmax),\n dist::ContinuousUnivariateDistribution;\n npoints=299,\n title=\"\",\n kwargs...,\n)\n figure(;\n title=title,\n xlabel=\"x\",\n ylabel=\"density\",\n grid=false,\n backgroundcolor=0, # white instead of transparent background for dark Documenter scheme\n font=\"Helvetica_Regular\", # work around https://github.com/JuliaPlots/Plots.jl/issues/2596\n linewidth=2.0, # thick lines\n kwargs...,\n )\n return plot(range(xmin, xmax; length=npoints), Base.Fix1(pdf, dist))\nend\n\n# convenience function with automatic title\nfunction plotdensity(\n xmin_xmax,\n ::Type{T},\n args=();\n title=string(T) * \"(\" * join(args, \", \") * \")\",\n kwargs...\n) where {T<:ContinuousUnivariateDistribution}\n return plotdensity(xmin_xmax, T(args...); title=title, kwargs...)\nend","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"Arcsine","category":"page"},{"location":"univariate/#Distributions.Arcsine","page":"Univariate Distributions","title":"Distributions.Arcsine","text":"Arcsine(a,b)\n\nThe Arcsine distribution has probability density function\n\nf(x) = frac1pi sqrt(x - a) (b - x) quad x in a b\n\nArcsine() # Arcsine distribution with support [0, 1]\nArcsine(b) # Arcsine distribution with support [0, b]\nArcsine(a, b) # Arcsine distribution with support [a, b]\n\nparams(d) # Get the parameters, i.e. (a, b)\nminimum(d) # Get the lower bound, i.e. a\nmaximum(d) # Get the upper bound, i.e. b\nlocation(d) # Get the left bound, i.e. a\nscale(d) # Get the span of the support, i.e. b - a\n\nExternal links\n\nArcsine distribution on Wikipedia\n\nUse Arcsine(a, b, check_args=false) to bypass argument checks.\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"plotdensity((0.001, 0.999), Arcsine, (0, 1)) # hide","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"Beta","category":"page"},{"location":"univariate/#Distributions.Beta","page":"Univariate Distributions","title":"Distributions.Beta","text":"Beta(α, β)\n\nThe Beta distribution has probability density function\n\nf(x alpha beta) = frac1B(alpha beta)\n x^alpha - 1 (1 - x)^beta - 1 quad x in 0 1\n\nThe Beta distribution is related to the Gamma distribution via the property that if X sim operatornameGamma(alpha) and Y sim operatornameGamma(beta) independently, then X (X + Y) sim operatornameBeta(alpha beta).\n\nBeta() # equivalent to Beta(1, 1)\nBeta(α) # equivalent to Beta(α, α)\nBeta(α, β) # Beta distribution with shape parameters α and β\n\nparams(d) # Get the parameters, i.e. (α, β)\n\nExternal links\n\nBeta distribution on Wikipedia\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"plotdensity((0, 1), Beta, (2, 2)) # hide","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"BetaPrime","category":"page"},{"location":"univariate/#Distributions.BetaPrime","page":"Univariate Distributions","title":"Distributions.BetaPrime","text":"BetaPrime(α, β)\n\nThe Beta prime distribution has probability density function\n\nf(x alpha beta) = frac1B(alpha beta)\nx^alpha - 1 (1 + x)^- (alpha + beta) quad x 0\n\nThe Beta prime distribution is related to the Beta distribution via the relationship that if X sim operatornameBeta(alpha beta) then fracX1 - X sim operatornameBetaPrime(alpha beta)\n\nBetaPrime() # equivalent to BetaPrime(1, 1)\nBetaPrime(α) # equivalent to BetaPrime(α, α)\nBetaPrime(α, β) # Beta prime distribution with shape parameters α and β\n\nparams(d) # Get the parameters, i.e. (α, β)\n\nExternal links\n\nBeta prime distribution on Wikipedia\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"plotdensity((0, 1), BetaPrime, (1, 2)) # hide","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"Biweight","category":"page"},{"location":"univariate/#Distributions.Biweight","page":"Univariate Distributions","title":"Distributions.Biweight","text":"Biweight(μ, σ)\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"plotdensity((-1, 3), Biweight, (1, 2)) # hide","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"Cauchy","category":"page"},{"location":"univariate/#Distributions.Cauchy","page":"Univariate Distributions","title":"Distributions.Cauchy","text":"Cauchy(μ, σ)\n\nThe Cauchy distribution with location μ and scale σ has probability density function\n\nf(x mu sigma) = frac1pi sigma left(1 + left(fracx - musigma right)^2 right)\n\nCauchy() # Standard Cauchy distribution, i.e. Cauchy(0, 1)\nCauchy(μ) # Cauchy distribution with location μ and unit scale, i.e. Cauchy(μ, 1)\nCauchy(μ, σ) # Cauchy distribution with location μ and scale σ\n\nparams(d) # Get the parameters, i.e. (μ, σ)\nlocation(d) # Get the location parameter, i.e. μ\nscale(d) # Get the scale parameter, i.e. σ\n\nExternal links\n\nCauchy distribution on Wikipedia\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"plotdensity((-12, 5), Cauchy, (-2, 1)) # hide","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"Chernoff","category":"page"},{"location":"univariate/#Distributions.Chernoff","page":"Univariate Distributions","title":"Distributions.Chernoff","text":"Chernoff()\n\nThe Chernoff distribution is the distribution of the random variable\n\nundersett in (-inftyinfty)argmax ( G(t) - t^2 )\n\nwhere G is standard two-sided Brownian motion.\n\nThe distribution arises as the limit distribution of various cube-root-n consistent estimators, including the isotonic regression estimator of Brunk, the isotonic density estimator of Grenander, the least median of squares estimator of Rousseeuw, and the maximum score estimator of Manski.\n\nFor theoretical results, see e.g. Kim and Pollard, Annals of Statistics, 1990. The code for the computation of pdf and cdf is based on the algorithm described in Groeneboom and Wellner, Journal of Computational and Graphical Statistics, 2001.\n\ncdf(Chernoff(),-x) # For tail probabilities, use this instead of 1-cdf(Chernoff(),x)\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"plotdensity((-3, 3), Chernoff) # hide","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"Chi","category":"page"},{"location":"univariate/#Distributions.Chi","page":"Univariate Distributions","title":"Distributions.Chi","text":"Chi(ν)\n\nThe Chi distribution ν degrees of freedom has probability density function\n\nf(x nu) = frac1Gamma(nu2) 2^1 - nu2 x^nu-1 e^-x^22 quad x 0\n\nIt is the distribution of the square-root of a Chisq variate.\n\nChi(ν) # Chi distribution with ν degrees of freedom\n\nparams(d) # Get the parameters, i.e. (ν,)\ndof(d) # Get the degrees of freedom, i.e. ν\n\nExternal links\n\nChi distribution on Wikipedia\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"plotdensity((0.001, 3), Chi, (1,)) # hide","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"Chisq","category":"page"},{"location":"univariate/#Distributions.Chisq","page":"Univariate Distributions","title":"Distributions.Chisq","text":"Chisq(ν)\n\nThe Chi squared distribution (typically written χ²) with ν degrees of freedom has the probability density function\n\nf(x nu) = fracx^nu2 - 1 e^-x22^nu2 Gamma(nu2) quad x 0\n\nIf ν is an integer, then it is the distribution of the sum of squares of ν independent standard Normal variates.\n\nChisq(ν) # Chi-squared distribution with ν degrees of freedom\n\nparams(d) # Get the parameters, i.e. (ν,)\ndof(d) # Get the degrees of freedom, i.e. ν\n\nExternal links\n\nChi-squared distribution on Wikipedia\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"plotdensity((0, 9), Chisq, (3,)) # hide","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"Cosine","category":"page"},{"location":"univariate/#Distributions.Cosine","page":"Univariate Distributions","title":"Distributions.Cosine","text":"Cosine(μ, σ)\n\nA raised Cosine distribution.\n\nExternal link:\n\nCosine distribution on wikipedia\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"plotdensity((-1, 1), Cosine, (0, 1)) # hide","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"Epanechnikov","category":"page"},{"location":"univariate/#Distributions.Epanechnikov","page":"Univariate Distributions","title":"Distributions.Epanechnikov","text":"Epanechnikov(μ, σ)\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"plotdensity((-1, 1), Epanechnikov, (0, 1)) # hide","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"Erlang","category":"page"},{"location":"univariate/#Distributions.Erlang","page":"Univariate Distributions","title":"Distributions.Erlang","text":"Erlang(α,θ)\n\nThe Erlang distribution is a special case of a Gamma distribution with integer shape parameter.\n\nErlang() # Erlang distribution with unit shape and unit scale, i.e. Erlang(1, 1)\nErlang(a) # Erlang distribution with shape parameter a and unit scale, i.e. Erlang(a, 1)\nErlang(a, s) # Erlang distribution with shape parameter a and scale s\n\nExternal links\n\nErlang distribution on Wikipedia\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"plotdensity((0, 8), Erlang, (7, 0.5)) # hide","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"Exponential","category":"page"},{"location":"univariate/#Distributions.Exponential","page":"Univariate Distributions","title":"Distributions.Exponential","text":"Exponential(θ)\n\nThe Exponential distribution with scale parameter θ has probability density function\n\nf(x theta) = frac1theta e^-fracxtheta quad x 0\n\nExponential() # Exponential distribution with unit scale, i.e. Exponential(1)\nExponential(θ) # Exponential distribution with scale θ\n\nparams(d) # Get the parameters, i.e. (θ,)\nscale(d) # Get the scale parameter, i.e. θ\nrate(d) # Get the rate parameter, i.e. 1 / θ\n\nExternal links\n\nExponential distribution on Wikipedia\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"plotdensity((0, 3.5), Exponential, (0.5,)) # hide","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"FDist","category":"page"},{"location":"univariate/#Distributions.FDist","page":"Univariate Distributions","title":"Distributions.FDist","text":"FDist(ν1, ν2)\n\nThe F distribution has probability density function\n\nf(x nu_1 nu_2) = frac1x B(nu_12 nu_22)\nsqrtfrac(nu_1 x)^nu_1 cdot nu_2^nu_2(nu_1 x + nu_2)^nu_1 + nu_2 quad x0\n\nIt is related to the Chisq distribution via the property that if X_1 sim operatornameChisq(nu_1) and X_2 sim operatornameChisq(nu_2), then (X_1nu_1) (X_2 nu_2) sim operatornameFDist(nu_1 nu_2).\n\nFDist(ν1, ν2) # F-Distribution with parameters ν1 and ν2\n\nparams(d) # Get the parameters, i.e. (ν1, ν2)\n\nExternal links\n\nF distribution on Wikipedia\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"plotdensity((0, 10), FDist, (10, 1)) # hide","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"Frechet","category":"page"},{"location":"univariate/#Distributions.Frechet","page":"Univariate Distributions","title":"Distributions.Frechet","text":"Frechet(α,θ)\n\nThe Fréchet distribution with shape α and scale θ has probability density function\n\nf(x alpha theta) = fracalphatheta left( fracxtheta right)^-alpha-1\ne^-(xtheta)^-alpha quad x 0\n\nFrechet() # Fréchet distribution with unit shape and unit scale, i.e. Frechet(1, 1)\nFrechet(α) # Fréchet distribution with shape α and unit scale, i.e. Frechet(α, 1)\nFrechet(α, θ) # Fréchet distribution with shape α and scale θ\n\nparams(d) # Get the parameters, i.e. (α, θ)\nshape(d) # Get the shape parameter, i.e. α\nscale(d) # Get the scale parameter, i.e. θ\n\nExternal links\n\nFréchet_distribution on Wikipedia\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"plotdensity((0, 20), Frechet, (1, 1)) # hide","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"Gamma","category":"page"},{"location":"univariate/#Distributions.Gamma","page":"Univariate Distributions","title":"Distributions.Gamma","text":"Gamma(α,θ)\n\nThe Gamma distribution with shape parameter α and scale θ has probability density function\n\nf(x alpha theta) = fracx^alpha-1 e^-xthetaGamma(alpha) theta^alpha\nquad x 0\n\nGamma() # Gamma distribution with unit shape and unit scale, i.e. Gamma(1, 1)\nGamma(α) # Gamma distribution with shape α and unit scale, i.e. Gamma(α, 1)\nGamma(α, θ) # Gamma distribution with shape α and scale θ\n\nparams(d) # Get the parameters, i.e. (α, θ)\nshape(d) # Get the shape parameter, i.e. α\nscale(d) # Get the scale parameter, i.e. θ\n\nExternal links\n\nGamma distribution on Wikipedia\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"plotdensity((0, 18), Gamma, (7.5, 1)) # hide","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"GeneralizedExtremeValue","category":"page"},{"location":"univariate/#Distributions.GeneralizedExtremeValue","page":"Univariate Distributions","title":"Distributions.GeneralizedExtremeValue","text":"GeneralizedExtremeValue(μ, σ, ξ)\n\nThe Generalized extreme value distribution with shape parameter ξ, scale σ and location μ has probability density function\n\nf(x xi sigma mu) = begincases\n frac1sigma left 1+left(fracx-musigmaright)xiright^-1xi-1 expleft-left 1+ left(fracx-musigmaright)xiright^-1xi right textfor xi neq 0 \n frac1sigma expleft-fracx-musigmaright expleft-expleft-fracx-musigmarightright textfor xi = 0 \n endcases\n\nfor\n\nx in begincases\n left mu - fracsigmaxi + infty right) textfor xi 0 \n left( - infty + infty right) textfor xi = 0 \n left( - infty mu - fracsigmaxi right textfor xi 0\n endcases\n\nGeneralizedExtremeValue(μ, σ, ξ) # Generalized Pareto distribution with shape ξ, scale σ and location μ.\n\nparams(d) # Get the parameters, i.e. (μ, σ, ξ)\nlocation(d) # Get the location parameter, i.e. μ\nscale(d) # Get the scale parameter, i.e. σ\nshape(d) # Get the shape parameter, i.e. ξ (sometimes called c)\n\nExternal links\n\nGeneralized extreme value distribution on Wikipedia\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"plotdensity((0, 30), GeneralizedExtremeValue, (0, 1, 1)) # hide","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"GeneralizedPareto","category":"page"},{"location":"univariate/#Distributions.GeneralizedPareto","page":"Univariate Distributions","title":"Distributions.GeneralizedPareto","text":"GeneralizedPareto(μ, σ, ξ)\n\nThe Generalized Pareto distribution (GPD) with shape parameter ξ, scale σ and location μ has probability density function\n\nf(x mu sigma xi) = begincases\n frac1sigma(1 + xi fracx - musigma )^-frac1xi - 1 textfor xi neq 0 \n frac1sigma e^-fracleft( x - mu right) sigma textfor xi = 0\n endcases\n quad x in begincases\n left mu infty right textfor xi geq 0 \n left mu mu - sigma xi right textfor xi 0\n endcases\n\nGeneralizedPareto() # GPD with unit shape and unit scale, i.e. GeneralizedPareto(0, 1, 1)\nGeneralizedPareto(ξ) # GPD with shape ξ and unit scale, i.e. GeneralizedPareto(0, 1, ξ)\nGeneralizedPareto(σ, ξ) # GPD with shape ξ and scale σ, i.e. GeneralizedPareto(0, σ, ξ)\nGeneralizedPareto(μ, σ, ξ) # GPD with shape ξ, scale σ and location μ.\n\nparams(d) # Get the parameters, i.e. (μ, σ, ξ)\nlocation(d) # Get the location parameter, i.e. μ\nscale(d) # Get the scale parameter, i.e. σ\nshape(d) # Get the shape parameter, i.e. ξ\n\nExternal links\n\nGeneralized Pareto distribution on Wikipedia\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"plotdensity((0, 20), GeneralizedPareto, (0, 1, 1)) # hide","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"Gumbel","category":"page"},{"location":"univariate/#Distributions.Gumbel","page":"Univariate Distributions","title":"Distributions.Gumbel","text":"Gumbel(μ, θ)\n\nThe Gumbel (maxima) distribution with location μ and scale θ has probability density function\n\nf(x mu theta) = frac1theta e^-(z + e^-z)\nquad text with z = fracx - mutheta\n\nGumbel() # Gumbel distribution with zero location and unit scale, i.e. Gumbel(0, 1)\nGumbel(μ) # Gumbel distribution with location μ and unit scale, i.e. Gumbel(μ, 1)\nGumbel(μ, θ) # Gumbel distribution with location μ and scale θ\n\nparams(d) # Get the parameters, i.e. (μ, θ)\nlocation(d) # Get the location parameter, i.e. μ\nscale(d) # Get the scale parameter, i.e. θ\n\nExternal links\n\nGumbel distribution on Wikipedia\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"plotdensity((-2, 5), Gumbel, (0, 1)) # hide","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"InverseGamma","category":"page"},{"location":"univariate/#Distributions.InverseGamma","page":"Univariate Distributions","title":"Distributions.InverseGamma","text":"InverseGamma(α, θ)\n\nThe inverse Gamma distribution with shape parameter α and scale θ has probability density function\n\nf(x alpha theta) = fractheta^alpha x^-(alpha + 1)Gamma(alpha)\ne^-fracthetax quad x 0\n\nIt is related to the Gamma distribution: if X sim operatornameGamma(alpha beta), then 1 X sim operatornameInverseGamma(alpha beta^-1).\n\nInverseGamma() # Inverse Gamma distribution with unit shape and unit scale, i.e. InverseGamma(1, 1)\nInverseGamma(α) # Inverse Gamma distribution with shape α and unit scale, i.e. InverseGamma(α, 1)\nInverseGamma(α, θ) # Inverse Gamma distribution with shape α and scale θ\n\nparams(d) # Get the parameters, i.e. (α, θ)\nshape(d) # Get the shape parameter, i.e. α\nscale(d) # Get the scale parameter, i.e. θ\n\nExternal links\n\nInverse gamma distribution on Wikipedia\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"plotdensity((0.001, 1), InverseGamma, (3, 0.5)) # hide","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"InverseGaussian","category":"page"},{"location":"univariate/#Distributions.InverseGaussian","page":"Univariate Distributions","title":"Distributions.InverseGaussian","text":"InverseGaussian(μ,λ)\n\nThe inverse Gaussian distribution with mean μ and shape λ has probability density function\n\nf(x mu lambda) = sqrtfraclambda2pi x^3\nexpleft(frac-lambda(x-mu)^22mu^2xright) quad x 0\n\nInverseGaussian() # Inverse Gaussian distribution with unit mean and unit shape, i.e. InverseGaussian(1, 1)\nInverseGaussian(μ), # Inverse Gaussian distribution with mean μ and unit shape, i.e. InverseGaussian(μ, 1)\nInverseGaussian(μ, λ) # Inverse Gaussian distribution with mean μ and shape λ\n\nparams(d) # Get the parameters, i.e. (μ, λ)\nmean(d) # Get the mean parameter, i.e. μ\nshape(d) # Get the shape parameter, i.e. λ\n\nExternal links\n\nInverse Gaussian distribution on Wikipedia\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"plotdensity((0, 5), InverseGaussian, (1, 1)) # hide","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"JohnsonSU","category":"page"},{"location":"univariate/#Distributions.JohnsonSU","page":"Univariate Distributions","title":"Distributions.JohnsonSU","text":"JohnsonSU(ξ, λ, γ, δ)\n\nThe Johnson's S_U-distribution with parameters ξ, λ, γ and δ is a transformation of the normal distribution:\n\nIf\n\nX = lambdasinhBigg( fracZ - gammadelta Bigg) + xi\n\nwhere Z sim mathcalN(01), then X sim operatornameJohnson(xi lambda gamma delta).\n\nJohnsonSU() # Equivalent to JohnsonSU(0, 1, 0, 1)\nJohnsonSU(ξ, λ, γ, δ) # JohnsonSU's S_U-distribution with parameters ξ, λ, γ and δ\n\nparams(d) # Get the parameters, i.e. (ξ, λ, γ, δ)\nshape(d) # Get the shape parameter, i.e. ξ\nscale(d) # Get the scale parameter, i.e. λ\n\nExternal links\n\nJohnson's S_U-distribution on Wikipedia\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"plotdensity((-20, 20), JohnsonSU, (0.0, 1.0, 0.0, 1.0)) # hide","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"Kolmogorov","category":"page"},{"location":"univariate/#Distributions.Kolmogorov","page":"Univariate Distributions","title":"Distributions.Kolmogorov","text":"Kolmogorov()\n\nKolmogorov distribution defined as\n\nsup_t in 01 B(t)\n\nwhere B(t) is a Brownian bridge used in the Kolmogorov–Smirnov test for large n.\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"plotdensity((0, 2), Kolmogorov) # hide","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"KSDist\nKSOneSided","category":"page"},{"location":"univariate/#Distributions.KSDist","page":"Univariate Distributions","title":"Distributions.KSDist","text":"KSDist(n)\n\nDistribution of the (two-sided) Kolmogorov-Smirnoff statistic\n\nD_n = sup_x hatF_n(x) -F(x)\n\nD_n converges a.s. to the Kolmogorov distribution.\n\n\n\n\n\n","category":"type"},{"location":"univariate/#Distributions.KSOneSided","page":"Univariate Distributions","title":"Distributions.KSOneSided","text":"KSOneSided(n)\n\nDistribution of the one-sided Kolmogorov-Smirnov test statistic:\n\nD^+_n = sup_x (hatF_n(x) -F(x))\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"Kumaraswamy","category":"page"},{"location":"univariate/#Distributions.Kumaraswamy","page":"Univariate Distributions","title":"Distributions.Kumaraswamy","text":"Kumaraswamy(a, b)\n\nThe Kumaraswamy distribution with shape parameters a > 0 and b > 0 has probability density function\n\nf(x a b) = a b x^a - 1 (1 - x^a)^b - 1 quad 0 x 1\n\nIt is related to the Beta distribution by the following identity: if X sim operatornameKumaraswamy(a b) then X^a sim operatornameBeta(1 b). In particular, if X sim operatornameKumaraswamy(1 1) then X sim operatornameUniform(0 1).\n\nExternal links\n\nKumaraswamy distribution on Wikipedia\n\nReferences\n\nKumaraswamy, P. (1980). A generalized probability density function for double-bounded random processes. Journal of Hydrology. 46(1-2), 79-88.\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"plotdensity((0, 1), Kumaraswamy, (2, 5)) # hide","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"Laplace","category":"page"},{"location":"univariate/#Distributions.Laplace","page":"Univariate Distributions","title":"Distributions.Laplace","text":"Laplace(μ,θ)\n\nThe Laplace distribution with location μ and scale θ has probability density function\n\nf(x mu theta) = frac12 theta exp left(- fracx - mutheta right)\n\nLaplace() # Laplace distribution with zero location and unit scale, i.e. Laplace(0, 1)\nLaplace(μ) # Laplace distribution with location μ and unit scale, i.e. Laplace(μ, 1)\nLaplace(μ, θ) # Laplace distribution with location μ and scale θ\n\nparams(d) # Get the parameters, i.e., (μ, θ)\nlocation(d) # Get the location parameter, i.e. μ\nscale(d) # Get the scale parameter, i.e. θ\n\nExternal links\n\nLaplace distribution on Wikipedia\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"plotdensity((-20, 20), Laplace, (0, 4)) # hide","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"Levy","category":"page"},{"location":"univariate/#Distributions.Levy","page":"Univariate Distributions","title":"Distributions.Levy","text":"Levy(μ, σ)\n\nThe Lévy distribution with location μ and scale σ has probability density function\n\nf(x mu sigma) = sqrtfracsigma2 pi (x - mu)^3\nexp left( - fracsigma2 (x - mu) right) quad x mu\n\nLevy() # Levy distribution with zero location and unit scale, i.e. Levy(0, 1)\nLevy(μ) # Levy distribution with location μ and unit scale, i.e. Levy(μ, 1)\nLevy(μ, σ) # Levy distribution with location μ and scale σ\n\nparams(d) # Get the parameters, i.e. (μ, σ)\nlocation(d) # Get the location parameter, i.e. μ\n\nExternal links\n\nLévy distribution on Wikipedia\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"plotdensity((0, 20), Levy, (0, 1)) # hide","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"Lindley","category":"page"},{"location":"univariate/#Distributions.Lindley","page":"Univariate Distributions","title":"Distributions.Lindley","text":"Lindley(θ)\n\nThe one-parameter Lindley distribution with shape θ > 0 has probability density function\n\nf(x theta) = fractheta^21 + theta (1 + x) e^-theta x quad x 0\n\nIt was first described by Lindley[1] and was studied in greater detail by Ghitany et al.[2] Note that Lindley(θ) is a mixture of an Exponential(θ) and a Gamma(2, θ) with respective mixing weights p = θ/(1 + θ) and 1 - p.\n\n[1]: Lindley, D. V. (1958). Fiducial Distributions and Bayes' Theorem. Journal of the Royal Statistical Society: Series B (Methodological), 20(1), 102–107.\n\n[2]: Ghitany, M. E., Atieh, B., & Nadarajah, S. (2008). Lindley distribution and its application. Mathematics and Computers in Simulation, 78(4), 493–506.\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"plotdensity((0, 20), Lindley, (1.5,)) # hide","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"Logistic","category":"page"},{"location":"univariate/#Distributions.Logistic","page":"Univariate Distributions","title":"Distributions.Logistic","text":"Logistic(μ,θ)\n\nThe Logistic distribution with location μ and scale θ has probability density function\n\nf(x mu theta) = frac14 theta mathrmsech^2\nleft( fracx - mu2 theta right)\n\nLogistic() # Logistic distribution with zero location and unit scale, i.e. Logistic(0, 1)\nLogistic(μ) # Logistic distribution with location μ and unit scale, i.e. Logistic(μ, 1)\nLogistic(μ, θ) # Logistic distribution with location μ and scale θ\n\nparams(d) # Get the parameters, i.e. (μ, θ)\nlocation(d) # Get the location parameter, i.e. μ\nscale(d) # Get the scale parameter, i.e. θ\n\nExternal links\n\nLogistic distribution on Wikipedia\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"plotdensity((-4, 8), Logistic, (2, 1)) # hide","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"LogitNormal","category":"page"},{"location":"univariate/#Distributions.LogitNormal","page":"Univariate Distributions","title":"Distributions.LogitNormal","text":"LogitNormal(μ,σ)\n\nThe logit normal distribution is the distribution of of a random variable whose logit has a Normal distribution. Or inversely, when applying the logistic function to a Normal random variable then the resulting random variable follows a logit normal distribution.\n\nIf X sim operatornameNormal(mu sigma) then operatornamelogistic(X) sim operatornameLogitNormal(musigma).\n\nThe probability density function is\n\nf(x mu sigma) = frac1x sqrt2 pi sigma^2\nexp left( - frac(textlogit(x) - mu)^22 sigma^2 right)\nquad x 0\n\nwhere the logit-Function is\n\ntextlogit(x) = lnleft(fracx1-xright)\nquad 0 x 1\n\nLogitNormal() # Logit-normal distribution with zero logit-mean and unit scale\nLogitNormal(μ) # Logit-normal distribution with logit-mean μ and unit scale\nLogitNormal(μ, σ) # Logit-normal distribution with logit-mean μ and scale σ\n\nparams(d) # Get the parameters, i.e. (μ, σ)\nmedian(d) # Get the median, i.e. logistic(μ)\n\nThe following properties have no analytical solution but numerical approximations. In order to avoid package dependencies for numerical optimization, they are currently not implemented.\n\nmean(d)\nvar(d)\nstd(d)\nmode(d)\n\nSimilarly, skewness, kurtosis, and entropy are not implemented.\n\nExternal links\n\nLogit normal distribution on Wikipedia\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"plotdensity((0, 1), LogitNormal, (0, 1)) # hide","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"LogNormal","category":"page"},{"location":"univariate/#Distributions.LogNormal","page":"Univariate Distributions","title":"Distributions.LogNormal","text":"LogNormal(μ,σ)\n\nThe log normal distribution is the distribution of the exponential of a Normal variate: if X sim operatornameNormal(mu sigma) then exp(X) sim operatornameLogNormal(musigma). The probability density function is\n\nf(x mu sigma) = frac1x sqrt2 pi sigma^2\nexp left( - frac(log(x) - mu)^22 sigma^2 right)\nquad x 0\n\nLogNormal() # Log-normal distribution with zero log-mean and unit scale\nLogNormal(μ) # Log-normal distribution with log-mean mu and unit scale\nLogNormal(μ, σ) # Log-normal distribution with log-mean mu and scale sig\n\nparams(d) # Get the parameters, i.e. (μ, σ)\nmeanlogx(d) # Get the mean of log(X), i.e. μ\nvarlogx(d) # Get the variance of log(X), i.e. σ^2\nstdlogx(d) # Get the standard deviation of log(X), i.e. σ\n\nExternal links\n\nLog normal distribution on Wikipedia\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"plotdensity((0, 5), LogNormal, (0, 1)) # hide","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"LogUniform","category":"page"},{"location":"univariate/#Distributions.LogUniform","page":"Univariate Distributions","title":"Distributions.LogUniform","text":"LogUniform(a,b)\n\nA positive random variable X is log-uniformly with parameters a and b if the logarithm of X is Uniform(log(a), log(b)). The log uniform distribution is also known as reciprocal distribution.\n\nLogUniform(1,10)\n\nExternal links\n\nLog uniform distribution on Wikipedia\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"plotdensity((0, 11), LogUniform, (1, 10)) # hide","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"NoncentralBeta","category":"page"},{"location":"univariate/#Distributions.NoncentralBeta","page":"Univariate Distributions","title":"Distributions.NoncentralBeta","text":"NoncentralBeta(α, β, λ)\n\nNoncentral Beta distribution with shape parameters α > 0 and β > 0 and noncentrality parameter λ >= 0.\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"plotdensity((0, 1), NoncentralBeta, (2, 3, 1)) # hide","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"NoncentralChisq","category":"page"},{"location":"univariate/#Distributions.NoncentralChisq","page":"Univariate Distributions","title":"Distributions.NoncentralChisq","text":"NoncentralChisq(ν, λ)\n\nThe noncentral chi-squared distribution with ν degrees of freedom and noncentrality parameter λ has the probability density function\n\nf(x nu lambda) = frac12 e^-(x + lambda)2 left( fracxlambda right)^nu4-12 I_nu2-1(sqrtlambda x) quad x 0\n\nIt is the distribution of the sum of squares of ν independent Normal variates with individual means mu_i and\n\nlambda = sum_i=1^nu mu_i^2\n\nNoncentralChisq(ν, λ) # Noncentral chi-squared distribution with ν degrees of freedom and noncentrality parameter λ\n\nparams(d) # Get the parameters, i.e. (ν, λ)\n\nExternal links\n\nNoncentral chi-squared distribution on Wikipedia\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"plotdensity((0, 20), NoncentralChisq, (2, 3)) # hide","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"NoncentralF","category":"page"},{"location":"univariate/#Distributions.NoncentralF","page":"Univariate Distributions","title":"Distributions.NoncentralF","text":"NoncentralF(ν1, ν2, λ)\n\nNoncentral F-distribution with ν1 > 0 and ν2 > 0 degrees of freedom and noncentrality parameter λ >= 0.\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"plotdensity((0, 10), NoncentralF, (2, 3, 1)) # hide","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"NoncentralT","category":"page"},{"location":"univariate/#Distributions.NoncentralT","page":"Univariate Distributions","title":"Distributions.NoncentralT","text":"NoncentralT(ν, λ)\n\nNoncentral Student's t-distribution with v > 0 degrees of freedom and noncentrality parameter λ.\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"plotdensity((-1, 20), NoncentralT, (2, 3)) # hide","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"Normal","category":"page"},{"location":"univariate/#Distributions.Normal","page":"Univariate Distributions","title":"Distributions.Normal","text":"Normal(μ,σ)\n\nThe Normal distribution with mean μ and standard deviation σ≥0 has probability density function\n\nf(x mu sigma) = frac1sqrt2 pi sigma^2\nexp left( - frac(x - mu)^22 sigma^2 right)\n\nNote that if σ == 0, then the distribution is a point mass concentrated at μ. Though not technically a continuous distribution, it is allowed so as to account for cases where σ may have underflowed, and the functions are defined by taking the pointwise limit as σ 0.\n\nNormal() # standard Normal distribution with zero mean and unit variance\nNormal(μ) # Normal distribution with mean μ and unit variance\nNormal(μ, σ) # Normal distribution with mean μ and variance σ^2\n\nparams(d) # Get the parameters, i.e. (μ, σ)\nmean(d) # Get the mean, i.e. μ\nstd(d) # Get the standard deviation, i.e. σ\n\nExternal links\n\nNormal distribution on Wikipedia\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"plotdensity((-4, 4), Normal, (0, 1)) # hide","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"NormalCanon","category":"page"},{"location":"univariate/#Distributions.NormalCanon","page":"Univariate Distributions","title":"Distributions.NormalCanon","text":"NormalCanon(η, λ)\n\nCanonical parametrisation of the Normal distribution with canonical parameters η and λ.\n\nThe two canonical parameters of a normal distribution mathcalN(mu sigma^2) with mean mu and standard deviation sigma are eta = sigma^-2 mu and lambda = sigma^-2.\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"plotdensity((-4, 4), NormalCanon, (0, 1)) # hide","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"NormalInverseGaussian","category":"page"},{"location":"univariate/#Distributions.NormalInverseGaussian","page":"Univariate Distributions","title":"Distributions.NormalInverseGaussian","text":"NormalInverseGaussian(μ,α,β,δ)\n\nThe Normal-inverse Gaussian distribution with location μ, tail heaviness α, asymmetry parameter β and scale δ has probability density function\n\nf(x mu alpha beta delta) = fracalphadelta K_1 left(alphasqrtdelta^2 + (x - mu)^2right)pi sqrtdelta^2 + (x - mu)^2 e^delta gamma + beta (x - mu)\n\nwhere K_j denotes a modified Bessel function of the third kind.\n\nExternal links\n\nNormal-inverse Gaussian distribution on Wikipedia\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"plotdensity((-2, 2), NormalInverseGaussian, (0, 0.5, 0.2, 0.1)) # hide","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"Pareto","category":"page"},{"location":"univariate/#Distributions.Pareto","page":"Univariate Distributions","title":"Distributions.Pareto","text":"Pareto(α,θ)\n\nThe Pareto distribution with shape α and scale θ has probability density function\n\nf(x alpha theta) = fracalpha theta^alphax^alpha + 1 quad x ge theta\n\nPareto() # Pareto distribution with unit shape and unit scale, i.e. Pareto(1, 1)\nPareto(α) # Pareto distribution with shape α and unit scale, i.e. Pareto(α, 1)\nPareto(α, θ) # Pareto distribution with shape α and scale θ\n\nparams(d) # Get the parameters, i.e. (α, θ)\nshape(d) # Get the shape parameter, i.e. α\nscale(d) # Get the scale parameter, i.e. θ\n\nExternal links\n\nPareto distribution on Wikipedia\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"plotdensity((1, 8), Pareto, (1, 1)) # hide","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"PGeneralizedGaussian","category":"page"},{"location":"univariate/#Distributions.PGeneralizedGaussian","page":"Univariate Distributions","title":"Distributions.PGeneralizedGaussian","text":"PGeneralizedGaussian(μ, α, p)\n\nThe p-Generalized Gaussian distribution, more commonly known as the exponential power or the generalized normal distribution, with scale α, location μ, and shape p has the probability density function\n\nf(x mu alpha p) = fracp2alphaGamma(1p) e^-(fracx-mualpha)^p quad x in (-infty +infty) alpha 0 p 0\n\nThe p-Generalized Gaussian (GGD) is a parametric distribution that incorporates the normal (p = 2) and Laplacian (p = 1) distributions as special cases. As p → ∞, the distribution approaches the Uniform distribution on [μ - α, μ + α].\n\nPGeneralizedGaussian() # GGD with location 0, scale √2, and shape 2 (the normal distribution)\nPGeneralizedGaussian(μ, α, p) # GGD with location μ, scale α, and shape p\n\nparams(d) # Get the parameters, i.e. (μ, α, p)\nlocation(d) # Get the location parameter, μ\nscale(d) # Get the scale parameter, α\nshape(d) # Get the shape parameter, p\n\nExternal Links\n\nGeneralized Gaussian on Wikipedia\nReference implementation\n\n\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"plotdensity((0, 20), PGeneralizedGaussian, (0.2)) # hide","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"Rayleigh","category":"page"},{"location":"univariate/#Distributions.Rayleigh","page":"Univariate Distributions","title":"Distributions.Rayleigh","text":"Rayleigh(σ)\n\nThe Rayleigh distribution with scale σ has probability density function\n\nf(x sigma) = fracxsigma^2 e^-fracx^22 sigma^2 quad x 0\n\nIt is related to the Normal distribution via the property that if X Y sim operatornameNormal(0sigma), independently, then sqrtX^2 + Y^2 sim operatornameRayleigh(sigma).\n\nRayleigh() # Rayleigh distribution with unit scale, i.e. Rayleigh(1)\nRayleigh(σ) # Rayleigh distribution with scale σ\n\nparams(d) # Get the parameters, i.e. (σ,)\nscale(d) # Get the scale parameter, i.e. σ\n\nExternal links\n\nRayleigh distribution on Wikipedia\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"plotdensity((0, 2), Rayleigh, (0.5)) # hide","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"Rician","category":"page"},{"location":"univariate/#Distributions.Rician","page":"Univariate Distributions","title":"Distributions.Rician","text":"Rician(ν, σ)\n\nThe Rician distribution with parameters ν and σ has probability density function:\n\nf(x nu sigma) = fracxsigma^2 expleft( frac-(x^2 + nu^2)2sigma^2 right) I_0left( fracxnusigma^2 right)\n\nIf shape and scale parameters K and Ω are given instead, ν and σ may be computed from them:\n\nsigma = sqrtfracOmega2(K + 1) quad nu = sigmasqrt2K\n\nRician() # Rician distribution with parameters ν=0 and σ=1\nRician(ν, σ) # Rician distribution with parameters ν and σ\n\nparams(d) # Get the parameters, i.e. (ν, σ)\nshape(d) # Get the shape parameter K = ν²/2σ²\nscale(d) # Get the scale parameter Ω = ν² + 2σ²\n\nExternal links:\n\nRician distribution on Wikipedia\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"plotdensity((0, 5), Rician, (0.5, 1)) # hide","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"Semicircle","category":"page"},{"location":"univariate/#Distributions.Semicircle","page":"Univariate Distributions","title":"Distributions.Semicircle","text":"Semicircle(r)\n\nThe Wigner semicircle distribution with radius parameter r has probability density function\n\nf(x r) = frac2pi r^2 sqrtr^2 - x^2 quad x in -r r\n\nSemicircle(r) # Wigner semicircle distribution with radius r\n\nparams(d) # Get the radius parameter, i.e. (r,)\n\nExternal links\n\nWigner semicircle distribution on Wikipedia\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"plotdensity((-1, 1), Semicircle, (1,)) # hide","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"SkewedExponentialPower","category":"page"},{"location":"univariate/#Distributions.SkewedExponentialPower","page":"Univariate Distributions","title":"Distributions.SkewedExponentialPower","text":"SkewedExponentialPower(μ, σ, p, α)\n\nThe Skewed exponential power distribution, with location μ, scale σ, shape p, and skewness α, has the probability density function [1]\n\nf(x mu sigma p alpha) =\nbegincases\nfrac1sigma 2p^1pGamma(1+1p) exp left - frac12pBig fracx-mualpha sigma Big^p right textif x leq mu \nfrac1sigma 2p^1pGamma(1+1p) exp left - frac12pBig fracx-mu(1-alpha) sigma Big^p right textif x mu\nendcases\n\nThe Skewed exponential power distribution (SEPD) incorporates the Laplace (p=1 alpha=05), normal (p=2 alpha=05), uniform (prightarrow infty alpha=05), asymmetric Laplace (p=1), skew normal (p=2), and exponential power distribution (alpha = 05) as special cases.\n\n[1] Zhy, D. and V. Zinde-Walsh (2009). Properties and estimation of asymmetric exponential power distribution. Journal of econometrics, 148(1):86-96, 2009.\n\nSkewedExponentialPower() # SEPD with shape 2, scale 1, location 0, and skewness 0.5 (the standard normal distribution)\nSkewedExponentialPower(μ, σ, p, α) # SEPD with location μ, scale σ, shape p, and skewness α\nSkewedExponentialPower(μ, σ, p) # SEPD with location μ, scale σ, shape p, and skewness 0.5 (the exponential power distribution)\nSkewedExponentialPower(μ, σ) # SEPD with location μ, scale σ, shape 2, and skewness 0.5 (the normal distribution)\nSkewedExponentialPower(μ) # SEPD with location μ, scale 1, shape 2, and skewness 0.5 (the normal distribution)\n\nparams(d) # Get the parameters, i.e. (μ, σ, p, α)\nshape(d) # Get the shape parameter, i.e. p\nlocation(d) # Get the location parameter, i.e. μ\nscale(d) # Get the scale parameter, i.e. σ\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"plotdensity((-8, 5), SkewedExponentialPower, (0, 1, 0.7, 0.7)) # hide","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"SkewNormal","category":"page"},{"location":"univariate/#Distributions.SkewNormal","page":"Univariate Distributions","title":"Distributions.SkewNormal","text":"SkewNormal(ξ, ω, α)\n\nThe skew normal distribution is a continuous probability distribution that generalises the normal distribution to allow for non-zero skewness. Given a location ξ, scale ω, and shape α, it has the probability density function\n\nf(x xi omega alpha) =\nfrac2omega sqrt2 pi expbigg(-frac(x-xi)^22omega^2bigg)\nint_-infty^alphaleft(fracx-xiomegaright)\nfrac1sqrt2 pi expbigg(-fract^22bigg) mathrmdt\n\nExternal links\n\nSkew normal distribution on Wikipedia\nDiscourse\nSkewDist.jl\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"plotdensity((-4, 4), SkewNormal, (0, 1, -1)) # hide","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"StudentizedRange\nSymTriangularDist","category":"page"},{"location":"univariate/#Distributions.StudentizedRange","page":"Univariate Distributions","title":"Distributions.StudentizedRange","text":"StudentizedRange(ν, k)\n\nThe studentized range distribution has probability density function:\n\nf(q k nu) = fracsqrt2pik(k - 1)nu^nu2Gammaleft(fracnu2right)2^nu2 - 1 int_0^infty x^nuphi(sqrtnux) leftint_-infty^infty phi(u)phi(u - qx)Phi(u) - Phi(u - qx)^k - 2durightdx\n\nwhere\n\nbeginaligned\nPhi(x) = frac1 + erf(fracxsqrt2)2 (textNormal Distribution CDF)\nphi(x) = Phi(x) (textNormal Distribution PDF)\nendaligned\n\nStudentizedRange(ν, k) # Studentized Range Distribution with parameters ν and k\n\nparams(d) # Get the parameters, i.e. (ν, k)\n\nExternal links\n\nStudentized range distribution on Wikipedia\n\n\n\n\n\n","category":"type"},{"location":"univariate/#Distributions.SymTriangularDist","page":"Univariate Distributions","title":"Distributions.SymTriangularDist","text":"SymTriangularDist(μ, σ)\n\nThe Symmetric triangular distribution with location μ and scale σ has probability density function\n\nf(x mu sigma) = frac1sigma left( 1 - left fracx - musigma right right) quad mu - sigma le x le mu + sigma\n\nSymTriangularDist() # Symmetric triangular distribution with zero location and unit scale\nSymTriangularDist(μ) # Symmetric triangular distribution with location μ and unit scale\nSymTriangularDist(μ, s) # Symmetric triangular distribution with location μ and scale σ\n\nparams(d) # Get the parameters, i.e. (μ, σ)\nlocation(d) # Get the location parameter, i.e. μ\nscale(d) # Get the scale parameter, i.e. σ\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"# we only need to plot 5 equally spaced points for these parameters and limits # hide\nplotdensity((-2, 2), SymTriangularDist, (0, 1); npoints=5) # hide","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"TDist","category":"page"},{"location":"univariate/#Distributions.TDist","page":"Univariate Distributions","title":"Distributions.TDist","text":"TDist(ν)\n\nThe Students T distribution with ν degrees of freedom has probability density function\n\nf(x nu) = frac1sqrtnu B(12 nu2)\nleft( 1 + fracx^2nu right)^-fracnu + 12\n\nTDist(d) # t-distribution with ν degrees of freedom\n\nparams(d) # Get the parameters, i.e. (ν,)\ndof(d) # Get the degrees of freedom, i.e. ν\n\nExternal links\n\nStudent's T distribution on Wikipedia\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"plotdensity((-5, 5), TDist, (5,)) # hide","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"TriangularDist","category":"page"},{"location":"univariate/#Distributions.TriangularDist","page":"Univariate Distributions","title":"Distributions.TriangularDist","text":"TriangularDist(a,b,c)\n\nThe triangular distribution with lower limit a, upper limit b and mode c has probability density function\n\nf(x a b c)= begincases\n 0 mathrmfor x a \n frac2(x-a)(b-a)(c-a) mathrmfor a le x leq c 4pt\n frac2(b-x)(b-a)(b-c) mathrmfor c x le b 4pt\n 0 mathrmfor b x\n endcases\n\nTriangularDist(a, b) # Triangular distribution with lower limit a, upper limit b, and mode (a+b)/2\nTriangularDist(a, b, c) # Triangular distribution with lower limit a, upper limit b, and mode c\n\nparams(d) # Get the parameters, i.e. (a, b, c)\nminimum(d) # Get the lower bound, i.e. a\nmaximum(d) # Get the upper bound, i.e. b\nmode(d) # Get the mode, i.e. c\n\nExternal links\n\nTriangular distribution on Wikipedia\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"# we only need to plot 6 equally spaced points for these parameters and limits # hide\nplotdensity((-0.5, 2), TriangularDist, (0, 1.5, 0.5); npoints=6) # hide","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"Triweight","category":"page"},{"location":"univariate/#Distributions.Triweight","page":"Univariate Distributions","title":"Distributions.Triweight","text":"Triweight(μ, σ)\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"plotdensity((0, 2), Triweight, (1, 1)) # hide","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"Uniform","category":"page"},{"location":"univariate/#Distributions.Uniform","page":"Univariate Distributions","title":"Distributions.Uniform","text":"Uniform(a,b)\n\nThe continuous uniform distribution over an interval a b has probability density function\n\nf(x a b) = frac1b - a quad a le x le b\n\nUniform() # Uniform distribution over [0, 1]\nUniform(a, b) # Uniform distribution over [a, b]\n\nparams(d) # Get the parameters, i.e. (a, b)\nminimum(d) # Get the lower bound, i.e. a\nmaximum(d) # Get the upper bound, i.e. b\nlocation(d) # Get the location parameter, i.e. a\nscale(d) # Get the scale parameter, i.e. b - a\n\nExternal links\n\nUniform distribution (continuous) on Wikipedia\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"plotdensity((-0.5, 1.5), Uniform, (0, 1); ylim=(0, 1.5)) # hide","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"VonMises","category":"page"},{"location":"univariate/#Distributions.VonMises","page":"Univariate Distributions","title":"Distributions.VonMises","text":"VonMises(μ, κ)\n\nThe von Mises distribution with mean μ and concentration κ has probability density function\n\nf(x mu kappa) = frac12 pi I_0(kappa) exp left( kappa cos (x - mu) right)\n\nVonMises() # von Mises distribution with zero mean and unit concentration\nVonMises(κ) # von Mises distribution with zero mean and concentration κ\nVonMises(μ, κ) # von Mises distribution with mean μ and concentration κ\n\nExternal links\n\nvon Mises distribution on Wikipedia\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"plotdensity((-π, π), VonMises, (0.5,); xlim=(-π, π), xticks=(π/5, 5), xticklabels=x -> x ≈ -π ? \"-π\" : (x ≈ π ? \"π\" : \"0\")) # hide","category":"page"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"Weibull","category":"page"},{"location":"univariate/#Distributions.Weibull","page":"Univariate Distributions","title":"Distributions.Weibull","text":"Weibull(α,θ)\n\nThe Weibull distribution with shape α and scale θ has probability density function\n\nf(x alpha theta) = fracalphatheta left( fracxtheta right)^alpha-1 e^-(xtheta)^alpha\n quad x ge 0\n\nWeibull() # Weibull distribution with unit shape and unit scale, i.e. Weibull(1, 1)\nWeibull(α) # Weibull distribution with shape α and unit scale, i.e. Weibull(α, 1)\nWeibull(α, θ) # Weibull distribution with shape α and scale θ\n\nparams(d) # Get the parameters, i.e. (α, θ)\nshape(d) # Get the shape parameter, i.e. α\nscale(d) # Get the scale parameter, i.e. θ\n\nExternal links\n\nWeibull distribution on Wikipedia\n\n\n\n\n\n","category":"type"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"plotdensity((0.001, 3), Weibull, (0.5, 1)) # hide","category":"page"},{"location":"univariate/#Discrete-Distributions","page":"Univariate Distributions","title":"Discrete Distributions","text":"","category":"section"},{"location":"univariate/","page":"Univariate Distributions","title":"Univariate Distributions","text":"Bernoulli\nBernoulliLogit\nBetaBinomial\nBinomial\nCategorical\nDirac\nDiscreteUniform\nDiscreteNonParametric\nGeometric\nHypergeometric\nNegativeBinomial\nPoisson\nPoissonBinomial\nSkellam\nSoliton","category":"page"},{"location":"univariate/#Distributions.Bernoulli","page":"Univariate Distributions","title":"Distributions.Bernoulli","text":"Bernoulli(p)\n\nA Bernoulli distribution is parameterized by a success rate p, which takes value 1 with probability p and 0 with probability 1-p.\n\nP(X = k) = begincases\n1 - p quad textfor k = 0 \np quad textfor k = 1\nendcases\n\nBernoulli() # Bernoulli distribution with p = 0.5\nBernoulli(p) # Bernoulli distribution with success rate p\n\nparams(d) # Get the parameters, i.e. (p,)\nsuccprob(d) # Get the success rate, i.e. p\nfailprob(d) # Get the failure rate, i.e. 1 - p\n\nExternal links:\n\nBernoulli distribution on Wikipedia\n\n\n\n\n\n","category":"type"},{"location":"univariate/#Distributions.BernoulliLogit","page":"Univariate Distributions","title":"Distributions.BernoulliLogit","text":"BernoulliLogit(logitp=0.0)\n\nA Bernoulli distribution that is parameterized by the logit logitp = logit(p) = log(p/(1-p)) of its success rate p.\n\nP(X = k) = begincases\noperatornamelogistic(-logitp) = frac11 + exp(logitp) quad textfor k = 0 \noperatornamelogistic(logitp) = frac11 + exp(-logitp) quad textfor k = 1\nendcases\n\nExternal links:\n\nBernoulli distribution on Wikipedia\n\nSee also Bernoulli\n\n\n\n\n\n","category":"type"},{"location":"univariate/#Distributions.BetaBinomial","page":"Univariate Distributions","title":"Distributions.BetaBinomial","text":"BetaBinomial(n,α,β)\n\nA Beta-binomial distribution is the compound distribution of the Binomial distribution where the probability of success p is distributed according to the Beta. It has three parameters: n, the number of trials and two shape parameters α, β\n\nP(X = k) = n choose k B(k + alpha n - k + beta) B(alpha beta) quad text for k = 012 ldots n\n\nBetaBinomial(n, α, β) # BetaBinomial distribution with n trials and shape parameters α, β\n\nparams(d) # Get the parameters, i.e. (n, α, β)\nntrials(d) # Get the number of trials, i.e. n\n\nExternal links:\n\nBeta-binomial distribution on Wikipedia\n\n\n\n\n\n","category":"type"},{"location":"univariate/#Distributions.Binomial","page":"Univariate Distributions","title":"Distributions.Binomial","text":"Binomial(n,p)\n\nA Binomial distribution characterizes the number of successes in a sequence of independent trials. It has two parameters: n, the number of trials, and p, the probability of success in an individual trial, with the distribution:\n\nP(X = k) = n choose kp^k(1-p)^n-k quad text for k = 012 ldots n\n\nBinomial() # Binomial distribution with n = 1 and p = 0.5\nBinomial(n) # Binomial distribution for n trials with success rate p = 0.5\nBinomial(n, p) # Binomial distribution for n trials with success rate p\n\nparams(d) # Get the parameters, i.e. (n, p)\nntrials(d) # Get the number of trials, i.e. n\nsuccprob(d) # Get the success rate, i.e. p\nfailprob(d) # Get the failure rate, i.e. 1 - p\n\nExternal links:\n\nBinomial distribution on Wikipedia\n\n\n\n\n\n","category":"type"},{"location":"univariate/#Distributions.Categorical","page":"Univariate Distributions","title":"Distributions.Categorical","text":"Categorical(p)\n\nA Categorical distribution is parameterized by a probability vector p (of length K).\n\nP(X = k) = pk quad textfor k = 1 2 ldots K\n\nCategorical(p) # Categorical distribution with probability vector p\nparams(d) # Get the parameters, i.e. (p,)\nprobs(d) # Get the probability vector, i.e. p\nncategories(d) # Get the number of categories, i.e. K\n\nHere, p must be a real vector, of which all components are nonnegative and sum to one.\n\nNote: The input vector p is directly used as a field of the constructed distribution, without being copied.\n\nCategorical is simply a type alias describing a special case of a DiscreteNonParametric distribution, so non-specialized methods defined for DiscreteNonParametric apply to Categorical as well.\n\nExternal links:\n\nCategorical distribution on Wikipedia\n\n\n\n\n\n","category":"type"},{"location":"univariate/#Distributions.Dirac","page":"Univariate Distributions","title":"Distributions.Dirac","text":"Dirac(x)\n\nA Dirac distribution is parameterized by its only value x, and takes its value with probability 1.\n\nP(X = hatx) = begincases\n1 quad textfor hatx = x \n0 quad textfor hatx neq x\nendcases\n\nDirac(2.5) # Dirac distribution with value x = 2.5\n\nExternal links:\n\nDirac measure on Wikipedia\n\n\n\n\n\n","category":"type"},{"location":"univariate/#Distributions.DiscreteUniform","page":"Univariate Distributions","title":"Distributions.DiscreteUniform","text":"DiscreteUniform(a,b)\n\nA Discrete uniform distribution is a uniform distribution over a consecutive sequence of integers between a and b, inclusive.\n\nP(X = k) = 1 (b - a + 1) quad textfor k = a a+1 ldots b\n\nDiscreteUniform(a, b) # a uniform distribution over {a, a+1, ..., b}\n\nparams(d) # Get the parameters, i.e. (a, b)\nspan(d) # Get the span of the support, i.e. (b - a + 1)\nprobval(d) # Get the probability value, i.e. 1 / (b - a + 1)\nminimum(d) # Return a\nmaximum(d) # Return b\n\nExternal links\n\nDiscrete uniform distribution on Wikipedia\n\n\n\n\n\n","category":"type"},{"location":"univariate/#Distributions.DiscreteNonParametric","page":"Univariate Distributions","title":"Distributions.DiscreteNonParametric","text":"DiscreteNonParametric(xs, ps)\n\nA Discrete nonparametric distribution explicitly defines an arbitrary probability mass function in terms of a list of real support values and their corresponding probabilities\n\nd = DiscreteNonParametric(xs, ps)\n\nparams(d) # Get the parameters, i.e. (xs, ps)\nsupport(d) # Get a sorted AbstractVector describing the support (xs) of the distribution\nprobs(d) # Get a Vector of the probabilities (ps) associated with the support\n\nExternal links\n\nProbability mass function on Wikipedia\n\n\n\n\n\n","category":"type"},{"location":"univariate/#Distributions.Geometric","page":"Univariate Distributions","title":"Distributions.Geometric","text":"Geometric(p)\n\nA Geometric distribution characterizes the number of failures before the first success in a sequence of independent Bernoulli trials with success rate p.\n\nP(X = k) = p (1 - p)^k quad textfor k = 0 1 2 ldots\n\nGeometric() # Geometric distribution with success rate 0.5\nGeometric(p) # Geometric distribution with success rate p\n\nparams(d) # Get the parameters, i.e. (p,)\nsuccprob(d) # Get the success rate, i.e. p\nfailprob(d) # Get the failure rate, i.e. 1 - p\n\nExternal links\n\nGeometric distribution on Wikipedia\n\n\n\n\n\n","category":"type"},{"location":"univariate/#Distributions.Hypergeometric","page":"Univariate Distributions","title":"Distributions.Hypergeometric","text":"Hypergeometric(s, f, n)\n\nA Hypergeometric distribution describes the number of successes in n draws without replacement from a finite population containing s successes and f failures.\n\nP(X = k) = s choose k f choose n-kover s+f choose n quad textfor k = max(0 n - f) ldots min(n s)\n\nHypergeometric(s, f, n) # Hypergeometric distribution for a population with\n # s successes and f failures, and a sequence of n trials.\n\nparams(d) # Get the parameters, i.e. (s, f, n)\n\nExternal links\n\nHypergeometric distribution on Wikipedia\n\n\n\n\n\n","category":"type"},{"location":"univariate/#Distributions.NegativeBinomial","page":"Univariate Distributions","title":"Distributions.NegativeBinomial","text":"NegativeBinomial(r,p)\n\nA Negative binomial distribution describes the number of failures before the rth success in a sequence of independent Bernoulli trials. It is parameterized by r, the number of successes, and p, the probability of success in an individual trial.\n\nP(X = k) = k + r - 1 choose k p^r (1 - p)^k quad textfor k = 012ldots\n\nThe distribution remains well-defined for any positive r, in which case\n\nP(X = k) = fracGamma(k+r)k Gamma(r) p^r (1 - p)^k quad textfor k = 012ldots\n\nNegativeBinomial() # Negative binomial distribution with r = 1 and p = 0.5\nNegativeBinomial(r, p) # Negative binomial distribution with r successes and success rate p\n\nparams(d) # Get the parameters, i.e. (r, p)\nsuccprob(d) # Get the success rate, i.e. p\nfailprob(d) # Get the failure rate, i.e. 1 - p\n\nExternal links:\n\nNegative binomial distribution on Wolfram\n\n\n\n\n\n","category":"type"},{"location":"univariate/#Distributions.Poisson","page":"Univariate Distributions","title":"Distributions.Poisson","text":"Poisson(λ)\n\nA Poisson distribution describes the number of independent events occurring within a unit time interval, given the average rate of occurrence λ.\n\nP(X = k) = fraclambda^kk e^-lambda quad text for k = 012ldots\n\nPoisson() # Poisson distribution with rate parameter 1\nPoisson(lambda) # Poisson distribution with rate parameter lambda\n\nparams(d) # Get the parameters, i.e. (λ,)\nmean(d) # Get the mean arrival rate, i.e. λ\n\nExternal links:\n\nPoisson distribution on Wikipedia\n\n\n\n\n\n","category":"type"},{"location":"univariate/#Distributions.PoissonBinomial","page":"Univariate Distributions","title":"Distributions.PoissonBinomial","text":"PoissonBinomial(p)\n\nA Poisson-binomial distribution describes the number of successes in a sequence of independent trials, wherein each trial has a different success rate. It is parameterized by a vector p (of length K), where K is the total number of trials and p[i] corresponds to the probability of success of the ith trial.\n\nP(X = k) = sumlimits_Ain F_k prodlimits_iin A pi prodlimits_jin A^c (1-pj) quad text for k = 012ldotsK\n\nwhere F_k is the set of all subsets of k integers that can be selected from 123K.\n\nPoissonBinomial(p) # Poisson Binomial distribution with success rate vector p\n\nparams(d) # Get the parameters, i.e. (p,)\nsuccprob(d) # Get the vector of success rates, i.e. p\nfailprob(d) # Get the vector of failure rates, i.e. 1-p\n\nExternal links:\n\nPoisson-binomial distribution on Wikipedia\n\n\n\n\n\n","category":"type"},{"location":"univariate/#Distributions.Skellam","page":"Univariate Distributions","title":"Distributions.Skellam","text":"Skellam(μ1, μ2)\n\nA Skellam distribution describes the difference between two independent Poisson variables, respectively with rate μ1 and μ2.\n\nP(X = k) = e^-(mu_1 + mu_2) left( fracmu_1mu_2 right)^k2 I_k(2 sqrtmu_1 mu_2) quad textfor integer k\n\nwhere I_k is the modified Bessel function of the first kind.\n\nSkellam(μ1, μ2) # Skellam distribution for the difference between two Poisson variables,\n # respectively with expected values μ1 and μ2.\n\nparams(d) # Get the parameters, i.e. (μ1, μ2)\n\nExternal links:\n\nSkellam distribution on Wikipedia\n\n\n\n\n\n","category":"type"},{"location":"univariate/#Distributions.Soliton","page":"Univariate Distributions","title":"Distributions.Soliton","text":"Soliton(K::Integer, M::Integer, δ::Real, atol::Real=0) <: Distribution{Univariate, Discrete}\n\nThe Robust Soliton distribution of length K, mode M (i.e., the location of the robust component spike), peeling process failure probability δ, and minimum non-zero probability mass atol. More specifically, degrees i for which pdf(Ω, i) Int\n\nReturn the sample dimension of distribution d.\n\n\n\n\n\n","category":"method"},{"location":"multivariate/#Base.size-Tuple{MultivariateDistribution}","page":"Multivariate Distributions","title":"Base.size","text":"size(d::MultivariateDistribution)\n\nReturn the sample size of distribution d, i.e (length(d),).\n\n\n\n\n\n","category":"method"},{"location":"multivariate/#Base.eltype-Tuple{Type{MultivariateDistribution}}","page":"Multivariate Distributions","title":"Base.eltype","text":"eltype(::Type{Sampleable})\n\nThe default element type of a sample. This is the type of elements of the samples generated by the rand method. However, one can provide an array of different element types to store the samples using rand!.\n\n\n\n\n\n","category":"method"},{"location":"multivariate/#Statistics.mean-Tuple{MultivariateDistribution}","page":"Multivariate Distributions","title":"Statistics.mean","text":"mean(d::MultivariateDistribution)\n\nCompute the mean vector of distribution d.\n\n\n\n\n\n","category":"method"},{"location":"multivariate/#Statistics.var-Tuple{MultivariateDistribution}","page":"Multivariate Distributions","title":"Statistics.var","text":"var(d::MultivariateDistribution)\n\nCompute the vector of element-wise variances for distribution d.\n\n\n\n\n\n","category":"method"},{"location":"multivariate/#Statistics.cov-Tuple{MultivariateDistribution}","page":"Multivariate Distributions","title":"Statistics.cov","text":"cov(d::MultivariateDistribution)\n\nCompute the covariance matrix for distribution d. (cor is provided based on cov).\n\n\n\n\n\n","category":"method"},{"location":"multivariate/#Statistics.cor-Tuple{MultivariateDistribution}","page":"Multivariate Distributions","title":"Statistics.cor","text":"cor(d::MultivariateDistribution)\n\nComputes the correlation matrix for distribution d.\n\n\n\n\n\n","category":"method"},{"location":"multivariate/#StatsBase.entropy-Tuple{MultivariateDistribution}","page":"Multivariate Distributions","title":"StatsBase.entropy","text":"entropy(d::MultivariateDistribution)\n\nCompute the entropy value of distribution d.\n\n\n\n\n\n","category":"method"},{"location":"multivariate/#StatsBase.entropy-Tuple{MultivariateDistribution, Real}","page":"Multivariate Distributions","title":"StatsBase.entropy","text":"entropy(d::MultivariateDistribution, b::Real)\n\nCompute the entropy value of distribution d, w.r.t. a given base.\n\n\n\n\n\n","category":"method"},{"location":"multivariate/#Probability-evaluation","page":"Multivariate Distributions","title":"Probability evaluation","text":"","category":"section"},{"location":"multivariate/","page":"Multivariate Distributions","title":"Multivariate Distributions","text":"insupport(::MultivariateDistribution, ::AbstractArray)\npdf(::MultivariateDistribution, ::AbstractArray)\nlogpdf(::MultivariateDistribution, ::AbstractArray)\nloglikelihood(::MultivariateDistribution, ::AbstractVector{<:Real})","category":"page"},{"location":"multivariate/#Distributions.insupport-Tuple{MultivariateDistribution, AbstractArray}","page":"Multivariate Distributions","title":"Distributions.insupport","text":"insupport(d::MultivariateDistribution, x::AbstractArray)\n\nIf x is a vector, it returns whether x is within the support of d. If x is a matrix, it returns whether every column in x is within the support of d.\n\n\n\n\n\n","category":"method"},{"location":"multivariate/#StatsAPI.loglikelihood-Tuple{MultivariateDistribution, AbstractVector{<:Real}}","page":"Multivariate Distributions","title":"StatsAPI.loglikelihood","text":"loglikelihood(d::Distribution{ArrayLikeVariate{N}}, x) where {N}\n\nThe log-likelihood of distribution d with respect to all variate(s) contained in x.\n\nHere, x can be any output of rand(d, dims...) and rand!(d, x). For instance, x can be\n\nan array of dimension N with size(x) == size(d),\nan array of dimension N + 1 with size(x)[1:N] == size(d), or\nan array of arrays xi of dimension N with size(xi) == size(d).\n\n\n\n\n\n","category":"method"},{"location":"multivariate/","page":"Multivariate Distributions","title":"Multivariate Distributions","text":"Note: For multivariate distributions, the pdf value is usually very small or large, and therefore direct evaluation of the pdf may cause numerical problems. It is generally advisable to perform probability computation in log scale.","category":"page"},{"location":"multivariate/#Sampling","page":"Multivariate Distributions","title":"Sampling","text":"","category":"section"},{"location":"multivariate/","page":"Multivariate Distributions","title":"Multivariate Distributions","text":"rand(rng::AbstractRNG, ::MultivariateDistribution)\nrand!(rng::AbstractRNG, d::MultivariateDistribution, x::AbstractArray)","category":"page"},{"location":"multivariate/#Base.rand-Tuple{AbstractRNG, MultivariateDistribution}","page":"Multivariate Distributions","title":"Base.rand","text":"rand(::AbstractRNG, ::Sampleable)\n\nSamples from the sampler and returns the result.\n\n\n\n\n\n","category":"method"},{"location":"multivariate/#Random.rand!-Tuple{AbstractRNG, MultivariateDistribution, AbstractArray}","page":"Multivariate Distributions","title":"Random.rand!","text":"rand!(::AbstractRNG, ::Sampleable, ::AbstractArray)\n\nSamples in-place from the sampler and stores the result in the provided array.\n\n\n\n\n\n","category":"method"},{"location":"multivariate/","page":"Multivariate Distributions","title":"Multivariate Distributions","text":"Note: In addition to these common methods, each multivariate distribution has its special methods, as introduced below.","category":"page"},{"location":"multivariate/#Distributions","page":"Multivariate Distributions","title":"Distributions","text":"","category":"section"},{"location":"multivariate/","page":"Multivariate Distributions","title":"Multivariate Distributions","text":"Multinomial\nDistributions.AbstractMvNormal\nMvNormal\nMvNormalCanon\nMvLogitNormal\nMvLogNormal\nDirichlet\nProduct","category":"page"},{"location":"multivariate/#Distributions.Multinomial","page":"Multivariate Distributions","title":"Distributions.Multinomial","text":"The Multinomial distribution generalizes the binomial distribution. Consider n independent draws from a Categorical distribution over a finite set of size k, and let X = (X_1 X_k) where X_i represents the number of times the element i occurs, then the distribution of X is a multinomial distribution. Each sample of a multinomial distribution is a k-dimensional integer vector that sums to n.\n\nThe probability mass function is given by\n\nf(x n p) = fracnx_1 cdots x_k prod_i=1^k p_i^x_i\nquad x_1 + cdots + x_k = n\n\nMultinomial(n, p) # Multinomial distribution for n trials with probability vector p\nMultinomial(n, k) # Multinomial distribution for n trials with equal probabilities\n # over 1:k\n\n\n\n\n\n","category":"type"},{"location":"multivariate/#Distributions.AbstractMvNormal","page":"Multivariate Distributions","title":"Distributions.AbstractMvNormal","text":"The Multivariate normal distribution is a multidimensional generalization of the normal distribution. The probability density function of a d-dimensional multivariate normal distribution with mean vector boldsymbolmu and covariance matrix boldsymbolSigma is:\n\nf(mathbfx boldsymbolmu boldsymbolSigma) = frac1(2 pi)^d2 boldsymbolSigma^12\nexp left( - frac12 (mathbfx - boldsymbolmu)^T Sigma^-1 (mathbfx - boldsymbolmu) right)\n\nWe realize that the mean vector and the covariance often have special forms in practice, which can be exploited to simplify the computation. For example, the mean vector is sometimes just a zero vector, while the covariance matrix can be a diagonal matrix or even in the form of sigma^2 mathbfI. To take advantage of such special cases, we introduce a parametric type MvNormal, defined as below, which allows users to specify the special structure of the mean and covariance.\n\nstruct MvNormal{T<:Real,Cov<:AbstractPDMat,Mean<:AbstractVector} <: AbstractMvNormal\n μ::Mean\n Σ::Cov\nend\n\nHere, the mean vector can be an instance of any AbstractVector. The covariance can be of any subtype of AbstractPDMat. Particularly, one can use PDMat for full covariance, PDiagMat for diagonal covariance, and ScalMat for the isotropic covariance – those in the form of sigma^2 mathbfI. (See the Julia package PDMats for details).\n\nWe also define a set of aliases for the types using different combinations of mean vectors and covariance:\n\nconst IsoNormal = MvNormal{Float64, ScalMat{Float64}, Vector{Float64}}\nconst DiagNormal = MvNormal{Float64, PDiagMat{Float64,Vector{Float64}}, Vector{Float64}}\nconst FullNormal = MvNormal{Float64, PDMat{Float64,Matrix{Float64}}, Vector{Float64}}\n\nconst ZeroMeanIsoNormal{Axes} = MvNormal{Float64, ScalMat{Float64}, Zeros{Float64,1,Axes}}\nconst ZeroMeanDiagNormal{Axes} = MvNormal{Float64, PDiagMat{Float64,Vector{Float64}}, Zeros{Float64,1,Axes}}\nconst ZeroMeanFullNormal{Axes} = MvNormal{Float64, PDMat{Float64,Matrix{Float64}}, Zeros{Float64,1,Axes}}\n\nMultivariate normal distributions support affine transformations:\n\nd = MvNormal(μ, Σ)\nc + B * d # == MvNormal(B * μ + c, B * Σ * B')\ndot(b, d) # == Normal(dot(b, μ), b' * Σ * b)\n\n\n\n\n\n","category":"type"},{"location":"multivariate/#Distributions.MvNormal","page":"Multivariate Distributions","title":"Distributions.MvNormal","text":"MvNormal\n\nGenerally, users don't have to worry about these internal details.\n\nWe provide a common constructor MvNormal, which will construct a distribution of appropriate type depending on the input arguments.\n\n\n\n\n\n","category":"type"},{"location":"multivariate/#Distributions.MvNormalCanon","page":"Multivariate Distributions","title":"Distributions.MvNormalCanon","text":"MvNormalCanon\n\nThe multivariate normal distribution is an exponential family distribution, with two canonical parameters: the potential vector mathbfh and the precision matrix mathbfJ. The relation between these parameters and the conventional representation (i.e. the one using mean boldsymbolmu and covariance boldsymbolSigma) is:\n\nmathbfh = boldsymbolSigma^-1 boldsymbolmu quad text and quad mathbfJ = boldsymbolSigma^-1\n\nThe canonical parameterization is widely used in Bayesian analysis. We provide a type MvNormalCanon, which is also a subtype of AbstractMvNormal to represent a multivariate normal distribution using canonical parameters. Particularly, MvNormalCanon is defined as:\n\nstruct MvNormalCanon{T<:Real,P<:AbstractPDMat,V<:AbstractVector} <: AbstractMvNormal\n μ::V # the mean vector\n h::V # potential vector, i.e. inv(Σ) * μ\n J::P # precision matrix, i.e. inv(Σ)\nend\n\nWe also define aliases for common specializations of this parametric type:\n\nconst FullNormalCanon = MvNormalCanon{Float64, PDMat{Float64,Matrix{Float64}}, Vector{Float64}}\nconst DiagNormalCanon = MvNormalCanon{Float64, PDiagMat{Float64,Vector{Float64}}, Vector{Float64}}\nconst IsoNormalCanon = MvNormalCanon{Float64, ScalMat{Float64}, Vector{Float64}}\n\nconst ZeroMeanFullNormalCanon{Axes} = MvNormalCanon{Float64, PDMat{Float64,Matrix{Float64}}, Zeros{Float64,1,Axes}}\nconst ZeroMeanDiagNormalCanon{Axes} = MvNormalCanon{Float64, PDiagMat{Float64,Vector{Float64}}, Zeros{Float64,1,Axes}}\nconst ZeroMeanIsoNormalCanon{Axes} = MvNormalCanon{Float64, ScalMat{Float64}, Zeros{Float64,1,Axes}}\n\nNote: MvNormalCanon share the same set of methods as MvNormal.\n\n\n\n\n\n","category":"type"},{"location":"multivariate/#Distributions.MvLogitNormal","page":"Multivariate Distributions","title":"Distributions.MvLogitNormal","text":"MvLogitNormal{<:AbstractMvNormal}\n\nThe multivariate logit-normal distribution is a multivariate generalization of LogitNormal capable of handling correlations between variables.\n\nIf mathbfy sim mathrmMvNormal(boldsymbolmu boldsymbolSigma) is a length d-1 vector, then\n\nmathbfx = operatornamesoftmaxleft(beginbmatrixmathbfy 0 endbmatrixright) sim mathrmMvLogitNormal(boldsymbolmu boldsymbolSigma)\n\nis a length d probability vector.\n\nMvLogitNormal(μ, Σ) # MvLogitNormal with y ~ MvNormal(μ, Σ)\nMvLogitNormal(MvNormal(μ, Σ)) # same as above\nMvLogitNormal(MvNormalCanon(μ, J)) # MvLogitNormal with y ~ MvNormalCanon(μ, J)\n\nFields\n\nnormal::AbstractMvNormal: contains the d-1-dimensional distribution of y\n\n\n\n\n\n","category":"type"},{"location":"multivariate/#Distributions.MvLogNormal","page":"Multivariate Distributions","title":"Distributions.MvLogNormal","text":"MvLogNormal(d::MvNormal)\n\nThe Multivariate lognormal distribution is a multidimensional generalization of the lognormal distribution.\n\nIf boldsymbol X sim mathcalN(boldsymbolmuboldsymbolSigma) has a multivariate normal distribution then boldsymbol Y=exp(boldsymbol X) has a multivariate lognormal distribution.\n\nMean vector boldsymbolmu and covariance matrix boldsymbolSigma of the underlying normal distribution are known as the location and scale parameters of the corresponding lognormal distribution.\n\n\n\n\n\n","category":"type"},{"location":"multivariate/#Distributions.Dirichlet","page":"Multivariate Distributions","title":"Distributions.Dirichlet","text":"Dirichlet\n\nThe Dirichlet distribution is often used as the conjugate prior for Categorical or Multinomial distributions. The probability density function of a Dirichlet distribution with parameter alpha = (alpha_1 ldots alpha_k) is:\n\nf(x alpha) = frac1B(alpha) prod_i=1^k x_i^alpha_i - 1 quad text with \nB(alpha) = fracprod_i=1^k Gamma(alpha_i)Gamma left( sum_i=1^k alpha_i right)\nquad x_1 + cdots + x_k = 1\n\n# Let alpha be a vector\nDirichlet(alpha) # Dirichlet distribution with parameter vector alpha\n\n# Let a be a positive scalar\nDirichlet(k, a) # Dirichlet distribution with parameter a * ones(k)\n\n\n\n\n\n","category":"type"},{"location":"multivariate/#Distributions.Product","page":"Multivariate Distributions","title":"Distributions.Product","text":"Product <: MultivariateDistribution\n\nAn N dimensional MultivariateDistribution constructed from a vector of N independent UnivariateDistributions.\n\nProduct(Uniform.(rand(10), 1)) # A 10-dimensional Product from 10 independent `Uniform` distributions.\n\n\n\n\n\n","category":"type"},{"location":"multivariate/#Addition-Methods","page":"Multivariate Distributions","title":"Addition Methods","text":"","category":"section"},{"location":"multivariate/#AbstractMvNormal","page":"Multivariate Distributions","title":"AbstractMvNormal","text":"","category":"section"},{"location":"multivariate/","page":"Multivariate Distributions","title":"Multivariate Distributions","text":"In addition to the methods listed in the common interface above, we also provide the following methods for all multivariate distributions under the base type AbstractMvNormal:","category":"page"},{"location":"multivariate/","page":"Multivariate Distributions","title":"Multivariate Distributions","text":"invcov(::Distributions.AbstractMvNormal)\nlogdetcov(::Distributions.AbstractMvNormal)\nsqmahal(::Distributions.AbstractMvNormal, ::AbstractArray)\nrand(::AbstractRNG, ::Distributions.AbstractMvNormal)\nminimum(::Distributions.AbstractMvNormal)\nmaximum(::Distributions.AbstractMvNormal)\nextrema(::Distributions.AbstractMvNormal)","category":"page"},{"location":"multivariate/#Distributions.invcov-Tuple{AbstractMvNormal}","page":"Multivariate Distributions","title":"Distributions.invcov","text":"invcov(d::AbstractMvNormal)\n\nReturn the inversed covariance matrix of d.\n\n\n\n\n\n","category":"method"},{"location":"multivariate/#Distributions.logdetcov-Tuple{AbstractMvNormal}","page":"Multivariate Distributions","title":"Distributions.logdetcov","text":"logdetcov(d::AbstractMvNormal)\n\nReturn the log-determinant value of the covariance matrix.\n\n\n\n\n\n","category":"method"},{"location":"multivariate/#Distributions.sqmahal-Tuple{AbstractMvNormal, AbstractArray}","page":"Multivariate Distributions","title":"Distributions.sqmahal","text":"sqmahal(d, x)\n\nReturn the squared Mahalanobis distance from x to the center of d, w.r.t. the covariance. When x is a vector, it returns a scalar value. When x is a matrix, it returns a vector of length size(x,2).\n\nsqmahal!(r, d, x) with write the results to a pre-allocated array r.\n\n\n\n\n\n","category":"method"},{"location":"multivariate/#Base.rand-Tuple{AbstractRNG, AbstractMvNormal}","page":"Multivariate Distributions","title":"Base.rand","text":"rand(::AbstractRNG, ::Distributions.AbstractMvNormal)\n\nSample a random vector from the provided multi-variate normal distribution.\n\n\n\n\n\n","category":"method"},{"location":"multivariate/#Base.minimum-Tuple{AbstractMvNormal}","page":"Multivariate Distributions","title":"Base.minimum","text":"minimum(d::Distribution)\n\nReturn the minimum of the support of d.\n\n\n\n\n\n","category":"method"},{"location":"multivariate/#Base.maximum-Tuple{AbstractMvNormal}","page":"Multivariate Distributions","title":"Base.maximum","text":"maximum(d::Distribution)\n\nReturn the maximum of the support of d.\n\n\n\n\n\n","category":"method"},{"location":"multivariate/#Base.extrema-Tuple{AbstractMvNormal}","page":"Multivariate Distributions","title":"Base.extrema","text":"extrema(d::Distribution)\n\nReturn the minimum and maximum of the support of d as a 2-tuple.\n\n\n\n\n\n","category":"method"},{"location":"multivariate/#MvLogNormal","page":"Multivariate Distributions","title":"MvLogNormal","text":"","category":"section"},{"location":"multivariate/","page":"Multivariate Distributions","title":"Multivariate Distributions","text":"In addition to the methods listed in the common interface above, we also provide the following methods:","category":"page"},{"location":"multivariate/","page":"Multivariate Distributions","title":"Multivariate Distributions","text":"location(::MvLogNormal)\nscale(::MvLogNormal)\nmedian(::MvLogNormal)\nmode(::MvLogNormal)","category":"page"},{"location":"multivariate/#Distributions.location-Tuple{MvLogNormal}","page":"Multivariate Distributions","title":"Distributions.location","text":"location(d::MvLogNormal)\n\nReturn the location vector of the distribution (the mean of the underlying normal distribution).\n\n\n\n\n\n","category":"method"},{"location":"multivariate/#Distributions.scale-Tuple{MvLogNormal}","page":"Multivariate Distributions","title":"Distributions.scale","text":"scale(d::MvLogNormal)\n\nReturn the scale matrix of the distribution (the covariance matrix of the underlying normal distribution).\n\n\n\n\n\n","category":"method"},{"location":"multivariate/#Statistics.median-Tuple{MvLogNormal}","page":"Multivariate Distributions","title":"Statistics.median","text":"median(d::MvLogNormal)\n\nReturn the median vector of the lognormal distribution. which is strictly smaller than the mean.\n\n\n\n\n\n","category":"method"},{"location":"multivariate/#StatsBase.mode-Tuple{MvLogNormal}","page":"Multivariate Distributions","title":"StatsBase.mode","text":"mode(d::MvLogNormal)\n\nReturn the mode vector of the lognormal distribution, which is strictly smaller than the mean and median.\n\n\n\n\n\n","category":"method"},{"location":"multivariate/","page":"Multivariate Distributions","title":"Multivariate Distributions","text":"It can be necessary to calculate the parameters of the lognormal (location vector and scale matrix) from a given covariance and mean, median or mode. To that end, the following functions are provided.","category":"page"},{"location":"multivariate/","page":"Multivariate Distributions","title":"Multivariate Distributions","text":"location{D<:Distributions.AbstractMvLogNormal}(::Type{D},s::Symbol,m::AbstractVector,S::AbstractMatrix)\nlocation!{D<:Distributions.AbstractMvLogNormal}(::Type{D},s::Symbol,m::AbstractVector,S::AbstractMatrix,μ::AbstractVector)\nscale{D<:Distributions.AbstractMvLogNormal}(::Type{D},s::Symbol,m::AbstractVector,S::AbstractMatrix)\nscale!{D<:Distributions.AbstractMvLogNormal}(::Type{D},s::Symbol,m::AbstractVector,S::AbstractMatrix,Σ::AbstractMatrix)\nparams{D<:Distributions.AbstractMvLogNormal}(::Type{D},m::AbstractVector,S::AbstractMatrix)","category":"page"},{"location":"multivariate/#Distributions.location-Union{Tuple{D}, Tuple{Type{D}, Symbol, AbstractVector, AbstractMatrix}} where D<:Distributions.AbstractMvLogNormal","page":"Multivariate Distributions","title":"Distributions.location","text":"location{D<:AbstractMvLogNormal}(::Type{D},s::Symbol,m::AbstractVector,S::AbstractMatrix)\n\nCalculate the location vector (the mean of the underlying normal distribution).\n\nIf s == :meancov, then m is taken as the mean, and S the covariance matrix of a lognormal distribution.\nIf s == :mean | :median | :mode, then m is taken as the mean, median or mode of the lognormal respectively, and S is interpreted as the scale matrix (the covariance of the underlying normal distribution).\n\nIt is not possible to analytically calculate the location vector from e.g., median + covariance, or from mode + covariance.\n\n\n\n\n\n","category":"method"},{"location":"multivariate/#Distributions.location!-Union{Tuple{D}, Tuple{Type{D}, Symbol, AbstractVector, AbstractMatrix, AbstractVector}} where D<:Distributions.AbstractMvLogNormal","page":"Multivariate Distributions","title":"Distributions.location!","text":"location!{D<:AbstractMvLogNormal}(::Type{D},s::Symbol,m::AbstractVector,S::AbstractMatrix,μ::AbstractVector)\n\nCalculate the location vector (as above) and store the result in μ\n\n\n\n\n\n","category":"method"},{"location":"multivariate/#Distributions.scale-Union{Tuple{D}, Tuple{Type{D}, Symbol, AbstractVector, AbstractMatrix}} where D<:Distributions.AbstractMvLogNormal","page":"Multivariate Distributions","title":"Distributions.scale","text":"scale{D<:AbstractMvLogNormal}(::Type{D},s::Symbol,m::AbstractVector,S::AbstractMatrix)\n\nCalculate the scale parameter, as defined for the location parameter above.\n\n\n\n\n\n","category":"method"},{"location":"multivariate/#Distributions.scale!-Union{Tuple{D}, Tuple{Type{D}, Symbol, AbstractVector, AbstractMatrix, AbstractMatrix}} where D<:Distributions.AbstractMvLogNormal","page":"Multivariate Distributions","title":"Distributions.scale!","text":"scale!{D<:AbstractMvLogNormal}(::Type{D},s::Symbol,m::AbstractVector,S::AbstractMatrix,Σ::AbstractMatrix)\n\nCalculate the scale parameter, as defined for the location parameter above and store the result in Σ.\n\n\n\n\n\n","category":"method"},{"location":"multivariate/#StatsAPI.params-Union{Tuple{D}, Tuple{Type{D}, AbstractVector, AbstractMatrix}} where D<:Distributions.AbstractMvLogNormal","page":"Multivariate Distributions","title":"StatsAPI.params","text":"params{D<:AbstractMvLogNormal}(::Type{D},m::AbstractVector,S::AbstractMatrix)\n\nReturn (scale,location) for a given mean and covariance\n\n\n\n\n\n","category":"method"},{"location":"multivariate/#Internal-Methods-(for-creating-your-own-multivariate-distribution)","page":"Multivariate Distributions","title":"Internal Methods (for creating your own multivariate distribution)","text":"","category":"section"},{"location":"multivariate/","page":"Multivariate Distributions","title":"Multivariate Distributions","text":"Distributions._logpdf(d::MultivariateDistribution, x::AbstractArray)","category":"page"},{"location":"multivariate/#Product-distributions","page":"Multivariate Distributions","title":"Product distributions","text":"","category":"section"},{"location":"multivariate/","page":"Multivariate Distributions","title":"Multivariate Distributions","text":"Distributions.product_distribution","category":"page"},{"location":"multivariate/#Distributions.product_distribution","page":"Multivariate Distributions","title":"Distributions.product_distribution","text":"product_distribution(dists::AbstractArray{<:Distribution{<:ArrayLikeVariate{M}},N})\n\nCreate a distribution of M + N-dimensional arrays as a product distribution of independent M-dimensional distributions by stacking them.\n\nThe function falls back to constructing a ProductDistribution distribution but specialized methods can be defined.\n\n\n\n\n\nproduct_distribution(dists::AbstractVector{<:Normal})\n\nCreate a multivariate normal distribution by stacking the univariate normal distributions.\n\nThe resulting distribution of type MvNormal has a diagonal covariance matrix.\n\n\n\n\n\n","category":"function"},{"location":"multivariate/","page":"Multivariate Distributions","title":"Multivariate Distributions","text":"Using product_distribution is advised to construct product distributions. For some distributions, it constructs a special multivariate type.","category":"page"},{"location":"multivariate/#Index","page":"Multivariate Distributions","title":"Index","text":"","category":"section"},{"location":"multivariate/","page":"Multivariate Distributions","title":"Multivariate Distributions","text":"Pages = [\"multivariate.md\"]","category":"page"},{"location":"matrix/#matrix-variates","page":"Matrix-variate Distributions","title":"Matrix-variate Distributions","text":"","category":"section"},{"location":"matrix/","page":"Matrix-variate Distributions","title":"Matrix-variate Distributions","text":"Matrix-variate distributions are the distributions whose variate forms are Matrixvariate (i.e each sample is a matrix). Abstract types for matrix-variate distributions:","category":"page"},{"location":"matrix/","page":"Matrix-variate Distributions","title":"Matrix-variate Distributions","text":"const MatrixDistribution{S<:ValueSupport} = Distribution{Matrixvariate,S}\n\nconst DiscreteMatrixDistribution = Distribution{Matrixvariate, Discrete}\nconst ContinuousMatrixDistribution = Distribution{Matrixvariate, Continuous}","category":"page"},{"location":"matrix/","page":"Matrix-variate Distributions","title":"Matrix-variate Distributions","text":"More advanced functionalities related to random matrices can be found in the RandomMatrices.jl package.","category":"page"},{"location":"matrix/#Common-Interface","page":"Matrix-variate Distributions","title":"Common Interface","text":"","category":"section"},{"location":"matrix/","page":"Matrix-variate Distributions","title":"Matrix-variate Distributions","text":"All distributions implement the same set of methods:","category":"page"},{"location":"matrix/","page":"Matrix-variate Distributions","title":"Matrix-variate Distributions","text":"size(::MatrixDistribution)\nlength(::MatrixDistribution)\nDistributions.rank(::MatrixDistribution)\nmean(::MatrixDistribution)\nvar(::MatrixDistribution)\ncov(::MatrixDistribution)\npdf(d::MatrixDistribution, x::AbstractMatrix{<:Real})\nlogpdf(d::MatrixDistribution, x::AbstractMatrix{<:Real})\nDistributions._rand!(::AbstractRNG, ::MatrixDistribution, A::AbstractMatrix)","category":"page"},{"location":"matrix/#Base.size-Tuple{MatrixDistribution}","page":"Matrix-variate Distributions","title":"Base.size","text":"size(d::MatrixDistribution)\n\nReturn the size of each sample from distribution d.\n\n\n\n\n\n","category":"method"},{"location":"matrix/#Base.length-Tuple{MatrixDistribution}","page":"Matrix-variate Distributions","title":"Base.length","text":"length(d::MatrixDistribution)\n\nThe length (i.e number of elements) of each sample from the distribution d.\n\n\n\n\n\n","category":"method"},{"location":"matrix/#LinearAlgebra.rank-Tuple{MatrixDistribution}","page":"Matrix-variate Distributions","title":"LinearAlgebra.rank","text":"rank(d::MatrixDistribution)\n\nThe rank of each sample from the distribution d.\n\n\n\n\n\n","category":"method"},{"location":"matrix/#Statistics.mean-Tuple{MatrixDistribution}","page":"Matrix-variate Distributions","title":"Statistics.mean","text":"mean(d::MatrixDistribution)\n\nReturn the mean matrix of d.\n\n\n\n\n\n","category":"method"},{"location":"matrix/#Statistics.var-Tuple{MatrixDistribution}","page":"Matrix-variate Distributions","title":"Statistics.var","text":"var(d::MatrixDistribution)\n\nCompute the matrix of element-wise variances for distribution d.\n\n\n\n\n\n","category":"method"},{"location":"matrix/#Statistics.cov-Tuple{MatrixDistribution}","page":"Matrix-variate Distributions","title":"Statistics.cov","text":"cov(d::MatrixDistribution)\n\nCompute the covariance matrix for vec(X), where X is a random matrix with distribution d.\n\n\n\n\n\n","category":"method"},{"location":"matrix/#Distributions.pdf-Tuple{MatrixDistribution, AbstractMatrix{<:Real}}","page":"Matrix-variate Distributions","title":"Distributions.pdf","text":"pdf(d::Distribution{ArrayLikeVariate{N}}, x::AbstractArray{<:Real,N}) where {N}\n\nEvaluate the probability density function of d at x.\n\nThis function checks if the size of x is compatible with distribution d. This check can be disabled by using @inbounds.\n\nImplementation\n\nInstead of pdf one should implement _pdf(d, x) which does not have to check the size of x. However, since the default definition of pdf(d, x) falls back to logpdf(d, x) usually it is sufficient to implement logpdf.\n\nSee also: logpdf.\n\n\n\n\n\n","category":"method"},{"location":"matrix/#Distributions.logpdf-Tuple{MatrixDistribution, AbstractMatrix{<:Real}}","page":"Matrix-variate Distributions","title":"Distributions.logpdf","text":"logpdf(d::Distribution{ArrayLikeVariate{N}}, x::AbstractArray{<:Real,N}) where {N}\n\nEvaluate the logarithm of the probability density function of d at x.\n\nThis function checks if the size of x is compatible with distribution d. This check can be disabled by using @inbounds.\n\nImplementation\n\nInstead of logpdf one should implement _logpdf(d, x) which does not have to check the size of x.\n\nSee also: pdf.\n\n\n\n\n\n","category":"method"},{"location":"matrix/#Distributions","page":"Matrix-variate Distributions","title":"Distributions","text":"","category":"section"},{"location":"matrix/","page":"Matrix-variate Distributions","title":"Matrix-variate Distributions","text":"MatrixNormal\nWishart\nInverseWishart\nMatrixTDist\nMatrixBeta\nMatrixFDist\nLKJ","category":"page"},{"location":"matrix/#Distributions.MatrixNormal","page":"Matrix-variate Distributions","title":"Distributions.MatrixNormal","text":"MatrixNormal(M, U, V)\n\nM::AbstractMatrix n x p mean\nU::AbstractPDMat n x n row covariance\nV::AbstractPDMat p x p column covariance\n\nThe matrix normal distribution generalizes the multivariate normal distribution to ntimes p real matrices mathbfX. If mathbfXsim textrmMN_np(mathbfM mathbfU mathbfV), then its probability density function is\n\nf(mathbfXmathbfM mathbfU mathbfV) = fracexpleft( -frac12 mathrmtrleft mathbfV^-1 (mathbfX - mathbfM)^rmT mathbfU^-1 (mathbfX - mathbfM) right right)(2pi)^np2 mathbfV^n2 mathbfU^p2\n\nmathbfXsim textrmMN_np(mathbfMmathbfUmathbfV) if and only if textvec(mathbfX)sim textrmN(textvec(mathbfM)mathbfVotimesmathbfU).\n\n\n\n\n\n","category":"type"},{"location":"matrix/#Distributions.Wishart","page":"Matrix-variate Distributions","title":"Distributions.Wishart","text":"Wishart(ν, S)\n\nν::Real degrees of freedom (whole number or a real number greater than p - 1)\nS::AbstractPDMat p x p scale matrix\n\nThe Wishart distribution generalizes the gamma distribution to ptimes p real, positive semidefinite matrices mathbfH.\n\nIf nup-1, then mathbfHsim textrmW_p(nu mathbfS) has rank p and its probability density function is\n\nf(mathbfHnumathbfS) = frac12^nu p2 leftmathbfSright^nu2 Gamma_pleft(frac nu2right ) leftmathbfHright^(nu-p-1)2 e^-(12)operatornametr(mathbfS^-1mathbfH)\n\nIf nuleq p-1, then mathbfH is rank nu and it has a density with respect to a suitably chosen volume element on the space of positive semidefinite matrices. See here.\n\nFor integer nu, a random matrix given by\n\nmathbfH = mathbfXmathbfX^rmT\nquadmathbfX sim textrmMN_pnu(mathbf0 mathbfS mathbfI_nu)\n\nhas mathbfHsim textrmW_p(nu mathbfS). For non-integer nu, Wishart matrices can be generated via the Bartlett decomposition.\n\n\n\n\n\n","category":"type"},{"location":"matrix/#Distributions.InverseWishart","page":"Matrix-variate Distributions","title":"Distributions.InverseWishart","text":"InverseWishart(ν, Ψ)\n\nν::Real degrees of freedom (greater than p - 1)\nΨ::AbstractPDMat p x p scale matrix\n\nThe inverse Wishart distribution generalizes the inverse gamma distribution to ptimes p real, positive definite matrices boldsymbolSigma. If boldsymbolSigmasim textrmIW_p(nuboldsymbolPsi), then its probability density function is\n\nf(boldsymbolSigma nuboldsymbolPsi) =\nfracleftboldsymbolPsiright^nu22^nu p2Gamma_p(fracnu2) leftboldsymbolSigmaright^-(nu+p+1)2 e^-frac12operatornametr(boldsymbolPsiboldsymbolSigma^-1)\n\nmathbfHsim textrmW_p(nu mathbfS) if and only if mathbfH^-1sim textrmIW_p(nu mathbfS^-1).\n\n\n\n\n\n","category":"type"},{"location":"matrix/#Distributions.MatrixTDist","page":"Matrix-variate Distributions","title":"Distributions.MatrixTDist","text":"MatrixTDist(ν, M, Σ, Ω)\n\nν::Real positive degrees of freedom\nM::AbstractMatrix n x p location\nΣ::AbstractPDMat n x n scale\nΩ::AbstractPDMat p x p scale\n\nThe matrix t-distribution generalizes the multivariate t-distribution to ntimes p real matrices mathbfX. If mathbfXsim textrmMT_np(numathbfMboldsymbolSigma boldsymbolOmega), then its probability density function is\n\nf(mathbfX numathbfMboldsymbolSigma boldsymbolOmega) =\nc_0 leftmathbfI_n + boldsymbolSigma^-1(mathbfX - mathbfM)boldsymbolOmega^-1(mathbfX-mathbfM)^rmTright^-fracnu+n+p-12\n\nwhere\n\nc_0=fracGamma_pleft(fracnu+n+p-12right)(pi)^fracnp2 Gamma_pleft(fracnu+p-12right) boldsymbolOmega^-fracn2 boldsymbolSigma^-fracp2\n\nIf the joint distribution p(mathbfSmathbfX)=p(mathbfS)p(mathbfXmathbfS) is given by\n\nbeginaligned\nmathbfSsim textrmIW_n(nu + n - 1 boldsymbolSigma)\nmathbfXmathbfSsim textrmMN_np(mathbfM mathbfS boldsymbolOmega)\nendaligned\n\nthen the marginal distribution of mathbfX is textrmMT_np(numathbfMboldsymbolSigmaboldsymbolOmega).\n\n\n\n\n\n","category":"type"},{"location":"matrix/#Distributions.MatrixBeta","page":"Matrix-variate Distributions","title":"Distributions.MatrixBeta","text":"MatrixBeta(p, n1, n2)\n\np::Int dimension\nn1::Real degrees of freedom (greater than p - 1)\nn2::Real degrees of freedom (greater than p - 1)\n\nThe matrix beta distribution generalizes the beta distribution to ptimes p real matrices mathbfU for which mathbfU and mathbfI_p-mathbfU are both positive definite. If mathbfUsim textrmMB_p(n_12 n_22), then its probability density function is\n\nf(mathbfU n_1n_2) = fracGamma_p(fracn_1+n_22)Gamma_p(fracn_12)Gamma_p(fracn_22)\nmathbfU^(n_1-p-1)2leftmathbfI_p-mathbfUright^(n_2-p-1)2\n\nIf mathbfS_1sim textrmW_p(n_1mathbfI_p) and mathbfS_2sim textrmW_p(n_2mathbfI_p) are independent, and we use mathcalL(cdot) to denote the lower Cholesky factor, then\n\nmathbfU=mathcalL(mathbfS_1+mathbfS_2)^-1mathbfS_1mathcalL(mathbfS_1+mathbfS_2)^-rmT\n\nhas mathbfUsim textrmMB_p(n_12 n_22).\n\n\n\n\n\n","category":"type"},{"location":"matrix/#Distributions.MatrixFDist","page":"Matrix-variate Distributions","title":"Distributions.MatrixFDist","text":"MatrixFDist(n1, n2, B)\n\nn1::Real degrees of freedom (greater than p - 1)\nn2::Real degrees of freedom (greater than p - 1)\nB::AbstractPDMat p x p scale\n\nThe matrix F-distribution (sometimes called the matrix beta type II distribution) generalizes the F-Distribution to ptimes p real, positive definite matrices boldsymbolSigma. If boldsymbolSigmasim textrmMF_p(n_12n_22mathbfB), then its probability density function is\n\nf(boldsymbolSigma n_1n_2mathbfB) =\nfracGamma_p(fracn_1+n_22)Gamma_p(fracn_12)Gamma_p(fracn_22)\nmathbfB^n_22boldsymbolSigma^(n_1-p-1)2mathbfB+boldsymbolSigma^-(n_1+n_2)2\n\nIf the joint distribution p(boldsymbolPsiboldsymbolSigma)=p(boldsymbolPsi)p(boldsymbolSigmaboldsymbolPsi) is given by\n\nbeginaligned\nboldsymbolPsisim textrmW_p(n_1 mathbfB)\nboldsymbolSigmaboldsymbolPsisim textrmIW_p(n_2 boldsymbolPsi)\nendaligned\n\nthen the marginal distribution of boldsymbolSigma is textrmMF_p(n_12n_22mathbfB).\n\n\n\n\n\n","category":"type"},{"location":"matrix/#Distributions.LKJ","page":"Matrix-variate Distributions","title":"Distributions.LKJ","text":"LKJ(d, η)\n\nd::Int dimension\nη::Real positive shape\n\nThe LKJ distribution is a distribution over dtimes d real correlation matrices (positive-definite matrices with ones on the diagonal). If mathbfRsim textrmLKJ_d(eta), then its probability density function is\n\nf(mathbfReta) = leftprod_k=1^d-1pi^frack2\nfracGammaleft(eta+fracd-1-k2right)Gammaleft(eta+fracd-12right)right^-1\nmathbfR^eta-1\n\nIf eta = 1, then the LKJ distribution is uniform over the space of correlation matrices.\n\nnote: Note\nif a Cholesky factor of the correlation matrix is desired, it is more efficient to use LKJCholesky, which avoids factorizing the matrix.\n\n\n\n\n\n","category":"type"},{"location":"matrix/#Internal-Methods-(for-creating-your-own-matrix-variate-distributions)","page":"Matrix-variate Distributions","title":"Internal Methods (for creating your own matrix-variate distributions)","text":"","category":"section"},{"location":"matrix/","page":"Matrix-variate Distributions","title":"Matrix-variate Distributions","text":"Distributions._logpdf(d::MatrixDistribution, x::AbstractMatrix{<:Real})","category":"page"},{"location":"matrix/#Index","page":"Matrix-variate Distributions","title":"Index","text":"","category":"section"},{"location":"matrix/","page":"Matrix-variate Distributions","title":"Matrix-variate Distributions","text":"Pages = [\"matrix.md\"]","category":"page"},{"location":"extends/#Create-New-Samplers-and-Distributions","page":"Create New Samplers and Distributions","title":"Create New Samplers and Distributions","text":"","category":"section"},{"location":"extends/","page":"Create New Samplers and Distributions","title":"Create New Samplers and Distributions","text":"Whereas this package already provides a large collection of common distributions out of the box, there are still occasions where you want to create new distributions (e.g. your application requires a special kind of distribution, or you want to contribute to this package).","category":"page"},{"location":"extends/","page":"Create New Samplers and Distributions","title":"Create New Samplers and Distributions","text":"Generally, you don't have to implement every API method listed in the documentation. This package provides a series of generic functions that turn a small number of internal methods into user-end API methods. What you need to do is to implement this small set of internal methods for your distributions.","category":"page"},{"location":"extends/","page":"Create New Samplers and Distributions","title":"Create New Samplers and Distributions","text":"By default, Discrete sampleables have the support of type Int while Continuous sampleables have the support of type Float64. If this assumption does not hold for your new distribution or sampler, or its ValueSupport is neither Discrete nor Continuous, you should implement the eltype method in addition to the other methods listed below.","category":"page"},{"location":"extends/","page":"Create New Samplers and Distributions","title":"Create New Samplers and Distributions","text":"Note: The methods that need to be implemented are different for distributions of different variate forms.","category":"page"},{"location":"extends/#Create-a-Sampler","page":"Create New Samplers and Distributions","title":"Create a Sampler","text":"","category":"section"},{"location":"extends/","page":"Create New Samplers and Distributions","title":"Create New Samplers and Distributions","text":"Unlike full-fledged distributions, a sampler, in general, only provides limited functionalities, mainly to support sampling.","category":"page"},{"location":"extends/#Univariate-Sampler","page":"Create New Samplers and Distributions","title":"Univariate Sampler","text":"","category":"section"},{"location":"extends/","page":"Create New Samplers and Distributions","title":"Create New Samplers and Distributions","text":"To implement a univariate sampler, one can define a subtype (say Spl) of Sampleable{Univariate,S} (where S can be Discrete or Continuous), and provide a rand method, as","category":"page"},{"location":"extends/","page":"Create New Samplers and Distributions","title":"Create New Samplers and Distributions","text":"function rand(rng::AbstractRNG, s::Spl)\n # ... generate a single sample from s\nend","category":"page"},{"location":"extends/","page":"Create New Samplers and Distributions","title":"Create New Samplers and Distributions","text":"The package already implements a vectorized version of rand! and rand that repeatedly calls the scalar version to generate multiple samples; as wells as a one arg version that uses the default random number generator.","category":"page"},{"location":"extends/#Multivariate-Sampler","page":"Create New Samplers and Distributions","title":"Multivariate Sampler","text":"","category":"section"},{"location":"extends/","page":"Create New Samplers and Distributions","title":"Create New Samplers and Distributions","text":"To implement a multivariate sampler, one can define a subtype of Sampleable{Multivariate,S}, and provide both length and _rand! methods, as","category":"page"},{"location":"extends/","page":"Create New Samplers and Distributions","title":"Create New Samplers and Distributions","text":"Base.length(s::Spl) = ... # return the length of each sample\n\nfunction _rand!(rng::AbstractRNG, s::Spl, x::AbstractVector{T}) where T<:Real\n # ... generate a single vector sample to x\nend","category":"page"},{"location":"extends/","page":"Create New Samplers and Distributions","title":"Create New Samplers and Distributions","text":"This function can assume that the dimension of x is correct, and doesn't need to perform dimension checking.","category":"page"},{"location":"extends/","page":"Create New Samplers and Distributions","title":"Create New Samplers and Distributions","text":"The package implements both rand and rand! as follows (which you don't need to implement in general):","category":"page"},{"location":"extends/","page":"Create New Samplers and Distributions","title":"Create New Samplers and Distributions","text":"function _rand!(rng::AbstractRNG, s::Sampleable{Multivariate}, A::DenseMatrix)\n for i = 1:size(A,2)\n _rand!(rng, s, view(A,:,i))\n end\n return A\nend\n\nfunction rand!(rng::AbstractRNG, s::Sampleable{Multivariate}, A::AbstractVector)\n length(A) == length(s) ||\n throw(DimensionMismatch(\"Output size inconsistent with sample length.\"))\n _rand!(rng, s, A)\nend\n\nfunction rand!(rng::AbstractRNG, s::Sampleable{Multivariate}, A::DenseMatrix)\n size(A,1) == length(s) ||\n throw(DimensionMismatch(\"Output size inconsistent with sample length.\"))\n _rand!(rng, s, A)\nend\n\nrand(rng::AbstractRNG, s::Sampleable{Multivariate,S}) where {S<:ValueSupport} =\n _rand!(rng, s, Vector{eltype(S)}(length(s)))\n\nrand(rng::AbstractRNG, s::Sampleable{Multivariate,S}, n::Int) where {S<:ValueSupport} =\n _rand!(rng, s, Matrix{eltype(S)}(length(s), n))","category":"page"},{"location":"extends/","page":"Create New Samplers and Distributions","title":"Create New Samplers and Distributions","text":"If there is a more efficient method to generate multiple vector samples in a batch, one should provide the following method","category":"page"},{"location":"extends/","page":"Create New Samplers and Distributions","title":"Create New Samplers and Distributions","text":"function _rand!(rng::AbstractRNG, s::Spl, A::DenseMatrix{T}) where T<:Real\n # ... generate multiple vector samples in batch\nend","category":"page"},{"location":"extends/","page":"Create New Samplers and Distributions","title":"Create New Samplers and Distributions","text":"Remember that each column of A is a sample.","category":"page"},{"location":"extends/#Matrix-variate-Sampler","page":"Create New Samplers and Distributions","title":"Matrix-variate Sampler","text":"","category":"section"},{"location":"extends/","page":"Create New Samplers and Distributions","title":"Create New Samplers and Distributions","text":"To implement a multivariate sampler, one can define a subtype of Sampleable{Multivariate,S}, and provide both size and _rand! methods, as","category":"page"},{"location":"extends/","page":"Create New Samplers and Distributions","title":"Create New Samplers and Distributions","text":"Base.size(s::Spl) = ... # the size of each matrix sample\n\nfunction _rand!(rng::AbstractRNG, s::Spl, x::DenseMatrix{T}) where T<:Real\n # ... generate a single matrix sample to x\nend","category":"page"},{"location":"extends/","page":"Create New Samplers and Distributions","title":"Create New Samplers and Distributions","text":"Note that you can assume x has correct dimensions in _rand! and don't have to perform dimension checking, the generic rand and rand! will do dimension checking and array allocation for you.","category":"page"},{"location":"extends/#Create-a-Distribution","page":"Create New Samplers and Distributions","title":"Create a Distribution","text":"","category":"section"},{"location":"extends/","page":"Create New Samplers and Distributions","title":"Create New Samplers and Distributions","text":"Most distributions should implement a sampler method to improve batch sampling efficiency.","category":"page"},{"location":"extends/","page":"Create New Samplers and Distributions","title":"Create New Samplers and Distributions","text":"sampler(d::Distribution)","category":"page"},{"location":"extends/#Distributions.sampler-Tuple{Distribution}","page":"Create New Samplers and Distributions","title":"Distributions.sampler","text":"sampler(d::Distribution) -> Sampleable\nsampler(s::Sampleable) -> s\n\nSamplers can often rely on pre-computed quantities (that are not parameters themselves) to improve efficiency. If such a sampler exists, it can be provided with this sampler method, which would be used for batch sampling. The general fallback is sampler(d::Distribution) = d.\n\n\n\n\n\n","category":"method"},{"location":"extends/#Univariate-Distribution","page":"Create New Samplers and Distributions","title":"Univariate Distribution","text":"","category":"section"},{"location":"extends/","page":"Create New Samplers and Distributions","title":"Create New Samplers and Distributions","text":"A univariate distribution type should be defined as a subtype of DiscreteUnivarateDistribution or ContinuousUnivariateDistribution.","category":"page"},{"location":"extends/","page":"Create New Samplers and Distributions","title":"Create New Samplers and Distributions","text":"The following methods need to be implemented for each univariate distribution type:","category":"page"},{"location":"extends/","page":"Create New Samplers and Distributions","title":"Create New Samplers and Distributions","text":"rand(::AbstractRNG, d::UnivariateDistribution)\nsampler(d::Distribution)\nlogpdf(d::UnivariateDistribution, x::Real)\ncdf(d::UnivariateDistribution, x::Real)\nquantile(d::UnivariateDistribution, q::Real)\nminimum(d::UnivariateDistribution)\nmaximum(d::UnivariateDistribution)\ninsupport(d::UnivariateDistribution, x::Real)","category":"page"},{"location":"extends/","page":"Create New Samplers and Distributions","title":"Create New Samplers and Distributions","text":"It is also recommended that one also implements the following statistics functions:","category":"page"},{"location":"extends/","page":"Create New Samplers and Distributions","title":"Create New Samplers and Distributions","text":"mean(d::UnivariateDistribution)\nvar(d::UnivariateDistribution)\nmodes(d::UnivariateDistribution)\nmode(d::UnivariateDistribution)\nskewness(d::UnivariateDistribution)\nkurtosis(d::Distribution, ::Bool)\nentropy(d::UnivariateDistribution, ::Real)\nmgf(d::UnivariateDistribution, ::Any)\ncf(d::UnivariateDistribution, ::Any)","category":"page"},{"location":"extends/","page":"Create New Samplers and Distributions","title":"Create New Samplers and Distributions","text":"You may refer to the source file src/univariates.jl to see details about how generic fallback functions for univariates are implemented.","category":"page"},{"location":"extends/#Create-a-Multivariate-Distribution","page":"Create New Samplers and Distributions","title":"Create a Multivariate Distribution","text":"","category":"section"},{"location":"extends/","page":"Create New Samplers and Distributions","title":"Create New Samplers and Distributions","text":"A multivariate distribution type should be defined as a subtype of DiscreteMultivarateDistribution or ContinuousMultivariateDistribution.","category":"page"},{"location":"extends/","page":"Create New Samplers and Distributions","title":"Create New Samplers and Distributions","text":"The following methods need to be implemented for each multivariate distribution type:","category":"page"},{"location":"extends/","page":"Create New Samplers and Distributions","title":"Create New Samplers and Distributions","text":"length(d::MultivariateDistribution)\nsampler(d::Distribution)\neltype(d::Distribution)\nDistributions._rand!(::AbstractRNG, d::MultivariateDistribution, x::AbstractArray)\nDistributions._logpdf(d::MultivariateDistribution, x::AbstractArray)","category":"page"},{"location":"extends/","page":"Create New Samplers and Distributions","title":"Create New Samplers and Distributions","text":"Note that if there exist faster methods for batch evaluation, one should override _logpdf! and _pdf!.","category":"page"},{"location":"extends/","page":"Create New Samplers and Distributions","title":"Create New Samplers and Distributions","text":"Furthermore, the generic loglikelihood function repeatedly calls _logpdf. If there is a better way to compute the log-likelihood, one should override loglikelihood.","category":"page"},{"location":"extends/","page":"Create New Samplers and Distributions","title":"Create New Samplers and Distributions","text":"It is also recommended that one also implements the following statistics functions:","category":"page"},{"location":"extends/","page":"Create New Samplers and Distributions","title":"Create New Samplers and Distributions","text":"mean(d::MultivariateDistribution)\nvar(d::MultivariateDistribution)\nentropy(d::MultivariateDistribution)\ncov(d::MultivariateDistribution)","category":"page"},{"location":"extends/#Create-a-Matrix-Variate-Distribution","page":"Create New Samplers and Distributions","title":"Create a Matrix-Variate Distribution","text":"","category":"section"},{"location":"extends/","page":"Create New Samplers and Distributions","title":"Create New Samplers and Distributions","text":"A matrix-variate distribution type should be defined as a subtype of DiscreteMatrixDistribution or ContinuousMatrixDistribution.","category":"page"},{"location":"extends/","page":"Create New Samplers and Distributions","title":"Create New Samplers and Distributions","text":"The following methods need to be implemented for each matrix-variate distribution type:","category":"page"},{"location":"extends/","page":"Create New Samplers and Distributions","title":"Create New Samplers and Distributions","text":"size(d::MatrixDistribution)\nDistributions._rand!(rng::AbstractRNG, d::MatrixDistribution, A::AbstractMatrix)\nsampler(d::MatrixDistribution)\nDistributions._logpdf(d::MatrixDistribution, x::AbstractArray)","category":"page"},{"location":"mixture/#Mixture-Models","page":"Mixture Models","title":"Mixture Models","text":"","category":"section"},{"location":"mixture/","page":"Mixture Models","title":"Mixture Models","text":"A mixture model is a probabilistic distribution that combines a set of components to represent the overall distribution. Generally, the probability density/mass function is given by a convex combination of the pdf/pmf of individual components, as","category":"page"},{"location":"mixture/","page":"Mixture Models","title":"Mixture Models","text":"f_mix(x Theta pi) = sum_k=1^K pi_k f(x theta_k)","category":"page"},{"location":"mixture/","page":"Mixture Models","title":"Mixture Models","text":"A mixture model is characterized by a set of component parameters Theta=theta_1 ldots theta_K and a prior distribution pi over these components.","category":"page"},{"location":"mixture/#Type-Hierarchy","page":"Mixture Models","title":"Type Hierarchy","text":"","category":"section"},{"location":"mixture/","page":"Mixture Models","title":"Mixture Models","text":"This package introduces a type MixtureModel, defined as follows, to represent a mixture model:","category":"page"},{"location":"mixture/","page":"Mixture Models","title":"Mixture Models","text":"abstract type AbstractMixtureModel{VF<:VariateForm,VS<:ValueSupport} <: Distribution{VF, VS} end\n\nstruct MixtureModel{VF<:VariateForm,VS<:ValueSupport,Component<:Distribution} <: AbstractMixtureModel{VF,VS}\n components::Vector{Component}\n prior::Categorical\nend\n\nconst UnivariateMixture = AbstractMixtureModel{Univariate}\nconst MultivariateMixture = AbstractMixtureModel{Multivariate}","category":"page"},{"location":"mixture/","page":"Mixture Models","title":"Mixture Models","text":"Remarks:","category":"page"},{"location":"mixture/","page":"Mixture Models","title":"Mixture Models","text":"We introduce AbstractMixtureModel as a base type, which allows one to define a mixture model with different internal implementations, while still being able to leverage the common methods defined for AbstractMixtureModel.","category":"page"},{"location":"mixture/","page":"Mixture Models","title":"Mixture Models","text":"AbstractMixtureModel","category":"page"},{"location":"mixture/#Distributions.AbstractMixtureModel","page":"Mixture Models","title":"Distributions.AbstractMixtureModel","text":"All subtypes of AbstractMixtureModel should implement the following methods:\n\nncomponents(d): the number of components\ncomponent(d, k): return the k-th component\nprobs(d): return a vector of prior probabilities over components.\n\n\n\n\n\n","category":"type"},{"location":"mixture/","page":"Mixture Models","title":"Mixture Models","text":"The MixtureModel is a parametric type, with three type parameters:\nVF: the variate form, which can be Univariate, Multivariate, or Matrixvariate.\nVS: the value support, which can be Continuous or Discrete.\nComponent: the type of component distributions, e.g. Normal.\nWe define two aliases: UnivariateMixture and MultivariateMixture.","category":"page"},{"location":"mixture/","page":"Mixture Models","title":"Mixture Models","text":"With such a type system, the type for a mixture of univariate normal distributions can be written as","category":"page"},{"location":"mixture/","page":"Mixture Models","title":"Mixture Models","text":"MixtureModel{Univariate,Continuous,Normal}","category":"page"},{"location":"mixture/#Constructors","page":"Mixture Models","title":"Constructors","text":"","category":"section"},{"location":"mixture/","page":"Mixture Models","title":"Mixture Models","text":"MixtureModel","category":"page"},{"location":"mixture/#Distributions.MixtureModel","page":"Mixture Models","title":"Distributions.MixtureModel","text":"MixtureModel{VF<:VariateForm,VS<:ValueSupport,C<:Distribution,CT<:Real} A mixture of distributions, parametrized on:\n\nVF,VS variate and support\nC distribution family of the mixture\nCT the type for probabilities of the prior\n\n\n\n\n\n","category":"type"},{"location":"mixture/","page":"Mixture Models","title":"Mixture Models","text":"Examples","category":"page"},{"location":"mixture/","page":"Mixture Models","title":"Mixture Models","text":"# constructs a mixture of three normal distributions,\n# with prior probabilities [0.2, 0.5, 0.3]\nMixtureModel(Normal[\n Normal(-2.0, 1.2),\n Normal(0.0, 1.0),\n Normal(3.0, 2.5)], [0.2, 0.5, 0.3])\n\n# if the components share the same prior, the prior vector can be omitted\nMixtureModel(Normal[\n Normal(-2.0, 1.2),\n Normal(0.0, 1.0),\n Normal(3.0, 2.5)])\n\n# Since all components have the same type, we can use a simplified syntax\nMixtureModel(Normal, [(-2.0, 1.2), (0.0, 1.0), (3.0, 2.5)], [0.2, 0.5, 0.3])\n\n# Again, one can omit the prior vector when all components share the same prior\nMixtureModel(Normal, [(-2.0, 1.2), (0.0, 1.0), (3.0, 2.5)])\n\n# The following example shows how one can make a Gaussian mixture\n# where all components share the same unit variance\nMixtureModel(map(u -> Normal(u, 1.0), [-2.0, 0.0, 3.0]))","category":"page"},{"location":"mixture/#Common-Interface","page":"Mixture Models","title":"Common Interface","text":"","category":"section"},{"location":"mixture/","page":"Mixture Models","title":"Mixture Models","text":"All subtypes of AbstractMixtureModel (obviously including MixtureModel) provide the following two methods:","category":"page"},{"location":"mixture/","page":"Mixture Models","title":"Mixture Models","text":"components(::AbstractMixtureModel)\nprobs(::AbstractMixtureModel)\nDistributions.component_type(::AbstractMixtureModel)","category":"page"},{"location":"mixture/#Distributions.components-Tuple{AbstractMixtureModel}","page":"Mixture Models","title":"Distributions.components","text":"components(d::AbstractMixtureModel)\n\nGet a list of components of the mixture model d.\n\n\n\n\n\n","category":"method"},{"location":"mixture/#Distributions.probs-Tuple{AbstractMixtureModel}","page":"Mixture Models","title":"Distributions.probs","text":"probs(d::AbstractMixtureModel)\n\nGet the vector of prior probabilities of all components of d.\n\n\n\n\n\n","category":"method"},{"location":"mixture/#Distributions.component_type-Tuple{AbstractMixtureModel}","page":"Mixture Models","title":"Distributions.component_type","text":"component_type(d::AbstractMixtureModel)\n\nThe type of the components of d.\n\n\n\n\n\n","category":"method"},{"location":"mixture/","page":"Mixture Models","title":"Mixture Models","text":"In addition, for all subtypes of UnivariateMixture and MultivariateMixture, the following generic methods are provided:","category":"page"},{"location":"mixture/","page":"Mixture Models","title":"Mixture Models","text":"mean(::AbstractMixtureModel)\nvar(::UnivariateMixture)\nlength(::MultivariateMixture)\npdf(::AbstractMixtureModel, ::Any)\nlogpdf(::AbstractMixtureModel, ::Any)\nrand(::AbstractMixtureModel)\nrand!(::AbstractMixtureModel, ::AbstractArray)","category":"page"},{"location":"mixture/#Statistics.mean-Tuple{AbstractMixtureModel}","page":"Mixture Models","title":"Statistics.mean","text":"mean(d::Union{UnivariateMixture, MultivariateMixture})\n\nCompute the overall mean (expectation).\n\n\n\n\n\n","category":"method"},{"location":"mixture/#Statistics.var-Tuple{UnivariateMixture}","page":"Mixture Models","title":"Statistics.var","text":"var(d::UnivariateMixture)\n\nCompute the overall variance (only for UnivariateMixture).\n\n\n\n\n\n","category":"method"},{"location":"mixture/#Base.length-Tuple{MultivariateMixture}","page":"Mixture Models","title":"Base.length","text":"length(d::MultivariateMixture)\n\nThe length of each sample (only for Multivariate).\n\n\n\n\n\n","category":"method"},{"location":"mixture/#Distributions.pdf-Tuple{AbstractMixtureModel, Any}","page":"Mixture Models","title":"Distributions.pdf","text":"pdf(d::Union{UnivariateMixture, MultivariateMixture}, x)\n\nEvaluate the (mixed) probability density function over x. Here, x can be a single sample or an array of multiple samples.\n\n\n\n\n\n","category":"method"},{"location":"mixture/#Distributions.logpdf-Tuple{AbstractMixtureModel, Any}","page":"Mixture Models","title":"Distributions.logpdf","text":"logpdf(d::Union{UnivariateMixture, MultivariateMixture}, x)\n\nEvaluate the logarithm of the (mixed) probability density function over x. Here, x can be a single sample or an array of multiple samples.\n\n\n\n\n\n","category":"method"},{"location":"mixture/#Base.rand-Tuple{AbstractMixtureModel}","page":"Mixture Models","title":"Base.rand","text":"rand(d::Union{UnivariateMixture, MultivariateMixture})\n\nDraw a sample from the mixture model d.\n\nrand(d::Union{UnivariateMixture, MultivariateMixture}, n)\n\nDraw n samples from d.\n\n\n\n\n\n","category":"method"},{"location":"mixture/#Random.rand!-Tuple{AbstractMixtureModel, AbstractArray}","page":"Mixture Models","title":"Random.rand!","text":"rand!(d::Union{UnivariateMixture, MultivariateMixture}, r::AbstractArray)\n\nDraw multiple samples from d and write them to r.\n\n\n\n\n\n","category":"method"},{"location":"mixture/#Estimation","page":"Mixture Models","title":"Estimation","text":"","category":"section"},{"location":"mixture/","page":"Mixture Models","title":"Mixture Models","text":"There are several methods for the estimation of mixture models from data, and this problem remains an open research topic. This package does not provide facilities for estimating mixture models. One can resort to other packages, e.g. GaussianMixtures.jl, for this purpose.","category":"page"},{"location":"density_interface/#Support-for-DensityInterface","page":"Support for DensityInterface","title":"Support for DensityInterface","text":"","category":"section"},{"location":"density_interface/","page":"Support for DensityInterface","title":"Support for DensityInterface","text":"Distributions supports DensityInterface for distributions.","category":"page"},{"location":"density_interface/","page":"Support for DensityInterface","title":"Support for DensityInterface","text":"A probability distribution has a probability density, so DensityInterface.DensityKind(::Distribution) === HasDensity().","category":"page"},{"location":"density_interface/","page":"Support for DensityInterface","title":"Support for DensityInterface","text":"For single variate values x, DensityInterface.logdensityof(d::Distribution, x) is equivalent to logpdf(d, x) and DensityInterface.densityof(d::Distribution, x) is equivalent to pdf(d, x).","category":"page"},{"location":"truncate/#Truncated-Distributions","page":"Truncated Distributions","title":"Truncated Distributions","text":"","category":"section"},{"location":"truncate/","page":"Truncated Distributions","title":"Truncated Distributions","text":"The package provides the truncated function which creates the most appropriate distribution to represent a truncated version of a given distribution.","category":"page"},{"location":"truncate/","page":"Truncated Distributions","title":"Truncated Distributions","text":"A truncated distribution can be constructed using the following signature:","category":"page"},{"location":"truncate/","page":"Truncated Distributions","title":"Truncated Distributions","text":"truncated","category":"page"},{"location":"truncate/#Distributions.truncated","page":"Truncated Distributions","title":"Distributions.truncated","text":"truncated(d0::UnivariateDistribution; [lower::Real], [upper::Real])\ntruncated(d0::UnivariateDistribution, lower::Real, upper::Real)\n\nA truncated distribution d of a distribution d0 to the interval l u=[lower, upper] has the probability density (mass) function:\n\nf(x d_0 l u) = fracf_d_0(x)P_Z sim d_0(l le Z le u) quad x in l u\n\nwhere f_d_0(x) is the probability density (mass) function of d_0.\n\nThe function throws an error if l u.\n\ntruncated(d0; lower=l) # d0 left-truncated to the interval [l, Inf)\ntruncated(d0; upper=u) # d0 right-truncated to the interval (-Inf, u]\ntruncated(d0; lower=l, upper=u) # d0 truncated to the interval [l, u]\ntruncated(d0, l, u) # d0 truncated to the interval [l, u]\n\nThe function falls back to constructing a Truncated wrapper.\n\nImplementation\n\nTo implement a specialized truncated form for distributions of type D, one or more of the following methods should be implemented:\n\ntruncated(d0::D, l::T, u::T) where {T <: Real}: interval-truncated\ntruncated(d0::D, ::Nothing, u::Real): right-truncated\ntruncated(d0::D, l::Real, u::Nothing): left-truncated\n\n\n\n\n\n","category":"function"},{"location":"truncate/","page":"Truncated Distributions","title":"Truncated Distributions","text":"In the general case, this will create a Truncated{typeof(d)} structure, defined as follows:","category":"page"},{"location":"truncate/","page":"Truncated Distributions","title":"Truncated Distributions","text":"Truncated","category":"page"},{"location":"truncate/#Distributions.Truncated","page":"Truncated Distributions","title":"Distributions.Truncated","text":"Truncated\n\nGeneric wrapper for a truncated distribution.\n\nThe truncated normal distribution is a particularly important one in the family of truncated distributions. Unlike the general case, truncated normal distributions support mean, mode, modes, var, std, and entropy.\n\n\n\n\n\n","category":"type"},{"location":"truncate/","page":"Truncated Distributions","title":"Truncated Distributions","text":"Many functions, including those for the evaluation of pdf and sampling, are defined for all truncated univariate distributions:","category":"page"},{"location":"truncate/","page":"Truncated Distributions","title":"Truncated Distributions","text":"maximum(::UnivariateDistribution)\nminimum(::UnivariateDistribution)\ninsupport(::UnivariateDistribution, x::Any)\npdf(::UnivariateDistribution, ::Real)\nlogpdf(::UnivariateDistribution, ::Real)\ncdf(::UnivariateDistribution, ::Real)\nlogcdf(::UnivariateDistribution, ::Real)\nlogdiffcdf(::UnivariateDistribution, ::T, ::T) where {T <: Real}\nccdf(::UnivariateDistribution, ::Real)\nlogccdf(::UnivariateDistribution, ::Real)\nquantile(::UnivariateDistribution, ::Real)\ncquantile(::UnivariateDistribution, ::Real)\ninvlogcdf(::UnivariateDistribution, ::Real)\ninvlogccdf(::UnivariateDistribution, ::Real)\nrand(::UnivariateDistribution)\nrand!(::UnivariateDistribution, ::AbstractArray)\nmedian(::UnivariateDistribution)","category":"page"},{"location":"truncate/","page":"Truncated Distributions","title":"Truncated Distributions","text":"Functions to compute statistics, such as mean, mode, var, std, and entropy, are not available for generic truncated distributions. Generally, there are no easy ways to compute such quantities due to the complications incurred by truncation. However, these methods are supported for truncated normal distributions Truncated{<:Normal} which can be constructed with truncated(::Normal, ...).","category":"page"},{"location":"fit/#Distribution-Fitting","page":"Distribution Fitting","title":"Distribution Fitting","text":"","category":"section"},{"location":"fit/","page":"Distribution Fitting","title":"Distribution Fitting","text":"This package provides methods to fit a distribution to a given set of samples. Generally, one may write","category":"page"},{"location":"fit/","page":"Distribution Fitting","title":"Distribution Fitting","text":"d = fit(D, x)","category":"page"},{"location":"fit/","page":"Distribution Fitting","title":"Distribution Fitting","text":"This statement fits a distribution of type D to a given dataset x, where x should be an array comprised of all samples. The fit function will choose a reasonable way to fit the distribution, which, in most cases, is maximum likelihood estimation.","category":"page"},{"location":"fit/","page":"Distribution Fitting","title":"Distribution Fitting","text":"note: Note\nOne can use as the first argument simply the distribution name, like Binomial, or a concrete distribution with a type parameter, like Normal{Float64} or Exponential{Float32}. However, in the latter case the type parameter of the distribution will be ignored:julia> fit(Cauchy{Float32}, collect(-4:4))\nCauchy{Float64}(μ=0.0, σ=2.0)","category":"page"},{"location":"fit/#Maximum-Likelihood-Estimation","page":"Distribution Fitting","title":"Maximum Likelihood Estimation","text":"","category":"section"},{"location":"fit/","page":"Distribution Fitting","title":"Distribution Fitting","text":"The function fit_mle is for maximum likelihood estimation.","category":"page"},{"location":"fit/#Synopsis","page":"Distribution Fitting","title":"Synopsis","text":"","category":"section"},{"location":"fit/","page":"Distribution Fitting","title":"Distribution Fitting","text":"fit_mle(D, x)\nfit_mle(D, x, w)","category":"page"},{"location":"fit/#Distributions.fit_mle-Tuple{Any, Any}","page":"Distribution Fitting","title":"Distributions.fit_mle","text":"fit_mle(D, x)\n\nFit a distribution of type D to a given data set x.\n\nFor univariate distribution, x can be an array of arbitrary size.\nFor multivariate distribution, x should be a matrix, where each column is a sample.\n\n\n\n\n\n","category":"method"},{"location":"fit/#Distributions.fit_mle-Tuple{Any, Any, Any}","page":"Distribution Fitting","title":"Distributions.fit_mle","text":"fit_mle(D, x, w)\n\nFit a distribution of type D to a weighted data set x, with weights given by w.\n\nHere, w should be an array with length n, where n is the number of samples contained in x.\n\n\n\n\n\n","category":"method"},{"location":"fit/#Applicable-distributions","page":"Distribution Fitting","title":"Applicable distributions","text":"","category":"section"},{"location":"fit/","page":"Distribution Fitting","title":"Distribution Fitting","text":"The fit_mle method has been implemented for the following distributions:","category":"page"},{"location":"fit/","page":"Distribution Fitting","title":"Distribution Fitting","text":"Univariate:","category":"page"},{"location":"fit/","page":"Distribution Fitting","title":"Distribution Fitting","text":"Bernoulli\nBeta\nBinomial\nCategorical\nDiscreteUniform\nExponential\nLogNormal\nNormal\nGamma\nGeometric\nLaplace\nPareto\nPoisson\nRayleigh\nInverseGaussian\nUniform\nWeibull","category":"page"},{"location":"fit/","page":"Distribution Fitting","title":"Distribution Fitting","text":"Multivariate:","category":"page"},{"location":"fit/","page":"Distribution Fitting","title":"Distribution Fitting","text":"Multinomial\nMvNormal\nDirichlet","category":"page"},{"location":"fit/","page":"Distribution Fitting","title":"Distribution Fitting","text":"For most of these distributions, the usage is as described above. For a few special distributions that require additional information for estimation, we have to use a modified interface:","category":"page"},{"location":"fit/","page":"Distribution Fitting","title":"Distribution Fitting","text":"fit_mle(Binomial, n, x) # n is the number of trials in each experiment\nfit_mle(Binomial, n, x, w)\n\nfit_mle(Categorical, k, x) # k is the space size (i.e. the number of distinct values)\nfit_mle(Categorical, k, x, w)\n\nfit_mle(Categorical, x) # equivalent to fit_mle(Categorical, max(x), x)\nfit_mle(Categorical, x, w)","category":"page"},{"location":"fit/#Sufficient-Statistics","page":"Distribution Fitting","title":"Sufficient Statistics","text":"","category":"section"},{"location":"fit/","page":"Distribution Fitting","title":"Distribution Fitting","text":"For many distributions, the estimation can be based on (sum of) sufficient statistics computed from a dataset. To simplify implementation, for such distributions, we implement suffstats method instead of fit_mle directly:","category":"page"},{"location":"fit/","page":"Distribution Fitting","title":"Distribution Fitting","text":"ss = suffstats(D, x) # ss captures the sufficient statistics of x\nss = suffstats(D, x, w) # ss captures the sufficient statistics of a weighted dataset\n\nd = fit_mle(D, ss) # maximum likelihood estimation based on sufficient stats","category":"page"},{"location":"fit/","page":"Distribution Fitting","title":"Distribution Fitting","text":"When fit_mle on D is invoked, a fallback fit_mle method will first call suffstats to compute the sufficient statistics, and then a fit_mle method on sufficient statistics to get the result. For some distributions, this way is not the most efficient, and we specialize the fit_mle method to implement more efficient estimation algorithms.","category":"page"},{"location":"fit/#Maximum-a-Posteriori-Estimation","page":"Distribution Fitting","title":"Maximum-a-Posteriori Estimation","text":"","category":"section"},{"location":"fit/","page":"Distribution Fitting","title":"Distribution Fitting","text":"Maximum-a-Posteriori (MAP) estimation is also supported by this package, which is implemented as part of the conjugate exponential family framework (see :ref:Conjugate Prior and Posterior ).","category":"page"},{"location":"starting/#Getting-Started","page":"Getting Started","title":"Getting Started","text":"","category":"section"},{"location":"starting/#Installation","page":"Getting Started","title":"Installation","text":"","category":"section"},{"location":"starting/","page":"Getting Started","title":"Getting Started","text":"The Distributions package is available through the Julia package system by running Pkg.add(\"Distributions\"). Throughout, we assume that you have installed the package.","category":"page"},{"location":"starting/#Starting-With-a-Normal-Distribution","page":"Getting Started","title":"Starting With a Normal Distribution","text":"","category":"section"},{"location":"starting/","page":"Getting Started","title":"Getting Started","text":"We start by drawing 100 observations from a standard-normal random variable.","category":"page"},{"location":"starting/","page":"Getting Started","title":"Getting Started","text":"The first step is to set up the environment:","category":"page"},{"location":"starting/","page":"Getting Started","title":"Getting Started","text":"julia> using Random, Distributions\n\njulia> Random.seed!(123) # Setting the seed","category":"page"},{"location":"starting/","page":"Getting Started","title":"Getting Started","text":"Then, we create a standard-normal distribution d and obtain samples using rand:","category":"page"},{"location":"starting/","page":"Getting Started","title":"Getting Started","text":"julia> d = Normal()\nNormal(μ=0.0, σ=1.0)","category":"page"},{"location":"starting/","page":"Getting Started","title":"Getting Started","text":"The object d represents a probability distribution, in our case the standard-normal distribution. One can query its properties such as the mean:","category":"page"},{"location":"starting/","page":"Getting Started","title":"Getting Started","text":"julia> mean(d)\n0.0","category":"page"},{"location":"starting/","page":"Getting Started","title":"Getting Started","text":"We can also draw samples from d with rand.","category":"page"},{"location":"starting/","page":"Getting Started","title":"Getting Started","text":"julia> x = rand(d, 100)\n100-element Array{Float64,1}:\n 0.376264\n -0.405272\n ...","category":"page"},{"location":"starting/","page":"Getting Started","title":"Getting Started","text":"You can easily obtain the pdf, cdf, quantile, and many other functions for a distribution. For instance, the median (50th percentile) and the 95th percentile for the standard-normal distribution are given by:","category":"page"},{"location":"starting/","page":"Getting Started","title":"Getting Started","text":"julia> quantile.(Normal(), [0.5, 0.95])\n2-element Array{Float64,1}:\n 0.0\n 1.64485","category":"page"},{"location":"starting/","page":"Getting Started","title":"Getting Started","text":"The normal distribution is parameterized by its mean and standard deviation. To draw random samples from a normal distribution with mean 1 and standard deviation 2, you write:","category":"page"},{"location":"starting/","page":"Getting Started","title":"Getting Started","text":"julia> rand(Normal(1, 2), 100)","category":"page"},{"location":"starting/#Using-Other-Distributions","page":"Getting Started","title":"Using Other Distributions","text":"","category":"section"},{"location":"starting/","page":"Getting Started","title":"Getting Started","text":"The package contains a large number of additional distributions of three main types:","category":"page"},{"location":"starting/","page":"Getting Started","title":"Getting Started","text":"Univariate == ArrayLikeVariate{0}\nMultivariate == ArrayLikeVariate{1}\nMatrixvariate == ArrayLikeVariate{2}","category":"page"},{"location":"starting/","page":"Getting Started","title":"Getting Started","text":"Each type splits further into Discrete and Continuous.","category":"page"},{"location":"starting/","page":"Getting Started","title":"Getting Started","text":"For instance, you can define the following distributions (among many others):","category":"page"},{"location":"starting/","page":"Getting Started","title":"Getting Started","text":"julia> Binomial(n, p) # Discrete univariate\njulia> Cauchy(u, b) # Continuous univariate\njulia> Multinomial(n, p) # Discrete multivariate\njulia> Wishart(nu, S) # Continuous matrix-variate","category":"page"},{"location":"starting/","page":"Getting Started","title":"Getting Started","text":"In addition, you can create truncated distributions from univariate distributions:","category":"page"},{"location":"starting/","page":"Getting Started","title":"Getting Started","text":"julia> truncated(Normal(mu, sigma), l, u)","category":"page"},{"location":"starting/","page":"Getting Started","title":"Getting Started","text":"To find out which parameters are appropriate for a given distribution D, you can use fieldnames(D):","category":"page"},{"location":"starting/","page":"Getting Started","title":"Getting Started","text":"julia> fieldnames(Cauchy)\n2-element Array{Symbol,1}:\n :μ\n :β","category":"page"},{"location":"starting/","page":"Getting Started","title":"Getting Started","text":"This tells you that a Cauchy distribution is initialized with location μ and scale β.","category":"page"},{"location":"starting/#Estimate-the-Parameters","page":"Getting Started","title":"Estimate the Parameters","text":"","category":"section"},{"location":"starting/","page":"Getting Started","title":"Getting Started","text":"It is often useful to approximate an empirical distribution with a theoretical distribution. As an example, we can use the array x we created above and ask which normal distribution best describes it:","category":"page"},{"location":"starting/","page":"Getting Started","title":"Getting Started","text":"julia> fit(Normal, x)\nNormal(μ=0.036692077201688635, σ=1.1228280164716382)","category":"page"},{"location":"starting/","page":"Getting Started","title":"Getting Started","text":"Since x is a random draw from Normal, it's easy to check that the fitted values are sensible. Indeed, the estimates [0.04, 1.12] are close to the true values of [0.0, 1.0] that we used to generate x.","category":"page"},{"location":"cholesky/#cholesky-variates","page":"Cholesky-variate Distributions","title":"Cholesky-variate Distributions","text":"","category":"section"},{"location":"cholesky/","page":"Cholesky-variate Distributions","title":"Cholesky-variate Distributions","text":"Cholesky-variate distributions are distributions whose variate forms are CholeskyVariate. This means each draw is a factorization of a positive-definite matrix of type LinearAlgebra.Cholesky (the object produced by the function LinearAlgebra.cholesky applied to a dense positive-definite matrix.)","category":"page"},{"location":"cholesky/#Distributions","page":"Cholesky-variate Distributions","title":"Distributions","text":"","category":"section"},{"location":"cholesky/","page":"Cholesky-variate Distributions","title":"Cholesky-variate Distributions","text":"LKJCholesky","category":"page"},{"location":"cholesky/#Distributions.LKJCholesky","page":"Cholesky-variate Distributions","title":"Distributions.LKJCholesky","text":"LKJCholesky(d::Int, η::Real, uplo='L')\n\nThe LKJCholesky distribution of size d with shape parameter eta is a distribution over LinearAlgebra.Cholesky factorisations of dtimes d real correlation matrices (positive-definite matrices with ones on the diagonal).\n\nVariates or samples of the distribution are LinearAlgebra.Cholesky objects, as might be returned by F = LinearAlgebra.cholesky(R), so that Matrix(F) ≈ R is a variate or sample of LKJ. \n\nSampling LKJCholesky is faster than sampling LKJ, and often having the correlation matrix in factorized form makes subsequent computations cheaper as well.\n\nnote: Note\nLinearAlgebra.Cholesky stores either the upper or lower Cholesky factor, related by F.U == F.L'. Both can be accessed with F.U and F.L, but if the factor not stored is requested, then a copy is made. The uplo parameter specifies whether the upper ('U') or lower ('L') Cholesky factor is stored when randomly generating samples. Set uplo to 'U' if the upper factor is desired to avoid allocating a copy when calling F.U.\n\nSee LKJ for more details.\n\nExternal links\n\nLewandowski D, Kurowicka D, Joe H. Generating random correlation matrices based on vines and extended onion method, Journal of Multivariate Analysis (2009), 100(9): 1989-2001 doi: 10.1016/j.jmva.2009.04.008\n\n\n\n\n\n","category":"type"},{"location":"cholesky/#Index","page":"Cholesky-variate Distributions","title":"Index","text":"","category":"section"},{"location":"cholesky/","page":"Cholesky-variate Distributions","title":"Cholesky-variate Distributions","text":"Pages = [\"cholesky.md\"]","category":"page"},{"location":"reshape/#Reshaping-distributions","page":"Reshaping distributions","title":"Reshaping distributions","text":"","category":"section"},{"location":"reshape/","page":"Reshaping distributions","title":"Reshaping distributions","text":"Distributions of array variates such as MultivariateDistributions and MatrixDistributions can be reshaped.","category":"page"},{"location":"reshape/","page":"Reshaping distributions","title":"Reshaping distributions","text":"reshape\nvec","category":"page"},{"location":"reshape/#Base.reshape","page":"Reshaping distributions","title":"Base.reshape","text":"reshape(d::Distribution{<:ArrayLikeVariate}, dims::Int...)\nreshape(d::Distribution{<:ArrayLikeVariate}, dims::Dims)\n\nReturn a Distribution of reshape(X, dims) where X is a random variable with distribution d.\n\nThe default implementation returns a ReshapedDistribution. However, it can return more optimized distributions for specific types of distributions and numbers of dimensions. Therefore it is recommended to use reshape instead of the constructor of ReshapedDistribution.\n\nImplementation\n\nSince reshape(d, dims::Int...) calls reshape(d, dims::Dims), one should implement reshape(d, ::Dims) for desired distributions d.\n\nSee also: vec\n\n\n\n\n\n","category":"function"},{"location":"reshape/#Base.vec","page":"Reshaping distributions","title":"Base.vec","text":"vec(d::Distribution{<:ArrayLikeVariate})\n\nReturn a MultivariateDistribution of vec(X) where X is a random variable with distribution d.\n\nThe default implementation returns a ReshapedDistribution. However, it can return more optimized distributions for specific types of distributions and numbers of dimensions. Therefore it is recommended to use vec instead of the constructor of ReshapedDistribution.\n\nImplementation\n\nSince vec(d) is defined as reshape(d, length(d)) one should implement reshape(d, ::Tuple{Int}) rather than vec.\n\nSee also: reshape\n\n\n\n\n\n","category":"function"},{"location":"order_statistics/#Order-Statistics","page":"Order Statistics","title":"Order Statistics","text":"","category":"section"},{"location":"order_statistics/","page":"Order Statistics","title":"Order Statistics","text":"The ith Order Statistic of a random sample of size n from a univariate distribution is the ith element after sorting in increasing order. As a special case, the first and nth order statistics are the minimum and maximum of the sample, while for odd n, the lceil fracn2 rceilth entry is the sample median.","category":"page"},{"location":"order_statistics/","page":"Order Statistics","title":"Order Statistics","text":"Given any univariate distribution and the sample size n, we can construct the distribution of its ith order statistic:","category":"page"},{"location":"order_statistics/","page":"Order Statistics","title":"Order Statistics","text":"OrderStatistic","category":"page"},{"location":"order_statistics/#Distributions.OrderStatistic","page":"Order Statistics","title":"Distributions.OrderStatistic","text":"OrderStatistic{D<:UnivariateDistribution,S<:ValueSupport} <: UnivariateDistribution{S}\n\nThe distribution of an order statistic from IID samples from a univariate distribution.\n\nOrderStatistic(dist::UnivariateDistribution, n::Int, rank::Int; check_args::Bool=true)\n\nConstruct the distribution of the rank =ith order statistic from n independent samples from dist.\n\nThe ith order statistic of a sample is the ith element of the sorted sample. For example, the 1st order statistic is the sample minimum, while the nth order statistic is the sample maximum.\n\nIf f is the probability density (mass) function of dist with distribution function F, then the probability density function g of the order statistic for continuous dist is\n\ng(x n i) = n choose i F(x)^i-1 1 - F(x)^n-i f(x)\n\nand the probability mass function g of the order statistic for discrete dist is\n\ng(x n i) = sum_k=i^n n choose k left( F(x)^k 1 - F(x)^n-k - F(x_-)^k 1 - F(x_-)^n-k right)\n\nwhere x_- is the largest element in the support of dist less than x.\n\nFor the joint distribution of a subset of order statistics, use JointOrderStatistics instead.\n\nExamples\n\nOrderStatistic(Cauchy(), 10, 1) # distribution of the sample minimum\nOrderStatistic(DiscreteUniform(10), 10, 10) # distribution of the sample maximum\nOrderStatistic(Gamma(1, 1), 11, 5) # distribution of the sample median\n\n\n\n\n\n","category":"type"},{"location":"order_statistics/","page":"Order Statistics","title":"Order Statistics","text":"If we are interested in more than one order statistic, for continuous univariate distributions we can also construct the joint distribution of order statistics:","category":"page"},{"location":"order_statistics/","page":"Order Statistics","title":"Order Statistics","text":"JointOrderStatistics","category":"page"},{"location":"order_statistics/#Distributions.JointOrderStatistics","page":"Order Statistics","title":"Distributions.JointOrderStatistics","text":"JointOrderStatistics <: ContinuousMultivariateDistribution\n\nThe joint distribution of a subset of order statistics from a sample from a continuous univariate distribution.\n\nJointOrderStatistics(\n dist::ContinuousUnivariateDistribution,\n n::Int,\n ranks=Base.OneTo(n);\n check_args::Bool=true,\n)\n\nConstruct the joint distribution of order statistics for the specified ranks from an IID sample of size n from dist.\n\nThe ith order statistic of a sample is the ith element of the sorted sample. For example, the 1st order statistic is the sample minimum, while the nth order statistic is the sample maximum.\n\nranks must be a sorted vector or tuple of unique Ints between 1 and n.\n\nFor a single order statistic, use OrderStatistic instead.\n\nExamples\n\nJointOrderStatistics(Normal(), 10) # Product(fill(Normal(), 10)) restricted to ordered vectors\nJointOrderStatistics(Cauchy(), 10, 2:9) # joint distribution of all but the extrema\nJointOrderStatistics(Cauchy(), 10, (1, 10)) # joint distribution of only the extrema\n\n\n\n\n\n","category":"type"},{"location":"#Distributions-Package","page":"Distributions Package","title":"Distributions Package","text":"","category":"section"},{"location":"","page":"Distributions Package","title":"Distributions Package","text":"The Distributions package provides a large collection of probabilistic distributions and related functions. Particularly, Distributions implements:","category":"page"},{"location":"","page":"Distributions Package","title":"Distributions Package","text":"Sampling from distributions\nMoments (e.g mean, variance, skewness, and kurtosis), entropy, and other properties\nProbability density/mass functions (pdf) and their logarithm (logpdf)\nMoment-generating functions and characteristic functions\nMaximum likelihood estimation\nDistribution composition and derived distributions (Cartesian product of distributions, truncated distributions, censored distributions)","category":"page"},{"location":"types/#Type-Hierarchy","page":"Type Hierarchy","title":"Type Hierarchy","text":"","category":"section"},{"location":"types/","page":"Type Hierarchy","title":"Type Hierarchy","text":"All samplers and distributions provided in this package are organized into a type hierarchy described as follows.","category":"page"},{"location":"types/#Sampleable","page":"Type Hierarchy","title":"Sampleable","text":"","category":"section"},{"location":"types/","page":"Type Hierarchy","title":"Type Hierarchy","text":"The root of this type hierarchy is Sampleable. The abstract type Sampleable subsumes any types of objects from which one can draw samples, which particularly includes samplers and distributions. Formally, Sampleable is defined as","category":"page"},{"location":"types/","page":"Type Hierarchy","title":"Type Hierarchy","text":"abstract type Sampleable{F<:VariateForm,S<:ValueSupport} end","category":"page"},{"location":"types/","page":"Type Hierarchy","title":"Type Hierarchy","text":"It has two type parameters that define the kind of samples that can be drawn therefrom.","category":"page"},{"location":"types/","page":"Type Hierarchy","title":"Type Hierarchy","text":"Distributions.Sampleable\nBase.rand(::Distributions.Sampleable)","category":"page"},{"location":"types/#VariateForm","page":"Type Hierarchy","title":"VariateForm","text":"","category":"section"},{"location":"types/","page":"Type Hierarchy","title":"Type Hierarchy","text":"Distributions.VariateForm","category":"page"},{"location":"types/","page":"Type Hierarchy","title":"Type Hierarchy","text":"The VariateForm subtypes defined in Distributions.jl are:","category":"page"},{"location":"types/","page":"Type Hierarchy","title":"Type Hierarchy","text":"Type A single sample Multiple samples\nUnivariate == ArrayLikeVariate{0} a scalar number A numeric array of arbitrary shape, each element being a sample\nMultivariate == ArrayLikeVariate{1} a numeric vector A matrix, each column being a sample\nMatrixvariate == ArrayLikeVariate{2} a numeric matrix An array of matrices, each element being a sample matrix","category":"page"},{"location":"types/#ValueSupport","page":"Type Hierarchy","title":"ValueSupport","text":"","category":"section"},{"location":"types/","page":"Type Hierarchy","title":"Type Hierarchy","text":"Distributions.ValueSupport","category":"page"},{"location":"types/#Distributions.ValueSupport","page":"Type Hierarchy","title":"Distributions.ValueSupport","text":"ValueSupport\n\nAbstract type that specifies the support of elements of samples.\n\nIt is either Discrete or Continuous.\n\n\n\n\n\n","category":"type"},{"location":"types/","page":"Type Hierarchy","title":"Type Hierarchy","text":"The ValueSupport sub-types defined in Distributions.jl are:","category":"page"},{"location":"types/","page":"Type Hierarchy","title":"Type Hierarchy","text":"Distributions.Discrete\nDistributions.Continuous","category":"page"},{"location":"types/#Distributions.Discrete","page":"Type Hierarchy","title":"Distributions.Discrete","text":"Discrete <: ValueSupport\n\nThis type represents the support of a discrete random variable.\n\nIt is countable. For instance, it can be a finite set or a countably infinite set such as the natural numbers.\n\nSee also: Continuous, ValueSupport\n\n\n\n\n\n","category":"type"},{"location":"types/#Distributions.Continuous","page":"Type Hierarchy","title":"Distributions.Continuous","text":"Continuous <: ValueSupport\n\nThis types represents the support of a continuous random variable.\n\nIt is uncountably infinite. For instance, it can be an interval on the real line.\n\nSee also: Discrete, ValueSupport\n\n\n\n\n\n","category":"type"},{"location":"types/","page":"Type Hierarchy","title":"Type Hierarchy","text":"Type Default element type Description Examples\nDiscrete Int Samples take countably many values 0123, mathbbN\nContinuous Float64 Samples take uncountably many values 0 1, mathbbR","category":"page"},{"location":"types/","page":"Type Hierarchy","title":"Type Hierarchy","text":"Multiple samples are often organized into an array, depending on the variate form.","category":"page"},{"location":"types/","page":"Type Hierarchy","title":"Type Hierarchy","text":"The basic functionalities that a sampleable object provides are to retrieve information about the samples it generates and to draw samples. Particularly, the following functions are provided for sampleable objects:","category":"page"},{"location":"types/","page":"Type Hierarchy","title":"Type Hierarchy","text":"length(::Sampleable)\nsize(::Sampleable)\nnsamples(::Type{Sampleable}, ::Any)\neltype(::Type{Sampleable})\nrand(::AbstractRNG, ::Sampleable)\nrand!(::AbstractRNG, ::Sampleable, ::AbstractArray)","category":"page"},{"location":"types/#Base.length-Tuple{Sampleable}","page":"Type Hierarchy","title":"Base.length","text":"length(s::Sampleable)\n\nThe length of each sample. Always returns 1 when s is univariate.\n\n\n\n\n\n","category":"method"},{"location":"types/#Base.size-Tuple{Sampleable}","page":"Type Hierarchy","title":"Base.size","text":"size(s::Sampleable)\n\nThe size (i.e. shape) of each sample. Always returns () when s is univariate, and (length(s),) when s is multivariate.\n\n\n\n\n\n","category":"method"},{"location":"types/#Distributions.nsamples-Tuple{Type{Sampleable}, Any}","page":"Type Hierarchy","title":"Distributions.nsamples","text":"nsamples(s::Sampleable)\n\nThe number of values contained in one sample of s. Multiple samples are often organized into an array, depending on the variate form.\n\n\n\n\n\n","category":"method"},{"location":"types/#Base.eltype-Tuple{Type{Sampleable}}","page":"Type Hierarchy","title":"Base.eltype","text":"eltype(::Type{Sampleable})\n\nThe default element type of a sample. This is the type of elements of the samples generated by the rand method. However, one can provide an array of different element types to store the samples using rand!.\n\n\n\n\n\n","category":"method"},{"location":"types/#Base.rand-Tuple{AbstractRNG, Sampleable}","page":"Type Hierarchy","title":"Base.rand","text":"rand(::AbstractRNG, ::Sampleable)\n\nSamples from the sampler and returns the result.\n\n\n\n\n\n","category":"method"},{"location":"types/#Random.rand!-Tuple{AbstractRNG, Sampleable, AbstractArray}","page":"Type Hierarchy","title":"Random.rand!","text":"rand!(::AbstractRNG, ::Sampleable, ::AbstractArray)\n\nSamples in-place from the sampler and stores the result in the provided array.\n\n\n\n\n\n","category":"method"},{"location":"types/#Distributions","page":"Type Hierarchy","title":"Distributions","text":"","category":"section"},{"location":"types/","page":"Type Hierarchy","title":"Type Hierarchy","text":"We use Distribution, a subtype of Sampleable as defined below, to capture probabilistic distributions. In addition to being sampleable, a distribution typically comes with an explicit way to combine its domain, probability density function, and many other quantities.","category":"page"},{"location":"types/","page":"Type Hierarchy","title":"Type Hierarchy","text":"abstract type Distribution{F<:VariateForm,S<:ValueSupport} <: Sampleable{F,S} end","category":"page"},{"location":"types/","page":"Type Hierarchy","title":"Type Hierarchy","text":"Distributions.Distribution","category":"page"},{"location":"types/","page":"Type Hierarchy","title":"Type Hierarchy","text":"To simplify the use in practice, we introduce a series of type alias as follows:","category":"page"},{"location":"types/","page":"Type Hierarchy","title":"Type Hierarchy","text":"const UnivariateDistribution{S<:ValueSupport} = Distribution{Univariate,S}\nconst MultivariateDistribution{S<:ValueSupport} = Distribution{Multivariate,S}\nconst MatrixDistribution{S<:ValueSupport} = Distribution{Matrixvariate,S}\nconst NonMatrixDistribution = Union{UnivariateDistribution, MultivariateDistribution}\n\nconst DiscreteDistribution{F<:VariateForm} = Distribution{F,Discrete}\nconst ContinuousDistribution{F<:VariateForm} = Distribution{F,Continuous}\n\nconst DiscreteUnivariateDistribution = Distribution{Univariate, Discrete}\nconst ContinuousUnivariateDistribution = Distribution{Univariate, Continuous}\nconst DiscreteMultivariateDistribution = Distribution{Multivariate, Discrete}\nconst ContinuousMultivariateDistribution = Distribution{Multivariate, Continuous}\nconst DiscreteMatrixDistribution = Distribution{Matrixvariate, Discrete}\nconst ContinuousMatrixDistribution = Distribution{Matrixvariate, Continuous}","category":"page"},{"location":"types/","page":"Type Hierarchy","title":"Type Hierarchy","text":"All methods applicable to Sampleable also apply to Distribution. The API for distributions of different variate forms are different (refer to univariates, multivariates, and matrix for details).","category":"page"}] +} diff --git a/previews/PR1837/siteinfo.js b/previews/PR1837/siteinfo.js new file mode 100644 index 0000000000..5d27196ebc --- /dev/null +++ b/previews/PR1837/siteinfo.js @@ -0,0 +1 @@ +var DOCUMENTER_CURRENT_VERSION = "previews/PR1837"; diff --git a/previews/PR1837/starting/index.html b/previews/PR1837/starting/index.html new file mode 100644 index 0000000000..bb869428fb --- /dev/null +++ b/previews/PR1837/starting/index.html @@ -0,0 +1,20 @@ + +Getting Started · Distributions.jl

    Getting Started

    Installation

    The Distributions package is available through the Julia package system by running Pkg.add("Distributions"). Throughout, we assume that you have installed the package.

    Starting With a Normal Distribution

    We start by drawing 100 observations from a standard-normal random variable.

    The first step is to set up the environment:

    julia> using Random, Distributions
    +
    +julia> Random.seed!(123) # Setting the seed

    Then, we create a standard-normal distribution d and obtain samples using rand:

    julia> d = Normal()
    +Normal(μ=0.0, σ=1.0)

    The object d represents a probability distribution, in our case the standard-normal distribution. One can query its properties such as the mean:

    julia> mean(d)
    +0.0

    We can also draw samples from d with rand.

    julia> x = rand(d, 100)
    +100-element Array{Float64,1}:
    +  0.376264
    + -0.405272
    + ...

    You can easily obtain the pdf, cdf, quantile, and many other functions for a distribution. For instance, the median (50th percentile) and the 95th percentile for the standard-normal distribution are given by:

    julia> quantile.(Normal(), [0.5, 0.95])
    +2-element Array{Float64,1}:
    + 0.0
    + 1.64485

    The normal distribution is parameterized by its mean and standard deviation. To draw random samples from a normal distribution with mean 1 and standard deviation 2, you write:

    julia> rand(Normal(1, 2), 100)

    Using Other Distributions

    The package contains a large number of additional distributions of three main types:

    • Univariate == ArrayLikeVariate{0}
    • Multivariate == ArrayLikeVariate{1}
    • Matrixvariate == ArrayLikeVariate{2}

    Each type splits further into Discrete and Continuous.

    For instance, you can define the following distributions (among many others):

    julia> Binomial(n, p) # Discrete univariate
    +julia> Cauchy(u, b)  # Continuous univariate
    +julia> Multinomial(n, p) # Discrete multivariate
    +julia> Wishart(nu, S) # Continuous matrix-variate

    In addition, you can create truncated distributions from univariate distributions:

    julia> truncated(Normal(mu, sigma), l, u)

    To find out which parameters are appropriate for a given distribution D, you can use fieldnames(D):

    julia> fieldnames(Cauchy)
    +2-element Array{Symbol,1}:
    + :μ
    + :β

    This tells you that a Cauchy distribution is initialized with location μ and scale β.

    Estimate the Parameters

    It is often useful to approximate an empirical distribution with a theoretical distribution. As an example, we can use the array x we created above and ask which normal distribution best describes it:

    julia> fit(Normal, x)
    +Normal(μ=0.036692077201688635, σ=1.1228280164716382)

    Since x is a random draw from Normal, it's easy to check that the fitted values are sensible. Indeed, the estimates [0.04, 1.12] are close to the true values of [0.0, 1.0] that we used to generate x.

    diff --git a/previews/PR1837/truncate/index.html b/previews/PR1837/truncate/index.html new file mode 100644 index 0000000000..af9638682e --- /dev/null +++ b/previews/PR1837/truncate/index.html @@ -0,0 +1,6 @@ + +Truncated Distributions · Distributions.jl

    Truncated Distributions

    The package provides the truncated function which creates the most appropriate distribution to represent a truncated version of a given distribution.

    A truncated distribution can be constructed using the following signature:

    Distributions.truncatedFunction
    truncated(d0::UnivariateDistribution; [lower::Real], [upper::Real])
    +truncated(d0::UnivariateDistribution, lower::Real, upper::Real)

    A truncated distribution d of a distribution d0 to the interval $[l, u]=$[lower, upper] has the probability density (mass) function:

    \[f(x; d_0, l, u) = \frac{f_{d_0}(x)}{P_{Z \sim d_0}(l \le Z \le u)}, \quad x \in [l, u],\]

    where $f_{d_0}(x)$ is the probability density (mass) function of $d_0$.

    The function throws an error if $l > u$.

    truncated(d0; lower=l)           # d0 left-truncated to the interval [l, Inf)
    +truncated(d0; upper=u)           # d0 right-truncated to the interval (-Inf, u]
    +truncated(d0; lower=l, upper=u)  # d0 truncated to the interval [l, u]
    +truncated(d0, l, u)              # d0 truncated to the interval [l, u]

    The function falls back to constructing a Truncated wrapper.

    Implementation

    To implement a specialized truncated form for distributions of type D, one or more of the following methods should be implemented:

    • truncated(d0::D, l::T, u::T) where {T <: Real}: interval-truncated
    • truncated(d0::D, ::Nothing, u::Real): right-truncated
    • truncated(d0::D, l::Real, u::Nothing): left-truncated
    source

    In the general case, this will create a Truncated{typeof(d)} structure, defined as follows:

    Distributions.TruncatedType
    Truncated

    Generic wrapper for a truncated distribution.

    The truncated normal distribution is a particularly important one in the family of truncated distributions. Unlike the general case, truncated normal distributions support mean, mode, modes, var, std, and entropy.

    source

    Many functions, including those for the evaluation of pdf and sampling, are defined for all truncated univariate distributions:

    Functions to compute statistics, such as mean, mode, var, std, and entropy, are not available for generic truncated distributions. Generally, there are no easy ways to compute such quantities due to the complications incurred by truncation. However, these methods are supported for truncated normal distributions Truncated{<:Normal} which can be constructed with truncated(::Normal, ...).

    diff --git a/previews/PR1837/types/index.html b/previews/PR1837/types/index.html new file mode 100644 index 0000000000..c72e51ca08 --- /dev/null +++ b/previews/PR1837/types/index.html @@ -0,0 +1,16 @@ + +Type Hierarchy · Distributions.jl

    Type Hierarchy

    All samplers and distributions provided in this package are organized into a type hierarchy described as follows.

    Sampleable

    The root of this type hierarchy is Sampleable. The abstract type Sampleable subsumes any types of objects from which one can draw samples, which particularly includes samplers and distributions. Formally, Sampleable is defined as

    abstract type Sampleable{F<:VariateForm,S<:ValueSupport} end

    It has two type parameters that define the kind of samples that can be drawn therefrom.

    Distributions.Sampleable
    +Base.rand(::Distributions.Sampleable)

    VariateForm

    Distributions.VariateForm

    The VariateForm subtypes defined in Distributions.jl are:

    TypeA single sampleMultiple samples
    Univariate == ArrayLikeVariate{0}a scalar numberA numeric array of arbitrary shape, each element being a sample
    Multivariate == ArrayLikeVariate{1}a numeric vectorA matrix, each column being a sample
    Matrixvariate == ArrayLikeVariate{2}a numeric matrixAn array of matrices, each element being a sample matrix

    ValueSupport

    The ValueSupport sub-types defined in Distributions.jl are:

    Distributions.DiscreteType
    Discrete <: ValueSupport

    This type represents the support of a discrete random variable.

    It is countable. For instance, it can be a finite set or a countably infinite set such as the natural numbers.

    See also: Continuous, ValueSupport

    source
    TypeDefault element typeDescriptionExamples
    DiscreteIntSamples take countably many values$\{0,1,2,3\}$, $\mathbb{N}$
    ContinuousFloat64Samples take uncountably many values$[0, 1]$, $\mathbb{R}$

    Multiple samples are often organized into an array, depending on the variate form.

    The basic functionalities that a sampleable object provides are to retrieve information about the samples it generates and to draw samples. Particularly, the following functions are provided for sampleable objects:

    Base.lengthMethod
    length(s::Sampleable)

    The length of each sample. Always returns 1 when s is univariate.

    source
    Base.sizeMethod
    size(s::Sampleable)

    The size (i.e. shape) of each sample. Always returns () when s is univariate, and (length(s),) when s is multivariate.

    source
    Distributions.nsamplesMethod
    nsamples(s::Sampleable)

    The number of values contained in one sample of s. Multiple samples are often organized into an array, depending on the variate form.

    source
    Base.eltypeMethod
    eltype(::Type{Sampleable})

    The default element type of a sample. This is the type of elements of the samples generated by the rand method. However, one can provide an array of different element types to store the samples using rand!.

    source
    Base.randMethod
    rand(::AbstractRNG, ::Sampleable)

    Samples from the sampler and returns the result.

    source
    Random.rand!Method
    rand!(::AbstractRNG, ::Sampleable, ::AbstractArray)

    Samples in-place from the sampler and stores the result in the provided array.

    source

    Distributions

    We use Distribution, a subtype of Sampleable as defined below, to capture probabilistic distributions. In addition to being sampleable, a distribution typically comes with an explicit way to combine its domain, probability density function, and many other quantities.

    abstract type Distribution{F<:VariateForm,S<:ValueSupport} <: Sampleable{F,S} end
    Distributions.Distribution

    To simplify the use in practice, we introduce a series of type alias as follows:

    const UnivariateDistribution{S<:ValueSupport}   = Distribution{Univariate,S}
    +const MultivariateDistribution{S<:ValueSupport} = Distribution{Multivariate,S}
    +const MatrixDistribution{S<:ValueSupport}       = Distribution{Matrixvariate,S}
    +const NonMatrixDistribution = Union{UnivariateDistribution, MultivariateDistribution}
    +
    +const DiscreteDistribution{F<:VariateForm}   = Distribution{F,Discrete}
    +const ContinuousDistribution{F<:VariateForm} = Distribution{F,Continuous}
    +
    +const DiscreteUnivariateDistribution     = Distribution{Univariate,    Discrete}
    +const ContinuousUnivariateDistribution   = Distribution{Univariate,    Continuous}
    +const DiscreteMultivariateDistribution   = Distribution{Multivariate,  Discrete}
    +const ContinuousMultivariateDistribution = Distribution{Multivariate,  Continuous}
    +const DiscreteMatrixDistribution         = Distribution{Matrixvariate, Discrete}
    +const ContinuousMatrixDistribution       = Distribution{Matrixvariate, Continuous}

    All methods applicable to Sampleable also apply to Distribution. The API for distributions of different variate forms are different (refer to univariates, multivariates, and matrix for details).

    diff --git a/previews/PR1837/univariate/index.html b/previews/PR1837/univariate/index.html new file mode 100644 index 0000000000..d7d64591d4 --- /dev/null +++ b/previews/PR1837/univariate/index.html @@ -0,0 +1,3598 @@ + +Univariate Distributions · Distributions.jl

    Univariate Distributions

    Univariate distributions are the distributions whose variate forms are Univariate (i.e each sample is a scalar). Abstract types for univariate distributions:

    const UnivariateDistribution{S<:ValueSupport} = Distribution{Univariate,S}
    +
    +const DiscreteUnivariateDistribution   = Distribution{Univariate, Discrete}
    +const ContinuousUnivariateDistribution = Distribution{Univariate, Continuous}

    Common Interface

    A series of methods is implemented for each univariate distribution, which provides useful functionalities such as moment computation, pdf evaluation, and sampling (i.e. random number generation).

    Parameter Retrieval

    Note: params are defined for all univariate distributions, while other parameter retrieval methods are only defined for those distributions for which these parameters make sense. See below for details.

    StatsAPI.paramsMethod
    params(d::UnivariateDistribution)

    Return a tuple of parameters. Let d be a distribution of type D, then D(params(d)...) will construct exactly the same distribution as $d$.

    source

    For distributions for which success and failure have a meaning, the following methods are defined:

    Computation of statistics

    Base.maximumMethod
    maximum(d::Distribution)

    Return the maximum of the support of d.

    source
    Base.minimumMethod
    minimum(d::Distribution)

    Return the minimum of the support of d.

    source
    Base.extremaMethod
    extrema(d::Distribution)

    Return the minimum and maximum of the support of d as a 2-tuple.

    source
    Statistics.varMethod
    var(d::UnivariateDistribution)

    Compute the variance. (A generic std is provided as std(d) = sqrt(var(d)))

    source
    Statistics.stdMethod
    std(d::UnivariateDistribution)

    Return the standard deviation of distribution d, i.e. sqrt(var(d)).

    source
    Statistics.medianMethod
    median(d::UnivariateDistribution)

    Return the median value of distribution d. The median is the smallest x in the support of d for which cdf(d, x) ≥ 1/2. Corresponding to this definition as 1/2-quantile, a fallback is provided calling the quantile function.

    source
    StatsBase.kurtosisMethod
    kurtosis(d::Distribution, correction::Bool)

    Computes excess kurtosis by default. Proper kurtosis can be returned with correction=false

    source
    StatsBase.entropyMethod
    entropy(d::UnivariateDistribution, b::Real)

    Compute the entropy value of distribution d, w.r.t. a given base.

    source
    StatsBase.entropyMethod
    entropy(d::UnivariateDistribution, b::Real)

    Compute the entropy value of distribution d, w.r.t. a given base.

    source
    Distributions.cfMethod
    cf(d::UnivariateDistribution, t)

    Evaluate the characteristic function of distribution d.

    source
    Distributions.pdfsquaredL2normFunction
    pdfsquaredL2norm(d::Distribution)

    Return the square of the L2 norm of the probability density function $f(x)$ of the distribution d:

    \[\int_{S} f(x)^{2} \mathrm{d} x\]

    where $S$ is the support of $f(x)$.

    source

    Probability Evaluation

    Distributions.insupportMethod
    insupport(d::UnivariateDistribution, x::Any)

    When x is a scalar, it returns whether x is within the support of d (e.g., insupport(d, x) = minimum(d) <= x <= maximum(d)). When x is an array, it returns whether every element in x is within the support of d.

    Generic fallback methods are provided, but it is often the case that insupport can be done more efficiently, and a specialized insupport is thus desirable. You should also override this function if the support is composed of multiple disjoint intervals.

    source
    Distributions.logpdfMethod
    logpdf(d::UnivariateDistribution, x::Real)

    Evaluate the logarithm of probability density (mass) at x.

    See also: pdf.

    source
    Missing docstring.

    Missing docstring for loglikelihood(::UnivariateDistribution, ::AbstractArray). Check Documenter's build log for details.

    Distributions.logcdfMethod
    logcdf(d::UnivariateDistribution, x::Real)

    The logarithm of the cumulative function value(s) evaluated at x, i.e. log(cdf(x)).

    source
    Distributions.logdiffcdfMethod
    logdiffcdf(d::UnivariateDistribution, x::Real, y::Real)

    The natural logarithm of the difference between the cumulative density function at x and y, i.e. log(cdf(x) - cdf(y)).

    source
    Distributions.ccdfMethod
    ccdf(d::UnivariateDistribution, x::Real)

    The complementary cumulative function evaluated at x, i.e. 1 - cdf(d, x).

    source
    Distributions.logccdfMethod
    logccdf(d::UnivariateDistribution, x::Real)

    The logarithm of the complementary cumulative function values evaluated at x, i.e. log(ccdf(x)).

    source
    Statistics.quantileMethod
    quantile(d::UnivariateDistribution, q::Real)

    Evaluate the (generalized) inverse cumulative distribution function at q.

    For a given 0 ≤ q ≤ 1, quantile(d, q) is the smallest value x in the support of d for which cdf(d, x) ≥ q.

    See also: cquantile, invlogcdf, and invlogccdf.

    source
    Distributions.invlogcdfMethod
    invlogcdf(d::UnivariateDistribution, lp::Real)

    The (generalized) inverse function of logcdf.

    For a given lp ≤ 0, invlogcdf(d, lp) is the smallest value x in the support of d for which logcdf(d, x) ≥ lp.

    source
    Distributions.invlogccdfMethod
    invlogccdf(d::UnivariateDistribution, lp::Real)

    The (generalized) inverse function of logccdf.

    For a given lp ≤ 0, invlogccdf(d, lp) is the smallest value x in the support of d for which logccdf(d, x) ≤ lp.

    source

    Sampling (Random number generation)

    Base.randMethod
    rand(rng::AbstractRNG, d::UnivariateDistribution)

    Generate a scalar sample from d. The general fallback is quantile(d, rand()).

    source
    Random.rand!Method
    rand!(::AbstractRNG, ::Sampleable, ::AbstractArray)

    Samples in-place from the sampler and stores the result in the provided array.

    source

    Continuous Distributions

    Distributions.ArcsineType
    Arcsine(a,b)

    The Arcsine distribution has probability density function

    \[f(x) = \frac{1}{\pi \sqrt{(x - a) (b - x)}}, \quad x \in [a, b]\]

    Arcsine()        # Arcsine distribution with support [0, 1]
    +Arcsine(b)       # Arcsine distribution with support [0, b]
    +Arcsine(a, b)    # Arcsine distribution with support [a, b]
    +
    +params(d)        # Get the parameters, i.e. (a, b)
    +minimum(d)       # Get the lower bound, i.e. a
    +maximum(d)       # Get the upper bound, i.e. b
    +location(d)      # Get the left bound, i.e. a
    +scale(d)         # Get the span of the support, i.e. b - a

    External links

    Use Arcsine(a, b, check_args=false) to bypass argument checks.

    source
    Distributions.BetaType
    Beta(α, β)

    The Beta distribution has probability density function

    \[f(x; \alpha, \beta) = \frac{1}{B(\alpha, \beta)} + x^{\alpha - 1} (1 - x)^{\beta - 1}, \quad x \in [0, 1]\]

    The Beta distribution is related to the Gamma distribution via the property that if $X \sim \operatorname{Gamma}(\alpha)$ and $Y \sim \operatorname{Gamma}(\beta)$ independently, then $X / (X + Y) \sim \operatorname{Beta}(\alpha, \beta)$.

    Beta()        # equivalent to Beta(1, 1)
    +Beta(α)       # equivalent to Beta(α, α)
    +Beta(α, β)    # Beta distribution with shape parameters α and β
    +
    +params(d)     # Get the parameters, i.e. (α, β)

    External links

    source
    Distributions.BetaPrimeType
    BetaPrime(α, β)

    The Beta prime distribution has probability density function

    \[f(x; \alpha, \beta) = \frac{1}{B(\alpha, \beta)} +x^{\alpha - 1} (1 + x)^{- (\alpha + \beta)}, \quad x > 0\]

    The Beta prime distribution is related to the Beta distribution via the relationship that if $X \sim \operatorname{Beta}(\alpha, \beta)$ then $\frac{X}{1 - X} \sim \operatorname{BetaPrime}(\alpha, \beta)$

    BetaPrime()        # equivalent to BetaPrime(1, 1)
    +BetaPrime(α)       # equivalent to BetaPrime(α, α)
    +BetaPrime(α, β)    # Beta prime distribution with shape parameters α and β
    +
    +params(d)          # Get the parameters, i.e. (α, β)

    External links

    source
    Distributions.CauchyType
    Cauchy(μ, σ)

    The Cauchy distribution with location μ and scale σ has probability density function

    \[f(x; \mu, \sigma) = \frac{1}{\pi \sigma \left(1 + \left(\frac{x - \mu}{\sigma} \right)^2 \right)}\]

    Cauchy()         # Standard Cauchy distribution, i.e. Cauchy(0, 1)
    +Cauchy(μ)        # Cauchy distribution with location μ and unit scale, i.e. Cauchy(μ, 1)
    +Cauchy(μ, σ)     # Cauchy distribution with location μ and scale σ
    +
    +params(d)        # Get the parameters, i.e. (μ, σ)
    +location(d)      # Get the location parameter, i.e. μ
    +scale(d)         # Get the scale parameter, i.e. σ

    External links

    source
    Distributions.ChernoffType
    Chernoff()

    The Chernoff distribution is the distribution of the random variable

    \[\underset{t \in (-\infty,\infty)}{\arg\max} ( G(t) - t^2 ),\]

    where $G$ is standard two-sided Brownian motion.

    The distribution arises as the limit distribution of various cube-root-n consistent estimators, including the isotonic regression estimator of Brunk, the isotonic density estimator of Grenander, the least median of squares estimator of Rousseeuw, and the maximum score estimator of Manski.

    For theoretical results, see e.g. Kim and Pollard, Annals of Statistics, 1990. The code for the computation of pdf and cdf is based on the algorithm described in Groeneboom and Wellner, Journal of Computational and Graphical Statistics, 2001.

    cdf(Chernoff(),-x)              # For tail probabilities, use this instead of 1-cdf(Chernoff(),x)
    source
    Distributions.ChiType
    Chi(ν)

    The Chi distribution ν degrees of freedom has probability density function

    \[f(x; \nu) = \frac{1}{\Gamma(\nu/2)} 2^{1 - \nu/2} x^{\nu-1} e^{-x^2/2}, \quad x > 0\]

    It is the distribution of the square-root of a Chisq variate.

    Chi(ν)       # Chi distribution with ν degrees of freedom
    +
    +params(d)    # Get the parameters, i.e. (ν,)
    +dof(d)       # Get the degrees of freedom, i.e. ν

    External links

    source
    Distributions.ChisqType
    Chisq(ν)

    The Chi squared distribution (typically written χ²) with ν degrees of freedom has the probability density function

    \[f(x; \nu) = \frac{x^{\nu/2 - 1} e^{-x/2}}{2^{\nu/2} \Gamma(\nu/2)}, \quad x > 0.\]

    If ν is an integer, then it is the distribution of the sum of squares of ν independent standard Normal variates.

    Chisq(ν)     # Chi-squared distribution with ν degrees of freedom
    +
    +params(d)    # Get the parameters, i.e. (ν,)
    +dof(d)       # Get the degrees of freedom, i.e. ν

    External links

    source
    Distributions.ErlangType
    Erlang(α,θ)

    The Erlang distribution is a special case of a Gamma distribution with integer shape parameter.

    Erlang()       # Erlang distribution with unit shape and unit scale, i.e. Erlang(1, 1)
    +Erlang(a)      # Erlang distribution with shape parameter a and unit scale, i.e. Erlang(a, 1)
    +Erlang(a, s)   # Erlang distribution with shape parameter a and scale s

    External links

    source
    Distributions.ExponentialType
    Exponential(θ)

    The Exponential distribution with scale parameter θ has probability density function

    \[f(x; \theta) = \frac{1}{\theta} e^{-\frac{x}{\theta}}, \quad x > 0\]

    Exponential()      # Exponential distribution with unit scale, i.e. Exponential(1)
    +Exponential(θ)     # Exponential distribution with scale θ
    +
    +params(d)          # Get the parameters, i.e. (θ,)
    +scale(d)           # Get the scale parameter, i.e. θ
    +rate(d)            # Get the rate parameter, i.e. 1 / θ

    External links

    source
    Distributions.FDistType
    FDist(ν1, ν2)

    The F distribution has probability density function

    \[f(x; \nu_1, \nu_2) = \frac{1}{x B(\nu_1/2, \nu_2/2)} +\sqrt{\frac{(\nu_1 x)^{\nu_1} \cdot \nu_2^{\nu_2}}{(\nu_1 x + \nu_2)^{\nu_1 + \nu_2}}}, \quad x>0\]

    It is related to the Chisq distribution via the property that if $X_1 \sim \operatorname{Chisq}(\nu_1)$ and $X_2 \sim \operatorname{Chisq}(\nu_2)$, then $(X_1/\nu_1) / (X_2 / \nu_2) \sim \operatorname{FDist}(\nu_1, \nu_2)$.

    FDist(ν1, ν2)     # F-Distribution with parameters ν1 and ν2
    +
    +params(d)         # Get the parameters, i.e. (ν1, ν2)

    External links

    source
    Distributions.FrechetType
    Frechet(α,θ)

    The Fréchet distribution with shape α and scale θ has probability density function

    \[f(x; \alpha, \theta) = \frac{\alpha}{\theta} \left( \frac{x}{\theta} \right)^{-\alpha-1} +e^{-(x/\theta)^{-\alpha}}, \quad x > 0\]

    Frechet()        # Fréchet distribution with unit shape and unit scale, i.e. Frechet(1, 1)
    +Frechet(α)       # Fréchet distribution with shape α and unit scale, i.e. Frechet(α, 1)
    +Frechet(α, θ)    # Fréchet distribution with shape α and scale θ
    +
    +params(d)        # Get the parameters, i.e. (α, θ)
    +shape(d)         # Get the shape parameter, i.e. α
    +scale(d)         # Get the scale parameter, i.e. θ

    External links

    source
    Distributions.GammaType
    Gamma(α,θ)

    The Gamma distribution with shape parameter α and scale θ has probability density function

    \[f(x; \alpha, \theta) = \frac{x^{\alpha-1} e^{-x/\theta}}{\Gamma(\alpha) \theta^\alpha}, +\quad x > 0\]

    Gamma()          # Gamma distribution with unit shape and unit scale, i.e. Gamma(1, 1)
    +Gamma(α)         # Gamma distribution with shape α and unit scale, i.e. Gamma(α, 1)
    +Gamma(α, θ)      # Gamma distribution with shape α and scale θ
    +
    +params(d)        # Get the parameters, i.e. (α, θ)
    +shape(d)         # Get the shape parameter, i.e. α
    +scale(d)         # Get the scale parameter, i.e. θ

    External links

    source
    Distributions.GeneralizedExtremeValueType
    GeneralizedExtremeValue(μ, σ, ξ)

    The Generalized extreme value distribution with shape parameter ξ, scale σ and location μ has probability density function

    \[f(x; \xi, \sigma, \mu) = \begin{cases} + \frac{1}{\sigma} \left[ 1+\left(\frac{x-\mu}{\sigma}\right)\xi\right]^{-1/\xi-1} \exp\left\{-\left[ 1+ \left(\frac{x-\mu}{\sigma}\right)\xi\right]^{-1/\xi} \right\} & \text{for } \xi \neq 0 \\ + \frac{1}{\sigma} \exp\left\{-\frac{x-\mu}{\sigma}\right\} \exp\left\{-\exp\left[-\frac{x-\mu}{\sigma}\right]\right\} & \text{for } \xi = 0 \\ + \end{cases}\]

    for

    \[x \in \begin{cases} + \left[ \mu - \frac{\sigma}{\xi}, + \infty \right) & \text{for } \xi > 0 \\ + \left( - \infty, + \infty \right) & \text{for } \xi = 0 \\ + \left( - \infty, \mu - \frac{\sigma}{\xi} \right] & \text{for } \xi < 0 + \end{cases}\]

    GeneralizedExtremeValue(μ, σ, ξ)      # Generalized Pareto distribution with shape ξ, scale σ and location μ.
    +
    +params(d)       # Get the parameters, i.e. (μ, σ, ξ)
    +location(d)     # Get the location parameter, i.e. μ
    +scale(d)        # Get the scale parameter, i.e. σ
    +shape(d)        # Get the shape parameter, i.e. ξ (sometimes called c)

    External links

    source
    Distributions.GeneralizedParetoType
    GeneralizedPareto(μ, σ, ξ)

    The Generalized Pareto distribution (GPD) with shape parameter ξ, scale σ and location μ has probability density function

    \[f(x; \mu, \sigma, \xi) = \begin{cases} + \frac{1}{\sigma}(1 + \xi \frac{x - \mu}{\sigma} )^{-\frac{1}{\xi} - 1} & \text{for } \xi \neq 0 \\ + \frac{1}{\sigma} e^{-\frac{\left( x - \mu \right) }{\sigma}} & \text{for } \xi = 0 + \end{cases}~, + \quad x \in \begin{cases} + \left[ \mu, \infty \right] & \text{for } \xi \geq 0 \\ + \left[ \mu, \mu - \sigma / \xi \right] & \text{for } \xi < 0 + \end{cases}\]

    GeneralizedPareto()             # GPD with unit shape and unit scale, i.e. GeneralizedPareto(0, 1, 1)
    +GeneralizedPareto(ξ)            # GPD with shape ξ and unit scale, i.e. GeneralizedPareto(0, 1, ξ)
    +GeneralizedPareto(σ, ξ)         # GPD with shape ξ and scale σ, i.e. GeneralizedPareto(0, σ, ξ)
    +GeneralizedPareto(μ, σ, ξ)      # GPD with shape ξ, scale σ and location μ.
    +
    +params(d)       # Get the parameters, i.e. (μ, σ, ξ)
    +location(d)     # Get the location parameter, i.e. μ
    +scale(d)        # Get the scale parameter, i.e. σ
    +shape(d)        # Get the shape parameter, i.e. ξ

    External links

    source
    Distributions.GumbelType
    Gumbel(μ, θ)

    The Gumbel (maxima) distribution with location μ and scale θ has probability density function

    \[f(x; \mu, \theta) = \frac{1}{\theta} e^{-(z + e^{-z})}, +\quad \text{ with } z = \frac{x - \mu}{\theta}\]

    Gumbel()            # Gumbel distribution with zero location and unit scale, i.e. Gumbel(0, 1)
    +Gumbel(μ)           # Gumbel distribution with location μ and unit scale, i.e. Gumbel(μ, 1)
    +Gumbel(μ, θ)        # Gumbel distribution with location μ and scale θ
    +
    +params(d)        # Get the parameters, i.e. (μ, θ)
    +location(d)      # Get the location parameter, i.e. μ
    +scale(d)         # Get the scale parameter, i.e. θ

    External links

    source
    Distributions.InverseGammaType
    InverseGamma(α, θ)

    The inverse Gamma distribution with shape parameter α and scale θ has probability density function

    \[f(x; \alpha, \theta) = \frac{\theta^\alpha x^{-(\alpha + 1)}}{\Gamma(\alpha)} +e^{-\frac{\theta}{x}}, \quad x > 0\]

    It is related to the Gamma distribution: if $X \sim \operatorname{Gamma}(\alpha, \beta)$, then $1 / X \sim \operatorname{InverseGamma}(\alpha, \beta^{-1})$.

    InverseGamma()        # Inverse Gamma distribution with unit shape and unit scale, i.e. InverseGamma(1, 1)
    +InverseGamma(α)       # Inverse Gamma distribution with shape α and unit scale, i.e. InverseGamma(α, 1)
    +InverseGamma(α, θ)    # Inverse Gamma distribution with shape α and scale θ
    +
    +params(d)        # Get the parameters, i.e. (α, θ)
    +shape(d)         # Get the shape parameter, i.e. α
    +scale(d)         # Get the scale parameter, i.e. θ

    External links

    source
    Distributions.InverseGaussianType
    InverseGaussian(μ,λ)

    The inverse Gaussian distribution with mean μ and shape λ has probability density function

    \[f(x; \mu, \lambda) = \sqrt{\frac{\lambda}{2\pi x^3}} +\exp\!\left(\frac{-\lambda(x-\mu)^2}{2\mu^2x}\right), \quad x > 0\]

    InverseGaussian()              # Inverse Gaussian distribution with unit mean and unit shape, i.e. InverseGaussian(1, 1)
    +InverseGaussian(μ),            # Inverse Gaussian distribution with mean μ and unit shape, i.e. InverseGaussian(μ, 1)
    +InverseGaussian(μ, λ)          # Inverse Gaussian distribution with mean μ and shape λ
    +
    +params(d)           # Get the parameters, i.e. (μ, λ)
    +mean(d)             # Get the mean parameter, i.e. μ
    +shape(d)            # Get the shape parameter, i.e. λ

    External links

    source
    Distributions.JohnsonSUType
    JohnsonSU(ξ, λ, γ, δ)

    The Johnson's $S_U$-distribution with parameters ξ, λ, γ and δ is a transformation of the normal distribution:

    If

    \[X = \lambda\sinh\Bigg( \frac{Z - \gamma}{\delta} \Bigg) + \xi\]

    where $Z \sim \mathcal{N}(0,1)$, then $X \sim \operatorname{Johnson}(\xi, \lambda, \gamma, \delta)$.

    JohnsonSU()           # Equivalent to JohnsonSU(0, 1, 0, 1)
    +JohnsonSU(ξ, λ, γ, δ) # JohnsonSU's S_U-distribution with parameters ξ, λ, γ and δ
    +
    +params(d)           # Get the parameters, i.e. (ξ, λ, γ, δ)
    +shape(d)            # Get the shape parameter, i.e. ξ
    +scale(d)            # Get the scale parameter, i.e. λ

    External links

    source
    Distributions.KolmogorovType
    Kolmogorov()

    Kolmogorov distribution defined as

    \[\sup_{t \in [0,1]} |B(t)|\]

    where $B(t)$ is a Brownian bridge used in the Kolmogorov–Smirnov test for large n.

    source
    Distributions.KSDistType
    KSDist(n)

    Distribution of the (two-sided) Kolmogorov-Smirnoff statistic

    \[D_n = \sup_x | \hat{F}_n(x) -F(x)|\]

    $D_n$ converges a.s. to the Kolmogorov distribution.

    source
    Distributions.KSOneSidedType
    KSOneSided(n)

    Distribution of the one-sided Kolmogorov-Smirnov test statistic:

    \[D^+_n = \sup_x (\hat{F}_n(x) -F(x))\]

    source
    Distributions.KumaraswamyType
    Kumaraswamy(a, b)

    The Kumaraswamy distribution with shape parameters a > 0 and b > 0 has probability density function

    \[f(x; a, b) = a b x^{a - 1} (1 - x^a)^{b - 1}, \quad 0 < x < 1\]

    It is related to the Beta distribution by the following identity: if $X \sim \operatorname{Kumaraswamy}(a, b)$ then $X^a \sim \operatorname{Beta}(1, b)$. In particular, if $X \sim \operatorname{Kumaraswamy}(1, 1)$ then $X \sim \operatorname{Uniform}(0, 1)$.

    External links

    References

    • Kumaraswamy, P. (1980). A generalized probability density function for double-bounded random processes. Journal of Hydrology. 46(1-2), 79-88.
    source
    Distributions.LaplaceType
    Laplace(μ,θ)

    The Laplace distribution with location μ and scale θ has probability density function

    \[f(x; \mu, \theta) = \frac{1}{2 \theta} \exp \left(- \frac{|x - \mu|}{\theta} \right)\]

    Laplace()       # Laplace distribution with zero location and unit scale, i.e. Laplace(0, 1)
    +Laplace(μ)      # Laplace distribution with location μ and unit scale, i.e. Laplace(μ, 1)
    +Laplace(μ, θ)   # Laplace distribution with location μ and scale θ
    +
    +params(d)       # Get the parameters, i.e., (μ, θ)
    +location(d)     # Get the location parameter, i.e. μ
    +scale(d)        # Get the scale parameter, i.e. θ

    External links

    source
    Distributions.LevyType
    Levy(μ, σ)

    The Lévy distribution with location μ and scale σ has probability density function

    \[f(x; \mu, \sigma) = \sqrt{\frac{\sigma}{2 \pi (x - \mu)^3}} +\exp \left( - \frac{\sigma}{2 (x - \mu)} \right), \quad x > \mu\]

    Levy()         # Levy distribution with zero location and unit scale, i.e. Levy(0, 1)
    +Levy(μ)        # Levy distribution with location μ and unit scale, i.e. Levy(μ, 1)
    +Levy(μ, σ)     # Levy distribution with location μ and scale σ
    +
    +params(d)      # Get the parameters, i.e. (μ, σ)
    +location(d)    # Get the location parameter, i.e. μ

    External links

    source
    Distributions.LindleyType
    Lindley(θ)

    The one-parameter Lindley distribution with shape θ > 0 has probability density function

    \[f(x; \theta) = \frac{\theta^2}{1 + \theta} (1 + x) e^{-\theta x}, \quad x > 0\]

    It was first described by Lindley[1] and was studied in greater detail by Ghitany et al.[2] Note that Lindley(θ) is a mixture of an Exponential(θ) and a Gamma(2, θ) with respective mixing weights p = θ/(1 + θ) and 1 - p.

    source
    Distributions.LogisticType
    Logistic(μ,θ)

    The Logistic distribution with location μ and scale θ has probability density function

    \[f(x; \mu, \theta) = \frac{1}{4 \theta} \mathrm{sech}^2 +\left( \frac{x - \mu}{2 \theta} \right)\]

    Logistic()       # Logistic distribution with zero location and unit scale, i.e. Logistic(0, 1)
    +Logistic(μ)      # Logistic distribution with location μ and unit scale, i.e. Logistic(μ, 1)
    +Logistic(μ, θ)   # Logistic distribution with location μ and scale θ
    +
    +params(d)       # Get the parameters, i.e. (μ, θ)
    +location(d)     # Get the location parameter, i.e. μ
    +scale(d)        # Get the scale parameter, i.e. θ

    External links

    source
    Distributions.LogitNormalType
    LogitNormal(μ,σ)

    The logit normal distribution is the distribution of of a random variable whose logit has a Normal distribution. Or inversely, when applying the logistic function to a Normal random variable then the resulting random variable follows a logit normal distribution.

    If $X \sim \operatorname{Normal}(\mu, \sigma)$ then $\operatorname{logistic}(X) \sim \operatorname{LogitNormal}(\mu,\sigma)$.

    The probability density function is

    \[f(x; \mu, \sigma) = \frac{1}{x \sqrt{2 \pi \sigma^2}} +\exp \left( - \frac{(\text{logit}(x) - \mu)^2}{2 \sigma^2} \right), +\quad x > 0\]

    where the logit-Function is

    \[\text{logit}(x) = \ln\left(\frac{x}{1-x}\right) +\quad 0 < x < 1\]

    LogitNormal()        # Logit-normal distribution with zero logit-mean and unit scale
    +LogitNormal(μ)       # Logit-normal distribution with logit-mean μ and unit scale
    +LogitNormal(μ, σ)    # Logit-normal distribution with logit-mean μ and scale σ
    +
    +params(d)            # Get the parameters, i.e. (μ, σ)
    +median(d)            # Get the median, i.e. logistic(μ)

    The following properties have no analytical solution but numerical approximations. In order to avoid package dependencies for numerical optimization, they are currently not implemented.

    mean(d)
    +var(d)
    +std(d)
    +mode(d)

    Similarly, skewness, kurtosis, and entropy are not implemented.

    External links

    source
    Distributions.LogNormalType
    LogNormal(μ,σ)

    The log normal distribution is the distribution of the exponential of a Normal variate: if $X \sim \operatorname{Normal}(\mu, \sigma)$ then $\exp(X) \sim \operatorname{LogNormal}(\mu,\sigma)$. The probability density function is

    \[f(x; \mu, \sigma) = \frac{1}{x \sqrt{2 \pi \sigma^2}} +\exp \left( - \frac{(\log(x) - \mu)^2}{2 \sigma^2} \right), +\quad x > 0\]

    LogNormal()          # Log-normal distribution with zero log-mean and unit scale
    +LogNormal(μ)         # Log-normal distribution with log-mean mu and unit scale
    +LogNormal(μ, σ)      # Log-normal distribution with log-mean mu and scale sig
    +
    +params(d)            # Get the parameters, i.e. (μ, σ)
    +meanlogx(d)          # Get the mean of log(X), i.e. μ
    +varlogx(d)           # Get the variance of log(X), i.e. σ^2
    +stdlogx(d)           # Get the standard deviation of log(X), i.e. σ

    External links

    source
    Distributions.NoncentralBetaType
    NoncentralBeta(α, β, λ)

    Noncentral Beta distribution with shape parameters α > 0 and β > 0 and noncentrality parameter λ >= 0.

    source
    Distributions.NoncentralChisqType
    NoncentralChisq(ν, λ)

    The noncentral chi-squared distribution with ν degrees of freedom and noncentrality parameter λ has the probability density function

    \[f(x; \nu, \lambda) = \frac{1}{2} e^{-(x + \lambda)/2} \left( \frac{x}{\lambda} \right)^{\nu/4-1/2} I_{\nu/2-1}(\sqrt{\lambda x}), \quad x > 0\]

    It is the distribution of the sum of squares of ν independent Normal variates with individual means $\mu_i$ and

    \[\lambda = \sum_{i=1}^\nu \mu_i^2\]

    NoncentralChisq(ν, λ)     # Noncentral chi-squared distribution with ν degrees of freedom and noncentrality parameter λ
    +
    +params(d)    # Get the parameters, i.e. (ν, λ)

    External links

    source
    Distributions.NoncentralFType
    NoncentralF(ν1, ν2, λ)

    Noncentral F-distribution with ν1 > 0 and ν2 > 0 degrees of freedom and noncentrality parameter λ >= 0.

    source
    Distributions.NoncentralTType
    NoncentralT(ν, λ)

    Noncentral Student's t-distribution with v > 0 degrees of freedom and noncentrality parameter λ.

    source
    Distributions.NormalType
    Normal(μ,σ)

    The Normal distribution with mean μ and standard deviation σ≥0 has probability density function

    \[f(x; \mu, \sigma) = \frac{1}{\sqrt{2 \pi \sigma^2}} +\exp \left( - \frac{(x - \mu)^2}{2 \sigma^2} \right)\]

    Note that if σ == 0, then the distribution is a point mass concentrated at μ. Though not technically a continuous distribution, it is allowed so as to account for cases where σ may have underflowed, and the functions are defined by taking the pointwise limit as $σ → 0$.

    Normal()          # standard Normal distribution with zero mean and unit variance
    +Normal(μ)         # Normal distribution with mean μ and unit variance
    +Normal(μ, σ)      # Normal distribution with mean μ and variance σ^2
    +
    +params(d)         # Get the parameters, i.e. (μ, σ)
    +mean(d)           # Get the mean, i.e. μ
    +std(d)            # Get the standard deviation, i.e. σ

    External links

    source
    Distributions.NormalCanonType
    NormalCanon(η, λ)

    Canonical parametrisation of the Normal distribution with canonical parameters η and λ.

    The two canonical parameters of a normal distribution $\mathcal{N}(\mu, \sigma^2)$ with mean $\mu$ and standard deviation $\sigma$ are $\eta = \sigma^{-2} \mu$ and $\lambda = \sigma^{-2}$.

    source
    Distributions.NormalInverseGaussianType
    NormalInverseGaussian(μ,α,β,δ)

    The Normal-inverse Gaussian distribution with location μ, tail heaviness α, asymmetry parameter β and scale δ has probability density function

    \[f(x; \mu, \alpha, \beta, \delta) = \frac{\alpha\delta K_1 \left(\alpha\sqrt{\delta^2 + (x - \mu)^2}\right)}{\pi \sqrt{\delta^2 + (x - \mu)^2}} \; e^{\delta \gamma + \beta (x - \mu)}\]

    where $K_j$ denotes a modified Bessel function of the third kind.

    External links

    source
    Distributions.ParetoType
    Pareto(α,θ)

    The Pareto distribution with shape α and scale θ has probability density function

    \[f(x; \alpha, \theta) = \frac{\alpha \theta^\alpha}{x^{\alpha + 1}}, \quad x \ge \theta\]

    Pareto()            # Pareto distribution with unit shape and unit scale, i.e. Pareto(1, 1)
    +Pareto(α)           # Pareto distribution with shape α and unit scale, i.e. Pareto(α, 1)
    +Pareto(α, θ)        # Pareto distribution with shape α and scale θ
    +
    +params(d)        # Get the parameters, i.e. (α, θ)
    +shape(d)         # Get the shape parameter, i.e. α
    +scale(d)         # Get the scale parameter, i.e. θ

    External links

    source
    Distributions.PGeneralizedGaussianType
    PGeneralizedGaussian(μ, α, p)

    The p-Generalized Gaussian distribution, more commonly known as the exponential power or the generalized normal distribution, with scale α, location μ, and shape p has the probability density function

    \[f(x, \mu, \alpha, p) = \frac{p}{2\alpha\Gamma(1/p)} e^{-(\frac{|x-\mu|}{\alpha})^p} \quad x \in (-\infty, +\infty) , \alpha > 0, p > 0\]

    The p-Generalized Gaussian (GGD) is a parametric distribution that incorporates the normal (p = 2) and Laplacian (p = 1) distributions as special cases. As p → ∞, the distribution approaches the Uniform distribution on [μ - α, μ + α].

    PGeneralizedGaussian()           # GGD with location 0, scale √2, and shape 2 (the normal distribution)
    +PGeneralizedGaussian(μ, α, p)    # GGD with location μ, scale α, and shape p
    +
    +params(d)                        # Get the parameters, i.e. (μ, α, p)
    +location(d)                      # Get the location parameter, μ
    +scale(d)                         # Get the scale parameter, α
    +shape(d)                         # Get the shape parameter, p

    External Links

    source
    Distributions.RayleighType
    Rayleigh(σ)

    The Rayleigh distribution with scale σ has probability density function

    \[f(x; \sigma) = \frac{x}{\sigma^2} e^{-\frac{x^2}{2 \sigma^2}}, \quad x > 0\]

    It is related to the Normal distribution via the property that if $X, Y \sim \operatorname{Normal}(0,\sigma)$, independently, then $\sqrt{X^2 + Y^2} \sim \operatorname{Rayleigh}(\sigma)$.

    Rayleigh()       # Rayleigh distribution with unit scale, i.e. Rayleigh(1)
    +Rayleigh(σ)      # Rayleigh distribution with scale σ
    +
    +params(d)        # Get the parameters, i.e. (σ,)
    +scale(d)         # Get the scale parameter, i.e. σ

    External links

    source
    Distributions.RicianType
    Rician(ν, σ)

    The Rician distribution with parameters ν and σ has probability density function:

    \[f(x; \nu, \sigma) = \frac{x}{\sigma^2} \exp\left( \frac{-(x^2 + \nu^2)}{2\sigma^2} \right) I_0\left( \frac{x\nu}{\sigma^2} \right).\]

    If shape and scale parameters K and Ω are given instead, ν and σ may be computed from them:

    \[\sigma = \sqrt{\frac{\Omega}{2(K + 1)}}, \quad \nu = \sigma\sqrt{2K}\]

    Rician()         # Rician distribution with parameters ν=0 and σ=1
    +Rician(ν, σ)     # Rician distribution with parameters ν and σ
    +
    +params(d)        # Get the parameters, i.e. (ν, σ)
    +shape(d)         # Get the shape parameter K = ν²/2σ²
    +scale(d)         # Get the scale parameter Ω = ν² + 2σ²

    External links:

    source
    Distributions.SemicircleType
    Semicircle(r)

    The Wigner semicircle distribution with radius parameter r has probability density function

    \[f(x; r) = \frac{2}{\pi r^2} \sqrt{r^2 - x^2}, \quad x \in [-r, r].\]

    Semicircle(r)   # Wigner semicircle distribution with radius r
    +
    +params(d)       # Get the radius parameter, i.e. (r,)

    External links

    source
    Distributions.SkewedExponentialPowerType
    SkewedExponentialPower(μ, σ, p, α)

    The Skewed exponential power distribution, with location μ, scale σ, shape p, and skewness α, has the probability density function [1]

    \[f(x; \mu, \sigma, p, \alpha) = +\begin{cases} +\frac{1}{\sigma 2p^{1/p}\Gamma(1+1/p)} \exp \left\{ - \frac{1}{2p}\Big| \frac{x-\mu}{\alpha \sigma} \Big|^p \right\}, & \text{if } x \leq \mu \\ +\frac{1}{\sigma 2p^{1/p}\Gamma(1+1/p)} \exp \left\{ - \frac{1}{2p}\Big| \frac{x-\mu}{(1-\alpha) \sigma} \Big|^p \right\}, & \text{if } x > \mu +\end{cases}.\]

    The Skewed exponential power distribution (SEPD) incorporates the Laplace ($p=1, \alpha=0.5$), normal ($p=2, \alpha=0.5$), uniform ($p\rightarrow \infty, \alpha=0.5$), asymmetric Laplace ($p=1$), skew normal ($p=2$), and exponential power distribution ($\alpha = 0.5$) as special cases.

    [1] Zhy, D. and V. Zinde-Walsh (2009). Properties and estimation of asymmetric exponential power distribution. Journal of econometrics, 148(1):86-96, 2009.

    SkewedExponentialPower()            # SEPD with shape 2, scale 1, location 0, and skewness 0.5 (the standard normal distribution)
    +SkewedExponentialPower(μ, σ, p, α)  # SEPD with location μ, scale σ, shape p, and skewness α
    +SkewedExponentialPower(μ, σ, p)     # SEPD with location μ, scale σ, shape p, and skewness 0.5 (the exponential power distribution)
    +SkewedExponentialPower(μ, σ)        # SEPD with location μ, scale σ, shape 2, and skewness 0.5 (the normal distribution)
    +SkewedExponentialPower(μ)           # SEPD with location μ, scale 1, shape 2, and skewness 0.5 (the normal distribution)
    +
    +params(d)       # Get the parameters, i.e. (μ, σ, p, α)
    +shape(d)        # Get the shape parameter, i.e. p
    +location(d)     # Get the location parameter, i.e. μ
    +scale(d)        # Get the scale parameter, i.e. σ
    source
    Distributions.SkewNormalType
    SkewNormal(ξ, ω, α)

    The skew normal distribution is a continuous probability distribution that generalises the normal distribution to allow for non-zero skewness. Given a location ξ, scale ω, and shape α, it has the probability density function

    \[f(x; \xi, \omega, \alpha) = +\frac{2}{\omega \sqrt{2 \pi}} \exp{\bigg(-\frac{(x-\xi)^2}{2\omega^2}\bigg)} +\int_{-\infty}^{\alpha\left(\frac{x-\xi}{\omega}\right)} +\frac{1}{\sqrt{2 \pi}} \exp{\bigg(-\frac{t^2}{2}\bigg)} \, \mathrm{d}t\]

    External links

    source
    Distributions.StudentizedRangeType
    StudentizedRange(ν, k)

    The studentized range distribution has probability density function:

    \[f(q; k, \nu) = \frac{\sqrt{2\pi}k(k - 1)\nu^{\nu/2}}{\Gamma{\left(\frac{\nu}{2}\right)}2^{\nu/2 - 1}} \int_{0}^{\infty} {x^{\nu}\phi(\sqrt{\nu}x)} \left[\int_{-\infty}^{\infty} {\phi(u)\phi(u - qx)[\Phi(u) - \Phi(u - qx)]^{k - 2}}du\right]dx\]

    where

    \[\begin{aligned} +\Phi(x) &= \frac{1 + erf(\frac{x}{\sqrt{2}})}{2} &&(\text{Normal Distribution CDF})\\ +\phi(x) &= \Phi'(x) &&(\text{Normal Distribution PDF}) +\end{aligned}\]

    StudentizedRange(ν, k)     # Studentized Range Distribution with parameters ν and k
    +
    +params(d)        # Get the parameters, i.e. (ν, k)

    External links

    source
    Distributions.SymTriangularDistType
    SymTriangularDist(μ, σ)

    The Symmetric triangular distribution with location μ and scale σ has probability density function

    \[f(x; \mu, \sigma) = \frac{1}{\sigma} \left( 1 - \left| \frac{x - \mu}{\sigma} \right| \right), \quad \mu - \sigma \le x \le \mu + \sigma\]

    SymTriangularDist()         # Symmetric triangular distribution with zero location and unit scale
    +SymTriangularDist(μ)        # Symmetric triangular distribution with location μ and unit scale
    +SymTriangularDist(μ, s)     # Symmetric triangular distribution with location μ and scale σ
    +
    +params(d)       # Get the parameters, i.e. (μ, σ)
    +location(d)     # Get the location parameter, i.e. μ
    +scale(d)        # Get the scale parameter, i.e. σ
    source
    Distributions.TDistType
    TDist(ν)

    The Students T distribution with ν degrees of freedom has probability density function

    \[f(x; \nu) = \frac{1}{\sqrt{\nu} B(1/2, \nu/2)} +\left( 1 + \frac{x^2}{\nu} \right)^{-\frac{\nu + 1}{2}}\]

    TDist(d)      # t-distribution with ν degrees of freedom
    +
    +params(d)     # Get the parameters, i.e. (ν,)
    +dof(d)        # Get the degrees of freedom, i.e. ν

    External links

    Student's T distribution on Wikipedia

    source
    Distributions.TriangularDistType
    TriangularDist(a,b,c)

    The triangular distribution with lower limit a, upper limit b and mode c has probability density function

    \[f(x; a, b, c)= \begin{cases} + 0 & \mathrm{for\ } x < a, \\ + \frac{2(x-a)}{(b-a)(c-a)} & \mathrm{for\ } a \le x \leq c, \\[4pt] + \frac{2(b-x)}{(b-a)(b-c)} & \mathrm{for\ } c < x \le b, \\[4pt] + 0 & \mathrm{for\ } b < x, + \end{cases}\]

    TriangularDist(a, b)        # Triangular distribution with lower limit a, upper limit b, and mode (a+b)/2
    +TriangularDist(a, b, c)     # Triangular distribution with lower limit a, upper limit b, and mode c
    +
    +params(d)       # Get the parameters, i.e. (a, b, c)
    +minimum(d)      # Get the lower bound, i.e. a
    +maximum(d)      # Get the upper bound, i.e. b
    +mode(d)         # Get the mode, i.e. c

    External links

    source
    Distributions.UniformType
    Uniform(a,b)

    The continuous uniform distribution over an interval $[a, b]$ has probability density function

    \[f(x; a, b) = \frac{1}{b - a}, \quad a \le x \le b\]

    Uniform()        # Uniform distribution over [0, 1]
    +Uniform(a, b)    # Uniform distribution over [a, b]
    +
    +params(d)        # Get the parameters, i.e. (a, b)
    +minimum(d)       # Get the lower bound, i.e. a
    +maximum(d)       # Get the upper bound, i.e. b
    +location(d)      # Get the location parameter, i.e. a
    +scale(d)         # Get the scale parameter, i.e. b - a

    External links

    source
    Distributions.VonMisesType
    VonMises(μ, κ)

    The von Mises distribution with mean μ and concentration κ has probability density function

    \[f(x; \mu, \kappa) = \frac{1}{2 \pi I_0(\kappa)} \exp \left( \kappa \cos (x - \mu) \right)\]

    VonMises()       # von Mises distribution with zero mean and unit concentration
    +VonMises(κ)      # von Mises distribution with zero mean and concentration κ
    +VonMises(μ, κ)   # von Mises distribution with mean μ and concentration κ

    External links

    source
    Distributions.WeibullType
    Weibull(α,θ)

    The Weibull distribution with shape α and scale θ has probability density function

    \[f(x; \alpha, \theta) = \frac{\alpha}{\theta} \left( \frac{x}{\theta} \right)^{\alpha-1} e^{-(x/\theta)^\alpha}, + \quad x \ge 0\]

    Weibull()        # Weibull distribution with unit shape and unit scale, i.e. Weibull(1, 1)
    +Weibull(α)       # Weibull distribution with shape α and unit scale, i.e. Weibull(α, 1)
    +Weibull(α, θ)    # Weibull distribution with shape α and scale θ
    +
    +params(d)        # Get the parameters, i.e. (α, θ)
    +shape(d)         # Get the shape parameter, i.e. α
    +scale(d)         # Get the scale parameter, i.e. θ

    External links

    source

    Discrete Distributions

    Distributions.BernoulliType
    Bernoulli(p)

    A Bernoulli distribution is parameterized by a success rate p, which takes value 1 with probability p and 0 with probability 1-p.

    \[P(X = k) = \begin{cases} +1 - p & \quad \text{for } k = 0, \\ +p & \quad \text{for } k = 1. +\end{cases}\]

    Bernoulli()    # Bernoulli distribution with p = 0.5
    +Bernoulli(p)   # Bernoulli distribution with success rate p
    +
    +params(d)      # Get the parameters, i.e. (p,)
    +succprob(d)    # Get the success rate, i.e. p
    +failprob(d)    # Get the failure rate, i.e. 1 - p

    External links:

    source
    Distributions.BernoulliLogitType
    BernoulliLogit(logitp=0.0)

    A Bernoulli distribution that is parameterized by the logit logitp = logit(p) = log(p/(1-p)) of its success rate p.

    \[P(X = k) = \begin{cases} +\operatorname{logistic}(-logitp) = \frac{1}{1 + \exp{(logitp)}} & \quad \text{for } k = 0, \\ +\operatorname{logistic}(logitp) = \frac{1}{1 + \exp{(-logitp)}} & \quad \text{for } k = 1. +\end{cases}\]

    External links:

    See also Bernoulli

    source
    Distributions.BetaBinomialType
    BetaBinomial(n,α,β)

    A Beta-binomial distribution is the compound distribution of the Binomial distribution where the probability of success p is distributed according to the Beta. It has three parameters: n, the number of trials and two shape parameters α, β

    \[P(X = k) = {n \choose k} B(k + \alpha, n - k + \beta) / B(\alpha, \beta), \quad \text{ for } k = 0,1,2, \ldots, n.\]

    BetaBinomial(n, α, β)      # BetaBinomial distribution with n trials and shape parameters α, β
    +
    +params(d)       # Get the parameters, i.e. (n, α, β)
    +ntrials(d)      # Get the number of trials, i.e. n

    External links:

    source
    Distributions.BinomialType
    Binomial(n,p)

    A Binomial distribution characterizes the number of successes in a sequence of independent trials. It has two parameters: n, the number of trials, and p, the probability of success in an individual trial, with the distribution:

    \[P(X = k) = {n \choose k}p^k(1-p)^{n-k}, \quad \text{ for } k = 0,1,2, \ldots, n.\]

    Binomial()      # Binomial distribution with n = 1 and p = 0.5
    +Binomial(n)     # Binomial distribution for n trials with success rate p = 0.5
    +Binomial(n, p)  # Binomial distribution for n trials with success rate p
    +
    +params(d)       # Get the parameters, i.e. (n, p)
    +ntrials(d)      # Get the number of trials, i.e. n
    +succprob(d)     # Get the success rate, i.e. p
    +failprob(d)     # Get the failure rate, i.e. 1 - p

    External links:

    source
    Distributions.CategoricalType
    Categorical(p)

    A Categorical distribution is parameterized by a probability vector p (of length K).

    \[P(X = k) = p[k] \quad \text{for } k = 1, 2, \ldots, K.\]

    Categorical(p)   # Categorical distribution with probability vector p
    +params(d)        # Get the parameters, i.e. (p,)
    +probs(d)         # Get the probability vector, i.e. p
    +ncategories(d)   # Get the number of categories, i.e. K

    Here, p must be a real vector, of which all components are nonnegative and sum to one.

    Note: The input vector p is directly used as a field of the constructed distribution, without being copied.

    Categorical is simply a type alias describing a special case of a DiscreteNonParametric distribution, so non-specialized methods defined for DiscreteNonParametric apply to Categorical as well.

    External links:

    source
    Distributions.DiracType
    Dirac(x)

    A Dirac distribution is parameterized by its only value x, and takes its value with probability 1.

    \[P(X = \hat{x}) = \begin{cases} +1 & \quad \text{for } \hat{x} = x, \\ +0 & \quad \text{for } \hat{x} \neq x. +\end{cases}\]

    Dirac(2.5)   # Dirac distribution with value x = 2.5

    External links:

    source
    Distributions.DiscreteUniformType
    DiscreteUniform(a,b)

    A Discrete uniform distribution is a uniform distribution over a consecutive sequence of integers between a and b, inclusive.

    \[P(X = k) = 1 / (b - a + 1) \quad \text{for } k = a, a+1, \ldots, b.\]

    DiscreteUniform(a, b)   # a uniform distribution over {a, a+1, ..., b}
    +
    +params(d)       # Get the parameters, i.e. (a, b)
    +span(d)         # Get the span of the support, i.e. (b - a + 1)
    +probval(d)      # Get the probability value, i.e. 1 / (b - a + 1)
    +minimum(d)      # Return a
    +maximum(d)      # Return b

    External links

    source
    Distributions.DiscreteNonParametricType
    DiscreteNonParametric(xs, ps)

    A Discrete nonparametric distribution explicitly defines an arbitrary probability mass function in terms of a list of real support values and their corresponding probabilities

    d = DiscreteNonParametric(xs, ps)
    +
    +params(d)  # Get the parameters, i.e. (xs, ps)
    +support(d) # Get a sorted AbstractVector describing the support (xs) of the distribution
    +probs(d)   # Get a Vector of the probabilities (ps) associated with the support

    External links

    source
    Distributions.GeometricType
    Geometric(p)

    A Geometric distribution characterizes the number of failures before the first success in a sequence of independent Bernoulli trials with success rate p.

    \[P(X = k) = p (1 - p)^k, \quad \text{for } k = 0, 1, 2, \ldots.\]

    Geometric()    # Geometric distribution with success rate 0.5
    +Geometric(p)   # Geometric distribution with success rate p
    +
    +params(d)      # Get the parameters, i.e. (p,)
    +succprob(d)    # Get the success rate, i.e. p
    +failprob(d)    # Get the failure rate, i.e. 1 - p

    External links

    source
    Distributions.HypergeometricType
    Hypergeometric(s, f, n)

    A Hypergeometric distribution describes the number of successes in n draws without replacement from a finite population containing s successes and f failures.

    \[P(X = k) = {{{s \choose k} {f \choose {n-k}}}\over {s+f \choose n}}, \quad \text{for } k = \max(0, n - f), \ldots, \min(n, s).\]

    Hypergeometric(s, f, n)  # Hypergeometric distribution for a population with
    +                         # s successes and f failures, and a sequence of n trials.
    +
    +params(d)       # Get the parameters, i.e. (s, f, n)

    External links

    source
    Distributions.NegativeBinomialType
    NegativeBinomial(r,p)

    A Negative binomial distribution describes the number of failures before the rth success in a sequence of independent Bernoulli trials. It is parameterized by r, the number of successes, and p, the probability of success in an individual trial.

    \[P(X = k) = {k + r - 1 \choose k} p^r (1 - p)^k, \quad \text{for } k = 0,1,2,\ldots.\]

    The distribution remains well-defined for any positive r, in which case

    \[P(X = k) = \frac{\Gamma(k+r)}{k! \Gamma(r)} p^r (1 - p)^k, \quad \text{for } k = 0,1,2,\ldots.\]

    NegativeBinomial()        # Negative binomial distribution with r = 1 and p = 0.5
    +NegativeBinomial(r, p)    # Negative binomial distribution with r successes and success rate p
    +
    +params(d)       # Get the parameters, i.e. (r, p)
    +succprob(d)     # Get the success rate, i.e. p
    +failprob(d)     # Get the failure rate, i.e. 1 - p

    External links:

    source
    Distributions.PoissonType
    Poisson(λ)

    A Poisson distribution describes the number of independent events occurring within a unit time interval, given the average rate of occurrence λ.

    \[P(X = k) = \frac{\lambda^k}{k!} e^{-\lambda}, \quad \text{ for } k = 0,1,2,\ldots.\]

    Poisson()        # Poisson distribution with rate parameter 1
    +Poisson(lambda)       # Poisson distribution with rate parameter lambda
    +
    +params(d)        # Get the parameters, i.e. (λ,)
    +mean(d)          # Get the mean arrival rate, i.e. λ

    External links:

    source
    Distributions.PoissonBinomialType
    PoissonBinomial(p)

    A Poisson-binomial distribution describes the number of successes in a sequence of independent trials, wherein each trial has a different success rate. It is parameterized by a vector p (of length $K$), where $K$ is the total number of trials and p[i] corresponds to the probability of success of the ith trial.

    \[P(X = k) = \sum\limits_{A\in F_k} \prod\limits_{i\in A} p[i] \prod\limits_{j\in A^c} (1-p[j]), \quad \text{ for } k = 0,1,2,\ldots,K,\]

    where $F_k$ is the set of all subsets of $k$ integers that can be selected from $\{1,2,3,...,K\}$.

    PoissonBinomial(p)   # Poisson Binomial distribution with success rate vector p
    +
    +params(d)            # Get the parameters, i.e. (p,)
    +succprob(d)          # Get the vector of success rates, i.e. p
    +failprob(d)          # Get the vector of failure rates, i.e. 1-p

    External links:

    source
    Distributions.SkellamType
    Skellam(μ1, μ2)

    A Skellam distribution describes the difference between two independent Poisson variables, respectively with rate μ1 and μ2.

    \[P(X = k) = e^{-(\mu_1 + \mu_2)} \left( \frac{\mu_1}{\mu_2} \right)^{k/2} I_k(2 \sqrt{\mu_1 \mu_2}) \quad \text{for integer } k\]

    where $I_k$ is the modified Bessel function of the first kind.

    Skellam(μ1, μ2)     # Skellam distribution for the difference between two Poisson variables,
    +                    # respectively with expected values μ1 and μ2.
    +
    +params(d)           # Get the parameters, i.e. (μ1, μ2)

    External links:

    source
    Distributions.SolitonType
    Soliton(K::Integer, M::Integer, δ::Real, atol::Real=0) <: Distribution{Univariate, Discrete}

    The Robust Soliton distribution of length K, mode M (i.e., the location of the robust component spike), peeling process failure probability δ, and minimum non-zero probability mass atol. More specifically, degrees i for which pdf(Ω, i)<atol are set to 0. Letting atol=0 yields the regular robust Soliton distribution.

    Soliton(K, M, δ)        # Robust Soliton distribution (with atol=0)
    +Soliton(K, M, δ, atol)  # Robust Soliton distribution with minimum non-zero probability mass atol
    +
    +params(Ω)               # Get the parameters ,i.e., (K, M, δ, atol)
    +degrees(Ω)              # Return a vector composed of the degrees with non-zero probability mass
    +pdf(Ω, i)               # Evaluate the pdf at i
    +cdf(Ω, i)               # Evaluate the pdf at i
    +rand(Ω)                 # Sample from Ω
    +rand(Ω, n)              # Draw n samples from Ω

    External links:

    source

    Vectorized evaluation

    Vectorized computation and in-place vectorized computation have been deprecated.

    Index

    • 1Lindley, D. V. (1958). Fiducial Distributions and Bayes' Theorem. Journal of the Royal Statistical Society: Series B (Methodological), 20(1), 102–107.
    • 2Ghitany, M. E., Atieh, B., & Nadarajah, S. (2008). Lindley distribution and its application. Mathematics and Computers in Simulation, 78(4), 493–506.