From f95014014209f0b7d0f1839d41c0cbfe74bf4ade Mon Sep 17 00:00:00 2001 From: zeptodoctor <44736852+zeptodoctor@users.noreply.github.com> Date: Fri, 12 Jan 2024 04:53:12 +0000 Subject: [PATCH] build based on dfb99c6 --- previews/PR1495/adjoints/index.html | 103 + previews/PR1495/assets/documenter.js | 260 + previews/PR1495/assets/flux.css | 113 + previews/PR1495/assets/logo-dark.png | Bin 0 -> 113603 bytes previews/PR1495/assets/logo.png | Bin 0 -> 107081 bytes previews/PR1495/assets/search.js | 247 + .../PR1495/assets/themes/documenter-dark.css | 7628 +++++++++++++++++ .../PR1495/assets/themes/documenter-light.css | 7614 ++++++++++++++++ previews/PR1495/assets/themeswap.js | 42 + previews/PR1495/complex/index.html | 30 + previews/PR1495/glossary/index.html | 9 + previews/PR1495/index.html | 133 + previews/PR1495/internals/index.html | 138 + previews/PR1495/limitations/index.html | 90 + previews/PR1495/profiling/index.html | 31 + previews/PR1495/search/index.html | 9 + previews/PR1495/search_index.js | 3 + previews/PR1495/siteinfo.js | 1 + previews/PR1495/utils/index.html | 183 + 19 files changed, 16634 insertions(+) create mode 100644 previews/PR1495/adjoints/index.html create mode 100644 previews/PR1495/assets/documenter.js create mode 100644 previews/PR1495/assets/flux.css create mode 100644 previews/PR1495/assets/logo-dark.png create mode 100644 previews/PR1495/assets/logo.png create mode 100644 previews/PR1495/assets/search.js create mode 100644 previews/PR1495/assets/themes/documenter-dark.css create mode 100644 previews/PR1495/assets/themes/documenter-light.css create mode 100644 previews/PR1495/assets/themeswap.js create mode 100644 previews/PR1495/complex/index.html create mode 100644 previews/PR1495/glossary/index.html create mode 100644 previews/PR1495/index.html create mode 100644 previews/PR1495/internals/index.html create mode 100644 previews/PR1495/limitations/index.html create mode 100644 previews/PR1495/profiling/index.html create mode 100644 previews/PR1495/search/index.html create mode 100644 previews/PR1495/search_index.js create mode 100644 previews/PR1495/siteinfo.js create mode 100644 previews/PR1495/utils/index.html diff --git a/previews/PR1495/adjoints/index.html b/previews/PR1495/adjoints/index.html new file mode 100644 index 000000000..bb8ed4362 --- /dev/null +++ b/previews/PR1495/adjoints/index.html @@ -0,0 +1,103 @@ + +Custom Adjoints · Zygote

Custom Adjoints

Prefer to use ChainRulesCore to define custom adjoints

Zygote supports the use of ChainRulesCore to define custom sensitivities. It is preferred to define the custom sensitivities using ChainRulesCore.rrule as they will work for many AD systems, not just Zygote. These sensitivities can be added in your own package, or for Base/StdLib functions they can be added to ChainRules.jl. To define custom sensitivities using ChainRulesCore, define a ChainRulesCore.rrule(f, args...; kwargs...). Head to ChainRules project's documentation for more information. If you are defining your custom adjoints using ChainRulesCore then you do not need to read this page, and can consider it as documenting a legacy feature.

This page exists to describe how Zygote works, and how adjoints can be directly defined for Zygote. Defining adjoints this way does not make them accessible to other AD systems, but does let you do things that directly depend on how Zygote works. It allows for specific definitions of adjoints that are only defined for Zygote (which might work differently to more generic definitions defined for all AD).

The @adjoint macro is an important part of Zygote's interface; customising your backwards pass is not only possible but widely used and encouraged. While there are specific utilities available for common things like gradient clipping, understanding adjoints will give you the most flexibility. We first give a bit more background on what these pullback things are.

Pullbacks

gradient is really just syntactic sugar around the more fundamental function pullback.

julia> using Zygote
+
+julia> y, back = Zygote.pullback(sin, 0.5);
+
+julia> y
+0.479425538604203

pullback gives two outputs: the result of the original function, sin(0.5), and a pullback, here called back. back implements the gradient computation for sin, accepting a derivative and producing a new one. In mathematical terms, it implements a vector-Jacobian product. Where $y = f(x)$ and the gradient $\frac{\partial l}{\partial x}$ is written $\bar{x}$, the pullback $\mathcal{B}_y$ computes:

\[\bar{x} = \frac{\partial l}{\partial x} = \frac{\partial l}{\partial y} \frac{\partial y}{\partial x} = \mathcal{B}_y(\bar{y})\]

To make this concrete, take the function $y = \sin(x)$. $\frac{\partial y}{\partial x} = \cos(x)$, so the pullback is $\bar{y} \cos(x)$. In other words pullback(sin, x) behaves the same as

dsin(x) = (sin(x), ȳ -> (ȳ * cos(x),))

gradient takes a function $l = f(x)$ and assumes $l̄ = \frac{\partial l}{\partial l} = 1$ and feeds this in to the pullback. In the case of sin,

julia> function gradsin(x)
+         _, back = dsin(x)
+         back(1)
+       end
+gradsin (generic function with 1 method)
+
+julia> gradsin(0.5)
+(0.8775825618903728,)
+
+julia> cos(0.5)
+0.8775825618903728

More generally

julia> function mygradient(f, x...)
+         _, back = Zygote.pullback(f, x...)
+         back(1)
+       end
+mygradient (generic function with 1 method)
+
+julia> mygradient(sin, 0.5)
+(0.8775825618903728,)

The rest of this section contains more technical detail. It can be skipped if you only need an intuition for pullbacks; you generally won't need to worry about it as a user.

If $x$ and $y$ are vectors, $\frac{\partial y}{\partial x}$ becomes a Jacobian. Importantly, because we are implementing reverse mode we actually left-multiply the Jacobian, i.e. v'J, rather than the more usual J*v. Transposing v to a row vector and back (v'J)' is equivalent to J'v so our gradient rules actually implement the adjoint of the Jacobian. This is relevant even for scalar code: the adjoint for y = sin(x) is x̄ = cos(x)'*ȳ; the conjugation is usually moot but gives the correct behaviour for complex code. "Pullbacks" are therefore sometimes called "vector-Jacobian products" (VJPs), and we refer to the reverse mode rules themselves as "adjoints".

Zygote has many adjoints for non-mathematical operations such as for indexing and data structures. Though these can still be seen as linear functions of vectors, it's not particularly enlightening to implement them with an actual matrix multiply. In these cases it's easiest to think of the adjoint as a kind of inverse. For example, the gradient of a function that takes a tuple to a struct (e.g. y = Complex(a, b)) will generally take a struct to a tuple ((ȳ.re, ȳ.im)). The gradient of a getindex y = x[i...] is a setindex! x̄[i...] = ȳ, etc.

Custom Adjoints

We can extend Zygote to a new function with the @adjoint function.

julia> mul(a, b) = a*b;
+
+julia> using Zygote: @adjoint
+
+julia> @adjoint mul(a, b) = mul(a, b), c̄ -> (c̄*b, c̄*a)
+
+julia> gradient(mul, 2, 3)
+(3.0, 2.0)

It might look strange that we write mul(a, b) twice here. In this case we want to call the normal mul function for the pullback pass, but you may also want to modify the pullback pass (for example, to capture intermediate results in the pullback).

Custom Types

One good use for custom adjoints is to customise how your own types behave during differentiation. For example, in our Point example we noticed that the adjoint is a named tuple, rather than another point.

import Base: +, -
+
+struct Point
+  x::Float64
+  y::Float64
+end
+
+width(p::Point) = p.x
+height(p::Point) = p.y
+
+a::Point + b::Point = Point(width(a) + width(b), height(a) + height(b))
+a::Point - b::Point = Point(width(a) - width(b), height(a) - height(b))
+dist(p::Point) = sqrt(width(p)^2 + height(p)^2)
julia> gradient(a -> dist(a), Point(1, 2))[1]
+(x = 0.4472135954999579, y = 0.8944271909999159)

Fundamentally, this happens because of Zygote's default adjoint for getfield.

julia> gradient(a -> a.x, Point(1, 2))
+((x = 1, y = nothing),)

We can overload this by modifying the getters height and width.

julia> @adjoint width(p::Point) = p.x, x̄ -> (Point(x̄, 0),)
+
+julia> @adjoint height(p::Point) = p.y, ȳ -> (Point(0, ȳ),)
+
+julia> Zygote.refresh() # currently needed when defining new adjoints
+
+julia> gradient(a -> height(a), Point(1, 2))
+(Point(0.0, 1.0),)
+
+julia> gradient(a -> dist(a), Point(1, 2))[1]
+Point(0.4472135954999579, 0.8944271909999159)

If you do this you should also overload the Point constructor, so that it can handle a Point gradient (otherwise this function will error).

julia> @adjoint Point(a, b) = Point(a, b), p̄ -> (p̄.x, p̄.y)
+
+julia> gradient(x -> dist(Point(x, 1)), 1)
+(0.7071067811865475,)

Advanced Adjoints

We usually use custom adjoints to add gradients that Zygote can't derive itself (for example, because they ccall to BLAS). But there are some more advanced and fun things we can to with @adjoint.

Gradient Hooks

julia> hook(f, x) = x
+hook (generic function with 1 method)
+
+julia> @adjoint hook(f, x) = x, x̄ -> (nothing, f(x̄))

hook doesn't seem that interesting, as it doesn't do anything. But the fun part is in the adjoint; it's allowing us to apply a function f to the gradient of x.

julia> gradient((a, b) -> hook(-, a)*b, 2, 3)
+(-3.0, 2.0)

We could use this for debugging or modifying gradients (e.g. gradient clipping).

julia> gradient((a, b) -> hook(ā -> @show(ā), a)*b, 2, 3)
+ā = 3.0
+(3.0, 2.0)

Zygote provides both hook and @showgrad so you don't have to write these yourself.

Checkpointing

A more advanced example is checkpointing, in which we save memory by re-computing the pullback pass of a function during the backwards pass. To wit:

julia> checkpoint(f, x) = f(x)
+checkpoint (generic function with 1 method)
+
+julia> @adjoint checkpoint(f, x) = f(x), ȳ -> Zygote._pullback(f, x)[2](ȳ)
+
+julia> gradient(x -> checkpoint(sin, x), 1)
+(0.5403023058681398,)

If a function has side effects we'll see that the pullback pass happens twice, as expected.

julia> foo(x) = (println(x); sin(x))
+foo (generic function with 1 method)
+
+julia> gradient(x -> checkpoint(foo, x), 1)
+1
+1
+(0.5403023058681398,)

Gradient Reflection

It's easy to check whether the code we're running is currently being differentiated.

isderiving() = false
+
+@adjoint isderiving() = true, _ -> nothing

A more interesting example is to actually detect how many levels of nesting are going on.

nestlevel() = 0
+
+@adjoint nestlevel() = nestlevel()+1, _ -> nothing

Demo:

julia> function f(x)
+         println(nestlevel(), " levels of nesting")
+         return x
+       end
+f (generic function with 1 method)
+
+julia> grad(f, x) = gradient(f, x)[1]
+grad (generic function with 1 method)
+
+julia> f(1);
+0 levels of nesting
+
+julia> grad(f, 1);
+1 levels of nesting
+
+julia> grad(x -> x*grad(f, x), 1);
+2 levels of nesting
diff --git a/previews/PR1495/assets/documenter.js b/previews/PR1495/assets/documenter.js new file mode 100644 index 000000000..22f0f9a09 --- /dev/null +++ b/previews/PR1495/assets/documenter.js @@ -0,0 +1,260 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.10/languages/julia.min', + 'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.10.3/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.11.1/contrib/auto-render.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min', + 'headroom-jquery': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.10.3/jQuery.headroom.min', + 'katex': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.11.1/katex.min', + 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.10/highlight.min', + 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.10/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($, hljs) { +$(document).ready(function() { + hljs.initHighlighting(); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +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); + }) + } + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// update the version selector with info from the siteinfo.js and ../versions.js files +$(document).ready(function() { + 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/PR1495/assets/flux.css b/previews/PR1495/assets/flux.css new file mode 100644 index 000000000..541ead5fe --- /dev/null +++ b/previews/PR1495/assets/flux.css @@ -0,0 +1,113 @@ +@import url('https://fonts.googleapis.com/css?family=Lato:400,400i'); + +body { + font-family: Lato, "Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif; +} + +nav.toc { + padding-top: 0; + background: rgb(240, 240, 240); + line-height: 2em; + cursor: default; + user-select: none; +} + +h1+h2 { + margin-top: 0; +} + +/* Green banner in ToC */ +nav.toc > h1 { + margin-top: 0; + padding-top: 0.4em; + padding-bottom: 0.5em; + border-bottom: 5px solid white; + box-shadow: 0px -2px 5px rgb(60,60,60); + margin-bottom: 0.5em; + background: rgb(60, 150, 60); + + font-style: italic; + font-weight: normal; + font-size: 50pt; + text-transform: lowercase; + text-shadow: 2px 2px 5px rgba(0,0,0,0.2); + color: white; +} + +/* Reduce ToC font size */ +.toctext { + font-size: 10pt; +} + +/* Fade out non-clickable ToC headers */ +nav.toc ul span.toctext { + color: rgb(180, 180, 180); +} + +nav.toc ul .toctext { + color: rgb(100, 100, 100); +} + +nav.toc ul a.toctext:hover { + color: inherit; + background: rgb(220, 220, 220); + cursor: default; +} + +nav.toc li.current > .toctext { + background: linear-gradient(90deg, rgb(245,245,245) 0%, white 90%); + font-weight: normal; +} + +nav.toc ul.internal li.toplevel { + font-weight: normal; +} + +/* Content */ + +article { max-width: none; } + +article > p, article > ul { + max-width: 45em; +} + +/* Links */ +a, a:visited { color: rgb(0, 120, 0); } +article p a { border-bottom: 1px solid rgb(200, 230, 200); } +a:hover, a:visited:hover { color: rgb(0, 80, 0); } + +/* Article Links */ +article p a { border-bottom: 1px solid rgb(200, 230, 200); } +article p a:hover, article a:visited:hover { color: rgb(0, 120, 0); } +article p a:hover { border-bottom: 1px solid rgb(150, 200, 150); } + +/* Doctstrings */ +article section.docstring { + padding: 0.5em 0; + border-left: none; + border-right: none; + border-bottom: none; +} + +/* Code */ + +article pre, article p > code { + background: rgb(245, 250, 245); +} + +article pre { + border: none; + max-width: none; + padding: 1em; + border-radius: 10px 0px 0px 10px; + margin-left: -1em; + margin-right: -2em; +} + +.hljs-comment { + font-style: italic; +} + +.hljs-number { + color: rgb(0, 150, 150); +} diff --git a/previews/PR1495/assets/logo-dark.png b/previews/PR1495/assets/logo-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..188c149844cad623edb8e36fd2b636a1a803490c GIT binary patch literal 113603 zcmeFZ^;?v0^FA(V00IJnNGUBP(vnKI#L}U3BP_YVA{GtONOy;Hg9-~G-LWj)uq?ea z-y2`?ex4tA{($fC@i<&jWbe7=nmFg2nGJlUB1>?G^3IJLHwfhAq||TRz^%V=1LNox zF7Pj82BL3(KQO@RvM+Cx^ir+exIuSAUh0LWhtVeDriUizUZ3rm%0AGT>Y#B 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 ^N(k5Y1y-^+> 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 #XiXrKXNf`VpP*rKq`CM_XUN?FC&1 zgol3*s_bl={gez#V22xVvjRu0X@L(gqJh_9ib_4u*6cG|X^0BD8@L&}JLs1i2p~Ss zJ6l_ISbT557$^$a5mn=lGm8D1IR;(9Vsvt+$-ZXe?xjNPzoW&JrA=ZTjV?k8vo7`_ z_;)kkzaxE14YU}mQzI$&gkCYr;uJ~#t;5byRZxLmQU4>YKfL|9m7YukH7#>O@-&;J zHGB22eI=gzjqT)=ey0wpbEV+xB|QWC$P8k!;fWWgNw@==J&`WG`?f0CnV9=bOap`E zGmS?xvw?Qm^v4$U^Q5k@XB<$$27w<$NIR~prM9uPs>^~Sa$qL3tew&Yb=i&C3VTX= z1y%GId;~Of2AzMuzrb2q`eP6WKYOx}XQStLD86e=G3pw(%5++dDsa zk>UMwSuh4ObIL7{P2cagvqDPX{JhQ$Ky*?hRA>#`pkiVgvwwW@&1b}x{rURs)Et^( zI;Z7Fkc}-^g@dqCA!Sapr6m8eP3a|Gheea|io{DgSkD(T!^3~+0Oj!D(H6=L(PpfEV>Um8ACCP~$`M+%iG?zqz?yBRvC+r+LbM(gP5asJRA&knJH! z$Dx?uVG-oq2;k019naU8e#AY!o~de zwxBP%gWlwGELfBgVD|Rul_SRJ{)o7b3j!x=SLdiuSd&Yv1UV&@cx(Oi`oJX3ST z8>}U2X=oZUhdhfsO!`jWWGbB5*`SQSFi;OJJnPu|*L&#}1f)WN`SfS|WW3${d`aeF z*k~0iHyfvT9GopcHmzpYfMJvulIwnlD`-O0x129XY3rDp@T%&SvkXqjPY3Sje!1z6 z8&3pQp`*vwP*66L4(=H+n$mb#aU>QGk~ZKOX3A>(F5l*!*HKNa4uNP3VH6$~=wmev zH8tK!Wn9(Vc+9HOj3OAR7DNGblaNg>I<@&Qfc_w?7=Cr zm%*m?e>eYTNHf%K7ASL6E?XwG%DvXFxVfi40(25dS~YL+L-T_UFKs2w?*lMhhoOV9 z$}{0XLw-ct=8vg+-T^>jtXOBCw#G=rHZ;OdsF@kxN$f3UZr~(p($PrQ~ zJWYu>O%>FT>WEaN)LQH+*GGfQCo=n)>Xh%OcU;cT3rW<4o{^ymg4Mqov3nG1r4(#O zx*yc~&p$aL3O4cDKL#*k@^jZ(02UAplvoV2L!@naVWE_A*Z~zIqeDgVIJh9N^YD!I z9d!ev0K{A7P9iH@D!}RS2a*OJSv)5Az<#;{`1afe*F`pbG&DuhK%g;}n?lHU1nkWT z`5H>bq+~+mz&)^{j7w7T{F?nq7!jOLoU}j#;9N$Gn-R28^pHhb7V89A7f}m93p+KT zs3G`)01p*D=O!6s1aw(@NZmE||MBz{KvhL++XoLJt%S66cZWy`(j_4w-QA!xNOyNj zcXy|hNT*6Sh;;L>bMJS5XPD8khJE(l>wTY;R-!&o;};Ofl9rJn9C4T2T!9tyA-V&d z0O;yC&&+6Jz`oKT+4V<@6k-$PY`Tx<$JQ2LSn8IE&)h;~L`Wp7c;0cLURBsdtS9VT zM}$q=d~8M{%G_`6^2yov1Ck$dD${lru9R`k#g&A~civcyc$y zZObOh&)jX{<)vTpm{+#+I8JmIbcIPG9X&ya9(%_%H)TJnz~S#P)UxT}ElQN2&dp4c zaaJMDAd92A?pZQy9-Uat_WX?Lb*;_={Ed%X#zyeSl1%>lsPX!Ahzm89a>*G>DIB@{ z*98ChoGjBv68@6#dH0EIGbY?wL|Rs1G*~h^((slxjMM)HBEU7ETc@1MhyMZsBHuNq zR-29!#$wKL1#E#hu~H%;qGVoi$#;W5$LBNwX4*ntail#XX$@`Q)(Kx|v>`HTAed_Y z|L6TcXt=zI_1aw-z_^<1PcH^|=A)(D>qL4v5!|m%w`ALZck^X>CMLW0^-0edsN$4$ zuk$Os0aiGmr8#iLly7yAimi3D5!KVaSR zkq|@q@IS}uE_xX(ETcBKh{aCXUNqqP<$`Za7RyOpPx0&6y_S+%AF=q&QkD+(MHj`r z&7ngU%`YD}H~sUDx1&m*l~hy_#$95T+;fZLTgHNGnUp^1jF>kiIvm`^RwA`>pg2Br z9ER*&TpLs&FF1*@4DV#zl0#*|K?|!87-+VLyV!>1+rWssi{|?uKYlcF@bXGl1xBNq zLl4)FeJ&Ah|6}bS;)&Qj46m{PJt03e+}zx-F41u4fEH1F$(Ng=B$vv#OH^;OfHxz5 zTVf%of$@J@fGPLqC@+eYanz_So~TMdT#i+T)NTb*9kaZgoFnxfQM$|4)|Lejm$NTiE71Cl8X8{Evpg-KcgU@F|AMDHdO-`Ps-L_`0j;< z%#+z!A*A-}{rv@5qN!&+JLMG)7{-m;4LdCuYCA9#xn+QqE-$ zykBP)?GYS3cIKDj?;+TMTG{#pu6zW^Qg>O)(e68}?bATPFj}b$m)}ysQ=-D;lxmw9 zj+*Qzw-;7KFgGrnX7 z__!=D>qYCxkdPEmGM4eYL;=nJ6ubv74rj~oKDjTUQl0Kj%gagnO##;a}1l?sD5ZjM;Smr#+@fi&jaZO`1IzFk>iQo z^jgunSCarGeh*%Jae&^4spM98W9)n3$D)Dh3RKSgUvR$+%Bi5F|Lik8x9%9RV(eay z!~A~IrhTRGoZ!{AzaS)jb!cC8i!N&E;gXxJRBXWS$5wBA2>lgX$?H#yr&-`5Qihb*U|)2|D6R2yClw8utK z{M_*Wl&2KLggUxm;#rEI)$KnZf!Lf0b#m|iRCrXAjpZs05R=8D7M6T3)z6tIR=c5MP5W~ z&>@&C1c4_#FF&`f=Ahl>K)ng{Sl>%L!?b?>d-YiK#w2T@JCSK#)zEMqSZ&`^jZD#) z0i<;d2p?!Sy?^G2Rx^=nHKIsn_2b8!R(AEg5xAn>*>eg*1dsz)N%9^-=a;|Wf~00!ileyxyGbDHZoS&z5!B=ub?KxL# zsN}KFItyGrU0PhyU|Altm=_Tmjn)KAxpWsoK_?=Z5XkbLj^+)0dSajT78oKx9{RET z7-vxb7-;ljlI7&&Jddv%tLK$k2M@)2fP#HN|3I5Ek!2IbA4mlqpQ~v2Q;H+WCsm ziS$Y;<7jYFeGc$a309GUvZ3@GwnrCXnVLu(>FIp@WKAYZR}G5h+`S%$o)n{5_q(uO zTR=RlkrAGW%p(guF^|eFE?j>d&kNKQ&}q|4DA4)wYRI=9zxgW9vwPjfZsHjPN7)A7 zoDl-GF?LXG$XMaUFUFf9qilMm8XmJ~Qe1TX?_?>d5l13%gN%FcW|$zovi#i$!}NzK z__?K5eEK{Kra<9yt+@H*P0Fc*$ zv24ae5c;ht;~Mf;SXk>#=93iG54$jts1$t{bs6q^nHTHfT|j8Fryyqf{63QeCS2bh zOMPR^jVI>{*aji+do9bUn^J9xBZRVmbAgp)=f7o};-eyo?&|W90^l`J87zLtiVK+N z2SfJNA$X|?9P?8S3wd?|q1zA23V=*_Q=6B+Bo(thOa7B!d8YGo zvISYUDSKP+_{Sz!_7GCVg_cx@KM8hJ&GxYBZcW2L<+`@eIW~0qVU3v7hPU{dI z&By{EJ+D*9Jf9G9wYK$gX=p4zj5C)MRjFIBz7M!C1uAZPOhqiSkUlC5C<0dnw;A9K zZU$VW7I}XLB?*wG>@kKKMG;Zb02>VCudw=80XV1Bc2=68tEuH0eg6Ssc6lCieEI47 z&>EI14jIn0Tsq5wKg4vW3wV4LII4d2d2Vzp{tre`4Ths_q{HM2yXmkt#lexm!R@ze z=O^@GaYyvzy~q~jC(ri_@>#~;uX4$kJ%gl7+ZEKmfMpC@gUr{3yXVrw9e+zBqodvY zI@pYDt|TvkwF?Tu@p(2F^v=N%l>}l5q{u_#eX8k{aMTpZDoMpC3{*&;F@d6&x%qik z6Cxk$ZdtKy_Du`mAE=Ig&EB*3cbo)lovW+*3vXCM&<|wQ@ugGnG;bJC-+(;C^gB>k zi(ncBq@}M$duhzx2_kL+&GWWI+Tn%3N-u}$3ZGnC*pv9dqs$< zQ#Q1=;ktaFa(Kh>pD7?TOiSnFu0^`{*8OrW9mi<>rnD5du<{$PRs>-~>Uw8)SPvO* zfH9(f9;YG8FJ>TgQC15@DvwCi^b&!a{W!I$|9<{XksG3JCDF3_{&Mg}{?@g6y7z;? zZuHFA29%X4T%yM^-xeY_gQhGV8vi9W8wH-r$+YQ;wX?JGXejXI4g^Wc5Um@+3i18I zE;W|78wN6&fYvWkI8-Q(h`b6d25jzYy@8@#kGEwr4Aj6#Y>=Cstw&eMKQ=Kj&%wpT z)Mr8p+A0eTEHEg((!$!JfGzCqiJs9`-`5K4jiaC*VsLbXrj+CZ$1kOS-mzc3XkddD zu$7{J(KIfQf$|bL$DKs^3xXc1VFSSMBuno^z;~{%uMb9&yt$;?`!tM2ihM>P>qBjU zir5CLslNk_1)a0t4)B-~#HW^C$*6o{Bjfc05~11P!@aYT(n^_33&&X;HBl!LD;oB^ zzw^@dKNRZoV#)*oK-(6Mw`TMJ_^klHXz`5haTx&A$p%-h| zZ0_P%9PJT^TUcWKqt>z=-X`wr?QRGzpqxAO#zTUL$V_}t&GBuh;aEM}+I9&Hyb8i+ zt|&%YL}>WVAcvmtd!W3=Dv}Y^#q+RuW-KmZTh15vGfGZk7BeHXxHwqnmiupZ^Zxv* zvfL;8tHn`Ya817hRJS^L{^s>pK=Ko_fxHmeLz9$uEa-@)V<|NN$H%e?%>}bk-;^rc z)Cr~=4@`V{I67&L$q#DUhJW|;td(+Yt78cOB3TFKbdn)llw$yF!DMN)`tX}pW5OykkDs)5LyXGR-1;VxzN)^=cOgv%(c$`>zb}k2#}OO zxjT%tPYJE)aZ=41h~0Rmvs(`Alfkb0Gkbr*slU?D*r*^$IxHRc-S^WGanL;hz6TFA z@?QT3CmpMtLI|Tw^%X-IGtwS40R=x>P2G@I)p1>NI9JGvwGsbk;r9X8nk~acMWe03 z$@TO~JX|Aegljk!LgptzVQ(&&Y+CsrQt;^*@?6^IirQJ|@yH4$Pv{`!a;m;zd7nB; z*=qi<)wM{tM^ zh9a7Hot3M#!RC?@dZ#+&6_G9jSTh?e-b?&kD0%KITx7`vWe>n`AXmcfNwx5Omr(?| zlP64*3%mi|NW6L=Y`+l3E;?+G4G4L%LLin>J?~I3Qc7k)M-?qt{5`J$0r$&HbkFTW zu@Npt%hFrV|65X|w&L{n#58(ij_@p1ZdtuSU||wE3NdfaO;x%4K_KRle>mPRM}>?O zovhP5REV#aygCFT_`2$SnN@Q5paP}q-sQ1Z(t%FTr6Of;cBmi8zr}PcmaRLEVXqdu z@}lR?+^e|)$Gtxw=-t8XT1uLcNfKil$`|QgHtzK{h2DyD3$n7Z7djZ2!zC3}CZ4?J zbfs`anKZRQ3;G@n7cQ$N283~0@X_M3UfkhwR0awm+-Sze#wpqwFNCYg54(EPB)ScA zfaXsNv_w!h>%; zy9kWDOQBS9IZD>RPY#k>G1r2&fpmrkNN4bEiBHXaKt3I()aM|;3S5W)f)ZznUkJ!X z7r?YkOb(%qwn;3@AJzoY!O(^Vmnbfqm`V?rG7QH_a8?V}|? z++_HPK%Yvu^SCMRZTW`Aole9r>2_RWG34=2X9w#zJT><&^#XXE_$Pjyk8ZSE`b&ka znE$6rN_sED=O|2j@`C7x8mSN$6cW?Ps9OX?x!4_99STHfq@8-RGYM+K-BNm(#6pe) z-&sm6*IU-d&jkEpYTB93#dH!enb2cPiQ*3GGsw%zibUOA(O*#T99mAxJuJ-yj^D24 z7(5K91y6JdabgU(qIQ^y1Wt4|Bz=fM*$)`gbRG548Qt$=rgK_YFkS%Z9-N%hy#Vzn zs~Jb%VHJQv*861EF&CnS<-Lz?>uX*5~_!n0gIaule<0XMGOc<`|$(p|&A`1cS6G&^@ z;pmHYwVS&z<0iNc5$yWiq|JKbC%e*X&<(EOSpTkm&hNMFe#06U)mUjPV)ufBU>SsIGPr8lR?S6nn|hcK-my5KuVJ?8S0JQS7xRT;m5)cSlPNavwm-$lR20g zXtuqa?Apfph`Yy5zjJn-O*DB%cR8&@S&m>4xR;alilgPh=PL19M$PXXZ{)7+?8CED zvZUuzK(%_~^T1tvuQoD~$g1aBDkXnc(pie~c%5K6h=&e&L04>*P`bP*q-r;Ln(KZr z*K~1r-U0#-lW9id8v1$?1fleQ83iU#zj&k9hbFLC_xrt%C-L^&LaZN6qJs3_|QJNLqvqon2Pv zew7ja84yN%;8+!V0vpt$D8s^kq8q^VhwXde#E8egJCRxb)ReEkAvj zi~qaa)nPWzYZ^5P10TQw_z`No|4<-=W)NtK=(i$~&A!S=f#8yitSY4DYr(<~lc7s#cWiS=F06=>3|z^b1RzC8BTbE!oD`CxLov|9<>;qV~lH2Nc|S z>f3gAayZg;4u{KSiah_lJp<`S3A&Ii)QWW2Ep-x`d!&8)hTUU&cJ+wP)y5fk1}HwL z$>X?i#FmtoJ+l}Xo3+EeMse{OYc2pe`R+?ia)PT7AtNHTww0l|x#W8nmzp)~lnhrH z?VAK-)XOxW|9bT2&leqt_in}And2^?C2JCNQ~Zm|roXh3lajK34I)hsWH0N!&;T;t z2vu>tZV@RYGa+I>Cnu)>hG0&(3Q6~6CnRvKOir?=!hebr3?P^Hk$Uc20V)p`!7MN@ zJ+0Wd7xh0(Y^B-Y#pue4AoLQKhnIJP3m7)*8ykase2m|b;qm%pc>TkV85Q|x`=v6} z<1pmP<-#SRtsqP=aH6BNc!C|{Qm-WuVbw^YQYxyLt~9|0ztcnmsqV+T1R))5Z?=#5 z&JK~<_D=dN&a1TN2+vY(5Uz19sNZ6kTEb~5*QiVD2}|l|zd^z$*m4|a*)oQ+x0Oot z^O%qgVv72V>BGi`5Nj|Dr*Bk>hJ(9#I!mRNWm3^zEeCN7|0#o?Mnqq9q&M5EF!z=K z1O$+_HvJhISwcal@m|pAi~+)#q$iZ0&tDGNRNlEa^4j{Ohaw#dwV-uF0qu2O?}b)r zY-Xn2Lt2L~=R~79(hb6|H=;@2Z2MzB!dN62XJJDZ1QR4rr1P@2=eiTJWeq*>+z5HV z$Y0Q5r?UX@Zpk&|07(=M`e5Zy=_gj0VFNieu(p=V9&}59*mpf#F59I$Y{c;1v3+i~ z{UwkOJ)1iJH9zmhcz8u8PZT#LFP3uv@}#f_L2I_u2chAwSs*Os3Fa8d=!_ub-iJX~ z&ol7(mLucgT7JoY^0AoBJ!73{{w7!UU*C|#OOrq}%Rf<7naV1vjK4Q=gz_7tgWr_f z$3cfdnh$^#JbAlr&ZI3RgmJ2GwNSd1kV;y~!vqxGhoN=vJ}nJsZg{Akhe#Ytt)%z8%lt~26wiK3Zq41q3^EW8;ZIRM= zZlst{s&mfU*d1Vx1X%eG>CX#m<+X`^Fbyi0M{rA;YU@4E&(4-%-C=(S^GK6^AVKs; z)84|&L11XivI@aG6?*mhRSKAK#{e-Odpj`lhP3wlFEHNm%+1a1)z;H9YXb;30%#p~ z&@A>OXWNX1Fj6XNplVt1?~Hr{a?r&Ifv3(Eby#_3Mv1|=vXB}%io@5Igx8m*YEuwEPgB3gBFyp+IcV?MX` zMR{@(W3{S0JXIv?Dvfzr<@9F$ZRh3VGywuX90kGuS2I!cz(GJ(XQS<6Z6GdfwDeYW z%{r`uos1l{I+r@nKKZ#N-Q!^GBapqJ>rZwzbG`bIe^>-U&76TAOO-x7HuV-p(1LRp za;Z-*NVU4Pg-gvjMC6wXI%?3R6KWFS)vSkOo(`(ITAdH(jIF!>HpCD}xtQTBWp2lpr$Jz}pRC*{NnleoZzIS}ETbFDo>-D-m1 z2z}3^XLAZM=*!B4oI72z6_^`rN2Y|EOSrA0--$}-w7iPf!A5_lpKsYs^?v4|7ifYt z2UluKzTGJDHbpJWrqi7e<5MAmx^*LkzV9mFmwa4 zq}{l#G# z@G<>hS(0443}&3AxgiJvAdrKD19{#Axi$tXF$fxWIp3Weq828iu-Y7L74Q81+(fYZ z{{&Qo2^GJUzQf)o%k>uVcJD6iH~107O++f8I?=VH7g^bS=p}y>D4v8hb#P)xWdfYv zepWdJy-I4~tt`Gy+Vl3LcM`zfF&i$JLIex$`UxaW53$5}f)gc`xRxBTa2}35zduz= z;rAbE=-zEAp z#HgP~y^Jpm15%6$SpnEIp^R3Y%bMJ7V~EuNAw*6A`lY^z?k{}5-n#53OapLTUsyS| z3YcJiq=8n}Ml3_?#TU4#8uS=I1~Lvb85$oxOtI0Yt*JsGUCX1h$sSnG&g>1qR@;k< z_^Vlhh942Y{Fjmv5(cbwuo#pDS~M#f42J*YOMz-hyf6k}yO* ztCAAwVXik@>t%KEbB{Hr5K0k<2+`M9zKS(w%)N(4J721lK0*Jf{754xCE_UZA-C8F zFz$gMN9Ox%nt6J*6Oq$?F<~dkK&NN72jFZ^^PMb=s{*FM@aSTeb(TOku)!UJI#mZ#{c*~v&kOF%iWkyDZ!f?D#K71<{7S{Wg=4Pr9>?S@h@;&`YU`J|$ zIhC&*PW>!_V)+e)pr9v4DQJZRv+xtg8xT*d16<1*qjOGvEEW}?6br9`En7Y)UVIB9k!>@$noggRhn*>`dW<-^y9Q#jg|$FVKbM7XYCu;_IrgWS2K0c z7lyk?N?@=AAPJ|ipn|0TqOr>UqU1n35u3M8v*qYf+DJ}s`BK#({8vD2viNm#5JnC} z1*9@5h#gU(ZEo9@5poI|77vG9j`?n4bh+e;X#Y0Mq_``L>SmYS0W3Ppmk@4lo zVD3*>j$BP{nh={Buh>hI#0U|(>x@M;%J+7h%@53A@#OKEO#7IwJmFUS10@K^D# zg%OX1nMrY~H;%sGfUE}`-&hQ5yB-~D6UZZ$N4gIBKKxkMaKw4SZ&EEQGs**j{WC1H zPd*tBzBQ7GjkTbD)}*JjM2dABV!}P<(a-6@{2YJY!Si`phE=}4?Ej@lJa^Me%%hte zMR;+HgMH+0Fp8Dka=(8}lK8 zl%^CRLpT4JS<8uyw#v!feHYb-gM{m5Sp}^Zz=NJ+XYHK7;a7!pvc)YPxZb zZ1GT2XQ>ZnM)L^JOki|d^sp%+`uRUC04&NaGBg~tyaZ@#Y8Kqx-Udle{e`765fP)=C5`@i%;RsTpZ)71Fvsy@**$IVCzyY2CM+_tKczg0sGer(*rE=M z&Z{=kK^mz#F)cCWre#$Y}-6P!qB=Z6TPRuRQIs^zL*N|b1dq5wLnTj{T=hIE; zH!F+Mz{VULxxABGjdu421f(mt9wfB`+43jJ1DX=qxn&lhG$;;c!!9-DF_N7WV)b3p`(N}s-1Szno_C8M5t79v3?Z)vRvbu1GmTt|{UI1+jqD9qt$7s?3FUJR z94y*%G5g)v(c+dOI8OG$gdv{VahHxnSE2V(G+;xYKSqTn#?(s{$BbLd&$jhT3(Qvf`qRB4lKWT@|8Q`d% z1$H|)bqk=HOr_hy`rOmgBfCmdcK9~Fa{zV&gN%aV^Xj>#b`(_9vqa}tS?7zC0Ddcw zHAo$&Zk~(;CB*DPLf$yG#Ko5&MgC_l7{jBLwhE||6BA8f@w)WP57x77KoF%d<-o0Q z59-&82(^>A6gv5rpR(ZwBc;AjSl#e<#n1oNb$I_zT1Oe3YdZEuh!}+{^!ra=#Ko;_ z5mB|+gK;e+nl0)b4Ob%!hxs;Jnr)Cj#LAQY5%$sh6iD-a||X%VRcgr_$ff>2zDAwh3-8! z1%;^G)KtyKXtvcK+i~-8_Ix`J9*tlzx2Xfw+32wFF!Gn##VPtqRsbmu?mCWVh@3KF zdsp`^7-K?wUU=bH&W&$uF$?DmP|%*%F-?-uSR{+hiZ)2$3$&)5J* znuwwP{{DQGuxELr3D%tQ4iwv~(wZDwvAk6gdLmGU@;r57bKZk5jfq5fMyl{ZWBoO$ zX7k42wi1m(;>}36LbOh(qT-nzT$(A3koSnD(>s?wYZ{E^yIQmEfdPc9P3lJ8F%XXi z3o6_WJWO3<;(3K=Xk=udDOc{r1HM}w5NMxxLixiXsWJV3VOus#R{l7`dhMSLVB6wf zn87>V9~pNDuqX=S;IKOIg@Zm8>D>UN@DL=lSLW?wiAK>@1zQ5cVv{p0o<(9+j3Ez< z8lfvdThCNNXD2Shs?)j&UitQ+@W}?*A~rThVp!EV`o5`=Y<({!)YCXVk!>v>1_cLC zT!4N$8u?>oXQ#8Ty+BE0fk>#9gBpkD?WNKmN-MdO^P;3%1>)*H4#|%DJEdjPu(j%C z!SiCukTf6%Y2ne`++Fc+;3rqSk&$(9&TYo~VP==6%j;a+;)2A_%Ih@*52v2jIxEzA zK!Y{oKZP>rhWu+v>%l$1r%tH${L$g^PuG}iMyP6UbEF?h+3$xc)IYxa?%UQNF7oOg z#6?nm9MVlf#q3cBUE@G&xGhc=V)$~g$u7GnIr-zaUCpn7`agEf5QV(&&5f-inq>N6 zc{zaC_F0$~BP3uemL;R4>{}Tb342rSE0Yqi1ryB!N0Xon0H(C5%C*+_LGj!x#SFfG zF)b}$2CovLK?j+tn3#Wje&p!c;5HEB>koI!$8F20dVz3@w=ePVb{O{g6dt<>e6wRy zQt$^YF{id|fQs}VcrJ*TZQjJq2>U$VSAY~?(S0j=>9(gi>WPW;pcBNdHbnq4c$5*? zdJ}SluV^?Bm^=GbVzr9f-FH3>{dVb=aIkrJb2#Pkcj}0_rvEiAHzCyZB`y&|h|aeK zrGA$8IH(%R;>zVYHCBh*lj25_BJO{^Mm@X2hwn~LXHpk4TRmunNx!73Jnr}mEpBCb z{2(~(%&YXDfnYe1VC#eG`S)Q$&s}N-VziQw_ob~9ynX~%7TN|Xrn9HhI%g0@8Kf9O zyK&GVd*p~Opc$Mo_S`;~$MG%ca1cE~k{my{)wLW{wuU?Sb6>$%DZgv;%s-qVgUZ- zdzZGS^Sx;h4BzNAGT*#L^P;?djZr8-wgG>YBlMg%UT-M@ru2M~7sgtsZVcFuHCVXe z_XIEFWI`xdG>(BGh_umsGVfxBD>Ysh$ay#bsAUBF_rv14Q&UscpnTI@F^%O@^GVUk z$q8xbJ?e!JDTCs0ds)B;YkKq9*%>+$Gc)7D`3=8bb?u>wTC!*NB|jPn{*)1L+K#|W z#)th6NZPfIp?+1J;I>!?njeniP_@a>&zWnhvTC_E<#^D3N}pl?>Hj z`kiKCOTMYC!ZCjHRMl4>Iy>Jo{ue?vwVt;0`UqbW6LB40sg2KL1u9}f?X%!B7)7JG z2g*GyRDwpuiBoS3!XzT<6HLh7zWsF!8k>K?&bh#Gl;D_{7;fN7Z{ObAyMgpo6EZlk zad(-3Ld@xBQ0TW3{g-iv05|jiXu;P|*XRTb5hBome#eT?soH*zAY*?d)N(I)??DdB z>t_I@Rg0sdzoq3_0W2 z*C0szY6v;its!XKdI=WB`{$lAJA0!Z&F2E&>e-DU?7sM`Z=ps>9Y4M^mb#HWv$U#2 zh`3N*7Nf`ta2I}C1=y#TKf>dp_v~6M*U7Zi<5|jBg8TKn+#GOTHn9yO#OsK)pp=G- zD5wdMuZUIz{Y{;x{LGL`hNT|}r>FNP00dp0G^&kf`#dfdf>`7U4RR>IC>jJ(soSwM z3i`eUl8uc`O!x)(_>3Qk`aob%s}HCd&0qR673l+vf{dW#LGz(K{|%x`ZSY3(C724e zi}LfE3knNcLAhQttl9%b4Fkv*TtTU`zz}HOng9J;s0_@)tU!EyIkmFVo>5xiGs@W@ z?FB+;{Xl;yUlo&3=RWvX_`oWi{|}B-#+kkog)gcv@@=o4I?k1dE+<%`dq6@CZ|wYP zFqO*R7YviRb4%G~2VmW{H7@liIjIO?>YoJc5{`s(EQXtROM~h4+^NABxPFMCZ!%g! z(t2SZo-iwwrS|ilw&epzO~_1Ha&irYlAdW!@uz1fG6ex#F6IWGy?>!4`vv%Op%D8J zHrc-k4YT!402!UY5i5+inY1{ooVR6nY+qg z=^*kXRzAnf%*@Tr!^5(j)&*LZ&-do5{%}`1oJ=C-){Wt3pJB2iCFq-^j~;8PNCxXC)M*WHJqQb;3Ae) zvqExcZu4gU;I^r%H6!C4)y{B}lOnrw?^ZWjdlZdSTZxv9pP$zVQ>V+caeujN1Kzh|R8W;VqsZH=D!pJbGRivwuHryq^`*(}fcf+yPn} zfX$}k^<32X- zTn7jdye3L*6C|B-+^i&L4kGDiLmT%Zdq)^2iguFWca3^8dP%*7^*Cjn!}tutTnKOC zqYD3L4t|W^CUbG@{-iov$L0pP$rA5VFjAkjciUh8_$%FTZ(%VBZ?3O5wmbzF`if|F ziZJGr*ot&fjYPcg<#m5U!2mr+-U}#r@^Y)xQ0VLO14<<|Ck#f?jK11N^E#1ZV@1V;udE`1EYCa)n$O&iH%f9!Kyp zRR+$|q2gUKO$gYNr%M3gd3Do00Oq^Sty1brj(GAGg<0XB=W1ezQX^KWF+LRu++g zlk8s}Ca9z?Y3UQAy5gSZz6DMDLVBG$9+O%5zS2&Lo}B!@&v?MmW6b9Ri&Wm1d`?F4 z`W8$ySnsY7estd*YLUgRiz|OuS8yQ&;hY=Uq40a{PkllYQ(;SvMilAt`nXL}=~5AR zR|e^8^8>>H8s%u^oKexj^C3zvkl6-d8m>g)*(4b<1}ftf?sb5*?9X^zM4w;)V% zn%=UlRD54Eke-}8-vUCX)ra6c8F=aytSk6V&v>Dh*}J_CpNuU1|HL;1+AYO=VPZpr zU}EFtP^wSNX;Zswk+pH)ec$BZaE^`ZVMD90`}^6#o-v!`*QeIZKDG#Zw}b=(ssMZu zwCcg`6qBmDv#@=eP+|cMODI&wKy~=Vfd8>imS1_VyOOf}H9tAgn{EMX|0Wmw^iK+W z>vt3lR4x3mig-qn`o$(9RD%SCSM(>>R~j?mxg8H`IX>@fZZ*M6fFO6 zok6%jT5AUC5Hi%JP7?6~!o3hb+oNb=_f-d}zk&f>cW#XDUJ*yOPe$pn#`QxrLn=3xntVn6fDW>d(GSvp*UqO)l4pUwM4@{{@} zC_f8r!(A!m6yj@B7R&kGlfS_#{<0v7gq*ID5rI#^PGMx^r$9%OWY>n*${q2)YU?O> zg}R6LWP6wx3M>$i7>0r`bx@#1NO(bkOoKH_#ZjaBj$tZBirbQV)9_PRI6FJdES!Ma z((Tgh?Zs^(sOfCL51Nf}4(x~T73tcW*mC4oxK3TSt%CMbh_U;LN9ub=`QU07#alHT3fx9bP(YdfT+#b$LHy-XUI#N za}{kcZf%IpfHX27XfG_7p;!$*2PTF%V8-gRP|E<>p2GnF@LY-zu{5|HI_G{f+R>)t?;SHz^-oSoz)8|bo_)2LG?%EEJcFZ|JfEPM zG?%22Fqf37Hj_Z~aZU~Y<6JV4+KgJ7s%&Wl6$dht1r8hp$33`PrB=W&lfkA&ArdSh z1&xIYkx}3)wem}6WT#DQVvSB~q@PP#Vy8`ML9R(_qMsTI=OksBGn#ZS{8`R`fS{mWnKj&zh1CzqNNV%?KrfsQ>mjfohW_#5)ajAsc?4v% zydP4^_Yq3|e&1R&x_aq~auuQdzO_{&3{0_5ShFUOeU~mr^e!FE47sp?j_!d5Q^!!83;>bZ^{>O9Msk)6GY2{O)}o8A# zlAC*lXs?$khI0U3YXUCED>vl-8AbHN{o>-VuvwO~2L=Zf@P)naMJsvEqQI+ZWPbh% zU)z&Xc)t%aJ#h{+K%GXl+!UnhD6TwkkQa^2`p^Sd@(l()+o~W@XTTwJh^RH{`wiCD zn6ehKV7V^I@8#HO2GV06zI8kuJLq)}Ibd%$HEARx%D#S0i1oh{PuMYE1HT91ej-{uf9T7Jeq^9nLnn%O}I!_~y z2ilR$g5FL|){iKCY}*_*g4(*DPg|9eY_e5!H#Jma{}kuYG%1UI>GaZ7>$DLy>C`b$ z>-4I~AKcZ${m5{2r33BTCroW=w=|txmsUyNRwUHs?fNs8x9Eh{m*VsM%cYz>^3G#j zEgZQr>2sgqsp&aLWVv!)_$V+AG^qxC-DK+h$YEPd%fSDjg6h<0FDgu%MUvTcbg3x( z@`h`U2VUVlhPYvS%Tpy4?u-;NKN5Rq@KSRcH?^GH84a5sl;89Eq!^5KLucF(VE5^5 zq*?PE2(~X_g?_TluK+oZTi;_TF?p@#4w)qx$$Hr$c++c%9eh`&#zefmJ0lAUOfbex zpGJwxt9=t+$=$AgwPE?A_!QxDbGikKSi$W@Qn-#F=i!-~n3!Nq!o&wfC}OZhG7eJ% zrw5jkY-eLLej~a8Rw>cyz&r}};&=?b-)hC)FMx(Kk z)KkIi9$}HI!LT*{_53|X)FDGDGvdu`pa?^9jUUk?R!At9IEUoMdpjMbm8bJ+a}dQo z_7EDZR%f>DzMX3An=^_OwXxJv(9#%q5$GC-`y~>k422k_?2H(dG2Hr5Mt>1k9d`k| zD)ot|_{b{Ay&;g28%O80&63O@KL;&}3N1I(Xfyc=?Z>6xxf_WrKYp=(YfK)iT$pf^ zrFq|P^5RD<+Y}!3jg!1-581)JJ_Kpi#dLhA38%-!#Ej7ftuI72HUurU-G_7Q_WKr| zKeFOT--H`4Hf@}G3!W^CJhhr;hmpD5P*Ni^sZ+GZ#mjb|r{8_Evx#MqjM5#|8}le6Be9Hj*T6^9ug9=IK!2g98`C@IwrWqOpY4j_hjlD zIcEc?Sbq1-?=SV#cDw-(ybO|&%}&S_>izDw)VdvrFUPC4`?N&Sstp&%#>yjDKNqim zzC6^N1`JzAUa4eLyFk5k!Ph#NYDNfvIQjzC^hVG}h0WvRtnvu-{BW>SKxCXB!s&^J zxM@kR?zmf4<*jO|wDwY=L|zwJ^A~oNo6TrAfPTqK!%|}1scasUns3gJb@=9Hdi$zn z`!ZI+ISyv7gT4|Qj{+IHoL}r8#RjZyuM+~x3!+j9NJzT zX;M;B{upgivl++G`>yjUKA|g&j>UWdCM=ZWAz8?7(T%T&P3bHseTV0Rbvo%@o>!NrnZklLH{hzCgeE#w!(?H<0%jY1_ zVaA5h$ZL`&%W(ah|~)?685@wzW23 zInmoBG?I`AM2Nrp{Aoxs`3X$POggp3!j)Z%K&NAx>TR6b+MKSk-?Vsol*USb zyAt%HF~`^5;B?FEP!mj~d(Mb0uWuTl)q(XdpW$lS@c?l54m$!@yZgov%q_a1?Yp-)(1u!frB5noVOFEQ#I(Qf#hEA&Q%t)D#*U(2+jdO2HxU!s z9OaHyymN{?Zm8Ku4oCLSNfqq-JxJ-)^A^+*R8{P)bq+tyY=9g zNq7cF``DO=8ELPKZfp>uxxw!MW(}D;Y35OLJ`FMZVP1@t^@m8Od9WBxdJParNlD=g zfe4_DFl~KxClF;y4%As2_s+C+$`l8s-QA!+3=1IRTNNlZF`;la&teUbhv`Nj8QB*b z(ZaT>s@dhg0c7Tn$E?-gOj`RnC8p1TI0{|gL;?Ep5h&!TL3Xs|i`b0TU%{DaAfmnD zJ?;8OwN8(ouzFDUY$E=T!;92QH_nI;r04g}%{BUFaMgW)C1I}s8r5ygU3Bgxl+^4l z=KvdRl`m>sG0owqX-u-?J61m9oJGn`u3xT$wB9-zO-tCph=_v=yYDcoGdW_jsYpI~ zoSVb3tEqWe>>K3*=*8>;PBMYVKU;Q#ywM+@Q1Nrc@m%~7N@KJ1kV>rr(|3E>(0`7I z@r72_pUNreN`977eLd&X7h?CzJsWG+Xux9uBpk8;iwnIVQrNcRKTp3G?a^qUZx8_< z5%GN)loW)79?yM~#GJ$MDux!(4L+IbgJ_Y1`3h}G_g5_(_a%Ka=img6CIzV$%^ZT0 z1&rq{iq8K|6yE?!O1BBf93OkiLa+tkHQItTt(e66xki)v> zGiUxg|4bMR3?|-fLFo~(;__DCiV_Ix-T$-zoxr@dBMKn+*T~4oeK}{bl#*GeXJ_FT zr>8O>hBU|MCNBadtMl@D9ebs-g~5?&JuFl*xD?bq{N1m-d1l|8pS4D^MF+Desiw(P(4XuZ7B8 zi>nh8J(o1TTNudhvA3m}Qy+DbNUb;LmZNZw`v*t%CfXdYy@7ec)F{QBqfQ$_j?(`UElp1@$ zc)58XZw6K7ej zsZI>LcqN}?T4{3&viPfKn?4lm1pL$3iMQh+O&Tujz>2}Smc7Lh< zmaAQg4Z=qJI5G6}mHVC%aW#XdxwASBb7)H>XaimN#(U3lKgq-WJeqXQbXVbHUE#!a zRI)6L$DqEuzmRWqAzu!y{Lnt*{PRcWfN_eI$zuK5TbcmI4hqzSIV_r1O6i*z+m|K!~6+qLA)M4*H$Y8i411dcMnH^F?J;-STWrWGnVvC<}viNi@^2c(U^} z@s6&wy0fyhb3?tk%;;TIq}mf8iAF-S@kV-Y?eIgj@TR&bK>Wi$LN0S9tcRq%nr2Ws z$fsfeMz$E-euxKJwPs+iuIkfYi~f+8MS!tnPeA?iy~v%t8r-+kut&U4eFlJN){A)( z;ds_J8@-sMJP%J%cYxN=x>JaU2ZMo>a)XCkW>(XYf z55etk+r0PhZ!6)I!hAQ#hSp5T`|LLDL-#wFk zhsH$|r*RTZ^CDba1bh1a`VV28=6cX3?jP1`G*3DA*{_5a%wVtewX|SfK4STIT-l*; z>z49r-Ei&yarKr_Rj$$6FpW}5gMfsDf~2&xgaXptARr*!T>?^~hzQaljdXWO3n<;) z2uMi7H`hMrygxq2aO~j^x4PEz-1nSU9wh7~m4?}=>a7JtxJ7gko=JYk4kJ_fenEcb zk{0eRO}ZUcM9|P-xQo7;J~ol6kSlT zjd^e{>3M#?rHR7CGX;THG>;x_VzRRrmnR_`P5cG8Ocx4smKfS?KYDZ^O+Xq=Ka?9t zl}QCd`^p(;|L{!vs7ZYh^D%U}#*ngZhTxDp{sW8Tx08aJg$T=3key*^S6OS54f}Ra zy~E@&(tS~O;2qcQpofF>(f&Q6At?a5!*ZEJ+ay|e3rc30(TO`Hfp6sc!fs(%3LNdWr{UhaV3@bC2G+7l? ztE@^~KdWyp)=War(@Ztc7*&jyuoz1!;B!u(j?vj~4imX{JCzwN7Sx{g`(!YxawWUs2!utE}i{>|%R{^ETSM58;J5R`581F8N{xIv*tI?I`|2)JHvIo7R(fZC#p+@5*`oSqpJUvW~MFoBTQVhqBr}&V!SOfLBqI1a4{M9}M z0QdeLAzS0*eOnJA6o14ZYdXx7*mUYTBsDvwdgb(ed3o8VyT8Er@a!QQ8!s=PX7bm0 zu=r?zG~dJ8@$``))XF}Al#d~KK`d+s1nLes&)!!0c7V+sHs?3U`XVrXbMoIWB+ZtJJ+zYYqg;nW4Y2|}j zS4a!5@s}8`3xbWFp=&&&!@ef+xjfT!A-UY!I5)&FdeU*v68B+o0gBl%ahifo7uie1 zj#&KVSte6OO4(F*cWx-B3<^iXw&d>G^7z3zfp{f1398ep&!FQaV>-lh*O^xY3R> zI{v(k2H&eXgv5`3&$=AKiasI)LD_-&vu0pzeR=kI20}b0rx2Tm`iaY#$|Zl)HX_~> zVf8Y_a97z>poRJ}i_aUD16RdTYrGKIJ^k;!Pk=%UobQ1Cw?3w-QdNMf>V zr_S41R-8aloZ3HJmVX#eX?$?bKaEv&YvlCJ9I-X|>50(e30Wl^$&xIicI(G4#oA9< z7~Anb+r;lY{$7kk>_UvI?k}$gR7jSH%@tjz+rHrk<9Lqp0$Bp5CE3=Q4OM}}u>Saa z;Q^J8WS#L5OU1nD2oe|imoANJE?&N_-pTMp=M3y&r0vjMSHR=afyr2;=HH# zeP(rl#ZjaW-6edoe>f<5a&vvL$9`AN@c}+1B~FYzcJ1G&20Dz5SN?w{C5~us8nRki zT4q7bfMwK9dJsV74?`(lb5QwpeJ@B+NZOv!=GS2X?ePRbIK5~8s}J=WiVzM|^cVfk zFhA%X^gw{^?q(!LOc;gmgZ>8fV7+|tqv$Jm0<7nN6ZHm0@TQrZ4Bo&zV5sjbVzYBN zOu?v9?cLhWM2V1AfRJ`CzKt7hqyJES^Inm0SLF=30Al{5?WT{7cQPLxUylxtyosO8 z3MeDP;ut6lm&a2zIS9d>{2=-_MAYx5I>hf{`{oq~Q%I}Rwcpj@c=NL$dmEkw(fu5Z z%SR|2J;7|g9KeIE9>?Ow8pOJ&S1|D>%P0HY{CYzFoQm(GpNHC3IV0oM!(Xx#8&*h| zayE3F&W7k@9~Y4t`e@|q77|QwH-l|hD<^QszifL^9XzH#xP6DIf`e2kqktZ_g#Eyq~OzqO=5(C(Zq0($XP~Z{I#+9Q63z!4WxbL+mj?9oR*P;d^yFUJQ@k35DXq z5Xu9{8&^i!yQ^a&C4JhCq&X@BR_ZDZ4UO7M<3JI5_(cc_2}vQ<1l?Oold`h1eEJ70 zre8-!)DUH*YE3_o`0|8>gys%$M&E;;4WCdC(xG^%4@sw45R$Ea<>XERy)x$=f1&k$J?Lr!*av3mw0#N7!UFu5xg}w zFO+x?c=Y4KPEO_C8WDm1|001t()90utwN^lUk!W~F*`H!`|3`ch^eTAV_E$qec?z( z)FNl&_uM|ahOOfs*e=`W`fnFCD`bgXC0UB9?I7w7?SM-zQu&1+zVlzv5^z>` zQkIB~$vO*6QS^n9g*+U)K_smB%S`dbQ$ey2{Ohv3Z+Bu<*I%)0AgVPGJ+Sz(4-zHB z?9B`6>z^))>tQjzh=5=%L4H9&^JtB`{xl#_DSZytD2eLesc=tTx9c~P&j0ZK2^D4W zvQW^FwBxjR7)bFjq}5arb=!M3CH}MdebZ7Hh3(4?m4hZ^A~|cuOU-sePD|_wWJoV5 zoskN?pT$`{fe2Uh+8;qLNMBS}b>>K*CP|m}bS_t1p!!~VjCs(dV(6UXvc3y;ywX0c zOaICC%SCYGQy96q#(&RkLI6y2UQlovS4|<4tAZw6o8Q|4!*SOK3cg+cq2*_&6TwY^ zZJl=%BTKqSY6JvT=K)8*n>oB93G~DJ7=eS;D;aYMc@b@CN^3+awNxr-+Af= zHZ)`^hrAfv3F)!6Ho8PR&eW%FwrO#3q>Fp&-t8|jQ{v;}Zxb@gFVqF6-48JidUAIo zG!B=-qFVXI7g3_dHzHTgEwkZuScJ^k@-FiJnY6O5%8NKXbQlvxNVY_z<0Nk{x9E^` zDVe>#ZX}ov?)+W86xp4}A1F~7BaJ(sb23!Z9Pf1w?FMQaB%tX;@i*j`j3}xg|a^ExA$6E-dWt@8|$E#Qje) zI72^>tREm+P)eOAGfiGYc%xk0W9_mp;ZaJa;LP}+rFwoJG9k34CMWR+vR5f~6&GLp zA3)^Y;R)6OTd)_^^vPH|8$){3y%pFsLfE`|C&b@L6TP<@Z>T)};ZJ+xd zFn>R1$*3&l97bcrFhN{L3pn20-%)vvgJPr0CNux!xV!MZK1LhMJ!yB4ZS#g4qt?)Q;_lO#kFSPZS?4t8xH?v{{A6CbGzDacvX!SGc^uaabzFu zKp%p$UuqI4+W@DQeicl+JZjD#3rooSpD2Mvupg{5h2>>s)>v3r)*xrKmW7dug_#+r zudna@!XOOFxS0f#zy}X(Zf|RXW>Irc=;>f5?~!nPR6yBO?c=lAQ}Iu<&mfG3bn5NpJGJFeR8>Cr2&un46BgC$>}^ z;k+&}j`v<4$M^MFHO@&|qz6B}w7|N^j~xxD{?SoPEJK*X=kQ8_ zTYVz>9!p4YFzcP$x3zmTu^=H0L6$8torT|7l)xEkZTTR2eX8p2&R?M3;=FJ@9Wun1 zxVa+HU1j952R7`PVVK)gRaN!poBj5{9V0F((uqcB8Wj~q4nH^da~d0c>R@z9K&S@d z+&PK=ylV2hxdwZa!ptB;b?PDO$fQ3MNg`~`-l?nw0mftwH})bTWJDao-lru#piHJ# zRWep{hG-pCM#YqdIAx|(j+EHgReq2v@1LHY-Xu`ysHm8jm@`KH+xHgXM|ej5!xXyy z)s-#o0qaKv)$T2m;xX($+(GIn0$Pz}RXW{82H-)0^DYd3Z0{9C>baOr;tQ~mDsy5_ zKj7gilj&jmpNXXpXQYn-_jd88DU~dtZA)?@^b;N4tepCF%PgF~@@KyrGhQsdD|1Cf zYC63h{?+DR{vK~|=mEboml8{>xDMXmMZwZrF?thYzy1I4zL6WeIXz4sNt`GAv14R` z*$)vk9qtazvMRW9alSMizuU5p-zK;Jb73TsM7jCV^1pi3Wky5G+gMoPQQ_fq@^c5o zqHVzlWgA3+Tpa(IJ|WQd5b2QuR13Zi1GH2Q+Q)|GNL>z%paHISzrOU?hUD7HImktM z+(9mk)6vxh@-9zjA>pypSHXLu^9bk`epp@_@AN%C9bw*cdJeDTV>O@qC-bFHW&Ar6 zPy@TOqsx+?H=qJ#g8Y@eGfGT}7fXj8V^k|+U0v&vP?FaS8gzlw6h5g^dM2iN==5^; zk&r;iva*%BQXZ{$Se6Fd+H*E7zf02tHd7C?PXnP()~V1j0l%MAQ}u$d~l_yMx2jo{!#9BNG9A+Ys%u zko~GQL0Z~Ys2gSqkd?RYgH*^d7XZLT5i<+NbW`4Gz1NBDI&7Q5X$Uaz{$RdYLk6C& zNKIWGK?<{w>rVV0cq-616R+M;`<|Xbqf^j3(OPeFh*RK2V6qKKeKH}W6ZvqLe?J6a zI*Fuo3O2cW8h|`04c2CP4`C_Idgx?0^z>-DmBEYJI%mdDUs3fAKgBdEXUN((N6F)E zdJ}&Q46HY@Vz%lcAD4riLPfT#gI{hNwqaQBmk*V9XAo0jb}roR3@A4o8IfBF^0}Q{ z2wf7qvRh6i@`W}1tVNhvu|b)U^r-dmf0DP?Th8N}0=&FpK}d6tAo|xxKb1w;LJj)0 zAq-D61zd4=H{4!g-q&6t7YqSy9XAKk>+eWNM1DQxEz1x>Pz?dr+(|{jInRw*2-1@n z%>q&e>y#?Yu*YZGR-t3{IW+=njJtH$)csYtOaPTJ&I_<1x;lg*pIsYb0H|*>kSaRA zcd*)r3iZ#0T+b$g%f{gIn1k;q?~}Ttx1S<3p-|01QsdqEd-`V2QnoFj4d;QkJ?{RnYRmw@cJaj>Af6M)d`>SY&mNi zKM+z*f^__GzP!;tp$qZkmMAQQpN9Z#$vufFw+c{`p2%*p{bzAuX)ycq)kI`@2Hp79 zJFQ|NE)iXAZq#_OCWckD)wh9LbZsTx&Htt;Cp^ZyCB*56T3P@o3>-DC;n%S>=HzhQ znRvC;@TeJp6olM(mcCFORfjC(1zL#q>O$MgDFm_ju6;MSB)Z5Edq2z{6r^MMfN=Ze z>lA{2>JNlEc_i;Sv`Q|+n(kUUD}6cNu)xnY2j4^oD5YC?PaB%s{zom*I$ir+o}hc2 zz6f$KCA_^a-9bihu^vNni;)GVw4)r)U6yQw4o5Pwx%{d_>}a zgy;^qm5a7#Y7d_gEEPsT8=?-Ch`0L=0P?;jv$ZIA5CS-!g;1yxE3Gz$i&fdX4=yty z@A_4Ejkb1qeNmQTAG?eC`W0px(^yu1_zFI1C^8-yLf0n{dnU%nRA_QWFBl#2oVR?t zLExFrhnWFn?&Y7VlqY+h%7<$&flGvs~*Q3)DJOxfa>dIh5n_du%|9eS= zn-YzmEw}b!?ZIGe*l;nyzCpt<=jLbsA?5RESTCQLVeaQnWHlhXELpzmOb)H%XD zowpU|SH&;s8*fZQPj5PlkTY|Cs8n=5XwsrI=F&S@&DDwji+jzw7dGss-B{hYKUlO*aY1;0NuT&|j zfRSyc{@Q$Hi)PH=pZ-PsnMB621y#b3sNm^=KgzB+eFmRG>d;%DL_=U=8eU zE&cw}F@>CHJn6$DL;G-tsSt03hUpW<=T>F!`-5UZ z2z?1wDUnByERhr!X|=2d{L6A;)dQMfio8G5?03W8)a3{wR5%ari1xT8@xU@96pgI6NC z+Io`i=&SXVUbV-{`Cd1y-C#8r(N~(Kh4h105af68^XJdQA10-RH8m3%B_%@*xw+j! z;Jc+KOoBKbmm4?)FTa+&tbW-vV4%u9K+K|12*HFsEMRo!CMAvI#>9L_$=qW}+2sOD zP$bmUCEY+az?k3VUztS2ZW6w<7-L{=p8a+R&*)(r!Z*{FfFj6r!!O8mFrbL#v&lQo zgYJ6H8~Bwt14;NfI%k>+&PeZ83nGZ0>A`5*A3u|m5^GPtpC^eSS`=C_2@D-f2ND^- z2j=`V6ehBt8OosY>sTJ%7HrF)Mv zXeaIp%xpnvS+2III?Arr)ZpS50`>Su-AL^mKi*+|I-s*oPxU>wOi}VIz)rLbGEl}a zO8naSo+9UAeleCOf>mB!UM6Js*Fxj`Xn-W-i%)0GLjm~NHb6B^5+9`W|6;<&0rc7p3i=`h{XjQWRrv->0f$>_i z)+5Z>k=|KX!t;LY>OF?K&t@M3ufK{a%FjE#S?1-R_!y}3Hn%C8&BAmCiJMamSv>YB zT+IuC$O3GbwQ2c6u)FRLjBrciZN{dzDO zHq8-&?cU;NQt7n9A>{t7*v8uuPz0!&`EUI@YyU(FDqwpW^ZNRI3|zO3Lq4qk`B5?XtImG0?PT8X<_g`lAulHm@#2RNGi{MKZb{*?_{{(as?J>J^ajU8dF z9wC>!l$V=ZBF6e%w5TRu{f6U=vKRok|4L23m7p*UZku#?mbJulUYbUDVPN3iJ92{b ztmm|@kt&~sE824(I$>?;dwET|%^nY-5`2}6$iMwEy2jWxE=4OYpBYdV8Vr7uw32MH z6}484kP&1u3kss|SH8m^d0qe5s*bNoXEsn)lT~dD&NMfn`QZlzmok=cNcVWzYJ~e1 zKY~LfrN$<`@D)pD`J1;%?}k1s^pPNt5uyJyYt1D#_HuoUNY_Md>e`0rD!rj6!3kPC z7cM8E6L=D#Vc3yyY)YG+pE?ELo=M_d#vrHT@W1vPJr&8p{!Zwm*aC?=m^fq{{>S)?eC`13A4ck%Tb$ zCyvxr&sp>lWi5W9_XI1`n%{8#0?h?vKS$*iRp=4u== zFF;uD6@kAjdrzw8Im7MCI6>xYCc1j%iIk2N?~OA9Ob z?K1z4k9?z=0j=Fi?0r$+8T_B;4+h8M=p87>^?+(=fauNdIbC#RbZ8jB4I*TVNz7=4 zYMdFoJ!<5y3`ICN>=m7zkGNr>P~0!Q^MUWa@`c2KoCDB|1Az2;i5a~0>Vat+Lm`p( z{mF&G%#$CYX#Y=;a`~+DKHcXHlMma9p3H3#ks1uFPfxfH$9KcU0>0ze;1(hY1w^rd z^-PQmhe(YyASvHFxMg5N@S+RfrtA9KN3ICjH?KrG^!?O$Ln7rgb#2nJ!tzyn?0?97 zy;QmVkS*?00Hgks_SJej9Wn!^2l6@ni4A-<*(qcfPstO1_6s2;g+2PbJ=n%47S(rq zarflC%^&lz9f9<;gxm5!iL4_AlsxT;hk5~AB~V6igBVsxA9_z21L@SRdV*@nSD4lc zb5ANHv>jEIY7|pwe|H(1yH{W3M%KrewGV1yVlBHH8y2xiiQUv+HlUE^Hz_zX%q;SQukoX?}0 z+!b6MFRYbrD8@f449C5<;WNffbkBp}{Gz(UhMzqr-5afA0Q1t;1$Ft$N4-7Kt`v(R zd{tfj+tK-tY+&d5Sb;1$qtPk= z$_go5X1yZF?^>9hNALsg&1!3FM**hrb)=#uHsoRivNG!*RQHMXUO-GTZ}7W!>=LoL z)SD7vY$_jcpGt%cD)fgooDB2kMUM2G-XO!__EtK?wM9%Wm8zv18(!NqB2r6g`HQwG{H|ny;Mp_<@6VsZO0+la&Y8=XbVbtm5=11UYdVlI+kM>`}QW-3M zY+p0mznDUjR3R4cBDnC6dQ!0t-{E!sD-=px8vrMrnj4xj7O5nh1;D-$e*Drxfj-Cf zM0uLnMb}}mEAh*hwZM>|n;Ss{q!r7axQK9rB9wx%r;6lm_@=R#VsT|4F*B*S8`Ohz}~%%nTGf!3^)XPew)t`SrwUp+$9@j{%-Xl%b;W zv5f zNF0nc)W79efEC(?(l~RGf^%id%2fXAR;vR&(#5J95EN>ok7Vvf>vpu{kPU&y#LX$M zMvu9Pz7XPRX1^go)>^>Tn-Czye}r8yC2E_(Q&dl|{|(v3%3uIVdTj$Js_p)*PgCL$ z1?m8S*K(TmEta=V!Q}NGLMF~bFjTipBtGtOQ+6%RxWxLBVjm;-4-D7_;oZ90+k%Dr zPU=R+7Tvq7_4Q=m*psrxjC~`QxW)injxk=f5wzdWU_#R}LDF!}`fTQ}W65gvAx01* zBx6mK!anm#D{E5IHhPH{xDY>1%VZSZkI#r zy@YgnJ`yTfNc#Njb!8M{5k{2TIMy~m{ud``c2YYSFlaAAVu2tK`705HY@CxC@c*EX zbJoMYCCDUg-W>Zrjq01O;=>K|s`36EtK+O0ox{Z^TD7+(hJls9OM*U2wtqsu*Kc<@ z*dQSt|71R=p^>{WLLe+Z^VJK!ydskp%GJgF`mFi!U*}(N%S_q(j22-R4=N~OWRzCn zm++NfaQqEMocaFEINc89&shi2)Q?B74Nis1w-+WGhMuh-KDQ}p|DWUPbWki=5>Lfx z>pAid4*9w_c`|aEUQ`MSm)~p1yw5u?wu5ft3csXUuw9a1W^B6E$n1$pPp^|&be~M5 zqTXq6*t_*7PZY#OJ$Uk@oU6!z<|Y(5AK~V@;c|twmli$&VX0U-!Bya4k|AhQbjVVb z%DUA<4>7BQx2gB8OQ;(J9lt9qEX0CJ6f6i2q3~@J1$7xZh*K*Q5)ugDx8=z*#=M{> z$ji!ND4hG;_TIgl7)gwson5iHpHS;Sr`Zb0 zb$)QLUO%oe=|G>!grYH#=+B>5euSc$ekMY#ww>KN|5H7mQABTOgw0U*Tv&GIcJjsH z(MWfF;)CsPl~{Y%;oOof11arl(Jyj(k~VuTn@A5r%5c z)`x#(wl>8jyp4@ut$n9%c9@``0Q@cvl+pKYR=oIu=rI6P3Cbdfspv1Fk<|;($at+M z$lcsd-2ARQwig$pcNP{tz6UPs!)pv`tW*7m0s@n~-~zbM*b2fOL|4~d)0=TN1s2+# zprn|XSC+3|Yd)9O*x*83Q&aE=Yf5~0J9rB1p9y5p?)?iva}V+dhp<9bcqigdzm3b6 z=nmS8I$Llx^aU9Nyj`xbfVq4d;p!~up*}!wLFkylY2JX=&Y`9)voDq=8HaS;>HYA0 z$a{74hs-=_)0-?DJs(zKqZ~V2=N~0MnCtEWVk*Mrj~c(zi?T{T6@5i<({GEthGX}{ zk!5~K(6`p;x@cG+v3ue7P>X-WdtL-&$He9BK&z_3fG!}lBHdvT&a-tAR97buzis9i za2&T%kO_wf<0xKF`-qfM>IZ~tJyR&+qlS}DM87H_8$SV7el*fdJY?u56-m=(DyjPi zAn+ClNYgDsNguk0GUFVe&R%gZ%cw9dtz`@vnBxMm2+)xb4Q1O9waag5DL;<#*s#gl z1-QmNL@LUi_mPp|8)bb}$q?Fm6&V@X3Cgnf@O4ce!SV7EAwiz({QJlc5wgPxafF24 zEo~SfQ04g+wBlX#^z>=9`P_tTD^(8Ms^ayv&CCit$^PGFpWfi6fZt=I#JF8;%YPP9 zZQlViaY=tOsfin8U&U?ZAm_{aOM%X#h(9*SEMt1tcFOVKLy%=J3g zyCf+Bh~vXBDq|@ZqG)+y&9c;Z%D(=G9zLm~gYnY$lV*3qvvC5;!0i7Z>AF|S8~yE{{kD&z`VFo{`wDfzyJh}7%y>=gsFqw|R8CG#&`Bl`W&V@AjPQrhJAV)W zTCllm!`E+^H})jcicNb6Zs1egCackWVkjvWI)qy1n@2~gXQrvCz}+iC?J(Bs zW=$BhU_X~akN#1>?8tE&C#E%@;7*)Fi)AD60Knx)SapsF5dx6+0oXI(89?8bJ#DyItQtRm zV_cfWlf@_-k4z_@Njqs)^ah2)|30c&jbvRYG9#IPPf_FnrIL<}O=KiSHZsWx?(z0I zCr#9Cz3{2aGmT#>p{IqyrpJH!EB&M4f{R&=V68oB5LD8a*=1tuC}6sD;i~CvTneLg`J&`kDGg?!X>S)fAjq0&;urXJE(Fv5{q6Z+4MGDKf9CC+D_;3EX7l0dG+ zJqd&Caysf5?)L6X3?IWmNmgsn5TB*?+41}CA^Jd89Gl7jtss%??)@Jj@(#g7D{&v+ zXx~C=VY*Y9%$HxhO2S*>)7#bBbs=#g8g3xo**r8w((54Lu6#<;;)d25yhmA8?S!4k zdnXKSbW=puId9miK%o$!G}x+}yslN(D>eDiJ2a%EFeL!;hhT}D{KFtl>K7&^8P(O* zZght!pASonS_5B-i;GYHny>yK+CZ*AYetuLMOluZ{WF zm2-$S5cY(|tHc-7`L+~)Xt3Oa2QNKL&WkRl`P9cX9|=2S5A2owDn~m{@I*036PLls zWke+>)=vBOMMpU@`?+e_+QmzQdG0O8F!n+r57o_Dd%0dSB!3KY`MRllY0D+HWrk5LoILL7J_ zWVQF5x7Sx!wVebg3IH9Sn3+kMihEM`;_k;rXmRlZLc3}8$qKyonDWVjJb3LTRwB!$ z6ckCgWCR3l+A1dqxN@tYxamCkPtDoN-v4uxD#o9NnnAtDQ=`$`u&~<>c6K5dX>{>R zAe@I_LKiiuHd?Aqu=mgbcweTaFZ#^LWgLR3#%}psGj5{iXz#pZmO02Ba6wa>ik-Vgh=;{!|vF_*Y34b7fLH4o7VV|}bZ$$1^!Mp2! z2Bah#+%<9(%Mmy&v}Olu7u(O`3~?BFXvTF0QM9lNZH#SQkh_cNcIiicR~^q%Jv(uE zAeE4CD_uj(s%(gvEW561?|eoD%F=gWa%H^o2^^3yfyhv72xD&FtjO!FvZowJN80E0 zKvT^4K*qWBnYlQC3lb=t^Xvc_SrF$@D9V)i5EWYn5QYzsK}D3?-WJMO z_DgH|TbCgt&O5XEEU4QF5dZ+Zc_3k2z2o^KZ$RznLbUy4w8!#jLxYSAeO zEqDm96rZj;HBlE5h}4$R)B3Jr`PRE^>Iw0+HFT}y-@SZbgKG5s^=)V6wg^1IXxt9} z-#9I%nw}mc4+}DR!zB#+(oDD0W>fBK+*gdn5PuusP01HuxpI8brV>W1?Zj)Y)6#+T zbDOS@^t&TJ5;?j{TK<MlX~Okzx_S5Aa)i$r_8XCj{C4&+)}?c#Cs zbVz12)TQcu!pP6!35xfgikhVyarp=QHV=V6g*jq*up;8ZQkNnV3oE)Y?1lrD$9Ae> zlL9YJ!%$z*nx*XwkWQ03_k}icLfK*jDR`}K!NxupZmdNW;~Qj4p}`I_^A|_rE;vH} zOP9jcygpm2h5^GByhiDufluh=v$kFixV;70mqjWk;i6R@Oxt@fA0PnXz6jx4W$}5v z3=9mo|9Pg=h1KKU&8p*pGupN-=r(8m{eq0Ytyo0>+AyV)6ohk~dI*DRCRKIdv4)zO z)|Io}Y?R@rVw@c8AkaaUjFgKJ8#se5mImXq5mMEAxq@!+28@^|By1$CN#lIj-LzWi zUCkcyqien?v=)0l^6t11L zIPWDBCB<1dj>ReYx~b&E?8nGQW2UAxg~lSJU*BB$|C~$KuTN!oP{76ox)a?7NHnb6 zB47_!l5jEs!eX$=fpB%mmOpz28Sr@3$Pb2?#hy>JH` z-lFOe+$XmoSnG+kjSco`P{g2CP0}zA@Mdpe&LBMPze74<)b<7rPN#N6@W^7STq=I7^cXhMuv{FF6#2%dMK5*i?UpE6OD zdH>XFKeA~h3xQE!A2_@8a6W>;4;gg-$z+7a>SG*-y)I@$yORzcGu0WjP3nK~Tx)sW z=g$_?jX+A%kWfp?z@0^?Hlix$s!gVqWpg+;JUlQGGG(;CetK*<-4Qyh@m1H(CQ|VD(w*jOjsD9d z|9}>ARY;}@IC5N?C;dU^Fgxn+wMG`A9=#}`Z(3vRmd!?)$-nuU2DUlpAK}DFKfBXK z>3*<+KC9XZruyASw&IpAA%+P1BLH#2j^cB!AYx2_Lc&I<53A!# zA%KgGX!kqNJ0YMX2FAEFP_7qvkLsG5t|Y;f+Lb}Brzd3Ddp1-4`oj&xp`9?l4)*#3 zqnvyahp~iEK3aAY3Bp?kNpvkvBRs*y$n*LjUlj_(nM5aqKbMj+E2_5CvAr1O<{K@$zW2k@ z6BscXMq+on9Iilyw5~R)d5_@hIKJiEPV*wrT-2v3N8`#`_1$vtF&p1K|3dpKB`DB} zv1QdfIYIe-TUK-c)H3~-j{Q9IMQg&+!Ja)l&);C$Oy?D%Pfhthx%>0*Cv5)^eB1_6 zr3p7CoYUb^QEP?j_pN4S8*J@wn0R?zPvJDd!N4y5@*TlsOVV

6#9t2tUmLC2G=ra4@_!Y{Po({-2NqMuqi!S^3oPR|vm?(Xk~A ze<^v6N#2pTe@G4-)Ga#HwDc{gU0zRT7wipu$oTd6u4SlyaMUA?VIJg!dkM}7(p88R zjQ}7Ef#;7dkn$Nu@OtYK>TjwhU%#eSjjT7g@OyW{RarND`7>{vL4}-BMPV!O1sl^F z8zh#7p&vM?;q3TEKBDWo2En`V>4-)l;0jz;T!7wy^7+%E|09Uek?uz8+pzxp5Uc-iQtAumfuq?d9LQRVSs$^gPs1eWeTW7zBKK7xIyCKQ4*Tx(0 zN^hV|HctSK%=O{Ur$q`>kh}4Yjm>Dja_Yg3THZIMdd-T8=wrg>GpJn=d)@?9Vx(T6 z;Qh^-|22}8oqcesvy(9uF_k|3zhs*Ne(+K`tU)(56&#v8r|>{FDuA6=%|Wi;3Wi+Y z7qBI>gB5Pq4X1sj-}BknSxXDxb`(@X?)C?Wn9);zOcVc}??C)fFAt03HrYeYp959PVu5i51dfmCc*69;3lD#rghsV`@{RI`hIv@8M(7 z!2}7{1}cm7(zV`0Z|t%NnY89bc5}=#tR!z5^WDRCu+x!Y@;N;J3?>e&<=zdTtZG2kFcNbv#Vy6Cd(D!l$lW9KHj9atA^Hq(K`mNvs zTvMfYpOO|EmD?%uXc*B@3|e-}hKW`2CX?F~Tx%MCBvUs}oK(K+xE`TAdGyD!uM97B zuyFg4X=%+XoR|#tZ^~!mMU=EoN9xnPI+(F!=&6Dhse;UZOIxd@><-jZ{P^(t%BH;L zsXwYKYYr56jtXXw=Mh_#4wDF7ul7DRc*=iKS-XBU>DI(yu#dEXgnUa(ED!}k?9yR0 z;W5do0%b)jT%}hkg@3PX^mYxxL8KLN9kv6fJd8V~%i4a2F(yr5@7UxsYVr3mSq+hh zJ6WksCL(3ivv37j9m$L)$h;1rl~H&x48QilE!|2hms*(0$!9)*e7(D)-B__3!!;64 zMZTvXd3*^~7&}!aKf*0j5?D`slDw$FNq^k&lW*Re8;TlQR7>%@E>LDRF<=<50=4`P z9|u2;$_WsGKU91V-mC>-fV4b7`dtggy&m8adRCiMR8_Hsc`%kvrICW!=K19uiFR8T z#tcQ`|NYIolk&YRp{+5R-tDt-sH_Zz3mLguddHvhHf)r;`wjj-wH3c+>xsCXTy`y> zPT^?Z%p@P8{mDM?{wK-9W4)7EY;ayVW4f-Md-?#A{MqNb-x(W8ez3WX1z%Wr=9Q)} zzex_Pzf=FjYBT1+Cv&XbjbJ?L6wkf0jRp}aHTq9br z!yMZSlZBBnS+>GG?FZP3*l9znmdc`$U1ioA7fgKpmpgHHQu8WDL)@LPaHZH|o6`5Q zB!BfKj)YPLp^)UnmdV$yINyFc<}KNU8K+q5a{k05#%yJ3>ZeYkM@9Y^KJ7!&kcXXV z-*P#Keh1eG=t-iR@s>>lH5%4%+FBIfcrOyZ43S%8$7LKN;`D6aPr9f3k}UO%kMo;S zJo9Ho)fbhIIOCLG%vOH5*61cWo@U&8A7Ml%|0x0KQvebg%|Zx7n`%pdFw`P7`w9;3 za{x?F(kSvU&EkN}7ltOQkywKGhCpzwr!GZ{Evd*af()#2w`Mu2-DHIqq|x6&-@f?P zB=S8cE#fspg2#&;nW*maO=ClX4TCQE^^d`6^Bw+^$rwgCvu~Q159r=YJWH3Q3eI;X z${32)3weOoXcKiBz^?SVTFF(Ntyar;{CVUa@87K3dpx?SWf#gs)nPlJi; zLmvvMiI?KbF1dOv9uJ~uBt{(cZTBn^{S#TtsItkv@EvVVIEm@aNt?TN7(Mu)VE1+4 z^-mWp*2++eww%0`seR$9{mzk;i!V4jJYtT7ViI@#kGJG)`H8hy{+ntkBtuXjxwaUU;sOhQ_3pY5of+!z{Hd#du z3#0zY>6F7CEt4Lp$0sp2-kg$LOL);8c5bvO*E3a}266)G9`r}b?W)xS@eYPv$}Alz z7r{w&Y~`Bkl=niD@gnm3~y0ZOK%sA?HhzjZ9bX;V#a=Ylvpc$76S9r+9ubi?3rF`zc<#+fiCrqMS1Ru z(4a9nYf1L$*YA+FHJqou5s)>UfEWFn;kR6q&uXJEsq6do!~4GqB=YiTgB4YKDj)I0 zsXFLS@*Jvk6CY1A{fW5qx{alHk_;E|0X)|;8cGwtXgXbr@HNQ_o7HPu0UI*6D?rD4 z*xRd7Kr4e)5yI?Q}T$$72iDY9=}@o_POr`t7f!x5pAW!@x|aMuGEu;Z;zCWzkdr% zFcI%@*cQkcl)E!Knm;cSDCn8~cami-rF`7f$L70Rt&3Zl&Z9RIvsudF|75<9s?FT$ zAs~N4rM9*P;_D7Jn`19hMN3Eab`A|bu6^0Kor9h2`)Af80y%v>+cVQ&qF=sX8FyzO zwZnW_+)tO-?)uZ%-g=QIYzT3{5C(v7czz1}+Yd~#ykP!f1AJ1Hb?o$-e-}18H$<&_ zNqj9V+*DT}Ic_=}c)BNlq;TXH<+(AG4mJvNqkIb#j zseXh`VwH$Eo2FLiv}sj)TVGAZk}2Znm1wH11@*tPHm2XwTsW$G1NYnu20v4M@Nui! zII{6xdiMtBb3VkNsyW&`#$z#4Ge7Ko**@o zuKC;EexbGIdifyg_3+#p$tyt5e!nJ!)}c2IK$=DAhmIBTAjbdw_-;KHqd84Ee}N>d zq;kq|(?R9Mw&S@}zhj3vP06dC){lK?(SYP8Pv^F-lPf!JKd%$YB{?$d`aU(Q@=aeHbosfBsfZl(Xk@2RlpU<_y_0=C4GleCDjG4+P(F=un7< zrT-P_8;n79cpA>GX8JLr@!w(AeM`PQZSTQeFChUD6LG{_R*BSCHsePV{%M|9|a$bySv1_qHM`ASfv< zE#08fNOyNii2~B_(4i6%(jkp>OG$^)9nuZb-4D$-4<0=4dtT2U-~T_?axIqJ-gD2) zo*mb|_MRU3yC`@i5Wv*C)r5m@AOK!4?NFjd3c zQPerkB@t=CC3k{}wo@6kvehp~je|5y+lrc<#Q&`C%hb0}Up!dX-?{ctGo3C4oz-l@mg#1v!DinI15 zy^B`w9WVnArQ5(SY$D_o^bHOD@2*zBoHBpi}!Yb8PxV=+?EXK+J#h*wH>WM+x3fx=FgO zi^JhEr1KUTLuA}m`;)_!9HqzJ+}sSrQEg%c1B&G$vQEkf%#HEEo>3XM)%2;$vOTib zOyRwTsO<(N@7DE|X}fTVWAfIXBwK$Ulf9>+xu%``_VF%uU@M%;^A(nBJncK*Kf~zqX(etCviB$wl*ZeW_dy$GiPV6z17T0 zw)Lb+zn!Fb(z@&UzDdna2cWt$BOBDbG+=}6FR{EQ;DfpXSMrPOyn`hJtO|MDqUK=8 z@PRjSj2tMSac~D|5QCcW(<4m~;zBED&LGR_vQXc;RUCv|CFimz65Ftt7?pMuNlzsj#*Dn8oQ%R%gPbiF z%1q_txEolHRR#JYXQtQ6$c@O^y;|rev6vWqoZcn=oUmr#S;4^A?t%0%kxuIq2y_6I zGce%0ASUMLkPxl!zBfrDU#5ZLhifTIrTkdI&^0n=cO{+yqg$v0wLuL*@1oZyjb_<(|OKD8AYKoNP3b zK6d`wcM!x7xXZ=jhs6S*t*8Zxvm;Gfv2$17+X&!~_kL&j|_Bp-qv?3kXND^3T(v?$Ec9k8cuZe@SW8g6Xu~ z^jIjTC;>PAS*^|5mn|Ng;h)I~7cTu}u&;@?m|2{Cjna~GvX+zi^?f^?h|Y=yL1~4- zUh5NMM|Kf1*ik^oobi(aVXdQn+7saHfS%g?DQt#9t(q8YYYxXuZC>^y)U-|$riIsyG%W$JLK<*4+BvB| z5o2HLpH%vp$qc*x1g@g6FZ{`AO!OIS#e(+2FPA#~I=eZVbHA$678ewAZQO(=DATgp zziXCzn9huI5c5T%MniXS+a_WP=W{>4;GkYQs(S)ETqe!%COE$S4qi}A9$r@AJwd%b3ZSWwK>+Txv`zopt?_ABC`a?KaRS&)Td?lE>@9;&a1Tq$>>VM&O$elzn0%CyKu& zDs8UMg)Sj2Zn?_u_J4hc^<#BIMn`lUF=jsz&qi1^(2t~4V#u-}N`QncEkKOK*n!Bg zH6jmKPlEfA1Pqbu_an^?w5&RWC;HweFq)pXn8j!9#Oxc3QU+G#JGLT12weuZT>6gj z(>I*ftDKB^3bdUs+zd&UH1x7k-;U|)fJaG1P)1c*nOBE>ZPQaio1*M-g zu=<_~{XimwpMKiQpp0+I6b7^rB19^DY5*n3fc;mfAES0WLnU80&&+TgE!~F8e>GDl z>DgI8QD2nHT}E1_oW5hdG&lD7VRL2Ce1BzsxL@V&QBh^Tkb$;vT!Y<)Y@Mzt0mMCC z4+lx!YhXqBjzRR3+)!E-+<`j=R@Rdmp z;xPfdvaq=OoSv~-jCJ%On_`E~p-*X0#vd^X}I+cE% z{a{Oh`|gw{tO=_s?t8uw7*(Z))3S*t9)nAAwY+NA+NR%|u>#E|xm?vIT4Fa^JW|m70<>`*F#fj)UhAVa7*xkaZ+)y$cIyM*TBh zQymr6$Y(3Xg&DM~?FPs9SGPnTTJK3ceHj|qvL&9Upjorkw-t)xowcy`&K{;IQy&xC zhcp6c33L&SPFP^*qAO+-n(R-_$x7$~8cA-`X>;lEErZN~wS$NWdCzYp&)C`73vo+v-{eOc+qJX5EUnVAS~=P8myBPRsp{F% z`a#21x3Q~$FXpYS^L7fv^=p3AQLB#JYL_-I0u>D0jAnL8Cc`R;P}!0m;2AFrL!6vN zzwL%$n{LjmO7Y?-vg3pd~Rm^o~Ibj0`%AqQDR!mF4{#RRYtVz@wxR<#L_54CxrR@Y|u zgC7qzrU-W#oIW+AUf9pTW&{aeXUG%dUfY5lnoRO(w+LWaN0gHDHT-;?iMouv6(9JTTYMy-eez|1Z;i2}Z&25Yyt)emk4@n8`Q#XBX@9gdH|wjK zkxk*yb+r4oj{2fLTJaNz62*B9Kq3Gr6IT9U?VIoiB^7u?*x0IbIu`qHuR=@&equFX zrI3aqTB=EA$Zl?$e<@Bgu1f6Svs+>m&Tx*W<+d@1uX)lr-e6NzSw2bFH%6t9G}Gi? zl{}*SN%DX}uZh7+YBtVssT%QIa<0&!*0s27=e#eV$w)r57916?xCAf3lX zzSRn*{*$5sinS+&yM>(oticTSKN-kvo`?_VR4;wqwi7h>zW|Lki^GTKwyaMfQ$go1 zHxhQzek{zN<3B#m&rXVY+8xF4n$D5QL4Ku}`G%WzSXLFMbUPdv$ zHNvQp=BS%NX6D;kOYM`aCB@>j{BK3M_C0;=JGuna?wmRGV;ZZ+7t(H8R{rudhC`a1 zD`hCPJd0iT>23K=RTCA9JO5V~Cy5XJeZ*19}-IpR&{etW#cM0bjq z^s^?P#^AVbggWj}6-#J01A|Utq$^)EWSBOH1=%2MS#yK0zn!u8E2mSD(@0@4djrEl zw1s7b8nwHHEgD*ma!053_$n0os$hDw)Tl9vnHjn64L`b0a8YGZ<7+NT*F?sonJ%n6 zO%XN<;TxC*d)fCg`&GJ3y)NvQs$1@q;_lurXnq9`JJ0%X5fKry;7W=w&-e+TD;bG8rJyV!OTT9WH2HHs%`2OVp|gK|{7t2ViqCeJ`UgGn75|e0f+6zCHsQKY+llB#>ME|xE!O901UAF8 zs`NYzx}~;Vv|qKC_Rl^tZc2B#wq4-pUCZ7AJ1xaN-`Qz8friv5F&kwmmVf>>bq|#H`JfQ- zy7*wGJO9QTy|jXFT`PwRY7n})=i?W7^UER4D=(CeIJ>oAI5TeGnieUEIHHqC5lVa@ z*+~ucukdUMW8KxFyStV|pve1)@Zq=Tf`iG;*r$xRqdZxsH^0SGjCcZr-9#X{w6A3Y z{mkMlX`t+?FC0PkO>IMrNoCZ4{z=qkPZj9&fW#n}`I)9YiOQFS%AXWv_cPVIY+?=_ zyRXuUlON`B4kBJ037Nir^ZJZcm)B}Po4L#@c;RE8u!4YCTrflE8&fMa>J*k(RX4n} z=ChTQDn;agZ>>4Eei@ADdJv!SP5_ALoqk#==sV+_w);Yt?v_P>Gq}=a4fOLO{`BC< zY(j=|I&yvTp`hP=sJDD3RgB7aB8q3+{P{rGV02w6M( z;u%LOL!_mW@s~2V1Lo!A7cBG+aB!SJ7`tdoDLB`Q(PG~b^ikeNlIT%Rpg^;*X6k@C2SBLzqHTKO;~G0iD z@{RyJNLN_qo@k1r-c7Zyvu=uQ>!HqTd1VO>XFDy^``?w$dC5D9b~6&)oSH!4M?z@3 z;cq~R=9u`wb!2v?2-3QjT2Bp8fD|$WzwTWBa@<(O_^87ARkXjI<9rXBm(+8_WGl?% z`|tJ=;kD=_RdeoTR@OGtM?HVzQ+v?4VUx~`Om;>fR3;)snS~TS5ZTyuX1&^{WuPKS z!jX+dV}dpnUe0w0H*54&bJ>sDXIRNLJ2)nYa?|APq*ir#F9OUJxUsgfmvOs$2XK5> zhXL|;4p)`TA$zlM7+UuOmY9wQ;rel;@yYYP+{{d>$Gp6?N)lm!x3>9NRoB(-W4N^d z!(aY1!cm5Y=p&@lr2&|(L=}TmH&V~z<37LepMJSXv;r;++BJ@So|j?h3fG3~NG#88 z!a!FTuB#{&p%SKP71L6}z0*JGPb9^hYFLhSBmPXsW4w)huOp+jgZX7CIty-vlnDLz z*kFzPhyBw1Z;GWVlsasp=F9VgYIiMzS`wo6-v<+bBj{O&Hu4vOd9EQvOkljEeGYoD z1QLRFJf~BH!fN|~GjF>BI2f<>YT%05A#5`s=LwN`V-NbwoQ#a9xoM84MRM=L5~whN z&3HEFWWa9#@dQMVm*BX8SD?B(jRPG5e{@X?x** zDjVe_PprD=g!P%CL~O|(rHW%>D0lrnfgU4OuAu8uKgf#ch>|y>%dJ@6_6KFYZLWz( zhw<7ldne0xz8?ci(3K2KS%O;j>KxD}<)&3o!GKxFgI|*&#({aM&B`rtB&hIkUJ+ie zHQim^r)nj2KbCQA_%+LL2w;eONS@ftuYbmpSNKTlQoFn{7K`}lpP`poUQe_O*TMC zIhY6R=ln&+g{sJBMZJ(A9K>JPAu1hkH*a@H7$l$~D0sp$pW`hmj2E1))9(Un@C2w; z*$9j>RlV0n}8K508WUViyMV#3NA+j*diTlwKAB@ofZnQ`Q6u0^<{4Yd|V;>2*ydMDKa#dqS zk|9oWO&!0Oi@w-{YcSLbUTzt^g)jx+>AVli<<3llBKYWZV|84TO$~fL4tOgHydr2r ztg3n@8Jm+}Ep=>YGdA%VMcymsU|W97{jE8 z73&OKY52vhO_dHI+*W%(F7ZYk_gQoT`@r${@MwgOq*LEr2W)(7|A--Q5b8z%g?io| z=flG6hL!sz|Ghd3%PE;fi#bq!fA$HO#9WjT44BS-0|?sR03EfC5}kfa@7}$8ieaIl zyABY3!D|giTrUVz+#|79a5oX)Kh{r4RuQ>DM=FJ}7I#OQJ0&Povm4W%ez&)>rKV;)0(Bm zMCXTCpX*tcrUy$6(ddxxoV=$c3K|_u(8Gadw^oZhzk(j8&@!{L{gCh7%h{H(b(8Oj z#A}8sCR>SnX0mWr8?2V zePyP)hh{CHPaq6&o-}IIJef9~V2Ye^U(;nezH2M|q))JV>76&K2frmE3^{EAJfidu z>}z+4T(*D0vRvqG0eYV}O1<2dv<30^fOfo^Ts~2Q=CPCJJ zL^=>@{%1E}>NvQ;G8jh=YRIsd7#7*_2O|JGO@1%%H4w{7kgtgtww~-;pbc7Z<4a=Z zMO$T(K$fhR_pT$u%X>_dNly~F)Mw^yMB)> z%exd@-LAW-y{F~n@P+{aF?b48LRouayb4I)vEH&usT?ql;p#zz-GdGqc-?|HGkmrn1@}ttk2-Hw7^{NXD2CIQ zLKi8Pbs4qCi?LOQThn|m0M%dc7#c3pk&)nJ(gkvV84_gphBvQgON<0&>zm`p0UYMH z@E;8yRYFD~{zI{J>0-|bF9+1}EWmT)tkr#_pbw(3G?g+d}o%aYOke1r3e{>Ene-Xf!1fh$u&FO{~^0| zpz04icz4?tLWs*aP?KSxZwA*^2UiU^nsHo^`~}d}&FLIG;tY~BnnA}oWKq!NzLYX^ z&}4$dTTjhB;jZ;{ki$O)^r^VBYcL^*amYMD3V4KKx~}>{Y)G$+k#5O8g?#NNwbq+$ z`Jw(t&EgC+nbeD}M19j;i-|v@K-# z#D#?CQ#&4^UJ$B_$>6;2ML))b#Yl)U>n((5OKb zbUMYy^)5vCWNKw)<=bW`!9YbNMg!Pk-GCid>2hqnb_J%Rx5$oVgQfwe;`w5~NdkOW zAflJWzW*9v8dGR6+-Rg!G%7!@aBz8&kVFJu9Jpee_7BS4Cgi=nN}J~Aj)N}?ZeX%_ znZEKl9SYpqAAzgUA(DF_edhSB2P>}Dv2RxO$wF-YS4+qvK+j8C#t?6Y-*gYPgj!oc zZFU@2*!8f8rpi(xzP(`DeI4`!=0pKB^YB~>C@1Zzmt8R#sf*|V$1dQ8taqSLYFC)4 zo6zQh?`C{2De?N1X97E-9$avqr%G*vDElyfgLYCTF zXkz?;E2&8@ZDJKJ8&c^WPJ%6wGcYtcyy98fVBzpWo*YAcVe=$O_a{6^MZ5lNi6}5T zJuooGjv62TGAF1{rGhZZd>a9R%mfLTe@`4ulYXQN_sh>3(Wt*tGT?uM_z@_Y zg?mN;;4B`c)nhM}$vW-%4AOSm7Z1fFzQP3kOT^4@B@veVk3J8;RE`hBgF$GAuRn%$jp5E$_{J;mDu<-}2 z$5}cgXVHdGVA(h!Lz@)Z%A>6M_lOu%?prm`$1KP{w|`I*zqvLDXL7*u@oBN8B7+IZ zB#kId>^I#i=B-e(uC3xqp)o`1~rjE9r>Vk{y&BmfblvpUza6`p&df6Ta= zx&He@P58K=UEyT}xZ8t!D{#aY@pqViAr9tJ%?A@XEkTd*rlQs5wH!#oxmgjH+Qg)w z_=%98oKM9M9^%sx^}AR@;c^jqJHSy%0u6@`kIXT!4^3HLu_EatxONb9@Nh22|FozL zRgdgT@HGtl@F;tL9kXISpqg3l?6bwEino5N5{^qJFQN)1A5ZQN*i>^RU14sBFn7z< z$#dH1y-vF`sEcRp1Rra}=p{NLf;2xr&n7J?*5kVv=#LNqP zWkyxEY*DDWBBA`Gkgm=)tU-~{%+XR4+gs1F1cQ&I1bDvWkH3JztkL3^T~5lKCG8y@ z4f^`}CXE11y)3Tp;k$Hk1$`D|zEN+(*Pg8AxPex+(?kxe4FT6jej6Lczcfk6|$Y9mciie%&Mo7*tYfuLGp=jv3MB#pk(71)4G?C$o<%B8$tT^N|JK_T^iF zo77J?_S9x>JZRj|;SMfzZ^T}L$bh-5-XT?ZYTr&G@utC5i-rRtEILzH4z&?6dNLY! zaQ3)^DIXZ+zDBfcxxIRDV$EFa1TH@@<~?06mV`mWdl+J}vUT}@ zW{Q0bJS}(B){YKI32ABieIKn5vR~224LDC)4*}JgeEOGnZX!5{gQGi1dpAMXeP;K< zX9D+o(vYGb?}u_Sl%11HxR+I4yQcoFtJ~}8k*V9^9Svjmr+drxk{~Dn-w^gLv8b}? zOp2Cv58J93T{vp{%>pPsi_~#|bH4+Sxs*U;n%(Lcf$S2MorJyMLug)n-&#e+wYQ3n z;jo&OF_a5p4!_pdD*$mjSQZLd+EQ&;T3Vu{q|jTc(WM{LB|jZAE$I3LDpB;k^|UT{ zvF9KBbxJ%g@3EackG#ZqaR(-G6BtL!^NYsAM7mYc3(mZwiQb6vtHAbq%}b@^b6Yc7 zAwuViSf`r1(o*FE$Sa>2( zpDS0>A(Lijr1U!HF$C$u@LPmok?@JBv+ka)S5r%2GUD0~Sdo8@W{;JkqwWl|(y)x3 zN88NTx?8n`6aPZ}btmu%wqy96#GNuKbh}0rRWxJBZBaL; zKEL!Ss%CilAF759gPXbaGE$ZXInDMIQjXne}eW%|%96MSrZiSFvbtnpd|@+Ia?sS6VzF2vKJ0ZqA>h$r`q7%M=N5avd^QFU}GD$cULX~Y@0p< zH-Q3)>y8)TV9Nt-v2j-L@(pjOo!B-SFZkvduZ&O?h9me!{?xN^j=@oSB`sA6020bB z<^|Id&>LtZuHpZnSSVZKwT$r!s(VA{v0NEm8AdxB*V*VVph^&I z%>4=ampUNYsB#AvEGB;VbgTKWx*j0w-1_saA&E}BETl+S(J%}R6tmUf;p4AO%Ell{ zBX3-D>^?-!72kVeURUc>5LfLm6a)2Jo#vMRy? zJE-&rwOw<%JUv5+uen|RYoQ-|A7 zYZS$06rKU01OCL}sX6_obLDVdflbSsW*;HN^066aMRyb>gMu_O#e}4NW2mE*S>4br zKGXrkK-gD`iGk(cbPkkU56AJ|Ie~H)F5%?W5<0>88wLT$KWSDpd-JWuVPJRgD-fiXLeRRm@U1d2d0J{)29-H-Uz=kXA z>Y%5wVDskyUZ=GE8gZ(JVOu1c&;5cHMykthY;4@Ek0pEwOJrRI;Yl#Ce3>@j7=)#t z5nUo`jXT$TbVipgIWPr6UzEpd>$PEKBcb)vXO44f$z+$rWPUgK>}2dJr|ICd3xcoD zC9?oSro`pto~~chkGD-@iOQA1x7aik+--_@kXOg-{bAPq6ZY2fD+DlP{ZqIJ8GO>+ zuH$d+tZBb9h0~olDPqrOKyENk$Nl_39UxiJ#9l6N^gf_e_S_T{RayM>{m!qc-gy@+ z0ywa!S}=@m*va7Q)tY=CJ}Jq}kH5c35FexrdmgAC zg<8fpHdM8m^PI~4^I=hXRr%B>aey;JZan||sXH%5t%kN3FwBYRm&1!* zZUs{i=sTZjkXqrq0Y?b`_Iz~Ai z;1RjFfr}+#!JQ&*$}d#eu0wZFY6Vi!lKma;<^lB0k0!<_zO_Fwm35c4tC@<#X3pL| z?LCD;Ij5A^(~|SB8)dgLy3NhYTXM!!B<~O1Oyonf+$v3n!2c7;k0JLEA z9k8kke{5Mqnt&A08pxsTP0^Q4?1q)7VvNGL2QbmNaT5wqXzS_wJg}pWfZkfrZNdI# zDb=FGL=wZx))2=#^Z@ZHYv=vdounSC#$?0JuxN;l;LWn-ZR0+FXIU>AJCxf>HJss? z0ZFFwZ+B~yf3dWl+tiU9q)$q2s{s3rQ?RFu08yojv|puwLP0Crum+q2t2>D-`a@B(DgZdeuIWjx=R zkS`^Ld17wA{d+Fch#++3G7W&8R}ViL|Cr8^y`wTO<=fKlt;yFgs1@GnN6D4Bn^;(> z;UnoxM2+fEM50VMy%%_#A!j5esOMjGD&5`6Eson;2y7+*l^9=r6!)IrFMaT)oH_IZ zrhRvEl6)@?Oto0RmkX$Z+oEZ`PgCDV=^!_h+j444gYZEdw9G6nzuZboMty<+4^rHU zbr&aV7ho!c`=CGv8F`;N2#RW?_QMwHaX)`urU8st=Q{MFwgbDnlmcS<|!5_Pa`Jzo2n8;OvmqnarhNYTq zi$#+5!%-UfkK+{tInyEqFf|lt2O1~qyrMvb=A`+kvg&QDig}iby}=8~yUc46+*QN_DIIvBJW*;*QVpZN`mAZ>Ub1_I8k zu8K2{dYnoT$68kHY{%3#Ss7X9I3q3@WrWmo39rx+Ym_W3n*P?oRQXI_5(436arffM zez|${%KXbpn?r+lW616;VHLy=uNE9ET`dfTbp_X&r2~o&J-Gf0y}i9%zXSXQ7o^R7 zHJ{|{|Dg^N--`{v44tK>rowHuegl^}xooz8C|iF*dg=9>#%q6!I2e{pnjdVM0NdGi z4@W&kZ}ZUjP?w4WlG1C4A)rq!f=vOoz*)S0#X59yff$r{`G9h-sCVV=OE2P4xZakN ze)3s6eN6-iCVFk~d5wLs#_UkC(=@7=Z&Fu2~MGmr*R->jPp2S^i5ph!x7c6R^3@Nmb0 zlWUC@!&6Zakud=O9dE#gJiA^PP;~?gs|}Nb9|PGc2Q(pXz*8HkWfiWQAhnIO0xm#? zKiU`yaM3`5@e3Pfh4t;N`PJ!{+urIBUOu!h*GA-8K7XC7S{SNWHiZKtz1LrnBx1js z?r!QL$xM=jQ^DBx^6TjB-iN41M4sNH*buE`$q|`+duATXbq}ike z-8(^x-FktOen0w8?*$Tq4ZawgCswcaQ>5Qjk0;Ds0(% z5I~wfrUue{XuvT&O~$7GzL~%61YRG(z4~6M;OPuzW{HZTn>2}-)bfoRc(dX{&y`3D z$#YvH@IvfY0-u{YuN>^8eWUhK|KnJ%5oW|Q*@kYa!#3pT0f6ly_UfDt!^i+34Ka;5 z^B^2A@;%VZ&q^L}dRqI3Ael9w;82)pN?Q-CTJfallhy5Y}102||+x7Qi>nf_ZNRs94Bp* zNdPxxeGy&pQSaNpQwCQKomWbM0@5JBNDZfcZ!heO03YYku#gnD>cTQk|90tNPEdy? z>(Qjn&g{?!i?dJHSXN#AS4F$JBu823}`=Fjc)n^{~GnJ%Ht>?gF zGGCacE?k53JkVyM^8S!z1v0UJ`v?Cy1qW>){{&K7aYv%{ny8B8K)H>Le4*JWUR$nbR6}!J)1_Ujx&VGPooV%>TU_zkl?Qg)KTF z>m3+^J>%%fgUy>*zQ6tXfMJN@sAm_D>nVI5qmq?pEG>EZqHdRXT&Dwus<2M-RnGaM z$CuI&ksF@Ds0#nJoxhGQkVRgMdNP?rc?05KU;iw8r|bOQgYM~7OHM<96dxKvs;*!u zYY|J;WWi(}c$depO49E!==vY*OgsCuTj~y91yLGT4dTZC{^;MYh7IV#05-O#jhXmL zIUt?c9%R%qx*e=D_)mUD!&3+8;;=7<{Zs>2YfnxwLynC#fEm`Nv7n+OQPF=~z_rLT zQE=eVWqzBV@;?{-Z;dPuOR{?rzJn>v?OcARzKTs&s0^Q+5xW;+Af16>c&cm?Lg`Gt zfRBJPf`f2UxB2Vxpq#1K5L!1ttGAw=l)O_aTX}K!-#6hEP|F`gf;?f4t%C}24rk6m zZoDiJO%}b3Ev0n{!&`KLIbRYNQ_GeIt}cxAgtBT{sv<^1vVgg%3qG_l!TafjF&rK0QnU#U; zdwTT1=ibNH&Z8#Y6ou$MO+TD~PVnpz`Raepo(%MK`|~Ex!K6Q*PXrcV%vb^4RtnUn z{aQ$FgWv>WemFIidZL(nVnH zQ9#P}Z(ILTPN-IZnDfcz)c?VuncJFq*}J6QIP!nZ#lsMOdtZS?(o+Z~Xbw6vdp6?< zTCTP$8W|lcDwd@J!dc1Usmdl3t3fiT+wVR6?c@t9;%MkZ${FRXB4lR+ADc9j8w z)wh)hA2REr-pZb3E3!0eT=$D$QI;rH?SJf@gqh=Gt}t9@cP#{2N#8l#Fh| z9FC&B<+L#K7?vo#=o68>5);P{=VSTuHS|g~ z@k{9?CoSXj2)wccYNF^!@4ojK)k{;b!3CT}9+t!b-xA553Er)~?ho;GP%(aZm@)WY z(b~p``MNK&f~jD?-9nsKT`F@rj;$a{!`59M8<8)OKxtahm)ka>GrV#5bevuZa24<# ztk29j3?P-BCo}xiAsl}*C*ZBOepAew`p>3L3&#Da7QPxi={YRYbLOktn~My?U*gp6 z7IAm)rDDS*LYLN~;d%c~D`^u77e)Dz>g-*SrU~@c5A)b_2S1VpiQql`lmA_zD;^%+ zIWcSI0h1$azi(1m)*hV&7CdrrlXO$oxhE?no6{>t0FsVL`#Cstg-U>1XI&gpURBP0 z0Me@wJXU)puOX$Y(2xv$())i}A`g#Cn3Gp$>eG3p%ca2#CbP*TBR4qf42l3h(~uy4 z1`Ck;-)YDq&yEL)%2D7nwsB^C*AT~gi7~33z$Gom5cXr{Yr_8Dm2L>a<= zSu9^-56VE&Bm*(nWG+Z83)l6B2dC-PA<6R-feG#EB#LsWkK;&7?B_R1fBfX~< z|0J6UzwK4d;~~MOKE8BY#W8wkqPo{(oh6wi_ef`e?8|d^oQupb zwijP@tAEP+{jc(Xf1byS$H11?<>BlCq@I{K)FXr)kM~)nUSIy+I1!{W?ok&Y>B*(W zj4xoxNPOx~DMahsgR?t$$udUMW|(tuv`Nn}9^E_g-N(Y^?D!(@ZY|(XtsUbMlm2n5 z_>*8XB`VqvjxhDJ9m1~yQa4z9blT48%Tb!u%!Zi?qIaZ0ha{)Dj~tDXpapr~`^TE> zpK=G4wsN5o3U{Q-S1!6A(7R@Klmq^bS~Uy8TbPURziI$J9F|2cjf+NxeaJK-LF>q6 zuXD?^8%G^Y!KbGpMlc|R-Ye%jl@^AGwa8|m9_k(uFv6ySRypk|l20MJ06r?hsKmob8%1>dP-%&bgK*%d{3v^-wZ-U8(Z>QgOzJ%T~U^)<2r_gCx6gFN4$iW_r2cno<@w@{F-3e7t`=C1-&KP^GEDPZhj_140~~ zTRj3TAe@05p@_v0$ciUub1m^v#&P#vLxy~@1>xRgD^-28?%hjwG z)8m)yx$TbHJx|T<$5KU^S^+mMoU@-wDK!N2$>|N2cq~Dqqe&O329T>ptgm$UH5+=m z>{&U~qlTN$GU_>%ebd}ypW};ut+Q~{a?psR5`Q80rwQKxm=mbpnTf)|xFYMI+{7^T z8*zU*P3GKf;Z9f9e+qTbHXWLfA7hgEndwtgt|y*wHg|EVR4A7*Y?g!bz;v{mz(KI>UEsxrN3gRy*2}K0}K6-}-`7c}frHE;xYU14kf?AiE z3rQpFe9CjX&?K0o>{UEP_e_{rm69qV?rXRc^}lqTW=K(@--Uw zkE+(A4u*DH(0aSTtRnm;SV{ST;gIaD3)h1Yk1$6{r@>LvhPMIrOFsgKDd+8EYgS_M z70f4`O^dk>K@r%FBRUQ&3H*)dA>7m$QngMyUM`w*H6Rm zX76geRMFauQw|xVt~#@BF*C4_eVbkVkYQ-SLb2jyEhy%Rc{sT4QtbP1DOQ-BZnGk%87d*pwDU-QD1jY8VCNq%V^kCbq=(RVmjsyXO6HQV<8zf(uLUjt zdGGtt!5Pq4^EA7fH^1S{e1u5tuy_>{8fn@bYBLoj?f#OnmwtIgD#Ak}QnQ0YtG;-q zc0v)QH0_IDOn4&9GdW8n3Yc+F@C4JIW9XpegB}KBU;Hekm0nAMUIf*=%(N8T6qE}1 z>K^)$83Sm4B`JR$z~7%#KMerwT_~2&#nnF%$ADR{TH83Lrc5Qlkp1U+rQX& z)NMtWRj{26e)7lT_V+PCum=ymJty=y{gJ8JsRQ0jXR#v?!(JRWcOb!-?<3~kAOhiZu%houMaq2GuhU- zdz>Qv&-Y)yMgFFsYRR+0e}7;LOceUSlJ7q!fBm1Y)`ghn#j@W+$|wK&z>Ic%@4>~* zP0D{P;ool&0&CSb*ZBBfAE>^EQ#r*~fBuJ!`1KagOpjz*jkuA2e*kh*aQO6YdE$TV z;@_WuN{oudWGn2C5&N$XY%{!AcDlR){r5fpKcTo@y#Eu5-=g(@Lh=706fck@yXjkf SBMWYTKjOkNLiqwO-u^#EzX{U- literal 0 HcmV?d00001 diff --git a/previews/PR1495/assets/logo.png b/previews/PR1495/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..a4289cc9f7735f47ce70f6dd7298763e93c655b0 GIT binary patch literal 107081 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 &^W|tCq4%XE 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 literal 0 HcmV?d00001 diff --git a/previews/PR1495/assets/search.js b/previews/PR1495/assets/search.js new file mode 100644 index 000000000..e30e90709 --- /dev/null +++ b/previews/PR1495/assets/search.js @@ -0,0 +1,247 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'lunr': 'https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.6/lunr.min', + 'lodash': 'https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min', + } +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'lunr', 'lodash'], function($, lunr, _) { + +$(document).ready(function() { + // parseUri 1.2.2 + // (c) Steven Levithan + // 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} + }) + + $(function(){ + searchresults = $('#documenter-search-results'); + searchinfo = $('#documenter-search-info'); + searchbox = $('#documenter-search-query'); + 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) + 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) + + 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/PR1495/assets/themes/documenter-dark.css b/previews/PR1495/assets/themes/documenter-dark.css new file mode 100644 index 000000000..1c370f226 --- /dev/null +++ b/previews/PR1495/assets/themes/documenter-dark.css @@ -0,0 +1,7628 @@ +@charset "UTF-8"; +/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ +@keyframes spinAround { + from { + transform: rotate(0deg); } + to { + transform: rotate(359deg); } } + +html.theme--documenter-dark .delete, html.theme--documenter-dark .modal-close, .is-unselectable, html.theme--documenter-dark .button, html.theme--documenter-dark .file, html.theme--documenter-dark .breadcrumb, 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 .tabs { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after, html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after { + border: 3px solid transparent; + 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 .box:not(:last-child), html.theme--documenter-dark .content:not(:last-child), html.theme--documenter-dark .notification:not(:last-child), html.theme--documenter-dark .progress:not(:last-child), html.theme--documenter-dark .table:not(:last-child), html.theme--documenter-dark .table-container:not(:last-child), html.theme--documenter-dark .title:not(:last-child), +html.theme--documenter-dark .subtitle:not(:last-child), html.theme--documenter-dark .block:not(:last-child), html.theme--documenter-dark .highlight:not(:last-child), html.theme--documenter-dark .breadcrumb:not(:last-child), html.theme--documenter-dark .level:not(:last-child), html.theme--documenter-dark .list:not(:last-child), html.theme--documenter-dark .message:not(:last-child), html.theme--documenter-dark .tabs:not(:last-child), html.theme--documenter-dark .admonition:not(:last-child) { + margin-bottom: 1.5rem; } + +html.theme--documenter-dark .delete, html.theme--documenter-dark .modal-close { + -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 .delete::before, html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::after, html.theme--documenter-dark .modal-close::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + html.theme--documenter-dark .delete::before, html.theme--documenter-dark .modal-close::before { + height: 2px; + width: 50%; } + html.theme--documenter-dark .delete::after, html.theme--documenter-dark .modal-close::after { + height: 50%; + width: 2px; } + html.theme--documenter-dark .delete:hover, html.theme--documenter-dark .modal-close:hover, html.theme--documenter-dark .delete:focus, html.theme--documenter-dark .modal-close:focus { + background-color: rgba(10, 10, 10, 0.3); } + html.theme--documenter-dark .delete:active, html.theme--documenter-dark .modal-close:active { + background-color: rgba(10, 10, 10, 0.4); } + html.theme--documenter-dark .is-small.delete, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.delete, html.theme--documenter-dark .is-small.modal-close, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.modal-close { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; } + html.theme--documenter-dark .is-medium.delete, html.theme--documenter-dark .is-medium.modal-close { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; } + html.theme--documenter-dark .is-large.delete, html.theme--documenter-dark .is-large.modal-close { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; } + +html.theme--documenter-dark .button.is-loading::after, html.theme--documenter-dark .loader, html.theme--documenter-dark .select.is-loading::after, html.theme--documenter-dark .control.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; } + +.is-overlay, 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, html.theme--documenter-dark .modal, html.theme--documenter-dark .modal-background, html.theme--documenter-dark .hero-video { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; } + +html.theme--documenter-dark .button, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark .textarea, html.theme--documenter-dark .select select, html.theme--documenter-dark .file-cta, +html.theme--documenter-dark .file-name, html.theme--documenter-dark .pagination-previous, +html.theme--documenter-dark .pagination-next, +html.theme--documenter-dark .pagination-link, +html.theme--documenter-dark .pagination-ellipsis { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 0.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 .button:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .file-cta:focus, + html.theme--documenter-dark .file-name:focus, 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 .is-focused.button, 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.textarea, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.file-cta, + html.theme--documenter-dark .is-focused.file-name, 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 .button:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .file-cta:active, + html.theme--documenter-dark .file-name:active, 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 .is-active.button, 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.textarea, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.file-cta, + html.theme--documenter-dark .is-active.file-name, 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 { + outline: none; } + html.theme--documenter-dark .button[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .file-cta[disabled], + html.theme--documenter-dark .file-name[disabled], 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], + fieldset[disabled] html.theme--documenter-dark .button, + html.theme--documenter-dark fieldset[disabled] .button, + fieldset[disabled] html.theme--documenter-dark .input, + html.theme--documenter-dark fieldset[disabled] .input, + fieldset[disabled] html.theme--documenter-dark #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 .textarea, + html.theme--documenter-dark fieldset[disabled] .textarea, + fieldset[disabled] html.theme--documenter-dark .select select, + html.theme--documenter-dark .select fieldset[disabled] select, + 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 .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 { + 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: 0.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: 0.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: 0.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: 0.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: 0.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: 0.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: 0.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: white !important; } + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; } + +.has-background-white { + background-color: white !important; } + +.has-text-black { + color: #0a0a0a !important; } + +a.has-text-black:hover, a.has-text-black:focus { + color: black !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", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-secondary { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-sans-serif { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-monospace { + font-family: "Roboto Mono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-family-code { + font-family: "Roboto Mono", "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 { + /* This file contain the overall layout. + * + * The main container is
    that is identified by id #documenter. + */ + /* a11y-dark theme */ + /* Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css */ + /* @author: ericwbailey */ + /* Comment */ + /* Red */ + /* Orange */ + /* Yellow */ + /* Green */ + /* Blue */ + /* Purple */ } + 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", -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: "Roboto Mono", "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: #e74c3c; + font-size: 0.875em; + font-weight: normal; + padding: 0.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: 0.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: 0.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: 0.75em; + padding-right: 0.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: white; + 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: white; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-hovered { + background-color: black; } + 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: white; } + 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: white; + color: white; } + 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: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !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: white; + box-shadow: none; + color: white; } + 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: white; } + 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 white white !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: white; } + html.theme--documenter-dark .button.is-black:hover, html.theme--documenter-dark .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:focus, html.theme--documenter-dark .button.is-black.is-focused { + border-color: transparent; + color: white; } + 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: black; + border-color: transparent; + color: white; } + 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: white; + 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: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-loading::after { + border-color: transparent transparent white white !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: white; } + 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 white white !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: white; + color: white; } + 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: white; + 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: white; + box-shadow: none; + color: white; } + 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: #007733; + 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: 0.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: 0.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: 0.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:not([type]).is-lower-alpha { + list-style-type: lower-alpha; } + html.theme--documenter-dark .content ol:not([type]).is-lower-roman { + list-style-type: lower-roman; } + html.theme--documenter-dark .content ol:not([type]).is-upper-alpha { + list-style-type: upper-alpha; } + html.theme--documenter-dark .content ol:not([type]).is-upper-roman { + 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.7rem 0.5rem; + 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: 0.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: 0.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: white; } + 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: white; + color: #0a0a0a; } + html.theme--documenter-dark .notification.is-black { + background-color: #0a0a0a; + color: white; } + 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: white; } + html.theme--documenter-dark .progress.is-white::-moz-progress-bar { + background-color: white; } + html.theme--documenter-dark .progress.is-white::-ms-fill { + background-color: white; } + html.theme--documenter-dark .progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 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: 0.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: white; + border-color: white; + 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: white; } + 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: transparent; } + 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: transparent; } + 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: transparent; } + 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 .docstring > section > a.docs-sourcelink, html.theme--documenter-dark .tags .content kbd, html.theme--documenter-dark .content .tags kbd { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .tags .tag:not(:last-child), html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink:not(:last-child), html.theme--documenter-dark .tags .content kbd:not(:last-child), html.theme--documenter-dark .content .tags kbd: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 .docstring > section > a.docs-sourcelink: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) { + font-size: 15px; } + html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .docstring > section > a.docs-sourcelink: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) { + 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 .docstring > section > a.docs-sourcelink, html.theme--documenter-dark .tags.is-centered .content kbd, html.theme--documenter-dark .content .tags.is-centered kbd { + 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 .docstring > section > a.docs-sourcelink: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) { + margin-left: 0.5rem; } + html.theme--documenter-dark .tags.is-right .tag:not(:last-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink: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) { + margin-right: 0; } + html.theme--documenter-dark .tags.has-addons .tag, html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink, html.theme--documenter-dark .tags.has-addons .content kbd, html.theme--documenter-dark .content .tags.has-addons kbd { + margin-right: 0; } + html.theme--documenter-dark .tags.has-addons .tag:not(:first-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink: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) { + 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 .docstring > section > a.docs-sourcelink: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) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .tag:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body), html.theme--documenter-dark .content kbd:not(body) { + align-items: center; + background-color: #282f2f; + border-radius: 0.4em; + color: #fff; + display: inline-flex; + font-size: 0.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 .docstring > section > a.docs-sourcelink:not(body) .delete, html.theme--documenter-dark .content kbd:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; } + html.theme--documenter-dark .tag:not(body).is-white, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-white, html.theme--documenter-dark .content kbd:not(body).is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .tag:not(body).is-black, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-black, html.theme--documenter-dark .content kbd:not(body).is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .tag:not(body).is-light, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-light, html.theme--documenter-dark .content kbd:not(body).is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .tag:not(body).is-dark, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-dark, html.theme--documenter-dark .content kbd:not(body) { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .tag:not(body).is-primary, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body), html.theme--documenter-dark .content kbd:not(body).is-primary { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .tag:not(body).is-link, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-link, html.theme--documenter-dark .content kbd:not(body).is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .tag:not(body).is-info, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-info, html.theme--documenter-dark .content kbd:not(body).is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .tag:not(body).is-success, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-success, html.theme--documenter-dark .content kbd:not(body).is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .tag:not(body).is-warning, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-warning, html.theme--documenter-dark .content kbd:not(body).is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .tag:not(body).is-danger, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-danger, html.theme--documenter-dark .content kbd:not(body).is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .tag:not(body).is-normal, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-normal, html.theme--documenter-dark .content kbd:not(body).is-normal { + font-size: 0.85em; } + html.theme--documenter-dark .tag:not(body).is-medium, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-medium, html.theme--documenter-dark .content kbd:not(body).is-medium { + font-size: 15px; } + html.theme--documenter-dark .tag:not(body).is-large, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-large, html.theme--documenter-dark .content kbd:not(body).is-large { + font-size: 1.25rem; } + html.theme--documenter-dark .tag: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), html.theme--documenter-dark .content kbd: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 .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .content kbd: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 .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child, html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; } + html.theme--documenter-dark .tag:not(body).is-delete, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete, html.theme--documenter-dark .content kbd:not(body).is-delete { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; } + html.theme--documenter-dark .tag:not(body).is-delete::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete::before, html.theme--documenter-dark .content kbd:not(body).is-delete::before, html.theme--documenter-dark .tag:not(body).is-delete::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete::after, html.theme--documenter-dark .content kbd:not(body).is-delete::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:not(body).is-delete::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete::before, html.theme--documenter-dark .content kbd:not(body).is-delete::before { + height: 1px; + width: 50%; } + html.theme--documenter-dark .tag:not(body).is-delete::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete::after, html.theme--documenter-dark .content kbd:not(body).is-delete::after { + height: 50%; + width: 1px; } + html.theme--documenter-dark .tag:not(body).is-delete:hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete:hover, html.theme--documenter-dark .content kbd:not(body).is-delete:hover, html.theme--documenter-dark .tag:not(body).is-delete:focus, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete:focus, html.theme--documenter-dark .content kbd:not(body).is-delete:focus { + background-color: #1d2122; } + html.theme--documenter-dark .tag:not(body).is-delete:active, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete:active, html.theme--documenter-dark .content kbd:not(body).is-delete:active { + background-color: #111414; } + html.theme--documenter-dark .tag:not(body).is-rounded, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-rounded, html.theme--documenter-dark .content kbd:not(body).is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.tag: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: 0.75em; } + html.theme--documenter-dark .title sup, + html.theme--documenter-dark .subtitle sup { + font-size: 0.75em; } + html.theme--documenter-dark .title .tag, html.theme--documenter-dark .title .docstring > section > a.docs-sourcelink, html.theme--documenter-dark .title .content kbd, html.theme--documenter-dark .content .title kbd, + html.theme--documenter-dark .subtitle .tag, + html.theme--documenter-dark .subtitle .docstring > section > a.docs-sourcelink, + html.theme--documenter-dark .subtitle .content kbd, + html.theme--documenter-dark .content .subtitle kbd { + 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: 0.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: 0.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 .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark .textarea, html.theme--documenter-dark .select select { + background-color: #1f2424; + border-color: #5e6d6f; + border-radius: 0.4em; + color: #dbdee0; } + html.theme--documenter-dark .input::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder, html.theme--documenter-dark .textarea::-moz-placeholder, html.theme--documenter-dark .select select::-moz-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .input::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder, html.theme--documenter-dark .textarea::-webkit-input-placeholder, html.theme--documenter-dark .select select::-webkit-input-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .input:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder, html.theme--documenter-dark .textarea:-moz-placeholder, html.theme--documenter-dark .select select:-moz-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .input:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder, html.theme--documenter-dark .textarea:-ms-input-placeholder, html.theme--documenter-dark .select select:-ms-input-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .input:hover, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:hover, html.theme--documenter-dark .textarea:hover, html.theme--documenter-dark .select select:hover, html.theme--documenter-dark .is-hovered.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-hovered, html.theme--documenter-dark .is-hovered.textarea, html.theme--documenter-dark .select select.is-hovered { + border-color: #8c9b9d; } + html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .select select:focus, 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.textarea, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .select select:active, 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.textarea, html.theme--documenter-dark .select select.is-active { + border-color: #1abc9c; + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .select select[disabled], + fieldset[disabled] html.theme--documenter-dark .input, + fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, + fieldset[disabled] html.theme--documenter-dark .textarea, + fieldset[disabled] html.theme--documenter-dark .select select { + background-color: #8c9b9d; + border-color: #282f2f; + box-shadow: none; + color: white; } + html.theme--documenter-dark .input[disabled]::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, html.theme--documenter-dark .textarea[disabled]::-moz-placeholder, html.theme--documenter-dark .select select[disabled]::-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, + fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder, + fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .select select[disabled]::-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, + fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder, + fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .input[disabled]:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, html.theme--documenter-dark .textarea[disabled]:-moz-placeholder, html.theme--documenter-dark .select select[disabled]:-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, + fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder, + fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .input[disabled]:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder, html.theme--documenter-dark .select select[disabled]:-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, + fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder, + fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark .textarea { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; } + html.theme--documenter-dark .input[readonly], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[readonly], html.theme--documenter-dark .textarea[readonly] { + box-shadow: none; } + html.theme--documenter-dark .is-white.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white, html.theme--documenter-dark .is-white.textarea { + border-color: white; } + 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.textarea:focus, html.theme--documenter-dark .is-white.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white.is-focused, html.theme--documenter-dark .is-white.is-focused.textarea, 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.textarea:active, html.theme--documenter-dark .is-white.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white.is-active, html.theme--documenter-dark .is-white.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .is-black.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black, html.theme--documenter-dark .is-black.textarea { + border-color: #0a0a0a; } + 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.textarea:focus, html.theme--documenter-dark .is-black.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black.is-focused, html.theme--documenter-dark .is-black.is-focused.textarea, 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.textarea:active, html.theme--documenter-dark .is-black.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black.is-active, html.theme--documenter-dark .is-black.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .is-light.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light, html.theme--documenter-dark .is-light.textarea { + border-color: #ecf0f1; } + 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.textarea:focus, html.theme--documenter-dark .is-light.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light.is-focused, html.theme--documenter-dark .is-light.is-focused.textarea, 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.textarea:active, html.theme--documenter-dark .is-light.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light.is-active, html.theme--documenter-dark .is-light.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .is-dark.input, html.theme--documenter-dark .content kbd.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark, html.theme--documenter-dark .is-dark.textarea, html.theme--documenter-dark .content kbd.textarea { + border-color: #282f2f; } + html.theme--documenter-dark .is-dark.input:focus, html.theme--documenter-dark .content kbd.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark:focus, html.theme--documenter-dark .is-dark.textarea:focus, html.theme--documenter-dark .content kbd.textarea:focus, html.theme--documenter-dark .is-dark.is-focused.input, html.theme--documenter-dark .content kbd.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark.is-focused, html.theme--documenter-dark .is-dark.is-focused.textarea, html.theme--documenter-dark .content kbd.is-focused.textarea, html.theme--documenter-dark .is-dark.input:active, html.theme--documenter-dark .content kbd.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark:active, html.theme--documenter-dark .is-dark.textarea:active, html.theme--documenter-dark .content kbd.textarea:active, html.theme--documenter-dark .is-dark.is-active.input, html.theme--documenter-dark .content kbd.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark.is-active, html.theme--documenter-dark .is-dark.is-active.textarea, html.theme--documenter-dark .content kbd.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .is-primary.input, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary, html.theme--documenter-dark .is-primary.textarea, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink { + border-color: #375a7f; } + html.theme--documenter-dark .is-primary.input:focus, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary:focus, 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.is-focused.input, html.theme--documenter-dark .docstring > section > a.is-focused.input.docs-sourcelink, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary.is-focused, 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.input:active, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary:active, 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.is-active.input, html.theme--documenter-dark .docstring > section > a.is-active.input.docs-sourcelink, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary.is-active, html.theme--documenter-dark .is-primary.is-active.textarea, html.theme--documenter-dark .docstring > section > a.is-active.textarea.docs-sourcelink { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .is-link.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link, html.theme--documenter-dark .is-link.textarea { + border-color: #1abc9c; } + 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.textarea:focus, html.theme--documenter-dark .is-link.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link.is-focused, html.theme--documenter-dark .is-link.is-focused.textarea, 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.textarea:active, html.theme--documenter-dark .is-link.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link.is-active, html.theme--documenter-dark .is-link.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .is-info.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info, html.theme--documenter-dark .is-info.textarea { + border-color: #024c7d; } + 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.textarea:focus, html.theme--documenter-dark .is-info.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info.is-focused, html.theme--documenter-dark .is-info.is-focused.textarea, 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.textarea:active, html.theme--documenter-dark .is-info.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info.is-active, html.theme--documenter-dark .is-info.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .is-success.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success, html.theme--documenter-dark .is-success.textarea { + border-color: #008438; } + 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.textarea:focus, html.theme--documenter-dark .is-success.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success.is-focused, html.theme--documenter-dark .is-success.is-focused.textarea, 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.textarea:active, html.theme--documenter-dark .is-success.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success.is-active, html.theme--documenter-dark .is-success.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .is-warning.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning, html.theme--documenter-dark .is-warning.textarea { + border-color: #ad8100; } + 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.textarea:focus, html.theme--documenter-dark .is-warning.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning.is-focused, html.theme--documenter-dark .is-warning.is-focused.textarea, 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.textarea:active, html.theme--documenter-dark .is-warning.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning.is-active, html.theme--documenter-dark .is-warning.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .is-danger.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger, html.theme--documenter-dark .is-danger.textarea { + border-color: #9e1b0d; } + 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.textarea:focus, html.theme--documenter-dark .is-danger.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger.is-focused, html.theme--documenter-dark .is-danger.is-focused.textarea, 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.textarea:active, html.theme--documenter-dark .is-danger.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger.is-active, html.theme--documenter-dark .is-danger.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .is-small.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark .is-small.textarea { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .is-medium.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-medium, html.theme--documenter-dark .is-medium.textarea { + font-size: 1.25rem; } + html.theme--documenter-dark .is-large.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-large, html.theme--documenter-dark .is-large.textarea { + font-size: 1.5rem; } + html.theme--documenter-dark .is-fullwidth.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-fullwidth, html.theme--documenter-dark .is-fullwidth.textarea { + display: block; + width: 100%; } + html.theme--documenter-dark .is-inline.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-inline, html.theme--documenter-dark .is-inline.textarea { + 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 .checkbox, html.theme--documenter-dark .radio { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; } + html.theme--documenter-dark .checkbox input, html.theme--documenter-dark .radio input { + cursor: pointer; } + html.theme--documenter-dark .checkbox:hover, html.theme--documenter-dark .radio:hover { + color: #8c9b9d; } + html.theme--documenter-dark .checkbox[disabled], html.theme--documenter-dark .radio[disabled], + fieldset[disabled] html.theme--documenter-dark .checkbox, + fieldset[disabled] html.theme--documenter-dark .radio { + color: white; + 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: white; } + html.theme--documenter-dark .select.is-white select { + border-color: white; } + 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: black; } + 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: 0.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: white; } + 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.select.is-loading:after { + font-size: 0.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: white; + 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: white; } + 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: white; } + 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: white; } + html.theme--documenter-dark .file.is-black:active .file-cta, html.theme--documenter-dark .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; } + 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: #007733; + 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: 0.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: 0.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.file.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: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .file.is-boxed.has-name .file-name { + border-radius: 0 0 0.4em 0.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 0.4em 0.4em 0; } + html.theme--documenter-dark .file.is-right .file-name { + border-radius: 0.4em 0 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: 0.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: 0.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: 0.85em; + margin-top: 0.25rem; } + html.theme--documenter-dark .help.is-white { + color: white; } + 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:not([disabled]).is-hovered, + 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:not([disabled]).is-hovered, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-hovered, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-hovered, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]).is-hovered { + z-index: 2; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]).is-focused, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]).is-active, + 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:not([disabled]).is-focused, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-focused, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-focused, + 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:not([disabled]).is-active, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-active, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-active, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]).is-focused, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]).is-active { + 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:not([disabled]).is-focused:hover, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]).is-active: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:not([disabled]).is-focused:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-focused:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-focused: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:not([disabled]).is-active:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-active:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-active: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:not([disabled]).is-focused: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:not([disabled]).is-active: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: 0.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-left #documenter .docs-sidebar form.docs-search > input.select ~ .icon, + html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.select ~ .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, + html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.select ~ .icon, + html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.select ~ .icon { + font-size: 0.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.control.is-loading:after { + font-size: 0.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 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: 0.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: white; + 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: transparent; + 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: 0.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: 0.75rem; } + html.theme--documenter-dark .card-image { + display: block; + position: relative; } + html.theme--documenter-dark .card-content { + background-color: transparent; + padding: 1rem 1.25rem; } + html.theme--documenter-dark .card-footer { + background-color: transparent; + 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: 0.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: 0.4em; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + padding-bottom: 0.5rem; + padding-top: 0.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: 0.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: 0.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: 0.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: 0.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: white; + border-radius: 0.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: 0.4em; + border-top-right-radius: 0.4em; } + html.theme--documenter-dark .list-item:last-child { + border-bottom-left-radius: 0.4em; + border-bottom-right-radius: 0.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: 0.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: 0.75em; + padding-left: 0.75em; } + html.theme--documenter-dark .menu-label { + color: white; + font-size: 0.75em; + letter-spacing: 0.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: 0.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: 0.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: white; } + html.theme--documenter-dark .message.is-white .message-header { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .message.is-white .message-body { + border-color: white; + 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: white; } + 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: 0.4em 0.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; + 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: 0.4em; + border-style: solid; + border-width: 0 0 0 4px; + color: #fff; + padding: 1em 1.25em; } + html.theme--documenter-dark .message-body code, + html.theme--documenter-dark .message-body pre { + background-color: white; } + html.theme--documenter-dark .message-body pre code { + background-color: transparent; } + 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: white; + 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: white; + 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: white; + color: #0a0a0a; } } + html.theme--documenter-dark .navbar.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link { + color: white; } + 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: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-burger { + color: white; } + @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: white; } + 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: black; + color: white; } + 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: white; } + 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: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; } } + 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: transparent; + 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: transparent; + border-bottom-color: #1abc9c; } + html.theme--documenter-dark .navbar-item.is-tab.is-active { + background-color: transparent; + 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: 0.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: transparent; + color: #dbdee0; } + html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: transparent; + 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: transparent; + color: #dbdee0; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active { + background-color: transparent; + 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: transparent; } + 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: transparent; } } + html.theme--documenter-dark .hero.is-fullheight-with-navbar { + min-height: calc(100vh - 4rem); } + html.theme--documenter-dark .pagination { + font-size: 15px; + margin: -0.25rem; } + html.theme--documenter-dark .pagination.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination { + font-size: 0.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: 0.25rem; + padding-left: 0.5em; + padding-right: 0.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: 0.4em 0.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: 0.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: white; + 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: 0.4em 0.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: white; + border-color: #5e6d6f; + border-bottom-color: transparent !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: 0.4em 0 0 0.4em; } + html.theme--documenter-dark .tabs.is-toggle li:last-child a { + border-radius: 0 0.4em 0.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: 0.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: 0.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.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-1 { + margin-left: 8.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-2 { + flex: none; + width: 16.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-2 { + margin-left: 16.66667%; } + .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.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-4 { + margin-left: 33.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-5 { + flex: none; + width: 41.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-5 { + margin-left: 41.66667%; } + .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.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-7 { + margin-left: 58.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-8 { + flex: none; + width: 66.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-8 { + margin-left: 66.66667%; } + .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.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-10 { + margin-left: 83.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-11 { + flex: none; + width: 91.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-11 { + margin-left: 91.66667%; } + .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.33333%; } + html.theme--documenter-dark .column.is-offset-1-mobile { + margin-left: 8.33333%; } + html.theme--documenter-dark .column.is-2-mobile { + flex: none; + width: 16.66667%; } + html.theme--documenter-dark .column.is-offset-2-mobile { + margin-left: 16.66667%; } + 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.33333%; } + html.theme--documenter-dark .column.is-offset-4-mobile { + margin-left: 33.33333%; } + html.theme--documenter-dark .column.is-5-mobile { + flex: none; + width: 41.66667%; } + html.theme--documenter-dark .column.is-offset-5-mobile { + margin-left: 41.66667%; } + 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.33333%; } + html.theme--documenter-dark .column.is-offset-7-mobile { + margin-left: 58.33333%; } + html.theme--documenter-dark .column.is-8-mobile { + flex: none; + width: 66.66667%; } + html.theme--documenter-dark .column.is-offset-8-mobile { + margin-left: 66.66667%; } + 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.33333%; } + html.theme--documenter-dark .column.is-offset-10-mobile { + margin-left: 83.33333%; } + html.theme--documenter-dark .column.is-11-mobile { + flex: none; + width: 91.66667%; } + html.theme--documenter-dark .column.is-offset-11-mobile { + margin-left: 91.66667%; } + 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.33333%; } + html.theme--documenter-dark .column.is-offset-1, html.theme--documenter-dark .column.is-offset-1-tablet { + margin-left: 8.33333%; } + html.theme--documenter-dark .column.is-2, html.theme--documenter-dark .column.is-2-tablet { + flex: none; + width: 16.66667%; } + html.theme--documenter-dark .column.is-offset-2, html.theme--documenter-dark .column.is-offset-2-tablet { + margin-left: 16.66667%; } + 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.33333%; } + html.theme--documenter-dark .column.is-offset-4, html.theme--documenter-dark .column.is-offset-4-tablet { + margin-left: 33.33333%; } + html.theme--documenter-dark .column.is-5, html.theme--documenter-dark .column.is-5-tablet { + flex: none; + width: 41.66667%; } + html.theme--documenter-dark .column.is-offset-5, html.theme--documenter-dark .column.is-offset-5-tablet { + margin-left: 41.66667%; } + 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.33333%; } + html.theme--documenter-dark .column.is-offset-7, html.theme--documenter-dark .column.is-offset-7-tablet { + margin-left: 58.33333%; } + html.theme--documenter-dark .column.is-8, html.theme--documenter-dark .column.is-8-tablet { + flex: none; + width: 66.66667%; } + html.theme--documenter-dark .column.is-offset-8, html.theme--documenter-dark .column.is-offset-8-tablet { + margin-left: 66.66667%; } + 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.33333%; } + html.theme--documenter-dark .column.is-offset-10, html.theme--documenter-dark .column.is-offset-10-tablet { + margin-left: 83.33333%; } + html.theme--documenter-dark .column.is-11, html.theme--documenter-dark .column.is-11-tablet { + flex: none; + width: 91.66667%; } + html.theme--documenter-dark .column.is-offset-11, html.theme--documenter-dark .column.is-offset-11-tablet { + margin-left: 91.66667%; } + 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.33333%; } + html.theme--documenter-dark .column.is-offset-1-touch { + margin-left: 8.33333%; } + html.theme--documenter-dark .column.is-2-touch { + flex: none; + width: 16.66667%; } + html.theme--documenter-dark .column.is-offset-2-touch { + margin-left: 16.66667%; } + 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.33333%; } + html.theme--documenter-dark .column.is-offset-4-touch { + margin-left: 33.33333%; } + html.theme--documenter-dark .column.is-5-touch { + flex: none; + width: 41.66667%; } + html.theme--documenter-dark .column.is-offset-5-touch { + margin-left: 41.66667%; } + 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.33333%; } + html.theme--documenter-dark .column.is-offset-7-touch { + margin-left: 58.33333%; } + html.theme--documenter-dark .column.is-8-touch { + flex: none; + width: 66.66667%; } + html.theme--documenter-dark .column.is-offset-8-touch { + margin-left: 66.66667%; } + 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.33333%; } + html.theme--documenter-dark .column.is-offset-10-touch { + margin-left: 83.33333%; } + html.theme--documenter-dark .column.is-11-touch { + flex: none; + width: 91.66667%; } + html.theme--documenter-dark .column.is-offset-11-touch { + margin-left: 91.66667%; } + 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.33333%; } + html.theme--documenter-dark .column.is-offset-1-desktop { + margin-left: 8.33333%; } + html.theme--documenter-dark .column.is-2-desktop { + flex: none; + width: 16.66667%; } + html.theme--documenter-dark .column.is-offset-2-desktop { + margin-left: 16.66667%; } + 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.33333%; } + html.theme--documenter-dark .column.is-offset-4-desktop { + margin-left: 33.33333%; } + html.theme--documenter-dark .column.is-5-desktop { + flex: none; + width: 41.66667%; } + html.theme--documenter-dark .column.is-offset-5-desktop { + margin-left: 41.66667%; } + 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.33333%; } + html.theme--documenter-dark .column.is-offset-7-desktop { + margin-left: 58.33333%; } + html.theme--documenter-dark .column.is-8-desktop { + flex: none; + width: 66.66667%; } + html.theme--documenter-dark .column.is-offset-8-desktop { + margin-left: 66.66667%; } + 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.33333%; } + html.theme--documenter-dark .column.is-offset-10-desktop { + margin-left: 83.33333%; } + html.theme--documenter-dark .column.is-11-desktop { + flex: none; + width: 91.66667%; } + html.theme--documenter-dark .column.is-offset-11-desktop { + margin-left: 91.66667%; } + 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.33333%; } + html.theme--documenter-dark .column.is-offset-1-widescreen { + margin-left: 8.33333%; } + html.theme--documenter-dark .column.is-2-widescreen { + flex: none; + width: 16.66667%; } + html.theme--documenter-dark .column.is-offset-2-widescreen { + margin-left: 16.66667%; } + 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.33333%; } + html.theme--documenter-dark .column.is-offset-4-widescreen { + margin-left: 33.33333%; } + html.theme--documenter-dark .column.is-5-widescreen { + flex: none; + width: 41.66667%; } + html.theme--documenter-dark .column.is-offset-5-widescreen { + margin-left: 41.66667%; } + 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.33333%; } + html.theme--documenter-dark .column.is-offset-7-widescreen { + margin-left: 58.33333%; } + html.theme--documenter-dark .column.is-8-widescreen { + flex: none; + width: 66.66667%; } + html.theme--documenter-dark .column.is-offset-8-widescreen { + margin-left: 66.66667%; } + 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.33333%; } + html.theme--documenter-dark .column.is-offset-10-widescreen { + margin-left: 83.33333%; } + html.theme--documenter-dark .column.is-11-widescreen { + flex: none; + width: 91.66667%; } + html.theme--documenter-dark .column.is-offset-11-widescreen { + margin-left: 91.66667%; } + 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.33333%; } + html.theme--documenter-dark .column.is-offset-1-fullhd { + margin-left: 8.33333%; } + html.theme--documenter-dark .column.is-2-fullhd { + flex: none; + width: 16.66667%; } + html.theme--documenter-dark .column.is-offset-2-fullhd { + margin-left: 16.66667%; } + 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.33333%; } + html.theme--documenter-dark .column.is-offset-4-fullhd { + margin-left: 33.33333%; } + html.theme--documenter-dark .column.is-5-fullhd { + flex: none; + width: 41.66667%; } + html.theme--documenter-dark .column.is-offset-5-fullhd { + margin-left: 41.66667%; } + 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.33333%; } + html.theme--documenter-dark .column.is-offset-7-fullhd { + margin-left: 58.33333%; } + html.theme--documenter-dark .column.is-8-fullhd { + flex: none; + width: 66.66667%; } + html.theme--documenter-dark .column.is-offset-8-fullhd { + margin-left: 66.66667%; } + 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.33333%; } + html.theme--documenter-dark .column.is-offset-10-fullhd { + margin-left: 83.33333%; } + html.theme--documenter-dark .column.is-11-fullhd { + flex: none; + width: 91.66667%; } + html.theme--documenter-dark .column.is-offset-11-fullhd { + margin-left: 91.66667%; } + 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: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + html.theme--documenter-dark .columns:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.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: 0.25rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; } } + html.theme--documenter-dark .columns.is-variable.is-2 { + --columnGap: 0.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; } } + html.theme--documenter-dark .columns.is-variable.is-3 { + --columnGap: 0.75rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-3-fullhd { + --columnGap: 0.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: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + html.theme--documenter-dark .tile.is-ancestor:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .tile.is-child { + margin: 0 !important; } + html.theme--documenter-dark .tile.is-parent { + padding: 0.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.33333%; } + html.theme--documenter-dark .tile.is-2 { + flex: none; + width: 16.66667%; } + html.theme--documenter-dark .tile.is-3 { + flex: none; + width: 25%; } + html.theme--documenter-dark .tile.is-4 { + flex: none; + width: 33.33333%; } + html.theme--documenter-dark .tile.is-5 { + flex: none; + width: 41.66667%; } + html.theme--documenter-dark .tile.is-6 { + flex: none; + width: 50%; } + html.theme--documenter-dark .tile.is-7 { + flex: none; + width: 58.33333%; } + html.theme--documenter-dark .tile.is-8 { + flex: none; + width: 66.66667%; } + html.theme--documenter-dark .tile.is-9 { + flex: none; + width: 75%; } + html.theme--documenter-dark .tile.is-10 { + flex: none; + width: 83.33333%; } + html.theme--documenter-dark .tile.is-11 { + flex: none; + width: 91.66667%; } + 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: white; + 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: white; } } + 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: white; } + html.theme--documenter-dark .hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e6e6e6 0%, white 71%, white 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-white.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #e6e6e6 0%, white 71%, white 100%); } } + html.theme--documenter-dark .hero.is-black { + background-color: #0a0a0a; + color: white; } + 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: white; } + 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: white; } + @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: black; + color: white; } + html.theme--documenter-dark .hero.is-black .tabs a { + color: white; + 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: white; } + 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: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 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, black 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 .content kbd.hero .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, html.theme--documenter-dark .content kbd.hero .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 .docstring > section > a.hero.docs-sourcelink .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, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .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: white; } + 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: white; } + 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: white; + 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: white; } + 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: 0.4em; } + html.theme--documenter-dark .card .card-image img { + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .card .card-header { + box-shadow: none; + background-color: rgba(18, 18, 18, 0.2); + border-radius: 0.4em 0.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: white; + 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 .docstring > section > a.docs-sourcelink, html.theme--documenter-dark .content kbd { + border-radius: 0.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: white; } + html.theme--documenter-dark .message-body { + border-width: 1px; + border-color: #343c3d; } + html.theme--documenter-dark .navbar { + border-radius: 0.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 0.4em 0.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: transparent; } + html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + 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: transparent; } + 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: transparent; } + html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + 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 .admonition { + background-color: #282f2f; + border-style: solid; + border-width: 1px; + border-color: #5e6d6f; + border-radius: 0.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: 0.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; } + 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; } + 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; } + 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; } + 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; } + 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; } + html.theme--documenter-dark .admonition-header { + background-color: #5e6d6f; + align-items: center; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em; + position: relative; } + html.theme--documenter-dark .admonition-header:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.75em; + content: "\f06a"; } + html.theme--documenter-dark .admonition-body { + color: #fff; + padding: 1em 1.25em; } + 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: transparent; + 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.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: 1rem 1.25rem; + 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: 0.625rem; + bottom: 0.5rem; } + html.theme--documenter-dark .docstring:hover > section > a.docs-sourcelink { + opacity: 0.2; } + html.theme--documenter-dark .docstring > section:hover a.docs-sourcelink { + opacity: 1; } + 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 .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; + padding: initial !important; } + html.theme--documenter-dark .katex .katex-mathml { + top: 0; + right: 0; } + html.theme--documenter-dark html { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; } + html.theme--documenter-dark #documenter .docs-main > article { + overflow-wrap: break-word; } + @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; + /* For Headroom.js */ + transition-property: top, box-shadow; + -webkit-transition-property: top, box-shadow; + /* Safari */ + transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; + /* Safari */ } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top { + box-shadow: 0.2rem 0rem 0.4rem #171717; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } + 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; + /* Safari */ } } + 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; + 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-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; + /* Setting up a nicer theme style for the scrollbar */ } + html.theme--documenter-dark #documenter .docs-sidebar.visible { + left: 0; + box-shadow: 0.4rem 0rem 0.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-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; + /* Managing collapsible submenus */ } + 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 .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-builtin-name, + 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 { + display: block; + overflow-x: auto; + background: #2b2b2b; + color: #f8f8f2; + padding: 0.5em; } + 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-builtin-name, + 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/PR1495/assets/themes/documenter-light.css b/previews/PR1495/assets/themes/documenter-light.css new file mode 100644 index 000000000..bfb4e9dbf --- /dev/null +++ b/previews/PR1495/assets/themes/documenter-light.css @@ -0,0 +1,7614 @@ +@charset "UTF-8"; +/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ +@keyframes spinAround { + from { + transform: rotate(0deg); } + to { + transform: rotate(359deg); } } + +.delete, .modal-close, .is-unselectable, .button, .file, .breadcrumb, .pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis, .tabs { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +.select:not(.is-multiple):not(.is-loading)::after, .navbar-link:not(.is-arrowless)::after { + border: 3px solid transparent; + 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; } + +.box:not(:last-child), .content:not(:last-child), .notification:not(:last-child), .progress:not(:last-child), .table:not(:last-child), .table-container:not(:last-child), .title:not(:last-child), +.subtitle:not(:last-child), .block:not(:last-child), .highlight:not(:last-child), .breadcrumb:not(:last-child), .level:not(:last-child), .list:not(:last-child), .message:not(:last-child), .tabs:not(:last-child), .admonition:not(:last-child) { + margin-bottom: 1.5rem; } + +.delete, .modal-close { + -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; } + .delete::before, .modal-close::before, .delete::after, .modal-close::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + .delete::before, .modal-close::before { + height: 2px; + width: 50%; } + .delete::after, .modal-close::after { + height: 50%; + width: 2px; } + .delete:hover, .modal-close:hover, .delete:focus, .modal-close:focus { + background-color: rgba(10, 10, 10, 0.3); } + .delete:active, .modal-close:active { + background-color: rgba(10, 10, 10, 0.4); } + .is-small.delete, #documenter .docs-sidebar form.docs-search > input.delete, .is-small.modal-close, #documenter .docs-sidebar form.docs-search > input.modal-close { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; } + .is-medium.delete, .is-medium.modal-close { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; } + .is-large.delete, .is-large.modal-close { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; } + +.button.is-loading::after, .loader, .select.is-loading::after, .control.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; } + +.is-overlay, .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, .modal, .modal-background, .hero-video { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; } + +.button, .input, #documenter .docs-sidebar form.docs-search > input, .textarea, .select select, .file-cta, +.file-name, .pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis { + -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; } + .button:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .textarea:focus, .select select:focus, .file-cta:focus, + .file-name:focus, .pagination-previous:focus, + .pagination-next:focus, + .pagination-link:focus, + .pagination-ellipsis:focus, .is-focused.button, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-focused.textarea, .select select.is-focused, .is-focused.file-cta, + .is-focused.file-name, .is-focused.pagination-previous, + .is-focused.pagination-next, + .is-focused.pagination-link, + .is-focused.pagination-ellipsis, .button:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .textarea:active, .select select:active, .file-cta:active, + .file-name:active, .pagination-previous:active, + .pagination-next:active, + .pagination-link:active, + .pagination-ellipsis:active, .is-active.button, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .is-active.textarea, .select select.is-active, .is-active.file-cta, + .is-active.file-name, .is-active.pagination-previous, + .is-active.pagination-next, + .is-active.pagination-link, + .is-active.pagination-ellipsis { + outline: none; } + .button[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], .textarea[disabled], .select select[disabled], .file-cta[disabled], + .file-name[disabled], .pagination-previous[disabled], + .pagination-next[disabled], + .pagination-link[disabled], + .pagination-ellipsis[disabled], + fieldset[disabled] .button, + fieldset[disabled] .input, + fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, + fieldset[disabled] .textarea, + fieldset[disabled] .select select, + .select fieldset[disabled] select, + fieldset[disabled] .file-cta, + fieldset[disabled] .file-name, + fieldset[disabled] .pagination-previous, + fieldset[disabled] .pagination-next, + fieldset[disabled] .pagination-link, + fieldset[disabled] .pagination-ellipsis { + 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: white; + 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", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; } + +code, +pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: "Roboto Mono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; } + +body { + color: #222222; + 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: #000000; + font-size: 0.875em; + font-weight: normal; + padding: 0.1em; } + +hr { + background-color: whitesmoke; + 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: 0.875em; } + +span { + font-style: inherit; + font-weight: inherit; } + +strong { + color: #222222; + font-weight: 700; } + +fieldset { + border: none; } + +pre { + -webkit-overflow-scrolling: touch; + background-color: whitesmoke; + color: #222222; + font-size: 0.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: #222222; } + +.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: 0.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: 0.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: 0.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: 0.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: 0.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: 0.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: 0.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: white !important; } + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; } + +.has-background-white { + background-color: white !important; } + +.has-text-black { + color: #0a0a0a !important; } + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; } + +.has-background-black { + background-color: #0a0a0a !important; } + +.has-text-light { + color: whitesmoke !important; } + +a.has-text-light:hover, a.has-text-light:focus { + color: #dbdbdb !important; } + +.has-background-light { + background-color: whitesmoke !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: #0f81cc !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: #7a7a7a !important; } + +.has-background-grey { + background-color: #7a7a7a !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: whitesmoke !important; } + +.has-background-white-ter { + background-color: whitesmoke !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", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-secondary { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-sans-serif { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-monospace { + font-family: "Roboto Mono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-family-code { + font-family: "Roboto Mono", "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: white; + 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: #222222; + 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: white; + border-color: #dbdbdb; + border-width: 1px; + color: #363636; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.375em - 1px); + padding-left: 0.75em; + padding-right: 0.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: #2e63b8; + 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: #222222; + text-decoration: underline; } + .button.is-text:hover, .button.is-text.is-hovered, .button.is-text:focus, .button.is-text.is-focused { + background-color: whitesmoke; + color: #222222; } + .button.is-text:active, .button.is-text.is-active { + background-color: #e8e8e8; + color: #222222; } + .button.is-text[disabled], + fieldset[disabled] .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; } + .button.is-white { + background-color: white; + 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: white; + border-color: transparent; + box-shadow: none; } + .button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; } + .button.is-white.is-inverted:hover, .button.is-white.is-inverted.is-hovered { + background-color: black; } + .button.is-white.is-inverted[disabled], + fieldset[disabled] .button.is-white.is-inverted { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; + color: white; } + .button.is-white.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + .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: white; + border-color: white; + color: #0a0a0a; } + .button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !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: white; + box-shadow: none; + color: white; } + .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: white; } + .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 white white !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: white; } + .button.is-black:hover, .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; } + .button.is-black:focus, .button.is-black.is-focused { + border-color: transparent; + color: white; } + .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: black; + border-color: transparent; + color: white; } + .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: white; + 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: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; } + .button.is-black.is-loading::after { + border-color: transparent transparent white white !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: white; } + .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 white white !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: white; + color: white; } + .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: white; + 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: white; + box-shadow: none; + color: white; } + .button.is-light { + background-color: whitesmoke; + border-color: transparent; + color: #363636; } + .button.is-light:hover, .button.is-light.is-hovered { + background-color: #eeeeee; + 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: whitesmoke; + border-color: transparent; + box-shadow: none; } + .button.is-light.is-inverted { + background-color: #363636; + color: whitesmoke; } + .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: whitesmoke; } + .button.is-light.is-loading::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + color: whitesmoke; } + .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: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !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: whitesmoke; + box-shadow: none; + color: whitesmoke; } + .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: whitesmoke; } + .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 whitesmoke whitesmoke !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: whitesmoke; } + .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: whitesmoke; } + .button.is-dark:focus, .content kbd.button:focus, .button.is-dark.is-focused, .content kbd.button.is-focused { + border-color: transparent; + color: whitesmoke; } + .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: whitesmoke; } + .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: whitesmoke; + 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: whitesmoke; + border-color: transparent; + box-shadow: none; + color: #363636; } + .button.is-dark.is-loading::after, .content kbd.button.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !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: whitesmoke; } + .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 whitesmoke whitesmoke !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: whitesmoke; + color: whitesmoke; } + .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: whitesmoke; + 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: whitesmoke; + box-shadow: none; + color: whitesmoke; } + .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: #1496ed; + 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: #118fe4; + 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: #ffdb4a; + 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: #ffd83d; + 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: 0.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: white; + border-color: #dbdbdb; + box-shadow: none; + opacity: 0.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: whitesmoke; + border-color: #dbdbdb; + color: #7a7a7a; + 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: 0.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: #222222; + 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: whitesmoke; + 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:not([type]).is-lower-alpha { + list-style-type: lower-alpha; } + .content ol:not([type]).is-lower-roman { + list-style-type: lower-roman; } + .content ol:not([type]).is-upper-alpha { + list-style-type: upper-alpha; } + .content ol:not([type]).is-upper-roman { + 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.7rem 0.5rem; + 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: #222222; } + .content table th:not([align]) { + text-align: left; } + .content table thead td, + .content table thead th { + border-width: 0 0 2px; + color: #222222; } + .content table tfoot td, + .content table tfoot th { + border-width: 2px 0 0; + color: #222222; } + .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: 0.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: whitesmoke; + 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: white; } + .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: white; + color: #0a0a0a; } + .notification.is-black { + background-color: #0a0a0a; + color: white; } + .notification.is-light { + background-color: whitesmoke; + color: #363636; } + .notification.is-dark, .content kbd.notification { + background-color: #363636; + color: whitesmoke; } + .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: #222222; } + .progress::-moz-progress-bar { + background-color: #222222; } + .progress::-ms-fill { + background-color: #222222; + border: none; } + .progress.is-white::-webkit-progress-value { + background-color: white; } + .progress.is-white::-moz-progress-bar { + background-color: white; } + .progress.is-white::-ms-fill { + background-color: white; } + .progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 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: whitesmoke; } + .progress.is-light::-moz-progress-bar { + background-color: whitesmoke; } + .progress.is-light::-ms-fill { + background-color: whitesmoke; } + .progress.is-light:indeterminate { + background-image: linear-gradient(to right, whitesmoke 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, #222222 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: 0.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: white; + 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: white; + border-color: white; + color: #0a0a0a; } + .table td.is-black, + .table th.is-black { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .table td.is-light, + .table th.is-light { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .table td.is-dark, + .table th.is-dark { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .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: #222222; } + .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: transparent; } + .table thead td, + .table thead th { + border-width: 0 0 2px; + color: #222222; } + .table tfoot { + background-color: transparent; } + .table tfoot td, + .table tfoot th { + border-width: 2px 0 0; + color: #222222; } + .table tbody { + background-color: transparent; } + .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: whitesmoke; } + .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 .docstring > section > a.docs-sourcelink, .tags .content kbd, .content .tags kbd { + margin-bottom: 0.5rem; } + .tags .tag:not(:last-child), .tags .docstring > section > a.docs-sourcelink:not(:last-child), .tags .content kbd:not(:last-child), .content .tags kbd: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 .docstring > section > a.docs-sourcelink: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) { + font-size: 1rem; } + .tags.are-large .tag:not(.is-normal):not(.is-medium), .tags.are-large .docstring > section > a.docs-sourcelink: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) { + font-size: 1.25rem; } + .tags.is-centered { + justify-content: center; } + .tags.is-centered .tag, .tags.is-centered .docstring > section > a.docs-sourcelink, .tags.is-centered .content kbd, .content .tags.is-centered kbd { + 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 .docstring > section > a.docs-sourcelink:not(:first-child), .tags.is-right .content kbd:not(:first-child), .content .tags.is-right kbd:not(:first-child) { + margin-left: 0.5rem; } + .tags.is-right .tag:not(:last-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child), .tags.is-right .content kbd:not(:last-child), .content .tags.is-right kbd:not(:last-child) { + margin-right: 0; } + .tags.has-addons .tag, .tags.has-addons .docstring > section > a.docs-sourcelink, .tags.has-addons .content kbd, .content .tags.has-addons kbd { + margin-right: 0; } + .tags.has-addons .tag:not(:first-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child), .tags.has-addons .content kbd:not(:first-child), .content .tags.has-addons kbd: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 .docstring > section > a.docs-sourcelink:not(:last-child), .tags.has-addons .content kbd:not(:last-child), .content .tags.has-addons kbd:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + +.tag:not(body), .docstring > section > a.docs-sourcelink:not(body), .content kbd:not(body) { + align-items: center; + background-color: whitesmoke; + border-radius: 4px; + color: #222222; + display: inline-flex; + font-size: 0.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, .docstring > section > a.docs-sourcelink:not(body) .delete, .content kbd:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; } + .tag:not(body).is-white, .docstring > section > a.docs-sourcelink:not(body).is-white, .content kbd:not(body).is-white { + background-color: white; + color: #0a0a0a; } + .tag:not(body).is-black, .docstring > section > a.docs-sourcelink:not(body).is-black, .content kbd:not(body).is-black { + background-color: #0a0a0a; + color: white; } + .tag:not(body).is-light, .docstring > section > a.docs-sourcelink:not(body).is-light, .content kbd:not(body).is-light { + background-color: whitesmoke; + color: #363636; } + .tag:not(body).is-dark, .docstring > section > a.docs-sourcelink:not(body).is-dark, .content kbd:not(body) { + background-color: #363636; + color: whitesmoke; } + .tag:not(body).is-primary, .docstring > section > a.docs-sourcelink:not(body), .content kbd:not(body).is-primary { + background-color: #4eb5de; + color: #fff; } + .tag:not(body).is-link, .docstring > section > a.docs-sourcelink:not(body).is-link, .content kbd:not(body).is-link { + background-color: #2e63b8; + color: #fff; } + .tag:not(body).is-info, .docstring > section > a.docs-sourcelink:not(body).is-info, .content kbd:not(body).is-info { + background-color: #209cee; + color: #fff; } + .tag:not(body).is-success, .docstring > section > a.docs-sourcelink:not(body).is-success, .content kbd:not(body).is-success { + background-color: #22c35b; + color: #fff; } + .tag:not(body).is-warning, .docstring > section > a.docs-sourcelink:not(body).is-warning, .content kbd:not(body).is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .tag:not(body).is-danger, .docstring > section > a.docs-sourcelink:not(body).is-danger, .content kbd:not(body).is-danger { + background-color: #da0b00; + color: #fff; } + .tag:not(body).is-normal, .docstring > section > a.docs-sourcelink:not(body).is-normal, .content kbd:not(body).is-normal { + font-size: 0.75rem; } + .tag:not(body).is-medium, .docstring > section > a.docs-sourcelink:not(body).is-medium, .content kbd:not(body).is-medium { + font-size: 1rem; } + .tag:not(body).is-large, .docstring > section > a.docs-sourcelink:not(body).is-large, .content kbd:not(body).is-large { + font-size: 1.25rem; } + .tag:not(body) .icon:first-child:not(:last-child), .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child), .content kbd: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), .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child), .content kbd:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; } + .tag:not(body) .icon:first-child:last-child, .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child, .content kbd:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; } + .tag:not(body).is-delete, .docstring > section > a.docs-sourcelink:not(body).is-delete, .content kbd:not(body).is-delete { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; } + .tag:not(body).is-delete::before, .docstring > section > a.docs-sourcelink:not(body).is-delete::before, .content kbd:not(body).is-delete::before, .tag:not(body).is-delete::after, .docstring > section > a.docs-sourcelink:not(body).is-delete::after, .content kbd:not(body).is-delete::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:not(body).is-delete::before, .docstring > section > a.docs-sourcelink:not(body).is-delete::before, .content kbd:not(body).is-delete::before { + height: 1px; + width: 50%; } + .tag:not(body).is-delete::after, .docstring > section > a.docs-sourcelink:not(body).is-delete::after, .content kbd:not(body).is-delete::after { + height: 50%; + width: 1px; } + .tag:not(body).is-delete:hover, .docstring > section > a.docs-sourcelink:not(body).is-delete:hover, .content kbd:not(body).is-delete:hover, .tag:not(body).is-delete:focus, .docstring > section > a.docs-sourcelink:not(body).is-delete:focus, .content kbd:not(body).is-delete:focus { + background-color: #e8e8e8; } + .tag:not(body).is-delete:active, .docstring > section > a.docs-sourcelink:not(body).is-delete:active, .content kbd:not(body).is-delete:active { + background-color: #dbdbdb; } + .tag:not(body).is-rounded, .docstring > section > a.docs-sourcelink:not(body).is-rounded, .content kbd:not(body).is-rounded, #documenter .docs-sidebar form.docs-search > input.tag: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: 0.75em; } + .title sup, + .subtitle sup { + font-size: 0.75em; } + .title .tag, .title .docstring > section > a.docs-sourcelink, .title .content kbd, .content .title kbd, + .subtitle .tag, + .subtitle .docstring > section > a.docs-sourcelink, + .subtitle .content kbd, + .content .subtitle kbd { + 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: 0.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: 0.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: whitesmoke; + 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; } + +.input, #documenter .docs-sidebar form.docs-search > input, .textarea, .select select { + background-color: white; + border-color: #dbdbdb; + border-radius: 4px; + color: #363636; } + .input::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input::-moz-placeholder, .textarea::-moz-placeholder, .select select::-moz-placeholder { + color: rgba(54, 54, 54, 0.3); } + .input::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder, .textarea::-webkit-input-placeholder, .select select::-webkit-input-placeholder { + color: rgba(54, 54, 54, 0.3); } + .input:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input:-moz-placeholder, .textarea:-moz-placeholder, .select select:-moz-placeholder { + color: rgba(54, 54, 54, 0.3); } + .input:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder, .textarea:-ms-input-placeholder, .select select:-ms-input-placeholder { + color: rgba(54, 54, 54, 0.3); } + .input:hover, #documenter .docs-sidebar form.docs-search > input:hover, .textarea:hover, .select select:hover, .is-hovered.input, #documenter .docs-sidebar form.docs-search > input.is-hovered, .is-hovered.textarea, .select select.is-hovered { + border-color: #b5b5b5; } + .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .textarea:focus, .select select:focus, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-focused.textarea, .select select.is-focused, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .textarea:active, .select select:active, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .is-active.textarea, .select select.is-active { + border-color: #2e63b8; + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], .textarea[disabled], .select select[disabled], + fieldset[disabled] .input, + fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, + fieldset[disabled] .textarea, + fieldset[disabled] .select select, + .select fieldset[disabled] select { + background-color: whitesmoke; + border-color: whitesmoke; + box-shadow: none; + color: #7a7a7a; } + .input[disabled]::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, .textarea[disabled]::-moz-placeholder, .select select[disabled]::-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, + fieldset[disabled] .textarea::-moz-placeholder, + fieldset[disabled] .select select::-moz-placeholder, + .select fieldset[disabled] select::-moz-placeholder { + color: rgba(122, 122, 122, 0.3); } + .input[disabled]::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, .textarea[disabled]::-webkit-input-placeholder, .select select[disabled]::-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, + fieldset[disabled] .textarea::-webkit-input-placeholder, + fieldset[disabled] .select select::-webkit-input-placeholder, + .select fieldset[disabled] select::-webkit-input-placeholder { + color: rgba(122, 122, 122, 0.3); } + .input[disabled]:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, .textarea[disabled]:-moz-placeholder, .select select[disabled]:-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, + fieldset[disabled] .textarea:-moz-placeholder, + fieldset[disabled] .select select:-moz-placeholder, + .select fieldset[disabled] select:-moz-placeholder { + color: rgba(122, 122, 122, 0.3); } + .input[disabled]:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, .textarea[disabled]:-ms-input-placeholder, .select select[disabled]:-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, + fieldset[disabled] .textarea:-ms-input-placeholder, + fieldset[disabled] .select select:-ms-input-placeholder, + .select fieldset[disabled] select:-ms-input-placeholder { + color: rgba(122, 122, 122, 0.3); } + +.input, #documenter .docs-sidebar form.docs-search > input, .textarea { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; } + .input[readonly], #documenter .docs-sidebar form.docs-search > input[readonly], .textarea[readonly] { + box-shadow: none; } + .is-white.input, #documenter .docs-sidebar form.docs-search > input.is-white, .is-white.textarea { + border-color: white; } + .is-white.input:focus, #documenter .docs-sidebar form.docs-search > input.is-white:focus, .is-white.textarea:focus, .is-white.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-white.is-focused, .is-white.is-focused.textarea, .is-white.input:active, #documenter .docs-sidebar form.docs-search > input.is-white:active, .is-white.textarea:active, .is-white.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-white.is-active, .is-white.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .is-black.input, #documenter .docs-sidebar form.docs-search > input.is-black, .is-black.textarea { + border-color: #0a0a0a; } + .is-black.input:focus, #documenter .docs-sidebar form.docs-search > input.is-black:focus, .is-black.textarea:focus, .is-black.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-black.is-focused, .is-black.is-focused.textarea, .is-black.input:active, #documenter .docs-sidebar form.docs-search > input.is-black:active, .is-black.textarea:active, .is-black.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-black.is-active, .is-black.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .is-light.input, #documenter .docs-sidebar form.docs-search > input.is-light, .is-light.textarea { + border-color: whitesmoke; } + .is-light.input:focus, #documenter .docs-sidebar form.docs-search > input.is-light:focus, .is-light.textarea:focus, .is-light.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-light.is-focused, .is-light.is-focused.textarea, .is-light.input:active, #documenter .docs-sidebar form.docs-search > input.is-light:active, .is-light.textarea:active, .is-light.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-light.is-active, .is-light.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .is-dark.input, .content kbd.input, #documenter .docs-sidebar form.docs-search > input.is-dark, .is-dark.textarea, .content kbd.textarea { + border-color: #363636; } + .is-dark.input:focus, .content kbd.input:focus, #documenter .docs-sidebar form.docs-search > input.is-dark:focus, .is-dark.textarea:focus, .content kbd.textarea:focus, .is-dark.is-focused.input, .content kbd.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-dark.is-focused, .is-dark.is-focused.textarea, .content kbd.is-focused.textarea, .is-dark.input:active, .content kbd.input:active, #documenter .docs-sidebar form.docs-search > input.is-dark:active, .is-dark.textarea:active, .content kbd.textarea:active, .is-dark.is-active.input, .content kbd.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-dark.is-active, .is-dark.is-active.textarea, .content kbd.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .is-primary.input, .docstring > section > a.input.docs-sourcelink, #documenter .docs-sidebar form.docs-search > input.is-primary, .is-primary.textarea, .docstring > section > a.textarea.docs-sourcelink { + border-color: #4eb5de; } + .is-primary.input:focus, .docstring > section > a.input.docs-sourcelink:focus, #documenter .docs-sidebar form.docs-search > input.is-primary:focus, .is-primary.textarea:focus, .docstring > section > a.textarea.docs-sourcelink:focus, .is-primary.is-focused.input, .docstring > section > a.is-focused.input.docs-sourcelink, #documenter .docs-sidebar form.docs-search > input.is-primary.is-focused, .is-primary.is-focused.textarea, .docstring > section > a.is-focused.textarea.docs-sourcelink, .is-primary.input:active, .docstring > section > a.input.docs-sourcelink:active, #documenter .docs-sidebar form.docs-search > input.is-primary:active, .is-primary.textarea:active, .docstring > section > a.textarea.docs-sourcelink:active, .is-primary.is-active.input, .docstring > section > a.is-active.input.docs-sourcelink, #documenter .docs-sidebar form.docs-search > input.is-primary.is-active, .is-primary.is-active.textarea, .docstring > section > a.is-active.textarea.docs-sourcelink { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .is-link.input, #documenter .docs-sidebar form.docs-search > input.is-link, .is-link.textarea { + border-color: #2e63b8; } + .is-link.input:focus, #documenter .docs-sidebar form.docs-search > input.is-link:focus, .is-link.textarea:focus, .is-link.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-link.is-focused, .is-link.is-focused.textarea, .is-link.input:active, #documenter .docs-sidebar form.docs-search > input.is-link:active, .is-link.textarea:active, .is-link.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-link.is-active, .is-link.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .is-info.input, #documenter .docs-sidebar form.docs-search > input.is-info, .is-info.textarea { + border-color: #209cee; } + .is-info.input:focus, #documenter .docs-sidebar form.docs-search > input.is-info:focus, .is-info.textarea:focus, .is-info.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-info.is-focused, .is-info.is-focused.textarea, .is-info.input:active, #documenter .docs-sidebar form.docs-search > input.is-info:active, .is-info.textarea:active, .is-info.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-info.is-active, .is-info.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .is-success.input, #documenter .docs-sidebar form.docs-search > input.is-success, .is-success.textarea { + border-color: #22c35b; } + .is-success.input:focus, #documenter .docs-sidebar form.docs-search > input.is-success:focus, .is-success.textarea:focus, .is-success.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-success.is-focused, .is-success.is-focused.textarea, .is-success.input:active, #documenter .docs-sidebar form.docs-search > input.is-success:active, .is-success.textarea:active, .is-success.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-success.is-active, .is-success.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .is-warning.input, #documenter .docs-sidebar form.docs-search > input.is-warning, .is-warning.textarea { + border-color: #ffdd57; } + .is-warning.input:focus, #documenter .docs-sidebar form.docs-search > input.is-warning:focus, .is-warning.textarea:focus, .is-warning.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-warning.is-focused, .is-warning.is-focused.textarea, .is-warning.input:active, #documenter .docs-sidebar form.docs-search > input.is-warning:active, .is-warning.textarea:active, .is-warning.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-warning.is-active, .is-warning.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .is-danger.input, #documenter .docs-sidebar form.docs-search > input.is-danger, .is-danger.textarea { + border-color: #da0b00; } + .is-danger.input:focus, #documenter .docs-sidebar form.docs-search > input.is-danger:focus, .is-danger.textarea:focus, .is-danger.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-danger.is-focused, .is-danger.is-focused.textarea, .is-danger.input:active, #documenter .docs-sidebar form.docs-search > input.is-danger:active, .is-danger.textarea:active, .is-danger.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-danger.is-active, .is-danger.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .is-small.input, #documenter .docs-sidebar form.docs-search > input, .is-small.textarea { + border-radius: 2px; + font-size: 0.75rem; } + .is-medium.input, #documenter .docs-sidebar form.docs-search > input.is-medium, .is-medium.textarea { + font-size: 1.25rem; } + .is-large.input, #documenter .docs-sidebar form.docs-search > input.is-large, .is-large.textarea { + font-size: 1.5rem; } + .is-fullwidth.input, #documenter .docs-sidebar form.docs-search > input.is-fullwidth, .is-fullwidth.textarea { + display: block; + width: 100%; } + .is-inline.input, #documenter .docs-sidebar form.docs-search > input.is-inline, .is-inline.textarea { + 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; } + +.checkbox, .radio { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; } + .checkbox input, .radio input { + cursor: pointer; } + .checkbox:hover, .radio:hover { + color: #363636; } + .checkbox[disabled], .radio[disabled], + fieldset[disabled] .checkbox, + fieldset[disabled] .radio { + color: #7a7a7a; + 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: whitesmoke; } + .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: white; } + .select.is-white select { + border-color: white; } + .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: black; } + .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: whitesmoke; } + .select.is-light select { + border-color: whitesmoke; } + .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: #118fe4; } + .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: #ffd83d; } + .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: 0.75rem; } + .select.is-medium { + font-size: 1.25rem; } + .select.is-large { + font-size: 1.5rem; } + .select.is-disabled::after { + border-color: #7a7a7a; } + .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.select.is-loading:after { + font-size: 0.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: white; + 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: white; } + .file.is-black:hover .file-cta, .file.is-black.is-hovered .file-cta { + background-color: #040404; + border-color: transparent; + color: white; } + .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: white; } + .file.is-black:active .file-cta, .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; } + .file.is-light .file-cta { + background-color: whitesmoke; + border-color: transparent; + color: #363636; } + .file.is-light:hover .file-cta, .file.is-light.is-hovered .file-cta { + background-color: #eeeeee; + 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: whitesmoke; } + .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: whitesmoke; } + .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: whitesmoke; } + .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: whitesmoke; } + .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: #1496ed; + 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: #118fe4; + 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: #ffdb4a; + 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: #ffd83d; + 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: 0.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.file.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: #eeeeee; + 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: whitesmoke; + 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: 0.75rem; } + .label.is-medium { + font-size: 1.25rem; } + .label.is-large { + font-size: 1.5rem; } + +.help { + display: block; + font-size: 0.75rem; + margin-top: 0.25rem; } + .help.is-white { + color: white; } + .help.is-black { + color: #0a0a0a; } + .help.is-light { + color: whitesmoke; } + .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:not([disabled]).is-hovered, + .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:not([disabled]).is-hovered, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-hovered, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-hovered, + .field.has-addons .control .select select:not([disabled]):hover, + .field.has-addons .control .select select:not([disabled]).is-hovered { + z-index: 2; } + .field.has-addons .control .button:not([disabled]):focus, .field.has-addons .control .button:not([disabled]).is-focused, .field.has-addons .control .button:not([disabled]):active, .field.has-addons .control .button:not([disabled]).is-active, + .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:not([disabled]).is-focused, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-focused, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-focused, + .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:not([disabled]).is-active, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-active, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-active, + .field.has-addons .control .select select:not([disabled]):focus, + .field.has-addons .control .select select:not([disabled]).is-focused, + .field.has-addons .control .select select:not([disabled]):active, + .field.has-addons .control .select select:not([disabled]).is-active { + z-index: 3; } + .field.has-addons .control .button:not([disabled]):focus:hover, .field.has-addons .control .button:not([disabled]).is-focused:hover, .field.has-addons .control .button:not([disabled]):active:hover, .field.has-addons .control .button:not([disabled]).is-active: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:not([disabled]).is-focused:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-focused:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-focused: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:not([disabled]).is-active:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-active:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-active:hover, + .field.has-addons .control .select select:not([disabled]):focus:hover, + .field.has-addons .control .select select:not([disabled]).is-focused:hover, + .field.has-addons .control .select select:not([disabled]):active:hover, + .field.has-addons .control .select select:not([disabled]).is-active: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: 0.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: #7a7a7a; } + .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-left #documenter .docs-sidebar form.docs-search > input.select ~ .icon, + #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.select ~ .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, + .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.select ~ .icon, + #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.select ~ .icon { + font-size: 0.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.control.is-loading:after { + font-size: 0.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 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: #222222; + 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: 0.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: white; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #222222; + max-width: 100%; + position: relative; } + +.card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + display: flex; } + +.card-header-title { + align-items: center; + color: #222222; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem; } + .card-header-title.is-centered { + justify-content: center; } + +.card-header-icon { + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem; } + +.card-image { + display: block; + position: relative; } + +.card-content { + background-color: transparent; + padding: 1rem 1.25rem; } + +.card-footer { + background-color: transparent; + 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: 0.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: white; + 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: 0.5rem; + padding-top: 0.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: whitesmoke; + 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: 0.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: 0.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: 0.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: white; + 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: #222222; } + .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: whitesmoke; + 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: 0.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: #222222; + display: block; + padding: 0.5em 0.75em; } + .menu-list a:hover { + background-color: whitesmoke; + color: #222222; } + .menu-list a.is-active { + background-color: #2e63b8; + color: #fff; } + .menu-list li ul { + border-left: 1px solid #dbdbdb; + margin: 0.75em; + padding-left: 0.75em; } + +.menu-label { + color: #7a7a7a; + font-size: 0.75em; + letter-spacing: 0.1em; + text-transform: uppercase; } + .menu-label:not(:first-child) { + margin-top: 1em; } + .menu-label:not(:last-child) { + margin-bottom: 1em; } + +.message { + background-color: whitesmoke; + 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: 0.75rem; } + .message.is-medium { + font-size: 1.25rem; } + .message.is-large { + font-size: 1.5rem; } + .message.is-white { + background-color: white; } + .message.is-white .message-header { + background-color: white; + color: #0a0a0a; } + .message.is-white .message-body { + border-color: white; + color: #4d4d4d; } + .message.is-black { + background-color: #fafafa; } + .message.is-black .message-header { + background-color: #0a0a0a; + color: white; } + .message.is-black .message-body { + border-color: #0a0a0a; + color: #090909; } + .message.is-light { + background-color: #fafafa; } + .message.is-light .message-header { + background-color: whitesmoke; + color: #363636; } + .message.is-light .message-body { + border-color: whitesmoke; + 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: whitesmoke; } + .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: #12537e; } + .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: #3b3108; } + .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: #222222; + border-radius: 4px 4px 0 0; + color: #fff; + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em; + 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: #222222; + padding: 1em 1.25em; } + .message-body code, + .message-body pre { + background-color: white; } + .message-body pre code { + background-color: transparent; } + +.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: whitesmoke; + 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: #222222; + 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: white; + flex-grow: 1; + flex-shrink: 1; + overflow: auto; + padding: 20px; } + +.navbar { + background-color: white; + min-height: 3.25rem; + position: relative; + z-index: 30; } + .navbar.is-white { + background-color: white; + 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: white; + color: #0a0a0a; } } + .navbar.is-black { + background-color: #0a0a0a; + color: white; } + .navbar.is-black .navbar-brand > .navbar-item, + .navbar.is-black .navbar-brand .navbar-link { + color: white; } + .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: black; + color: white; } + .navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; } + .navbar.is-black .navbar-burger { + color: white; } + @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: white; } + .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: black; + color: white; } + .navbar.is-black .navbar-start .navbar-link::after, + .navbar.is-black .navbar-end .navbar-link::after { + border-color: white; } + .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: black; + color: white; } + .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; } } + .navbar.is-light { + background-color: whitesmoke; + 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: whitesmoke; + color: #363636; } } + .navbar.is-dark, .content kbd.navbar { + background-color: #363636; + color: whitesmoke; } + .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: whitesmoke; } + .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: whitesmoke; } + .navbar.is-dark .navbar-brand .navbar-link::after, .content kbd.navbar .navbar-brand .navbar-link::after { + border-color: whitesmoke; } + .navbar.is-dark .navbar-burger, .content kbd.navbar .navbar-burger { + color: whitesmoke; } + @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: whitesmoke; } + .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: whitesmoke; } + .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: whitesmoke; } + .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: whitesmoke; } + .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, .content kbd.navbar .navbar-dropdown a.navbar-item.is-active { + background-color: #363636; + color: whitesmoke; } } + .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: #118fe4; + 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: #118fe4; + 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: #118fe4; + 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: #ffd83d; + 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: #ffd83d; + 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: #ffd83d; + 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 whitesmoke; } + .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 whitesmoke; } + .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: transparent; + border-bottom-color: #2e63b8; } + .navbar-item.is-tab.is-active { + background-color: transparent; + 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: whitesmoke; + 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: white; + 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: whitesmoke; + color: #0a0a0a; } + .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + 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: white; + 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: whitesmoke; + color: #0a0a0a; } + .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + 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: transparent; } + .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: -0.25rem; } + .pagination.is-small, #documenter .docs-sidebar form.docs-search > input.pagination { + font-size: 0.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: 0.25rem; + padding-left: 0.5em; + padding-right: 0.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: #2e63b8; } + .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: #7a7a7a; + 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: whitesmoke; + border-radius: 4px 4px 0 0; + color: #222222; + 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: 0.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: #222222; } + .panel-list a:hover { + color: #2e63b8; } + +.panel-block { + align-items: center; + color: #222222; + 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: whitesmoke; } + +.panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: #7a7a7a; + 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: #222222; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; } + .tabs a:hover { + border-bottom-color: #222222; + color: #222222; } + .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: whitesmoke; + border-bottom-color: #dbdbdb; } + .tabs.is-boxed li.is-active a { + background-color: white; + border-color: #dbdbdb; + border-bottom-color: transparent !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: whitesmoke; + 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: 0.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: 0.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.33333%; } + .columns.is-mobile > .column.is-offset-1 { + margin-left: 8.33333%; } + .columns.is-mobile > .column.is-2 { + flex: none; + width: 16.66667%; } + .columns.is-mobile > .column.is-offset-2 { + margin-left: 16.66667%; } + .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.33333%; } + .columns.is-mobile > .column.is-offset-4 { + margin-left: 33.33333%; } + .columns.is-mobile > .column.is-5 { + flex: none; + width: 41.66667%; } + .columns.is-mobile > .column.is-offset-5 { + margin-left: 41.66667%; } + .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.33333%; } + .columns.is-mobile > .column.is-offset-7 { + margin-left: 58.33333%; } + .columns.is-mobile > .column.is-8 { + flex: none; + width: 66.66667%; } + .columns.is-mobile > .column.is-offset-8 { + margin-left: 66.66667%; } + .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.33333%; } + .columns.is-mobile > .column.is-offset-10 { + margin-left: 83.33333%; } + .columns.is-mobile > .column.is-11 { + flex: none; + width: 91.66667%; } + .columns.is-mobile > .column.is-offset-11 { + margin-left: 91.66667%; } + .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.33333%; } + .column.is-offset-1-mobile { + margin-left: 8.33333%; } + .column.is-2-mobile { + flex: none; + width: 16.66667%; } + .column.is-offset-2-mobile { + margin-left: 16.66667%; } + .column.is-3-mobile { + flex: none; + width: 25%; } + .column.is-offset-3-mobile { + margin-left: 25%; } + .column.is-4-mobile { + flex: none; + width: 33.33333%; } + .column.is-offset-4-mobile { + margin-left: 33.33333%; } + .column.is-5-mobile { + flex: none; + width: 41.66667%; } + .column.is-offset-5-mobile { + margin-left: 41.66667%; } + .column.is-6-mobile { + flex: none; + width: 50%; } + .column.is-offset-6-mobile { + margin-left: 50%; } + .column.is-7-mobile { + flex: none; + width: 58.33333%; } + .column.is-offset-7-mobile { + margin-left: 58.33333%; } + .column.is-8-mobile { + flex: none; + width: 66.66667%; } + .column.is-offset-8-mobile { + margin-left: 66.66667%; } + .column.is-9-mobile { + flex: none; + width: 75%; } + .column.is-offset-9-mobile { + margin-left: 75%; } + .column.is-10-mobile { + flex: none; + width: 83.33333%; } + .column.is-offset-10-mobile { + margin-left: 83.33333%; } + .column.is-11-mobile { + flex: none; + width: 91.66667%; } + .column.is-offset-11-mobile { + margin-left: 91.66667%; } + .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.33333%; } + .column.is-offset-1, .column.is-offset-1-tablet { + margin-left: 8.33333%; } + .column.is-2, .column.is-2-tablet { + flex: none; + width: 16.66667%; } + .column.is-offset-2, .column.is-offset-2-tablet { + margin-left: 16.66667%; } + .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.33333%; } + .column.is-offset-4, .column.is-offset-4-tablet { + margin-left: 33.33333%; } + .column.is-5, .column.is-5-tablet { + flex: none; + width: 41.66667%; } + .column.is-offset-5, .column.is-offset-5-tablet { + margin-left: 41.66667%; } + .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.33333%; } + .column.is-offset-7, .column.is-offset-7-tablet { + margin-left: 58.33333%; } + .column.is-8, .column.is-8-tablet { + flex: none; + width: 66.66667%; } + .column.is-offset-8, .column.is-offset-8-tablet { + margin-left: 66.66667%; } + .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.33333%; } + .column.is-offset-10, .column.is-offset-10-tablet { + margin-left: 83.33333%; } + .column.is-11, .column.is-11-tablet { + flex: none; + width: 91.66667%; } + .column.is-offset-11, .column.is-offset-11-tablet { + margin-left: 91.66667%; } + .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.33333%; } + .column.is-offset-1-touch { + margin-left: 8.33333%; } + .column.is-2-touch { + flex: none; + width: 16.66667%; } + .column.is-offset-2-touch { + margin-left: 16.66667%; } + .column.is-3-touch { + flex: none; + width: 25%; } + .column.is-offset-3-touch { + margin-left: 25%; } + .column.is-4-touch { + flex: none; + width: 33.33333%; } + .column.is-offset-4-touch { + margin-left: 33.33333%; } + .column.is-5-touch { + flex: none; + width: 41.66667%; } + .column.is-offset-5-touch { + margin-left: 41.66667%; } + .column.is-6-touch { + flex: none; + width: 50%; } + .column.is-offset-6-touch { + margin-left: 50%; } + .column.is-7-touch { + flex: none; + width: 58.33333%; } + .column.is-offset-7-touch { + margin-left: 58.33333%; } + .column.is-8-touch { + flex: none; + width: 66.66667%; } + .column.is-offset-8-touch { + margin-left: 66.66667%; } + .column.is-9-touch { + flex: none; + width: 75%; } + .column.is-offset-9-touch { + margin-left: 75%; } + .column.is-10-touch { + flex: none; + width: 83.33333%; } + .column.is-offset-10-touch { + margin-left: 83.33333%; } + .column.is-11-touch { + flex: none; + width: 91.66667%; } + .column.is-offset-11-touch { + margin-left: 91.66667%; } + .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.33333%; } + .column.is-offset-1-desktop { + margin-left: 8.33333%; } + .column.is-2-desktop { + flex: none; + width: 16.66667%; } + .column.is-offset-2-desktop { + margin-left: 16.66667%; } + .column.is-3-desktop { + flex: none; + width: 25%; } + .column.is-offset-3-desktop { + margin-left: 25%; } + .column.is-4-desktop { + flex: none; + width: 33.33333%; } + .column.is-offset-4-desktop { + margin-left: 33.33333%; } + .column.is-5-desktop { + flex: none; + width: 41.66667%; } + .column.is-offset-5-desktop { + margin-left: 41.66667%; } + .column.is-6-desktop { + flex: none; + width: 50%; } + .column.is-offset-6-desktop { + margin-left: 50%; } + .column.is-7-desktop { + flex: none; + width: 58.33333%; } + .column.is-offset-7-desktop { + margin-left: 58.33333%; } + .column.is-8-desktop { + flex: none; + width: 66.66667%; } + .column.is-offset-8-desktop { + margin-left: 66.66667%; } + .column.is-9-desktop { + flex: none; + width: 75%; } + .column.is-offset-9-desktop { + margin-left: 75%; } + .column.is-10-desktop { + flex: none; + width: 83.33333%; } + .column.is-offset-10-desktop { + margin-left: 83.33333%; } + .column.is-11-desktop { + flex: none; + width: 91.66667%; } + .column.is-offset-11-desktop { + margin-left: 91.66667%; } + .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.33333%; } + .column.is-offset-1-widescreen { + margin-left: 8.33333%; } + .column.is-2-widescreen { + flex: none; + width: 16.66667%; } + .column.is-offset-2-widescreen { + margin-left: 16.66667%; } + .column.is-3-widescreen { + flex: none; + width: 25%; } + .column.is-offset-3-widescreen { + margin-left: 25%; } + .column.is-4-widescreen { + flex: none; + width: 33.33333%; } + .column.is-offset-4-widescreen { + margin-left: 33.33333%; } + .column.is-5-widescreen { + flex: none; + width: 41.66667%; } + .column.is-offset-5-widescreen { + margin-left: 41.66667%; } + .column.is-6-widescreen { + flex: none; + width: 50%; } + .column.is-offset-6-widescreen { + margin-left: 50%; } + .column.is-7-widescreen { + flex: none; + width: 58.33333%; } + .column.is-offset-7-widescreen { + margin-left: 58.33333%; } + .column.is-8-widescreen { + flex: none; + width: 66.66667%; } + .column.is-offset-8-widescreen { + margin-left: 66.66667%; } + .column.is-9-widescreen { + flex: none; + width: 75%; } + .column.is-offset-9-widescreen { + margin-left: 75%; } + .column.is-10-widescreen { + flex: none; + width: 83.33333%; } + .column.is-offset-10-widescreen { + margin-left: 83.33333%; } + .column.is-11-widescreen { + flex: none; + width: 91.66667%; } + .column.is-offset-11-widescreen { + margin-left: 91.66667%; } + .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.33333%; } + .column.is-offset-1-fullhd { + margin-left: 8.33333%; } + .column.is-2-fullhd { + flex: none; + width: 16.66667%; } + .column.is-offset-2-fullhd { + margin-left: 16.66667%; } + .column.is-3-fullhd { + flex: none; + width: 25%; } + .column.is-offset-3-fullhd { + margin-left: 25%; } + .column.is-4-fullhd { + flex: none; + width: 33.33333%; } + .column.is-offset-4-fullhd { + margin-left: 33.33333%; } + .column.is-5-fullhd { + flex: none; + width: 41.66667%; } + .column.is-offset-5-fullhd { + margin-left: 41.66667%; } + .column.is-6-fullhd { + flex: none; + width: 50%; } + .column.is-offset-6-fullhd { + margin-left: 50%; } + .column.is-7-fullhd { + flex: none; + width: 58.33333%; } + .column.is-offset-7-fullhd { + margin-left: 58.33333%; } + .column.is-8-fullhd { + flex: none; + width: 66.66667%; } + .column.is-offset-8-fullhd { + margin-left: 66.66667%; } + .column.is-9-fullhd { + flex: none; + width: 75%; } + .column.is-offset-9-fullhd { + margin-left: 75%; } + .column.is-10-fullhd { + flex: none; + width: 83.33333%; } + .column.is-offset-10-fullhd { + margin-left: 83.33333%; } + .column.is-11-fullhd { + flex: none; + width: 91.66667%; } + .column.is-offset-11-fullhd { + margin-left: 91.66667%; } + .column.is-12-fullhd { + flex: none; + width: 100%; } + .column.is-offset-12-fullhd { + margin-left: 100%; } } + +.columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + .columns:last-child { + margin-bottom: -0.75rem; } + .columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.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: 0.25rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; } } + .columns.is-variable.is-2 { + --columnGap: 0.5rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; } } + .columns.is-variable.is-3 { + --columnGap: 0.75rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-3-fullhd { + --columnGap: 0.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: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + .tile.is-ancestor:last-child { + margin-bottom: -0.75rem; } + .tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; } + .tile.is-child { + margin: 0 !important; } + .tile.is-parent { + padding: 0.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.33333%; } + .tile.is-2 { + flex: none; + width: 16.66667%; } + .tile.is-3 { + flex: none; + width: 25%; } + .tile.is-4 { + flex: none; + width: 33.33333%; } + .tile.is-5 { + flex: none; + width: 41.66667%; } + .tile.is-6 { + flex: none; + width: 50%; } + .tile.is-7 { + flex: none; + width: 58.33333%; } + .tile.is-8 { + flex: none; + width: 66.66667%; } + .tile.is-9 { + flex: none; + width: 75%; } + .tile.is-10 { + flex: none; + width: 83.33333%; } + .tile.is-11 { + flex: none; + width: 91.66667%; } + .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: white; + 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: white; } } + .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: white; } + .hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e6e6e6 0%, white 71%, white 100%); } + @media screen and (max-width: 768px) { + .hero.is-white.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #e6e6e6 0%, white 71%, white 100%); } } + .hero.is-black { + background-color: #0a0a0a; + color: white; } + .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: white; } + .hero.is-black .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-black .subtitle a:not(.button), + .hero.is-black .subtitle strong { + color: white; } + @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: black; + color: white; } + .hero.is-black .tabs a { + color: white; + 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: white; } + .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: white; + border-color: white; + color: #0a0a0a; } + .hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } + @media screen and (max-width: 768px) { + .hero.is-black.is-bold .navbar-menu { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } } + .hero.is-light { + background-color: whitesmoke; + 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: whitesmoke; } } + .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: whitesmoke; } + .hero.is-light.is-bold { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } + @media screen and (max-width: 768px) { + .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } } + .hero.is-dark, .content kbd.hero { + background-color: #363636; + color: whitesmoke; } + .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: whitesmoke; } + .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: whitesmoke; } + @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: whitesmoke; } + .hero.is-dark .tabs a, .content kbd.hero .tabs a { + color: whitesmoke; + 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: whitesmoke; } + .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, .content kbd.hero .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, .content kbd.hero .tabs.is-toggle li.is-active a:hover { + background-color: whitesmoke; + border-color: whitesmoke; + 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, .docstring > section > a.hero.docs-sourcelink .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, .docstring > section > a.hero.docs-sourcelink .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: #118fe4; + 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, #04a6d7 0%, #209cee 71%, #3287f5 100%); } + @media screen and (max-width: 768px) { + .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #04a6d7 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: #ffd83d; + 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, #ffaf24 0%, #ffdd57 71%, #fffa70 100%); } + @media screen and (max-width: 768px) { + .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #ffaf24 0%, #ffdd57 71%, #fffa70 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: #222222; } + +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; } + +.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: 0.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: #b8dffa; + 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: #9beeb8; + 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: #ff857e; + border-color: #da0b00; } + .admonition.is-danger > .admonition-header { + background-color: #da0b00; + color: #fff; } + .admonition.is-danger > .admonition-body { + color: #fff; } + .admonition.is-compat { + background-color: #99e6f0; + 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.75em; + position: relative; } + .admonition-header:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.75em; + content: "\f06a"; } + +.admonition-body { + color: #222222; + padding: 1em 1.25em; } + .admonition-body pre { + background-color: whitesmoke; } + .admonition-body code { + background-color: rgba(0, 0, 0, 0.05); } + +.docstring { + margin-bottom: 1em; + background-color: transparent; + 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.75rem; + background-color: whitesmoke; + 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: 1rem 1.25rem; + 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: 0.625rem; + bottom: 0.5rem; } + .docstring:hover > section > a.docs-sourcelink { + opacity: 0.2; } + .docstring > section:hover a.docs-sourcelink { + opacity: 1; } + +.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: #222222; } + +.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; } + +.breadcrumb a.is-disabled { + cursor: default; + pointer-events: none; } + .breadcrumb a.is-disabled, .breadcrumb a.is-disabled:hover { + color: #222222; } + +.hljs { + background: initial !important; + padding: initial !important; } + +.katex .katex-mathml { + top: 0; + right: 0; } + +html { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; } + +/* This file contain the overall layout. + * + * The main container is
    that is identified by id #documenter. + */ +#documenter .docs-main > article { + overflow-wrap: break-word; } + +@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: white; + 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; + /* For Headroom.js */ + transition-property: top, box-shadow; + -webkit-transition-property: top, box-shadow; + /* Safari */ + transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; + /* Safari */ } + #documenter .docs-main header.docs-navbar.headroom--not-top { + box-shadow: 0.2rem 0rem 0.4rem #bbb; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } + #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; + /* Safari */ } } + +#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; + 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-sidebar { + display: flex; + flex-direction: column; + color: #0a0a0a; + background-color: whitesmoke; + 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; + /* Setting up a nicer theme style for the scrollbar */ } + #documenter .docs-sidebar.visible { + left: 0; + box-shadow: 0.4rem 0rem 0.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-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; + /* Managing collapsible submenus */ } + #documenter .docs-sidebar ul.docs-menu > li > .tocitem { + font-weight: bold; } + #documenter .docs-sidebar ul.docs-menu > li li { + font-size: 0.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: 0.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: whitesmoke; } + #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: white; } + #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover { + background-color: white; + 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: 0.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: #cccccc; } } + @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: #cccccc; } } + +#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; } + +/* + +Original highlight.js style (c) Ivan Sagalaev + +*/ +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: #F0F0F0; } + +/* Base color: saturation 0; */ +.hljs, +.hljs-subst { + color: #444; } + +.hljs-comment { + color: #888888; } + +.hljs-keyword, +.hljs-attribute, +.hljs-selector-tag, +.hljs-meta-keyword, +.hljs-doctag, +.hljs-name { + font-weight: bold; } + +/* User color: hue: 0 */ +.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-selector-pseudo { + color: #BC6060; } + +/* Language color: hue: 90; */ +.hljs-literal { + color: #78A960; } + +.hljs-built_in, +.hljs-bullet, +.hljs-code, +.hljs-addition { + color: #397300; } + +/* Meta color: hue: 200 */ +.hljs-meta { + color: #1f7199; } + +.hljs-meta-string { + color: #4d99bf; } + +/* Misc effects */ +.hljs-emphasis { + font-style: italic; } + +.hljs-strong { + font-weight: bold; } diff --git a/previews/PR1495/assets/themeswap.js b/previews/PR1495/assets/themeswap.js new file mode 100644 index 000000000..d4666841d --- /dev/null +++ b/previews/PR1495/assets/themeswap.js @@ -0,0 +1,42 @@ +// Small function to quickly swap out themes. Gets put into the tag.. +function set_theme_from_local_storage() { + // Browser does not support Web Storage, bail early. + if(typeof(window.localStorage) === "undefined") return; + // Get the user-picked theme from localStorage. May be `null`, which means the default + // theme. + var theme = window.localStorage.getItem("documenter-theme"); + // 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 = []; + 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); + // If we find a matching theme (and it's not the default), we'll set active to non-null + if(!isprimary && 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; + }); + } +} +set_theme_from_local_storage(); diff --git a/previews/PR1495/complex/index.html b/previews/PR1495/complex/index.html new file mode 100644 index 000000000..410b3ac72 --- /dev/null +++ b/previews/PR1495/complex/index.html @@ -0,0 +1,30 @@ + +Complex Differentiation · Zygote

    Complex Differentiation

    Complex numbers add some difficulty to the idea of a "gradient". To talk about gradient(f, x) here we need to talk a bit more about f.

    If f returns a real number, things are fairly straightforward. For $c = x + yi$ and $z = f(c)$, we can define the adjoint $\bar c = \frac{\partial z}{\partial x} + \frac{\partial z}{\partial y}i = \bar x + \bar y i$ (note that $\bar c$ means gradient, and $c'$ means conjugate). It's exactly as if the complex number were just a pair of reals (re, im). This works out of the box.

    julia> using Zygote
    +
    +julia> gradient(c -> abs2(c), 1+2im)
    +(2.0 + 4.0im,)

    However, while this is a very pragmatic definition that works great for gradient descent, it's not quite aligned with the mathematical notion of the derivative: i.e. $f(c + \epsilon) \approx f(c) + \bar c \epsilon$. In general, such a $\bar c$ is not possible for complex numbers except when f is holomorphic (or analytic). Roughly speaking this means that the function is defined over c as if it were a normal real number, without exploiting its complex structure – it can't use real, imag, conj, or anything that depends on these like abs2 (abs2(x) = x*x'). (This constraint also means there's no overlap with the Real case above; holomorphic functions always return complex numbers for complex input.) But most "normal" numerical functions – exp, log, anything that can be represented by a Taylor series – are fine.

    Fortunately it's also possible to get these derivatives; they are the conjugate of the gradients for the real part.

    julia> gradient(x -> real(log(x)), 1+2im)[1] |> conj
    +0.2 - 0.4im

    We can check that this function is holomorphic – and thus that the gradient we got out is sensible – by checking the Cauchy-Riemann equations. In other words this should give the same answer:

    julia> -im*gradient(x -> imag(log(x)), 1+2im)[1] |> conj
    +0.2 - 0.4im

    Notice that this fails in a non-holomorphic case, f(x) = log(x'):

    julia> gradient(x -> real(log(x')), 1+2im)[1] |> conj
    +0.2 - 0.4im
    +
    +julia> -im*gradient(x -> imag(log(x')), 1+2im)[1] |> conj
    +-0.2 + 0.4im

    In cases like these, all bets are off. The gradient can only be described with more information; either a 2x2 Jacobian (a generalisation of the Real case, where the second column is now non-zero), or by the two Wirtinger derivatives (a generalisation of the holomorphic case, where $\frac{∂ f}{∂ z'}$ is now non-zero). To get these efficiently, as we would a Jacobian, we can just call the backpropagators twice.

    function jacobi(f, x)
    +  y, back = Zygote.pullback(f, x)
    +  back(1)[1], back(im)[1]
    +end
    +
    +function wirtinger(f, x)
    +  du, dv = jacobi(f, x)
    +  (du' + im*dv')/2, (du + im*dv)/2
    +end
    julia> wirtinger(x -> 3x^2 + 2x + 1, 1+2im)
    +(8.0 + 12.0im, 0.0 + 0.0im)
    +
    +julia> wirtinger(x -> abs2(x), 1+2im)
    +(1.0 - 2.0im, 1.0 + 2.0im)
    diff --git a/previews/PR1495/glossary/index.html b/previews/PR1495/glossary/index.html new file mode 100644 index 000000000..540cf91b0 --- /dev/null +++ b/previews/PR1495/glossary/index.html @@ -0,0 +1,9 @@ + +Glossary · Zygote

    Glossary

    Differentiation is a minefield of conflicting and overlapping terminology, partly because the ideas have been re-discovered in many different fields (e.g. calculus and differential geometry, the traditional AD community, deep learning, finance, etc.) Many of these terms are not well-defined and others may disagree on the details. Nevertheless, we aim to at least say how we use these terms, which will be helpful when reading over Zygote issues, discussions and source code.

    The list is certainly not complete; if you see new terms you'd like defined, or would like to add one yourself, please do open an issue or PR.

    Adjoint: See pullback. Used when defining new pullbacks (i.e. the @adjoint macro) since this involves defining the adjoint of the Jacobian, in most cases.

    Backpropagation: Essentially equivalent to "reverse-mode AD". Used particularly in the machine learning world to refer to simple chains of functions f(g(h(x))), but has generalised beyond that.

    Derivative: Given a scalar function $y = f(x)$, the derivative is $\frac{\partial y}{\partial x}$. "Partial" is taken for granted in AD; there's no interesting distinction between partial and total derivatives for our purposes. It's all in the eye of the beholder.

    Differential: Given a function $f(x)$, the linearisation $\partial f$ such that $f(x + \epsilon) \approx f(x) + \partial f \epsilon$. This is a generalisation of the derivative since it applies to, for example, vector-to-vector functions ($\partial f$ is a Jacobian) and holomorphic complex functions ($\partial f$ is the first Wirtinger derivative). This is not, in general, what Zygote calculates, though differentials can usually be derived from gradients.

    IR: Intermediate Representation. Essentially source code, but usually lower level – e.g. control flow constructs like loops and branches have all been replaced by gotos. The idea is that it's harder for humans to read/write but easier to manipulate programmatically. Worth looking at SSA form as a paradigmatic example.

    Gradient: See sensitivity. There is no technical difference in Zygote's view, though "gradient" sometimes distinguishes the sensitivity we actually want from e.g. the internal ones that Zygote produces as it backpropagates.

    Graph: ML people tend to think of models as "computation graphs", but this is no more true than any program is a graph. In fact, pretty much anything is a graph if you squint hard enough. This also refers to the data structure that e.g. TensorFlow and PyTorch build to represent your model, but see trace for that.

    Pullback: Given $y = f(x)$ the function $\bar x = back(̄\bar y)$. In other words, the function back in y, back = Zygote.pullback(f, x).

    Sensitivity: Used to refer to the gradient $\bar x = \frac{\partial l}{\partial x}$ with some scalar loss $l$. In other words, you have a value $x$ (which need not be scalar) at some point in your program, and $\bar x$ tells you how you should change that value to decrease the loss. In the AD world, sometimes used to refer to adjoint rules.

    Source to Source Differentiation: Or Source Code Transformation (SCT). As opposed to tracing programs to simplify them, an alternative is to operate directly on a language's source code or IR, generating new source code for pullbacks. This describes Zygote, Swift for TensorFlow, Tapenade and a few other old ADs that worked on C source files. Zygote and Swift are unusual in that they work on in-memory IR rather than text source.

    To an extent, tracing ADs can be viewed as source transform of a Wengert list / trace. The key difference is that the trace is a lossy representation of the original semantics, which causes problems with e.g. control flow. Systems which can preserve some of those semantics (e.g. autograph) begin to blur the line here, though they are still not nearly as expressive as language IRs.

    Symbolic Differentiation: Used to refer to differentiation of "mathematical expressions", that is, things like 3x^2 + sin(x). Often distinguished from AD, though this is somewhat arbitrary; you can happily produce a symbolic adjoint for a Wengert list, the only difference being that you're allowed to make variable bindings. So it's really just a special case of AD on an unusually limited language.

    Tape: This term can refer to pretty much any part of an AD implementation. In particular confusion is caused by conflating the trace with the set of values sometimes closed over by a pullback. Autograd has a combined trace/closure data structure which is usually described as the tape. On the other hand, PyTorch described their implementation as tape-free because the trace/closure is stored as a DAG rather than a vector, so basically all bets are off here.

    Trace: A recording of each mathematical operation used by a program, made at runtime and usually forming a Wengert list. Traces may or may not also record actual runtime values (e.g. PyTorch vs. TensorFlow). They can often be treated as an IR and compiled, but are distinguished from true IRs in that they unroll and inline all control flow, functions and data structures. The tracing process can be thought of as a kind of partial evaluation, though tracers are typically much less worried about losing information.

    Vector-Jacobian product: see pullback. So called because all pullbacks are linear functions that can be represented by (left) multiplication with the Jacobian matrix.

    Wengert List: A set of simple variable assignments and mathematical expressions, forming a directed graph. Can be thought of as a limited programming language with variable bindings and numerical functions but no control flow or data structures. If you trace a program for AD it will typically take this form.

    diff --git a/previews/PR1495/index.html b/previews/PR1495/index.html new file mode 100644 index 000000000..357b2e04d --- /dev/null +++ b/previews/PR1495/index.html @@ -0,0 +1,133 @@ + +Home · Zygote

    Zygote

    Welcome! Zygote extends the Julia language to support differentiable programming. With Zygote you can write down any Julia code you feel like – including using existing Julia packages – then get gradients and optimise your program. Deep learning, ML and probabilistic programming are all different kinds of differentiable programming that you can do with Zygote.

    At least, that's the idea. We're still in beta so expect some adventures.

    Setup

    Zygote can be installed from the package manager in Julia's REPL:

    ] add Zygote

    Taking Gradients

    Zygote is easy to understand since, at its core, it has a one-function API (pullback), along with a few simple conveniences. Before explaining pullback, we'll look at the higher-level function gradient.

    gradient calculates derivatives. For example, the derivative of $3x^2 + 2x + 1$ is $6x + 2$, so when x = 5, dx = 32.

    julia> using Zygote
    +
    +julia> gradient(x -> 3x^2 + 2x + 1, 5)
    +(32.0,)

    gradient returns a tuple, with a gradient for each argument to the function.

    julia> gradient((a, b) -> a*b, 2, 3)
    +(3.0, 2.0)

    This will work equally well if the arguments are arrays, structs, or any other Julia type, but the function should return a scalar (like a loss or objective $l$, if you're doing optimisation / ML).

    julia> W = rand(2, 3); x = rand(3);
    +
    +julia> gradient(W -> sum(W*x), W)[1]
    +2×3 Array{Float64,2}:
    + 0.0462002  0.817608  0.979036
    + 0.0462002  0.817608  0.979036
    +
    +julia> gradient(x -> 3x^2 + 2x + 1, 1//4)
    +(7//2,)

    Control flow is fully supported, including recursion.

    julia> function pow(x, n)
    +         r = 1
    +         for i = 1:n
    +           r *= x
    +         end
    +         return r
    +       end
    +pow (generic function with 1 method)
    +
    +julia> gradient(x -> pow(x, 3), 5)
    +(75.0,)
    +
    +julia> pow2(x, n) = n <= 0 ? 1 : x*pow2(x, n-1)
    +pow2 (generic function with 1 method)
    +
    +julia> gradient(x -> pow2(x, 3), 5)
    +(75.0,)

    Data structures are also supported, including mutable ones like dictionaries. Arrays are currently immutable, though this may change in future.

    julia> d = Dict()
    +Dict{Any, Any}()
    +
    +julia> gradient(5) do x
    +         d[:x] = x
    +         d[:x] * d[:x]
    +       end
    +(10.0,)
    +
    +julia> d[:x]
    +5

    Structs and Types

    Julia makes it easy to work with custom types, and Zygote makes it easy to differentiate them. For example, given a simple Point type:

    import Base: +, -
    +
    +struct Point
    +  x::Float64
    +  y::Float64
    +end
    +
    +a::Point + b::Point = Point(a.x + b.x, a.y + b.y)
    +a::Point - b::Point = Point(a.x - b.x, a.y - b.y)
    +dist(p::Point) = sqrt(p.x^2 + p.y^2)
    julia> a = Point(1, 2)
    +Point(1.0, 2.0)
    +
    +julia> b = Point(3, 4)
    +Point(3.0, 4.0)
    +
    +julia> dist(a + b)
    +7.211102550927978
    +
    +julia> gradient(a -> dist(a + b), a)[1]
    +(x = 0.5547001962252291, y = 0.8320502943378437)

    Zygote's default representation of the "point adjoint" is a named tuple with gradients for both fields, but this can of course be customised too.

    This means we can do something very powerful: differentiating through Julia libraries, even if they weren't designed for this. For example, colordiff might be a smarter loss function on colours than simple mean-squared-error:

    julia> using Colors
    +
    +julia> colordiff(RGB(1, 0, 0), RGB(0, 1, 0))
    +86.60823557376344
    +
    +julia> gradient(colordiff, RGB(1, 0, 0), RGB(0, 1, 0))
    +((r = 0.4590887719632896, g = -9.598786801605689, b = 14.181383399012862), (r = -1.7697549557037275, g = 28.88472330558805, b = -0.044793892637761346))

    Explicit and Implicit Parameters

    It's easy to work with even very large and complex models, and there are few ways to do this. Autograd-style models pass around a collection of weights. Depending on how you write your model, there are multiple ways to explicitly take gradients with respect to parameters. For example, the function linear accepts the parameters as an argument to the model. So, we directly pass in the parameters, θ, as an argument to the function being differentiated.

    Zygote.gradientMethod
    gradient(f, args...)

    Returns a tuple containing ∂f/∂x for each argument x, the derivative (for scalar x) or the gradient.

    f(args...) must be a real number, see jacobian for array output.

    See also withgradient to keep the value f(args...), and pullback for value and back-propagator.

    julia> gradient(*, 2.0, 3.0, 5.0)
    +(15.0, 10.0, 6.0)
    +
    +julia> gradient(x -> sum(abs2,x), [7.0, 11.0, 13.0])
    +([14.0, 22.0, 26.0],)
    +
    +julia> gradient([7, 11], 0, 1) do x, y, d
    +         p = size(x, d)
    +         sum(x.^p .+ y)
    +       end
    +([14.0, 22.0], 2.0, nothing)
    source
    julia> linear(θ, x) = θ[:W] * x .+ θ[:b]
    +linear (generic function with 1 method)
    +
    +julia> x = rand(5);
    +
    +julia> θ = Dict(:W => rand(2, 5), :b => rand(2))
    +Dict{Any,Any} with 2 entries:
    +  :b => [0.0430585, 0.530201]
    +  :W => [0.923268 … 0.589691]
    +
    +# Alternatively, use a named tuple or struct rather than a dict.
    +# θ = (W = rand(2, 5), b = rand(2))
    +
    +julia> θ̄ = gradient(θ -> sum(linear(θ, x)), θ)[1]
    +Dict{Any,Any} with 2 entries:
    +  :b => [1.0, 1.0]
    +  :W => [0.628998 … 0.433006]

    We can combine the role of the dictionary and the function here by making a callable struct which contains the parameters, equivalent to a closure. Passed explicitly to gradient, we get a named tuple with the same field names:

    julia> struct Linear
    +         W
    +         b
    +       end
    +
    +julia> (l::Linear)(x) = l.W * x .+ l.b
    +
    +julia> model = Linear(rand(2, 5), rand(2))
    +Linear([0.267663 … 0.334385], [0.0386873, 0.0203294])
    +
    +julia> x = rand(5);
    +
    +julia> dmodel = gradient(model -> sum(model(x)), model)[1]
    +(W = [0.652543 … 0.683588], b = [1.0, 1.0])

    Zygote also supports another way to take gradients, via implicit parameters. Here the loss function takes zero arguments, but the variables of interest are indicated by a special Params object. The function linear which depends on W and b is executed when the loss function () -> sum(linear(x)) is called, and hence this dependence is visible to Zygote:

    Zygote.gradientFunction
    gradient(() -> loss(), ps::Params) -> Grads

    Gradient with implicit parameters. Takes a zero-argument function, and returns a dictionary-like container, whose keys are arrays x in ps.

    See also withgradient to keep the value loss().

    julia> x = [1 2 3; 4 5 6]; y = [7, 8]; z = [1, 10, 100];
    +
    +julia> g = gradient(Params([x, y])) do
    +         sum(x .* y .* z')
    +       end
    +Grads(...)
    +
    +julia> g[x]
    +2×3 Matrix{Float64}:
    + 7.0  70.0  700.0
    + 8.0  80.0  800.0
    +
    +julia> haskey(g, z)  # only x and y are parameters
    +false
    source
    julia> W = rand(2, 5); b = rand(2);
    +
    +julia> linear(x) = W * x .+ b
    +linear (generic function with 2 methods)
    +
    +julia> grads = gradient(() -> sum(linear(x)), Params([W, b]))
    +Grads(...)
    +
    +julia> grads[W], grads[b] # access gradients using arrays as keys
    +([0.652543 … 0.683588], [1.0, 1.0])

    Here grads is a dictionary-like object, whose keys are the same parameters we indicated in Params. (In fact it wraps a dictionary using objectid(W) as keys, which does not change if the values in W are mutated).

    This implicit style is the one presently used by Flux.jl, a closely related machine learning library. It uses structs like Linear above to define layers, and the function Flux.params(model) returns a Params object containing all the parameters of all layers. See its documentation for more details. When using Zygote for most other purposes, however, the explicit style is usually preferred.

    diff --git a/previews/PR1495/internals/index.html b/previews/PR1495/internals/index.html new file mode 100644 index 000000000..0d8570e02 --- /dev/null +++ b/previews/PR1495/internals/index.html @@ -0,0 +1,138 @@ + +Internals · Zygote

    Internals

    What Zygote Does

    These notebooks and the Zygote paper provide useful background on Zygote's transform; this page is particularly focused on implementation details.

    Before we think about AD, we'll consider some simple cases. We can start by defining a function that produces pullbacks, J, explicitly for some simple functions.

    J(::typeof(sin), x) = sin(x), ȳ -> ȳ*cos(x)
    +J(::typeof(cos), x) = cos(x), ȳ -> -ȳ*sin(x)
    +J(::typeof(*), a, b) = a*b, c̄ -> (b*c̄, a*c̄)

    Now we can call J to take a gradient.

    gradient(f, x...) = J(f, x...)[2](1)
    +
    +gradient(sin, 1) # (0.540,)
    +
    +gradient(*, 2, 3) # (3, 2)

    Now consider a composite function that calls two simple ones:

    function foo(x)
    +  a = sin(x)
    +  b = cos(a)
    +  return b
    +end

    We can easily differentiate foo if we can differentiate the functions it calls. If we can get pullbacks via J, the pullback for foo looks as follows. Where the forward pass calculates x -> a -> b, the backwards takes b̄ -> ā -> x̄ via the pullbacks.

    function J(::typeof(foo), x)
    +  a, da = J(sin, x)
    +  b, db = J(cos, a)
    +  return b, function(b̄)
    +    ā, = db(b̄)
    +    x̄, = da(ā)
    +    return x̄
    +  end
    +end
    +
    +gradient(foo, 1) # (-0.403,)

    Things get just a little more complex when control flow is involved. You can see that the derived adjoint for pow mirrors the original function, except that the loop runs in reverse. The easiest way to see why it looks like this is to imagine unrolling the loop n times, working out the adjoint, and then turning it back into a loop.

    function pow(x, n) # x^n
    +  r = 1
    +  for _ = 1:n
    +    r *= x
    +  end
    +  return r
    +end
    +
    +function J(::typeof(pow), x, n)
    +  r = 1
    +  Js = []
    +  for i = 1:n
    +    r, back = J(*, r, x)
    +    push!(Js, back)
    +  end
    +  return r, function(r̄)
    +    x̄ = 0
    +    for i = n:-1:1
    +      r̄, x̄′ = Js[i](r̄)
    +      x̄ += x̄′
    +    end
    +    return (x̄, 0)
    +  end
    +end
    +
    +gradient(pow, 2, 3) # (12, 0)

    Despite being reasonably fiddly, this is a fully mechanical transformation, so the only remaining thing is to automate it – a small matter of programming.

    Closures

    The J function here corresponds to pullback in Zygote. However, pullback is actually a wrapper around the lower level _pullback function.

    julia> y, back = Zygote._pullback(sin, 0.5);
    +
    +julia> back(1)
    +(nothing, 0.8775825618903728)

    Why the extra nothing here? This actually represents the gradient of the function sin. This is often nothing, but when we have closures the function contains data we need gradients for.

    julia> f = let a = 3; x -> x*a; end
    +#19 (generic function with 1 method)
    +
    +julia> y, back = Zygote._pullback(f, 2);
    +
    +julia> back(1)
    +((a = 2,), 3)

    This is a minor point for the most part, but _pullback will come up in future examples.

    Entry Points

    You might notice that Zygote is, in effect, just a macro. We could happily implement Zygote by writing definitions like

    @differentiable foo(x) = sin(cos(x))

    which would expand to generate an appropriate overload to J. As long as every function we want to differentiate is annotated, this will work just fine. However, it's obviously not ideal to have to annotate every function inside every Julia package in order to make it differentiable.

    This is where generated functions come in. Making J a generated function allows us to apply the Zygote macro on an as-needed basis; calling J(f, x...) looks up the code for f(x...), transforms it, and then behaves as if you had defined J for that specific function ahead of time.

    When we look up the code, we actually get lowered (desugared) code rather than an AST.

    julia> foo(x) = baz(bar(x))
    +foo (generic function with 1 method)
    +
    +julia> @code_lowered foo(1)
    +CodeInfo(
    +1 ─ %1 = (Main.bar)(x)
    +│   %2 = (Main.baz)(%1)
    +└──      return %2

    We convert the code to SSA form using Julia's built-in IR data structure, after which it looks like this.

    julia> Zygote.@code_ir foo(1)
    +1 1 ─ %1 = (Main.bar)(_2)::Any
    +  │   %2 = (Main.baz)(%1)::Any
    +  └──      return %2

    (There isn't much difference unless there's some control flow.)

    The code is then differentiated by the code in compiler/reverse.jl. You can see the output with @code_adjoint.

    julia> Zygote.@code_adjoint foo(1)
    +1 1 ─ %1  = (Zygote._pullback)(_2, Zygote.unwrap, Main.bar)::Any
    +  │   %2  = (Base.getindex)(%1, 1)::Any
    +  │         (Base.getindex)(%1, 2)::Any
    +  │   %4  = (Zygote._pullback)(_2, %2, _4)::Any
    +  │   %5  = (Base.getindex)(%4, 1)::Any
    +  │         (Base.getindex)(%4, 2)::Any
    +  │   %7  = (Zygote._pullback)(_2, Zygote.unwrap, Main.baz)::Any
    +  │   %8  = (Base.getindex)(%7, 1)::Any
    +  │         (Base.getindex)(%7, 2)::Any
    +  │   %10 = (Zygote._pullback)(_2, %8, %5)::Any
    +  │   %11 = (Base.getindex)(%10, 1)::Any
    +  │         (Base.getindex)(%10, 2)::Any
    +  └──       return %11
    +  1 ─ %1  = Δ()::Any
    +1 │   %2  = (@12)(%1)::Any
    +  │   %3  = (Zygote.gradindex)(%2, 1)::Any
    +  │   %4  = (Zygote.gradindex)(%2, 2)::Any
    +  │         (@9)(%3)::Any
    +  │   %6  = (@6)(%4)::Any
    +  │   %7  = (Zygote.gradindex)(%6, 1)::Any
    +  │   %8  = (Zygote.gradindex)(%6, 2)::Any
    +  │         (@3)(%7)::Any
    +  │   %10 = (Zygote.tuple)(nothing, %8)::Any
    +  └──       return %10
    +, [1])

    This code is quite verbose, mainly due to all the tuple unpacking (gradindex is just like getindex, but handles nothing gracefully). There are two pieces of IR here, one for the modified pullback pass and one for the pullback closure. The @ nodes allow the closure to refer to values from the pullback pass, and the Δ() represents the incoming gradient . In essence, this is just what we wrote above by hand for J(::typeof(foo), x).

    compiler/emit.jl lowers this code into runnable IR (e.g. by turning @ references into getfields and stacks), and it's then turned back into lowered code for Julia to run.

    Closure Conversion

    There are no closures in lowered Julia code, so we can't actually emit one directly in lowered code. To work around this we have a trick: we have a generic struct like

    struct Pullback{F}
    +  data
    +end

    We can put whatever we want in data, and the F will be the signature for the original call, like Tuple{typeof(foo),Int}. When the pullback gets called it hits another generated function which emits the pullback code.

    In hand written code this would look like:

    struct Pullback{F}
    +  data
    +end
    +
    +function J(::typeof(foo), x)
    +  a, da = J(sin, x)
    +  b, db = J(cos, a)
    +  return b, Pullback{typeof(foo)}((da, db))
    +end
    +
    +function (p::Pullback{typeof(foo)})(b̄)
    +  da, db = p.data[1], p.data[2]
    +  ā = db(b̄)
    +  x̄ = da(ā)
    +  return x̄
    +end

    Debugging

    Say some of our code is throwing an error.

    bad(x) = x
    +
    +Zygote.@adjoint bad(x) = x, _ -> error("bad")
    +
    +foo(x) = bad(sin(x))
    +
    +gradient(foo, 1) # error!

    Zygote can usually give a stacktrace pointing right to the issue here, but in some cases there are compiler crashes that make this harder. In these cases it's best to (a) use _pullback and (b) take advantage of Zygote's recursion to narrow down the problem function.

    julia> y, back = Zygote._pullback(foo, 1);
    +
    +julia> back(1) # just make up a value here, it just needs to look similar to `y`
    +ERROR: bad
    +
    +# Ok, so we try functions that foo calls
    +
    +julia> y, back = Zygote._pullback(sin, 1);
    +
    +julia> back(1)
    +(nothing, 0.5403023058681398)
    +
    +# Looks like that's fine
    +
    +julia> y, back = Zygote._pullback(bad, 1);
    +
    +julia> back(1) # ok, here's our issue. Lather, rinse, repeat.
    +ERROR: bad

    Of course, our goal is that you never have to do this, but until Zygote is more mature it can be a useful way to narrow down test cases.

    diff --git a/previews/PR1495/limitations/index.html b/previews/PR1495/limitations/index.html new file mode 100644 index 000000000..ee16daece --- /dev/null +++ b/previews/PR1495/limitations/index.html @@ -0,0 +1,90 @@ + +Limitations · Zygote

    Design Limitations

    Zygote aims to support differentiating any Julia code, but it still has a few limitations. Notably, you might encounter errors when trying to differentiate:

    • array mutation,
    • try/catch statements,
    • "foreign call" expressions.

    This section gives examples where each of these errors occurs, as well as possible work-arounds.

    Below, it also describes some known bugs in expressions Zygote ought to be able to handle.

    Array mutation

    Array mutation is by far the most commonly encountered Zygote limitation.

    Automatic differentiation (AD) systems like Zygote are built on basic principles of calculus where we encounter pure functions. This means that the function, $y = f(x)$, does not modify $x$ and only produces the output $y$ based on $x$. If we have a chain of functions, such as $y = h(g(f(x)))$, we can apply the chain rule to differentiate it. AD systems are built to programmatically apply the chain rule to a series of function calls. Unfortunately, typical programs do not behave this way. We might allocate some memory, x, then call a function y = f!(x) that modifies x to produce the output y. This mutating behavior is a side-effect of f!. Side-effects are difficult for AD systems to handle, because the must track changes to mutated variables and store older versions of the variable. For these reasons, Zygote does not handle array mutation for now.

    Let's explore this with a more concrete example. Here we define a simple mutating function, f!, which modifies the elements of its input argument, x, in place.

    function f!(x)
    +  x .= 2 .* x
    +
    +  return x
    +end

    Let's see what happens when we differentiate f!

    julia> gradient(rand(3)) do x
    +         sum(f!(x))
    +       end
    +ERROR: Mutating arrays is not supported -- called copyto!(Vector{Float64}, ...)
    +This error occurs when you ask Zygote to differentiate operations that change
    +the elements of arrays in-place (e.g. setting values with x .= ...)
    +
    +Possible fixes:
    +- avoid mutating operations (preferred)
    +- or read the documentation and solutions for this error
    +  https://fluxml.ai/Zygote.jl/latest/limitations
    +
    +Stacktrace:
    +  ...

    We got an error message and a long stacktrace. The error informs us that our code performs array mutation by calling copyto! (we might not have directly called this function, but it is being invoked somewhere in the call stack). We see that our code includes x .= ... which is given as an example of array mutation. Other examples of mutating operations include:

    • setting values (x .= ...)
    • appending/popping values (push!(x, v) / pop!(x))
    • calling mutating functions (mul!(C, A, B))
    Warning

    Non-mutating functions might also use mutation under the hood. This can be done for performance reasons or code re-use.

    function g!(x, y)
    +  x .= 2 .* y
    +
    +  return x
    +end
    +g(y) = g!(similar(y), y)

    Here g is a "non-mutating function," and it indeed does not mutate y, its only argument. But it still allocates a new array and calls g! on this array which will result in a mutating operation. You may encounter such functions when working with another package.

    Specifically for array mutation, we can use Zygote.Buffer to re-write our function. For example, let's fix the function g! above.

    function g!(x, y)
    +  x .= 2 .* y
    +
    +  return x
    +end
    +
    +function g(y)
    +  x = Zygote.Buffer(y) # Buffer supports syntax like similar
    +  g!(x, y)
    +  return copy(x) # this step makes the Buffer immutable (w/o actually copying)
    +end
    +
    +julia> gradient(rand(3)) do y
    +         sum(g(y))
    +       end
    +([2.0, 2.0, 2.0],)

    Try-catch statements

    Any expressions involving try/catch statements is not supported.

    function tryme(x)
    +  try
    +    2 * x
    +  catch e
    +    throw(e)
    +  end
    +end
    +
    +julia> gradient(rand(3)) do x
    +         sum(tryme(x))
    +       end
    +ERROR: Compiling Tuple{typeof(tryme), Vector{Float64}}: try/catch is not supported.
    +Refer to the Zygote documentation for fixes.
    +https://fluxml.ai/Zygote.jl/latest/limitations
    +
    +Stacktrace:
    +  ...

    Here tryme uses a try/catch statement, and Zygote throws an error when trying to differentiate it as expected. try/catch expressions are used for error handling, but they are less common in Julia compared to some other languages.

    Foreign call expressions

    Foreign call expressions refer to expressions that call external libraries such as code written in C or Fortran. You may want to read more about these calls in the Julia documentation. Scientific computing libraries in Julia may call established C or Fortran libraries under the hood. Since the underlying code for a foreign call expression is not in Julia, it is not possible for Zygote to differentiate this expression.

    Below, we define a function that calls a standard C function, clock. This function returns the Unix clock as an Int32.

    julia> jclock(x) = ccall(:clock, Int32, ()) * 2
    +jclock (generic function with 1 method)
    +
    +julia> jclock(2)
    +30921278
    +
    +julia> gradient(jclock, rand())
    +ERROR: Can't differentiate foreigncall expression
    +You might want to check the Zygote limitations documentation.
    +https://fluxml.ai/Zygote.jl/latest/limitations
    +
    +Stacktrace:
    +  ...

    jclock will multiply the result of our C function by an argument. When we try to differentiate with respect to this argument, we get an foreigncall error.

    Solutions

    For all of the errors above, the suggested solutions are similar. You have the following possible work arounds available (in order of preference):

    1. avoid the error-inducing operation (e.g. do not use mutating functions)
    2. define a custom ChainRulesCore.rrule
    3. open an issue on Zygote

    Avoiding the operation is simple, just don't do it! If you are using a mutating function, try to use a non-mutating variant. If you are using try/catch statements, try to use more graceful error handling such as returning nothing or another sentinel value. Recall that array mutation can also be avoided by using Zygote.Buffer as discussed above.

    Sometimes, we cannot avoid expressions that Zygote cannot differentiate, but we may be able to manually derive a gradient. In these cases, you can write a custom rrule using ChainRules.jl. Please refer to the linked ChainRules documentation for how to do this. This solution is the only solution available for foreign call expressions. Below, we provide a custom rrule for jclock.

    jclock(x) = ccall(:clock, Int32, ()) * x
    +
    +function ChainRulesCore.rrule(::typeof(jclock), x)
    +  y = jclock(x)
    +  pb(ȳ) = (ChainRulesCore.NoTangent(), ȳ * y)
    +
    +  return y, pb
    +end
    +
    +julia> gradient(jclock, rand())
    +(674298.4243400148,)

    Lastly, if the code causing problems can be fixed, but it is package code instead of your code, then you should open an issue. For functions built into Julia or its standard libraries, you can open an issue with Zygote.jl or ChainRules.jl. For functions in other packages, you can open an issue with the corresponding package issue tracker.

    Known Issues

    Zygote's issue tracker has the current list of open bugs. There are some general principles about things you may wish to avoid if you can:

    mutable structs

    Zygote has limited support for mutation, and in particular will allow you to change a field in some mutable struct X; a; b; end by setting x.a = val.

    However, this has many limitations and should be avoided if possible.

    The simple solution is to use only immutable structs.

    If you need to modify them, using something like @set from Accessors.jl should work well. This returns a new object, but does not have side-effects on other copies of it.

    Re-using variable names

    It is common to accumulate values in a loop by re-binding the same variable name to a new value many times, for example:

    function mysum(x::Real, n::Int)
    +  tot = 0.0
    +  for i in 1:n
    +    tot += x^n  # binds symbol `tot` to new value
    +  end
    +  return tot
    +end

    However, sometimes such re-binding confuses Zygote, especially if the type of the value changes. Especially if the variable is "boxed", as will happen if you re-bind from within a closure (such as the function created by a do block).

    Second derivatives

    In principle Zygote supports taking derivatives of derivatives. There are, however, a few problems:

    • Quite a few of its rules are not written in a way that is itself differentiable. For instance they may work by making an array then writing into it, which is mutation of the sort forbidden above.
    • The complexity of the code grows rapidly, as Zygote differentiates its own un-optimised output.
    • Reverse mode over reverse mode is seldom the best algorithm.

    The issue tracker has a label for second order, which will outline where the bodies are buried.

    Often using a different AD system over Zygote is a better solution. This is what hessian does, using ForwardDiff over Zygote, but other combinations are possible. (Note that rules defined here mean that Zygote over ForwardDiff is translated to ForwardDiff over ForwardDiff.)

    diff --git a/previews/PR1495/profiling/index.html b/previews/PR1495/profiling/index.html new file mode 100644 index 000000000..b610bd228 --- /dev/null +++ b/previews/PR1495/profiling/index.html @@ -0,0 +1,31 @@ + +Profiling · Zygote

    Debugging in Time and Space

    Because Zygote generates Julia code for the backwards pass, many of Julia's normal profiling and performance debugging tools work well on it out of the box.

    Performance Profiling

    Julia's sampling profiler is useful for understanding performance. We recommend running the profiler in Juno, but the terminal or ProfileView.jl also work well.

    The bars indicate time taken in both the forwards and backwards passes at that line. The canopy chart on the right shows us each function call as a block, arranged so that when f calls g, g gets a block just below f, which is bigger the longer it took to run. If we dig down the call stack we'll eventually find the adjoints for things like matmul, which we can click on to view.

    The trace inside the adjoint can be used to distinguish time taken by the forwards and backwards passes.

    Memory Profiling

    Reverse-mode AD typically uses memory proportional to the number of operations in the program, so long-running programs can also suffer memory usage issues. Zygote includes a space profiler to help debug these issues. Like the time profiler, it shows a canopy chart, but this time hovering over it displays the number of bytes stored by each line of the program.

    Note that this currently only works inside Juno.

    Reflection

    Julia's code and type inference reflection tools can also be useful, though Zygote's use of closures can make the output noisy. To see the code Julia runs you should use the low-level _pullback method and the pullback it returns. This will directly show either the derived adjoint code or the code for a custom adjoint, if there is one.

    julia> using Zygote: Context, _pullback
    +
    +julia> add(a, b) = a+b
    +
    +julia> @code_typed _pullback(Context(), add, 1, 2)
    +CodeInfo(
    +1 ─ %1 = (Base.getfield)(args, 1)::Int64
    +│   %2 = (Base.getfield)(args, 2)::Int64
    +│   %3 = (Base.add_int)(%1, %2)::Int64
    +│   %4 = (Base.tuple)(%3, $(QuoteNode(∂(add))))::PartialTuple(Tuple{Int64,typeof(∂(add))}, Any[Int64, Const(∂(add), false)])
    +└──      return %4
    +) => Tuple{Int64,typeof(∂(add))}
    +
    +julia> y, back = _pullback(Context(), add, 1, 2)
    +(3, ∂(add))
    +
    +julia> @code_typed back(1)
    +CodeInfo(
    +1 ─ %1 = (Base.mul_int)(Δ, 1)::Int64
    +│   %2 = (Base.mul_int)(Δ, 1)::Int64
    +│   %3 = (Zygote.tuple)(nothing, %1, %2)::PartialTuple(Tuple{Nothing,Int64,Int64}, Any[Const(nothing, false), Int64, Int64])
    +└──      return %3
    +) => Tuple{Nothing,Int64,Int64}
    diff --git a/previews/PR1495/search/index.html b/previews/PR1495/search/index.html new file mode 100644 index 000000000..cf8e0b25d --- /dev/null +++ b/previews/PR1495/search/index.html @@ -0,0 +1,9 @@ + +Search · Zygote

    Loading search...

      diff --git a/previews/PR1495/search_index.js b/previews/PR1495/search_index.js new file mode 100644 index 000000000..63d287640 --- /dev/null +++ b/previews/PR1495/search_index.js @@ -0,0 +1,3 @@ +var documenterSearchIndex = {"docs": +[{"location":"profiling/#Debugging-in-Time-and-Space-1","page":"Profiling","title":"Debugging in Time and Space","text":"","category":"section"},{"location":"profiling/#","page":"Profiling","title":"Profiling","text":"Because Zygote generates Julia code for the backwards pass, many of Julia's normal profiling and performance debugging tools work well on it out of the box.","category":"page"},{"location":"profiling/#Performance-Profiling-1","page":"Profiling","title":"Performance Profiling","text":"","category":"section"},{"location":"profiling/#","page":"Profiling","title":"Profiling","text":"Julia's sampling profiler is useful for understanding performance. We recommend running the profiler in Juno, but the terminal or ProfileView.jl also work well.","category":"page"},{"location":"profiling/#","page":"Profiling","title":"Profiling","text":"(Image: )","category":"page"},{"location":"profiling/#","page":"Profiling","title":"Profiling","text":"The bars indicate time taken in both the forwards and backwards passes at that line. The canopy chart on the right shows us each function call as a block, arranged so that when f calls g, g gets a block just below f, which is bigger the longer it took to run. If we dig down the call stack we'll eventually find the adjoints for things like matmul, which we can click on to view.","category":"page"},{"location":"profiling/#","page":"Profiling","title":"Profiling","text":"(Image: )","category":"page"},{"location":"profiling/#","page":"Profiling","title":"Profiling","text":"The trace inside the adjoint can be used to distinguish time taken by the forwards and backwards passes.","category":"page"},{"location":"profiling/#Memory-Profiling-1","page":"Profiling","title":"Memory Profiling","text":"","category":"section"},{"location":"profiling/#","page":"Profiling","title":"Profiling","text":"Reverse-mode AD typically uses memory proportional to the number of operations in the program, so long-running programs can also suffer memory usage issues. Zygote includes a space profiler to help debug these issues. Like the time profiler, it shows a canopy chart, but this time hovering over it displays the number of bytes stored by each line of the program.","category":"page"},{"location":"profiling/#","page":"Profiling","title":"Profiling","text":"(Image: )","category":"page"},{"location":"profiling/#","page":"Profiling","title":"Profiling","text":"Note that this currently only works inside Juno.","category":"page"},{"location":"profiling/#Reflection-1","page":"Profiling","title":"Reflection","text":"","category":"section"},{"location":"profiling/#","page":"Profiling","title":"Profiling","text":"Julia's code and type inference reflection tools can also be useful, though Zygote's use of closures can make the output noisy. To see the code Julia runs you should use the low-level _pullback method and the pullback it returns. This will directly show either the derived adjoint code or the code for a custom adjoint, if there is one.","category":"page"},{"location":"profiling/#","page":"Profiling","title":"Profiling","text":"julia> using Zygote: Context, _pullback\n\njulia> add(a, b) = a+b\n\njulia> @code_typed _pullback(Context(), add, 1, 2)\nCodeInfo(\n1 ─ %1 = (Base.getfield)(args, 1)::Int64\n│ %2 = (Base.getfield)(args, 2)::Int64\n│ %3 = (Base.add_int)(%1, %2)::Int64\n│ %4 = (Base.tuple)(%3, $(QuoteNode(∂(add))))::PartialTuple(Tuple{Int64,typeof(∂(add))}, Any[Int64, Const(∂(add), false)])\n└── return %4\n) => Tuple{Int64,typeof(∂(add))}\n\njulia> y, back = _pullback(Context(), add, 1, 2)\n(3, ∂(add))\n\njulia> @code_typed back(1)\nCodeInfo(\n1 ─ %1 = (Base.mul_int)(Δ, 1)::Int64\n│ %2 = (Base.mul_int)(Δ, 1)::Int64\n│ %3 = (Zygote.tuple)(nothing, %1, %2)::PartialTuple(Tuple{Nothing,Int64,Int64}, Any[Const(nothing, false), Int64, Int64])\n└── return %3\n) => Tuple{Nothing,Int64,Int64}","category":"page"},{"location":"complex/#Complex-Differentiation-1","page":"Complex Differentiation","title":"Complex Differentiation","text":"","category":"section"},{"location":"complex/#","page":"Complex Differentiation","title":"Complex Differentiation","text":"Complex numbers add some difficulty to the idea of a \"gradient\". To talk about gradient(f, x) here we need to talk a bit more about f.","category":"page"},{"location":"complex/#","page":"Complex Differentiation","title":"Complex Differentiation","text":"If f returns a real number, things are fairly straightforward. For c = x + yi and z = f(c), we can define the adjoint bar c = fracpartial zpartial x + fracpartial zpartial yi = bar x + bar y i (note that bar c means gradient, and c means conjugate). It's exactly as if the complex number were just a pair of reals (re, im). This works out of the box.","category":"page"},{"location":"complex/#","page":"Complex Differentiation","title":"Complex Differentiation","text":"julia> using Zygote\n\njulia> gradient(c -> abs2(c), 1+2im)\n(2.0 + 4.0im,)","category":"page"},{"location":"complex/#","page":"Complex Differentiation","title":"Complex Differentiation","text":"However, while this is a very pragmatic definition that works great for gradient descent, it's not quite aligned with the mathematical notion of the derivative: i.e. f(c + epsilon) approx f(c) + bar c epsilon. In general, such a bar c is not possible for complex numbers except when f is holomorphic (or analytic). Roughly speaking this means that the function is defined over c as if it were a normal real number, without exploiting its complex structure – it can't use real, imag, conj, or anything that depends on these like abs2 (abs2(x) = x*x'). (This constraint also means there's no overlap with the Real case above; holomorphic functions always return complex numbers for complex input.) But most \"normal\" numerical functions – exp, log, anything that can be represented by a Taylor series – are fine.","category":"page"},{"location":"complex/#","page":"Complex Differentiation","title":"Complex Differentiation","text":"Fortunately it's also possible to get these derivatives; they are the conjugate of the gradients for the real part.","category":"page"},{"location":"complex/#","page":"Complex Differentiation","title":"Complex Differentiation","text":"julia> gradient(x -> real(log(x)), 1+2im)[1] |> conj\n0.2 - 0.4im","category":"page"},{"location":"complex/#","page":"Complex Differentiation","title":"Complex Differentiation","text":"We can check that this function is holomorphic – and thus that the gradient we got out is sensible – by checking the Cauchy-Riemann equations. In other words this should give the same answer:","category":"page"},{"location":"complex/#","page":"Complex Differentiation","title":"Complex Differentiation","text":"julia> -im*gradient(x -> imag(log(x)), 1+2im)[1] |> conj\n0.2 - 0.4im","category":"page"},{"location":"complex/#","page":"Complex Differentiation","title":"Complex Differentiation","text":"Notice that this fails in a non-holomorphic case, f(x) = log(x'):","category":"page"},{"location":"complex/#","page":"Complex Differentiation","title":"Complex Differentiation","text":"julia> gradient(x -> real(log(x')), 1+2im)[1] |> conj\n0.2 - 0.4im\n\njulia> -im*gradient(x -> imag(log(x')), 1+2im)[1] |> conj\n-0.2 + 0.4im","category":"page"},{"location":"complex/#","page":"Complex Differentiation","title":"Complex Differentiation","text":"In cases like these, all bets are off. The gradient can only be described with more information; either a 2x2 Jacobian (a generalisation of the Real case, where the second column is now non-zero), or by the two Wirtinger derivatives (a generalisation of the holomorphic case, where frac f z is now non-zero). To get these efficiently, as we would a Jacobian, we can just call the backpropagators twice.","category":"page"},{"location":"complex/#","page":"Complex Differentiation","title":"Complex Differentiation","text":"function jacobi(f, x)\n y, back = Zygote.pullback(f, x)\n back(1)[1], back(im)[1]\nend\n\nfunction wirtinger(f, x)\n du, dv = jacobi(f, x)\n (du' + im*dv')/2, (du + im*dv)/2\nend","category":"page"},{"location":"complex/#","page":"Complex Differentiation","title":"Complex Differentiation","text":"julia> wirtinger(x -> 3x^2 + 2x + 1, 1+2im)\n(8.0 + 12.0im, 0.0 + 0.0im)\n\njulia> wirtinger(x -> abs2(x), 1+2im)\n(1.0 - 2.0im, 1.0 + 2.0im)","category":"page"},{"location":"utils/#Utilities-1","page":"Utilities","title":"Utilities","text":"","category":"section"},{"location":"utils/#","page":"Utilities","title":"Utilities","text":"Zygote's gradients can be used to construct a Jacobian (by repeated evaluation) or a Hessian (by taking a second derivative).","category":"page"},{"location":"utils/#","page":"Utilities","title":"Utilities","text":"Zygote.jacobian\nZygote.hessian\nZygote.hessian_reverse\nZygote.diaghessian","category":"page"},{"location":"utils/#Zygote.jacobian","page":"Utilities","title":"Zygote.jacobian","text":"jacobian(f, args...) -> Tuple\n\nFor each array a ∈ args this returns a matrix with Ja[k,i] = ∂y[k]/∂a[i] where y = f(args...) is usually a vector. Arrays of higher dimension are treated like vec(a), or vec(y) for output.\n\nFor scalar x::Number ∈ args, the result is a vector Jx[k] = ∂y[k]/∂x, while for scalar y all results have just one row.\n\nWith any other argument type, no result is produced, even if gradient would work.\n\nThis reverse-mode Jacobian needs to evaluate the pullback once for each element of y. Doing so is usually only efficient when length(y) is small compared to length(a), otherwise forward mode is likely to be better.\n\nSee also withjacobian, hessian, hessian_reverse.\n\nExamples\n\njulia> jacobian(a -> 100*a[1:3].^2, 1:7)[1] # first index (rows) is output\n3×7 Matrix{Int64}:\n 200 0 0 0 0 0 0\n 0 400 0 0 0 0 0\n 0 0 600 0 0 0 0\n\njulia> jacobian((a,x) -> a.^2 .* x, [1,2,3], 1) # scalar argument has vector jacobian\n([2 0 0; 0 4 0; 0 0 6], [1, 4, 9])\n\njulia> jacobian((a,d) -> prod(a, dims=d), [1 2; 3 4; 5 6], 2)\n([2 0 … 0 0; 0 4 … 3 0; 0 0 … 0 5], [0, 0, 0])\n\nwarning: Warning\nFor arguments of any type except Number & AbstractArray, the result is nothing.\n\njulia> jacobian((a,s) -> a.^length(s), [1,2,3], \"str\")\n([3 0 0; 0 12 0; 0 0 27], nothing)\n\njulia> jacobian((a,t) -> sum(a .* t[1]) + t[2], [1,2,3], (4,5))\n([4 4 4], nothing)\n\njulia> gradient((a,t) -> sum(a .* t[1]) + t[2], [1,2,3], (4,5)) # gradient undersands the tuple\n([4 4 4], (6, 1))\n\n\n\n\n\njacobian(loss, ::Params)\n\nLike gradient with implicit parameters, this method takes a zero-argument function and returns an IdDict-like object, now containing the Jacobian for each parameter.\n\nExamples\n\njulia> xs = [1 2; 3 4]; ys = [5,7,9];\n\njulia> Jxy = jacobian(() -> ys[1:2] .+ sum(xs.^2), Params([xs, ys]))\nGrads(...)\n\njulia> Jxy[ys]\n2×3 Matrix{Int64}:\n 1 0 0\n 0 1 0\n\njulia> Jxy[xs]\n2×4 Matrix{Int64}:\n 2 6 4 8\n 2 6 4 8\n\n\n\n\n\n","category":"function"},{"location":"utils/#Zygote.hessian","page":"Utilities","title":"Zygote.hessian","text":"hessian(f, x)\n\nConstruct the Hessian ∂²f/∂x², where x is a real number or an array, and f(x) is a real number. When x is an array, the result is a matrix H[i,j] = ∂²f/∂x[i]∂x[j], using linear indexing x[i] even if the argument is higher-dimensional.\n\nThis uses forward over reverse, ForwardDiff over Zygote, calling hessian_dual(f, x). See hessian_reverse for an all-Zygote alternative.\n\nSee also diaghessian to compute only the diagonal part.\n\nExamples\n\njulia> hessian(x -> x[1]*x[2], randn(2))\n2×2 Matrix{Float64}:\n 0.0 1.0\n 1.0 0.0\n\njulia> hessian(x -> sum(x.^3), [1 2; 3 4]) # uses linear indexing of x\n4×4 Matrix{Int64}:\n 6 0 0 0\n 0 18 0 0\n 0 0 12 0\n 0 0 0 24\n\njulia> hessian(sin, pi/2)\n-1.0\n\n\n\n\n\n","category":"function"},{"location":"utils/#Zygote.hessian_reverse","page":"Utilities","title":"Zygote.hessian_reverse","text":"hessian_reverse(f, x)\n\nThis should be equivalent to hessian(f, x), but implemented using reverse over reverse mode, all Zygote. (This is usually much slower, and more likely to find errors.)\n\n\n\n\n\n","category":"function"},{"location":"utils/#Zygote.diaghessian","page":"Utilities","title":"Zygote.diaghessian","text":"diaghessian(f, args...) -> Tuple\n\nDiagonal part of the Hessian. Returns a tuple containing, for each argument x, h of the same shape with h[i] = Hᵢᵢ = ∂²y/∂x[i]∂x[i]. The original evaluation y = f(args...) must give a real number y.\n\nFor one vector argument x, this is equivalent to (diag(hessian(f,x)),). Like hessian it uses ForwardDiff over Zygote. \n\nwarning: Warning\nFor arguments of any type except Number & AbstractArray, the result is nothing.\n\nExamples\n\njulia> diaghessian(x -> sum(x.^3), [1 2; 3 4])[1]\n2×2 Matrix{Int64}:\n 6 12\n 18 24\n\njulia> Diagonal(vec(ans)) == hessian(x -> sum(x.^3), [1 2; 3 4]) # full Hessian is diagonal\ntrue\n\njulia> diaghessian((x,y) -> sum(x .* y .* y'), [1 22; 333 4], [0.5, 0.666]) # two array arguments\n([0.0 0.0; 0.0 0.0], [2.0, 8.0])\n\njulia> diaghessian(atan, 1, 2) # two scalar arguments\n(-0.16, 0.16)\n\njulia> hessian(xy -> atan(xy[1], xy[2]), [1, 2]) # full Hessian is not diagonal\n2×2 Matrix{Float64}:\n -0.16 -0.12\n -0.12 0.16\n\n\n\n\n\n","category":"function"},{"location":"utils/#","page":"Utilities","title":"Utilities","text":"Zygote also provides a set of helpful utilities. These are all \"user-level\" tools – in other words you could have written them easily yourself, but they live in Zygote for convenience.","category":"page"},{"location":"utils/#","page":"Utilities","title":"Utilities","text":"See ChainRules.ignore_derivatives if you want to exclude some of your code from the gradient calculation. This replaces previous Zygote-specific ignore and dropgrad functionality.","category":"page"},{"location":"utils/#","page":"Utilities","title":"Utilities","text":"Zygote.withgradient\nZygote.withjacobian\nZygote.@showgrad\nZygote.hook\nZygote.Buffer\nZygote.forwarddiff\nZygote.checkpointed","category":"page"},{"location":"utils/#Zygote.withgradient","page":"Utilities","title":"Zygote.withgradient","text":"withgradient(f, args...)\nwithgradient(f, ::Params)\n\nReturns both the value of the function and the gradient, as a named tuple. \n\njulia> y, ∇ = withgradient(/, 1, 2)\n(val = 0.5, grad = (0.5, -0.25))\n\njulia> ∇ == gradient(/, 1, 2)\ntrue\n\nAllows you to capture auxillary outputs, in addition to the scalar used by gradient. To do this, f must return a Tuple or NamedTuple. Then it calculates grad = gradient(first∘f, args...) but returns the wholeval = f(args...)`:\n\njulia> withgradient([1,2,4]) do x\n z = 1 ./ x\n sum(z), z # here z is an auxillary output\n end\n(val = (1.75, [1.0, 0.5, 0.25]), grad = ([-1.0, -0.25, -0.0625],))\n\njulia> withgradient(3.0, 4.0) do x, y\n (div = x/y, mul = x*y)\n end\n(val = (div = 0.75, mul = 12.0), grad = (0.25, -0.1875))\n\nAlso supports implicit mode:\n\njulia> w = [3.0];\n\njulia> res = withgradient(() -> sum(abs2, w), Params([w]))\n(val = 9.0, grad = Grads(...))\n\njulia> res.grad[w]\n1-element Vector{Float64}:\n 6.0\n\n\n\n\n\n","category":"function"},{"location":"utils/#Zygote.withjacobian","page":"Utilities","title":"Zygote.withjacobian","text":"withjacobian(f, args...)\n\nReturns both the value f(args...) and the jacobian as a named tuple.\n\njulia> withjacobian(cumsum, [1,2,3])\n(val = [1, 3, 6], grad = ([1 0 0; 1 1 0; 1 1 1],))\n\n\n\n\n\n","category":"function"},{"location":"utils/#Zygote.@showgrad","page":"Utilities","title":"Zygote.@showgrad","text":"@showgrad(x) -> x\n\nMuch like @show, but shows the gradient about to accumulate to x. Useful for debugging gradients.\n\njulia> gradient(2, 3) do a, b\n @showgrad(a)*b\n end\n∂(a) = 3\n(3, 2)\n\nNote that the gradient depends on how the output of @showgrad is used, and is not the overall gradient of the variable a. For example:\n\njulia> gradient(2) do a\n @showgrad(a)*a\n end\n∂(a) = 2\n(4,)\n\njulia> gradient(2, 3) do a, b\n @showgrad(a) # not used, so no gradient\n a*b\n end\n∂(a) = nothing\n(3, 2)\n\n\n\n\n\n","category":"macro"},{"location":"utils/#Zygote.hook","page":"Utilities","title":"Zygote.hook","text":"hook(x̄ -> ..., x) -> x\n\nGradient hooks. Allows you to apply an arbitrary function to the gradient for x.\n\njulia> gradient(2, 3) do a, b\n hook(ā -> @show(ā), a)*b\n end\nā = 3\n(3, 2)\n\njulia> gradient(2, 3) do a, b\n hook(-, a)*b\n end\n(-3, 2)\n\n\n\n\n\n","category":"function"},{"location":"utils/#Zygote.Buffer","page":"Utilities","title":"Zygote.Buffer","text":"Buffer(xs, ...)\n\nBuffer is an array-like type which is mutable when taking gradients. You can construct a Buffer with the same syntax as similar (e.g. Buffer(xs, 5)) and then use normal indexing. Finally, use copy to get back a normal array.\n\nFor example:\n\njulia> function vstack(xs)\n buf = Buffer(xs, length(xs), 5)\n for i = 1:5\n buf[:, i] = xs\n end\n return copy(buf)\n end\nvstack (generic function with 1 method)\n\njulia> vstack([1, 2, 3])\n3×5 Array{Int64,2}:\n 1 1 1 1 1\n 2 2 2 2 2\n 3 3 3 3 3\n\njulia> gradient(x -> sum(vstack(x)), [1, 2, 3])\n([5.0, 5.0, 5.0],)\n\nBuffer is not an AbstractArray and can't be used for linear algebra operations like matrix multiplication. This prevents it from being captured by pullbacks.\n\ncopy is a semantic copy, but does not allocate memory. Instead the Buffer is made immutable after copying.\n\n\n\n\n\n","category":"type"},{"location":"utils/#Zygote.forwarddiff","page":"Utilities","title":"Zygote.forwarddiff","text":"forwarddiff(f, x; chunk_threshold = ForwardDiff.DEFAULT_CHUNK_THRESHOLD) -> f(x)\n\nRuns f(x) as usual, but instructs Zygote to differentiate f using forward mode, rather than the usual reverse mode. The chunk_threshold argument controls the maximum chunk size (c.f. ForwardDiff documentation).\n\nForward mode takes time linear in length(x) but only has constant memory overhead, and is very efficient for scalars, so in some cases this can be a useful optimisation.\n\njulia> function pow(x, n)\n r = one(x)\n for i = 1:n\n r *= x\n end\n return r\n end\npow (generic function with 1 method)\n\njulia> gradient(5) do x\n forwarddiff(x) do x\n pow(x, 2)\n end\n end\n(10,)\n\nNote that the function f will drop gradients for any closed-over values.\n\njulia> gradient(2, 3) do a, b\n forwarddiff(a) do a\n a*b\n end\n end\n(3, nothing)\n\nThis can be rewritten by explicitly passing through b, i.e.\n\ngradient(2, 3) do a, b\n forwarddiff([a, b]) do (a, b)\n a*b\n end\nend\n\n\n\n\n\n","category":"function"},{"location":"utils/#Zygote.checkpointed","page":"Utilities","title":"Zygote.checkpointed","text":"checkpointed(f, xs...)\n\nUse gradient checkpointing on the call f(xs...). This means that checkpointed(f, xs...) === f(xs...), but when computing the derivative intermediate results from the forward pass of f will not be stored. Instead the forward pass will be repeated, when computing the derivative. This saves memory at the cost of increasing execution time.\n\nwarning: Warning\nIf f is not a pure function, checkpointed will likely give wrong results.\n\n\n\n\n\n","category":"function"},{"location":"utils/#","page":"Utilities","title":"Utilities","text":"Params and Grads can be copied to and from arrays using the copy! function.","category":"page"},{"location":"utils/#Working-with-Grads-1","page":"Utilities","title":"Working with Grads","text":"","category":"section"},{"location":"utils/#","page":"Utilities","title":"Utilities","text":"Map, broadcast, and iteration are supported for the dictionary-like Grads objects. These operations are value based and preserve the keys.","category":"page"},{"location":"utils/#","page":"Utilities","title":"Utilities","text":"using Zygote, Test\n\nw, x1, x2, b = rand(2), rand(2), rand(2), rand(2)\n\ngs1 = gradient(() -> sum(tanh.(w .* x1 .+ b)), Params([w, b]))\ngs2 = gradient(() -> sum(tanh.(w .* x2 .+ b)), Params([w, b]))\n\n# accumulate gradients\ngs = gs1 .+ gs2\n@test gs[w] ≈ gs1[w] + gs2[w]\n@test gs[b] ≈ gs1[b] + gs2[b]\n\n# gradients and IdDict interact nicely\n# note that an IdDict must be used for gradient algebra on the GPU\ngs .+= IdDict(p => randn(size(p)) for p in keys(gs))\n\n# clip gradients\nmap(x -> clamp.(x, -0.1, 0.1), gs)\n\n# clip gradients in-place\nforeach(x -> clamp!(x, -0.1, 0.1), gs)\n\nfor (p, g) in pairs(gs)\n # do something with parameter `p` and corresponding gradient `g`\nend\n\n# note that gradients must be w.r.t. to the same parameter key set\ngs3 = gradient(() -> sum(tanh.(w .* x2)), Params([w]))\n# gs3 does not have the key b\n@test_throws ArgumentError gs1 .+ gs3","category":"page"},{"location":"adjoints/#Custom-Adjoints-1","page":"Custom Adjoints","title":"Custom Adjoints","text":"","category":"section"},{"location":"adjoints/#","page":"Custom Adjoints","title":"Custom Adjoints","text":"note: Prefer to use ChainRulesCore to define custom adjoints\nZygote supports the use of ChainRulesCore to define custom sensitivities. It is preferred to define the custom sensitivities using ChainRulesCore.rrule as they will work for many AD systems, not just Zygote. These sensitivities can be added in your own package, or for Base/StdLib functions they can be added to ChainRules.jl. To define custom sensitivities using ChainRulesCore, define a ChainRulesCore.rrule(f, args...; kwargs...). Head to ChainRules project's documentation for more information. If you are defining your custom adjoints using ChainRulesCore then you do not need to read this page, and can consider it as documenting a legacy feature.This page exists to describe how Zygote works, and how adjoints can be directly defined for Zygote. Defining adjoints this way does not make them accessible to other AD systems, but does let you do things that directly depend on how Zygote works. It allows for specific definitions of adjoints that are only defined for Zygote (which might work differently to more generic definitions defined for all AD).","category":"page"},{"location":"adjoints/#","page":"Custom Adjoints","title":"Custom Adjoints","text":"The @adjoint macro is an important part of Zygote's interface; customising your backwards pass is not only possible but widely used and encouraged. While there are specific utilities available for common things like gradient clipping, understanding adjoints will give you the most flexibility. We first give a bit more background on what these pullback things are.","category":"page"},{"location":"adjoints/#Pullbacks-1","page":"Custom Adjoints","title":"Pullbacks","text":"","category":"section"},{"location":"adjoints/#","page":"Custom Adjoints","title":"Custom Adjoints","text":"gradient is really just syntactic sugar around the more fundamental function pullback.","category":"page"},{"location":"adjoints/#","page":"Custom Adjoints","title":"Custom Adjoints","text":"julia> using Zygote\n\njulia> y, back = Zygote.pullback(sin, 0.5);\n\njulia> y\n0.479425538604203","category":"page"},{"location":"adjoints/#","page":"Custom Adjoints","title":"Custom Adjoints","text":"pullback gives two outputs: the result of the original function, sin(0.5), and a pullback, here called back. back implements the gradient computation for sin, accepting a derivative and producing a new one. In mathematical terms, it implements a vector-Jacobian product. Where y = f(x) and the gradient fracpartial lpartial x is written barx, the pullback mathcalB_y computes:","category":"page"},{"location":"adjoints/#","page":"Custom Adjoints","title":"Custom Adjoints","text":"barx = fracpartial lpartial x = fracpartial lpartial y fracpartial ypartial x = mathcalB_y(bary)","category":"page"},{"location":"adjoints/#","page":"Custom Adjoints","title":"Custom Adjoints","text":"To make this concrete, take the function y = sin(x). fracpartial ypartial x = cos(x), so the pullback is bary cos(x). In other words pullback(sin, x) behaves the same as","category":"page"},{"location":"adjoints/#","page":"Custom Adjoints","title":"Custom Adjoints","text":"dsin(x) = (sin(x), ȳ -> (ȳ * cos(x),))","category":"page"},{"location":"adjoints/#","page":"Custom Adjoints","title":"Custom Adjoints","text":"gradient takes a function l = f(x) and assumes l = fracpartial lpartial l = 1 and feeds this in to the pullback. In the case of sin,","category":"page"},{"location":"adjoints/#","page":"Custom Adjoints","title":"Custom Adjoints","text":"julia> function gradsin(x)\n _, back = dsin(x)\n back(1)\n end\ngradsin (generic function with 1 method)\n\njulia> gradsin(0.5)\n(0.8775825618903728,)\n\njulia> cos(0.5)\n0.8775825618903728","category":"page"},{"location":"adjoints/#","page":"Custom Adjoints","title":"Custom Adjoints","text":"More generally","category":"page"},{"location":"adjoints/#","page":"Custom Adjoints","title":"Custom Adjoints","text":"julia> function mygradient(f, x...)\n _, back = Zygote.pullback(f, x...)\n back(1)\n end\nmygradient (generic function with 1 method)\n\njulia> mygradient(sin, 0.5)\n(0.8775825618903728,)","category":"page"},{"location":"adjoints/#","page":"Custom Adjoints","title":"Custom Adjoints","text":"The rest of this section contains more technical detail. It can be skipped if you only need an intuition for pullbacks; you generally won't need to worry about it as a user.","category":"page"},{"location":"adjoints/#","page":"Custom Adjoints","title":"Custom Adjoints","text":"If x and y are vectors, fracpartial ypartial x becomes a Jacobian. Importantly, because we are implementing reverse mode we actually left-multiply the Jacobian, i.e. v'J, rather than the more usual J*v. Transposing v to a row vector and back (v'J)' is equivalent to J'v so our gradient rules actually implement the adjoint of the Jacobian. This is relevant even for scalar code: the adjoint for y = sin(x) is x̄ = cos(x)'*ȳ; the conjugation is usually moot but gives the correct behaviour for complex code. \"Pullbacks\" are therefore sometimes called \"vector-Jacobian products\" (VJPs), and we refer to the reverse mode rules themselves as \"adjoints\".","category":"page"},{"location":"adjoints/#","page":"Custom Adjoints","title":"Custom Adjoints","text":"Zygote has many adjoints for non-mathematical operations such as for indexing and data structures. Though these can still be seen as linear functions of vectors, it's not particularly enlightening to implement them with an actual matrix multiply. In these cases it's easiest to think of the adjoint as a kind of inverse. For example, the gradient of a function that takes a tuple to a struct (e.g. y = Complex(a, b)) will generally take a struct to a tuple ((ȳ.re, ȳ.im)). The gradient of a getindex y = x[i...] is a setindex! x̄[i...] = ȳ, etc.","category":"page"},{"location":"adjoints/#Custom-Adjoints-2","page":"Custom Adjoints","title":"Custom Adjoints","text":"","category":"section"},{"location":"adjoints/#","page":"Custom Adjoints","title":"Custom Adjoints","text":"We can extend Zygote to a new function with the @adjoint function.","category":"page"},{"location":"adjoints/#","page":"Custom Adjoints","title":"Custom Adjoints","text":"julia> mul(a, b) = a*b;\n\njulia> using Zygote: @adjoint\n\njulia> @adjoint mul(a, b) = mul(a, b), c̄ -> (c̄*b, c̄*a)\n\njulia> gradient(mul, 2, 3)\n(3.0, 2.0)","category":"page"},{"location":"adjoints/#","page":"Custom Adjoints","title":"Custom Adjoints","text":"It might look strange that we write mul(a, b) twice here. In this case we want to call the normal mul function for the pullback pass, but you may also want to modify the pullback pass (for example, to capture intermediate results in the pullback).","category":"page"},{"location":"adjoints/#Custom-Types-1","page":"Custom Adjoints","title":"Custom Types","text":"","category":"section"},{"location":"adjoints/#","page":"Custom Adjoints","title":"Custom Adjoints","text":"One good use for custom adjoints is to customise how your own types behave during differentiation. For example, in our Point example we noticed that the adjoint is a named tuple, rather than another point.","category":"page"},{"location":"adjoints/#","page":"Custom Adjoints","title":"Custom Adjoints","text":"import Base: +, -\n\nstruct Point\n x::Float64\n y::Float64\nend\n\nwidth(p::Point) = p.x\nheight(p::Point) = p.y\n\na::Point + b::Point = Point(width(a) + width(b), height(a) + height(b))\na::Point - b::Point = Point(width(a) - width(b), height(a) - height(b))\ndist(p::Point) = sqrt(width(p)^2 + height(p)^2)","category":"page"},{"location":"adjoints/#","page":"Custom Adjoints","title":"Custom Adjoints","text":"julia> gradient(a -> dist(a), Point(1, 2))[1]\n(x = 0.4472135954999579, y = 0.8944271909999159)","category":"page"},{"location":"adjoints/#","page":"Custom Adjoints","title":"Custom Adjoints","text":"Fundamentally, this happens because of Zygote's default adjoint for getfield.","category":"page"},{"location":"adjoints/#","page":"Custom Adjoints","title":"Custom Adjoints","text":"julia> gradient(a -> a.x, Point(1, 2))\n((x = 1, y = nothing),)","category":"page"},{"location":"adjoints/#","page":"Custom Adjoints","title":"Custom Adjoints","text":"We can overload this by modifying the getters height and width.","category":"page"},{"location":"adjoints/#","page":"Custom Adjoints","title":"Custom Adjoints","text":"julia> @adjoint width(p::Point) = p.x, x̄ -> (Point(x̄, 0),)\n\njulia> @adjoint height(p::Point) = p.y, ȳ -> (Point(0, ȳ),)\n\njulia> Zygote.refresh() # currently needed when defining new adjoints\n\njulia> gradient(a -> height(a), Point(1, 2))\n(Point(0.0, 1.0),)\n\njulia> gradient(a -> dist(a), Point(1, 2))[1]\nPoint(0.4472135954999579, 0.8944271909999159)","category":"page"},{"location":"adjoints/#","page":"Custom Adjoints","title":"Custom Adjoints","text":"If you do this you should also overload the Point constructor, so that it can handle a Point gradient (otherwise this function will error).","category":"page"},{"location":"adjoints/#","page":"Custom Adjoints","title":"Custom Adjoints","text":"julia> @adjoint Point(a, b) = Point(a, b), p̄ -> (p̄.x, p̄.y)\n\njulia> gradient(x -> dist(Point(x, 1)), 1)\n(0.7071067811865475,)","category":"page"},{"location":"adjoints/#Advanced-Adjoints-1","page":"Custom Adjoints","title":"Advanced Adjoints","text":"","category":"section"},{"location":"adjoints/#","page":"Custom Adjoints","title":"Custom Adjoints","text":"We usually use custom adjoints to add gradients that Zygote can't derive itself (for example, because they ccall to BLAS). But there are some more advanced and fun things we can to with @adjoint.","category":"page"},{"location":"adjoints/#Gradient-Hooks-1","page":"Custom Adjoints","title":"Gradient Hooks","text":"","category":"section"},{"location":"adjoints/#","page":"Custom Adjoints","title":"Custom Adjoints","text":"julia> hook(f, x) = x\nhook (generic function with 1 method)\n\njulia> @adjoint hook(f, x) = x, x̄ -> (nothing, f(x̄))","category":"page"},{"location":"adjoints/#","page":"Custom Adjoints","title":"Custom Adjoints","text":"hook doesn't seem that interesting, as it doesn't do anything. But the fun part is in the adjoint; it's allowing us to apply a function f to the gradient of x.","category":"page"},{"location":"adjoints/#","page":"Custom Adjoints","title":"Custom Adjoints","text":"julia> gradient((a, b) -> hook(-, a)*b, 2, 3)\n(-3.0, 2.0)","category":"page"},{"location":"adjoints/#","page":"Custom Adjoints","title":"Custom Adjoints","text":"We could use this for debugging or modifying gradients (e.g. gradient clipping).","category":"page"},{"location":"adjoints/#","page":"Custom Adjoints","title":"Custom Adjoints","text":"julia> gradient((a, b) -> hook(ā -> @show(ā), a)*b, 2, 3)\nā = 3.0\n(3.0, 2.0)","category":"page"},{"location":"adjoints/#","page":"Custom Adjoints","title":"Custom Adjoints","text":"Zygote provides both hook and @showgrad so you don't have to write these yourself.","category":"page"},{"location":"adjoints/#Checkpointing-1","page":"Custom Adjoints","title":"Checkpointing","text":"","category":"section"},{"location":"adjoints/#","page":"Custom Adjoints","title":"Custom Adjoints","text":"A more advanced example is checkpointing, in which we save memory by re-computing the pullback pass of a function during the backwards pass. To wit:","category":"page"},{"location":"adjoints/#","page":"Custom Adjoints","title":"Custom Adjoints","text":"julia> checkpoint(f, x) = f(x)\ncheckpoint (generic function with 1 method)\n\njulia> @adjoint checkpoint(f, x) = f(x), ȳ -> Zygote._pullback(f, x)[2](ȳ)\n\njulia> gradient(x -> checkpoint(sin, x), 1)\n(0.5403023058681398,)","category":"page"},{"location":"adjoints/#","page":"Custom Adjoints","title":"Custom Adjoints","text":"If a function has side effects we'll see that the pullback pass happens twice, as expected.","category":"page"},{"location":"adjoints/#","page":"Custom Adjoints","title":"Custom Adjoints","text":"julia> foo(x) = (println(x); sin(x))\nfoo (generic function with 1 method)\n\njulia> gradient(x -> checkpoint(foo, x), 1)\n1\n1\n(0.5403023058681398,)","category":"page"},{"location":"adjoints/#Gradient-Reflection-1","page":"Custom Adjoints","title":"Gradient Reflection","text":"","category":"section"},{"location":"adjoints/#","page":"Custom Adjoints","title":"Custom Adjoints","text":"It's easy to check whether the code we're running is currently being differentiated.","category":"page"},{"location":"adjoints/#","page":"Custom Adjoints","title":"Custom Adjoints","text":"isderiving() = false\n\n@adjoint isderiving() = true, _ -> nothing","category":"page"},{"location":"adjoints/#","page":"Custom Adjoints","title":"Custom Adjoints","text":"A more interesting example is to actually detect how many levels of nesting are going on.","category":"page"},{"location":"adjoints/#","page":"Custom Adjoints","title":"Custom Adjoints","text":"nestlevel() = 0\n\n@adjoint nestlevel() = nestlevel()+1, _ -> nothing","category":"page"},{"location":"adjoints/#","page":"Custom Adjoints","title":"Custom Adjoints","text":"Demo:","category":"page"},{"location":"adjoints/#","page":"Custom Adjoints","title":"Custom Adjoints","text":"julia> function f(x)\n println(nestlevel(), \" levels of nesting\")\n return x\n end\nf (generic function with 1 method)\n\njulia> grad(f, x) = gradient(f, x)[1]\ngrad (generic function with 1 method)\n\njulia> f(1);\n0 levels of nesting\n\njulia> grad(f, 1);\n1 levels of nesting\n\njulia> grad(x -> x*grad(f, x), 1);\n2 levels of nesting","category":"page"},{"location":"limitations/#Design-Limitations-1","page":"Limitations","title":"Design Limitations","text":"","category":"section"},{"location":"limitations/#","page":"Limitations","title":"Limitations","text":"Zygote aims to support differentiating any Julia code, but it still has a few limitations. Notably, you might encounter errors when trying to differentiate:","category":"page"},{"location":"limitations/#","page":"Limitations","title":"Limitations","text":"array mutation,\ntry/catch statements,\n\"foreign call\" expressions.","category":"page"},{"location":"limitations/#","page":"Limitations","title":"Limitations","text":"This section gives examples where each of these errors occurs, as well as possible work-arounds.","category":"page"},{"location":"limitations/#","page":"Limitations","title":"Limitations","text":"Below, it also describes some known bugs in expressions Zygote ought to be able to handle.","category":"page"},{"location":"limitations/#Array-mutation-1","page":"Limitations","title":"Array mutation","text":"","category":"section"},{"location":"limitations/#","page":"Limitations","title":"Limitations","text":"Array mutation is by far the most commonly encountered Zygote limitation.","category":"page"},{"location":"limitations/#","page":"Limitations","title":"Limitations","text":"Automatic differentiation (AD) systems like Zygote are built on basic principles of calculus where we encounter pure functions. This means that the function, y = f(x), does not modify x and only produces the output y based on x. If we have a chain of functions, such as y = h(g(f(x))), we can apply the chain rule to differentiate it. AD systems are built to programmatically apply the chain rule to a series of function calls. Unfortunately, typical programs do not behave this way. We might allocate some memory, x, then call a function y = f!(x) that modifies x to produce the output y. This mutating behavior is a side-effect of f!. Side-effects are difficult for AD systems to handle, because the must track changes to mutated variables and store older versions of the variable. For these reasons, Zygote does not handle array mutation for now.","category":"page"},{"location":"limitations/#","page":"Limitations","title":"Limitations","text":"Let's explore this with a more concrete example. Here we define a simple mutating function, f!, which modifies the elements of its input argument, x, in place.","category":"page"},{"location":"limitations/#","page":"Limitations","title":"Limitations","text":"function f!(x)\n x .= 2 .* x\n\n return x\nend","category":"page"},{"location":"limitations/#","page":"Limitations","title":"Limitations","text":"Let's see what happens when we differentiate f!","category":"page"},{"location":"limitations/#","page":"Limitations","title":"Limitations","text":"julia> gradient(rand(3)) do x\n sum(f!(x))\n end\nERROR: Mutating arrays is not supported -- called copyto!(Vector{Float64}, ...)\nThis error occurs when you ask Zygote to differentiate operations that change\nthe elements of arrays in-place (e.g. setting values with x .= ...)\n\nPossible fixes:\n- avoid mutating operations (preferred)\n- or read the documentation and solutions for this error\n https://fluxml.ai/Zygote.jl/latest/limitations\n\nStacktrace:\n ...","category":"page"},{"location":"limitations/#","page":"Limitations","title":"Limitations","text":"We got an error message and a long stacktrace. The error informs us that our code performs array mutation by calling copyto! (we might not have directly called this function, but it is being invoked somewhere in the call stack). We see that our code includes x .= ... which is given as an example of array mutation. Other examples of mutating operations include:","category":"page"},{"location":"limitations/#","page":"Limitations","title":"Limitations","text":"setting values (x .= ...)\nappending/popping values (push!(x, v) / pop!(x))\ncalling mutating functions (mul!(C, A, B))","category":"page"},{"location":"limitations/#","page":"Limitations","title":"Limitations","text":"warning: Warning\nNon-mutating functions might also use mutation under the hood. This can be done for performance reasons or code re-use.","category":"page"},{"location":"limitations/#","page":"Limitations","title":"Limitations","text":"function g!(x, y)\n x .= 2 .* y\n\n return x\nend\ng(y) = g!(similar(y), y)","category":"page"},{"location":"limitations/#","page":"Limitations","title":"Limitations","text":"Here g is a \"non-mutating function,\" and it indeed does not mutate y, its only argument. But it still allocates a new array and calls g! on this array which will result in a mutating operation. You may encounter such functions when working with another package.","category":"page"},{"location":"limitations/#","page":"Limitations","title":"Limitations","text":"Specifically for array mutation, we can use Zygote.Buffer to re-write our function. For example, let's fix the function g! above.","category":"page"},{"location":"limitations/#","page":"Limitations","title":"Limitations","text":"function g!(x, y)\n x .= 2 .* y\n\n return x\nend\n\nfunction g(y)\n x = Zygote.Buffer(y) # Buffer supports syntax like similar\n g!(x, y)\n return copy(x) # this step makes the Buffer immutable (w/o actually copying)\nend\n\njulia> gradient(rand(3)) do y\n sum(g(y))\n end\n([2.0, 2.0, 2.0],)","category":"page"},{"location":"limitations/#Try-catch-statements-1","page":"Limitations","title":"Try-catch statements","text":"","category":"section"},{"location":"limitations/#","page":"Limitations","title":"Limitations","text":"Any expressions involving try/catch statements is not supported.","category":"page"},{"location":"limitations/#","page":"Limitations","title":"Limitations","text":"function tryme(x)\n try\n 2 * x\n catch e\n throw(e)\n end\nend\n\njulia> gradient(rand(3)) do x\n sum(tryme(x))\n end\nERROR: Compiling Tuple{typeof(tryme), Vector{Float64}}: try/catch is not supported.\nRefer to the Zygote documentation for fixes.\nhttps://fluxml.ai/Zygote.jl/latest/limitations\n\nStacktrace:\n ...","category":"page"},{"location":"limitations/#","page":"Limitations","title":"Limitations","text":"Here tryme uses a try/catch statement, and Zygote throws an error when trying to differentiate it as expected. try/catch expressions are used for error handling, but they are less common in Julia compared to some other languages.","category":"page"},{"location":"limitations/#Foreign-call-expressions-1","page":"Limitations","title":"Foreign call expressions","text":"","category":"section"},{"location":"limitations/#","page":"Limitations","title":"Limitations","text":"Foreign call expressions refer to expressions that call external libraries such as code written in C or Fortran. You may want to read more about these calls in the Julia documentation. Scientific computing libraries in Julia may call established C or Fortran libraries under the hood. Since the underlying code for a foreign call expression is not in Julia, it is not possible for Zygote to differentiate this expression.","category":"page"},{"location":"limitations/#","page":"Limitations","title":"Limitations","text":"Below, we define a function that calls a standard C function, clock. This function returns the Unix clock as an Int32.","category":"page"},{"location":"limitations/#","page":"Limitations","title":"Limitations","text":"julia> jclock(x) = ccall(:clock, Int32, ()) * 2\njclock (generic function with 1 method)\n\njulia> jclock(2)\n30921278\n\njulia> gradient(jclock, rand())\nERROR: Can't differentiate foreigncall expression\nYou might want to check the Zygote limitations documentation.\nhttps://fluxml.ai/Zygote.jl/latest/limitations\n\nStacktrace:\n ...","category":"page"},{"location":"limitations/#","page":"Limitations","title":"Limitations","text":"jclock will multiply the result of our C function by an argument. When we try to differentiate with respect to this argument, we get an foreigncall error.","category":"page"},{"location":"limitations/#Solutions-1","page":"Limitations","title":"Solutions","text":"","category":"section"},{"location":"limitations/#","page":"Limitations","title":"Limitations","text":"For all of the errors above, the suggested solutions are similar. You have the following possible work arounds available (in order of preference):","category":"page"},{"location":"limitations/#","page":"Limitations","title":"Limitations","text":"avoid the error-inducing operation (e.g. do not use mutating functions)\ndefine a custom ChainRulesCore.rrule\nopen an issue on Zygote","category":"page"},{"location":"limitations/#","page":"Limitations","title":"Limitations","text":"Avoiding the operation is simple, just don't do it! If you are using a mutating function, try to use a non-mutating variant. If you are using try/catch statements, try to use more graceful error handling such as returning nothing or another sentinel value. Recall that array mutation can also be avoided by using Zygote.Buffer as discussed above.","category":"page"},{"location":"limitations/#","page":"Limitations","title":"Limitations","text":"Sometimes, we cannot avoid expressions that Zygote cannot differentiate, but we may be able to manually derive a gradient. In these cases, you can write a custom rrule using ChainRules.jl. Please refer to the linked ChainRules documentation for how to do this. This solution is the only solution available for foreign call expressions. Below, we provide a custom rrule for jclock.","category":"page"},{"location":"limitations/#","page":"Limitations","title":"Limitations","text":"jclock(x) = ccall(:clock, Int32, ()) * x\n\nfunction ChainRulesCore.rrule(::typeof(jclock), x)\n y = jclock(x)\n pb(ȳ) = (ChainRulesCore.NoTangent(), ȳ * y)\n\n return y, pb\nend\n\njulia> gradient(jclock, rand())\n(674298.4243400148,)","category":"page"},{"location":"limitations/#","page":"Limitations","title":"Limitations","text":"Lastly, if the code causing problems can be fixed, but it is package code instead of your code, then you should open an issue. For functions built into Julia or its standard libraries, you can open an issue with Zygote.jl or ChainRules.jl. For functions in other packages, you can open an issue with the corresponding package issue tracker.","category":"page"},{"location":"limitations/#Known-Issues-1","page":"Limitations","title":"Known Issues","text":"","category":"section"},{"location":"limitations/#","page":"Limitations","title":"Limitations","text":"Zygote's issue tracker has the current list of open bugs. There are some general principles about things you may wish to avoid if you can:","category":"page"},{"location":"limitations/#mutable-structs-1","page":"Limitations","title":"mutable structs","text":"","category":"section"},{"location":"limitations/#","page":"Limitations","title":"Limitations","text":"Zygote has limited support for mutation, and in particular will allow you to change a field in some mutable struct X; a; b; end by setting x.a = val.","category":"page"},{"location":"limitations/#","page":"Limitations","title":"Limitations","text":"However, this has many limitations and should be avoided if possible.","category":"page"},{"location":"limitations/#","page":"Limitations","title":"Limitations","text":"The simple solution is to use only immutable structs. ","category":"page"},{"location":"limitations/#","page":"Limitations","title":"Limitations","text":"If you need to modify them, using something like @set from Accessors.jl should work well. This returns a new object, but does not have side-effects on other copies of it. ","category":"page"},{"location":"limitations/#Re-using-variable-names-1","page":"Limitations","title":"Re-using variable names","text":"","category":"section"},{"location":"limitations/#","page":"Limitations","title":"Limitations","text":"It is common to accumulate values in a loop by re-binding the same variable name to a new value many times, for example:","category":"page"},{"location":"limitations/#","page":"Limitations","title":"Limitations","text":"function mysum(x::Real, n::Int)\n tot = 0.0\n for i in 1:n\n tot += x^n # binds symbol `tot` to new value\n end\n return tot\nend","category":"page"},{"location":"limitations/#","page":"Limitations","title":"Limitations","text":"However, sometimes such re-binding confuses Zygote, especially if the type of the value changes. Especially if the variable is \"boxed\", as will happen if you re-bind from within a closure (such as the function created by a do block).","category":"page"},{"location":"limitations/#Second-derivatives-1","page":"Limitations","title":"Second derivatives","text":"","category":"section"},{"location":"limitations/#","page":"Limitations","title":"Limitations","text":"In principle Zygote supports taking derivatives of derivatives. There are, however, a few problems:","category":"page"},{"location":"limitations/#","page":"Limitations","title":"Limitations","text":"Quite a few of its rules are not written in a way that is itself differentiable. For instance they may work by making an array then writing into it, which is mutation of the sort forbidden above. \nThe complexity of the code grows rapidly, as Zygote differentiates its own un-optimised output.\nReverse mode over reverse mode is seldom the best algorithm.","category":"page"},{"location":"limitations/#","page":"Limitations","title":"Limitations","text":"The issue tracker has a label for second order, which will outline where the bodies are buried.","category":"page"},{"location":"limitations/#","page":"Limitations","title":"Limitations","text":"Often using a different AD system over Zygote is a better solution. This is what hessian does, using ForwardDiff over Zygote, but other combinations are possible. (Note that rules defined here mean that Zygote over ForwardDiff is translated to ForwardDiff over ForwardDiff.)","category":"page"},{"location":"glossary/#Glossary-1","page":"Glossary","title":"Glossary","text":"","category":"section"},{"location":"glossary/#","page":"Glossary","title":"Glossary","text":"Differentiation is a minefield of conflicting and overlapping terminology, partly because the ideas have been re-discovered in many different fields (e.g. calculus and differential geometry, the traditional AD community, deep learning, finance, etc.) Many of these terms are not well-defined and others may disagree on the details. Nevertheless, we aim to at least say how we use these terms, which will be helpful when reading over Zygote issues, discussions and source code.","category":"page"},{"location":"glossary/#","page":"Glossary","title":"Glossary","text":"The list is certainly not complete; if you see new terms you'd like defined, or would like to add one yourself, please do open an issue or PR.","category":"page"},{"location":"glossary/#","page":"Glossary","title":"Glossary","text":"Adjoint: See pullback. Used when defining new pullbacks (i.e. the @adjoint macro) since this involves defining the adjoint of the Jacobian, in most cases.","category":"page"},{"location":"glossary/#","page":"Glossary","title":"Glossary","text":"Backpropagation: Essentially equivalent to \"reverse-mode AD\". Used particularly in the machine learning world to refer to simple chains of functions f(g(h(x))), but has generalised beyond that.","category":"page"},{"location":"glossary/#","page":"Glossary","title":"Glossary","text":"Derivative: Given a scalar function y = f(x), the derivative is fracpartial ypartial x. \"Partial\" is taken for granted in AD; there's no interesting distinction between partial and total derivatives for our purposes. It's all in the eye of the beholder.","category":"page"},{"location":"glossary/#","page":"Glossary","title":"Glossary","text":"Differential: Given a function f(x), the linearisation partial f such that f(x + epsilon) approx f(x) + partial f epsilon. This is a generalisation of the derivative since it applies to, for example, vector-to-vector functions (partial f is a Jacobian) and holomorphic complex functions (partial f is the first Wirtinger derivative). This is not, in general, what Zygote calculates, though differentials can usually be derived from gradients.","category":"page"},{"location":"glossary/#","page":"Glossary","title":"Glossary","text":"IR: Intermediate Representation. Essentially source code, but usually lower level – e.g. control flow constructs like loops and branches have all been replaced by gotos. The idea is that it's harder for humans to read/write but easier to manipulate programmatically. Worth looking at SSA form as a paradigmatic example.","category":"page"},{"location":"glossary/#","page":"Glossary","title":"Glossary","text":"Gradient: See sensitivity. There is no technical difference in Zygote's view, though \"gradient\" sometimes distinguishes the sensitivity we actually want from e.g. the internal ones that Zygote produces as it backpropagates.","category":"page"},{"location":"glossary/#","page":"Glossary","title":"Glossary","text":"Graph: ML people tend to think of models as \"computation graphs\", but this is no more true than any program is a graph. In fact, pretty much anything is a graph if you squint hard enough. This also refers to the data structure that e.g. TensorFlow and PyTorch build to represent your model, but see trace for that.","category":"page"},{"location":"glossary/#","page":"Glossary","title":"Glossary","text":"Pullback: Given y = f(x) the function bar x = back(bar y). In other words, the function back in y, back = Zygote.pullback(f, x).","category":"page"},{"location":"glossary/#","page":"Glossary","title":"Glossary","text":"Sensitivity: Used to refer to the gradient bar x = fracpartial lpartial x with some scalar loss l. In other words, you have a value x (which need not be scalar) at some point in your program, and bar x tells you how you should change that value to decrease the loss. In the AD world, sometimes used to refer to adjoint rules.","category":"page"},{"location":"glossary/#","page":"Glossary","title":"Glossary","text":"Source to Source Differentiation: Or Source Code Transformation (SCT). As opposed to tracing programs to simplify them, an alternative is to operate directly on a language's source code or IR, generating new source code for pullbacks. This describes Zygote, Swift for TensorFlow, Tapenade and a few other old ADs that worked on C source files. Zygote and Swift are unusual in that they work on in-memory IR rather than text source.","category":"page"},{"location":"glossary/#","page":"Glossary","title":"Glossary","text":"To an extent, tracing ADs can be viewed as source transform of a Wengert list / trace. The key difference is that the trace is a lossy representation of the original semantics, which causes problems with e.g. control flow. Systems which can preserve some of those semantics (e.g. autograph) begin to blur the line here, though they are still not nearly as expressive as language IRs.","category":"page"},{"location":"glossary/#","page":"Glossary","title":"Glossary","text":"Symbolic Differentiation: Used to refer to differentiation of \"mathematical expressions\", that is, things like 3x^2 + sin(x). Often distinguished from AD, though this is somewhat arbitrary; you can happily produce a symbolic adjoint for a Wengert list, the only difference being that you're allowed to make variable bindings. So it's really just a special case of AD on an unusually limited language.","category":"page"},{"location":"glossary/#","page":"Glossary","title":"Glossary","text":"Tape: This term can refer to pretty much any part of an AD implementation. In particular confusion is caused by conflating the trace with the set of values sometimes closed over by a pullback. Autograd has a combined trace/closure data structure which is usually described as the tape. On the other hand, PyTorch described their implementation as tape-free because the trace/closure is stored as a DAG rather than a vector, so basically all bets are off here.","category":"page"},{"location":"glossary/#","page":"Glossary","title":"Glossary","text":"Trace: A recording of each mathematical operation used by a program, made at runtime and usually forming a Wengert list. Traces may or may not also record actual runtime values (e.g. PyTorch vs. TensorFlow). They can often be treated as an IR and compiled, but are distinguished from true IRs in that they unroll and inline all control flow, functions and data structures. The tracing process can be thought of as a kind of partial evaluation, though tracers are typically much less worried about losing information.","category":"page"},{"location":"glossary/#","page":"Glossary","title":"Glossary","text":"Vector-Jacobian product: see pullback. So called because all pullbacks are linear functions that can be represented by (left) multiplication with the Jacobian matrix.","category":"page"},{"location":"glossary/#","page":"Glossary","title":"Glossary","text":"Wengert List: A set of simple variable assignments and mathematical expressions, forming a directed graph. Can be thought of as a limited programming language with variable bindings and numerical functions but no control flow or data structures. If you trace a program for AD it will typically take this form.","category":"page"},{"location":"#Zygote-1","page":"Home","title":"Zygote","text":"","category":"section"},{"location":"#","page":"Home","title":"Home","text":"Welcome! Zygote extends the Julia language to support differentiable programming. With Zygote you can write down any Julia code you feel like – including using existing Julia packages – then get gradients and optimise your program. Deep learning, ML and probabilistic programming are all different kinds of differentiable programming that you can do with Zygote.","category":"page"},{"location":"#","page":"Home","title":"Home","text":"At least, that's the idea. We're still in beta so expect some adventures.","category":"page"},{"location":"#Setup-1","page":"Home","title":"Setup","text":"","category":"section"},{"location":"#","page":"Home","title":"Home","text":"Zygote can be installed from the package manager in Julia's REPL:","category":"page"},{"location":"#","page":"Home","title":"Home","text":"] add Zygote","category":"page"},{"location":"#Taking-Gradients-1","page":"Home","title":"Taking Gradients","text":"","category":"section"},{"location":"#","page":"Home","title":"Home","text":"Zygote is easy to understand since, at its core, it has a one-function API (pullback), along with a few simple conveniences. Before explaining pullback, we'll look at the higher-level function gradient.","category":"page"},{"location":"#","page":"Home","title":"Home","text":"gradient calculates derivatives. For example, the derivative of 3x^2 + 2x + 1 is 6x + 2, so when x = 5, dx = 32.","category":"page"},{"location":"#","page":"Home","title":"Home","text":"julia> using Zygote\n\njulia> gradient(x -> 3x^2 + 2x + 1, 5)\n(32.0,)","category":"page"},{"location":"#","page":"Home","title":"Home","text":"gradient returns a tuple, with a gradient for each argument to the function.","category":"page"},{"location":"#","page":"Home","title":"Home","text":"julia> gradient((a, b) -> a*b, 2, 3)\n(3.0, 2.0)","category":"page"},{"location":"#","page":"Home","title":"Home","text":"This will work equally well if the arguments are arrays, structs, or any other Julia type, but the function should return a scalar (like a loss or objective l, if you're doing optimisation / ML).","category":"page"},{"location":"#","page":"Home","title":"Home","text":"julia> W = rand(2, 3); x = rand(3);\n\njulia> gradient(W -> sum(W*x), W)[1]\n2×3 Array{Float64,2}:\n 0.0462002 0.817608 0.979036\n 0.0462002 0.817608 0.979036\n\njulia> gradient(x -> 3x^2 + 2x + 1, 1//4)\n(7//2,)","category":"page"},{"location":"#","page":"Home","title":"Home","text":"Control flow is fully supported, including recursion.","category":"page"},{"location":"#","page":"Home","title":"Home","text":"julia> function pow(x, n)\n r = 1\n for i = 1:n\n r *= x\n end\n return r\n end\npow (generic function with 1 method)\n\njulia> gradient(x -> pow(x, 3), 5)\n(75.0,)\n\njulia> pow2(x, n) = n <= 0 ? 1 : x*pow2(x, n-1)\npow2 (generic function with 1 method)\n\njulia> gradient(x -> pow2(x, 3), 5)\n(75.0,)","category":"page"},{"location":"#","page":"Home","title":"Home","text":"Data structures are also supported, including mutable ones like dictionaries. Arrays are currently immutable, though this may change in future.","category":"page"},{"location":"#","page":"Home","title":"Home","text":"julia> d = Dict()\nDict{Any, Any}()\n\njulia> gradient(5) do x\n d[:x] = x\n d[:x] * d[:x]\n end\n(10.0,)\n\njulia> d[:x]\n5","category":"page"},{"location":"#Structs-and-Types-1","page":"Home","title":"Structs and Types","text":"","category":"section"},{"location":"#","page":"Home","title":"Home","text":"Julia makes it easy to work with custom types, and Zygote makes it easy to differentiate them. For example, given a simple Point type:","category":"page"},{"location":"#","page":"Home","title":"Home","text":"import Base: +, -\n\nstruct Point\n x::Float64\n y::Float64\nend\n\na::Point + b::Point = Point(a.x + b.x, a.y + b.y)\na::Point - b::Point = Point(a.x - b.x, a.y - b.y)\ndist(p::Point) = sqrt(p.x^2 + p.y^2)","category":"page"},{"location":"#","page":"Home","title":"Home","text":"julia> a = Point(1, 2)\nPoint(1.0, 2.0)\n\njulia> b = Point(3, 4)\nPoint(3.0, 4.0)\n\njulia> dist(a + b)\n7.211102550927978\n\njulia> gradient(a -> dist(a + b), a)[1]\n(x = 0.5547001962252291, y = 0.8320502943378437)","category":"page"},{"location":"#","page":"Home","title":"Home","text":"Zygote's default representation of the \"point adjoint\" is a named tuple with gradients for both fields, but this can of course be customised too.","category":"page"},{"location":"#","page":"Home","title":"Home","text":"This means we can do something very powerful: differentiating through Julia libraries, even if they weren't designed for this. For example, colordiff might be a smarter loss function on colours than simple mean-squared-error:","category":"page"},{"location":"#","page":"Home","title":"Home","text":"julia> using Colors\n\njulia> colordiff(RGB(1, 0, 0), RGB(0, 1, 0))\n86.60823557376344\n\njulia> gradient(colordiff, RGB(1, 0, 0), RGB(0, 1, 0))\n((r = 0.4590887719632896, g = -9.598786801605689, b = 14.181383399012862), (r = -1.7697549557037275, g = 28.88472330558805, b = -0.044793892637761346))","category":"page"},{"location":"#Explicit-and-Implicit-Parameters-1","page":"Home","title":"Explicit and Implicit Parameters","text":"","category":"section"},{"location":"#","page":"Home","title":"Home","text":"It's easy to work with even very large and complex models, and there are few ways to do this. Autograd-style models pass around a collection of weights. Depending on how you write your model, there are multiple ways to explicitly take gradients with respect to parameters. For example, the function linear accepts the parameters as an argument to the model. So, we directly pass in the parameters, θ, as an argument to the function being differentiated.","category":"page"},{"location":"#","page":"Home","title":"Home","text":"gradient(f, args...)","category":"page"},{"location":"#Zygote.gradient-Tuple{Any, Vararg{Any}}","page":"Home","title":"Zygote.gradient","text":"gradient(f, args...)\n\nReturns a tuple containing ∂f/∂x for each argument x, the derivative (for scalar x) or the gradient.\n\nf(args...) must be a real number, see jacobian for array output.\n\nSee also withgradient to keep the value f(args...), and pullback for value and back-propagator.\n\njulia> gradient(*, 2.0, 3.0, 5.0)\n(15.0, 10.0, 6.0)\n\njulia> gradient(x -> sum(abs2,x), [7.0, 11.0, 13.0])\n([14.0, 22.0, 26.0],)\n\njulia> gradient([7, 11], 0, 1) do x, y, d\n p = size(x, d)\n sum(x.^p .+ y)\n end\n([14.0, 22.0], 2.0, nothing)\n\n\n\n\n\n","category":"method"},{"location":"#","page":"Home","title":"Home","text":"julia> linear(θ, x) = θ[:W] * x .+ θ[:b]\nlinear (generic function with 1 method)\n\njulia> x = rand(5);\n\njulia> θ = Dict(:W => rand(2, 5), :b => rand(2))\nDict{Any,Any} with 2 entries:\n :b => [0.0430585, 0.530201]\n :W => [0.923268 … 0.589691]\n\n# Alternatively, use a named tuple or struct rather than a dict.\n# θ = (W = rand(2, 5), b = rand(2))\n\njulia> θ̄ = gradient(θ -> sum(linear(θ, x)), θ)[1]\nDict{Any,Any} with 2 entries:\n :b => [1.0, 1.0]\n :W => [0.628998 … 0.433006]","category":"page"},{"location":"#","page":"Home","title":"Home","text":"We can combine the role of the dictionary and the function here by making a callable struct which contains the parameters, equivalent to a closure. Passed explicitly to gradient, we get a named tuple with the same field names:","category":"page"},{"location":"#","page":"Home","title":"Home","text":"julia> struct Linear\n W\n b\n end\n\njulia> (l::Linear)(x) = l.W * x .+ l.b\n\njulia> model = Linear(rand(2, 5), rand(2))\nLinear([0.267663 … 0.334385], [0.0386873, 0.0203294])\n\njulia> x = rand(5);\n\njulia> dmodel = gradient(model -> sum(model(x)), model)[1]\n(W = [0.652543 … 0.683588], b = [1.0, 1.0])","category":"page"},{"location":"#","page":"Home","title":"Home","text":"Zygote also supports another way to take gradients, via implicit parameters. Here the loss function takes zero arguments, but the variables of interest are indicated by a special Params object. The function linear which depends on W and b is executed when the loss function () -> sum(linear(x)) is called, and hence this dependence is visible to Zygote:","category":"page"},{"location":"#","page":"Home","title":"Home","text":"gradient","category":"page"},{"location":"#Zygote.gradient","page":"Home","title":"Zygote.gradient","text":"gradient(() -> loss(), ps::Params) -> Grads\n\nGradient with implicit parameters. Takes a zero-argument function, and returns a dictionary-like container, whose keys are arrays x in ps.\n\nSee also withgradient to keep the value loss().\n\njulia> x = [1 2 3; 4 5 6]; y = [7, 8]; z = [1, 10, 100];\n\njulia> g = gradient(Params([x, y])) do\n sum(x .* y .* z')\n end\nGrads(...)\n\njulia> g[x]\n2×3 Matrix{Float64}:\n 7.0 70.0 700.0\n 8.0 80.0 800.0\n\njulia> haskey(g, z) # only x and y are parameters\nfalse\n\n\n\n\n\n","category":"function"},{"location":"#","page":"Home","title":"Home","text":"julia> W = rand(2, 5); b = rand(2);\n\njulia> linear(x) = W * x .+ b\nlinear (generic function with 2 methods)\n\njulia> grads = gradient(() -> sum(linear(x)), Params([W, b]))\nGrads(...)\n\njulia> grads[W], grads[b] # access gradients using arrays as keys\n([0.652543 … 0.683588], [1.0, 1.0])","category":"page"},{"location":"#","page":"Home","title":"Home","text":"Here grads is a dictionary-like object, whose keys are the same parameters we indicated in Params. (In fact it wraps a dictionary using objectid(W) as keys, which does not change if the values in W are mutated).","category":"page"},{"location":"#","page":"Home","title":"Home","text":"This implicit style is the one presently used by Flux.jl, a closely related machine learning library. It uses structs like Linear above to define layers, and the function Flux.params(model) returns a Params object containing all the parameters of all layers. See its documentation for more details. When using Zygote for most other purposes, however, the explicit style is usually preferred.","category":"page"},{"location":"internals/#Internals-1","page":"Internals","title":"Internals","text":"","category":"section"},{"location":"internals/#What-Zygote-Does-1","page":"Internals","title":"What Zygote Does","text":"","category":"section"},{"location":"internals/#","page":"Internals","title":"Internals","text":"These notebooks and the Zygote paper provide useful background on Zygote's transform; this page is particularly focused on implementation details.","category":"page"},{"location":"internals/#","page":"Internals","title":"Internals","text":"Before we think about AD, we'll consider some simple cases. We can start by defining a function that produces pullbacks, J, explicitly for some simple functions.","category":"page"},{"location":"internals/#","page":"Internals","title":"Internals","text":"J(::typeof(sin), x) = sin(x), ȳ -> ȳ*cos(x)\nJ(::typeof(cos), x) = cos(x), ȳ -> -ȳ*sin(x)\nJ(::typeof(*), a, b) = a*b, c̄ -> (b*c̄, a*c̄)","category":"page"},{"location":"internals/#","page":"Internals","title":"Internals","text":"Now we can call J to take a gradient.","category":"page"},{"location":"internals/#","page":"Internals","title":"Internals","text":"gradient(f, x...) = J(f, x...)[2](1)\n\ngradient(sin, 1) # (0.540,)\n\ngradient(*, 2, 3) # (3, 2)","category":"page"},{"location":"internals/#","page":"Internals","title":"Internals","text":"Now consider a composite function that calls two simple ones:","category":"page"},{"location":"internals/#","page":"Internals","title":"Internals","text":"function foo(x)\n a = sin(x)\n b = cos(a)\n return b\nend","category":"page"},{"location":"internals/#","page":"Internals","title":"Internals","text":"We can easily differentiate foo if we can differentiate the functions it calls. If we can get pullbacks via J, the pullback for foo looks as follows. Where the forward pass calculates x -> a -> b, the backwards takes b̄ -> ā -> x̄ via the pullbacks.","category":"page"},{"location":"internals/#","page":"Internals","title":"Internals","text":"function J(::typeof(foo), x)\n a, da = J(sin, x)\n b, db = J(cos, a)\n return b, function(b̄)\n ā, = db(b̄)\n x̄, = da(ā)\n return x̄\n end\nend\n\ngradient(foo, 1) # (-0.403,)","category":"page"},{"location":"internals/#","page":"Internals","title":"Internals","text":"Things get just a little more complex when control flow is involved. You can see that the derived adjoint for pow mirrors the original function, except that the loop runs in reverse. The easiest way to see why it looks like this is to imagine unrolling the loop n times, working out the adjoint, and then turning it back into a loop.","category":"page"},{"location":"internals/#","page":"Internals","title":"Internals","text":"function pow(x, n) # x^n\n r = 1\n for _ = 1:n\n r *= x\n end\n return r\nend\n\nfunction J(::typeof(pow), x, n)\n r = 1\n Js = []\n for i = 1:n\n r, back = J(*, r, x)\n push!(Js, back)\n end\n return r, function(r̄)\n x̄ = 0\n for i = n:-1:1\n r̄, x̄′ = Js[i](r̄)\n x̄ += x̄′\n end\n return (x̄, 0)\n end\nend\n\ngradient(pow, 2, 3) # (12, 0)","category":"page"},{"location":"internals/#","page":"Internals","title":"Internals","text":"Despite being reasonably fiddly, this is a fully mechanical transformation, so the only remaining thing is to automate it – a small matter of programming.","category":"page"},{"location":"internals/#Closures-1","page":"Internals","title":"Closures","text":"","category":"section"},{"location":"internals/#","page":"Internals","title":"Internals","text":"The J function here corresponds to pullback in Zygote. However, pullback is actually a wrapper around the lower level _pullback function.","category":"page"},{"location":"internals/#","page":"Internals","title":"Internals","text":"julia> y, back = Zygote._pullback(sin, 0.5);\n\njulia> back(1)\n(nothing, 0.8775825618903728)","category":"page"},{"location":"internals/#","page":"Internals","title":"Internals","text":"Why the extra nothing here? This actually represents the gradient of the function sin. This is often nothing, but when we have closures the function contains data we need gradients for.","category":"page"},{"location":"internals/#","page":"Internals","title":"Internals","text":"julia> f = let a = 3; x -> x*a; end\n#19 (generic function with 1 method)\n\njulia> y, back = Zygote._pullback(f, 2);\n\njulia> back(1)\n((a = 2,), 3)","category":"page"},{"location":"internals/#","page":"Internals","title":"Internals","text":"This is a minor point for the most part, but _pullback will come up in future examples.","category":"page"},{"location":"internals/#Entry-Points-1","page":"Internals","title":"Entry Points","text":"","category":"section"},{"location":"internals/#","page":"Internals","title":"Internals","text":"You might notice that Zygote is, in effect, just a macro. We could happily implement Zygote by writing definitions like","category":"page"},{"location":"internals/#","page":"Internals","title":"Internals","text":"@differentiable foo(x) = sin(cos(x))","category":"page"},{"location":"internals/#","page":"Internals","title":"Internals","text":"which would expand to generate an appropriate overload to J. As long as every function we want to differentiate is annotated, this will work just fine. However, it's obviously not ideal to have to annotate every function inside every Julia package in order to make it differentiable.","category":"page"},{"location":"internals/#","page":"Internals","title":"Internals","text":"This is where generated functions come in. Making J a generated function allows us to apply the Zygote macro on an as-needed basis; calling J(f, x...) looks up the code for f(x...), transforms it, and then behaves as if you had defined J for that specific function ahead of time.","category":"page"},{"location":"internals/#","page":"Internals","title":"Internals","text":"When we look up the code, we actually get lowered (desugared) code rather than an AST.","category":"page"},{"location":"internals/#","page":"Internals","title":"Internals","text":"julia> foo(x) = baz(bar(x))\nfoo (generic function with 1 method)\n\njulia> @code_lowered foo(1)\nCodeInfo(\n1 ─ %1 = (Main.bar)(x)\n│ %2 = (Main.baz)(%1)\n└── return %2","category":"page"},{"location":"internals/#","page":"Internals","title":"Internals","text":"We convert the code to SSA form using Julia's built-in IR data structure, after which it looks like this.","category":"page"},{"location":"internals/#","page":"Internals","title":"Internals","text":"julia> Zygote.@code_ir foo(1)\n1 1 ─ %1 = (Main.bar)(_2)::Any\n │ %2 = (Main.baz)(%1)::Any\n └── return %2","category":"page"},{"location":"internals/#","page":"Internals","title":"Internals","text":"(There isn't much difference unless there's some control flow.)","category":"page"},{"location":"internals/#","page":"Internals","title":"Internals","text":"The code is then differentiated by the code in compiler/reverse.jl. You can see the output with @code_adjoint.","category":"page"},{"location":"internals/#","page":"Internals","title":"Internals","text":"julia> Zygote.@code_adjoint foo(1)\n1 1 ─ %1 = (Zygote._pullback)(_2, Zygote.unwrap, Main.bar)::Any\n │ %2 = (Base.getindex)(%1, 1)::Any\n │ (Base.getindex)(%1, 2)::Any\n │ %4 = (Zygote._pullback)(_2, %2, _4)::Any\n │ %5 = (Base.getindex)(%4, 1)::Any\n │ (Base.getindex)(%4, 2)::Any\n │ %7 = (Zygote._pullback)(_2, Zygote.unwrap, Main.baz)::Any\n │ %8 = (Base.getindex)(%7, 1)::Any\n │ (Base.getindex)(%7, 2)::Any\n │ %10 = (Zygote._pullback)(_2, %8, %5)::Any\n │ %11 = (Base.getindex)(%10, 1)::Any\n │ (Base.getindex)(%10, 2)::Any\n └── return %11\n 1 ─ %1 = Δ()::Any\n1 │ %2 = (@12)(%1)::Any\n │ %3 = (Zygote.gradindex)(%2, 1)::Any\n │ %4 = (Zygote.gradindex)(%2, 2)::Any\n │ (@9)(%3)::Any\n │ %6 = (@6)(%4)::Any\n │ %7 = (Zygote.gradindex)(%6, 1)::Any\n │ %8 = (Zygote.gradindex)(%6, 2)::Any\n │ (@3)(%7)::Any\n │ %10 = (Zygote.tuple)(nothing, %8)::Any\n └── return %10\n, [1])","category":"page"},{"location":"internals/#","page":"Internals","title":"Internals","text":"This code is quite verbose, mainly due to all the tuple unpacking (gradindex is just like getindex, but handles nothing gracefully). There are two pieces of IR here, one for the modified pullback pass and one for the pullback closure. The @ nodes allow the closure to refer to values from the pullback pass, and the Δ() represents the incoming gradient ȳ. In essence, this is just what we wrote above by hand for J(::typeof(foo), x).","category":"page"},{"location":"internals/#","page":"Internals","title":"Internals","text":"compiler/emit.jl lowers this code into runnable IR (e.g. by turning @ references into getfields and stacks), and it's then turned back into lowered code for Julia to run.","category":"page"},{"location":"internals/#Closure-Conversion-1","page":"Internals","title":"Closure Conversion","text":"","category":"section"},{"location":"internals/#","page":"Internals","title":"Internals","text":"There are no closures in lowered Julia code, so we can't actually emit one directly in lowered code. To work around this we have a trick: we have a generic struct like","category":"page"},{"location":"internals/#","page":"Internals","title":"Internals","text":"struct Pullback{F}\n data\nend","category":"page"},{"location":"internals/#","page":"Internals","title":"Internals","text":"We can put whatever we want in data, and the F will be the signature for the original call, like Tuple{typeof(foo),Int}. When the pullback gets called it hits another generated function which emits the pullback code.","category":"page"},{"location":"internals/#","page":"Internals","title":"Internals","text":"In hand written code this would look like:","category":"page"},{"location":"internals/#","page":"Internals","title":"Internals","text":"struct Pullback{F}\n data\nend\n\nfunction J(::typeof(foo), x)\n a, da = J(sin, x)\n b, db = J(cos, a)\n return b, Pullback{typeof(foo)}((da, db))\nend\n\nfunction (p::Pullback{typeof(foo)})(b̄)\n da, db = p.data[1], p.data[2]\n ā = db(b̄)\n x̄ = da(ā)\n return x̄\nend","category":"page"},{"location":"internals/#Debugging-1","page":"Internals","title":"Debugging","text":"","category":"section"},{"location":"internals/#","page":"Internals","title":"Internals","text":"Say some of our code is throwing an error.","category":"page"},{"location":"internals/#","page":"Internals","title":"Internals","text":"bad(x) = x\n\nZygote.@adjoint bad(x) = x, _ -> error(\"bad\")\n\nfoo(x) = bad(sin(x))\n\ngradient(foo, 1) # error!","category":"page"},{"location":"internals/#","page":"Internals","title":"Internals","text":"Zygote can usually give a stacktrace pointing right to the issue here, but in some cases there are compiler crashes that make this harder. In these cases it's best to (a) use _pullback and (b) take advantage of Zygote's recursion to narrow down the problem function.","category":"page"},{"location":"internals/#","page":"Internals","title":"Internals","text":"julia> y, back = Zygote._pullback(foo, 1);\n\njulia> back(1) # just make up a value here, it just needs to look similar to `y`\nERROR: bad\n\n# Ok, so we try functions that foo calls\n\njulia> y, back = Zygote._pullback(sin, 1);\n\njulia> back(1)\n(nothing, 0.5403023058681398)\n\n# Looks like that's fine\n\njulia> y, back = Zygote._pullback(bad, 1);\n\njulia> back(1) # ok, here's our issue. Lather, rinse, repeat.\nERROR: bad","category":"page"},{"location":"internals/#","page":"Internals","title":"Internals","text":"Of course, our goal is that you never have to do this, but until Zygote is more mature it can be a useful way to narrow down test cases.","category":"page"}] +} diff --git a/previews/PR1495/siteinfo.js b/previews/PR1495/siteinfo.js new file mode 100644 index 000000000..806510bd4 --- /dev/null +++ b/previews/PR1495/siteinfo.js @@ -0,0 +1 @@ +var DOCUMENTER_CURRENT_VERSION = "previews/PR1495"; diff --git a/previews/PR1495/utils/index.html b/previews/PR1495/utils/index.html new file mode 100644 index 000000000..476d1b376 --- /dev/null +++ b/previews/PR1495/utils/index.html @@ -0,0 +1,183 @@ + +Utilities · Zygote

      Utilities

      Zygote's gradients can be used to construct a Jacobian (by repeated evaluation) or a Hessian (by taking a second derivative).

      Zygote.jacobianFunction
      jacobian(f, args...) -> Tuple

      For each array a ∈ args this returns a matrix with Ja[k,i] = ∂y[k]/∂a[i] where y = f(args...) is usually a vector. Arrays of higher dimension are treated like vec(a), or vec(y) for output.

      For scalar x::Number ∈ args, the result is a vector Jx[k] = ∂y[k]/∂x, while for scalar y all results have just one row.

      With any other argument type, no result is produced, even if gradient would work.

      This reverse-mode Jacobian needs to evaluate the pullback once for each element of y. Doing so is usually only efficient when length(y) is small compared to length(a), otherwise forward mode is likely to be better.

      See also withjacobian, hessian, hessian_reverse.

      Examples

      julia> jacobian(a -> 100*a[1:3].^2, 1:7)[1]  # first index (rows) is output
      +3×7 Matrix{Int64}:
      + 200    0    0  0  0  0  0
      +   0  400    0  0  0  0  0
      +   0    0  600  0  0  0  0
      +
      +julia> jacobian((a,x) -> a.^2 .* x, [1,2,3], 1)  # scalar argument has vector jacobian
      +([2 0 0; 0 4 0; 0 0 6], [1, 4, 9])
      +
      +julia> jacobian((a,d) -> prod(a, dims=d), [1 2; 3 4; 5 6], 2)
      +([2 0 … 0 0; 0 4 … 3 0; 0 0 … 0 5], [0, 0, 0])
      Warning

      For arguments of any type except Number & AbstractArray, the result is nothing.

      julia> jacobian((a,s) -> a.^length(s), [1,2,3], "str")
      +([3 0 0; 0 12 0; 0 0 27], nothing)
      +
      +julia> jacobian((a,t) -> sum(a .* t[1]) + t[2], [1,2,3], (4,5))
      +([4 4 4], nothing)
      +
      +julia> gradient((a,t) -> sum(a .* t[1]) + t[2], [1,2,3], (4,5))  # gradient undersands the tuple
      +([4 4 4], (6, 1))
      source
      jacobian(loss, ::Params)

      Like gradient with implicit parameters, this method takes a zero-argument function and returns an IdDict-like object, now containing the Jacobian for each parameter.

      Examples

      julia> xs = [1 2; 3 4]; ys = [5,7,9];
      +
      +julia> Jxy = jacobian(() -> ys[1:2] .+ sum(xs.^2), Params([xs, ys]))
      +Grads(...)
      +
      +julia> Jxy[ys]
      +2×3 Matrix{Int64}:
      + 1  0  0
      + 0  1  0
      +
      +julia> Jxy[xs]
      +2×4 Matrix{Int64}:
      + 2  6  4  8
      + 2  6  4  8
      source
      Zygote.hessianFunction
      hessian(f, x)

      Construct the Hessian ∂²f/∂x², where x is a real number or an array, and f(x) is a real number. When x is an array, the result is a matrix H[i,j] = ∂²f/∂x[i]∂x[j], using linear indexing x[i] even if the argument is higher-dimensional.

      This uses forward over reverse, ForwardDiff over Zygote, calling hessian_dual(f, x). See hessian_reverse for an all-Zygote alternative.

      See also diaghessian to compute only the diagonal part.

      Examples

      julia> hessian(x -> x[1]*x[2], randn(2))
      +2×2 Matrix{Float64}:
      + 0.0  1.0
      + 1.0  0.0
      +
      +julia> hessian(x -> sum(x.^3), [1 2; 3 4])  # uses linear indexing of x
      +4×4 Matrix{Int64}:
      + 6   0   0   0
      + 0  18   0   0
      + 0   0  12   0
      + 0   0   0  24
      +
      +julia> hessian(sin, pi/2)
      +-1.0
      source
      Zygote.hessian_reverseFunction
      hessian_reverse(f, x)

      This should be equivalent to hessian(f, x), but implemented using reverse over reverse mode, all Zygote. (This is usually much slower, and more likely to find errors.)

      source
      Zygote.diaghessianFunction
      diaghessian(f, args...) -> Tuple

      Diagonal part of the Hessian. Returns a tuple containing, for each argument x, h of the same shape with h[i] = Hᵢᵢ = ∂²y/∂x[i]∂x[i]. The original evaluation y = f(args...) must give a real number y.

      For one vector argument x, this is equivalent to (diag(hessian(f,x)),). Like hessian it uses ForwardDiff over Zygote.

      Warning

      For arguments of any type except Number & AbstractArray, the result is nothing.

      Examples

      julia> diaghessian(x -> sum(x.^3), [1 2; 3 4])[1]
      +2×2 Matrix{Int64}:
      +  6  12
      + 18  24
      +
      +julia> Diagonal(vec(ans)) == hessian(x -> sum(x.^3), [1 2; 3 4])  # full Hessian is diagonal
      +true
      +
      +julia> diaghessian((x,y) -> sum(x .* y .* y'), [1 22; 333 4], [0.5, 0.666])  # two array arguments
      +([0.0 0.0; 0.0 0.0], [2.0, 8.0])
      +
      +julia> diaghessian(atan, 1, 2)  # two scalar arguments
      +(-0.16, 0.16)
      +
      +julia> hessian(xy -> atan(xy[1], xy[2]), [1, 2])  # full Hessian is not diagonal
      +2×2 Matrix{Float64}:
      + -0.16  -0.12
      + -0.12   0.16
      source

      Zygote also provides a set of helpful utilities. These are all "user-level" tools – in other words you could have written them easily yourself, but they live in Zygote for convenience.

      See ChainRules.ignore_derivatives if you want to exclude some of your code from the gradient calculation. This replaces previous Zygote-specific ignore and dropgrad functionality.

      Zygote.withgradientFunction
      withgradient(f, args...)
      +withgradient(f, ::Params)

      Returns both the value of the function and the gradient, as a named tuple.

      julia> y, ∇ = withgradient(/, 1, 2)
      +(val = 0.5, grad = (0.5, -0.25))
      +
      +julia> ∇ == gradient(/, 1, 2)
      +true

      Allows you to capture auxillary outputs, in addition to the scalar used by gradient. To do this, f must return a Tuple or NamedTuple. Then it calculates grad = gradient(first∘f, args...) but returns the wholeval = f(args...)`:

      julia> withgradient([1,2,4]) do x
      +          z = 1 ./ x
      +          sum(z), z  # here z is an auxillary output
      +       end
      +(val = (1.75, [1.0, 0.5, 0.25]), grad = ([-1.0, -0.25, -0.0625],))
      +
      +julia> withgradient(3.0, 4.0) do x, y
      +          (div = x/y, mul = x*y)
      +       end
      +(val = (div = 0.75, mul = 12.0), grad = (0.25, -0.1875))

      Also supports implicit mode:

      julia> w = [3.0];
      +
      +julia> res = withgradient(() -> sum(abs2, w), Params([w]))
      +(val = 9.0, grad = Grads(...))
      +
      +julia> res.grad[w]
      +1-element Vector{Float64}:
      + 6.0
      source
      Zygote.withjacobianFunction
      withjacobian(f, args...)

      Returns both the value f(args...) and the jacobian as a named tuple.

      julia> withjacobian(cumsum, [1,2,3])
      +(val = [1, 3, 6], grad = ([1 0 0; 1 1 0; 1 1 1],))
      source
      Zygote.@showgradMacro
      @showgrad(x) -> x

      Much like @show, but shows the gradient about to accumulate to x. Useful for debugging gradients.

      julia> gradient(2, 3) do a, b
      +         @showgrad(a)*b
      +       end
      +∂(a) = 3
      +(3, 2)

      Note that the gradient depends on how the output of @showgrad is used, and is not the overall gradient of the variable a. For example:

      julia> gradient(2) do a
      +     @showgrad(a)*a
      +   end
      +∂(a) = 2
      +(4,)
      +
      +julia> gradient(2, 3) do a, b
      +         @showgrad(a) # not used, so no gradient
      +         a*b
      +       end
      +∂(a) = nothing
      +(3, 2)
      source
      Zygote.hookFunction
      hook(x̄ -> ..., x) -> x

      Gradient hooks. Allows you to apply an arbitrary function to the gradient for x.

      julia> gradient(2, 3) do a, b
      +         hook(ā -> @show(ā), a)*b
      +       end
      +ā = 3
      +(3, 2)
      +
      +julia> gradient(2, 3) do a, b
      +         hook(-, a)*b
      +       end
      +(-3, 2)
      source
      Zygote.BufferType
      Buffer(xs, ...)

      Buffer is an array-like type which is mutable when taking gradients. You can construct a Buffer with the same syntax as similar (e.g. Buffer(xs, 5)) and then use normal indexing. Finally, use copy to get back a normal array.

      For example:

      julia> function vstack(xs)
      +           buf = Buffer(xs, length(xs), 5)
      +           for i = 1:5
      +             buf[:, i] = xs
      +           end
      +           return copy(buf)
      +         end
      +vstack (generic function with 1 method)
      +
      +julia> vstack([1, 2, 3])
      +3×5 Array{Int64,2}:
      + 1  1  1  1  1
      + 2  2  2  2  2
      + 3  3  3  3  3
      +
      +julia> gradient(x -> sum(vstack(x)), [1, 2, 3])
      +([5.0, 5.0, 5.0],)

      Buffer is not an AbstractArray and can't be used for linear algebra operations like matrix multiplication. This prevents it from being captured by pullbacks.

      copy is a semantic copy, but does not allocate memory. Instead the Buffer is made immutable after copying.

      source
      Zygote.forwarddiffFunction
      forwarddiff(f, x; chunk_threshold = ForwardDiff.DEFAULT_CHUNK_THRESHOLD) -> f(x)

      Runs f(x) as usual, but instructs Zygote to differentiate f using forward mode, rather than the usual reverse mode. The chunk_threshold argument controls the maximum chunk size (c.f. ForwardDiff documentation).

      Forward mode takes time linear in length(x) but only has constant memory overhead, and is very efficient for scalars, so in some cases this can be a useful optimisation.

      julia> function pow(x, n)
      +         r = one(x)
      +         for i = 1:n
      +           r *= x
      +         end
      +         return r
      +       end
      +pow (generic function with 1 method)
      +
      +julia> gradient(5) do x
      +         forwarddiff(x) do x
      +           pow(x, 2)
      +         end
      +       end
      +(10,)

      Note that the function f will drop gradients for any closed-over values.

      julia> gradient(2, 3) do a, b
      +         forwarddiff(a) do a
      +           a*b
      +         end
      +       end
      +(3, nothing)

      This can be rewritten by explicitly passing through b, i.e.

      gradient(2, 3) do a, b
      +  forwarddiff([a, b]) do (a, b)
      +    a*b
      +  end
      +end
      source
      Zygote.checkpointedFunction
      checkpointed(f, xs...)

      Use gradient checkpointing on the call f(xs...). This means that checkpointed(f, xs...) === f(xs...), but when computing the derivative intermediate results from the forward pass of f will not be stored. Instead the forward pass will be repeated, when computing the derivative. This saves memory at the cost of increasing execution time.

      Warning

      If f is not a pure function, checkpointed will likely give wrong results.

      source

      Params and Grads can be copied to and from arrays using the copy! function.

      Working with Grads

      Map, broadcast, and iteration are supported for the dictionary-like Grads objects. These operations are value based and preserve the keys.

      using Zygote, Test
      +
      +w, x1, x2, b = rand(2), rand(2), rand(2), rand(2)
      +
      +gs1 = gradient(() -> sum(tanh.(w .* x1 .+ b)), Params([w, b]))
      +gs2 = gradient(() -> sum(tanh.(w .* x2 .+ b)), Params([w, b]))
      +
      +# accumulate gradients
      +gs = gs1 .+ gs2
      +@test gs[w] ≈ gs1[w] + gs2[w]
      +@test gs[b] ≈ gs1[b] + gs2[b]
      +
      +# gradients and IdDict interact nicely
      +# note that an IdDict must be used for gradient algebra on the GPU
      +gs .+= IdDict(p => randn(size(p)) for p in keys(gs))
      +
      +# clip gradients
      +map(x -> clamp.(x, -0.1, 0.1), gs)
      +
      +# clip gradients in-place
      +foreach(x -> clamp!(x, -0.1, 0.1), gs)
      +
      +for (p, g) in pairs(gs)
      +  # do something with parameter `p` and corresponding gradient `g`
      +end
      +
      +# note that gradients must be w.r.t. to the same parameter key set
      +gs3 = gradient(() -> sum(tanh.(w .* x2)), Params([w]))
      +# gs3 does not have the key b
      +@test_throws ArgumentError gs1 .+ gs3